diff options
Diffstat (limited to 'sys/contrib/dev/acpica/actypes.h')
-rw-r--r-- | sys/contrib/dev/acpica/actypes.h | 102 |
1 files changed, 71 insertions, 31 deletions
diff --git a/sys/contrib/dev/acpica/actypes.h b/sys/contrib/dev/acpica/actypes.h index 0b19399..3064a1f 100644 --- a/sys/contrib/dev/acpica/actypes.h +++ b/sys/contrib/dev/acpica/actypes.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: actypes.h - Common data types for the entire ACPI subsystem - * $Revision: 253 $ + * $Revision: 261 $ * *****************************************************************************/ @@ -123,11 +123,14 @@ /* * Data type ranges + * Note: These macros are designed to be compiler independent as well as + * working around problems that some 32-bit compilers have with 64-bit + * constants. */ -#define ACPI_UINT8_MAX (UINT8) 0xFF -#define ACPI_UINT16_MAX (UINT16) 0xFFFF -#define ACPI_UINT32_MAX (UINT32) 0xFFFFFFFF -#define ACPI_UINT64_MAX (UINT64) 0xFFFFFFFFFFFFFFFF +#define ACPI_UINT8_MAX (UINT8) (~((UINT8) 0)) /* 0xFF */ +#define ACPI_UINT16_MAX (UINT16)(~((UINT16) 0)) /* 0xFFFF */ +#define ACPI_UINT32_MAX (UINT32)(~((UINT32) 0)) /* 0xFFFFFFFF */ +#define ACPI_UINT64_MAX (UINT64)(~((UINT64) 0)) /* 0xFFFFFFFFFFFFFFFF */ #define ACPI_ASCII_MAX 0x7F @@ -228,7 +231,7 @@ typedef char *ACPI_PHYSICAL_ADDRESS; typedef UINT16 ACPI_SIZE; #define ALIGNED_ADDRESS_BOUNDARY 0x00000002 -#define _HW_ALIGNMENT_SUPPORT +#define ACPI_MISALIGNED_TRANSFERS #define ACPI_USE_NATIVE_DIVIDE /* No 64-bit integers, ok to use native divide */ #define ACPI_MAX_PTR ACPI_UINT16_MAX #define ACPI_SIZE_MAX ACPI_UINT16_MAX @@ -266,7 +269,7 @@ typedef UINT64 ACPI_PHYSICAL_ADDRESS; typedef UINT32 ACPI_SIZE; #define ALIGNED_ADDRESS_BOUNDARY 0x00000004 -#define _HW_ALIGNMENT_SUPPORT +#define ACPI_MISALIGNED_TRANSFERS #define ACPI_MAX_PTR ACPI_UINT32_MAX #define ACPI_SIZE_MAX ACPI_UINT32_MAX @@ -378,8 +381,6 @@ typedef struct uint32_struct typedef UINT32 ACPI_INTEGER; #define ACPI_INTEGER_MAX ACPI_UINT32_MAX #define ACPI_INTEGER_BIT_SIZE 32 -#define ACPI_MAX_BCD_VALUE 99999999 -#define ACPI_MAX_BCD_DIGITS 8 #define ACPI_MAX_DECIMAL_DIGITS 10 #define ACPI_USE_NATIVE_DIVIDE /* Use compiler native 32-bit divide */ @@ -392,8 +393,6 @@ typedef UINT32 ACPI_INTEGER; typedef UINT64 ACPI_INTEGER; #define ACPI_INTEGER_MAX ACPI_UINT64_MAX #define ACPI_INTEGER_BIT_SIZE 64 -#define ACPI_MAX_BCD_VALUE 9999999999999999 -#define ACPI_MAX_BCD_DIGITS 16 #define ACPI_MAX_DECIMAL_DIGITS 19 #if ACPI_MACHINE_WIDTH == 64 @@ -486,7 +485,7 @@ typedef UINT32 ACPI_TABLE_TYPE; #define ACPI_TABLE_SSDT (ACPI_TABLE_TYPE) 5 #define ACPI_TABLE_XSDT (ACPI_TABLE_TYPE) 6 #define ACPI_TABLE_MAX 6 -#define NUM_ACPI_TABLES (ACPI_TABLE_MAX+1) +#define NUM_ACPI_TABLE_TYPES (ACPI_TABLE_MAX+1) /* @@ -595,13 +594,10 @@ typedef UINT32 ACPI_OBJECT_TYPE; /* - * AcpiEvent Types: Fixed & General Purpose + * Acpi Event Types: Fixed & General Purpose */ typedef UINT32 ACPI_EVENT_TYPE; -#define ACPI_EVENT_FIXED 0 -#define ACPI_EVENT_GPE 1 - /* * Fixed events */ @@ -621,10 +617,13 @@ typedef UINT32 ACPI_EVENT_TYPE; #define ACPI_EVENT_EDGE_TRIGGERED 2 /* - * GPEs + * Flags for GPE and Lock interfaces */ -#define ACPI_EVENT_WAKE_ENABLE 0x1 -#define ACPI_EVENT_WAKE_DISABLE 0x1 +#define ACPI_EVENT_WAKE_ENABLE 0x2 +#define ACPI_EVENT_WAKE_DISABLE 0x2 + +#define ACPI_NOT_ISR 0x1 +#define ACPI_ISR 0x0 /* @@ -830,12 +829,24 @@ typedef struct acpi_system_info UINT32 DebugLevel; UINT32 DebugLayer; UINT32 NumTableTypes; - ACPI_TABLE_INFO TableInfo [NUM_ACPI_TABLES]; + ACPI_TABLE_INFO TableInfo [NUM_ACPI_TABLE_TYPES]; } ACPI_SYSTEM_INFO; /* + * Types specific to the OS service interfaces + */ + +typedef UINT32 +(ACPI_SYSTEM_XFACE *OSD_HANDLER) ( + void *Context); + +typedef void +(ACPI_SYSTEM_XFACE *OSD_EXECUTION_CALLBACK) ( + void *Context); + +/* * Various handlers and callback procedures */ typedef @@ -904,12 +915,38 @@ ACPI_STATUS (*ACPI_WALK_CALLBACK) ( #define ACPI_INTERRUPT_HANDLED 0x01 -/* Structure and flags for AcpiGetDeviceInfo */ +/* Common string version of device HIDs and UIDs */ + +typedef struct acpi_device_id +{ + char Value[ACPI_DEVICE_ID_LENGTH]; + +} ACPI_DEVICE_ID; + +/* Common string version of device CIDs */ + +typedef struct acpi_compatible_id +{ + char Value[ACPI_MAX_CID_LENGTH]; + +} ACPI_COMPATIBLE_ID; + +typedef struct acpi_compatible_id_list +{ + UINT32 Count; + UINT32 Size; + ACPI_COMPATIBLE_ID Id[1]; + +} ACPI_COMPATIBLE_ID_LIST; + -#define ACPI_VALID_HID 0x1 -#define ACPI_VALID_UID 0x2 -#define ACPI_VALID_ADR 0x4 -#define ACPI_VALID_STA 0x8 +/* Structure and flags for AcpiGetObjectInfo */ + +#define ACPI_VALID_STA 0x0001 +#define ACPI_VALID_ADR 0x0002 +#define ACPI_VALID_HID 0x0004 +#define ACPI_VALID_UID 0x0008 +#define ACPI_VALID_CID 0x0010 #define ACPI_COMMON_OBJ_INFO \ @@ -924,15 +961,18 @@ typedef struct acpi_obj_info_header } ACPI_OBJ_INFO_HEADER; +/* Structure returned from Get Object Info */ + typedef struct acpi_device_info { ACPI_COMMON_OBJ_INFO; - UINT32 Valid; /* Are the next bits legit? */ - char HardwareId[9]; /* _HID value if any */ - char UniqueId[9]; /* _UID value if any */ - ACPI_INTEGER Address; /* _ADR value if any */ - UINT32 CurrentStatus; /* _STA value */ + UINT32 Valid; /* Indicates which fields are valid */ + UINT32 CurrentStatus; /* _STA value */ + ACPI_INTEGER Address; /* _ADR value if any */ + ACPI_DEVICE_ID HardwareId; /* _HID value if any */ + ACPI_DEVICE_ID UniqueId; /* _UID value if any */ + ACPI_COMPATIBLE_ID_LIST CompatibilityId; /* List of _CIDs if any */ } ACPI_DEVICE_INFO; @@ -1291,7 +1331,7 @@ typedef struct acpi_resource #define ACPI_NEXT_RESOURCE(Res) (ACPI_RESOURCE *)((UINT8 *) Res + Res->Length) -#ifdef _HW_ALIGNMENT_SUPPORT +#ifdef ACPI_MISALIGNED_TRANSFERS #define ACPI_ALIGN_RESOURCE_SIZE(Length) (Length) #else #define ACPI_ALIGN_RESOURCE_SIZE(Length) ACPI_ROUND_UP_TO_NATIVE_WORD(Length) |