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: aclocal.h - Internal data types used across the 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: aclocal.h - Internal data types used across the 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:
*** 52,62 **** typedef UINT32 ACPI_MUTEX_HANDLE; #define ACPI_GLOBAL_LOCK (ACPI_SEMAPHORE) (-1) /* Total number of aml opcodes defined */ ! #define AML_NUM_OPCODES 0x7F /* Forward declarations */ struct acpi_walk_state; --- 52,62 ---- typedef UINT32 ACPI_MUTEX_HANDLE; #define ACPI_GLOBAL_LOCK (ACPI_SEMAPHORE) (-1) /* Total number of aml opcodes defined */ ! #define AML_NUM_OPCODES 0x81 /* Forward declarations */ struct acpi_walk_state;
*** 211,221 **** #define ANOBJ_ALLOCATED_BUFFER 0x40 /* Method AML buffer is dynamic (InstallMethod) */ #define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */ #define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */ #define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */ - #define ANOBJ_IS_BIT_OFFSET 0x40 /* iASL only: Reference is a bit offset */ #define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */ /* Internal ACPI table management - master table list */ --- 211,220 ----
*** 284,299 **** --- 283,302 ---- { ACPI_NAMESPACE_NODE *RegionNode; ACPI_NAMESPACE_NODE *FieldNode; ACPI_NAMESPACE_NODE *RegisterNode; ACPI_NAMESPACE_NODE *DataRegisterNode; + ACPI_NAMESPACE_NODE *ConnectionNode; + UINT8 *ResourceBuffer; UINT32 BankValue; UINT32 FieldBitPosition; UINT32 FieldBitLength; + UINT16 ResourceLength; UINT8 FieldFlags; UINT8 Attribute; UINT8 FieldType; + UINT8 AccessLength; } ACPI_CREATE_FIELD_INFO; typedef
*** 330,339 **** --- 333,343 ---- #define ACPI_BTYPE_DATA_REFERENCE (ACPI_BTYPE_DATA | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE) #define ACPI_BTYPE_DEVICE_OBJECTS (ACPI_BTYPE_DEVICE | ACPI_BTYPE_THERMAL | ACPI_BTYPE_PROCESSOR) #define ACPI_BTYPE_OBJECTS_AND_REFS 0x0001FFFF /* ARG or LOCAL */ #define ACPI_BTYPE_ALL_OBJECTS 0x0000FFFF + #pragma pack(1) /* * Information structure for ACPI predefined names. * Each entry in the table contains the following items: *
*** 342,352 **** * ExpectedReturnBtypes - Allowed type(s) for the return value */ typedef struct acpi_name_info { char Name[ACPI_NAME_SIZE]; ! UINT8 ParamCount; UINT8 ExpectedBtypes; } ACPI_NAME_INFO; /* --- 346,356 ---- * ExpectedReturnBtypes - Allowed type(s) for the return value */ typedef struct acpi_name_info { char Name[ACPI_NAME_SIZE]; ! UINT16 ArgumentList; UINT8 ExpectedBtypes; } ACPI_NAME_INFO; /*
*** 357,376 **** * The reason for this is to minimize the size of the predefined name table. */ /* * Used for ACPI_PTYPE1_FIXED, ACPI_PTYPE1_VAR, ACPI_PTYPE2, ! * ACPI_PTYPE2_MIN, ACPI_PTYPE2_PKG_COUNT, ACPI_PTYPE2_COUNT */ typedef struct acpi_package_info { UINT8 Type; UINT8 ObjectType1; UINT8 Count1; UINT8 ObjectType2; UINT8 Count2; ! UINT8 Reserved; } ACPI_PACKAGE_INFO; /* Used for ACPI_PTYPE2_FIXED */ --- 361,381 ---- * The reason for this is to minimize the size of the predefined name table. */ /* * Used for ACPI_PTYPE1_FIXED, ACPI_PTYPE1_VAR, ACPI_PTYPE2, ! * ACPI_PTYPE2_MIN, ACPI_PTYPE2_PKG_COUNT, ACPI_PTYPE2_COUNT, ! * ACPI_PTYPE2_FIX_VAR */ typedef struct acpi_package_info { UINT8 Type; UINT8 ObjectType1; UINT8 Count1; UINT8 ObjectType2; UINT8 Count2; ! UINT16 Reserved; } ACPI_PACKAGE_INFO; /* Used for ACPI_PTYPE2_FIXED */
*** 377,386 **** --- 382,392 ---- typedef struct acpi_package_info2 { UINT8 Type; UINT8 Count; UINT8 ObjectType[4]; + UINT8 Reserved; } ACPI_PACKAGE_INFO2; /* Used for ACPI_PTYPE1_OPTION */
*** 388,398 **** { UINT8 Type; UINT8 Count; UINT8 ObjectType[2]; UINT8 TailObjectType; ! UINT8 Reserved; } ACPI_PACKAGE_INFO3; typedef union acpi_predefined_info { --- 394,404 ---- { UINT8 Type; UINT8 Count; UINT8 ObjectType[2]; UINT8 TailObjectType; ! UINT16 Reserved; } ACPI_PACKAGE_INFO3; typedef union acpi_predefined_info {
*** 401,428 **** ACPI_PACKAGE_INFO2 RetInfo2; ACPI_PACKAGE_INFO3 RetInfo3; } ACPI_PREDEFINED_INFO; ! /* Data block used during object validation */ - typedef struct acpi_predefined_data - { - char *Pathname; - const ACPI_PREDEFINED_INFO *Predefined; - union acpi_operand_object *ParentPackage; - UINT32 Flags; - UINT8 NodeFlags; ! } ACPI_PREDEFINED_DATA; ! /* Defines for Flags field above */ ! #define ACPI_OBJECT_REPAIRED 1 /* * Bitmapped return value types * Note: the actual data types must be contiguous, a loop in nspredef.c * depends on this. */ --- 407,437 ---- ACPI_PACKAGE_INFO2 RetInfo2; ACPI_PACKAGE_INFO3 RetInfo3; } ACPI_PREDEFINED_INFO; + /* Reset to default packing */ ! #pragma pack() ! /* Return object auto-repair info */ ! typedef ACPI_STATUS (*ACPI_OBJECT_CONVERTER) ( ! union acpi_operand_object *OriginalObject, ! union acpi_operand_object **ConvertedObject); ! typedef struct acpi_simple_repair_info ! { ! char Name[ACPI_NAME_SIZE]; ! UINT32 UnexpectedBtypes; ! UINT32 PackageIndex; ! ACPI_OBJECT_CONVERTER ObjectConverter; + } ACPI_SIMPLE_REPAIR_INFO; + /* * Bitmapped return value types * Note: the actual data types must be contiguous, a loop in nspredef.c * depends on this. */
*** 442,451 **** --- 451,470 ---- * * Event typedefs and structs * ****************************************************************************/ + /* Dispatch info for each host-installed SCI handler */ + + typedef struct acpi_sci_handler_info + { + struct acpi_sci_handler_info *Next; + ACPI_SCI_HANDLER Address; /* Address of handler */ + void *Context; /* Context to be passed to handler */ + + } ACPI_SCI_HANDLER_INFO; + /* Dispatch info for each GPE -- either a method or handler, cannot be both */ typedef struct acpi_gpe_handler_info { ACPI_GPE_HANDLER Address; /* Address of handler, if any */
*** 454,482 **** UINT8 OriginalFlags; /* Original (pre-handler) GPE info */ BOOLEAN OriginallyEnabled; /* True if GPE was originally enabled */ } ACPI_GPE_HANDLER_INFO; /* * GPE dispatch info. At any time, the GPE can have at most one type * of dispatch - Method, Handler, or Implicit Notify. */ typedef union acpi_gpe_dispatch_info { ACPI_NAMESPACE_NODE *MethodNode; /* Method node for this GPE level */ ! struct acpi_gpe_handler_info *Handler; /* Installed GPE handler */ ! ACPI_NAMESPACE_NODE *DeviceNode; /* Parent _PRW device for implicit notify */ } ACPI_GPE_DISPATCH_INFO; /* * Information about a GPE, one per each GPE in an array. * NOTE: Important to keep this struct as small as possible. */ typedef struct acpi_gpe_event_info { ! union acpi_gpe_dispatch_info Dispatch; /* Either Method or Handler */ struct acpi_gpe_register_info *RegisterInfo; /* Backpointer to register info */ UINT8 Flags; /* Misc info about this GPE */ UINT8 GpeNumber; /* This GPE */ UINT8 RuntimeCount; /* References to a run GPE */ --- 473,510 ---- UINT8 OriginalFlags; /* Original (pre-handler) GPE info */ BOOLEAN OriginallyEnabled; /* True if GPE was originally enabled */ } ACPI_GPE_HANDLER_INFO; + /* Notify info for implicit notify, multiple device objects */ + + typedef struct acpi_gpe_notify_info + { + ACPI_NAMESPACE_NODE *DeviceNode; /* Device to be notified */ + struct acpi_gpe_notify_info *Next; + + } ACPI_GPE_NOTIFY_INFO; + /* * GPE dispatch info. At any time, the GPE can have at most one type * of dispatch - Method, Handler, or Implicit Notify. */ typedef union acpi_gpe_dispatch_info { ACPI_NAMESPACE_NODE *MethodNode; /* Method node for this GPE level */ ! ACPI_GPE_HANDLER_INFO *Handler; /* Installed GPE handler */ ! ACPI_GPE_NOTIFY_INFO *NotifyList; /* List of _PRW devices for implicit notifies */ } ACPI_GPE_DISPATCH_INFO; /* * Information about a GPE, one per each GPE in an array. * NOTE: Important to keep this struct as small as possible. */ typedef struct acpi_gpe_event_info { ! union acpi_gpe_dispatch_info Dispatch; /* Either Method, Handler, or NotifyList */ struct acpi_gpe_register_info *RegisterInfo; /* Backpointer to register info */ UINT8 Flags; /* Misc info about this GPE */ UINT8 GpeNumber; /* This GPE */ UINT8 RuntimeCount; /* References to a run GPE */
*** 708,726 **** typedef ACPI_STATUS (*ACPI_PARSE_UPWARDS) ( struct acpi_walk_state *WalkState); /* * Notify info - used to pass info to the deferred notify * handler/dispatcher. */ typedef struct acpi_notify_info { ACPI_STATE_COMMON ACPI_NAMESPACE_NODE *Node; ! union acpi_operand_object *HandlerObj; } ACPI_NOTIFY_INFO; /* Generic state is union of structs above */ --- 736,765 ---- typedef ACPI_STATUS (*ACPI_PARSE_UPWARDS) ( struct acpi_walk_state *WalkState); + /* Global handlers for AML Notifies */ + + typedef struct acpi_global_notify_handler + { + ACPI_NOTIFY_HANDLER Handler; + void *Context; + + } ACPI_GLOBAL_NOTIFY_HANDLER; + /* * Notify info - used to pass info to the deferred notify * handler/dispatcher. */ typedef struct acpi_notify_info { ACPI_STATE_COMMON + UINT8 HandlerListId; ACPI_NAMESPACE_NODE *Node; ! union acpi_operand_object *HandlerListHead; ! ACPI_GLOBAL_NOTIFY_HANDLER *Global; } ACPI_NOTIFY_INFO; /* Generic state is union of structs above */
*** 748,758 **** --- 787,808 ---- typedef ACPI_STATUS (*ACPI_EXECUTE_OP) ( struct acpi_walk_state *WalkState); + /* Address Range info block */ + typedef struct acpi_address_range + { + struct acpi_address_range *Next; + ACPI_NAMESPACE_NODE *RegionNode; + ACPI_PHYSICAL_ADDRESS StartAddress; + ACPI_PHYSICAL_ADDRESS EndAddress; + + } ACPI_ADDRESS_RANGE; + + /***************************************************************************** * * Parser typedefs and structs * ****************************************************************************/
*** 772,789 **** --- 822,851 ---- UINT8 Class; /* Opcode class */ UINT8 Type; /* Opcode type */ } ACPI_OPCODE_INFO; + /* Structure for Resource Tag information */ + + typedef struct acpi_tag_info + { + UINT32 BitOffset; + UINT32 BitLength; + + } ACPI_TAG_INFO; + + /* Value associated with the parse object */ + typedef union acpi_parse_value { UINT64 Integer; /* Integer constant (Up to 64 bits) */ UINT32 Size; /* bytelist or field size */ char *String; /* NULL terminated string */ UINT8 *Buffer; /* buffer or string */ char *Name; /* NULL terminated string */ union acpi_parse_object *Arg; /* arguments and contained ops */ + ACPI_TAG_INFO Tag; /* Resource descriptor tag info */ } ACPI_PARSE_VALUE; #ifdef ACPI_DISASSEMBLER
*** 806,825 **** UINT8 DisasmFlags; /* Used during AML disassembly */\ UINT8 DisasmOpcode; /* Subtype used for disassembly */\ char AmlOpName[16]) /* Op name (debug only) */ ! #define ACPI_DASM_BUFFER 0x00 ! #define ACPI_DASM_RESOURCE 0x01 ! #define ACPI_DASM_STRING 0x02 ! #define ACPI_DASM_UNICODE 0x03 ! #define ACPI_DASM_EISAID 0x04 ! #define ACPI_DASM_MATCHOP 0x05 ! #define ACPI_DASM_LNOT_PREFIX 0x06 ! #define ACPI_DASM_LNOT_SUFFIX 0x07 ! #define ACPI_DASM_IGNORE 0x08 /* * Generic operation (for example: If, While, Store) */ typedef struct acpi_parse_obj_common { --- 868,890 ---- UINT8 DisasmFlags; /* Used during AML disassembly */\ UINT8 DisasmOpcode; /* Subtype used for disassembly */\ char AmlOpName[16]) /* Op name (debug only) */ ! /* Flags for DisasmFlags field above */ + #define ACPI_DASM_BUFFER 0x00 /* Buffer is a simple data buffer */ + #define ACPI_DASM_RESOURCE 0x01 /* Buffer is a Resource Descriptor */ + #define ACPI_DASM_STRING 0x02 /* Buffer is a ASCII string */ + #define ACPI_DASM_UNICODE 0x03 /* Buffer is a Unicode string */ + #define ACPI_DASM_PLD_METHOD 0x04 /* Buffer is a _PLD method bit-packed buffer */ + #define ACPI_DASM_EISAID 0x05 /* Integer is an EISAID */ + #define ACPI_DASM_MATCHOP 0x06 /* Parent opcode is a Match() operator */ + #define ACPI_DASM_LNOT_PREFIX 0x07 /* Start of a LNotEqual (etc.) pair of opcodes */ + #define ACPI_DASM_LNOT_SUFFIX 0x08 /* End of a LNotEqual (etc.) pair of opcodes */ + #define ACPI_DASM_IGNORE 0x09 /* Not used at this time */ + /* * Generic operation (for example: If, While, Store) */ typedef struct acpi_parse_obj_common {
*** 918,927 **** --- 983,993 ---- /* Parse object DisasmFlags */ #define ACPI_PARSEOP_IGNORE 0x01 #define ACPI_PARSEOP_PARAMLIST 0x02 #define ACPI_PARSEOP_EMPTY_TERMLIST 0x04 + #define ACPI_PARSEOP_PREDEF_CHECKED 0x08 #define ACPI_PARSEOP_SPECIAL 0x10 /***************************************************************************** *
*** 1042,1063 **** #define ACPI_BITPOSITION_ARB_DISABLE 0x00 /* Structs and definitions for _OSI support and I/O port validation */ - #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_ALWAYS_ILLEGAL 0x00 typedef struct acpi_interface_info { char *Name; --- 1108,1117 ----
*** 1067,1076 **** --- 1121,1133 ---- } ACPI_INTERFACE_INFO; #define ACPI_OSI_INVALID 0x01 #define ACPI_OSI_DYNAMIC 0x02 + #define ACPI_OSI_FEATURE 0x04 + #define ACPI_OSI_DEFAULT_INVALID 0x08 + #define ACPI_OSI_OPTIONAL_FEATURE (ACPI_OSI_FEATURE | ACPI_OSI_DEFAULT_INVALID | ACPI_OSI_INVALID) typedef struct acpi_port_info { char *Name; UINT16 Start;
*** 1110,1120 **** #define ACPI_RESOURCE_NAME_DMA 0x28 #define ACPI_RESOURCE_NAME_START_DEPENDENT 0x30 #define ACPI_RESOURCE_NAME_END_DEPENDENT 0x38 #define ACPI_RESOURCE_NAME_IO 0x40 #define ACPI_RESOURCE_NAME_FIXED_IO 0x48 ! #define ACPI_RESOURCE_NAME_RESERVED_S1 0x50 #define ACPI_RESOURCE_NAME_RESERVED_S2 0x58 #define ACPI_RESOURCE_NAME_RESERVED_S3 0x60 #define ACPI_RESOURCE_NAME_RESERVED_S4 0x68 #define ACPI_RESOURCE_NAME_VENDOR_SMALL 0x70 #define ACPI_RESOURCE_NAME_END_TAG 0x78 --- 1167,1177 ---- #define ACPI_RESOURCE_NAME_DMA 0x28 #define ACPI_RESOURCE_NAME_START_DEPENDENT 0x30 #define ACPI_RESOURCE_NAME_END_DEPENDENT 0x38 #define ACPI_RESOURCE_NAME_IO 0x40 #define ACPI_RESOURCE_NAME_FIXED_IO 0x48 ! #define ACPI_RESOURCE_NAME_FIXED_DMA 0x50 #define ACPI_RESOURCE_NAME_RESERVED_S2 0x58 #define ACPI_RESOURCE_NAME_RESERVED_S3 0x60 #define ACPI_RESOURCE_NAME_RESERVED_S4 0x68 #define ACPI_RESOURCE_NAME_VENDOR_SMALL 0x70 #define ACPI_RESOURCE_NAME_END_TAG 0x78
*** 1132,1142 **** #define ACPI_RESOURCE_NAME_ADDRESS32 0x87 #define ACPI_RESOURCE_NAME_ADDRESS16 0x88 #define ACPI_RESOURCE_NAME_EXTENDED_IRQ 0x89 #define ACPI_RESOURCE_NAME_ADDRESS64 0x8A #define ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 0x8B ! #define ACPI_RESOURCE_NAME_LARGE_MAX 0x8B /***************************************************************************** * * Miscellaneous --- 1189,1201 ---- #define ACPI_RESOURCE_NAME_ADDRESS32 0x87 #define ACPI_RESOURCE_NAME_ADDRESS16 0x88 #define ACPI_RESOURCE_NAME_EXTENDED_IRQ 0x89 #define ACPI_RESOURCE_NAME_ADDRESS64 0x8A #define ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 0x8B ! #define ACPI_RESOURCE_NAME_GPIO 0x8C ! #define ACPI_RESOURCE_NAME_SERIAL_BUS 0x8E ! #define ACPI_RESOURCE_NAME_LARGE_MAX 0x8E /***************************************************************************** * * Miscellaneous
*** 1157,1174 **** char *Path; char *InternalPath; struct acpi_external_list *Next; UINT32 Value; UINT16 Length; UINT8 Type; - UINT8 Flags; } ACPI_EXTERNAL_LIST; /* Values for Flags field above */ ! #define ACPI_IPATH_ALLOCATED 0x01 typedef struct acpi_external_file { char *Path; --- 1216,1236 ---- char *Path; char *InternalPath; struct acpi_external_list *Next; UINT32 Value; UINT16 Length; + UINT16 Flags; UINT8 Type; } ACPI_EXTERNAL_LIST; /* Values for Flags field above */ ! #define ACPI_EXT_RESOLVED_REFERENCE 0x01 /* Object was resolved during cross ref */ ! #define ACPI_EXT_ORIGIN_FROM_FILE 0x02 /* External came from a file */ ! #define ACPI_EXT_INTERNAL_PATH_ALLOCATED 0x04 /* Deallocate internal path on completion */ ! #define ACPI_EXT_EXTERNAL_EMITTED 0x08 /* External() statement has been emitted */ typedef struct acpi_external_file { char *Path;
*** 1183,1192 **** --- 1245,1255 ---- * ****************************************************************************/ typedef struct acpi_db_method_info { + ACPI_HANDLE Method; ACPI_HANDLE MainThreadGate; ACPI_HANDLE ThreadCompleteGate; ACPI_HANDLE InfoGate; ACPI_THREAD_ID *Threads; UINT32 NumThreads;
*** 1194,1204 **** UINT32 NumCompleted; char *Name; UINT32 Flags; UINT32 NumLoops; ! char Pathname[128]; char **Args; ACPI_OBJECT_TYPE *Types; /* * Arguments to be passed to method for the command --- 1257,1267 ---- UINT32 NumCompleted; char *Name; UINT32 Flags; UINT32 NumLoops; ! char Pathname[ACPI_DB_LINE_BUFFER_SIZE]; char **Args; ACPI_OBJECT_TYPE *Types; /* * Arguments to be passed to method for the command
*** 1221,1230 **** --- 1284,1294 ---- UINT32 Objects; } ACPI_INTEGRITY_INFO; + #define ACPI_DB_DISABLE_OUTPUT 0x00 #define ACPI_DB_REDIRECTABLE_OUTPUT 0x01 #define ACPI_DB_CONSOLE_OUTPUT 0x02 #define ACPI_DB_DUPLICATE_OUTPUT 0x03
*** 1267,1272 **** --- 1331,1352 ---- #define ACPI_MEM_LIST_NSNODE 1 #define ACPI_MEM_LIST_MAX 1 #define ACPI_NUM_MEM_LISTS 2 + /***************************************************************************** + * + * Info/help support + * + ****************************************************************************/ + + typedef struct ah_predefined_name + { + char *Name; + char *Description; + #ifndef ACPI_ASL_COMPILER + char *Action; + #endif + + } AH_PREDEFINED_NAME; + #endif /* __ACLOCAL_H__ */