From 9d39e615a85d5e81e8442ec3bf65c8dff5e393c5 Mon Sep 17 00:00:00 2001 From: msmith Date: Fri, 7 Sep 2001 01:22:25 +0000 Subject: Vendor-branch import of the Intel ACPI CA 20010831 snapshot. --- sys/contrib/dev/acpica/acconfig.h | 4 +- sys/contrib/dev/acpica/acdebug.h | 78 ++++---- sys/contrib/dev/acpica/acexcep.h | 12 +- sys/contrib/dev/acpica/acgcc.h | 4 +- sys/contrib/dev/acpica/acglobal.h | 29 ++- sys/contrib/dev/acpica/aclocal.h | 32 ++- sys/contrib/dev/acpica/acmacros.h | 73 +++---- sys/contrib/dev/acpica/acoutput.h | 56 +++--- sys/contrib/dev/acpica/acparser.h | 41 +--- sys/contrib/dev/acpica/acstruct.h | 6 +- sys/contrib/dev/acpica/actypes.h | 7 +- sys/contrib/dev/acpica/acutils.h | 94 ++++----- sys/contrib/dev/acpica/dbcmds.c | 74 ++++--- sys/contrib/dev/acpica/dbdisasm.c | 105 +++++----- sys/contrib/dev/acpica/dbdisply.c | 11 +- sys/contrib/dev/acpica/dbexec.c | 48 ++--- sys/contrib/dev/acpica/dbfileio.c | 26 ++- sys/contrib/dev/acpica/dbhistry.c | 56 +++--- sys/contrib/dev/acpica/dbinput.c | 139 +++++++------ sys/contrib/dev/acpica/dbstats.c | 81 ++++---- sys/contrib/dev/acpica/dbutils.c | 6 +- sys/contrib/dev/acpica/dbxface.c | 40 ++-- sys/contrib/dev/acpica/dsfield.c | 5 +- sys/contrib/dev/acpica/dsmethod.c | 6 +- sys/contrib/dev/acpica/dsmthdat.c | 10 +- sys/contrib/dev/acpica/dsobject.c | 24 +-- sys/contrib/dev/acpica/dsopcode.c | 25 +-- sys/contrib/dev/acpica/dsutils.c | 27 +-- sys/contrib/dev/acpica/dswexec.c | 67 +++++-- sys/contrib/dev/acpica/dswload.c | 59 +++--- sys/contrib/dev/acpica/dswscope.c | 8 +- sys/contrib/dev/acpica/dswstate.c | 13 +- sys/contrib/dev/acpica/evevent.c | 27 ++- sys/contrib/dev/acpica/evmisc.c | 14 +- sys/contrib/dev/acpica/evregion.c | 18 +- sys/contrib/dev/acpica/evrgnini.c | 6 +- sys/contrib/dev/acpica/evsci.c | 14 +- sys/contrib/dev/acpica/evxface.c | 3 +- sys/contrib/dev/acpica/evxfevnt.c | 10 +- sys/contrib/dev/acpica/evxfregn.c | 7 +- sys/contrib/dev/acpica/exconfig.c | 56 ++---- sys/contrib/dev/acpica/exconvrt.c | 33 ++-- sys/contrib/dev/acpica/excreate.c | 11 +- sys/contrib/dev/acpica/exdump.c | 49 +++-- sys/contrib/dev/acpica/exdyadic.c | 265 ++++++++----------------- sys/contrib/dev/acpica/exfield.c | 9 +- sys/contrib/dev/acpica/exfldio.c | 94 ++++----- sys/contrib/dev/acpica/exmisc.c | 162 ++-------------- sys/contrib/dev/acpica/exmonad.c | 119 +----------- sys/contrib/dev/acpica/exmutex.c | 11 +- sys/contrib/dev/acpica/exnames.c | 8 +- sys/contrib/dev/acpica/exprep.c | 16 +- sys/contrib/dev/acpica/exregion.c | 8 +- sys/contrib/dev/acpica/exresolv.c | 4 +- sys/contrib/dev/acpica/exresop.c | 19 +- sys/contrib/dev/acpica/exstore.c | 26 ++- sys/contrib/dev/acpica/exstoren.c | 3 +- sys/contrib/dev/acpica/exstorob.c | 11 +- sys/contrib/dev/acpica/exsystem.c | 25 ++- sys/contrib/dev/acpica/exutils.c | 37 +++- sys/contrib/dev/acpica/exxface.c | 5 +- sys/contrib/dev/acpica/hwacpi.c | 28 +-- sys/contrib/dev/acpica/hwgpe.c | 16 +- sys/contrib/dev/acpica/hwregs.c | 52 +++-- sys/contrib/dev/acpica/hwsleep.c | 14 +- sys/contrib/dev/acpica/hwtimer.c | 6 +- sys/contrib/dev/acpica/nsaccess.c | 27 +-- sys/contrib/dev/acpica/nsalloc.c | 40 ++-- sys/contrib/dev/acpica/nsdump.c | 22 ++- sys/contrib/dev/acpica/nseval.c | 23 +-- sys/contrib/dev/acpica/nsinit.c | 7 +- sys/contrib/dev/acpica/nsload.c | 13 +- sys/contrib/dev/acpica/nsnames.c | 11 +- sys/contrib/dev/acpica/nsobject.c | 20 +- sys/contrib/dev/acpica/nssearch.c | 12 +- sys/contrib/dev/acpica/nsutils.c | 28 ++- sys/contrib/dev/acpica/nswalk.c | 18 +- sys/contrib/dev/acpica/nsxfname.c | 11 +- sys/contrib/dev/acpica/nsxfobj.c | 13 +- sys/contrib/dev/acpica/psargs.c | 9 +- sys/contrib/dev/acpica/psfind.c | 16 +- sys/contrib/dev/acpica/psopcode.c | 396 ++++++++++++++++++++++++-------------- sys/contrib/dev/acpica/psparse.c | 211 +++++++++----------- sys/contrib/dev/acpica/psscope.c | 4 +- sys/contrib/dev/acpica/pstree.c | 18 +- sys/contrib/dev/acpica/psutils.c | 236 +++-------------------- sys/contrib/dev/acpica/pswalk.c | 6 +- sys/contrib/dev/acpica/psxface.c | 3 +- sys/contrib/dev/acpica/rsaddr.c | 14 +- sys/contrib/dev/acpica/rscalc.c | 10 +- sys/contrib/dev/acpica/rscreate.c | 6 +- sys/contrib/dev/acpica/rsdump.c | 52 ++++- sys/contrib/dev/acpica/rsirq.c | 8 +- sys/contrib/dev/acpica/rslist.c | 12 +- sys/contrib/dev/acpica/rsmisc.c | 6 +- sys/contrib/dev/acpica/rsxface.c | 4 +- sys/contrib/dev/acpica/tbconvrt.c | 17 +- sys/contrib/dev/acpica/tbget.c | 30 ++- sys/contrib/dev/acpica/tbinstal.c | 14 +- sys/contrib/dev/acpica/tbutils.c | 4 +- sys/contrib/dev/acpica/tbxface.c | 4 +- sys/contrib/dev/acpica/tbxfroot.c | 17 +- sys/contrib/dev/acpica/utalloc.c | 47 +++-- sys/contrib/dev/acpica/utcopy.c | 17 +- sys/contrib/dev/acpica/utdebug.c | 313 +++++++++++++++++------------- sys/contrib/dev/acpica/utdelete.c | 13 +- sys/contrib/dev/acpica/uteval.c | 10 +- sys/contrib/dev/acpica/utglobal.c | 109 ++++++----- sys/contrib/dev/acpica/utinit.c | 5 +- sys/contrib/dev/acpica/utmisc.c | 44 +++-- sys/contrib/dev/acpica/utobject.c | 21 +- sys/contrib/dev/acpica/utxface.c | 11 +- 112 files changed, 1992 insertions(+), 2392 deletions(-) (limited to 'sys/contrib/dev') diff --git a/sys/contrib/dev/acpica/acconfig.h b/sys/contrib/dev/acpica/acconfig.h index f4d99b8..058d203 100644 --- a/sys/contrib/dev/acpica/acconfig.h +++ b/sys/contrib/dev/acpica/acconfig.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: acconfig.h - Global configuration constants - * $Revision: 68 $ + * $Revision: 69 $ * *****************************************************************************/ @@ -144,7 +144,7 @@ /* Version string */ -#define ACPI_CA_VERSION 0x20010816 +#define ACPI_CA_VERSION 0x20010831 /* Maximum objects in the various object caches */ diff --git a/sys/contrib/dev/acpica/acdebug.h b/sys/contrib/dev/acpica/acdebug.h index 0a1c293..5f89e28 100644 --- a/sys/contrib/dev/acpica/acdebug.h +++ b/sys/contrib/dev/acpica/acdebug.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: acdebug.h - ACPI/AML debugger - * $Revision: 44 $ + * $Revision: 47 $ * *****************************************************************************/ @@ -129,50 +129,44 @@ extern NATIVE_CHAR *optarg; extern UINT8 *AmlPtr; extern UINT32 AmlLength; -extern BOOLEAN opt_tables; -extern BOOLEAN opt_disasm; -extern BOOLEAN opt_stats; -extern BOOLEAN opt_parse_jit; -extern BOOLEAN opt_verbose; -extern BOOLEAN opt_ini_methods; - - -extern NATIVE_CHAR *Args[DB_MAX_ARGS]; -extern NATIVE_CHAR LineBuf[80]; -extern NATIVE_CHAR ScopeBuf[40]; -extern NATIVE_CHAR DebugFilename[40]; -extern BOOLEAN OutputToFile; -extern NATIVE_CHAR *Buffer; -extern NATIVE_CHAR *Filename; -extern NATIVE_CHAR *INDENT_STRING; +extern BOOLEAN AcpiGbl_DbOpt_tables; +extern BOOLEAN AcpiGbl_DbOpt_disasm; +extern BOOLEAN AcpiGbl_DbOpt_stats; +extern BOOLEAN AcpiGbl_DbOpt_parse_jit; +extern BOOLEAN AcpiGbl_DbOpt_verbose; +extern BOOLEAN AcpiGbl_DbOpt_ini_methods; + + +extern NATIVE_CHAR *AcpiGbl_DbArgs[DB_MAX_ARGS]; +extern NATIVE_CHAR AcpiGbl_DbLineBuf[80]; +extern NATIVE_CHAR AcpiGbl_DbScopeBuf[40]; +extern NATIVE_CHAR AcpiGbl_DbDebugFilename[40]; +extern BOOLEAN AcpiGbl_DbOutputToFile; +extern NATIVE_CHAR *AcpiGbl_DbBuffer; +extern NATIVE_CHAR *AcpiGbl_DbFilename; +extern NATIVE_CHAR *AcpiGbl_DbDisasmIndent; extern UINT8 AcpiGbl_DbOutputFlags; extern UINT32 AcpiGbl_DbDebugLevel; extern UINT32 AcpiGbl_DbConsoleDebugLevel; -extern UINT32 NumNames; -extern UINT32 NumMethods; -extern UINT32 NumRegions; -extern UINT32 NumPackages; -extern UINT32 NumAliases; -extern UINT32 NumDevices; -extern UINT32 NumFieldDefs; -extern UINT32 NumThermalZones; -extern UINT32 NumNodes; -extern UINT32 NumGrammarElements; -extern UINT32 NumMethodElements ; -extern UINT32 NumMutexes; -extern UINT32 NumPowerResources; -extern UINT32 NumBankFields ; -extern UINT32 NumIndexFields; -extern UINT32 NumEvents; - -extern UINT32 SizeOfParseTree; -extern UINT32 SizeOfMethodTrees; -extern UINT32 SizeOfNTEs; -extern UINT32 SizeOfAcpiObjects; - - -#define BUFFER_SIZE 4196 +/* + * Statistic globals + */ +extern UINT16 AcpiGbl_ObjTypeCount[INTERNAL_TYPE_NODE_MAX+1]; +extern UINT16 AcpiGbl_NodeTypeCount[INTERNAL_TYPE_NODE_MAX+1]; +extern UINT16 AcpiGbl_ObjTypeCountMisc; +extern UINT16 AcpiGbl_NodeTypeCountMisc; +extern UINT32 AcpiGbl_NumNodes; +extern UINT32 AcpiGbl_NumObjects; + + +extern UINT32 AcpiGbl_SizeOfParseTree; +extern UINT32 AcpiGbl_SizeOfMethodTrees; +extern UINT32 AcpiGbl_SizeOfNodeEntries; +extern UINT32 AcpiGbl_SizeOfAcpiObjects; + + +#define ACPI_DEBUG_BUFFER_SIZE 4196 #define DB_REDIRECTABLE_OUTPUT 0x01 #define DB_CONSOLE_OUTPUT 0x02 @@ -196,7 +190,7 @@ typedef struct ArgumentInfo #define PARAM_LIST(pl) pl -#define DBTEST_OUTPUT_LEVEL(lvl) if (opt_verbose) +#define DBTEST_OUTPUT_LEVEL(lvl) if (AcpiGbl_DbOpt_verbose) #define VERBOSE_PRINT(fp) DBTEST_OUTPUT_LEVEL(lvl) {\ AcpiOsPrintf PARAM_LIST(fp);} diff --git a/sys/contrib/dev/acpica/acexcep.h b/sys/contrib/dev/acpica/acexcep.h index 717c0df..44bc2cb 100644 --- a/sys/contrib/dev/acpica/acexcep.h +++ b/sys/contrib/dev/acpica/acexcep.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: acexcep.h - Exception codes returned by the ACPI subsystem - * $Revision: 49 $ + * $Revision: 50 $ * *****************************************************************************/ @@ -244,7 +244,7 @@ * String versions of the exception codes above * These strings must match the corresponding defines exactly */ -NATIVE_CHAR *AcpiGbl_ExceptionNames_Env[] = +NATIVE_CHAR const *AcpiGbl_ExceptionNames_Env[] = { "AE_OK", "AE_ERROR", @@ -275,7 +275,7 @@ NATIVE_CHAR *AcpiGbl_ExceptionNames_Env[] = "AE_NO_GLOBAL_LOCK", }; -NATIVE_CHAR *AcpiGbl_ExceptionNames_Pgm[] = +NATIVE_CHAR const *AcpiGbl_ExceptionNames_Pgm[] = { "AE_BAD_PARAMETER", "AE_BAD_CHARACTER", @@ -284,7 +284,7 @@ NATIVE_CHAR *AcpiGbl_ExceptionNames_Pgm[] = "AE_BAD_ADDRESS", }; -NATIVE_CHAR *AcpiGbl_ExceptionNames_Tbl[] = +NATIVE_CHAR const *AcpiGbl_ExceptionNames_Tbl[] = { "AE_BAD_SIGNATURE", "AE_BAD_HEADER", @@ -292,7 +292,7 @@ NATIVE_CHAR *AcpiGbl_ExceptionNames_Tbl[] = "AE_BAD_VALUE", }; -NATIVE_CHAR *AcpiGbl_ExceptionNames_Aml[] = +NATIVE_CHAR const *AcpiGbl_ExceptionNames_Aml[] = { "AE_AML_ERROR", "AE_AML_PARSE", @@ -321,7 +321,7 @@ NATIVE_CHAR *AcpiGbl_ExceptionNames_Aml[] = "AE_AML_INVALID_RESOURCE_TYPE", }; -NATIVE_CHAR *AcpiGbl_ExceptionNames_Ctrl[] = +NATIVE_CHAR const *AcpiGbl_ExceptionNames_Ctrl[] = { "AE_CTRL_RETURN_VALUE", "AE_CTRL_PENDING", diff --git a/sys/contrib/dev/acpica/acgcc.h b/sys/contrib/dev/acpica/acgcc.h index c426663..81192c2 100644 --- a/sys/contrib/dev/acpica/acgcc.h +++ b/sys/contrib/dev/acpica/acgcc.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: acgcc.h - GCC specific defines, etc. - * $Revision: 6 $ + * $Revision: 9 $ * *****************************************************************************/ @@ -192,7 +192,7 @@ #define disable() __cli() #define enable() __sti() #define halt() __asm__ __volatile__ ("sti; hlt":::"memory") -#define wbinvd() +#define wbinvd() __asm__ __volatile__ ("wbinvd":::"memory") /*! [Begin] no source code translation * diff --git a/sys/contrib/dev/acpica/acglobal.h b/sys/contrib/dev/acpica/acglobal.h index ee06d5e..bf05740 100644 --- a/sys/contrib/dev/acpica/acglobal.h +++ b/sys/contrib/dev/acpica/acglobal.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: acglobal.h - Declarations for global variables - * $Revision: 103 $ + * $Revision: 106 $ * *****************************************************************************/ @@ -131,8 +131,6 @@ #endif -extern NATIVE_CHAR *MsgAcpiErrorBreak; - /***************************************************************************** * * Debug support @@ -144,7 +142,6 @@ extern NATIVE_CHAR *MsgAcpiErrorBreak; extern UINT32 AcpiDbgLevel; extern UINT32 AcpiDbgLayer; - /* Procedure nesting level for debug output */ extern UINT32 AcpiGbl_NestingLevel; @@ -226,8 +223,8 @@ ACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockPresent; extern BOOLEAN AcpiGbl_Shutdown; extern UINT32 AcpiGbl_SystemFlags; extern UINT32 AcpiGbl_StartupFlags; -extern UINT8 AcpiGbl_DecodeTo8bit[8]; -extern NATIVE_CHAR AcpiGbl_HexToAscii[16]; +extern const UINT8 AcpiGbl_DecodeTo8bit[8]; +extern const NATIVE_CHAR *AcpiGbl_DbSleepStates[ACPI_NUM_SLEEP_STATES]; /***************************************************************************** @@ -243,13 +240,16 @@ extern NATIVE_CHAR AcpiGbl_HexToAscii[16]; ACPI_EXTERN ACPI_NAMESPACE_NODE AcpiGbl_RootNodeStruct; ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_RootNode; -extern UINT8 AcpiGbl_NsProperties[NUM_NS_TYPES]; -extern PREDEFINED_NAMES AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES]; +extern const UINT8 AcpiGbl_NsProperties[NUM_NS_TYPES]; +extern const PREDEFINED_NAMES AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES]; #ifdef ACPI_DEBUG ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeCount; ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeSize; ACPI_EXTERN UINT32 AcpiGbl_MaxConcurrentNodeCount; +ACPI_EXTERN UINT32 AcpiGbl_EntryStackPointer; +ACPI_EXTERN UINT32 AcpiGbl_LowestStackPointer; +ACPI_EXTERN UINT32 AcpiGbl_DeepestNesting; #endif /***************************************************************************** @@ -261,11 +261,9 @@ ACPI_EXTERN UINT32 AcpiGbl_MaxConcurrentNodeCount; ACPI_EXTERN ACPI_WALK_LIST *AcpiGbl_CurrentWalkList; -/* - * Table of Address Space handlers - */ -ACPI_EXTERN ACPI_ADR_SPACE_INFO AcpiGbl_AddressSpaces[ACPI_NUM_ADDRESS_SPACES]; +/* Address Space handlers */ +ACPI_EXTERN ACPI_ADR_SPACE_INFO AcpiGbl_AddressSpaces[ACPI_NUM_ADDRESS_SPACES]; /* Control method single step flag */ @@ -288,11 +286,10 @@ ACPI_EXTERN ACPI_PARSE_OBJECT *AcpiGbl_ParsedNamespaceRoot; ****************************************************************************/ ACPI_EXTERN ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS]; - ACPI_EXTERN ACPI_HANDLE AcpiGbl_GpeObjHandle; ACPI_EXTERN UINT32 AcpiGbl_GpeRegisterCount; -ACPI_EXTERN ACPI_GPE_REGISTERS *AcpiGbl_GpeRegisters; -ACPI_EXTERN ACPI_GPE_LEVEL_INFO *AcpiGbl_GpeInfo; +ACPI_EXTERN ACPI_GPE_REGISTERS *AcpiGbl_GpeRegisters; +ACPI_EXTERN ACPI_GPE_LEVEL_INFO *AcpiGbl_GpeInfo; /* * Gpe validation and translation table @@ -323,6 +320,4 @@ ACPI_EXTERN BOOLEAN AcpiGbl_DbTerminateThreads; #endif - - #endif /* __ACGLOBAL_H__ */ diff --git a/sys/contrib/dev/acpica/aclocal.h b/sys/contrib/dev/acpica/aclocal.h index d9fb59b..135da9f 100644 --- a/sys/contrib/dev/acpica/aclocal.h +++ b/sys/contrib/dev/acpica/aclocal.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: aclocal.h - Internal data types used across the ACPI subsystem - * $Revision: 127 $ + * $Revision: 130 $ * *****************************************************************************/ @@ -124,7 +124,6 @@ typedef void* ACPI_MUTEX; typedef UINT32 ACPI_MUTEX_HANDLE; - #define ACPI_MEMORY_MODE 0x01 #define ACPI_LOGICAL_ADDRESSING 0x00 #define ACPI_PHYSICAL_ADDRESSING 0x01 @@ -630,15 +629,30 @@ ACPI_STATUS (*ACPI_PARSE_UPWARDS) ( #define ACPI_GET_OP_ARGS(a) ((a)->Flags & ACPI_OP_ARGS_MASK) #define ACPI_GET_OP_TYPE(a) ((a)->Flags & ACPI_OP_TYPE_MASK) +/* + * Flags byte: 0-4 (5 bits) = Opcode Class (0x001F + * 5 (1 bit) = Has arguments flag + * 6-7 (2 bits) = Reserved + */ +#define AML_NO_ARGS 0 +#define AML_HAS_ARGS 0x0020 +#define AML_NSOBJECT 0x0100 +#define AML_NSOPCODE 0x0200 +#define AML_NSNODE 0x0400 +#define AML_NAMED 0x0800 +#define AML_DEFER 0x1000 +#define AML_FIELD 0x2000 +#define AML_CREATE 0x4000 + /* * AML opcode, name, and argument layout */ typedef struct acpi_opcode_info { - UINT8 Flags; /* Opcode type, HasArgs flag */ UINT32 ParseArgs; /* Grammar/Parse time arguments */ UINT32 RuntimeArgs; /* Interpret time arguments */ + UINT16 Flags; /* Opcode type, HasArgs flag */ #ifdef _OPCODE_NAMES NATIVE_CHAR *Name; /* op name (debug only) */ @@ -918,7 +932,6 @@ typedef struct } ACPI_DEVICE_ID; - /***************************************************************************** * * Miscellaneous @@ -945,13 +958,20 @@ typedef struct dbmethodinfo } DB_METHOD_INFO; - /***************************************************************************** * * Debug * ****************************************************************************/ +typedef struct +{ + UINT32 ComponentId; + NATIVE_CHAR *ProcName; + NATIVE_CHAR *ModuleName; + +} ACPI_DEBUG_PRINT_INFO; + /* Entry for a memory allocation (debug only) */ @@ -984,7 +1004,6 @@ typedef struct AcpiDebugMemBlock } ACPI_DEBUG_MEM_BLOCK; - #define ACPI_MEM_LIST_GLOBAL 0 #define ACPI_MEM_LIST_NSNODE 1 @@ -1021,5 +1040,4 @@ typedef struct } ACPI_MEMORY_LIST; - #endif /* __ACLOCAL_H__ */ diff --git a/sys/contrib/dev/acpica/acmacros.h b/sys/contrib/dev/acpica/acmacros.h index 620a8d5..755bdb0 100644 --- a/sys/contrib/dev/acpica/acmacros.h +++ b/sys/contrib/dev/acpica/acmacros.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: acmacros.h - C macros for the entire subsystem. - * $Revision: 86 $ + * $Revision: 94 $ * *****************************************************************************/ @@ -320,7 +320,7 @@ #define ROUND_UP_TO(value,boundary) (((value) + ((boundary)-1)) / (boundary)) -/* +/* * Bitmask creation * Bit positions start at zero. * MASK_BITS_ABOVE creates a mask starting AT the position and above @@ -330,7 +330,6 @@ #define MASK_BITS_BELOW(position) (((UINT32)(-1)) << ((UINT32) (position))) - /* Macros for GAS addressing */ #ifndef _IA16 @@ -395,9 +394,9 @@ * Macros for the master AML opcode table */ #ifdef ACPI_DEBUG -#define OP_INFO_ENTRY(Flags,Name,PArgs,IArgs) {Flags,PArgs,IArgs,Name} +#define ACPI_OP(Name,PArgs,IArgs,Flags) {PArgs,IArgs,Flags,Name} #else -#define OP_INFO_ENTRY(Flags,Name,PArgs,IArgs) {Flags,PArgs,IArgs} +#define ACPI_OP(Name,PArgs,IArgs,Flags) {PArgs,IArgs,Flags} #endif #define ARG_TYPE_WIDTH 5 @@ -460,37 +459,33 @@ #ifdef ACPI_DEBUG -#define REPORT_INFO(fp) {_ReportInfo(_THIS_MODULE,__LINE__,_COMPONENT); \ +#define REPORT_INFO(fp) {AcpiUtReportInfo(_THIS_MODULE,__LINE__,_COMPONENT); \ AcpiOsPrintf PARAM_LIST(fp);} -#define REPORT_ERROR(fp) {_ReportError(_THIS_MODULE,__LINE__,_COMPONENT); \ +#define REPORT_ERROR(fp) {AcpiUtReportError(_THIS_MODULE,__LINE__,_COMPONENT); \ AcpiOsPrintf PARAM_LIST(fp);} -#define REPORT_WARNING(fp) {_ReportWarning(_THIS_MODULE,__LINE__,_COMPONENT); \ +#define REPORT_WARNING(fp) {AcpiUtReportWarning(_THIS_MODULE,__LINE__,_COMPONENT); \ AcpiOsPrintf PARAM_LIST(fp);} #else -#define REPORT_INFO(fp) {_ReportInfo("ACPI",__LINE__,_COMPONENT); \ +#define REPORT_INFO(fp) {AcpiUtReportInfo("ACPI",__LINE__,_COMPONENT); \ AcpiOsPrintf PARAM_LIST(fp);} -#define REPORT_ERROR(fp) {_ReportError("ACPI",__LINE__,_COMPONENT); \ +#define REPORT_ERROR(fp) {AcpiUtReportError("ACPI",__LINE__,_COMPONENT); \ AcpiOsPrintf PARAM_LIST(fp);} -#define REPORT_WARNING(fp) {_ReportWarning("ACPI",__LINE__,_COMPONENT); \ +#define REPORT_WARNING(fp) {AcpiUtReportWarning("ACPI",__LINE__,_COMPONENT); \ AcpiOsPrintf PARAM_LIST(fp);} #endif /* Error reporting. These versions pass thru the module and line# */ -#define _REPORT_INFO(a,b,c,fp) {_ReportInfo(a,b,c); \ +#define _REPORT_INFO(a,b,c,fp) {AcpiUtReportInfo(a,b,c); \ AcpiOsPrintf PARAM_LIST(fp);} -#define _REPORT_ERROR(a,b,c,fp) {_ReportError(a,b,c); \ +#define _REPORT_ERROR(a,b,c,fp) {AcpiUtReportError(a,b,c); \ AcpiOsPrintf PARAM_LIST(fp);} -#define _REPORT_WARNING(a,b,c,fp) {_ReportWarning(a,b,c); \ +#define _REPORT_WARNING(a,b,c,fp) {AcpiUtReportWarning(a,b,c); \ AcpiOsPrintf PARAM_LIST(fp);} -/* Buffer dump macros */ - -#define DUMP_BUFFER(a,b) AcpiUtDumpBuffer((UINT8 *)a,b,DB_BYTE_DISPLAY,_COMPONENT) - /* * Debug macros that are conditionally compiled */ @@ -505,15 +500,22 @@ * as a local string ("_ProcName) so that it can be also used by the function exit macros below. */ -#define PROC_NAME(a) char * _ProcName = a; -#define FUNCTION_TRACE(a) char * _ProcName = a;\ - FunctionTrace(_THIS_MODULE,__LINE__,_COMPONENT,a) -#define FUNCTION_TRACE_PTR(a,b) char * _ProcName = a;\ - FunctionTracePtr(_THIS_MODULE,__LINE__,_COMPONENT,a,(void *)b) -#define FUNCTION_TRACE_U32(a,b) char * _ProcName = a;\ - FunctionTraceU32(_THIS_MODULE,__LINE__,_COMPONENT,a,(UINT32)b) -#define FUNCTION_TRACE_STR(a,b) char * _ProcName = a;\ - FunctionTraceStr(_THIS_MODULE,__LINE__,_COMPONENT,a,(NATIVE_CHAR *)b) +#define PROC_NAME(a) ACPI_DEBUG_PRINT_INFO _Dbg; \ + _Dbg.ComponentId = _COMPONENT; \ + _Dbg.ProcName = a; \ + _Dbg.ModuleName = _THIS_MODULE; + +#define FUNCTION_TRACE(a) PROC_NAME(a)\ + AcpiUtTrace(__LINE__,&_Dbg) +#define FUNCTION_TRACE_PTR(a,b) PROC_NAME(a)\ + AcpiUtTracePtr(__LINE__,&_Dbg,(void *)b) +#define FUNCTION_TRACE_U32(a,b) PROC_NAME(a)\ + AcpiUtTraceU32(__LINE__,&_Dbg,(UINT32)b) +#define FUNCTION_TRACE_STR(a,b) PROC_NAME(a)\ + AcpiUtTraceStr(__LINE__,&_Dbg,(NATIVE_CHAR *)b) + +#define FUNCTION_ENTRY() AcpiUtTrackStackPtr() + /* * Function exit tracing. * WARNING: These macros include a return statement. This is usually considered @@ -521,10 +523,10 @@ * One of the FUNCTION_TRACE macros above must be used in conjunction with these macros * so that "_ProcName" is defined. */ -#define return_VOID {FunctionExit(_THIS_MODULE,__LINE__,_COMPONENT,_ProcName);return;} -#define return_ACPI_STATUS(s) {FunctionStatusExit(_THIS_MODULE,__LINE__,_COMPONENT,_ProcName,s);return(s);} -#define return_VALUE(s) {FunctionValueExit(_THIS_MODULE,__LINE__,_COMPONENT,_ProcName,s);return(s);} -#define return_PTR(s) {FunctionPtrExit(_THIS_MODULE,__LINE__,_COMPONENT,_ProcName,(UINT8 *)s);return(s);} +#define return_VOID {AcpiUtExit(__LINE__,&_Dbg);return;} +#define return_ACPI_STATUS(s) {AcpiUtStatusExit(__LINE__,&_Dbg,s);return(s);} +#define return_VALUE(s) {AcpiUtValueExit(__LINE__,&_Dbg,s);return(s);} +#define return_PTR(s) {AcpiUtPtrExit(__LINE__,&_Dbg,(UINT8 *)s);return(s);} /* Conditional execution */ @@ -548,6 +550,7 @@ #define DUMP_TABLES(a,b) AcpiNsDumpTables(a,b) #define DUMP_PATHNAME(a,b,c,d) AcpiNsDumpPathname(a,b,c,d) #define DUMP_RESOURCE_LIST(a) AcpiRsDumpResourceList(a) +#define DUMP_BUFFER(a,b) AcpiUtDumpBuffer((UINT8 *)a,b,DB_BYTE_DISPLAY,_COMPONENT) #define BREAK_MSG(a) AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT,(a)) @@ -595,12 +598,14 @@ #define FUNCTION_EXIT #define FUNCTION_STATUS_EXIT(s) #define FUNCTION_VALUE_EXIT(s) +#define FUNCTION_ENTRY() #define DUMP_STACK_ENTRY(a) #define DUMP_OPERANDS(a,b,c,d,e) #define DUMP_ENTRY(a,b) #define DUMP_TABLES(a,b) #define DUMP_PATHNAME(a,b,c,d) #define DUMP_RESOURCE_LIST(a) +#define DUMP_BUFFER(a,b) #define ACPI_DEBUG_PRINT(pl) #define ACPI_DEBUG_PRINT_RAW(pl) #define BREAK_MSG(a) @@ -636,19 +641,15 @@ #ifdef ACPI_DEBUG - /* * 1) Set name to blanks * 2) Copy the object name */ - #define ADD_OBJECT_NAME(a,b) MEMSET (a->Common.Name, ' ', sizeof (a->Common.Name));\ STRNCPY (a->Common.Name, AcpiGbl_NsTypeNames[b], sizeof (a->Common.Name)) - #else #define ADD_OBJECT_NAME(a,b) - #endif @@ -678,4 +679,6 @@ #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ +#define ACPI_GET_STACK_POINTER _asm {mov eax, ebx} + #endif /* ACMACROS_H */ diff --git a/sys/contrib/dev/acpica/acoutput.h b/sys/contrib/dev/acpica/acoutput.h index 48cf7bd..0bb067a 100644 --- a/sys/contrib/dev/acpica/acoutput.h +++ b/sys/contrib/dev/acpica/acoutput.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: acoutput.h -- debug output - * $Revision: 81 $ + * $Revision: 84 $ * *****************************************************************************/ @@ -170,37 +170,44 @@ #define ACPI_LV_ALL_EXCEPTIONS 0x0000003F -/* Trace level -- also used in the global "DebugLevel" */ +/* Trace verbosity level 1 [Standard Trace Level] */ + +#define ACPI_LV_PARSE 0x00000040 +#define ACPI_LV_LOAD 0x00000080 +#define ACPI_LV_DISPATCH 0x00000100 +#define ACPI_LV_EXEC 0x00000200 +#define ACPI_LV_NAMES 0x00000400 +#define ACPI_LV_OPREGION 0x00000800 +#define ACPI_LV_BFIELD 0x00001000 +#define ACPI_LV_TABLES 0x00002000 +#define ACPI_LV_VALUES 0x00004000 +#define ACPI_LV_OBJECTS 0x00008000 +#define ACPI_LV_RESOURCES 0x00010000 +#define ACPI_LV_USER_REQUESTS 0x00020000 +#define ACPI_LV_PACKAGE 0x00040000 +#define ACPI_LV_INIT 0x00080000 +#define ACPI_LV_VERBOSITY1 0x000FFF40 | ACPI_LV_ALL_EXCEPTIONS + +/* Trace verbosity level 2 [Function tracing and memory allocation] */ -#define ACPI_LV_THREADS 0x00000080 -#define ACPI_LV_PARSE 0x00000100 -#define ACPI_LV_DISPATCH 0x00000200 -#define ACPI_LV_LOAD 0x00000400 -#define ACPI_LV_EXEC 0x00000800 -#define ACPI_LV_NAMES 0x00001000 -#define ACPI_LV_OPREGION 0x00002000 -#define ACPI_LV_BFIELD 0x00004000 -#define ACPI_LV_TRASH 0x00008000 -#define ACPI_LV_TABLES 0x00010000 -#define ACPI_LV_FUNCTIONS 0x00020000 -#define ACPI_LV_VALUES 0x00040000 -#define ACPI_LV_OBJECTS 0x00080000 #define ACPI_LV_ALLOCATIONS 0x00100000 -#define ACPI_LV_RESOURCES 0x00200000 -#define ACPI_LV_IO 0x00400000 -#define ACPI_LV_INTERRUPTS 0x00800000 -#define ACPI_LV_USER_REQUESTS 0x01000000 -#define ACPI_LV_PACKAGE 0x02000000 -#define ACPI_LV_MUTEX 0x04000000 -#define ACPI_LV_INIT 0x08000000 -#define ACPI_LV_ALL 0x0FFFFF80 +#define ACPI_LV_FUNCTIONS 0x00200000 +#define ACPI_LV_VERBOSITY2 0x00300000 | ACPI_LV_VERBOSITY1 +#define ACPI_LV_ALL ACPI_LV_VERBOSITY2 + +/* Trace verbosity level 3 [Threading, I/O, and Interrupts] */ +#define ACPI_LV_MUTEX 0x01000000 +#define ACPI_LV_THREADS 0x02000000 +#define ACPI_LV_IO 0x04000000 +#define ACPI_LV_INTERRUPTS 0x08000000 +#define ACPI_LV_VERBOSITY3 0x0F000000 | ACPI_LV_VERBOSITY2 /* * Debug level macros that are used in the DEBUG_PRINT macros */ -#define ACPI_DEBUG_LEVEL(val) val,_COMPONENT,_ProcName,_THIS_MODULE,__LINE__ +#define ACPI_DEBUG_LEVEL(dl) dl,__LINE__,&_Dbg /* Exception level -- used in the global "DebugLevel" */ @@ -223,7 +230,6 @@ #define ACPI_DB_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_NAMES) #define ACPI_DB_OPREGION ACPI_DEBUG_LEVEL (ACPI_LV_OPREGION) #define ACPI_DB_BFIELD ACPI_DEBUG_LEVEL (ACPI_LV_BFIELD) -#define ACPI_DB_TRASH ACPI_DEBUG_LEVEL (ACPI_LV_TRASH) #define ACPI_DB_TABLES ACPI_DEBUG_LEVEL (ACPI_LV_TABLES) #define ACPI_DB_FUNCTIONS ACPI_DEBUG_LEVEL (ACPI_LV_FUNCTIONS) #define ACPI_DB_VALUES ACPI_DEBUG_LEVEL (ACPI_LV_VALUES) diff --git a/sys/contrib/dev/acpica/acparser.h b/sys/contrib/dev/acpica/acparser.h index 3089054..48f6fdd 100644 --- a/sys/contrib/dev/acpica/acparser.h +++ b/sys/contrib/dev/acpica/acparser.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: acparser.h - AML Parser subcomponent prototypes and defines - * $Revision: 49 $ + * $Revision: 51 $ * *****************************************************************************/ @@ -152,15 +152,6 @@ AcpiPsxExecute ( ACPI_OPERAND_OBJECT **Params, ACPI_OPERAND_OBJECT **ReturnObjDesc); - -BOOLEAN -AcpiPsIsNamespaceObjectOp ( - UINT16 Opcode); -BOOLEAN -AcpiPsIsNamespaceOp ( - UINT16 Opcode); - - /****************************************************************************** * * Parser interfaces @@ -208,7 +199,7 @@ AcpiPsGetNextArg ( /* psopcode - AML Opcode information */ -ACPI_OPCODE_INFO * +const ACPI_OPCODE_INFO * AcpiPsGetOpcodeInfo ( UINT16 Opcode); @@ -377,34 +368,6 @@ BOOLEAN AcpiPsIsPrefixChar ( UINT32 c); -BOOLEAN -AcpiPsIsNamedOp ( - UINT16 opcode); - -BOOLEAN -AcpiPsIsNodeOp ( - UINT16 opcode); - -BOOLEAN -AcpiPsIsDeferredOp ( - UINT16 opcode); - -BOOLEAN -AcpiPsIsBytelistOp( - UINT16 opcode); - -BOOLEAN -AcpiPsIsFieldOp( - UINT16 opcode); - -BOOLEAN -AcpiPsIsCreateFieldOp ( - UINT16 Opcode); - -ACPI_PARSE2_OBJECT* -AcpiPsToExtendedOp( - ACPI_PARSE_OBJECT *op); - UINT32 AcpiPsGetName( ACPI_PARSE_OBJECT *op); diff --git a/sys/contrib/dev/acpica/acstruct.h b/sys/contrib/dev/acpica/acstruct.h index b4947a7..d76bc2a 100644 --- a/sys/contrib/dev/acpica/acstruct.h +++ b/sys/contrib/dev/acpica/acstruct.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: acstruct.h - Internal structs - * $Revision: 3 $ + * $Revision: 5 $ * *****************************************************************************/ @@ -139,7 +139,7 @@ typedef struct acpi_walk_state { - UINT8 DataType; /* To differentiate various internal objs */\ + UINT8 DataType; /* To differentiate various internal objs MUST BE FIRST!*/\ ACPI_OWNER_ID OwnerId; /* Owner of objects created during the walk */ BOOLEAN LastPredicate; /* Result of last predicate */ UINT8 NextOpInfo; /* Info about NextOp */ @@ -159,7 +159,7 @@ typedef struct acpi_walk_state ACPI_GENERIC_STATE *ScopeInfo; /* Stack of nested scopes */ ACPI_PARSE_STATE *ParserState; /* Current state of parser */ UINT8 *AmlLastWhile; - ACPI_OPCODE_INFO *OpInfo; /* Info on current opcode */ + const ACPI_OPCODE_INFO *OpInfo; /* Info on current opcode */ ACPI_PARSE_DOWNWARDS DescendingCallback; ACPI_PARSE_UPWARDS AscendingCallback; diff --git a/sys/contrib/dev/acpica/actypes.h b/sys/contrib/dev/acpica/actypes.h index aeb2742..2375901 100644 --- a/sys/contrib/dev/acpica/actypes.h +++ b/sys/contrib/dev/acpica/actypes.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: actypes.h - Common data types for the entire ACPI subsystem - * $Revision: 186 $ + * $Revision: 187 $ * *****************************************************************************/ @@ -827,6 +827,11 @@ typedef struct } ACPI_MEM_SPACE_CONTEXT; +/* Sleep states */ + +#define ACPI_NUM_SLEEP_STATES 7 + + /* * Definitions for Resource Attributes */ diff --git a/sys/contrib/dev/acpica/acutils.h b/sys/contrib/dev/acpica/acutils.h index 23498fd..4e9add6 100644 --- a/sys/contrib/dev/acpica/acutils.h +++ b/sys/contrib/dev/acpica/acutils.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures - * $Revision: 108 $ + * $Revision: 112 $ * *****************************************************************************/ @@ -345,102 +345,79 @@ AcpiUtUpdateObjectReference ( ACPI_OPERAND_OBJECT *Object, UINT16 Action); -ACPI_OPERAND_OBJECT * -_UtCreateInternalObject ( - NATIVE_CHAR *ModuleName, - UINT32 LineNumber, - UINT32 ComponentId, - ACPI_OBJECT_TYPE8 Type); - /* * UtDebug - Debug interfaces */ -UINT32 -GetDebugLevel ( +void +AcpiUtInitStackPtrTrace ( void); void -SetDebugLevel ( - UINT32 level); +AcpiUtTrackStackPtr ( + void); void -FunctionTrace ( - NATIVE_CHAR *ModuleName, +AcpiUtTrace ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName); + ACPI_DEBUG_PRINT_INFO *DbgInfo); void -FunctionTracePtr ( - NATIVE_CHAR *ModuleName, +AcpiUtTracePtr ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, void *Pointer); void -FunctionTraceU32 ( - NATIVE_CHAR *ModuleName, +AcpiUtTraceU32 ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, UINT32 Integer); void -FunctionTraceStr ( - NATIVE_CHAR *ModuleName, +AcpiUtTraceStr ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, NATIVE_CHAR *String); void -FunctionExit ( - NATIVE_CHAR *ModuleName, +AcpiUtExit ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName); + ACPI_DEBUG_PRINT_INFO *DbgInfo); void -FunctionStatusExit ( - NATIVE_CHAR *ModuleName, +AcpiUtStatusExit ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, ACPI_STATUS Status); void -FunctionValueExit ( - NATIVE_CHAR *ModuleName, +AcpiUtValueExit ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, ACPI_INTEGER Value); void -FunctionPtrExit ( - NATIVE_CHAR *ModuleName, +AcpiUtPtrExit ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, UINT8 *Ptr); void -_ReportInfo ( +AcpiUtReportInfo ( NATIVE_CHAR *ModuleName, UINT32 LineNumber, UINT32 ComponentId); void -_ReportError ( +AcpiUtReportError ( NATIVE_CHAR *ModuleName, UINT32 LineNumber, UINT32 ComponentId); void -_ReportWarning ( +AcpiUtReportWarning ( NATIVE_CHAR *ModuleName, UINT32 LineNumber, UINT32 ComponentId); @@ -455,23 +432,20 @@ AcpiUtDumpBuffer ( void AcpiUtDebugPrint ( UINT32 RequestedDebugLevel, - UINT32 ComponentId, - NATIVE_CHAR *ModuleName, - NATIVE_CHAR *ProcName, UINT32 LineNumber, + ACPI_DEBUG_PRINT_INFO *DbgInfo, char *Format, ...); void AcpiUtDebugPrintRaw ( UINT32 RequestedDebugLevel, - UINT32 ComponentId, - NATIVE_CHAR *ModuleName, - NATIVE_CHAR *ProcName, UINT32 LineNumber, + ACPI_DEBUG_PRINT_INFO *DbgInfo, char *Format, ...); + /* * UtDelete - Object deletion */ @@ -563,14 +537,21 @@ AcpiUtReleaseMutex ( * UtObject - internal object create/delete/cache routines */ +ACPI_OPERAND_OBJECT * +AcpiUtCreateInternalObjectDbg ( + NATIVE_CHAR *ModuleName, + UINT32 LineNumber, + UINT32 ComponentId, + ACPI_OBJECT_TYPE8 Type); + void * -_UtAllocateObjectDesc ( +AcpiUtAllocateObjectDescDbg ( NATIVE_CHAR *ModuleName, UINT32 LineNumber, UINT32 ComponentId); -#define AcpiUtCreateInternalObject(t) _UtCreateInternalObject(_THIS_MODULE,__LINE__,_COMPONENT,t) -#define AcpiUtAllocateObjectDesc() _UtAllocateObjectDesc(_THIS_MODULE,__LINE__,_COMPONENT) +#define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_THIS_MODULE,__LINE__,_COMPONENT,t) +#define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_THIS_MODULE,__LINE__,_COMPONENT) void AcpiUtDeleteObjectDesc ( @@ -759,5 +740,4 @@ AcpiUtDumpCurrentAllocations ( #endif - #endif /* _ACUTILS_H */ diff --git a/sys/contrib/dev/acpica/dbcmds.c b/sys/contrib/dev/acpica/dbcmds.c index b729ae2..fa77b56 100644 --- a/sys/contrib/dev/acpica/dbcmds.c +++ b/sys/contrib/dev/acpica/dbcmds.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dbcmds - debug commands and output routines - * $Revision: 61 $ + * $Revision: 65 $ * ******************************************************************************/ @@ -138,7 +138,7 @@ * These object types map directly to the ACPI_TYPES */ -ARGUMENT_INFO AcpiDbObjectTypes [] = +ARGUMENT_INFO AcpiDbObjectTypes [] = { {"ANY"}, {"NUMBERS"}, @@ -326,7 +326,7 @@ AcpiDbUnloadAcpiTable ( for (i = 0; i < NUM_ACPI_TABLES; i++) { - if (!STRNCMP (TableArg, AcpiGbl_AcpiTableData[i].Signature, + if (!STRNCMP (TableArg, AcpiGbl_AcpiTableData[i].Signature, AcpiGbl_AcpiTableData[i].SigLength)) { /* Found the table, unload it */ @@ -338,7 +338,7 @@ AcpiDbUnloadAcpiTable ( } else { - AcpiOsPrintf ("%s, while unloading [%s]\n", + AcpiOsPrintf ("%s, while unloading [%s]\n", AcpiFormatException (Status), TableArg); } @@ -984,7 +984,7 @@ AcpiDbSetScope ( if (!Name || Name[0] == 0) { - AcpiOsPrintf ("Current scope: %s\n", ScopeBuf); + AcpiOsPrintf ("Current scope: %s\n", AcpiGbl_DbScopeBuf); return; } @@ -994,17 +994,17 @@ AcpiDbSetScope ( if (Name[0] == '\\') { - STRCPY (ScopeBuf, Name); - STRCAT (ScopeBuf, "\\"); + STRCPY (AcpiGbl_DbScopeBuf, Name); + STRCAT (AcpiGbl_DbScopeBuf, "\\"); } else { - STRCAT (ScopeBuf, Name); - STRCAT (ScopeBuf, "\\"); + STRCAT (AcpiGbl_DbScopeBuf, Name); + STRCAT (AcpiGbl_DbScopeBuf, "\\"); } - AcpiOsPrintf ("New scope: %s\n", ScopeBuf); + AcpiOsPrintf ("New scope: %s\n", AcpiGbl_DbScopeBuf); } @@ -1038,8 +1038,9 @@ AcpiDbDisplayResources ( /* Prepare for a return object of arbitrary size */ - ReturnObj.Pointer = Buffer; - ReturnObj.Length = BUFFER_SIZE; + ReturnObj.Pointer = AcpiGbl_DbBuffer; + ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE; + /* _PRT */ @@ -1049,54 +1050,61 @@ AcpiDbDisplayResources ( if (ACPI_FAILURE (Status)) { AcpiOsPrintf ("Could not obtain _PRT: %s\n", AcpiFormatException (Status)); - goto GoCRS; + goto GetCrs; } - ReturnObj.Pointer = Buffer; - ReturnObj.Length = BUFFER_SIZE; + ReturnObj.Pointer = AcpiGbl_DbBuffer; + ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE; Status = AcpiGetIrqRoutingTable (ObjDesc, &ReturnObj); if (ACPI_FAILURE (Status)) { AcpiOsPrintf ("GetIrqRoutingTable failed: %s\n", AcpiFormatException (Status)); - goto GoCRS; } + else + { + AcpiRsDumpIrqList ((UINT8 *) AcpiGbl_DbBuffer); + } - AcpiRsDumpIrqList((UINT8 *)Buffer); /* _CRS */ -GoCRS: + +GetCrs: AcpiOsPrintf ("Evaluating _CRS\n"); - ReturnObj.Pointer = Buffer; - ReturnObj.Length = BUFFER_SIZE; + ReturnObj.Pointer = AcpiGbl_DbBuffer; + ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE; Status = AcpiEvaluateObject (ObjDesc, "_CRS", NULL, &ReturnObj); if (ACPI_FAILURE (Status)) { AcpiOsPrintf ("Could not obtain _CRS: %s\n", AcpiFormatException (Status)); - goto GoPRS; + goto GetPrs; } - ReturnObj.Pointer = Buffer; - ReturnObj.Length = BUFFER_SIZE; + ReturnObj.Pointer = AcpiGbl_DbBuffer; + ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE; Status = AcpiGetCurrentResources (ObjDesc, &ReturnObj); if (ACPI_FAILURE (Status)) { AcpiOsPrintf ("AcpiGetCurrentResources failed: %s\n", AcpiFormatException (Status)); - goto GoPRS; } - AcpiRsDumpResourceList ((ACPI_RESOURCE *) Buffer); + else + { + AcpiRsDumpResourceList ((ACPI_RESOURCE *) AcpiGbl_DbBuffer); + } + /* _PRS */ -GoPRS: + +GetPrs: AcpiOsPrintf ("Evaluating _PRS\n"); - ReturnObj.Pointer = Buffer; - ReturnObj.Length = BUFFER_SIZE; + ReturnObj.Pointer = AcpiGbl_DbBuffer; + ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE; Status = AcpiEvaluateObject (ObjDesc, "_PRS", NULL, &ReturnObj); if (ACPI_FAILURE (Status)) @@ -1105,17 +1113,19 @@ GoPRS: goto Cleanup; } - ReturnObj.Pointer = Buffer; - ReturnObj.Length = BUFFER_SIZE; + ReturnObj.Pointer = AcpiGbl_DbBuffer; + ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE; Status = AcpiGetPossibleResources (ObjDesc, &ReturnObj); if (ACPI_FAILURE (Status)) { AcpiOsPrintf ("AcpiGetPossibleResources failed: %s\n", AcpiFormatException (Status)); - goto Cleanup; } - AcpiRsDumpResourceList ((ACPI_RESOURCE *) Buffer); + else + { + AcpiRsDumpResourceList ((ACPI_RESOURCE *) AcpiGbl_DbBuffer); + } Cleanup: diff --git a/sys/contrib/dev/acpica/dbdisasm.c b/sys/contrib/dev/acpica/dbdisasm.c index ccf68bf..0e07f53 100644 --- a/sys/contrib/dev/acpica/dbdisasm.c +++ b/sys/contrib/dev/acpica/dbdisasm.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dbdisasm - parser op tree display routines - * $Revision: 43 $ + * $Revision: 48 $ * ******************************************************************************/ @@ -135,7 +135,7 @@ #define DB_FULL_OP_INFO "%5.5X #%4.4X [%2.2d] " -NATIVE_CHAR *INDENT_STRING = "...."; +NATIVE_CHAR *AcpiGbl_DbDisasmIndent = "...."; /******************************************************************************* @@ -205,7 +205,6 @@ AcpiPsDisplayObjectPathname ( * (such as _OS_). Rather than worry about looking up all * the predefined names, just display the name as given */ - AcpiOsPrintf (" **** Path not found in parse tree"); } @@ -299,7 +298,7 @@ AcpiDbDisplayOp ( /* indentation */ DepthCount = 0; - if (!opt_verbose) + if (!AcpiGbl_DbOpt_verbose) { DepthCount++; } @@ -330,7 +329,7 @@ AcpiDbDisplayOp ( VERBOSE_PRINT ((DB_NO_OP_INFO, LastDepth)); for (i = 0; i < LastDepth; i++) { - AcpiOsPrintf ("%s", INDENT_STRING); + AcpiOsPrintf ("%s", AcpiGbl_DbDisasmIndent); } if (AcpiDbBlockType (Op) == BLOCK_PAREN) @@ -352,7 +351,7 @@ AcpiDbDisplayOp ( VERBOSE_PRINT ((DB_NO_OP_INFO, LastDepth - j)); for (i = 0; i < (LastDepth - j - 1); i++) { - AcpiOsPrintf ("%s", INDENT_STRING); + AcpiOsPrintf ("%s", AcpiGbl_DbDisasmIndent); } if (AcpiDbBlockType (Op) == BLOCK_PAREN) @@ -375,7 +374,7 @@ AcpiDbDisplayOp ( for (i = 0; i < DepthCount; i++) { - AcpiOsPrintf ("%s", INDENT_STRING); + AcpiOsPrintf ("%s", AcpiGbl_DbDisasmIndent); } @@ -387,7 +386,7 @@ AcpiDbDisplayOp ( if ((Op->Opcode == AML_INT_NAMEPATH_OP && Op->Value.Name) && (Op->Parent) && - (opt_verbose)) + (AcpiGbl_DbOpt_verbose)) { AcpiPsDisplayObjectPathname (Op); } @@ -414,7 +413,7 @@ AcpiDbDisplayOp ( VERBOSE_PRINT ((DB_NO_OP_INFO, LastDepth - i)); for (j = 0; j < DepthCount; j++) { - AcpiOsPrintf ("%s", INDENT_STRING); + AcpiOsPrintf ("%s", AcpiGbl_DbDisasmIndent); } AcpiOsPrintf ("}\n"); DepthCount--; @@ -522,17 +521,19 @@ AcpiDbDisplayPath ( UINT32 Name; BOOLEAN DoDot = FALSE; ACPI_PARSE_OBJECT *NamePath; + const ACPI_OPCODE_INFO *OpInfo; /* We are only interested in named objects */ - if (!AcpiPsIsNodeOp (Op->Opcode)) + OpInfo = AcpiPsGetOpcodeInfo (Op->Opcode); + if (!(OpInfo->Flags & AML_NSNODE)) { return; } - if (AcpiPsIsCreateFieldOp (Op->Opcode)) + if (OpInfo->Flags & AML_CREATE) { /* Field creation - check for a fully qualified namepath */ @@ -573,42 +574,46 @@ AcpiDbDisplayPath ( Search = Search->Parent; } - if (Prev && !AcpiPsIsFieldOp (Search->Opcode)) + if (Prev) { - /* below root scope, append scope name */ - - if (DoDot) + OpInfo = AcpiPsGetOpcodeInfo (Search->Opcode); + if (!(OpInfo->Flags & AML_FIELD)) { - /* append dot */ - - AcpiOsPrintf ("."); - } + /* below root scope, append scope name */ - if (AcpiPsIsCreateFieldOp (Search->Opcode)) - { - if (Op->Opcode == AML_CREATE_FIELD_OP) + if (DoDot) { - NamePath = AcpiPsGetArg (Op, 3); + /* append dot */ + + AcpiOsPrintf ("."); } - else + + if (OpInfo->Flags & AML_CREATE) { - NamePath = AcpiPsGetArg (Op, 2); + if (Op->Opcode == AML_CREATE_FIELD_OP) + { + NamePath = AcpiPsGetArg (Op, 3); + } + else + { + NamePath = AcpiPsGetArg (Op, 2); + } + + if ((NamePath) && + (NamePath->Value.String)) + { + AcpiOsPrintf ("%4.4s", NamePath->Value.String); + } } - if ((NamePath) && - (NamePath->Value.String)) + else { - AcpiOsPrintf ("%4.4s", NamePath->Value.String); + Name = AcpiPsGetName (Search); + AcpiOsPrintf ("%4.4s", &Name); } - } - else - { - Name = AcpiPsGetName (Search); - AcpiOsPrintf ("%4.4s", &Name); + DoDot = TRUE; } - - DoDot = TRUE; } Prev = Search; @@ -639,7 +644,7 @@ AcpiDbDisplayOpcode ( UINT8 *ByteData; UINT32 ByteCount; UINT32 i; - ACPI_OPCODE_INFO *Opc = NULL; + const ACPI_OPCODE_INFO *OpInfo = NULL; UINT32 Name; @@ -656,7 +661,7 @@ AcpiDbDisplayOpcode ( case AML_BYTE_OP: - if (opt_verbose) + if (AcpiGbl_DbOpt_verbose) { AcpiOsPrintf ("(UINT8) 0x%2.2X", Op->Value.Integer8); } @@ -671,7 +676,7 @@ AcpiDbDisplayOpcode ( case AML_WORD_OP: - if (opt_verbose) + if (AcpiGbl_DbOpt_verbose) { AcpiOsPrintf ("(UINT16) 0x%4.4X", Op->Value.Integer16); } @@ -686,7 +691,7 @@ AcpiDbDisplayOpcode ( case AML_DWORD_OP: - if (opt_verbose) + if (AcpiGbl_DbOpt_verbose) { AcpiOsPrintf ("(UINT32) 0x%8.8X", Op->Value.Integer32); } @@ -701,15 +706,15 @@ AcpiDbDisplayOpcode ( case AML_QWORD_OP: - if (opt_verbose) + if (AcpiGbl_DbOpt_verbose) { - AcpiOsPrintf ("(UINT64) 0x%8.8X%8.8X", Op->Value.Integer64.Hi, + AcpiOsPrintf ("(UINT64) 0x%8.8X%8.8X", Op->Value.Integer64.Hi, Op->Value.Integer64.Lo); } else { - AcpiOsPrintf ("0x%8.8X%8.8X", Op->Value.Integer64.Hi, + AcpiOsPrintf ("0x%8.8X%8.8X", Op->Value.Integer64.Hi, Op->Value.Integer64.Lo); } @@ -772,7 +777,7 @@ AcpiDbDisplayOpcode ( case AML_INT_BYTELIST_OP: - if (opt_verbose) + if (AcpiGbl_DbOpt_verbose) { AcpiOsPrintf ("ByteList (Length 0x%8.8X) ", Op->Value.Integer32); } @@ -797,8 +802,8 @@ AcpiDbDisplayOpcode ( /* Just get the opcode name and print it */ - Opc = AcpiPsGetOpcodeInfo (Op->Opcode); - AcpiOsPrintf ("%s", Opc->Name); + OpInfo = AcpiPsGetOpcodeInfo (Op->Opcode); + AcpiOsPrintf ("%s", OpInfo->Name); #ifndef PARSER_ONLY @@ -813,8 +818,7 @@ AcpiDbDisplayOpcode ( break; } - - if (!Opc) + if (!OpInfo) { /* If there is another element in the list, add a comma */ @@ -824,17 +828,16 @@ AcpiDbDisplayOpcode ( } } - /* * If this is a named opcode, print the associated name value */ - - if (Op && AcpiPsIsNamedOp (Op->Opcode)) + OpInfo = AcpiPsGetOpcodeInfo (Op->Opcode); + if (Op && (OpInfo->Flags & AML_NAMED)) { Name = AcpiPsGetName (Op); AcpiOsPrintf (" %4.4s", &Name); - if (opt_verbose) + if (AcpiGbl_DbOpt_verbose) { AcpiOsPrintf (" (Path \\"); AcpiDbDisplayPath (Op); diff --git a/sys/contrib/dev/acpica/dbdisply.c b/sys/contrib/dev/acpica/dbdisply.c index 982a5c1..f6da783 100644 --- a/sys/contrib/dev/acpica/dbdisply.c +++ b/sys/contrib/dev/acpica/dbdisply.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dbdisply - debug display commands - * $Revision: 47 $ + * $Revision: 50 $ * ******************************************************************************/ @@ -191,7 +191,7 @@ void AcpiDbDumpParserDescriptor ( ACPI_PARSE_OBJECT *Op) { - ACPI_OPCODE_INFO *Info; + const ACPI_OPCODE_INFO *Info; Info = AcpiPsGetOpcodeInfo (Op->Opcode); @@ -413,7 +413,7 @@ AcpiDbDecodeInternalObject ( { case ACPI_TYPE_INTEGER: - AcpiOsPrintf (" %.8X%.8X", HIDWORD (ObjDesc->Integer.Value), + AcpiOsPrintf (" %.8X%.8X", HIDWORD (ObjDesc->Integer.Value), LODWORD (ObjDesc->Integer.Value)); break; @@ -425,7 +425,7 @@ AcpiDbDecodeInternalObject ( if (ObjDesc->String.Length > 24) { - AcpiOsPrintf ("..."); + AcpiOsPrintf ("..."); } else { @@ -597,7 +597,7 @@ AcpiDbDisplayMethodInfo ( ACPI_NAMESPACE_NODE *Node; ACPI_PARSE_OBJECT *RootOp; ACPI_PARSE_OBJECT *Op; - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; UINT32 NumOps = 0; UINT32 NumOperands = 0; UINT32 NumOperators = 0; @@ -898,7 +898,6 @@ AcpiDbDisplayResultObject ( * For now, only display if single stepping * however, this output is very useful in other contexts also */ - if (!AcpiGbl_CmSingleStep) { return; diff --git a/sys/contrib/dev/acpica/dbexec.c b/sys/contrib/dev/acpica/dbexec.c index 9a14b86..25cad77 100644 --- a/sys/contrib/dev/acpica/dbexec.c +++ b/sys/contrib/dev/acpica/dbexec.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dbexec - debugger control method execution - * $Revision: 29 $ + * $Revision: 34 $ * ******************************************************************************/ @@ -132,7 +132,7 @@ MODULE_NAME ("dbexec") -DB_METHOD_INFO Info; +DB_METHOD_INFO AcpiGbl_DbMethodInfo; /******************************************************************************* @@ -159,7 +159,7 @@ AcpiDbExecuteMethod ( UINT32 i; - if (OutputToFile && !AcpiDbgLevel) + if (AcpiGbl_DbOutputToFile && !AcpiDbgLevel) { AcpiOsPrintf ("Warning: debug output is not enabled!\n"); } @@ -195,8 +195,8 @@ AcpiDbExecuteMethod ( /* Prepare for a return object of arbitrary size */ - ReturnObj->Pointer = Buffer; - ReturnObj->Length = BUFFER_SIZE; + ReturnObj->Pointer = AcpiGbl_DbBuffer; + ReturnObj->Length = ACPI_DEBUG_BUFFER_SIZE; /* Do the actual method execution */ @@ -233,7 +233,7 @@ AcpiDbExecuteSetup ( if ((Info->Name[0] != '\\') && (Info->Name[0] != '/')) { - STRCAT (Info->Pathname, ScopeBuf); + STRCAT (Info->Pathname, AcpiGbl_DbScopeBuf); } STRCAT (Info->Pathname, Info->Name); @@ -277,12 +277,13 @@ AcpiDbGetOutstandingAllocations (void) UINT32 i; UINT32 Outstanding = 0; + #ifdef ACPI_DBG_TRACK_ALLOCATIONS for (i = ACPI_MEM_LIST_FIRST_CACHE_LIST; i < ACPI_NUM_MEM_LISTS; i++) { - Outstanding += (AcpiGbl_MemoryLists[i].TotalAllocated - - AcpiGbl_MemoryLists[i].TotalFreed - + Outstanding += (AcpiGbl_MemoryLists[i].TotalAllocated - + AcpiGbl_MemoryLists[i].TotalFreed - AcpiGbl_MemoryLists[i].CacheDepth); } #endif @@ -326,12 +327,12 @@ AcpiDbExecute ( PreviousAllocations = AcpiDbGetOutstandingAllocations (); #endif - Info.Name = Name; - Info.Args = Args; - Info.Flags = Flags; + AcpiGbl_DbMethodInfo.Name = Name; + AcpiGbl_DbMethodInfo.Args = Args; + AcpiGbl_DbMethodInfo.Flags = Flags; - AcpiDbExecuteSetup (&Info); - Status = AcpiDbExecuteMethod (&Info, &ReturnObj); + AcpiDbExecuteSetup (&AcpiGbl_DbMethodInfo); + Status = AcpiDbExecuteMethod (&AcpiGbl_DbMethodInfo, &ReturnObj); /* * Allow any handlers in separate threads to complete. @@ -357,8 +358,8 @@ AcpiDbExecute ( if (ACPI_FAILURE (Status)) { - AcpiOsPrintf ("Execution of %s failed with status %s\n", - Info.Pathname, AcpiFormatException (Status)); + AcpiOsPrintf ("Execution of %s failed with status %s\n", + AcpiGbl_DbMethodInfo.Pathname, AcpiFormatException (Status)); } else @@ -368,7 +369,7 @@ AcpiDbExecute ( if (ReturnObj.Length) { AcpiOsPrintf ("Execution of %s returned object %p Buflen %X\n", - Info.Pathname, ReturnObj.Pointer, ReturnObj.Length); + AcpiGbl_DbMethodInfo.Pathname, ReturnObj.Pointer, ReturnObj.Length); AcpiDbDumpObject (ReturnObj.Pointer, 1); } } @@ -414,7 +415,6 @@ AcpiDbMethodThread ( } } - /* Signal our completion */ AcpiOsSignalSemaphore (Info->ThreadGate, 1); @@ -471,13 +471,13 @@ AcpiDbCreateExecutionThreads ( /* Setup the context to be passed to each thread */ - Info.Name = MethodNameArg; - Info.Args = NULL; - Info.Flags = 0; - Info.NumLoops = NumLoops; - Info.ThreadGate = ThreadGate; + AcpiGbl_DbMethodInfo.Name = MethodNameArg; + AcpiGbl_DbMethodInfo.Args = NULL; + AcpiGbl_DbMethodInfo.Flags = 0; + AcpiGbl_DbMethodInfo.NumLoops = NumLoops; + AcpiGbl_DbMethodInfo.ThreadGate = ThreadGate; - AcpiDbExecuteSetup (&Info); + AcpiDbExecuteSetup (&AcpiGbl_DbMethodInfo); /* Create the threads */ @@ -486,7 +486,7 @@ AcpiDbCreateExecutionThreads ( for (i = 0; i < (NumThreads); i++) { - AcpiOsQueueForExecution (OSD_PRIORITY_MED, AcpiDbMethodThread, &Info); + AcpiOsQueueForExecution (OSD_PRIORITY_MED, AcpiDbMethodThread, &AcpiGbl_DbMethodInfo); } diff --git a/sys/contrib/dev/acpica/dbfileio.c b/sys/contrib/dev/acpica/dbfileio.c index d492f65..79e97c1 100644 --- a/sys/contrib/dev/acpica/dbfileio.c +++ b/sys/contrib/dev/acpica/dbfileio.c @@ -2,7 +2,7 @@ * * Module Name: dbfileio - Debugger file I/O commands. These can't usually * be used when running the debugger in Ring 0 (Kernel mode) - * $Revision: 44 $ + * $Revision: 47 $ * ******************************************************************************/ @@ -129,11 +129,9 @@ MODULE_NAME ("dbfileio") -ACPI_PARSE_OBJECT *root; - #ifdef ACPI_APPLICATION #include -FILE *DebugFile = NULL; +FILE *AcpiGbl_DebugFile = NULL; #endif @@ -201,12 +199,12 @@ AcpiDbCloseDebugFile ( #ifdef ACPI_APPLICATION - if (DebugFile) + if (AcpiGbl_DebugFile) { - fclose (DebugFile); - DebugFile = NULL; - OutputToFile = FALSE; - AcpiOsPrintf ("Debug output file %s closed\n", DebugFilename); + fclose (AcpiGbl_DebugFile); + AcpiGbl_DebugFile = NULL; + AcpiGbl_DbOutputToFile = FALSE; + AcpiOsPrintf ("Debug output file %s closed\n", AcpiGbl_DbDebugFilename); } #endif @@ -233,12 +231,12 @@ AcpiDbOpenDebugFile ( #ifdef ACPI_APPLICATION AcpiDbCloseDebugFile (); - DebugFile = fopen (Name, "w+"); - if (DebugFile) + AcpiGbl_DebugFile = fopen (Name, "w+"); + if (AcpiGbl_DebugFile) { AcpiOsPrintf ("Debug output file %s opened\n", Name); - STRCPY (DebugFilename, Name); - OutputToFile = TRUE; + STRCPY (AcpiGbl_DbDebugFilename, Name); + AcpiGbl_DbOutputToFile = TRUE; } else { @@ -314,7 +312,7 @@ AcpiDbLoadTable( *TablePtr = ACPI_MEM_ALLOCATE ((size_t) *TableLength); if (!*TablePtr) { - AcpiOsPrintf ("Could not allocate memory for ACPI table %4.4s (size=%X)\n", + AcpiOsPrintf ("Could not allocate memory for ACPI table %4.4s (size=%X)\n", TableHeader.Signature, TableHeader.Length); return (AE_NO_MEMORY); } diff --git a/sys/contrib/dev/acpica/dbhistry.c b/sys/contrib/dev/acpica/dbhistry.c index 8749d4f..147c6f5 100644 --- a/sys/contrib/dev/acpica/dbhistry.c +++ b/sys/contrib/dev/acpica/dbhistry.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: dbhistry - debugger HISTORY command - * $Revision: 18 $ + * $Revision: 19 $ * *****************************************************************************/ @@ -145,11 +145,11 @@ typedef struct HistoryInfo } HISTORY_INFO; -HISTORY_INFO HistoryBuffer[HISTORY_SIZE]; -UINT16 LoHistory = 0; -UINT16 NumHistory = 0; -UINT16 NextHistoryIndex = 0; -UINT32 NextCmdNum = 1; +HISTORY_INFO AcpiGbl_HistoryBuffer[HISTORY_SIZE]; +UINT16 AcpiGbl_LoHistory = 0; +UINT16 AcpiGbl_NumHistory = 0; +UINT16 AcpiGbl_NextHistoryIndex = 0; +UINT32 AcpiGbl_NextCmdNum = 1; /******************************************************************************* @@ -172,32 +172,33 @@ AcpiDbAddToHistory ( /* Put command into the next available slot */ - STRCPY (HistoryBuffer[NextHistoryIndex].Command, CommandLine); - HistoryBuffer[NextHistoryIndex].CmdNum = NextCmdNum; + STRCPY (AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command, CommandLine); + + AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].CmdNum = AcpiGbl_NextCmdNum; /* Adjust indexes */ - if ((NumHistory == HISTORY_SIZE) && - (NextHistoryIndex == LoHistory)) + if ((AcpiGbl_NumHistory == HISTORY_SIZE) && + (AcpiGbl_NextHistoryIndex == AcpiGbl_LoHistory)) { - LoHistory++; - if (LoHistory >= HISTORY_SIZE) + AcpiGbl_LoHistory++; + if (AcpiGbl_LoHistory >= HISTORY_SIZE) { - LoHistory = 0; + AcpiGbl_LoHistory = 0; } } - NextHistoryIndex++; - if (NextHistoryIndex >= HISTORY_SIZE) + AcpiGbl_NextHistoryIndex++; + if (AcpiGbl_NextHistoryIndex >= HISTORY_SIZE) { - NextHistoryIndex = 0; + AcpiGbl_NextHistoryIndex = 0; } - NextCmdNum++; - if (NumHistory < HISTORY_SIZE) + AcpiGbl_NextCmdNum++; + if (AcpiGbl_NumHistory < HISTORY_SIZE) { - NumHistory++; + AcpiGbl_NumHistory++; } } @@ -222,13 +223,14 @@ AcpiDbDisplayHistory (void) UINT16 HistoryIndex; - HistoryIndex = LoHistory; + HistoryIndex = AcpiGbl_LoHistory; /* Dump entire history buffer */ - for (i = 0; i < NumHistory; i++) + for (i = 0; i < AcpiGbl_NumHistory; i++) { - AcpiOsPrintf ("%ld %s\n", HistoryBuffer[HistoryIndex].CmdNum, HistoryBuffer[HistoryIndex].Command); + AcpiOsPrintf ("%ld %s\n", AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum, + AcpiGbl_HistoryBuffer[HistoryIndex].Command); HistoryIndex++; if (HistoryIndex >= HISTORY_SIZE) @@ -263,7 +265,7 @@ AcpiDbGetFromHistory ( if (CommandNumArg == NULL) { - CmdNum = NextCmdNum - 1; + CmdNum = AcpiGbl_NextCmdNum - 1; } else @@ -274,14 +276,14 @@ AcpiDbGetFromHistory ( /* Search history buffer */ - HistoryIndex = LoHistory; - for (i = 0; i < NumHistory; i++) + HistoryIndex = AcpiGbl_LoHistory; + for (i = 0; i < AcpiGbl_NumHistory; i++) { - if (HistoryBuffer[HistoryIndex].CmdNum == CmdNum) + if (AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum == CmdNum) { /* Found the commnad, return it */ - return (HistoryBuffer[HistoryIndex].Command); + return (AcpiGbl_HistoryBuffer[HistoryIndex].Command); } diff --git a/sys/contrib/dev/acpica/dbinput.c b/sys/contrib/dev/acpica/dbinput.c index 576fb68..76b0f40 100644 --- a/sys/contrib/dev/acpica/dbinput.c +++ b/sys/contrib/dev/acpica/dbinput.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dbinput - user front-end to the AML debugger - * $Revision: 64 $ + * $Revision: 68 $ * ******************************************************************************/ @@ -133,29 +133,44 @@ * Globals that are specific to the debugger */ -NATIVE_CHAR LineBuf[80]; -NATIVE_CHAR ParsedBuf[80]; -NATIVE_CHAR ScopeBuf[40]; -NATIVE_CHAR DebugFilename[40]; -NATIVE_CHAR *Args[DB_MAX_ARGS]; -NATIVE_CHAR *Buffer; -NATIVE_CHAR *Filename = NULL; -BOOLEAN OutputToFile = FALSE; +NATIVE_CHAR AcpiGbl_DbLineBuf[80]; +NATIVE_CHAR AcpiGbl_DbParsedBuf[80]; +NATIVE_CHAR AcpiGbl_DbScopeBuf[40]; +NATIVE_CHAR AcpiGbl_DbDebugFilename[40]; +NATIVE_CHAR *AcpiGbl_DbArgs[DB_MAX_ARGS]; +NATIVE_CHAR *AcpiGbl_DbBuffer; +NATIVE_CHAR *AcpiGbl_DbFilename = NULL; +BOOLEAN AcpiGbl_DbOutputToFile = FALSE; -UINT32 AcpiGbl_DbDebugLevel = 0x0FFFFFFF; -UINT32 AcpiGbl_DbConsoleDebugLevel = NORMAL_DEFAULT | ACPI_LV_TABLES; -UINT8 AcpiGbl_DbOutputFlags = DB_CONSOLE_OUTPUT; +UINT32 AcpiGbl_DbDebugLevel = ACPI_LV_VERBOSITY2; +UINT32 AcpiGbl_DbConsoleDebugLevel = NORMAL_DEFAULT | ACPI_LV_TABLES; +UINT8 AcpiGbl_DbOutputFlags = DB_CONSOLE_OUTPUT; -BOOLEAN opt_tables = FALSE; -BOOLEAN opt_disasm = FALSE; -BOOLEAN opt_stats = FALSE; -BOOLEAN opt_parse_jit = FALSE; -BOOLEAN opt_verbose = TRUE; -BOOLEAN opt_ini_methods = TRUE; +BOOLEAN AcpiGbl_DbOpt_tables = FALSE; +BOOLEAN AcpiGbl_DbOpt_disasm = FALSE; +BOOLEAN AcpiGbl_DbOpt_stats = FALSE; +BOOLEAN AcpiGbl_DbOpt_parse_jit = FALSE; +BOOLEAN AcpiGbl_DbOpt_verbose = TRUE; +BOOLEAN AcpiGbl_DbOpt_ini_methods = TRUE; + +/* + * Statistic globals + */ +UINT16 AcpiGbl_ObjTypeCount[INTERNAL_TYPE_NODE_MAX+1]; +UINT16 AcpiGbl_NodeTypeCount[INTERNAL_TYPE_NODE_MAX+1]; +UINT16 AcpiGbl_ObjTypeCountMisc; +UINT16 AcpiGbl_NodeTypeCountMisc; +UINT32 AcpiGbl_NumNodes; +UINT32 AcpiGbl_NumObjects; +UINT32 AcpiGbl_SizeOfParseTree; +UINT32 AcpiGbl_SizeOfMethodTrees; +UINT32 AcpiGbl_SizeOfNodeEntries; +UINT32 AcpiGbl_SizeOfAcpiObjects; + /* * Top-level debugger commands. * @@ -216,7 +231,7 @@ enum AcpiExDebuggerCommands #define CMD_FIRST_VALID 2 -COMMAND_INFO Commands[] = +const COMMAND_INFO AcpiGbl_DbCommands[] = { {"", 0}, {"", 0}, @@ -470,14 +485,14 @@ AcpiDbGetLine ( NATIVE_CHAR *This; - STRCPY (ParsedBuf, InputBuffer); - STRUPR (ParsedBuf); + STRCPY (AcpiGbl_DbParsedBuf, InputBuffer); + STRUPR (AcpiGbl_DbParsedBuf); - This = ParsedBuf; + This = AcpiGbl_DbParsedBuf; for (i = 0; i < DB_MAX_ARGS; i++) { - Args[i] = AcpiDbGetNextToken (This, &Next); - if (!Args[i]) + AcpiGbl_DbArgs[i] = AcpiDbGetNextToken (This, &Next); + if (!AcpiGbl_DbArgs[i]) { break; } @@ -488,9 +503,9 @@ AcpiDbGetLine ( /* Uppercase the actual command */ - if (Args[0]) + if (AcpiGbl_DbArgs[0]) { - STRUPR (Args[0]); + STRUPR (AcpiGbl_DbArgs[0]); } Count = i; @@ -527,9 +542,9 @@ AcpiDbMatchCommand ( return (CMD_NULL); } - for (i = CMD_FIRST_VALID; Commands[i].Name; i++) + for (i = CMD_FIRST_VALID; AcpiGbl_DbCommands[i].Name; i++) { - if (STRSTR (Commands[i].Name, UserCommand) == Commands[i].Name) + if (STRSTR (AcpiGbl_DbCommands[i].Name, UserCommand) == AcpiGbl_DbCommands[i].Name) { return (i); } @@ -576,15 +591,15 @@ AcpiDbCommandDispatch ( } ParamCount = AcpiDbGetLine (InputBuffer); - CommandIndex = AcpiDbMatchCommand (Args[0]); + CommandIndex = AcpiDbMatchCommand (AcpiGbl_DbArgs[0]); Temp = 0; /* Verify that we have the minimum number of params */ - if (ParamCount < Commands[CommandIndex].MinArgs) + if (ParamCount < AcpiGbl_DbCommands[CommandIndex].MinArgs) { AcpiOsPrintf ("%d parameters entered, [%s] requires %d parameters\n", - ParamCount, Commands[CommandIndex].Name, Commands[CommandIndex].MinArgs); + ParamCount, AcpiGbl_DbCommands[CommandIndex].Name, AcpiGbl_DbCommands[CommandIndex].MinArgs); return (AE_CTRL_TRUE); } @@ -600,6 +615,7 @@ AcpiDbCommandDispatch ( break; case CMD_ALLOCATIONS: + #ifdef ACPI_DBG_TRACK_ALLOCATIONS AcpiUtDumpCurrentAllocations ((UINT32) -1, NULL); #endif @@ -611,7 +627,7 @@ AcpiDbCommandDispatch ( break; case CMD_BREAKPOINT: - AcpiDbSetMethodBreakpoint (Args[1], WalkState, Op); + AcpiDbSetMethodBreakpoint (AcpiGbl_DbArgs[1], WalkState, Op); break; case CMD_CALL: @@ -624,11 +640,11 @@ AcpiDbCommandDispatch ( break; case CMD_DEBUG: - AcpiDbExecute (Args[1], &Args[2], EX_SINGLE_STEP); + AcpiDbExecute (AcpiGbl_DbArgs[1], &AcpiGbl_DbArgs[2], EX_SINGLE_STEP); break; case CMD_DUMP: - AcpiDbDecodeAndDisplayObject (Args[1], Args[2]); + AcpiDbDecodeAndDisplayObject (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; case CMD_ENABLEACPI: @@ -645,11 +661,11 @@ AcpiDbCommandDispatch ( break; case CMD_EXECUTE: - AcpiDbExecute (Args[1], &Args[2], EX_NO_SINGLE_STEP); + AcpiDbExecute (AcpiGbl_DbArgs[1], &AcpiGbl_DbArgs[2], EX_NO_SINGLE_STEP); break; case CMD_FIND: - AcpiDbFindNameInNamespace (Args[1]); + AcpiDbFindNameInNamespace (AcpiGbl_DbArgs[1]); break; case CMD_GO: @@ -658,7 +674,7 @@ AcpiDbCommandDispatch ( case CMD_HELP: case CMD_HELP2: - AcpiDbDisplayHelp (Args[1]); + AcpiDbDisplayHelp (AcpiGbl_DbArgs[1]); break; case CMD_HISTORY: @@ -666,7 +682,7 @@ AcpiDbCommandDispatch ( break; case CMD_HISTORY_EXE: - CommandLine = AcpiDbGetFromHistory (Args[1]); + CommandLine = AcpiDbGetFromHistory (AcpiGbl_DbArgs[1]); if (!CommandLine) { return (AE_CTRL_TRUE); @@ -718,23 +734,23 @@ AcpiDbCommandDispatch ( else if (ParamCount == 2) { Temp = AcpiGbl_DbConsoleDebugLevel; - AcpiGbl_DbConsoleDebugLevel = STRTOUL (Args[1], NULL, 16); + AcpiGbl_DbConsoleDebugLevel = STRTOUL (AcpiGbl_DbArgs[1], NULL, 16); AcpiOsPrintf ("Debug Level for console output was %8.8lX, now %8.8lX\n", Temp, AcpiGbl_DbConsoleDebugLevel); } else { Temp = AcpiGbl_DbDebugLevel; - AcpiGbl_DbDebugLevel = STRTOUL (Args[1], NULL, 16); + AcpiGbl_DbDebugLevel = STRTOUL (AcpiGbl_DbArgs[1], NULL, 16); AcpiOsPrintf ("Debug Level for file output was %8.8lX, now %8.8lX\n", Temp, AcpiGbl_DbDebugLevel); } break; case CMD_LIST: - AcpiDbDisassembleAml (Args[1], Op); + AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op); break; case CMD_LOAD: - Status = AcpiDbLoadAcpiTable (Args[1]); + Status = AcpiDbLoadAcpiTable (AcpiGbl_DbArgs[1]); if (ACPI_FAILURE (Status)) { return (Status); @@ -750,40 +766,40 @@ AcpiDbCommandDispatch ( break; case CMD_METHODS: - AcpiDbDisplayObjects ("METHOD", Args[1]); + AcpiDbDisplayObjects ("METHOD", AcpiGbl_DbArgs[1]); break; case CMD_NAMESPACE: - AcpiDbDumpNamespace (Args[1], Args[2]); + AcpiDbDumpNamespace (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; case CMD_NOTIFY: - Temp = STRTOUL (Args[2], NULL, 0); - AcpiDbSendNotify (Args[1], Temp); + Temp = STRTOUL (AcpiGbl_DbArgs[2], NULL, 0); + AcpiDbSendNotify (AcpiGbl_DbArgs[1], Temp); break; case CMD_OBJECT: - AcpiDbDisplayObjects (STRUPR (Args[1]), Args[2]); + AcpiDbDisplayObjects (STRUPR (AcpiGbl_DbArgs[1]), AcpiGbl_DbArgs[2]); break; case CMD_OPEN: - AcpiDbOpenDebugFile (Args[1]); + AcpiDbOpenDebugFile (AcpiGbl_DbArgs[1]); break; case CMD_OWNER: - AcpiDbDumpNamespaceByOwner (Args[1], Args[2]); + AcpiDbDumpNamespaceByOwner (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; case CMD_PREFIX: - AcpiDbSetScope (Args[1]); + AcpiDbSetScope (AcpiGbl_DbArgs[1]); break; case CMD_REFERENCES: - AcpiDbFindReferences (Args[1]); + AcpiDbFindReferences (AcpiGbl_DbArgs[1]); break; case CMD_RESOURCES: - AcpiDbDisplayResources (Args[1]); + AcpiDbDisplayResources (AcpiGbl_DbArgs[1]); break; case CMD_RESULTS: @@ -791,11 +807,11 @@ AcpiDbCommandDispatch ( break; case CMD_SET: - AcpiDbSetMethodData (Args[1], Args[2], Args[3]); + AcpiDbSetMethodData (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2], AcpiGbl_DbArgs[3]); break; case CMD_STATS: - AcpiDbDisplayStatistics (Args[1]); + AcpiDbDisplayStatistics (AcpiGbl_DbArgs[1]); break; case CMD_STOP: @@ -803,7 +819,7 @@ AcpiDbCommandDispatch ( break; case CMD_TABLES: - AcpiDbDisplayTableInfo (Args[1]); + AcpiDbDisplayTableInfo (AcpiGbl_DbArgs[1]); break; case CMD_TERMINATE: @@ -816,7 +832,7 @@ AcpiDbCommandDispatch ( break; case CMD_THREADS: - AcpiDbCreateExecutionThreads (Args[1], Args[2], Args[3]); + AcpiDbCreateExecutionThreads (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2], AcpiGbl_DbArgs[3]); break; case CMD_TREE: @@ -824,7 +840,7 @@ AcpiDbCommandDispatch ( break; case CMD_UNLOAD: - AcpiDbUnloadAcpiTable (Args[1], Args[2]); + AcpiDbUnloadAcpiTable (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; case CMD_EXIT: @@ -835,7 +851,7 @@ AcpiDbCommandDispatch ( return (AE_CTRL_TERMINATE); } - if (!OutputToFile) + if (!AcpiGbl_DbOutputToFile) { AcpiDbgLevel = DEBUG_DEFAULT; } @@ -888,7 +904,7 @@ AcpiDbExecuteThread ( AcpiGbl_StepToNextCall = FALSE; AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY); - Status = AcpiDbCommandDispatch (LineBuf, NULL, NULL); + Status = AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, NULL, NULL); AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_COMPLETE); } } @@ -917,7 +933,7 @@ AcpiDbSingleThread ( AcpiGbl_MethodExecuting = FALSE; AcpiGbl_StepToNextCall = FALSE; - Status = AcpiDbCommandDispatch (LineBuf, NULL, NULL); + Status = AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, NULL, NULL); } @@ -964,7 +980,7 @@ AcpiDbUserCommands ( /* Get the user input line */ - AcpiOsGetLine (LineBuf); + AcpiOsGetLine (AcpiGbl_DbLineBuf); /* Check for single or multithreaded debug */ @@ -975,7 +991,6 @@ AcpiDbUserCommands ( * Signal the debug thread that we have a command to execute, * and wait for the command to complete. */ - AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_READY); AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_COMPLETE); } diff --git a/sys/contrib/dev/acpica/dbstats.c b/sys/contrib/dev/acpica/dbstats.c index 043f42a..8a60c11 100644 --- a/sys/contrib/dev/acpica/dbstats.c +++ b/sys/contrib/dev/acpica/dbstats.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dbstats - Generation and display of ACPI table statistics - * $Revision: 43 $ + * $Revision: 47 $ * ******************************************************************************/ @@ -137,6 +137,7 @@ ARGUMENT_INFO AcpiDbStatTypes [] = {"MISC"}, {"TABLES"}, {"SIZES"}, + {"STACK"}, {NULL} /* Must be null terminated */ }; @@ -146,23 +147,7 @@ ARGUMENT_INFO AcpiDbStatTypes [] = #define CMD_MISC 3 #define CMD_TABLES 4 #define CMD_SIZES 5 - - -/* - * Statistic globals - */ -UINT16 AcpiGbl_ObjTypeCount[INTERNAL_TYPE_NODE_MAX+1]; -UINT16 AcpiGbl_NodeTypeCount[INTERNAL_TYPE_NODE_MAX+1]; -UINT16 AcpiGbl_ObjTypeCountMisc; -UINT16 AcpiGbl_NodeTypeCountMisc; -UINT32 NumNodes; -UINT32 NumObjects; - - -UINT32 SizeOfParseTree; -UINT32 SizeOfMethodTrees; -UINT32 SizeOfNodeEntries; -UINT32 SizeOfAcpiObjects; +#define CMD_STACK 6 /******************************************************************************* @@ -196,7 +181,7 @@ AcpiDbEnumerateObject ( /* Enumerate this object first */ - NumObjects++; + AcpiGbl_NumObjects++; Type = ObjDesc->Common.Type; if (Type > INTERNAL_TYPE_NODE_MAX) @@ -276,7 +261,7 @@ AcpiDbClassifyOneObject ( UINT32 Type; - NumNodes++; + AcpiGbl_NumNodes++; Node = (ACPI_NAMESPACE_NODE *) ObjHandle; ObjDesc = ((ACPI_NAMESPACE_NODE *) ObjHandle)->Object; @@ -284,7 +269,7 @@ AcpiDbClassifyOneObject ( AcpiDbEnumerateObject (ObjDesc); Type = Node->Type; - if (Type > INTERNAL_TYPE_INVALID) + if (Type > INTERNAL_TYPE_NODE_MAX) { AcpiGbl_NodeTypeCountMisc++; } @@ -341,11 +326,11 @@ AcpiDbCountNamespaceObjects ( UINT32 i; - NumNodes = 0; - NumObjects = 0; + AcpiGbl_NumNodes = 0; + AcpiGbl_NumObjects = 0; AcpiGbl_ObjTypeCountMisc = 0; - for (i = 0; i < INTERNAL_TYPE_INVALID; i++) + for (i = 0; i < (INTERNAL_TYPE_NODE_MAX -1); i++) { AcpiGbl_ObjTypeCount [i] = 0; AcpiGbl_NodeTypeCount [i] = 0; @@ -401,11 +386,6 @@ AcpiDbDisplayStatistics ( return (AE_OK); } -#ifndef PARSER_ONLY - - AcpiDbCountNamespaceObjects (); -#endif - switch (Type) { @@ -428,6 +408,10 @@ AcpiDbDisplayStatistics ( case CMD_OBJECTS: +#ifndef PARSER_ONLY + + AcpiDbCountNamespaceObjects (); + AcpiOsPrintf ("\nObjects defined in the current namespace:\n\n"); AcpiOsPrintf ("%16.16s % 10.10s % 10.10s\n", "ACPI_TYPE", "NODES", "OBJECTS"); @@ -441,17 +425,9 @@ AcpiDbDisplayStatistics ( AcpiGbl_NodeTypeCountMisc, AcpiGbl_ObjTypeCountMisc); AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", "TOTALS:", - NumNodes, NumObjects); - - -/* - AcpiOsPrintf ("\n"); + AcpiGbl_NumNodes, AcpiGbl_NumObjects); - AcpiOsPrintf ("ASL/AML Grammar Usage:\n\n"); - AcpiOsPrintf ("Elements Inside Methods:....% 7ld\n", NumMethodElements); - AcpiOsPrintf ("Elements Outside Methods:...% 7ld\n", NumGrammarElements - NumMethodElements); - AcpiOsPrintf ("Total Grammar Elements:.....% 7ld\n", NumGrammarElements); -*/ +#endif break; case CMD_MEMORY: @@ -465,21 +441,21 @@ AcpiDbDisplayStatistics ( if (AcpiGbl_MemoryLists[i].MaxCacheDepth > 0) { - AcpiOsPrintf (" Cache: [Depth Max Avail Size] % 7d % 7d % 7d % 7d B\n", + AcpiOsPrintf (" Cache: [Depth Max Avail Size] % 7d % 7d % 7d % 7d B\n", AcpiGbl_MemoryLists[i].CacheDepth, - AcpiGbl_MemoryLists[i].MaxCacheDepth, + AcpiGbl_MemoryLists[i].MaxCacheDepth, AcpiGbl_MemoryLists[i].MaxCacheDepth - AcpiGbl_MemoryLists[i].CacheDepth, (AcpiGbl_MemoryLists[i].CacheDepth * AcpiGbl_MemoryLists[i].ObjectSize)); - AcpiOsPrintf (" Cache: [Requests Hits Misses ObjSize] % 7d % 7d % 7d % 7d B\n", + AcpiOsPrintf (" Cache: [Requests Hits Misses ObjSize] % 7d % 7d % 7d % 7d B\n", AcpiGbl_MemoryLists[i].CacheRequests, - AcpiGbl_MemoryLists[i].CacheHits, + AcpiGbl_MemoryLists[i].CacheHits, AcpiGbl_MemoryLists[i].CacheRequests - AcpiGbl_MemoryLists[i].CacheHits, - AcpiGbl_MemoryLists[i].ObjectSize); + AcpiGbl_MemoryLists[i].ObjectSize); } - Outstanding = AcpiGbl_MemoryLists[i].TotalAllocated - - AcpiGbl_MemoryLists[i].TotalFreed - + Outstanding = AcpiGbl_MemoryLists[i].TotalAllocated - + AcpiGbl_MemoryLists[i].TotalFreed - AcpiGbl_MemoryLists[i].CacheDepth; if (AcpiGbl_MemoryLists[i].ObjectSize) @@ -491,7 +467,7 @@ AcpiDbDisplayStatistics ( Size = ROUND_UP_TO_1K (AcpiGbl_MemoryLists[i].CurrentTotalSize); } - AcpiOsPrintf (" Mem: [Alloc Free Outstanding Size] % 7d % 7d % 7d % 7d Kb\n", + AcpiOsPrintf (" Mem: [Alloc Free Outstanding Size] % 7d % 7d % 7d % 7d Kb\n", AcpiGbl_MemoryLists[i].TotalAllocated, AcpiGbl_MemoryLists[i].TotalFreed, Outstanding, Size); @@ -551,6 +527,17 @@ AcpiDbDisplayStatistics ( break; + + case CMD_STACK: + + Size = AcpiGbl_EntryStackPointer - AcpiGbl_LowestStackPointer; + + AcpiOsPrintf ("\nSubsystem Stack Usage:\n\n"); + AcpiOsPrintf ("Entry Stack Pointer %X\n", AcpiGbl_EntryStackPointer); + AcpiOsPrintf ("Lowest Stack Pointer %X\n", AcpiGbl_LowestStackPointer); + AcpiOsPrintf ("Stack Use %X (%d)\n", Size, Size); + AcpiOsPrintf ("Deepest Procedure Nesting %d\n", AcpiGbl_DeepestNesting); + break; } AcpiOsPrintf ("\n"); diff --git a/sys/contrib/dev/acpica/dbutils.c b/sys/contrib/dev/acpica/dbutils.c index 2ca67c4..c3ada92 100644 --- a/sys/contrib/dev/acpica/dbutils.c +++ b/sys/contrib/dev/acpica/dbutils.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dbutils - AML debugger utilities - * $Revision: 41 $ + * $Revision: 43 $ * ******************************************************************************/ @@ -154,7 +154,7 @@ AcpiDbSetOutputDestination ( if (OutputFlags & DB_REDIRECTABLE_OUTPUT) { - if (OutputToFile) + if (AcpiGbl_DbOutputToFile) { AcpiDbgLevel = AcpiGbl_DbDebugLevel; } @@ -232,7 +232,7 @@ AcpiDbDumpObject ( case ACPI_TYPE_INTEGER: - AcpiOsPrintf ("[Integer] = %X%8.8X\n", HIDWORD (ObjDesc->Integer.Value), + AcpiOsPrintf ("[Integer] = %X%8.8X\n", HIDWORD (ObjDesc->Integer.Value), LODWORD (ObjDesc->Integer.Value)); break; diff --git a/sys/contrib/dev/acpica/dbxface.c b/sys/contrib/dev/acpica/dbxface.c index 1d176fe..e54b420 100644 --- a/sys/contrib/dev/acpica/dbxface.c +++ b/sys/contrib/dev/acpica/dbxface.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dbxface - AML Debugger external interfaces - * $Revision: 38 $ + * $Revision: 41 $ * ******************************************************************************/ @@ -157,6 +157,8 @@ AcpiDbSingleStep ( ACPI_PARSE_OBJECT *DisplayOp; + FUNCTION_ENTRY (); + /* Is there a breakpoint set? */ if (WalkState->MethodBreakpoint) @@ -174,12 +176,10 @@ AcpiDbSingleStep ( } } - /* * Check if this is an opcode that we are interested in -- * namely, opcodes that have arguments */ - if (Op->Opcode == AML_INT_NAMEDFIELD_OP) { return (AE_OK); @@ -205,16 +205,14 @@ AcpiDbSingleStep ( } } - /* * Under certain debug conditions, display this opcode and its operands */ - - if ((OutputToFile) || + if ((AcpiGbl_DbOutputToFile) || (AcpiGbl_CmSingleStep) || (AcpiDbgLevel & ACPI_LV_PARSE)) { - if ((OutputToFile) || + if ((AcpiGbl_DbOutputToFile) || (AcpiDbgLevel & ACPI_LV_PARSE)) { AcpiOsPrintf ("\n[AmlDebug] Next AML Opcode to execute:\n"); @@ -225,7 +223,6 @@ AcpiDbSingleStep ( * and disable parser trace output for the duration of the display because * we don't want the extraneous debug output) */ - OriginalDebugLevel = AcpiDbgLevel; AcpiDbgLevel &= ~(ACPI_LV_PARSE | ACPI_LV_FUNCTIONS); Next = Op->Next; @@ -264,14 +261,12 @@ AcpiDbSingleStep ( /* TBD */ } - /* Restore everything */ Op->Next = Next; AcpiOsPrintf ("\n"); AcpiDbgLevel = OriginalDebugLevel; - } - + } /* If we are not single stepping, just continue executing the method */ @@ -285,7 +280,6 @@ AcpiDbSingleStep ( * If we are executing a step-to-call command, * Check if this is a method call. */ - if (AcpiGbl_StepToNextCall) { if (Op->Opcode != AML_INT_METHODCALL_OP) @@ -305,7 +299,6 @@ AcpiDbSingleStep ( * If the next opcode is a method call, we will "step over" it * by default. */ - if (Op->Opcode == AML_INT_METHODCALL_OP) { AcpiGbl_CmSingleStep = FALSE; /* No more single step while executing called method */ @@ -357,15 +350,14 @@ AcpiDbSingleStep ( /* Get the user input line */ - AcpiOsGetLine (LineBuf); + AcpiOsGetLine (AcpiGbl_DbLineBuf); } - Status = AcpiDbCommandDispatch (LineBuf, WalkState, Op); + Status = AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, WalkState, Op); } /* AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); */ - /* User commands complete, continue execution of the interrupted method */ return (Status); @@ -391,12 +383,12 @@ AcpiDbInitialize (void) /* Init globals */ - Buffer = AcpiOsAllocate (BUFFER_SIZE); + AcpiGbl_DbBuffer = AcpiOsAllocate (ACPI_DEBUG_BUFFER_SIZE); /* Initial scope is the root */ - ScopeBuf [0] = '\\'; - ScopeBuf [1] = 0; + AcpiGbl_DbScopeBuf [0] = '\\'; + AcpiGbl_DbScopeBuf [1] = 0; /* @@ -404,7 +396,6 @@ AcpiDbInitialize (void) * a separate thread so that the front end can be in another address * space, environment, or even another machine. */ - if (AcpiGbl_DebuggerConfiguration & DEBUGGER_MULTI_THREADED) { /* These were created with one unit, grab it */ @@ -417,14 +408,13 @@ AcpiDbInitialize (void) AcpiOsQueueForExecution (0, AcpiDbExecuteThread, NULL); } - if (!opt_verbose) + if (!AcpiGbl_DbOpt_verbose) { - INDENT_STRING = " "; - opt_disasm = TRUE; - opt_stats = FALSE; + AcpiGbl_DbDisasmIndent = " "; + AcpiGbl_DbOpt_disasm = TRUE; + AcpiGbl_DbOpt_stats = FALSE; } - return (0); } diff --git a/sys/contrib/dev/acpica/dsfield.c b/sys/contrib/dev/acpica/dsfield.c index d9e8c50..8027453d 100644 --- a/sys/contrib/dev/acpica/dsfield.c +++ b/sys/contrib/dev/acpica/dsfield.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: dsfield - Dispatcher field routines - * $Revision: 43 $ + * $Revision: 44 $ * *****************************************************************************/ @@ -227,7 +227,6 @@ AcpiDsCreateField ( * Initialize an object for the new Node that is on * the object stack */ - Status = AcpiExPrepRegionFieldValue (Node, RegionNode, FieldFlags, FieldBitPosition, Arg->Value.Size); if (ACPI_FAILURE (Status)) @@ -358,7 +357,6 @@ AcpiDsCreateBankField ( * Initialize an object for the new Node that is on * the object stack */ - Status = AcpiExPrepBankFieldValue (Node, RegionNode, RegisterNode, BankValue, FieldFlags, FieldBitPosition, Arg->Value.Size); @@ -486,7 +484,6 @@ AcpiDsCreateIndexField ( * Initialize an object for the new Node that is on * the object stack */ - Status = AcpiExPrepIndexFieldValue (Node, IndexRegisterNode, DataRegisterNode, FieldFlags, FieldBitPosition, Arg->Value.Size); diff --git a/sys/contrib/dev/acpica/dsmethod.c b/sys/contrib/dev/acpica/dsmethod.c index b9ffc80..5ac3dd2 100644 --- a/sys/contrib/dev/acpica/dsmethod.c +++ b/sys/contrib/dev/acpica/dsmethod.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: dsmethod - Parser/Interpreter interface - control method parsing - * $Revision: 64 $ + * $Revision: 65 $ * *****************************************************************************/ @@ -453,7 +453,7 @@ AcpiDsCallControlMethod ( return_ACPI_STATUS (AE_NO_MEMORY); } - Status = AcpiPsParseAml (Op, ObjDesc->Method.Pcode, + Status = AcpiPsParseAml (Op, ObjDesc->Method.Pcode, ObjDesc->Method.PcodeLength, ACPI_PARSE_LOAD_PASS1 | ACPI_PARSE_DELETE_TREE, MethodNode, NULL, NULL, @@ -476,7 +476,7 @@ AcpiDsCallControlMethod ( ThisWalkState->NumOperands = 0; - ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Starting nested execution, newstate=%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Starting nested execution, newstate=%p\n", NextWalkState)); return_ACPI_STATUS (AE_OK); diff --git a/sys/contrib/dev/acpica/dsmthdat.c b/sys/contrib/dev/acpica/dsmthdat.c index 7645b31..e44829d 100644 --- a/sys/contrib/dev/acpica/dsmthdat.c +++ b/sys/contrib/dev/acpica/dsmthdat.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dsmthdat - control method arguments and local variables - * $Revision: 48 $ + * $Revision: 49 $ * ******************************************************************************/ @@ -359,7 +359,6 @@ AcpiDsMethodDataGetEntry ( * Get the requested object. * The stack "Opcode" is either a LocalVariable or an Argument */ - switch (Opcode) { @@ -429,6 +428,7 @@ AcpiDsMethodDataSetEntry ( FUNCTION_TRACE ("DsMethodDataSetEntry"); + /* Get a pointer to the stack entry to set */ Status = AcpiDsMethodDataGetEntry (Opcode, Index, WalkState, &Entry); @@ -631,7 +631,6 @@ AcpiDsMethodDataGetValue ( * was referenced by the method (via the ASL) * before it was initialized. Either case is an error. */ - switch (Opcode) { case AML_ARG_OP: @@ -657,7 +656,6 @@ AcpiDsMethodDataGetValue ( * Index points to initialized and valid object stack value. * Return an additional reference to the object */ - *DestDesc = Object; AcpiUtAddReference (Object); @@ -713,7 +711,6 @@ AcpiDsMethodDataDeleteValue ( */ *Entry = NULL; - if ((Object) && (VALID_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_INTERNAL))) { @@ -725,7 +722,6 @@ AcpiDsMethodDataDeleteValue ( AcpiUtRemoveReference (Object); } - return_ACPI_STATUS (AE_OK); } @@ -792,7 +788,6 @@ AcpiDsStoreObjectToLocal ( * is an object reference stored there, we have to do * an indirect store! */ - if (*Entry) { /* @@ -811,7 +806,6 @@ AcpiDsStoreObjectToLocal ( * * Weird, but true. */ - if ((Opcode == AML_ARG_OP) && (VALID_DESCRIPTOR_TYPE (*Entry, ACPI_DESC_TYPE_NAMED))) { diff --git a/sys/contrib/dev/acpica/dsobject.c b/sys/contrib/dev/acpica/dsobject.c index 12a0f81..2857ec0 100644 --- a/sys/contrib/dev/acpica/dsobject.c +++ b/sys/contrib/dev/acpica/dsobject.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: dsobject - Dispatcher object management routines - * $Revision: 71 $ + * $Revision: 74 $ * *****************************************************************************/ @@ -170,7 +170,6 @@ AcpiDsInitOneObject ( * We are only interested in objects owned by the table that * was just loaded */ - if (((ACPI_NAMESPACE_NODE *) ObjHandle)->OwnerId != Info->TableDesc->TableId) { @@ -206,7 +205,6 @@ AcpiDsInitOneObject ( * Set the execution data width (32 or 64) based upon the * revision number of the parent ACPI table. */ - if (TableRevision == 1) { ((ACPI_NAMESPACE_NODE *)ObjHandle)->Flags |= ANOBJ_DATA_WIDTH_32; @@ -332,7 +330,7 @@ AcpiDsInitObjectFromOp ( ACPI_PARSE_OBJECT *Arg; ACPI_PARSE2_OBJECT *ByteList; ACPI_OPERAND_OBJECT *ArgDesc; - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; ACPI_OPERAND_OBJECT *ObjDesc; @@ -374,7 +372,7 @@ AcpiDsInitObjectFromOp ( if (ArgDesc->Common.Type != ACPI_TYPE_INTEGER) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Expecting number, got obj: %p type %X\n", ArgDesc, ArgDesc->Common.Type)); AcpiUtRemoveReference (ArgDesc); @@ -407,10 +405,9 @@ AcpiDsInitObjectFromOp ( } /* - * Second arg is the buffer data (optional) ByteList can be either + * Second arg is the buffer data (optional) ByteList can be either * individual bytes or a string initializer. */ - Arg = Op->Value.Arg; /* skip first arg */ ByteList = (ACPI_PARSE2_OBJECT *) Arg->Next; @@ -433,10 +430,10 @@ AcpiDsInitObjectFromOp ( case ACPI_TYPE_PACKAGE: /* - * When called, an internal package object has already been built and + * When called, an internal package object has already been built and * is pointed to by ObjDesc. AcpiDsBuildInternalObject builds another - * internal package object, so remove reference to the original so - * that it is deleted. Error checking is done within the remove + * internal package object, so remove reference to the original so + * that it is deleted. Error checking is done within the remove * reference function. */ AcpiUtRemoveReference (ObjDesc); @@ -503,7 +500,7 @@ AcpiDsInitObjectFromOp ( } /* - * Decode constants here. Turn them into real integer objects + * Decode constants here. Turn them into real integer objects * that are initialized to the value of the constant. */ switch (Op->Opcode) @@ -707,7 +704,7 @@ AcpiDsBuildInternalPackageObj ( { return_ACPI_STATUS (AE_NO_MEMORY); } - + if (Op->Opcode == AML_VAR_PACKAGE_OP) { /* @@ -839,7 +836,6 @@ AcpiDsCreateNode ( return_ACPI_STATUS (AE_OK); } - /* Build an internal object for the argument(s) */ Status = AcpiDsBuildInternalObject (WalkState, Op->Value.Arg, &ObjDesc); @@ -848,7 +844,6 @@ AcpiDsCreateNode ( return_ACPI_STATUS (Status); } - /* Re-type the object according to it's argument */ Node->Type = ObjDesc->Common.Type; @@ -867,7 +862,6 @@ AcpiDsCreateNode ( Cleanup: AcpiUtRemoveReference (ObjDesc); - return_ACPI_STATUS (Status); } diff --git a/sys/contrib/dev/acpica/dsopcode.c b/sys/contrib/dev/acpica/dsopcode.c index 83b9036..b903e11 100644 --- a/sys/contrib/dev/acpica/dsopcode.c +++ b/sys/contrib/dev/acpica/dsopcode.c @@ -2,7 +2,7 @@ * * Module Name: dsopcode - Dispatcher Op Region support and handling of * "control" opcodes - * $Revision: 49 $ + * $Revision: 51 $ * *****************************************************************************/ @@ -178,7 +178,6 @@ AcpiDsGetBufferFieldArguments ( * Allocate a new parser op to be the root of the parsed * OpRegion tree */ - Op = AcpiPsAllocOp (AML_SCOPE_OP); if (!Op) { @@ -208,7 +207,6 @@ AcpiDsGetBufferFieldArguments ( return_ACPI_STATUS (Status); } - /* Get and init the actual FielUnitOp created above */ FieldOp = Op->Value.Arg; @@ -292,7 +290,7 @@ AcpiDsGetRegionArguments ( DEBUG_EXEC(AcpiUtDisplayInitPathname (Node, " [Operation Region]")); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] OpRegion Init at AML %p[%x]\n", - &Node->Name, ExtraDesc->Extra.Pcode, + &Node->Name, ExtraDesc->Extra.Pcode, *(UINT32*) ExtraDesc->Extra.Pcode)); /* @@ -322,14 +320,12 @@ AcpiDsGetRegionArguments ( Status = AcpiPsParseAml (Op, ExtraDesc->Extra.Pcode, ExtraDesc->Extra.PcodeLength, 0, NULL, NULL, NULL, AcpiDsLoad1BeginOp, AcpiDsLoad1EndOp); - if (ACPI_FAILURE (Status)) { AcpiPsDeleteParseTree (Op); return_ACPI_STATUS (Status); } - /* Get and init the actual RegionOp created above */ RegionOp = Op->Value.Arg; @@ -505,12 +501,10 @@ AcpiDsEvalBufferFieldOperands ( Offset = (UINT32) OffDesc->Integer.Value; - /* * If ResDesc is a Name, it will be a direct name pointer after * AcpiExResolveOperands() */ - if (!VALID_DESCRIPTOR_TYPE (ResDesc, ACPI_DESC_TYPE_NAMED)) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "(%s) destination must be a Node\n", @@ -520,11 +514,9 @@ AcpiDsEvalBufferFieldOperands ( goto Cleanup; } - /* * Setup the Bit offsets and counts, according to the opcode */ - switch (Op->Opcode) { @@ -613,7 +605,6 @@ AcpiDsEvalBufferFieldOperands ( /* * Setup field according to the object type */ - switch (SrcDesc->Common.Type) { @@ -624,7 +615,7 @@ AcpiDsEvalBufferFieldOperands ( if ((BitOffset + BitCount) > (8 * (UINT32) SrcDesc->Buffer.Length)) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Field size %d exceeds Buffer size %d (bits)\n", BitOffset + BitCount, 8 * (UINT32) SrcDesc->Buffer.Length)); Status = AE_AML_BUFFER_LIMIT; @@ -746,13 +737,14 @@ AcpiDsEvalRegionOperands ( /* * This is where we evaluate the address and length fields of the OpRegion declaration */ - Node = Op->Node; /* NextOp points to the op that holds the SpaceID */ + NextOp = Op->Value.Arg; /* NextOp points to address op */ + NextOp = NextOp->Next; /* AcpiEvaluate/create the address and length operands */ @@ -852,7 +844,6 @@ AcpiDsExecBeginControlOp ( * constructs. We need to manage these as a stack, in order * to handle nesting. */ - ControlState = AcpiUtCreateControlState (); if (!ControlState) { @@ -936,7 +927,7 @@ AcpiDsExecEndControlOp ( * Save the result of the predicate in case there is an * ELSE to come */ - WalkState->LastPredicate = + WalkState->LastPredicate = (BOOLEAN) WalkState->ControlState->Common.Value; /* @@ -980,7 +971,6 @@ AcpiDsExecEndControlOp ( ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[RETURN_OP] Op=%p Arg=%p\n",Op, Op->Value.Arg)); - /* * One optional operand -- the return value * It can be either an immediate operand or a result that @@ -1027,7 +1017,6 @@ AcpiDsExecEndControlOp ( * * Allow references created by the Index operator to return unchanged. */ - if (VALID_DESCRIPTOR_TYPE (WalkState->Results->Results.ObjDesc [0], ACPI_DESC_TYPE_INTERNAL) && ((WalkState->Results->Results.ObjDesc [0])->Common.Type == INTERNAL_TYPE_REFERENCE) && ((WalkState->Results->Results.ObjDesc [0])->Reference.Opcode != AML_INDEX_OP)) @@ -1086,7 +1075,7 @@ AcpiDsExecEndControlOp ( case AML_BREAK_OP: - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Break to end of current package, Op=%p\n", Op)); /* TBD: update behavior for ACPI 2.0 */ diff --git a/sys/contrib/dev/acpica/dsutils.c b/sys/contrib/dev/acpica/dsutils.c index 1e1bc83..f9fab91 100644 --- a/sys/contrib/dev/acpica/dsutils.c +++ b/sys/contrib/dev/acpica/dsutils.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: dsutils - Dispatcher utilities - * $Revision: 68 $ + * $Revision: 72 $ * ******************************************************************************/ @@ -147,7 +147,7 @@ AcpiDsIsResultUsed ( ACPI_PARSE_OBJECT *Op, ACPI_WALK_STATE *WalkState) { - ACPI_OPCODE_INFO *ParentInfo; + const ACPI_OPCODE_INFO *ParentInfo; FUNCTION_TRACE_PTR ("DsIsResultUsed", Op); @@ -192,7 +192,6 @@ AcpiDsIsResultUsed ( * Otherwise leave it as is, it will be deleted when it is used * as an operand later. */ - switch (ACPI_GET_OP_CLASS (ParentInfo)) { /* @@ -206,7 +205,7 @@ AcpiDsIsResultUsed ( /* Never delete the return value associated with a return opcode */ - ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Result used, [RETURN] opcode=%X Op=%X\n", Op->Opcode, Op)); return_VALUE (TRUE); break; @@ -218,7 +217,6 @@ AcpiDsIsResultUsed ( * If we are executing the predicate AND this is the predicate op, * we will use the return value! */ - if ((WalkState->ControlState->Common.State == CONTROL_PREDICATE_EXECUTING) && (WalkState->ControlState->Control.PredicateOp == Op)) { @@ -255,7 +253,7 @@ AcpiDsIsResultUsed ( return_VALUE (TRUE); } - ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Result not used, Parent opcode=%X Op=%X\n", Op->Opcode, Op)); return_VALUE (FALSE); @@ -362,6 +360,7 @@ AcpiDsCreateOperand ( UINT16 Opcode; UINT32 Flags; OPERATING_MODE InterpreterMode; + const ACPI_OPCODE_INFO *OpInfo; FUNCTION_TRACE_PTR ("DsCreateOperand", Arg); @@ -396,7 +395,8 @@ AcpiDsCreateOperand ( * namespace objects during the execution of control methods. */ ParentOp = Arg->Parent; - if ((AcpiPsIsNodeOp (ParentOp->Opcode)) && + OpInfo = AcpiPsGetOpcodeInfo (ParentOp->Opcode); + if ((OpInfo->Flags & AML_NSNODE) && (ParentOp->Opcode != AML_INT_METHODCALL_OP) && (ParentOp->Opcode != AML_REGION_OP) && (ParentOp->Opcode != AML_INT_NAMEPATH_OP)) @@ -427,7 +427,6 @@ AcpiDsCreateOperand ( * The only case where we pass through (ignore) a NOT_FOUND * error is for the CondRefOf opcode. */ - if (Status == AE_NOT_FOUND) { if (ParentOp->Opcode == AML_COND_REF_OF_OP) @@ -524,7 +523,7 @@ AcpiDsCreateOperand ( * Only error is underflow, and this indicates * a missing or null operand! */ - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Missing or null operand, %s\n", + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Missing or null operand, %s\n", AcpiFormatException (Status))); return_ACPI_STATUS (Status); } @@ -593,6 +592,7 @@ AcpiDsCreateOperands ( FUNCTION_TRACE_PTR ("DsCreateOperands", FirstArg); + /* For all arguments in the list... */ Arg = FirstArg; @@ -622,7 +622,6 @@ Cleanup: * pop everything off of the operand stack and delete those * objects */ - AcpiDsObjStackPopAndDelete (ArgCount, WalkState); ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "While creating Arg %d - %s\n", @@ -665,7 +664,6 @@ AcpiDsResolveOperands ( * TBD: [Investigate] Note from previous parser: * RefOf problem with AcpiExResolveToValue() conversion. */ - for (i = 0; i < WalkState->NumOperands; i++) { Status = AcpiExResolveToValue (&WalkState->Operands[i], WalkState); @@ -700,7 +698,7 @@ AcpiDsMapOpcodeToDataType ( UINT32 *OutFlags) { ACPI_OBJECT_TYPE8 DataType = INTERNAL_TYPE_INVALID; - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; UINT32 Flags = 0; @@ -742,7 +740,7 @@ AcpiDsMapOpcodeToDataType ( break; default: - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unknown (type LITERAL) AML opcode: %x\n", Opcode)); break; } @@ -854,6 +852,9 @@ AcpiDsMapNamedOpcodeToDataType ( ACPI_OBJECT_TYPE8 DataType; + FUNCTION_ENTRY (); + + /* Decode Opcode */ switch (Opcode) diff --git a/sys/contrib/dev/acpica/dswexec.c b/sys/contrib/dev/acpica/dswexec.c index ba8df46..f9bfe8e 100644 --- a/sys/contrib/dev/acpica/dswexec.c +++ b/sys/contrib/dev/acpica/dswexec.c @@ -2,7 +2,7 @@ * * Module Name: dswexec - Dispatcher method execution callbacks; * dispatch to interpreter. - * $Revision: 64 $ + * $Revision: 70 $ * *****************************************************************************/ @@ -200,7 +200,6 @@ AcpiDsGetPredicateValue ( * Result of predicate evaluation currently must * be a number */ - if (ObjDesc->Common.Type != ACPI_TYPE_INTEGER) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, @@ -220,7 +219,6 @@ AcpiDsGetPredicateValue ( * Save the result of the predicate evaluation on * the control stack */ - if (ObjDesc->Integer.Value) { WalkState->ControlState->Common.Value = TRUE; @@ -232,7 +230,6 @@ AcpiDsGetPredicateValue ( * Predicate is FALSE, we will just toss the * rest of the package */ - WalkState->ControlState->Common.Value = FALSE; Status = AE_CTRL_FALSE; } @@ -251,11 +248,9 @@ Cleanup: * Delete the predicate result object (we know that * we don't need it anymore) */ - AcpiUtRemoveReference (ObjDesc); WalkState->ControlState->Common.State = CONTROL_NORMAL; - return_ACPI_STATUS (Status); } @@ -283,8 +278,9 @@ AcpiDsExecBeginOp ( ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT **OutOp) { - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; ACPI_STATUS Status = AE_OK; + UINT8 OpcodeClass; FUNCTION_TRACE_PTR ("DsExecBeginOp", Op); @@ -316,7 +312,6 @@ AcpiDsExecBeginOp ( * must be the beginning of the associated predicate. * Save this knowledge in the current scope descriptor */ - if ((WalkState->ControlState) && (WalkState->ControlState->Common.State == CONTROL_CONDITIONAL_EXECUTING)) @@ -333,20 +328,19 @@ AcpiDsExecBeginOp ( OpInfo = AcpiPsGetOpcodeInfo (Op->Opcode); + OpcodeClass = (UINT8) ACPI_GET_OP_CLASS (OpInfo); /* We want to send namepaths to the load code */ if (Op->Opcode == AML_INT_NAMEPATH_OP) { - OpInfo->Flags = OPTYPE_NAMED_OBJECT; + OpcodeClass = OPTYPE_NAMED_OBJECT; } - /* * Handle the opcode based upon the opcode type */ - - switch (ACPI_GET_OP_CLASS (OpInfo)) + switch (OpcodeClass) { case OPTYPE_CONTROL: @@ -371,7 +365,6 @@ AcpiDsExecBeginOp ( * will be deleted upon completion of the execution * of this method. */ - Status = AcpiDsLoad2BeginOp (Op->Opcode, Op, WalkState, NULL); } @@ -442,7 +435,8 @@ AcpiDsExecEndOp ( ACPI_PARSE_OBJECT *NextOp; ACPI_PARSE_OBJECT *FirstArg; ACPI_OPERAND_OBJECT *ResultObj = NULL; - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; + UINT32 i; FUNCTION_TRACE_PTR ("DsExecEndOp", Op); @@ -530,6 +524,36 @@ AcpiDsExecEndOp ( goto Cleanup; } + /* Resolve all operands */ + + Status = AcpiExResolveOperands (Opcode, + &(WalkState->Operands [WalkState->NumOperands -1]), + WalkState); + if (ACPI_FAILURE (Status)) + { + /* TBD: must pop and delete operands */ + + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "[%s]: Could not resolve operands, %s\n", + AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status))); + + /* + * On error, we must delete all the operands and clear the + * operand stack + */ + for (i = 0; i < WalkState->NumOperands; i++) + { + AcpiUtRemoveReference (WalkState->Operands[i]); + WalkState->Operands[i] = NULL; + } + + WalkState->NumOperands = 0; + + goto Cleanup; + } + + DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, AcpiPsGetOpcodeName (Opcode), + WalkState->NumOperands, "after ExResolveOperands"); + switch (Optype) { case OPTYPE_MONADIC1: @@ -595,9 +619,11 @@ AcpiDsExecEndOp ( Status = AcpiExTriadic (Opcode, WalkState, &ResultObj); break; + case OPTYPE_QUADRADIC: /* Opcode with 4 operands */ break; + case OPTYPE_HEXADIC: /* Opcode with 6 operands */ /* 6 Operands, 0 ExternalResult, 1 InternalResult */ @@ -614,6 +640,14 @@ AcpiDsExecEndOp ( break; } + /* Clear the operand stack */ + + for (i = 0; i < WalkState->NumOperands; i++) + { + WalkState->Operands[i] = NULL; + } + WalkState->NumOperands = 0; + /* * If a result object was returned from above, push it on the * current result stack @@ -668,7 +702,6 @@ AcpiDsExecEndOp ( * references here (Local variables, arguments * to *this* method, etc.) */ - Status = AcpiDsResolveOperands (WalkState); if (ACPI_FAILURE (Status)) { @@ -691,7 +724,7 @@ AcpiDsExecEndOp ( case OPTYPE_CREATE_FIELD: - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Executing CreateField Buffer/Index Op=%X\n", Op)); Status = AcpiDsLoad2EndOp (WalkState, Op); @@ -751,7 +784,7 @@ AcpiDsExecEndOp ( default: - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unimplemented opcode, type=%X Opcode=%X Op=%X\n", Optype, Op->Opcode, Op)); diff --git a/sys/contrib/dev/acpica/dswload.c b/sys/contrib/dev/acpica/dswload.c index ab9ed5d..bf3de7c 100644 --- a/sys/contrib/dev/acpica/dswload.c +++ b/sys/contrib/dev/acpica/dswload.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: dswload - Dispatcher namespace load callbacks - * $Revision: 40 $ + * $Revision: 44 $ * *****************************************************************************/ @@ -154,6 +154,7 @@ AcpiDsLoad1BeginOp ( ACPI_STATUS Status; ACPI_OBJECT_TYPE8 DataType; NATIVE_CHAR *Path; + const ACPI_OPCODE_INFO *OpInfo; PROC_NAME ("DsLoad1BeginOp"); @@ -162,13 +163,13 @@ AcpiDsLoad1BeginOp ( /* We are only interested in opcodes that have an associated name */ - if (!AcpiPsIsNamedOp (Opcode)) + OpInfo = AcpiPsGetOpcodeInfo (Opcode); + if (!(OpInfo->Flags & AML_NAMED)) { *OutOp = Op; return (AE_OK); } - /* Check if this object has already been installed in the namespace */ if (Op && Op->Node) @@ -199,7 +200,7 @@ AcpiDsLoad1BeginOp ( * 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, DataType, + Status = AcpiNsLookup (WalkState->ScopeInfo, Path, DataType, IMODE_LOAD_PASS1, NS_NO_UPSEARCH, WalkState, &(Node)); if (ACPI_FAILURE (Status)) @@ -227,12 +228,9 @@ AcpiDsLoad1BeginOp ( * can get it again quickly when this scope is closed */ Op->Node = Node; - - AcpiPsAppendArg (AcpiPsGetParentScope (WalkState->ParserState), Op); *OutOp = Op; - return (Status); } @@ -258,19 +256,21 @@ AcpiDsLoad1EndOp ( ACPI_PARSE_OBJECT *Op) { ACPI_OBJECT_TYPE8 DataType; + const ACPI_OPCODE_INFO *OpInfo; PROC_NAME ("DsLoad1EndOp"); ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState)); + /* We are only interested in opcodes that have an associated name */ - if (!AcpiPsIsNamedOp (Op->Opcode)) + OpInfo = AcpiPsGetOpcodeInfo (Op->Opcode); + if (!(OpInfo->Flags & AML_NAMED)) { return (AE_OK); } - /* Get the type to determine if we should pop the scope */ DataType = AcpiDsMapNamedOpcodeToDataType (Op->Opcode); @@ -288,7 +288,6 @@ AcpiDsLoad1EndOp ( } } - /* Pop the scope stack */ if (AcpiNsOpensScope (DataType)) @@ -300,7 +299,6 @@ AcpiDsLoad1EndOp ( } return (AE_OK); - } @@ -330,6 +328,7 @@ AcpiDsLoad2BeginOp ( ACPI_OBJECT_TYPE8 DataType; NATIVE_CHAR *BufferPtr; void *Original = NULL; + const ACPI_OPCODE_INFO *OpInfo; PROC_NAME ("DsLoad2BeginOp"); @@ -338,16 +337,16 @@ AcpiDsLoad2BeginOp ( /* We only care about Namespace opcodes here */ - if (!AcpiPsIsNamespaceOp (Opcode) && + OpInfo = AcpiPsGetOpcodeInfo (Opcode); + if (!(OpInfo->Flags & AML_NSOPCODE) && Opcode != AML_INT_NAMEPATH_OP) { return (AE_OK); } + /* TBD: [Restructure] Temp! same code as in psparse */ - /* Temp! same code as in psparse */ - - if (!AcpiPsIsNamedOp (Opcode)) + if (!(OpInfo->Flags & AML_NAMED)) { return (AE_OK); } @@ -406,7 +405,7 @@ AcpiDsLoad2BeginOp ( * 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, DataType, + Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, DataType, IMODE_EXECUTE, NS_SEARCH_PARENT, WalkState, &(Node)); } @@ -434,7 +433,7 @@ AcpiDsLoad2BeginOp ( * 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, DataType, + Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, DataType, IMODE_EXECUTE, NS_NO_UPSEARCH, WalkState, &(Node)); } @@ -456,7 +455,6 @@ AcpiDsLoad2BeginOp ( *OutOp = Op; } - /* * Put the Node in the "op" object that the parser uses, so we * can get it again quickly when this scope is closed @@ -500,16 +498,21 @@ AcpiDsLoad2EndOp ( ACPI_PARSE_OBJECT *Op) { ACPI_STATUS Status = AE_OK; - ACPI_OBJECT_TYPE8 DataType; + ACPI_OBJECT_TYPE8 DataType; ACPI_NAMESPACE_NODE *Node; ACPI_PARSE_OBJECT *Arg; ACPI_NAMESPACE_NODE *NewNode; + const ACPI_OPCODE_INFO *OpInfo; PROC_NAME ("DsLoad2EndOp"); ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState)); - if (!AcpiPsIsNamespaceObjectOp (Op->Opcode)) + + /* Only interested in opcodes that have namespace objects */ + + OpInfo = AcpiPsGetOpcodeInfo (Op->Opcode); + if (!(OpInfo->Flags & AML_NSOBJECT)) { return (AE_OK); } @@ -521,7 +524,7 @@ AcpiDsLoad2EndOp ( if (((ACPI_PARSE2_OBJECT *)Op)->Name == -1) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unnamed scope! Op=%p State=%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unnamed scope! Op=%p State=%p\n", Op, WalkState)); return (AE_OK); } @@ -540,7 +543,6 @@ AcpiDsLoad2EndOp ( * Put the Node on the object stack (Contains the ACPI Name of * this object) */ - WalkState->Operands[0] = (void *) Node; WalkState->NumOperands = 1; @@ -554,7 +556,6 @@ AcpiDsLoad2EndOp ( AcpiDsScopeStackPop (WalkState); } - /* * Named operations are as follows: * @@ -601,9 +602,8 @@ AcpiDsLoad2EndOp ( * Create the field object, but the field buffer and index must * be evaluated later during the execution phase */ - - ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, - "CreateXxxField: State=%p Op=%p NamedObj=%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, + "CreateXxxField: State=%p Op=%p NamedObj=%p\n", WalkState, Op, Node)); /* Get the NameString argument */ @@ -663,22 +663,19 @@ AcpiDsLoad2EndOp ( case AML_INT_METHODCALL_OP: - ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "RESOLVING-MethodCall: State=%p Op=%p NamedObj=%p\n", WalkState, Op, Node)); /* * Lookup the method name and save the Node */ - Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Value.String, ACPI_TYPE_ANY, IMODE_LOAD_PASS2, NS_SEARCH_PARENT | NS_DONT_OPEN_SCOPE, WalkState, &(NewNode)); - if (ACPI_SUCCESS (Status)) { - /* TBD: has name already been resolved by here ??*/ /* TBD: [Restructure] Make sure that what we found is indeed a method! */ @@ -837,7 +834,7 @@ AcpiDsLoad2EndOp ( } ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, - "LOADING-Opregion: Op=%p State=%p NamedObj=%p\n", + "LOADING-Opregion: Op=%p State=%p NamedObj=%p\n", Op, WalkState, Node)); /* diff --git a/sys/contrib/dev/acpica/dswscope.c b/sys/contrib/dev/acpica/dswscope.c index b0c578a..f14c06d 100644 --- a/sys/contrib/dev/acpica/dswscope.c +++ b/sys/contrib/dev/acpica/dswscope.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: dswscope - Scope stack manipulation - * $Revision: 46 $ + * $Revision: 48 $ * *****************************************************************************/ @@ -145,7 +145,7 @@ AcpiDsScopeStackClear ( { ACPI_GENERIC_STATE *ScopeInfo; - PROC_NAME ("AcpiDsScopeStackClear"); + PROC_NAME ("DsScopeStackClear"); while (WalkState->ScopeInfo) @@ -188,7 +188,7 @@ AcpiDsScopeStackPush ( if (!Node) { - /* invalid scope */ + /* Invalid scope */ REPORT_ERROR (("DsScopeStackPush: null scope passed\n")); return_ACPI_STATUS (AE_BAD_PARAMETER); @@ -249,10 +249,10 @@ AcpiDsScopeStackPop ( FUNCTION_TRACE ("DsScopeStackPop"); + /* * Pop scope info object off the stack. */ - ScopeInfo = AcpiUtPopGenericState (&WalkState->ScopeInfo); if (!ScopeInfo) { diff --git a/sys/contrib/dev/acpica/dswstate.c b/sys/contrib/dev/acpica/dswstate.c index 8ba87c4..cbb265b 100644 --- a/sys/contrib/dev/acpica/dswstate.c +++ b/sys/contrib/dev/acpica/dswstate.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: dswstate - Dispatcher parse tree walk management routines - * $Revision: 48 $ + * $Revision: 50 $ * *****************************************************************************/ @@ -163,7 +163,7 @@ AcpiDsResultInsert ( if (Index >= OBJ_NUM_OPERANDS) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Index out of range: %X Obj=%p State=%p Num=%X\n", Index, Object, WalkState, State->Results.NumResults)); return (AE_BAD_PARAMETER); @@ -289,7 +289,6 @@ AcpiDsResultPop ( return (AE_OK); } - if (!State->Results.NumResults) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Result stack is empty! State=%p\n", @@ -318,7 +317,6 @@ AcpiDsResultPop ( } } - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result objects! State=%p\n", WalkState)); return (AE_AML_NO_RETURN_VALUE); } @@ -368,7 +366,6 @@ AcpiDsResultPopFromBottom ( *Object = State->Results.ObjDesc [0]; - /* Push entire stack down one element */ for (Index = 0; Index < State->Results.NumResults; Index++) @@ -846,7 +843,7 @@ AcpiDsGetCurrentWalkState ( PROC_NAME ("DsGetCurrentWalkState"); - ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "DsGetCurrentWalkState, =%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "DsGetCurrentWalkState, =%p\n", WalkList->WalkState)); if (!WalkList) @@ -876,8 +873,6 @@ AcpiDsPushWalkState ( ACPI_WALK_STATE *WalkState, ACPI_WALK_LIST *WalkList) { - - FUNCTION_TRACE ("DsPushWalkState"); @@ -985,7 +980,6 @@ AcpiDsCreateWalkState ( return_PTR (NULL); } - /* Put the new state at the head of the walk list */ AcpiDsPushWalkState (WalkState, WalkList); @@ -1058,7 +1052,6 @@ AcpiDsDeleteWalkState ( AcpiUtDeleteGenericState (State); } - AcpiUtReleaseToCache (ACPI_MEM_LIST_WALK, WalkState); return_VOID; } diff --git a/sys/contrib/dev/acpica/evevent.c b/sys/contrib/dev/acpica/evevent.c index f3c0e52..92b51e6 100644 --- a/sys/contrib/dev/acpica/evevent.c +++ b/sys/contrib/dev/acpica/evevent.c @@ -2,7 +2,7 @@ * * Module Name: evevent - Fixed and General Purpose AcpiEvent * handling and dispatch - * $Revision: 47 $ + * $Revision: 50 $ * *****************************************************************************/ @@ -173,7 +173,6 @@ AcpiEvInitialize ( * done prior to enabling SCIs to prevent interrupts from occuring * before handers are installed. */ - Status = AcpiEvFixedEventInitialize (); if (ACPI_FAILURE (Status)) { @@ -275,14 +274,14 @@ AcpiEvFixedEventDetect (void) UINT32 StatusRegister; UINT32 EnableRegister; - PROC_NAME ("AcpiEvFixedEventDetect"); + + PROC_NAME ("EvFixedEventDetect"); /* * Read the fixed feature status and enable registers, as all the cases * depend on their values. */ - StatusRegister = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK, PM1_STS); EnableRegister = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK, PM1_EN); @@ -344,7 +343,11 @@ UINT32 AcpiEvFixedEventDispatch ( UINT32 Event) { - UINT32 RegisterId; + UINT32 RegisterId; + + + FUNCTION_ENTRY (); + /* Clear the status bit */ @@ -443,7 +446,6 @@ AcpiEvGpeInitialize (void) * FADT table contain zeros. The GPE0_LEN and GPE1_LEN do not need * to be the same size." */ - Gpe0RegisterCount = (UINT16) DIV_2 (AcpiGbl_FADT->Gpe0BlkLen); Gpe1RegisterCount = (UINT16) DIV_2 (AcpiGbl_FADT->Gpe1BlkLen); AcpiGbl_GpeRegisterCount = Gpe0RegisterCount + Gpe1RegisterCount; @@ -457,7 +459,6 @@ AcpiEvGpeInitialize (void) /* * Allocate the Gpe information block */ - AcpiGbl_GpeRegisters = ACPI_MEM_CALLOCATE (AcpiGbl_GpeRegisterCount * sizeof (ACPI_GPE_REGISTERS)); if (!AcpiGbl_GpeRegisters) @@ -472,7 +473,6 @@ AcpiEvGpeInitialize (void) * There are eight distinct GP events per register. * Initialization to zeros is sufficient */ - AcpiGbl_GpeInfo = ACPI_MEM_CALLOCATE (MUL_8 (AcpiGbl_GpeRegisterCount) * sizeof (ACPI_GPE_LEVEL_INFO)); if (!AcpiGbl_GpeInfo) @@ -651,7 +651,6 @@ AcpiEvSaveMethodInfo ( * Now we can add this information to the GpeInfo block * for use during dispatch of this GPE. */ - AcpiGbl_GpeInfo [GpeNumber].Type = Type; AcpiGbl_GpeInfo [GpeNumber].MethodHandle = ObjHandle; @@ -659,7 +658,6 @@ AcpiEvSaveMethodInfo ( /* * Enable the GPE (SCIs should be disabled at this point) */ - AcpiHwEnableGpe (GpeNumber); ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Registered GPE method %s as GPE number %X\n", @@ -741,16 +739,16 @@ AcpiEvGpeDetect (void) */ for (i = 0; i < AcpiGbl_GpeRegisterCount; i++) { - AcpiOsReadPort (AcpiGbl_GpeRegisters[i].StatusAddr, + AcpiOsReadPort (AcpiGbl_GpeRegisters[i].StatusAddr, &AcpiGbl_GpeRegisters[i].Status, 8); - AcpiOsReadPort (AcpiGbl_GpeRegisters[i].EnableAddr, + AcpiOsReadPort (AcpiGbl_GpeRegisters[i].EnableAddr, &AcpiGbl_GpeRegisters[i].Enable, 8); ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS, "GPE block at %X - Enable %08X Status %08X\n", - AcpiGbl_GpeRegisters[i].EnableAddr, - AcpiGbl_GpeRegisters[i].Status, + AcpiGbl_GpeRegisters[i].EnableAddr, + AcpiGbl_GpeRegisters[i].Status, AcpiGbl_GpeRegisters[i].Enable)); /* First check if there is anything active at all in this register */ @@ -874,6 +872,7 @@ AcpiEvGpeDispatch ( { ACPI_GPE_LEVEL_INFO GpeInfo; + FUNCTION_TRACE ("EvGpeDispatch"); diff --git a/sys/contrib/dev/acpica/evmisc.c b/sys/contrib/dev/acpica/evmisc.c index 9421704..8f5d157 100644 --- a/sys/contrib/dev/acpica/evmisc.c +++ b/sys/contrib/dev/acpica/evmisc.c @@ -2,7 +2,7 @@ * * Module Name: evmisc - ACPI device notification handler dispatch * and ACPI Global Lock support - * $Revision: 32 $ + * $Revision: 33 $ * *****************************************************************************/ @@ -158,7 +158,6 @@ AcpiEvQueueNotifyRequest ( * For value 0x80 (Status Change) on the power button or sleep button, * initiate soft-off or sleep operation? */ - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Dispatching Notify(%X) on node %p\n", NotifyValue, Node)); @@ -189,7 +188,6 @@ AcpiEvQueueNotifyRequest ( /* * Get the notify object attached to the device Node */ - ObjDesc = AcpiNsGetAttachedObject (Node); if (ObjDesc) { @@ -282,11 +280,13 @@ AcpiEvNotifyDispatch ( ACPI_OPERAND_OBJECT *HandlerObj; + FUNCTION_ENTRY (); + + /* * We will invoke a global notify handler if installed. * This is done _before_ we invoke the per-device handler attached to the device. */ - if (NotifyInfo->Notify.Value <= MAX_SYS_NOTIFY) { /* Global system notification handler */ @@ -326,7 +326,6 @@ AcpiEvNotifyDispatch ( HandlerObj->NotifyHandler.Context); } - /* All done with the info object */ AcpiUtDeleteGenericState (NotifyInfo); @@ -387,7 +386,6 @@ AcpiEvGlobalLockHandler ( * If we don't get it now, it will be marked pending and we will * take another interrupt when it becomes free. */ - GlobalLock = AcpiGbl_FACS->GlobalLock; ACPI_ACQUIRE_GLOBAL_LOCK (GlobalLock, Acquired); if (Acquired) @@ -512,14 +510,12 @@ AcpiEvAcquireGlobalLock(void) * 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")); /* * Acquire the global lock semaphore first. * Since this wait will block, we must release the interpreter */ - Status = AcpiExSystemWaitSemaphore (AcpiGbl_GlobalLockSemaphore, ACPI_UINT32_MAX); return_ACPI_STATUS (Status); @@ -543,6 +539,7 @@ AcpiEvReleaseGlobalLock (void) FUNCTION_TRACE ("EvReleaseGlobalLock"); + if (!AcpiGbl_GlobalLockThreadCount) { REPORT_WARNING(("Global Lock has not be acquired, cannot release\n")); @@ -561,7 +558,6 @@ AcpiEvReleaseGlobalLock (void) * No more threads holding lock, we can do the actual hardware * release */ - GlobalLock = AcpiGbl_FACS->GlobalLock; ACPI_RELEASE_GLOBAL_LOCK (GlobalLock, Pending); AcpiGbl_GlobalLockAcquired = FALSE; diff --git a/sys/contrib/dev/acpica/evregion.c b/sys/contrib/dev/acpica/evregion.c index 1537af0..b708a97 100644 --- a/sys/contrib/dev/acpica/evregion.c +++ b/sys/contrib/dev/acpica/evregion.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: evregion - ACPI AddressSpace (OpRegion) handler dispatch - * $Revision: 107 $ + * $Revision: 109 $ * *****************************************************************************/ @@ -148,6 +148,7 @@ AcpiEvInstallDefaultAddressSpaceHandlers ( FUNCTION_TRACE ("EvInstallDefaultAddressSpaceHandlers"); + /* * All address spaces (PCI Config, EC, SMBus) are scope dependent * and registration must occur for a specific device. In the case @@ -163,7 +164,6 @@ AcpiEvInstallDefaultAddressSpaceHandlers ( * NOTE: We ignore AE_EXIST because this means that a handler has * already been installed (via AcpiInstallAddressSpaceHandler) */ - Status = AcpiInstallAddressSpaceHandler (AcpiGbl_RootNode, ACPI_ADR_SPACE_SYSTEM_MEMORY, ACPI_DEFAULT_HANDLER, NULL, NULL); @@ -239,7 +239,6 @@ AcpiEvExecuteRegMethod ( * 0 for disconnecting the handler * Passed as a parameter */ - AcpiUtInitStaticObject (&SpaceIdDesc); AcpiUtInitStaticObject (&FunctionDesc); @@ -405,9 +404,10 @@ AcpiEvAddressSpaceDispatch ( if (!(HandlerDesc->AddrHandler.Flags & ADDR_HANDLER_DEFAULT_INSTALLED)) { - /* We just returned from a non-default handler, we must re-enter the - interpreter */ - + /* + * We just returned from a non-default handler, we must re-enter the + * interpreter + */ AcpiExEnterInterpreter (); } @@ -443,12 +443,12 @@ AcpiEvDisassociateRegionFromHandler( FUNCTION_TRACE ("EvDisassociateRegionFromHandler"); + RegionContext = RegionObj->Region.Extra->Extra.RegionContext; /* * Get the address handler from the region object */ - HandlerObj = RegionObj->Region.AddrHandler; if (!HandlerObj) { @@ -462,7 +462,6 @@ AcpiEvDisassociateRegionFromHandler( /* * Find this region in the handler's list */ - ObjDesc = HandlerObj->AddrHandler.RegionList; LastObjPtr = &HandlerObj->AddrHandler.RegionList; @@ -577,7 +576,7 @@ AcpiEvAssociateRegionAndHandler ( FUNCTION_TRACE ("EvAssociateRegionAndHandler"); - ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, + ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, "Adding Region %p to address handler %p [%s]\n", RegionObj, HandlerObj, AcpiUtGetRegionName (RegionObj->Region.SpaceId))); @@ -669,7 +668,6 @@ AcpiEvAddrHandlerHelper ( * We only care about regions.and objects * that can have address handlers */ - if ((Node->Type != ACPI_TYPE_DEVICE) && (Node->Type != ACPI_TYPE_REGION) && (Node != AcpiGbl_RootNode)) diff --git a/sys/contrib/dev/acpica/evrgnini.c b/sys/contrib/dev/acpica/evrgnini.c index b08d5b7..280fa3a 100644 --- a/sys/contrib/dev/acpica/evrgnini.c +++ b/sys/contrib/dev/acpica/evrgnini.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: evrgnini- ACPI AddressSpace (OpRegion) init - * $Revision: 45 $ + * $Revision: 46 $ * *****************************************************************************/ @@ -358,7 +358,7 @@ AcpiEvPciConfigRegionSetup ( } /* - * The PCI bus number comes from the _BBN method + * The PCI bus number comes from the _BBN method */ Status = AcpiUtEvaluateNumericObject (METHOD_NAME__BBN, Node, &Temp); if (ACPI_SUCCESS (Status)) @@ -523,7 +523,7 @@ AcpiEvInitializeRegion ( /* * Found it! Now update the region and the handler */ - AcpiEvAssociateRegionAndHandler (HandlerObj, RegionObj, + AcpiEvAssociateRegionAndHandler (HandlerObj, RegionObj, AcpiNsLocked); return_ACPI_STATUS (AE_OK); } diff --git a/sys/contrib/dev/acpica/evsci.c b/sys/contrib/dev/acpica/evsci.c index d9dbd8b..9c674be 100644 --- a/sys/contrib/dev/acpica/evsci.c +++ b/sys/contrib/dev/acpica/evsci.c @@ -2,7 +2,7 @@ * * Module Name: evsci - System Control Interrupt configuration and * legacy to ACPI mode state transition functions - * $Revision: 73 $ + * $Revision: 74 $ * ******************************************************************************/ @@ -203,17 +203,15 @@ AcpiEvSciHandler (void *Context) UINT32 AcpiEvInstallSciHandler (void) { - UINT32 Except = AE_OK; + UINT32 Status = AE_OK; FUNCTION_TRACE ("EvInstallSciHandler"); - Except = AcpiOsInstallInterruptHandler ((UINT32) AcpiGbl_FADT->SciInt, - AcpiEvSciHandler, - NULL); - - return_ACPI_STATUS (Except); + Status = AcpiOsInstallInterruptHandler ((UINT32) AcpiGbl_FADT->SciInt, + AcpiEvSciHandler, NULL); + return_ACPI_STATUS (Status); } @@ -237,6 +235,7 @@ AcpiEvRemoveSciHandler (void) { FUNCTION_TRACE ("EvRemoveSciHandler"); + #if 0 /* TBD:[Investigate] Figure this out!! Disable all events first ??? */ @@ -375,7 +374,6 @@ AcpiEvTerminate (void) /* * Free global tables, etc. */ - if (AcpiGbl_GpeRegisters) { ACPI_MEM_FREE (AcpiGbl_GpeRegisters); diff --git a/sys/contrib/dev/acpica/evxface.c b/sys/contrib/dev/acpica/evxface.c index 18193cf..3aa29b5 100644 --- a/sys/contrib/dev/acpica/evxface.c +++ b/sys/contrib/dev/acpica/evxface.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: evxface - External interfaces for ACPI events - * $Revision: 111 $ + * $Revision: 112 $ * *****************************************************************************/ @@ -801,7 +801,6 @@ AcpiAcquireGlobalLock ( * TBD: [Restructure] add timeout param to internal interface, and * perhaps INTERPRETER_LOCKED */ - Status = AcpiEvAcquireGlobalLock (); AcpiExExitInterpreter (); diff --git a/sys/contrib/dev/acpica/evxfevnt.c b/sys/contrib/dev/acpica/evxfevnt.c index 33492ec..68adc2d 100644 --- a/sys/contrib/dev/acpica/evxfevnt.c +++ b/sys/contrib/dev/acpica/evxfevnt.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: evxfevnt - External Interfaces, ACPI event disable/enable - * $Revision: 34 $ + * $Revision: 36 $ * *****************************************************************************/ @@ -301,12 +301,11 @@ AcpiEnableEvent ( * Enable the requested fixed event (by writing a one to the * enable register bit) */ - AcpiHwRegisterBitAccess (ACPI_WRITE, ACPI_MTX_LOCK, RegisterId, 1); if (1 != AcpiHwRegisterBitAccess(ACPI_READ, ACPI_MTX_LOCK, RegisterId)) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Fixed event bit clear when it should be set\n")); return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE); } @@ -414,12 +413,11 @@ AcpiDisableEvent ( * Disable the requested fixed event (by writing a zero to the * enable register bit) */ - AcpiHwRegisterBitAccess (ACPI_WRITE, ACPI_MTX_LOCK, RegisterId, 0); if (0 != AcpiHwRegisterBitAccess(ACPI_READ, ACPI_MTX_LOCK, RegisterId)) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Fixed event bit set when it should be clear,\n")); return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE); } @@ -524,7 +522,6 @@ AcpiClearEvent ( * Clear the requested fixed event (By writing a one to the * status register bit) */ - AcpiHwRegisterBitAccess (ACPI_WRITE, ACPI_MTX_LOCK, RegisterId, 1); break; @@ -659,7 +656,6 @@ AcpiGetEventStatus ( Status = AE_BAD_PARAMETER; } - return_ACPI_STATUS (Status); } diff --git a/sys/contrib/dev/acpica/evxfregn.c b/sys/contrib/dev/acpica/evxfregn.c index 7e14873..cab8a43b 100644 --- a/sys/contrib/dev/acpica/evxfregn.c +++ b/sys/contrib/dev/acpica/evxfregn.c @@ -2,7 +2,7 @@ * * Module Name: evxfregn - External Interfaces, ACPI Operation Regions and * Address Spaces. - * $Revision: 35 $ + * $Revision: 36 $ * *****************************************************************************/ @@ -196,7 +196,6 @@ AcpiInstallAddressSpaceHandler ( * and the root. This is where the default handlers * get placed. */ - if ((Node->Type != ACPI_TYPE_DEVICE) && (Node->Type != ACPI_TYPE_PROCESSOR) && (Node->Type != ACPI_TYPE_THERMAL) && @@ -245,7 +244,6 @@ AcpiInstallAddressSpaceHandler ( /* * Check for an existing internal object */ - ObjDesc = AcpiNsGetAttachedObject (Node); if (ObjDesc) { @@ -361,7 +359,6 @@ AcpiInstallAddressSpaceHandler ( /* * Place this handler 1st on the list */ - HandlerObj->Common.ReferenceCount = (UINT16) (HandlerObj->Common.ReferenceCount + ObjDesc->Common.ReferenceCount - 1); @@ -448,7 +445,6 @@ AcpiRemoveAddressSpaceHandler ( /* * find the address handler the user requested */ - HandlerObj = ObjDesc->Device.AddrHandler; LastObjPtr = &ObjDesc->Device.AddrHandler; while (HandlerObj) @@ -456,7 +452,6 @@ AcpiRemoveAddressSpaceHandler ( /* * We have a handler, see if user requested this one */ - if(HandlerObj->AddrHandler.SpaceId == SpaceId) { /* diff --git a/sys/contrib/dev/acpica/exconfig.c b/sys/contrib/dev/acpica/exconfig.c index c79f8b8..9bdad16 100644 --- a/sys/contrib/dev/acpica/exconfig.c +++ b/sys/contrib/dev/acpica/exconfig.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: exconfig - Namespace reconfiguration (Load/Unload opcodes) - * $Revision: 37 $ + * $Revision: 41 $ * *****************************************************************************/ @@ -147,7 +147,7 @@ static ACPI_STATUS AcpiExLoadTableOp ( ACPI_OPERAND_OBJECT *RgnDesc, - ACPI_HANDLE *DdbHandle) + ACPI_OPERAND_OBJECT **DdbHandle) { ACPI_STATUS Status; ACPI_OPERAND_OBJECT *TableDesc = NULL; @@ -294,22 +294,22 @@ Cleanup: static ACPI_STATUS AcpiExUnloadTable ( - ACPI_HANDLE DdbHandle) + ACPI_OPERAND_OBJECT *DdbHandle) { ACPI_STATUS Status = AE_NOT_IMPLEMENTED; - ACPI_OPERAND_OBJECT *TableDesc = (ACPI_OPERAND_OBJECT *) DdbHandle; + ACPI_OPERAND_OBJECT *TableDesc = DdbHandle; ACPI_TABLE_DESC *TableInfo; FUNCTION_TRACE ("ExUnloadTable"); - /* Validate the handle */ - /* Although the handle is partially validated in AcpiExReconfiguration(), - * when it calls AcpiExResolveOperands(), the handle is more completely - * validated here. + /* + * Validate the handle + * Although the handle is partially validated in AcpiExReconfiguration(), + * when it calls AcpiExResolveOperands(), the handle is more completely + * validated here. */ - if ((!DdbHandle) || (!VALID_DESCRIPTOR_TYPE (DdbHandle, ACPI_DESC_TYPE_INTERNAL)) || (((ACPI_OPERAND_OBJECT *)DdbHandle)->Common.Type != @@ -318,7 +318,6 @@ AcpiExUnloadTable ( return_ACPI_STATUS (AE_BAD_PARAMETER); } - /* Get the actual table descriptor from the DdbHandle */ TableInfo = (ACPI_TABLE_DESC *) TableDesc->Reference.Object; @@ -327,7 +326,6 @@ AcpiExUnloadTable ( * Delete the entire namespace under this table Node * (Offset contains the TableId) */ - Status = AcpiNsDeleteNamespaceByOwner (TableInfo->TableId); if (ACPI_FAILURE (Status)) { @@ -364,56 +362,28 @@ AcpiExReconfiguration ( UINT16 Opcode, ACPI_WALK_STATE *WalkState) { + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_STATUS Status; - ACPI_OPERAND_OBJECT *RegionDesc = NULL; - ACPI_HANDLE *DdbHandle; FUNCTION_TRACE ("ExReconfiguration"); +#define DdbHandle Operand[0] +#define RegionDesc Operand[1] - /* Resolve the operands */ - - Status = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, AcpiPsGetOpcodeName (Opcode), - 2, "after AcpiExResolveOperands"); - /* Get the table handle, common for both opcodes */ - - Status |= AcpiDsObjStackPopObject ((ACPI_OPERAND_OBJECT **) &DdbHandle, - WalkState); switch (Opcode) { case AML_LOAD_OP: - /* Get the region or field descriptor */ - - Status |= AcpiDsObjStackPopObject (&RegionDesc, WalkState); - if (ACPI_FAILURE (Status)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "bad operand(s) (Load) (%s)\n", - AcpiFormatException (Status))); - - AcpiUtRemoveReference (RegionDesc); - return_ACPI_STATUS (Status); - } - - Status = AcpiExLoadTableOp (RegionDesc, DdbHandle); + Status = AcpiExLoadTableOp (RegionDesc, &DdbHandle); break; case AML_UNLOAD_OP: - if (ACPI_FAILURE (Status)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "bad operand(s) (unload) (%s)\n", - AcpiFormatException (Status))); - - return_ACPI_STATUS (Status); - } - Status = AcpiExUnloadTable (DdbHandle); break; diff --git a/sys/contrib/dev/acpica/exconvrt.c b/sys/contrib/dev/acpica/exconvrt.c index d8af78d..4c607ab 100644 --- a/sys/contrib/dev/acpica/exconvrt.c +++ b/sys/contrib/dev/acpica/exconvrt.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: exconvrt - Object conversion routines - * $Revision: 20 $ + * $Revision: 22 $ * *****************************************************************************/ @@ -158,6 +158,9 @@ AcpiExConvertToInteger ( UINT32 IntegerSize = sizeof (ACPI_INTEGER); + FUNCTION_ENTRY (); + + switch (ObjDesc->Common.Type) { case ACPI_TYPE_INTEGER: @@ -231,7 +234,6 @@ AcpiExConvertToInteger ( * Convert string to an integer * String must be hexadecimal as per the ACPI specification */ - Result = STRTOUL (Pointer, NULL, 16); break; @@ -298,6 +300,9 @@ AcpiExConvertToBuffer ( UINT8 *NewBuf; + FUNCTION_ENTRY (); + + switch (ObjDesc->Common.Type) { case ACPI_TYPE_INTEGER: @@ -376,7 +381,6 @@ AcpiExConvertToBuffer ( } - /******************************************************************************* * * FUNCTION: AcpiExConvertAscii @@ -404,23 +408,7 @@ AcpiExConvertToAscii ( UINT32 Length = sizeof (ACPI_INTEGER); - /******** TBD: DEBUG only - char *buf; - char sbuf[32]; -#include -#include - buf = _ui64toa (Integer, sbuf, 10); - printf ("1): %s\n", sbuf); - - AcpiExConvertToDecimalAscii (Integer, 0, sbuf); - printf ("2): %s\n", sbuf); - - - buf = _ui64toa (Integer, sbuf, 16); - printf ("3): %s\n", sbuf); - - printf ("4): %s\n", String); -***************************************************/ + FUNCTION_ENTRY (); switch (Base) @@ -479,7 +467,7 @@ AcpiExConvertToAscii ( /* * Since leading zeros are supressed, we must check for the case where - * the integer equals 0. + * the integer equals 0. * * Finally, null terminate the string and return the length */ @@ -525,6 +513,8 @@ AcpiExConvertToString ( UINT8 *Pointer; + FUNCTION_ENTRY (); + switch (ObjDesc->Common.Type) { @@ -731,7 +721,6 @@ AcpiExConvertToTargetType ( * If required by the target, * perform implicit conversion on the source before we store it. */ - switch (GET_CURRENT_ARG_TYPE (WalkState->OpInfo->RuntimeArgs)) { case ARGI_SIMPLE_TARGET: diff --git a/sys/contrib/dev/acpica/excreate.c b/sys/contrib/dev/acpica/excreate.c index 1718b12..f4b7439 100644 --- a/sys/contrib/dev/acpica/excreate.c +++ b/sys/contrib/dev/acpica/excreate.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: excreate - Named object creation - * $Revision: 64 $ + * $Revision: 65 $ * *****************************************************************************/ @@ -187,7 +187,6 @@ AcpiExCreateBufferField ( /* * Allocate a method object for this field unit */ - ObjDesc->BufferField.Extra = AcpiUtCreateInternalObject ( INTERNAL_TYPE_EXTRA); if (!ObjDesc->BufferField.Extra) @@ -201,7 +200,6 @@ AcpiExCreateBufferField ( * opcode and operands -- since the buffer and index * operands must be evaluated. */ - ObjDesc->BufferField.Extra->Extra.Pcode = AmlPtr; ObjDesc->BufferField.Extra->Extra.PcodeLength = AmlLength; ObjDesc->BufferField.Node = Node; @@ -235,7 +233,6 @@ AcpiExCreateBufferField ( * There is an existing object here; delete it and zero out the * object field within the Node */ - DUMP_PATHNAME (Node, "ExCreateBufferField: Removing Current Reference", ACPI_LV_BFIELD, _COMPONENT); @@ -381,8 +378,6 @@ AcpiExCreateEvent ( FUNCTION_TRACE ("ExCreateEvent"); - BREAKPOINT3; - ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_EVENT); if (!ObjDesc) { @@ -556,7 +551,6 @@ AcpiExCreateRegion ( /* * Allocate a method object for this region. */ - ObjDesc->Region.Extra = AcpiUtCreateInternalObject ( INTERNAL_TYPE_EXTRA); if (!ObjDesc->Region.Extra) @@ -569,7 +563,6 @@ AcpiExCreateRegion ( * Remember location in AML stream of address & length * operands since they need to be evaluated at run time. */ - ObjDesc->Region.Extra->Extra.Pcode = AmlPtr; ObjDesc->Region.Extra->Extra.PcodeLength = AmlLength; @@ -596,7 +589,6 @@ AcpiExCreateRegion ( * If we have a valid region, initialize it * Namespace is NOT locked at this point. */ - Status = AcpiEvInitializeRegion (ObjDesc, FALSE); if (ACPI_FAILURE (Status)) @@ -830,7 +822,6 @@ AcpiExCreateMethod ( * First argument is the Method Flags (contains parameter count for the * method) */ - ObjDesc->Method.MethodFlags = (UINT8) MethodFlags; ObjDesc->Method.ParamCount = (UINT8) (MethodFlags & METHOD_FLAGS_ARG_COUNT); diff --git a/sys/contrib/dev/acpica/exdump.c b/sys/contrib/dev/acpica/exdump.c index 6c48557..96e3fca 100644 --- a/sys/contrib/dev/acpica/exdump.c +++ b/sys/contrib/dev/acpica/exdump.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: exdump - Interpreter debug output routines - * $Revision: 116 $ + * $Revision: 122 $ * *****************************************************************************/ @@ -261,7 +261,7 @@ AcpiExDumpOperand ( if (VALID_DESCRIPTOR_TYPE (EntryDesc, ACPI_DESC_TYPE_NAMED)) { - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Node: \n")); + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%p NS Node: ", EntryDesc)); DUMP_ENTRY (EntryDesc, ACPI_LV_INFO); return (AE_OK); } @@ -275,7 +275,7 @@ AcpiExDumpOperand ( if (!VALID_DESCRIPTOR_TYPE (EntryDesc, ACPI_DESC_TYPE_INTERNAL)) { - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%p Not a local object \n", EntryDesc)); + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%p Is not a local object \n", EntryDesc)); DUMP_BUFFER (EntryDesc, sizeof (ACPI_OPERAND_OBJECT)); return (AE_OK); } @@ -414,22 +414,25 @@ AcpiExDumpOperand ( case ACPI_TYPE_INTEGER: - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "Number %lX\n", - EntryDesc->Integer.Value)); + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "Integer %8.8X%8.8X\n", + HIDWORD (EntryDesc->Integer.Value), + LODWORD (EntryDesc->Integer.Value))); break; case INTERNAL_TYPE_IF: - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "If [Number] %lX\n", - EntryDesc->Integer.Value)); + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "If [Integer] %8.8X%8.8X\n", + HIDWORD (EntryDesc->Integer.Value), + LODWORD (EntryDesc->Integer.Value))); break; case INTERNAL_TYPE_WHILE: - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "While [Number] %lX\n", - EntryDesc->Integer.Value)); + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "While [Integer] %8.8X%8.8X\n", + HIDWORD (EntryDesc->Integer.Value), + LODWORD (EntryDesc->Integer.Value))); break; @@ -438,14 +441,13 @@ AcpiExDumpOperand ( ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "Package count %X @ %p\n", EntryDesc->Package.Count, EntryDesc->Package.Elements)); - /* * If elements exist, package vector pointer is valid, * and debug_level exceeds 1, dump package's elements. */ if (EntryDesc->Package.Count && EntryDesc->Package.Elements && - GetDebugLevel () > 1) + AcpiDbgLevel > 1) { ACPI_OPERAND_OBJECT**Element; UINT16 ElementIndex; @@ -487,16 +489,16 @@ AcpiExDumpOperand ( case ACPI_TYPE_STRING: - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "String length %X @ %p\n\n", + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "String length %X @ %p \"", EntryDesc->String.Length, EntryDesc->String.Pointer)); - for (i=0; i < EntryDesc->String.Length; i++) + for (i = 0; i < EntryDesc->String.Length; i++) { ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "%c", EntryDesc->String.Pointer[i])); } - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "\n\n")); + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "\"\n")); break; @@ -646,7 +648,8 @@ AcpiExDumpOperands ( ACPI_OPERAND_OBJECT **EntryDesc; - PROC_NAME ("AcpiExDumpOperands"); + PROC_NAME ("ExDumpOperands"); + if (!Ident) { @@ -660,10 +663,8 @@ AcpiExDumpOperands ( ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "************* AcpiExDumpOperands Mode=%X ******************\n", - InterpreterMode)); - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "From %12s(%d) %s: %s\n", ModuleName, LineNumber, Ident, Note)); + "************* Operand Stack Contents (Opcode [%s], %d Operands)\n", + Ident, NumLevels)); if (NumLevels == 0) { @@ -682,6 +683,9 @@ AcpiExDumpOperands ( } } + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, + "************* Stack dump from %s(%d), %s\n", + ModuleName, LineNumber, Note)); return; } @@ -703,6 +707,9 @@ AcpiExDumpNode ( UINT32 Flags) { + FUNCTION_ENTRY (); + + if (!Flags) { if (!((ACPI_LV_OBJECTS & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer))) @@ -740,7 +747,7 @@ AcpiExDumpObjectDescriptor ( ACPI_OPERAND_OBJECT *ObjDesc, UINT32 Flags) { - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; FUNCTION_TRACE ("ExDumpObjectDescriptor"); @@ -748,7 +755,7 @@ AcpiExDumpObjectDescriptor ( if (!Flags) { - if (!((ACPI_DB_OBJECTS & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer))) + if (!((ACPI_LV_OBJECTS & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer))) { return; } diff --git a/sys/contrib/dev/acpica/exdyadic.c b/sys/contrib/dev/acpica/exdyadic.c index e542f64..5464383 100644 --- a/sys/contrib/dev/acpica/exdyadic.c +++ b/sys/contrib/dev/acpica/exdyadic.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: exdyadic - ACPI AML execution for dyadic (2-operand) operators - * $Revision: 85 $ + * $Revision: 88 $ * *****************************************************************************/ @@ -159,6 +159,9 @@ AcpiExDoConcatenate ( UINT32 IntegerSize = sizeof (ACPI_INTEGER); + FUNCTION_ENTRY (); + + /* * There are three cases to handle: * 1) Two Integers concatenated to produce a buffer @@ -328,8 +331,7 @@ AcpiExDyadic1 ( UINT16 Opcode, ACPI_WALK_STATE *WalkState) { - ACPI_OPERAND_OBJECT *ObjDesc = NULL; - ACPI_OPERAND_OBJECT *ValDesc = NULL; + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_NAMESPACE_NODE *Node; ACPI_STATUS Status = AE_OK; @@ -337,44 +339,24 @@ AcpiExDyadic1 ( FUNCTION_TRACE_PTR ("ExDyadic1", WALK_OPERANDS); - /* Resolve all operands */ - - Status = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, AcpiPsGetOpcodeName (Opcode), - 2, "after AcpiExResolveOperands"); - - /* Get the operands */ - - Status |= AcpiDsObjStackPopObject (&ValDesc, WalkState); - Status |= AcpiDsObjStackPopObject (&ObjDesc, WalkState); - if (ACPI_FAILURE (Status)) - { - /* Invalid parameters on object stack */ - - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "(%s) bad operand(s) %s\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status))); - - goto Cleanup; - } - /* Examine the opcode */ switch (Opcode) { - /* DefNotify := NotifyOp NotifyObject NotifyValue */ + /* DefNotify := NotifyOp (0)NotifyObject (1)NotifyValue */ case AML_NOTIFY_OP: /* The ObjDesc is actually an Node */ - Node = (ACPI_NAMESPACE_NODE *) ObjDesc; - ObjDesc = NULL; + Node = (ACPI_NAMESPACE_NODE *) Operand[0]; + Operand[0] = NULL; /* Object must be a device or thermal zone */ - if (Node && ValDesc) + if (Node && Operand[1]) { switch (Node->Type) { @@ -388,14 +370,13 @@ AcpiExDyadic1 ( * from this thread -- because handlers may in turn run other * control methods. */ - Status = AcpiEvQueueNotifyRequest (Node, - (UINT32) ValDesc->Integer.Value); + (UINT32) Operand[1]->Integer.Value); break; default: ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unexpected notify object type %X\n", - ObjDesc->Common.Type)); + Operand[0]->Common.Type)); Status = AE_AML_OPERAND_TYPE; break; @@ -410,12 +391,11 @@ AcpiExDyadic1 ( } -Cleanup: /* Always delete both operands */ - AcpiUtRemoveReference (ValDesc); - AcpiUtRemoveReference (ObjDesc); + AcpiUtRemoveReference (Operand[1]); + AcpiUtRemoveReference (Operand[0]); return_ACPI_STATUS (Status); @@ -445,53 +425,15 @@ AcpiExDyadic2R ( ACPI_WALK_STATE *WalkState, ACPI_OPERAND_OBJECT **ReturnDesc) { - ACPI_OPERAND_OBJECT *ObjDesc = NULL; - ACPI_OPERAND_OBJECT *ObjDesc2 = NULL; - ACPI_OPERAND_OBJECT *ResDesc = NULL; - ACPI_OPERAND_OBJECT *ResDesc2 = NULL; + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_OPERAND_OBJECT *RetDesc = NULL; ACPI_OPERAND_OBJECT *RetDesc2 = NULL; ACPI_STATUS Status = AE_OK; - UINT32 NumOperands = 3; FUNCTION_TRACE_U32 ("ExDyadic2R", Opcode); - /* Resolve all operands */ - - Status = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, AcpiPsGetOpcodeName (Opcode), - NumOperands, "after AcpiExResolveOperands"); - - if (ACPI_FAILURE (Status)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "(%s) Could not resolve operand(s) (%s)\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status))); - - goto Cleanup; - } - - /* Get all operands */ - - if (AML_DIVIDE_OP == Opcode) - { - NumOperands = 4; - Status |= AcpiDsObjStackPopObject (&ResDesc2, WalkState); - } - - Status |= AcpiDsObjStackPopObject (&ResDesc, WalkState); - Status |= AcpiDsObjStackPopObject (&ObjDesc2, WalkState); - Status |= AcpiDsObjStackPopObject (&ObjDesc, WalkState); - if (ACPI_FAILURE (Status)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "(%s) bad operand(s) (%s)\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status))); - - goto Cleanup; - } - - /* Create an internal return object if necessary */ switch (Opcode) @@ -523,7 +465,6 @@ AcpiExDyadic2R ( /* * Execute the opcode */ - switch (Opcode) { @@ -531,8 +472,8 @@ AcpiExDyadic2R ( case AML_ADD_OP: - RetDesc->Integer.Value = ObjDesc->Integer.Value + - ObjDesc2->Integer.Value; + RetDesc->Integer.Value = Operand[0]->Integer.Value + + Operand[1]->Integer.Value; break; @@ -540,8 +481,8 @@ AcpiExDyadic2R ( case AML_BIT_AND_OP: - RetDesc->Integer.Value = ObjDesc->Integer.Value & - ObjDesc2->Integer.Value; + RetDesc->Integer.Value = Operand[0]->Integer.Value & + Operand[1]->Integer.Value; break; @@ -549,8 +490,8 @@ AcpiExDyadic2R ( case AML_BIT_NAND_OP: - RetDesc->Integer.Value = ~(ObjDesc->Integer.Value & - ObjDesc2->Integer.Value); + RetDesc->Integer.Value = ~(Operand[0]->Integer.Value & + Operand[1]->Integer.Value); break; @@ -558,8 +499,8 @@ AcpiExDyadic2R ( case AML_BIT_OR_OP: - RetDesc->Integer.Value = ObjDesc->Integer.Value | - ObjDesc2->Integer.Value; + RetDesc->Integer.Value = Operand[0]->Integer.Value | + Operand[1]->Integer.Value; break; @@ -567,8 +508,8 @@ AcpiExDyadic2R ( case AML_BIT_NOR_OP: - RetDesc->Integer.Value = ~(ObjDesc->Integer.Value | - ObjDesc2->Integer.Value); + RetDesc->Integer.Value = ~(Operand[0]->Integer.Value | + Operand[1]->Integer.Value); break; @@ -576,8 +517,8 @@ AcpiExDyadic2R ( case AML_BIT_XOR_OP: - RetDesc->Integer.Value = ObjDesc->Integer.Value ^ - ObjDesc2->Integer.Value; + RetDesc->Integer.Value = Operand[0]->Integer.Value ^ + Operand[1]->Integer.Value; break; @@ -585,7 +526,7 @@ AcpiExDyadic2R ( case AML_DIVIDE_OP: - if (!ObjDesc2->Integer.Value) + if (!Operand[1]->Integer.Value) { REPORT_ERROR (("DivideOp: Divide by zero\n")); @@ -603,13 +544,13 @@ AcpiExDyadic2R ( /* Remainder (modulo) */ - RetDesc->Integer.Value = ACPI_MODULO (ObjDesc->Integer.Value, - ObjDesc2->Integer.Value); + RetDesc->Integer.Value = ACPI_MODULO (Operand[0]->Integer.Value, + Operand[1]->Integer.Value); /* Result (what we used to call the quotient) */ - RetDesc2->Integer.Value = ACPI_DIVIDE (ObjDesc->Integer.Value, - ObjDesc2->Integer.Value); + RetDesc2->Integer.Value = ACPI_DIVIDE (Operand[0]->Integer.Value, + Operand[1]->Integer.Value); break; @@ -617,7 +558,7 @@ AcpiExDyadic2R ( case AML_MOD_OP: /* ACPI 2.0 */ - if (!ObjDesc2->Integer.Value) + if (!Operand[1]->Integer.Value) { REPORT_ERROR (("ModOp: Divide by zero\n")); @@ -628,8 +569,8 @@ AcpiExDyadic2R ( /* Remainder (modulo) */ - RetDesc->Integer.Value = ACPI_MODULO (ObjDesc->Integer.Value, - ObjDesc2->Integer.Value); + RetDesc->Integer.Value = ACPI_MODULO (Operand[0]->Integer.Value, + Operand[1]->Integer.Value); break; @@ -637,8 +578,8 @@ AcpiExDyadic2R ( case AML_MULTIPLY_OP: - RetDesc->Integer.Value = ObjDesc->Integer.Value * - ObjDesc2->Integer.Value; + RetDesc->Integer.Value = Operand[0]->Integer.Value * + Operand[1]->Integer.Value; break; @@ -646,8 +587,8 @@ AcpiExDyadic2R ( case AML_SHIFT_LEFT_OP: - RetDesc->Integer.Value = ObjDesc->Integer.Value << - ObjDesc2->Integer.Value; + RetDesc->Integer.Value = Operand[0]->Integer.Value << + Operand[1]->Integer.Value; break; @@ -655,8 +596,8 @@ AcpiExDyadic2R ( case AML_SHIFT_RIGHT_OP: - RetDesc->Integer.Value = ObjDesc->Integer.Value >> - ObjDesc2->Integer.Value; + RetDesc->Integer.Value = Operand[0]->Integer.Value >> + Operand[1]->Integer.Value; break; @@ -664,8 +605,8 @@ AcpiExDyadic2R ( case AML_SUBTRACT_OP: - RetDesc->Integer.Value = ObjDesc->Integer.Value - - ObjDesc2->Integer.Value; + RetDesc->Integer.Value = Operand[0]->Integer.Value - + Operand[1]->Integer.Value; break; @@ -680,18 +621,18 @@ AcpiExDyadic2R ( * guaranteed to be either Integer/String/Buffer by the operand * resolution mechanism above. */ - switch (ObjDesc->Common.Type) + switch (Operand[0]->Common.Type) { case ACPI_TYPE_INTEGER: - Status = AcpiExConvertToInteger (ObjDesc2, &ObjDesc2, WalkState); + Status = AcpiExConvertToInteger (Operand[1], &Operand[1], WalkState); break; case ACPI_TYPE_STRING: - Status = AcpiExConvertToString (ObjDesc2, &ObjDesc2, 16, ACPI_UINT32_MAX, WalkState); + Status = AcpiExConvertToString (Operand[1], &Operand[1], 16, ACPI_UINT32_MAX, WalkState); break; case ACPI_TYPE_BUFFER: - Status = AcpiExConvertToBuffer (ObjDesc2, &ObjDesc2, WalkState); + Status = AcpiExConvertToBuffer (Operand[1], &Operand[1], WalkState); break; default: @@ -709,7 +650,7 @@ AcpiExDyadic2R ( * (Both are Integer, String, or Buffer), and we can now perform the * concatenation. */ - Status = AcpiExDoConcatenate (ObjDesc, ObjDesc2, &RetDesc, WalkState); + Status = AcpiExDoConcatenate (Operand[0], Operand[1], &RetDesc, WalkState); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -721,8 +662,8 @@ AcpiExDyadic2R ( case AML_TO_STRING_OP: /* ACPI 2.0 */ - Status = AcpiExConvertToString (ObjDesc, &RetDesc, 16, - (UINT32) ObjDesc2->Integer.Value, WalkState); + Status = AcpiExConvertToString (Operand[0], &RetDesc, 16, + (UINT32) Operand[1]->Integer.Value, WalkState); break; @@ -745,12 +686,11 @@ AcpiExDyadic2R ( /* - * Store the result of the operation (which is now in ObjDesc) into + * Store the result of the operation (which is now in Operand[0]) into * the result descriptor, or the location pointed to by the result - * descriptor (ResDesc). + * descriptor (Operand[2]). */ - - Status = AcpiExStore (RetDesc, ResDesc, WalkState); + Status = AcpiExStore (RetDesc, Operand[2], WalkState); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -758,14 +698,19 @@ AcpiExDyadic2R ( if (AML_DIVIDE_OP == Opcode) { - Status = AcpiExStore (RetDesc2, ResDesc2, WalkState); + Status = AcpiExStore (RetDesc2, Operand[3], WalkState); /* * Since the remainder is not returned, remove a reference to * the object we created earlier */ + AcpiUtRemoveReference (RetDesc); + *ReturnDesc = RetDesc2; + } - AcpiUtRemoveReference (RetDesc2); + else + { + *ReturnDesc = RetDesc; } @@ -773,8 +718,8 @@ Cleanup: /* Always delete the operands */ - AcpiUtRemoveReference (ObjDesc); - AcpiUtRemoveReference (ObjDesc2); + AcpiUtRemoveReference (Operand[0]); + AcpiUtRemoveReference (Operand[1]); /* Delete return object on error */ @@ -783,8 +728,8 @@ Cleanup: { /* On failure, delete the result ops */ - AcpiUtRemoveReference (ResDesc); - AcpiUtRemoveReference (ResDesc2); + AcpiUtRemoveReference (Operand[2]); + AcpiUtRemoveReference (Operand[3]); if (RetDesc) { @@ -797,7 +742,6 @@ Cleanup: /* Set the return object and exit */ - *ReturnDesc = RetDesc; return_ACPI_STATUS (Status); } @@ -824,8 +768,7 @@ AcpiExDyadic2S ( ACPI_WALK_STATE *WalkState, ACPI_OPERAND_OBJECT **ReturnDesc) { - ACPI_OPERAND_OBJECT *ObjDesc; - ACPI_OPERAND_OBJECT *TimeDesc; + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_OPERAND_OBJECT *RetDesc = NULL; ACPI_STATUS Status; @@ -833,26 +776,6 @@ AcpiExDyadic2S ( FUNCTION_TRACE_PTR ("ExDyadic2S", WALK_OPERANDS); - /* Resolve all operands */ - - Status = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, AcpiPsGetOpcodeName (Opcode), - 2, "after AcpiExResolveOperands"); - - /* Get all operands */ - - Status |= AcpiDsObjStackPopObject (&TimeDesc, WalkState); - Status |= AcpiDsObjStackPopObject (&ObjDesc, WalkState); - if (ACPI_FAILURE (Status)) - { - /* Invalid parameters on object stack */ - - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "(%s) bad operand(s) %s\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status))); - - goto Cleanup; - } - /* Create the internal return object */ @@ -877,7 +800,7 @@ AcpiExDyadic2S ( case AML_ACQUIRE_OP: - Status = AcpiExAcquireMutex (TimeDesc, ObjDesc, WalkState); + Status = AcpiExAcquireMutex (Operand[1], Operand[0], WalkState); break; @@ -885,7 +808,7 @@ AcpiExDyadic2S ( case AML_WAIT_OP: - Status = AcpiExSystemWaitEvent (TimeDesc, ObjDesc); + Status = AcpiExSystemWaitEvent (Operand[1], Operand[0]); break; @@ -901,7 +824,6 @@ AcpiExDyadic2S ( * Return a boolean indicating if operation timed out * (TRUE) or not (FALSE) */ - if (Status == AE_TIME) { RetDesc->Integer.Value = ACPI_INTEGER_MAX; /* TRUE, op timed out */ @@ -913,8 +835,8 @@ Cleanup: /* Delete params */ - AcpiUtRemoveReference (TimeDesc); - AcpiUtRemoveReference (ObjDesc); + AcpiUtRemoveReference (Operand[1]); + AcpiUtRemoveReference (Operand[0]); /* Delete return object on error */ @@ -957,37 +879,15 @@ AcpiExDyadic2 ( ACPI_WALK_STATE *WalkState, ACPI_OPERAND_OBJECT **ReturnDesc) { - ACPI_OPERAND_OBJECT *ObjDesc; - ACPI_OPERAND_OBJECT *ObjDesc2; + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_OPERAND_OBJECT *RetDesc = NULL; - ACPI_STATUS Status; + ACPI_STATUS Status = AE_OK; BOOLEAN Lboolean; FUNCTION_TRACE_PTR ("ExDyadic2", WALK_OPERANDS); - /* Resolve all operands */ - - Status = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, AcpiPsGetOpcodeName (Opcode), - 2, "after AcpiExResolveOperands"); - - /* Get all operands */ - - Status |= AcpiDsObjStackPopObject (&ObjDesc2, WalkState); - Status |= AcpiDsObjStackPopObject (&ObjDesc, WalkState); - if (ACPI_FAILURE (Status)) - { - /* Invalid parameters on object stack */ - - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "(%s) bad operand(s) %s\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status))); - - goto Cleanup; - } - - /* Create the internal return object */ RetDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER); @@ -1000,7 +900,6 @@ AcpiExDyadic2 ( /* * Execute the Opcode */ - Lboolean = FALSE; switch (Opcode) { @@ -1009,8 +908,8 @@ AcpiExDyadic2 ( case AML_LAND_OP: - Lboolean = (BOOLEAN) (ObjDesc->Integer.Value && - ObjDesc2->Integer.Value); + Lboolean = (BOOLEAN) (Operand[0]->Integer.Value && + Operand[1]->Integer.Value); break; @@ -1018,8 +917,8 @@ AcpiExDyadic2 ( case AML_LEQUAL_OP: - Lboolean = (BOOLEAN) (ObjDesc->Integer.Value == - ObjDesc2->Integer.Value); + Lboolean = (BOOLEAN) (Operand[0]->Integer.Value == + Operand[1]->Integer.Value); break; @@ -1027,8 +926,8 @@ AcpiExDyadic2 ( case AML_LGREATER_OP: - Lboolean = (BOOLEAN) (ObjDesc->Integer.Value > - ObjDesc2->Integer.Value); + Lboolean = (BOOLEAN) (Operand[0]->Integer.Value > + Operand[1]->Integer.Value); break; @@ -1036,8 +935,8 @@ AcpiExDyadic2 ( case AML_LLESS_OP: - Lboolean = (BOOLEAN) (ObjDesc->Integer.Value < - ObjDesc2->Integer.Value); + Lboolean = (BOOLEAN) (Operand[0]->Integer.Value < + Operand[1]->Integer.Value); break; @@ -1045,8 +944,8 @@ AcpiExDyadic2 ( case AML_LOR_OP: - Lboolean = (BOOLEAN) (ObjDesc->Integer.Value || - ObjDesc2->Integer.Value); + Lboolean = (BOOLEAN) (Operand[0]->Integer.Value || + Operand[1]->Integer.Value); break; @@ -1084,8 +983,8 @@ Cleanup: /* Always delete operands */ - AcpiUtRemoveReference (ObjDesc); - AcpiUtRemoveReference (ObjDesc2); + AcpiUtRemoveReference (Operand[0]); + AcpiUtRemoveReference (Operand[1]); /* Delete return object on error */ diff --git a/sys/contrib/dev/acpica/exfield.c b/sys/contrib/dev/acpica/exfield.c index 9c9e9e7..49f3062 100644 --- a/sys/contrib/dev/acpica/exfield.c +++ b/sys/contrib/dev/acpica/exfield.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: exfield - ACPI AML (p-code) execution - field manipulation - * $Revision: 92 $ + * $Revision: 95 $ * *****************************************************************************/ @@ -176,7 +176,6 @@ AcpiExReadDataFromField ( * * Note: Field.length is in bits. */ - Length = ROUND_BITS_UP_TO_BYTES (ObjDesc->Field.BitLength); if (Length > sizeof (ACPI_INTEGER)) @@ -373,7 +372,7 @@ AcpiExAccessBufferField ( ACPI_STATUS Status; - FUNCTION_TRACE_PTR ("AcpiExAccessBufferField", ObjDesc); + FUNCTION_TRACE_PTR ("ExAccessBufferField", ObjDesc); /* @@ -483,7 +482,6 @@ AcpiExAccessBankField ( * BankField ASL declaration. The BankRegister is always a Field in * an operation region. */ - Status = AcpiExCommonAccessField (ACPI_WRITE, ObjDesc->BankField.BankRegisterObj, &ObjDesc->BankField.Value, @@ -604,12 +602,11 @@ AcpiExCommonAccessField ( ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Obj=%p Type=%X Buf=%p Len=%X\n", ObjDesc, ObjDesc->Common.Type, Buffer, BufferLength)); ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Mode=%d BitLen=%X BitOff=%X ByteOff=%X\n", - Mode, ObjDesc->CommonField.BitLength, + Mode, ObjDesc->CommonField.BitLength, ObjDesc->CommonField.StartFieldBitOffset, ObjDesc->CommonField.BaseByteOffset)); - /* Perform the actual read or write of the field */ switch (Mode) diff --git a/sys/contrib/dev/acpica/exfldio.c b/sys/contrib/dev/acpica/exfldio.c index 5e21ea1..feca92c 100644 --- a/sys/contrib/dev/acpica/exfldio.c +++ b/sys/contrib/dev/acpica/exfldio.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: exfldio - Aml Field I/O - * $Revision: 62 $ + * $Revision: 64 $ * *****************************************************************************/ @@ -155,6 +155,7 @@ AcpiExSetupField ( FUNCTION_TRACE_U32 ("ExSetupField", FieldDatumByteOffset); + RgnDesc = ObjDesc->CommonField.RegionObj; if (ACPI_TYPE_REGION != RgnDesc->Common.Type) @@ -191,7 +192,7 @@ AcpiExSetupField ( { if (RgnDesc->Region.Length < ObjDesc->CommonField.AccessByteWidth) { - /* + /* * This is the case where the AccessType (AccWord, etc.) is wider * than the region itself. For example, a region of length one * byte, and a field with Dword access specified. @@ -207,7 +208,7 @@ AcpiExSetupField ( */ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Field base+offset+width %X+%X+%X exceeds region size (%X bytes) field=%p region=%p\n", - ObjDesc->CommonField.BaseByteOffset, FieldDatumByteOffset, + ObjDesc->CommonField.BaseByteOffset, FieldDatumByteOffset, ObjDesc->CommonField.AccessByteWidth, RgnDesc->Region.Length, ObjDesc, RgnDesc)); @@ -349,10 +350,10 @@ AcpiExReadFieldDatum ( * * PARAMETERS: MergedDatum - Value to store * Buffer - Receiving buffer - * ByteGranularity - 1/2/4 Granularity of the field + * ByteGranularity - 1/2/4 Granularity of the field * (aka Datum Size) * Offset - Datum offset into the buffer - * + * * RETURN: none * * DESCRIPTION: Store the merged datum to the buffer according to the @@ -368,6 +369,9 @@ AcpiExGetBufferDatum( UINT32 Offset) { + FUNCTION_ENTRY (); + + switch (ByteGranularity) { case ACPI_FIELD_BYTE_GRANULARITY: @@ -387,14 +391,14 @@ AcpiExGetBufferDatum( /******************************************************************************* * - * FUNCTION: AcpiExSetBufferDatum + * FUNCTION: AcpiExSetBufferDatum * * PARAMETERS: MergedDatum - Value to store * Buffer - Receiving buffer - * ByteGranularity - 1/2/4 Granularity of the field + * ByteGranularity - 1/2/4 Granularity of the field * (aka Datum Size) * Offset - Datum offset into the buffer - * + * * RETURN: none * * DESCRIPTION: Store the merged datum to the buffer according to the @@ -410,6 +414,9 @@ AcpiExSetBufferDatum ( UINT32 Offset) { + FUNCTION_ENTRY (); + + switch (ByteGranularity) { case ACPI_FIELD_BYTE_GRANULARITY: @@ -477,7 +484,7 @@ AcpiExExtractFromField ( ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "ByteLen=%x, DatumLen=%x, BitGran=%x, ByteGran=%x\n", - ByteFieldLength, DatumCount, ObjDesc->CommonField.AccessBitWidth, + ByteFieldLength, DatumCount, ObjDesc->CommonField.AccessBitWidth, ObjDesc->CommonField.AccessByteWidth)); @@ -518,7 +525,7 @@ AcpiExExtractFromField ( /* Store the datum to the caller buffer */ - AcpiExSetBufferDatum (MergedDatum, Buffer, ObjDesc->CommonField.AccessByteWidth, + AcpiExSetBufferDatum (MergedDatum, Buffer, ObjDesc->CommonField.AccessByteWidth, DatumOffset); return_ACPI_STATUS (AE_OK); @@ -567,28 +574,28 @@ AcpiExExtractFromField ( else { /* - * Put together the appropriate bits of the two raw data to make a + * Put together the appropriate bits of the two raw data to make a * single complete field datum * - * 1) Normalize the first datum down to bit 0 + * 1) Normalize the first datum down to bit 0 */ MergedDatum = (PreviousRawDatum >> ObjDesc->CommonField.StartFieldBitOffset); /* 2) Insert the second datum "above" the first datum */ MergedDatum |= (ThisRawDatum << ObjDesc->CommonField.DatumValidBits); - + if ((DatumOffset >= (DatumCount -1))) { /* * This is the last iteration of the loop. We need to clear - * any unused bits (bits that are not part of this field) that - * came from the last raw datum before we store the final + * any unused bits (bits that are not part of this field) that + * came from the last raw datum before we store the final * merged datum into the caller buffer. */ if (ObjDesc->CommonField.EndBufferValidBits) { - MergedDatum &= + MergedDatum &= MASK_BITS_ABOVE (ObjDesc->CommonField.EndBufferValidBits); } } @@ -599,11 +606,11 @@ AcpiExExtractFromField ( * Store the merged field datum in the caller's buffer, according to * the granularity of the field (size of each datum). */ - AcpiExSetBufferDatum (MergedDatum, Buffer, ObjDesc->CommonField.AccessByteWidth, + AcpiExSetBufferDatum (MergedDatum, Buffer, ObjDesc->CommonField.AccessByteWidth, DatumOffset); /* - * Save the raw datum that was just acquired since it may contain bits + * Save the raw datum that was just acquired since it may contain bits * of the *next* field datum. Update offsets */ PreviousRawDatum = ThisRawDatum; @@ -642,7 +649,6 @@ AcpiExWriteFieldDatum ( FUNCTION_TRACE_U32 ("ExWriteFieldDatum", FieldDatumByteOffset); - /* * BufferFields - Read from a Buffer * Other Fields - Read from a Operation Region. @@ -683,11 +689,11 @@ AcpiExWriteFieldDatum ( * 3) The current offset into the field */ RgnDesc = ObjDesc->CommonField.RegionObj; - Address = RgnDesc->Region.Address + + Address = RgnDesc->Region.Address + ObjDesc->CommonField.BaseByteOffset + FieldDatumByteOffset; - ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, + ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Store %X in Region %s(%X) at %8.8lX%8.8lX width %X\n", Value, AcpiUtGetRegionName (RgnDesc->Region.SpaceId), RgnDesc->Region.SpaceId, HIDWORD(Address), LODWORD(Address), @@ -700,7 +706,7 @@ AcpiExWriteFieldDatum ( if (Status == AE_NOT_IMPLEMENTED) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "**** Region type %s(%X) not implemented\n", AcpiUtGetRegionName (RgnDesc->Region.SpaceId), RgnDesc->Region.SpaceId)); @@ -708,7 +714,7 @@ AcpiExWriteFieldDatum ( else if (Status == AE_NOT_EXIST) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "**** Region type %s(%X) does not have a handler\n", AcpiUtGetRegionName (RgnDesc->Region.SpaceId), RgnDesc->Region.SpaceId)); @@ -775,18 +781,18 @@ AcpiExWriteFieldDatumWithUpdateRule ( case UPDATE_PRESERVE: - /* - * Check if update rule needs to be applied (not if mask is all - * ones) The left shift drops the bits we want to ignore. + /* + * Check if update rule needs to be applied (not if mask is all + * ones) The left shift drops the bits we want to ignore. */ - if ((~Mask << (sizeof (Mask) * 8 - + if ((~Mask << (sizeof (Mask) * 8 - ObjDesc->CommonField.AccessBitWidth)) != 0) { /* * Read the current contents of the byte/word/dword containing * the field, and merge with the new field value. */ - Status = AcpiExReadFieldDatum (ObjDesc, FieldDatumByteOffset, + Status = AcpiExReadFieldDatum (ObjDesc, FieldDatumByteOffset, &CurrentValue); MergedValue |= (CurrentValue & ~Mask); } @@ -821,7 +827,7 @@ AcpiExWriteFieldDatumWithUpdateRule ( /* Write the merged value */ - Status = AcpiExWriteFieldDatum (ObjDesc, FieldDatumByteOffset, + Status = AcpiExWriteFieldDatum (ObjDesc, FieldDatumByteOffset, MergedValue); ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Mask %X DatumOffset %X Value %X, MergedValue %X\n", @@ -865,7 +871,7 @@ AcpiExInsertIntoField ( /* - * Incoming buffer must be at least as long as the field, we do not + * Incoming buffer must be at least as long as the field, we do not * allow "partial" field writes. We do not care if the buffer is * larger than the field, this typically happens when an integer is * written to a field that is actually smaller than an integer. @@ -887,7 +893,7 @@ AcpiExInsertIntoField ( ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "ByteLen=%x, DatumLen=%x, BitGran=%x, ByteGran=%x\n", - ByteFieldLength, DatumCount, ObjDesc->CommonField.AccessBitWidth, + ByteFieldLength, DatumCount, ObjDesc->CommonField.AccessBitWidth, ObjDesc->CommonField.AccessByteWidth)); @@ -902,7 +908,7 @@ AcpiExInsertIntoField ( /* Get a single datum from the caller's buffer */ - AcpiExGetBufferDatum (&PreviousRawDatum, Buffer, + AcpiExGetBufferDatum (&PreviousRawDatum, Buffer, ObjDesc->CommonField.AccessByteWidth, DatumOffset); /* @@ -956,8 +962,8 @@ AcpiExInsertIntoField ( * We don't need to worry about the update rule for these data, because * all of the bits in each datum are part of the field. * - * The last datum must be special cased because it might contain bits - * that are not part of the field -- therefore the "update rule" must be + * The last datum must be special cased because it might contain bits + * that are not part of the field -- therefore the "update rule" must be * applied in Part3 below. */ while (DatumOffset < DatumCount) @@ -965,11 +971,11 @@ AcpiExInsertIntoField ( DatumOffset++; FieldDatumByteOffset += ObjDesc->CommonField.AccessByteWidth; - /* - * Get the next raw buffer datum. It may contain bits of the previous + /* + * Get the next raw buffer datum. It may contain bits of the previous * field datum */ - AcpiExGetBufferDatum (&ThisRawDatum, Buffer, + AcpiExGetBufferDatum (&ThisRawDatum, Buffer, ObjDesc->CommonField.AccessByteWidth, DatumOffset); /* Create the field datum based on the field alignment */ @@ -977,10 +983,10 @@ AcpiExInsertIntoField ( if (ObjDesc->CommonField.StartFieldBitOffset != 0) { /* - * Put together appropriate bits of the two raw buffer data to make + * Put together appropriate bits of the two raw buffer data to make * a single complete field datum */ - MergedDatum = + MergedDatum = (PreviousRawDatum >> ObjDesc->CommonField.DatumValidBits) | (ThisRawDatum << ObjDesc->CommonField.StartFieldBitOffset); } @@ -1001,8 +1007,8 @@ AcpiExInsertIntoField ( if ((DatumOffset == DatumCount) && ObjDesc->CommonField.EndFieldValidBits) { - /* - * Part3: + /* + * Part3: * This is the last datum and the field does not end on a datum boundary. * Build the partial datum and write with the update rule. */ @@ -1014,7 +1020,7 @@ AcpiExInsertIntoField ( /* Write the last datum with the update rule */ - Status = AcpiExWriteFieldDatumWithUpdateRule (ObjDesc, Mask, + Status = AcpiExWriteFieldDatumWithUpdateRule (ObjDesc, Mask, MergedDatum, FieldDatumByteOffset); if (ACPI_FAILURE (Status)) { @@ -1026,7 +1032,7 @@ AcpiExInsertIntoField ( { /* Normal case -- write the completed datum */ - Status = AcpiExWriteFieldDatum (ObjDesc, + Status = AcpiExWriteFieldDatum (ObjDesc, FieldDatumByteOffset, MergedDatum); if (ACPI_FAILURE (Status)) { @@ -1035,7 +1041,7 @@ AcpiExInsertIntoField ( } /* - * Save the most recent datum since it may contain bits of the *next* + * Save the most recent datum since it may contain bits of the *next* * field datum. Update current byte offset. */ PreviousRawDatum = ThisRawDatum; diff --git a/sys/contrib/dev/acpica/exmisc.c b/sys/contrib/dev/acpica/exmisc.c index ea9f888..173a0bc 100644 --- a/sys/contrib/dev/acpica/exmisc.c +++ b/sys/contrib/dev/acpica/exmisc.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes - * $Revision: 80 $ + * $Revision: 83 $ * *****************************************************************************/ @@ -129,88 +129,6 @@ MODULE_NAME ("exmisc") -/******************************************************************************* - * - * FUNCTION: AcpiExFatal - * - * PARAMETERS: none - * - * RETURN: Status. If the OS returns from the OSD call, we just keep - * on going. - * - * DESCRIPTION: Execute Fatal operator - * - * ACPI SPECIFICATION REFERENCES: - * DefFatal := FatalOp FatalType FatalCode FatalArg - * FatalType := ByteData - * FatalCode := DWordData - * FatalArg := TermArg=>Integer - * - ******************************************************************************/ - -ACPI_STATUS -AcpiExFatal ( - ACPI_WALK_STATE *WalkState) -{ - ACPI_OPERAND_OBJECT *TypeDesc; - ACPI_OPERAND_OBJECT *CodeDesc; - ACPI_OPERAND_OBJECT *ArgDesc; - ACPI_STATUS Status; - - - FUNCTION_TRACE ("ExFatal"); - - - /* Resolve operands */ - - Status = AcpiExResolveOperands (AML_FATAL_OP, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, - AcpiPsGetOpcodeName (AML_FATAL_OP), - 3, "after AcpiExResolveOperands"); - - /* Get operands */ - - Status |= AcpiDsObjStackPopObject (&ArgDesc, WalkState); - Status |= AcpiDsObjStackPopObject (&CodeDesc, WalkState); - Status |= AcpiDsObjStackPopObject (&TypeDesc, WalkState); - if (ACPI_FAILURE (Status)) - { - /* Invalid parameters on object stack */ - - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "bad operand(s) (Status=%X)\n", - Status)); - goto Cleanup; - } - - - /* DefFatal := FatalOp FatalType FatalCode FatalArg */ - - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "Type %x Code %x Arg %x <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", - TypeDesc->Integer.Value, CodeDesc->Integer.Value, ArgDesc->Integer.Value)); - - - /* - * TBD: [Unhandled] call OSD interface to notify OS of fatal error - * requiring shutdown! - */ - - -Cleanup: - - /* Free the operands */ - - AcpiUtRemoveReference (ArgDesc); - AcpiUtRemoveReference (CodeDesc); - AcpiUtRemoveReference (TypeDesc); - - - /* If we get back from the OS call, we might as well keep going. */ - - REPORT_WARNING (("An AML \"Fatal\" Opcode (FatalOp) was executed\n")); - return_ACPI_STATUS (AE_OK); -} - /******************************************************************************* * @@ -234,41 +152,19 @@ AcpiExTriadic ( ACPI_WALK_STATE *WalkState, ACPI_OPERAND_OBJECT **ReturnDesc) { - ACPI_OPERAND_OBJECT *ObjDesc1; - ACPI_OPERAND_OBJECT *ObjDesc2; - ACPI_OPERAND_OBJECT *ResDesc; + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_OPERAND_OBJECT *RetDesc = NULL; ACPI_OPERAND_OBJECT *TmpDesc; ACPI_SIGNAL_FATAL_INFO *Fatal; - ACPI_STATUS Status; - + ACPI_STATUS Status = AE_OK; FUNCTION_TRACE ("ExTriadic"); - /* Resolve operands */ - /* First operand can be either a package or a buffer */ - - Status = AcpiExResolveOperands (AML_INDEX_OP, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, - AcpiPsGetOpcodeName (AML_INDEX_OP), - 3, "after AcpiExResolveOperands"); - - /* Get all operands */ - - Status |= AcpiDsObjStackPopObject (&ResDesc, WalkState); - Status |= AcpiDsObjStackPopObject (&ObjDesc2, WalkState); - Status |= AcpiDsObjStackPopObject (&ObjDesc1, WalkState); - if (ACPI_FAILURE (Status)) - { - /* Invalid parameters on object stack */ - - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "bad operand(s) (Status=%X)\n", - Status)); - goto Cleanup; - } - +#define ObjDesc1 Operand[0] +#define ObjDesc2 Operand[1] +#define ResDesc Operand[2] switch (Opcode) @@ -280,7 +176,7 @@ AcpiExTriadic ( ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "FatalOp: Type %x Code %x Arg %x <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", - (UINT32) ObjDesc1->Integer.Value, (UINT32) ObjDesc2->Integer.Value, + (UINT32) ObjDesc1->Integer.Value, (UINT32) ObjDesc2->Integer.Value, (UINT32) ResDesc->Integer.Value)); @@ -303,7 +199,6 @@ AcpiExTriadic ( break; - case AML_MID_OP: /* DefMid := MidOp Source Index Length Result */ @@ -325,6 +220,7 @@ AcpiExTriadic ( Status = AE_NO_MEMORY; goto Cleanup; } + /* * At this point, the ObjDesc1 operand is either a Package or a Buffer */ @@ -396,7 +292,6 @@ AcpiExTriadic ( } - Cleanup: /* Always delete operands */ @@ -444,45 +339,22 @@ AcpiExHexadic ( ACPI_WALK_STATE *WalkState, ACPI_OPERAND_OBJECT **ReturnDesc) { - ACPI_OPERAND_OBJECT *PkgDesc; - ACPI_OPERAND_OBJECT *Op1Desc; - ACPI_OPERAND_OBJECT *V1Desc; - ACPI_OPERAND_OBJECT *Op2Desc; - ACPI_OPERAND_OBJECT *V2Desc; - ACPI_OPERAND_OBJECT *StartDesc; + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_OPERAND_OBJECT *RetDesc = NULL; - ACPI_STATUS Status; + ACPI_STATUS Status = AE_OK; UINT32 Index; UINT32 MatchValue = (UINT32) -1; FUNCTION_TRACE ("ExHexadic"); +#define PkgDesc Operand[0] +#define Op1Desc Operand[1] +#define V1Desc Operand[2] +#define Op2Desc Operand[3] +#define V2Desc Operand[4] +#define StartDesc Operand[5] - /* Resolve all operands */ - - Status = AcpiExResolveOperands (AML_MATCH_OP, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, - AcpiPsGetOpcodeName (AML_MATCH_OP), - 6, "after AcpiExResolveOperands"); - - /* Get all operands */ - - Status |= AcpiDsObjStackPopObject (&StartDesc, WalkState); - Status |= AcpiDsObjStackPopObject (&V2Desc, WalkState); - Status |= AcpiDsObjStackPopObject (&Op2Desc, WalkState); - Status |= AcpiDsObjStackPopObject (&V1Desc, WalkState); - Status |= AcpiDsObjStackPopObject (&Op1Desc, WalkState); - Status |= AcpiDsObjStackPopObject (&PkgDesc, WalkState); - - if (ACPI_FAILURE (Status)) - { - /* Invalid parameters on object stack */ - - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "bad operand(s) (Status=%X)\n", - Status)); - goto Cleanup; - } switch (Opcode) @@ -525,7 +397,6 @@ AcpiExHexadic ( * (its initial value) indicating that no match was found. When * returned as a Number, this will produce the Ones value as specified. */ - for ( ; Index < PkgDesc->Package.Count; ++Index) { /* @@ -686,7 +557,6 @@ AcpiExHexadic ( } - Cleanup: /* Free the operands */ diff --git a/sys/contrib/dev/acpica/exmonad.c b/sys/contrib/dev/acpica/exmonad.c index 9a4ea4c..07ad15d 100644 --- a/sys/contrib/dev/acpica/exmonad.c +++ b/sys/contrib/dev/acpica/exmonad.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exmonad - ACPI AML execution for monadic (1 operand) operators - * $Revision: 108 $ + * $Revision: 110 $ * *****************************************************************************/ @@ -208,6 +208,9 @@ Cleanup: return_ACPI_STATUS (Status); } +#define ObjDesc Operand[0] +#define ResDesc Operand[1] + /******************************************************************************* * @@ -227,43 +230,13 @@ AcpiExMonadic1 ( UINT16 Opcode, ACPI_WALK_STATE *WalkState) { - ACPI_OPERAND_OBJECT *ObjDesc = NULL; + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_STATUS Status; - ACPI_STATUS ResolveStatus; FUNCTION_TRACE_PTR ("ExMonadic1", WALK_OPERANDS); - /* Resolve the operand */ - - ResolveStatus = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, - AcpiPsGetOpcodeName (Opcode), - 1, "after AcpiExResolveOperands"); - - /* Get the operand */ - - Status = AcpiDsObjStackPopObject (&ObjDesc, WalkState); - - /* Check operand status */ - - if (ACPI_FAILURE (ResolveStatus)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "[%s]: Could not resolve operands, %s\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (ResolveStatus))); - - goto Cleanup; - } - - if (ACPI_FAILURE (Status)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "[%s]: bad operand(s) %s\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status))); - - goto Cleanup; - } - /* Examine the opcode */ switch (Opcode) @@ -321,7 +294,6 @@ AcpiExMonadic1 ( } /* switch */ -Cleanup: /* Always delete the operand */ @@ -350,13 +322,11 @@ AcpiExMonadic2R ( ACPI_WALK_STATE *WalkState, ACPI_OPERAND_OBJECT **ReturnDesc) { - ACPI_OPERAND_OBJECT *ObjDesc; - ACPI_OPERAND_OBJECT *ResDesc; + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_OPERAND_OBJECT *RetDesc = NULL; ACPI_OPERAND_OBJECT *RetDesc2 = NULL; UINT32 ResVal; - ACPI_STATUS Status; - ACPI_STATUS ResolveStatus; + ACPI_STATUS Status = AE_OK; UINT32 i; UINT32 j; ACPI_INTEGER Digit; @@ -365,35 +335,6 @@ AcpiExMonadic2R ( FUNCTION_TRACE_PTR ("ExMonadic2R", WALK_OPERANDS); - /* Resolve all operands */ - - ResolveStatus = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, - AcpiPsGetOpcodeName (Opcode), - 2, "after AcpiExResolveOperands"); - - /* Get all operands */ - - Status = AcpiDsObjStackPopObject (&ResDesc, WalkState); - Status |= AcpiDsObjStackPopObject (&ObjDesc, WalkState); - - /* Now we can check the status codes */ - - if (ACPI_FAILURE (ResolveStatus)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "[%s]: Could not resolve operands, %s\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (ResolveStatus))); - - goto Cleanup; - } - - if (ACPI_FAILURE (Status)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "[%s]: bad operand(s) %s\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException(Status))); - - goto Cleanup; - } /* Create a return object of type NUMBER for most opcodes */ @@ -550,21 +491,18 @@ AcpiExMonadic2R ( * different than the return value stored in the result descriptor * (There are really two return values) */ - if ((ACPI_NAMESPACE_NODE *) ObjDesc == AcpiGbl_RootNode) { /* * This means that the object does not exist in the namespace, * return FALSE */ - RetDesc->Integer.Value = 0; /* * Must delete the result descriptor since there is no reference * being returned */ - AcpiUtRemoveReference (ResDesc); goto Cleanup; } @@ -720,11 +658,10 @@ AcpiExMonadic2 ( ACPI_WALK_STATE *WalkState, ACPI_OPERAND_OBJECT **ReturnDesc) { - ACPI_OPERAND_OBJECT *ObjDesc; + ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0]; ACPI_OPERAND_OBJECT *TmpDesc; ACPI_OPERAND_OBJECT *RetDesc = NULL; - ACPI_STATUS ResolveStatus; - ACPI_STATUS Status; + ACPI_STATUS Status = AE_OK; UINT32 Type; ACPI_INTEGER Value; @@ -732,39 +669,10 @@ AcpiExMonadic2 ( FUNCTION_TRACE_PTR ("ExMonadic2", WALK_OPERANDS); - /* Attempt to resolve the operands */ - - ResolveStatus = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState); - DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE, - AcpiPsGetOpcodeName (Opcode), - 1, "after AcpiExResolveOperands"); - - /* Always get all operands */ - - Status = AcpiDsObjStackPopObject (&ObjDesc, WalkState); - - /* Now we can check the status codes */ - - if (ACPI_FAILURE (ResolveStatus)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "[%s]: Could not resolve operands, %s\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (ResolveStatus))); - - goto Cleanup; - } - - if (ACPI_FAILURE (Status)) - { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "[%s]: Bad operand(s), %s\n", - AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status))); - - goto Cleanup; - } /* Get the operand and decode the opcode */ - switch (Opcode) { @@ -794,9 +702,8 @@ AcpiExMonadic2 ( * can be either an Node or an internal object. * * TBD: [Future] This may be the prototype code for all cases where - * an Reference is expected!! 10/99 + * a Reference is expected!! 10/99 */ - if (VALID_DESCRIPTOR_TYPE (ObjDesc, ACPI_DESC_TYPE_NAMED)) { RetDesc = ObjDesc; @@ -808,7 +715,6 @@ AcpiExMonadic2 ( * Duplicate the Reference in a new object so that we can resolve it * without destroying the original Reference object */ - RetDesc = AcpiUtCreateInternalObject (INTERNAL_TYPE_REFERENCE); if (!RetDesc) { @@ -826,7 +732,6 @@ AcpiExMonadic2 ( * Convert the RetDesc Reference to a Number * (This deletes the original RetDesc) */ - Status = AcpiExResolveOperands (AML_LNOT_OP, &RetDesc, WalkState); if (ACPI_FAILURE (Status)) { @@ -1010,7 +915,6 @@ AcpiExMonadic2 ( * Now that we have the size of the object, create a result * object to hold the value */ - RetDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER); if (!RetDesc) { @@ -1091,7 +995,6 @@ AcpiExMonadic2 ( * This must be a reference object produced by the Index * ASL operation -- check internal opcode */ - if ((ObjDesc->Reference.Opcode != AML_INDEX_OP) && (ObjDesc->Reference.Opcode != AML_REF_OF_OP)) { @@ -1112,7 +1015,6 @@ AcpiExMonadic2 ( * 1) A Buffer * 2) A Package */ - if (ObjDesc->Reference.TargetType == ACPI_TYPE_BUFFER_FIELD) { /* @@ -1147,7 +1049,6 @@ AcpiExMonadic2 ( * element of the package. We must add another reference to * this object, however. */ - RetDesc = *(ObjDesc->Reference.Where); if (!RetDesc) { diff --git a/sys/contrib/dev/acpica/exmutex.c b/sys/contrib/dev/acpica/exmutex.c index e0ed60a..f8129a2 100644 --- a/sys/contrib/dev/acpica/exmutex.c +++ b/sys/contrib/dev/acpica/exmutex.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exmutex - ASL Mutex Acquire/Release functions - * $Revision: 5 $ + * $Revision: 7 $ * *****************************************************************************/ @@ -214,7 +214,7 @@ AcpiExAcquireMutex ( ACPI_STATUS Status; - FUNCTION_TRACE_PTR ("AcpiExAcquireMutex", ObjDesc); + FUNCTION_TRACE_PTR ("ExAcquireMutex", ObjDesc); if (!ObjDesc) { @@ -285,7 +285,7 @@ AcpiExReleaseMutex ( ACPI_STATUS Status; - FUNCTION_TRACE ("AcpiExReleaseMutex"); + FUNCTION_TRACE ("ExReleaseMutex"); if (!ObjDesc) @@ -293,7 +293,7 @@ AcpiExReleaseMutex ( return_ACPI_STATUS (AE_BAD_PARAMETER); } - /* The mutex must have been previously acquired in order to release it */ + /* The mutex must have been previously acquired in order to release it */ if (!ObjDesc->Mutex.Owner) { @@ -365,6 +365,9 @@ AcpiExReleaseAllMutexes ( ACPI_OPERAND_OBJECT *This; + FUNCTION_ENTRY (); + + /* * Traverse the list of owned mutexes, releasing each one. */ diff --git a/sys/contrib/dev/acpica/exnames.c b/sys/contrib/dev/acpica/exnames.c index 85edbba..77ac397 100644 --- a/sys/contrib/dev/acpica/exnames.c +++ b/sys/contrib/dev/acpica/exnames.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exnames - interpreter/scanner name load/execute - * $Revision: 81 $ + * $Revision: 82 $ * *****************************************************************************/ @@ -167,7 +167,6 @@ AcpiExAllocateNameString ( * Also, one byte for the null terminator. * This may actually be somewhat longer than needed. */ - if (PrefixCount == (UINT32) -1) { /* Special case for root */ @@ -183,7 +182,6 @@ AcpiExAllocateNameString ( * Allocate a buffer for the name. * This buffer must be deleted by the caller! */ - NameString = ACPI_MEM_ALLOCATE (SizeNeeded); if (!NameString) { @@ -230,7 +228,6 @@ AcpiExAllocateNameString ( * Terminate string following prefixes. AcpiExNameSegment() will * append the segment(s) */ - *TempPtr = 0; return_PTR (NameString); @@ -388,7 +385,6 @@ AcpiExGetNameString ( * DataType is not a field name. * Examine first character of name for root or parent prefix operators */ - switch (*AmlAddress) { @@ -446,6 +442,7 @@ AcpiExGetNameString ( } /* Indicate that we processed a prefix */ + HasPrefix = TRUE; Status = AcpiExNameSegment (&AmlAddress, NameString); @@ -473,6 +470,7 @@ AcpiExGetNameString ( } /* Indicate that we processed a prefix */ + HasPrefix = TRUE; while (NumSegments && diff --git a/sys/contrib/dev/acpica/exprep.c b/sys/contrib/dev/acpica/exprep.c index a8f84749..8dfe99c 100644 --- a/sys/contrib/dev/acpica/exprep.c +++ b/sys/contrib/dev/acpica/exprep.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exprep - ACPI AML (p-code) execution - field prep utilities - * $Revision: 93 $ + * $Revision: 95 $ * *****************************************************************************/ @@ -147,7 +147,7 @@ AcpiExDecodeFieldAccessType ( UINT16 Length, UINT32 *Alignment) { - PROC_NAME ("AcpiExDecodeFieldAccessType"); + PROC_NAME ("ExDecodeFieldAccessType"); switch (Access) @@ -260,7 +260,7 @@ AcpiExPrepCommonFieldObject ( ObjDesc->CommonField.BitLength = (UINT16) FieldBitLength; - /* + /* * Decode the access type so we can compute offsets. The access type gives * two pieces of information - the width of each field access and the * necessary alignment of the access. For AnyAcc, the width used is the @@ -293,13 +293,13 @@ AcpiExPrepCommonFieldObject ( } - /* + /* * BaseByteOffset is the address of the start of the field within the region. It is * the byte address of the first *datum* (field-width data unit) of the field. * (i.e., the first datum that contains at least the first *bit* of the field.) */ NearestByteAddress = ROUND_BITS_DOWN_TO_BYTES (FieldBitPosition); - ObjDesc->CommonField.BaseByteOffset = ROUND_DOWN (NearestByteAddress, + ObjDesc->CommonField.BaseByteOffset = ROUND_DOWN (NearestByteAddress, DIV_8 (Alignment)); /* @@ -313,15 +313,15 @@ AcpiExPrepCommonFieldObject ( /* * DatumValidBits is the number of valid field bits in the first field datum. */ - ObjDesc->CommonField.DatumValidBits = (UINT8) (AccessBitWidth - + ObjDesc->CommonField.DatumValidBits = (UINT8) (AccessBitWidth - ObjDesc->CommonField.StartFieldBitOffset); - /* + /* * Valid bits -- the number of bits that compose a partial datum, * 1) At the end of the field within the region (arbitrary starting bit offset) * 2) At the end of a buffer used to contain the field (starting offset always zero) */ - ObjDesc->CommonField.EndFieldValidBits = (UINT8) ((ObjDesc->CommonField.StartFieldBitOffset + + ObjDesc->CommonField.EndFieldValidBits = (UINT8) ((ObjDesc->CommonField.StartFieldBitOffset + FieldBitLength) % AccessBitWidth); ObjDesc->CommonField.EndBufferValidBits = (UINT8) (FieldBitLength % AccessBitWidth); /* StartBufferBitOffset always = 0 */ diff --git a/sys/contrib/dev/acpica/exregion.c b/sys/contrib/dev/acpica/exregion.c index d42ae31..8bf9ec1 100644 --- a/sys/contrib/dev/acpica/exregion.c +++ b/sys/contrib/dev/acpica/exregion.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exregion - ACPI default OpRegion (address space) handlers - * $Revision: 55 $ + * $Revision: 57 $ * *****************************************************************************/ @@ -195,7 +195,6 @@ AcpiExSystemMemorySpaceHandler ( * Is 1) Address below the current mapping? OR * 2) Address beyond the current mapping? */ - if ((Address < MemInfo->MappedPhysicalAddress) || (((ACPI_INTEGER) Address + Length) > ((ACPI_INTEGER) MemInfo->MappedPhysicalAddress + MemInfo->MappedLength))) @@ -204,7 +203,6 @@ AcpiExSystemMemorySpaceHandler ( * The request cannot be resolved by the current memory mapping; * Delete the existing mapping and create a new one. */ - if (MemInfo->MappedLength) { /* Valid mapping, delete it */ @@ -414,8 +412,8 @@ AcpiExPciConfigSpaceHandler ( PciRegister = (UINT16) Address; ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "IO %d (%d) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n", - Function, BitWidth, PciId->Segment, PciId->Bus, PciId->Device, + "IO %d (%d) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n", + Function, BitWidth, PciId->Segment, PciId->Bus, PciId->Device, PciId->Function, PciRegister)); switch (Function) diff --git a/sys/contrib/dev/acpica/exresolv.c b/sys/contrib/dev/acpica/exresolv.c index ac97dc6..dd72ba6 100644 --- a/sys/contrib/dev/acpica/exresolv.c +++ b/sys/contrib/dev/acpica/exresolv.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exresolv - AML Interpreter object resolution - * $Revision: 96 $ + * $Revision: 97 $ * *****************************************************************************/ @@ -457,7 +457,7 @@ AcpiExResolveObjectToValue ( * the package, can't dereference it */ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, - "Attempt to deref an Index to NULL pkg element Idx=%p\n", + "Attempt to deref an Index to NULL pkg element Idx=%p\n", StackDesc)); Status = AE_AML_UNINITIALIZED_ELEMENT; } diff --git a/sys/contrib/dev/acpica/exresop.c b/sys/contrib/dev/acpica/exresop.c index 8c12470..a383503 100644 --- a/sys/contrib/dev/acpica/exresop.c +++ b/sys/contrib/dev/acpica/exresop.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exresop - AML Interpreter operand/object resolution - * $Revision: 33 $ + * $Revision: 37 $ * *****************************************************************************/ @@ -151,7 +151,8 @@ AcpiExCheckObjectType ( ACPI_OBJECT_TYPE ThisType, void *Object) { - PROC_NAME ("AcpiExCheckObjectType"); + PROC_NAME ("ExCheckObjectType"); + if (TypeNeeded == ACPI_TYPE_ANY) { @@ -204,7 +205,7 @@ AcpiExResolveOperands ( UINT8 ObjectType; void *TempNode; UINT32 ArgTypes; - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; UINT32 ThisArgType; ACPI_OBJECT_TYPE TypeNeeded; @@ -222,7 +223,7 @@ AcpiExResolveOperands ( ArgTypes = OpInfo->RuntimeArgs; if (ArgTypes == ARGI_INVALID_OPCODE) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Internal - %X is not a valid AML opcode\n", + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Internal - %X is not a valid AML opcode\n", Opcode)); return_ACPI_STATUS (AE_AML_INTERNAL); @@ -239,12 +240,11 @@ AcpiExResolveOperands ( * to) the required type; if stack underflows; or upon * finding a NULL stack entry (which should not happen). */ - while (GET_CURRENT_ARG_TYPE (ArgTypes)) { if (!StackPtr || !*StackPtr) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Internal - null stack entry at %X\n", + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Internal - null stack entry at %X\n", StackPtr)); return_ACPI_STATUS (AE_AML_INTERNAL); @@ -284,7 +284,6 @@ AcpiExResolveOperands ( /* * Decode the Reference */ - OpInfo = AcpiPsGetOpcodeInfo (Opcode); if (ACPI_GET_OP_TYPE (OpInfo) != ACPI_OP_TYPE_OPCODE) { @@ -333,7 +332,6 @@ AcpiExResolveOperands ( /* * Get one argument type, point to the next */ - ThisArgType = GET_CURRENT_ARG_TYPE (ArgTypes); INCREMENT_ARG_LIST (ArgTypes); @@ -342,7 +340,6 @@ AcpiExResolveOperands ( * Handle cases where the object does not need to be * resolved to a value */ - switch (ThisArgType) { @@ -375,7 +372,6 @@ AcpiExResolveOperands ( * Convert an indirect name ptr to direct name ptr and put * it on the stack */ - TempNode = ObjDesc->Reference.Object; AcpiUtRemoveReference (ObjDesc); (*StackPtr) = TempNode; @@ -393,7 +389,6 @@ AcpiExResolveOperands ( * Instead, we just want to store the reference object. * -- All others must be resolved below. */ - if ((Opcode == AML_STORE_OP) && ((*StackPtr)->Common.Type == INTERNAL_TYPE_REFERENCE) && ((*StackPtr)->Reference.Opcode == AML_INDEX_OP)) @@ -407,7 +402,6 @@ AcpiExResolveOperands ( /* * Resolve this object to a value */ - Status = AcpiExResolveToValue (StackPtr, WalkState); if (ACPI_FAILURE (Status)) { @@ -470,7 +464,6 @@ AcpiExResolveOperands ( /* * The more complex cases allow multiple resolved object types */ - case ARGI_INTEGER: /* Number */ /* diff --git a/sys/contrib/dev/acpica/exstore.c b/sys/contrib/dev/acpica/exstore.c index bc1b536..815f32b 100644 --- a/sys/contrib/dev/acpica/exstore.c +++ b/sys/contrib/dev/acpica/exstore.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exstore - AML Interpreter object store support - * $Revision: 142 $ + * $Revision: 147 $ * *****************************************************************************/ @@ -214,7 +214,6 @@ AcpiExStore ( * 4) Store to the debug object * 5) Store to a constant -- a noop */ - switch (RefDesc->Reference.Opcode) { @@ -251,46 +250,47 @@ AcpiExStore ( * Storing to the Debug object causes the value stored to be * displayed and otherwise has no effect -- see ACPI Specification */ - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "**** Write to Debug Object: ****: \n")); + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "**** Write to Debug Object: ****:\n\n")); - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OBJECTS, "[ACPI Debug] %s: ", + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[ACPI Debug] %s: ", AcpiUtGetTypeName (ValDesc->Common.Type))); switch (ValDesc->Common.Type) { case ACPI_TYPE_INTEGER: - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OBJECTS, "0x%X (%d)\n", + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "0x%X (%d)\n", (UINT32) ValDesc->Integer.Value, (UINT32) ValDesc->Integer.Value)); break; case ACPI_TYPE_BUFFER: - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OBJECTS, "Length 0x%X\n", + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "Length 0x%X\n", (UINT32) ValDesc->Buffer.Length)); break; case ACPI_TYPE_STRING: - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OBJECTS, "%s\n", ValDesc->String.Pointer)); + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "%s\n", ValDesc->String.Pointer)); break; case ACPI_TYPE_PACKAGE: - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OBJECTS, "Elements - 0x%X\n", + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "Elements - 0x%X\n", (UINT32) ValDesc->Package.Elements)); break; default: - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OBJECTS, "@0x%p\n", ValDesc)); + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "@0x%p\n", ValDesc)); break; } + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO, "\n")); break; @@ -358,14 +358,13 @@ AcpiExStoreObjectToIndex ( UINT8 Value = 0; - FUNCTION_TRACE ("AcpiExStoreObjectToIndex"); + FUNCTION_TRACE ("ExStoreObjectToIndex"); /* * Destination must be a reference pointer, and * must point to either a buffer or a package */ - switch (DestDesc->Reference.TargetType) { case ACPI_TYPE_PACKAGE: @@ -437,7 +436,6 @@ AcpiExStoreObjectToIndex ( * reference to the newly created descriptor for now being * part of the parent package */ - *(DestDesc->Reference.Where) = ObjDesc; AcpiUtAddReference (ObjDesc); } @@ -491,7 +489,6 @@ AcpiExStoreObjectToIndex ( * The assignment of the individual elements will be slightly * different for each source type. */ - switch (ValDesc->Common.Type) { case ACPI_TYPE_INTEGER: @@ -601,11 +598,11 @@ AcpiExStoreObjectToNode ( FUNCTION_TRACE ("ExStoreObjectToNode"); + /* * Assuming the parameters were already validated */ - /* * Get current type of the node, and object attached to Node */ @@ -734,7 +731,6 @@ AcpiExStoreObjectToObject ( /* * Assuming the parameters are valid! */ - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Storing %p(%s) to %p(%s)\n", SourceDesc, AcpiUtGetTypeName (SourceDesc->Common.Type), DestDesc, AcpiUtGetTypeName (DestDesc->Common.Type))); diff --git a/sys/contrib/dev/acpica/exstoren.c b/sys/contrib/dev/acpica/exstoren.c index 574755f2..0cd24c1 100644 --- a/sys/contrib/dev/acpica/exstoren.c +++ b/sys/contrib/dev/acpica/exstoren.c @@ -3,7 +3,7 @@ * * Module Name: exstoren - AML Interpreter object store support, * Store to Node (namespace object) - * $Revision: 39 $ + * $Revision: 40 $ * *****************************************************************************/ @@ -298,7 +298,6 @@ AcpiExStoreObject ( * The target namespace node is uninitialized (has no target object), * and will take on the type of the source object */ - *TargetDescPtr = SourceDesc; break; diff --git a/sys/contrib/dev/acpica/exstorob.c b/sys/contrib/dev/acpica/exstorob.c index 86c567d..297a154 100644 --- a/sys/contrib/dev/acpica/exstorob.c +++ b/sys/contrib/dev/acpica/exstorob.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exstorob - AML Interpreter object store support, store to object - * $Revision: 35 $ + * $Revision: 37 $ * *****************************************************************************/ @@ -151,7 +151,8 @@ AcpiExCopyBufferToBuffer ( UINT32 Length; UINT8 *Buffer; - PROC_NAME ("AcpiExCopyBufferToBuffer"); + + PROC_NAME ("ExCopyBufferToBuffer"); /* @@ -225,6 +226,9 @@ AcpiExCopyStringToString ( UINT8 *Buffer; + FUNCTION_ENTRY (); + + /* * We know that SourceDesc is a string by now. */ @@ -262,9 +266,8 @@ AcpiExCopyStringToString ( { return (AE_NO_MEMORY); } - TargetDesc->String.Length = Length; - + TargetDesc->String.Length = Length; MEMCPY (TargetDesc->String.Pointer, Buffer, Length); } diff --git a/sys/contrib/dev/acpica/exsystem.c b/sys/contrib/dev/acpica/exsystem.c index b97c06a..df03448 100644 --- a/sys/contrib/dev/acpica/exsystem.c +++ b/sys/contrib/dev/acpica/exsystem.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exsystem - Interface to OS services - * $Revision: 65 $ + * $Revision: 67 $ * *****************************************************************************/ @@ -150,7 +150,8 @@ AcpiExSystemWaitSemaphore ( ACPI_STATUS Status; - FUNCTION_TRACE ("AcpiExSystemWaitSemaphore"); + FUNCTION_TRACE ("ExSystemWaitSemaphore"); + Status = AcpiOsWaitSemaphore (Semaphore, 1, 0); if (ACPI_SUCCESS (Status)) @@ -200,6 +201,8 @@ void AcpiExSystemDoStall ( UINT32 HowLong) { + FUNCTION_ENTRY (); + if (HowLong > 1000) /* 1 millisecond */ { @@ -237,6 +240,10 @@ void AcpiExSystemDoSuspend ( UINT32 HowLong) { + + FUNCTION_ENTRY (); + + /* Since this thread will sleep, we must release the interpreter */ AcpiExExitInterpreter (); @@ -273,7 +280,8 @@ AcpiExSystemAcquireMutex ( ACPI_STATUS Status = AE_OK; - FUNCTION_TRACE_PTR ("AcpiExSystemAcquireMutex", ObjDesc); + FUNCTION_TRACE_PTR ("ExSystemAcquireMutex", ObjDesc); + if (!ObjDesc) { @@ -283,7 +291,6 @@ AcpiExSystemAcquireMutex ( /* * Support for the _GL_ Mutex object -- go get the global lock */ - if (ObjDesc->Mutex.Semaphore == AcpiGbl_GlobalLockSemaphore) { Status = AcpiEvAcquireGlobalLock (); @@ -318,7 +325,7 @@ AcpiExSystemReleaseMutex ( ACPI_STATUS Status = AE_OK; - FUNCTION_TRACE ("AcpiExSystemReleaseMutex"); + FUNCTION_TRACE ("ExSystemReleaseMutex"); if (!ObjDesc) @@ -360,7 +367,7 @@ AcpiExSystemSignalEvent ( ACPI_STATUS Status = AE_OK; - FUNCTION_TRACE ("AcpiExSystemSignalEvent"); + FUNCTION_TRACE ("ExSystemSignalEvent"); if (ObjDesc) @@ -395,7 +402,7 @@ AcpiExSystemWaitEvent ( ACPI_STATUS Status = AE_OK; - FUNCTION_TRACE ("AcpiExSystemWaitEvent"); + FUNCTION_TRACE ("ExSystemWaitEvent"); if (ObjDesc) @@ -429,11 +436,13 @@ AcpiExSystemResetEvent ( void *TempSemaphore; + FUNCTION_ENTRY (); + + /* * We are going to simply delete the existing semaphore and * create a new one! */ - Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0, &TempSemaphore); if (ACPI_SUCCESS (Status)) { diff --git a/sys/contrib/dev/acpica/exutils.c b/sys/contrib/dev/acpica/exutils.c index 6a857c5..8c3efab 100644 --- a/sys/contrib/dev/acpica/exutils.c +++ b/sys/contrib/dev/acpica/exutils.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exutils - interpreter/scanner utilities - * $Revision: 82 $ + * $Revision: 84 $ * *****************************************************************************/ @@ -117,12 +117,29 @@ #define __EXUTILS_C__ +/* + * DEFINE_AML_GLOBALS is tested in amlcode.h + * to determine whether certain global names should be "defined" or only + * "declared" in the current compilation. This enhances maintainability + * by enabling a single header file to embody all knowledge of the names + * in question. + * + * Exactly one module of any executable should #define DEFINE_GLOBALS + * before #including the header files which use this convention. The + * names in question will be defined and initialized in that module, + * and declared as extern in all other modules which #include those + * header files. + */ + +#define DEFINE_AML_GLOBALS + #include "acpi.h" #include "acparser.h" #include "acinterp.h" #include "amlcode.h" #include "acnamesp.h" #include "acevents.h" +#include "acparser.h" #define _COMPONENT ACPI_EXECUTER MODULE_NAME ("exutils") @@ -201,6 +218,9 @@ AcpiExValidateObjectType ( ACPI_OBJECT_TYPE Type) { + FUNCTION_ENTRY (); + + if ((Type > ACPI_TYPE_MAX && Type < INTERNAL_TYPE_BEGIN) || (Type > INTERNAL_TYPE_MAX)) { @@ -232,11 +252,13 @@ AcpiExTruncateFor32bitTable ( ACPI_WALK_STATE *WalkState) { + FUNCTION_ENTRY (); + + /* * Object must be a valid number and we must be executing * a control method */ - if ((!ObjDesc) || (ObjDesc->Common.Type != ACPI_TYPE_INTEGER) || (!WalkState->MethodNode)) @@ -405,6 +427,9 @@ _ntohl ( } In; + FUNCTION_ENTRY (); + + In.Value = Value; Out.Bytes[0] = In.Bytes[3]; @@ -434,6 +459,10 @@ AcpiExEisaIdToString ( { UINT32 id; + + FUNCTION_ENTRY (); + + /* swap to big-endian to get contiguous bits */ id = _ntohl (NumericId); @@ -471,8 +500,10 @@ AcpiExUnsignedIntegerToString ( UINT32 DigitsNeeded; - DigitsNeeded = AcpiExDigitsNeeded (Value, 10); + FUNCTION_ENTRY (); + + DigitsNeeded = AcpiExDigitsNeeded (Value, 10); OutString[DigitsNeeded] = '\0'; for (Count = DigitsNeeded; Count > 0; Count--) diff --git a/sys/contrib/dev/acpica/exxface.c b/sys/contrib/dev/acpica/exxface.c index d34c460..a646c71 100644 --- a/sys/contrib/dev/acpica/exxface.c +++ b/sys/contrib/dev/acpica/exxface.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exxface - External interpreter interfaces - * $Revision: 27 $ + * $Revision: 29 $ * *****************************************************************************/ @@ -124,6 +124,7 @@ #define _COMPONENT ACPI_EXECUTER MODULE_NAME ("exxface") +#if 0 /* * DEFINE_AML_GLOBALS is tested in amlcode.h @@ -177,7 +178,6 @@ AcpiExExecuteMethod ( * The point here is to lock the interpreter and call the low * level execute. */ - Status = AcpiExEnterInterpreter (); if (ACPI_FAILURE (Status)) { @@ -192,3 +192,4 @@ AcpiExExecuteMethod ( } +#endif diff --git a/sys/contrib/dev/acpica/hwacpi.c b/sys/contrib/dev/acpica/hwacpi.c index 3cf3d85..df690a6 100644 --- a/sys/contrib/dev/acpica/hwacpi.c +++ b/sys/contrib/dev/acpica/hwacpi.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: hwacpi - ACPI Hardware Initialization/Mode Interface - * $Revision: 43 $ + * $Revision: 45 $ * *****************************************************************************/ @@ -159,24 +159,10 @@ AcpiHwInitialize ( return_ACPI_STATUS (AE_NO_ACPI_TABLES); } - /* Must support *some* mode! */ -/* - if (!(SystemFlags & SYS_MODES_MASK)) - { - RestoreAcpiChipset = FALSE; - - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, - "Supported modes uninitialized!\n")); - return_ACPI_STATUS (AE_ERROR); - } - -*/ - + /* Identify current ACPI/legacy mode */ switch (AcpiGbl_SystemFlags & SYS_MODES_MASK) { - /* Identify current ACPI/legacy mode */ - case (SYS_MODE_ACPI): AcpiGbl_OriginalMode = SYS_MODE_ACPI; @@ -231,7 +217,6 @@ AcpiHwInitialize ( * coded here. If this changes in the spec, this code will need to * be modified. The PM1bEvtBlk behaves as expected. */ - AcpiGbl_Pm1EnableRegisterSave = (UINT16) AcpiHwRegisterRead ( ACPI_MTX_LOCK, PM1_EN); @@ -240,7 +225,6 @@ AcpiHwInitialize ( * The GPEs behave similarly, except that the length of the register * block is not fixed, so the buffer must be allocated with malloc */ - if (ACPI_VALID_ADDRESS (AcpiGbl_FADT->XGpe0Blk.Address) && AcpiGbl_FADT->Gpe0BlkLen) { @@ -318,6 +302,7 @@ AcpiHwSetMode ( ACPI_STATUS Status = AE_NO_HARDWARE_RESPONSE; + FUNCTION_TRACE ("HwSetMode"); @@ -335,12 +320,15 @@ AcpiHwSetMode ( * BIOS should clear all fixed status bits and restore fixed event * enable bits to default */ - AcpiOsWritePort (AcpiGbl_FADT->SmiCmd, AcpiGbl_FADT->AcpiDisable, 8); ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Attempting to enable Legacy (non-ACPI) mode\n")); } + /* Give the platform some time to react */ + + AcpiOsStall (5000); + if (AcpiHwGetMode () == Mode) { ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Mode %X successfully enabled\n", Mode)); @@ -381,6 +369,7 @@ AcpiHwGetMode (void) } } + /****************************************************************************** * * FUNCTION: AcpiHwGetModeCapabilities @@ -411,7 +400,6 @@ AcpiHwGetModeCapabilities (void) * tables. Therefore since we're in SYS_MODE_LEGACY, the system * must support both modes */ - AcpiGbl_SystemFlags |= (SYS_MODE_ACPI | SYS_MODE_LEGACY); } diff --git a/sys/contrib/dev/acpica/hwgpe.c b/sys/contrib/dev/acpica/hwgpe.c index 6340c80..761cd93 100644 --- a/sys/contrib/dev/acpica/hwgpe.c +++ b/sys/contrib/dev/acpica/hwgpe.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: hwgpe - Low level GPE enable/disable/clear functions - * $Revision: 31 $ + * $Revision: 32 $ * *****************************************************************************/ @@ -144,6 +144,10 @@ AcpiHwEnableGpe ( UINT32 RegisterIndex; UINT32 BitMask; + + FUNCTION_ENTRY (); + + /* * Translate GPE number to index into global registers array. */ @@ -185,6 +189,10 @@ AcpiHwDisableGpe ( UINT32 RegisterIndex; UINT32 BitMask; + + FUNCTION_ENTRY (); + + /* * Translate GPE number to index into global registers array. */ @@ -226,6 +234,9 @@ AcpiHwClearGpe ( UINT32 BitMask; + FUNCTION_ENTRY (); + + /* * Translate GPE number to index into global registers array. */ @@ -266,6 +277,9 @@ AcpiHwGetGpeStatus ( UINT32 BitMask = 0; + FUNCTION_ENTRY (); + + if (!EventStatus) { return; diff --git a/sys/contrib/dev/acpica/hwregs.c b/sys/contrib/dev/acpica/hwregs.c index d231b47..8bcda9d 100644 --- a/sys/contrib/dev/acpica/hwregs.c +++ b/sys/contrib/dev/acpica/hwregs.c @@ -3,7 +3,7 @@ * * Module Name: hwregs - Read/write access functions for the various ACPI * control and status registers. - * $Revision: 104 $ + * $Revision: 109 $ * ******************************************************************************/ @@ -126,12 +126,6 @@ MODULE_NAME ("hwregs") -/* This matches the #defines in actypes.h. */ - -NATIVE_CHAR *SleepStateTable[] = {"\\_S0_","\\_S1_","\\_S2_","\\_S3_", - "\\_S4_","\\_S5_","\\_S4B"}; - - /******************************************************************************* * * FUNCTION: AcpiHwGetBitShift @@ -196,7 +190,7 @@ AcpiHwClearAcpiStatus (void) if (ACPI_VALID_ADDRESS (AcpiGbl_FADT->XPm1bEvtBlk.Address)) { - AcpiOsWritePort ((ACPI_IO_ADDRESS) + AcpiOsWritePort ((ACPI_IO_ADDRESS) ACPI_GET_ADDRESS (AcpiGbl_FADT->XPm1bEvtBlk.Address), ALL_FIXED_STS_BITS, 16); } @@ -263,7 +257,6 @@ AcpiHwObtainSleepTypeRegisterData ( /* * Validate parameters */ - if ((SleepState > ACPI_S_STATES_MAX) || !Slp_TypA || !Slp_TypB) { @@ -273,8 +266,8 @@ AcpiHwObtainSleepTypeRegisterData ( /* * AcpiEvaluate the namespace object containing the values for this state */ - - Status = AcpiNsEvaluateByName (SleepStateTable[SleepState], NULL, &ObjDesc); + Status = AcpiNsEvaluateByName ((NATIVE_CHAR *) AcpiGbl_DbSleepStates[SleepState], + NULL, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -391,7 +384,6 @@ AcpiHwRegisterBitAccess ( * Check bit id to fine locate Register offset. * Check Mask to determine Register offset, and then read-write. */ - switch (REGISTER_BLOCK_ID (RegisterId)) { case PM1_STS: @@ -442,7 +434,6 @@ AcpiHwRegisterBitAccess ( * others should be written as 0 so they will be left * unchanged */ - Value <<= AcpiHwGetBitShift (Mask); Value &= Mask; @@ -557,7 +548,6 @@ AcpiHwRegisterBitAccess ( * Therefore, pass the RegisterId, not just generic PM1_CONTROL, * because we need to do different things. Yuck. */ - AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK, RegisterId, (UINT16) RegisterValue); } @@ -625,7 +615,6 @@ AcpiHwRegisterBitAccess ( * gpe_block_id is one of GPE[01]_EN_BLOCK and GPE[01]_STS_BLOCK * gpe_bit_number is relative from the gpe_block (0x00~0xFF) */ - Mask = REGISTER_BIT_ID(RegisterId); /* gpe_bit_number */ RegisterId = REGISTER_BLOCK_ID(RegisterId) | (Mask >> 3); Mask = AcpiGbl_DecodeTo8bit [Mask % 8]; @@ -655,9 +644,10 @@ AcpiHwRegisterBitAccess ( Value &= Mask; RegisterValue |= Value; - /* This write will put the Action state into the General Purpose */ - /* Enable Register indexed by the value in Mask */ - + /* + * This write will put the Action state into the General Purpose + * Enable Register indexed by the value in Mask + */ ACPI_DEBUG_PRINT ((ACPI_DB_IO, "About to write %04X to %04X\n", RegisterValue, RegisterId)); AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK, RegisterId, @@ -670,6 +660,7 @@ AcpiHwRegisterBitAccess ( case SMI_CMD_BLOCK: case PROCESSOR_BLOCK: + /* Not used by any callers at this time - therefore, not implemented */ default: @@ -714,7 +705,7 @@ AcpiHwRegisterRead ( UINT32 BankOffset; - FUNCTION_TRACE ("AcpiHwRegisterRead"); + FUNCTION_TRACE ("HwRegisterRead"); if (ACPI_MTX_LOCK == UseLock) @@ -760,13 +751,13 @@ AcpiHwRegisterRead ( /* - * For the GPE? Blocks, the lower word of RegisterId contains the - * byte offset for which to read, as each part of each block may be + * For the GPE? Blocks, the lower word of RegisterId contains the + * byte offset for which to read, as each part of each block may be * several bytes long. */ case GPE0_STS_BLOCK: /* 8-bit access */ - BankOffset = REGISTER_BIT_ID(RegisterId); + BankOffset = REGISTER_BIT_ID(RegisterId); Value = AcpiHwLowLevelRead (8, &AcpiGbl_FADT->XGpe0Blk, BankOffset); break; @@ -778,7 +769,7 @@ AcpiHwRegisterRead ( case GPE1_STS_BLOCK: /* 8-bit access */ - BankOffset = REGISTER_BIT_ID(RegisterId); + BankOffset = REGISTER_BIT_ID(RegisterId); Value = AcpiHwLowLevelRead (8, &AcpiGbl_FADT->XGpe1Blk, BankOffset); break; @@ -830,7 +821,8 @@ AcpiHwRegisterWrite ( { UINT32 BankOffset; - FUNCTION_TRACE ("AcpiHwRegisterWrite"); + + FUNCTION_TRACE ("HwRegisterWrite"); if (ACPI_MTX_LOCK == UseLock) @@ -889,7 +881,7 @@ AcpiHwRegisterWrite ( case GPE0_STS_BLOCK: /* 8-bit access */ - BankOffset = REGISTER_BIT_ID(RegisterId); + BankOffset = REGISTER_BIT_ID(RegisterId); AcpiHwLowLevelWrite (8, Value, &AcpiGbl_FADT->XGpe0Blk, BankOffset); break; @@ -903,7 +895,7 @@ AcpiHwRegisterWrite ( case GPE1_STS_BLOCK: /* 8-bit access */ - BankOffset = REGISTER_BIT_ID(RegisterId); + BankOffset = REGISTER_BIT_ID(RegisterId); AcpiHwLowLevelWrite (8, Value, &AcpiGbl_FADT->XGpe1Blk, BankOffset); break; @@ -966,6 +958,9 @@ AcpiHwLowLevelRead ( UINT16 PciRegister; + FUNCTION_ENTRY (); + + /* * Must have a valid pointer to a GAS structure, and * a non-zero address within @@ -981,7 +976,6 @@ AcpiHwLowLevelRead ( * Three address spaces supported: * Memory, Io, or PCI config. */ - switch (Reg->AddressSpaceId) { case ACPI_ADR_SPACE_SYSTEM_MEMORY: @@ -1045,6 +1039,9 @@ AcpiHwLowLevelWrite ( UINT16 PciRegister; + FUNCTION_ENTRY (); + + /* * Must have a valid pointer to a GAS structure, and * a non-zero address within @@ -1060,7 +1057,6 @@ AcpiHwLowLevelWrite ( * Three address spaces supported: * Memory, Io, or PCI config. */ - switch (Reg->AddressSpaceId) { case ACPI_ADR_SPACE_SYSTEM_MEMORY: diff --git a/sys/contrib/dev/acpica/hwsleep.c b/sys/contrib/dev/acpica/hwsleep.c index fb7a4ee..d0d4ed8 100644 --- a/sys/contrib/dev/acpica/hwsleep.c +++ b/sys/contrib/dev/acpica/hwsleep.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Name: hwsleep.c - ACPI Hardware Sleep/Wake Interface - * $Revision: 18 $ + * $Revision: 21 $ * *****************************************************************************/ @@ -245,7 +245,6 @@ AcpiEnterSleepState ( /* * _PSW methods could be run here to enable wake-on keyboard, LAN, etc. */ - Status = AcpiHwObtainSleepTypeRegisterData (SleepState, &TypeA, &TypeB); if (!ACPI_SUCCESS (Status)) { @@ -306,7 +305,7 @@ AcpiEnterSleepState ( AcpiHwRegisterWrite (ACPI_MTX_LOCK, PM1A_CONTROL, PM1AControl); AcpiHwRegisterWrite (ACPI_MTX_LOCK, PM1B_CONTROL, PM1BControl); - /* + /* * Wait a second, then try again. This is to get S4/5 to work on all machines. */ if (SleepState > ACPI_STATE_S3) @@ -319,8 +318,11 @@ AcpiEnterSleepState ( /* wait until we enter sleep state */ - while (!AcpiHwRegisterBitAccess (ACPI_READ,ACPI_MTX_LOCK,WAK_STS)) - { } + do + { + AcpiOsStall(10000); + } + while (!AcpiHwRegisterBitAccess (ACPI_READ, ACPI_MTX_LOCK, WAK_STS)); enable (); @@ -346,6 +348,7 @@ AcpiLeaveSleepState ( ACPI_OBJECT_LIST ArgList; ACPI_OBJECT Arg; + FUNCTION_TRACE ("AcpiLeaveSleepState"); @@ -359,6 +362,7 @@ AcpiLeaveSleepState ( AcpiEvaluateObject (NULL, "\\_BFS", &ArgList, NULL); AcpiEvaluateObject (NULL, "\\_WAK", &ArgList, NULL); + /* _WAK returns stuff - do we want to look at it? */ /* Re-enable GPEs */ diff --git a/sys/contrib/dev/acpica/hwtimer.c b/sys/contrib/dev/acpica/hwtimer.c index dccd941..22e484b 100644 --- a/sys/contrib/dev/acpica/hwtimer.c +++ b/sys/contrib/dev/acpica/hwtimer.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Name: hwtimer.c - ACPI Power Management Timer Interface - * $Revision: 11 $ + * $Revision: 12 $ * *****************************************************************************/ @@ -192,7 +192,7 @@ AcpiGetTimer ( FUNCTION_TRACE ("AcpiGetTimer"); - + /* Ensure that ACPI has been initialized */ ACPI_IS_INITIALIZATION_COMPLETE (Status); @@ -206,7 +206,7 @@ AcpiGetTimer ( return_ACPI_STATUS (AE_BAD_PARAMETER); } - AcpiOsReadPort ((ACPI_IO_ADDRESS) + AcpiOsReadPort ((ACPI_IO_ADDRESS) ACPI_GET_ADDRESS (AcpiGbl_FADT->XPmTmrBlk.Address), Ticks, 32); return_ACPI_STATUS (AE_OK); diff --git a/sys/contrib/dev/acpica/nsaccess.c b/sys/contrib/dev/acpica/nsaccess.c index 98a658a..6e42625 100644 --- a/sys/contrib/dev/acpica/nsaccess.c +++ b/sys/contrib/dev/acpica/nsaccess.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: nsaccess - Top-level functions for accessing ACPI namespace - * $Revision: 130 $ + * $Revision: 133 $ * ******************************************************************************/ @@ -145,7 +145,7 @@ ACPI_STATUS AcpiNsRootInitialize (void) { ACPI_STATUS Status = AE_OK; - PREDEFINED_NAMES *InitVal = NULL; + const PREDEFINED_NAMES *InitVal = NULL; ACPI_NAMESPACE_NODE *NewNode; ACPI_OPERAND_OBJECT *ObjDesc; @@ -159,7 +159,6 @@ AcpiNsRootInitialize (void) * The global root ptr is initially NULL, so a non-NULL value indicates * that AcpiNsRootInitialize() has already been called; just return. */ - if (AcpiGbl_RootNode) { Status = AE_OK; @@ -171,7 +170,6 @@ AcpiNsRootInitialize (void) * Tell the rest of the subsystem that the root is initialized * (This is OK because the namespace is locked) */ - AcpiGbl_RootNode = &AcpiGbl_RootNodeStruct; @@ -187,7 +185,7 @@ AcpiNsRootInitialize (void) if (ACPI_FAILURE (Status) || (!NewNode)) /* Must be on same line for code converter */ { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not create predefined name %s, %s\n", InitVal->Name, AcpiFormatException (Status))); } @@ -197,14 +195,12 @@ AcpiNsRootInitialize (void) * If entry in PreDefinedNames[] specifies an * initial value, create the initial value. */ - if (InitVal->Val) { /* * Entry requests an initial value, allocate a * descriptor for it. */ - ObjDesc = AcpiUtCreateInternalObject (InitVal->Type); if (!ObjDesc) { @@ -257,11 +253,11 @@ AcpiNsRootInitialize (void) { goto UnlockAndExit; } + /* * We just created the mutex for the * global lock, save it */ - AcpiGbl_GlobalLockSemaphore = ObjDesc->Mutex.Semaphore; } @@ -372,7 +368,6 @@ AcpiNsLookup ( * Get the prefix scope. * A null scope means use the root scope */ - if ((!ScopeInfo) || (!ScopeInfo->Scope.Node)) { @@ -394,7 +389,6 @@ AcpiNsLookup ( * 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 */ @@ -451,7 +445,6 @@ AcpiNsLookup ( * - A MultiNamePrefixOp, followed by a byte indicating the * number of segments and the segments themselves. */ - if (*Pathname == AML_ROOT_PREFIX) { /* Pathname is fully qualified, look in root name table */ @@ -462,7 +455,7 @@ AcpiNsLookup ( Pathname++; - ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Searching from root [%p]\n", + ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Searching from root [%p]\n", CurrentNode)); /* Direct reference to root, "\" */ @@ -487,7 +480,6 @@ AcpiNsLookup ( * Handle up-prefix (carat). More than one prefix * is supported */ - while (*Pathname == AML_PARENT_PREFIX) { /* Point to segment part or next ParentPrefix */ @@ -515,7 +507,6 @@ AcpiNsLookup ( * Examine the name prefix opcode, if any, * to determine the number of segments */ - if (*Pathname == AML_DUAL_NAME_PREFIX) { NumSegments = 2; @@ -574,8 +565,6 @@ AcpiNsLookup ( * Search namespace for each segment of the name. * Loop through and verify/add each name segment. */ - - while (NumSegments-- && CurrentNode) { /* @@ -608,7 +597,7 @@ AcpiNsLookup ( { /* Name not found in ACPI namespace */ - ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, + ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Name [%4.4s] not found in scope %X\n", &SimpleName, CurrentNode)); } @@ -651,7 +640,6 @@ AcpiNsLookup ( * specific type, but the type of found object is known, use that type * to see if it opens a scope. */ - if ((0 == NumSegments) && (ACPI_TYPE_ANY == Type)) { Type = ThisNode->Type; @@ -664,7 +652,6 @@ AcpiNsLookup ( * More segments or the type implies enclosed scope, * and the next scope has not been allocated. */ - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Load mode=%X ThisNode=%X\n", InterpreterMode, ThisNode)); } @@ -680,7 +667,6 @@ AcpiNsLookup ( /* * Always check if we need to open a new scope */ - CheckForNewScopeAndExit: if (!(Flags & NS_DONT_OPEN_SCOPE) && (WalkState)) @@ -689,7 +675,6 @@ CheckForNewScopeAndExit: * If entry is a type which opens a scope, * push the new scope on the scope stack. */ - if (AcpiNsOpensScope (TypeToCheckFor)) { /* 8-12-98 ASL Grammar Update supports null NamePath */ diff --git a/sys/contrib/dev/acpica/nsalloc.c b/sys/contrib/dev/acpica/nsalloc.c index 6a6d2d1..d4e712a 100644 --- a/sys/contrib/dev/acpica/nsalloc.c +++ b/sys/contrib/dev/acpica/nsalloc.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: nsalloc - Namespace allocation and deletion utilities - * $Revision: 53 $ + * $Revision: 55 $ * ******************************************************************************/ @@ -130,11 +130,11 @@ * * FUNCTION: AcpiNsCreateNode * - * PARAMETERS: + * PARAMETERS: AcpiName - Name of the new node * * RETURN: None * - * DESCRIPTION: + * DESCRIPTION: Create a namespace node * ******************************************************************************/ @@ -144,6 +144,7 @@ AcpiNsCreateNode ( { ACPI_NAMESPACE_NODE *Node; + FUNCTION_TRACE ("NsCreateNode"); @@ -167,11 +168,11 @@ AcpiNsCreateNode ( * * FUNCTION: AcpiNsDeleteNode * - * PARAMETERS: + * PARAMETERS: Node - Node to be deleted * * RETURN: None * - * DESCRIPTION: + * DESCRIPTION: Delete a namespace node * ******************************************************************************/ @@ -186,6 +187,7 @@ AcpiNsDeleteNode ( FUNCTION_TRACE_PTR ("NsDeleteNode", Node); + ParentNode = AcpiNsGetParentObject (Node); PrevNode = NULL; @@ -216,7 +218,6 @@ AcpiNsDeleteNode ( /* * Detach an object if there is one */ - if (Node->Object) { AcpiNsDetachObject (Node); @@ -233,7 +234,7 @@ AcpiNsDeleteNode ( * * PARAMETERS: WalkState - Current state of the walk * ParentNode - The parent of the new Node - * Node - The new Node to install + * Node - The new Node to install * Type - ACPI object type of the new Node * * RETURN: None @@ -246,7 +247,7 @@ void AcpiNsInstallNode ( ACPI_WALK_STATE *WalkState, ACPI_NAMESPACE_NODE *ParentNode, /* Parent */ - ACPI_NAMESPACE_NODE *Node, /* New Child*/ + ACPI_NAMESPACE_NODE *Node, /* New Child*/ ACPI_OBJECT_TYPE8 Type) { UINT16 OwnerId = TABLE_ID_DSDT; @@ -377,7 +378,7 @@ AcpiNsDeleteChildren ( UINT8 Flags; - FUNCTION_TRACE_PTR ("AcpiNsDeleteChildren", ParentNode); + FUNCTION_TRACE_PTR ("NsDeleteChildren", ParentNode); if (!ParentNode) @@ -421,7 +422,6 @@ AcpiNsDeleteChildren ( /* * Detach an object if there is one */ - if (ChildNode->Object) { AcpiNsDetachObject (ChildNode); @@ -448,7 +448,7 @@ AcpiNsDeleteChildren ( * * FUNCTION: AcpiNsDeleteNamespaceSubtree * - * PARAMETERS: None. + * PARAMETERS: ParentNode - Root of the subtree to be deleted * * RETURN: None. * @@ -482,14 +482,12 @@ AcpiNsDeleteNamespaceSubtree ( * Traverse the tree of objects until we bubble back up * to where we started. */ - while (Level > 0) { /* * Get the next typed object in this scope. * Null returned if not found */ - ChildNode = AcpiNsGetNextObject (ACPI_TYPE_ANY, ParentNode, ChildNode); if (ChildNode) @@ -498,7 +496,6 @@ AcpiNsDeleteNamespaceSubtree ( * Found an object - delete the object within * the Value field */ - ObjDesc = AcpiNsGetAttachedObject (ChildNode); if (ObjDesc) { @@ -515,7 +512,6 @@ AcpiNsDeleteNamespaceSubtree ( * There is at least one child of this object, * visit the object */ - Level++; ParentNode = ChildNode; ChildNode = 0; @@ -556,7 +552,7 @@ AcpiNsDeleteNamespaceSubtree ( * FUNCTION: AcpiNsRemoveReference * * PARAMETERS: Node - Named object whose reference count is to be - * decremented + * decremented * * RETURN: None. * @@ -573,6 +569,9 @@ AcpiNsRemoveReference ( ACPI_NAMESPACE_NODE *NextNode; + FUNCTION_ENTRY (); + + /* * Decrement the reference count(s) of this object and all * objects up to the root, Delete anything with zero remaining references. @@ -605,9 +604,9 @@ AcpiNsRemoveReference ( * * FUNCTION: AcpiNsDeleteNamespaceByOwner * - * PARAMETERS: None. + * PARAMETERS: OwnerId - All nodes with this owner will be deleted * - * RETURN: None. + * RETURN: Status * * DESCRIPTION: Delete entries within the namespace that are owned by a * specific ID. Used to delete entire ACPI tables. All @@ -625,7 +624,7 @@ AcpiNsDeleteNamespaceByOwner ( ACPI_NAMESPACE_NODE *ParentNode; - FUNCTION_TRACE ("NsDeleteNamespaceSubtree"); + FUNCTION_TRACE ("NsDeleteNamespaceByOwner"); ParentNode = AcpiGbl_RootNode; @@ -636,14 +635,12 @@ AcpiNsDeleteNamespaceByOwner ( * Traverse the tree of objects until we bubble back up * to where we started. */ - while (Level > 0) { /* * Get the next typed object in this scope. * Null returned if not found */ - ChildNode = AcpiNsGetNextObject (ACPI_TYPE_ANY, ParentNode, ChildNode); @@ -655,7 +652,6 @@ AcpiNsDeleteNamespaceByOwner ( * Found an object - delete the object within * the Value field */ - ObjDesc = AcpiNsGetAttachedObject (ChildNode); if (ObjDesc) { diff --git a/sys/contrib/dev/acpica/nsdump.c b/sys/contrib/dev/acpica/nsdump.c index 85644af..6e237f4 100644 --- a/sys/contrib/dev/acpica/nsdump.c +++ b/sys/contrib/dev/acpica/nsdump.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: nsdump - table dumping routines for debug - * $Revision: 95 $ + * $Revision: 99 $ * *****************************************************************************/ @@ -156,6 +156,7 @@ AcpiNsDumpPathname ( FUNCTION_TRACE ("NsDumpPathname"); + /* Do this only if the requested debug level and component are enabled */ if (!(AcpiDbgLevel & Level) || !(AcpiDbgLayer & Component)) @@ -215,7 +216,7 @@ AcpiNsDumpOneObject ( UINT32 WhichBit; - PROC_NAME ("AcpiNsDumpOneObject"); + PROC_NAME ("NsDumpOneObject"); ThisNode = AcpiNsConvertHandleToEntry (ObjHandle); @@ -314,7 +315,6 @@ AcpiNsDumpOneObject ( /* * Now we can print out the pertinent information */ - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " %4.4s %-9s ", &ThisNode->Name, AcpiUtGetTypeName (Type))); ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, "%p S:%p O:%p", ThisNode, ThisNode->Child, ThisNode->Object)); @@ -516,6 +516,9 @@ AcpiNsDumpObjects ( ACPI_WALK_INFO Info; + FUNCTION_ENTRY (); + + Info.DebugLevel = ACPI_LV_TABLES; Info.OwnerId = OwnerId; @@ -549,7 +552,8 @@ AcpiNsDumpOneDevice ( ACPI_STATUS Status; UINT32 i; - PROC_NAME ("AcpiNsDumpOneDevice"); + + PROC_NAME ("NsDumpOneDevice"); Status = AcpiNsDumpOneObject (ObjHandle, Level, Context, ReturnValue); @@ -585,12 +589,13 @@ AcpiNsDumpRootDevices (void) { ACPI_HANDLE SysBusHandle; - PROC_NAME ("AcpiNsDumpRootDevices"); + + PROC_NAME ("NsDumpRootDevices"); /* Only dump the table if tracing is enabled */ - if (!(ACPI_DB_TABLES & AcpiDbgLevel)) + if (!(ACPI_LV_TABLES & AcpiDbgLevel)) { return; } @@ -671,14 +676,13 @@ AcpiNsDumpEntry ( ACPI_WALK_INFO Info; - FUNCTION_TRACE_PTR ("NsDumpEntry", Handle); + FUNCTION_ENTRY (); + Info.DebugLevel = DebugLevel; Info.OwnerId = ACPI_UINT32_MAX; AcpiNsDumpOneObject (Handle, 1, &Info, NULL); - - return_VOID; } #endif diff --git a/sys/contrib/dev/acpica/nseval.c b/sys/contrib/dev/acpica/nseval.c index 709e6a4..72ef9dc 100644 --- a/sys/contrib/dev/acpica/nseval.c +++ b/sys/contrib/dev/acpica/nseval.c @@ -2,7 +2,7 @@ * * Module Name: nseval - Object evaluation interfaces -- includes control * method lookup and execution. - * $Revision: 94 $ + * $Revision: 97 $ * ******************************************************************************/ @@ -216,7 +216,6 @@ AcpiNsEvaluateRelative ( * Now that we have a handle to the object, we can attempt * to evaluate it. */ - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%s [%p] Value %p\n", Pathname, Node, Node->Object)); @@ -295,8 +294,7 @@ AcpiNsEvaluateByName ( * Now that we have a handle to the object, we can attempt * to evaluate it. */ - - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%s [%p] Value %p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%s [%p] Value %p\n", Pathname, Node, Node->Object)); Status = AcpiNsEvaluateByHandle (Node, Params, ReturnObject); @@ -513,9 +511,17 @@ AcpiNsExecuteControlMethod ( AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); /* - * Execute the method via the interpreter + * Execute the method via the interpreter. The interpreter is locked + * here before calling into the AML parser */ - Status = AcpiExExecuteMethod (MethodNode, Params, ReturnObjDesc); + Status = AcpiExEnterInterpreter (); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } + + Status = AcpiPsxExecute (MethodNode, Params, ReturnObjDesc); + AcpiExExitInterpreter (); return_ACPI_STATUS (Status); } @@ -551,7 +557,6 @@ AcpiNsGetObjectValue ( /* * We take the value from certain objects directly */ - if ((Node->Type == ACPI_TYPE_PROCESSOR) || (Node->Type == ACPI_TYPE_POWER)) { @@ -568,7 +573,6 @@ AcpiNsGetObjectValue ( /* * Get the attached object */ - ValDesc = AcpiNsGetAttachedObject (Node); if (!ValDesc) { @@ -582,7 +586,6 @@ AcpiNsGetObjectValue ( * TBD: [Future] - need a low-level object copy that handles * the reference count automatically. (Don't want to copy it) */ - MEMCPY (ObjDesc, ValDesc, sizeof (ACPI_OPERAND_OBJECT)); ObjDesc->Common.ReferenceCount = 1; AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); @@ -625,7 +628,6 @@ AcpiNsGetObjectValue ( * We must release the namespace lock before entering the * intepreter. */ - AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); Status = AcpiExEnterInterpreter (); if (ACPI_SUCCESS (Status)) @@ -640,7 +642,6 @@ AcpiNsGetObjectValue ( * If AcpiExResolveToValue() succeeded, the return value was * placed in ObjDesc. */ - if (ACPI_SUCCESS (Status)) { Status = AE_CTRL_RETURN_VALUE; diff --git a/sys/contrib/dev/acpica/nsinit.c b/sys/contrib/dev/acpica/nsinit.c index 7ae3550..919992a 100644 --- a/sys/contrib/dev/acpica/nsinit.c +++ b/sys/contrib/dev/acpica/nsinit.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: nsinit - namespace initialization - * $Revision: 29 $ + * $Revision: 31 $ * *****************************************************************************/ @@ -270,7 +270,7 @@ AcpiNsInitOneObject ( ACPI_OPERAND_OBJECT *ObjDesc; - PROC_NAME ("AcpiNsInitOneObject"); + PROC_NAME ("NsInitOneObject"); Info->ObjectCount++; @@ -396,7 +396,7 @@ AcpiNsInitOneDevice ( ACPI_DEVICE_WALK_INFO *Info = (ACPI_DEVICE_WALK_INFO *) Context; - FUNCTION_TRACE ("AcpiNsInitOneDevice"); + FUNCTION_TRACE ("NsInitOneDevice"); if (!(AcpiDbgLevel & ACPI_LV_INIT)) @@ -420,7 +420,6 @@ AcpiNsInitOneDevice ( /* * Run _STA to determine if we can run _INI on the device. */ - DEBUG_EXEC (AcpiUtDisplayInitPathname (Node, "_STA [Method]")); Status = AcpiUtExecute_STA (Node, &Flags); if (ACPI_FAILURE (Status)) diff --git a/sys/contrib/dev/acpica/nsload.c b/sys/contrib/dev/acpica/nsload.c index 73f8a6c..88f0fb6 100644 --- a/sys/contrib/dev/acpica/nsload.c +++ b/sys/contrib/dev/acpica/nsload.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: nsload - namespace loading/expanding/contracting procedures - * $Revision: 42 $ + * $Revision: 43 $ * *****************************************************************************/ @@ -165,7 +165,6 @@ AcpiNsLoadNamespace ( * Load the namespace. The DSDT is required, * but the SSDT and PSDT tables are optional. */ - Status = AcpiNsLoadTableByType (ACPI_TABLE_DSDT); if (ACPI_FAILURE (Status)) { @@ -294,7 +293,6 @@ AcpiNsParseTable ( * to service the entire parse. The second pass of the parse then * performs another complete parse of the AML.. */ - Status = AcpiNsOneCompleteParse (1, TableDesc); if (ACPI_FAILURE (Status)) { @@ -311,7 +309,6 @@ AcpiNsParseTable ( * overhead of this is compensated for by the fact that the * parse objects are all cached. */ - Status = AcpiNsOneCompleteParse (2, TableDesc); if (ACPI_FAILURE (Status)) { @@ -371,7 +368,6 @@ AcpiNsLoadTable ( * to another control method, we can't continue parsing * because we don't know how many arguments to parse next! */ - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "**** Loading table into namespace ****\n")); AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); @@ -389,7 +385,6 @@ AcpiNsLoadTable ( * just-in-time parsing, we delete the control method * parse trees. */ - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "**** Begin Table Method Parsing and Object Initialization ****\n")); @@ -435,7 +430,6 @@ AcpiNsLoadTableByType ( * Table types supported are: * DSDT (one), SSDT/PSDT (multiple) */ - switch (TableType) { @@ -473,7 +467,6 @@ AcpiNsLoadTableByType ( /* * Traverse list of SSDT tables */ - TableDesc = &AcpiGbl_AcpiTables[ACPI_TABLE_SSDT]; for (i = 0; i < AcpiGbl_AcpiTables[ACPI_TABLE_SSDT].Count; i++) { @@ -481,7 +474,6 @@ AcpiNsLoadTableByType ( * Only attempt to load table if it is not * already loaded! */ - if (!TableDesc->LoadedIntoNamespace) { Status = AcpiNsLoadTable (TableDesc, AcpiGbl_RootNode); @@ -506,7 +498,6 @@ AcpiNsLoadTableByType ( /* * Traverse list of PSDT tables */ - TableDesc = &AcpiGbl_AcpiTables[ACPI_TABLE_PSDT]; for (i = 0; i < AcpiGbl_AcpiTables[ACPI_TABLE_PSDT].Count; i++) @@ -584,7 +575,6 @@ AcpiNsDeleteSubtree ( * Traverse the tree of objects until we bubble back up * to where we started. */ - while (Level > 0) { /* Attempt to get the next object in this scope */ @@ -608,7 +598,6 @@ AcpiNsDeleteSubtree ( * There is at least one child of this object, * visit the object */ - Level++; ParentHandle = ChildHandle; ChildHandle = 0; diff --git a/sys/contrib/dev/acpica/nsnames.c b/sys/contrib/dev/acpica/nsnames.c index f2ca793..aeced55 100644 --- a/sys/contrib/dev/acpica/nsnames.c +++ b/sys/contrib/dev/acpica/nsnames.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: nsnames - Name manipulation and search - * $Revision: 61 $ + * $Revision: 63 $ * ******************************************************************************/ @@ -151,7 +151,7 @@ AcpiNsGetTablePathname ( ACPI_NAMESPACE_NODE *ParentNode; - FUNCTION_TRACE_PTR ("AcpiNsGetTablePathname", Node); + FUNCTION_TRACE_PTR ("NsGetTablePathname", Node); if (!AcpiGbl_RootNode || !Node) @@ -235,6 +235,10 @@ AcpiNsGetPathnameLength ( UINT32 Size; ACPI_NAMESPACE_NODE *NextNode; + + FUNCTION_ENTRY (); + + /* * Compute length of pathname as 5 * number of name segments. * Go back up the parent tree to the root @@ -287,6 +291,7 @@ AcpiNsHandleToPathname ( ACPI_NAME Name; UINT32 Size; + FUNCTION_TRACE_PTR ("NsHandleToPathname", TargetHandle); @@ -296,7 +301,6 @@ AcpiNsHandleToPathname ( * If the name space has not been initialized, * this function should not have been called. */ - return_ACPI_STATUS (AE_NO_NAMESPACE); } @@ -351,7 +355,6 @@ AcpiNsHandleToPathname ( * Overlay the "." preceding the first segment with * the root name "\" */ - UserBuffer[Size] = '\\'; ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Len=%X, %s \n", PathLength, UserBuffer)); diff --git a/sys/contrib/dev/acpica/nsobject.c b/sys/contrib/dev/acpica/nsobject.c index 567c8f0..ca27e8b 100644 --- a/sys/contrib/dev/acpica/nsobject.c +++ b/sys/contrib/dev/acpica/nsobject.c @@ -2,7 +2,7 @@ * * Module Name: nsobject - Utilities for objects attached to namespace * table entries - * $Revision: 60 $ + * $Revision: 63 $ * ******************************************************************************/ @@ -254,7 +254,6 @@ AcpiNsAttachObject ( { ObjDesc = (ACPI_OPERAND_OBJECT *) Object; - /* If a valid type (non-ANY) was given, just use it */ if (ACPI_TYPE_ANY != Type) @@ -262,13 +261,9 @@ AcpiNsAttachObject ( ObjType = Type; } - /* * Type is TYPE_Any, we must try to determinte the - * actual type of the object - */ - - /* + * actual type of the object. * Check if value points into the AML code */ else if (AcpiTbSystemTablePointer (Object)) @@ -303,11 +298,11 @@ AcpiNsAttachObject ( /* Otherwise, fall through and set the type to Integer */ - case AML_ZERO_OP: - case AML_ONES_OP: + case AML_ZERO_OP: + case AML_ONES_OP: case AML_ONE_OP: - case AML_BYTE_OP: - case AML_WORD_OP: + case AML_BYTE_OP: + case AML_WORD_OP: case AML_DWORD_OP: case AML_QWORD_OP: @@ -356,7 +351,7 @@ AcpiNsAttachObject ( * Cannot figure out the type -- set to DefAny which * will print as an error in the name table dump */ - if (GetDebugLevel () > 0) + if (AcpiDbgLevel > 0) { DUMP_PATHNAME (Node, "NsAttachObject confused: setting bogus type for ", @@ -447,6 +442,7 @@ AcpiNsDetachObject ( FUNCTION_TRACE ("NsDetachObject"); + ObjDesc = Node->Object; if (!ObjDesc) { diff --git a/sys/contrib/dev/acpica/nssearch.c b/sys/contrib/dev/acpica/nssearch.c index 4b4f190..a0e0ed7 100644 --- a/sys/contrib/dev/acpica/nssearch.c +++ b/sys/contrib/dev/acpica/nssearch.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: nssearch - Namespace search - * $Revision: 72 $ + * $Revision: 74 $ * ******************************************************************************/ @@ -186,7 +186,6 @@ AcpiNsSearchNode ( * Search for name in this table, which is to say that we must search * for the name among the children of this object */ - NextNode = Node->Child; while (NextNode) { @@ -201,7 +200,6 @@ AcpiNsSearchNode ( * 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)) { @@ -214,7 +212,6 @@ AcpiNsSearchNode ( * 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 && @@ -223,7 +220,7 @@ AcpiNsSearchNode ( NextNode->Type = (UINT8) Type; } - ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, + ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Name %4.4s (actual type %X) found at %p\n", &TargetName, NextNode->Type, NextNode)); @@ -314,7 +311,7 @@ AcpiNsSearchParentTree ( if (AcpiNsLocal (Type)) { - ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] type %X is local(no search)\n", + ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] type %X is local(no search)\n", &TargetName, Type)); } @@ -347,7 +344,6 @@ AcpiNsSearchParentTree ( * Not found here, go up another level * (until we reach the root) */ - ParentNode = AcpiNsGetParentObject (ParentNode); } @@ -457,7 +453,6 @@ AcpiNsSearchAndEnter ( * the search when namespace references are being resolved * (load pass 2) and during the execution phase. */ - if ((InterpreterMode != IMODE_LOAD_PASS1) && (Flags & NS_SEARCH_PARENT)) { @@ -465,7 +460,6 @@ AcpiNsSearchAndEnter ( * Not found in table - search parent tree according * to ACPI specification */ - Status = AcpiNsSearchParentTree (TargetName, Node, Type, ReturnNode); if (ACPI_SUCCESS (Status)) diff --git a/sys/contrib/dev/acpica/nsutils.c b/sys/contrib/dev/acpica/nsutils.c index c468b8f..c917ebe 100644 --- a/sys/contrib/dev/acpica/nsutils.c +++ b/sys/contrib/dev/acpica/nsutils.c @@ -2,7 +2,7 @@ * * Module Name: nsutils - Utilities for accessing ACPI namespace, accessing * parents and siblings and Scope manipulation - * $Revision: 86 $ + * $Revision: 89 $ * *****************************************************************************/ @@ -230,12 +230,12 @@ AcpiNsLocal ( * * FUNCTION: AcpiNsGetInternalNameLength * - * PARAMETERS: Info - Info struct initialized with the + * PARAMETERS: Info - Info struct initialized with the * external name pointer. * * RETURN: Status * - * DESCRIPTION: Calculate the length of the internal (AML) namestring + * DESCRIPTION: Calculate the length of the internal (AML) namestring * corresponding to the external (ASL) namestring. * ******************************************************************************/ @@ -248,11 +248,14 @@ AcpiNsGetInternalNameLength ( UINT32 i; + FUNCTION_ENTRY (); + + NextExternalChar = Info->ExternalName; Info->NumCarats = 0; Info->NumSegments = 0; Info->FullyQualified = FALSE; - + /* * For the internal name, the required length is 4 bytes * per segment, plus 1 each for RootPrefix, MultiNamePrefixOp, @@ -273,7 +276,6 @@ AcpiNsGetInternalNameLength ( /* * Handle Carat prefixes */ - while (*NextExternalChar == '^') { Info->NumCarats++; @@ -299,7 +301,7 @@ AcpiNsGetInternalNameLength ( } } - Info->Length = (ACPI_NAME_SIZE * Info->NumSegments) + + Info->Length = (ACPI_NAME_SIZE * Info->NumSegments) + 4 + Info->NumCarats; Info->NextExternalChar = NextExternalChar; @@ -316,7 +318,7 @@ AcpiNsGetInternalNameLength ( * * RETURN: Status * - * DESCRIPTION: Construct the internal (AML) namestring + * DESCRIPTION: Construct the internal (AML) namestring * corresponding to the external (ASL) namestring. * ******************************************************************************/ @@ -332,9 +334,9 @@ AcpiNsBuildInternalName ( UINT32 i; - FUNCTION_TRACE ("AcpiNsBuildInternalName"); + FUNCTION_TRACE ("NsBuildInternalName"); + - /* Setup the correct prefixes, counts, and pointers */ if (Info->FullyQualified) @@ -695,6 +697,9 @@ AcpiNsConvertHandleToEntry ( ACPI_HANDLE Handle) { + FUNCTION_ENTRY (); + + /* * Simple implementation for now; * TBD: [Future] Real integer handles allow for more verification @@ -957,7 +962,7 @@ AcpiNsFindParentName ( ACPI_NAMESPACE_NODE *ParentNode; - FUNCTION_TRACE ("FindParentName"); + FUNCTION_TRACE ("NsFindParentName"); if (ChildNode) @@ -1042,6 +1047,9 @@ AcpiNsGetParentObject ( { + FUNCTION_ENTRY (); + + if (!Node) { return (NULL); diff --git a/sys/contrib/dev/acpica/nswalk.c b/sys/contrib/dev/acpica/nswalk.c index 71569bb..1cd54ce 100644 --- a/sys/contrib/dev/acpica/nswalk.c +++ b/sys/contrib/dev/acpica/nswalk.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: nswalk - Functions for walking the ACPI namespace - * $Revision: 23 $ + * $Revision: 24 $ * *****************************************************************************/ @@ -154,9 +154,11 @@ AcpiNsGetNextObject ( ACPI_NAMESPACE_NODE *NextNode = NULL; + FUNCTION_ENTRY (); + + if (!ChildNode) { - /* It's really the parent's _scope_ that we want */ if (ParentNode->Child) @@ -255,6 +257,7 @@ AcpiNsWalkNamespace ( FUNCTION_TRACE ("NsWalkNamespace"); + /* Special case for the namespace Root Node */ if (StartNode == ACPI_ROOT_OBJECT) @@ -275,14 +278,12 @@ AcpiNsWalkNamespace ( * started. When Level is zero, the loop is done because we have * bubbled up to (and passed) the original parent handle (StartEntry) */ - while (Level > 0) { /* * Get the next typed object in this scope. Null returned * if not found */ - Status = AE_OK; ChildNode = AcpiNsGetNextObject (ACPI_TYPE_ANY, ParentNode, @@ -294,7 +295,6 @@ AcpiNsWalkNamespace ( * Found an object, Get the type if we are not * searching for ANY */ - if (Type != ACPI_TYPE_ANY) { ChildType = ChildNode->Type; @@ -306,7 +306,6 @@ AcpiNsWalkNamespace ( * Found a matching object, invoke the user * callback function */ - if (UnlockBeforeCallback) { AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); @@ -324,16 +323,21 @@ AcpiNsWalkNamespace ( { case AE_OK: case AE_CTRL_DEPTH: + /* Just keep going */ break; case AE_CTRL_TERMINATE: + /* Exit now, with OK status */ + return_ACPI_STATUS (AE_OK); break; default: + /* All others are valid exceptions */ + return_ACPI_STATUS (Status); break; } @@ -347,7 +351,6 @@ AcpiNsWalkNamespace ( * or if the user function has specified that the * maximum depth has been reached. */ - if ((Level < MaxDepth) && (Status != AE_CTRL_DEPTH)) { if (AcpiNsGetNextObject (ACPI_TYPE_ANY, @@ -378,6 +381,7 @@ AcpiNsWalkNamespace ( } /* Complete walk, not terminated by user function */ + return_ACPI_STATUS (AE_OK); } diff --git a/sys/contrib/dev/acpica/nsxfname.c b/sys/contrib/dev/acpica/nsxfname.c index 6b46010..2a80ca2 100644 --- a/sys/contrib/dev/acpica/nsxfname.c +++ b/sys/contrib/dev/acpica/nsxfname.c @@ -2,7 +2,7 @@ * * Module Name: nsxfname - Public interfaces to the ACPI subsystem * ACPI Namespace oriented interfaces - * $Revision: 79 $ + * $Revision: 80 $ * *****************************************************************************/ @@ -159,6 +159,9 @@ AcpiGetHandle ( ACPI_NAMESPACE_NODE *PrefixNode = NULL; + FUNCTION_ENTRY (); + + /* Ensure that ACPI has been initialized */ ACPI_IS_INITIALIZATION_COMPLETE (Status); @@ -215,7 +218,7 @@ AcpiGetHandle ( /**************************************************************************** * - * FUNCTION: AcpiGetPathname + * FUNCTION: AcpiGetName * * PARAMETERS: Handle - Handle to be converted to a pathname * NameType - Full pathname or single segment @@ -275,7 +278,6 @@ AcpiGetName ( * Wants the single segment ACPI name. * Validate handle and convert to an Node */ - AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); Node = AcpiNsConvertHandleToEntry (Handle); if (!Node) @@ -381,7 +383,6 @@ AcpiGetObjectInfo ( * not be present. The Info->Valid bits are used * to indicate which methods ran successfully. */ - Info->Valid = 0; /* Execute the _HID method and save the result */ @@ -408,7 +409,6 @@ AcpiGetObjectInfo ( * Execute the _STA method and save the result * _STA is not always present */ - Status = AcpiUtExecute_STA (Node, &DeviceStatus); if (ACPI_SUCCESS (Status)) { @@ -420,7 +420,6 @@ AcpiGetObjectInfo ( * Execute the _ADR method and save result if successful * _ADR is not always present */ - Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, Node, &Address); diff --git a/sys/contrib/dev/acpica/nsxfobj.c b/sys/contrib/dev/acpica/nsxfobj.c index c0bbeae..8885ed2 100644 --- a/sys/contrib/dev/acpica/nsxfobj.c +++ b/sys/contrib/dev/acpica/nsxfobj.c @@ -2,7 +2,7 @@ * * Module Name: nsxfobj - Public interfaces to the ACPI subsystem * ACPI Object oriented interfaces - * $Revision: 88 $ + * $Revision: 89 $ * ******************************************************************************/ @@ -185,14 +185,12 @@ AcpiEvaluateObject ( * (which must be a control method), the external objects * must be converted to internal objects */ - if (ParamObjects && ParamObjects->Count) { /* * Allocate a new parameter block for the internal objects * Add 1 to count to allow for null terminated internal list */ - Count = ParamObjects->Count; ParamLength = (Count + 1) * sizeof (void *); ObjectLength = Count * sizeof (ACPI_OPERAND_OBJECT); @@ -211,7 +209,6 @@ AcpiEvaluateObject ( * Init the param array of pointers and NULL terminate * the list */ - for (i = 0; i < Count; i++) { ParamPtr[i] = &ObjectPtr[i]; @@ -243,7 +240,6 @@ AcpiEvaluateObject ( * 2) No handle, not fully qualified pathname (error) * 3) Valid handle */ - if ((Pathname) && (AcpiNsValidRootPrefix (Pathname[0]))) { @@ -260,7 +256,6 @@ AcpiEvaluateObject ( * is specified. Since we've already handled fully * qualified names above, this is an error */ - if (!Pathname) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Both Handle and Pathname are NULL\n")); @@ -281,7 +276,6 @@ AcpiEvaluateObject ( * pathname it is relative. The handle will be validated * in the lower procedures */ - if (!Pathname) { /* @@ -345,7 +339,6 @@ AcpiEvaluateObject ( * Check if there is enough room in the * caller's buffer */ - if (UserBufferLength < BufferSpaceNeeded) { /* @@ -353,7 +346,6 @@ AcpiEvaluateObject ( * give him partial results fail the call * but return the buffer size needed */ - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Needed buffer size %X, received %X\n", BufferSpaceNeeded, UserBufferLength)); @@ -391,7 +383,6 @@ AcpiEvaluateObject ( /* * Free the input parameter list (if we created one), */ - if (ParamPtr) { /* Free the allocated parameter block */ @@ -713,7 +704,6 @@ AcpiWalkNamespace ( * to the user function - since this function * must be allowed to make Acpi calls itself. */ - AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); Status = AcpiNsWalkNamespace ((ACPI_OBJECT_TYPE8) Type, StartObject, MaxDepth, @@ -876,7 +866,6 @@ AcpiGetDevices ( * to the user function - since this function * must be allowed to make Acpi calls itself. */ - AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX, diff --git a/sys/contrib/dev/acpica/psargs.c b/sys/contrib/dev/acpica/psargs.c index 61482e5..03d207e 100644 --- a/sys/contrib/dev/acpica/psargs.c +++ b/sys/contrib/dev/acpica/psargs.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: psargs - Parse AML opcode arguments - * $Revision: 50 $ + * $Revision: 51 $ * *****************************************************************************/ @@ -362,7 +362,6 @@ AcpiPsGetNextNamepath ( /* * Lookup the name in the parsed namespace */ - Op = NULL; if (MethodCall) { @@ -380,7 +379,6 @@ AcpiPsGetNextNamepath ( * associated with this method, and 2) Change the NAMEPATH * object into a METHODCALL object. */ - Count = AcpiPsGetArg (Op, 0); if (Count && Count->Opcode == AML_BYTE_OP) { @@ -414,13 +412,11 @@ AcpiPsGetNextNamepath ( } } - /* * Either we didn't find the object in the namespace, or the object is * something other than a control method. Just initialize the Op with the * pathname */ - AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP); Arg->Value.Name = Path; @@ -479,7 +475,6 @@ AcpiPsGetNextNamepath ( * parent tree, but don't open a new scope -- we just want to lookup the * object (MUST BE mode EXECUTE to perform upsearch) */ - Status = AcpiNsLookup (&ScopeInfo, Path, ACPI_TYPE_ANY, IMODE_EXECUTE, NS_SEARCH_PARENT | NS_DONT_OPEN_SCOPE, NULL, &Node); @@ -529,7 +524,6 @@ AcpiPsGetNextNamepath ( * something other than a control method. Just initialize the Op with the * pathname. */ - AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP); Arg->Value.Name = Path; @@ -560,7 +554,6 @@ AcpiPsGetNextSimpleArg ( ACPI_PARSE_OBJECT *Arg) { - FUNCTION_TRACE_U32 ("PsGetNextSimpleArg", ArgType); diff --git a/sys/contrib/dev/acpica/psfind.c b/sys/contrib/dev/acpica/psfind.c index c81e324..ce4baef 100644 --- a/sys/contrib/dev/acpica/psfind.c +++ b/sys/contrib/dev/acpica/psfind.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: psfind - Parse tree search routine - * $Revision: 25 $ + * $Revision: 28 $ * *****************************************************************************/ @@ -191,23 +191,27 @@ AcpiPsFindName ( { ACPI_PARSE_OBJECT *Op; ACPI_PARSE_OBJECT *Field; + const ACPI_OPCODE_INFO *OpInfo; /* search scope level for matching name segment */ Op = AcpiPsGetChild (Scope); + OpInfo = AcpiPsGetOpcodeInfo (Op->Opcode); while (Op) { - if (AcpiPsIsFieldOp (Op->Opcode)) + if (OpInfo->Flags & AML_FIELD) { /* Field, search named fields */ Field = AcpiPsGetChild (Op); while (Field) { - if (AcpiPsIsNamedOp (Field->Opcode) && + OpInfo = AcpiPsGetOpcodeInfo (Field->Opcode); + + if ((OpInfo->Flags & AML_NAMED) && AcpiPsGetName (Field) == Name && (!Opcode || Field->Opcode == Opcode)) { @@ -218,7 +222,7 @@ AcpiPsFindName ( } } - else if (AcpiPsIsCreateFieldOp (Op->Opcode)) + else if (OpInfo->Flags & AML_CREATE) { if (Op->Opcode == AML_CREATE_FIELD_OP) { @@ -240,7 +244,7 @@ AcpiPsFindName ( } } - else if ((AcpiPsIsNamedOp (Op->Opcode)) && + else if ((OpInfo->Flags & AML_NAMED) && (AcpiPsGetName (Op) == Name) && (!Opcode || Op->Opcode == Opcode || Opcode == AML_SCOPE_OP)) { @@ -288,7 +292,7 @@ AcpiPsFind ( if (!Scope || !Path) { - ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Null path (%p) or scope (%p)!\n", + ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Null path (%p) or scope (%p)!\n", Path, Scope)); return_PTR (NULL); } diff --git a/sys/contrib/dev/acpica/psopcode.c b/sys/contrib/dev/acpica/psopcode.c index e17d4cc..adc455d9 100644 --- a/sys/contrib/dev/acpica/psopcode.c +++ b/sys/contrib/dev/acpica/psopcode.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: psopcode - Parser opcode information table - * $Revision: 35 $ + * $Revision: 40 $ * *****************************************************************************/ @@ -154,14 +154,6 @@ /* - * Flags byte: 0-4 (5 bits) = Opcode Type - * 5 (1 bit) = Has arguments flag - * 6-7 (2 bits) = Reserved - */ -#define AML_NO_ARGS 0 -#define AML_HAS_ARGS ACPI_OP_ARGS_MASK - -/* * All AML opcodes and the parse-time arguments for each. Used by the AML parser Each list is compressed * into a 32-bit number and stored in the master opcode table at the end of this file. */ @@ -420,149 +412,269 @@ /* + * Summary of opcode types/flags + */ + +/****************************************************************************** + + Opcodes that have associated namespace objects + + AML_SCOPE_OP + AML_DEVICE_OP + AML_THERMAL_ZONE_OP + AML_METHOD_OP + AML_POWER_RES_OP + AML_PROCESSOR_OP + AML_FIELD_OP + AML_INDEX_FIELD_OP + AML_BANK_FIELD_OP + AML_NAME_OP + AML_ALIAS_OP + AML_MUTEX_OP + AML_EVENT_OP + AML_REGION_OP + AML_CREATE_FIELD_OP + AML_CREATE_BIT_FIELD_OP + AML_CREATE_BYTE_FIELD_OP + AML_CREATE_WORD_FIELD_OP + AML_CREATE_DWORD_FIELD_OP + AML_CREATE_QWORD_FIELD_OP + AML_INT_NAMEDFIELD_OP + AML_INT_METHODCALL_OP + AML_INT_NAMEPATH_OP + + Opcodes that are "namespace" opcodes + + AML_SCOPE_OP + AML_DEVICE_OP + AML_THERMAL_ZONE_OP + AML_METHOD_OP + AML_POWER_RES_OP + AML_PROCESSOR_OP + AML_FIELD_OP + AML_INDEX_FIELD_OP + AML_BANK_FIELD_OP + AML_NAME_OP + AML_ALIAS_OP + AML_MUTEX_OP + AML_EVENT_OP + AML_REGION_OP + AML_INT_NAMEDFIELD_OP + + Opcodes that have an associated namespace node + + AML_SCOPE_OP + AML_DEVICE_OP + AML_THERMAL_ZONE_OP + AML_METHOD_OP + AML_POWER_RES_OP + AML_PROCESSOR_OP + AML_NAME_OP + AML_ALIAS_OP + AML_MUTEX_OP + AML_EVENT_OP + AML_REGION_OP + AML_CREATE_FIELD_OP + AML_CREATE_BIT_FIELD_OP + AML_CREATE_BYTE_FIELD_OP + AML_CREATE_WORD_FIELD_OP + AML_CREATE_DWORD_FIELD_OP + AML_CREATE_QWORD_FIELD_OP + AML_INT_NAMEDFIELD_OP + AML_INT_METHODCALL_OP + AML_INT_NAMEPATH_OP + + Opcodes that define named ACPI objects + + AML_SCOPE_OP + AML_DEVICE_OP + AML_THERMAL_ZONE_OP + AML_METHOD_OP + AML_POWER_RES_OP + AML_PROCESSOR_OP + AML_NAME_OP + AML_ALIAS_OP + AML_MUTEX_OP + AML_EVENT_OP + AML_REGION_OP + AML_INT_NAMEDFIELD_OP + + Opcodes that contain executable AML as part of the definition that + must be deferred until needed + + AML_METHOD_OP + AML_VAR_PACKAGE_OP + AML_CREATE_FIELD_OP + AML_CREATE_BIT_FIELD_OP + AML_CREATE_BYTE_FIELD_OP + AML_CREATE_WORD_FIELD_OP + AML_CREATE_DWORD_FIELD_OP + AML_CREATE_QWORD_FIELD_OP + AML_REGION_OP + + Field opcodes + + AML_CREATE_FIELD_OP + AML_FIELD_OP + AML_INDEX_FIELD_OP + AML_BANK_FIELD_OP + + Field "Create" opcodes + + AML_CREATE_FIELD_OP + AML_CREATE_BIT_FIELD_OP + AML_CREATE_BYTE_FIELD_OP + AML_CREATE_WORD_FIELD_OP + AML_CREATE_DWORD_FIELD_OP + AML_CREATE_QWORD_FIELD_OP + +******************************************************************************/ + + +/* * Master Opcode information table. A summary of everything we know about each opcode, all in one place. */ -static ACPI_OPCODE_INFO AmlOpInfo[] = +static const ACPI_OPCODE_INFO AmlOpInfo[] = { -/* Index Opcode Type Class Has Arguments? Name Parser Args Interpreter Args */ - -/* 00 */ /* AML_ZERO_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS, "Zero", ARGP_ZERO_OP, ARGI_ZERO_OP), -/* 01 */ /* AML_ONE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS, "One", ARGP_ONE_OP, ARGI_ONE_OP), -/* 02 */ /* AML_ALIAS_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Alias", ARGP_ALIAS_OP, ARGI_ALIAS_OP), -/* 03 */ /* AML_NAME_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Name", ARGP_NAME_OP, ARGI_NAME_OP), -/* 04 */ /* AML_BYTE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS, "ByteConst", ARGP_BYTE_OP, ARGI_BYTE_OP), -/* 05 */ /* AML_WORD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS, "WordConst", ARGP_WORD_OP, ARGI_WORD_OP), -/* 06 */ /* AML_DWORD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS, "DwordConst", ARGP_DWORD_OP, ARGI_DWORD_OP), -/* 07 */ /* AML_STRING_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS, "String", ARGP_STRING_OP, ARGI_STRING_OP), -/* 08 */ /* AML_SCOPE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Scope", ARGP_SCOPE_OP, ARGI_SCOPE_OP), -/* 09 */ /* AML_BUFFER_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DATA_TERM| AML_HAS_ARGS, "Buffer", ARGP_BUFFER_OP, ARGI_BUFFER_OP), -/* 0A */ /* AML_PACKAGE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DATA_TERM| AML_HAS_ARGS, "Package", ARGP_PACKAGE_OP, ARGI_PACKAGE_OP), -/* 0B */ /* AML_METHOD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Method", ARGP_METHOD_OP, ARGI_METHOD_OP), -/* 0C */ /* AML_LOCAL0 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS, "Local0", ARGP_LOCAL0, ARGI_LOCAL0), -/* 0D */ /* AML_LOCAL1 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS, "Local1", ARGP_LOCAL1, ARGI_LOCAL1), -/* 0E */ /* AML_LOCAL2 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS, "Local2", ARGP_LOCAL2, ARGI_LOCAL2), -/* 0F */ /* AML_LOCAL3 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS, "Local3", ARGP_LOCAL3, ARGI_LOCAL3), -/* 10 */ /* AML_LOCAL4 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS, "Local4", ARGP_LOCAL4, ARGI_LOCAL4), -/* 11 */ /* AML_LOCAL5 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS, "Local5", ARGP_LOCAL5, ARGI_LOCAL5), -/* 12 */ /* AML_LOCAL6 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS, "Local6", ARGP_LOCAL6, ARGI_LOCAL6), -/* 13 */ /* AML_LOCAL7 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS, "Local7", ARGP_LOCAL7, ARGI_LOCAL7), -/* 14 */ /* AML_ARG0 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS, "Arg0", ARGP_ARG0, ARGI_ARG0), -/* 15 */ /* AML_ARG1 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS, "Arg1", ARGP_ARG1, ARGI_ARG1), -/* 16 */ /* AML_ARG2 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS, "Arg2", ARGP_ARG2, ARGI_ARG2), -/* 17 */ /* AML_ARG3 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS, "Arg3", ARGP_ARG3, ARGI_ARG3), -/* 18 */ /* AML_ARG4 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS, "Arg4", ARGP_ARG4, ARGI_ARG4), -/* 19 */ /* AML_ARG5 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS, "Arg5", ARGP_ARG5, ARGI_ARG5), -/* 1A */ /* AML_ARG6 */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS, "Arg6", ARGP_ARG6, ARGI_ARG6), -/* 1B */ /* AML_STORE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "Store", ARGP_STORE_OP, ARGI_STORE_OP), -/* 1C */ /* AML_REF_OF_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS, "RefOf", ARGP_REF_OF_OP, ARGI_REF_OF_OP), -/* 1D */ /* AML_ADD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "Add", ARGP_ADD_OP, ARGI_ADD_OP), -/* 1E */ /* AML_CONCAT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "Concatenate", ARGP_CONCAT_OP, ARGI_CONCAT_OP), -/* 1F */ /* AML_SUBTRACT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "Subtract", ARGP_SUBTRACT_OP, ARGI_SUBTRACT_OP), -/* 20 */ /* AML_INCREMENT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS, "Increment", ARGP_INCREMENT_OP, ARGI_INCREMENT_OP), -/* 21 */ /* AML_DECREMENT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS, "Decrement", ARGP_DECREMENT_OP, ARGI_DECREMENT_OP), -/* 22 */ /* AML_MULTIPLY_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "Multiply", ARGP_MULTIPLY_OP, ARGI_MULTIPLY_OP), -/* 23 */ /* AML_DIVIDE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "Divide", ARGP_DIVIDE_OP, ARGI_DIVIDE_OP), -/* 24 */ /* AML_SHIFT_LEFT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "ShiftLeft", ARGP_SHIFT_LEFT_OP, ARGI_SHIFT_LEFT_OP), -/* 25 */ /* AML_SHIFT_RIGHT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "ShiftRight", ARGP_SHIFT_RIGHT_OP, ARGI_SHIFT_RIGHT_OP), -/* 26 */ /* AML_BIT_AND_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "And", ARGP_BIT_AND_OP, ARGI_BIT_AND_OP), -/* 27 */ /* AML_BIT_NAND_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "NAnd", ARGP_BIT_NAND_OP, ARGI_BIT_NAND_OP), -/* 28 */ /* AML_BIT_OR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "Or", ARGP_BIT_OR_OP, ARGI_BIT_OR_OP), -/* 29 */ /* AML_BIT_NOR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "NOr", ARGP_BIT_NOR_OP, ARGI_BIT_NOR_OP), -/* 2A */ /* AML_BIT_XOR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "XOr", ARGP_BIT_XOR_OP, ARGI_BIT_XOR_OP), -/* 2B */ /* AML_BIT_NOT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "Not", ARGP_BIT_NOT_OP, ARGI_BIT_NOT_OP), -/* 2C */ /* AML_FIND_SET_LEFT_BIT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "FindSetLeftBit", ARGP_FIND_SET_LEFT_BIT_OP, ARGI_FIND_SET_LEFT_BIT_OP), -/* 2D */ /* AML_FIND_SET_RIGHT_BIT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "FindSetRightBit", ARGP_FIND_SET_RIGHT_BIT_OP,ARGI_FIND_SET_RIGHT_BIT_OP), -/* 2E */ /* AML_DEREF_OF_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS, "DerefOf", ARGP_DEREF_OF_OP, ARGI_DEREF_OF_OP), -/* 2F */ /* AML_NOTIFY_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC1| AML_HAS_ARGS, "Notify", ARGP_NOTIFY_OP, ARGI_NOTIFY_OP), -/* 30 */ /* AML_SIZE_OF_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS, "SizeOf", ARGP_SIZE_OF_OP, ARGI_SIZE_OF_OP), -/* 31 */ /* AML_INDEX_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_TRIADIC| AML_HAS_ARGS, "Index", ARGP_INDEX_OP, ARGI_INDEX_OP), -/* 32 */ /* AML_MATCH_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_HEXADIC| AML_HAS_ARGS, "Match", ARGP_MATCH_OP, ARGI_MATCH_OP), -/* 33 */ /* AML_CREATE_DWORD_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateDWordField", ARGP_CREATE_DWORD_FIELD_OP,ARGI_CREATE_DWORD_FIELD_OP), -/* 34 */ /* AML_CREATE_WORD_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateWordField", ARGP_CREATE_WORD_FIELD_OP, ARGI_CREATE_WORD_FIELD_OP), -/* 35 */ /* AML_CREATE_BYTE_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateByteField", ARGP_CREATE_BYTE_FIELD_OP, ARGI_CREATE_BYTE_FIELD_OP), -/* 36 */ /* AML_CREATE_BIT_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateBitField", ARGP_CREATE_BIT_FIELD_OP, ARGI_CREATE_BIT_FIELD_OP), -/* 37 */ /* AML_TYPE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS, "ObjectType", ARGP_TYPE_OP, ARGI_TYPE_OP), -/* 38 */ /* AML_LAND_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS, "LAnd", ARGP_LAND_OP, ARGI_LAND_OP), -/* 39 */ /* AML_LOR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS, "LOr", ARGP_LOR_OP, ARGI_LOR_OP), -/* 3A */ /* AML_LNOT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS, "LNot", ARGP_LNOT_OP, ARGI_LNOT_OP), -/* 3B */ /* AML_LEQUAL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS, "LEqual", ARGP_LEQUAL_OP, ARGI_LEQUAL_OP), -/* 3C */ /* AML_LGREATER_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS, "LGreater", ARGP_LGREATER_OP, ARGI_LGREATER_OP), -/* 3D */ /* AML_LLESS_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS, "LLess", ARGP_LLESS_OP, ARGI_LLESS_OP), -/* 3E */ /* AML_IF_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_HAS_ARGS, "If", ARGP_IF_OP, ARGI_IF_OP), -/* 3F */ /* AML_ELSE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_HAS_ARGS, "Else", ARGP_ELSE_OP, ARGI_ELSE_OP), -/* 40 */ /* AML_WHILE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_HAS_ARGS, "While", ARGP_WHILE_OP, ARGI_WHILE_OP), -/* 41 */ /* AML_NOOP_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_NO_ARGS, "Noop", ARGP_NOOP_OP, ARGI_NOOP_OP), -/* 42 */ /* AML_RETURN_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_HAS_ARGS, "Return", ARGP_RETURN_OP, ARGI_RETURN_OP), -/* 43 */ /* AML_BREAK_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_NO_ARGS, "Break", ARGP_BREAK_OP, ARGI_BREAK_OP), -/* 44 */ /* AML_BREAK_POINT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_NO_ARGS, "BreakPoint", ARGP_BREAK_POINT_OP, ARGI_BREAK_POINT_OP), -/* 45 */ /* AML_ONES_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS, "Ones", ARGP_ONES_OP, ARGI_ONES_OP), +/* Index Name Parser Args Interpreter Args Flags */ + +/* 00 */ ACPI_OP ("Zero", ARGP_ZERO_OP, ARGI_ZERO_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS ), +/* 01 */ ACPI_OP ("One", ARGP_ONE_OP, ARGI_ONE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS ), +/* 02 */ ACPI_OP ("Alias", ARGP_ALIAS_OP, ARGI_ALIAS_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED), +/* 03 */ ACPI_OP ("Name", ARGP_NAME_OP, ARGI_NAME_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED), +/* 04 */ ACPI_OP ("ByteConst", ARGP_BYTE_OP, ARGI_BYTE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS ), +/* 05 */ ACPI_OP ("WordConst", ARGP_WORD_OP, ARGI_WORD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS ), +/* 06 */ ACPI_OP ("DwordConst", ARGP_DWORD_OP, ARGI_DWORD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS ), +/* 07 */ ACPI_OP ("String", ARGP_STRING_OP, ARGI_STRING_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS ), +/* 08 */ ACPI_OP ("Scope", ARGP_SCOPE_OP, ARGI_SCOPE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED), +/* 09 */ ACPI_OP ("Buffer", ARGP_BUFFER_OP, ARGI_BUFFER_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DATA_TERM| AML_HAS_ARGS), +/* 0A */ ACPI_OP ("Package", ARGP_PACKAGE_OP, ARGI_PACKAGE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DATA_TERM| AML_HAS_ARGS), +/* 0B */ ACPI_OP ("Method", ARGP_METHOD_OP, ARGI_METHOD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED|AML_DEFER), +/* 0C */ ACPI_OP ("Local0", ARGP_LOCAL0, ARGI_LOCAL0, ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS ), +/* 0D */ ACPI_OP ("Local1", ARGP_LOCAL1, ARGI_LOCAL1, ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS ), +/* 0E */ ACPI_OP ("Local2", ARGP_LOCAL2, ARGI_LOCAL2, ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS ), +/* 0F */ ACPI_OP ("Local3", ARGP_LOCAL3, ARGI_LOCAL3, ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS ), +/* 10 */ ACPI_OP ("Local4", ARGP_LOCAL4, ARGI_LOCAL4, ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS ), +/* 11 */ ACPI_OP ("Local5", ARGP_LOCAL5, ARGI_LOCAL5, ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS ), +/* 12 */ ACPI_OP ("Local6", ARGP_LOCAL6, ARGI_LOCAL6, ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS ), +/* 13 */ ACPI_OP ("Local7", ARGP_LOCAL7, ARGI_LOCAL7, ACPI_OP_TYPE_OPCODE | OPTYPE_LOCAL_VARIABLE| AML_NO_ARGS ), +/* 14 */ ACPI_OP ("Arg0", ARGP_ARG0, ARGI_ARG0, ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS ), +/* 15 */ ACPI_OP ("Arg1", ARGP_ARG1, ARGI_ARG1, ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS ), +/* 16 */ ACPI_OP ("Arg2", ARGP_ARG2, ARGI_ARG2, ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS ), +/* 17 */ ACPI_OP ("Arg3", ARGP_ARG3, ARGI_ARG3, ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS ), +/* 18 */ ACPI_OP ("Arg4", ARGP_ARG4, ARGI_ARG4, ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS ), +/* 19 */ ACPI_OP ("Arg5", ARGP_ARG5, ARGI_ARG5, ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS ), +/* 1A */ ACPI_OP ("Arg6", ARGP_ARG6, ARGI_ARG6, ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_ARGUMENT| AML_NO_ARGS ), +/* 1B */ ACPI_OP ("Store", ARGP_STORE_OP, ARGI_STORE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 1C */ ACPI_OP ("RefOf", ARGP_REF_OF_OP, ARGI_REF_OF_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS), +/* 1D */ ACPI_OP ("Add", ARGP_ADD_OP, ARGI_ADD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 1E */ ACPI_OP ("Concatenate", ARGP_CONCAT_OP, ARGI_CONCAT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 1F */ ACPI_OP ("Subtract", ARGP_SUBTRACT_OP, ARGI_SUBTRACT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 20 */ ACPI_OP ("Increment", ARGP_INCREMENT_OP, ARGI_INCREMENT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS), +/* 21 */ ACPI_OP ("Decrement", ARGP_DECREMENT_OP, ARGI_DECREMENT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS), +/* 22 */ ACPI_OP ("Multiply", ARGP_MULTIPLY_OP, ARGI_MULTIPLY_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 23 */ ACPI_OP ("Divide", ARGP_DIVIDE_OP, ARGI_DIVIDE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 24 */ ACPI_OP ("ShiftLeft", ARGP_SHIFT_LEFT_OP, ARGI_SHIFT_LEFT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 25 */ ACPI_OP ("ShiftRight", ARGP_SHIFT_RIGHT_OP, ARGI_SHIFT_RIGHT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 26 */ ACPI_OP ("And", ARGP_BIT_AND_OP, ARGI_BIT_AND_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 27 */ ACPI_OP ("NAnd", ARGP_BIT_NAND_OP, ARGI_BIT_NAND_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 28 */ ACPI_OP ("Or", ARGP_BIT_OR_OP, ARGI_BIT_OR_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 29 */ ACPI_OP ("NOr", ARGP_BIT_NOR_OP, ARGI_BIT_NOR_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 2A */ ACPI_OP ("XOr", ARGP_BIT_XOR_OP, ARGI_BIT_XOR_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 2B */ ACPI_OP ("Not", ARGP_BIT_NOT_OP, ARGI_BIT_NOT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 2C */ ACPI_OP ("FindSetLeftBit", ARGP_FIND_SET_LEFT_BIT_OP, ARGI_FIND_SET_LEFT_BIT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 2D */ ACPI_OP ("FindSetRightBit", ARGP_FIND_SET_RIGHT_BIT_OP,ARGI_FIND_SET_RIGHT_BIT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 2E */ ACPI_OP ("DerefOf", ARGP_DEREF_OF_OP, ARGI_DEREF_OF_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS), +/* 2F */ ACPI_OP ("Notify", ARGP_NOTIFY_OP, ARGI_NOTIFY_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC1| AML_HAS_ARGS), +/* 30 */ ACPI_OP ("SizeOf", ARGP_SIZE_OF_OP, ARGI_SIZE_OF_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS), +/* 31 */ ACPI_OP ("Index", ARGP_INDEX_OP, ARGI_INDEX_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_TRIADIC| AML_HAS_ARGS), +/* 32 */ ACPI_OP ("Match", ARGP_MATCH_OP, ARGI_MATCH_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_HEXADIC| AML_HAS_ARGS), +/* 33 */ ACPI_OP ("CreateDWordField", ARGP_CREATE_DWORD_FIELD_OP,ARGI_CREATE_DWORD_FIELD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_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_OP_TYPE_OPCODE | OPTYPE_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_OP_TYPE_OPCODE | OPTYPE_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_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS|AML_NSOBJECT|AML_NSNODE|AML_DEFER|AML_CREATE), +/* 37 */ ACPI_OP ("ObjectType", ARGP_TYPE_OP, ARGI_TYPE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS), +/* 38 */ ACPI_OP ("LAnd", ARGP_LAND_OP, ARGI_LAND_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS), +/* 39 */ ACPI_OP ("LOr", ARGP_LOR_OP, ARGI_LOR_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS), +/* 3A */ ACPI_OP ("LNot", ARGP_LNOT_OP, ARGI_LNOT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS), +/* 3B */ ACPI_OP ("LEqual", ARGP_LEQUAL_OP, ARGI_LEQUAL_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS), +/* 3C */ ACPI_OP ("LGreater", ARGP_LGREATER_OP, ARGI_LGREATER_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS), +/* 3D */ ACPI_OP ("LLess", ARGP_LLESS_OP, ARGI_LLESS_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2| AML_HAS_ARGS), +/* 3E */ ACPI_OP ("If", ARGP_IF_OP, ARGI_IF_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_HAS_ARGS), +/* 3F */ ACPI_OP ("Else", ARGP_ELSE_OP, ARGI_ELSE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_HAS_ARGS), +/* 40 */ ACPI_OP ("While", ARGP_WHILE_OP, ARGI_WHILE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_HAS_ARGS), +/* 41 */ ACPI_OP ("Noop", ARGP_NOOP_OP, ARGI_NOOP_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_NO_ARGS ), +/* 42 */ ACPI_OP ("Return", ARGP_RETURN_OP, ARGI_RETURN_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_HAS_ARGS), +/* 43 */ ACPI_OP ("Break", ARGP_BREAK_OP, ARGI_BREAK_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_NO_ARGS ), +/* 44 */ ACPI_OP ("BreakPoint", ARGP_BREAK_POINT_OP, ARGI_BREAK_POINT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_NO_ARGS ), +/* 45 */ ACPI_OP ("Ones", ARGP_ONES_OP, ARGI_ONES_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS ), /* Prefixed opcodes (Two-byte opcodes with a prefix op) */ -/* 46 */ /* AML_MUTEX_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Mutex", ARGP_MUTEX_OP, ARGI_MUTEX_OP), -/* 47 */ /* AML_EVENT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_NO_ARGS, "Event", ARGP_EVENT_OP, ARGI_EVENT_OP), -/* 48 */ /* AML_COND_REF_OF_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "CondRefOf", ARGP_COND_REF_OF_OP, ARGI_COND_REF_OF_OP), -/* 49 */ /* AML_CREATE_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateField", ARGP_CREATE_FIELD_OP, ARGI_CREATE_FIELD_OP), -/* 4A */ /* AML_LOAD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_RECONFIGURATION| AML_HAS_ARGS, "Load", ARGP_LOAD_OP, ARGI_LOAD_OP), -/* 4B */ /* AML_STALL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS, "Stall", ARGP_STALL_OP, ARGI_STALL_OP), -/* 4C */ /* AML_SLEEP_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS, "Sleep", ARGP_SLEEP_OP, ARGI_SLEEP_OP), -/* 4D */ /* AML_ACQUIRE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2S| AML_HAS_ARGS, "Acquire", ARGP_ACQUIRE_OP, ARGI_ACQUIRE_OP), -/* 4E */ /* AML_SIGNAL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS, "Signal", ARGP_SIGNAL_OP, ARGI_SIGNAL_OP), -/* 4F */ /* AML_WAIT_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2S| AML_HAS_ARGS, "Wait", ARGP_WAIT_OP, ARGI_WAIT_OP), -/* 50 */ /* AML_RESET_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS, "Reset", ARGP_RESET_OP, ARGI_RESET_OP), -/* 51 */ /* AML_RELEASE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS, "Release", ARGP_RELEASE_OP, ARGI_RELEASE_OP), -/* 52 */ /* AML_FROM_BCD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "FromBCD", ARGP_FROM_BCD_OP, ARGI_FROM_BCD_OP), -/* 53 */ /* AML_TO_BCD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToBCD", ARGP_TO_BCD_OP, ARGI_TO_BCD_OP), -/* 54 */ /* AML_UNLOAD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_RECONFIGURATION| AML_HAS_ARGS, "Unload", ARGP_UNLOAD_OP, ARGI_UNLOAD_OP), -/* 55 */ /* AML_REVISION_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS, "Revision", ARGP_REVISION_OP, ARGI_REVISION_OP), -/* 56 */ /* AML_DEBUG_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS, "Debug", ARGP_DEBUG_OP, ARGI_DEBUG_OP), -/* 57 */ /* AML_FATAL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_TRIADIC| AML_HAS_ARGS, "Fatal", ARGP_FATAL_OP, ARGI_FATAL_OP), -/* 58 */ /* AML_REGION_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "OpRegion", ARGP_REGION_OP, ARGI_REGION_OP), -/* 59 */ /* AML_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Field", ARGP_FIELD_OP, ARGI_FIELD_OP), -/* 5A */ /* AML_DEVICE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Device", ARGP_DEVICE_OP, ARGI_DEVICE_OP), -/* 5B */ /* AML_PROCESSOR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Processor", ARGP_PROCESSOR_OP, ARGI_PROCESSOR_OP), -/* 5C */ /* AML_POWER_RES_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "PowerResource", ARGP_POWER_RES_OP, ARGI_POWER_RES_OP), -/* 5D */ /* AML_THERMAL_ZONE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "ThermalZone", ARGP_THERMAL_ZONE_OP, ARGI_THERMAL_ZONE_OP), -/* 5E */ /* AML_INDEX_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "IndexField", ARGP_INDEX_FIELD_OP, ARGI_INDEX_FIELD_OP), -/* 5F */ /* AML_BANK_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "BankField", ARGP_BANK_FIELD_OP, ARGI_BANK_FIELD_OP), +/* 46 */ ACPI_OP ("Mutex", ARGP_MUTEX_OP, ARGI_MUTEX_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED), +/* 47 */ ACPI_OP ("Event", ARGP_EVENT_OP, ARGI_EVENT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_NO_ARGS |AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED ), +/* 48 */ ACPI_OP ("CondRefOf", ARGP_COND_REF_OF_OP, ARGI_COND_REF_OF_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 49 */ ACPI_OP ("CreateField", ARGP_CREATE_FIELD_OP, ARGI_CREATE_FIELD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_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_OP_TYPE_OPCODE | OPTYPE_RECONFIGURATION| AML_HAS_ARGS), +/* 4B */ ACPI_OP ("Stall", ARGP_STALL_OP, ARGI_STALL_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS), +/* 4C */ ACPI_OP ("Sleep", ARGP_SLEEP_OP, ARGI_SLEEP_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS), +/* 4D */ ACPI_OP ("Acquire", ARGP_ACQUIRE_OP, ARGI_ACQUIRE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2S| AML_HAS_ARGS), +/* 4E */ ACPI_OP ("Signal", ARGP_SIGNAL_OP, ARGI_SIGNAL_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS), +/* 4F */ ACPI_OP ("Wait", ARGP_WAIT_OP, ARGI_WAIT_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2S| AML_HAS_ARGS), +/* 50 */ ACPI_OP ("Reset", ARGP_RESET_OP, ARGI_RESET_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS), +/* 51 */ ACPI_OP ("Release", ARGP_RELEASE_OP, ARGI_RELEASE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC1| AML_HAS_ARGS), +/* 52 */ ACPI_OP ("FromBCD", ARGP_FROM_BCD_OP, ARGI_FROM_BCD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 53 */ ACPI_OP ("ToBCD", ARGP_TO_BCD_OP, ARGI_TO_BCD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 54 */ ACPI_OP ("Unload", ARGP_UNLOAD_OP, ARGI_UNLOAD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_RECONFIGURATION| AML_HAS_ARGS), +/* 55 */ ACPI_OP ("Revision", ARGP_REVISION_OP, ARGI_REVISION_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS ), +/* 56 */ ACPI_OP ("Debug", ARGP_DEBUG_OP, ARGI_DEBUG_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS ), +/* 57 */ ACPI_OP ("Fatal", ARGP_FATAL_OP, ARGI_FATAL_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_TRIADIC| AML_HAS_ARGS), +/* 58 */ ACPI_OP ("OpRegion", ARGP_REGION_OP, ARGI_REGION_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED|AML_DEFER), +/* 59 */ ACPI_OP ("Field", ARGP_FIELD_OP, ARGI_FIELD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_FIELD), +/* 5A */ ACPI_OP ("Device", ARGP_DEVICE_OP, ARGI_DEVICE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED), +/* 5B */ ACPI_OP ("Processor", ARGP_PROCESSOR_OP, ARGI_PROCESSOR_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED), +/* 5C */ ACPI_OP ("PowerResource", ARGP_POWER_RES_OP, ARGI_POWER_RES_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED), +/* 5D */ ACPI_OP ("ThermalZone", ARGP_THERMAL_ZONE_OP, ARGI_THERMAL_ZONE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED), +/* 5E */ ACPI_OP ("IndexField", ARGP_INDEX_FIELD_OP, ARGI_INDEX_FIELD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_FIELD), +/* 5F */ ACPI_OP ("BankField", ARGP_BANK_FIELD_OP, ARGI_BANK_FIELD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_FIELD), /* Internal opcodes that map to invalid AML opcodes */ -/* 60 */ /* AML_LNOTEQUAL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_HAS_ARGS, "LNotEqual", ARGP_LNOTEQUAL_OP, ARGI_LNOTEQUAL_OP), -/* 61 */ /* AML_LLESSEQUAL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_HAS_ARGS, "LLessEqual", ARGP_LLESSEQUAL_OP, ARGI_LLESSEQUAL_OP), -/* 62 */ /* AML_LGREATEREQUAL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_HAS_ARGS, "LGreaterEqual", ARGP_LGREATEREQUAL_OP, ARGI_LGREATEREQUAL_OP), -/* 63 */ /* AML_INT_NAMEPATH_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS, "NamePath", ARGP_NAMEPATH_OP, ARGI_NAMEPATH_OP), -/* 64 */ /* AML_INT_METHODCALL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_CALL| AML_HAS_ARGS, "MethodCall", ARGP_METHODCALL_OP, ARGI_METHODCALL_OP), -/* 65 */ /* AML_INT_BYTELIST_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS, "ByteList", ARGP_BYTELIST_OP, ARGI_BYTELIST_OP), -/* 66 */ /* AML_INT_RESERVEDFIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_NO_ARGS, "ReservedField", ARGP_RESERVEDFIELD_OP, ARGI_RESERVEDFIELD_OP), -/* 67 */ /* AML_INT_NAMEDFIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_NO_ARGS, "NamedField", ARGP_NAMEDFIELD_OP, ARGI_NAMEDFIELD_OP), -/* 68 */ /* AML_INT_ACCESSFIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_NO_ARGS, "AccessField", ARGP_ACCESSFIELD_OP, ARGI_ACCESSFIELD_OP), -/* 69 */ /* AML_INT_STATICSTRING_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_NO_ARGS, "StaticString", ARGP_STATICSTRING_OP, ARGI_STATICSTRING_OP), -/* 6A */ /* AML_INT_RETURN_VALUE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_RETURN| AML_HAS_ARGS, "[Return Value]", ARG_NONE, ARG_NONE), -/* 6B */ /* UNKNOWN OPCODES */ OP_INFO_ENTRY (ACPI_OP_TYPE_UNKNOWN | OPTYPE_BOGUS| AML_HAS_ARGS, "UNKNOWN_OP!", ARG_NONE, ARG_NONE), -/* 6C */ /* ASCII CHARACTERS */ OP_INFO_ENTRY (ACPI_OP_TYPE_ASCII | OPTYPE_BOGUS| AML_HAS_ARGS, "ASCII_ONLY!", ARG_NONE, ARG_NONE), -/* 6D */ /* PREFIX CHARACTERS */ OP_INFO_ENTRY (ACPI_OP_TYPE_PREFIX | OPTYPE_BOGUS| AML_HAS_ARGS, "PREFIX_ONLY!", ARG_NONE, ARG_NONE), +/* 60 */ ACPI_OP ("LNotEqual", ARGP_LNOTEQUAL_OP, ARGI_LNOTEQUAL_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_HAS_ARGS), +/* 61 */ ACPI_OP ("LLessEqual", ARGP_LLESSEQUAL_OP, ARGI_LLESSEQUAL_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_HAS_ARGS), +/* 62 */ ACPI_OP ("LGreaterEqual", ARGP_LGREATEREQUAL_OP, ARGI_LGREATEREQUAL_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_HAS_ARGS), +/* 63 */ ACPI_OP ("[NamePath]", ARGP_NAMEPATH_OP, ARGI_NAMEPATH_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS|AML_NSOBJECT|AML_NSNODE ), +/* 64 */ ACPI_OP ("[MethodCall]", ARGP_METHODCALL_OP, ARGI_METHODCALL_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_METHOD_CALL| AML_HAS_ARGS|AML_NSOBJECT|AML_NSNODE), +/* 65 */ ACPI_OP ("[ByteList]", ARGP_BYTELIST_OP, ARGI_BYTELIST_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS ), +/* 66 */ ACPI_OP ("[ReservedField]", ARGP_RESERVEDFIELD_OP, ARGI_RESERVEDFIELD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_NO_ARGS ), +/* 67 */ ACPI_OP ("[NamedField]", ARGP_NAMEDFIELD_OP, ARGI_NAMEDFIELD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_NO_ARGS|AML_NSOBJECT|AML_NSOPCODE|AML_NSNODE|AML_NAMED ), +/* 68 */ ACPI_OP ("[AccessField]", ARGP_ACCESSFIELD_OP, ARGI_ACCESSFIELD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_NO_ARGS ), +/* 69 */ ACPI_OP ("[StaticString", ARGP_STATICSTRING_OP, ARGI_STATICSTRING_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_BOGUS| AML_NO_ARGS ), +/* 6A */ ACPI_OP ("[Return Value]", ARG_NONE, ARG_NONE, ACPI_OP_TYPE_OPCODE | OPTYPE_RETURN| AML_HAS_ARGS), +/* 6B */ ACPI_OP ("UNKNOWN_OP!", ARG_NONE, ARG_NONE, ACPI_OP_TYPE_UNKNOWN | OPTYPE_BOGUS| AML_HAS_ARGS), +/* 6C */ ACPI_OP ("ASCII_ONLY!", ARG_NONE, ARG_NONE, ACPI_OP_TYPE_ASCII | OPTYPE_BOGUS| AML_HAS_ARGS), +/* 6D */ ACPI_OP ("PREFIX_ONLY!", ARG_NONE, ARG_NONE, ACPI_OP_TYPE_PREFIX | OPTYPE_BOGUS| AML_HAS_ARGS), /* ACPI 2.0 (new) opcodes */ -/* 6E */ /* AML_QWORD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS, "QwordConst", ARGP_QWORD_OP, ARGI_QWORD_OP), -/* 6F */ /* AML_VAR_PACKAGE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DATA_TERM| AML_HAS_ARGS, "VarPackage", ARGP_VAR_PACKAGE_OP, ARGI_VAR_PACKAGE_OP), -/* 70 */ /* AML_CONCAT_RES_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "ConcatRes", ARGP_CONCAT_RES_OP, ARGI_CONCAT_RES_OP), -/* 71 */ /* AML_MOD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "Mod", ARGP_MOD_OP, ARGI_MOD_OP), -/* 72 */ /* AML_CREATE_QWORD_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateQWordField", ARGP_CREATE_QWORD_FIELD_OP,ARGI_CREATE_QWORD_FIELD_OP), -/* 73 */ /* AML_TO_BUFFER_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToBuffer", ARGP_TO_BUFFER_OP, ARGI_TO_BUFFER_OP), -/* 74 */ /* AML_TO_DECSTR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToDecimalString", ARGP_TO_DEC_STR_OP, ARGI_TO_DEC_STR_OP), -/* 75 */ /* AML_TO_HEXSTR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToHexString", ARGP_TO_HEX_STR_OP, ARGI_TO_HEX_STR_OP), -/* 76 */ /* AML_TO_INTEGER_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToInteger", ARGP_TO_INTEGER_OP, ARGI_TO_INTEGER_OP), -/* 77 */ /* AML_TO_STRING_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "ToString", ARGP_TO_STRING_OP, ARGI_TO_STRING_OP), -/* 78 */ /* AML_COPY_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "CopyObject", ARGP_COPY_OP, ARGI_COPY_OP), -/* 79 */ /* AML_MID_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "Mid", ARGP_MID_OP, ARGI_MID_OP), -/* 7A */ /* AML_CONTINUE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_NO_ARGS, "Continue", ARGP_CONTINUE_OP, ARGI_CONTINUE_OP), -/* 7B */ /* AML_LOAD_TABLE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "LoadTable", ARGP_LOAD_TABLE_OP, ARGI_LOAD_TABLE_OP), -/* 7C */ /* AML_DATA_REGION_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "DataOpRegion", ARGP_DATA_REGION_OP, ARGI_DATA_REGION_OP), +/* 6E */ ACPI_OP ("QwordConst", ARGP_QWORD_OP, ARGI_QWORD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_LITERAL| AML_NO_ARGS ), +/* 6F */ ACPI_OP ("VarPackage", ARGP_VAR_PACKAGE_OP, ARGI_VAR_PACKAGE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DATA_TERM| AML_HAS_ARGS|AML_DEFER), +/* 70 */ ACPI_OP ("ConcatRes", ARGP_CONCAT_RES_OP, ARGI_CONCAT_RES_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 71 */ ACPI_OP ("Mod", ARGP_MOD_OP, ARGI_MOD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 72 */ ACPI_OP ("CreateQWordField", ARGP_CREATE_QWORD_FIELD_OP,ARGI_CREATE_QWORD_FIELD_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_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_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 74 */ ACPI_OP ("ToDecimalString", ARGP_TO_DEC_STR_OP, ARGI_TO_DEC_STR_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 75 */ ACPI_OP ("ToHexString", ARGP_TO_HEX_STR_OP, ARGI_TO_HEX_STR_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 76 */ ACPI_OP ("ToInteger", ARGP_TO_INTEGER_OP, ARGI_TO_INTEGER_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 77 */ ACPI_OP ("ToString", ARGP_TO_STRING_OP, ARGI_TO_STRING_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS), +/* 78 */ ACPI_OP ("CopyObject", ARGP_COPY_OP, ARGI_COPY_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 79 */ ACPI_OP ("Mid", ARGP_MID_OP, ARGI_MID_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 7A */ ACPI_OP ("Continue", ARGP_CONTINUE_OP, ARGI_CONTINUE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_NO_ARGS ), +/* 7B */ ACPI_OP ("LoadTable", ARGP_LOAD_TABLE_OP, ARGI_LOAD_TABLE_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), +/* 7C */ ACPI_OP ("DataOpRegion", ARGP_DATA_REGION_OP, ARGI_DATA_REGION_OP, ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS), }; @@ -571,7 +683,7 @@ static ACPI_OPCODE_INFO AmlOpInfo[] = * index into the table above */ -static UINT8 AmlShortOpInfoIndex[256] = +static const UINT8 AmlShortOpInfoIndex[256] = { /* 0 1 2 3 4 5 6 7 */ /* 8 9 A B C D E F */ @@ -610,7 +722,7 @@ static UINT8 AmlShortOpInfoIndex[256] = }; -static UINT8 AmlLongOpInfoIndex[NUM_EXTENDED_OPCODE] = +static const UINT8 AmlLongOpInfoIndex[NUM_EXTENDED_OPCODE] = { /* 0 1 2 3 4 5 6 7 */ /* 8 9 A B C D E F */ @@ -649,11 +761,11 @@ static UINT8 AmlLongOpInfoIndex[NUM_EXTENDED_OPCODE] = * ******************************************************************************/ -ACPI_OPCODE_INFO * +const ACPI_OPCODE_INFO * AcpiPsGetOpcodeInfo ( UINT16 Opcode) { - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; UINT8 UpperOpcode; UINT8 LowerOpcode; @@ -735,7 +847,7 @@ NATIVE_CHAR * AcpiPsGetOpcodeName ( UINT16 Opcode) { - ACPI_OPCODE_INFO *Op; + const ACPI_OPCODE_INFO *Op; Op = AcpiPsGetOpcodeInfo (Opcode); diff --git a/sys/contrib/dev/acpica/psparse.c b/sys/contrib/dev/acpica/psparse.c index 9defbbe..47d3aa5 100644 --- a/sys/contrib/dev/acpica/psparse.c +++ b/sys/contrib/dev/acpica/psparse.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: psparse - Parser top level AML parse routines - * $Revision: 89 $ + * $Revision: 96 $ * *****************************************************************************/ @@ -142,13 +142,13 @@ extern UINT32 AcpiGbl_ScopeDepth; /******************************************************************************* * - * FUNCTION: AcpiPsPeekOpcode + * FUNCTION: AcpiPsGetOpcodeSize * - * PARAMETERS: None + * PARAMETERS: Opcode - An AML opcode * - * RETURN: Status + * RETURN: Size of the opcode, in bytes (1 or 2) * - * DESCRIPTION: Get next AML opcode (without incrementing AML pointer) + * DESCRIPTION: Get the size of the current opcode. * ******************************************************************************/ @@ -210,7 +210,6 @@ AcpiPsPeekOpcode ( * * extended Opcode, !=, <=, or >= */ - if (Opcode == AML_EXTOP) { /* Extended opcode */ @@ -293,11 +292,13 @@ AcpiPsFindObject ( ACPI_PARSE_OBJECT **OutOp) { NATIVE_CHAR *Path; + const ACPI_OPCODE_INFO *OpInfo; /* We are only interested in opcodes that have an associated name */ - if (!AcpiPsIsNamedOp (Opcode)) + OpInfo = AcpiPsGetOpcodeInfo (Opcode); + if (!(OpInfo->Flags & AML_NAMED)) { *OutOp = Op; return (AE_OK); @@ -342,8 +343,8 @@ AcpiPsCompleteThisOp ( #ifndef PARSER_ONLY ACPI_PARSE_OBJECT *Prev; ACPI_PARSE_OBJECT *Next; - ACPI_OPCODE_INFO *OpInfo; - ACPI_OPCODE_INFO *ParentInfo; + const ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *ParentInfo; UINT32 OpcodeClass; ACPI_PARSE_OBJECT *ReplacementOp = NULL; @@ -373,7 +374,6 @@ AcpiPsCompleteThisOp ( * Check if we need to replace the operator and its subtree * with a return value op (placeholder op) */ - ParentInfo = AcpiPsGetOpcodeInfo (Op->Parent->Opcode); switch (ACPI_GET_OP_CLASS (ParentInfo)) @@ -387,7 +387,6 @@ AcpiPsCompleteThisOp ( * These opcodes contain TermArg operands. The current * op must be replace by a placeholder return op */ - if ((Op->Parent->Opcode == AML_REGION_OP) || (Op->Parent->Opcode == AML_CREATE_FIELD_OP) || (Op->Parent->Opcode == AML_CREATE_BIT_FIELD_OP) || @@ -512,7 +511,6 @@ AcpiPsNextParseState ( * A control method was terminated via a RETURN statement. * The walk of this method is complete. */ - ParserState->Aml = ParserState->AmlEnd; Status = AE_CTRL_TERMINATE; break; @@ -520,13 +518,11 @@ AcpiPsNextParseState ( case AE_CTRL_PENDING: - /* - * Predicate of a WHILE was true and the loop just completed an - * execution. Go back to the start of the loop and reevaluate the - * predicate. - */ -/* WalkState->ControlState->Common.State = - CONTROL_PREDICATE_EXECUTING;*/ + /* + * Predicate of a WHILE was true and the loop just completed an + * execution. Go back to the start of the loop and reevaluate the + * predicate. + */ /* TBD: How to handle a break within a while. */ /* This code attempts it */ @@ -536,13 +532,13 @@ AcpiPsNextParseState ( case AE_CTRL_TRUE: - /* - * Predicate of an IF was true, and we are at the matching ELSE. - * Just close out this package - * - * Note: ParserState->Aml is modified by the package length procedure - * TBD: [Investigate] perhaps it shouldn't, too much trouble - */ + /* + * Predicate of an IF was true, and we are at the matching ELSE. + * Just close out this package + * + * Note: ParserState->Aml is modified by the package length procedure + * TBD: [Investigate] perhaps it shouldn't, too much trouble + */ Start = ParserState->Aml; PackageLength = AcpiPsGetNextPackageLength (ParserState); ParserState->Aml = Start + PackageLength; @@ -558,7 +554,6 @@ AcpiPsNextParseState ( * this branch of the tree) and continue execution at the parent * level. */ - ParserState->Aml = ParserState->Scope->ParseScope.PkgEnd; /* In the case of a BREAK, just force a predicate (if any) to FALSE */ @@ -593,7 +588,6 @@ AcpiPsNextParseState ( break; } - return_ACPI_STATUS (Status); } @@ -617,7 +611,7 @@ AcpiPsParseLoop ( { ACPI_STATUS Status = AE_OK; ACPI_PARSE_OBJECT *Op = NULL; /* current op */ - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; ACPI_PARSE_OBJECT *Arg = NULL; ACPI_PARSE2_OBJECT *DeferredOp; UINT32 ArgCount; /* push for fixed or var args */ @@ -657,7 +651,6 @@ AcpiPsParseLoop ( * A predicate was just completed, get the value of the * predicate and branch based on that value */ - Status = AcpiDsGetPredicateValue (WalkState, NULL, TRUE); if (ACPI_FAILURE (Status) && ((Status & AE_CODE_MASK) != AE_CODE_CONTROL)) @@ -710,7 +703,6 @@ AcpiPsParseLoop ( * 2) A name string * 3) An unknown/invalid opcode */ - OpInfo = AcpiPsGetOpcodeInfo (Opcode); switch (ACPI_GET_OP_TYPE (OpInfo)) { @@ -728,7 +720,6 @@ AcpiPsParseLoop ( * Starts with a valid prefix or ASCII char, this is a name * string. Convert the bare name string to a namepath. */ - Opcode = AML_INT_NAMEPATH_OP; ArgTypes = ARGP_NAMESTRING; break; @@ -752,7 +743,7 @@ AcpiPsParseLoop ( /* Create Op structure and append to parent's argument list */ - if (AcpiPsIsNamedOp (Opcode)) + if (OpInfo->Flags & AML_NAMED) { PreOp.Value.Arg = NULL; PreOp.Opcode = Opcode; @@ -801,25 +792,22 @@ AcpiPsParseLoop ( if (Op->Opcode == AML_REGION_OP) { - DeferredOp = AcpiPsToExtendedOp (Op); - if (DeferredOp) - { - /* - * Defer final parsing of an OperationRegion body, - * because we don't have enough info in the first pass - * to parse it correctly (i.e., there may be method - * calls within the TermArg elements of the body. - * - * However, we must continue parsing because - * the opregion is not a standalone package -- - * we don't know where the end is at this point. - * - * (Length is unknown until parse of the body complete) - */ - - DeferredOp->Data = AmlOpStart; - DeferredOp->Length = 0; - } + DeferredOp = (ACPI_PARSE2_OBJECT *) Op; + + /* + * Defer final parsing of an OperationRegion body, + * because we don't have enough info in the first pass + * to parse it correctly (i.e., there may be method + * calls within the TermArg elements of the body. + * + * However, we must continue parsing because + * the opregion is not a standalone package -- + * we don't know where the end is at this point. + * + * (Length is unknown until parse of the body complete) + */ + DeferredOp->Data = AmlOpStart; + DeferredOp->Length = 0; } } @@ -828,6 +816,7 @@ AcpiPsParseLoop ( { /* Not a named opcode, just allocate Op and append to parent */ + OpInfo = AcpiPsGetOpcodeInfo (Opcode); Op = AcpiPsAllocOp (Opcode); if (!Op) { @@ -835,13 +824,8 @@ AcpiPsParseLoop ( } - if ((Op->Opcode == AML_CREATE_FIELD_OP) || - (Op->Opcode == AML_CREATE_BIT_FIELD_OP) || - (Op->Opcode == AML_CREATE_BYTE_FIELD_OP) || - (Op->Opcode == AML_CREATE_WORD_FIELD_OP) || - (Op->Opcode == AML_CREATE_DWORD_FIELD_OP) || - (Op->Opcode == AML_CREATE_QWORD_FIELD_OP)) - { + if (OpInfo->Flags & AML_CREATE) + { /* * Backup to beginning of CreateXXXfield declaration * BodyLength is unknown until we parse the body @@ -940,27 +924,24 @@ AcpiPsParseLoop ( if (Op->Opcode == AML_METHOD_OP) { - DeferredOp = AcpiPsToExtendedOp (Op); - if (DeferredOp) - { - /* - * Skip parsing of control method or opregion body, - * because we don't have enough info in the first pass - * to parse them correctly. - */ - - DeferredOp->Data = ParserState->Aml; - DeferredOp->Length = (UINT32) (ParserState->PkgEnd - - ParserState->Aml); - - /* - * Skip body of method. For OpRegions, we must continue - * parsing because the opregion is not a standalone - * package (We don't know where the end is). - */ - ParserState->Aml = ParserState->PkgEnd; - ArgCount = 0; - } + DeferredOp = (ACPI_PARSE2_OBJECT *) Op; + + /* + * Skip parsing of control method or opregion body, + * because we don't have enough info in the first pass + * to parse them correctly. + */ + DeferredOp->Data = ParserState->Aml; + DeferredOp->Length = (UINT32) (ParserState->PkgEnd - + ParserState->Aml); + + /* + * Skip body of method. For OpRegions, we must continue + * parsing because the opregion is not a standalone + * package (We don't know where the end is). + */ + ParserState->Aml = ParserState->PkgEnd; + ArgCount = 0; } break; @@ -975,7 +956,8 @@ AcpiPsParseLoop ( { /* completed Op, prepare for next */ - if (AcpiPsIsNamedOp (Op->Opcode)) + OpInfo = AcpiPsGetOpcodeInfo (Op->Opcode); + if (OpInfo->Flags & AML_NAMED) { if (AcpiGbl_Depth) { @@ -984,30 +966,22 @@ AcpiPsParseLoop ( if (Op->Opcode == AML_REGION_OP) { - DeferredOp = AcpiPsToExtendedOp (Op); - if (DeferredOp) - { - /* - * Skip parsing of control method or opregion body, - * because we don't have enough info in the first pass - * to parse them correctly. - * - * Completed parsing an OpRegion declaration, we now - * know the length. - */ - - DeferredOp->Length = (UINT32) (ParserState->Aml - - DeferredOp->Data); - } + DeferredOp = (ACPI_PARSE2_OBJECT *) Op; + + /* + * Skip parsing of control method or opregion body, + * because we don't have enough info in the first pass + * to parse them correctly. + * + * Completed parsing an OpRegion declaration, we now + * know the length. + */ + DeferredOp->Length = (UINT32) (ParserState->Aml - + DeferredOp->Data); } } - if ((Op->Opcode == AML_CREATE_FIELD_OP) || - (Op->Opcode == AML_CREATE_BIT_FIELD_OP) || - (Op->Opcode == AML_CREATE_BYTE_FIELD_OP) || - (Op->Opcode == AML_CREATE_WORD_FIELD_OP) || - (Op->Opcode == AML_CREATE_DWORD_FIELD_OP) || - (Op->Opcode == AML_CREATE_QWORD_FIELD_OP)) + if (OpInfo->Flags & AML_CREATE) { /* * Backup to beginning of CreateXXXfield declaration (1 for @@ -1115,7 +1089,6 @@ CloseThisOp: break; } - /* This scope complete? */ if (AcpiPsHasCompletedScope (ParserState)) @@ -1151,7 +1124,6 @@ CloseThisOp: * of open scopes (such as when several AML blocks are closed with * sequential closing braces). We want to terminate each one cleanly. */ - ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Package complete at Op %p\n", Op)); do { @@ -1213,6 +1185,7 @@ CloseThisOp: * Aml - Pointer to the raw AML code to parse * AmlSize - Length of the AML to parse * + * * RETURN: Status * * DESCRIPTION: Parse raw AML and return a tree of ops @@ -1235,7 +1208,6 @@ AcpiPsParseAml ( ACPI_PARSE_STATE *ParserState; ACPI_WALK_STATE *WalkState; ACPI_WALK_LIST WalkList; - ACPI_NAMESPACE_NODE *Node = NULL; ACPI_WALK_LIST *PrevWalkList = AcpiGbl_CurrentWalkList; ACPI_OPERAND_OBJECT *ReturnDesc; ACPI_OPERAND_OBJECT *MthDesc = NULL; @@ -1268,7 +1240,7 @@ AcpiPsParseAml ( WalkList.AcquiredMutexList.Prev = NULL; WalkList.AcquiredMutexList.Next = NULL; - WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT, ParserState->StartOp, + WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT, ParserState->StartOp, MthDesc, &WalkList); if (!WalkState) { @@ -1310,15 +1282,13 @@ AcpiPsParseAml ( { /* Setup the current scope */ - Node = ParserState->StartOp->Node; - ParserState->StartNode = Node; - - if (Node) + ParserState->StartNode = ParserState->StartOp->Node; + if (ParserState->StartNode) { /* Push start scope on scope stack and make it current */ - Status = AcpiDsScopeStackPush (Node, Node->Type, - WalkState); + Status = AcpiDsScopeStackPush (ParserState->StartNode, + ParserState->StartNode->Type, WalkState); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -1327,16 +1297,13 @@ AcpiPsParseAml ( } } - - Status = AE_OK; - /* * Execute the walk loop as long as there is a valid Walk State. This * handles nested control method invocations without recursion. */ - ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "State=%p\n", WalkState)); + Status = AE_OK; while (WalkState) { if (ACPI_SUCCESS (Status)) @@ -1344,7 +1311,7 @@ AcpiPsParseAml ( Status = AcpiPsParseLoop (WalkState); } - ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, + ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Completed one call to walk loop, State=%p\n", WalkState)); if (Status == AE_CTRL_TRANSFER) @@ -1353,14 +1320,12 @@ AcpiPsParseAml ( * A method call was detected. * Transfer control to the called control method */ - Status = AcpiDsCallControlMethod (&WalkList, WalkState, NULL); /* * If the transfer to the new method method call worked, a new walk * state was created -- get it */ - WalkState = AcpiDsGetCurrentWalkState (&WalkList); continue; } @@ -1372,7 +1337,6 @@ AcpiPsParseAml ( /* We are done with this walk, move on to the parent if any */ - WalkState = AcpiDsPopWalkState (&WalkList); /* Extract return value before we delete WalkState */ @@ -1390,19 +1354,18 @@ AcpiPsParseAml ( * If we just returned from the execution of a control method, * there's lots of cleanup to do */ - if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE) { AcpiDsTerminateControlMethod (WalkState); } - /* Delete this walk state and all linked control states */ + /* Delete this walk state and all linked control states */ AcpiPsCleanupScope (WalkState->ParserState); ACPI_MEM_FREE (WalkState->ParserState); AcpiDsDeleteWalkState (WalkState); - /* Check if we have restarted a preempted walk */ + /* Check if we have restarted a preempted walk */ WalkState = AcpiDsGetCurrentWalkState (&WalkList); if (WalkState && @@ -1414,7 +1377,6 @@ AcpiPsParseAml ( * If the method returned value is not used by the parent, * The object is deleted */ - AcpiDsRestartControlMethod (WalkState, ReturnDesc); WalkState->WalkType |= WALK_METHOD_RESTART; } @@ -1423,7 +1385,6 @@ AcpiPsParseAml ( * Just completed a 1st-level method, save the final internal return * value (if any) */ - else if (CallerReturnDesc) { *CallerReturnDesc = ReturnDesc; /* NULL if no return value */ diff --git a/sys/contrib/dev/acpica/psscope.c b/sys/contrib/dev/acpica/psscope.c index b8211eb..6509f4a 100644 --- a/sys/contrib/dev/acpica/psscope.c +++ b/sys/contrib/dev/acpica/psscope.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: psscope - Parser scope stack management routines - * $Revision: 28 $ + * $Revision: 29 $ * *****************************************************************************/ @@ -298,6 +298,7 @@ AcpiPsPopScope ( FUNCTION_TRACE ("PsPopScope"); + /* * Only pop the scope if there is in fact a next scope */ @@ -305,7 +306,6 @@ AcpiPsPopScope ( { Scope = AcpiUtPopGenericState (&ParserState->Scope); - /* return to parsing previous op */ *Op = Scope->ParseScope.Op; diff --git a/sys/contrib/dev/acpica/pstree.c b/sys/contrib/dev/acpica/pstree.c index c6478b4..9798b8c 100644 --- a/sys/contrib/dev/acpica/pstree.c +++ b/sys/contrib/dev/acpica/pstree.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: pstree - Parser op tree manipulation/traversal/search - * $Revision: 30 $ + * $Revision: 32 $ * *****************************************************************************/ @@ -144,7 +144,10 @@ AcpiPsGetArg ( UINT32 Argn) { ACPI_PARSE_OBJECT *Arg = NULL; - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; + + + FUNCTION_ENTRY (); /* Get the info structure for this opcode */ @@ -198,7 +201,10 @@ AcpiPsAppendArg ( ACPI_PARSE_OBJECT *Arg) { ACPI_PARSE_OBJECT *PrevArg; - ACPI_OPCODE_INFO *OpInfo; + const ACPI_OPCODE_INFO *OpInfo; + + + FUNCTION_ENTRY (); if (!Op) @@ -277,6 +283,9 @@ AcpiPsGetChild ( ACPI_PARSE_OBJECT *Child = NULL; + FUNCTION_ENTRY (); + + switch (Op->Opcode) { case AML_SCOPE_OP: @@ -343,6 +352,9 @@ AcpiPsGetDepthNext ( ACPI_PARSE_OBJECT *Arg; + FUNCTION_ENTRY (); + + if (!Op) { return (NULL); diff --git a/sys/contrib/dev/acpica/psutils.c b/sys/contrib/dev/acpica/psutils.c index 39d7633..bbdafa7 100644 --- a/sys/contrib/dev/acpica/psutils.c +++ b/sys/contrib/dev/acpica/psutils.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: psutils - Parser miscellaneous utilities (Parser only) - * $Revision: 40 $ + * $Revision: 43 $ * *****************************************************************************/ @@ -149,7 +149,10 @@ AcpiPsInitOp ( ACPI_PARSE_OBJECT *Op, UINT16 Opcode) { - ACPI_OPCODE_INFO *AmlOp; + const ACPI_OPCODE_INFO *AmlOp; + + + FUNCTION_ENTRY (); Op->DataType = ACPI_DESC_TYPE_PARSER; @@ -183,24 +186,29 @@ AcpiPsAllocOp ( ACPI_PARSE_OBJECT *Op = NULL; UINT32 Size; UINT8 Flags; + const ACPI_OPCODE_INFO *OpInfo; + + FUNCTION_ENTRY (); + OpInfo = AcpiPsGetOpcodeInfo (Opcode); + /* Allocate the minimum required size object */ - if (AcpiPsIsDeferredOp (Opcode)) + if (OpInfo->Flags & AML_DEFER) { Size = sizeof (ACPI_PARSE2_OBJECT); Flags = PARSEOP_DEFERRED; } - else if (AcpiPsIsNamedOp (Opcode)) + else if (OpInfo->Flags & AML_NAMED) { Size = sizeof (ACPI_PARSE2_OBJECT); Flags = PARSEOP_NAMED; } - else if (AcpiPsIsBytelistOp (Opcode)) + else if (Opcode == AML_INT_BYTELIST_OP) { Size = sizeof (ACPI_PARSE2_OBJECT); Flags = PARSEOP_BYTELIST; @@ -213,7 +221,6 @@ AcpiPsAllocOp ( } - if (Size == sizeof (ACPI_PARSE_OBJECT)) { /* @@ -227,7 +234,6 @@ AcpiPsAllocOp ( Op = AcpiUtAcquireFromCache (ACPI_MEM_LIST_PSNODE_EXT); } - /* Initialize the Op */ if (Op) @@ -306,11 +312,7 @@ AcpiPsDeleteParseCache ( * * FUNCTION: Utility functions * - * DESCRIPTION: Low level functions - * - * TBD: [Restructure] - * 1) Some of these functions should be macros - * 2) Some can be simplified + * DESCRIPTION: Low level character and object functions * ******************************************************************************/ @@ -318,8 +320,6 @@ AcpiPsDeleteParseCache ( /* * Is "c" a namestring lead character? */ - - BOOLEAN AcpiPsIsLeadingChar ( UINT32 c) @@ -339,192 +339,6 @@ AcpiPsIsPrefixChar ( } -BOOLEAN -AcpiPsIsNamespaceObjectOp ( - UINT16 Opcode) -{ - return ((BOOLEAN) - (Opcode == AML_SCOPE_OP || - Opcode == AML_DEVICE_OP || - Opcode == AML_THERMAL_ZONE_OP || - Opcode == AML_METHOD_OP || - Opcode == AML_POWER_RES_OP || - Opcode == AML_PROCESSOR_OP || - Opcode == AML_FIELD_OP || - Opcode == AML_INDEX_FIELD_OP || - Opcode == AML_BANK_FIELD_OP || - Opcode == AML_INT_NAMEDFIELD_OP || - Opcode == AML_NAME_OP || - Opcode == AML_ALIAS_OP || - Opcode == AML_MUTEX_OP || - Opcode == AML_EVENT_OP || - Opcode == AML_REGION_OP || - Opcode == AML_CREATE_FIELD_OP || - Opcode == AML_CREATE_BIT_FIELD_OP || - Opcode == AML_CREATE_BYTE_FIELD_OP || - Opcode == AML_CREATE_WORD_FIELD_OP || - Opcode == AML_CREATE_DWORD_FIELD_OP || - Opcode == AML_CREATE_QWORD_FIELD_OP || - Opcode == AML_INT_METHODCALL_OP || - Opcode == AML_INT_NAMEPATH_OP)); -} - -BOOLEAN -AcpiPsIsNamespaceOp ( - UINT16 Opcode) -{ - return ((BOOLEAN) - (Opcode == AML_SCOPE_OP || - Opcode == AML_DEVICE_OP || - Opcode == AML_THERMAL_ZONE_OP || - Opcode == AML_METHOD_OP || - Opcode == AML_POWER_RES_OP || - Opcode == AML_PROCESSOR_OP || - Opcode == AML_FIELD_OP || - Opcode == AML_INDEX_FIELD_OP || - Opcode == AML_BANK_FIELD_OP || - Opcode == AML_NAME_OP || - Opcode == AML_ALIAS_OP || - Opcode == AML_MUTEX_OP || - Opcode == AML_EVENT_OP || - Opcode == AML_REGION_OP || - Opcode == AML_INT_NAMEDFIELD_OP)); -} - - -/* - * Is opcode for a named object Op? - * (Includes all named object opcodes) - * - * TBD: [Restructure] Need a better way than this brute force approach! - */ -BOOLEAN -AcpiPsIsNodeOp ( - UINT16 Opcode) -{ - return ((BOOLEAN) - (Opcode == AML_SCOPE_OP || - Opcode == AML_DEVICE_OP || - Opcode == AML_THERMAL_ZONE_OP || - Opcode == AML_METHOD_OP || - Opcode == AML_POWER_RES_OP || - Opcode == AML_PROCESSOR_OP || - Opcode == AML_INT_NAMEDFIELD_OP || - Opcode == AML_NAME_OP || - Opcode == AML_ALIAS_OP || - Opcode == AML_MUTEX_OP || - Opcode == AML_EVENT_OP || - Opcode == AML_REGION_OP || - - - Opcode == AML_CREATE_FIELD_OP || - Opcode == AML_CREATE_BIT_FIELD_OP || - Opcode == AML_CREATE_BYTE_FIELD_OP || - Opcode == AML_CREATE_WORD_FIELD_OP || - Opcode == AML_CREATE_DWORD_FIELD_OP || - Opcode == AML_CREATE_QWORD_FIELD_OP || - Opcode == AML_INT_METHODCALL_OP || - Opcode == AML_INT_NAMEPATH_OP)); -} - - -/* - * Is opcode for a named Op? - */ -BOOLEAN -AcpiPsIsNamedOp ( - UINT16 Opcode) -{ - return ((BOOLEAN) - (Opcode == AML_SCOPE_OP || - Opcode == AML_DEVICE_OP || - Opcode == AML_THERMAL_ZONE_OP || - Opcode == AML_METHOD_OP || - Opcode == AML_POWER_RES_OP || - Opcode == AML_PROCESSOR_OP || - Opcode == AML_NAME_OP || - Opcode == AML_ALIAS_OP || - Opcode == AML_MUTEX_OP || - Opcode == AML_EVENT_OP || - Opcode == AML_REGION_OP || - Opcode == AML_INT_NAMEDFIELD_OP)); -} - - -BOOLEAN -AcpiPsIsDeferredOp ( - UINT16 Opcode) -{ - return ((BOOLEAN) - (Opcode == AML_METHOD_OP || - Opcode == AML_VAR_PACKAGE_OP || - Opcode == AML_CREATE_FIELD_OP || - Opcode == AML_CREATE_BIT_FIELD_OP || - Opcode == AML_CREATE_BYTE_FIELD_OP || - Opcode == AML_CREATE_WORD_FIELD_OP || - Opcode == AML_CREATE_DWORD_FIELD_OP || - Opcode == AML_CREATE_QWORD_FIELD_OP || - Opcode == AML_REGION_OP)); -} - - -/* - * Is opcode for a bytelist? - */ -BOOLEAN -AcpiPsIsBytelistOp ( - UINT16 Opcode) -{ - return ((BOOLEAN) (Opcode == AML_INT_BYTELIST_OP)); -} - - -/* - * Is opcode for a Field, IndexField, or BankField - */ -BOOLEAN -AcpiPsIsFieldOp ( - UINT16 Opcode) -{ - return ((BOOLEAN) - (Opcode == AML_CREATE_FIELD_OP - || Opcode == AML_FIELD_OP - || Opcode == AML_INDEX_FIELD_OP - || Opcode == AML_BANK_FIELD_OP)); -} - - -/* - * Is field creation op - */ -BOOLEAN -AcpiPsIsCreateFieldOp ( - UINT16 Opcode) -{ - return ((BOOLEAN) - (Opcode == AML_CREATE_FIELD_OP || - Opcode == AML_CREATE_BIT_FIELD_OP || - Opcode == AML_CREATE_BYTE_FIELD_OP || - Opcode == AML_CREATE_WORD_FIELD_OP || - Opcode == AML_CREATE_DWORD_FIELD_OP || - Opcode == AML_CREATE_QWORD_FIELD_OP)); -} - - -/* - * Cast an acpi_op to an acpi_extended_op if possible - */ - -/* TBD: This is very inefficient, fix */ -ACPI_PARSE2_OBJECT * -AcpiPsToExtendedOp ( - ACPI_PARSE_OBJECT *Op) -{ - return ((AcpiPsIsDeferredOp (Op->Opcode) || AcpiPsIsNamedOp (Op->Opcode) || AcpiPsIsBytelistOp (Op->Opcode)) - ? ( (ACPI_PARSE2_OBJECT *) Op) : NULL); -} - - /* * Get op's name (4-byte name segment) or 0 if unnamed */ @@ -532,9 +346,18 @@ UINT32 AcpiPsGetName ( ACPI_PARSE_OBJECT *Op) { - ACPI_PARSE2_OBJECT *Named = AcpiPsToExtendedOp (Op); - return (Named ? Named->Name : 0); + + /* The "generic" object has no name associated with it */ + + if (Op->Flags & PARSEOP_GENERIC) + { + return (0); + } + + /* Only the "Extended" parse objects have a name */ + + return (((ACPI_PARSE2_OBJECT *) Op)->Name); } @@ -546,11 +369,14 @@ AcpiPsSetName ( ACPI_PARSE_OBJECT *Op, UINT32 name) { - ACPI_PARSE2_OBJECT *Named = AcpiPsToExtendedOp (Op); - if (Named) + /* The "generic" object has no name associated with it */ + + if (Op->Flags & PARSEOP_GENERIC) { - Named->Name = name; + return; } + + ((ACPI_PARSE2_OBJECT *) Op)->Name = name; } diff --git a/sys/contrib/dev/acpica/pswalk.c b/sys/contrib/dev/acpica/pswalk.c index 8868ed0..784cbbe 100644 --- a/sys/contrib/dev/acpica/pswalk.c +++ b/sys/contrib/dev/acpica/pswalk.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: pswalk - Parser routines to walk parsed op tree(s) - * $Revision: 55 $ + * $Revision: 56 $ * *****************************************************************************/ @@ -178,7 +178,6 @@ AcpiPsGetNextWalkOp ( * No more children, this Op is complete. Save Next and Parent * in case the Op object gets deleted by the callback routine */ - Next = Op->Next; Parent = Op->Parent; @@ -201,7 +200,6 @@ AcpiPsGetNextWalkOp ( * Check for a sibling to the current op. A sibling means * we are still going "downward" in the tree. */ - if (Next) { /* There is a sibling, it will be next */ @@ -215,7 +213,6 @@ AcpiPsGetNextWalkOp ( return_ACPI_STATUS (Status); } - /* * Drop into the loop below because we are moving upwards in * the tree @@ -228,7 +225,6 @@ AcpiPsGetNextWalkOp ( * We are resuming a walk, and we were (are) going upward in the tree. * So, we want to drop into the parent loop below. */ - Parent = Op; } diff --git a/sys/contrib/dev/acpica/psxface.c b/sys/contrib/dev/acpica/psxface.c index 2ba98ec..29cc240 100644 --- a/sys/contrib/dev/acpica/psxface.c +++ b/sys/contrib/dev/acpica/psxface.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: psxface - Parser external interfaces - * $Revision: 46 $ + * $Revision: 47 $ * *****************************************************************************/ @@ -188,7 +188,6 @@ AcpiPsxExecute ( * The caller "owns" the parameters, so give each one an extra * reference */ - for (i = 0; Params[i]; i++) { AcpiUtAddReference (Params[i]); diff --git a/sys/contrib/dev/acpica/rsaddr.c b/sys/contrib/dev/acpica/rsaddr.c index 61bc590..fb32d65 100644 --- a/sys/contrib/dev/acpica/rsaddr.c +++ b/sys/contrib/dev/acpica/rsaddr.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rsaddr - Address resource descriptors (16/32/64) - * $Revision: 18 $ + * $Revision: 19 $ * ******************************************************************************/ @@ -301,7 +301,7 @@ AcpiRsAddress16Resource ( /* Point the String pointer to the end of this structure */ - OutputStruct->Data.Address16.ResourceSource.StringPtr = + OutputStruct->Data.Address16.ResourceSource.StringPtr = (NATIVE_CHAR *)((UINT8 * )OutputStruct + StructSize); TempPtr = OutputStruct->Data.Address16.ResourceSource.StringPtr; @@ -495,7 +495,7 @@ AcpiRsAddress16Stream ( /* * Copy the string */ - STRCPY (TempPointer, + STRCPY (TempPointer, LinkedList->Data.Address16.ResourceSource.StringPtr); /* @@ -707,7 +707,7 @@ AcpiRsAddress32Resource ( /* Point the String pointer to the end of this structure */ - OutputStruct->Data.Address32.ResourceSource.StringPtr = + OutputStruct->Data.Address32.ResourceSource.StringPtr = (NATIVE_CHAR *)((UINT8 *)OutputStruct + StructSize); TempPtr = OutputStruct->Data.Address32.ResourceSource.StringPtr; @@ -902,7 +902,7 @@ AcpiRsAddress32Stream ( /* * Copy the string */ - STRCPY (TempPointer, + STRCPY (TempPointer, LinkedList->Data.Address32.ResourceSource.StringPtr); /* @@ -1112,7 +1112,7 @@ AcpiRsAddress64Resource ( /* Point the String pointer to the end of this structure */ - OutputStruct->Data.Address64.ResourceSource.StringPtr = + OutputStruct->Data.Address64.ResourceSource.StringPtr = (NATIVE_CHAR *)((UINT8 *)OutputStruct + StructSize); TempPtr = OutputStruct->Data.Address64.ResourceSource.StringPtr; @@ -1176,7 +1176,7 @@ AcpiRsAddress64Resource ( * the number of bytes of the * OutputBuffer used * - * RETURN: Status + * RETURN: Status * * DESCRIPTION: Take the linked list resource structure and fills in the * the appropriate bytes in a byte stream diff --git a/sys/contrib/dev/acpica/rscalc.c b/sys/contrib/dev/acpica/rscalc.c index 79832e3..9239d6e 100644 --- a/sys/contrib/dev/acpica/rscalc.c +++ b/sys/contrib/dev/acpica/rscalc.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rscalc - Calculate stream and list lengths - * $Revision: 30 $ + * $Revision: 32 $ * ******************************************************************************/ @@ -327,7 +327,7 @@ AcpiRsCalculateByteStreamLength ( * Index + the length of the null terminated string * Resource Source + 1 for the null. */ - SegmentSize = 9 + + SegmentSize = 9 + ((LinkedList->Data.ExtendedIrq.NumberOfInterrupts - 1) * 4); if (NULL != ExIrq->ResourceSource.StringPtr) @@ -355,7 +355,7 @@ AcpiRsCalculateByteStreamLength ( /* * Point to the next object */ - LinkedList = POINTER_ADD (ACPI_RESOURCE, + LinkedList = POINTER_ADD (ACPI_RESOURCE, LinkedList, LinkedList->Length); } @@ -608,7 +608,7 @@ AcpiRsCalculateListLength ( Temp8 = *Buffer; /* - * To compensate for multiple interrupt numbers, add 4 bytes for + * To compensate for multiple interrupt numbers, add 4 bytes for * each additional interrupts greater than 1 */ AdditionalBytes = (UINT8) ((Temp8 - 1) * 4); @@ -859,7 +859,7 @@ AcpiRsCalculatePciRoutingTableLength ( UINT32 TableIndex; - FUNCTION_TRACE ("AcpiRsCalculatePciRoutingTableLength"); + FUNCTION_TRACE ("RsCalculatePciRoutingTableLength"); NumberOfElements = PackageObject->Package.Count; diff --git a/sys/contrib/dev/acpica/rscreate.c b/sys/contrib/dev/acpica/rscreate.c index a01a47b..1081232 100644 --- a/sys/contrib/dev/acpica/rscreate.c +++ b/sys/contrib/dev/acpica/rscreate.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rscreate - Create resource lists/tables - * $Revision: 35 $ + * $Revision: 36 $ * ******************************************************************************/ @@ -166,7 +166,6 @@ AcpiRsCreateResourceList ( /* * Params already validated, so we don't re-validate here */ - ByteStreamBufferLength = ByteStreamBuffer->Buffer.Length; ByteStreamStart = ByteStreamBuffer->Buffer.Pointer; @@ -192,7 +191,6 @@ AcpiRsCreateResourceList ( * If the linked list will fit into the available buffer * call to fill in the list */ - if (ListSizeNeeded <= *OutputBufferLength) { /* @@ -268,7 +266,6 @@ AcpiRsCreatePciRoutingTable ( /* * Params already validated, so we don't re-validate here */ - Status = AcpiRsCalculatePciRoutingTableLength (PackageObject, &BufferSizeNeeded); @@ -530,7 +527,6 @@ AcpiRsCreateByteStream ( * If the linked list will fit into the available buffer * call to fill in the list */ - if (ByteStreamSizeNeeded <= *OutputBufferLength) { /* diff --git a/sys/contrib/dev/acpica/rsdump.c b/sys/contrib/dev/acpica/rsdump.c index 6cf7e35..9a0a290 100644 --- a/sys/contrib/dev/acpica/rsdump.c +++ b/sys/contrib/dev/acpica/rsdump.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rsdump - Functions to display the resource structures. - * $Revision: 21 $ + * $Revision: 23 $ * ******************************************************************************/ @@ -124,6 +124,8 @@ MODULE_NAME ("rsdump") +#ifdef ACPI_DEBUG + /******************************************************************************* * * FUNCTION: AcpiRsDumpIrq @@ -144,6 +146,9 @@ AcpiRsDumpIrq ( UINT8 Index = 0; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("IRQ Resource\n"); AcpiOsPrintf (" %s Triggered\n", @@ -187,6 +192,9 @@ AcpiRsDumpDma ( UINT8 Index = 0; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("DMA Resource\n"); switch (DmaData->Type) @@ -266,8 +274,10 @@ AcpiRsDumpStartDependentFunctions ( ACPI_RESOURCE_START_DPF *SdfData = (ACPI_RESOURCE_START_DPF *) Data; - AcpiOsPrintf ("Start Dependent Functions Resource\n"); + FUNCTION_ENTRY (); + + AcpiOsPrintf ("Start Dependent Functions Resource\n"); switch (SdfData->CompatibilityPriority) { @@ -331,6 +341,9 @@ AcpiRsDumpIo ( ACPI_RESOURCE_IO *IoData = (ACPI_RESOURCE_IO *) Data; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("Io Resource\n"); AcpiOsPrintf (" %d bit decode\n", @@ -371,6 +384,9 @@ AcpiRsDumpFixedIo ( ACPI_RESOURCE_FIXED_IO *FixedIoData = (ACPI_RESOURCE_FIXED_IO *) Data; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("Fixed Io Resource\n"); AcpiOsPrintf (" Range base address: %08X", FixedIoData->BaseAddress); @@ -402,6 +418,9 @@ AcpiRsDumpVendorSpecific ( UINT16 Index = 0; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("Vendor Specific Resource\n"); AcpiOsPrintf (" Length: %08X\n", VendorData->Length); @@ -435,6 +454,9 @@ AcpiRsDumpMemory24 ( ACPI_RESOURCE_MEM24 *Memory24Data = (ACPI_RESOURCE_MEM24 *) Data; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("24-Bit Memory Range Resource\n"); AcpiOsPrintf (" Read%s\n", @@ -477,6 +499,9 @@ AcpiRsDumpMemory32 ( ACPI_RESOURCE_MEM32 *Memory32Data = (ACPI_RESOURCE_MEM32 *) Data; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("32-Bit Memory Range Resource\n"); AcpiOsPrintf (" Read%s\n", @@ -519,6 +544,9 @@ AcpiRsDumpFixedMemory32 ( ACPI_RESOURCE_FIXED_MEM32 *FixedMemory32Data = (ACPI_RESOURCE_FIXED_MEM32 *) Data; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("32-Bit Fixed Location Memory Range Resource\n"); AcpiOsPrintf (" Read%s\n", @@ -555,6 +583,9 @@ AcpiRsDumpAddress16 ( ACPI_RESOURCE_ADDRESS16 *Address16Data = (ACPI_RESOURCE_ADDRESS16 *) Data; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("16-Bit Address Space Resource\n"); AcpiOsPrintf (" Resource Type: "); @@ -699,6 +730,9 @@ AcpiRsDumpAddress32 ( ACPI_RESOURCE_ADDRESS32 *Address32Data = (ACPI_RESOURCE_ADDRESS32 *) Data; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("32-Bit Address Space Resource\n"); switch (Address32Data->ResourceType) @@ -842,6 +876,9 @@ AcpiRsDumpAddress64 ( ACPI_RESOURCE_ADDRESS64 *Address64Data = (ACPI_RESOURCE_ADDRESS64 *) Data; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("64-Bit Address Space Resource\n"); switch (Address64Data->ResourceType) @@ -986,6 +1023,9 @@ AcpiRsDumpExtendedIrq ( UINT8 Index = 0; + FUNCTION_ENTRY (); + + AcpiOsPrintf ("Extended IRQ Resource\n"); AcpiOsPrintf (" Resource %s\n", @@ -1046,6 +1086,9 @@ AcpiRsDumpResourceList ( BOOLEAN Done = FALSE; + FUNCTION_ENTRY (); + + if (AcpiDbgLevel & ACPI_LV_RESOURCES && _COMPONENT & AcpiDbgLayer) { while (!Done) @@ -1152,6 +1195,9 @@ AcpiRsDumpIrqList ( PCI_ROUTING_TABLE *PrtElement; + FUNCTION_ENTRY (); + + if (AcpiDbgLevel & ACPI_LV_RESOURCES && _COMPONENT & AcpiDbgLayer) { PrtElement = (PCI_ROUTING_TABLE *) Buffer; @@ -1184,3 +1230,5 @@ AcpiRsDumpIrqList ( return; } +#endif + diff --git a/sys/contrib/dev/acpica/rsirq.c b/sys/contrib/dev/acpica/rsirq.c index ae7af71..6aa1cf5 100644 --- a/sys/contrib/dev/acpica/rsirq.c +++ b/sys/contrib/dev/acpica/rsirq.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rsirq - IRQ resource descriptors - * $Revision: 17 $ + * $Revision: 18 $ * ******************************************************************************/ @@ -505,10 +505,10 @@ AcpiRsExtendedIrqResource ( Buffer += 1; - /* + /* * Point the String pointer to the end of this structure. */ - OutputStruct->Data.ExtendedIrq.ResourceSource.StringPtr = + OutputStruct->Data.ExtendedIrq.ResourceSource.StringPtr = (NATIVE_CHAR *)(OutputStruct + StructSize); TempPtr = OutputStruct->Data.ExtendedIrq.ResourceSource.StringPtr; @@ -654,7 +654,7 @@ AcpiRsExtendedIrqStream ( /* * Copy the string */ - STRCPY (TempPointer, + STRCPY (TempPointer, LinkedList->Data.ExtendedIrq.ResourceSource.StringPtr); /* diff --git a/sys/contrib/dev/acpica/rslist.c b/sys/contrib/dev/acpica/rslist.c index d7ec0f9..1171f2b 100644 --- a/sys/contrib/dev/acpica/rslist.c +++ b/sys/contrib/dev/acpica/rslist.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rslist - Linked list utilities - * $Revision: 17 $ + * $Revision: 19 $ * ******************************************************************************/ @@ -141,6 +141,9 @@ AcpiRsGetResourceType ( UINT8 ResourceStartByte) { + FUNCTION_ENTRY (); + + /* * Determine if this is a small or large resource */ @@ -216,7 +219,7 @@ AcpiRsByteStreamToList ( /* * 24-Bit Memory Resource */ - Status = AcpiRsMemory24Resource (ByteStreamBuffer, + Status = AcpiRsMemory24Resource (ByteStreamBuffer, &BytesConsumed, Buffer, &StructureSize); break; @@ -435,6 +438,7 @@ AcpiRsListToByteStream ( FUNCTION_TRACE ("RsListToByteStream"); + while (!Done) { switch (LinkedList->Id) @@ -529,7 +533,7 @@ AcpiRsListToByteStream ( /* * 16-Bit Address Descriptor Resource */ - Status = AcpiRsAddress16Stream (LinkedList, &Buffer, + Status = AcpiRsAddress16Stream (LinkedList, &Buffer, &BytesConsumed); break; @@ -581,7 +585,7 @@ AcpiRsListToByteStream ( /* * Point to the next object */ - LinkedList = POINTER_ADD (ACPI_RESOURCE, + LinkedList = POINTER_ADD (ACPI_RESOURCE, LinkedList, LinkedList->Length); } diff --git a/sys/contrib/dev/acpica/rsmisc.c b/sys/contrib/dev/acpica/rsmisc.c index 54d8656..830991d 100644 --- a/sys/contrib/dev/acpica/rsmisc.c +++ b/sys/contrib/dev/acpica/rsmisc.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rsmisc - Miscellaneous resource descriptors - * $Revision: 15 $ + * $Revision: 16 $ * ******************************************************************************/ @@ -284,7 +284,7 @@ AcpiRsVendorResource ( { /* * Large Item - * Point to the length field + * Point to the length field */ Buffer += 1; @@ -305,7 +305,7 @@ AcpiRsVendorResource ( { /* * Small Item - * Dereference the size + * Dereference the size */ Temp16 = (UINT8)(*Buffer & 0x07); diff --git a/sys/contrib/dev/acpica/rsxface.c b/sys/contrib/dev/acpica/rsxface.c index ea31fa2..0d5265f 100644 --- a/sys/contrib/dev/acpica/rsxface.c +++ b/sys/contrib/dev/acpica/rsxface.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rsxface - Public interfaces to the resource manager - * $Revision: 13 $ + * $Revision: 14 $ * ******************************************************************************/ @@ -220,7 +220,7 @@ AcpiGetCurrentResources ( FUNCTION_TRACE ("AcpiGetCurrentResources"); - + /* Ensure that ACPI has been initialized */ ACPI_IS_INITIALIZATION_COMPLETE (Status); diff --git a/sys/contrib/dev/acpica/tbconvrt.c b/sys/contrib/dev/acpica/tbconvrt.c index 5bdddc1..84fa106 100644 --- a/sys/contrib/dev/acpica/tbconvrt.c +++ b/sys/contrib/dev/acpica/tbconvrt.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: tbconvrt - ACPI Table conversion utilities - * $Revision: 25 $ + * $Revision: 27 $ * *****************************************************************************/ @@ -134,7 +134,7 @@ * * RETURN: * - * DESCRIPTION: + * DESCRIPTION: Calculate the number of tables * ******************************************************************************/ @@ -146,6 +146,8 @@ AcpiTbGetTableCount ( UINT32 PointerSize; + FUNCTION_ENTRY (); + #ifndef _IA64 @@ -166,7 +168,6 @@ AcpiTbGetTableCount ( * pointers contained within the RSDT/XSDT. The size of the pointers * is architecture-dependent. */ - return ((RSDT->Length - sizeof (ACPI_TABLE_HEADER)) / PointerSize); } @@ -179,7 +180,7 @@ AcpiTbGetTableCount ( * * RETURN: * - * DESCRIPTION: + * DESCRIPTION: Convert an RSDT to an XSDT (internal common format) * ******************************************************************************/ @@ -193,6 +194,9 @@ AcpiTbConvertToXsdt ( XSDT_DESCRIPTOR *NewTable; + FUNCTION_ENTRY (); + + *NumberOfTables = AcpiTbGetTableCount (AcpiGbl_RSDP, TableInfo->Pointer); @@ -289,7 +293,7 @@ AcpiTbConvertTableFadt (void) ACPI_TABLE_DESC *TableDesc; - FUNCTION_TRACE ("AcpiTbConvertTableFadt"); + FUNCTION_TRACE ("TbConvertTableFadt"); /* AcpiGbl_FADT is valid */ @@ -483,7 +487,6 @@ AcpiTbConvertTableFadt (void) * entire 1.0 table can be copied first, then expand some * fields to 64 bits. */ - MEMCPY (FADT2, FADT1, sizeof (FADT_DESCRIPTOR_REV1)); @@ -609,7 +612,7 @@ AcpiTbBuildCommonFacs ( FACS_DESCRIPTOR_REV2 *FACS2; - FUNCTION_TRACE ("AcpiTbBuildCommonFacs"); + FUNCTION_TRACE ("TbBuildCommonFacs"); /* Allocate a common FACS */ diff --git a/sys/contrib/dev/acpica/tbget.c b/sys/contrib/dev/acpica/tbget.c index 7b8aa87..0d186df 100644 --- a/sys/contrib/dev/acpica/tbget.c +++ b/sys/contrib/dev/acpica/tbget.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: tbget - ACPI Table get* routines - * $Revision: 52 $ + * $Revision: 55 $ * *****************************************************************************/ @@ -240,6 +240,7 @@ AcpiTbGetTable ( FUNCTION_TRACE ("TbGetTable"); + if (!TableInfo) { return_ACPI_STATUS (AE_BAD_PARAMETER); @@ -251,7 +252,6 @@ AcpiTbGetTable ( /* * Getting data from a buffer, not BIOS tables */ - TableHeader = BufferPtr; Status = AcpiTbValidateTableHeader (TableHeader); if (ACPI_FAILURE (Status)) @@ -345,7 +345,6 @@ AcpiTbGetAllTables ( * This will NOT include the FACS and DSDT - we must get * them after the loop */ - for (Index = 0; Index < NumberOfTables; Index++) { /* Clear the TableInfo each time */ @@ -382,7 +381,6 @@ AcpiTbGetAllTables ( * error. Just get as many tables as we can, later we will * determine if there are enough tables to continue. */ - AcpiTbUninstallTable (&TableInfo); } } @@ -408,19 +406,16 @@ AcpiTbGetAllTables ( * */ - /* * Get the FACS (must have the FADT first, from loop above) * AcpiTbGetTableFacs will fail if FADT pointer is not valid */ - Status = AcpiTbGetTableFacs (TablePtr, &TableInfo); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); } - /* Install the FACS */ Status = AcpiTbInstallTable (TablePtr, &TableInfo); @@ -433,7 +428,6 @@ AcpiTbGetAllTables ( * Create the common FACS pointer table * (Contains pointers to the original table) */ - Status = AcpiTbBuildCommonFacs (&TableInfo); if (ACPI_FAILURE (Status)) { @@ -444,7 +438,6 @@ AcpiTbGetAllTables ( /* * Get the DSDT (We know that the FADT is valid now) */ - Status = AcpiTbGetTable ((ACPI_PHYSICAL_ADDRESS) ACPI_GET_ADDRESS (AcpiGbl_FADT->XDsdt), TablePtr, &TableInfo); if (ACPI_FAILURE (Status)) @@ -508,7 +501,7 @@ AcpiTbVerifyRsdp ( UINT8 *TablePtr; - FUNCTION_TRACE ("AcpiTbVerifyRsdp"); + FUNCTION_TRACE ("TbVerifyRsdp"); /* @@ -591,6 +584,9 @@ AcpiTbGetRsdtAddress (void) ACPI_PHYSICAL_ADDRESS PhysicalAddress; + FUNCTION_ENTRY (); + + /* * For RSDP revision 0 or 1, we use the RSDT. * For RSDP revision 2 (and above), we use the XSDT @@ -611,14 +607,13 @@ AcpiTbGetRsdtAddress (void) ACPI_GET_ADDRESS (AcpiGbl_RSDP->XsdtPhysicalAddress); } - return (PhysicalAddress); } /******************************************************************************* * - * FUNCTION: AcpiTbValidateRsdt + * FUNCTION: AcpiTbValidateRsdt * * PARAMETERS: TablePtr - Addressable pointer to the RSDT. * @@ -634,6 +629,7 @@ AcpiTbValidateRsdt ( { UINT32 NoMatch; + PROC_NAME ("TbValidateRsdt"); @@ -643,12 +639,12 @@ AcpiTbValidateRsdt ( */ if (AcpiGbl_RSDP->Revision < 2) { - NoMatch = STRNCMP ((char *) TablePtr, RSDT_SIG, + NoMatch = STRNCMP ((char *) TablePtr, RSDT_SIG, sizeof (RSDT_SIG) -1); } else { - NoMatch = STRNCMP ((char *) TablePtr, XSDT_SIG, + NoMatch = STRNCMP ((char *) TablePtr, XSDT_SIG, sizeof (XSDT_SIG) -1); } @@ -696,6 +692,8 @@ AcpiTbGetTablePointer ( ACPI_STATUS Status; + FUNCTION_ENTRY (); + if ((Flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING) { @@ -715,7 +713,6 @@ AcpiTbGetTablePointer ( } - /******************************************************************************* * * FUNCTION: AcpiTbGetTableRsdt @@ -743,7 +740,6 @@ AcpiTbGetTableRsdt ( /* * Get the RSDT from the RSDP */ - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "RSDP located at %p, RSDT physical=%8.8lX%8.8lX \n", AcpiGbl_RSDP, HIDWORD(AcpiGbl_RSDP->RsdtPhysicalAddress), @@ -773,7 +769,7 @@ AcpiTbGetTableRsdt ( } - /* + /* * Valid RSDT signature, verify the checksum. If it fails, just * print a warning and ignore it. */ diff --git a/sys/contrib/dev/acpica/tbinstal.c b/sys/contrib/dev/acpica/tbinstal.c index 64c9e99..338c265 100644 --- a/sys/contrib/dev/acpica/tbinstal.c +++ b/sys/contrib/dev/acpica/tbinstal.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: tbinstal - ACPI table installation and removal - * $Revision: 41 $ + * $Revision: 42 $ * *****************************************************************************/ @@ -155,7 +155,6 @@ AcpiTbInstallTable ( * Check the table signature and make sure it is recognized * Also checks the header checksum */ - Status = AcpiTbRecognizeTable (TablePtr, TableInfo); if (ACPI_FAILURE (Status)) { @@ -225,7 +224,6 @@ AcpiTbRecognizeTable ( * Search for a signature match among the known table types * Start at index one -> Skip the RSDP */ - Status = AE_SUPPORT; for (i = 1; i < NUM_ACPI_TABLES; i++) { @@ -237,7 +235,6 @@ AcpiTbRecognizeTable ( * Found a signature match, get the pertinent info from the * TableData structure */ - TableType = i; Status = AcpiGbl_AcpiTableData[i].Status; @@ -257,7 +254,6 @@ AcpiTbRecognizeTable ( * Validate checksum for _most_ tables, * even the ones whose signature we don't recognize */ - if (TableType != ACPI_TABLE_FACS) { /* But don't abort if the checksum is wrong */ @@ -270,7 +266,6 @@ AcpiTbRecognizeTable ( * An AE_SUPPORT means that the table was not recognized. * We basically ignore this; just print a debug message */ - if (Status == AE_SUPPORT) { ACPI_DEBUG_PRINT ((ACPI_DB_INFO, @@ -309,7 +304,6 @@ AcpiTbInitTableDescriptor ( /* * Install the table into the global data structure */ - ListHead = &AcpiGbl_AcpiTables[TableType]; TableDesc = ListHead; @@ -319,14 +313,12 @@ AcpiTbInitTableDescriptor ( * includes most ACPI tables such as the DSDT. 2) Multiple instances of * the table are allowed. This includes SSDT and PSDTs. */ - if (IS_SINGLE_TABLE (AcpiGbl_AcpiTableData[TableType].Flags)) { /* * Only one table allowed, and a table has alread been installed * at this location, so return an error. */ - if (ListHead->Pointer) { return_ACPI_STATUS (AE_EXIST); @@ -342,7 +334,6 @@ AcpiTbInitTableDescriptor ( * Multiple tables allowed for this table type, we must link * the new table in to the list of tables of this type. */ - if (ListHead->Pointer) { TableDesc = ACPI_MEM_CALLOCATE (sizeof (ACPI_TABLE_DESC)); @@ -390,7 +381,6 @@ AcpiTbInitTableDescriptor ( * Set the appropriate global pointer (if there is one) to point to the * newly installed table */ - if (AcpiGbl_AcpiTableData[TableType].GlobalPtr) { *(AcpiGbl_AcpiTableData[TableType].GlobalPtr) = TableInfo->Pointer; @@ -428,7 +418,6 @@ AcpiTbDeleteAcpiTables (void) * Free memory allocated for ACPI tables * Memory can either be mapped or allocated */ - for (Type = 0; Type < NUM_ACPI_TABLES; Type++) { AcpiTbDeleteAcpiTable (Type); @@ -540,7 +529,6 @@ AcpiTbFreeAcpiTablesOfType ( * Walk the entire list, deleting both the allocated tables * and the table descriptors */ - for (i = 0; i < Count; i++) { TableDesc = AcpiTbUninstallTable (TableDesc); diff --git a/sys/contrib/dev/acpica/tbutils.c b/sys/contrib/dev/acpica/tbutils.c index a8252da..50dc4f2 100644 --- a/sys/contrib/dev/acpica/tbutils.c +++ b/sys/contrib/dev/acpica/tbutils.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: tbutils - Table manipulation utilities - * $Revision: 39 $ + * $Revision: 40 $ * *****************************************************************************/ @@ -146,6 +146,7 @@ AcpiTbHandleToObject ( UINT32 i; ACPI_TABLE_DESC *ListHead; + PROC_NAME ("TbHandleToObject"); @@ -375,7 +376,6 @@ AcpiTbMapAcpiTable ( * Validate the header and delete the mapping. * We will create a mapping for the full table below. */ - Status = AcpiTbValidateTableHeader (Table); /* Always unmap the memory for the header */ diff --git a/sys/contrib/dev/acpica/tbxface.c b/sys/contrib/dev/acpica/tbxface.c index 76f6ec8..6478264 100644 --- a/sys/contrib/dev/acpica/tbxface.c +++ b/sys/contrib/dev/acpica/tbxface.c @@ -2,7 +2,7 @@ * * Module Name: tbxface - Public interfaces to the ACPI subsystem * ACPI table oriented interfaces - * $Revision: 42 $ + * $Revision: 43 $ * *****************************************************************************/ @@ -162,7 +162,7 @@ AcpiLoadTables (void) /* Get the RSDP */ - Status = AcpiOsGetRootPointer (ACPI_LOGICAL_ADDRESSING, + Status = AcpiOsGetRootPointer (ACPI_LOGICAL_ADDRESSING, &RsdpPhysicalAddress); if (ACPI_FAILURE (Status)) { diff --git a/sys/contrib/dev/acpica/tbxfroot.c b/sys/contrib/dev/acpica/tbxfroot.c index f6e5f40..229a099 100644 --- a/sys/contrib/dev/acpica/tbxfroot.c +++ b/sys/contrib/dev/acpica/tbxfroot.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: tbxfroot - Find the root ACPI table (RSDT) - * $Revision: 47 $ + * $Revision: 49 $ * *****************************************************************************/ @@ -191,6 +191,7 @@ AcpiTbScanMemoryForRsdp ( FUNCTION_TRACE ("TbScanMemoryForRsdp"); + /* Search from given start addr for the requested length */ for (Offset = 0, MemRover = StartAddress; @@ -213,6 +214,7 @@ AcpiTbScanMemoryForRsdp ( } /* Searched entire block, no RSDP was found */ + ACPI_DEBUG_PRINT ((ACPI_DB_INFO,"Searched entire block, no RSDP was found.\n")); return_PTR (NULL); @@ -252,7 +254,7 @@ AcpiTbFindRsdp ( FUNCTION_TRACE ("TbFindRsdp"); - /* + /* * Scan supports either 1) Logical addressing or 2) Physical addressing */ if ((Flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING) @@ -281,7 +283,7 @@ AcpiTbFindRsdp ( return_ACPI_STATUS (AE_OK); } - + /* * 2) Search upper memory: 16-byte boundaries in E0000h-F0000h */ @@ -317,7 +319,7 @@ AcpiTbFindRsdp ( /* * 1) Search EBDA (low memory) paragraphs */ - MemRover = AcpiTbScanMemoryForRsdp ((UINT8 *) LO_RSDP_WINDOW_BASE, + MemRover = AcpiTbScanMemoryForRsdp ((UINT8 *) LO_RSDP_WINDOW_BASE, LO_RSDP_WINDOW_SIZE); if (MemRover) { @@ -330,7 +332,7 @@ AcpiTbFindRsdp ( /* * 2) Search upper memory: 16-byte boundaries in E0000h-F0000h */ - MemRover = AcpiTbScanMemoryForRsdp ((UINT8 *) HI_RSDP_WINDOW_BASE, + MemRover = AcpiTbScanMemoryForRsdp ((UINT8 *) HI_RSDP_WINDOW_BASE, HI_RSDP_WINDOW_SIZE); if (MemRover) { @@ -391,12 +393,11 @@ AcpiGetFirmwareTable ( FUNCTION_TRACE ("AcpiGetFirmwareTable"); - /* + /* * Ensure that at least the table manager is initialized. We don't * require that the entire ACPI subsystem is up for this interface */ - /* * If we have a buffer, we must have a length too */ @@ -446,7 +447,7 @@ AcpiGetFirmwareTable ( /* - * Search the RSDT/XSDT for the correct instance of the + * Search the RSDT/XSDT for the correct instance of the * requested table */ for (i = 0, j = 0; i < TableCount; i++) diff --git a/sys/contrib/dev/acpica/utalloc.c b/sys/contrib/dev/acpica/utalloc.c index 7485797..c03de85 100644 --- a/sys/contrib/dev/acpica/utalloc.c +++ b/sys/contrib/dev/acpica/utalloc.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: utalloc - local cache and memory allocation routines - * $Revision: 95 $ + * $Revision: 100 $ * *****************************************************************************/ @@ -126,7 +126,6 @@ MODULE_NAME ("utalloc") - /****************************************************************************** * * FUNCTION: AcpiUtReleaseToCache @@ -149,6 +148,9 @@ AcpiUtReleaseToCache ( ACPI_MEMORY_LIST *CacheInfo; + FUNCTION_ENTRY (); + + /* If walk cache is full, just free this wallkstate object */ CacheInfo = &AcpiGbl_MemoryLists[ListId]; @@ -185,7 +187,7 @@ AcpiUtReleaseToCache ( * * PARAMETERS: ListId - Memory list ID * - * RETURN: A requested object. NULL if the object could not be + * RETURN: A requested object. NULL if the object could not be * allocated. * * DESCRIPTION: Get an object from the specified cache. If cache is empty, @@ -201,7 +203,8 @@ AcpiUtAcquireFromCache ( void *Object; - PROC_NAME ("AcpiUtAcquireFromCache"); + PROC_NAME ("UtAcquireFromCache"); + CacheInfo = &AcpiGbl_MemoryLists[ListId]; AcpiUtAcquireMutex (ACPI_MTX_CACHES); @@ -219,7 +222,10 @@ AcpiUtAcquireFromCache ( ACPI_MEM_TRACKING (CacheInfo->CacheHits++); CacheInfo->CacheDepth--; - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Object %p from cache %d\n", Object, ListId)); +#ifdef ACPI_DBG_TRACK_ALLOCATIONS + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Object %p from %s\n", + Object, AcpiGbl_MemoryLists[ListId].ListName)); +#endif AcpiUtReleaseMutex (ACPI_MTX_CACHES); @@ -264,6 +270,9 @@ AcpiUtDeleteGenericCache ( char *Next; + FUNCTION_ENTRY (); + + CacheInfo = &AcpiGbl_MemoryLists[ListId]; while (CacheInfo->ListHead) { @@ -278,7 +287,6 @@ AcpiUtDeleteGenericCache ( } - #ifdef ACPI_DBG_TRACK_ALLOCATIONS @@ -288,8 +296,8 @@ AcpiUtDeleteGenericCache ( * * Each memory allocation is tracked via a doubly linked list. Each * element contains the caller's component, module name, function name, and - * line number. AcpiUtAllocate and AcpiUtCallocate call - * AcpiUtAddElementToAllocList to add an element to the list; deletion + * line number. AcpiUtAllocate and AcpiUtCallocate call + * AcpiUtAddElementToAllocList to add an element to the list; deletion * occurs in the body of AcpiUtFree. */ @@ -314,6 +322,9 @@ AcpiUtSearchAllocList ( ACPI_DEBUG_MEM_BLOCK *Element; + FUNCTION_ENTRY (); + + if (ListId > ACPI_MEM_LIST_MAX) { return (NULL); @@ -414,7 +425,7 @@ AcpiUtAddElementToAllocList ( Address->Next = MemList->ListHead; Address->Previous = NULL; - + MemList->ListHead = Address; @@ -471,7 +482,7 @@ AcpiUtDeleteElementFromAllocList ( AcpiUtAcquireMutex (ACPI_MTX_MEMORY); - + /* Unlink */ if (Address->Previous) @@ -583,8 +594,8 @@ AcpiUtDumpCurrentAllocations ( FUNCTION_TRACE ("UtDumpCurrentAllocations"); - Element = AcpiGbl_MemoryLists[0].ListHead; + Element = AcpiGbl_MemoryLists[0].ListHead; if (Element == NULL) { ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, @@ -688,7 +699,7 @@ AcpiUtAllocate ( ACPI_STATUS Status; - FUNCTION_TRACE_U32 ("AcpiUtAllocate", Size); + FUNCTION_TRACE_U32 ("UtAllocate", Size); /* Check for an inadvertent size of zero bytes */ @@ -711,7 +722,7 @@ AcpiUtAllocate ( return_PTR (NULL); } - Status = AcpiUtAddElementToAllocList (ACPI_MEM_LIST_GLOBAL, Address, Size, + Status = AcpiUtAddElementToAllocList (ACPI_MEM_LIST_GLOBAL, Address, Size, MEM_MALLOC, Component, Module, Line); if (ACPI_FAILURE (Status)) { @@ -754,7 +765,7 @@ AcpiUtCallocate ( ACPI_STATUS Status; - FUNCTION_TRACE_U32 ("AcpiUtCallocate", Size); + FUNCTION_TRACE_U32 ("UtCallocate", Size); /* Check for an inadvertent size of zero bytes */ @@ -777,7 +788,7 @@ AcpiUtCallocate ( return_PTR (NULL); } - Status = AcpiUtAddElementToAllocList (ACPI_MEM_LIST_GLOBAL, Address, Size, + Status = AcpiUtAddElementToAllocList (ACPI_MEM_LIST_GLOBAL, Address, Size, MEM_CALLOC, Component, Module, Line); if (ACPI_FAILURE (Status)) { @@ -818,7 +829,7 @@ AcpiUtFree ( ACPI_DEBUG_MEM_BLOCK *DebugBlock; - FUNCTION_TRACE_PTR ("AcpiUtFree", Address); + FUNCTION_TRACE_PTR ("UtFree", Address); if (NULL == Address) @@ -829,13 +840,13 @@ AcpiUtFree ( return_VOID; } - DebugBlock = (ACPI_DEBUG_MEM_BLOCK *) + DebugBlock = (ACPI_DEBUG_MEM_BLOCK *) (((char *) Address) - sizeof (ACPI_DEBUG_MEM_HEADER)); AcpiGbl_MemoryLists[ACPI_MEM_LIST_GLOBAL].TotalFreed++; AcpiGbl_MemoryLists[ACPI_MEM_LIST_GLOBAL].CurrentTotalSize -= DebugBlock->Size; - AcpiUtDeleteElementFromAllocList (ACPI_MEM_LIST_GLOBAL, DebugBlock, + AcpiUtDeleteElementFromAllocList (ACPI_MEM_LIST_GLOBAL, DebugBlock, Component, Module, Line); AcpiOsFree (DebugBlock); diff --git a/sys/contrib/dev/acpica/utcopy.c b/sys/contrib/dev/acpica/utcopy.c index a3ee276..8f67775 100644 --- a/sys/contrib/dev/acpica/utcopy.c +++ b/sys/contrib/dev/acpica/utcopy.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: utcopy - Internal to external object translation utilities - * $Revision: 77 $ + * $Revision: 79 $ * *****************************************************************************/ @@ -161,7 +161,6 @@ AcpiUtCopyIsimpleToEsimple ( * Check for NULL object case (could be an uninitialized * package element */ - if (!InternalObject) { *BufferSpaceUsed = 0; @@ -176,7 +175,6 @@ AcpiUtCopyIsimpleToEsimple ( * In general, the external object will be the same type as * the internal object */ - ExternalObject->Type = InternalObject->Common.Type; /* However, only a limited number of external types are supported */ @@ -213,7 +211,6 @@ AcpiUtCopyIsimpleToEsimple ( /* * This is an object reference. Attempt to dereference it. */ - switch (InternalObject->Reference.Opcode) { case AML_ZERO_OP: @@ -318,6 +315,9 @@ AcpiUtCopyIelementToEelement ( ACPI_OBJECT *TargetObject; + FUNCTION_ENTRY (); + + ThisIndex = State->Pkg.Index; TargetObject = (ACPI_OBJECT *) &((ACPI_OBJECT *)(State->Pkg.DestObject))->Package.Elements[ThisIndex]; @@ -428,7 +428,6 @@ AcpiUtCopyIpackageToEpackage ( * Build an array of ACPI_OBJECTS in the buffer * and move the free space past it */ - Info.FreeSpace += ExternalObject->Package.Count * ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); @@ -624,7 +623,6 @@ AcpiUtCopyEpackageToIpackage ( * Build an array of ACPI_OBJECTS in the buffer * and move the free space past it */ - FreeSpace += ExternalObject->Package.Count * sizeof(ACPI_OBJECT); @@ -674,7 +672,7 @@ AcpiUtCopyEobjectToIobject ( RetBuffer->Pointer, &RetBuffer->Length); */ - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Packages as parameters not implemented!\n")); return_ACPI_STATUS (AE_NOT_IMPLEMENTED); @@ -721,6 +719,9 @@ AcpiUtCopyIelementToIelement ( ACPI_OPERAND_OBJECT *TargetObject; + FUNCTION_ENTRY (); + + ThisIndex = State->Pkg.Index; ThisTargetPtr = (ACPI_OPERAND_OBJECT **) &State->Pkg.DestObject->Package.Elements[ThisIndex]; @@ -806,6 +807,7 @@ AcpiUtCopyIpackageToIpackage ( { ACPI_STATUS Status = AE_OK; + FUNCTION_TRACE ("UtCopyIpackageToIpackage"); @@ -816,7 +818,6 @@ AcpiUtCopyIpackageToIpackage ( /* * Create the object array and walk the source package tree */ - DestObj->Package.Elements = ACPI_MEM_CALLOCATE ((SourceObj->Package.Count + 1) * sizeof (void *)); DestObj->Package.NextElement = DestObj->Package.Elements; diff --git a/sys/contrib/dev/acpica/utdebug.c b/sys/contrib/dev/acpica/utdebug.c index 7a0393d..9da1f9f 100644 --- a/sys/contrib/dev/acpica/utdebug.c +++ b/sys/contrib/dev/acpica/utdebug.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: utdebug - Debug print routines - * $Revision: 76 $ + * $Revision: 87 $ * *****************************************************************************/ @@ -122,32 +122,72 @@ MODULE_NAME ("utdebug") -UINT32 PrevThreadId = 0xFFFFFFFF; +UINT32 AcpiGbl_PrevThreadId = 0xFFFFFFFF; +char *AcpiGbl_FnEntryStr = "----Entry"; +char *AcpiGbl_FnExitStr = "----Exit-"; + + + +#ifdef ACPI_DEBUG + /***************************************************************************** * - * FUNCTION: Get/Set debug level + * FUNCTION: AcpiUtInitStackPtrTrace + * + * PARAMETERS: None * - * DESCRIPTION: Get or set value of the debug flag + * RETURN: None * - * These are used to allow user's to get/set the debug level + * DESCRIPTION: Save the current stack pointer * ****************************************************************************/ - -UINT32 -GetDebugLevel (void) +void +AcpiUtInitStackPtrTrace ( + void) { + UINT32 CurrentSp; - return (AcpiDbgLevel); + + AcpiGbl_EntryStackPointer = (UINT32) &CurrentSp; } + +/***************************************************************************** + * + * FUNCTION: AcpiUtTrackStackPtr + * + * PARAMETERS: None + * + * RETURN: None + * + * DESCRIPTION: Save the current stack pointer + * + ****************************************************************************/ + void -SetDebugLevel ( - UINT32 NewDebugLevel) +AcpiUtTrackStackPtr ( + void) { + UINT32 CurrentSp; - AcpiDbgLevel = NewDebugLevel; + CurrentSp = (UINT32) &CurrentSp; + + if (CurrentSp < AcpiGbl_LowestStackPointer) + { + AcpiGbl_LowestStackPointer = CurrentSp; + } + + if (AcpiGbl_NestingLevel > AcpiGbl_DeepestNesting) + { + AcpiGbl_DeepestNesting = AcpiGbl_NestingLevel; + + if (AcpiGbl_DeepestNesting == 34) + { + AcpiOsPrintf ("hit deepest nesting\n"); + } + } } @@ -160,7 +200,7 @@ SetDebugLevel ( * ModuleName - Caller's module name (for error output) * LineNumber - Caller's line number (for error output) * ComponentId - Caller's component ID (for error output) - * + * * Format - Printf format field * ... - Optional printf arguments * @@ -174,10 +214,8 @@ SetDebugLevel ( void AcpiUtDebugPrint ( UINT32 RequestedDebugLevel, - UINT32 ComponentId, - NATIVE_CHAR *ProcName, - NATIVE_CHAR *ModuleName, UINT32 LineNumber, + ACPI_DEBUG_PRINT_INFO *DbgInfo, char *Format, ...) { @@ -185,35 +223,44 @@ AcpiUtDebugPrint ( va_list args; + /* + * Stay silent if the debug level or component ID is disabled + */ if (!(RequestedDebugLevel & AcpiDbgLevel) || - !(ComponentId & AcpiDbgLayer)) + !(DbgInfo->ComponentId & AcpiDbgLayer)) { return; } + /* + * Thread tracking and context switch notification + */ ThreadId = AcpiOsGetThreadId (); - if (ThreadId != PrevThreadId) + if (ThreadId != AcpiGbl_PrevThreadId) { if (ACPI_LV_THREADS & AcpiDbgLevel) { AcpiOsPrintf ("\n**** Context Switch from TID %X to TID %X ****\n\n", - PrevThreadId, ThreadId); + AcpiGbl_PrevThreadId, ThreadId); } - PrevThreadId = ThreadId; + AcpiGbl_PrevThreadId = ThreadId; } + /* + * Display the module name, current line number, thread ID (if requested), + * current procedure nesting level, and the current procedure name + */ + AcpiOsPrintf ("%8s-%04d ", DbgInfo->ModuleName, LineNumber); + if (ACPI_LV_THREADS & AcpiDbgLevel) { - AcpiOsPrintf ("%8s-%04d[%04X][%02d] %s: ", ModuleName, LineNumber, ThreadId, AcpiGbl_NestingLevel, ProcName); - } - else - { - AcpiOsPrintf ("%8s-%04d[%02d] %s: ", ModuleName, LineNumber, AcpiGbl_NestingLevel, ProcName); + AcpiOsPrintf ("[%04X] ", ThreadId, AcpiGbl_NestingLevel, DbgInfo->ProcName); } + AcpiOsPrintf ("[%02d] %-22.22s: ", AcpiGbl_NestingLevel, DbgInfo->ProcName); va_start (args, Format); @@ -225,18 +272,18 @@ AcpiUtDebugPrint ( * * FUNCTION: AcpiUtDebugPrintRaw * - * PARAMETERS: DebugLevel - Requested debug print level - * ProcName - Caller's procedure name - * ModuleName - Caller's module name (for error output) - * LineNumber - Caller's line number (for error output) - * ComponentId - Caller's component ID (for error output) - * + * PARAMETERS: RequestedDebugLevel - Requested debug print level + * LineNumber - Caller's line number + * DbgInfo - Contains: + * ProcName - Caller's procedure name + * ModuleName - Caller's module name + * ComponentId - Caller's component ID * Format - Printf format field * ... - Optional printf arguments * * RETURN: None * - * DESCRIPTION: Print message with no headers. Has same interface as + * DESCRIPTION: Print message with no headers. Has same interface as * DebugPrint so that the same macros can be used. * ****************************************************************************/ @@ -244,19 +291,16 @@ AcpiUtDebugPrint ( void AcpiUtDebugPrintRaw ( UINT32 RequestedDebugLevel, - UINT32 ComponentId, - NATIVE_CHAR *ProcName, - NATIVE_CHAR *ModuleName, UINT32 LineNumber, + ACPI_DEBUG_PRINT_INFO *DbgInfo, char *Format, ...) { va_list args; - if (!(RequestedDebugLevel & AcpiDbgLevel) || - !(ComponentId & AcpiDbgLayer)) + !(DbgInfo->ComponentId & AcpiDbgLayer)) { return; } @@ -269,12 +313,13 @@ AcpiUtDebugPrintRaw ( /***************************************************************************** * - * FUNCTION: FunctionTrace + * FUNCTION: AcpiUtTrace * - * PARAMETERS: ModuleName - Caller's module name (for error output) - * LineNumber - Caller's line number (for error output) - * ComponentId - Caller's component ID (for error output) - * FunctionName - Name of Caller's function + * PARAMETERS: LineNumber - Caller's line number + * DbgInfo - Contains: + * ProcName - Caller's procedure name + * ModuleName - Caller's module name + * ComponentId - Caller's component ID * * RETURN: None * @@ -284,28 +329,28 @@ AcpiUtDebugPrintRaw ( ****************************************************************************/ void -FunctionTrace ( - NATIVE_CHAR *ModuleName, +AcpiUtTrace ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName) + ACPI_DEBUG_PRINT_INFO *DbgInfo) { AcpiGbl_NestingLevel++; + AcpiUtTrackStackPtr (); - AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, ComponentId, FunctionName, - ModuleName, LineNumber, "----Entered Function----\n"); + AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo, + "%s\n", AcpiGbl_FnEntryStr); } /***************************************************************************** * - * FUNCTION: FunctionTracePtr + * FUNCTION: AcpiUtTracePtr * - * PARAMETERS: ModuleName - Caller's module name (for error output) - * LineNumber - Caller's line number (for error output) - * ComponentId - Caller's component ID (for error output) - * FunctionName - Name of Caller's function + * PARAMETERS: LineNumber - Caller's line number + * DbgInfo - Contains: + * ProcName - Caller's procedure name + * ModuleName - Caller's module name + * ComponentId - Caller's component ID * Pointer - Pointer to display * * RETURN: None @@ -316,28 +361,28 @@ FunctionTrace ( ****************************************************************************/ void -FunctionTracePtr ( - NATIVE_CHAR *ModuleName, +AcpiUtTracePtr ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, void *Pointer) { AcpiGbl_NestingLevel++; - AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, ComponentId, FunctionName, - ModuleName, LineNumber, "----Entered Function---- %p\n", Pointer); -} + AcpiUtTrackStackPtr (); + AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo, + "%s %p\n", AcpiGbl_FnEntryStr, Pointer); +} /***************************************************************************** * - * FUNCTION: FunctionTraceStr + * FUNCTION: AcpiUtTraceStr * - * PARAMETERS: ModuleName - Caller's module name (for error output) - * LineNumber - Caller's line number (for error output) - * ComponentId - Caller's component ID (for error output) - * FunctionName - Name of Caller's function + * PARAMETERS: LineNumber - Caller's line number + * DbgInfo - Contains: + * ProcName - Caller's procedure name + * ModuleName - Caller's module name + * ComponentId - Caller's component ID * String - Additional string to display * * RETURN: None @@ -348,28 +393,29 @@ FunctionTracePtr ( ****************************************************************************/ void -FunctionTraceStr ( - NATIVE_CHAR *ModuleName, +AcpiUtTraceStr ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, NATIVE_CHAR *String) { AcpiGbl_NestingLevel++; - AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, ComponentId, FunctionName, - ModuleName, LineNumber, "----Entered Function---- %s\n", String); + AcpiUtTrackStackPtr (); + + AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo, + "%s %s\n", AcpiGbl_FnEntryStr, String); } /***************************************************************************** * - * FUNCTION: FunctionTraceU32 + * FUNCTION: AcpiUtTraceU32 * - * PARAMETERS: ModuleName - Caller's module name (for error output) - * LineNumber - Caller's line number (for error output) - * ComponentId - Caller's component ID (for error output) - * FunctionName - Name of Caller's function + * PARAMETERS: LineNumber - Caller's line number + * DbgInfo - Contains: + * ProcName - Caller's procedure name + * ModuleName - Caller's module name + * ComponentId - Caller's component ID * Integer - Integer to display * * RETURN: None @@ -380,28 +426,29 @@ FunctionTraceStr ( ****************************************************************************/ void -FunctionTraceU32 ( - NATIVE_CHAR *ModuleName, +AcpiUtTraceU32 ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, UINT32 Integer) { AcpiGbl_NestingLevel++; - AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, ComponentId, FunctionName, - ModuleName, LineNumber, "----Entered Function---- %08X\n", Integer); + AcpiUtTrackStackPtr (); + + AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo, + "%s %08X\n", AcpiGbl_FnEntryStr, Integer); } /***************************************************************************** * - * FUNCTION: FunctionExit + * FUNCTION: AcpiUtExit * - * PARAMETERS: ModuleName - Caller's module name (for error output) - * LineNumber - Caller's line number (for error output) - * ComponentId - Caller's component ID (for error output) - * FunctionName - Name of Caller's function + * PARAMETERS: LineNumber - Caller's line number + * DbgInfo - Contains: + * ProcName - Caller's procedure name + * ModuleName - Caller's module name + * ComponentId - Caller's component ID * * RETURN: None * @@ -411,15 +458,13 @@ FunctionTraceU32 ( ****************************************************************************/ void -FunctionExit ( - NATIVE_CHAR *ModuleName, +AcpiUtExit ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName) + ACPI_DEBUG_PRINT_INFO *DbgInfo) { - AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, ComponentId, FunctionName, - ModuleName, LineNumber, "----Exiting Function----\n"); + AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo, + "%s\n", AcpiGbl_FnExitStr); AcpiGbl_NestingLevel--; } @@ -427,12 +472,13 @@ FunctionExit ( /***************************************************************************** * - * FUNCTION: FunctionStatusExit + * FUNCTION: AcpiUtStatusExit * - * PARAMETERS: ModuleName - Caller's module name (for error output) - * LineNumber - Caller's line number (for error output) - * ComponentId - Caller's component ID (for error output) - * FunctionName - Name of Caller's function + * PARAMETERS: LineNumber - Caller's line number + * DbgInfo - Contains: + * ProcName - Caller's procedure name + * ModuleName - Caller's module name + * ComponentId - Caller's component ID * Status - Exit status code * * RETURN: None @@ -443,17 +489,24 @@ FunctionExit ( ****************************************************************************/ void -FunctionStatusExit ( - NATIVE_CHAR *ModuleName, +AcpiUtStatusExit ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, ACPI_STATUS Status) { - AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, ComponentId, FunctionName, - ModuleName, LineNumber, "----Exiting Function---- %s\n", - AcpiFormatException (Status)); + if (ACPI_SUCCESS (Status)) + { + AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo, + "%s %s\n", AcpiGbl_FnExitStr, + AcpiFormatException (Status)); + } + else + { + AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo, + "%s ****Exception****: %s\n", AcpiGbl_FnExitStr, + AcpiFormatException (Status)); + } AcpiGbl_NestingLevel--; } @@ -461,12 +514,13 @@ FunctionStatusExit ( /***************************************************************************** * - * FUNCTION: FunctionValueExit + * FUNCTION: AcpiUtValueExit * - * PARAMETERS: ModuleName - Caller's module name (for error output) - * LineNumber - Caller's line number (for error output) - * ComponentId - Caller's component ID (for error output) - * FunctionName - Name of Caller's function + * PARAMETERS: LineNumber - Caller's line number + * DbgInfo - Contains: + * ProcName - Caller's procedure name + * ModuleName - Caller's module name + * ComponentId - Caller's component ID * Value - Value to be printed with exit msg * * RETURN: None @@ -477,17 +531,14 @@ FunctionStatusExit ( ****************************************************************************/ void -FunctionValueExit ( - NATIVE_CHAR *ModuleName, +AcpiUtValueExit ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, ACPI_INTEGER Value) { - AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, ComponentId, FunctionName, - ModuleName, LineNumber, "----Exiting Function---- %08X\n", - Value); + AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo, + "%s %08X\n", AcpiGbl_FnExitStr, Value); AcpiGbl_NestingLevel--; } @@ -495,12 +546,13 @@ FunctionValueExit ( /***************************************************************************** * - * FUNCTION: FunctionPtrExit + * FUNCTION: AcpiUtPtrExit * - * PARAMETERS: ModuleName - Caller's module name (for error output) - * LineNumber - Caller's line number (for error output) - * ComponentId - Caller's component ID (for error output) - * FunctionName - Name of Caller's function + * PARAMETERS: LineNumber - Caller's line number + * DbgInfo - Contains: + * ProcName - Caller's procedure name + * ModuleName - Caller's module name + * ComponentId - Caller's component ID * Value - Value to be printed with exit msg * * RETURN: None @@ -511,21 +563,22 @@ FunctionValueExit ( ****************************************************************************/ void -FunctionPtrExit ( - NATIVE_CHAR *ModuleName, +AcpiUtPtrExit ( UINT32 LineNumber, - UINT32 ComponentId, - NATIVE_CHAR *FunctionName, + ACPI_DEBUG_PRINT_INFO *DbgInfo, UINT8 *Ptr) { - AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, ComponentId, FunctionName, - ModuleName, LineNumber, "----Exiting Function----, %p\n", - Ptr); + AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo, + "%s %p\n", AcpiGbl_FnExitStr, Ptr); AcpiGbl_NestingLevel--; } +#endif + + + /***************************************************************************** * @@ -533,6 +586,7 @@ FunctionPtrExit ( * * PARAMETERS: Buffer - Buffer to dump * Count - Amount to dump, in bytes + * Display - BYTE, WORD, DWORD, or QWORD display * ComponentID - Caller's component ID * * RETURN: None @@ -665,4 +719,3 @@ AcpiUtDumpBuffer ( return; } - diff --git a/sys/contrib/dev/acpica/utdelete.c b/sys/contrib/dev/acpica/utdelete.c index e556bd1..b4c9104 100644 --- a/sys/contrib/dev/acpica/utdelete.c +++ b/sys/contrib/dev/acpica/utdelete.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: utdelete - object deletion and reference count utilities - * $Revision: 74 $ + * $Revision: 75 $ * ******************************************************************************/ @@ -159,7 +159,6 @@ AcpiUtDeleteInternalObj ( * Must delete or free any pointers within the object that are not * actual ACPI objects (for example, a raw buffer pointer). */ - switch (Object->Common.Type) { @@ -345,7 +344,6 @@ AcpiUtDeleteInternalObjectList ( * Simple objects are simply stored in the array and do not * need to be deleted separately. */ - if (IS_THIS_OBJECT_TYPE ((*InternalObj), ACPI_TYPE_PACKAGE)) { /* Delete the package */ @@ -403,7 +401,6 @@ AcpiUtUpdateRefCount ( /* * Reference count action (increment, decrement, or force delete) */ - switch (Action) { @@ -472,7 +469,6 @@ AcpiUtUpdateRefCount ( * Sanity check the reference count, for debug purposes only. * (A deleted object will have a huge reference count) */ - if (Count > MAX_REFERENCE_COUNT) { @@ -534,7 +530,6 @@ AcpiUtUpdateObjectReference ( /* * Make sure that this isn't a namespace handle or an AML pointer */ - if (VALID_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_NAMED)) { ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Object %p is NS handle\n", Object)); @@ -605,7 +600,6 @@ AcpiUtUpdateObjectReference ( * Note: There can be null elements within the package, * these are simply ignored */ - Status = AcpiUtCreateUpdateStateAndPush ( Object->Package.Elements[i], Action, &StateList); if (ACPI_FAILURE (Status)) @@ -703,7 +697,6 @@ AcpiUtUpdateObjectReference ( * happen after we update the sub-objects in case this causes the * main object to be deleted. */ - AcpiUtUpdateRefCount (Object, Action); @@ -741,7 +734,6 @@ AcpiUtAddReference ( /* * Ensure that we have a valid object */ - if (!AcpiUtValidInternalObject (Object)) { return_VOID; @@ -750,7 +742,6 @@ AcpiUtAddReference ( /* * We have a valid ACPI internal object, now increment the reference count */ - AcpiUtUpdateObjectReference (Object, REF_INCREMENT); return_VOID; @@ -780,7 +771,6 @@ AcpiUtRemoveReference ( /* * Ensure that we have a valid object */ - if (!AcpiUtValidInternalObject (Object)) { return_VOID; @@ -794,7 +784,6 @@ AcpiUtRemoveReference ( * if the reference count becomes 0. (Must also decrement the ref count * of all subobjects!) */ - AcpiUtUpdateObjectReference (Object, REF_DECREMENT); return_VOID; } diff --git a/sys/contrib/dev/acpica/uteval.c b/sys/contrib/dev/acpica/uteval.c index 57fbe75..67a8427 100644 --- a/sys/contrib/dev/acpica/uteval.c +++ b/sys/contrib/dev/acpica/uteval.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: uteval - Object evaluation - * $Revision: 29 $ + * $Revision: 30 $ * *****************************************************************************/ @@ -162,12 +162,12 @@ AcpiUtEvaluateNumericObject ( { if (Status == AE_NOT_FOUND) { - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%s on %4.4s was not found\n", + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%s on %4.4s was not found\n", ObjectName, &DeviceNode->Name)); } else { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "%s on %4.4s failed with status %s\n", + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "%s on %4.4s failed with status %s\n", ObjectName, &DeviceNode->Name, AcpiFormatException (Status))); } @@ -180,7 +180,7 @@ AcpiUtEvaluateNumericObject ( if (!ObjDesc) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from %s\n", + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from %s\n", ObjectName)); return_ACPI_STATUS (AE_TYPE); } @@ -190,7 +190,7 @@ AcpiUtEvaluateNumericObject ( if (ObjDesc->Common.Type != ACPI_TYPE_INTEGER) { Status = AE_TYPE; - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Type returned from %s was not a number: %X \n", ObjectName, ObjDesc->Common.Type)); } diff --git a/sys/contrib/dev/acpica/utglobal.c b/sys/contrib/dev/acpica/utglobal.c index 7a8ba87..44f6f36 100644 --- a/sys/contrib/dev/acpica/utglobal.c +++ b/sys/contrib/dev/acpica/utglobal.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: utglobal - Global variables for the ACPI subsystem - * $Revision: 127 $ + * $Revision: 131 $ * *****************************************************************************/ @@ -128,7 +128,6 @@ MODULE_NAME ("utglobal") - /****************************************************************************** * * FUNCTION: AcpiFormatException @@ -145,7 +144,7 @@ const char * AcpiFormatException ( ACPI_STATUS Status) { - char *Exception = "UNKNOWN_STATUS_CODE"; + const char *Exception = "UNKNOWN_STATUS_CODE"; ACPI_STATUS SubStatus; @@ -239,10 +238,14 @@ UINT32 AcpiGbl_SystemFlags = 0; UINT32 AcpiGbl_StartupFlags = 0; /* System starts unitialized! */ + BOOLEAN AcpiGbl_Shutdown = TRUE; +const UINT8 AcpiGbl_DecodeTo8bit [8] = {1,2,4,8,16,32,64,128}; -UINT8 AcpiGbl_DecodeTo8bit [8] = {1,2,4,8,16,32,64,128}; +const NATIVE_CHAR *AcpiGbl_DbSleepStates[ACPI_NUM_SLEEP_STATES] = { + "\\_S0_","\\_S1_","\\_S2_","\\_S3_", + "\\_S4_","\\_S5_","\\_S4B"}; /****************************************************************************** @@ -263,7 +266,7 @@ UINT8 AcpiGbl_DecodeTo8bit [8] = {1,2,4,8,16,32,64,128}; * during the initialization sequence. */ -PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] = +const PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] = { {"_GPE", INTERNAL_TYPE_DEF_ANY}, {"_PR_", INTERNAL_TYPE_DEF_ANY}, @@ -284,7 +287,7 @@ PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] = * and the table is indexed by values of ACPI_OBJECT_TYPE */ -UINT8 AcpiGbl_NsProperties[] = +const UINT8 AcpiGbl_NsProperties[] = { NSP_NORMAL, /* 00 Any */ NSP_NORMAL, /* 01 Number */ @@ -327,10 +330,24 @@ UINT8 AcpiGbl_NsProperties[] = /* Hex to ASCII conversion table */ -NATIVE_CHAR AcpiGbl_HexToAscii[] = +const NATIVE_CHAR AcpiGbl_HexToAscii[] = {'0','1','2','3','4','5','6','7', '8','9','A','B','C','D','E','F'}; +/***************************************************************************** + * + * FUNCTION: AcpiUtHexToAsciiChar + * + * PARAMETERS: Integer - Contains the hex digit + * Position - bit position of the digit within the + * integer + * + * RETURN: Ascii character + * + * DESCRIPTION: Convert a hex digit to an ascii character + * + ****************************************************************************/ + UINT8 AcpiUtHexToAsciiChar ( ACPI_INTEGER Integer, @@ -340,6 +357,7 @@ AcpiUtHexToAsciiChar ( return (AcpiGbl_HexToAscii[(Integer >> Position) & 0xF]); } + /****************************************************************************** * * Table globals @@ -370,13 +388,10 @@ ACPI_TABLE_SUPPORT AcpiGbl_AcpiTableData[NUM_ACPI_TABLES] = #ifdef ACPI_DEBUG -/****************************************************************************** - * +/* * Strings and procedures used for debug only * - ******************************************************************************/ - -NATIVE_CHAR *MsgAcpiErrorBreak = "*** Break on ACPI_ERROR ***\n"; + */ /***************************************************************************** @@ -414,10 +429,10 @@ AcpiUtGetMutexName ( * indicatewhat type is actually going to be stored for this entry. */ -static NATIVE_CHAR AcpiGbl_BadType[] = "UNDEFINED"; -#define TYPE_NAME_LENGTH 9 /* Maximum length of each string */ +static const NATIVE_CHAR AcpiGbl_BadType[] = "UNDEFINED"; +#define TYPE_NAME_LENGTH 9 /* Maximum length of each string */ -static NATIVE_CHAR *AcpiGbl_NsTypeNames[] = /* printable names of ACPI types */ +static const NATIVE_CHAR *AcpiGbl_NsTypeNames[] = /* printable names of ACPI types */ { /* 00 */ "Untyped", /* 01 */ "Integer", @@ -477,16 +492,16 @@ AcpiUtGetTypeName ( if (Type > INTERNAL_TYPE_INVALID) { - return (AcpiGbl_BadType); + return ((NATIVE_CHAR *) AcpiGbl_BadType); } - return (AcpiGbl_NsTypeNames[Type]); + return ((NATIVE_CHAR *) AcpiGbl_NsTypeNames[Type]); } /* Region type decoding */ -NATIVE_CHAR *AcpiGbl_RegionTypes[NUM_REGION_TYPES] = +const NATIVE_CHAR *AcpiGbl_RegionTypes[NUM_REGION_TYPES] = { "SystemMemory", "SystemIO", @@ -525,20 +540,20 @@ AcpiUtGetRegionName ( return ("InvalidSpaceID"); } - return (AcpiGbl_RegionTypes[SpaceId]); + return ((NATIVE_CHAR *) AcpiGbl_RegionTypes[SpaceId]); } /* Data used in keeping track of fields */ -NATIVE_CHAR *AcpiGbl_FENames[NUM_FIELD_NAMES] = +const NATIVE_CHAR *AcpiGbl_FENames[NUM_FIELD_NAMES] = { "skip", "?access?" }; /* FE = Field Element */ -NATIVE_CHAR *AcpiGbl_MatchOps[NUM_MATCH_OPS] = +const NATIVE_CHAR *AcpiGbl_MatchOps[NUM_MATCH_OPS] = { "Error", "MTR", @@ -552,7 +567,7 @@ NATIVE_CHAR *AcpiGbl_MatchOps[NUM_MATCH_OPS] = /* Access type decoding */ -NATIVE_CHAR *AcpiGbl_AccessTypes[NUM_ACCESS_TYPES] = +const NATIVE_CHAR *AcpiGbl_AccessTypes[NUM_ACCESS_TYPES] = { "AnyAcc", "ByteAcc", @@ -566,7 +581,7 @@ NATIVE_CHAR *AcpiGbl_AccessTypes[NUM_ACCESS_TYPES] = /* Update rule decoding */ -NATIVE_CHAR *AcpiGbl_UpdateRules[NUM_UPDATE_RULES] = +const NATIVE_CHAR *AcpiGbl_UpdateRules[NUM_UPDATE_RULES] = { "Preserve", "WriteAsOnes", @@ -681,25 +696,22 @@ AcpiUtInitGlobals ( FUNCTION_TRACE ("UtInitGlobals"); - - /* Memory allocation and cache lists */ - MEMSET (AcpiGbl_MemoryLists, 0, - sizeof (ACPI_MEMORY_LIST) * ACPI_NUM_MEM_LISTS); + MEMSET (AcpiGbl_MemoryLists, 0, sizeof (ACPI_MEMORY_LIST) * ACPI_NUM_MEM_LISTS); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_GENERIC_STATE *) NULL)->Common.Next); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_PARSE_OBJECT *) NULL)->Next); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_PARSE2_OBJECT *) NULL)->Next); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_OPERAND_OBJECT *) NULL)->Cache.Next); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_WALK_STATE *) NULL)->Next); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_GENERIC_STATE *) NULL)->Common.Next); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_PARSE_OBJECT *) NULL)->Next); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_PARSE2_OBJECT *) NULL)->Next); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_OPERAND_OBJECT *) NULL)->Cache.Next); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].LinkOffset = (UINT16) (NATIVE_UINT) &(((ACPI_WALK_STATE *) NULL)->Next); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_NSNODE].ObjectSize = sizeof (ACPI_NAMESPACE_NODE); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].ObjectSize = sizeof (ACPI_GENERIC_STATE); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].ObjectSize = sizeof (ACPI_PARSE_OBJECT); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].ObjectSize = sizeof (ACPI_PARSE2_OBJECT); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].ObjectSize = sizeof (ACPI_OPERAND_OBJECT); - AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].ObjectSize = sizeof (ACPI_WALK_STATE); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_NSNODE].ObjectSize = sizeof (ACPI_NAMESPACE_NODE); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].ObjectSize = sizeof (ACPI_GENERIC_STATE); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].ObjectSize = sizeof (ACPI_PARSE_OBJECT); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].ObjectSize = sizeof (ACPI_PARSE2_OBJECT); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].ObjectSize = sizeof (ACPI_OPERAND_OBJECT); + AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].ObjectSize = sizeof (ACPI_WALK_STATE); AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].MaxCacheDepth = MAX_STATE_CACHE_DEPTH; AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].MaxCacheDepth = MAX_PARSE_CACHE_DEPTH; @@ -707,14 +719,13 @@ AcpiUtInitGlobals ( AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].MaxCacheDepth = MAX_OBJECT_CACHE_DEPTH; AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].MaxCacheDepth = MAX_WALK_CACHE_DEPTH; - - ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_GLOBAL].ListName = "Global Memory Allocation"); - ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_NSNODE].ListName = "Namespace Nodes"); - ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].ListName = "State Object Cache"); - ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].ListName = "Parse Node Cache"); - ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].ListName = "Extended Parse Node Cache"); - ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].ListName = "Operand Object Cache"); - ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].ListName = "Tree Walk Node Cache"); + ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_GLOBAL].ListName = "Global Memory Allocation"); + ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_NSNODE].ListName = "Namespace Nodes"); + ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].ListName = "State Object Cache"); + ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].ListName = "Parse Node Cache"); + ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].ListName = "Extended Parse Node Cache"); + ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].ListName = "Operand Object Cache"); + ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].ListName = "Tree Walk Node Cache"); /* ACPI table structure */ @@ -759,7 +770,6 @@ AcpiUtInitGlobals ( AcpiGbl_FADT = NULL; AcpiGbl_DSDT = NULL; - /* Global Lock support */ AcpiGbl_GlobalLockAcquired = FALSE; @@ -780,7 +790,6 @@ AcpiUtInitGlobals ( AcpiGbl_NextMethodOwnerId = FIRST_METHOD_ID; AcpiGbl_DebuggerConfiguration = DEBUGGER_THREADING; - /* Hardware oriented */ AcpiGbl_Gpe0EnableRegisterSave = NULL; @@ -802,6 +811,10 @@ AcpiUtInitGlobals ( AcpiGbl_RootNodeStruct.Flags = ANOBJ_END_OF_PEER_LIST; +#ifdef ACPI_DEBUG + AcpiGbl_LowestStackPointer = ACPI_UINT32_MAX; +#endif + return_VOID; } diff --git a/sys/contrib/dev/acpica/utinit.c b/sys/contrib/dev/acpica/utinit.c index 64e995f..bf1511f 100644 --- a/sys/contrib/dev/acpica/utinit.c +++ b/sys/contrib/dev/acpica/utinit.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: utinit - Common ACPI subsystem initialization - * $Revision: 99 $ + * $Revision: 101 $ * *****************************************************************************/ @@ -131,6 +131,7 @@ #define ACPI_OFFSET(d,o) ((UINT32) &(((d *)0)->o)) #define ACPI_FADT_OFFSET(o) ACPI_OFFSET (FADT_DESCRIPTOR, o) + /******************************************************************************* * * FUNCTION: AcpiUtFadtRegisterError @@ -185,7 +186,6 @@ AcpiUtValidateFadt ( * Verify Fixed ACPI Description Table fields, * but don't abort on any problems, just display error */ - if (AcpiGbl_FADT->Pm1EvtLen < 4) { Status = AcpiUtFadtRegisterError ("PM1_EVT_LEN", @@ -234,7 +234,6 @@ AcpiUtValidateFadt ( /* length of GPE blocks must be a multiple of 2 */ - if (ACPI_VALID_ADDRESS (AcpiGbl_FADT->XGpe0Blk.Address) && (AcpiGbl_FADT->Gpe0BlkLen & 1)) { diff --git a/sys/contrib/dev/acpica/utmisc.c b/sys/contrib/dev/acpica/utmisc.c index dddbe27..a9e9e45 100644 --- a/sys/contrib/dev/acpica/utmisc.c +++ b/sys/contrib/dev/acpica/utmisc.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: utmisc - common utility procedures - * $Revision: 46 $ + * $Revision: 50 $ * ******************************************************************************/ @@ -153,6 +153,9 @@ AcpiUtValidAcpiName ( UINT32 i; + FUNCTION_ENTRY (); + + for (i = 0; i < ACPI_NAME_SIZE; i++) { if (!((NamePtr[i] == '_') || @@ -163,7 +166,6 @@ AcpiUtValidAcpiName ( } } - return (TRUE); } @@ -185,11 +187,14 @@ AcpiUtValidAcpiCharacter ( NATIVE_CHAR Character) { + FUNCTION_ENTRY (); + return ((BOOLEAN) ((Character == '_') || (Character >= 'A' && Character <= 'Z') || (Character >= '0' && Character <= '9'))); } + /******************************************************************************* * * FUNCTION: AcpiUtStrupr @@ -209,6 +214,9 @@ AcpiUtStrupr ( NATIVE_CHAR *String; + FUNCTION_ENTRY (); + + /* Walk entire string, uppercasing the letters */ for (String = SrcString; *String; ) @@ -576,6 +584,9 @@ AcpiUtCreateUpdateStateAndPush ( ACPI_GENERIC_STATE *State; + FUNCTION_ENTRY (); + + /* Ignore null objects; these are expected */ if (!Object) @@ -619,6 +630,9 @@ AcpiUtCreatePkgStateAndPush ( ACPI_GENERIC_STATE *State; + FUNCTION_ENTRY (); + + State = AcpiUtCreatePkgState (InternalObject, ExternalObject, Index); if (!State) { @@ -651,6 +665,7 @@ AcpiUtPushGenericState ( { FUNCTION_TRACE ("UtPushGenericState"); + /* Push the state object onto the front of the list (stack) */ State->Common.Next = *ListHead; @@ -679,7 +694,7 @@ AcpiUtPopGenericState ( ACPI_GENERIC_STATE *State; - FUNCTION_TRACE ("DsPopGenericState"); + FUNCTION_TRACE ("UtPopGenericState"); /* Remove the state object at the head of the list (stack) */ @@ -715,6 +730,9 @@ AcpiUtCreateGenericState (void) ACPI_GENERIC_STATE *State; + FUNCTION_ENTRY (); + + State = AcpiUtAcquireFromCache (ACPI_MEM_LIST_STATE); /* Initialize */ @@ -841,6 +859,7 @@ AcpiUtCreateControlState ( FUNCTION_TRACE ("UtCreateControlState"); + /* Create the generic state object */ State = AcpiUtCreateGenericState (); @@ -928,7 +947,7 @@ AcpiUtResolvePackageReferences ( ACPI_OPERAND_OBJECT *SubObject; - FUNCTION_TRACE ("AcpiUtResolvePackageReferences"); + FUNCTION_TRACE ("UtResolvePackageReferences"); if (ObjDesc->Common.Type != ACPI_TYPE_PACKAGE) @@ -996,7 +1015,7 @@ AcpiUtDisplayInitPathname ( char Buffer[128]; - PROC_NAME ("AcpiUtDisplayInitPathname"); + PROC_NAME ("UtDisplayInitPathname"); Status = AcpiNsHandleToPathname (ObjHandle, &Length, Buffer); @@ -1040,7 +1059,7 @@ AcpiUtWalkPackageTree ( ACPI_OPERAND_OBJECT *ThisSourceObj; - FUNCTION_TRACE ("AcpiUtWalkPackageTree"); + FUNCTION_TRACE ("UtWalkPackageTree"); State = AcpiUtCreatePkgState (SourceObject, TargetObject, 0); @@ -1149,13 +1168,12 @@ AcpiUtWalkPackageTree ( /* We should never get here */ return (AE_AML_INTERNAL); - } /******************************************************************************* * - * FUNCTION: _ReportError + * FUNCTION: AcpiUtReportError * * PARAMETERS: ModuleName - Caller's module name (for error output) * LineNumber - Caller's line number (for error output) @@ -1169,7 +1187,7 @@ AcpiUtWalkPackageTree ( ******************************************************************************/ void -_ReportError ( +AcpiUtReportError ( NATIVE_CHAR *ModuleName, UINT32 LineNumber, UINT32 ComponentId) @@ -1182,7 +1200,7 @@ _ReportError ( /******************************************************************************* * - * FUNCTION: _ReportWarning + * FUNCTION: AcpiUtReportWarning * * PARAMETERS: ModuleName - Caller's module name (for error output) * LineNumber - Caller's line number (for error output) @@ -1196,7 +1214,7 @@ _ReportError ( ******************************************************************************/ void -_ReportWarning ( +AcpiUtReportWarning ( NATIVE_CHAR *ModuleName, UINT32 LineNumber, UINT32 ComponentId) @@ -1208,7 +1226,7 @@ _ReportWarning ( /******************************************************************************* * - * FUNCTION: _ReportInfo + * FUNCTION: AcpiUtReportInfo * * PARAMETERS: ModuleName - Caller's module name (for error output) * LineNumber - Caller's line number (for error output) @@ -1222,7 +1240,7 @@ _ReportWarning ( ******************************************************************************/ void -_ReportInfo ( +AcpiUtReportInfo ( NATIVE_CHAR *ModuleName, UINT32 LineNumber, UINT32 ComponentId) diff --git a/sys/contrib/dev/acpica/utobject.c b/sys/contrib/dev/acpica/utobject.c index 9442bbd..fcd214f 100644 --- a/sys/contrib/dev/acpica/utobject.c +++ b/sys/contrib/dev/acpica/utobject.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: utobject - ACPI object create/delete/size/cache routines - * $Revision: 51 $ + * $Revision: 54 $ * *****************************************************************************/ @@ -129,7 +129,7 @@ /******************************************************************************* * - * FUNCTION: _UtCreateInternalObject + * FUNCTION: AcpiUtCreateInternalObjectDbg * * PARAMETERS: Address - Address of the memory to deallocate * Component - Component type of caller @@ -150,7 +150,7 @@ ******************************************************************************/ ACPI_OPERAND_OBJECT * -_UtCreateInternalObject ( +AcpiUtCreateInternalObjectDbg ( NATIVE_CHAR *ModuleName, UINT32 LineNumber, UINT32 ComponentId, @@ -159,12 +159,12 @@ _UtCreateInternalObject ( ACPI_OPERAND_OBJECT *Object; - FUNCTION_TRACE_STR ("UtCreateInternalObject", AcpiUtGetTypeName (Type)); + FUNCTION_TRACE_STR ("UtCreateInternalObjectDbg", AcpiUtGetTypeName (Type)); /* Allocate the raw object descriptor */ - Object = _UtAllocateObjectDesc (ModuleName, LineNumber, ComponentId); + Object = AcpiUtAllocateObjectDescDbg (ModuleName, LineNumber, ComponentId); if (!Object) { /* Allocation failure */ @@ -257,7 +257,7 @@ AcpiUtValidInternalObject ( /******************************************************************************* * - * FUNCTION: _UtAllocateObjectDesc + * FUNCTION: AcpiUtAllocateObjectDescDbg * * PARAMETERS: ModuleName - Caller's module name (for error output) * LineNumber - Caller's line number (for error output) @@ -272,7 +272,7 @@ AcpiUtValidInternalObject ( ******************************************************************************/ void * -_UtAllocateObjectDesc ( +AcpiUtAllocateObjectDescDbg ( NATIVE_CHAR *ModuleName, UINT32 LineNumber, UINT32 ComponentId) @@ -280,7 +280,7 @@ _UtAllocateObjectDesc ( ACPI_OPERAND_OBJECT *Object; - FUNCTION_TRACE ("_AllocateObjectDesc"); + FUNCTION_TRACE ("UtAllocateObjectDescDbg"); Object = AcpiUtAcquireFromCache (ACPI_MEM_LIST_OPERAND); @@ -320,7 +320,7 @@ void AcpiUtDeleteObjectDesc ( ACPI_OPERAND_OBJECT *Object) { - FUNCTION_TRACE_PTR ("AcpiUtDeleteObjectDesc", Object); + FUNCTION_TRACE_PTR ("UtDeleteObjectDesc", Object); /* Object must be an ACPI_OPERAND_OBJECT */ @@ -674,6 +674,9 @@ AcpiUtGetObjectSize( ACPI_STATUS Status; + FUNCTION_ENTRY (); + + if ((VALID_DESCRIPTOR_TYPE (InternalObject, ACPI_DESC_TYPE_INTERNAL)) && (IS_THIS_OBJECT_TYPE (InternalObject, ACPI_TYPE_PACKAGE))) { diff --git a/sys/contrib/dev/acpica/utxface.c b/sys/contrib/dev/acpica/utxface.c index 48d569b..f74678c 100644 --- a/sys/contrib/dev/acpica/utxface.c +++ b/sys/contrib/dev/acpica/utxface.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: utxface - External interfaces for "global" ACPI functions - * $Revision: 77 $ + * $Revision: 80 $ * *****************************************************************************/ @@ -153,6 +153,9 @@ AcpiInitializeSubsystem ( FUNCTION_TRACE ("AcpiInitializeSubsystem"); + DEBUG_EXEC(AcpiUtInitStackPtrTrace ()); + + /* Initialize all globals used by the subsystem */ AcpiUtInitGlobals (); @@ -235,7 +238,6 @@ AcpiEnableSubsystem ( * installed unless other handlers have already been * installed via the InstallAddressSpaceHandler interface */ - if (!(Flags & ACPI_NO_ADDRESS_SPACE_INIT)) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Installing default address space handlers\n")); @@ -250,7 +252,6 @@ AcpiEnableSubsystem ( /* * We must initialize the hardware before we can enable ACPI. */ - if (!(Flags & ACPI_NO_HARDWARE_INIT)) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Initializing ACPI hardware\n")); @@ -265,7 +266,6 @@ AcpiEnableSubsystem ( /* * Enable ACPI on this platform */ - if (!(Flags & ACPI_NO_ACPI_ENABLE)) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Going into ACPI mode\n")); @@ -284,7 +284,6 @@ AcpiEnableSubsystem ( * ANY control methods SAFELY. Any control method can require ACPI hardware * support, so the hardware MUST be initialized before execution! */ - if (!(Flags & ACPI_NO_EVENT_INIT)) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Initializing ACPI events\n")); @@ -301,7 +300,6 @@ AcpiEnableSubsystem ( * Initialize all device objects in the namespace * This runs the _STA and _INI methods. */ - if (!(Flags & ACPI_NO_DEVICE_INIT)) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Initializing ACPI Devices\n")); @@ -319,7 +317,6 @@ AcpiEnableSubsystem ( * runs the executable AML that is part of the declaration of OpRegions * and Fields. */ - if (!(Flags & ACPI_NO_OBJECT_INIT)) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Initializing ACPI Objects\n")); -- cgit v1.1