📄 actypes.h
字号:
* Sleep type invalid value */#define ACPI_SLEEP_TYPE_MAX 0x7#define ACPI_SLEEP_TYPE_INVALID 0xFF/* * Standard notify values */#define ACPI_NOTIFY_BUS_CHECK (u8) 0#define ACPI_NOTIFY_DEVICE_CHECK (u8) 1#define ACPI_NOTIFY_DEVICE_WAKE (u8) 2#define ACPI_NOTIFY_EJECT_REQUEST (u8) 3#define ACPI_NOTIFY_DEVICE_CHECK_LIGHT (u8) 4#define ACPI_NOTIFY_FREQUENCY_MISMATCH (u8) 5#define ACPI_NOTIFY_BUS_MODE_MISMATCH (u8) 6#define ACPI_NOTIFY_POWER_FAULT (u8) 7/* * Types associated with ACPI names and objects. The first group of * values (up to ACPI_TYPE_EXTERNAL_MAX) correspond to the definition * of the ACPI object_type() operator (See the ACPI Spec). Therefore, * only add to the first group if the spec changes. * * NOTE: Types must be kept in sync with the global acpi_ns_properties * and acpi_ns_type_names arrays. */typedef u32 acpi_object_type;#define ACPI_TYPE_ANY 0x00#define ACPI_TYPE_INTEGER 0x01 /* Byte/Word/Dword/Zero/One/Ones */#define ACPI_TYPE_STRING 0x02#define ACPI_TYPE_BUFFER 0x03#define ACPI_TYPE_PACKAGE 0x04 /* byte_const, multiple data_term/Constant/super_name */#define ACPI_TYPE_FIELD_UNIT 0x05#define ACPI_TYPE_DEVICE 0x06 /* Name, multiple Node */#define ACPI_TYPE_EVENT 0x07#define ACPI_TYPE_METHOD 0x08 /* Name, byte_const, multiple Code */#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/* * 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? * +--- Unused */#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 *//* * 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_PCIEXP_WAKE_STATUS 0x07#define ACPI_BITREG_TIMER_ENABLE 0x08#define ACPI_BITREG_GLOBAL_LOCK_ENABLE 0x09#define ACPI_BITREG_POWER_BUTTON_ENABLE 0x0A#define ACPI_BITREG_SLEEP_BUTTON_ENABLE 0x0B#define ACPI_BITREG_RT_CLOCK_ENABLE 0x0C#define ACPI_BITREG_WAKE_ENABLE 0x0D#define ACPI_BITREG_PCIEXP_WAKE_DISABLE 0x0E#define ACPI_BITREG_SCI_ENABLE 0x0F#define ACPI_BITREG_BUS_MASTER_RLD 0x10#define ACPI_BITREG_GLOBAL_LOCK_RELEASE 0x11#define ACPI_BITREG_SLEEP_TYPE_A 0x12#define ACPI_BITREG_SLEEP_TYPE_B 0x13#define ACPI_BITREG_SLEEP_ENABLE 0x14#define ACPI_BITREG_ARB_DISABLE 0x15#define ACPI_BITREG_MAX 0x15#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/* * 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;};/* * 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 */typedef u32(*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);typedef acpi_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);#define ACPI_REGION_ACTIVATE 0#define ACPI_REGION_DEACTIVATE 1typedefacpi_status(*acpi_walk_callback) (acpi_handle obj_handle, u32 nesting_level, void *context, void **return_value);/* Interrupt handler return values */#define ACPI_INTERRUPT_NOT_HANDLED 0x00#define ACPI_INTERRUPT_HANDLED 0x01/* Common string version of device HIDs and UIDs */struct acpica_device_id { char value[ACPI_DEVICE_ID_LENGTH];};/* Common string version of device CIDs */struct acpi_compatible_id { char value[ACPI_MAX_CID_LENGTH];};struct acpi_compatible_id_list { u32 count; u32 size; struct acpi_compatible_id id[1];};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -