📄 actypes.h
字号:
#define ACPI_TYPE_MUTEX 0x09#define ACPI_TYPE_REGION 0x0A#define ACPI_TYPE_POWER 0x0B /* Name,byte_const,word_const,multi Node */#define ACPI_TYPE_PROCESSOR 0x0C /* Name,byte_const,Dword_const,byte_const,multi nm_o */#define ACPI_TYPE_THERMAL 0x0D /* Name, multiple Node */#define ACPI_TYPE_BUFFER_FIELD 0x0E#define ACPI_TYPE_DDB_HANDLE 0x0F#define ACPI_TYPE_DEBUG_OBJECT 0x10#define ACPI_TYPE_EXTERNAL_MAX 0x10/* * These are object types that do not map directly 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. (There is code that depends on these * values being contiguous with the external types above.) */#define ACPI_TYPE_LOCAL_REGION_FIELD 0x11#define ACPI_TYPE_LOCAL_BANK_FIELD 0x12#define ACPI_TYPE_LOCAL_INDEX_FIELD 0x13#define ACPI_TYPE_LOCAL_REFERENCE 0x14 /* Arg#, Local#, Name, Debug, ref_of, Index */#define ACPI_TYPE_LOCAL_ALIAS 0x15#define ACPI_TYPE_LOCAL_METHOD_ALIAS 0x16#define ACPI_TYPE_LOCAL_NOTIFY 0x17#define ACPI_TYPE_LOCAL_ADDRESS_HANDLER 0x18#define ACPI_TYPE_LOCAL_RESOURCE 0x19#define ACPI_TYPE_LOCAL_RESOURCE_FIELD 0x1A#define ACPI_TYPE_LOCAL_SCOPE 0x1B /* 1 Name, multiple object_list Nodes */#define ACPI_TYPE_NS_NODE_MAX 0x1B /* Last typecode used within a NS Node *//* * These are special object types that never appear in * a Namespace node, only in an union acpi_operand_object */#define ACPI_TYPE_LOCAL_EXTRA 0x1C#define ACPI_TYPE_LOCAL_DATA 0x1D#define ACPI_TYPE_LOCAL_MAX 0x1D/* All types above here are invalid */#define ACPI_TYPE_INVALID 0x1E#define ACPI_TYPE_NOT_FOUND 0xFF/* * Bitmapped ACPI types. Used internally only */#define ACPI_BTYPE_ANY 0x00000000#define ACPI_BTYPE_INTEGER 0x00000001#define ACPI_BTYPE_STRING 0x00000002#define ACPI_BTYPE_BUFFER 0x00000004#define ACPI_BTYPE_PACKAGE 0x00000008#define ACPI_BTYPE_FIELD_UNIT 0x00000010#define ACPI_BTYPE_DEVICE 0x00000020#define ACPI_BTYPE_EVENT 0x00000040#define ACPI_BTYPE_METHOD 0x00000080#define ACPI_BTYPE_MUTEX 0x00000100#define ACPI_BTYPE_REGION 0x00000200#define ACPI_BTYPE_POWER 0x00000400#define ACPI_BTYPE_PROCESSOR 0x00000800#define ACPI_BTYPE_THERMAL 0x00001000#define ACPI_BTYPE_BUFFER_FIELD 0x00002000#define ACPI_BTYPE_DDB_HANDLE 0x00004000#define ACPI_BTYPE_DEBUG_OBJECT 0x00008000#define ACPI_BTYPE_REFERENCE 0x00010000#define ACPI_BTYPE_RESOURCE 0x00020000#define ACPI_BTYPE_COMPUTE_DATA (ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER)#define ACPI_BTYPE_DATA (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_PACKAGE)#define ACPI_BTYPE_DATA_REFERENCE (ACPI_BTYPE_DATA | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE)#define ACPI_BTYPE_DEVICE_OBJECTS (ACPI_BTYPE_DEVICE | ACPI_BTYPE_THERMAL | ACPI_BTYPE_PROCESSOR)#define ACPI_BTYPE_OBJECTS_AND_REFS 0x0001FFFF /* ARG or LOCAL */#define ACPI_BTYPE_ALL_OBJECTS 0x0000FFFF/* * All I/O */#define ACPI_READ 0#define ACPI_WRITE 1#define ACPI_IO_MASK 1/* * Event Types: Fixed & General Purpose */typedef u32 acpi_event_type;/* * Fixed events */#define ACPI_EVENT_PMTIMER 0#define ACPI_EVENT_GLOBAL 1#define ACPI_EVENT_POWER_BUTTON 2#define ACPI_EVENT_SLEEP_BUTTON 3#define ACPI_EVENT_RTC 4#define ACPI_EVENT_MAX 4#define ACPI_NUM_FIXED_EVENTS ACPI_EVENT_MAX + 1/* * Event Status - Per event * ------------- * 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:3 |2|1|0| * +-------------+-+-+-+ * | | | | * | | | +- Enabled? * | | +--- Enabled for wake? * | +----- 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_WAKE_ENABLED (acpi_event_status) 0x02#define ACPI_EVENT_FLAG_SET (acpi_event_status) 0x04/* * General Purpose Events (GPE) */#define ACPI_GPE_INVALID 0xFF#define ACPI_GPE_MAX 0xFF#define ACPI_NUM_GPE 256#define ACPI_GPE_ENABLE 0#define ACPI_GPE_DISABLE 1/* * GPE info flags - Per GPE * +-+-+-+---+---+-+ * |7|6|5|4:3|2:1|0| * +-+-+-+---+---+-+ * | | | | | | * | | | | | +--- Interrupt type: Edge or Level Triggered * | | | | +--- Type: Wake-only, Runtime-only, or wake/runtime * | | | +--- Type of dispatch -- to method, handler, or none * | | +--- Enabled for runtime? * | +--- Enabled for wake? * +--- System state when GPE ocurred (running/waking) */#define ACPI_GPE_XRUPT_TYPE_MASK (u8) 0x01#define ACPI_GPE_LEVEL_TRIGGERED (u8) 0x01#define ACPI_GPE_EDGE_TRIGGERED (u8) 0x00#define ACPI_GPE_TYPE_MASK (u8) 0x06#define ACPI_GPE_TYPE_WAKE_RUN (u8) 0x06#define ACPI_GPE_TYPE_WAKE (u8) 0x02#define ACPI_GPE_TYPE_RUNTIME (u8) 0x04 /* Default */#define ACPI_GPE_DISPATCH_MASK (u8) 0x18#define ACPI_GPE_DISPATCH_HANDLER (u8) 0x08#define ACPI_GPE_DISPATCH_METHOD (u8) 0x10#define ACPI_GPE_DISPATCH_NOT_USED (u8) 0x00 /* Default */#define ACPI_GPE_RUN_ENABLE_MASK (u8) 0x20#define ACPI_GPE_RUN_ENABLED (u8) 0x20#define ACPI_GPE_RUN_DISABLED (u8) 0x00 /* Default */#define ACPI_GPE_WAKE_ENABLE_MASK (u8) 0x40#define ACPI_GPE_WAKE_ENABLED (u8) 0x40#define ACPI_GPE_WAKE_DISABLED (u8) 0x00 /* Default */#define ACPI_GPE_ENABLE_MASK (u8) 0x60 /* Both run/wake */#define ACPI_GPE_SYSTEM_MASK (u8) 0x80#define ACPI_GPE_SYSTEM_RUNNING (u8) 0x80#define ACPI_GPE_SYSTEM_WAKING (u8) 0x00/* * Flags for GPE and Lock interfaces */#define ACPI_EVENT_WAKE_ENABLE 0x2 /* acpi_gpe_enable */#define ACPI_EVENT_WAKE_DISABLE 0x2 /* acpi_gpe_disable */#define ACPI_NOT_ISR 0x1#define ACPI_ISR 0x0/* Notify types */#define ACPI_SYSTEM_NOTIFY 0x1#define ACPI_DEVICE_NOTIFY 0x2#define ACPI_ALL_NOTIFY 0x3#define ACPI_MAX_NOTIFY_HANDLER_TYPE 0x3#define ACPI_MAX_SYS_NOTIFY 0x7f/* Address Space (Operation Region) Types */typedef u8 acpi_adr_space_type;#define ACPI_ADR_SPACE_SYSTEM_MEMORY (acpi_adr_space_type) 0#define ACPI_ADR_SPACE_SYSTEM_IO (acpi_adr_space_type) 1#define ACPI_ADR_SPACE_PCI_CONFIG (acpi_adr_space_type) 2#define ACPI_ADR_SPACE_EC (acpi_adr_space_type) 3#define ACPI_ADR_SPACE_SMBUS (acpi_adr_space_type) 4#define ACPI_ADR_SPACE_CMOS (acpi_adr_space_type) 5#define ACPI_ADR_SPACE_PCI_BAR_TARGET (acpi_adr_space_type) 6#define ACPI_ADR_SPACE_DATA_TABLE (acpi_adr_space_type) 7#define ACPI_ADR_SPACE_FIXED_HARDWARE (acpi_adr_space_type) 127/* * bit_register IDs * These are bitfields defined within the full ACPI registers */#define ACPI_BITREG_TIMER_STATUS 0x00#define ACPI_BITREG_BUS_MASTER_STATUS 0x01#define ACPI_BITREG_GLOBAL_LOCK_STATUS 0x02#define ACPI_BITREG_POWER_BUTTON_STATUS 0x03#define ACPI_BITREG_SLEEP_BUTTON_STATUS 0x04#define ACPI_BITREG_RT_CLOCK_STATUS 0x05#define ACPI_BITREG_WAKE_STATUS 0x06#define ACPI_BITREG_TIMER_ENABLE 0x07#define ACPI_BITREG_GLOBAL_LOCK_ENABLE 0x08#define ACPI_BITREG_POWER_BUTTON_ENABLE 0x09#define ACPI_BITREG_SLEEP_BUTTON_ENABLE 0x0A#define ACPI_BITREG_RT_CLOCK_ENABLE 0x0B#define ACPI_BITREG_WAKE_ENABLE 0x0C#define ACPI_BITREG_SCI_ENABLE 0x0D#define ACPI_BITREG_BUS_MASTER_RLD 0x0E#define ACPI_BITREG_GLOBAL_LOCK_RELEASE 0x0F#define ACPI_BITREG_SLEEP_TYPE_A 0x10#define ACPI_BITREG_SLEEP_TYPE_B 0x11#define ACPI_BITREG_SLEEP_ENABLE 0x12#define ACPI_BITREG_ARB_DISABLE 0x13#define ACPI_BITREG_MAX 0x13#define ACPI_NUM_BITREG ACPI_BITREG_MAX + 1/* * External ACPI object definition */union acpi_object{ 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 */ 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_object *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;};/* * List of objects, used as a parameter list for control method evaluation */struct acpi_object_list{ u32 count; union acpi_object *pointer;};/* * Miscellaneous common Data Structures used by the interfaces */#define ACPI_NO_BUFFER 0#define ACPI_ALLOCATE_BUFFER (acpi_size) (-1)#define ACPI_ALLOCATE_LOCAL_BUFFER (acpi_size) (-2)struct acpi_buffer{ acpi_size length; /* Length in bytes of the buffer */ void *pointer; /* pointer to 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 ACPI_SYS_MODE_UNKNOWN 0x0000#define ACPI_SYS_MODE_ACPI 0x0001#define ACPI_SYS_MODE_LEGACY 0x0002#define ACPI_SYS_MODES_MASK 0x0003/* * ACPI Table Info. One per ACPI table _type_ */struct acpi_table_info{ u32 count;};/* * System info returned by acpi_get_system_info() */struct acpi_system_info{ u32 acpi_ca_version; u32 flags; u32 timer_resolution; u32 reserved1; u32 reserved2; u32 debug_level; u32 debug_layer; u32 num_table_types; struct acpi_table_info table_info [NUM_ACPI_TABLE_TYPES];};/* * Types specific to the OS service interfaces */typedef u32(ACPI_SYSTEM_XFACE *acpi_osd_handler) ( void *context);typedef void(ACPI_SYSTEM_XFACE *acpi_osd_exec_callback) ( void *context);/* * Various handlers and callback procedures */typedefu32 (*acpi_event_handler) ( void *context);typedefvoid (*acpi_notify_handler) ( acpi_handle device, u32 value, void *context);typedefvoid (*acpi_object_handler) ( acpi_handle object, u32 function, void *data);typedefacpi_status (*acpi_init_handler) ( acpi_handle object, u32 function);#define ACPI_INIT_DEVICE_INI 1typedefacpi_status (*acpi_exception_handler) ( acpi_status aml_status, acpi_name name, u16 opcode, u32 aml_offset, void *context);/* Address Spaces (For Operation Regions) */typedefacpi_status (*acpi_adr_space_handler) ( u32 function, acpi_physical_address address, u32 bit_width, acpi_integer *value, void *handler_context, void *region_context);#define ACPI_DEFAULT_HANDLER NULLtypedefacpi_status (*acpi_adr_space_setup) ( acpi_handle region_handle, u32 function, void *handler_context, void **region_context);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -