Skip to content

ACPI CPU

include/acpi/cpu.h View source View on GitHub

This is the big struct we gotta declare in here:

struct acpi_power_reg (7 fields) source
§ uint8_t descriptor
§ uint16_t length
§ uint8_t space_id
§ uint8_t bit_width
§ uint8_t bit_offset
§ uint8_t access_size
§ uint64_t addr
struct acpi_cpu_context (8 fields) source
§ bool valid
§ uint8_t type
§ uint32_t addr
§ uint8_t entry_method
§ uint8_t index
§ uint32_t latency
§ uint8_t bm_status_skip
struct acpi_lpi_state (9 fields) source
§ uint32_t min_residency
§ uint32_t wake_latency
§ uint32_t flags
§ uint32_t resolution_counter_frequency
§ uint32_t enable_parent_state
§ uint64_t addr
§ uint8_t index
§ uint8_t entry_method
struct acpi_cpu_power (3 fields) source
§ size_t count
§ union
§ size_t timer_broadcast_on_state
struct acpi_psd_pkg (5 fields) source
§ uint64_t num_entries
§ uint64_t revision
§ uint64_t domain
§ uint64_t coord_type
§ uint64_t num_cpus
struct acpi_pct_reg (7 fields) source
§ uint8_t desc
§ uint16_t len
§ uint8_t space_id
§ uint8_t bit_width
§ uint8_t bit_offset
§ uint8_t reserved0
§ uint64_t addr
struct acpi_cpu_px (6 fields) source
§ uint64_t frequency

megahertz

§ uint64_t power

milliwatts

§ uint64_t transition_latency_us
§ uint64_t bus_master_latency_us
§ uint64_t control
§ uint64_t status
struct acpi_cpu_perf (8 fields) source
§ uint32_t state
§ uint32_t platform_limit
§ struct acpi_pct_reg control_reg
§ struct acpi_pct_reg status_reg
§ uint32_t state_count
§ struct acpi_cpu_px *states
§ struct acpi_psd_pkg domain_info
§ uint32_t type
struct acpi_tsd_pkg (5 fields) source
§ uint64_t num_entries
§ uint64_t revision
§ uint64_t domain
§ uint64_t coord_type
§ uint64_t num_cpus
struct acpi_ptc_reg (7 fields) source
§ uint8_t desc
§ uint16_t len
§ uint8_t space_id
§ uint8_t bit_width
§ uint8_t bit_offset
§ uint8_t reserved0
§ uint64_t addr
struct acpi_cpu_tx_tss (5 fields) source
§ uint64_t freq_pct
§ uint64_t power

milliwatts

§ uint64_t transition_latency_us
§ uint64_t control
§ uint64_t status
struct acpi_cpu_tx (2 fields) source
§ uint16_t power
§ uint16_t performance
struct acpi_cpu_throttling (15 fields) source
§ uint32_t state
§ uint32_t platform_limit
§ struct acpi_pct_reg control_reg
§ struct acpi_pct_reg status_reg
§ uint32_t state_count
§ struct acpi_cpu_tx_tss *states_tss
§ struct acpi_tsd_pkg domain_info
§ int32_t (*get_throttling)(struct acpi_cpu *)
§ int32_t (*set_throttling)(struct acpi_cpu *, int32_t)
§ uint32_t addr
§ uint8_t duty_offset
§ uint8_t duty_width
§ uint8_t tsd_valid_flag
§ uint32_t shared_type
struct acpi_cpu_lx (2 fields) source
§ int32_t px

perf state

§ int32_t tx

throttle level

struct acpi_cpu_limit (3 fields) source
§ struct acpi_cpu_lx state

what are we right now

§ struct acpi_cpu_lx thermal

thermal limit

§ struct acpi_cpu_lx user

limit the user wants

struct acpi_cpu_flags (7 fields) source
§ uint8_t power : 1
§ uint8_t perf : 1
§ uint8_t throttling : 1
§ uint8_t limit : 1
§ uint8_t has_cst : 1
§ uint8_t has_lpi : 1
§ uint8_t setup : 1
struct acpi_cpu (8 fields) source
§ int32_t perf_throttle_limit
§ int32_t throttle_platform_limit
§ struct acpi_cpu_flags flags
§ struct acpi_cpu_power power
§ struct acpi_cpu_perf *performance
§ struct acpi_cpu_throttling throttling
§ struct acpi_cpu_limit limit
#define ACPI_CPU_BUSY_METRIC 10
source
#define ACPI_CPU_MAX_POWER 8
source
#define ACPI_CPU_MAX_C2_LATENCY 100
source
#define ACPI_CPU_MAX_C3_LATENCY 1000
source
#define ACPI_CPU_MAX_THROTTLING 16
source
#define ACPI_CPU_MAX_THROTTLE 100
source

10%

#define ACPI_CPU_MAX_DUTY_WIDTH 4
source
#define ACPI_PDC_REVISION_ID 0x1
source
#define ACPI_PSD_REV0_REVISION 0
source
#define ACPI_PSD_REV0_ENTRIES 5
source
#define ACPI_TSD_REV0_REVISION 0
source
#define ACPI_TSD_REV0_ENTRIES 5
source
#define ACPI_CONTEXT_DESCRIPTOR_LENGTH 32
source