📄 acobject.h
字号:
struct acpi_object_power_resource{ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO u32 system_level; u32 resource_order;};struct acpi_object_processor{ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO u32 proc_id; u32 length; acpi_io_address address;};struct acpi_object_thermal_zone{ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO};/****************************************************************************** * * Fields. All share a common header/info field. * *****************************************************************************/struct acpi_object_field_common /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */{ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Containing Operation Region object */ /* (REGION/BANK fields only) */};struct acpi_object_region_field{ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Containing op_region object */};struct acpi_object_bank_field{ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Containing op_region object */ union acpi_operand_object *bank_obj; /* bank_select Register object */};struct acpi_object_index_field{ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO /* * No "region_obj" pointer needed since the Index and Data registers * are each field definitions unto themselves. */ union acpi_operand_object *index_obj; /* Index register */ union acpi_operand_object *data_obj; /* Data register */};/* The buffer_field is different in that it is part of a Buffer, not an op_region */struct acpi_object_buffer_field{ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *buffer_obj; /* Containing Buffer object */};/****************************************************************************** * * Objects for handlers * *****************************************************************************/struct acpi_object_notify_handler{ ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *node; /* Parent device */ acpi_notify_handler handler; void *context;};/* Flags for address handler */#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED 0x1struct acpi_object_addr_handler{ ACPI_OBJECT_COMMON_HEADER u8 space_id; u16 hflags; acpi_adr_space_handler handler; struct acpi_namespace_node *node; /* Parent device */ void *context; acpi_adr_space_setup setup; union acpi_operand_object *region_list; /* regions using this handler */ union acpi_operand_object *next;};/****************************************************************************** * * Special internal objects * *****************************************************************************//* * The Reference object type is used for these opcodes: * Arg[0-6], Local[0-7], index_op, name_op, zero_op, one_op, ones_op, debug_op */struct acpi_object_reference{ ACPI_OBJECT_COMMON_HEADER u8 target_type; /* Used for index_op */ u16 opcode; u32 offset; /* Used for arg_op, local_op, and index_op */ void *object; /* name_op=>HANDLE to obj, index_op=>union acpi_operand_object */ struct acpi_namespace_node *node; union acpi_operand_object **where;};/* * Extra object is used as additional storage for types that * have AML code in their declarations (term_args) that must be * evaluated at run time. * * Currently: Region and field_unit types */struct acpi_object_extra{ ACPI_OBJECT_COMMON_HEADER u8 byte_fill1; u16 word_fill1; u32 aml_length; u8 *aml_start; struct acpi_namespace_node *method_REG; /* _REG method for this region (if any) */ void *region_context; /* Region-specific data */};/* Additional data that can be attached to namespace nodes */struct acpi_object_data{ ACPI_OBJECT_COMMON_HEADER acpi_object_handler handler; void *pointer;};/* Structure used when objects are cached for reuse */struct acpi_object_cache_list{ ACPI_OBJECT_COMMON_HEADER union acpi_operand_object *next; /* Link for object cache and internal lists*/};/****************************************************************************** * * union acpi_operand_object Descriptor - a giant union of all of the above * *****************************************************************************/union acpi_operand_object{ struct acpi_object_common common; struct acpi_object_integer integer; struct acpi_object_string string; struct acpi_object_buffer buffer; struct acpi_object_package package; struct acpi_object_event event; struct acpi_object_method method; struct acpi_object_mutex mutex; struct acpi_object_region region; struct acpi_object_notify_common common_notify; struct acpi_object_device device; struct acpi_object_power_resource power_resource; struct acpi_object_processor processor; struct acpi_object_thermal_zone thermal_zone; struct acpi_object_field_common common_field; struct acpi_object_region_field field; struct acpi_object_buffer_field buffer_field; struct acpi_object_bank_field bank_field; struct acpi_object_index_field index_field; struct acpi_object_notify_handler notify; struct acpi_object_addr_handler address_space; struct acpi_object_reference reference; struct acpi_object_extra extra; struct acpi_object_data data; struct acpi_object_cache_list cache;};/****************************************************************************** * * union acpi_descriptor - objects that share a common descriptor identifier * *****************************************************************************//* Object descriptor types */#define ACPI_DESC_TYPE_CACHED 0x01 /* Used only when object is cached */#define ACPI_DESC_TYPE_STATE 0x02#define ACPI_DESC_TYPE_STATE_UPDATE 0x03#define ACPI_DESC_TYPE_STATE_PACKAGE 0x04#define ACPI_DESC_TYPE_STATE_CONTROL 0x05#define ACPI_DESC_TYPE_STATE_RPSCOPE 0x06#define ACPI_DESC_TYPE_STATE_PSCOPE 0x07#define ACPI_DESC_TYPE_STATE_WSCOPE 0x08#define ACPI_DESC_TYPE_STATE_RESULT 0x09#define ACPI_DESC_TYPE_STATE_NOTIFY 0x0A#define ACPI_DESC_TYPE_STATE_THREAD 0x0B#define ACPI_DESC_TYPE_WALK 0x0C#define ACPI_DESC_TYPE_PARSER 0x0D#define ACPI_DESC_TYPE_OPERAND 0x0E#define ACPI_DESC_TYPE_NAMED 0x0F#define ACPI_DESC_TYPE_MAX 0x0Funion acpi_descriptor{ u8 descriptor_id; /* To differentiate various internal objs */\ union acpi_operand_object object; struct acpi_namespace_node node; union acpi_parse_object op;};#endif /* _ACOBJECT_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -