DPDK  21.02.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_byteorder.h>
15 #include <rte_log.h>
16 #include <rte_string_fns.h>
17 #include <rte_power_guest_channel.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 /* Power Management Environment State */
24 enum power_management_env {PM_ENV_NOT_SET, PM_ENV_ACPI_CPUFREQ, PM_ENV_KVM_VM,
25  PM_ENV_PSTATE_CPUFREQ};
26 
42 __rte_experimental
43 int rte_power_check_env_supported(enum power_management_env env);
44 
58 int rte_power_set_env(enum power_management_env env);
59 
64 void rte_power_unset_env(void);
65 
72 enum power_management_env rte_power_get_env(void);
73 
86 int rte_power_init(unsigned int lcore_id);
87 
99 int rte_power_exit(unsigned int lcore_id);
100 
116 typedef uint32_t (*rte_power_freqs_t)(unsigned int lcore_id, uint32_t *freqs,
117  uint32_t num);
118 
119 extern rte_power_freqs_t rte_power_freqs;
120 
132 typedef uint32_t (*rte_power_get_freq_t)(unsigned int lcore_id);
133 
134 extern rte_power_get_freq_t rte_power_get_freq;
135 
152 typedef int (*rte_power_set_freq_t)(unsigned int lcore_id, uint32_t index);
153 
154 extern rte_power_set_freq_t rte_power_set_freq;
155 
168 typedef int (*rte_power_freq_change_t)(unsigned int lcore_id);
169 
184 
200 
215 
230 
244 
257 
270 
276  union {
277  uint64_t capabilities;
279  struct {
280  uint64_t turbo:1;
281  uint64_t priority:1;
282  };
283  };
284 };
285 
300 typedef int (*rte_power_get_capabilities_t)(unsigned int lcore_id,
301  struct rte_power_core_capabilities *caps);
302 
303 extern rte_power_get_capabilities_t rte_power_get_capabilities;
304 
305 #ifdef __cplusplus
306 }
307 #endif
308 
309 #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:132
__rte_experimental int rte_power_check_env_supported(enum power_management_env env)
uint32_t(* rte_power_freqs_t)(unsigned int lcore_id, uint32_t *freqs, uint32_t num)
Definition: rte_power.h:116
int(* rte_power_set_freq_t)(unsigned int lcore_id, uint32_t index)
Definition: rte_power.h:152
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:168
#define RTE_STD_C11
Definition: rte_common.h:40
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:300
int rte_power_exit(unsigned int lcore_id)