📄 actypes.h
字号:
#define ACPI_TYPE_B (UINT8) 0x02#define ACPI_TYPE_F (UINT8) 0x03#define ACPI_NOT_BUS_MASTER (UINT8) 0x00#define ACPI_BUS_MASTER (UINT8) 0x01#define ACPI_TRANSFER_8 (UINT8) 0x00#define ACPI_TRANSFER_8_16 (UINT8) 0x01#define ACPI_TRANSFER_16 (UINT8) 0x02/* * Start Dependent Functions Priority definitions */#define ACPI_GOOD_CONFIGURATION (UINT8) 0x00#define ACPI_ACCEPTABLE_CONFIGURATION (UINT8) 0x01#define ACPI_SUB_OPTIMAL_CONFIGURATION (UINT8) 0x02/* * 16, 32 and 64-bit Address Descriptor resource types */#define ACPI_MEMORY_RANGE (UINT8) 0x00#define ACPI_IO_RANGE (UINT8) 0x01#define ACPI_BUS_NUMBER_RANGE (UINT8) 0x02#define ACPI_ADDRESS_NOT_FIXED (UINT8) 0x00#define ACPI_ADDRESS_FIXED (UINT8) 0x01#define ACPI_POS_DECODE (UINT8) 0x00#define ACPI_SUB_DECODE (UINT8) 0x01#define ACPI_PRODUCER (UINT8) 0x00#define ACPI_CONSUMER (UINT8) 0x01/* * If possible, pack the following structures to byte alignment */#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED#pragma pack(1)#endif/* UUID data structures for use in vendor-defined resource descriptors */typedef struct acpi_uuid{ UINT8 Data[ACPI_UUID_LENGTH];} ACPI_UUID;typedef struct acpi_vendor_uuid{ UINT8 Subtype; UINT8 Data[ACPI_UUID_LENGTH];} ACPI_VENDOR_UUID;/* * Structures used to describe device resources */typedef struct acpi_resource_irq{ UINT8 DescriptorLength; UINT8 Triggering; UINT8 Polarity; UINT8 Sharable; UINT8 InterruptCount; UINT8 Interrupts[1];} ACPI_RESOURCE_IRQ;typedef struct ACPI_RESOURCE_DMA{ UINT8 Type; UINT8 BusMaster; UINT8 Transfer; UINT8 ChannelCount; UINT8 Channels[1];} ACPI_RESOURCE_DMA;typedef struct acpi_resource_start_dependent{ UINT8 DescriptorLength; UINT8 CompatibilityPriority; UINT8 PerformanceRobustness;} ACPI_RESOURCE_START_DEPENDENT;/* * END_DEPENDENT_FUNCTIONS_RESOURCE struct is not * needed because it has no fields */typedef struct acpi_resource_io{ UINT8 IoDecode; UINT8 Alignment; UINT8 AddressLength; UINT16 Minimum; UINT16 Maximum;} ACPI_RESOURCE_IO;typedef struct acpi_resource_fixed_io{ UINT16 Address; UINT8 AddressLength;} ACPI_RESOURCE_FIXED_IO;typedef struct acpi_resource_vendor{ UINT16 ByteLength; UINT8 ByteData[1];} ACPI_RESOURCE_VENDOR;/* Vendor resource with UUID info (introduced in ACPI 3.0) */typedef struct acpi_resource_vendor_typed{ UINT16 ByteLength; UINT8 UuidSubtype; UINT8 Uuid[ACPI_UUID_LENGTH]; UINT8 ByteData[1];} ACPI_RESOURCE_VENDOR_TYPED;typedef struct acpi_resource_end_tag{ UINT8 Checksum;} ACPI_RESOURCE_END_TAG;typedef struct acpi_resource_memory24{ UINT8 WriteProtect; UINT16 Minimum; UINT16 Maximum; UINT16 Alignment; UINT16 AddressLength;} ACPI_RESOURCE_MEMORY24;typedef struct acpi_resource_memory32{ UINT8 WriteProtect; UINT32 Minimum; UINT32 Maximum; UINT32 Alignment; UINT32 AddressLength;} ACPI_RESOURCE_MEMORY32;typedef struct acpi_resource_fixed_memory32{ UINT8 WriteProtect; UINT32 Address; UINT32 AddressLength;} ACPI_RESOURCE_FIXED_MEMORY32;typedef struct acpi_memory_attribute{ UINT8 WriteProtect; UINT8 Caching; UINT8 RangeType; UINT8 Translation;} ACPI_MEMORY_ATTRIBUTE;typedef struct acpi_io_attribute{ UINT8 RangeType; UINT8 Translation; UINT8 TranslationType; UINT8 Reserved1;} ACPI_IO_ATTRIBUTE;typedef union acpi_resource_attribute{ ACPI_MEMORY_ATTRIBUTE Mem; ACPI_IO_ATTRIBUTE Io; /* Used for the *WordSpace macros */ UINT8 TypeSpecific;} ACPI_RESOURCE_ATTRIBUTE;typedef struct acpi_resource_source{ UINT8 Index; UINT16 StringLength; char *StringPtr;} ACPI_RESOURCE_SOURCE;/* Fields common to all address descriptors, 16/32/64 bit */#define ACPI_RESOURCE_ADDRESS_COMMON \ UINT8 ResourceType; \ UINT8 ProducerConsumer; \ UINT8 Decode; \ UINT8 MinAddressFixed; \ UINT8 MaxAddressFixed; \ ACPI_RESOURCE_ATTRIBUTE Info;typedef struct acpi_resource_address{ ACPI_RESOURCE_ADDRESS_COMMON} ACPI_RESOURCE_ADDRESS;typedef struct acpi_resource_address16{ ACPI_RESOURCE_ADDRESS_COMMON UINT16 Granularity; UINT16 Minimum; UINT16 Maximum; UINT16 TranslationOffset; UINT16 AddressLength; ACPI_RESOURCE_SOURCE ResourceSource;} ACPI_RESOURCE_ADDRESS16;typedef struct acpi_resource_address32{ ACPI_RESOURCE_ADDRESS_COMMON UINT32 Granularity; UINT32 Minimum; UINT32 Maximum; UINT32 TranslationOffset; UINT32 AddressLength; ACPI_RESOURCE_SOURCE ResourceSource;} ACPI_RESOURCE_ADDRESS32;typedef struct acpi_resource_address64{ ACPI_RESOURCE_ADDRESS_COMMON UINT64 Granularity; UINT64 Minimum; UINT64 Maximum; UINT64 TranslationOffset; UINT64 AddressLength; ACPI_RESOURCE_SOURCE ResourceSource;} ACPI_RESOURCE_ADDRESS64;typedef struct acpi_resource_extended_address64{ ACPI_RESOURCE_ADDRESS_COMMON UINT8 RevisionID; UINT64 Granularity; UINT64 Minimum; UINT64 Maximum; UINT64 TranslationOffset; UINT64 AddressLength; UINT64 TypeSpecific;} ACPI_RESOURCE_EXTENDED_ADDRESS64;typedef struct acpi_resource_extended_irq{ UINT8 ProducerConsumer; UINT8 Triggering; UINT8 Polarity; UINT8 Sharable; UINT8 InterruptCount; ACPI_RESOURCE_SOURCE ResourceSource; UINT32 Interrupts[1];} ACPI_RESOURCE_EXTENDED_IRQ;typedef struct acpi_resource_generic_register{ UINT8 SpaceId; UINT8 BitWidth; UINT8 BitOffset; UINT8 AccessSize; UINT64 Address;} ACPI_RESOURCE_GENERIC_REGISTER;/* ACPI_RESOURCE_TYPEs */#define ACPI_RESOURCE_TYPE_IRQ 0#define ACPI_RESOURCE_TYPE_DMA 1#define ACPI_RESOURCE_TYPE_START_DEPENDENT 2#define ACPI_RESOURCE_TYPE_END_DEPENDENT 3#define ACPI_RESOURCE_TYPE_IO 4#define ACPI_RESOURCE_TYPE_FIXED_IO 5#define ACPI_RESOURCE_TYPE_VENDOR 6#define ACPI_RESOURCE_TYPE_END_TAG 7#define ACPI_RESOURCE_TYPE_MEMORY24 8#define ACPI_RESOURCE_TYPE_MEMORY32 9#define ACPI_RESOURCE_TYPE_FIXED_MEMORY32 10#define ACPI_RESOURCE_TYPE_ADDRESS16 11#define ACPI_RESOURCE_TYPE_ADDRESS32 12#define ACPI_RESOURCE_TYPE_ADDRESS64 13#define ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 14 /* ACPI 3.0 */#define ACPI_RESOURCE_TYPE_EXTENDED_IRQ 15#define ACPI_RESOURCE_TYPE_GENERIC_REGISTER 16#define ACPI_RESOURCE_TYPE_MAX 16typedef union acpi_resource_data{ ACPI_RESOURCE_IRQ Irq; ACPI_RESOURCE_DMA Dma; ACPI_RESOURCE_START_DEPENDENT StartDpf; ACPI_RESOURCE_IO Io; ACPI_RESOURCE_FIXED_IO FixedIo; ACPI_RESOURCE_VENDOR Vendor; ACPI_RESOURCE_VENDOR_TYPED VendorTyped; ACPI_RESOURCE_END_TAG EndTag; ACPI_RESOURCE_MEMORY24 Memory24; ACPI_RESOURCE_MEMORY32 Memory32; ACPI_RESOURCE_FIXED_MEMORY32 FixedMemory32; ACPI_RESOURCE_ADDRESS16 Address16; ACPI_RESOURCE_ADDRESS32 Address32; ACPI_RESOURCE_ADDRESS64 Address64; ACPI_RESOURCE_EXTENDED_ADDRESS64 ExtAddress64; ACPI_RESOURCE_EXTENDED_IRQ ExtendedIrq; ACPI_RESOURCE_GENERIC_REGISTER GenericReg; /* Common fields */ ACPI_RESOURCE_ADDRESS Address; /* Common 16/32/64 address fields */} ACPI_RESOURCE_DATA;typedef struct acpi_resource{ UINT32 Type; UINT32 Length; ACPI_RESOURCE_DATA Data;} ACPI_RESOURCE;/* restore default alignment */#pragma pack()#define ACPI_RS_SIZE_MIN 12#define ACPI_RS_SIZE_NO_DATA 8 /* Id + Length fields */#define ACPI_RS_SIZE(Type) (UINT32) (ACPI_RS_SIZE_NO_DATA + sizeof (Type))#define ACPI_NEXT_RESOURCE(Res) (ACPI_RESOURCE *)((UINT8 *) Res + Res->Length)typedef struct acpi_pci_routing_table{ UINT32 Length; UINT32 Pin; ACPI_INTEGER Address; /* here for 64-bit alignment */ UINT32 SourceIndex; char Source[4]; /* pad to 64 bits so sizeof() works in all cases */} ACPI_PCI_ROUTING_TABLE;#endif /* __ACTYPES_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -