📄 pr.h
字号:
/****************************************************************************** * * Module Name: processor.h * $Revision: 13 $ * *****************************************************************************//* * Copyright (C) 2000, 2001 Andrew Grover * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#ifndef __PR_H__#define __PR_H__#include <bm.h>/***************************************************************************** * Types & Other Defines *****************************************************************************/#define PR_MAX_POWER_STATES 4#define PR_MAX_THROTTLE_STATES 8#define PR_MAX_PERF_STATES 32#define PR_MAX_C2_LATENCY 100#define PR_MAX_C3_LATENCY 1000/* * Commands: * --------- */#define PR_COMMAND_GET_POWER_INFO ((BM_COMMAND) 0x80)#define PR_COMMAND_SET_POWER_INFO ((BM_COMMAND) 0x81)#define PR_COMMAND_GET_PERF_INFO ((BM_COMMAND) 0x82)#define PR_COMMAND_GET_PERF_STATE ((BM_COMMAND) 0x83)#define PR_COMMAND_SET_PERF_LIMIT ((BM_COMMAND) 0x84)/* * Notifications: * -------------- */#define PR_NOTIFY_PERF_STATES ((BM_NOTIFY) 0x80)#define PR_NOTIFY_POWER_STATES ((BM_NOTIFY) 0x81)/* * Performance Control: * -------------------- */#define PR_PERF_DEC 0x00#define PR_PERF_INC 0x01#define PR_PERF_MAX 0xFF/* * Power States: * ------------- */#define PR_C0 0x00#define PR_C1 0x01#define PR_C2 0x02#define PR_C3 0x03#define PR_C1_FLAG 0x01;#define PR_C2_FLAG 0x02;#define PR_C3_FLAG 0x04;/* * PR_CX_POLICY_VALUES: * -------------------- */typedef struct{ u32 time_threshold; u32 count_threshold; u32 bm_threshold; u32 target_state; u32 count;} PR_CX_POLICY_VALUES;/* * PR_CX: * ------ */typedef struct{ u32 latency; u32 utilization; u8 is_valid; PR_CX_POLICY_VALUES promotion; PR_CX_POLICY_VALUES demotion;} PR_CX;/* * PR_POWER: * --------- */typedef struct{ ACPI_PHYSICAL_ADDRESS p_lvl2; ACPI_PHYSICAL_ADDRESS p_lvl3; u32 bm_activity; u32 active_state; u32 default_state; u32 busy_metric; u32 state_count; PR_CX state[PR_MAX_POWER_STATES];} PR_POWER;/* * PR_PERFORMANCE_STATE: * --------------------- */typedef struct{ u32 performance; u32 power;} PR_PERFORMANCE_STATE;/* * PR_PERFORMANCE: * --------------- */typedef struct{ u32 active_state; u32 thermal_limit; u32 power_limit; u32 state_count; PR_PERFORMANCE_STATE state[PR_MAX_PERF_STATES];} PR_PERFORMANCE;/* * PR_PBLOCK: * ---------- */typedef struct{ u32 length; ACPI_PHYSICAL_ADDRESS address;} PR_PBLOCK;/* * PR_CONTEXT: * ----------- */typedef struct{ BM_HANDLE device_handle; acpi_handle acpi_handle; u32 uid; PR_PBLOCK pblk; PR_POWER power; PR_PERFORMANCE performance;} PR_CONTEXT;/****************************************************************************** * Function Prototypes *****************************************************************************//* processor.c */acpi_statuspr_initialize(void);acpi_statuspr_terminate(void);acpi_statuspr_notify ( BM_NOTIFY notify_type, BM_HANDLE device_handle, void **context);acpi_statuspr_request( BM_REQUEST *request, void *context);/* prpower.c */voidpr_power_idle (void);acpi_statuspr_power_add_device ( PR_CONTEXT *processor);acpi_statuspr_power_remove_device ( PR_CONTEXT *processor);acpi_statuspr_power_initialize (void);acpi_statuspr_power_terminate (void);/* prperf.c */acpi_statuspr_perf_get_state ( PR_CONTEXT *processor, u32 *state);acpi_statuspr_perf_set_state ( PR_CONTEXT *processor, u32 state);acpi_statuspr_perf_set_limit ( PR_CONTEXT *processor, u32 limit);acpi_statuspr_perf_add_device ( PR_CONTEXT *processor);acpi_statuspr_perf_remove_device ( PR_CONTEXT *processor);/* Processor Driver OSL */acpi_statuspr_osl_add_device ( PR_CONTEXT *processor);acpi_statuspr_osl_remove_device ( PR_CONTEXT *processor);acpi_statuspr_osl_generate_event ( u32 event, PR_CONTEXT *processor);#endif /* __PR_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -