/usr/include/powercap/powercap-rapl-sysfs.h is in libpowercap-dev 0.1.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | /**
* Read/write RAPL sysfs files.
* This is a wrapper around powercap-sysfs.h.
*
* The control type is "intel-rapl" and zone depth is limited to 2.
* The "pkg" parameters below are for the top-level "zone", and the optional "sz" parameters are for other control
* planes like "core", "uncore", and "dram".
* The "is_sz" parameter must be non-zero when working with these control planes.
*
* For example, pkg=0, sz=0, is_sz=1 is usually for the "core" power plane and is analogous to using powercap-sysfs.h
* with zones[2]={0, 0}, depth=2.
*
* @author Connor Imes
* @date 2017-08-24
*/
#ifndef _RAPL_SYSFS_H
#define _RAPL_SYSFS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <inttypes.h>
#include <unistd.h>
/**
* Determine if a package exists.
*
* @param pkg
* @return 0 if package exists, a negative error code otherwise.
*/
int rapl_sysfs_pkg_exists(uint32_t pkg);
/**
* Determine if a subzone exists.
*
* @param pkg
* @param sz
* @return 0 if subzone exists, a negative error code otherwise.
*/
int rapl_sysfs_sz_exists(uint32_t pkg, uint32_t sz);
/**
* Determine if a constraint exists.
*
* @param pkg
* @param sz
* @param is_sz
* @param constraint
* @return 0 if constraint exists, a negative error code otherwise.
*/
int rapl_sysfs_constraint_exists(uint32_t pkg, uint32_t sz, int is_sz, uint32_t constraint);
/**
* Get max_energy_range_uj for a zone.
*
* @param pkg
* @param sz
* @param is_sz
* @param val
* @return 0 on success, a negative error code otherwise.
*/
int rapl_sysfs_zone_get_max_energy_range_uj(uint32_t pkg, uint32_t sz, int is_sz, uint64_t* val);
/**
* Get energy_uj for a zone.
*
* @param pkg
* @param sz
* @param is_sz
* @param val
* @return 0 on success, a negative error code otherwise.
*/
int rapl_sysfs_zone_get_energy_uj(uint32_t pkg, uint32_t sz, int is_sz, uint64_t* val);
/**
* Enable/disable a zone.
*
* @param pkg
* @param sz
* @param is_sz
* @param val
* @return 0 on success, a negative error code otherwise.
*/
int rapl_sysfs_zone_set_enabled(uint32_t pkg, uint32_t sz, int is_sz, uint32_t val);
/**
* Get whether a zone is enabled or disabled.
*
* @param pkg
* @param sz
* @param is_sz
* @param val
* @return 0 on success, a negative error code otherwise.
*/
int rapl_sysfs_zone_get_enabled(uint32_t pkg, uint32_t sz, int is_sz, uint32_t* val);
/**
* Get name for a zone.
*
* @param pkg
* @param sz
* @param is_sz
* @param buf
* @param size
* @return number of bytes read, a negative error code otherwise.
*/
ssize_t rapl_sysfs_zone_get_name(uint32_t pkg, uint32_t sz, int is_sz, char* buf, size_t size);
/**
* Set power_limit_uw for a constraint.
*
* @param pkg
* @param sz
* @param is_sz
* @param constraint
* @param val
* @return 0 on success, a negative error code otherwise.
*/
int rapl_sysfs_constraint_set_power_limit_uw(uint32_t pkg, uint32_t sz, int is_sz, uint32_t constraint, uint64_t val);
/**
* Get power_limit_uw for a constraint.
*
* @param pkg
* @param sz
* @param is_sz
* @param constraint
* @param val
* @return 0 on success, a negative error code otherwise.
*/
int rapl_sysfs_constraint_get_power_limit_uw(uint32_t pkg, uint32_t sz, int is_sz, uint32_t constraint, uint64_t* val);
/**
* Set time_window_us for a constraint.
*
* @param pkg
* @param sz
* @param is_sz
* @param constraint
* @param val
* @return 0 on success, a negative error code otherwise.
*/
int rapl_sysfs_constraint_set_time_window_us(uint32_t pkg, uint32_t sz, int is_sz, uint32_t constraint, uint64_t val);
/**
* Get time_window_us for a constraint.
*
* @param pkg
* @param sz
* @param is_sz
* @param constraint
* @param val
* @return 0 on success, a negative error code otherwise.
*/
int rapl_sysfs_constraint_get_time_window_us(uint32_t pkg, uint32_t sz, int is_sz, uint32_t constraint, uint64_t* val);
/**
* Get max_power_uw for a constraint.
*
* @param pkg
* @param sz
* @param is_sz
* @param constraint
* @param val
* @return 0 on success, a negative error code otherwise.
*/
int rapl_sysfs_constraint_get_max_power_uw(uint32_t pkg, uint32_t sz, int is_sz, uint32_t constraint, uint64_t* val);
/**
* Get name for a constraint.
*
* @param pkg
* @param sz
* @param is_sz
* @param constraint
* @param buf
* @param size
* @return number of bytes read, a negative error code otherwise.
*/
ssize_t rapl_sysfs_constraint_get_name(uint32_t pkg, uint32_t sz, int is_sz, uint32_t constraint, char* buf, size_t size);
#ifdef __cplusplus
}
#endif
#endif
|