svn commit: r342056 - in head/sys/contrib/dev/acpica: . common compiler components/dispatcher components/executer components/namespace components/parser components/utilities include
Jung-uk Kim
jkim at FreeBSD.org
Fri Dec 14 00:40:44 UTC 2018
Author: jkim
Date: Fri Dec 14 00:40:38 2018
New Revision: 342056
URL: https://svnweb.freebsd.org/changeset/base/342056
Log:
MFV: r342049
Merge ACPICA 20181213.
Modified:
head/sys/contrib/dev/acpica/changes.txt
head/sys/contrib/dev/acpica/common/ahpredef.c
head/sys/contrib/dev/acpica/common/dmswitch.c
head/sys/contrib/dev/acpica/compiler/aslcodegen.c
head/sys/contrib/dev/acpica/compiler/aslcompile.c
head/sys/contrib/dev/acpica/compiler/aslcompiler.h
head/sys/contrib/dev/acpica/compiler/aslerror.c
head/sys/contrib/dev/acpica/compiler/aslglobal.h
head/sys/contrib/dev/acpica/compiler/aslhelp.c
head/sys/contrib/dev/acpica/compiler/asllength.c
head/sys/contrib/dev/acpica/compiler/aslopcodes.c
head/sys/contrib/dev/acpica/compiler/asloptions.c
head/sys/contrib/dev/acpica/compiler/asltransform.c
head/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c
head/sys/contrib/dev/acpica/components/dispatcher/dsobject.c
head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c
head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c
head/sys/contrib/dev/acpica/components/dispatcher/dswload.c
head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c
head/sys/contrib/dev/acpica/components/dispatcher/dswstate.c
head/sys/contrib/dev/acpica/components/executer/exconvrt.c
head/sys/contrib/dev/acpica/components/executer/excreate.c
head/sys/contrib/dev/acpica/components/executer/exoparg2.c
head/sys/contrib/dev/acpica/components/executer/exserial.c
head/sys/contrib/dev/acpica/components/executer/exutils.c
head/sys/contrib/dev/acpica/components/namespace/nseval.c
head/sys/contrib/dev/acpica/components/namespace/nsload.c
head/sys/contrib/dev/acpica/components/namespace/nsparse.c
head/sys/contrib/dev/acpica/components/parser/psloop.c
head/sys/contrib/dev/acpica/components/parser/psparse.c
head/sys/contrib/dev/acpica/components/parser/psxface.c
head/sys/contrib/dev/acpica/components/utilities/utglobal.c
head/sys/contrib/dev/acpica/components/utilities/utmisc.c
head/sys/contrib/dev/acpica/components/utilities/utosi.c
head/sys/contrib/dev/acpica/include/acglobal.h
head/sys/contrib/dev/acpica/include/acoutput.h
head/sys/contrib/dev/acpica/include/acpixf.h
head/sys/contrib/dev/acpica/include/acstruct.h
head/sys/contrib/dev/acpica/include/actbl.h
head/sys/contrib/dev/acpica/include/actypes.h
Directory Properties:
head/sys/contrib/dev/acpica/ (props changed)
Modified: head/sys/contrib/dev/acpica/changes.txt
==============================================================================
--- head/sys/contrib/dev/acpica/changes.txt Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/changes.txt Fri Dec 14 00:40:38 2018 (r342056)
@@ -1,7 +1,68 @@
----------------------------------------
-31 October 2018. Summary of changes for version 20181031:
+13 December 2018. Summary of changes for version 20181213:
-This release is available at https://acpica.org/downloads
+
+1) ACPICA Kernel-resident Subsystem:
+
+Fixed some buffer length issues with the GenericSerialBus, related to two
+of the bidirectional protocols: AttribRawProcessBytes and AttribRawBytes,
+which are rarely seen in the field. For these, the LEN field of the ASL
+buffer is now ignored. Hans de Goede
+
+Implemented a new object evaluation trace mechanism for control methods
+and data objects. This includes nested control methods. It is
+particularly useful for examining the ACPI execution during system
+initialization since the output is relatively terse. The flag below
+enables the output of the trace via the ACPI_DEBUG_PRINT_RAW interface:
+ #define ACPI_LV_EVALUATION 0x00080000
+
+Examples:
+ Enter evaluation : _SB.PCI0._INI (Method)
+ Exit evaluation : _SB.PCI0._INI
+ Enter evaluation : _OSI (Method)
+ Exit evaluation : _OSI
+ Enter evaluation : _SB.PCI0.TEST (Method)
+ Nested method call : _SB.PCI0.NST1
+ Exit nested method : _SB.PCI0.NST1
+ Exit evaluation : _SB.PCI0.TEST
+
+Added two recently-defined _OSI strings. See
+https://docs.microsoft.com/en-us/windows-hardware/drivers/acpi/winacpi-
+osi.
+ "Windows 2018"
+ "Windows 2018.2"
+
+Update for buffer-to-string conversions via the ToHexString ASL operator.
+A "0x" is now prepended to each of the hex values in the output string.
+This provides compatibility with other ACPI implementations. The ACPI
+specification is somewhat vague on this issue.
+ Example output string after conversion:
+"0x01,0x02,0x03,0x04,0x05,0x06"
+
+Return a run-time error for TermArg expressions within individual package
+elements. Although this is technically supported by the ASL grammar,
+other ACPI implementations do not support this either. Also, this fixes a
+fault if this type of construct is ever encountered (it never has been).
+
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL: Implemented a new compile option (-ww) that will promote individual
+warnings and remarks to errors. This is intended to enhance the firmware
+build process.
+
+AcpiExec: Implemented a new command-line option (-eo) to support the new
+object evaluation trace mechanism described above.
+
+Disassembler: Added support to disassemble OEMx tables as AML/ASL tables
+instead of a "unknown table" message.
+
+AcpiHelp: Improved support for the "special" predefined names such as
+_Lxx, _Exx, _EJx, _T_x, etc. For these, any legal hex value can now be
+used for "xx" and "x".
+
+----------------------------------------
+31 October 2018. Summary of changes for version 20181031:
An Operation Region regression was fixed by properly adding address
Modified: head/sys/contrib/dev/acpica/common/ahpredef.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/ahpredef.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/common/ahpredef.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -171,7 +171,7 @@
*/
const AH_PREDEFINED_NAME AslPredefinedInfo[] =
{
- AH_PREDEF ("_ACx", "Active Cooling", "Returns the active cooling policy threshold values"),
+ AH_PREDEF ("_ACx", "Active Cooling, x=0-9", "Returns the active cooling policy threshold values"),
AH_PREDEF ("_ADR", "Address", "Returns address of a device on parent bus, and resource field"),
AH_PREDEF ("_AEI", "ACPI Event Interrupts", "Returns a list of GPIO events to be used as ACPI events"),
AH_PREDEF ("_ALC", "Ambient Light Chromaticity", "Returns the ambient light color chromaticity"),
@@ -180,7 +180,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_ALP", "Ambient Light Polling", "Returns the ambient light sensor polling frequency"),
AH_PREDEF ("_ALR", "Ambient Light Response", "Returns the ambient light brightness to display brightness mappings"),
AH_PREDEF ("_ALT", "Ambient Light Temperature", "Returns the ambient light color temperature"),
- AH_PREDEF ("_ALx", "Active List", "Returns a list of active cooling device objects"),
+ AH_PREDEF ("_ALx", "Active List, x=0-9", "Returns a list of active cooling device objects"),
AH_PREDEF ("_ART", "Active Cooling Relationship Table", "Returns thermal relationship information between platform devices and fan devices"),
AH_PREDEF ("_ASI", "Address Space Id", "Resource Descriptor field"),
AH_PREDEF ("_ASZ", "Access Size", "Resource Descriptor field"),
@@ -237,11 +237,11 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_DSS", "Device Set State", "Sets the display device state"),
AH_PREDEF ("_DSW", "Device Sleep Wake", "Sets the sleep and wake transition states for a device"),
AH_PREDEF ("_DTI", "Device Temperature Indication", "Conveys native device temperature to the platform"),
- AH_PREDEF ("_Exx", "Edge-Triggered GPE", "Method executed as a result of a general-purpose event"),
+ AH_PREDEF ("_Exx", "Edge-Triggered GPE, xx=0x00-0xFF", "Method executed as a result of a general-purpose event"),
AH_PREDEF ("_EC_", "Embedded Controller", "returns EC offset and query information"),
AH_PREDEF ("_EDL", "Eject Device List", "Returns a list of devices that are dependent on a device (docking)"),
AH_PREDEF ("_EJD", "Ejection Dependent Device", "Returns the name of dependent (parent) device (docking)"),
- AH_PREDEF ("_EJx", "Eject Device", "Begin or cancel a device ejection request (docking)"),
+ AH_PREDEF ("_EJx", "Eject Device, x=0-9", "Begin or cancel a device ejection request (docking)"),
AH_PREDEF ("_END", "Endianness", "Endian orientation, Resource Descriptor field"),
AH_PREDEF ("_EVT", "Event", "Event method for GPIO events"),
AH_PREDEF ("_FDE", "Floppy Disk Enumerate", "Returns floppy disk configuration information"),
@@ -281,7 +281,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_INT", "Interrupts", "Interrupt mask bits, Resource Descriptor field"),
AH_PREDEF ("_IOR", "I/O Restriction", "Restriction type, Resource Descriptor field"),
AH_PREDEF ("_IRC", "Inrush Current", "Presence indicates that a device has a significant inrush current draw"),
- AH_PREDEF ("_Lxx", "Level-Triggered GPE", "Control method executed as a result of a general-purpose event"),
+ AH_PREDEF ("_Lxx", "Level-Triggered GPE, xx=0x00-0xFF", "Control method executed as a result of a general-purpose event"),
AH_PREDEF ("_LCK", "Lock Device", "Locks or unlocks a device (docking)"),
AH_PREDEF ("_LEN", "Length", "Range length, Resource Descriptor field"),
AH_PREDEF ("_LID", "Lid Status", "Returns the open/closed status of the lid on a mobile system"),
@@ -358,7 +358,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_PTS", "Prepare To Sleep", "Inform the platform of an impending sleep transition"),
AH_PREDEF ("_PUR", "Processor Utilization Request", "Returns the number of processors that the platform would like to idle"),
AH_PREDEF ("_PXM", "Device Proximity", "Returns a device's proximity domain identifier"),
- AH_PREDEF ("_Qxx", "EC Query", "Embedded Controller query and SMBus Alarm control method"),
+ AH_PREDEF ("_Qxx", "EC Query, xx=0x00-0xFF", "Embedded Controller query and SMBus Alarm control method"),
AH_PREDEF ("_RBO", "Register Bit Offset", "Resource Descriptor field"),
AH_PREDEF ("_RBW", "Register Bit Width", "Resource Descriptor field"),
AH_PREDEF ("_RDI", "Resource Dependencies for Idle", "Returns a list of dependencies for idle states"),
@@ -413,7 +413,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_SUB", "Subsystem ID", "Returns the subsystem ID for a device"),
AH_PREDEF ("_SUN", "Slot User Number", "Returns the slot unique ID number"),
AH_PREDEF ("_SWS", "System Wake Source", "Returns the source event that caused the system to wake"),
- AH_PREDEF ("_T_x", "Emitted by ASL Compiler", "Reserved for use by ASL compilers"),
+ AH_PREDEF ("_T_x", "Emitted by ASL Compiler, x=0-9, A-Z", "Reserved for use by ASL compilers"),
AH_PREDEF ("_TC1", "Thermal Constant 1", "Returns TC1 for the passive cooling formula"),
AH_PREDEF ("_TC2", "Thermal Constant 2", "Returns TC2 for the passive cooling formula"),
AH_PREDEF ("_TDL", "T-State Depth Limit", "Returns the _TSS entry number of the lowest power throttling state"),
@@ -447,7 +447,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_VAL", "Pin Configuration Value", "Resource Descriptor field"),
AH_PREDEF ("_VEN", "Vendor Data", "Resource Descriptor field"),
AH_PREDEF ("_VPO", "Video Post Options", "Returns the implemented video post options"),
- AH_PREDEF ("_Wxx", "Wake Event", "Method executed as a result of a wake event"),
+ AH_PREDEF ("_Wxx", "Wake Event, xx=0x00-0xFF", "Method executed as a result of a wake event"),
AH_PREDEF ("_WAK", "Wake", "Inform AML that the system has just awakened"),
AH_PREDEF ("_WPC", "Wireless Power Calibration", "Calibrate power and notify wireless device"),
AH_PREDEF ("_WPP", "Wireless Power Polling", "Get recommended polling interval"),
Modified: head/sys/contrib/dev/acpica/common/dmswitch.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmswitch.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/common/dmswitch.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -325,6 +325,8 @@ AcpiDmClearTempList (
* FUNCTION: AcpiDmIsSwitchBlock
*
* PARAMETERS: Op - While Object
+ * Temp - Where the compiler temp name is returned
+ * (_T_x)
*
* RETURN: TRUE if While block can be converted to a Switch/Case block
*
@@ -550,6 +552,10 @@ AcpiDmIsSwitchBlock (
if (CurrentOp->Common.AmlOpcode == AML_ELSE_OP)
{
CurrentOp = CurrentOp->Common.Next;
+ if (!CurrentOp)
+ {
+ return (FALSE);
+ }
}
/* Ignore the Break Op */
Modified: head/sys/contrib/dev/acpica/compiler/aslcodegen.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslcodegen.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/aslcodegen.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -773,12 +773,6 @@ CgWriteNode (
return;
}
- if ((Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) &&
- AslGbl_DoExternals == FALSE)
- {
- return;
- }
-
Op->Asl.FinalAmlLength = 0;
switch (Op->Asl.AmlOpcode)
Modified: head/sys/contrib/dev/acpica/compiler/aslcompile.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslcompile.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/aslcompile.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -388,23 +388,20 @@ CmDoCompile (
/* Resolve External Declarations */
- if (AslGbl_DoExternals)
- {
- Event = UtBeginEvent ("Resolve all Externals");
- DbgPrint (ASL_DEBUG_OUTPUT, "\nResolve Externals\n\n");
+ Event = UtBeginEvent ("Resolve all Externals");
+ DbgPrint (ASL_DEBUG_OUTPUT, "\nResolve Externals\n\n");
- if (AslGbl_DoExternalsInPlace)
- {
- TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
- ExAmlExternalWalkBegin, NULL, NULL);
- }
- else
- {
- TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
- ExAmlExternalWalkBegin, ExAmlExternalWalkEnd, NULL);
- }
- UtEndEvent (Event);
+ if (AslGbl_DoExternalsInPlace)
+ {
+ TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD,
+ ExAmlExternalWalkBegin, NULL, NULL);
}
+ else
+ {
+ TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE,
+ ExAmlExternalWalkBegin, ExAmlExternalWalkEnd, NULL);
+ }
+ UtEndEvent (Event);
/*
* Semantic analysis. This can happen only after the
Modified: head/sys/contrib/dev/acpica/compiler/aslcompiler.h
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslcompiler.h Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/aslcompiler.h Fri Dec 14 00:40:38 2018 (r342056)
@@ -475,6 +475,10 @@ AslExpectException (
char *MessageIdString);
ACPI_STATUS
+AslElevateException (
+ char *MessageIdString);
+
+ACPI_STATUS
AslDisableException (
char *MessageIdString);
Modified: head/sys/contrib/dev/acpica/compiler/aslerror.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslerror.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/aslerror.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -201,7 +201,12 @@ AePrintSubError (
FILE *OutputFile,
ASL_ERROR_MSG *Enode);
+static UINT8
+GetModifiedLevel (
+ UINT8 Level,
+ UINT16 MessageId);
+
/*******************************************************************************
*
* FUNCTION: AslAbort
@@ -968,11 +973,12 @@ AslLogNewError (
ASL_ERROR_MSG *SubError)
{
ASL_ERROR_MSG *Enode = NULL;
+ UINT8 ModifiedLevel = GetModifiedLevel (Level, MessageId);
- AslInitEnode (&Enode, Level, MessageId, LineNumber, LogicalLineNumber,
- LogicalByteOffset, Column, Filename, Message, SourceLine,
- SubError);
+ AslInitEnode (&Enode, ModifiedLevel, MessageId, LineNumber,
+ LogicalLineNumber, LogicalByteOffset, Column, Filename, Message,
+ SourceLine, SubError);
/* Add the new node to the error node list */
@@ -985,7 +991,7 @@ AslLogNewError (
AePrintException (ASL_FILE_STDERR, Enode, NULL);
}
- AslGbl_ExceptionCount[Level]++;
+ AslGbl_ExceptionCount[ModifiedLevel]++;
if (AslGbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
{
printf ("\nMaximum error count (%u) exceeded\n", ASL_MAX_ERROR_COUNT);
@@ -999,8 +1005,46 @@ AslLogNewError (
return;
}
+
/*******************************************************************************
*
+ * FUNCTION: GetModifiedLevel
+ *
+ * PARAMETERS: Level - Seriousness (Warning/error, etc.)
+ * MessageId - Index into global message buffer
+ *
+ * RETURN: UINT8 - modified level
+ *
+ * DESCRIPTION: Get the modified level of exception codes that are reported as
+ * errors from the -ww option.
+ *
+ ******************************************************************************/
+
+static UINT8
+GetModifiedLevel (
+ UINT8 Level,
+ UINT16 MessageId)
+{
+ UINT16 i;
+ UINT16 ExceptionCode;
+
+
+ ExceptionCode = AeBuildFullExceptionCode (Level, MessageId);
+
+ for (i = 0; i < AslGbl_ElevatedMessagesIndex; i++)
+ {
+ if (ExceptionCode == AslGbl_ElevatedMessages[i])
+ {
+ return (ASL_ERROR);
+ }
+ }
+
+ return (Level);
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: AslIsExceptionIgnored
*
* PARAMETERS: Level - Seriousness (Warning/error, etc.)
@@ -1154,6 +1198,51 @@ AslDisableException (
return (AE_OK);
}
+
+/*******************************************************************************
+ *
+ * FUNCTION: AslElevateException
+ *
+ * PARAMETERS: MessageIdString - ID of excepted exception during compile
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Enter a message ID into the global elevated exceptions table.
+ * These messages will be considered as compilation errors.
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AslElevateException (
+ char *MessageIdString)
+{
+ UINT32 MessageId;
+
+
+ /* Convert argument to an integer and validate it */
+
+ MessageId = (UINT32) strtoul (MessageIdString, NULL, 0);
+
+ if (MessageId > 6999)
+ {
+ printf ("\"%s\" is not a valid warning/remark/erro ID\n",
+ MessageIdString);
+ return (AE_BAD_PARAMETER);
+ }
+
+ /* Insert value into the global expected message array */
+
+ if (AslGbl_ElevatedMessagesIndex >= ASL_MAX_ELEVATED_MESSAGES)
+ {
+ printf ("Too many messages have been registered as elevated (max %d)\n",
+ ASL_MAX_DISABLED_MESSAGES);
+ return (AE_LIMIT);
+ }
+
+ AslGbl_ElevatedMessages[AslGbl_ExpectedMessagesIndex] = MessageId;
+ AslGbl_ElevatedMessagesIndex++;
+ return (AE_OK);
+}
/*******************************************************************************
*
Modified: head/sys/contrib/dev/acpica/compiler/aslglobal.h
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslglobal.h Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/aslglobal.h Fri Dec 14 00:40:38 2018 (r342056)
@@ -255,6 +255,7 @@ extern int AslCompilerdebug;
#define ASL_STRING_BUFFER_SIZE (1024 * 32) /* 32k */
#define ASL_MAX_DISABLED_MESSAGES 32
#define ASL_MAX_EXPECTED_MESSAGES 32
+#define ASL_MAX_ELEVATED_MESSAGES 32
#define HEX_TABLE_LINE_SIZE 8
#define HEX_LISTING_LINE_SIZE 8
@@ -319,7 +320,6 @@ ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (A
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_PruneParseTree, FALSE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DoTypechecking, TRUE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_EnableReferenceTypechecking, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DoExternals, TRUE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DoExternalsInPlace, FALSE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DoAslConversion, FALSE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_OptimizeTrivialParseNodes, TRUE);
@@ -394,6 +394,7 @@ ASL_EXTERN UINT32 ASL_INIT_GLOBAL (A
ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_CurrentLine, 0);
ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_DisabledMessagesIndex, 0);
ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_ExpectedMessagesIndex, 0);
+ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_ElevatedMessagesIndex, 0);
ASL_EXTERN UINT8 ASL_INIT_GLOBAL (AslGbl_HexBytesWereWritten, FALSE);
ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_NumNamespaceObjects, 0);
ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_ReservedMethods, 0);
@@ -435,6 +436,7 @@ ASL_EXTERN char AslGbl_StringBuffe
ASL_EXTERN char AslGbl_StringBuffer2[ASL_STRING_BUFFER_SIZE];
ASL_EXTERN UINT32 AslGbl_DisabledMessages[ASL_MAX_DISABLED_MESSAGES];
ASL_EXTERN ASL_EXPECTED_MESSAGE AslGbl_ExpectedMessages[ASL_MAX_EXPECTED_MESSAGES];
+ASL_EXTERN UINT32 AslGbl_ElevatedMessages[ASL_MAX_ELEVATED_MESSAGES];
#endif /* __ASLGLOBAL_H */
Modified: head/sys/contrib/dev/acpica/compiler/aslhelp.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslhelp.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/aslhelp.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -208,6 +208,7 @@ Usage (
ACPI_OPTION ("-vx <messageid>", "Expect a specific warning, remark, or error");
ACPI_OPTION ("-w <1|2|3>", "Set warning reporting level");
ACPI_OPTION ("-we", "Report warnings as errors");
+ ACPI_OPTION ("-ww <messageid>", "Report specific warning or remark as error");
printf ("\nAML Bytecode Generation (*.aml):\n");
ACPI_OPTION ("-oa", "Disable all optimizations (compatibility mode)");
Modified: head/sys/contrib/dev/acpica/compiler/asllength.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/asllength.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/asllength.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -519,10 +519,7 @@ CgGenerateAmlLengths (
case PARSEOP_EXTERNAL:
- if (AslGbl_DoExternals == TRUE)
- {
- CgGenerateAmlOpcodeLength (Op);
- }
+ CgGenerateAmlOpcodeLength (Op);
break;
default:
Modified: head/sys/contrib/dev/acpica/compiler/aslopcodes.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslopcodes.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/aslopcodes.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -927,15 +927,6 @@ OpcGenerateAmlOpcode (
AslGbl_HasIncludeFiles = TRUE;
break;
- case PARSEOP_EXTERNAL:
-
- if (AslGbl_DoExternals == FALSE)
- {
- Op->Asl.Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- Op->Asl.Child->Asl.Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- }
- break;
-
case PARSEOP_TIMER:
if (AcpiGbl_IntegerBitWidth == 32)
Modified: head/sys/contrib/dev/acpica/compiler/asloptions.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/asloptions.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/asloptions.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -976,6 +976,23 @@ AslDoOptions (
AslGbl_WarningsAsErrors = TRUE;
break;
+ case 'w':
+
+ /* Get the required argument */
+
+ if (AcpiGetoptArgument (argc, argv))
+ {
+ return (-1);
+ }
+
+ Status = AslElevateException (AcpiGbl_Optarg);
+ if (ACPI_FAILURE (Status))
+ {
+ return (-1);
+ }
+ break;
+
+
default:
printf ("Unknown option: -w%s\n", AcpiGbl_Optarg);
Modified: head/sys/contrib/dev/acpica/compiler/asltransform.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/asltransform.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/compiler/asltransform.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -460,11 +460,7 @@ TrTransformSubtree (
case PARSEOP_EXTERNAL:
- if (AslGbl_DoExternals == TRUE)
- {
- ExDoExternal (Op);
- }
-
+ ExDoExternal (Op);
break;
case PARSEOP___METHOD__:
Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -720,6 +720,8 @@ AcpiDsCallControlMethod (
goto Cleanup;
}
+ NextWalkState->MethodNestingDepth = ThisWalkState->MethodNestingDepth + 1;
+
/*
* Delete the operands on the previous walkstate operand stack
* (they were copied to new objects)
@@ -737,6 +739,16 @@ AcpiDsCallControlMethod (
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
"**** Begin nested execution of [%4.4s] **** WalkState=%p\n",
MethodNode->Name.Ascii, NextWalkState));
+
+ ThisWalkState->MethodPathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE);
+ ThisWalkState->MethodIsNested = TRUE;
+
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION,
+ "%-26s: %*s%s\n", " Nested method call",
+ NextWalkState->MethodNestingDepth * 3, " ",
+ &ThisWalkState->MethodPathname[1]));
/* Invoke an internal method if necessary */
Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsobject.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/dispatcher/dsobject.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/dispatcher/dsobject.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -161,7 +161,6 @@
ACPI_MODULE_NAME ("dsobject")
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiDsBuildInternalObject
@@ -460,7 +459,6 @@ AcpiDsCreateNode (
return_ACPI_STATUS (Status);
}
-#endif /* ACPI_NO_METHOD_EXECUTION */
/*******************************************************************************
@@ -571,9 +569,7 @@ AcpiDsInitObjectFromOp (
/* Truncate value if we are executing from a 32-bit ACPI table */
-#ifndef ACPI_NO_METHOD_EXECUTION
(void) AcpiExTruncateFor32bitTable (ObjDesc);
-#endif
break;
case AML_REVISION_OP:
@@ -594,7 +590,6 @@ AcpiDsInitObjectFromOp (
ObjDesc->Integer.Value = Op->Common.Value.Integer;
-#ifndef ACPI_NO_METHOD_EXECUTION
if (AcpiExTruncateFor32bitTable (ObjDesc))
{
/* Warn if we found a 64-bit constant in a 32-bit table */
@@ -604,7 +599,6 @@ AcpiDsInitObjectFromOp (
ACPI_FORMAT_UINT64 (Op->Common.Value.Integer),
(UINT32) ObjDesc->Integer.Value));
}
-#endif
break;
default:
@@ -642,12 +636,10 @@ AcpiDsInitObjectFromOp (
ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_FIRST_LOCAL_OP;
ObjDesc->Reference.Class = ACPI_REFCLASS_LOCAL;
-#ifndef ACPI_NO_METHOD_EXECUTION
Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_LOCAL,
ObjDesc->Reference.Value, WalkState,
ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE,
&ObjDesc->Reference.Object));
-#endif
break;
case AML_TYPE_METHOD_ARGUMENT:
@@ -657,12 +649,10 @@ AcpiDsInitObjectFromOp (
ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_FIRST_ARG_OP;
ObjDesc->Reference.Class = ACPI_REFCLASS_ARG;
-#ifndef ACPI_NO_METHOD_EXECUTION
Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_ARG,
ObjDesc->Reference.Value, WalkState,
ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE,
&ObjDesc->Reference.Object));
-#endif
break;
default: /* Object name or Debug object */
Modified: head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -308,6 +308,32 @@ AcpiDsBuildInternalPackageObj (
{
if (Arg->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP)
{
+ if (!Arg->Common.Node)
+ {
+ /*
+ * This is the case where an expression has returned a value.
+ * The use of expressions (TermArgs) within individual
+ * package elements is not supported by the AML interpreter,
+ * even though the ASL grammar supports it. Example:
+ *
+ * Name (INT1, 0x1234)
+ *
+ * Name (PKG3, Package () {
+ * Add (INT1, 0xAAAA0000)
+ * })
+ *
+ * 1) No known AML interpreter supports this type of construct
+ * 2) This fixes a fault if the construct is encountered
+ */
+ ACPI_EXCEPTION ((AE_INFO, AE_SUPPORT,
+ "Expressions within package elements are not supported"));
+
+ /* Cleanup the return object, it is not needed */
+
+ AcpiUtRemoveReference (WalkState->Results->Results.ObjDesc[0]);
+ return_ACPI_STATUS (AE_SUPPORT);
+ }
+
if (Arg->Common.Node->Type == ACPI_TYPE_METHOD)
{
/*
Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -209,7 +209,6 @@ AcpiDsClearImplicitReturn (
}
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiDsDoImplicitReturn
@@ -583,7 +582,6 @@ AcpiDsClearOperands (
WalkState->NumOperands = 0;
return_VOID;
}
-#endif
/*******************************************************************************
Modified: head/sys/contrib/dev/acpica/components/dispatcher/dswload.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/dispatcher/dswload.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/dispatcher/dswload.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -221,12 +221,10 @@ AcpiDsInitCallbacks (
/* Execution pass */
-#ifndef ACPI_NO_METHOD_EXECUTION
WalkState->ParseFlags |= ACPI_PARSE_EXECUTE |
ACPI_PARSE_DELETE_TREE;
WalkState->DescendingCallback = AcpiDsExecBeginOp;
WalkState->AscendingCallback = AcpiDsExecEndOp;
-#endif
break;
default:
@@ -517,7 +515,7 @@ AcpiDsLoad1BeginOp (
/* Initialize the op */
-#if (defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY))
+#ifdef ACPI_CONSTANT_EVAL_ONLY
Op->Named.Path = Path;
#endif
@@ -580,7 +578,6 @@ AcpiDsLoad1EndOp (
ObjectType = WalkState->OpInfo->ObjectType;
-#ifndef ACPI_NO_METHOD_EXECUTION
if (WalkState->OpInfo->Flags & AML_FIELD)
{
/*
@@ -626,7 +623,6 @@ AcpiDsLoad1EndOp (
}
}
}
-#endif
if (Op->Common.AmlOpcode == AML_NAME_OP)
{
Modified: head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -529,10 +529,8 @@ AcpiDsLoad2EndOp (
ACPI_NAMESPACE_NODE *Node;
ACPI_PARSE_OBJECT *Arg;
ACPI_NAMESPACE_NODE *NewNode;
-#ifndef ACPI_NO_METHOD_EXECUTION
UINT32 i;
UINT8 RegionSpace;
-#endif
ACPI_FUNCTION_TRACE (DsLoad2EndOp);
@@ -622,7 +620,6 @@ AcpiDsLoad2EndOp (
switch (WalkState->OpInfo->Type)
{
-#ifndef ACPI_NO_METHOD_EXECUTION
case AML_TYPE_CREATE_FIELD:
/*
@@ -718,13 +715,11 @@ AcpiDsLoad2EndOp (
}
break;
-#endif /* ACPI_NO_METHOD_EXECUTION */
case AML_TYPE_NAMED_COMPLEX:
switch (Op->Common.AmlOpcode)
{
-#ifndef ACPI_NO_METHOD_EXECUTION
case AML_REGION_OP:
case AML_DATA_REGION_OP:
@@ -809,7 +804,6 @@ AcpiDsLoad2EndOp (
}
break;
-#endif /* ACPI_NO_METHOD_EXECUTION */
default:
Modified: head/sys/contrib/dev/acpica/components/dispatcher/dswstate.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/dispatcher/dswstate.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/dispatcher/dswstate.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -733,7 +733,7 @@ AcpiDsCreateWalkState (
/* Init the method args/local */
-#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
+#ifndef ACPI_CONSTANT_EVAL_ONLY
AcpiDsMethodDataInit (WalkState);
#endif
Modified: head/sys/contrib/dev/acpica/components/executer/exconvrt.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/executer/exconvrt.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/executer/exconvrt.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -496,7 +496,7 @@ AcpiExConvertToAscii (
/* HexLength: 2 ascii hex chars per data byte */
- HexLength = ACPI_MUL_2 (DataWidth);
+ HexLength = (DataWidth * 2);
for (i = 0, j = (HexLength-1); i < HexLength; i++, j--)
{
/* Get one hex digit, most significant digits first */
@@ -539,7 +539,8 @@ AcpiExConvertToAscii (
*
* RETURN: Status
*
- * DESCRIPTION: Convert an ACPI Object to a string
+ * DESCRIPTION: Convert an ACPI Object to a string. Supports both implicit
+ * and explicit conversions and related rules.
*
******************************************************************************/
@@ -574,9 +575,11 @@ AcpiExConvertToString (
switch (Type)
{
case ACPI_EXPLICIT_CONVERT_DECIMAL:
-
- /* Make room for maximum decimal number */
-
+ /*
+ * From ToDecimalString, integer source.
+ *
+ * Make room for the maximum decimal number size
+ */
StringLength = ACPI_MAX_DECIMAL_DIGITS;
Base = 10;
break;
@@ -620,8 +623,10 @@ AcpiExConvertToString (
{
case ACPI_EXPLICIT_CONVERT_DECIMAL: /* Used by ToDecimalString */
/*
- * From ACPI: "If Data is a buffer, it is converted to a string of
- * decimal values separated by commas."
+ * Explicit conversion from the ToDecimalString ASL operator.
+ *
+ * From ACPI: "If the input is a buffer, it is converted to a
+ * a string of decimal values separated by commas."
*/
Base = 10;
@@ -648,20 +653,29 @@ AcpiExConvertToString (
case ACPI_IMPLICIT_CONVERT_HEX:
/*
+ * Implicit buffer-to-string conversion
+ *
* From the ACPI spec:
- *"The entire contents of the buffer are converted to a string of
+ * "The entire contents of the buffer are converted to a string of
* two-character hexadecimal numbers, each separated by a space."
+ *
+ * Each hex number is prefixed with 0x (11/2018)
*/
Separator = ' ';
- StringLength = (ObjDesc->Buffer.Length * 3);
+ StringLength = (ObjDesc->Buffer.Length * 5);
break;
- case ACPI_EXPLICIT_CONVERT_HEX: /* Used by ToHexString */
+ case ACPI_EXPLICIT_CONVERT_HEX:
/*
+ * Explicit conversion from the ToHexString ASL operator.
+ *
* From ACPI: "If Data is a buffer, it is converted to a string of
* hexadecimal values separated by commas."
+ *
+ * Each hex number is prefixed with 0x (11/2018)
*/
- StringLength = (ObjDesc->Buffer.Length * 3);
+ Separator = ',';
+ StringLength = (ObjDesc->Buffer.Length * 5);
break;
default:
@@ -692,9 +706,20 @@ AcpiExConvertToString (
*/
for (i = 0; i < ObjDesc->Buffer.Length; i++)
{
+ if (Base == 16)
+ {
+ /* Emit 0x prefix for explict/implicit hex conversion */
+
+ *NewBuf++ = '0';
+ *NewBuf++ = 'x';
+ }
+
NewBuf += AcpiExConvertToAscii (
(UINT64) ObjDesc->Buffer.Pointer[i], Base, NewBuf, 1);
- *NewBuf++ = Separator; /* each separated by a comma or space */
+
+ /* Each digit is separated by either a comma or space */
+
+ *NewBuf++ = Separator;
}
/*
Modified: head/sys/contrib/dev/acpica/components/executer/excreate.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/executer/excreate.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/executer/excreate.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -161,7 +161,6 @@
ACPI_MODULE_NAME ("excreate")
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiExCreateAlias
@@ -573,7 +572,6 @@ AcpiExCreatePowerResource (
AcpiUtRemoveReference (ObjDesc);
return_ACPI_STATUS (Status);
}
-#endif
/*******************************************************************************
Modified: head/sys/contrib/dev/acpica/components/executer/exoparg2.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/executer/exoparg2.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/executer/exoparg2.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -460,9 +460,9 @@ AcpiExOpcode_2A_1T_1R (
* NOTE: A length of zero is ok, and will create a zero-length, null
* terminated string.
*/
- while ((Length < Operand[0]->Buffer.Length) &&
- (Length < Operand[1]->Integer.Value) &&
- (Operand[0]->Buffer.Pointer[Length]))
+ while ((Length < Operand[0]->Buffer.Length) && /* Length of input buffer */
+ (Length < Operand[1]->Integer.Value) && /* Length operand */
+ (Operand[0]->Buffer.Pointer[Length])) /* Null terminator */
{
Length++;
}
Modified: head/sys/contrib/dev/acpica/components/executer/exserial.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/executer/exserial.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/executer/exserial.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -445,14 +445,12 @@ AcpiExWriteSerialBus (
case ACPI_ADR_SPACE_SMBUS:
BufferLength = ACPI_SMBUS_BUFFER_SIZE;
- DataLength = ACPI_SMBUS_DATA_SIZE;
Function = ACPI_WRITE | (ObjDesc->Field.Attribute << 16);
break;
case ACPI_ADR_SPACE_IPMI:
BufferLength = ACPI_IPMI_BUFFER_SIZE;
- DataLength = ACPI_IPMI_DATA_SIZE;
Function = ACPI_WRITE;
break;
@@ -471,7 +469,6 @@ AcpiExWriteSerialBus (
/* Add header length to get the full size of the buffer */
BufferLength += ACPI_SERIAL_HEADER_SIZE;
- DataLength = SourceDesc->Buffer.Pointer[1];
Function = ACPI_WRITE | (AccessorType << 16);
break;
@@ -479,21 +476,6 @@ AcpiExWriteSerialBus (
return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID);
}
-#if 0
-OBSOLETE?
- /* Check for possible buffer overflow */
-
- if (DataLength > SourceDesc->Buffer.Length)
- {
- ACPI_ERROR ((AE_INFO,
- "Length in buffer header (%u)(%u) is greater than "
- "the physical buffer length (%u) and will overflow",
- DataLength, BufferLength, SourceDesc->Buffer.Length));
-
- return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
- }
-#endif
-
/* Create the transfer/bidirectional/return buffer */
BufferDesc = AcpiUtCreateBufferObject (BufferLength);
@@ -505,6 +487,8 @@ OBSOLETE?
/* Copy the input buffer data to the transfer buffer */
Buffer = BufferDesc->Buffer.Pointer;
+ DataLength = (BufferLength < SourceDesc->Buffer.Length ?
+ BufferLength : SourceDesc->Buffer.Length);
memcpy (Buffer, SourceDesc->Buffer.Pointer, DataLength);
/* Lock entire transaction if requested */
Modified: head/sys/contrib/dev/acpica/components/executer/exutils.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/executer/exutils.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/executer/exutils.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -181,7 +181,6 @@ AcpiExDigitsNeeded (
UINT32 Base);
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiExEnterInterpreter
@@ -615,4 +614,3 @@ AcpiIsValidSpaceId (
return (TRUE);
}
-#endif
Modified: head/sys/contrib/dev/acpica/components/namespace/nseval.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/namespace/nseval.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/namespace/nseval.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -259,6 +259,12 @@ AcpiNsEvaluate (
return_ACPI_STATUS (AE_NO_MEMORY);
}
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION,
+ "%-26s: %s (%s)\n", " Enter evaluation",
+ &Info->FullPathname[1], AcpiUtGetTypeName (Info->Node->Type)));
+
/* Count the number of arguments being passed in */
Info->ParamCount = 0;
@@ -445,6 +451,12 @@ AcpiNsEvaluate (
Info->RelativePathname));
Cleanup:
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION,
+ "%-26s: %s\n", " Exit evaluation",
+ &Info->FullPathname[1]));
+
/*
* Namespace was unlocked by the handling AcpiNs* function, so we
* just free the pathname and return
Modified: head/sys/contrib/dev/acpica/components/namespace/nsload.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/namespace/nsload.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/namespace/nsload.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -173,7 +173,6 @@ AcpiNsDeleteSubtree (
#endif
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiNsLoadTable
@@ -476,5 +475,4 @@ AcpiNsUnloadNamespace (
Status = AcpiNsDeleteSubtree (Handle);
return_ACPI_STATUS (Status);
}
-#endif
#endif
Modified: head/sys/contrib/dev/acpica/components/namespace/nsparse.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/namespace/nsparse.c Thu Dec 13 23:49:20 2018 (r342055)
+++ head/sys/contrib/dev/acpica/components/namespace/nsparse.c Fri Dec 14 00:40:38 2018 (r342056)
@@ -261,7 +261,17 @@ AcpiNsExecuteTable (
goto Cleanup;
}
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION,
+ "%-26s: (Definition Block level)\n", "Module-level evaluation"));
+
Status = AcpiPsExecuteTable (Info);
+
+ /* Optional object evaluation log */
+
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-all
mailing list