199a2dd95SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause 299a2dd95SBruce Richardson * Copyright(c) 2010-2014 Intel Corporation 399a2dd95SBruce Richardson */ 499a2dd95SBruce Richardson 5*6f987b59SSivaprasad Tummala #ifndef POWER_COMMON_H 6*6f987b59SSivaprasad Tummala #define POWER_COMMON_H 799a2dd95SBruce Richardson 806cffd46SAnatoly Burakov #include <rte_common.h> 9*6f987b59SSivaprasad Tummala #include <rte_compat.h> 10ae67895bSDavid Marchand #include <rte_log.h> 1106cffd46SAnatoly Burakov 1299a2dd95SBruce Richardson #define RTE_POWER_INVALID_FREQ_INDEX (~0) 1399a2dd95SBruce Richardson 14*6f987b59SSivaprasad Tummala extern int rte_power_logtype; 15*6f987b59SSivaprasad Tummala #define RTE_LOGTYPE_POWER rte_power_logtype 1697433132SDavid Marchand #define POWER_LOG(level, ...) \ 1797433132SDavid Marchand RTE_LOG_LINE(level, POWER, "" __VA_ARGS__) 1806cffd46SAnatoly Burakov 1906cffd46SAnatoly Burakov #ifdef RTE_LIBRTE_POWER_DEBUG 200f1dc8cbSTyler Retzlaff #define POWER_DEBUG_LOG(...) \ 210f1dc8cbSTyler Retzlaff RTE_LOG_LINE_PREFIX(ERR, POWER, "%s: ", __func__, __VA_ARGS__) 2206cffd46SAnatoly Burakov #else 230f1dc8cbSTyler Retzlaff #define POWER_DEBUG_LOG(...) 2406cffd46SAnatoly Burakov #endif 2506cffd46SAnatoly Burakov 2699a2dd95SBruce Richardson /* check if scaling driver matches one we want */ 27*6f987b59SSivaprasad Tummala __rte_internal 2899a2dd95SBruce Richardson int cpufreq_check_scaling_driver(const char *driver); 29*6f987b59SSivaprasad Tummala 30*6f987b59SSivaprasad Tummala __rte_internal 3106cffd46SAnatoly Burakov int power_set_governor(unsigned int lcore_id, const char *new_governor, 3206cffd46SAnatoly Burakov char *orig_governor, size_t orig_governor_len); 33*6f987b59SSivaprasad Tummala 34*6f987b59SSivaprasad Tummala __rte_internal 3506cffd46SAnatoly Burakov int open_core_sysfs_file(FILE **f, const char *mode, const char *format, ...) 3606cffd46SAnatoly Burakov __rte_format_printf(3, 4); 37*6f987b59SSivaprasad Tummala 38*6f987b59SSivaprasad Tummala __rte_internal 3906cffd46SAnatoly Burakov int read_core_sysfs_u32(FILE *f, uint32_t *val); 40*6f987b59SSivaprasad Tummala 41*6f987b59SSivaprasad Tummala __rte_internal 4206cffd46SAnatoly Burakov int read_core_sysfs_s(FILE *f, char *buf, unsigned int len); 43*6f987b59SSivaprasad Tummala 44*6f987b59SSivaprasad Tummala __rte_internal 4506cffd46SAnatoly Burakov int write_core_sysfs_s(FILE *f, const char *str); 46*6f987b59SSivaprasad Tummala 47*6f987b59SSivaprasad Tummala __rte_internal 485c9b07eeSSivaprasad Tummala int power_get_lcore_mapped_cpu_id(uint32_t lcore_id, uint32_t *cpu_id); 4999a2dd95SBruce Richardson 50*6f987b59SSivaprasad Tummala #endif /* POWER_COMMON_H */ 51