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__ */