Print this page
update to acpica-unix2-20140114
update to acpica-unix2-20131218
update to acpica-unix2-20130927
acpica-unix2-20130823
PANKOVs restructure

*** 3,13 **** * Name: actypes.h - Common data types for the entire ACPI subsystem * *****************************************************************************/ /* ! * Copyright (C) 2000 - 2011, Intel Corp. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: --- 3,13 ---- * Name: actypes.h - Common data types for the entire ACPI subsystem * *****************************************************************************/ /* ! * Copyright (C) 2000 - 2014, Intel Corp. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met:
*** 293,318 **** #endif /* * Some compilers complain about unused variables. Sometimes we don't want to * use all the variables (for example, _AcpiModuleName). This allows us ! * to to tell the compiler in a per-variable manner that a variable * is unused */ #ifndef ACPI_UNUSED_VAR #define ACPI_UNUSED_VAR #endif /* ! * All ACPICA functions that are available to the rest of the kernel are ! * tagged with this macro which can be defined as appropriate for the host. */ #ifndef ACPI_EXPORT_SYMBOL #define ACPI_EXPORT_SYMBOL(Symbol) #endif /****************************************************************************** * * ACPI Specification constants (Do not change unless the specification changes) * *****************************************************************************/ --- 293,363 ---- #endif /* * Some compilers complain about unused variables. Sometimes we don't want to * use all the variables (for example, _AcpiModuleName). This allows us ! * to tell the compiler in a per-variable manner that a variable * is unused */ #ifndef ACPI_UNUSED_VAR #define ACPI_UNUSED_VAR #endif /* ! * All ACPICA external functions that are available to the rest of the kernel ! * are tagged with thes macros which can be defined as appropriate for the host. ! * ! * Notes: ! * ACPI_EXPORT_SYMBOL_INIT is used for initialization and termination ! * interfaces that may need special processing. ! * ACPI_EXPORT_SYMBOL is used for all other public external functions. */ + #ifndef ACPI_EXPORT_SYMBOL_INIT + #define ACPI_EXPORT_SYMBOL_INIT(Symbol) + #endif + #ifndef ACPI_EXPORT_SYMBOL #define ACPI_EXPORT_SYMBOL(Symbol) #endif + /* + * Compiler/Clibrary-dependent debug initialization. Used for ACPICA + * utilities only. + */ + #ifndef ACPI_DEBUG_INITIALIZE + #define ACPI_DEBUG_INITIALIZE() + #endif + + /******************************************************************************* + * + * Configuration + * + ******************************************************************************/ + + #ifdef ACPI_DBG_TRACK_ALLOCATIONS + /* + * Memory allocation tracking (used by AcpiExec to detect memory leaks) + */ + #define ACPI_MEM_PARAMETERS _COMPONENT, _AcpiModuleName, __LINE__ + #define ACPI_ALLOCATE(a) AcpiUtAllocateAndTrack ((ACPI_SIZE) (a), ACPI_MEM_PARAMETERS) + #define ACPI_ALLOCATE_ZEROED(a) AcpiUtAllocateZeroedAndTrack ((ACPI_SIZE) (a), ACPI_MEM_PARAMETERS) + #define ACPI_FREE(a) AcpiUtFreeAndTrack (a, ACPI_MEM_PARAMETERS) + #define ACPI_MEM_TRACKING(a) a + + #else + /* + * Normal memory allocation directly via the OS services layer + */ + #define ACPI_ALLOCATE(a) AcpiOsAllocate ((ACPI_SIZE) (a)) + #define ACPI_ALLOCATE_ZEROED(a) AcpiOsAllocateZeroed ((ACPI_SIZE) (a)) + #define ACPI_FREE(a) AcpiOsFree (a) + #define ACPI_MEM_TRACKING(a) + + #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ + + /****************************************************************************** * * ACPI Specification constants (Do not change unless the specification changes) * *****************************************************************************/
*** 325,334 **** --- 370,380 ---- #define ACPI_GPE_REGISTER_WIDTH 8 #define ACPI_PM1_REGISTER_WIDTH 16 #define ACPI_PM2_REGISTER_WIDTH 8 #define ACPI_PM_TIMER_WIDTH 32 + #define ACPI_RESET_REGISTER_WIDTH 8 /* Names within the namespace are 4 bytes long */ #define ACPI_NAME_SIZE 4 #define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
*** 344,354 **** #define PCI_ROOT_HID_STRING "PNP0A03" #define PCI_EXPRESS_ROOT_HID_STRING "PNP0A08" /* PM Timer ticks per second (HZ) */ ! #define PM_TIMER_FREQUENCY 3579545 /******************************************************************************* * * Independent types --- 390,400 ---- #define PCI_ROOT_HID_STRING "PNP0A03" #define PCI_EXPRESS_ROOT_HID_STRING "PNP0A08" /* PM Timer ticks per second (HZ) */ ! #define ACPI_PM_TIMER_FREQUENCY 3579545 /******************************************************************************* * * Independent types
*** 379,388 **** --- 425,450 ---- typedef UINT32 ACPI_NAME; /* 4-byte ACPI name */ typedef char * ACPI_STRING; /* Null terminated ASCII string */ typedef void * ACPI_HANDLE; /* Actually a ptr to a NS Node */ + /* Time constants for timer calculations */ + + #define ACPI_MSEC_PER_SEC 1000L + + #define ACPI_USEC_PER_MSEC 1000L + #define ACPI_USEC_PER_SEC 1000000L + + #define ACPI_100NSEC_PER_USEC 10L + #define ACPI_100NSEC_PER_MSEC 10000L + #define ACPI_100NSEC_PER_SEC 10000000L + + #define ACPI_NSEC_PER_USEC 1000L + #define ACPI_NSEC_PER_MSEC 1000000L + #define ACPI_NSEC_PER_SEC 1000000000L + + /* Owner IDs are used to track namespace nodes for selective deletion */ typedef UINT8 ACPI_OWNER_ID; #define ACPI_OWNER_ID_MAX 0xFF
*** 452,468 **** --- 514,539 ---- #define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) NULL) #define ACPI_OFFSET(d, f) (ACPI_SIZE) ACPI_PTR_DIFF (&(((d *)0)->f), (void *) NULL) #define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) #define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) + /* Optimizations for 4-character (32-bit) ACPI_NAME manipulation */ + #ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED #define ACPI_COMPARE_NAME(a,b) (*ACPI_CAST_PTR (UINT32, (a)) == *ACPI_CAST_PTR (UINT32, (b))) + #define ACPI_MOVE_NAME(dest,src) (*ACPI_CAST_PTR (UINT32, (dest)) = *ACPI_CAST_PTR (UINT32, (src))) #else #define ACPI_COMPARE_NAME(a,b) (!ACPI_STRNCMP (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAME_SIZE)) + #define ACPI_MOVE_NAME(dest,src) (ACPI_STRNCPY (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAME_SIZE)) #endif + /* Support for the special RSDP signature (8 characters) */ + #define ACPI_VALIDATE_RSDP_SIG(a) (!ACPI_STRNCMP (ACPI_CAST_PTR (char, (a)), ACPI_SIG_RSDP, 8)) + #define ACPI_MAKE_RSDP_SIG(dest) (ACPI_MEMCPY (ACPI_CAST_PTR (char, (dest)), ACPI_SIG_RSDP, 8)) + + /******************************************************************************* * * Miscellaneous constants * ******************************************************************************/
*** 532,543 **** #define ACPI_NOTIFY_POWER_FAULT (UINT8) 0x07 #define ACPI_NOTIFY_CAPABILITIES_CHECK (UINT8) 0x08 #define ACPI_NOTIFY_DEVICE_PLD_CHECK (UINT8) 0x09 #define ACPI_NOTIFY_RESERVED (UINT8) 0x0A #define ACPI_NOTIFY_LOCALITY_UPDATE (UINT8) 0x0B ! #define ACPI_NOTIFY_MAX 0x0B /* * 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 ObjectType() operator (See the ACPI Spec). Therefore, --- 603,615 ---- #define ACPI_NOTIFY_POWER_FAULT (UINT8) 0x07 #define ACPI_NOTIFY_CAPABILITIES_CHECK (UINT8) 0x08 #define ACPI_NOTIFY_DEVICE_PLD_CHECK (UINT8) 0x09 #define ACPI_NOTIFY_RESERVED (UINT8) 0x0A #define ACPI_NOTIFY_LOCALITY_UPDATE (UINT8) 0x0B + #define ACPI_NOTIFY_SHUTDOWN_REQUEST (UINT8) 0x0C ! #define ACPI_NOTIFY_MAX 0x0C /* * 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 ObjectType() operator (See the ACPI Spec). Therefore,
*** 589,599 **** #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 ACPI_OPERAND_OBJECT */ #define ACPI_TYPE_LOCAL_EXTRA 0x1C #define ACPI_TYPE_LOCAL_DATA 0x1D #define ACPI_TYPE_LOCAL_MAX 0x1D --- 661,671 ---- #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 object of ACPI_OPERAND_OBJECT */ #define ACPI_TYPE_LOCAL_EXTRA 0x1C #define ACPI_TYPE_LOCAL_DATA 0x1D #define ACPI_TYPE_LOCAL_MAX 0x1D
*** 649,665 **** #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 - /* Actions for AcpiSetGpe, AcpiGpeWakeup, AcpiHwLowSetGpe */ #define ACPI_GPE_ENABLE 0 #define ACPI_GPE_DISABLE 1 #define ACPI_GPE_CONDITIONAL_ENABLE 2 --- 721,730 ----
*** 698,711 **** #define ACPI_SYSTEM_NOTIFY 0x1 #define ACPI_DEVICE_NOTIFY 0x2 #define ACPI_ALL_NOTIFY (ACPI_SYSTEM_NOTIFY | ACPI_DEVICE_NOTIFY) #define ACPI_MAX_NOTIFY_HANDLER_TYPE 0x3 ! #define ACPI_MAX_SYS_NOTIFY 0x7f /* Address Space (Operation Region) Types */ typedef UINT8 ACPI_ADR_SPACE_TYPE; #define ACPI_ADR_SPACE_SYSTEM_MEMORY (ACPI_ADR_SPACE_TYPE) 0 --- 763,781 ---- #define ACPI_SYSTEM_NOTIFY 0x1 #define ACPI_DEVICE_NOTIFY 0x2 #define ACPI_ALL_NOTIFY (ACPI_SYSTEM_NOTIFY | ACPI_DEVICE_NOTIFY) #define ACPI_MAX_NOTIFY_HANDLER_TYPE 0x3 + #define ACPI_NUM_NOTIFY_TYPES 2 ! #define ACPI_MAX_SYS_NOTIFY 0x7F ! #define ACPI_MAX_DEVICE_SPECIFIC_NOTIFY 0xBF + #define ACPI_SYSTEM_HANDLER_LIST 0 /* Used as index, must be SYSTEM_NOTIFY -1 */ + #define ACPI_DEVICE_HANDLER_LIST 1 /* Used as index, must be DEVICE_NOTIFY -1 */ + /* Address Space (Operation Region) Types */ typedef UINT8 ACPI_ADR_SPACE_TYPE; #define ACPI_ADR_SPACE_SYSTEM_MEMORY (ACPI_ADR_SPACE_TYPE) 0
*** 714,725 **** #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_IPMI (ACPI_ADR_SPACE_TYPE) 7 ! #define ACPI_NUM_PREDEFINED_REGIONS 8 /* * Special Address Spaces * * Note: A Data Table region is a special type of operation region --- 784,798 ---- #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_IPMI (ACPI_ADR_SPACE_TYPE) 7 + #define ACPI_ADR_SPACE_GPIO (ACPI_ADR_SPACE_TYPE) 8 + #define ACPI_ADR_SPACE_GSBUS (ACPI_ADR_SPACE_TYPE) 9 + #define ACPI_ADR_SPACE_PLATFORM_COMM (ACPI_ADR_SPACE_TYPE) 10 ! #define ACPI_NUM_PREDEFINED_REGIONS 11 /* * Special Address Spaces * * Note: A Data Table region is a special type of operation region
*** 788,797 **** --- 861,883 ---- #define ACPI_ENABLE_EVENT 1 #define ACPI_DISABLE_EVENT 0 + /* Sleep function dispatch */ + + typedef ACPI_STATUS (*ACPI_SLEEP_FUNCTION) ( + UINT8 SleepState); + + typedef struct acpi_sleep_functions + { + ACPI_SLEEP_FUNCTION LegacyFunction; + ACPI_SLEEP_FUNCTION ExtendedFunction; + + } ACPI_SLEEP_FUNCTIONS; + + /* * External ACPI object definition */ /*
*** 866,877 **** /* * 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) typedef struct acpi_buffer { ACPI_SIZE Length; /* Length in bytes of the buffer */ void *Pointer; /* pointer to buffer */ --- 952,963 ---- /* * Miscellaneous common Data Structures used by the interfaces */ #define ACPI_NO_BUFFER 0 ! #define ACPI_ALLOCATE_BUFFER (ACPI_SIZE) (-1) /* Let ACPICA allocate buffer */ ! #define ACPI_ALLOCATE_LOCAL_BUFFER (ACPI_SIZE) (-2) /* For internal use only (enables tracking) */ typedef struct acpi_buffer { ACPI_SIZE Length; /* Length in bytes of the buffer */ void *Pointer; /* pointer to buffer */
*** 957,966 **** --- 1043,1056 ---- /* * Various handlers and callback procedures */ typedef + UINT32 (*ACPI_SCI_HANDLER) ( + void *Context); + + typedef void (*ACPI_GBL_EVENT_HANDLER) ( UINT32 EventType, ACPI_HANDLE Device, UINT32 EventNumber, void *Context);
*** 1028,1037 **** --- 1118,1138 ---- void *HandlerContext, void *RegionContext); #define ACPI_DEFAULT_HANDLER NULL + /* Special Context data for GenericSerialBus/GeneralPurposeIo (ACPI 5.0) */ + + typedef struct acpi_connection_info + { + UINT8 *Connection; + UINT16 Length; + UINT8 AccessLength; + + } ACPI_CONNECTION_INFO; + + typedef ACPI_STATUS (*ACPI_ADR_SPACE_SETUP) ( ACPI_HANDLE RegionHandle, UINT32 Function, void *HandlerContext,
*** 1070,1095 **** /* Length of UUID (string) values */ #define ACPI_UUID_LENGTH 16 ! /* Structures used for device/processor HID, UID, CID */ ! typedef struct acpi_device_id { UINT32 Length; /* Length of string + null */ char *String; ! } ACPI_DEVICE_ID; ! typedef struct acpi_device_id_list { UINT32 Count; /* Number of IDs in Ids array */ UINT32 ListSize; /* Size of list, including ID strings */ ! ACPI_DEVICE_ID Ids[1]; /* ID array */ ! } ACPI_DEVICE_ID_LIST; /* * Structure returned from AcpiGetObjectInfo. * Optimized for both 32- and 64-bit builds */ --- 1171,1196 ---- /* Length of UUID (string) values */ #define ACPI_UUID_LENGTH 16 ! /* Structures used for device/processor HID, UID, CID, and SUB */ ! typedef struct acpi_pnp_device_id { UINT32 Length; /* Length of string + null */ char *String; ! } ACPI_PNP_DEVICE_ID; ! typedef struct acpi_pnp_device_id_list { UINT32 Count; /* Number of IDs in Ids array */ UINT32 ListSize; /* Size of list, including ID strings */ ! ACPI_PNP_DEVICE_ID Ids[1]; /* ID array */ ! } ACPI_PNP_DEVICE_ID_LIST; /* * Structure returned from AcpiGetObjectInfo. * Optimized for both 32- and 64-bit builds */
*** 1103,1115 **** UINT8 Flags; /* Miscellaneous info */ UINT8 HighestDstates[4]; /* _SxD values: 0xFF indicates not valid */ UINT8 LowestDstates[5]; /* _SxW values: 0xFF indicates not valid */ UINT32 CurrentStatus; /* _STA value */ UINT64 Address; /* _ADR value */ ! ACPI_DEVICE_ID HardwareId; /* _HID value */ ! ACPI_DEVICE_ID UniqueId; /* _UID value */ ! ACPI_DEVICE_ID_LIST CompatibleIdList; /* _CID list <must be last> */ } ACPI_DEVICE_INFO; /* Values for Flags field above (AcpiGetObjectInfo) */ --- 1204,1217 ---- UINT8 Flags; /* Miscellaneous info */ UINT8 HighestDstates[4]; /* _SxD values: 0xFF indicates not valid */ UINT8 LowestDstates[5]; /* _SxW values: 0xFF indicates not valid */ UINT32 CurrentStatus; /* _STA value */ UINT64 Address; /* _ADR value */ ! ACPI_PNP_DEVICE_ID HardwareId; /* _HID value */ ! ACPI_PNP_DEVICE_ID UniqueId; /* _UID value */ ! ACPI_PNP_DEVICE_ID SubsystemId; /* _SUB value */ ! ACPI_PNP_DEVICE_ID_LIST CompatibleIdList; /* _CID list <must be last> */ } ACPI_DEVICE_INFO; /* Values for Flags field above (AcpiGetObjectInfo) */
*** 1119,1133 **** #define ACPI_VALID_STA 0x01 #define ACPI_VALID_ADR 0x02 #define ACPI_VALID_HID 0x04 #define ACPI_VALID_UID 0x08 ! #define ACPI_VALID_CID 0x10 ! #define ACPI_VALID_SXDS 0x20 ! #define ACPI_VALID_SXWS 0x40 ! /* Flags for _STA method */ #define ACPI_STA_DEVICE_PRESENT 0x01 #define ACPI_STA_DEVICE_ENABLED 0x02 #define ACPI_STA_DEVICE_UI 0x04 #define ACPI_STA_DEVICE_FUNCTIONING 0x08 --- 1221,1236 ---- #define ACPI_VALID_STA 0x01 #define ACPI_VALID_ADR 0x02 #define ACPI_VALID_HID 0x04 #define ACPI_VALID_UID 0x08 ! #define ACPI_VALID_SUB 0x10 ! #define ACPI_VALID_CID 0x20 ! #define ACPI_VALID_SXDS 0x40 ! #define ACPI_VALID_SXWS 0x80 ! /* Flags for _STA return value (CurrentStatus above) */ #define ACPI_STA_DEVICE_PRESENT 0x01 #define ACPI_STA_DEVICE_ENABLED 0x02 #define ACPI_STA_DEVICE_UI 0x04 #define ACPI_STA_DEVICE_FUNCTIONING 0x08
*** 1165,1175 **** char *ListName; void *ListHead; UINT16 ObjectSize; UINT16 MaxDepth; UINT16 CurrentDepth; - UINT16 LinkOffset; #ifdef ACPI_DBG_TRACK_ALLOCATIONS /* Statistics for debug memory tracking only */ --- 1268,1277 ----
*** 1183,1188 **** --- 1285,1318 ---- #endif } ACPI_MEMORY_LIST; + /* Definitions of _OSI support */ + + #define ACPI_VENDOR_STRINGS 0x01 + #define ACPI_FEATURE_STRINGS 0x02 + #define ACPI_ENABLE_INTERFACES 0x00 + #define ACPI_DISABLE_INTERFACES 0x04 + + #define ACPI_DISABLE_ALL_VENDOR_STRINGS (ACPI_DISABLE_INTERFACES | ACPI_VENDOR_STRINGS) + #define ACPI_DISABLE_ALL_FEATURE_STRINGS (ACPI_DISABLE_INTERFACES | ACPI_FEATURE_STRINGS) + #define ACPI_DISABLE_ALL_STRINGS (ACPI_DISABLE_INTERFACES | ACPI_VENDOR_STRINGS | ACPI_FEATURE_STRINGS) + #define ACPI_ENABLE_ALL_VENDOR_STRINGS (ACPI_ENABLE_INTERFACES | ACPI_VENDOR_STRINGS) + #define ACPI_ENABLE_ALL_FEATURE_STRINGS (ACPI_ENABLE_INTERFACES | ACPI_FEATURE_STRINGS) + #define ACPI_ENABLE_ALL_STRINGS (ACPI_ENABLE_INTERFACES | ACPI_VENDOR_STRINGS | ACPI_FEATURE_STRINGS) + + #define ACPI_OSI_WIN_2000 0x01 + #define ACPI_OSI_WIN_XP 0x02 + #define ACPI_OSI_WIN_XP_SP1 0x03 + #define ACPI_OSI_WINSRV_2003 0x04 + #define ACPI_OSI_WIN_XP_SP2 0x05 + #define ACPI_OSI_WINSRV_2003_SP1 0x06 + #define ACPI_OSI_WIN_VISTA 0x07 + #define ACPI_OSI_WINSRV_2008 0x08 + #define ACPI_OSI_WIN_VISTA_SP1 0x09 + #define ACPI_OSI_WIN_VISTA_SP2 0x0A + #define ACPI_OSI_WIN_7 0x0B + #define ACPI_OSI_WIN_8 0x0C + + #endif /* __ACTYPES_H__ */