mirror of
https://github.com/acpica/acpica/
synced 2025-02-13 20:14:15 +03:00
New init xfaces; JIT CreateField evaluation.
date 2000.09.11.15.15.00; author rmoore1; state Exp;
This commit is contained in:
parent
802a99a178
commit
afae222379
@ -1,7 +1,7 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acinterp.h - Interpreter subcomponent prototypes and defines
|
||||
* $Revision: 1.80 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -141,7 +141,7 @@
|
||||
ACPI_STATUS
|
||||
AcpiAmlResolveOperands (
|
||||
UINT16 Opcode,
|
||||
ACPI_OBJECT_INTERNAL **StackPtr,
|
||||
ACPI_OPERAND_OBJECT **StackPtr,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
@ -155,10 +155,9 @@ AcpiAmlLoadTable (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecuteMethod (
|
||||
ACPI_NAMED_OBJECT *MethodEntry,
|
||||
ACPI_OBJECT_INTERNAL **Params,
|
||||
ACPI_OBJECT_INTERNAL **ReturnObjDesc);
|
||||
|
||||
ACPI_NAMESPACE_NODE *MethodNode,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObjDesc);
|
||||
|
||||
|
||||
/*
|
||||
@ -168,7 +167,7 @@ AcpiAmlExecuteMethod (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlReadField (
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
void *Buffer,
|
||||
UINT32 BufferLength,
|
||||
UINT32 ByteLength,
|
||||
@ -178,7 +177,7 @@ AcpiAmlReadField (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlWriteField (
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
void *Buffer,
|
||||
UINT32 BufferLength,
|
||||
UINT32 ByteLength,
|
||||
@ -188,20 +187,20 @@ AcpiAmlWriteField (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlSetupField (
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc,
|
||||
ACPI_OBJECT_INTERNAL *RgnDesc,
|
||||
INT32 FieldBitWidth);
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT *RgnDesc,
|
||||
UINT32 FieldBitWidth);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlReadFieldData (
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
UINT32 FieldByteOffset,
|
||||
UINT32 FieldBitWidth,
|
||||
UINT32 *Value);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlAccessNamedField (
|
||||
INT32 Mode,
|
||||
UINT32 Mode,
|
||||
ACPI_HANDLE NamedField,
|
||||
void *Buffer,
|
||||
UINT32 Length);
|
||||
@ -212,7 +211,9 @@ AcpiAmlAccessNamedField (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecCreateField (
|
||||
UINT16 Opcode,
|
||||
UINT8 *AmlPtr,
|
||||
UINT32 AmlLength,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
@ -227,12 +228,12 @@ AcpiAmlExecFatal (
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecIndex (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OBJECT_INTERNAL **ReturnDesc);
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecMatch (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OBJECT_INTERNAL **ReturnDesc);
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecCreateMutex (
|
||||
@ -240,12 +241,12 @@ AcpiAmlExecCreateMutex (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecCreateProcessor (
|
||||
ACPI_GENERIC_OP *Op,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_HANDLE ProcessorNTE);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecCreatePowerResource (
|
||||
ACPI_GENERIC_OP *Op,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_HANDLE ProcessorNTE);
|
||||
|
||||
ACPI_STATUS
|
||||
@ -277,7 +278,7 @@ AcpiAmlExecCreateMethod (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlPrepDefFieldValue (
|
||||
ACPI_NAMED_OBJECT *ThisEntry,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_HANDLE Region,
|
||||
UINT8 FieldFlags,
|
||||
UINT8 FieldAttribute,
|
||||
@ -286,7 +287,7 @@ AcpiAmlPrepDefFieldValue (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlPrepBankFieldValue (
|
||||
ACPI_NAMED_OBJECT *ThisEntry,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_HANDLE Region,
|
||||
ACPI_HANDLE BankReg,
|
||||
UINT32 BankVal,
|
||||
@ -297,7 +298,7 @@ AcpiAmlPrepBankFieldValue (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlPrepIndexFieldValue (
|
||||
ACPI_NAMED_OBJECT *ThisEntry,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_HANDLE IndexReg,
|
||||
ACPI_HANDLE DataReg,
|
||||
UINT8 FieldFlags,
|
||||
@ -305,11 +306,6 @@ AcpiAmlPrepIndexFieldValue (
|
||||
UINT32 FieldPosition,
|
||||
UINT32 FieldLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlPrepOperands (
|
||||
INT8 *Types,
|
||||
ACPI_OBJECT_INTERNAL **StackPtr);
|
||||
|
||||
|
||||
/*
|
||||
* amsystem - Interface to OS services
|
||||
@ -321,8 +317,8 @@ AcpiAmlSystemThreadId (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlSystemDoNotifyOp (
|
||||
ACPI_OBJECT_INTERNAL *Value,
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc);
|
||||
ACPI_OPERAND_OBJECT *Value,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
void
|
||||
AcpiAmlSystemDoSuspend(
|
||||
@ -334,25 +330,25 @@ AcpiAmlSystemDoStall (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlSystemAcquireMutex(
|
||||
ACPI_OBJECT_INTERNAL *Time,
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc);
|
||||
ACPI_OPERAND_OBJECT *Time,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlSystemReleaseMutex(
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc);
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlSystemSignalEvent(
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc);
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlSystemWaitEvent(
|
||||
ACPI_OBJECT_INTERNAL *Time,
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc);
|
||||
ACPI_OPERAND_OBJECT *Time,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlSystemResetEvent(
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc);
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlSystemWaitSemaphore (
|
||||
@ -373,13 +369,13 @@ ACPI_STATUS
|
||||
AcpiAmlExecMonadic2 (
|
||||
UINT16 Opcode,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OBJECT_INTERNAL **ReturnDesc);
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecMonadic2R (
|
||||
UINT16 Opcode,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OBJECT_INTERNAL **ReturnDesc);
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
|
||||
/*
|
||||
@ -395,19 +391,19 @@ ACPI_STATUS
|
||||
AcpiAmlExecDyadic2 (
|
||||
UINT16 Opcode,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OBJECT_INTERNAL **ReturnDesc);
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecDyadic2R (
|
||||
UINT16 Opcode,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OBJECT_INTERNAL **ReturnDesc);
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecDyadic2S (
|
||||
UINT16 Opcode,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OBJECT_INTERNAL **ReturnDesc);
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
|
||||
/*
|
||||
@ -416,22 +412,22 @@ AcpiAmlExecDyadic2S (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlResolveToValue (
|
||||
ACPI_OBJECT_INTERNAL **StackPtr,
|
||||
ACPI_OPERAND_OBJECT **StackPtr,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlResolveEntryToValue (
|
||||
ACPI_NAMED_OBJECT **StackPtr);
|
||||
AcpiAmlResolveNodeToValue (
|
||||
ACPI_NAMESPACE_NODE **StackPtr);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlResolveObjectToValue (
|
||||
ACPI_OBJECT_INTERNAL **StackPtr,
|
||||
ACPI_OPERAND_OBJECT **StackPtr,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlGetFieldUnitValue (
|
||||
ACPI_OBJECT_INTERNAL *FieldDesc,
|
||||
ACPI_OBJECT_INTERNAL *ResultDesc);
|
||||
ACPI_OPERAND_OBJECT *FieldDesc,
|
||||
ACPI_OPERAND_OBJECT *ResultDesc);
|
||||
|
||||
|
||||
/*
|
||||
@ -440,34 +436,34 @@ AcpiAmlGetFieldUnitValue (
|
||||
|
||||
void
|
||||
AcpiAmlShowHexValue (
|
||||
INT32 ByteCount,
|
||||
UINT32 ByteCount,
|
||||
UINT8 *AmlPtr,
|
||||
INT32 LeadSpace);
|
||||
UINT32 LeadSpace);
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlDumpOperand (
|
||||
ACPI_OBJECT_INTERNAL *EntryDesc);
|
||||
ACPI_OPERAND_OBJECT *EntryDesc);
|
||||
|
||||
void
|
||||
AcpiAmlDumpOperands (
|
||||
ACPI_OBJECT_INTERNAL **Operands,
|
||||
ACPI_OPERAND_OBJECT **Operands,
|
||||
OPERATING_MODE InterpreterMode,
|
||||
INT8 *Ident,
|
||||
INT32 NumLevels,
|
||||
INT8 *Note,
|
||||
INT8 *ModuleName,
|
||||
INT32 LineNumber);
|
||||
NATIVE_CHAR *Ident,
|
||||
UINT32 NumLevels,
|
||||
NATIVE_CHAR *Note,
|
||||
NATIVE_CHAR *ModuleName,
|
||||
UINT32 LineNumber);
|
||||
|
||||
void
|
||||
AcpiAmlDumpObjectDescriptor (
|
||||
ACPI_OBJECT_INTERNAL *Object,
|
||||
ACPI_OPERAND_OBJECT *Object,
|
||||
UINT32 Flags);
|
||||
|
||||
|
||||
void
|
||||
AcpiAmlDumpAcpiNamedObject (
|
||||
ACPI_NAMED_OBJECT *Entry,
|
||||
AcpiAmlDumpNode (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
UINT32 Flags);
|
||||
|
||||
|
||||
@ -475,25 +471,25 @@ AcpiAmlDumpAcpiNamedObject (
|
||||
* amnames - interpreter/scanner name load/execute
|
||||
*/
|
||||
|
||||
INT8 *
|
||||
NATIVE_CHAR *
|
||||
AcpiAmlAllocateNameString (
|
||||
UINT32 PrefixCount,
|
||||
UINT32 NumNameSegs);
|
||||
|
||||
INT32
|
||||
UINT32
|
||||
AcpiAmlGoodChar (
|
||||
INT32 Character);
|
||||
UINT32 Character);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecNameSegment (
|
||||
UINT8 **InAmlAddress,
|
||||
INT8 *NameString);
|
||||
NATIVE_CHAR *NameString);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlGetNameString (
|
||||
OBJECT_TYPE_INTERNAL DataType,
|
||||
UINT8 *InAmlAddress,
|
||||
INT8 **OutNameString,
|
||||
NATIVE_CHAR **OutNameString,
|
||||
UINT32 *OutNameLength);
|
||||
|
||||
ACPI_STATUS
|
||||
@ -508,20 +504,20 @@ AcpiAmlDoName (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlExecStore (
|
||||
ACPI_OBJECT_INTERNAL *ValDesc,
|
||||
ACPI_OBJECT_INTERNAL *DestDesc,
|
||||
ACPI_OPERAND_OBJECT *ValDesc,
|
||||
ACPI_OPERAND_OBJECT *DestDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlStoreObjectToObject (
|
||||
ACPI_OBJECT_INTERNAL *ValDesc,
|
||||
ACPI_OBJECT_INTERNAL *DestDesc,
|
||||
ACPI_OPERAND_OBJECT *ValDesc,
|
||||
ACPI_OPERAND_OBJECT *DestDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlStoreObjectToNte (
|
||||
ACPI_OBJECT_INTERNAL *ValDesc,
|
||||
ACPI_NAMED_OBJECT *Entry,
|
||||
AcpiAmlStoreObjectToNode (
|
||||
ACPI_OPERAND_OBJECT *ValDesc,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
@ -553,20 +549,20 @@ UINT32
|
||||
AcpiAmlBufSeq (
|
||||
void);
|
||||
|
||||
INT32
|
||||
UINT32
|
||||
AcpiAmlDigitsNeeded (
|
||||
INT32 Value,
|
||||
INT32 Base);
|
||||
UINT32 Value,
|
||||
UINT32 Base);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlEisaIdToString (
|
||||
UINT32 NumericId,
|
||||
INT8 *OutString);
|
||||
NATIVE_CHAR *OutString);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAmlBuildCopyInternalPackageObject (
|
||||
ACPI_OBJECT_INTERNAL *SourceObj,
|
||||
ACPI_OBJECT_INTERNAL *DestObj,
|
||||
ACPI_OPERAND_OBJECT *SourceObj,
|
||||
ACPI_OPERAND_OBJECT *DestObj,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: aclocal.h - Internal data types used across the ACPI subsystem
|
||||
* $Revision: 1.78 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -126,11 +126,12 @@ typedef UINT32 ACPI_MUTEX_HANDLE;
|
||||
|
||||
/* Object descriptor types */
|
||||
|
||||
#define ACPI_DESC_TYPE_INTERNAL 0xAA
|
||||
#define ACPI_DESC_TYPE_PARSER 0xBB
|
||||
#define ACPI_DESC_TYPE_STATE 0xCC
|
||||
#define ACPI_DESC_TYPE_WALK 0xDD
|
||||
#define ACPI_DESC_TYPE_NAMED 0xEE
|
||||
#define ACPI_CACHED_OBJECT 0x11 /* ORed in when object is cached */
|
||||
#define ACPI_DESC_TYPE_STATE 0x22
|
||||
#define ACPI_DESC_TYPE_WALK 0x44
|
||||
#define ACPI_DESC_TYPE_PARSER 0x66
|
||||
#define ACPI_DESC_TYPE_INTERNAL 0x88
|
||||
#define ACPI_DESC_TYPE_NAMED 0xAA
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
@ -169,7 +170,7 @@ typedef UINT32 ACPI_MUTEX_HANDLE;
|
||||
|
||||
/* Names for the mutexes used in the subsystem */
|
||||
|
||||
static INT8 *AcpiGbl_MutexNames[] =
|
||||
static NATIVE_CHAR *AcpiGbl_MutexNames[] =
|
||||
{
|
||||
"ACPI_MTX_Hardware",
|
||||
"ACPI_MTX_Memory",
|
||||
@ -215,7 +216,7 @@ typedef UINT16 ACPI_OWNER_ID;
|
||||
|
||||
/* TBD: [Restructure] get rid of the need for this! */
|
||||
|
||||
#define TABLE_ID_DSDT (ACPI_OWNER_ID) 0xD1D1
|
||||
#define TABLE_ID_DSDT (ACPI_OWNER_ID) 0x8000
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
@ -228,58 +229,45 @@ typedef UINT16 ACPI_OWNER_ID;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
IMODE_LOAD_PASS1 = 0x01,
|
||||
IMODE_LOAD_PASS2 = 0x02,
|
||||
IMODE_EXECUTE = 0x0E
|
||||
IMODE_LOAD_PASS1 = 0x01,
|
||||
IMODE_LOAD_PASS2 = 0x02,
|
||||
IMODE_EXECUTE = 0x0E
|
||||
|
||||
} OPERATING_MODE;
|
||||
|
||||
|
||||
/*
|
||||
* The AcpiNamedObject describes a named object that appears in the AML
|
||||
* An AcpiNameTable is used to store AcpiNamedObjects.
|
||||
* The Node describes a named object that appears in the AML
|
||||
* An AcpiNode is used to store Nodes.
|
||||
*
|
||||
* DataType is used to differentiate between internal descriptors, and MUST
|
||||
* be the first byte in this structure.
|
||||
*/
|
||||
|
||||
typedef struct AcpiNamedObject
|
||||
typedef struct acpi_node
|
||||
{
|
||||
UINT8 DataType;
|
||||
UINT8 Type; /* Type associated with this name */
|
||||
UINT8 ThisIndex; /* Entry number */
|
||||
UINT8 Flags;
|
||||
UINT16 OwnerId;
|
||||
UINT32 Name; /* ACPI Name, always 4 chars per ACPI spec */
|
||||
|
||||
|
||||
void *Object; /* Pointer to attached ACPI object (optional) */
|
||||
struct AcpiNameTable *ChildTable; /* Scope owned by this name (optional) */
|
||||
ACPI_OWNER_ID OwnerId; /* ID of owner - either an ACPI table or a method */
|
||||
struct acpi_node *Child; /* first child */
|
||||
struct acpi_node *Peer; /* Next peer*/
|
||||
UINT16 ReferenceCount; /* Current count of references and children */
|
||||
UINT8 Flags;
|
||||
|
||||
#ifdef _IA64
|
||||
UINT32 Fill1; /* 64-bit alignment */
|
||||
#endif
|
||||
|
||||
} ACPI_NAMED_OBJECT;
|
||||
} ACPI_NAMESPACE_NODE;
|
||||
|
||||
|
||||
typedef struct AcpiNameTable
|
||||
{
|
||||
struct AcpiNameTable *NextTable;
|
||||
struct AcpiNameTable *ParentTable;
|
||||
ACPI_NAMED_OBJECT *ParentEntry;
|
||||
ACPI_NAMED_OBJECT Entries[1];
|
||||
|
||||
} ACPI_NAME_TABLE;
|
||||
#define ENTRY_NOT_FOUND NULL
|
||||
|
||||
|
||||
#define ENTRY_NOT_FOUND NULL
|
||||
/* Node flags */
|
||||
|
||||
|
||||
/* NTE flags */
|
||||
|
||||
#define NTE_AML_ATTACHMENT 0x1
|
||||
#define ANOBJ_AML_ATTACHMENT 0x1
|
||||
#define ANOBJ_END_OF_PEER_LIST 0x2
|
||||
|
||||
|
||||
/*
|
||||
@ -306,19 +294,16 @@ typedef struct AcpiTableDesc
|
||||
|
||||
typedef struct
|
||||
{
|
||||
INT8 *SearchFor;
|
||||
NATIVE_CHAR *SearchFor;
|
||||
ACPI_HANDLE *List;
|
||||
INT32 *Count;
|
||||
UINT32 *Count;
|
||||
|
||||
} FIND_CONTEXT;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ACPI_NAME_TABLE *NameTable;
|
||||
UINT32 Position;
|
||||
BOOLEAN TableFull;
|
||||
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
} NS_SEARCH_DATA;
|
||||
|
||||
|
||||
@ -331,9 +316,9 @@ typedef struct
|
||||
|
||||
typedef struct
|
||||
{
|
||||
INT8 *Name;
|
||||
NATIVE_CHAR *Name;
|
||||
ACPI_OBJECT_TYPE Type;
|
||||
INT8 *Val;
|
||||
NATIVE_CHAR *Val;
|
||||
|
||||
} PREDEFINED_NAMES;
|
||||
|
||||
@ -425,153 +410,6 @@ typedef struct
|
||||
} ACPI_FIELD_INFO;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Parser typedefs and structs
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
#define ACPI_OP_CLASS_MASK 0x1F
|
||||
#define ACPI_OP_ARGS_MASK 0x20
|
||||
#define ACPI_OP_TYPE_MASK 0xC0
|
||||
|
||||
#define ACPI_OP_TYPE_OPCODE 0x00
|
||||
#define ACPI_OP_TYPE_ASCII 0x40
|
||||
#define ACPI_OP_TYPE_PREFIX 0x80
|
||||
#define ACPI_OP_TYPE_UNKNOWN 0xC0
|
||||
|
||||
#define ACPI_GET_OP_CLASS(a) ((a)->Flags & ACPI_OP_CLASS_MASK)
|
||||
#define ACPI_GET_OP_ARGS(a) ((a)->Flags & ACPI_OP_ARGS_MASK)
|
||||
#define ACPI_GET_OP_TYPE(a) ((a)->Flags & ACPI_OP_TYPE_MASK)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* AML opcode, name, and argument layout
|
||||
*/
|
||||
typedef struct acpi_op_info
|
||||
{
|
||||
UINT8 Flags; /* Opcode type, HasArgs flag */
|
||||
UINT32 ParseArgs; /* Grammar/Parse time arguments */
|
||||
UINT32 RuntimeArgs; /* Interpret time arguments */
|
||||
|
||||
DEBUG_ONLY_MEMBERS (
|
||||
INT8 *Name) /* op name (debug only) */
|
||||
|
||||
} ACPI_OP_INFO;
|
||||
|
||||
|
||||
typedef union acpi_op_value
|
||||
{
|
||||
UINT32 Integer; /* integer constant */
|
||||
UINT32 Size; /* bytelist or field size */
|
||||
INT8 *String; /* NULL terminated string */
|
||||
UINT8 *Buffer; /* buffer or string */
|
||||
INT8 *Name; /* NULL terminated string */
|
||||
struct acpi_generic_op *Arg; /* arguments and contained ops */
|
||||
ACPI_NAMED_OBJECT *Entry; /* entry in interpreter namespace tbl */
|
||||
|
||||
} ACPI_OP_VALUE;
|
||||
|
||||
|
||||
#define ACPI_COMMON_OP \
|
||||
UINT8 DataType; /* To differentiate various internal objs */\
|
||||
UINT8 Flags; /* Type of Op */\
|
||||
UINT16 Opcode; /* AML opcode */\
|
||||
UINT32 AmlOffset; /* offset of declaration in AML */\
|
||||
struct acpi_generic_op *Parent; /* parent op */\
|
||||
struct acpi_generic_op *Next; /* next op */\
|
||||
DEBUG_ONLY_MEMBERS (\
|
||||
INT8 OpName[16]) /* op name (debug only) */\
|
||||
/* NON-DEBUG members below: */\
|
||||
void *AcpiNamedObject;/* for use by interpreter */\
|
||||
ACPI_OP_VALUE Value; /* Value or args associated with the opcode */\
|
||||
|
||||
|
||||
/*
|
||||
* generic operation (eg. If, While, Store)
|
||||
*/
|
||||
typedef struct acpi_generic_op
|
||||
{
|
||||
ACPI_COMMON_OP
|
||||
} ACPI_GENERIC_OP;
|
||||
|
||||
|
||||
/*
|
||||
* operation with a name (eg. Scope, Method, Name, NamedField, ...)
|
||||
*/
|
||||
typedef struct acpi_named_op
|
||||
{
|
||||
ACPI_COMMON_OP
|
||||
UINT32 Name; /* 4-byte name or zero if no name */
|
||||
|
||||
} ACPI_NAMED_OP;
|
||||
|
||||
|
||||
/*
|
||||
* special operation for methods and regions (parsing must be deferred
|
||||
* until a first pass parse is completed)
|
||||
*/
|
||||
typedef struct acpi_deferred_op
|
||||
{
|
||||
ACPI_COMMON_OP
|
||||
UINT32 Name; /* 4-byte name or 0 if none */
|
||||
UINT32 BodyLength; /* AML body size */
|
||||
UINT8 *Body; /* AML body */
|
||||
UINT16 ThreadCount; /* Count of threads currently executing a method */
|
||||
|
||||
} ACPI_DEFERRED_OP;
|
||||
|
||||
|
||||
/*
|
||||
* special operation for bytelists (ByteList only)
|
||||
*/
|
||||
typedef struct acpi_bytelist_op
|
||||
{
|
||||
ACPI_COMMON_OP
|
||||
UINT8 *Data; /* bytelist data */
|
||||
|
||||
} ACPI_BYTELIST_OP;
|
||||
|
||||
|
||||
/*
|
||||
* Parse state - one state per parser invocation and each control
|
||||
* method.
|
||||
*/
|
||||
|
||||
typedef struct acpi_parse_state
|
||||
{
|
||||
UINT8 *AmlStart; /* first AML byte */
|
||||
UINT8 *Aml; /* next AML byte */
|
||||
UINT8 *AmlEnd; /* (last + 1) AML byte */
|
||||
UINT8 *PkgStart; /* current package begin */
|
||||
UINT8 *PkgEnd; /* current package end */
|
||||
ACPI_GENERIC_OP *StartOp; /* root of parse tree */
|
||||
struct AcpiNamedObject *StartEntry;
|
||||
struct acpi_parse_scope *Scope; /* current scope */
|
||||
struct acpi_parse_scope *ScopeAvail; /* unused (extra) scope structs */
|
||||
struct acpi_parse_state *Next;
|
||||
|
||||
} ACPI_PARSE_STATE;
|
||||
|
||||
|
||||
/*
|
||||
* Parse scope - one per ACPI scope
|
||||
*/
|
||||
|
||||
typedef struct acpi_parse_scope
|
||||
{
|
||||
ACPI_GENERIC_OP *Op; /* current op being parsed */
|
||||
UINT8 *ArgEnd; /* current argument end */
|
||||
UINT8 *PkgEnd; /* current package end */
|
||||
struct acpi_parse_scope *Parent; /* parent scope */
|
||||
UINT32 ArgList; /* next argument to parse */
|
||||
UINT32 ArgCount; /* Number of fixed arguments */
|
||||
|
||||
} ACPI_PARSE_SCOPE;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Generic "state" object for stacks
|
||||
@ -586,6 +424,11 @@ typedef struct acpi_parse_scope
|
||||
#define CONTROL_PREDICATE_TRUE 0xC4
|
||||
|
||||
|
||||
/* Forward declaration */
|
||||
struct acpi_walk_state;
|
||||
struct acpi_parse_obj ;
|
||||
|
||||
|
||||
#define ACPI_STATE_COMMON /* Two 32-bit fields and a pointer */\
|
||||
UINT8 DataType; /* To differentiate various internal objs */\
|
||||
UINT8 Flags; \
|
||||
@ -606,7 +449,7 @@ typedef struct acpi_common_state
|
||||
typedef struct acpi_update_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
union AcpiObjInternal *Object;
|
||||
union acpi_operand_obj *Object;
|
||||
|
||||
} ACPI_UPDATE_STATE;
|
||||
|
||||
@ -617,7 +460,7 @@ typedef struct acpi_update_state
|
||||
typedef struct acpi_control_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_GENERIC_OP *PredicateOp;
|
||||
struct acpi_parse_obj *PredicateOp;
|
||||
UINT8 *AmlPredicateStart; /* Start of if/while predicate */
|
||||
|
||||
} ACPI_CONTROL_STATE;
|
||||
@ -630,17 +473,30 @@ typedef struct acpi_control_state
|
||||
typedef struct acpi_scope_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_NAME_TABLE *NameTable;
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
|
||||
} ACPI_SCOPE_STATE;
|
||||
|
||||
|
||||
typedef struct acpi_pscope_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
struct acpi_parse_obj *Op; /* current op being parsed */
|
||||
UINT8 *ArgEnd; /* current argument end */
|
||||
UINT8 *PkgEnd; /* current package end */
|
||||
UINT32 ArgList; /* next argument to parse */
|
||||
UINT32 ArgCount; /* Number of fixed arguments */
|
||||
|
||||
} ACPI_PSCOPE_STATE;
|
||||
|
||||
|
||||
typedef union acpi_gen_state
|
||||
{
|
||||
ACPI_COMMON_STATE Common;
|
||||
ACPI_CONTROL_STATE Control;
|
||||
ACPI_UPDATE_STATE Update;
|
||||
ACPI_SCOPE_STATE Scope;
|
||||
ACPI_PSCOPE_STATE ParseScope;
|
||||
|
||||
} ACPI_GENERIC_STATE;
|
||||
|
||||
@ -648,14 +504,119 @@ typedef union acpi_gen_state
|
||||
typedef
|
||||
ACPI_STATUS (*ACPI_PARSE_DOWNWARDS) (
|
||||
UINT16 Opcode,
|
||||
ACPI_GENERIC_OP *Op,
|
||||
void *WalkState,
|
||||
ACPI_GENERIC_OP **OutOp);
|
||||
struct acpi_parse_obj *Op,
|
||||
struct acpi_walk_state *WalkState,
|
||||
struct acpi_parse_obj **OutOp);
|
||||
|
||||
typedef
|
||||
ACPI_STATUS (*ACPI_PARSE_UPWARDS) (
|
||||
void *State,
|
||||
ACPI_GENERIC_OP *Op);
|
||||
struct acpi_walk_state *WalkState,
|
||||
struct acpi_parse_obj *Op);
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Parser typedefs and structs
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
#define ACPI_OP_CLASS_MASK 0x1F
|
||||
#define ACPI_OP_ARGS_MASK 0x20
|
||||
#define ACPI_OP_TYPE_MASK 0xC0
|
||||
|
||||
#define ACPI_OP_TYPE_OPCODE 0x00
|
||||
#define ACPI_OP_TYPE_ASCII 0x40
|
||||
#define ACPI_OP_TYPE_PREFIX 0x80
|
||||
#define ACPI_OP_TYPE_UNKNOWN 0xC0
|
||||
|
||||
#define ACPI_GET_OP_CLASS(a) ((a)->Flags & ACPI_OP_CLASS_MASK)
|
||||
#define ACPI_GET_OP_ARGS(a) ((a)->Flags & ACPI_OP_ARGS_MASK)
|
||||
#define ACPI_GET_OP_TYPE(a) ((a)->Flags & ACPI_OP_TYPE_MASK)
|
||||
|
||||
|
||||
/*
|
||||
* AML opcode, name, and argument layout
|
||||
*/
|
||||
typedef struct acpi_opcode_info
|
||||
{
|
||||
UINT8 Flags; /* Opcode type, HasArgs flag */
|
||||
UINT32 ParseArgs; /* Grammar/Parse time arguments */
|
||||
UINT32 RuntimeArgs; /* Interpret time arguments */
|
||||
|
||||
DEBUG_ONLY_MEMBERS (
|
||||
NATIVE_CHAR *Name) /* op name (debug only) */
|
||||
|
||||
} ACPI_OPCODE_INFO;
|
||||
|
||||
|
||||
typedef union acpi_parse_val
|
||||
{
|
||||
UINT32 Integer; /* integer constant */
|
||||
UINT32 Size; /* bytelist or field size */
|
||||
NATIVE_CHAR *String; /* NULL terminated string */
|
||||
UINT8 *Buffer; /* buffer or string */
|
||||
NATIVE_CHAR *Name; /* NULL terminated string */
|
||||
struct acpi_parse_obj *Arg; /* arguments and contained ops */
|
||||
|
||||
} ACPI_PARSE_VALUE;
|
||||
|
||||
|
||||
#define ACPI_PARSE_COMMON \
|
||||
UINT8 DataType; /* To differentiate various internal objs */\
|
||||
UINT8 Flags; /* Type of Op */\
|
||||
UINT16 Opcode; /* AML opcode */\
|
||||
UINT32 AmlOffset; /* offset of declaration in AML */\
|
||||
struct acpi_parse_obj *Parent; /* parent op */\
|
||||
struct acpi_parse_obj *Next; /* next op */\
|
||||
DEBUG_ONLY_MEMBERS (\
|
||||
NATIVE_CHAR OpName[16]) /* op name (debug only) */\
|
||||
/* NON-DEBUG members below: */\
|
||||
ACPI_NAMESPACE_NODE *Node;/* for use by interpreter */\
|
||||
ACPI_PARSE_VALUE Value; /* Value or args associated with the opcode */\
|
||||
|
||||
|
||||
/*
|
||||
* generic operation (eg. If, While, Store)
|
||||
*/
|
||||
typedef struct acpi_parse_obj
|
||||
{
|
||||
ACPI_PARSE_COMMON
|
||||
} ACPI_PARSE_OBJECT;
|
||||
|
||||
|
||||
/*
|
||||
* Extended Op for named ops (Scope, Method, etc.), deferred ops (Methods and OpRegions),
|
||||
* and bytelists.
|
||||
*/
|
||||
typedef struct acpi_parse2_obj
|
||||
{
|
||||
ACPI_PARSE_COMMON
|
||||
UINT8 *Data; /* AML body or bytelist data */
|
||||
UINT32 Length; /* AML length */
|
||||
UINT32 Name; /* 4-byte name or zero if no name */
|
||||
|
||||
} ACPI_PARSE2_OBJECT;
|
||||
|
||||
|
||||
/*
|
||||
* Parse state - one state per parser invocation and each control
|
||||
* method.
|
||||
*/
|
||||
|
||||
typedef struct acpi_parse_state
|
||||
{
|
||||
UINT8 *AmlStart; /* first AML byte */
|
||||
UINT8 *Aml; /* next AML byte */
|
||||
UINT8 *AmlEnd; /* (last + 1) AML byte */
|
||||
UINT8 *PkgStart; /* current package begin */
|
||||
UINT8 *PkgEnd; /* current package end */
|
||||
ACPI_PARSE_OBJECT *StartOp; /* root of parse tree */
|
||||
struct acpi_node *StartNode;
|
||||
ACPI_GENERIC_STATE *Scope; /* current scope */
|
||||
struct acpi_parse_state *Next;
|
||||
|
||||
} ACPI_PARSE_STATE;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
@ -687,11 +648,11 @@ typedef struct acpi_walk_state
|
||||
UINT8 CurrentResult; /* */
|
||||
|
||||
struct acpi_walk_state *Next; /* Next WalkState in list */
|
||||
ACPI_GENERIC_OP *Origin; /* Start of walk */
|
||||
ACPI_PARSE_OBJECT *Origin; /* Start of walk */
|
||||
|
||||
/* TBD: Obsolete with removal of WALK procedure ? */
|
||||
ACPI_GENERIC_OP *PrevOp; /* Last op that was processed */
|
||||
ACPI_GENERIC_OP *NextOp; /* next op to be processed */
|
||||
ACPI_PARSE_OBJECT *PrevOp; /* Last op that was processed */
|
||||
ACPI_PARSE_OBJECT *NextOp; /* next op to be processed */
|
||||
|
||||
|
||||
ACPI_GENERIC_STATE *ControlState; /* List of control states (nested IFs) */
|
||||
@ -701,14 +662,15 @@ typedef struct acpi_walk_state
|
||||
ACPI_PARSE_DOWNWARDS DescendingCallback;
|
||||
ACPI_PARSE_UPWARDS AscendingCallback;
|
||||
|
||||
union AcpiObjInternal *ReturnDesc; /* Return object, if any */
|
||||
union AcpiObjInternal *MethodDesc; /* Method descriptor if running a method */
|
||||
ACPI_GENERIC_OP *MethodCallOp; /* MethodCall Op if running a method */
|
||||
struct AcpiNamedObject *MethodEntry;
|
||||
union AcpiObjInternal *Operands[OBJ_NUM_OPERANDS]; /* Operands passed to the interpreter */
|
||||
union AcpiObjInternal *Results[OBJ_NUM_OPERANDS]; /* Accumulated results */
|
||||
struct AcpiNamedObject Arguments[MTH_NUM_ARGS]; /* Control method arguments */
|
||||
struct AcpiNamedObject LocalVariables[MTH_NUM_LOCALS]; /* Control method locals */
|
||||
union acpi_operand_obj *ReturnDesc; /* Return object, if any */
|
||||
union acpi_operand_obj *MethodDesc; /* Method descriptor if running a method */
|
||||
struct acpi_node *MethodNode; /* Method Node if running a method */
|
||||
ACPI_PARSE_OBJECT *MethodCallOp; /* MethodCall Op if running a method */
|
||||
struct acpi_node *MethodCallNode; /* Called method Node*/
|
||||
union acpi_operand_obj *Operands[OBJ_NUM_OPERANDS]; /* Operands passed to the interpreter */
|
||||
union acpi_operand_obj *Results[OBJ_NUM_OPERANDS]; /* Accumulated results */
|
||||
struct acpi_node Arguments[MTH_NUM_ARGS]; /* Control method arguments */
|
||||
struct acpi_node LocalVariables[MTH_NUM_LOCALS]; /* Control method locals */
|
||||
UINT32 ParseFlags;
|
||||
UINT8 WalkType;
|
||||
UINT8 ReturnUsed;
|
||||
@ -736,13 +698,31 @@ typedef struct acpi_walk_list
|
||||
|
||||
/* Info used by AcpiPsInitObjects */
|
||||
|
||||
typedef struct InitWalkInfo
|
||||
typedef struct acpi_init_walk_info
|
||||
{
|
||||
UINT32 MethodCount;
|
||||
UINT32 OpRegionCount;
|
||||
UINT16 MethodCount;
|
||||
UINT16 OpRegionCount;
|
||||
UINT16 FieldCount;
|
||||
UINT16 OpRegionInit;
|
||||
UINT16 FieldInit;
|
||||
UINT16 ObjectCount;
|
||||
ACPI_TABLE_DESC *TableDesc;
|
||||
|
||||
} INIT_WALK_INFO;
|
||||
} ACPI_INIT_WALK_INFO;
|
||||
|
||||
|
||||
/* Info used by TBD */
|
||||
|
||||
typedef struct acpi_device_walk_info
|
||||
{
|
||||
UINT16 DeviceCount;
|
||||
UINT16 Num_STA;
|
||||
UINT16 Num_INI;
|
||||
UINT16 Num_HID;
|
||||
UINT16 Num_PCI;
|
||||
ACPI_TABLE_DESC *TableDesc;
|
||||
|
||||
} ACPI_DEVICE_WALK_INFO;
|
||||
|
||||
|
||||
/* TBD: [Restructure] Merge with struct above */
|
||||
@ -762,16 +742,23 @@ typedef struct AcpiWalkInfo
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
/* PCI */
|
||||
|
||||
#define PCI_ROOT_HID_STRING "PNP0A03"
|
||||
#define PCI_ROOT_HID_VALUE 0x030AD041 /* EISAID("PNP0A03") */
|
||||
|
||||
|
||||
|
||||
/* Sleep states */
|
||||
|
||||
#define SLWA_DEBUG_LEVEL 4
|
||||
#define GTS_CALL 0
|
||||
#define GTS_WAKE 1
|
||||
#define SLWA_DEBUG_LEVEL 4
|
||||
#define GTS_CALL 0
|
||||
#define GTS_WAKE 1
|
||||
|
||||
/* Cx States */
|
||||
|
||||
#define MAX_CX_STATE_LATENCY 0xFFFFFFFF
|
||||
#define MAX_CX_STATES 4
|
||||
#define MAX_CX_STATE_LATENCY 0xFFFFFFFF
|
||||
#define MAX_CX_STATES 4
|
||||
|
||||
/*
|
||||
* The #define's and enum below establish an abstract way of identifying what
|
||||
@ -779,17 +766,17 @@ typedef struct AcpiWalkInfo
|
||||
* values as they are used in switch statements and offset calculations.
|
||||
*/
|
||||
|
||||
#define REGISTER_BLOCK_MASK 0xFF00
|
||||
#define BIT_IN_REGISTER_MASK 0x00FF
|
||||
#define PM1_EVT 0x0100
|
||||
#define PM1_CONTROL 0x0200
|
||||
#define PM2_CONTROL 0x0300
|
||||
#define PM_TIMER 0x0400
|
||||
#define PROCESSOR_BLOCK 0x0500
|
||||
#define GPE0_STS_BLOCK 0x0600
|
||||
#define GPE0_EN_BLOCK 0x0700
|
||||
#define GPE1_STS_BLOCK 0x0800
|
||||
#define GPE1_EN_BLOCK 0x0900
|
||||
#define REGISTER_BLOCK_MASK 0xFF00
|
||||
#define BIT_IN_REGISTER_MASK 0x00FF
|
||||
#define PM1_EVT 0x0100
|
||||
#define PM1_CONTROL 0x0200
|
||||
#define PM2_CONTROL 0x0300
|
||||
#define PM_TIMER 0x0400
|
||||
#define PROCESSOR_BLOCK 0x0500
|
||||
#define GPE0_STS_BLOCK 0x0600
|
||||
#define GPE0_EN_BLOCK 0x0700
|
||||
#define GPE1_STS_BLOCK 0x0800
|
||||
#define GPE1_EN_BLOCK 0x0900
|
||||
|
||||
enum
|
||||
{
|
||||
@ -940,8 +927,8 @@ typedef struct
|
||||
union
|
||||
{
|
||||
UINT32 Number;
|
||||
INT8 *StringPtr;
|
||||
INT8 Buffer[9];
|
||||
NATIVE_CHAR *StringPtr;
|
||||
NATIVE_CHAR Buffer[9];
|
||||
} Data;
|
||||
|
||||
} DEVICE_ID;
|
||||
@ -970,7 +957,7 @@ typedef struct AllocationInfo
|
||||
UINT32 Size;
|
||||
UINT32 Component;
|
||||
UINT32 Line;
|
||||
INT8 Module[MAX_MODULE_NAME];
|
||||
NATIVE_CHAR Module[MAX_MODULE_NAME];
|
||||
UINT8 AllocType;
|
||||
|
||||
} ALLOCATION_INFO;
|
||||
|
Loading…
x
Reference in New Issue
Block a user