actypes.h
来自「一个类似windows」· C头文件 代码 · 共 1,078 行 · 第 1/3 页
H
1,078 行
#define ACPI_TYPE_DDB_HANDLE 15 /* 0x0F */
#define ACPI_TYPE_DEBUG_OBJECT 16 /* 0x10 */
#define ACPI_TYPE_MAX 16
/*
* This section contains object types that do not relate to the ACPI Object_type operator.
* They are used for various internal purposes only. If new predefined ACPI_TYPEs are
* added (via the ACPI specification), these internal types must move upwards.
* Also, values exceeding the largest official ACPI Object_type must not overlap with
* defined AML opcodes.
*/
#define INTERNAL_TYPE_BEGIN 17
#define INTERNAL_TYPE_DEF_FIELD 17 /* 0x11 */
#define INTERNAL_TYPE_BANK_FIELD 18 /* 0x12 */
#define INTERNAL_TYPE_INDEX_FIELD 19 /* 0x13 */
#define INTERNAL_TYPE_REFERENCE 20 /* 0x14 Arg#, Local#, Name, Debug; used only in descriptors */
#define INTERNAL_TYPE_ALIAS 21 /* 0x15 */
#define INTERNAL_TYPE_NOTIFY 22 /* 0x16 */
#define INTERNAL_TYPE_ADDRESS_HANDLER 23 /* 0x17 */
#define INTERNAL_TYPE_RESOURCE 24 /* 0x18 */
#define INTERNAL_TYPE_NODE_MAX 24
/* These are pseudo-types because there are never any namespace nodes with these types */
#define INTERNAL_TYPE_DEF_FIELD_DEFN 25 /* 0x19 Name, Byte_const, multiple Field_element */
#define INTERNAL_TYPE_BANK_FIELD_DEFN 26 /* 0x1A 2 Name,DWord_const,Byte_const,multi Field_element */
#define INTERNAL_TYPE_INDEX_FIELD_DEFN 27 /* 0x1B 2 Name, Byte_const, multiple Field_element */
#define INTERNAL_TYPE_IF 28 /* 0x1C */
#define INTERNAL_TYPE_ELSE 29 /* 0x1D */
#define INTERNAL_TYPE_WHILE 30 /* 0x1E */
#define INTERNAL_TYPE_SCOPE 31 /* 0x1F Name, multiple Node */
#define INTERNAL_TYPE_DEF_ANY 32 /* 0x20 type is Any, suppress search of enclosing scopes */
#define INTERNAL_TYPE_EXTRA 33 /* 0x21 */
#define INTERNAL_TYPE_MAX 33
#define INTERNAL_TYPE_INVALID 34
#define ACPI_TYPE_NOT_FOUND 0xFF
/*
* Acpi_event Types:
* ------------
* Fixed & general purpose...
*/
typedef u32 ACPI_EVENT_TYPE;
#define ACPI_EVENT_FIXED (ACPI_EVENT_TYPE) 0
#define ACPI_EVENT_GPE (ACPI_EVENT_TYPE) 1
/*
* Fixed events
*/
#define ACPI_EVENT_PMTIMER (ACPI_EVENT_TYPE) 0
/*
* There's no bus master event so index 1 is used for IRQ's that are not
* handled by the SCI handler
*/
#define ACPI_EVENT_NOT_USED (ACPI_EVENT_TYPE) 1
#define ACPI_EVENT_GLOBAL (ACPI_EVENT_TYPE) 2
#define ACPI_EVENT_POWER_BUTTON (ACPI_EVENT_TYPE) 3
#define ACPI_EVENT_SLEEP_BUTTON (ACPI_EVENT_TYPE) 4
#define ACPI_EVENT_RTC (ACPI_EVENT_TYPE) 5
#define ACPI_EVENT_GENERAL (ACPI_EVENT_TYPE) 6
#define ACPI_EVENT_MAX 6
#define NUM_FIXED_EVENTS (ACPI_EVENT_TYPE) 7
#define ACPI_GPE_INVALID 0xFF
#define ACPI_GPE_MAX 0xFF
#define NUM_GPE 256
#define ACPI_EVENT_LEVEL_TRIGGERED (ACPI_EVENT_TYPE) 1
#define ACPI_EVENT_EDGE_TRIGGERED (ACPI_EVENT_TYPE) 2
/*
* Acpi_event Status:
* -------------
* The encoding of ACPI_EVENT_STATUS is illustrated below.
* Note that a set bit (1) indicates the property is TRUE
* (e.g. if bit 0 is set then the event is enabled).
* +---------------+-+-+
* | Bits 31:2 |1|0|
* +---------------+-+-+
* | | |
* | | +- Enabled?
* | +--- Set?
* +----------- <Reserved>
*/
typedef u32 ACPI_EVENT_STATUS;
#define ACPI_EVENT_FLAG_DISABLED (ACPI_EVENT_STATUS) 0x00
#define ACPI_EVENT_FLAG_ENABLED (ACPI_EVENT_STATUS) 0x01
#define ACPI_EVENT_FLAG_SET (ACPI_EVENT_STATUS) 0x02
/* Notify types */
#define ACPI_SYSTEM_NOTIFY 0
#define ACPI_DEVICE_NOTIFY 1
#define ACPI_MAX_NOTIFY_HANDLER_TYPE 1
#define MAX_SYS_NOTIFY 0x7f
/* Address Space (Operation Region) Types */
typedef u8 ACPI_ADDRESS_SPACE_TYPE;
#define ADDRESS_SPACE_SYSTEM_MEMORY (ACPI_ADDRESS_SPACE_TYPE) 0
#define ADDRESS_SPACE_SYSTEM_IO (ACPI_ADDRESS_SPACE_TYPE) 1
#define ADDRESS_SPACE_PCI_CONFIG (ACPI_ADDRESS_SPACE_TYPE) 2
#define ADDRESS_SPACE_EC (ACPI_ADDRESS_SPACE_TYPE) 3
#define ADDRESS_SPACE_SMBUS (ACPI_ADDRESS_SPACE_TYPE) 4
#define ADDRESS_SPACE_CMOS (ACPI_ADDRESS_SPACE_TYPE) 5
#define ADDRESS_SPACE_PCI_BAR_TARGET (ACPI_ADDRESS_SPACE_TYPE) 6
/*
* External ACPI object definition
*/
typedef union acpi_obj
{
ACPI_OBJECT_TYPE type; /* See definition of Acpi_ns_type for values */
struct
{
ACPI_OBJECT_TYPE type;
ACPI_INTEGER value; /* The actual number */
} integer;
struct
{
ACPI_OBJECT_TYPE type;
u32 length; /* # of bytes in string, excluding trailing null */
NATIVE_CHAR *pointer; /* points to the string value */
} string;
struct
{
ACPI_OBJECT_TYPE type;
u32 length; /* # of bytes in buffer */
u8 *pointer; /* points to the buffer */
} buffer;
struct
{
ACPI_OBJECT_TYPE type;
u32 fill1;
ACPI_HANDLE handle; /* object reference */
} reference;
struct
{
ACPI_OBJECT_TYPE type;
u32 count; /* # of elements in package */
union acpi_obj *elements; /* Pointer to an array of ACPI_OBJECTs */
} package;
struct
{
ACPI_OBJECT_TYPE type;
u32 proc_id;
ACPI_IO_ADDRESS pblk_address;
u32 pblk_length;
} processor;
struct
{
ACPI_OBJECT_TYPE type;
u32 system_level;
u32 resource_order;
} power_resource;
} ACPI_OBJECT, *PACPI_OBJECT;
/*
* List of objects, used as a parameter list for control method evaluation
*/
typedef struct acpi_obj_list
{
u32 count;
ACPI_OBJECT *pointer;
} ACPI_OBJECT_LIST, *PACPI_OBJECT_LIST;
/*
* Miscellaneous common Data Structures used by the interfaces
*/
typedef struct
{
u32 length; /* Length in bytes of the buffer */
void *pointer; /* pointer to buffer */
} ACPI_BUFFER;
/*
* Name_type for Acpi_get_name
*/
#define ACPI_FULL_PATHNAME 0
#define ACPI_SINGLE_NAME 1
#define ACPI_NAME_TYPE_MAX 1
/*
* Structure and flags for Acpi_get_system_info
*/
#define SYS_MODE_UNKNOWN 0x0000
#define SYS_MODE_ACPI 0x0001
#define SYS_MODE_LEGACY 0x0002
#define SYS_MODES_MASK 0x0003
/*
* ACPI CPU Cx state handler
*/
typedef
ACPI_STATUS (*ACPI_SET_C_STATE_HANDLER) (
NATIVE_UINT pblk_address);
/*
* ACPI Cx State info
*/
typedef struct
{
u32 state_number;
u32 latency;
} ACPI_CX_STATE;
/*
* ACPI CPU throttling info
*/
typedef struct
{
u32 state_number;
u32 percent_of_clock;
} ACPI_CPU_THROTTLING_STATE;
/*
* ACPI Table Info. One per ACPI table _type_
*/
typedef struct acpi_table_info
{
u32 count;
} ACPI_TABLE_INFO;
/*
* System info returned by Acpi_get_system_info()
*/
typedef struct _acpi_sys_info
{
u32 acpi_ca_version;
u32 flags;
u32 timer_resolution;
u32 reserved1;
u32 reserved2;
u32 debug_level;
u32 debug_layer;
u32 num_table_types;
ACPI_TABLE_INFO table_info [NUM_ACPI_TABLES];
} ACPI_SYSTEM_INFO;
/*
* System Initiailization data. This data is passed to ACPIInitialize
* copyied to global data and retained by ACPI CA
*/
typedef struct _acpi_init_data
{
void *RSDP_physical_address; /* Address of RSDP, needed it it is */
/* not found in the IA32 manner */
} ACPI_INIT_DATA;
/*
* Various handlers and callback procedures
*/
typedef
u32 (*FIXED_EVENT_HANDLER) (
void *context);
typedef
void (*GPE_HANDLER) (
void *context);
typedef
void (*NOTIFY_HANDLER) (
ACPI_HANDLE device,
u32 value,
void *context);
#define ADDRESS_SPACE_READ 1
#define ADDRESS_SPACE_WRITE 2
typedef
ACPI_STATUS (*ADDRESS_SPACE_HANDLER) (
u32 function,
ACPI_PHYSICAL_ADDRESS address,
u32 bit_width,
u32 *value,
void *handler_context,
void *region_context);
#define ACPI_DEFAULT_HANDLER ((ADDRESS_SPACE_HANDLER) NULL)
typedef
ACPI_STATUS (*ADDRESS_SPACE_SETUP) (
ACPI_HANDLE region_handle,
u32 function,
void *handler_context,
void **region_context);
#define ACPI_REGION_ACTIVATE 0
#define ACPI_REGION_DEACTIVATE 1
typedef
ACPI_STATUS (*WALK_CALLBACK) (
ACPI_HANDLE obj_handle,
u32 nesting_level,
void *context,
void **return_value);
/* Interrupt handler return values */
#define INTERRUPT_NOT_HANDLED 0x00
#define INTERRUPT_HANDLED 0x01
/* Structure and flags for Acpi_get_device_info */
#define ACPI_VALID_HID 0x1
#define ACPI_VALID_UID 0x2
#define ACPI_VALID_ADR 0x4
#define ACPI_VALID_STA 0x8
#define ACPI_COMMON_OBJ_INFO \
ACPI_OBJECT_TYPE type; /* ACPI object type */ \
ACPI_NAME name /* ACPI object Name */
typedef struct
{
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?