⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acobject.h

📁 acpi tools for linux include acpiexec and acpixtract
💻 H
📖 第 1 页 / 共 2 页
字号:
    union acpi_operand_object       *DeviceNotify;      /* Handler for driver notifies */\    union acpi_operand_object       *Handler;           /* Handler for Address space */typedef struct acpi_object_notify_common    /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */{    ACPI_OBJECT_COMMON_HEADER    ACPI_COMMON_NOTIFY_INFO} ACPI_OBJECT_NOTIFY_COMMON;typedef struct acpi_object_device{    ACPI_OBJECT_COMMON_HEADER    ACPI_COMMON_NOTIFY_INFO    ACPI_GPE_BLOCK_INFO             *GpeBlock;} ACPI_OBJECT_DEVICE;typedef struct acpi_object_power_resource{    ACPI_OBJECT_COMMON_HEADER    ACPI_COMMON_NOTIFY_INFO    UINT32                          SystemLevel;    UINT32                          ResourceOrder;} ACPI_OBJECT_POWER_RESOURCE;typedef struct acpi_object_processor{    ACPI_OBJECT_COMMON_HEADER    /* The next two fields take advantage of the 3-byte space before NOTIFY_INFO */    UINT8                           ProcId;    UINT8                           Length;    ACPI_COMMON_NOTIFY_INFO    ACPI_IO_ADDRESS                 Address;} ACPI_OBJECT_PROCESSOR;typedef struct acpi_object_thermal_zone{    ACPI_OBJECT_COMMON_HEADER    ACPI_COMMON_NOTIFY_INFO} ACPI_OBJECT_THERMAL_ZONE;/****************************************************************************** * * Fields.  All share a common header/info field. * *****************************************************************************//* * Common bitfield for the field objects * "Field Datum"  -- a datum from the actual field object * "Buffer Datum" -- a datum from a user buffer, read from or to be written to the field */#define ACPI_COMMON_FIELD_INFO \    UINT8                           FieldFlags;         /* Access, update, and lock bits */\    UINT8                           Attribute;          /* From AccessAs keyword */\    UINT8                           AccessByteWidth;    /* Read/Write size in bytes */\    ACPI_NAMESPACE_NODE             *Node;              /* Link back to parent node */\    UINT32                          BitLength;          /* Length of field in bits */\    UINT32                          BaseByteOffset;     /* Byte offset within containing object */\    UINT32                          Value;              /* Value to store into the Bank or Index register */\    UINT8                           StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\    UINT8                           AccessBitWidth;     /* Read/Write size in bits (8-64) */typedef 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       *RegionObj;         /* Parent Operation Region object (REGION/BANK fields only) */} ACPI_OBJECT_FIELD_COMMON;typedef struct acpi_object_region_field{    ACPI_OBJECT_COMMON_HEADER    ACPI_COMMON_FIELD_INFO    union acpi_operand_object       *RegionObj;         /* Containing OpRegion object */} ACPI_OBJECT_REGION_FIELD;typedef struct acpi_object_bank_field{    ACPI_OBJECT_COMMON_HEADER    ACPI_COMMON_FIELD_INFO    union acpi_operand_object       *RegionObj;         /* Containing OpRegion object */    union acpi_operand_object       *BankObj;           /* BankSelect Register object */} ACPI_OBJECT_BANK_FIELD;typedef struct acpi_object_index_field{    ACPI_OBJECT_COMMON_HEADER    ACPI_COMMON_FIELD_INFO    /*     * No "RegionObj" pointer needed since the Index and Data registers     * are each field definitions unto themselves.     */    union acpi_operand_object       *IndexObj;          /* Index register */    union acpi_operand_object       *DataObj;           /* Data register */} ACPI_OBJECT_INDEX_FIELD;/* The BufferField is different in that it is part of a Buffer, not an OpRegion */typedef struct acpi_object_buffer_field{    ACPI_OBJECT_COMMON_HEADER    ACPI_COMMON_FIELD_INFO    union acpi_operand_object       *BufferObj;         /* Containing Buffer object */} ACPI_OBJECT_BUFFER_FIELD;/****************************************************************************** * * Objects for handlers * *****************************************************************************/typedef struct acpi_object_notify_handler{    ACPI_OBJECT_COMMON_HEADER    ACPI_NAMESPACE_NODE             *Node;              /* Parent device */    ACPI_NOTIFY_HANDLER             Handler;    void                            *Context;} ACPI_OBJECT_NOTIFY_HANDLER;typedef struct acpi_object_addr_handler{    ACPI_OBJECT_COMMON_HEADER    UINT8                           SpaceId;    UINT8                           HandlerFlags;    ACPI_ADR_SPACE_HANDLER          Handler;    ACPI_NAMESPACE_NODE             *Node;              /* Parent device */    void                            *Context;    ACPI_ADR_SPACE_SETUP            Setup;    union acpi_operand_object       *RegionList;        /* regions using this handler */    union acpi_operand_object       *Next;} ACPI_OBJECT_ADDR_HANDLER;/* Flags for address handler (HandlerFlags) */#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED  0x01/****************************************************************************** * * Special internal objects * *****************************************************************************//* * The Reference object type is used for these opcodes: * Arg[0-6], Local[0-7], IndexOp, NameOp, ZeroOp, OneOp, OnesOp, DebugOp */typedef struct acpi_object_reference{    ACPI_OBJECT_COMMON_HEADER    UINT8                           TargetType;         /* Used for IndexOp */    UINT16                          Opcode;    void                            *Object;            /* NameOp=>HANDLE to obj, IndexOp=>ACPI_OPERAND_OBJECT  */    ACPI_NAMESPACE_NODE             *Node;    union acpi_operand_object       **Where;    UINT32                          Offset;             /* Used for ArgOp, LocalOp, and IndexOp */} ACPI_OBJECT_REFERENCE;/* * Extra object is used as additional storage for types that * have AML code in their declarations (TermArgs) that must be * evaluated at run time. * * Currently: Region and FieldUnit types */typedef struct acpi_object_extra{    ACPI_OBJECT_COMMON_HEADER    ACPI_NAMESPACE_NODE             *Method_REG;        /* _REG method for this region (if any) */    void                            *RegionContext;     /* Region-specific data */    UINT8                           *AmlStart;    UINT32                          AmlLength;} ACPI_OBJECT_EXTRA;/* Additional data that can be attached to namespace nodes */typedef struct acpi_object_data{    ACPI_OBJECT_COMMON_HEADER    ACPI_OBJECT_HANDLER             Handler;    void                            *Pointer;} ACPI_OBJECT_DATA;/* Structure used when objects are cached for reuse */typedef struct acpi_object_cache_list{    ACPI_OBJECT_COMMON_HEADER    union acpi_operand_object       *Next;              /* Link for object cache and internal lists*/} ACPI_OBJECT_CACHE_LIST;/****************************************************************************** * * ACPI_OPERAND_OBJECT Descriptor - a giant union of all of the above * *****************************************************************************/typedef union acpi_operand_object{    ACPI_OBJECT_COMMON                  Common;    ACPI_OBJECT_INTEGER                 Integer;    ACPI_OBJECT_STRING                  String;    ACPI_OBJECT_BUFFER                  Buffer;    ACPI_OBJECT_PACKAGE                 Package;    ACPI_OBJECT_EVENT                   Event;    ACPI_OBJECT_METHOD                  Method;    ACPI_OBJECT_MUTEX                   Mutex;    ACPI_OBJECT_REGION                  Region;    ACPI_OBJECT_NOTIFY_COMMON           CommonNotify;    ACPI_OBJECT_DEVICE                  Device;    ACPI_OBJECT_POWER_RESOURCE          PowerResource;    ACPI_OBJECT_PROCESSOR               Processor;    ACPI_OBJECT_THERMAL_ZONE            ThermalZone;    ACPI_OBJECT_FIELD_COMMON            CommonField;    ACPI_OBJECT_REGION_FIELD            Field;    ACPI_OBJECT_BUFFER_FIELD            BufferField;    ACPI_OBJECT_BANK_FIELD              BankField;    ACPI_OBJECT_INDEX_FIELD             IndexField;    ACPI_OBJECT_NOTIFY_HANDLER          Notify;    ACPI_OBJECT_ADDR_HANDLER            AddressSpace;    ACPI_OBJECT_REFERENCE               Reference;    ACPI_OBJECT_EXTRA                   Extra;    ACPI_OBJECT_DATA                    Data;    ACPI_OBJECT_CACHE_LIST              Cache;} ACPI_OPERAND_OBJECT;/****************************************************************************** * * 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              0x0Ftypedef struct acpi_common_descriptor{    void                            *CommonPointer;    UINT8                           DescriptorType; /* To differentiate various internal objs */} ACPI_COMMON_DESCRIPTOR;typedef union acpi_descriptor{    ACPI_COMMON_DESCRIPTOR          Common;    ACPI_OPERAND_OBJECT             Object;    ACPI_NAMESPACE_NODE             Node;    ACPI_PARSE_OBJECT               Op;} ACPI_DESCRIPTOR;#pragma pack()#endif /* _ACOBJECT_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -