This commit was generated by cvs2svn to compensate for changes in r107325,
which included commits to RCS files with non-trunk default branches.
This commit is contained in:
commit
360aac4e22
@ -1,3 +1,276 @@
|
||||
----------------------------------------
|
||||
15 November 2002. Summary of changes for version 20021115.
|
||||
|
||||
1) ACPI CA Core Subsystem:
|
||||
|
||||
Fixed a memory leak problem where an error during resolution
|
||||
of method arguments during a method invocation from another
|
||||
method failed to cleanup properly by deleting all successfully
|
||||
resolved argument objects.
|
||||
|
||||
Fixed a problem where the target of the Index() operator was
|
||||
not correctly constructed if the source object was a package.
|
||||
This problem has not been detected because the use of a target
|
||||
operand with Index() is very rare.
|
||||
|
||||
Fixed a problem with the Index() operator where an attempt was
|
||||
made to delete the operand objects twice.
|
||||
|
||||
Fixed a problem where an attempt was made to delete an operand
|
||||
twice during execution of the CondRefOf() operator if the
|
||||
target did not exist.
|
||||
|
||||
Implemented the first of perhaps several internal create
|
||||
object functions that create and initialize a specific object
|
||||
type. This consolidates duplicated code wherever the object
|
||||
is created, thus shrinking the size of the subsystem.
|
||||
|
||||
Implemented improved debug/error messages for errors that
|
||||
occur during nested method invocations. All executing method
|
||||
pathnames are displayed (with the error) as the call stack is
|
||||
unwound - thus simplifying debug.
|
||||
|
||||
Fixed a problem introduced in the 10/02 release that caused
|
||||
premature deletion of a buffer object if a buffer was used as
|
||||
an ASL operand where an integer operand is required (Thus
|
||||
causing an implicit object conversion from Buffer to Integer.)
|
||||
The change in the 10/02 release was attempting to fix a memory
|
||||
leak (albeit incorrectly.)
|
||||
|
||||
Code and Data Size: Current core subsystem library sizes are
|
||||
shown below. These are the code and data sizes for the
|
||||
acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
|
||||
and these values do not include any ACPI driver or OSPM code.
|
||||
The debug version of the code includes the debug output trace
|
||||
mechanism and has a much larger code and data size. Note that
|
||||
these values will vary depending on the efficiency of the
|
||||
compiler and the compiler options used during generation.
|
||||
|
||||
Previous Release
|
||||
Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
|
||||
Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
|
||||
Current Release:
|
||||
Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total
|
||||
Debug Version: 152.7K Code, 63.2K Data, 215.5K Total
|
||||
|
||||
|
||||
2) Linux
|
||||
|
||||
Changed the implementation of the ACPI semaphores to use
|
||||
down() instead of down_interruptable(). It is important that
|
||||
the execution of ACPI control methods not be interrupted by
|
||||
signals. Methods must run to completion, or the system may be
|
||||
left in an unknown/unstable state.
|
||||
|
||||
Fixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
|
||||
set. (Shawn Starr)
|
||||
|
||||
|
||||
3) iASL Compiler/Disassembler
|
||||
|
||||
Changed the default location of output files. All output
|
||||
files are now placed in the current directory by default
|
||||
instead of in the directory of the source file. This change
|
||||
may affect some existing makefiles, but it brings the behavior
|
||||
of the compiler in line with other similar tools. The
|
||||
location of the output files can be overridden with the -p
|
||||
command line switch.
|
||||
|
||||
|
||||
----------------------------------------
|
||||
11 November 2002. Summary of changes for version 20021111.
|
||||
|
||||
|
||||
0) ACPI Specification 2.0B is released and is now available
|
||||
at: http://www.acpi.info/index.html
|
||||
|
||||
|
||||
1) ACPI CA Core Subsystem:
|
||||
|
||||
Implemented support for the ACPI 2.0 SMBus Operation Regions.
|
||||
This includes the early detection and handoff of the request
|
||||
to the SMBus region handler (avoiding all of the complex field
|
||||
support code), and support for the bidirectional return packet
|
||||
from an SMBus write operation. This paves the way for the
|
||||
development of SMBus drivers in each host operating system.
|
||||
|
||||
Fixed a problem where the semaphore WAIT_FOREVER constant was
|
||||
defined as 32 bits, but must be 16 bits according to the ACPI
|
||||
specification. This had the side effect of causing ASL
|
||||
Mutex/Event timeouts even though the ASL code requested a wait
|
||||
forever. Changed all internal references to the ACPI timeout
|
||||
parameter to 16 bits to prevent future problems. Changed the
|
||||
name of WAIT_FOREVER to ACPI_WAIT_FOREVER.
|
||||
|
||||
Code and Data Size: Current core subsystem library sizes are
|
||||
shown below. These are the code and data sizes for the
|
||||
acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
|
||||
and these values do not include any ACPI driver or OSPM code.
|
||||
The debug version of the code includes the debug output trace
|
||||
mechanism and has a much larger code and data size. Note that
|
||||
these values will vary depending on the efficiency of the
|
||||
compiler and the compiler options used during generation.
|
||||
|
||||
Previous Release
|
||||
Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
|
||||
Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
|
||||
Current Release:
|
||||
Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
|
||||
Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
|
||||
|
||||
|
||||
2) Linux
|
||||
|
||||
Module loading/unloading fixes (John Cagle)
|
||||
|
||||
|
||||
3) iASL Compiler/Disassembler
|
||||
|
||||
Added support for the SMBBlockProcessCall keyword (ACPI 2.0)
|
||||
|
||||
Implemented support for the disassembly of all SMBus protocol
|
||||
keywords (SMBQuick, SMBWord, etc.)
|
||||
|
||||
----------------------------------------
|
||||
01 November 2002. Summary of changes for version 20021101.
|
||||
|
||||
|
||||
1) ACPI CA Core Subsystem:
|
||||
|
||||
Fixed a problem where platforms that have a GPE1 block but no
|
||||
GPE0 block were not handled correctly. This resulted in a
|
||||
"GPE overlap" error message. GPE0 is no longer required.
|
||||
|
||||
Removed code added in the previous release that inserted nodes
|
||||
into the namespace in alphabetical order. This caused some
|
||||
side-effects on various machines. The root cause of the
|
||||
problem is still under investigation since in theory, the
|
||||
internal ordering of the namespace nodes should not matter.
|
||||
|
||||
Enhanced error reporting for the case where a named object is
|
||||
not found during control method execution. The full ACPI
|
||||
namepath (name reference) of the object that was not found is
|
||||
displayed in this case.
|
||||
|
||||
Note: as a result of the overhaul of the namespace object
|
||||
types in the previous release, the namespace nodes for the
|
||||
predefined scopes (_TZ, _PR, etc.) are now of the type
|
||||
ACPI_TYPE_LOCAL_SCOPE instead of ACPI_TYPE_ANY. This
|
||||
simplifies the namespace management code but may affect code
|
||||
that walks the namespace tree looking for specific object
|
||||
types.
|
||||
|
||||
Code and Data Size: Current core subsystem library sizes are
|
||||
shown below. These are the code and data sizes for the
|
||||
acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
|
||||
and these values do not include any ACPI driver or OSPM code.
|
||||
The debug version of the code includes the debug output trace
|
||||
mechanism and has a much larger code and data size. Note that
|
||||
these values will vary depending on the efficiency of the
|
||||
compiler and the compiler options used during generation.
|
||||
|
||||
Previous Release
|
||||
Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total
|
||||
Debug Version: 151.7K Code, 62.4K Data, 214.1K Total
|
||||
Current Release:
|
||||
Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
|
||||
Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
|
||||
|
||||
|
||||
2) Linux
|
||||
|
||||
Fixed a problem introduced in the previous release where the
|
||||
Processor and Thermal objects were not recognized and
|
||||
installed in /proc. This was related to the scope type change
|
||||
described above.
|
||||
|
||||
|
||||
3) iASL Compiler/Disassembler
|
||||
|
||||
Implemented the -g option to get all of the required ACPI
|
||||
tables from the registry and save them to files (Windows
|
||||
version of the compiler only.) The required tables are the
|
||||
FADT, FACS, and DSDT.
|
||||
|
||||
Added ACPI table checksum validation during table disassembly
|
||||
in order to catch corrupted tables.
|
||||
|
||||
|
||||
----------------------------------------
|
||||
22 October 2002. Summary of changes for version 20021022.
|
||||
|
||||
1) ACPI CA Core Subsystem:
|
||||
|
||||
Implemented a restriction on the Scope operator that the
|
||||
target must already exist in the namespace at the time the
|
||||
operator is encountered (during table load or method
|
||||
execution). In other words, forward references are not
|
||||
allowed and Scope() cannot create a new object. This changes
|
||||
the previous behavior where the interpreter would create the
|
||||
name if not found. This new behavior correctly enables the
|
||||
search-to-root algorithm during namespace lookup of the target
|
||||
name. Because of this upsearch, this fixes the known Compaq
|
||||
_SB_.OKEC problem and makes both the AML interpreter and iASL
|
||||
compiler compatible with other ACPI implementations.
|
||||
|
||||
Completed a major overhaul of the internal ACPI object types
|
||||
for the ACPI Namespace and the associated operand objects.
|
||||
Many of these types had become obsolete with the introduction
|
||||
of the two-pass namespace load. This cleanup simplifies the
|
||||
code and makes the entire namespace load mechanism much
|
||||
clearer and easier to understand.
|
||||
|
||||
Improved debug output for tracking scope opening/closing to
|
||||
help diagnose scoping issues. The old scope name as well as
|
||||
the new scope name are displayed. Also improved error
|
||||
messages for problems with ASL Mutex objects and error
|
||||
messages for GPE problems.
|
||||
|
||||
Cleaned up the namespace dump code, removed obsolete code.
|
||||
|
||||
All string output (for all namespace/object dumps) now uses
|
||||
the common ACPI string output procedure which handles escapes
|
||||
properly and does not emit non-printable characters.
|
||||
|
||||
Fixed some issues with constants in the 64-bit version of the
|
||||
local C library (utclib.c)
|
||||
|
||||
|
||||
2) Linux
|
||||
|
||||
EC Driver: No longer attempts to acquire the Global Lock at
|
||||
interrupt level.
|
||||
|
||||
|
||||
3) iASL Compiler/Disassembler
|
||||
|
||||
Implemented ACPI 2.0B grammar change that disallows all Type 1
|
||||
and 2 opcodes outside of a control method. This means that
|
||||
the "executable" operators (versus the "namespace" operators)
|
||||
cannot be used at the table level; they can only be used
|
||||
within a control method.
|
||||
|
||||
Implemented the restriction on the Scope() operator where the
|
||||
target must already exist in the namespace at the time the
|
||||
operator is encountered (during ASL compilation). In other
|
||||
words, forward references are not allowed and Scope() cannot
|
||||
create a new object. This makes the iASL compiler compatible
|
||||
with other ACPI implementations and makes the Scope()
|
||||
implementation adhere to the ACPI specification.
|
||||
|
||||
Fixed a problem where namepath optimization for the Alias
|
||||
operator was optimizing the wrong path (of the two namepaths.)
|
||||
This caused a "Missing alias link" error message.
|
||||
|
||||
Fixed a problem where an "unknown reserved name" warning could
|
||||
be incorrectly generated for names like "_SB" when the
|
||||
trailing underscore is not used in the original ASL.
|
||||
|
||||
Fixed a problem where the reserved name check did not handle
|
||||
NamePaths with multiple NameSegs correctly. The first nameseg
|
||||
of the NamePath was examined instead of the last NameSeg.
|
||||
|
||||
|
||||
----------------------------------------
|
||||
|
||||
02 October 2002. Summary of changes for this release.
|
||||
|
@ -145,11 +145,19 @@ FlGenerateFilename (
|
||||
char *InputFilename,
|
||||
char *Suffix);
|
||||
|
||||
ACPI_STATUS
|
||||
FlSplitInputPathname (
|
||||
char *InputPath,
|
||||
char **OutDirectoryPath,
|
||||
char **OutFilename);
|
||||
|
||||
ACPI_STATUS
|
||||
AdAmlDisassemble (
|
||||
BOOLEAN OutToFile,
|
||||
char *Filename,
|
||||
char **OutFilename);
|
||||
char *Prefix,
|
||||
char **OutFilename,
|
||||
BOOLEAN GetAllTables);
|
||||
|
||||
void
|
||||
AdPrintStatistics (void);
|
||||
@ -164,7 +172,8 @@ AdDumpTables (void);
|
||||
|
||||
ACPI_STATUS
|
||||
AdGetTables (
|
||||
char *Filename);
|
||||
char *Filename,
|
||||
BOOLEAN GetAllTables);
|
||||
|
||||
ACPI_STATUS
|
||||
AdParseTables (void);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acdisasm.h - AML disassembler
|
||||
* $Revision: 3 $
|
||||
* $Revision: 5 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -198,10 +198,6 @@ UINT32
|
||||
AcpiDmDumpName (
|
||||
char *Name);
|
||||
|
||||
void
|
||||
AcpiDmString (
|
||||
char *String);
|
||||
|
||||
void
|
||||
AcpiDmUnicode (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
@ -334,6 +330,9 @@ void
|
||||
AcpiDmBitList (
|
||||
UINT16 Mask);
|
||||
|
||||
void
|
||||
AcpiDmDecodeAttribute (
|
||||
UINT8 Attribute);
|
||||
|
||||
/*
|
||||
* dmresrcl
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acdispat.h - dispatcher (parser to interpreter interface)
|
||||
* $Revision: 54 $
|
||||
* $Revision: 55 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -469,6 +469,10 @@ ACPI_STATUS
|
||||
AcpiDsResolveOperands (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
void
|
||||
AcpiDsClearOperands (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/*
|
||||
* dswscope - Scope Stack manipulation
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acevents.h - Event subcomponent prototypes and defines
|
||||
* $Revision: 79 $
|
||||
* $Revision: 80 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -154,7 +154,7 @@ AcpiEvIsNotifyObject (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvAcquireGlobalLock(
|
||||
UINT32 Timeout);
|
||||
UINT16 Timeout);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvReleaseGlobalLock(
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acglobal.h - Declarations for global variables
|
||||
* $Revision: 131 $
|
||||
* $Revision: 132 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -243,7 +243,7 @@ extern const NATIVE_CHAR *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define NUM_NS_TYPES INTERNAL_TYPE_INVALID+1
|
||||
#define NUM_NS_TYPES ACPI_TYPE_INVALID+1
|
||||
|
||||
#if defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
|
||||
#define NUM_PREDEFINED_NAMES 10
|
||||
@ -370,8 +370,8 @@ ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_DbScopeNode;
|
||||
/*
|
||||
* Statistic globals
|
||||
*/
|
||||
ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCount[INTERNAL_TYPE_NODE_MAX+1];
|
||||
ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCount[INTERNAL_TYPE_NODE_MAX+1];
|
||||
ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
|
||||
ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
|
||||
ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCountMisc;
|
||||
ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCountMisc;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_NumNodes;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acinterp.h - Interpreter subcomponent prototypes and defines
|
||||
* $Revision: 139 $
|
||||
* $Revision: 142 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -255,7 +255,8 @@ AcpiExReadDataFromField (
|
||||
ACPI_STATUS
|
||||
AcpiExWriteDataToField (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **ResultDesc);
|
||||
|
||||
/*
|
||||
* exmisc - ACPI AML (p-code) execution - specific opcodes
|
||||
@ -468,7 +469,7 @@ AcpiExSystemResetEvent(
|
||||
ACPI_STATUS
|
||||
AcpiExSystemWaitSemaphore (
|
||||
ACPI_HANDLE Semaphore,
|
||||
UINT32 Timeout);
|
||||
UINT16 Timeout);
|
||||
|
||||
|
||||
/*
|
||||
@ -703,10 +704,6 @@ void
|
||||
AcpiExTruncateFor32bitTable (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
BOOLEAN
|
||||
AcpiExValidateObjectType (
|
||||
ACPI_OBJECT_TYPE Type);
|
||||
|
||||
BOOLEAN
|
||||
AcpiExAcquireGlobalLock (
|
||||
UINT32 Rule);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: aclocal.h - Internal data types used across the ACPI subsystem
|
||||
* $Revision: 176 $
|
||||
* $Revision: 179 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -118,7 +118,7 @@
|
||||
#define __ACLOCAL_H__
|
||||
|
||||
|
||||
#define WAIT_FOREVER ((UINT32) -1)
|
||||
#define ACPI_WAIT_FOREVER 0xFFFF /* UINT16, as per ACPI spec */
|
||||
|
||||
typedef void* ACPI_MUTEX;
|
||||
typedef UINT32 ACPI_MUTEX_HANDLE;
|
||||
@ -303,7 +303,6 @@ typedef struct AcpiTableDesc
|
||||
struct AcpiTableDesc *Next;
|
||||
struct AcpiTableDesc *InstalledDesc;
|
||||
ACPI_TABLE_HEADER *Pointer;
|
||||
void *BasePointer;
|
||||
UINT8 *AmlStart;
|
||||
UINT64 PhysicalAddress;
|
||||
UINT32 AmlLength;
|
||||
@ -746,6 +745,7 @@ typedef struct acpi_parseobj_asl
|
||||
char *Filename;
|
||||
char *ExternalName;
|
||||
char *Namepath;
|
||||
char NameSeg[4];
|
||||
UINT32 ExtraValue;
|
||||
UINT32 Column;
|
||||
UINT32 LineNumber;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acnamesp.h - Namespace subcomponent prototypes and defines
|
||||
* $Revision: 127 $
|
||||
* $Revision: 129 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -269,6 +269,10 @@ void
|
||||
AcpiNsDeleteChildren (
|
||||
ACPI_NAMESPACE_NODE *Parent);
|
||||
|
||||
int
|
||||
AcpiNsCompareNames (
|
||||
char *Name1,
|
||||
char *Name2);
|
||||
|
||||
/*
|
||||
* Namespace modification - nsmodify
|
||||
@ -372,17 +376,13 @@ AcpiNsGetObjectValue (
|
||||
|
||||
|
||||
/*
|
||||
* Parent/Child/Peer utility functions - nsfamily
|
||||
* Parent/Child/Peer utility functions
|
||||
*/
|
||||
|
||||
ACPI_NAME
|
||||
AcpiNsFindParentName (
|
||||
ACPI_NAMESPACE_NODE *NodeToSearch);
|
||||
|
||||
BOOLEAN
|
||||
AcpiNsExistDownstreamSibling (
|
||||
ACPI_NAMESPACE_NODE *ThisNode);
|
||||
|
||||
|
||||
/*
|
||||
* Name and Scope manipulation - nsnames
|
||||
@ -488,8 +488,8 @@ AcpiNsSearchNode (
|
||||
void
|
||||
AcpiNsInstallNode (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_NAMESPACE_NODE *ParentNode, /* Parent */
|
||||
ACPI_NAMESPACE_NODE *Node, /* New Child*/
|
||||
ACPI_NAMESPACE_NODE *ParentNode,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_OBJECT_TYPE Type);
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acobject.h - Definition of ACPI_OPERAND_OBJECT (Internal object only)
|
||||
* $Revision: 113 $
|
||||
* $Revision: 114 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -290,6 +290,7 @@ typedef struct AcpiObjectMutex
|
||||
void *Semaphore;
|
||||
union acpi_operand_obj *Prev; /* Link for list of acquired mutexes */
|
||||
union acpi_operand_obj *Next; /* Link for list of acquired mutexes */
|
||||
ACPI_NAMESPACE_NODE *Node; /* containing object */
|
||||
|
||||
} ACPI_OBJECT_MUTEX;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: acparser.h - AML Parser subcomponent prototypes and defines
|
||||
* $Revision: 62 $
|
||||
* $Revision: 63 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -180,9 +180,9 @@ AcpiPsGetNextSimpleArg (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsGetNextNamepath (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
ACPI_PARSE_OBJECT *Arg,
|
||||
UINT32 *ArgCount,
|
||||
BOOLEAN MethodCall);
|
||||
|
||||
ACPI_PARSE_OBJECT *
|
||||
@ -191,9 +191,9 @@ AcpiPsGetNextField (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsGetNextArg (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
UINT32 ArgType,
|
||||
UINT32 *ArgCount,
|
||||
ACPI_PARSE_OBJECT **ReturnArg);
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acstruct.h - Internal structs
|
||||
* $Revision: 19 $
|
||||
* $Revision: 20 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -150,6 +150,8 @@ typedef struct acpi_walk_state
|
||||
UINT8 ReturnUsed;
|
||||
UINT8 WalkType;
|
||||
UINT16 Opcode; /* Current AML opcode */
|
||||
UINT8 ScopeDepth;
|
||||
UINT8 Reserved1;
|
||||
UINT32 ArgCount; /* push for fixed or var args */
|
||||
UINT32 AmlOffset;
|
||||
UINT32 ArgTypes;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: actypes.h - Common data types for the entire ACPI subsystem
|
||||
* $Revision: 239 $
|
||||
* $Revision: 241 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -133,7 +133,7 @@
|
||||
|
||||
|
||||
/*
|
||||
* Data types - Fixed across all compilation models
|
||||
* Data types - Fixed across all compilation models (16/32/64)
|
||||
*
|
||||
* BOOLEAN Logical Boolean.
|
||||
* INT8 8-bit (1 byte) signed value
|
||||
@ -182,6 +182,7 @@ typedef UINT64 ACPI_SIZE;
|
||||
|
||||
|
||||
#elif ACPI_MACHINE_WIDTH == 16
|
||||
|
||||
/*
|
||||
* 16-bit type definitions
|
||||
*/
|
||||
@ -224,6 +225,7 @@ typedef UINT16 ACPI_SIZE;
|
||||
|
||||
|
||||
#elif ACPI_MACHINE_WIDTH == 32
|
||||
|
||||
/*
|
||||
* 32-bit type definitions (default)
|
||||
*/
|
||||
@ -259,7 +261,6 @@ typedef UINT32 ACPI_SIZE;
|
||||
/*
|
||||
* Miscellaneous common types
|
||||
*/
|
||||
|
||||
typedef UINT32 UINT32_BIT;
|
||||
typedef NATIVE_UINT ACPI_PTRDIFF;
|
||||
typedef char NATIVE_CHAR;
|
||||
@ -317,7 +318,6 @@ typedef struct AcpiPointer
|
||||
/*
|
||||
* Useful defines
|
||||
*/
|
||||
|
||||
#ifdef FALSE
|
||||
#undef FALSE
|
||||
#endif
|
||||
@ -336,7 +336,6 @@ typedef struct AcpiPointer
|
||||
/*
|
||||
* Local datatypes
|
||||
*/
|
||||
|
||||
typedef UINT32 ACPI_STATUS; /* All ACPI Exceptions */
|
||||
typedef UINT32 ACPI_NAME; /* 4-byte ACPI name */
|
||||
typedef char* ACPI_STRING; /* Null terminated ASCII string */
|
||||
@ -405,7 +404,6 @@ typedef UINT64 ACPI_INTEGER;
|
||||
/*
|
||||
* Constants with special meanings
|
||||
*/
|
||||
|
||||
#define ACPI_ROOT_OBJECT (ACPI_HANDLE) ACPI_PTR_ADD (char, NULL, ACPI_MAX_PTR)
|
||||
|
||||
|
||||
@ -477,7 +475,6 @@ typedef UINT64 ACPI_INTEGER;
|
||||
/*
|
||||
* Table types. These values are passed to the table related APIs
|
||||
*/
|
||||
|
||||
typedef UINT32 ACPI_TABLE_TYPE;
|
||||
|
||||
#define ACPI_TABLE_RSDP (ACPI_TABLE_TYPE) 0
|
||||
@ -492,15 +489,14 @@ typedef UINT32 ACPI_TABLE_TYPE;
|
||||
|
||||
|
||||
/*
|
||||
* Types associated with names. The first group of
|
||||
* values correspond to the definition of the ACPI
|
||||
* ObjectType operator (See the ACPI Spec). Therefore,
|
||||
* 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,
|
||||
* only add to the first group if the spec changes.
|
||||
*
|
||||
* Types must be kept in sync with the AcpiNsProperties
|
||||
* and AcpiNsTypeNames arrays
|
||||
* Types must be kept in sync with the global AcpiNsProperties
|
||||
* and AcpiNsTypeNames arrays.
|
||||
*/
|
||||
|
||||
typedef UINT32 ACPI_OBJECT_TYPE;
|
||||
|
||||
#define ACPI_TYPE_ANY 0x00
|
||||
@ -521,52 +517,45 @@ typedef UINT32 ACPI_OBJECT_TYPE;
|
||||
#define ACPI_TYPE_DDB_HANDLE 0x0F
|
||||
#define ACPI_TYPE_DEBUG_OBJECT 0x10
|
||||
|
||||
#define ACPI_TYPE_MAX 0x10
|
||||
#define ACPI_TYPE_EXTERNAL_MAX 0x10
|
||||
|
||||
/*
|
||||
* This section contains object types that do not relate to the ACPI ObjectType operator.
|
||||
* They are used for various internal purposes only. If new predefined ACPI_TYPEs are
|
||||
* added (via the ACPI specification), these internal types must move upwards.
|
||||
* Also, values exceeding the largest official ACPI ObjectType must not overlap with
|
||||
* defined AML opcodes.
|
||||
* These are object types that do not map directly to the ACPI
|
||||
* ObjectType() operator. They are used for various internal purposes only.
|
||||
* If new predefined ACPI_TYPEs are added (via the ACPI specification), these
|
||||
* internal types must move upwards. (There is code that depends on these
|
||||
* values being contiguous with the external types above.)
|
||||
*/
|
||||
#define INTERNAL_TYPE_BEGIN 0x11
|
||||
#define ACPI_TYPE_LOCAL_REGION_FIELD 0x11
|
||||
#define ACPI_TYPE_LOCAL_BANK_FIELD 0x12
|
||||
#define ACPI_TYPE_LOCAL_INDEX_FIELD 0x13
|
||||
#define ACPI_TYPE_LOCAL_REFERENCE 0x14 /* Arg#, Local#, Name, Debug, RefOf, Index */
|
||||
#define ACPI_TYPE_LOCAL_ALIAS 0x15
|
||||
#define ACPI_TYPE_LOCAL_NOTIFY 0x16
|
||||
#define ACPI_TYPE_LOCAL_ADDRESS_HANDLER 0x17
|
||||
#define ACPI_TYPE_LOCAL_RESOURCE 0x18
|
||||
#define ACPI_TYPE_LOCAL_RESOURCE_FIELD 0x19
|
||||
#define ACPI_TYPE_LOCAL_SCOPE 0x1A /* 1 Name, multiple ObjectList Nodes */
|
||||
|
||||
#define INTERNAL_TYPE_REGION_FIELD 0x11
|
||||
#define INTERNAL_TYPE_BANK_FIELD 0x12
|
||||
#define INTERNAL_TYPE_INDEX_FIELD 0x13
|
||||
#define INTERNAL_TYPE_REFERENCE 0x14 /* Arg#, Local#, Name, Debug; used only in descriptors */
|
||||
#define INTERNAL_TYPE_ALIAS 0x15
|
||||
#define INTERNAL_TYPE_NOTIFY 0x16
|
||||
#define INTERNAL_TYPE_ADDRESS_HANDLER 0x17
|
||||
#define INTERNAL_TYPE_RESOURCE 0x18
|
||||
#define INTERNAL_TYPE_RESOURCE_FIELD 0x19
|
||||
#define ACPI_TYPE_NS_NODE_MAX 0x1A /* 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 0x1B
|
||||
#define ACPI_TYPE_LOCAL_DATA 0x1C
|
||||
|
||||
#define INTERNAL_TYPE_NODE_MAX 0x19
|
||||
#define ACPI_TYPE_LOCAL_MAX 0x1C
|
||||
|
||||
/* These are pseudo-types because there are never any namespace nodes with these types */
|
||||
/* All types above here are invalid */
|
||||
|
||||
#define INTERNAL_TYPE_FIELD_DEFN 0x1A /* Name, ByteConst, multiple FieldElement */
|
||||
#define INTERNAL_TYPE_BANK_FIELD_DEFN 0x1B /* 2 Name,DWordConst,ByteConst,multi FieldElement */
|
||||
#define INTERNAL_TYPE_INDEX_FIELD_DEFN 0x1C /* 2 Name, ByteConst, multiple FieldElement */
|
||||
#define INTERNAL_TYPE_IF 0x1D
|
||||
#define INTERNAL_TYPE_ELSE 0x1E
|
||||
#define INTERNAL_TYPE_WHILE 0x1F
|
||||
#define INTERNAL_TYPE_SCOPE 0x20 /* Name, multiple Node */
|
||||
#define INTERNAL_TYPE_DEF_ANY 0x21 /* type is Any, suppress search of enclosing scopes */
|
||||
#define INTERNAL_TYPE_EXTRA 0x22
|
||||
#define INTERNAL_TYPE_DATA 0x23
|
||||
|
||||
#define INTERNAL_TYPE_MAX 0x23
|
||||
|
||||
#define INTERNAL_TYPE_INVALID 0x24
|
||||
#define ACPI_TYPE_INVALID 0x1D
|
||||
#define ACPI_TYPE_NOT_FOUND 0xFF
|
||||
|
||||
|
||||
/*
|
||||
* Bitmapped ACPI types
|
||||
* Used internally only
|
||||
* Bitmapped ACPI types. Used internally only
|
||||
*/
|
||||
#define ACPI_BTYPE_ANY 0x00000000
|
||||
#define ACPI_BTYPE_INTEGER 0x00000001
|
||||
@ -601,12 +590,12 @@ typedef UINT32 ACPI_OBJECT_TYPE;
|
||||
*/
|
||||
#define ACPI_READ 0
|
||||
#define ACPI_WRITE 1
|
||||
#define ACPI_IO_MASK 1
|
||||
|
||||
|
||||
/*
|
||||
* AcpiEvent Types: Fixed & General Purpose
|
||||
*/
|
||||
|
||||
typedef UINT32 ACPI_EVENT_TYPE;
|
||||
|
||||
#define ACPI_EVENT_FIXED 0
|
||||
@ -615,7 +604,6 @@ typedef UINT32 ACPI_EVENT_TYPE;
|
||||
/*
|
||||
* Fixed events
|
||||
*/
|
||||
|
||||
#define ACPI_EVENT_PMTIMER 0
|
||||
#define ACPI_EVENT_GLOBAL 1
|
||||
#define ACPI_EVENT_POWER_BUTTON 2
|
||||
@ -634,9 +622,7 @@ typedef UINT32 ACPI_EVENT_TYPE;
|
||||
/*
|
||||
* GPEs
|
||||
*/
|
||||
|
||||
#define ACPI_EVENT_WAKE_ENABLE 0x1
|
||||
|
||||
#define ACPI_EVENT_WAKE_DISABLE 0x1
|
||||
|
||||
|
||||
@ -669,7 +655,7 @@ typedef UINT32 ACPI_EVENT_STATUS;
|
||||
#define ACPI_DEVICE_NOTIFY 1
|
||||
#define ACPI_MAX_NOTIFY_HANDLER_TYPE 1
|
||||
|
||||
#define ACPI_MAX_SYS_NOTIFY 0x7f
|
||||
#define ACPI_MAX_SYS_NOTIFY 0x7f
|
||||
|
||||
|
||||
/* Address Space (Operation Region) Types */
|
||||
@ -717,10 +703,10 @@ typedef UINT8 ACPI_ADR_SPACE_TYPE;
|
||||
#define ACPI_BITREG_MAX 0x13
|
||||
#define ACPI_NUM_BITREG ACPI_BITREG_MAX + 1
|
||||
|
||||
|
||||
/*
|
||||
* External ACPI object definition
|
||||
*/
|
||||
|
||||
typedef union AcpiObj
|
||||
{
|
||||
ACPI_OBJECT_TYPE Type; /* See definition of AcpiNsType for values */
|
||||
@ -779,7 +765,6 @@ typedef union AcpiObj
|
||||
/*
|
||||
* List of objects, used as a parameter list for control method evaluation
|
||||
*/
|
||||
|
||||
typedef struct AcpiObjList
|
||||
{
|
||||
UINT32 Count;
|
||||
@ -791,7 +776,6 @@ typedef struct AcpiObjList
|
||||
/*
|
||||
* 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)
|
||||
@ -807,7 +791,6 @@ typedef struct
|
||||
/*
|
||||
* NameType for AcpiGetName
|
||||
*/
|
||||
|
||||
#define ACPI_FULL_PATHNAME 0
|
||||
#define ACPI_SINGLE_NAME 1
|
||||
#define ACPI_NAME_TYPE_MAX 1
|
||||
@ -816,7 +799,6 @@ typedef struct
|
||||
/*
|
||||
* Structure and flags for AcpiGetSystemInfo
|
||||
*/
|
||||
|
||||
#define ACPI_SYS_MODE_UNKNOWN 0x0000
|
||||
#define ACPI_SYS_MODE_ACPI 0x0001
|
||||
#define ACPI_SYS_MODE_LEGACY 0x0002
|
||||
@ -836,7 +818,6 @@ typedef struct AcpiTableInfo
|
||||
/*
|
||||
* System info returned by AcpiGetSystemInfo()
|
||||
*/
|
||||
|
||||
typedef struct _AcpiSysInfo
|
||||
{
|
||||
UINT32 AcpiCaVersion;
|
||||
@ -855,7 +836,6 @@ typedef struct _AcpiSysInfo
|
||||
/*
|
||||
* Various handlers and callback procedures
|
||||
*/
|
||||
|
||||
typedef
|
||||
UINT32 (*ACPI_EVENT_HANDLER) (
|
||||
void *Context);
|
||||
@ -1092,7 +1072,7 @@ typedef struct
|
||||
|
||||
/*
|
||||
* END_DEPENDENT_FUNCTIONS_RESOURCE struct is not
|
||||
* needed because it has no fields
|
||||
* needed because it has no fields
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Name: amlcode.h - Definitions for AML, as included in "definition blocks"
|
||||
* Declarations and definitions contained herein are derived
|
||||
* directly from the ACPI specification.
|
||||
* $Revision: 70 $
|
||||
* $Revision: 71 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -553,7 +553,8 @@ typedef enum
|
||||
AML_FIELD_ATTRIB_SMB_BYTE = 0x06,
|
||||
AML_FIELD_ATTRIB_SMB_WORD = 0x08,
|
||||
AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A,
|
||||
AML_FIELD_ATTRIB_SMB_CALL = 0x0E
|
||||
AML_FIELD_ATTRIB_SMB_WORD_CALL = 0x0C,
|
||||
AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D
|
||||
|
||||
} AML_ACCESS_ATTRIBUTE;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dbdisply - debug display commands
|
||||
* $Revision: 79 $
|
||||
* $Revision: 81 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -413,7 +413,7 @@ AcpiDbDecodeInternalObject (
|
||||
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
|
||||
{
|
||||
AcpiOsPrintf ("%p", ObjDesc);
|
||||
AcpiOsPrintf (" %p", ObjDesc);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -456,7 +456,7 @@ AcpiDbDecodeInternalObject (
|
||||
|
||||
default:
|
||||
|
||||
AcpiOsPrintf ("%p", ObjDesc);
|
||||
AcpiOsPrintf (" %p", ObjDesc);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -480,8 +480,8 @@ AcpiDbDecodeNode (
|
||||
{
|
||||
|
||||
|
||||
AcpiOsPrintf ("<Node> Name %4.4s Type-%s",
|
||||
Node->Name.Ascii, AcpiUtGetTypeName (Node->Type));
|
||||
AcpiOsPrintf ("<Node> Name %4.4s",
|
||||
Node->Name.Ascii);
|
||||
|
||||
if (Node->Flags & ANOBJ_METHOD_ARG)
|
||||
{
|
||||
@ -544,7 +544,7 @@ AcpiDbDisplayInternalObject (
|
||||
case ACPI_DESC_TYPE_OPERAND:
|
||||
|
||||
Type = ACPI_GET_OBJECT_TYPE (ObjDesc);
|
||||
if (Type > INTERNAL_TYPE_MAX)
|
||||
if (Type > ACPI_TYPE_LOCAL_MAX)
|
||||
{
|
||||
AcpiOsPrintf (" Type %X [Invalid Type]", (UINT32) Type);
|
||||
return;
|
||||
@ -554,7 +554,7 @@ AcpiDbDisplayInternalObject (
|
||||
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
switch (ObjDesc->Reference.Opcode)
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dbexec - debugger control method execution
|
||||
* $Revision: 45 $
|
||||
* $Revision: 46 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -500,7 +500,7 @@ AcpiDbCreateExecutionThreads (
|
||||
i = NumThreads;
|
||||
while (i) /* Brain damage for OSD implementations that only support wait of 1 unit */
|
||||
{
|
||||
Status = AcpiOsWaitSemaphore (ThreadGate, 1, WAIT_FOREVER);
|
||||
Status = AcpiOsWaitSemaphore (ThreadGate, 1, ACPI_WAIT_FOREVER);
|
||||
i--;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dbstats - Generation and display of ACPI table statistics
|
||||
* $Revision: 63 $
|
||||
* $Revision: 64 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -179,7 +179,7 @@ AcpiDbEnumerateObject (
|
||||
|
||||
AcpiGbl_NumObjects++;
|
||||
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) > INTERNAL_TYPE_NODE_MAX)
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) > ACPI_TYPE_NS_NODE_MAX)
|
||||
{
|
||||
AcpiGbl_ObjTypeCountMisc++;
|
||||
}
|
||||
@ -193,6 +193,7 @@ AcpiDbEnumerateObject (
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case ACPI_TYPE_PACKAGE:
|
||||
|
||||
for (i = 0; i < ObjDesc->Package.Count; i++)
|
||||
{
|
||||
AcpiDbEnumerateObject (ObjDesc->Package.Elements[i]);
|
||||
@ -200,12 +201,14 @@ AcpiDbEnumerateObject (
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_DEVICE:
|
||||
|
||||
AcpiDbEnumerateObject (ObjDesc->Device.SysHandler);
|
||||
AcpiDbEnumerateObject (ObjDesc->Device.DrvHandler);
|
||||
AcpiDbEnumerateObject (ObjDesc->Device.AddrHandler);
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
|
||||
if (AcpiNsGetSecondaryObject (ObjDesc))
|
||||
{
|
||||
AcpiGbl_ObjTypeCount [ACPI_TYPE_BUFFER_FIELD]++;
|
||||
@ -213,22 +216,26 @@ AcpiDbEnumerateObject (
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_REGION:
|
||||
AcpiGbl_ObjTypeCount [INTERNAL_TYPE_REGION_FIELD ]++;
|
||||
|
||||
AcpiGbl_ObjTypeCount [ACPI_TYPE_LOCAL_REGION_FIELD ]++;
|
||||
AcpiDbEnumerateObject (ObjDesc->Region.AddrHandler);
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_POWER:
|
||||
|
||||
AcpiDbEnumerateObject (ObjDesc->PowerResource.SysHandler);
|
||||
AcpiDbEnumerateObject (ObjDesc->PowerResource.DrvHandler);
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_PROCESSOR:
|
||||
|
||||
AcpiDbEnumerateObject (ObjDesc->Processor.SysHandler);
|
||||
AcpiDbEnumerateObject (ObjDesc->Processor.DrvHandler);
|
||||
AcpiDbEnumerateObject (ObjDesc->Processor.AddrHandler);
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_THERMAL:
|
||||
|
||||
AcpiDbEnumerateObject (ObjDesc->ThermalZone.SysHandler);
|
||||
AcpiDbEnumerateObject (ObjDesc->ThermalZone.DrvHandler);
|
||||
AcpiDbEnumerateObject (ObjDesc->ThermalZone.AddrHandler);
|
||||
@ -273,7 +280,7 @@ AcpiDbClassifyOneObject (
|
||||
AcpiDbEnumerateObject (ObjDesc);
|
||||
|
||||
Type = Node->Type;
|
||||
if (Type > INTERNAL_TYPE_NODE_MAX)
|
||||
if (Type > ACPI_TYPE_NS_NODE_MAX)
|
||||
{
|
||||
AcpiGbl_NodeTypeCountMisc++;
|
||||
}
|
||||
@ -334,7 +341,7 @@ AcpiDbCountNamespaceObjects (
|
||||
AcpiGbl_NumObjects = 0;
|
||||
|
||||
AcpiGbl_ObjTypeCountMisc = 0;
|
||||
for (i = 0; i < (INTERNAL_TYPE_NODE_MAX -1); i++)
|
||||
for (i = 0; i < (ACPI_TYPE_NS_NODE_MAX -1); i++)
|
||||
{
|
||||
AcpiGbl_ObjTypeCount [i] = 0;
|
||||
AcpiGbl_NodeTypeCount [i] = 0;
|
||||
@ -414,7 +421,7 @@ AcpiDbDisplayStatistics (
|
||||
|
||||
AcpiOsPrintf ("%16.16s %10.10s %10.10s\n", "ACPI_TYPE", "NODES", "OBJECTS");
|
||||
|
||||
for (i = 0; i < INTERNAL_TYPE_NODE_MAX; i++)
|
||||
for (i = 0; i < ACPI_TYPE_NS_NODE_MAX; i++)
|
||||
{
|
||||
AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", AcpiUtGetTypeName (i),
|
||||
AcpiGbl_NodeTypeCount [i], AcpiGbl_ObjTypeCount [i]);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dbutils - AML debugger utilities
|
||||
* $Revision: 56 $
|
||||
* $Revision: 57 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -261,7 +261,7 @@ AcpiDbDumpObject (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
AcpiOsPrintf ("[Object Reference] = %p\n", ObjDesc->Reference.Handle);
|
||||
break;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dmbuffer - AML disassembler, buffer and string support
|
||||
* $Revision: 7 $
|
||||
* $Revision: 8 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -221,7 +221,7 @@ AcpiDmByteList (
|
||||
case ACPI_DASM_STRING:
|
||||
|
||||
AcpiDmIndent (Info->Level);
|
||||
AcpiDmString ((char *) ByteData);
|
||||
AcpiUtPrintString ((char *) ByteData, ACPI_UINT8_MAX);
|
||||
AcpiOsPrintf ("\n");
|
||||
break;
|
||||
|
||||
@ -380,96 +380,6 @@ AcpiDmIsStringBuffer (
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDmString
|
||||
*
|
||||
* PARAMETERS: String - Null terminated ASCII string
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Dump an ASCII string with support for ACPI-defined escape
|
||||
* sequences.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiDmString (
|
||||
char *String)
|
||||
{
|
||||
UINT32 i;
|
||||
|
||||
|
||||
if (!String)
|
||||
{
|
||||
AcpiOsPrintf ("<\"NULL STRING PTR\">");
|
||||
return;
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("\"");
|
||||
for (i = 0; String[i]; i++)
|
||||
{
|
||||
/* Escape sequences */
|
||||
|
||||
switch (String[i])
|
||||
{
|
||||
case 0x07:
|
||||
AcpiOsPrintf ("\\a"); /* BELL */
|
||||
break;
|
||||
|
||||
case 0x08:
|
||||
AcpiOsPrintf ("\\b"); /* BACKSPACE */
|
||||
break;
|
||||
|
||||
case 0x0C:
|
||||
AcpiOsPrintf ("\\f"); /* FORMFEED */
|
||||
break;
|
||||
|
||||
case 0x0A:
|
||||
AcpiOsPrintf ("\\n"); /* LINEFEED */
|
||||
break;
|
||||
|
||||
case 0x0D:
|
||||
AcpiOsPrintf ("\\r"); /* CARRIAGE RETURN*/
|
||||
break;
|
||||
|
||||
case 0x09:
|
||||
AcpiOsPrintf ("\\t"); /* HORIZONTAL TAB */
|
||||
break;
|
||||
|
||||
case 0x0B:
|
||||
AcpiOsPrintf ("\\v"); /* VERTICAL TAB */
|
||||
break;
|
||||
|
||||
case '\'': /* Single Quote */
|
||||
case '\"': /* Double Quote */
|
||||
case '\\': /* Backslash */
|
||||
AcpiOsPrintf ("\\%c", (int) String[i]);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* Check for printable character or hex escape */
|
||||
|
||||
if (ACPI_IS_PRINT (String[i]))
|
||||
{
|
||||
/* This is a normal character */
|
||||
|
||||
AcpiOsPrintf ("%c", (int) String[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* All others will be Hex escapes */
|
||||
|
||||
AcpiOsPrintf ("\\x%2.2X", (INT32) String[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
AcpiOsPrintf ("\"");
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDmUnicode
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dmopcode - AML disassembler, specific AML opcodes
|
||||
* $Revision: 77 $
|
||||
* $Revision: 79 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -458,7 +458,7 @@ AcpiDmDisassembleOneOp (
|
||||
|
||||
case AML_STRING_OP:
|
||||
|
||||
AcpiDmString (Op->Common.Value.String);
|
||||
AcpiUtPrintString (Op->Common.Value.String, ACPI_UINT8_MAX);
|
||||
break;
|
||||
|
||||
|
||||
@ -551,10 +551,11 @@ AcpiDmDisassembleOneOp (
|
||||
|
||||
case AML_INT_ACCESSFIELD_OP:
|
||||
|
||||
AcpiOsPrintf ("AccessAs (%s, 0x%.2X)",
|
||||
AcpiGbl_AccessTypes [Op->Common.Value.Integer32 >> 8],
|
||||
Op->Common.Value.Integer32 & 0x0F);
|
||||
AcpiOsPrintf ("AccessAs (%s, ",
|
||||
AcpiGbl_AccessTypes [Op->Common.Value.Integer32 >> 8]);
|
||||
|
||||
AcpiDmDecodeAttribute ((UINT8) Op->Common.Value.Integer32);
|
||||
AcpiOsPrintf (")");
|
||||
AcpiDmCommaIfFieldMember (Op);
|
||||
break;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dmutils - AML disassembler utilities
|
||||
* $Revision: 4 $
|
||||
* $Revision: 5 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -287,6 +287,68 @@ const char *AcpiGbl_SIZDecode[4] =
|
||||
};
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDmDecodeAttribute
|
||||
*
|
||||
* PARAMETERS: Attribute - Attribute field of AccessAs keyword
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Decode the AccessAs attribute byte. (Mostly SMBus stuff)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiDmDecodeAttribute (
|
||||
UINT8 Attribute)
|
||||
{
|
||||
|
||||
switch (Attribute)
|
||||
{
|
||||
case AML_FIELD_ATTRIB_SMB_QUICK:
|
||||
|
||||
AcpiOsPrintf ("SMBQuick");
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_SEND_RCV:
|
||||
|
||||
AcpiOsPrintf ("SMBSendReceive");
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_BYTE:
|
||||
|
||||
AcpiOsPrintf ("SMBByte");
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_WORD:
|
||||
|
||||
AcpiOsPrintf ("SMBWord");
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_WORD_CALL:
|
||||
|
||||
AcpiOsPrintf ("SMBProcessCall");
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_BLOCK:
|
||||
|
||||
AcpiOsPrintf ("SMBBlock");
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_BLOCK_CALL:
|
||||
|
||||
AcpiOsPrintf ("SMBBlockProcessCall");
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
AcpiOsPrintf ("0x%.2X", Attribute);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDmIndent
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: dsfield - Dispatcher field routines
|
||||
* $Revision: 68 $
|
||||
* $Revision: 69 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -200,7 +200,7 @@ AcpiDsCreateBufferField (
|
||||
* Enter the NameString into the namespace
|
||||
*/
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
|
||||
INTERNAL_TYPE_DEF_ANY, ACPI_IMODE_LOAD_PASS1,
|
||||
ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS1,
|
||||
Flags, WalkState, &(Node));
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@ -454,7 +454,7 @@ AcpiDsCreateField (
|
||||
|
||||
/* Each remaining arg is a Named Field */
|
||||
|
||||
Info.FieldType = INTERNAL_TYPE_REGION_FIELD;
|
||||
Info.FieldType = ACPI_TYPE_LOCAL_REGION_FIELD;
|
||||
Info.RegionNode = RegionNode;
|
||||
|
||||
Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
|
||||
@ -496,17 +496,17 @@ AcpiDsInitFieldObjects (
|
||||
{
|
||||
case AML_FIELD_OP:
|
||||
Arg = AcpiPsGetArg (Op, 2);
|
||||
Type = INTERNAL_TYPE_REGION_FIELD;
|
||||
Type = ACPI_TYPE_LOCAL_REGION_FIELD;
|
||||
break;
|
||||
|
||||
case AML_BANK_FIELD_OP:
|
||||
Arg = AcpiPsGetArg (Op, 4);
|
||||
Type = INTERNAL_TYPE_BANK_FIELD;
|
||||
Type = ACPI_TYPE_LOCAL_BANK_FIELD;
|
||||
break;
|
||||
|
||||
case AML_INDEX_FIELD_OP:
|
||||
Arg = AcpiPsGetArg (Op, 3);
|
||||
Type = INTERNAL_TYPE_INDEX_FIELD;
|
||||
Type = ACPI_TYPE_LOCAL_INDEX_FIELD;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -595,11 +595,11 @@ AcpiDsCreateBankField (
|
||||
}
|
||||
}
|
||||
|
||||
/* Second arg is the Bank Register (must already exist) */
|
||||
/* Second arg is the Bank Register (Field) (must already exist) */
|
||||
|
||||
Arg = Arg->Common.Next;
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
|
||||
INTERNAL_TYPE_BANK_FIELD_DEFN, ACPI_IMODE_EXECUTE,
|
||||
ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
|
||||
ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@ -619,7 +619,7 @@ AcpiDsCreateBankField (
|
||||
|
||||
/* Each remaining arg is a Named Field */
|
||||
|
||||
Info.FieldType = INTERNAL_TYPE_BANK_FIELD;
|
||||
Info.FieldType = ACPI_TYPE_LOCAL_BANK_FIELD;
|
||||
Info.RegionNode = RegionNode;
|
||||
|
||||
Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
|
||||
@ -672,7 +672,7 @@ AcpiDsCreateIndexField (
|
||||
|
||||
Arg = Arg->Common.Next;
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
|
||||
INTERNAL_TYPE_INDEX_FIELD_DEFN, ACPI_IMODE_EXECUTE,
|
||||
ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
|
||||
ACPI_NS_SEARCH_PARENT, WalkState, &Info.DataRegisterNode);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@ -687,7 +687,7 @@ AcpiDsCreateIndexField (
|
||||
|
||||
/* Each remaining arg is a Named Field */
|
||||
|
||||
Info.FieldType = INTERNAL_TYPE_INDEX_FIELD;
|
||||
Info.FieldType = ACPI_TYPE_LOCAL_INDEX_FIELD;
|
||||
Info.RegionNode = RegionNode;
|
||||
|
||||
Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: dsmethod - Parser/Interpreter interface - control method parsing
|
||||
* $Revision: 88 $
|
||||
* $Revision: 89 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -320,7 +320,7 @@ AcpiDsBeginMethodExecution (
|
||||
* interpreter if we block
|
||||
*/
|
||||
Status = AcpiExSystemWaitSemaphore (ObjDesc->Method.Semaphore,
|
||||
WAIT_FOREVER);
|
||||
ACPI_WAIT_FOREVER);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dsmthdat - control method arguments and local variables
|
||||
* $Revision: 63 $
|
||||
* $Revision: 64 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -722,7 +722,7 @@ AcpiDsStoreObjectToLocal (
|
||||
* If we have a valid reference object that came from RefOf(), do the
|
||||
* indirect store
|
||||
*/
|
||||
if ((CurrentObjDesc->Common.Type == INTERNAL_TYPE_REFERENCE) &&
|
||||
if ((CurrentObjDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&
|
||||
(CurrentObjDesc->Reference.Opcode == AML_REF_OF_OP))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: dsobject - Dispatcher object management routines
|
||||
* $Revision: 108 $
|
||||
* $Revision: 110 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -837,7 +837,7 @@ AcpiDsInitObjectFromOp (
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
ObjDesc->String.Pointer = Op->Common.Value.String;
|
||||
ObjDesc->String.Length = ACPI_STRLEN (Op->Common.Value.String);
|
||||
ObjDesc->String.Length = (UINT32) ACPI_STRLEN (Op->Common.Value.String);
|
||||
|
||||
/*
|
||||
* The string is contained in the ACPI table, don't ever try
|
||||
@ -851,7 +851,7 @@ AcpiDsInitObjectFromOp (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
switch (OpInfo->Type)
|
||||
{
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: dsopcode - Dispatcher Op Region support and handling of
|
||||
* "control" opcodes
|
||||
* $Revision: 82 $
|
||||
* $Revision: 83 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -1158,7 +1158,7 @@ AcpiDsExecEndControlOp (
|
||||
* Allow references created by the Index operator to return unchanged.
|
||||
*/
|
||||
if ((ACPI_GET_DESCRIPTOR_TYPE (WalkState->Results->Results.ObjDesc[0]) == ACPI_DESC_TYPE_OPERAND) &&
|
||||
(ACPI_GET_OBJECT_TYPE (WalkState->Results->Results.ObjDesc [0]) == INTERNAL_TYPE_REFERENCE) &&
|
||||
(ACPI_GET_OBJECT_TYPE (WalkState->Results->Results.ObjDesc [0]) == ACPI_TYPE_LOCAL_REFERENCE) &&
|
||||
((WalkState->Results->Results.ObjDesc [0])->Reference.Opcode != AML_INDEX_OP))
|
||||
{
|
||||
Status = AcpiExResolveToValue (&WalkState->Results->Results.ObjDesc [0], WalkState);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dsutils - Dispatcher utilities
|
||||
* $Revision: 95 $
|
||||
* $Revision: 97 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -379,6 +379,46 @@ AcpiDsResolveOperands (
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDsClearOperands
|
||||
*
|
||||
* PARAMETERS: WalkState - Current walk state with operands on stack
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Clear all operands on the current walk state operand stack.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiDsClearOperands (
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
UINT32 i;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR ("AcpiDsClearOperands", WalkState);
|
||||
|
||||
|
||||
/*
|
||||
* Remove a reference on each operand on the stack
|
||||
*/
|
||||
for (i = 0; i < WalkState->NumOperands; i++)
|
||||
{
|
||||
/*
|
||||
* Remove a reference to all operands, including both
|
||||
* "Arguments" and "Targets".
|
||||
*/
|
||||
AcpiUtRemoveReference (WalkState->Operands[i]);
|
||||
WalkState->Operands[i] = NULL;
|
||||
}
|
||||
|
||||
WalkState->NumOperands = 0;
|
||||
return_VOID;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@ -549,7 +589,7 @@ AcpiDsCreateOperand (
|
||||
/* Get the object type of the argument */
|
||||
|
||||
OpInfo = AcpiPsGetOpcodeInfo (Opcode);
|
||||
if (OpInfo->ObjectType == INTERNAL_TYPE_INVALID)
|
||||
if (OpInfo->ObjectType == ACPI_TYPE_INVALID)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: dswexec - Dispatcher method execution callbacks;
|
||||
* dispatch to interpreter.
|
||||
* $Revision: 95 $
|
||||
* $Revision: 96 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -443,7 +443,6 @@ AcpiDsExecEndOp (
|
||||
UINT32 OpClass;
|
||||
ACPI_PARSE_OBJECT *NextOp;
|
||||
ACPI_PARSE_OBJECT *FirstArg;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR ("DsExecEndOp", WalkState);
|
||||
@ -526,16 +525,7 @@ AcpiDsExecEndOp (
|
||||
|
||||
/* Always delete the argument objects and clear the operand stack */
|
||||
|
||||
for (i = 0; i < WalkState->NumOperands; i++)
|
||||
{
|
||||
/*
|
||||
* Remove a reference to all operands, including both
|
||||
* "Arguments" and "Targets".
|
||||
*/
|
||||
AcpiUtRemoveReference (WalkState->Operands[i]);
|
||||
WalkState->Operands[i] = NULL;
|
||||
}
|
||||
WalkState->NumOperands = 0;
|
||||
AcpiDsClearOperands (WalkState);
|
||||
|
||||
/*
|
||||
* If a result object was returned from above, push it on the
|
||||
@ -601,6 +591,9 @@ AcpiDsExecEndOp (
|
||||
Status = AcpiDsResolveOperands (WalkState);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/* On error, clear all resolved operands */
|
||||
|
||||
AcpiDsClearOperands (WalkState);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: dswload - Dispatcher namespace load callbacks
|
||||
* $Revision: 75 $
|
||||
* $Revision: 78 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -248,54 +248,30 @@ AcpiDsLoad1BeginOp (
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
|
||||
"State=%p Op=%p [%s] ", WalkState, Op, AcpiUtGetTypeName (ObjectType)));
|
||||
|
||||
/*
|
||||
* Setup the search flags.
|
||||
*
|
||||
* Since we are entering a name into the namespace, we do not want to
|
||||
* enable the search-to-root upsearch.
|
||||
*
|
||||
* There are only two conditions where it is acceptable that the name
|
||||
* already exists:
|
||||
* 1) the Scope() operator can reopen a scoping object that was
|
||||
* previously defined (Scope, Method, Device, etc.)
|
||||
* 2) Whenever we are parsing a deferred opcode (OpRegion, Buffer,
|
||||
* BufferField, or Package), the name of the object is already
|
||||
* in the namespace.
|
||||
*/
|
||||
Flags = ACPI_NS_NO_UPSEARCH;
|
||||
if ((WalkState->Opcode != AML_SCOPE_OP) &&
|
||||
(!(WalkState->ParseFlags & ACPI_PARSE_DEFERRED_OP)))
|
||||
switch (WalkState->Opcode)
|
||||
{
|
||||
Flags |= ACPI_NS_ERROR_IF_FOUND;
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DISPATCH, "Cannot already exist\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DISPATCH, "Both Find or Create allowed\n"));
|
||||
}
|
||||
case AML_SCOPE_OP:
|
||||
|
||||
/*
|
||||
* Enter the named type into the internal namespace. We enter the name
|
||||
* as we go downward in the parse tree. Any necessary subobjects that involve
|
||||
* arguments to the opcode must be created as we go back up the parse tree later.
|
||||
*/
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
|
||||
ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &(Node));
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_NSERROR (Path, Status);
|
||||
return (Status);
|
||||
}
|
||||
/*
|
||||
* The target name of the Scope() operator must exist at this point so
|
||||
* that we can actually open the scope to enter new names underneath it.
|
||||
* Allow search-to-root for single namesegs.
|
||||
*/
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
|
||||
ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, &(Node));
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_NSERROR (Path, Status);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* For the scope op, we must check to make sure that the target is
|
||||
* one of the opcodes that actually opens a scope
|
||||
*/
|
||||
if (WalkState->Opcode == AML_SCOPE_OP)
|
||||
{
|
||||
/*
|
||||
* Check to make sure that the target is
|
||||
* one of the opcodes that actually opens a scope
|
||||
*/
|
||||
switch (Node->Type)
|
||||
{
|
||||
case ACPI_TYPE_ANY: /* Scope nodes are untyped (ANY) */
|
||||
case ACPI_TYPE_LOCAL_SCOPE: /* Scope */
|
||||
case ACPI_TYPE_DEVICE:
|
||||
case ACPI_TYPE_POWER:
|
||||
case ACPI_TYPE_PROCESSOR:
|
||||
@ -325,7 +301,7 @@ AcpiDsLoad1BeginOp (
|
||||
WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
|
||||
break;
|
||||
|
||||
default:
|
||||
default:
|
||||
|
||||
/* All other types are an error */
|
||||
|
||||
@ -334,8 +310,56 @@ AcpiDsLoad1BeginOp (
|
||||
|
||||
return (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
|
||||
/*
|
||||
* For all other named opcodes, we will enter the name into the namespace.
|
||||
*
|
||||
* Setup the search flags.
|
||||
* Since we are entering a name into the namespace, we do not want to
|
||||
* enable the search-to-root upsearch.
|
||||
*
|
||||
* There are only two conditions where it is acceptable that the name
|
||||
* already exists:
|
||||
* 1) the Scope() operator can reopen a scoping object that was
|
||||
* previously defined (Scope, Method, Device, etc.)
|
||||
* 2) Whenever we are parsing a deferred opcode (OpRegion, Buffer,
|
||||
* BufferField, or Package), the name of the object is already
|
||||
* in the namespace.
|
||||
*/
|
||||
Flags = ACPI_NS_NO_UPSEARCH;
|
||||
if ((WalkState->Opcode != AML_SCOPE_OP) &&
|
||||
(!(WalkState->ParseFlags & ACPI_PARSE_DEFERRED_OP)))
|
||||
{
|
||||
Flags |= ACPI_NS_ERROR_IF_FOUND;
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DISPATCH, "Cannot already exist\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DISPATCH, "Both Find or Create allowed\n"));
|
||||
}
|
||||
|
||||
/*
|
||||
* Enter the named type into the internal namespace. We enter the name
|
||||
* as we go downward in the parse tree. Any necessary subobjects that involve
|
||||
* arguments to the opcode must be created as we go back up the parse tree later.
|
||||
*/
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
|
||||
ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &(Node));
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_NSERROR (Path, Status);
|
||||
return (Status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* Common exit */
|
||||
|
||||
if (!Op)
|
||||
{
|
||||
/* Create a new op */
|
||||
@ -537,68 +561,46 @@ AcpiDsLoad2BeginOp (
|
||||
"State=%p Op=%p Type=%X\n", WalkState, Op, ObjectType));
|
||||
|
||||
|
||||
if (WalkState->Opcode == AML_FIELD_OP ||
|
||||
WalkState->Opcode == AML_BANK_FIELD_OP ||
|
||||
WalkState->Opcode == AML_INDEX_FIELD_OP)
|
||||
switch (WalkState->Opcode)
|
||||
{
|
||||
case AML_FIELD_OP:
|
||||
case AML_BANK_FIELD_OP:
|
||||
case AML_INDEX_FIELD_OP:
|
||||
|
||||
Node = NULL;
|
||||
Status = AE_OK;
|
||||
}
|
||||
else if (WalkState->Opcode == AML_INT_NAMEPATH_OP)
|
||||
{
|
||||
break;
|
||||
|
||||
case AML_INT_NAMEPATH_OP:
|
||||
|
||||
/*
|
||||
* The NamePath is an object reference to an existing object. Don't enter the
|
||||
* name into the namespace, but look it up for use later
|
||||
*/
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
|
||||
ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, &(Node));
|
||||
}
|
||||
else
|
||||
{
|
||||
/* All other opcodes */
|
||||
break;
|
||||
|
||||
if (Op && Op->Common.Node)
|
||||
{
|
||||
/* This op/node was previously entered into the namespace */
|
||||
|
||||
Node = Op->Common.Node;
|
||||
|
||||
if (AcpiNsOpensScope (ObjectType))
|
||||
{
|
||||
Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
}
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
case AML_SCOPE_OP:
|
||||
|
||||
/*
|
||||
* Enter the named type into the internal namespace. We enter the name
|
||||
* as we go downward in the parse tree. Any necessary subobjects that involve
|
||||
* arguments to the opcode must be created as we go back up the parse tree later.
|
||||
* The Path is an object reference to an existing object. Don't enter the
|
||||
* name into the namespace, but look it up for use later
|
||||
*/
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
|
||||
ACPI_IMODE_EXECUTE, ACPI_NS_NO_UPSEARCH, WalkState, &(Node));
|
||||
}
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_NSERROR (BufferPtr, Status);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* For the scope op, we must check to make sure that the target is
|
||||
* one of the opcodes that actually opens a scope
|
||||
*/
|
||||
if (WalkState->Opcode == AML_SCOPE_OP)
|
||||
{
|
||||
ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, &(Node));
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_NSERROR (BufferPtr, Status);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
/*
|
||||
* We must check to make sure that the target is
|
||||
* one of the opcodes that actually opens a scope
|
||||
*/
|
||||
switch (Node->Type)
|
||||
{
|
||||
case ACPI_TYPE_ANY: /* Scope nodes are untyped (ANY) */
|
||||
case ACPI_TYPE_LOCAL_SCOPE: /* Scope */
|
||||
case ACPI_TYPE_DEVICE:
|
||||
case ACPI_TYPE_POWER:
|
||||
case ACPI_TYPE_PROCESSOR:
|
||||
@ -626,7 +628,7 @@ AcpiDsLoad2BeginOp (
|
||||
WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
|
||||
break;
|
||||
|
||||
default:
|
||||
default:
|
||||
|
||||
/* All other types are an error */
|
||||
|
||||
@ -635,8 +637,47 @@ AcpiDsLoad2BeginOp (
|
||||
|
||||
return (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* All other opcodes */
|
||||
|
||||
if (Op && Op->Common.Node)
|
||||
{
|
||||
/* This op/node was previously entered into the namespace */
|
||||
|
||||
Node = Op->Common.Node;
|
||||
|
||||
if (AcpiNsOpensScope (ObjectType))
|
||||
{
|
||||
Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
}
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
/*
|
||||
* Enter the named type into the internal namespace. We enter the name
|
||||
* as we go downward in the parse tree. Any necessary subobjects that involve
|
||||
* arguments to the opcode must be created as we go back up the parse tree later.
|
||||
*/
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
|
||||
ACPI_IMODE_EXECUTE, ACPI_NS_NO_UPSEARCH, WalkState, &(Node));
|
||||
break;
|
||||
}
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_NSERROR (BufferPtr, Status);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
if (!Op)
|
||||
{
|
||||
/* Create a new op */
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: dswscope - Scope stack manipulation
|
||||
* $Revision: 53 $
|
||||
* $Revision: 56 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -117,7 +117,6 @@
|
||||
#define __DSWSCOPE_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acinterp.h"
|
||||
#include "acdispat.h"
|
||||
|
||||
|
||||
@ -181,6 +180,7 @@ AcpiDsScopeStackPush (
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
ACPI_GENERIC_STATE *ScopeInfo;
|
||||
ACPI_GENERIC_STATE *OldScopeInfo;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("DsScopeStackPush");
|
||||
@ -196,7 +196,7 @@ AcpiDsScopeStackPush (
|
||||
|
||||
/* Make sure object type is valid */
|
||||
|
||||
if (!AcpiExValidateObjectType (Type))
|
||||
if (!AcpiUtValidObjectType (Type))
|
||||
{
|
||||
ACPI_REPORT_WARNING (("DsScopeStackPush: type code out of range\n"));
|
||||
}
|
||||
@ -216,6 +216,30 @@ AcpiDsScopeStackPush (
|
||||
ScopeInfo->Scope.Node = Node;
|
||||
ScopeInfo->Common.Value = (UINT16) Type;
|
||||
|
||||
WalkState->ScopeDepth++;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
"[%.2d] Pushed scope ", (UINT32) WalkState->ScopeDepth));
|
||||
|
||||
OldScopeInfo = WalkState->ScopeInfo;
|
||||
if (OldScopeInfo)
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
|
||||
"[%4.4s] (%10s)",
|
||||
OldScopeInfo->Scope.Node->Name.Ascii,
|
||||
AcpiUtGetTypeName (OldScopeInfo->Common.Value)));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
|
||||
"[\\___] (%10s)", "ROOT"));
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
|
||||
", New scope -> [%4.4s] (%s)\n",
|
||||
ScopeInfo->Scope.Node->Name.Ascii,
|
||||
AcpiUtGetTypeName (ScopeInfo->Common.Value)));
|
||||
|
||||
/* Push new scope object onto stack */
|
||||
|
||||
AcpiUtPushGenericState (&WalkState->ScopeInfo, ScopeInfo);
|
||||
@ -246,6 +270,7 @@ AcpiDsScopeStackPop (
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
ACPI_GENERIC_STATE *ScopeInfo;
|
||||
ACPI_GENERIC_STATE *NewScopeInfo;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("DsScopeStackPop");
|
||||
@ -260,8 +285,27 @@ AcpiDsScopeStackPop (
|
||||
return_ACPI_STATUS (AE_STACK_UNDERFLOW);
|
||||
}
|
||||
|
||||
WalkState->ScopeDepth--;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
"Popped object type (%s)\n", AcpiUtGetTypeName (ScopeInfo->Common.Value)));
|
||||
"[%.2d] Popped scope [%4.4s] (%10s), New scope -> ",
|
||||
(UINT32) WalkState->ScopeDepth,
|
||||
ScopeInfo->Scope.Node->Name.Ascii,
|
||||
AcpiUtGetTypeName (ScopeInfo->Common.Value)));
|
||||
|
||||
NewScopeInfo = WalkState->ScopeInfo;
|
||||
if (NewScopeInfo)
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
|
||||
"[%4.4s] (%s)\n",
|
||||
NewScopeInfo->Scope.Node->Name.Ascii,
|
||||
AcpiUtGetTypeName (NewScopeInfo->Common.Value)));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
|
||||
"[\\___] (ROOT)\n"));
|
||||
}
|
||||
|
||||
AcpiUtDeleteGenericState (ScopeInfo);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: dswstate - Dispatcher parse tree walk management routines
|
||||
* $Revision: 68 $
|
||||
* $Revision: 70 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -273,7 +273,7 @@ AcpiDsResultPop (
|
||||
ACPI_OPERAND_OBJECT **Object,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
UINT32 Index;
|
||||
NATIVE_UINT Index;
|
||||
ACPI_GENERIC_STATE *State;
|
||||
|
||||
|
||||
@ -308,7 +308,7 @@ AcpiDsResultPop (
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] Index=%X State=%p Num=%X\n",
|
||||
*Object, (*Object) ? AcpiUtGetObjectTypeName (*Object) : "NULL",
|
||||
Index -1, WalkState, State->Results.NumResults));
|
||||
(UINT32) Index -1, WalkState, State->Results.NumResults));
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
@ -455,7 +455,7 @@ AcpiDsResultPush (
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Push an object onto the WalkState result stack.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -492,7 +492,7 @@ AcpiDsResultStackPush (
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Pop an object off of the WalkState result stack.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: evevent - Fixed and General Purpose Even handling and dispatch
|
||||
* $Revision: 92 $
|
||||
* $Revision: 96 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -446,44 +446,63 @@ AcpiEvGpeInitialize (void)
|
||||
AcpiGbl_GpeBlockInfo[0].BlockBaseNumber = 0;
|
||||
AcpiGbl_GpeBlockInfo[1].BlockBaseNumber = AcpiGbl_FADT->Gpe1Base;
|
||||
|
||||
/* Warn and exit if there are no GPE registers */
|
||||
|
||||
AcpiGbl_GpeRegisterCount = AcpiGbl_GpeBlockInfo[0].RegisterCount +
|
||||
AcpiGbl_GpeBlockInfo[1].RegisterCount;
|
||||
if (!AcpiGbl_GpeRegisterCount)
|
||||
{
|
||||
ACPI_REPORT_WARNING (("Zero GPEs are defined in the FADT\n"));
|
||||
ACPI_REPORT_WARNING (("There are no GPE blocks defined in the FADT\n"));
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
/* Determine the maximum GPE number for this machine */
|
||||
/*
|
||||
* Determine the maximum GPE number for this machine.
|
||||
* Note: both GPE0 and GPE1 are optional, and either can exist without
|
||||
* the other
|
||||
*/
|
||||
if (AcpiGbl_GpeBlockInfo[0].RegisterCount)
|
||||
{
|
||||
/* GPE block 0 exists */
|
||||
|
||||
AcpiGbl_GpeNumberMax = ACPI_MUL_8 (AcpiGbl_GpeBlockInfo[0].RegisterCount) - 1;
|
||||
AcpiGbl_GpeNumberMax = ACPI_MUL_8 (AcpiGbl_GpeBlockInfo[0].RegisterCount) - 1;
|
||||
}
|
||||
|
||||
if (AcpiGbl_GpeBlockInfo[1].RegisterCount)
|
||||
{
|
||||
/* Check for GPE0/GPE1 overlap */
|
||||
/* GPE block 1 exists */
|
||||
|
||||
if (AcpiGbl_GpeNumberMax >= AcpiGbl_FADT->Gpe1Base)
|
||||
/* Check for GPE0/GPE1 overlap (if both banks exist) */
|
||||
|
||||
if ((AcpiGbl_GpeBlockInfo[0].RegisterCount) &&
|
||||
(AcpiGbl_GpeNumberMax >= AcpiGbl_FADT->Gpe1Base))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("GPE0 block overlaps the GPE1 block\n"));
|
||||
ACPI_REPORT_ERROR ((
|
||||
"GPE0 block (GPE 0 to %d) overlaps the GPE1 block (GPE %d to %d)\n",
|
||||
AcpiGbl_GpeNumberMax, AcpiGbl_FADT->Gpe1Base,
|
||||
AcpiGbl_FADT->Gpe1Base + (ACPI_MUL_8 (AcpiGbl_GpeBlockInfo[1].RegisterCount) - 1)));
|
||||
return_ACPI_STATUS (AE_BAD_VALUE);
|
||||
}
|
||||
|
||||
/* GPE0 and GPE1 do not have to be contiguous in the GPE number space */
|
||||
|
||||
AcpiGbl_GpeNumberMax = AcpiGbl_FADT->Gpe1Base + (ACPI_MUL_8 (AcpiGbl_GpeBlockInfo[1].RegisterCount) - 1);
|
||||
/*
|
||||
* GPE0 and GPE1 do not have to be contiguous in the GPE number space,
|
||||
* But, GPE0 always starts at zero.
|
||||
*/
|
||||
AcpiGbl_GpeNumberMax = AcpiGbl_FADT->Gpe1Base +
|
||||
(ACPI_MUL_8 (AcpiGbl_GpeBlockInfo[1].RegisterCount) - 1);
|
||||
}
|
||||
|
||||
/* Check for Max GPE number out-of-range */
|
||||
|
||||
if (AcpiGbl_GpeNumberMax > ACPI_GPE_MAX)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Maximum GPE number from FADT is too large: 0x%X\n", AcpiGbl_GpeNumberMax));
|
||||
ACPI_REPORT_ERROR (("Maximum GPE number from FADT is too large: 0x%X\n",
|
||||
AcpiGbl_GpeNumberMax));
|
||||
return_ACPI_STATUS (AE_BAD_VALUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate the GPE number-to-index translation table
|
||||
*/
|
||||
/* Allocate the GPE number-to-index translation table */
|
||||
|
||||
AcpiGbl_GpeNumberToIndex = ACPI_MEM_CALLOCATE (
|
||||
sizeof (ACPI_GPE_INDEX_INFO) *
|
||||
((ACPI_SIZE) AcpiGbl_GpeNumberMax + 1));
|
||||
@ -499,9 +518,8 @@ AcpiEvGpeInitialize (void)
|
||||
ACPI_MEMSET (AcpiGbl_GpeNumberToIndex, (int) ACPI_GPE_INVALID,
|
||||
sizeof (ACPI_GPE_INDEX_INFO) * ((ACPI_SIZE) AcpiGbl_GpeNumberMax + 1));
|
||||
|
||||
/*
|
||||
* Allocate the GPE register information block
|
||||
*/
|
||||
/* Allocate the GPE register information block */
|
||||
|
||||
AcpiGbl_GpeRegisterInfo = ACPI_MEM_CALLOCATE (
|
||||
(ACPI_SIZE) AcpiGbl_GpeRegisterCount *
|
||||
sizeof (ACPI_GPE_REGISTER_INFO));
|
||||
@ -578,7 +596,6 @@ AcpiEvGpeInitialize (void)
|
||||
* are cleared by writing a '1', while enable registers are cleared
|
||||
* by writing a '0'.
|
||||
*/
|
||||
|
||||
Status = AcpiHwLowLevelWrite (8, 0x00, &GpeRegisterInfo->EnableAddress, 0);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@ -594,16 +611,19 @@ AcpiEvGpeInitialize (void)
|
||||
GpeRegister++;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "GPE Block%d: %X registers at %8.8X%8.8X\n",
|
||||
(INT32) GpeBlock, AcpiGbl_GpeBlockInfo[0].RegisterCount,
|
||||
ACPI_HIDWORD (ACPI_GET_ADDRESS (AcpiGbl_GpeBlockInfo[GpeBlock].BlockAddress->Address)),
|
||||
ACPI_LODWORD (ACPI_GET_ADDRESS (AcpiGbl_GpeBlockInfo[GpeBlock].BlockAddress->Address))));
|
||||
if (i)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "GPE Block%d: %X registers at %8.8X%8.8X\n",
|
||||
(INT32) GpeBlock, AcpiGbl_GpeBlockInfo[0].RegisterCount,
|
||||
ACPI_HIDWORD (ACPI_GET_ADDRESS (AcpiGbl_GpeBlockInfo[GpeBlock].BlockAddress->Address)),
|
||||
ACPI_LODWORD (ACPI_GET_ADDRESS (AcpiGbl_GpeBlockInfo[GpeBlock].BlockAddress->Address))));
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "GPE Block%d Range GPE #%2.2X to GPE #%2.2X\n",
|
||||
(INT32) GpeBlock,
|
||||
AcpiGbl_GpeBlockInfo[GpeBlock].BlockBaseNumber,
|
||||
AcpiGbl_GpeBlockInfo[GpeBlock].BlockBaseNumber +
|
||||
((AcpiGbl_GpeBlockInfo[GpeBlock].RegisterCount * 8) -1)));
|
||||
ACPI_REPORT_INFO (("GPE Block%d defined as GPE%d to GPE%d\n",
|
||||
(INT32) GpeBlock,
|
||||
(UINT32) AcpiGbl_GpeBlockInfo[GpeBlock].BlockBaseNumber,
|
||||
(UINT32) (AcpiGbl_GpeBlockInfo[GpeBlock].BlockBaseNumber +
|
||||
((AcpiGbl_GpeBlockInfo[GpeBlock].RegisterCount * 8) -1))));
|
||||
}
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
@ -925,7 +945,7 @@ AcpiEvAsynchExecuteGpeMethod (
|
||||
Status = AcpiNsEvaluateByHandle (GpeInfo.MethodHandle, NULL, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("%s while evaluated GPE%X method\n",
|
||||
ACPI_REPORT_ERROR (("%s while evaluating GPE%X method\n",
|
||||
AcpiFormatException (Status), GpeNumber));
|
||||
}
|
||||
}
|
||||
@ -980,7 +1000,7 @@ AcpiEvGpeDispatch (
|
||||
GpeNumberIndex = AcpiEvGetGpeNumberIndex (GpeNumber);
|
||||
if (GpeNumberIndex == ACPI_GPE_INVALID)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid event, GPE[%X].\n", GpeNumber));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "GPE[%X] is not a valid event\n", GpeNumber));
|
||||
return_VALUE (ACPI_INTERRUPT_NOT_HANDLED);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: evmisc - Miscellaneous event manager support functions
|
||||
* $Revision: 57 $
|
||||
* $Revision: 59 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -331,7 +331,8 @@ AcpiEvQueueNotifyRequest (
|
||||
{
|
||||
/* There is no per-device notify handler for this device */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "No notify handler for node %p \n", Node));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"No notify handler for [%4.4s] node %p\n", Node->Name.Ascii, Node));
|
||||
}
|
||||
|
||||
return (Status);
|
||||
@ -547,7 +548,7 @@ AcpiEvInitGlobalLockHandler (void)
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvAcquireGlobalLock (
|
||||
UINT32 Timeout)
|
||||
UINT16 Timeout)
|
||||
{
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
BOOLEAN Acquired = FALSE;
|
||||
@ -583,7 +584,7 @@ AcpiEvAcquireGlobalLock (
|
||||
{
|
||||
/* We got the lock */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Acquired the HW Global Lock\n"));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Acquired the HW Global Lock\n"));
|
||||
|
||||
AcpiGbl_GlobalLockAcquired = TRUE;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
@ -593,7 +594,7 @@ AcpiEvAcquireGlobalLock (
|
||||
* Did not get the lock. The pending bit was set above, and we must now
|
||||
* wait until we get the global lock released interrupt.
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Waiting for the HW Global Lock\n"));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Waiting for the HW Global Lock\n"));
|
||||
|
||||
/*
|
||||
* Acquire the global lock semaphore first.
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: evxface - External interfaces for ACPI events
|
||||
* $Revision: 130 $
|
||||
* $Revision: 132 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -410,7 +410,7 @@ AcpiInstallNotifyHandler (
|
||||
|
||||
/* Install the handler */
|
||||
|
||||
NotifyObj = AcpiUtCreateInternalObject (INTERNAL_TYPE_NOTIFY);
|
||||
NotifyObj = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_NOTIFY);
|
||||
if (!NotifyObj)
|
||||
{
|
||||
Status = AE_NO_MEMORY;
|
||||
@ -756,7 +756,7 @@ Cleanup:
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAcquireGlobalLock (
|
||||
UINT32 Timeout,
|
||||
UINT16 Timeout,
|
||||
UINT32 *Handle)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: evxfregn - External Interfaces, ACPI Operation Regions and
|
||||
* Address Spaces.
|
||||
* $Revision: 50 $
|
||||
* $Revision: 52 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -317,8 +317,8 @@ AcpiInstallAddressSpaceHandler (
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
|
||||
"Installing address handler for region %s(%X) on Device %p(%p)\n",
|
||||
AcpiUtGetRegionName (SpaceId), SpaceId, Node, ObjDesc));
|
||||
"Installing address handler for region %s(%X) on Device %4.4s %p(%p)\n",
|
||||
AcpiUtGetRegionName (SpaceId), SpaceId, Node->Name.Ascii, Node, ObjDesc));
|
||||
|
||||
/*
|
||||
* Now we can install the handler
|
||||
@ -327,7 +327,7 @@ AcpiInstallAddressSpaceHandler (
|
||||
* So, we just allocate the object for the handler and link it
|
||||
* into the list.
|
||||
*/
|
||||
HandlerObj = AcpiUtCreateInternalObject (INTERNAL_TYPE_ADDRESS_HANDLER);
|
||||
HandlerObj = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_ADDRESS_HANDLER);
|
||||
if (!HandlerObj)
|
||||
{
|
||||
Status = AE_NO_MEMORY;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exconfig - Namespace reconfiguration (Load/Unload opcodes)
|
||||
* $Revision: 67 $
|
||||
* $Revision: 69 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -160,7 +160,7 @@ AcpiExAddTable (
|
||||
|
||||
/* Create an object to be the table handle */
|
||||
|
||||
ObjDesc = AcpiUtCreateInternalObject (INTERNAL_TYPE_REFERENCE);
|
||||
ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_REFERENCE);
|
||||
if (!ObjDesc)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
@ -171,7 +171,6 @@ AcpiExAddTable (
|
||||
TableInfo.Pointer = Table;
|
||||
TableInfo.Length = (ACPI_SIZE) Table->Length;
|
||||
TableInfo.Allocation = ACPI_MEM_ALLOCATED;
|
||||
TableInfo.BasePointer = Table;
|
||||
|
||||
Status = AcpiTbInstallTable (&TableInfo);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@ -430,9 +429,9 @@ AcpiExLoadOp (
|
||||
|
||||
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Load from Field %p %s\n",
|
||||
ObjDesc, AcpiUtGetObjectTypeName (ObjDesc)));
|
||||
@ -537,7 +536,7 @@ AcpiExUnloadTable (
|
||||
*/
|
||||
if ((!DdbHandle) ||
|
||||
(ACPI_GET_DESCRIPTOR_TYPE (DdbHandle) != ACPI_DESC_TYPE_OPERAND) ||
|
||||
(ACPI_GET_OBJECT_TYPE (DdbHandle) != INTERNAL_TYPE_REFERENCE))
|
||||
(ACPI_GET_OBJECT_TYPE (DdbHandle) != ACPI_TYPE_LOCAL_REFERENCE))
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exconvrt - Object conversion routines
|
||||
* $Revision: 39 $
|
||||
* $Revision: 44 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -246,10 +246,15 @@ AcpiExConvertToInteger (
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Save the Result, delete original descriptor, store new descriptor */
|
||||
/* Save the Result */
|
||||
|
||||
RetDesc->Integer.Value = Result;
|
||||
|
||||
/*
|
||||
* If we are about to overwrite the original object on the operand stack,
|
||||
* we must remove a reference on the original object because we are
|
||||
* essentially removing it from the stack.
|
||||
*/
|
||||
if (*ResultDesc == ObjDesc)
|
||||
{
|
||||
if (WalkState->Opcode != AML_STORE_OP)
|
||||
@ -293,81 +298,53 @@ AcpiExConvertToBuffer (
|
||||
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case ACPI_TYPE_BUFFER:
|
||||
|
||||
/* No conversion necessary */
|
||||
|
||||
*ResultDesc = ObjDesc;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
|
||||
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
/*
|
||||
* Create a new Buffer object
|
||||
* Create a new Buffer object.
|
||||
* Need enough space for one integer
|
||||
*/
|
||||
RetDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
|
||||
RetDesc = AcpiUtCreateBufferObject (AcpiGbl_IntegerByteWidth);
|
||||
if (!RetDesc)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Need enough space for one integer */
|
||||
|
||||
NewBuf = ACPI_MEM_CALLOCATE (AcpiGbl_IntegerByteWidth);
|
||||
if (!NewBuf)
|
||||
{
|
||||
ACPI_REPORT_ERROR
|
||||
(("ExConvertToBuffer: Buffer allocation failure\n"));
|
||||
AcpiUtRemoveReference (RetDesc);
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Copy the integer to the buffer */
|
||||
|
||||
NewBuf = RetDesc->Buffer.Pointer;
|
||||
for (i = 0; i < AcpiGbl_IntegerByteWidth; i++)
|
||||
{
|
||||
NewBuf[i] = (UINT8) (ObjDesc->Integer.Value >> (i * 8));
|
||||
}
|
||||
|
||||
/* Complete buffer object initialization */
|
||||
|
||||
RetDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
|
||||
RetDesc->Buffer.Pointer = NewBuf;
|
||||
RetDesc->Buffer.Length = AcpiGbl_IntegerByteWidth;
|
||||
|
||||
/* Return the new buffer descriptor */
|
||||
|
||||
*ResultDesc = RetDesc;
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
/*
|
||||
* Create a new Buffer object
|
||||
* Size will be the string length
|
||||
*/
|
||||
RetDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
|
||||
RetDesc = AcpiUtCreateBufferObject (ObjDesc->String.Length);
|
||||
if (!RetDesc)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Need enough space for one integer */
|
||||
/* Copy the string to the buffer */
|
||||
|
||||
NewBuf = ACPI_MEM_CALLOCATE (ObjDesc->String.Length);
|
||||
if (!NewBuf)
|
||||
{
|
||||
ACPI_REPORT_ERROR
|
||||
(("ExConvertToBuffer: Buffer allocation failure\n"));
|
||||
AcpiUtRemoveReference (RetDesc);
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
ACPI_STRNCPY ((char *) NewBuf, (char *) ObjDesc->String.Pointer, ObjDesc->String.Length);
|
||||
RetDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
|
||||
RetDesc->Buffer.Pointer = NewBuf;
|
||||
RetDesc->Buffer.Length = ObjDesc->String.Length;
|
||||
|
||||
/* Return the new buffer descriptor */
|
||||
|
||||
*ResultDesc = RetDesc;
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_BUFFER:
|
||||
*ResultDesc = ObjDesc;
|
||||
NewBuf = RetDesc->Buffer.Pointer;
|
||||
ACPI_STRNCPY ((char *) NewBuf, (char *) ObjDesc->String.Pointer,
|
||||
ObjDesc->String.Length);
|
||||
break;
|
||||
|
||||
|
||||
@ -377,7 +354,22 @@ AcpiExConvertToBuffer (
|
||||
|
||||
/* Mark buffer initialized */
|
||||
|
||||
(*ResultDesc)->Common.Flags |= AOPOBJ_DATA_VALID;
|
||||
RetDesc->Common.Flags |= AOPOBJ_DATA_VALID;
|
||||
|
||||
/*
|
||||
* If we are about to overwrite the original object on the operand stack,
|
||||
* we must remove a reference on the original object because we are
|
||||
* essentially removing it from the stack.
|
||||
*/
|
||||
if (*ResultDesc == ObjDesc)
|
||||
{
|
||||
if (WalkState->Opcode != AML_STORE_OP)
|
||||
{
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
}
|
||||
}
|
||||
|
||||
*ResultDesc = RetDesc;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
@ -522,6 +514,21 @@ AcpiExConvertToString (
|
||||
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
if (MaxLength >= ObjDesc->String.Length)
|
||||
{
|
||||
*ResultDesc = ObjDesc;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Must copy the string first and then truncate it */
|
||||
|
||||
return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
StringLength = AcpiGbl_IntegerByteWidth * 2;
|
||||
@ -568,18 +575,6 @@ AcpiExConvertToString (
|
||||
}
|
||||
|
||||
RetDesc->Buffer.Pointer = NewBuf;
|
||||
|
||||
/* Return the new buffer descriptor */
|
||||
|
||||
if (*ResultDesc == ObjDesc)
|
||||
{
|
||||
if (WalkState->Opcode != AML_STORE_OP)
|
||||
{
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
}
|
||||
}
|
||||
|
||||
*ResultDesc = RetDesc;
|
||||
break;
|
||||
|
||||
|
||||
@ -641,35 +636,7 @@ AcpiExConvertToString (
|
||||
|
||||
NewBuf [Index-1] = 0;
|
||||
RetDesc->Buffer.Pointer = NewBuf;
|
||||
RetDesc->String.Length = ACPI_STRLEN ((char *) NewBuf);
|
||||
|
||||
/* Return the new buffer descriptor */
|
||||
|
||||
if (*ResultDesc == ObjDesc)
|
||||
{
|
||||
if (WalkState->Opcode != AML_STORE_OP)
|
||||
{
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
}
|
||||
}
|
||||
|
||||
*ResultDesc = RetDesc;
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
if (MaxLength >= ObjDesc->String.Length)
|
||||
{
|
||||
*ResultDesc = ObjDesc;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
/* Must copy the string first and then truncate it */
|
||||
|
||||
return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
RetDesc->String.Length = (UINT32) ACPI_STRLEN ((char *) NewBuf);
|
||||
break;
|
||||
|
||||
|
||||
@ -677,6 +644,21 @@ AcpiExConvertToString (
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* If we are about to overwrite the original object on the operand stack,
|
||||
* we must remove a reference on the original object because we are
|
||||
* essentially removing it from the stack.
|
||||
*/
|
||||
if (*ResultDesc == ObjDesc)
|
||||
{
|
||||
if (WalkState->Opcode != AML_STORE_OP)
|
||||
{
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
}
|
||||
}
|
||||
|
||||
*ResultDesc = RetDesc;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
@ -724,7 +706,7 @@ AcpiExConvertToTargetType (
|
||||
|
||||
switch (DestinationType)
|
||||
{
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
/*
|
||||
* Named field can always handle conversions
|
||||
*/
|
||||
@ -751,8 +733,8 @@ AcpiExConvertToTargetType (
|
||||
{
|
||||
case ACPI_TYPE_INTEGER:
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
/*
|
||||
* These types require an Integer operand. We can convert
|
||||
* a Buffer or a String to an Integer if necessary.
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: excreate - Named object creation
|
||||
* $Revision: 94 $
|
||||
* $Revision: 97 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -148,7 +148,7 @@ AcpiExCreateAlias (
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *TargetNode;
|
||||
ACPI_NAMESPACE_NODE *AliasNode;
|
||||
ACPI_STATUS Status;
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("ExCreateAlias");
|
||||
@ -159,7 +159,7 @@ AcpiExCreateAlias (
|
||||
AliasNode = (ACPI_NAMESPACE_NODE *) WalkState->Operands[0];
|
||||
TargetNode = (ACPI_NAMESPACE_NODE *) WalkState->Operands[1];
|
||||
|
||||
if (TargetNode->Type == INTERNAL_TYPE_ALIAS)
|
||||
if (TargetNode->Type == ACPI_TYPE_LOCAL_ALIAS)
|
||||
{
|
||||
/*
|
||||
* Dereference an existing alias so that we don't create a chain
|
||||
@ -190,8 +190,8 @@ AcpiExCreateAlias (
|
||||
* NS node, not the object itself. This is because for these
|
||||
* types, the object can change dynamically via a Store.
|
||||
*/
|
||||
AliasNode->Type = INTERNAL_TYPE_ALIAS;
|
||||
AliasNode->Object = (ACPI_OPERAND_OBJECT *) TargetNode;
|
||||
AliasNode->Type = ACPI_TYPE_LOCAL_ALIAS;
|
||||
AliasNode->Object = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, TargetNode);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -212,7 +212,7 @@ AcpiExCreateAlias (
|
||||
|
||||
/* Since both operands are Nodes, we don't need to delete them */
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
@ -320,9 +320,10 @@ AcpiExCreateMutex (
|
||||
/* Init object and attach to NS node */
|
||||
|
||||
ObjDesc->Mutex.SyncLevel = (UINT8) WalkState->Operands[1]->Integer.Value;
|
||||
ObjDesc->Mutex.Node = (ACPI_NAMESPACE_NODE *) WalkState->Operands[0];
|
||||
|
||||
Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) WalkState->Operands[0],
|
||||
ObjDesc, ACPI_TYPE_MUTEX);
|
||||
Status = AcpiNsAttachObject (ObjDesc->Mutex.Node,
|
||||
ObjDesc, ACPI_TYPE_MUTEX);
|
||||
|
||||
|
||||
Cleanup:
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exdump - Interpreter debug output routines
|
||||
* $Revision: 160 $
|
||||
* $Revision: 163 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -150,7 +150,6 @@ AcpiExDumpOperand (
|
||||
{
|
||||
UINT8 *Buf = NULL;
|
||||
UINT32 Length;
|
||||
UINT32 i;
|
||||
ACPI_OPERAND_OBJECT **Element;
|
||||
UINT16 ElementIndex;
|
||||
|
||||
@ -194,7 +193,7 @@ AcpiExDumpOperand (
|
||||
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
switch (ObjDesc->Reference.Opcode)
|
||||
{
|
||||
@ -320,22 +319,6 @@ AcpiExDumpOperand (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_IF:
|
||||
|
||||
AcpiOsPrintf ("If [Integer] %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (ObjDesc->Integer.Value),
|
||||
ACPI_LODWORD (ObjDesc->Integer.Value));
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_WHILE:
|
||||
|
||||
AcpiOsPrintf ("While [Integer] %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (ObjDesc->Integer.Value),
|
||||
ACPI_LODWORD (ObjDesc->Integer.Value));
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_PACKAGE:
|
||||
|
||||
AcpiOsPrintf ("Package count %X @ %p\n",
|
||||
@ -386,25 +369,20 @@ AcpiExDumpOperand (
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
AcpiOsPrintf ("String length %X @ %p \"",
|
||||
AcpiOsPrintf ("String length %X @ %p ",
|
||||
ObjDesc->String.Length, ObjDesc->String.Pointer);
|
||||
|
||||
for (i = 0; i < ObjDesc->String.Length; i++)
|
||||
{
|
||||
AcpiOsPrintf ("%c",
|
||||
ObjDesc->String.Pointer[i]);
|
||||
}
|
||||
AcpiOsPrintf ("\"\n");
|
||||
AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
|
||||
AcpiOsPrintf ("\n");
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
|
||||
AcpiOsPrintf ("BankField\n");
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
|
||||
AcpiOsPrintf (
|
||||
"RegionField: Bits=%X AccWidth=%X Lock=%X Update=%X at byte=%X bit=%X of below:\n",
|
||||
@ -416,7 +394,7 @@ AcpiExDumpOperand (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
AcpiOsPrintf ("IndexField\n");
|
||||
break;
|
||||
@ -722,7 +700,10 @@ AcpiExDumpObjectDescriptor (
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
AcpiExOutInteger ("Length", ObjDesc->String.Length);
|
||||
AcpiExOutPointer ("Pointer", ObjDesc->String.Pointer);
|
||||
|
||||
AcpiOsPrintf ("%20s : %p ", "Pointer", ObjDesc->String.Pointer);
|
||||
AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
|
||||
AcpiOsPrintf ("\n");
|
||||
break;
|
||||
|
||||
|
||||
@ -730,6 +711,7 @@ AcpiExDumpObjectDescriptor (
|
||||
|
||||
AcpiExOutInteger ("Length", ObjDesc->Buffer.Length);
|
||||
AcpiExOutPointer ("Pointer", ObjDesc->Buffer.Pointer);
|
||||
ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, ObjDesc->Buffer.Length);
|
||||
break;
|
||||
|
||||
|
||||
@ -831,9 +813,9 @@ AcpiExDumpObjectDescriptor (
|
||||
|
||||
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
AcpiExOutInteger ("FieldFlags", ObjDesc->CommonField.FieldFlags);
|
||||
AcpiExOutInteger ("AccessByteWidth", ObjDesc->CommonField.AccessByteWidth);
|
||||
@ -851,17 +833,17 @@ AcpiExDumpObjectDescriptor (
|
||||
AcpiExOutPointer ("BufferObj", ObjDesc->BufferField.BufferObj);
|
||||
break;
|
||||
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
AcpiExOutPointer ("RegionObj", ObjDesc->Field.RegionObj);
|
||||
break;
|
||||
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
AcpiExOutInteger ("Value", ObjDesc->BankField.Value);
|
||||
AcpiExOutPointer ("RegionObj", ObjDesc->BankField.RegionObj);
|
||||
AcpiExOutPointer ("BankObj", ObjDesc->BankField.BankObj);
|
||||
break;
|
||||
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
AcpiExOutInteger ("Value", ObjDesc->IndexField.Value);
|
||||
AcpiExOutPointer ("Index", ObjDesc->IndexField.IndexObj);
|
||||
AcpiExOutPointer ("Data", ObjDesc->IndexField.DataObj);
|
||||
@ -874,7 +856,7 @@ AcpiExDumpObjectDescriptor (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
AcpiExOutInteger ("TargetType", ObjDesc->Reference.TargetType);
|
||||
AcpiExOutString ("Opcode", (AcpiPsGetOpcodeInfo (ObjDesc->Reference.Opcode))->Name);
|
||||
@ -885,7 +867,7 @@ AcpiExDumpObjectDescriptor (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_ADDRESS_HANDLER:
|
||||
case ACPI_TYPE_LOCAL_ADDRESS_HANDLER:
|
||||
|
||||
AcpiExOutInteger ("SpaceId", ObjDesc->AddrHandler.SpaceId);
|
||||
AcpiExOutPointer ("Next", ObjDesc->AddrHandler.Next);
|
||||
@ -895,24 +877,16 @@ AcpiExDumpObjectDescriptor (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_NOTIFY:
|
||||
case ACPI_TYPE_LOCAL_NOTIFY:
|
||||
|
||||
AcpiExOutPointer ("Node", ObjDesc->NotifyHandler.Node);
|
||||
AcpiExOutPointer ("Context", ObjDesc->NotifyHandler.Context);
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_ALIAS:
|
||||
case INTERNAL_TYPE_FIELD_DEFN:
|
||||
case INTERNAL_TYPE_BANK_FIELD_DEFN:
|
||||
case INTERNAL_TYPE_INDEX_FIELD_DEFN:
|
||||
case INTERNAL_TYPE_IF:
|
||||
case INTERNAL_TYPE_ELSE:
|
||||
case INTERNAL_TYPE_WHILE:
|
||||
case INTERNAL_TYPE_SCOPE:
|
||||
case INTERNAL_TYPE_DEF_ANY:
|
||||
case INTERNAL_TYPE_EXTRA:
|
||||
case INTERNAL_TYPE_DATA:
|
||||
case ACPI_TYPE_LOCAL_ALIAS:
|
||||
case ACPI_TYPE_LOCAL_EXTRA:
|
||||
case ACPI_TYPE_LOCAL_DATA:
|
||||
default:
|
||||
|
||||
AcpiOsPrintf ("ExDumpObjectDescriptor: Display not implemented for object type %s\n",
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exfield - ACPI AML (p-code) execution - field manipulation
|
||||
* $Revision: 112 $
|
||||
* $Revision: 115 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -179,6 +179,33 @@ AcpiExReadDataFromField (
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_REGION_FIELD) &&
|
||||
(ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS))
|
||||
{
|
||||
/*
|
||||
* This is an SMBus read. We must create a buffer to hold the data
|
||||
* and directly access the region handler.
|
||||
*/
|
||||
BufferDesc = AcpiUtCreateBufferObject (ACPI_SMBUS_BUFFER_SIZE);
|
||||
if (!BufferDesc)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Lock entire transaction if requested */
|
||||
|
||||
Locked = AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
|
||||
|
||||
/*
|
||||
* Perform the read.
|
||||
* Note: Smbus protocol value is passed in upper 16-bits of Function
|
||||
*/
|
||||
Status = AcpiExAccessRegion (ObjDesc, 0,
|
||||
ACPI_CAST_PTR (ACPI_INTEGER, BufferDesc->Buffer.Pointer),
|
||||
ACPI_READ | (ObjDesc->Field.Attribute << 16));
|
||||
AcpiExReleaseGlobalLock (Locked);
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate a buffer for the contents of the field.
|
||||
@ -195,25 +222,11 @@ AcpiExReadDataFromField (
|
||||
{
|
||||
/* Field is too large for an Integer, create a Buffer instead */
|
||||
|
||||
BufferDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
|
||||
BufferDesc = AcpiUtCreateBufferObject (Length);
|
||||
if (!BufferDesc)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Create the actual read buffer */
|
||||
|
||||
BufferDesc->Buffer.Pointer = ACPI_MEM_CALLOCATE (Length);
|
||||
if (!BufferDesc->Buffer.Pointer)
|
||||
{
|
||||
AcpiUtRemoveReference (BufferDesc);
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Complete the buffer object initialization */
|
||||
|
||||
BufferDesc->Common.Flags = AOPOBJ_DATA_VALID;
|
||||
BufferDesc->Buffer.Length = Length;
|
||||
Buffer = BufferDesc->Buffer.Pointer;
|
||||
}
|
||||
else
|
||||
@ -240,17 +253,17 @@ AcpiExReadDataFromField (
|
||||
ObjDesc->CommonField.StartFieldBitOffset,
|
||||
ObjDesc->CommonField.BaseByteOffset));
|
||||
|
||||
/* Lock entire transaction if requested */
|
||||
|
||||
Locked = AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
|
||||
|
||||
/* Read from the field */
|
||||
|
||||
Status = AcpiExExtractFromField (ObjDesc, Buffer, Length);
|
||||
|
||||
/*
|
||||
* Release global lock if we acquired it earlier
|
||||
*/
|
||||
AcpiExReleaseGlobalLock (Locked);
|
||||
|
||||
|
||||
Exit:
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiUtRemoveReference (BufferDesc);
|
||||
@ -280,7 +293,8 @@ AcpiExReadDataFromField (
|
||||
ACPI_STATUS
|
||||
AcpiExWriteDataToField (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc)
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **ResultDesc)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Length;
|
||||
@ -288,6 +302,7 @@ AcpiExWriteDataToField (
|
||||
void *Buffer;
|
||||
void *NewBuffer;
|
||||
BOOLEAN Locked;
|
||||
ACPI_OPERAND_OBJECT *BufferDesc;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR ("ExWriteDataToField", ObjDesc);
|
||||
@ -315,6 +330,54 @@ AcpiExWriteDataToField (
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_REGION_FIELD) &&
|
||||
(ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS))
|
||||
{
|
||||
/*
|
||||
* This is an SMBus write. We will bypass the entire field mechanism
|
||||
* and handoff the buffer directly to the handler.
|
||||
*
|
||||
* Source must be a buffer of sufficient size (ACPI_SMBUS_BUFFER_SIZE).
|
||||
*/
|
||||
if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_BUFFER)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("SMBus write requires Buffer, found type %s\n",
|
||||
AcpiUtGetObjectTypeName (SourceDesc)));
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
|
||||
if (SourceDesc->Buffer.Length < ACPI_SMBUS_BUFFER_SIZE)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("SMBus write requires Buffer of length %X, found length %X\n",
|
||||
ACPI_SMBUS_BUFFER_SIZE, SourceDesc->Buffer.Length));
|
||||
return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
|
||||
}
|
||||
|
||||
BufferDesc = AcpiUtCreateBufferObject (ACPI_SMBUS_BUFFER_SIZE);
|
||||
if (!BufferDesc)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
Buffer = BufferDesc->Buffer.Pointer;
|
||||
ACPI_MEMCPY (Buffer, SourceDesc->Buffer.Pointer, ACPI_SMBUS_BUFFER_SIZE);
|
||||
|
||||
/* Lock entire transaction if requested */
|
||||
|
||||
Locked = AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
|
||||
|
||||
/*
|
||||
* Perform the write (returns status and perhaps data in the same buffer)
|
||||
* Note: SMBus protocol type is passed in upper 16-bits of Function.
|
||||
*/
|
||||
Status = AcpiExAccessRegion (ObjDesc, 0,
|
||||
(ACPI_INTEGER *) Buffer,
|
||||
ACPI_WRITE | (ObjDesc->Field.Attribute << 16));
|
||||
AcpiExReleaseGlobalLock (Locked);
|
||||
|
||||
*ResultDesc = BufferDesc;
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get a pointer to the data to be written
|
||||
@ -378,16 +441,13 @@ AcpiExWriteDataToField (
|
||||
ObjDesc->CommonField.StartFieldBitOffset,
|
||||
ObjDesc->CommonField.BaseByteOffset));
|
||||
|
||||
/* Lock entire transaction if requested */
|
||||
|
||||
Locked = AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
|
||||
|
||||
/*
|
||||
* Write to the field
|
||||
*/
|
||||
Status = AcpiExInsertIntoField (ObjDesc, Buffer, Length);
|
||||
/* Write to the field */
|
||||
|
||||
/*
|
||||
* Release global lock if we acquired it earlier
|
||||
*/
|
||||
Status = AcpiExInsertIntoField (ObjDesc, Buffer, Length);
|
||||
AcpiExReleaseGlobalLock (Locked);
|
||||
|
||||
/* Free temporary buffer if we used one */
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes
|
||||
* $Revision: 109 $
|
||||
* $Revision: 112 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -161,7 +161,7 @@ AcpiExGetObjectReference (
|
||||
{
|
||||
case ACPI_DESC_TYPE_OPERAND:
|
||||
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) != INTERNAL_TYPE_REFERENCE)
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) != ACPI_TYPE_LOCAL_REFERENCE)
|
||||
{
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
@ -207,7 +207,7 @@ AcpiExGetObjectReference (
|
||||
|
||||
/* Create a new reference object */
|
||||
|
||||
ReferenceObj = AcpiUtCreateInternalObject (INTERNAL_TYPE_REFERENCE);
|
||||
ReferenceObj = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_REFERENCE);
|
||||
if (!ReferenceObj)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
@ -245,9 +245,8 @@ AcpiExConcatTemplate (
|
||||
ACPI_OPERAND_OBJECT **ActualReturnDesc,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_OPERAND_OBJECT *ReturnDesc;
|
||||
NATIVE_CHAR *NewBuf;
|
||||
UINT8 *NewBuf;
|
||||
UINT8 *EndTag1;
|
||||
UINT8 *EndTag2;
|
||||
ACPI_SIZE Length1;
|
||||
@ -266,56 +265,36 @@ AcpiExConcatTemplate (
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
|
||||
/* Create a new buffer object for the result */
|
||||
|
||||
ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
|
||||
if (!ReturnDesc)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Allocate a new buffer for the result */
|
||||
/* Compute the length of each part */
|
||||
|
||||
Length1 = ACPI_PTR_DIFF (EndTag1, ObjDesc1->Buffer.Pointer);
|
||||
Length2 = ACPI_PTR_DIFF (EndTag2, ObjDesc2->Buffer.Pointer) +
|
||||
2; /* Size of END_TAG */
|
||||
|
||||
NewBuf = ACPI_MEM_ALLOCATE (Length1 + Length2);
|
||||
if (!NewBuf)
|
||||
/* Create a new buffer object for the result */
|
||||
|
||||
ReturnDesc = AcpiUtCreateBufferObject (Length1 + Length2);
|
||||
if (!ReturnDesc)
|
||||
{
|
||||
ACPI_REPORT_ERROR
|
||||
(("ExConcatTemplate: Buffer allocation failure\n"));
|
||||
Status = AE_NO_MEMORY;
|
||||
goto Cleanup;
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Copy the templates to the new descriptor */
|
||||
|
||||
NewBuf = ReturnDesc->Buffer.Pointer;
|
||||
ACPI_MEMCPY (NewBuf, ObjDesc1->Buffer.Pointer, Length1);
|
||||
ACPI_MEMCPY (NewBuf + Length1, ObjDesc2->Buffer.Pointer, Length2);
|
||||
|
||||
/* Complete the buffer object initialization */
|
||||
|
||||
ReturnDesc->Common.Flags = AOPOBJ_DATA_VALID;
|
||||
ReturnDesc->Buffer.Pointer = (UINT8 *) NewBuf;
|
||||
ReturnDesc->Buffer.Length = (UINT32) (Length1 + Length2);
|
||||
|
||||
/* Compute the new checksum */
|
||||
|
||||
NewBuf[ReturnDesc->Buffer.Length - 1] = (NATIVE_CHAR)
|
||||
NewBuf[ReturnDesc->Buffer.Length - 1] =
|
||||
AcpiUtGenerateChecksum (ReturnDesc->Buffer.Pointer,
|
||||
(ReturnDesc->Buffer.Length - 1));
|
||||
(ReturnDesc->Buffer.Length - 1));
|
||||
|
||||
/* Return the completed template descriptor */
|
||||
|
||||
*ActualReturnDesc = ReturnDesc;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
|
||||
|
||||
Cleanup:
|
||||
|
||||
AcpiUtRemoveReference (ReturnDesc);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
@ -363,24 +342,15 @@ AcpiExDoConcatenate (
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
/* Result of two Integers is a Buffer */
|
||||
/* Need enough buffer space for two integers */
|
||||
|
||||
ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
|
||||
ReturnDesc = AcpiUtCreateBufferObject (AcpiGbl_IntegerByteWidth * 2);
|
||||
if (!ReturnDesc)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Need enough buffer space for two integers */
|
||||
|
||||
ReturnDesc->Buffer.Length = AcpiGbl_IntegerByteWidth * 2;
|
||||
NewBuf = ACPI_MEM_CALLOCATE (ReturnDesc->Buffer.Length);
|
||||
if (!NewBuf)
|
||||
{
|
||||
ACPI_REPORT_ERROR
|
||||
(("ExDoConcatenate: Buffer allocation failure\n"));
|
||||
Status = AE_NO_MEMORY;
|
||||
goto Cleanup;
|
||||
}
|
||||
NewBuf = (NATIVE_CHAR *) ReturnDesc->Buffer.Pointer;
|
||||
|
||||
/* Convert the first integer */
|
||||
|
||||
@ -400,10 +370,6 @@ AcpiExDoConcatenate (
|
||||
ThisInteger >>= 8;
|
||||
}
|
||||
|
||||
/* Complete the buffer object initialization */
|
||||
|
||||
ReturnDesc->Common.Flags = AOPOBJ_DATA_VALID;
|
||||
ReturnDesc->Buffer.Pointer = (UINT8 *) NewBuf;
|
||||
break;
|
||||
|
||||
|
||||
@ -447,21 +413,15 @@ AcpiExDoConcatenate (
|
||||
|
||||
/* Result of two Buffers is a Buffer */
|
||||
|
||||
ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
|
||||
ReturnDesc = AcpiUtCreateBufferObject (
|
||||
(ACPI_SIZE) ObjDesc1->Buffer.Length +
|
||||
(ACPI_SIZE) ObjDesc2->Buffer.Length);
|
||||
if (!ReturnDesc)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
NewBuf = ACPI_MEM_ALLOCATE ((ACPI_SIZE) ObjDesc1->Buffer.Length +
|
||||
(ACPI_SIZE) ObjDesc2->Buffer.Length);
|
||||
if (!NewBuf)
|
||||
{
|
||||
ACPI_REPORT_ERROR
|
||||
(("ExDoConcatenate: Buffer allocation failure\n"));
|
||||
Status = AE_NO_MEMORY;
|
||||
goto Cleanup;
|
||||
}
|
||||
NewBuf = (NATIVE_CHAR *) ReturnDesc->Buffer.Pointer;
|
||||
|
||||
/* Concatenate the buffers */
|
||||
|
||||
@ -470,12 +430,6 @@ AcpiExDoConcatenate (
|
||||
ACPI_MEMCPY (NewBuf + ObjDesc1->Buffer.Length, ObjDesc2->Buffer.Pointer,
|
||||
ObjDesc2->Buffer.Length);
|
||||
|
||||
/* Complete the buffer object initialization */
|
||||
|
||||
ReturnDesc->Common.Flags = AOPOBJ_DATA_VALID;
|
||||
ReturnDesc->Buffer.Pointer = (UINT8 *) NewBuf;
|
||||
ReturnDesc->Buffer.Length = ObjDesc1->Buffer.Length +
|
||||
ObjDesc2->Buffer.Length;
|
||||
break;
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exmutex - ASL Mutex Acquire/Release functions
|
||||
* $Revision: 13 $
|
||||
* $Revision: 16 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -229,24 +229,38 @@ AcpiExAcquireMutex (
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR ("ExAcquireMutex", ObjDesc);
|
||||
|
||||
|
||||
if (!ObjDesc)
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/* Sanity check -- we must have a valid thread ID */
|
||||
|
||||
if (!WalkState->Thread)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Cannot acquire Mutex [%4.4s], null thread info\n",
|
||||
ObjDesc->Mutex.Node->Name.Ascii));
|
||||
return_ACPI_STATUS (AE_AML_INTERNAL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Current Sync must be less than or equal to the sync level of the
|
||||
* mutex. This mechanism provides some deadlock prevention
|
||||
*/
|
||||
if (WalkState->Thread->CurrentSyncLevel > ObjDesc->Mutex.SyncLevel)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Cannot acquire Mutex [%4.4s], incorrect SyncLevel\n",
|
||||
ObjDesc->Mutex.Node->Name.Ascii));
|
||||
return_ACPI_STATUS (AE_AML_MUTEX_ORDER);
|
||||
}
|
||||
|
||||
/*
|
||||
* Support for multiple acquires by the owning thread
|
||||
*/
|
||||
if (ObjDesc->Mutex.OwnerThread == WalkState->Thread)
|
||||
|
||||
if ((ObjDesc->Mutex.OwnerThread) &&
|
||||
(ObjDesc->Mutex.OwnerThread->ThreadId == WalkState->Thread->ThreadId))
|
||||
{
|
||||
/*
|
||||
* The mutex is already owned by this thread,
|
||||
@ -313,13 +327,29 @@ AcpiExReleaseMutex (
|
||||
|
||||
if (!ObjDesc->Mutex.OwnerThread)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Cannot release Mutex [%4.4s], not acquired\n",
|
||||
ObjDesc->Mutex.Node->Name.Ascii));
|
||||
return_ACPI_STATUS (AE_AML_MUTEX_NOT_ACQUIRED);
|
||||
}
|
||||
|
||||
/* Sanity check -- we must have a valid thread ID */
|
||||
|
||||
if (!WalkState->Thread)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Cannot release Mutex [%4.4s], null thread info\n",
|
||||
ObjDesc->Mutex.Node->Name.Ascii));
|
||||
return_ACPI_STATUS (AE_AML_INTERNAL);
|
||||
}
|
||||
|
||||
/* The Mutex is owned, but this thread must be the owner */
|
||||
|
||||
if (ObjDesc->Mutex.OwnerThread != WalkState->Thread)
|
||||
if (ObjDesc->Mutex.OwnerThread->ThreadId != WalkState->Thread->ThreadId)
|
||||
{
|
||||
ACPI_REPORT_ERROR ((
|
||||
"Thread %X cannot release Mutex [%4.4s] acquired by thread %X\n",
|
||||
WalkState->Thread->ThreadId,
|
||||
ObjDesc->Mutex.Node->Name.Ascii,
|
||||
ObjDesc->Mutex.OwnerThread->ThreadId));
|
||||
return_ACPI_STATUS (AE_AML_NOT_OWNER);
|
||||
}
|
||||
|
||||
@ -329,6 +359,8 @@ AcpiExReleaseMutex (
|
||||
*/
|
||||
if (ObjDesc->Mutex.SyncLevel > WalkState->Thread->CurrentSyncLevel)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Cannot release Mutex [%4.4s], incorrect SyncLevel\n",
|
||||
ObjDesc->Mutex.Node->Name.Ascii));
|
||||
return_ACPI_STATUS (AE_AML_MUTEX_ORDER);
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exnames - interpreter/scanner name load/execute
|
||||
* $Revision: 91 $
|
||||
* $Revision: 92 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -354,9 +354,9 @@ AcpiExGetNameString (
|
||||
ACPI_FUNCTION_TRACE_PTR ("ExGetNameString", AmlAddress);
|
||||
|
||||
|
||||
if (INTERNAL_TYPE_REGION_FIELD == DataType ||
|
||||
INTERNAL_TYPE_BANK_FIELD == DataType ||
|
||||
INTERNAL_TYPE_INDEX_FIELD == DataType)
|
||||
if (ACPI_TYPE_LOCAL_REGION_FIELD == DataType ||
|
||||
ACPI_TYPE_LOCAL_BANK_FIELD == DataType ||
|
||||
ACPI_TYPE_LOCAL_INDEX_FIELD == DataType)
|
||||
{
|
||||
/* Disallow prefixes for types associated with FieldUnit names */
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exoparg1 - AML execution - opcodes with 1 argument
|
||||
* $Revision: 143 $
|
||||
* $Revision: 146 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -453,12 +453,6 @@ AcpiExOpcode_1A_1T_1R (
|
||||
* return FALSE
|
||||
*/
|
||||
ReturnDesc->Integer.Value = 0;
|
||||
|
||||
/*
|
||||
* Must delete the result descriptor since there is no reference
|
||||
* being returned
|
||||
*/
|
||||
AcpiUtRemoveReference (Operand[1]);
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
@ -499,14 +493,19 @@ AcpiExOpcode_1A_1T_1R (
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* Normally, we would remove a reference on the Operand[0] parameter;
|
||||
* But since it is being used as the internal return object
|
||||
* (meaning we would normally increment it), the two cancel out,
|
||||
* and we simply don't do anything.
|
||||
*/
|
||||
WalkState->ResultObj = Operand[0];
|
||||
WalkState->Operands[0] = NULL; /* Prevent deletion */
|
||||
/* It is possible that the Store already produced a return object */
|
||||
|
||||
if (!WalkState->ResultObj)
|
||||
{
|
||||
/*
|
||||
* Normally, we would remove a reference on the Operand[0] parameter;
|
||||
* But since it is being used as the internal return object
|
||||
* (meaning we would normally increment it), the two cancel out,
|
||||
* and we simply don't do anything.
|
||||
*/
|
||||
WalkState->ResultObj = Operand[0];
|
||||
WalkState->Operands[0] = NULL; /* Prevent deletion */
|
||||
}
|
||||
return_ACPI_STATUS (Status);
|
||||
|
||||
|
||||
@ -571,7 +570,10 @@ AcpiExOpcode_1A_1T_1R (
|
||||
|
||||
Cleanup:
|
||||
|
||||
WalkState->ResultObj = ReturnDesc;
|
||||
if (!WalkState->ResultObj)
|
||||
{
|
||||
WalkState->ResultObj = ReturnDesc;
|
||||
}
|
||||
|
||||
/* Delete return object on error */
|
||||
|
||||
@ -767,7 +769,7 @@ AcpiExOpcode_1A_0T_1R (
|
||||
{
|
||||
switch (ACPI_GET_OBJECT_TYPE (Operand[0]))
|
||||
{
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
/*
|
||||
* This is a DerefOf (LocalX | ArgX)
|
||||
*
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exoparg2 - AML execution - opcodes with 2 arguments
|
||||
* $Revision: 111 $
|
||||
* $Revision: 115 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -344,11 +344,11 @@ ACPI_STATUS
|
||||
AcpiExOpcode_2A_1T_1R (
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
|
||||
ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
|
||||
ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
|
||||
ACPI_OPERAND_OBJECT *TempDesc = NULL;
|
||||
UINT32 Index;
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
ACPI_SIZE Length;
|
||||
|
||||
|
||||
@ -493,7 +493,7 @@ AcpiExOpcode_2A_1T_1R (
|
||||
|
||||
/* Set the string length */
|
||||
|
||||
ReturnDesc->String.Length = Length;
|
||||
ReturnDesc->String.Length = (UINT32) Length;
|
||||
break;
|
||||
|
||||
|
||||
@ -507,7 +507,7 @@ AcpiExOpcode_2A_1T_1R (
|
||||
|
||||
/* Create the internal return object */
|
||||
|
||||
ReturnDesc = AcpiUtCreateInternalObject (INTERNAL_TYPE_REFERENCE);
|
||||
ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_REFERENCE);
|
||||
if (!ReturnDesc)
|
||||
{
|
||||
Status = AE_NO_MEMORY;
|
||||
@ -531,41 +531,10 @@ AcpiExOpcode_2A_1T_1R (
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
if ((ACPI_GET_OBJECT_TYPE (Operand[2]) == ACPI_TYPE_INTEGER) &&
|
||||
(Operand[2]->Common.Flags & AOPOBJ_AML_CONSTANT))
|
||||
{
|
||||
/*
|
||||
* There is no actual result descriptor (the ZeroOp/Constant Result
|
||||
* descriptor is a placeholder), so just delete the placeholder and
|
||||
* return a reference to the package element
|
||||
*/
|
||||
AcpiUtRemoveReference (Operand[2]);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Each element of the package is an internal object. Get the one
|
||||
* we are after.
|
||||
*/
|
||||
TempDesc = Operand[0]->Package.Elements [Index];
|
||||
ReturnDesc->Reference.Opcode = AML_INDEX_OP;
|
||||
ReturnDesc->Reference.TargetType = ACPI_GET_OBJECT_TYPE (TempDesc);
|
||||
ReturnDesc->Reference.Object = TempDesc;
|
||||
|
||||
Status = AcpiExStore (ReturnDesc, Operand[2], WalkState);
|
||||
ReturnDesc->Reference.Object = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* The local return object must always be a reference to the package element,
|
||||
* not the element itself.
|
||||
*/
|
||||
ReturnDesc->Reference.Opcode = AML_INDEX_OP;
|
||||
ReturnDesc->Reference.TargetType = ACPI_TYPE_PACKAGE;
|
||||
ReturnDesc->Reference.Object = Operand[0]->Package.Elements [Index];
|
||||
ReturnDesc->Reference.Where = &Operand[0]->Package.Elements [Index];
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
/* Object to be indexed is a Buffer */
|
||||
@ -578,14 +547,21 @@ AcpiExOpcode_2A_1T_1R (
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
ReturnDesc->Reference.Opcode = AML_INDEX_OP;
|
||||
ReturnDesc->Reference.TargetType = ACPI_TYPE_BUFFER_FIELD;
|
||||
ReturnDesc->Reference.Object = Operand[0];
|
||||
ReturnDesc->Reference.Offset = Index;
|
||||
|
||||
Status = AcpiExStore (ReturnDesc, Operand[2], WalkState);
|
||||
ReturnDesc->Reference.TargetType = ACPI_TYPE_BUFFER_FIELD;
|
||||
ReturnDesc->Reference.Object = Operand[0];
|
||||
}
|
||||
|
||||
/* Complete the Index reference object */
|
||||
|
||||
ReturnDesc->Reference.Opcode = AML_INDEX_OP;
|
||||
ReturnDesc->Reference.Offset = Index;
|
||||
|
||||
/* Store the reference to the Target */
|
||||
|
||||
Status = AcpiExStore (ReturnDesc, Operand[2], WalkState);
|
||||
|
||||
/* Return the reference */
|
||||
|
||||
WalkState->ResultObj = ReturnDesc;
|
||||
goto Cleanup;
|
||||
|
||||
@ -613,7 +589,10 @@ StoreResultToTarget:
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
WalkState->ResultObj = ReturnDesc;
|
||||
if (!WalkState->ResultObj)
|
||||
{
|
||||
WalkState->ResultObj = ReturnDesc;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exoparg3 - AML execution - opcodes with 3 arguments
|
||||
* $Revision: 14 $
|
||||
* $Revision: 15 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -327,7 +327,10 @@ Cleanup:
|
||||
|
||||
/* Set the return object and exit */
|
||||
|
||||
WalkState->ResultObj = ReturnDesc;
|
||||
if (!WalkState->ResultObj)
|
||||
{
|
||||
WalkState->ResultObj = ReturnDesc;
|
||||
}
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exprep - ACPI AML (p-code) execution - field prep utilities
|
||||
* $Revision: 119 $
|
||||
* $Revision: 121 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -205,28 +205,24 @@ AcpiExDecodeFieldAccess (
|
||||
break;
|
||||
|
||||
case AML_FIELD_ACCESS_BYTE:
|
||||
case AML_FIELD_ACCESS_BUFFER: /* ACPI 2.0 (SMBus Buffer) */
|
||||
ByteAlignment = 1;
|
||||
BitLength = 8;
|
||||
BitLength = 8;
|
||||
break;
|
||||
|
||||
case AML_FIELD_ACCESS_WORD:
|
||||
ByteAlignment = 2;
|
||||
BitLength = 16;
|
||||
BitLength = 16;
|
||||
break;
|
||||
|
||||
case AML_FIELD_ACCESS_DWORD:
|
||||
ByteAlignment = 4;
|
||||
BitLength = 32;
|
||||
BitLength = 32;
|
||||
break;
|
||||
|
||||
case AML_FIELD_ACCESS_QWORD: /* ACPI 2.0 */
|
||||
case AML_FIELD_ACCESS_QWORD: /* ACPI 2.0 */
|
||||
ByteAlignment = 8;
|
||||
BitLength = 64;
|
||||
break;
|
||||
|
||||
case AML_FIELD_ACCESS_BUFFER: /* ACPI 2.0 */
|
||||
ByteAlignment = 8;
|
||||
BitLength = 8;
|
||||
BitLength = 64;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -414,7 +410,7 @@ AcpiExPrepFieldValue (
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (Info->FieldType != INTERNAL_TYPE_INDEX_FIELD)
|
||||
if (Info->FieldType != ACPI_TYPE_LOCAL_INDEX_FIELD)
|
||||
{
|
||||
if (!Info->RegionNode)
|
||||
{
|
||||
@ -456,7 +452,7 @@ AcpiExPrepFieldValue (
|
||||
|
||||
switch (Info->FieldType)
|
||||
{
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
|
||||
ObjDesc->Field.RegionObj = AcpiNsGetAttachedObject (Info->RegionNode);
|
||||
|
||||
@ -471,7 +467,7 @@ AcpiExPrepFieldValue (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
|
||||
ObjDesc->BankField.Value = Info->BankValue;
|
||||
ObjDesc->BankField.RegionObj = AcpiNsGetAttachedObject (Info->RegionNode);
|
||||
@ -492,7 +488,7 @@ AcpiExPrepFieldValue (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
ObjDesc->IndexField.IndexObj = AcpiNsGetAttachedObject (Info->RegisterNode);
|
||||
ObjDesc->IndexField.DataObj = AcpiNsGetAttachedObject (Info->DataRegisterNode);
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exresnte - AML Interpreter object resolution
|
||||
* $Revision: 59 $
|
||||
* $Revision: 61 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -177,10 +177,10 @@ AcpiExResolveNodeToValue (
|
||||
SourceDesc = AcpiNsGetAttachedObject (Node);
|
||||
EntryType = AcpiNsGetType ((ACPI_HANDLE) Node);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Entry=%p SourceDesc=%p Type=%X\n",
|
||||
Node, SourceDesc, EntryType));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Entry=%p SourceDesc=%p [%s]\n",
|
||||
Node, SourceDesc, AcpiUtGetTypeName (EntryType)));
|
||||
|
||||
if (EntryType == INTERNAL_TYPE_ALIAS)
|
||||
if (EntryType == ACPI_TYPE_LOCAL_ALIAS)
|
||||
{
|
||||
/* There is always exactly one level of indirection */
|
||||
|
||||
@ -287,9 +287,9 @@ AcpiExResolveNodeToValue (
|
||||
|
||||
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "FieldRead Node=%p SourceDesc=%p Type=%X\n",
|
||||
Node, SourceDesc, EntryType));
|
||||
@ -325,7 +325,7 @@ AcpiExResolveNodeToValue (
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE); /* Cannot be AE_TYPE */
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
/* No named references are allowed here */
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exresolv - AML Interpreter object resolution
|
||||
* $Revision: 116 $
|
||||
* $Revision: 117 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -230,7 +230,7 @@ AcpiExResolveObjectToValue (
|
||||
|
||||
switch (ACPI_GET_OBJECT_TYPE (StackDesc))
|
||||
{
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
Opcode = StackDesc->Reference.Opcode;
|
||||
|
||||
@ -365,9 +365,9 @@ AcpiExResolveObjectToValue (
|
||||
* These cases may never happen here, but just in case..
|
||||
*/
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "FieldRead SourceDesc=%p Type=%X\n",
|
||||
StackDesc, ACPI_GET_OBJECT_TYPE (StackDesc)));
|
||||
@ -412,7 +412,7 @@ AcpiExResolveMultiple (
|
||||
ACPI_OBJECT_TYPE Type;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("ExGetObjectType");
|
||||
ACPI_FUNCTION_TRACE ("AcpiExResolveMultiple");
|
||||
|
||||
|
||||
/*
|
||||
@ -421,7 +421,7 @@ AcpiExResolveMultiple (
|
||||
* of the ObjectType and SizeOf operators). This means traversing
|
||||
* the list of possibly many nested references.
|
||||
*/
|
||||
while (ACPI_GET_OBJECT_TYPE (ObjDesc) == INTERNAL_TYPE_REFERENCE)
|
||||
while (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_REFERENCE)
|
||||
{
|
||||
switch (ObjDesc->Reference.Opcode)
|
||||
{
|
||||
@ -540,13 +540,20 @@ Exit:
|
||||
|
||||
switch (Type)
|
||||
{
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
Type = ACPI_TYPE_FIELD_UNIT;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_LOCAL_SCOPE:
|
||||
|
||||
/* Per ACPI Specification, Scope is untyped */
|
||||
|
||||
Type = ACPI_TYPE_ANY;
|
||||
break;
|
||||
|
||||
default:
|
||||
/* No change to Type required */
|
||||
break;
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exresop - AML Interpreter operand/object resolution
|
||||
* $Revision: 58 $
|
||||
* $Revision: 60 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -157,7 +157,7 @@ AcpiExCheckObjectType (
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
if (TypeNeeded == INTERNAL_TYPE_REFERENCE)
|
||||
if (TypeNeeded == ACPI_TYPE_LOCAL_REFERENCE)
|
||||
{
|
||||
/*
|
||||
* Allow the AML "Constant" opcodes (Zero, One, etc.) to be reference
|
||||
@ -284,7 +284,7 @@ AcpiExResolveOperands (
|
||||
|
||||
/* Check for bad ACPI_OBJECT_TYPE */
|
||||
|
||||
if (!AcpiExValidateObjectType (ObjectType))
|
||||
if (!AcpiUtValidObjectType (ObjectType))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Bad operand object type [%X]\n",
|
||||
ObjectType));
|
||||
@ -292,7 +292,7 @@ AcpiExResolveOperands (
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
|
||||
if (ObjectType == (UINT8) INTERNAL_TYPE_REFERENCE)
|
||||
if (ObjectType == (UINT8) ACPI_TYPE_LOCAL_REFERENCE)
|
||||
{
|
||||
/*
|
||||
* Decode the Reference
|
||||
@ -374,14 +374,14 @@ AcpiExResolveOperands (
|
||||
case ARGI_FIXED_TARGET: /* No implicit conversion before store to target */
|
||||
case ARGI_SIMPLE_TARGET: /* Name, Local, or Arg - no implicit conversion */
|
||||
|
||||
/* Need an operand of type INTERNAL_TYPE_REFERENCE */
|
||||
/* Need an operand of type ACPI_TYPE_LOCAL_REFERENCE */
|
||||
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED) /* Node (name) ptr OK as-is */
|
||||
{
|
||||
goto NextOperand;
|
||||
}
|
||||
|
||||
Status = AcpiExCheckObjectType (INTERNAL_TYPE_REFERENCE,
|
||||
Status = AcpiExCheckObjectType (ACPI_TYPE_LOCAL_REFERENCE,
|
||||
ObjectType, ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@ -410,7 +410,7 @@ AcpiExResolveOperands (
|
||||
* -- All others must be resolved below.
|
||||
*/
|
||||
if ((Opcode == AML_STORE_OP) &&
|
||||
(ACPI_GET_OBJECT_TYPE (*StackPtr) == INTERNAL_TYPE_REFERENCE) &&
|
||||
(ACPI_GET_OBJECT_TYPE (*StackPtr) == ACPI_TYPE_LOCAL_REFERENCE) &&
|
||||
((*StackPtr)->Reference.Opcode == AML_INDEX_OP))
|
||||
{
|
||||
goto NextOperand;
|
||||
@ -466,13 +466,6 @@ AcpiExResolveOperands (
|
||||
TypeNeeded = ACPI_TYPE_REGION;
|
||||
break;
|
||||
|
||||
case ARGI_IF: /* If */
|
||||
|
||||
/* Need an operand of type INTERNAL_TYPE_IF */
|
||||
|
||||
TypeNeeded = INTERNAL_TYPE_IF;
|
||||
break;
|
||||
|
||||
case ARGI_PACKAGE: /* Package */
|
||||
|
||||
/* Need an operand of type ACPI_TYPE_PACKAGE */
|
||||
@ -512,15 +505,6 @@ AcpiExResolveOperands (
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
if (ObjDesc != *StackPtr)
|
||||
{
|
||||
/*
|
||||
* We just created a new object, remove a reference
|
||||
* on the original operand object
|
||||
*/
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
}
|
||||
goto NextOperand;
|
||||
|
||||
|
||||
@ -545,15 +529,6 @@ AcpiExResolveOperands (
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
if (ObjDesc != *StackPtr)
|
||||
{
|
||||
/*
|
||||
* We just created a new object, remove a reference
|
||||
* on the original operand object
|
||||
*/
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
}
|
||||
goto NextOperand;
|
||||
|
||||
|
||||
@ -578,15 +553,6 @@ AcpiExResolveOperands (
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
if (ObjDesc != *StackPtr)
|
||||
{
|
||||
/*
|
||||
* We just created a new object, remove a reference
|
||||
* on the original operand object
|
||||
*/
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
}
|
||||
goto NextOperand;
|
||||
|
||||
|
||||
@ -626,7 +592,7 @@ AcpiExResolveOperands (
|
||||
case ACPI_TYPE_PACKAGE:
|
||||
case ACPI_TYPE_STRING:
|
||||
case ACPI_TYPE_BUFFER:
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
/* Valid operand */
|
||||
break;
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exstore - AML Interpreter object store support
|
||||
* $Revision: 172 $
|
||||
* $Revision: 174 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -175,7 +175,7 @@ AcpiExStore (
|
||||
{
|
||||
/*
|
||||
* Dest is a namespace node,
|
||||
* Storing an object into a Name "container"
|
||||
* Storing an object into a Named node.
|
||||
*/
|
||||
Status = AcpiExStoreObjectToNode (SourceDesc,
|
||||
(ACPI_NAMESPACE_NODE *) DestDesc, WalkState);
|
||||
@ -187,7 +187,7 @@ AcpiExStore (
|
||||
|
||||
switch (ACPI_GET_OBJECT_TYPE (DestDesc))
|
||||
{
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_INTEGER:
|
||||
@ -534,14 +534,14 @@ AcpiExStoreObjectToNode (
|
||||
switch (TargetType)
|
||||
{
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
/*
|
||||
* For fields, copy the source data to the target field.
|
||||
*/
|
||||
Status = AcpiExWriteDataToField (SourceDesc, TargetDesc);
|
||||
Status = AcpiExWriteDataToField (SourceDesc, TargetDesc, &WalkState->ResultObj);
|
||||
break;
|
||||
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: exstoren - AML Interpreter object store support,
|
||||
* Store to Node (namespace object)
|
||||
* $Revision: 51 $
|
||||
* $Revision: 52 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -160,9 +160,9 @@ AcpiExResolveObject (
|
||||
switch (TargetType)
|
||||
{
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
/*
|
||||
* These cases all require only Integers or values that
|
||||
* can be converted to Integers (Strings or Buffers)
|
||||
@ -177,7 +177,7 @@ AcpiExResolveObject (
|
||||
* are all essentially the same. This case handles the
|
||||
* "interchangeable" types Integer, String, and Buffer.
|
||||
*/
|
||||
if (ACPI_GET_OBJECT_TYPE (SourceDesc) == INTERNAL_TYPE_REFERENCE)
|
||||
if (ACPI_GET_OBJECT_TYPE (SourceDesc) == ACPI_TYPE_LOCAL_REFERENCE)
|
||||
{
|
||||
/* Resolve a reference object first */
|
||||
|
||||
@ -207,7 +207,7 @@ AcpiExResolveObject (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_ALIAS:
|
||||
case ACPI_TYPE_LOCAL_ALIAS:
|
||||
|
||||
/*
|
||||
* Aliases are resolved by AcpiExPrepOperands
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exstorob - AML Interpreter object store support, store to object
|
||||
* $Revision: 45 $
|
||||
* $Revision: 46 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -241,7 +241,7 @@ AcpiExStoreStringToString (
|
||||
* String will fit in existing buffer.
|
||||
* Clear old string and copy in the new one
|
||||
*/
|
||||
ACPI_MEMSET (TargetDesc->String.Pointer, 0, TargetDesc->String.Length + 1);
|
||||
ACPI_MEMSET (TargetDesc->String.Pointer, 0, (ACPI_SIZE) TargetDesc->String.Length + 1);
|
||||
ACPI_MEMCPY (TargetDesc->String.Pointer, Buffer, Length);
|
||||
}
|
||||
else
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exutils - interpreter/scanner utilities
|
||||
* $Revision: 103 $
|
||||
* $Revision: 106 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -142,33 +142,6 @@
|
||||
ACPI_MODULE_NAME ("exutils")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiExValidateObjectType
|
||||
*
|
||||
* PARAMETERS: Type Object type to validate
|
||||
*
|
||||
* DESCRIPTION: Determine if a type is a valid ACPI object type
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
BOOLEAN
|
||||
AcpiExValidateObjectType (
|
||||
ACPI_OBJECT_TYPE Type)
|
||||
{
|
||||
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
if ((Type > ACPI_TYPE_MAX && Type < INTERNAL_TYPE_BEGIN) ||
|
||||
(Type > INTERNAL_TYPE_MAX))
|
||||
{
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
#ifndef ACPI_NO_METHOD_EXECUTION
|
||||
|
||||
/*******************************************************************************
|
||||
@ -313,7 +286,7 @@ AcpiExAcquireGlobalLock (
|
||||
{
|
||||
/* We should attempt to get the lock, wait forever */
|
||||
|
||||
Status = AcpiEvAcquireGlobalLock (ACPI_UINT32_MAX);
|
||||
Status = AcpiEvAcquireGlobalLock (ACPI_WAIT_FOREVER);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
Locked = TRUE;
|
||||
@ -439,7 +412,7 @@ AcpiExEisaIdToString (
|
||||
|
||||
EisaId = AcpiUtDwordByteSwap (NumericId);
|
||||
|
||||
OutString[0] = (char) ('@' + ((EisaId >> 26) & 0x1f));
|
||||
OutString[0] = (char) ('@' + (((unsigned long) EisaId >> 26) & 0x1f));
|
||||
OutString[1] = (char) ('@' + ((EisaId >> 21) & 0x1f));
|
||||
OutString[2] = (char) ('@' + ((EisaId >> 16) & 0x1f));
|
||||
OutString[3] = AcpiUtHexToAsciiChar ((ACPI_INTEGER) EisaId, 12);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: nsaccess - Top-level functions for accessing ACPI namespace
|
||||
* $Revision: 161 $
|
||||
* $Revision: 165 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -241,7 +241,7 @@ AcpiNsRootInitialize (void)
|
||||
/*
|
||||
* Build an object around the static string
|
||||
*/
|
||||
ObjDesc->String.Length = ACPI_STRLEN (InitVal->Val);
|
||||
ObjDesc->String.Length = (UINT32) ACPI_STRLEN (InitVal->Val);
|
||||
ObjDesc->String.Pointer = InitVal->Val;
|
||||
ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;
|
||||
break;
|
||||
@ -249,6 +249,7 @@ AcpiNsRootInitialize (void)
|
||||
|
||||
case ACPI_TYPE_MUTEX:
|
||||
|
||||
ObjDesc->Mutex.Node = NewNode;
|
||||
ObjDesc->Mutex.SyncLevel =
|
||||
(UINT16) ACPI_STRTOUL (InitVal->Val, NULL, 10);
|
||||
|
||||
@ -349,6 +350,7 @@ AcpiNsLookup (
|
||||
ACPI_NAMESPACE_NODE *CurrentNode = NULL;
|
||||
ACPI_NAMESPACE_NODE *ThisNode = NULL;
|
||||
UINT32 NumSegments;
|
||||
UINT32 NumCarats;
|
||||
ACPI_NAME SimpleName;
|
||||
ACPI_OBJECT_TYPE TypeToCheckFor;
|
||||
ACPI_OBJECT_TYPE ThisSearchType;
|
||||
@ -408,29 +410,9 @@ AcpiNsLookup (
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* This check is explicitly split to relax the TypeToCheckFor
|
||||
* conditions for BankFieldDefn. Originally, both BankFieldDefn and
|
||||
* DefFieldDefn caused TypeToCheckFor to be set to ACPI_TYPE_REGION,
|
||||
* but the BankFieldDefn may also check for a Field definition as well
|
||||
* as an OperationRegion.
|
||||
*/
|
||||
if (INTERNAL_TYPE_FIELD_DEFN == Type)
|
||||
{
|
||||
/* DefFieldDefn defines fields in a Region */
|
||||
/* Save type TBD: may be no longer necessary */
|
||||
|
||||
TypeToCheckFor = ACPI_TYPE_REGION;
|
||||
}
|
||||
else if (INTERNAL_TYPE_BANK_FIELD_DEFN == Type)
|
||||
{
|
||||
/* BankFieldDefn defines data fields in a Field Object */
|
||||
|
||||
TypeToCheckFor = ACPI_TYPE_ANY;
|
||||
}
|
||||
else
|
||||
{
|
||||
TypeToCheckFor = Type;
|
||||
}
|
||||
TypeToCheckFor = Type;
|
||||
|
||||
/*
|
||||
* Begin examination of the actual pathname
|
||||
@ -480,14 +462,15 @@ AcpiNsLookup (
|
||||
/* Pathname is relative to current scope, start there */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"Searching relative to prefix scope [%p]\n",
|
||||
PrefixNode));
|
||||
"Searching relative to prefix scope [%4.4s] (%p)\n",
|
||||
PrefixNode->Name.Ascii, PrefixNode));
|
||||
|
||||
/*
|
||||
* Handle multiple Parent Prefixes (carat) by just getting
|
||||
* the parent node for each prefix instance.
|
||||
*/
|
||||
ThisNode = PrefixNode;
|
||||
NumCarats = 0;
|
||||
while (*Path == (UINT8) AML_PARENT_PREFIX)
|
||||
{
|
||||
/* Name is fully qualified, no search rules apply */
|
||||
@ -501,6 +484,7 @@ AcpiNsLookup (
|
||||
|
||||
/* Backup to the parent node */
|
||||
|
||||
NumCarats++;
|
||||
ThisNode = AcpiNsGetParentNode (ThisNode);
|
||||
if (!ThisNode)
|
||||
{
|
||||
@ -515,7 +499,8 @@ AcpiNsLookup (
|
||||
if (SearchParentFlag == ACPI_NS_NO_UPSEARCH)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"Path is absolute with one or more carats\n"));
|
||||
"Search scope is [%4.4s], path has %d carat(s)\n",
|
||||
ThisNode->Name.Ascii, NumCarats));
|
||||
}
|
||||
}
|
||||
|
||||
@ -540,6 +525,7 @@ AcpiNsLookup (
|
||||
* have the correct target node and there are no name segments.
|
||||
*/
|
||||
NumSegments = 0;
|
||||
Type = ThisNode->Type;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"Prefix-only Pathname (Zero name segments), Flags=%X\n", Flags));
|
||||
@ -651,6 +637,7 @@ AcpiNsLookup (
|
||||
CurrentNode));
|
||||
}
|
||||
|
||||
*ReturnNode = ThisNode;
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -661,28 +648,25 @@ AcpiNsLookup (
|
||||
* 2) And we are looking for a specific type
|
||||
* (Not checking for TYPE_ANY)
|
||||
* 3) Which is not an alias
|
||||
* 4) Which is not a local type (TYPE_DEF_ANY)
|
||||
* 5) Which is not a local type (TYPE_SCOPE)
|
||||
* 6) Which is not a local type (TYPE_INDEX_FIELD_DEFN)
|
||||
* 7) And the type of target object is known (not TYPE_ANY)
|
||||
* 8) And target object does not match what we are looking for
|
||||
* 4) Which is not a local type (TYPE_SCOPE)
|
||||
* 5) And the type of target object is known (not TYPE_ANY)
|
||||
* 6) And target object does not match what we are looking for
|
||||
*
|
||||
* Then we have a type mismatch. Just warn and ignore it.
|
||||
*/
|
||||
if ((NumSegments == 0) &&
|
||||
(TypeToCheckFor != ACPI_TYPE_ANY) &&
|
||||
(TypeToCheckFor != INTERNAL_TYPE_ALIAS) &&
|
||||
(TypeToCheckFor != INTERNAL_TYPE_DEF_ANY) &&
|
||||
(TypeToCheckFor != INTERNAL_TYPE_SCOPE) &&
|
||||
(TypeToCheckFor != INTERNAL_TYPE_INDEX_FIELD_DEFN) &&
|
||||
(TypeToCheckFor != ACPI_TYPE_LOCAL_ALIAS) &&
|
||||
(TypeToCheckFor != ACPI_TYPE_LOCAL_SCOPE) &&
|
||||
(ThisNode->Type != ACPI_TYPE_ANY) &&
|
||||
(ThisNode->Type != TypeToCheckFor))
|
||||
{
|
||||
/* Complain about a type mismatch */
|
||||
|
||||
ACPI_REPORT_WARNING (
|
||||
("NsLookup: %4.4s, type %X, checking for type %X\n",
|
||||
(char *) &SimpleName, ThisNode->Type, TypeToCheckFor));
|
||||
("NsLookup: Type mismatch on %4.4s (%s), searching for (%s)\n",
|
||||
(char *) &SimpleName, AcpiUtGetTypeName (ThisNode->Type),
|
||||
AcpiUtGetTypeName (TypeToCheckFor)));
|
||||
}
|
||||
|
||||
/*
|
||||
@ -710,17 +694,13 @@ AcpiNsLookup (
|
||||
* If entry is a type which opens a scope, push the new scope on the
|
||||
* scope stack.
|
||||
*/
|
||||
if (AcpiNsOpensScope (TypeToCheckFor))
|
||||
if (AcpiNsOpensScope (Type))
|
||||
{
|
||||
Status = AcpiDsScopeStackPush (ThisNode, Type, WalkState);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"Setting current scope to [%4.4s] (%p)\n",
|
||||
ThisNode->Name.Ascii, ThisNode));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: nsalloc - Namespace allocation and deletion utilities
|
||||
* $Revision: 74 $
|
||||
* $Revision: 77 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -223,6 +223,60 @@ AcpiNsDeleteNode (
|
||||
}
|
||||
|
||||
|
||||
#ifdef ACPI_ALPHABETIC_NAMESPACE
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsCompareNames
|
||||
*
|
||||
* PARAMETERS: Name1 - First name to compare
|
||||
* Name2 - Second name to compare
|
||||
*
|
||||
* RETURN: value from strncmp
|
||||
*
|
||||
* DESCRIPTION: Compare two ACPI names. Names that are prefixed with an
|
||||
* underscore are forced to be alphabetically first.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiNsCompareNames (
|
||||
char *Name1,
|
||||
char *Name2)
|
||||
{
|
||||
char ReversedName1[ACPI_NAME_SIZE];
|
||||
char ReversedName2[ACPI_NAME_SIZE];
|
||||
UINT32 i;
|
||||
UINT32 j;
|
||||
|
||||
|
||||
/*
|
||||
* Replace all instances of "underscore" with a value that is smaller so
|
||||
* that all names that are prefixed with underscore(s) are alphabetically
|
||||
* first.
|
||||
*
|
||||
* Reverse the name bytewise so we can just do a 32-bit compare instead
|
||||
* of a strncmp.
|
||||
*/
|
||||
for (i = 0, j= (ACPI_NAME_SIZE - 1); i < ACPI_NAME_SIZE; i++, j--)
|
||||
{
|
||||
ReversedName1[j] = Name1[i];
|
||||
if (Name1[i] == '_')
|
||||
{
|
||||
ReversedName1[j] = '*';
|
||||
}
|
||||
|
||||
ReversedName2[j] = Name2[i];
|
||||
if (Name2[i] == '_')
|
||||
{
|
||||
ReversedName2[j] = '*';
|
||||
}
|
||||
}
|
||||
|
||||
return (*(int *) ReversedName1 - *(int *) ReversedName2);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsInstallNode
|
||||
@ -237,8 +291,10 @@ AcpiNsDeleteNode (
|
||||
* DESCRIPTION: Initialize a new namespace node and install it amongst
|
||||
* its peers.
|
||||
*
|
||||
* Note: Current namespace lookup is linear search, so the nodes
|
||||
* are not linked in any particular order.
|
||||
* Note: Current namespace lookup is linear search. However, the
|
||||
* nodes are linked in alphabetical order to 1) put all reserved
|
||||
* names (start with underscore) first, and to 2) make a readable
|
||||
* namespace dump.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -251,6 +307,10 @@ AcpiNsInstallNode (
|
||||
{
|
||||
UINT16 OwnerId = TABLE_ID_DSDT;
|
||||
ACPI_NAMESPACE_NODE *ChildNode;
|
||||
#ifdef ACPI_ALPHABETIC_NAMESPACE
|
||||
|
||||
ACPI_NAMESPACE_NODE *PreviousChildNode;
|
||||
#endif
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsInstallNode");
|
||||
@ -272,9 +332,66 @@ AcpiNsInstallNode (
|
||||
if (!ChildNode)
|
||||
{
|
||||
ParentNode->Child = Node;
|
||||
Node->Flags |= ANOBJ_END_OF_PEER_LIST;
|
||||
Node->Peer = ParentNode;
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef ACPI_ALPHABETIC_NAMESPACE
|
||||
/*
|
||||
* Walk the list whilst searching for the the correct
|
||||
* alphabetic placement.
|
||||
*/
|
||||
PreviousChildNode = NULL;
|
||||
while (AcpiNsCompareNames (ChildNode->Name.Ascii, Node->Name.Ascii) < 0)
|
||||
{
|
||||
if (ChildNode->Flags & ANOBJ_END_OF_PEER_LIST)
|
||||
{
|
||||
/* Last peer; Clear end-of-list flag */
|
||||
|
||||
ChildNode->Flags &= ~ANOBJ_END_OF_PEER_LIST;
|
||||
|
||||
/* This node is the new peer to the child node */
|
||||
|
||||
ChildNode->Peer = Node;
|
||||
|
||||
/* This node is the new end-of-list */
|
||||
|
||||
Node->Flags |= ANOBJ_END_OF_PEER_LIST;
|
||||
Node->Peer = ParentNode;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Get next peer */
|
||||
|
||||
PreviousChildNode = ChildNode;
|
||||
ChildNode = ChildNode->Peer;
|
||||
}
|
||||
|
||||
/* Did the node get inserted at the end-of-list? */
|
||||
|
||||
if (!(Node->Flags & ANOBJ_END_OF_PEER_LIST))
|
||||
{
|
||||
/*
|
||||
* Loop above terminated without reaching the end-of-list.
|
||||
* Insert the new node at the current location
|
||||
*/
|
||||
if (PreviousChildNode)
|
||||
{
|
||||
/* Insert node alphabetically */
|
||||
|
||||
Node->Peer = ChildNode;
|
||||
PreviousChildNode->Peer = Node;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Insert node alphabetically at start of list */
|
||||
|
||||
Node->Peer = ChildNode;
|
||||
ParentNode->Child = Node;
|
||||
}
|
||||
}
|
||||
#else
|
||||
while (!(ChildNode->Flags & ANOBJ_END_OF_PEER_LIST))
|
||||
{
|
||||
ChildNode = ChildNode->Peer;
|
||||
@ -285,58 +402,19 @@ AcpiNsInstallNode (
|
||||
/* Clear end-of-list flag */
|
||||
|
||||
ChildNode->Flags &= ~ANOBJ_END_OF_PEER_LIST;
|
||||
Node->Flags |= ANOBJ_END_OF_PEER_LIST;
|
||||
Node->Peer = ParentNode;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Init the new entry */
|
||||
|
||||
Node->OwnerId = OwnerId;
|
||||
Node->Flags |= ANOBJ_END_OF_PEER_LIST;
|
||||
Node->Peer = ParentNode;
|
||||
Node->OwnerId = OwnerId;
|
||||
Node->Type = (UINT8) Type;
|
||||
|
||||
|
||||
/*
|
||||
* If adding a name with unknown type, or having to
|
||||
* add the region in order to define fields in it, we
|
||||
* have a forward reference.
|
||||
*/
|
||||
if ((ACPI_TYPE_ANY == Type) ||
|
||||
(INTERNAL_TYPE_FIELD_DEFN == Type) ||
|
||||
(INTERNAL_TYPE_BANK_FIELD_DEFN == Type))
|
||||
{
|
||||
/*
|
||||
* We don't want to abort here, however!
|
||||
* We will fill in the actual type when the
|
||||
* real definition is found later.
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] is a forward reference\n",
|
||||
Node->Name.Ascii));
|
||||
}
|
||||
|
||||
/*
|
||||
* The DefFieldDefn and BankFieldDefn cases are actually
|
||||
* looking up the Region in which the field will be defined
|
||||
*/
|
||||
if ((INTERNAL_TYPE_FIELD_DEFN == Type) ||
|
||||
(INTERNAL_TYPE_BANK_FIELD_DEFN == Type))
|
||||
{
|
||||
Type = ACPI_TYPE_REGION;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scope, DefAny, and IndexFieldDefn are bogus "types" which do
|
||||
* not actually have anything to do with the type of the name
|
||||
* being looked up. Save any other value of Type as the type of
|
||||
* the entry.
|
||||
*/
|
||||
if ((Type != INTERNAL_TYPE_SCOPE) &&
|
||||
(Type != INTERNAL_TYPE_DEF_ANY) &&
|
||||
(Type != INTERNAL_TYPE_INDEX_FIELD_DEFN))
|
||||
{
|
||||
Node->Type = (UINT8) Type;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "%4.4s added to %p at %p\n",
|
||||
Node->Name.Ascii, ParentNode, Node));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "%4.4s (%s) added to %4.4s (%s) %p at %p\n",
|
||||
Node->Name.Ascii, AcpiUtGetTypeName (Node->Type),
|
||||
ParentNode->Name.Ascii, AcpiUtGetTypeName (ParentNode->Type), ParentNode, Node));
|
||||
|
||||
/*
|
||||
* Increment the reference count(s) of all parents up to
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: nsdump - table dumping routines for debug
|
||||
* $Revision: 141 $
|
||||
* $Revision: 146 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -248,22 +248,14 @@ AcpiNsDumpOneObject (
|
||||
ACPI_OBJECT_TYPE ObjType;
|
||||
ACPI_OBJECT_TYPE Type;
|
||||
UINT32 BytesToDump;
|
||||
UINT32 DownstreamSiblingMask = 0;
|
||||
UINT32 LevelTmp;
|
||||
UINT32 WhichBit;
|
||||
UINT32 i;
|
||||
UINT32 DbgLevel;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME ("NsDumpOneObject");
|
||||
|
||||
|
||||
ThisNode = AcpiNsMapHandleToNode (ObjHandle);
|
||||
|
||||
LevelTmp = Level;
|
||||
Type = ThisNode->Type;
|
||||
WhichBit = 1;
|
||||
|
||||
/* Is output enabled? */
|
||||
|
||||
if (!(AcpiDbgLevel & Info->DebugLevel))
|
||||
{
|
||||
@ -276,6 +268,9 @@ AcpiNsDumpOneObject (
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ThisNode = AcpiNsMapHandleToNode (ObjHandle);
|
||||
Type = ThisNode->Type;
|
||||
|
||||
/* Check if the owner matches */
|
||||
|
||||
if ((Info->OwnerId != ACPI_UINT32_MAX) &&
|
||||
@ -286,56 +281,13 @@ AcpiNsDumpOneObject (
|
||||
|
||||
/* Indent the object according to the level */
|
||||
|
||||
while (LevelTmp--)
|
||||
AcpiOsPrintf ("%2d%*s", (UINT32) Level - 1, (int) Level * 2, " ");
|
||||
|
||||
/* Check the node type and name */
|
||||
|
||||
if (Type > ACPI_TYPE_LOCAL_MAX)
|
||||
{
|
||||
/* Print appropriate characters to form tree structure */
|
||||
|
||||
if (LevelTmp)
|
||||
{
|
||||
if (DownstreamSiblingMask & WhichBit)
|
||||
{
|
||||
AcpiOsPrintf ("|");
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf (" ");
|
||||
}
|
||||
|
||||
WhichBit <<= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (AcpiNsExistDownstreamSibling (ThisNode + 1))
|
||||
{
|
||||
DownstreamSiblingMask |= ((UINT32) 1 << (Level - 1));
|
||||
AcpiOsPrintf ("+");
|
||||
}
|
||||
else
|
||||
{
|
||||
DownstreamSiblingMask &= ACPI_UINT32_MAX ^ ((UINT32) 1 << (Level - 1));
|
||||
AcpiOsPrintf ("+");
|
||||
}
|
||||
|
||||
if (ThisNode->Child == NULL)
|
||||
{
|
||||
AcpiOsPrintf ("-");
|
||||
}
|
||||
else if (AcpiNsExistDownstreamSibling (ThisNode->Child))
|
||||
{
|
||||
AcpiOsPrintf ("+");
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf ("-");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Check the integrity of our data */
|
||||
|
||||
if (Type > INTERNAL_TYPE_MAX)
|
||||
{
|
||||
Type = INTERNAL_TYPE_DEF_ANY; /* prints as *ERROR* */
|
||||
ACPI_REPORT_WARNING (("Invalid ACPI Type %08X\n", Type));
|
||||
}
|
||||
|
||||
if (!AcpiUtValidAcpiName (ThisNode->Name.Integer))
|
||||
@ -346,7 +298,7 @@ AcpiNsDumpOneObject (
|
||||
/*
|
||||
* Now we can print out the pertinent information
|
||||
*/
|
||||
AcpiOsPrintf (" %4.4s %-12s %p",
|
||||
AcpiOsPrintf ("%4.4s %-12s %p ",
|
||||
ThisNode->Name.Ascii, AcpiUtGetTypeName (Type), ThisNode);
|
||||
|
||||
DbgLevel = AcpiDbgLevel;
|
||||
@ -370,7 +322,7 @@ AcpiNsDumpOneObject (
|
||||
{
|
||||
case ACPI_TYPE_PROCESSOR:
|
||||
|
||||
AcpiOsPrintf (" ID %X Len %.4X Addr %p\n",
|
||||
AcpiOsPrintf ("ID %X Len %.4X Addr %p\n",
|
||||
ObjDesc->Processor.ProcId,
|
||||
ObjDesc->Processor.Length,
|
||||
(char *) ObjDesc->Processor.Address);
|
||||
@ -379,13 +331,13 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_TYPE_DEVICE:
|
||||
|
||||
AcpiOsPrintf (" Notification object: %p", ObjDesc);
|
||||
AcpiOsPrintf ("Notify object: %p", ObjDesc);
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_METHOD:
|
||||
|
||||
AcpiOsPrintf (" Args %X Len %.4X Aml %p\n",
|
||||
AcpiOsPrintf ("Args %X Len %.4X Aml %p\n",
|
||||
(UINT32) ObjDesc->Method.ParamCount,
|
||||
ObjDesc->Method.AmlLength,
|
||||
ObjDesc->Method.AmlStart);
|
||||
@ -394,7 +346,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
AcpiOsPrintf (" = %8.8X%8.8X\n",
|
||||
AcpiOsPrintf ("= %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (ObjDesc->Integer.Value),
|
||||
ACPI_LODWORD (ObjDesc->Integer.Value));
|
||||
break;
|
||||
@ -404,12 +356,12 @@ AcpiNsDumpOneObject (
|
||||
|
||||
if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
|
||||
{
|
||||
AcpiOsPrintf (" Elements %.2X\n",
|
||||
AcpiOsPrintf ("Elements %.2X\n",
|
||||
ObjDesc->Package.Count);
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf (" [Length not yet evaluated]\n");
|
||||
AcpiOsPrintf ("[Length not yet evaluated]\n");
|
||||
}
|
||||
break;
|
||||
|
||||
@ -418,7 +370,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
|
||||
{
|
||||
AcpiOsPrintf (" Len %.2X",
|
||||
AcpiOsPrintf ("Len %.2X",
|
||||
ObjDesc->Buffer.Length);
|
||||
|
||||
/* Dump some of the buffer */
|
||||
@ -435,30 +387,22 @@ AcpiNsDumpOneObject (
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf (" [Length not yet evaluated]\n");
|
||||
AcpiOsPrintf ("[Length not yet evaluated]\n");
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
AcpiOsPrintf (" Len %.2X", ObjDesc->String.Length);
|
||||
|
||||
if (ObjDesc->String.Length > 0)
|
||||
{
|
||||
AcpiOsPrintf (" = \"%.32s\"", ObjDesc->String.Pointer);
|
||||
if (ObjDesc->String.Length > 32)
|
||||
{
|
||||
AcpiOsPrintf ("...");
|
||||
}
|
||||
}
|
||||
AcpiOsPrintf ("Len %.2X ", ObjDesc->String.Length);
|
||||
AcpiUtPrintString (ObjDesc->String.Pointer, 32);
|
||||
AcpiOsPrintf ("\n");
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_REGION:
|
||||
|
||||
AcpiOsPrintf (" [%s]", AcpiUtGetRegionName (ObjDesc->Region.SpaceId));
|
||||
AcpiOsPrintf ("[%s]", AcpiUtGetRegionName (ObjDesc->Region.SpaceId));
|
||||
if (ObjDesc->Region.Flags & AOPOBJ_DATA_VALID)
|
||||
{
|
||||
AcpiOsPrintf (" Addr %8.8X%8.8X Len %.4X\n",
|
||||
@ -473,9 +417,9 @@ AcpiNsDumpOneObject (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
AcpiOsPrintf (" [%s]\n",
|
||||
AcpiOsPrintf ("[%s]\n",
|
||||
AcpiPsGetOpcodeName (ObjDesc->Reference.Opcode));
|
||||
break;
|
||||
|
||||
@ -485,43 +429,43 @@ AcpiNsDumpOneObject (
|
||||
if (ObjDesc->BufferField.BufferObj &&
|
||||
ObjDesc->BufferField.BufferObj->Buffer.Node)
|
||||
{
|
||||
AcpiOsPrintf (" Buf [%4.4s]",
|
||||
AcpiOsPrintf ("Buf [%4.4s]",
|
||||
ObjDesc->BufferField.BufferObj->Buffer.Node->Name.Ascii);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
|
||||
AcpiOsPrintf (" Rgn [%4.4s]",
|
||||
AcpiOsPrintf ("Rgn [%4.4s]",
|
||||
ObjDesc->CommonField.RegionObj->Region.Node->Name.Ascii);
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
|
||||
AcpiOsPrintf (" Rgn [%4.4s] Bnk [%4.4s]",
|
||||
AcpiOsPrintf ("Rgn [%4.4s] Bnk [%4.4s]",
|
||||
ObjDesc->CommonField.RegionObj->Region.Node->Name.Ascii,
|
||||
ObjDesc->BankField.BankObj->CommonField.Node->Name.Ascii);
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
AcpiOsPrintf (" Idx [%4.4s] Dat [%4.4s]",
|
||||
AcpiOsPrintf ("Idx [%4.4s] Dat [%4.4s]",
|
||||
ObjDesc->IndexField.IndexObj->CommonField.Node->Name.Ascii,
|
||||
ObjDesc->IndexField.DataObj->CommonField.Node->Name.Ascii);
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_ALIAS:
|
||||
case ACPI_TYPE_LOCAL_ALIAS:
|
||||
|
||||
AcpiOsPrintf (" Target %4.4s (%p)\n", ((ACPI_NAMESPACE_NODE *) ObjDesc)->Name.Ascii, ObjDesc);
|
||||
AcpiOsPrintf ("Target %4.4s (%p)\n", ((ACPI_NAMESPACE_NODE *) ObjDesc)->Name.Ascii, ObjDesc);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
AcpiOsPrintf (" Object %p\n", ObjDesc);
|
||||
AcpiOsPrintf ("Object %p\n", ObjDesc);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -530,9 +474,10 @@ AcpiNsDumpOneObject (
|
||||
switch (Type)
|
||||
{
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
AcpiOsPrintf (" Off %.2X Len %.2X Acc %.2hd\n",
|
||||
(ObjDesc->CommonField.BaseByteOffset * 8)
|
||||
+ ObjDesc->CommonField.StartFieldBitOffset,
|
||||
@ -548,9 +493,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_DISPLAY_OBJECTS:
|
||||
|
||||
AcpiOsPrintf ("%p O:%p",
|
||||
ThisNode, ObjDesc);
|
||||
|
||||
AcpiOsPrintf ("O:%p", ObjDesc);
|
||||
if (!ObjDesc)
|
||||
{
|
||||
/* No attached object, we are done */
|
||||
@ -622,7 +565,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
while (ObjDesc)
|
||||
{
|
||||
ObjType = INTERNAL_TYPE_INVALID;
|
||||
ObjType = ACPI_TYPE_INVALID;
|
||||
AcpiOsPrintf (" Attached Object %p: ", ObjDesc);
|
||||
|
||||
/* Decode the type of attached object and dump the contents */
|
||||
@ -640,7 +583,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
ObjType = ACPI_GET_OBJECT_TYPE (ObjDesc);
|
||||
|
||||
if (ObjType > INTERNAL_TYPE_MAX)
|
||||
if (ObjType > ACPI_TYPE_LOCAL_MAX)
|
||||
{
|
||||
AcpiOsPrintf ("(Ptr to ACPI Object type %X [UNKNOWN])\n", ObjType);
|
||||
BytesToDump = 32;
|
||||
@ -695,15 +638,15 @@ AcpiNsDumpOneObject (
|
||||
ObjDesc = (void *) ObjDesc->Method.AmlStart;
|
||||
break;
|
||||
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
ObjDesc = (void *) ObjDesc->Field.RegionObj;
|
||||
break;
|
||||
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
ObjDesc = (void *) ObjDesc->BankField.RegionObj;
|
||||
break;
|
||||
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
ObjDesc = (void *) ObjDesc->IndexField.IndexObj;
|
||||
break;
|
||||
|
||||
@ -711,7 +654,7 @@ AcpiNsDumpOneObject (
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
ObjType = INTERNAL_TYPE_INVALID; /* Terminate loop after next pass */
|
||||
ObjType = ACPI_TYPE_INVALID; /* Terminate loop after next pass */
|
||||
}
|
||||
|
||||
Cleanup:
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nseval - Object evaluation interfaces -- includes control
|
||||
* method lookup and execution.
|
||||
* $Revision: 118 $
|
||||
* $Revision: 119 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -495,7 +495,7 @@ AcpiNsExecuteControlMethod (
|
||||
return_ACPI_STATUS (AE_NULL_OBJECT);
|
||||
}
|
||||
|
||||
ACPI_DUMP_PATHNAME (MethodNode, "NsExecuteControlMethod: Executing",
|
||||
ACPI_DUMP_PATHNAME (MethodNode, "Execute Method:",
|
||||
ACPI_LV_INFO, _COMPONENT);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Method at AML address %p Length %X\n",
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: nsinit - namespace initialization
|
||||
* $Revision: 49 $
|
||||
* $Revision: 50 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -419,7 +419,7 @@ AcpiNsInitOneDevice (
|
||||
ACPI_FUNCTION_TRACE ("NsInitOneDevice");
|
||||
|
||||
|
||||
if (!(AcpiDbgLevel & ACPI_LV_INIT))
|
||||
if ((AcpiDbgLevel <= ACPI_LV_ALL_EXCEPTIONS) && (!(AcpiDbgLevel & ACPI_LV_INFO)))
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OK, "."));
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nsobject - Utilities for objects attached to namespace
|
||||
* table entries
|
||||
* $Revision: 83 $
|
||||
* $Revision: 85 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -227,16 +227,9 @@ AcpiNsAttachObject (
|
||||
{
|
||||
ObjDesc = (ACPI_OPERAND_OBJECT *) Object;
|
||||
|
||||
/* If a valid type (non-ANY) was given, just use it */
|
||||
/* Use the given type */
|
||||
|
||||
if (ACPI_TYPE_ANY != Type)
|
||||
{
|
||||
ObjectType = Type;
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjectType = INTERNAL_TYPE_DEF_ANY;
|
||||
}
|
||||
ObjectType = Type;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Installing %p into Node %p [%4.4s]\n",
|
||||
@ -283,13 +276,13 @@ AcpiNsAttachObject (
|
||||
*
|
||||
* FUNCTION: AcpiNsDetachObject
|
||||
*
|
||||
* PARAMETERS: Node - An object whose Value will be deleted
|
||||
* PARAMETERS: Node - An node whose object will be detached
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
* DESCRIPTION: Delete the Value associated with a namespace object. If the
|
||||
* Value is an allocated object, it is freed. Otherwise, the
|
||||
* field is simply cleared.
|
||||
* DESCRIPTION: Detach/delete an object associated with a namespace node.
|
||||
* if the object is an allocated object, it is freed.
|
||||
* Otherwise, the field is simply cleared.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -306,7 +299,7 @@ AcpiNsDetachObject (
|
||||
ObjDesc = Node->Object;
|
||||
|
||||
if (!ObjDesc ||
|
||||
(ACPI_GET_OBJECT_TYPE (ObjDesc) == INTERNAL_TYPE_DATA))
|
||||
(ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA))
|
||||
{
|
||||
return_VOID;
|
||||
}
|
||||
@ -318,7 +311,7 @@ AcpiNsDetachObject (
|
||||
{
|
||||
Node->Object = ObjDesc->Common.NextObject;
|
||||
if (Node->Object &&
|
||||
(ACPI_GET_OBJECT_TYPE (Node->Object) != INTERNAL_TYPE_DATA))
|
||||
(ACPI_GET_OBJECT_TYPE (Node->Object) != ACPI_TYPE_LOCAL_DATA))
|
||||
{
|
||||
Node->Object = Node->Object->Common.NextObject;
|
||||
}
|
||||
@ -347,6 +340,8 @@ AcpiNsDetachObject (
|
||||
* RETURN: Current value of the object field from the Node whose
|
||||
* handle is passed
|
||||
*
|
||||
* DESCRIPTION: Obtain the object attached to a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_OPERAND_OBJECT *
|
||||
@ -365,7 +360,7 @@ AcpiNsGetAttachedObject (
|
||||
if (!Node->Object ||
|
||||
((ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_OPERAND) &&
|
||||
(ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_NAMED)) ||
|
||||
(ACPI_GET_OBJECT_TYPE (Node->Object) == INTERNAL_TYPE_DATA))
|
||||
(ACPI_GET_OBJECT_TYPE (Node->Object) == ACPI_TYPE_LOCAL_DATA))
|
||||
{
|
||||
return_PTR (NULL);
|
||||
}
|
||||
@ -381,7 +376,9 @@ AcpiNsGetAttachedObject (
|
||||
* PARAMETERS: Node - Parent Node to be examined
|
||||
*
|
||||
* RETURN: Current value of the object field from the Node whose
|
||||
* handle is passed
|
||||
* handle is passed.
|
||||
*
|
||||
* DESCRIPTION: Obtain a secondary object associated with a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -392,10 +389,10 @@ AcpiNsGetSecondaryObject (
|
||||
ACPI_FUNCTION_TRACE_PTR ("NsGetSecondaryObject", ObjDesc);
|
||||
|
||||
|
||||
if ((!ObjDesc) ||
|
||||
(ACPI_GET_OBJECT_TYPE (ObjDesc) == INTERNAL_TYPE_DATA) ||
|
||||
(!ObjDesc->Common.NextObject) ||
|
||||
(ACPI_GET_OBJECT_TYPE (ObjDesc->Common.NextObject) == INTERNAL_TYPE_DATA))
|
||||
if ((!ObjDesc) ||
|
||||
(ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) ||
|
||||
(!ObjDesc->Common.NextObject) ||
|
||||
(ACPI_GET_OBJECT_TYPE (ObjDesc->Common.NextObject) == ACPI_TYPE_LOCAL_DATA))
|
||||
{
|
||||
return_PTR (NULL);
|
||||
}
|
||||
@ -408,11 +405,13 @@ AcpiNsGetSecondaryObject (
|
||||
*
|
||||
* FUNCTION: AcpiNsAttachData
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* Handler - Handler to be associated with the data
|
||||
* Data - Data to be attached
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Low-level attach data. Create and attach a Data object.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -427,12 +426,13 @@ AcpiNsAttachData (
|
||||
ACPI_OPERAND_OBJECT *DataDesc;
|
||||
|
||||
|
||||
/* */
|
||||
/* We only allow one attachment per handler */
|
||||
|
||||
PrevObjDesc = NULL;
|
||||
ObjDesc = Node->Object;
|
||||
while (ObjDesc)
|
||||
{
|
||||
if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == INTERNAL_TYPE_DATA) &&
|
||||
if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) &&
|
||||
(ObjDesc->Data.Handler == Handler))
|
||||
{
|
||||
return (AE_ALREADY_EXISTS);
|
||||
@ -442,10 +442,9 @@ AcpiNsAttachData (
|
||||
ObjDesc = ObjDesc->Common.NextObject;
|
||||
}
|
||||
|
||||
|
||||
/* Create an internal object for the data */
|
||||
|
||||
DataDesc = AcpiUtCreateInternalObject (INTERNAL_TYPE_DATA);
|
||||
DataDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_DATA);
|
||||
if (!DataDesc)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
@ -454,7 +453,6 @@ AcpiNsAttachData (
|
||||
DataDesc->Data.Handler = Handler;
|
||||
DataDesc->Data.Pointer = Data;
|
||||
|
||||
|
||||
/* Install the data object */
|
||||
|
||||
if (PrevObjDesc)
|
||||
@ -474,11 +472,13 @@ AcpiNsAttachData (
|
||||
*
|
||||
* FUNCTION: AcpiNsDetachData
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* Handler - Handler associated with the data
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Low-level detach data. Delete the data node, but the caller
|
||||
* is responsible for the actual data.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -495,7 +495,7 @@ AcpiNsDetachData (
|
||||
ObjDesc = Node->Object;
|
||||
while (ObjDesc)
|
||||
{
|
||||
if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == INTERNAL_TYPE_DATA) &&
|
||||
if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) &&
|
||||
(ObjDesc->Data.Handler == Handler))
|
||||
{
|
||||
if (PrevObjDesc)
|
||||
@ -523,11 +523,14 @@ AcpiNsDetachData (
|
||||
*
|
||||
* FUNCTION: AcpiNsGetAttachedData
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* Handler - Handler associated with the data
|
||||
* Data - Where the data is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Low level interface to obtain data previously associated with
|
||||
* a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -543,7 +546,7 @@ AcpiNsGetAttachedData (
|
||||
ObjDesc = Node->Object;
|
||||
while (ObjDesc)
|
||||
{
|
||||
if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == INTERNAL_TYPE_DATA) &&
|
||||
if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) &&
|
||||
(ObjDesc->Data.Handler == Handler))
|
||||
{
|
||||
*Data = ObjDesc->Data.Pointer;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: nssearch - Namespace search
|
||||
* $Revision: 89 $
|
||||
* $Revision: 92 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -129,14 +129,15 @@
|
||||
* FUNCTION: AcpiNsSearchNode
|
||||
*
|
||||
* PARAMETERS: *TargetName - Ascii ACPI name to search for
|
||||
* *Node - Starting table where search will begin
|
||||
* *Node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* **ReturnNode - Where the matched Named obj is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Search a single namespace table. Performs a simple search,
|
||||
* does not add entries or search parents.
|
||||
* DESCRIPTION: Search a single level of the namespace. Performs a
|
||||
* simple search of the specified level, and does not add
|
||||
* entries or search parents.
|
||||
*
|
||||
*
|
||||
* Named object lists are built (and subsequently dumped) in the
|
||||
@ -171,7 +172,7 @@ AcpiNsSearchNode (
|
||||
ScopeName = AcpiNsGetExternalPathname (Node);
|
||||
if (ScopeName)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Searching %s [%p] For %4.4s (type %s)\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Searching %s [%p] For %4.4s (%s)\n",
|
||||
ScopeName, Node, (char *) &TargetName, AcpiUtGetTypeName (Type)));
|
||||
|
||||
ACPI_MEM_FREE (ScopeName);
|
||||
@ -180,8 +181,8 @@ AcpiNsSearchNode (
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Search for name in this table, which is to say that we must search
|
||||
* for the name among the children of this object
|
||||
* Search for name at this namespace level, which is to say that we
|
||||
* must search for the name among the children of this object
|
||||
*/
|
||||
NextNode = Node->Child;
|
||||
while (NextNode)
|
||||
@ -191,32 +192,8 @@ AcpiNsSearchNode (
|
||||
if (NextNode->Name.Integer == TargetName)
|
||||
{
|
||||
/*
|
||||
* Found matching entry. Capture the type if appropriate, before
|
||||
* returning the entry.
|
||||
*
|
||||
* The DefFieldDefn and BankFieldDefn cases are actually looking up
|
||||
* the Region in which the field will be defined
|
||||
* Found matching entry.
|
||||
*/
|
||||
if ((INTERNAL_TYPE_FIELD_DEFN == Type) ||
|
||||
(INTERNAL_TYPE_BANK_FIELD_DEFN == Type))
|
||||
{
|
||||
Type = ACPI_TYPE_REGION;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scope, DefAny, and IndexFieldDefn are bogus "types" which do not
|
||||
* actually have anything to do with the type of the name being
|
||||
* looked up. For any other value of Type, if the type stored in
|
||||
* the entry is Any (i.e. unknown), save the actual type.
|
||||
*/
|
||||
if (Type != INTERNAL_TYPE_SCOPE &&
|
||||
Type != INTERNAL_TYPE_DEF_ANY &&
|
||||
Type != INTERNAL_TYPE_INDEX_FIELD_DEFN &&
|
||||
NextNode->Type == ACPI_TYPE_ANY)
|
||||
{
|
||||
NextNode->Type = (UINT8) Type;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"Name %4.4s Type [%s] found at %p\n",
|
||||
(char *) &TargetName, AcpiUtGetTypeName (NextNode->Type), NextNode));
|
||||
@ -241,7 +218,7 @@ AcpiNsSearchNode (
|
||||
NextNode = NextNode->Peer;
|
||||
}
|
||||
|
||||
/* Searched entire table, not found */
|
||||
/* Searched entire namespace level, not found */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Name %4.4s Type [%s] not found at %p\n",
|
||||
(char *) &TargetName, AcpiUtGetTypeName (Type), NextNode));
|
||||
@ -255,14 +232,14 @@ AcpiNsSearchNode (
|
||||
* FUNCTION: AcpiNsSearchParentTree
|
||||
*
|
||||
* PARAMETERS: *TargetName - Ascii ACPI name to search for
|
||||
* *Node - Starting table where search will begin
|
||||
* *Node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* **ReturnNode - Where the matched Named Obj is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Called when a name has not been found in the current namespace
|
||||
* table. Before adding it or giving up, ACPI scope rules require
|
||||
* level. Before adding it or giving up, ACPI scope rules require
|
||||
* searching enclosing scopes in cases identified by AcpiNsLocal().
|
||||
*
|
||||
* "A name is located by finding the matching name in the current
|
||||
@ -292,25 +269,21 @@ AcpiNsSearchParentTree (
|
||||
ParentNode = AcpiNsGetParentNode (Node);
|
||||
|
||||
/*
|
||||
* If there is no parent (at the root) or type is "local", we won't be
|
||||
* searching the parent tree.
|
||||
* If there is no parent (i.e., we are at the root) or
|
||||
* type is "local", we won't be searching the parent tree.
|
||||
*/
|
||||
if ((AcpiNsLocal (Type)) ||
|
||||
(!ParentNode))
|
||||
if (!ParentNode)
|
||||
{
|
||||
if (!ParentNode)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] has no parent\n",
|
||||
(char *) &TargetName));
|
||||
}
|
||||
|
||||
if (AcpiNsLocal (Type))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"[%4.4s] type [%s] must be local to this scope (no parent search)\n",
|
||||
(char *) &TargetName, AcpiUtGetTypeName (Type)));
|
||||
}
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] has no parent\n",
|
||||
(char *) &TargetName));
|
||||
return_ACPI_STATUS (AE_NOT_FOUND);
|
||||
}
|
||||
|
||||
if (AcpiNsLocal (Type))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"[%4.4s] type [%s] must be local to this scope (no parent search)\n",
|
||||
(char *) &TargetName, AcpiUtGetTypeName (Type)));
|
||||
return_ACPI_STATUS (AE_NOT_FOUND);
|
||||
}
|
||||
|
||||
@ -355,8 +328,8 @@ AcpiNsSearchParentTree (
|
||||
*
|
||||
* PARAMETERS: TargetName - Ascii ACPI name to search for (4 chars)
|
||||
* WalkState - Current state of the walk
|
||||
* *Node - Starting table where search will begin
|
||||
* InterpreterMode - Add names only in MODE_LoadPassX.
|
||||
* *Node - Starting node where search will begin
|
||||
* InterpreterMode - Add names only in ACPI_MODE_LOAD_PASS_x.
|
||||
* Otherwise,search only.
|
||||
* Type - Object type to match
|
||||
* Flags - Flags describing the search restrictions
|
||||
@ -364,12 +337,12 @@ AcpiNsSearchParentTree (
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Search for a name segment in a single name table,
|
||||
* DESCRIPTION: Search for a name segment in a single namespace level,
|
||||
* optionally adding it if it is not found. If the passed
|
||||
* Type is not Any and the type previously stored in the
|
||||
* entry was Any (i.e. unknown), update the stored type.
|
||||
*
|
||||
* In IMODE_EXECUTE, search only.
|
||||
* In ACPI_IMODE_EXECUTE, search only.
|
||||
* In other modes, search and add if not found.
|
||||
*
|
||||
******************************************************************************/
|
||||
@ -406,14 +379,12 @@ AcpiNsSearchAndEnter (
|
||||
|
||||
if (!AcpiUtValidAcpiName (TargetName))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "*** Bad character in name: %08x *** \n",
|
||||
ACPI_REPORT_ERROR (("NsSearchAndEnter: Bad character in ACPI Name: %X\n",
|
||||
TargetName));
|
||||
|
||||
ACPI_REPORT_ERROR (("NsSearchAndEnter: Bad character in ACPI Name\n"));
|
||||
return_ACPI_STATUS (AE_BAD_CHARACTER);
|
||||
}
|
||||
|
||||
/* Try to find the name in the table specified by the caller */
|
||||
/* Try to find the name in the namespace level specified by the caller */
|
||||
|
||||
*ReturnNode = ACPI_ENTRY_NOT_FOUND;
|
||||
Status = AcpiNsSearchNode (TargetName, Node, Type, ReturnNode);
|
||||
@ -449,7 +420,7 @@ AcpiNsSearchAndEnter (
|
||||
(Flags & ACPI_NS_SEARCH_PARENT))
|
||||
{
|
||||
/*
|
||||
* Not found in table - search parent tree according
|
||||
* Not found at this level - search parent tree according
|
||||
* to ACPI specification
|
||||
*/
|
||||
Status = AcpiNsSearchParentTree (TargetName, Node,
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nsutils - Utilities for accessing ACPI namespace, accessing
|
||||
* parents and siblings and Scope manipulation
|
||||
* $Revision: 113 $
|
||||
* $Revision: 116 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -137,7 +137,7 @@
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Print warning message
|
||||
* DESCRIPTION: Print warning message with full pathname
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -153,12 +153,16 @@ AcpiNsReportError (
|
||||
char *Name;
|
||||
|
||||
|
||||
/* Convert path to external format */
|
||||
|
||||
Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, InternalName, NULL, &Name);
|
||||
|
||||
AcpiOsPrintf ("%8s-%04d: *** Error: Looking up ",
|
||||
ModuleName, LineNumber);
|
||||
|
||||
if (Name)
|
||||
/* Print target name */
|
||||
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
AcpiOsPrintf ("[%s]", Name);
|
||||
}
|
||||
@ -889,7 +893,7 @@ UINT32
|
||||
AcpiNsOpensScope (
|
||||
ACPI_OBJECT_TYPE Type)
|
||||
{
|
||||
ACPI_FUNCTION_TRACE_U32 ("NsOpensScope", Type);
|
||||
ACPI_FUNCTION_TRACE_STR ("NsOpensScope", AcpiUtGetTypeName (Type));
|
||||
|
||||
|
||||
if (!AcpiUtValidObjectType (Type))
|
||||
@ -1035,45 +1039,6 @@ AcpiNsFindParentName (
|
||||
}
|
||||
|
||||
|
||||
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsExistDownstreamSibling
|
||||
*
|
||||
* PARAMETERS: *Node - pointer to first Node to examine
|
||||
*
|
||||
* RETURN: TRUE if sibling is found, FALSE otherwise
|
||||
*
|
||||
* DESCRIPTION: Searches remainder of scope being processed to determine
|
||||
* whether there is a downstream sibling to the current
|
||||
* object. This function is used to determine what type of
|
||||
* line drawing character to use when displaying namespace
|
||||
* trees.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
BOOLEAN
|
||||
AcpiNsExistDownstreamSibling (
|
||||
ACPI_NAMESPACE_NODE *Node)
|
||||
{
|
||||
|
||||
if (!Node)
|
||||
{
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
if (Node->Name.Integer)
|
||||
{
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
#endif /* ACPI_DEBUG_OUTPUT */
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsGetParentNode
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nsxfeval - Public interfaces to the ACPI subsystem
|
||||
* ACPI Object evaluation interfaces
|
||||
* $Revision: 2 $
|
||||
* $Revision: 4 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -494,8 +494,8 @@ AcpiWalkNamespace (
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if ((Type > ACPI_TYPE_MAX) ||
|
||||
(!MaxDepth) ||
|
||||
if ((Type > ACPI_TYPE_EXTERNAL_MAX) ||
|
||||
(!MaxDepth) ||
|
||||
(!UserFunction))
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
@ -707,11 +707,13 @@ AcpiGetDevices (
|
||||
*
|
||||
* FUNCTION: AcpiAttachData
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: ObjHandle - Namespace node
|
||||
* Handler - Handler for this attachment
|
||||
* Data - Pointer to data to be attached
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Attach arbitrary data and handler to a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -761,11 +763,12 @@ UnlockAndExit:
|
||||
*
|
||||
* FUNCTION: AcpiDetachData
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: ObjHandle - Namespace node handle
|
||||
* Handler - Handler used in call to AcpiAttachData
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Remove data that was previously attached to a node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -813,11 +816,13 @@ UnlockAndExit:
|
||||
*
|
||||
* FUNCTION: AcpiGetData
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: ObjHandle - Namespace node
|
||||
* Handler - Handler used in call to AttachData
|
||||
* Data - Where the data is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Retrieve data that was previously attached to a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nsxfobj - Public interfaces to the ACPI subsystem
|
||||
* ACPI Object oriented interfaces
|
||||
* $Revision: 113 $
|
||||
* $Revision: 114 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -290,7 +290,7 @@ AcpiGetNextObject (
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (Type > ACPI_TYPE_MAX)
|
||||
if (Type > ACPI_TYPE_EXTERNAL_MAX)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: psargs - Parse AML opcode arguments
|
||||
* $Revision: 64 $
|
||||
* $Revision: 65 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -188,6 +188,7 @@ AcpiPsGetNextPackageLength (
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* Can't get here, only 2 bits / 4 cases */
|
||||
break;
|
||||
}
|
||||
@ -220,6 +221,8 @@ AcpiPsGetNextPackageEnd (
|
||||
ACPI_FUNCTION_TRACE ("PsGetNextPackageEnd");
|
||||
|
||||
|
||||
/* Function below changes ParserState->Aml */
|
||||
|
||||
Length = (NATIVE_UINT) AcpiPsGetNextPackageLength (ParserState);
|
||||
|
||||
return_PTR (Start + Length); /* end of package */
|
||||
@ -280,21 +283,21 @@ AcpiPsGetNextNamestring (
|
||||
|
||||
/* Two name segments */
|
||||
|
||||
End += 9;
|
||||
End += 1 + (2 * ACPI_NAME_SIZE);
|
||||
break;
|
||||
|
||||
case AML_MULTI_NAME_PREFIX_OP:
|
||||
|
||||
/* Multiple name segments, 4 chars each */
|
||||
|
||||
End += 2 + ((ACPI_SIZE) ACPI_GET8 (End + 1) * 4);
|
||||
End += 2 + ((ACPI_SIZE) ACPI_GET8 (End + 1) * ACPI_NAME_SIZE);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* Single name segment */
|
||||
|
||||
End += 4;
|
||||
End += ACPI_NAME_SIZE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -311,8 +314,8 @@ AcpiPsGetNextNamestring (
|
||||
* Arg - Where the namepath will be stored
|
||||
* ArgCount - If the namepath points to a control method
|
||||
* the method's argument is returned here.
|
||||
* MethodCall - Whether the namepath can be the start
|
||||
* of a method call
|
||||
* MethodCall - Whether the namepath can possibly be the
|
||||
* start of a method call
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@ -326,9 +329,9 @@ AcpiPsGetNextNamestring (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsGetNextNamepath (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
ACPI_PARSE_OBJECT *Arg,
|
||||
UINT32 *ArgCount,
|
||||
BOOLEAN MethodCall)
|
||||
{
|
||||
NATIVE_CHAR *Path;
|
||||
@ -365,14 +368,17 @@ AcpiPsGetNextNamepath (
|
||||
* object (MUST BE mode EXECUTE to perform upsearch)
|
||||
*/
|
||||
Status = AcpiNsLookup (&ScopeInfo, Path, ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
|
||||
ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL,
|
||||
&Node);
|
||||
ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node);
|
||||
if (ACPI_SUCCESS (Status) && MethodCall)
|
||||
{
|
||||
if (Node->Type == ACPI_TYPE_METHOD)
|
||||
{
|
||||
/*
|
||||
* This name is actually a control method invocation
|
||||
*/
|
||||
MethodDesc = AcpiNsGetAttachedObject (Node);
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p Desc %p Path=%p\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
|
||||
"Control Method - %p Desc %p Path=%p\n",
|
||||
Node, MethodDesc, Path));
|
||||
|
||||
NameOp = AcpiPsAllocOp (AML_INT_NAMEPATH_OP);
|
||||
@ -384,7 +390,6 @@ AcpiPsGetNextNamepath (
|
||||
/* Change arg into a METHOD CALL and attach name to it */
|
||||
|
||||
AcpiPsInitOp (Arg, AML_INT_METHODCALL_OP);
|
||||
|
||||
NameOp->Common.Value.Name = Path;
|
||||
|
||||
/* Point METHODCALL/NAME to the METHOD Node */
|
||||
@ -394,15 +399,19 @@ AcpiPsGetNextNamepath (
|
||||
|
||||
if (!MethodDesc)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p has no attached object\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
|
||||
"Control Method - %p has no attached object\n",
|
||||
Node));
|
||||
return_ACPI_STATUS (AE_AML_INTERNAL);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p Args %X\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
|
||||
"Control Method - %p Args %X\n",
|
||||
Node, MethodDesc->Method.ParamCount));
|
||||
|
||||
*ArgCount = MethodDesc->Method.ParamCount;
|
||||
/* Get the number of arguments to expect */
|
||||
|
||||
WalkState->ArgCount = MethodDesc->Method.ParamCount;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
@ -412,6 +421,32 @@ AcpiPsGetNextNamepath (
|
||||
* (See code below)
|
||||
*/
|
||||
}
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/*
|
||||
* 1) Any error other than NOT_FOUND is always severe
|
||||
* 2) NOT_FOUND is only important if we are executing a method.
|
||||
* 3) If executing a CondRefOf opcode, NOT_FOUND is ok.
|
||||
*/
|
||||
if ((((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE) &&
|
||||
(Status == AE_NOT_FOUND) &&
|
||||
(WalkState->Op->Common.AmlOpcode != AML_COND_REF_OF_OP)) ||
|
||||
|
||||
(Status != AE_NOT_FOUND))
|
||||
{
|
||||
ACPI_REPORT_NSERROR (Path, Status);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* We got a NOT_FOUND during table load or we encountered
|
||||
* a CondRefOf(x) where the target does not exist.
|
||||
* -- either case is ok
|
||||
*/
|
||||
Status = AE_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -514,6 +549,7 @@ AcpiPsGetNextSimpleArg (
|
||||
|
||||
|
||||
default:
|
||||
|
||||
ACPI_REPORT_ERROR (("Invalid ArgType %X\n", ArgType));
|
||||
break;
|
||||
}
|
||||
@ -539,7 +575,7 @@ AcpiPsGetNextField (
|
||||
ACPI_PARSE_STATE *ParserState)
|
||||
{
|
||||
UINT32 AmlOffset = ACPI_PTR_DIFF (ParserState->Aml,
|
||||
ParserState->AmlStart);
|
||||
ParserState->AmlStart);
|
||||
ACPI_PARSE_OBJECT *Field;
|
||||
UINT16 Opcode;
|
||||
UINT32 Name;
|
||||
@ -591,7 +627,7 @@ AcpiPsGetNextField (
|
||||
|
||||
ACPI_MOVE_UNALIGNED32_TO_32 (&Name, ParserState->Aml);
|
||||
AcpiPsSetName (Field, Name);
|
||||
ParserState->Aml += 4;
|
||||
ParserState->Aml += ACPI_NAME_SIZE;
|
||||
|
||||
/* Get the length which is encoded as a package length */
|
||||
|
||||
@ -620,6 +656,7 @@ AcpiPsGetNextField (
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* Opcode was set in previous switch */
|
||||
break;
|
||||
}
|
||||
@ -646,9 +683,9 @@ AcpiPsGetNextField (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsGetNextArg (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
UINT32 ArgType,
|
||||
UINT32 *ArgCount,
|
||||
ACPI_PARSE_OBJECT **ReturnArg)
|
||||
{
|
||||
ACPI_PARSE_OBJECT *Arg = NULL;
|
||||
@ -736,7 +773,8 @@ AcpiPsGetNextArg (
|
||||
|
||||
/* Fill in bytelist data */
|
||||
|
||||
Arg->Common.Value.Size = ACPI_PTR_DIFF (ParserState->PkgEnd, ParserState->Aml);
|
||||
Arg->Common.Value.Size = ACPI_PTR_DIFF (ParserState->PkgEnd,
|
||||
ParserState->Aml);
|
||||
Arg->Named.Data = ParserState->Aml;
|
||||
|
||||
/* Skip to End of byte data */
|
||||
@ -763,13 +801,13 @@ AcpiPsGetNextArg (
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
Status = AcpiPsGetNextNamepath (ParserState, Arg, ArgCount, 0);
|
||||
Status = AcpiPsGetNextNamepath (WalkState, ParserState, Arg, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* single complex argument, nothing returned */
|
||||
|
||||
*ArgCount = 1;
|
||||
WalkState->ArgCount = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -779,7 +817,7 @@ AcpiPsGetNextArg (
|
||||
|
||||
/* single complex argument, nothing returned */
|
||||
|
||||
*ArgCount = 1;
|
||||
WalkState->ArgCount = 1;
|
||||
break;
|
||||
|
||||
|
||||
@ -791,7 +829,7 @@ AcpiPsGetNextArg (
|
||||
{
|
||||
/* non-empty list of variable arguments, nothing returned */
|
||||
|
||||
*ArgCount = ACPI_VAR_ARGS;
|
||||
WalkState->ArgCount = ACPI_VAR_ARGS;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: psopcode - Parser/Interpreter opcode information table
|
||||
* $Revision: 72 $
|
||||
* $Revision: 73 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -542,144 +542,144 @@
|
||||
const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] =
|
||||
{
|
||||
/*! [Begin] no source code translation */
|
||||
/* Index Name Parser Args Interpreter Args ObjectType Class Type Flags */
|
||||
/* Index Name Parser Args Interpreter Args ObjectType Class Type Flags */
|
||||
|
||||
/* 00 */ ACPI_OP ("Zero", ARGP_ZERO_OP, ARGI_ZERO_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
|
||||
/* 01 */ ACPI_OP ("One", ARGP_ONE_OP, ARGI_ONE_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
|
||||
/* 02 */ ACPI_OP ("Alias", ARGP_ALIAS_OP, ARGI_ALIAS_OP, INTERNAL_TYPE_ALIAS, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 03 */ ACPI_OP ("Name", ARGP_NAME_OP, ARGI_NAME_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 04 */ ACPI_OP ("ByteConst", ARGP_BYTE_OP, ARGI_BYTE_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 05 */ ACPI_OP ("WordConst", ARGP_WORD_OP, ARGI_WORD_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 06 */ ACPI_OP ("DwordConst", ARGP_DWORD_OP, ARGI_DWORD_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 07 */ ACPI_OP ("String", ARGP_STRING_OP, ARGI_STRING_OP, ACPI_TYPE_STRING, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 08 */ ACPI_OP ("Scope", ARGP_SCOPE_OP, ARGI_SCOPE_OP, INTERNAL_TYPE_SCOPE, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 09 */ ACPI_OP ("Buffer", ARGP_BUFFER_OP, ARGI_BUFFER_OP, ACPI_TYPE_BUFFER, AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT, AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
|
||||
/* 0A */ ACPI_OP ("Package", ARGP_PACKAGE_OP, ARGI_PACKAGE_OP, ACPI_TYPE_PACKAGE, AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT, AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
|
||||
/* 0B */ ACPI_OP ("Method", ARGP_METHOD_OP, ARGI_METHOD_OP, ACPI_TYPE_METHOD, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
|
||||
/* 0C */ ACPI_OP ("Local0", ARGP_LOCAL0, ARGI_LOCAL0, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 0D */ ACPI_OP ("Local1", ARGP_LOCAL1, ARGI_LOCAL1, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 0E */ ACPI_OP ("Local2", ARGP_LOCAL2, ARGI_LOCAL2, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 0F */ ACPI_OP ("Local3", ARGP_LOCAL3, ARGI_LOCAL3, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 10 */ ACPI_OP ("Local4", ARGP_LOCAL4, ARGI_LOCAL4, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 11 */ ACPI_OP ("Local5", ARGP_LOCAL5, ARGI_LOCAL5, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 12 */ ACPI_OP ("Local6", ARGP_LOCAL6, ARGI_LOCAL6, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 13 */ ACPI_OP ("Local7", ARGP_LOCAL7, ARGI_LOCAL7, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 14 */ ACPI_OP ("Arg0", ARGP_ARG0, ARGI_ARG0, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 15 */ ACPI_OP ("Arg1", ARGP_ARG1, ARGI_ARG1, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 16 */ ACPI_OP ("Arg2", ARGP_ARG2, ARGI_ARG2, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 17 */ ACPI_OP ("Arg3", ARGP_ARG3, ARGI_ARG3, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 18 */ ACPI_OP ("Arg4", ARGP_ARG4, ARGI_ARG4, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 19 */ ACPI_OP ("Arg5", ARGP_ARG5, ARGI_ARG5, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 1A */ ACPI_OP ("Arg6", ARGP_ARG6, ARGI_ARG6, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 1B */ ACPI_OP ("Store", ARGP_STORE_OP, ARGI_STORE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
|
||||
/* 1C */ ACPI_OP ("RefOf", ARGP_REF_OF_OP, ARGI_REF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
|
||||
/* 1D */ ACPI_OP ("Add", ARGP_ADD_OP, ARGI_ADD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 1E */ ACPI_OP ("Concatenate", ARGP_CONCAT_OP, ARGI_CONCAT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 1F */ ACPI_OP ("Subtract", ARGP_SUBTRACT_OP, ARGI_SUBTRACT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 20 */ ACPI_OP ("Increment", ARGP_INCREMENT_OP, ARGI_INCREMENT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
|
||||
/* 21 */ ACPI_OP ("Decrement", ARGP_DECREMENT_OP, ARGI_DECREMENT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
|
||||
/* 22 */ ACPI_OP ("Multiply", ARGP_MULTIPLY_OP, ARGI_MULTIPLY_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 23 */ ACPI_OP ("Divide", ARGP_DIVIDE_OP, ARGI_DIVIDE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_2T_1R, AML_FLAGS_EXEC_2A_2T_1R | AML_CONSTANT),
|
||||
/* 24 */ ACPI_OP ("ShiftLeft", ARGP_SHIFT_LEFT_OP, ARGI_SHIFT_LEFT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 25 */ ACPI_OP ("ShiftRight", ARGP_SHIFT_RIGHT_OP, ARGI_SHIFT_RIGHT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 26 */ ACPI_OP ("And", ARGP_BIT_AND_OP, ARGI_BIT_AND_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 27 */ ACPI_OP ("NAnd", ARGP_BIT_NAND_OP, ARGI_BIT_NAND_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 28 */ ACPI_OP ("Or", ARGP_BIT_OR_OP, ARGI_BIT_OR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 29 */ ACPI_OP ("NOr", ARGP_BIT_NOR_OP, ARGI_BIT_NOR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 2A */ ACPI_OP ("XOr", ARGP_BIT_XOR_OP, ARGI_BIT_XOR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 2B */ ACPI_OP ("Not", ARGP_BIT_NOT_OP, ARGI_BIT_NOT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 2C */ ACPI_OP ("FindSetLeftBit", ARGP_FIND_SET_LEFT_BIT_OP, ARGI_FIND_SET_LEFT_BIT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 2D */ ACPI_OP ("FindSetRightBit", ARGP_FIND_SET_RIGHT_BIT_OP,ARGI_FIND_SET_RIGHT_BIT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 2E */ ACPI_OP ("DerefOf", ARGP_DEREF_OF_OP, ARGI_DEREF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
|
||||
/* 2F */ ACPI_OP ("Notify", ARGP_NOTIFY_OP, ARGI_NOTIFY_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_0R, AML_FLAGS_EXEC_2A_0T_0R),
|
||||
/* 30 */ ACPI_OP ("SizeOf", ARGP_SIZE_OF_OP, ARGI_SIZE_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
|
||||
/* 31 */ ACPI_OP ("Index", ARGP_INDEX_OP, ARGI_INDEX_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 32 */ ACPI_OP ("Match", ARGP_MATCH_OP, ARGI_MATCH_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_6A_0T_1R, AML_FLAGS_EXEC_6A_0T_1R | AML_CONSTANT),
|
||||
/* 33 */ ACPI_OP ("CreateDWordField", ARGP_CREATE_DWORD_FIELD_OP,ARGI_CREATE_DWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 34 */ ACPI_OP ("CreateWordField", ARGP_CREATE_WORD_FIELD_OP, ARGI_CREATE_WORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 35 */ ACPI_OP ("CreateByteField", ARGP_CREATE_BYTE_FIELD_OP, ARGI_CREATE_BYTE_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 36 */ ACPI_OP ("CreateBitField", ARGP_CREATE_BIT_FIELD_OP, ARGI_CREATE_BIT_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 37 */ ACPI_OP ("ObjectType", ARGP_TYPE_OP, ARGI_TYPE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
|
||||
/* 38 */ ACPI_OP ("LAnd", ARGP_LAND_OP, ARGI_LAND_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 39 */ ACPI_OP ("LOr", ARGP_LOR_OP, ARGI_LOR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 3A */ ACPI_OP ("LNot", ARGP_LNOT_OP, ARGI_LNOT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
|
||||
/* 3B */ ACPI_OP ("LEqual", ARGP_LEQUAL_OP, ARGI_LEQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 3C */ ACPI_OP ("LGreater", ARGP_LGREATER_OP, ARGI_LGREATER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 3D */ ACPI_OP ("LLess", ARGP_LLESS_OP, ARGI_LLESS_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 3E */ ACPI_OP ("If", ARGP_IF_OP, ARGI_IF_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
|
||||
/* 3F */ ACPI_OP ("Else", ARGP_ELSE_OP, ARGI_ELSE_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
|
||||
/* 40 */ ACPI_OP ("While", ARGP_WHILE_OP, ARGI_WHILE_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
|
||||
/* 41 */ ACPI_OP ("Noop", ARGP_NOOP_OP, ARGI_NOOP_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
|
||||
/* 42 */ ACPI_OP ("Return", ARGP_RETURN_OP, ARGI_RETURN_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
|
||||
/* 43 */ ACPI_OP ("Break", ARGP_BREAK_OP, ARGI_BREAK_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
|
||||
/* 44 */ ACPI_OP ("BreakPoint", ARGP_BREAK_POINT_OP, ARGI_BREAK_POINT_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
|
||||
/* 45 */ ACPI_OP ("Ones", ARGP_ONES_OP, ARGI_ONES_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
|
||||
/* 00 */ ACPI_OP ("Zero", ARGP_ZERO_OP, ARGI_ZERO_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
|
||||
/* 01 */ ACPI_OP ("One", ARGP_ONE_OP, ARGI_ONE_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
|
||||
/* 02 */ ACPI_OP ("Alias", ARGP_ALIAS_OP, ARGI_ALIAS_OP, ACPI_TYPE_LOCAL_ALIAS, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 03 */ ACPI_OP ("Name", ARGP_NAME_OP, ARGI_NAME_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 04 */ ACPI_OP ("ByteConst", ARGP_BYTE_OP, ARGI_BYTE_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 05 */ ACPI_OP ("WordConst", ARGP_WORD_OP, ARGI_WORD_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 06 */ ACPI_OP ("DwordConst", ARGP_DWORD_OP, ARGI_DWORD_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 07 */ ACPI_OP ("String", ARGP_STRING_OP, ARGI_STRING_OP, ACPI_TYPE_STRING, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 08 */ ACPI_OP ("Scope", ARGP_SCOPE_OP, ARGI_SCOPE_OP, ACPI_TYPE_LOCAL_SCOPE, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 09 */ ACPI_OP ("Buffer", ARGP_BUFFER_OP, ARGI_BUFFER_OP, ACPI_TYPE_BUFFER, AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT, AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
|
||||
/* 0A */ ACPI_OP ("Package", ARGP_PACKAGE_OP, ARGI_PACKAGE_OP, ACPI_TYPE_PACKAGE, AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT, AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
|
||||
/* 0B */ ACPI_OP ("Method", ARGP_METHOD_OP, ARGI_METHOD_OP, ACPI_TYPE_METHOD, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
|
||||
/* 0C */ ACPI_OP ("Local0", ARGP_LOCAL0, ARGI_LOCAL0, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 0D */ ACPI_OP ("Local1", ARGP_LOCAL1, ARGI_LOCAL1, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 0E */ ACPI_OP ("Local2", ARGP_LOCAL2, ARGI_LOCAL2, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 0F */ ACPI_OP ("Local3", ARGP_LOCAL3, ARGI_LOCAL3, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 10 */ ACPI_OP ("Local4", ARGP_LOCAL4, ARGI_LOCAL4, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 11 */ ACPI_OP ("Local5", ARGP_LOCAL5, ARGI_LOCAL5, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 12 */ ACPI_OP ("Local6", ARGP_LOCAL6, ARGI_LOCAL6, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 13 */ ACPI_OP ("Local7", ARGP_LOCAL7, ARGI_LOCAL7, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
|
||||
/* 14 */ ACPI_OP ("Arg0", ARGP_ARG0, ARGI_ARG0, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 15 */ ACPI_OP ("Arg1", ARGP_ARG1, ARGI_ARG1, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 16 */ ACPI_OP ("Arg2", ARGP_ARG2, ARGI_ARG2, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 17 */ ACPI_OP ("Arg3", ARGP_ARG3, ARGI_ARG3, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 18 */ ACPI_OP ("Arg4", ARGP_ARG4, ARGI_ARG4, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 19 */ ACPI_OP ("Arg5", ARGP_ARG5, ARGI_ARG5, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 1A */ ACPI_OP ("Arg6", ARGP_ARG6, ARGI_ARG6, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
|
||||
/* 1B */ ACPI_OP ("Store", ARGP_STORE_OP, ARGI_STORE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
|
||||
/* 1C */ ACPI_OP ("RefOf", ARGP_REF_OF_OP, ARGI_REF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
|
||||
/* 1D */ ACPI_OP ("Add", ARGP_ADD_OP, ARGI_ADD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 1E */ ACPI_OP ("Concatenate", ARGP_CONCAT_OP, ARGI_CONCAT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 1F */ ACPI_OP ("Subtract", ARGP_SUBTRACT_OP, ARGI_SUBTRACT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 20 */ ACPI_OP ("Increment", ARGP_INCREMENT_OP, ARGI_INCREMENT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
|
||||
/* 21 */ ACPI_OP ("Decrement", ARGP_DECREMENT_OP, ARGI_DECREMENT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
|
||||
/* 22 */ ACPI_OP ("Multiply", ARGP_MULTIPLY_OP, ARGI_MULTIPLY_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 23 */ ACPI_OP ("Divide", ARGP_DIVIDE_OP, ARGI_DIVIDE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_2T_1R, AML_FLAGS_EXEC_2A_2T_1R | AML_CONSTANT),
|
||||
/* 24 */ ACPI_OP ("ShiftLeft", ARGP_SHIFT_LEFT_OP, ARGI_SHIFT_LEFT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 25 */ ACPI_OP ("ShiftRight", ARGP_SHIFT_RIGHT_OP, ARGI_SHIFT_RIGHT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 26 */ ACPI_OP ("And", ARGP_BIT_AND_OP, ARGI_BIT_AND_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 27 */ ACPI_OP ("NAnd", ARGP_BIT_NAND_OP, ARGI_BIT_NAND_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 28 */ ACPI_OP ("Or", ARGP_BIT_OR_OP, ARGI_BIT_OR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 29 */ ACPI_OP ("NOr", ARGP_BIT_NOR_OP, ARGI_BIT_NOR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 2A */ ACPI_OP ("XOr", ARGP_BIT_XOR_OP, ARGI_BIT_XOR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
|
||||
/* 2B */ ACPI_OP ("Not", ARGP_BIT_NOT_OP, ARGI_BIT_NOT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 2C */ ACPI_OP ("FindSetLeftBit", ARGP_FIND_SET_LEFT_BIT_OP, ARGI_FIND_SET_LEFT_BIT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 2D */ ACPI_OP ("FindSetRightBit", ARGP_FIND_SET_RIGHT_BIT_OP,ARGI_FIND_SET_RIGHT_BIT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 2E */ ACPI_OP ("DerefOf", ARGP_DEREF_OF_OP, ARGI_DEREF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
|
||||
/* 2F */ ACPI_OP ("Notify", ARGP_NOTIFY_OP, ARGI_NOTIFY_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_0R, AML_FLAGS_EXEC_2A_0T_0R),
|
||||
/* 30 */ ACPI_OP ("SizeOf", ARGP_SIZE_OF_OP, ARGI_SIZE_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
|
||||
/* 31 */ ACPI_OP ("Index", ARGP_INDEX_OP, ARGI_INDEX_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 32 */ ACPI_OP ("Match", ARGP_MATCH_OP, ARGI_MATCH_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_6A_0T_1R, AML_FLAGS_EXEC_6A_0T_1R | AML_CONSTANT),
|
||||
/* 33 */ ACPI_OP ("CreateDWordField", ARGP_CREATE_DWORD_FIELD_OP,ARGI_CREATE_DWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 34 */ ACPI_OP ("CreateWordField", ARGP_CREATE_WORD_FIELD_OP, ARGI_CREATE_WORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 35 */ ACPI_OP ("CreateByteField", ARGP_CREATE_BYTE_FIELD_OP, ARGI_CREATE_BYTE_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 36 */ ACPI_OP ("CreateBitField", ARGP_CREATE_BIT_FIELD_OP, ARGI_CREATE_BIT_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 37 */ ACPI_OP ("ObjectType", ARGP_TYPE_OP, ARGI_TYPE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
|
||||
/* 38 */ ACPI_OP ("LAnd", ARGP_LAND_OP, ARGI_LAND_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 39 */ ACPI_OP ("LOr", ARGP_LOR_OP, ARGI_LOR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 3A */ ACPI_OP ("LNot", ARGP_LNOT_OP, ARGI_LNOT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
|
||||
/* 3B */ ACPI_OP ("LEqual", ARGP_LEQUAL_OP, ARGI_LEQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 3C */ ACPI_OP ("LGreater", ARGP_LGREATER_OP, ARGI_LGREATER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 3D */ ACPI_OP ("LLess", ARGP_LLESS_OP, ARGI_LLESS_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
|
||||
/* 3E */ ACPI_OP ("If", ARGP_IF_OP, ARGI_IF_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
|
||||
/* 3F */ ACPI_OP ("Else", ARGP_ELSE_OP, ARGI_ELSE_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
|
||||
/* 40 */ ACPI_OP ("While", ARGP_WHILE_OP, ARGI_WHILE_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
|
||||
/* 41 */ ACPI_OP ("Noop", ARGP_NOOP_OP, ARGI_NOOP_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
|
||||
/* 42 */ ACPI_OP ("Return", ARGP_RETURN_OP, ARGI_RETURN_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
|
||||
/* 43 */ ACPI_OP ("Break", ARGP_BREAK_OP, ARGI_BREAK_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
|
||||
/* 44 */ ACPI_OP ("BreakPoint", ARGP_BREAK_POINT_OP, ARGI_BREAK_POINT_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
|
||||
/* 45 */ ACPI_OP ("Ones", ARGP_ONES_OP, ARGI_ONES_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
|
||||
|
||||
/* Prefixed opcodes (Two-byte opcodes with a prefix op) */
|
||||
|
||||
/* 46 */ ACPI_OP ("Mutex", ARGP_MUTEX_OP, ARGI_MUTEX_OP, ACPI_TYPE_MUTEX, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 47 */ ACPI_OP ("Event", ARGP_EVENT_OP, ARGI_EVENT_OP, ACPI_TYPE_EVENT, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
|
||||
/* 48 */ ACPI_OP ("CondRefOf", ARGP_COND_REF_OF_OP, ARGI_COND_REF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
|
||||
/* 49 */ ACPI_OP ("CreateField", ARGP_CREATE_FIELD_OP, ARGI_CREATE_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_FIELD | AML_CREATE),
|
||||
/* 4A */ ACPI_OP ("Load", ARGP_LOAD_OP, ARGI_LOAD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_0R, AML_FLAGS_EXEC_1A_1T_0R),
|
||||
/* 4B */ ACPI_OP ("Stall", ARGP_STALL_OP, ARGI_STALL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 4C */ ACPI_OP ("Sleep", ARGP_SLEEP_OP, ARGI_SLEEP_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 4D */ ACPI_OP ("Acquire", ARGP_ACQUIRE_OP, ARGI_ACQUIRE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R),
|
||||
/* 4E */ ACPI_OP ("Signal", ARGP_SIGNAL_OP, ARGI_SIGNAL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 4F */ ACPI_OP ("Wait", ARGP_WAIT_OP, ARGI_WAIT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R),
|
||||
/* 50 */ ACPI_OP ("Reset", ARGP_RESET_OP, ARGI_RESET_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 51 */ ACPI_OP ("Release", ARGP_RELEASE_OP, ARGI_RELEASE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 52 */ ACPI_OP ("FromBCD", ARGP_FROM_BCD_OP, ARGI_FROM_BCD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 53 */ ACPI_OP ("ToBCD", ARGP_TO_BCD_OP, ARGI_TO_BCD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 54 */ ACPI_OP ("Unload", ARGP_UNLOAD_OP, ARGI_UNLOAD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 55 */ ACPI_OP ("Revision", ARGP_REVISION_OP, ARGI_REVISION_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, 0),
|
||||
/* 56 */ ACPI_OP ("Debug", ARGP_DEBUG_OP, ARGI_DEBUG_OP, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, 0),
|
||||
/* 57 */ ACPI_OP ("Fatal", ARGP_FATAL_OP, ARGI_FATAL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_3A_0T_0R, AML_FLAGS_EXEC_3A_0T_0R),
|
||||
/* 58 */ ACPI_OP ("OperationRegion", ARGP_REGION_OP, ARGI_REGION_OP, ACPI_TYPE_REGION, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
|
||||
/* 59 */ ACPI_OP ("Field", ARGP_FIELD_OP, ARGI_FIELD_OP, INTERNAL_TYPE_FIELD_DEFN,AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
|
||||
/* 5A */ ACPI_OP ("Device", ARGP_DEVICE_OP, ARGI_DEVICE_OP, ACPI_TYPE_DEVICE, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 5B */ ACPI_OP ("Processor", ARGP_PROCESSOR_OP, ARGI_PROCESSOR_OP, ACPI_TYPE_PROCESSOR, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 5C */ ACPI_OP ("PowerResource", ARGP_POWER_RES_OP, ARGI_POWER_RES_OP, ACPI_TYPE_POWER, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 5D */ ACPI_OP ("ThermalZone", ARGP_THERMAL_ZONE_OP, ARGI_THERMAL_ZONE_OP, ACPI_TYPE_THERMAL, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 5E */ ACPI_OP ("IndexField", ARGP_INDEX_FIELD_OP, ARGI_INDEX_FIELD_OP, INTERNAL_TYPE_INDEX_FIELD_DEFN,AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
|
||||
/* 5F */ ACPI_OP ("BankField", ARGP_BANK_FIELD_OP, ARGI_BANK_FIELD_OP, INTERNAL_TYPE_BANK_FIELD_DEFN,AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
|
||||
/* 46 */ ACPI_OP ("Mutex", ARGP_MUTEX_OP, ARGI_MUTEX_OP, ACPI_TYPE_MUTEX, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 47 */ ACPI_OP ("Event", ARGP_EVENT_OP, ARGI_EVENT_OP, ACPI_TYPE_EVENT, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
|
||||
/* 48 */ ACPI_OP ("CondRefOf", ARGP_COND_REF_OF_OP, ARGI_COND_REF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
|
||||
/* 49 */ ACPI_OP ("CreateField", ARGP_CREATE_FIELD_OP, ARGI_CREATE_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_FIELD | AML_CREATE),
|
||||
/* 4A */ ACPI_OP ("Load", ARGP_LOAD_OP, ARGI_LOAD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_0R, AML_FLAGS_EXEC_1A_1T_0R),
|
||||
/* 4B */ ACPI_OP ("Stall", ARGP_STALL_OP, ARGI_STALL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 4C */ ACPI_OP ("Sleep", ARGP_SLEEP_OP, ARGI_SLEEP_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 4D */ ACPI_OP ("Acquire", ARGP_ACQUIRE_OP, ARGI_ACQUIRE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R),
|
||||
/* 4E */ ACPI_OP ("Signal", ARGP_SIGNAL_OP, ARGI_SIGNAL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 4F */ ACPI_OP ("Wait", ARGP_WAIT_OP, ARGI_WAIT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R),
|
||||
/* 50 */ ACPI_OP ("Reset", ARGP_RESET_OP, ARGI_RESET_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 51 */ ACPI_OP ("Release", ARGP_RELEASE_OP, ARGI_RELEASE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 52 */ ACPI_OP ("FromBCD", ARGP_FROM_BCD_OP, ARGI_FROM_BCD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 53 */ ACPI_OP ("ToBCD", ARGP_TO_BCD_OP, ARGI_TO_BCD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 54 */ ACPI_OP ("Unload", ARGP_UNLOAD_OP, ARGI_UNLOAD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
|
||||
/* 55 */ ACPI_OP ("Revision", ARGP_REVISION_OP, ARGI_REVISION_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, 0),
|
||||
/* 56 */ ACPI_OP ("Debug", ARGP_DEBUG_OP, ARGI_DEBUG_OP, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, 0),
|
||||
/* 57 */ ACPI_OP ("Fatal", ARGP_FATAL_OP, ARGI_FATAL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_3A_0T_0R, AML_FLAGS_EXEC_3A_0T_0R),
|
||||
/* 58 */ ACPI_OP ("OperationRegion", ARGP_REGION_OP, ARGI_REGION_OP, ACPI_TYPE_REGION, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
|
||||
/* 59 */ ACPI_OP ("Field", ARGP_FIELD_OP, ARGI_FIELD_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
|
||||
/* 5A */ ACPI_OP ("Device", ARGP_DEVICE_OP, ARGI_DEVICE_OP, ACPI_TYPE_DEVICE, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 5B */ ACPI_OP ("Processor", ARGP_PROCESSOR_OP, ARGI_PROCESSOR_OP, ACPI_TYPE_PROCESSOR, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 5C */ ACPI_OP ("PowerResource", ARGP_POWER_RES_OP, ARGI_POWER_RES_OP, ACPI_TYPE_POWER, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 5D */ ACPI_OP ("ThermalZone", ARGP_THERMAL_ZONE_OP, ARGI_THERMAL_ZONE_OP, ACPI_TYPE_THERMAL, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 5E */ ACPI_OP ("IndexField", ARGP_INDEX_FIELD_OP, ARGI_INDEX_FIELD_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
|
||||
/* 5F */ ACPI_OP ("BankField", ARGP_BANK_FIELD_OP, ARGI_BANK_FIELD_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
|
||||
|
||||
/* Internal opcodes that map to invalid AML opcodes */
|
||||
|
||||
/* 60 */ ACPI_OP ("LNotEqual", ARGP_LNOTEQUAL_OP, ARGI_LNOTEQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
|
||||
/* 61 */ ACPI_OP ("LLessEqual", ARGP_LLESSEQUAL_OP, ARGI_LLESSEQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
|
||||
/* 62 */ ACPI_OP ("LGreaterEqual", ARGP_LGREATEREQUAL_OP, ARGI_LGREATEREQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
|
||||
/* 63 */ ACPI_OP ("-NamePath-", ARGP_NAMEPATH_OP, ARGI_NAMEPATH_OP, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_NSOBJECT | AML_NSNODE ),
|
||||
/* 64 */ ACPI_OP ("-MethodCall-", ARGP_METHODCALL_OP, ARGI_METHODCALL_OP, ACPI_TYPE_METHOD, AML_CLASS_METHOD_CALL, AML_TYPE_METHOD_CALL, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE),
|
||||
/* 65 */ ACPI_OP ("-ByteList-", ARGP_BYTELIST_OP, ARGI_BYTELIST_OP, ACPI_TYPE_ANY, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, 0),
|
||||
/* 66 */ ACPI_OP ("-ReservedField-", ARGP_RESERVEDFIELD_OP, ARGI_RESERVEDFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
|
||||
/* 67 */ ACPI_OP ("-NamedField-", ARGP_NAMEDFIELD_OP, ARGI_NAMEDFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
|
||||
/* 68 */ ACPI_OP ("-AccessField-", ARGP_ACCESSFIELD_OP, ARGI_ACCESSFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
|
||||
/* 69 */ ACPI_OP ("-StaticString", ARGP_STATICSTRING_OP, ARGI_STATICSTRING_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
|
||||
/* 6A */ ACPI_OP ("-Return Value-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_RETURN_VALUE, AML_TYPE_RETURN, AML_HAS_ARGS | AML_HAS_RETVAL),
|
||||
/* 6B */ ACPI_OP ("-UNKNOWN_OP-", ARG_NONE, ARG_NONE, INTERNAL_TYPE_INVALID, AML_CLASS_UNKNOWN, AML_TYPE_BOGUS, AML_HAS_ARGS),
|
||||
/* 6C */ ACPI_OP ("-ASCII_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_ASCII, AML_TYPE_BOGUS, AML_HAS_ARGS),
|
||||
/* 6D */ ACPI_OP ("-PREFIX_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_PREFIX, AML_TYPE_BOGUS, AML_HAS_ARGS),
|
||||
/* 60 */ ACPI_OP ("LNotEqual", ARGP_LNOTEQUAL_OP, ARGI_LNOTEQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
|
||||
/* 61 */ ACPI_OP ("LLessEqual", ARGP_LLESSEQUAL_OP, ARGI_LLESSEQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
|
||||
/* 62 */ ACPI_OP ("LGreaterEqual", ARGP_LGREATEREQUAL_OP, ARGI_LGREATEREQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
|
||||
/* 63 */ ACPI_OP ("-NamePath-", ARGP_NAMEPATH_OP, ARGI_NAMEPATH_OP, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_NSOBJECT | AML_NSNODE ),
|
||||
/* 64 */ ACPI_OP ("-MethodCall-", ARGP_METHODCALL_OP, ARGI_METHODCALL_OP, ACPI_TYPE_METHOD, AML_CLASS_METHOD_CALL, AML_TYPE_METHOD_CALL, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE),
|
||||
/* 65 */ ACPI_OP ("-ByteList-", ARGP_BYTELIST_OP, ARGI_BYTELIST_OP, ACPI_TYPE_ANY, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, 0),
|
||||
/* 66 */ ACPI_OP ("-ReservedField-", ARGP_RESERVEDFIELD_OP, ARGI_RESERVEDFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
|
||||
/* 67 */ ACPI_OP ("-NamedField-", ARGP_NAMEDFIELD_OP, ARGI_NAMEDFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
|
||||
/* 68 */ ACPI_OP ("-AccessField-", ARGP_ACCESSFIELD_OP, ARGI_ACCESSFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
|
||||
/* 69 */ ACPI_OP ("-StaticString", ARGP_STATICSTRING_OP, ARGI_STATICSTRING_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
|
||||
/* 6A */ ACPI_OP ("-Return Value-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_RETURN_VALUE, AML_TYPE_RETURN, AML_HAS_ARGS | AML_HAS_RETVAL),
|
||||
/* 6B */ ACPI_OP ("-UNKNOWN_OP-", ARG_NONE, ARG_NONE, ACPI_TYPE_INVALID, AML_CLASS_UNKNOWN, AML_TYPE_BOGUS, AML_HAS_ARGS),
|
||||
/* 6C */ ACPI_OP ("-ASCII_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_ASCII, AML_TYPE_BOGUS, AML_HAS_ARGS),
|
||||
/* 6D */ ACPI_OP ("-PREFIX_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_PREFIX, AML_TYPE_BOGUS, AML_HAS_ARGS),
|
||||
|
||||
|
||||
/* ACPI 2.0 opcodes */
|
||||
|
||||
/* 6E */ ACPI_OP ("QwordConst", ARGP_QWORD_OP, ARGI_QWORD_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 6F */ ACPI_OP ("Package /*Var*/", ARGP_VAR_PACKAGE_OP, ARGI_VAR_PACKAGE_OP, ACPI_TYPE_PACKAGE, AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT, AML_HAS_ARGS | AML_DEFER),
|
||||
/* 70 */ ACPI_OP ("ConcatenateResTemplate", ARGP_CONCAT_RES_OP, ARGI_CONCAT_RES_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 71 */ ACPI_OP ("Mod", ARGP_MOD_OP, ARGI_MOD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 72 */ ACPI_OP ("CreateQWordField", ARGP_CREATE_QWORD_FIELD_OP,ARGI_CREATE_QWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 73 */ ACPI_OP ("ToBuffer", ARGP_TO_BUFFER_OP, ARGI_TO_BUFFER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 74 */ ACPI_OP ("ToDecimalString", ARGP_TO_DEC_STR_OP, ARGI_TO_DEC_STR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 75 */ ACPI_OP ("ToHexString", ARGP_TO_HEX_STR_OP, ARGI_TO_HEX_STR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 76 */ ACPI_OP ("ToInteger", ARGP_TO_INTEGER_OP, ARGI_TO_INTEGER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 77 */ ACPI_OP ("ToString", ARGP_TO_STRING_OP, ARGI_TO_STRING_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 78 */ ACPI_OP ("CopyObject", ARGP_COPY_OP, ARGI_COPY_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
|
||||
/* 79 */ ACPI_OP ("Mid", ARGP_MID_OP, ARGI_MID_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_3A_1T_1R, AML_FLAGS_EXEC_3A_1T_1R | AML_CONSTANT),
|
||||
/* 7A */ ACPI_OP ("Continue", ARGP_CONTINUE_OP, ARGI_CONTINUE_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
|
||||
/* 7B */ ACPI_OP ("LoadTable", ARGP_LOAD_TABLE_OP, ARGI_LOAD_TABLE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_6A_0T_1R, AML_FLAGS_EXEC_6A_0T_1R),
|
||||
/* 7C */ ACPI_OP ("DataTableRegion", ARGP_DATA_REGION_OP, ARGI_DATA_REGION_OP, ACPI_TYPE_REGION, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 7D */ ACPI_OP ("[EvalSubTree]", ARGP_SCOPE_OP, ARGI_SCOPE_OP, INTERNAL_TYPE_SCOPE, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE)
|
||||
/* 6E */ ACPI_OP ("QwordConst", ARGP_QWORD_OP, ARGI_QWORD_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
|
||||
/* 6F */ ACPI_OP ("Package /*Var*/", ARGP_VAR_PACKAGE_OP, ARGI_VAR_PACKAGE_OP, ACPI_TYPE_PACKAGE, AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT, AML_HAS_ARGS | AML_DEFER),
|
||||
/* 70 */ ACPI_OP ("ConcatenateResTemplate", ARGP_CONCAT_RES_OP, ARGI_CONCAT_RES_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 71 */ ACPI_OP ("Mod", ARGP_MOD_OP, ARGI_MOD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 72 */ ACPI_OP ("CreateQWordField", ARGP_CREATE_QWORD_FIELD_OP,ARGI_CREATE_QWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
|
||||
/* 73 */ ACPI_OP ("ToBuffer", ARGP_TO_BUFFER_OP, ARGI_TO_BUFFER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 74 */ ACPI_OP ("ToDecimalString", ARGP_TO_DEC_STR_OP, ARGI_TO_DEC_STR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 75 */ ACPI_OP ("ToHexString", ARGP_TO_HEX_STR_OP, ARGI_TO_HEX_STR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 76 */ ACPI_OP ("ToInteger", ARGP_TO_INTEGER_OP, ARGI_TO_INTEGER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
|
||||
/* 77 */ ACPI_OP ("ToString", ARGP_TO_STRING_OP, ARGI_TO_STRING_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
|
||||
/* 78 */ ACPI_OP ("CopyObject", ARGP_COPY_OP, ARGI_COPY_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
|
||||
/* 79 */ ACPI_OP ("Mid", ARGP_MID_OP, ARGI_MID_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_3A_1T_1R, AML_FLAGS_EXEC_3A_1T_1R | AML_CONSTANT),
|
||||
/* 7A */ ACPI_OP ("Continue", ARGP_CONTINUE_OP, ARGI_CONTINUE_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
|
||||
/* 7B */ ACPI_OP ("LoadTable", ARGP_LOAD_TABLE_OP, ARGI_LOAD_TABLE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_6A_0T_1R, AML_FLAGS_EXEC_6A_0T_1R),
|
||||
/* 7C */ ACPI_OP ("DataTableRegion", ARGP_DATA_REGION_OP, ARGI_DATA_REGION_OP, ACPI_TYPE_REGION, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
|
||||
/* 7D */ ACPI_OP ("[EvalSubTree]", ARGP_SCOPE_OP, ARGI_SCOPE_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE)
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rscalc - Calculate stream and list lengths
|
||||
* $Revision: 43 $
|
||||
* $Revision: 44 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -891,7 +891,7 @@ AcpiRsGetPciRoutingTableLength (
|
||||
for (TableIndex = 0; TableIndex < 4 && !NameFound; TableIndex++)
|
||||
{
|
||||
if ((ACPI_TYPE_STRING == ACPI_GET_OBJECT_TYPE (*SubObjectList)) ||
|
||||
((INTERNAL_TYPE_REFERENCE == ACPI_GET_OBJECT_TYPE (*SubObjectList)) &&
|
||||
((ACPI_TYPE_LOCAL_REFERENCE == ACPI_GET_OBJECT_TYPE (*SubObjectList)) &&
|
||||
((*SubObjectList)->Reference.Opcode == AML_INT_NAMEPATH_OP)))
|
||||
{
|
||||
NameFound = TRUE;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: tbconvrt - ACPI Table conversion utilities
|
||||
* $Revision: 43 $
|
||||
* $Revision: 45 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -128,11 +128,13 @@
|
||||
*
|
||||
* FUNCTION: AcpiTbGetTableCount
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: RSDP - Pointer to the RSDP
|
||||
* RSDT - Pointer to the RSDT/XSDT
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: The number of tables pointed to by the RSDT or XSDT.
|
||||
*
|
||||
* DESCRIPTION: Calculate the number of tables
|
||||
* DESCRIPTION: Calculate the number of tables. Automatically handles either
|
||||
* an RSDT or XSDT.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -173,9 +175,9 @@ AcpiTbGetTableCount (
|
||||
*
|
||||
* FUNCTION: AcpiTbConvertToXsdt
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: TableInfo - Info about the RSDT
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Convert an RSDT to an XSDT (internal common format)
|
||||
*
|
||||
@ -234,7 +236,6 @@ AcpiTbConvertToXsdt (
|
||||
/* Point the table descriptor to the new table */
|
||||
|
||||
TableInfo->Pointer = (ACPI_TABLE_HEADER *) NewTable;
|
||||
TableInfo->BasePointer = (ACPI_TABLE_HEADER *) NewTable;
|
||||
TableInfo->Length = TableSize;
|
||||
TableInfo->Allocation = ACPI_MEM_ALLOCATED;
|
||||
|
||||
@ -419,13 +420,11 @@ AcpiTbConvertFadt2 (
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* Converts a BIOS supplied ACPI 1.0 FADT to an intermediate
|
||||
* ACPI 2.0 FADT. If the BIOS supplied a 2.0 FADT then it is simply
|
||||
* copied to the intermediate FADT. The ACPI CA software uses this
|
||||
* intermediate FADT. Thus a significant amount of special #ifdef
|
||||
* type codeing is saved. This intermediate FADT will need to be
|
||||
* freed at some point.
|
||||
* DESCRIPTION: Converts a BIOS supplied ACPI 1.0 FADT to a local
|
||||
* ACPI 2.0 FADT. If the BIOS supplied a 2.0 FADT then it is simply
|
||||
* copied to the local FADT. The ACPI CA software uses this
|
||||
* local FADT. Thus a significant amount of special #ifdef
|
||||
* type codeing is saved.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -498,7 +497,6 @@ AcpiTbConvertTableFadt (void)
|
||||
/* Install the new table */
|
||||
|
||||
TableDesc->Pointer = (ACPI_TABLE_HEADER *) AcpiGbl_FADT;
|
||||
TableDesc->BasePointer = AcpiGbl_FADT;
|
||||
TableDesc->Allocation = ACPI_MEM_ALLOCATED;
|
||||
TableDesc->Length = sizeof (FADT_DESCRIPTOR_REV2);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: tbgetall - Get all required ACPI tables
|
||||
* $Revision: 2 $
|
||||
* $Revision: 3 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -319,7 +319,14 @@ AcpiTbGetRequiredTables (
|
||||
* Get the tables needed by this subsystem (FADT and any SSDTs).
|
||||
* NOTE: All other tables are completely ignored at this time.
|
||||
*/
|
||||
AcpiTbGetPrimaryTable (&Address, &TableInfo);
|
||||
Status = AcpiTbGetPrimaryTable (&Address, &TableInfo);
|
||||
if ((Status != AE_OK) && (Status != AE_TABLE_NOT_SUPPORTED))
|
||||
{
|
||||
ACPI_REPORT_WARNING (("%s, while getting table at %8.8X%8.8X\n",
|
||||
AcpiFormatException (Status),
|
||||
ACPI_HIDWORD (Address.Pointer.Value),
|
||||
ACPI_LODWORD (Address.Pointer.Value)));
|
||||
}
|
||||
}
|
||||
|
||||
/* We must have a FADT to continue */
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: tbinstal - ACPI table installation and removal
|
||||
* $Revision: 63 $
|
||||
* $Revision: 64 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -394,7 +394,6 @@ AcpiTbInitTableDescriptor (
|
||||
|
||||
TableDesc->Type = TableInfo->Type;
|
||||
TableDesc->Pointer = TableInfo->Pointer;
|
||||
TableDesc->BasePointer = TableInfo->BasePointer;
|
||||
TableDesc->Length = TableInfo->Length;
|
||||
TableDesc->Allocation = TableInfo->Allocation;
|
||||
TableDesc->AmlStart = (UINT8 *) (TableDesc->Pointer + 1),
|
||||
@ -597,12 +596,12 @@ AcpiTbDeleteSingleTable (
|
||||
|
||||
case ACPI_MEM_ALLOCATED:
|
||||
|
||||
ACPI_MEM_FREE (TableDesc->BasePointer);
|
||||
ACPI_MEM_FREE (TableDesc->Pointer);
|
||||
break;
|
||||
|
||||
case ACPI_MEM_MAPPED:
|
||||
|
||||
AcpiOsUnmapMemory (TableDesc->BasePointer, TableDesc->Length);
|
||||
AcpiOsUnmapMemory (TableDesc->Pointer, TableDesc->Length);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: tbrsdt - ACPI RSDT table utilities
|
||||
* $Revision: 3 $
|
||||
* $Revision: 4 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -206,7 +206,6 @@ AcpiTbVerifyRsdp (
|
||||
TableInfo.Pointer = ACPI_CAST_PTR (ACPI_TABLE_HEADER, Rsdp);
|
||||
TableInfo.Length = sizeof (RSDP_DESCRIPTOR);
|
||||
TableInfo.Allocation = ACPI_MEM_MAPPED;
|
||||
TableInfo.BasePointer = Rsdp;
|
||||
|
||||
/* Save the table pointers and allocation info */
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: tbutils - Table manipulation utilities
|
||||
* $Revision: 56 $
|
||||
* $Revision: 57 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -274,8 +274,8 @@ AcpiTbVerifyTableChecksum (
|
||||
|
||||
if (Checksum)
|
||||
{
|
||||
ACPI_REPORT_WARNING (("Invalid checksum (%X) in table %4.4s\n",
|
||||
(UINT32) Checksum, TableHeader->Signature));
|
||||
ACPI_REPORT_WARNING (("Invalid checksum in table [%4.4s] (%02X, sum %02X is not zero)\n",
|
||||
TableHeader->Signature, (UINT32) TableHeader->Checksum, (UINT32) Checksum));
|
||||
|
||||
Status = AE_BAD_CHECKSUM;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: tbxfroot - Find the root ACPI table (RSDT)
|
||||
* $Revision: 64 $
|
||||
* $Revision: 65 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -415,7 +415,8 @@ AcpiFindRootPointer (
|
||||
Status = AcpiTbFindRsdp (&TableInfo, Flags);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "RSDP structure not found\n"));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "RSDP structure not found, %s Flags=%X\n",
|
||||
AcpiFormatException (Status), Flags));
|
||||
return_ACPI_STATUS (AE_NO_ACPI_TABLES);
|
||||
}
|
||||
|
||||
@ -523,6 +524,8 @@ AcpiTbFindRsdp (
|
||||
(void **) &TablePtr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not map memory at %X for length %X\n",
|
||||
LO_RSDP_WINDOW_BASE, LO_RSDP_WINDOW_SIZE));
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -547,6 +550,8 @@ AcpiTbFindRsdp (
|
||||
(void **) &TablePtr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not map memory at %X for length %X\n",
|
||||
HI_RSDP_WINDOW_BASE, HI_RSDP_WINDOW_SIZE));
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utcopy - Internal to external object translation utilities
|
||||
* $Revision: 104 $
|
||||
* $Revision: 105 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -207,7 +207,7 @@ AcpiUtCopyIsimpleToEsimple (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
/*
|
||||
* This is an object reference. Attempt to dereference it.
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: utdelete - object deletion and reference count utilities
|
||||
* $Revision: 91 $
|
||||
* $Revision: 92 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -530,7 +530,7 @@ AcpiUtUpdateObjectReference (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_ADDRESS_HANDLER:
|
||||
case ACPI_TYPE_LOCAL_ADDRESS_HANDLER:
|
||||
|
||||
/* Must walk list of address handlers */
|
||||
|
||||
@ -579,7 +579,7 @@ AcpiUtUpdateObjectReference (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
|
||||
Status = AcpiUtCreateUpdateStateAndPush (
|
||||
Object->Field.RegionObj, Action, &StateList);
|
||||
@ -590,7 +590,7 @@ AcpiUtUpdateObjectReference (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
|
||||
Status = AcpiUtCreateUpdateStateAndPush (
|
||||
Object->BankField.BankObj, Action, &StateList);
|
||||
@ -608,7 +608,7 @@ AcpiUtUpdateObjectReference (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
Status = AcpiUtCreateUpdateStateAndPush (
|
||||
Object->IndexField.IndexObj, Action, &StateList);
|
||||
@ -627,7 +627,7 @@ AcpiUtUpdateObjectReference (
|
||||
|
||||
|
||||
case ACPI_TYPE_REGION:
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
default:
|
||||
|
||||
/* No subobjects */
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: utmisc - common utility procedures
|
||||
* $Revision: 84 $
|
||||
* $Revision: 86 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -125,6 +125,102 @@
|
||||
ACPI_MODULE_NAME ("utmisc")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtPrintString
|
||||
*
|
||||
* PARAMETERS: String - Null terminated ASCII string
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Dump an ASCII string with support for ACPI-defined escape
|
||||
* sequences.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiUtPrintString (
|
||||
char *String,
|
||||
UINT8 MaxLength)
|
||||
{
|
||||
UINT32 i;
|
||||
|
||||
|
||||
if (!String)
|
||||
{
|
||||
AcpiOsPrintf ("<\"NULL STRING PTR\">");
|
||||
return;
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("\"");
|
||||
for (i = 0; String[i] && (i < MaxLength); i++)
|
||||
{
|
||||
/* Escape sequences */
|
||||
|
||||
switch (String[i])
|
||||
{
|
||||
case 0x07:
|
||||
AcpiOsPrintf ("\\a"); /* BELL */
|
||||
break;
|
||||
|
||||
case 0x08:
|
||||
AcpiOsPrintf ("\\b"); /* BACKSPACE */
|
||||
break;
|
||||
|
||||
case 0x0C:
|
||||
AcpiOsPrintf ("\\f"); /* FORMFEED */
|
||||
break;
|
||||
|
||||
case 0x0A:
|
||||
AcpiOsPrintf ("\\n"); /* LINEFEED */
|
||||
break;
|
||||
|
||||
case 0x0D:
|
||||
AcpiOsPrintf ("\\r"); /* CARRIAGE RETURN*/
|
||||
break;
|
||||
|
||||
case 0x09:
|
||||
AcpiOsPrintf ("\\t"); /* HORIZONTAL TAB */
|
||||
break;
|
||||
|
||||
case 0x0B:
|
||||
AcpiOsPrintf ("\\v"); /* VERTICAL TAB */
|
||||
break;
|
||||
|
||||
case '\'': /* Single Quote */
|
||||
case '\"': /* Double Quote */
|
||||
case '\\': /* Backslash */
|
||||
AcpiOsPrintf ("\\%c", (int) String[i]);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* Check for printable character or hex escape */
|
||||
|
||||
if (ACPI_IS_PRINT (String[i]))
|
||||
{
|
||||
/* This is a normal character */
|
||||
|
||||
AcpiOsPrintf ("%c", (int) String[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* All others will be Hex escapes */
|
||||
|
||||
AcpiOsPrintf ("\\x%2.2X", (INT32) String[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
AcpiOsPrintf ("\"");
|
||||
|
||||
if (i == MaxLength && String[i])
|
||||
{
|
||||
AcpiOsPrintf ("...");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtDwordByteSwap
|
||||
@ -723,7 +819,7 @@ AcpiUtAcquireMutex (
|
||||
ThisThreadId, AcpiUtGetMutexName (MutexId)));
|
||||
|
||||
Status = AcpiOsWaitSemaphore (AcpiGbl_AcpiMutexInfo[MutexId].Mutex,
|
||||
1, WAIT_FOREVER);
|
||||
1, ACPI_WAIT_FOREVER);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Thread %X acquired Mutex [%s]\n",
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utobject - ACPI object create/delete/size/cache routines
|
||||
* $Revision: 76 $
|
||||
* $Revision: 79 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -182,7 +182,7 @@ AcpiUtCreateInternalObjectDbg (
|
||||
return_PTR (NULL);
|
||||
}
|
||||
|
||||
SecondObject->Common.Type = INTERNAL_TYPE_EXTRA;
|
||||
SecondObject->Common.Type = ACPI_TYPE_LOCAL_EXTRA;
|
||||
SecondObject->Common.ReferenceCount = 1;
|
||||
|
||||
/* Link the second object to the first */
|
||||
@ -209,6 +209,61 @@ AcpiUtCreateInternalObjectDbg (
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtCreateBufferObject
|
||||
*
|
||||
* PARAMETERS: BufferSize - Size of buffer to be created
|
||||
*
|
||||
* RETURN: Pointer to a new Buffer object
|
||||
*
|
||||
* DESCRIPTION: Create a fully initialized buffer object
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_OPERAND_OBJECT *
|
||||
AcpiUtCreateBufferObject (
|
||||
ACPI_SIZE BufferSize)
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *BufferDesc;
|
||||
UINT8 *Buffer;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_U32 ("UtCreateBufferObject", BufferSize);
|
||||
|
||||
|
||||
/*
|
||||
* Create a new Buffer object
|
||||
*/
|
||||
BufferDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
|
||||
if (!BufferDesc)
|
||||
{
|
||||
return_PTR (NULL);
|
||||
}
|
||||
|
||||
/* Allocate the actual buffer */
|
||||
|
||||
Buffer = ACPI_MEM_CALLOCATE (BufferSize);
|
||||
if (!Buffer)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("CreateBuffer: could not allocate size %X\n",
|
||||
(UINT32) BufferSize));
|
||||
AcpiUtRemoveReference (BufferDesc);
|
||||
return_PTR (NULL);
|
||||
}
|
||||
|
||||
/* Complete buffer object initialization */
|
||||
|
||||
BufferDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
|
||||
BufferDesc->Buffer.Pointer = Buffer;
|
||||
BufferDesc->Buffer.Length = (UINT32) BufferSize;
|
||||
|
||||
/* Return the new buffer descriptor */
|
||||
|
||||
return_PTR (BufferDesc);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtValidInternalObject
|
||||
@ -231,8 +286,7 @@ AcpiUtValidInternalObject (
|
||||
|
||||
if (!Object)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"**** Null Object Ptr\n"));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "**** Null Object Ptr\n"));
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
@ -258,10 +312,17 @@ AcpiUtValidInternalObject (
|
||||
"**** Obj %p is a parser obj, not ACPI obj\n", Object));
|
||||
break;
|
||||
|
||||
case ACPI_DESC_TYPE_CACHED:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"**** Obj %p has already been released to internal cache\n", Object));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"**** Obj %p is of unknown type\n", Object));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"**** Obj %p has unknown descriptor type %X\n", Object,
|
||||
ACPI_GET_DESCRIPTOR_TYPE (Object)));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -454,7 +515,7 @@ AcpiUtGetSimpleObjectSize (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
switch (InternalObject->Reference.Opcode)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user