DPDK  24.07.0
rte_power.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  */
4 
5 #ifndef _RTE_POWER_H
6 #define _RTE_POWER_H
7 
13 #include <rte_common.h>
14 #include <rte_log.h>
15 #include <rte_power_guest_channel.h>
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 /* Power Management Environment State */
22 enum power_management_env {PM_ENV_NOT_SET, PM_ENV_ACPI_CPUFREQ, PM_ENV_KVM_VM,
23  PM_ENV_PSTATE_CPUFREQ, PM_ENV_CPPC_CPUFREQ,
24  PM_ENV_AMD_PSTATE_CPUFREQ};
25 
38 int rte_power_check_env_supported(enum power_management_env env);
39 
53 int rte_power_set_env(enum power_management_env env);
54 
59 void rte_power_unset_env(void);
60 
67 enum power_management_env rte_power_get_env(void);
68 
81 int rte_power_init(unsigned int lcore_id);
82 
94 int rte_power_exit(unsigned int lcore_id);
95 
111 typedef uint32_t (*rte_power_freqs_t)(unsigned int lcore_id, uint32_t *freqs,
112  uint32_t num);
113 
114 extern rte_power_freqs_t rte_power_freqs;
115 
127 typedef uint32_t (*rte_power_get_freq_t)(unsigned int lcore_id);
128 
129 extern rte_power_get_freq_t rte_power_get_freq;
130 
147 typedef int (*rte_power_set_freq_t)(unsigned int lcore_id, uint32_t index);
148 
149 extern rte_power_set_freq_t rte_power_set_freq;
150 
163 typedef int (*rte_power_freq_change_t)(unsigned int lcore_id);
164 
171 
178 
185 
192 
198 
204 
210 
215  union {
216  uint64_t capabilities;
217  struct {
218  uint64_t turbo:1;
219  uint64_t priority:1;
220  };
221  };
222 };
223 
238 typedef int (*rte_power_get_capabilities_t)(unsigned int lcore_id,
239  struct rte_power_core_capabilities *caps);
240 
241 extern rte_power_get_capabilities_t rte_power_get_capabilities;
242 
243 #ifdef __cplusplus
244 }
245 #endif
246 
247 #endif
void rte_power_unset_env(void)
rte_power_freq_change_t rte_power_freq_up
rte_power_freq_change_t rte_power_freq_down
uint32_t(* rte_power_get_freq_t)(unsigned int lcore_id)
Definition: rte_power.h:127
uint32_t(* rte_power_freqs_t)(unsigned int lcore_id, uint32_t *freqs, uint32_t num)
Definition: rte_power.h:111
int(* rte_power_set_freq_t)(unsigned int lcore_id, uint32_t index)
Definition: rte_power.h:147
rte_power_freq_change_t rte_power_freq_enable_turbo
enum power_management_env rte_power_get_env(void)
rte_power_freq_change_t rte_power_freq_max
int(* rte_power_freq_change_t)(unsigned int lcore_id)
Definition: rte_power.h:163
rte_power_freq_change_t rte_power_freq_min
rte_power_freq_change_t rte_power_turbo_status
int rte_power_set_env(enum power_management_env env)
rte_power_freq_change_t rte_power_freq_disable_turbo
int rte_power_init(unsigned int lcore_id)
int(* rte_power_get_capabilities_t)(unsigned int lcore_id, struct rte_power_core_capabilities *caps)
Definition: rte_power.h:238
int rte_power_check_env_supported(enum power_management_env env)
int rte_power_exit(unsigned int lcore_id)