DPDK  19.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 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 /* Power Management Environment State */
23 enum power_management_env {PM_ENV_NOT_SET, PM_ENV_ACPI_CPUFREQ, PM_ENV_KVM_VM,
24  PM_ENV_PSTATE_CPUFREQ};
25 
38 int rte_power_set_env(enum power_management_env env);
39 
44 void rte_power_unset_env(void);
45 
52 enum power_management_env rte_power_get_env(void);
53 
66 int rte_power_init(unsigned int lcore_id);
67 
79 int rte_power_exit(unsigned int lcore_id);
80 
96 typedef uint32_t (*rte_power_freqs_t)(unsigned int lcore_id, uint32_t *freqs,
97  uint32_t num);
98 
99 extern rte_power_freqs_t rte_power_freqs;
100 
112 typedef uint32_t (*rte_power_get_freq_t)(unsigned int lcore_id);
113 
114 extern rte_power_get_freq_t rte_power_get_freq;
115 
132 typedef int (*rte_power_set_freq_t)(unsigned int lcore_id, uint32_t index);
133 
134 extern rte_power_set_freq_t rte_power_set_freq;
135 
148 typedef int (*rte_power_freq_change_t)(unsigned int lcore_id);
149 
164 
180 
195 
210 
224 
237 
250 
256  union {
257  uint64_t capabilities;
259  struct {
260  uint64_t turbo:1;
261  };
262  };
263 };
264 
279 typedef int (*rte_power_get_capabilities_t)(unsigned int lcore_id,
280  struct rte_power_core_capabilities *caps);
281 
282 extern rte_power_get_capabilities_t rte_power_get_capabilities;
283 
284 #ifdef __cplusplus
285 }
286 #endif
287 
288 #endif