[PATCH] ACPICA: Update to version 20171214
Colin Ian King
colin.king at canonical.com
Fri Dec 15 07:35:39 UTC 2017
On 15/12/17 02:46, Alex Hung wrote:
> On 2017-12-15 06:55 AM, Colin King wrote:
>> From: Colin Ian King <colin.king at canonical.com>
>>
>> Changes in this release of ACPICA are detailed at the following
>> link on the ACPICA developer mailing list:
>>
>> https://lists.acpica.org/pipermail/devel/2017-December/001610.html
>
> I found a regression in this acpica release
> (https://lists.acpica.org/pipermail/devel/2017-December/001613.html),
> but I am not sure how it affects the rests of acpica.
>
> Will it be better that we skip this release or wait for developers of
> acpica to take a closer look?
Let's skip this for now. The delta for this release was small, so I
think we should pick up the next release.
Colin
>
>>
>> Signed-off-by: Colin Ian King <colin.king at canonical.com>
>> ---
>> src/acpica/source/common/adisasm.c | 6 +-
>> src/acpica/source/common/dmswitch.c | 4 +
>> src/acpica/source/common/dmtable.c | 1 -
>> src/acpica/source/common/dmtables.c | 4 +-
>> src/acpica/source/common/dmtbdump.c | 1 -
>> src/acpica/source/compiler/aslcodegen.c | 19 ++--
>> src/acpica/source/compiler/aslcompile.c | 2 +-
>> src/acpica/source/compiler/asldebug.c | 2 +-
>> src/acpica/source/compiler/aslfiles.c | 2 +-
>> src/acpica/source/compiler/aslparseop.c | 6 +-
>> src/acpica/source/compiler/aslstartup.c | 4 +-
>> src/acpica/source/compiler/aslsupport.l | 18 +--
>> src/acpica/source/compiler/asltree.c | 8 +-
>> src/acpica/source/compiler/aslutils.c | 2 +-
>> src/acpica/source/compiler/cvcompiler.c | 10 +-
>> src/acpica/source/compiler/cvdisasm.c | 4 +-
>> src/acpica/source/compiler/cvparser.c | 6 +-
>> src/acpica/source/compiler/dtcompile.c | 10 +-
>> src/acpica/source/compiler/dttable1.c | 10 +-
>> src/acpica/source/compiler/prscan.c | 2 +-
>> src/acpica/source/components/debugger/dbfileio.c | 2 +-
>> src/acpica/source/components/disassembler/dmwalk.c | 6 +-
>> .../source/components/dispatcher/dspkginit.c | 22 ++--
>> src/acpica/source/components/executer/exdump.c | 6 +-
>> src/acpica/source/components/hardware/hwvalid.c | 17 +--
>> src/acpica/source/components/namespace/nsxfeval.c | 18 ++-
>> src/acpica/source/components/parser/psutils.c | 4 +-
>> src/acpica/source/components/utilities/utdebug.c | 19 +++-
>> src/acpica/source/components/utilities/utnonansi.c | 13 +++
>> src/acpica/source/components/utilities/utosi.c | 2 +
>> src/acpica/source/components/utilities/uttrack.c | 3 +-
>> src/acpica/source/include/acexcep.h | 6 +-
>> src/acpica/source/include/acglobal.h | 121
>> ++++++++-------------
>> src/acpica/source/include/acpixf.h | 2 +-
>> src/acpica/source/include/actypes.h | 2 +
>> src/acpica/source/include/acutils.h | 6 +
>> .../source/os_specific/service_layers/osgendbg.c | 5 +-
>> src/acpica/source/tools/acpiexec/aehandlers.c | 16 ++-
>> 38 files changed, 217 insertions(+), 174 deletions(-)
>>
>> diff --git a/src/acpica/source/common/adisasm.c
>> b/src/acpica/source/common/adisasm.c
>> index bfc815d4..48b28072 100644
>> --- a/src/acpica/source/common/adisasm.c
>> +++ b/src/acpica/source/common/adisasm.c
>> @@ -457,9 +457,9 @@ AdDisassembleOneTable (
>> * (.xxx) file produced from the converter in case if
>> * it fails to get deleted.
>> */
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> - strncpy (Table->Signature, AcpiGbl_TableSig, 4);
>> + strncpy (Table->Signature, AcpiGbl_TableSig, ACPI_NAME_SIZE);
>> }
>> #endif
>> @@ -775,7 +775,7 @@ AdDoExternalFileList (
>> AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot,
>> AcpiGbl_RootNode, OwnerId);
>> AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
>> - AcpiGbl_ParseOpRoot = NULL; /* for fwts */
>> + AcpiGbl_ParseOpRoot = NULL; /* for fwts */
>> ExternalListHead = ExternalListHead->Next;
>> }
>> diff --git a/src/acpica/source/common/dmswitch.c
>> b/src/acpica/source/common/dmswitch.c
>> index 1641cbf9..5c2ac3a6 100644
>> --- a/src/acpica/source/common/dmswitch.c
>> +++ b/src/acpica/source/common/dmswitch.c
>> @@ -543,6 +543,10 @@ AcpiDmIsSwitchBlock (
>> * statement, so check for it.
>> */
>> CurrentOp = StoreOp->Common.Next->Common.Next;
>> + if (!CurrentOp)
>> + {
>> + return (FALSE);
>> + }
>> if (CurrentOp->Common.AmlOpcode == AML_ELSE_OP)
>> {
>> CurrentOp = CurrentOp->Common.Next;
>> diff --git a/src/acpica/source/common/dmtable.c
>> b/src/acpica/source/common/dmtable.c
>> index 60951732..3d931485 100644
>> --- a/src/acpica/source/common/dmtable.c
>> +++ b/src/acpica/source/common/dmtable.c
>> @@ -1654,7 +1654,6 @@ AcpiDmDumpTable (
>> break;
>> -
>> case ACPI_DMT_FADTPM:
>> /* FADT Preferred PM Profile names */
>> diff --git a/src/acpica/source/common/dmtables.c
>> b/src/acpica/source/common/dmtables.c
>> index 0ec69aba..b87ddd46 100644
>> --- a/src/acpica/source/common/dmtables.c
>> +++ b/src/acpica/source/common/dmtables.c
>> @@ -314,7 +314,7 @@ AdCreateTableHeader (
>> /*
>> * Print comments that come before this definition block.
>> */
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>>
>> ASL_CV_PRINT_ONE_COMMENT(AcpiGbl_ParseOpRoot,AML_COMMENT_STANDARD,
>> NULL, 0);
>> }
>> @@ -517,7 +517,7 @@ AdParseTable (
>> }
>> #ifdef ACPI_ASL_COMPILER
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> AcpiGbl_ParseOpRoot->Common.CvFilename =
>> AcpiGbl_FileTreeRoot->Filename;
>> }
>> diff --git a/src/acpica/source/common/dmtbdump.c
>> b/src/acpica/source/common/dmtbdump.c
>> index 1ef91c2d..fae7c040 100644
>> --- a/src/acpica/source/common/dmtbdump.c
>> +++ b/src/acpica/source/common/dmtbdump.c
>> @@ -3734,7 +3734,6 @@ NextSubtable:
>> }
>> -
>>
>> /*******************************************************************************
>>
>> *
>> * FUNCTION: AcpiDmDumpSdev
>> diff --git a/src/acpica/source/compiler/aslcodegen.c
>> b/src/acpica/source/compiler/aslcodegen.c
>> index a527ddda..ea879b8c 100644
>> --- a/src/acpica/source/compiler/aslcodegen.c
>> +++ b/src/acpica/source/compiler/aslcodegen.c
>> @@ -370,7 +370,7 @@ CgWriteAmlOpcode (
>> * Before printing the bytecode, generate comment byte codes
>> * associated with this node.
>> */
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> CgWriteAmlComment(Op);
>> }
>> @@ -550,13 +550,13 @@ CgWriteTableHeader (
>> * "XXXX" table signature prevents this AML file from running on
>> the AML
>> * interpreter.
>> */
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> - strncpy(AcpiGbl_TableSig, Child->Asl.Value.String, 4);
>> + strncpy(AcpiGbl_TableSig, Child->Asl.Value.String,
>> ACPI_NAME_SIZE);
>> Child->Asl.Value.String = ACPI_SIG_XXXX;
>> }
>> - strncpy (TableHeader.Signature, Child->Asl.Value.String, 4);
>> + strncpy (TableHeader.Signature, Child->Asl.Value.String,
>> ACPI_NAME_SIZE);
>> /* Revision */
>> @@ -573,12 +573,12 @@ CgWriteTableHeader (
>> /* OEMID */
>> Child = Child->Asl.Next;
>> - strncpy (TableHeader.OemId, Child->Asl.Value.String, 6);
>> + strncpy (TableHeader.OemId, Child->Asl.Value.String,
>> ACPI_OEM_ID_SIZE);
>> /* OEM TableID */
>> Child = Child->Asl.Next;
>> - strncpy (TableHeader.OemTableId, Child->Asl.Value.String, 8);
>> + strncpy (TableHeader.OemTableId, Child->Asl.Value.String,
>> ACPI_OEM_TABLE_ID_SIZE);
>> /* OEM Revision */
>> @@ -600,7 +600,7 @@ CgWriteTableHeader (
>> /* Calculate the comment lengths for this definition block
>> parseOp */
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> CvDbgPrint ("Calculating comment lengths for %s in write
>> header\n",
>> Op->Asl.ParseOpName);
>> @@ -756,7 +756,8 @@ CgWriteNode (
>> /* Write all comments here. */
>> - if (Gbl_CaptureComments)
>> +
>> + if (AcpiGbl_CaptureComments)
>> {
>> CgWriteAmlComment(Op);
>> }
>> @@ -822,7 +823,7 @@ CgWriteNode (
>> case PARSEOP_DEFINITION_BLOCK:
>> CgWriteTableHeader (Op);
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> CgWriteAmlDefBlockComment (Op);
>> }
>> diff --git a/src/acpica/source/compiler/aslcompile.c
>> b/src/acpica/source/compiler/aslcompile.c
>> index 1ddb8864..ae78cec4 100644
>> --- a/src/acpica/source/compiler/aslcompile.c
>> +++ b/src/acpica/source/compiler/aslcompile.c
>> @@ -469,7 +469,7 @@ CmDoCompile (
>> * node during compilation. We take the very last comment and
>> save it in a
>> * global for it to be used by the disassembler.
>> */
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> AcpiGbl_LastListHead = Gbl_ParseTreeRoot->Asl.CommentList;
>> Gbl_ParseTreeRoot->Asl.CommentList = NULL;
>> diff --git a/src/acpica/source/compiler/asldebug.c
>> b/src/acpica/source/compiler/asldebug.c
>> index ba252251..0dab6d57 100644
>> --- a/src/acpica/source/compiler/asldebug.c
>> +++ b/src/acpica/source/compiler/asldebug.c
>> @@ -192,7 +192,7 @@ CvDbgPrint (
>> va_list Args;
>> - if (!Gbl_CaptureComments || !AcpiGbl_DebugAslConversion)
>> + if (!AcpiGbl_CaptureComments || !AcpiGbl_DebugAslConversion)
>> {
>> return;
>> }
>> diff --git a/src/acpica/source/compiler/aslfiles.c
>> b/src/acpica/source/compiler/aslfiles.c
>> index 53df683e..177a3295 100644
>> --- a/src/acpica/source/compiler/aslfiles.c
>> +++ b/src/acpica/source/compiler/aslfiles.c
>> @@ -618,7 +618,7 @@ FlOpenAmlOutputFile (
>> if (!Filename)
>> {
>> /* Create the output AML filename */
>> - if (!Gbl_CaptureComments)
>> + if (!AcpiGbl_CaptureComments)
>> {
>> Filename = FlGenerateFilename (FilenamePrefix,
>> FILE_SUFFIX_AML_CODE);
>> }
>> diff --git a/src/acpica/source/compiler/aslparseop.c
>> b/src/acpica/source/compiler/aslparseop.c
>> index 438e5a28..ac80a0a2 100644
>> --- a/src/acpica/source/compiler/aslparseop.c
>> +++ b/src/acpica/source/compiler/aslparseop.c
>> @@ -269,7 +269,7 @@ TrCreateOp (
>> * FirstChild place it in the parent. This also means that
>> * legitimate comments for the child gets put to the
>> parent.
>> */
>> - if (Gbl_CaptureComments &&
>> + if (AcpiGbl_CaptureComments &&
>> ((ParseOpcode == PARSEOP_CONNECTION) ||
>> (ParseOpcode == PARSEOP_EXTERNAL) ||
>> (ParseOpcode == PARSEOP_OFFSET) ||
>> @@ -308,7 +308,7 @@ TrCreateOp (
>> /* Get the comment from last child in the resource
>> template call */
>> - if (Gbl_CaptureComments &&
>> + if (AcpiGbl_CaptureComments &&
>> (Op->Asl.ParseOpcode == PARSEOP_RESOURCETEMPLATE))
>> {
>> CvDbgPrint ("Transferred current comment list to this
>> op.\n");
>> @@ -794,7 +794,7 @@ TrAllocateOp (
>> /* The following is for capturing comments */
>> - if(Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> LatestOp = Gbl_CommentState.LatestParseOp;
>> Op->Asl.InlineComment = NULL;
>> diff --git a/src/acpica/source/compiler/aslstartup.c
>> b/src/acpica/source/compiler/aslstartup.c
>> index fa1ac25b..3cc26005 100644
>> --- a/src/acpica/source/compiler/aslstartup.c
>> +++ b/src/acpica/source/compiler/aslstartup.c
>> @@ -233,11 +233,11 @@ AslInitializeGlobals (
>> Gbl_Files[i].Filename = NULL;
>> }
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> Gbl_CommentState.SpacesBefore = 0;
>> Gbl_CommentState.CommentType = 1;
>> - Gbl_CommentState.LatestParseOp = NULL;
>> + Gbl_CommentState.LatestParseOp = NULL;
>> Gbl_CommentState.ParsingParenBraceNode = NULL;
>> Gbl_CommentState.CaptureComments = TRUE;
>> }
>> diff --git a/src/acpica/source/compiler/aslsupport.l
>> b/src/acpica/source/compiler/aslsupport.l
>> index 40cead33..db243e4a 100644
>> --- a/src/acpica/source/compiler/aslsupport.l
>> +++ b/src/acpica/source/compiler/aslsupport.l
>> @@ -496,7 +496,7 @@ AslInsertLineBuffer (
>> AslResetCurrentLineBuffer ();
>> }
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> CvProcessCommentState (SourceChar);
>> }
>> @@ -525,7 +525,7 @@ static void
>> count (
>> int Type)
>> {
>> - int i;
>> + char *p;
>> switch (Type)
>> @@ -547,9 +547,9 @@ count (
>> break;
>> }
>> - for (i = 0; (yytext[i] != 0) && (yytext[i] != EOF); i++)
>> + for (p = yytext; *p != '\0'; p++)
>> {
>> - AslInsertLineBuffer (yytext[i]);
>> + AslInsertLineBuffer (*p);
>> *Gbl_LineBufPtr = 0;
>> }
>> }
>> @@ -580,7 +580,7 @@ AslDoComment (
>> AslInsertLineBuffer ('/');
>> AslInsertLineBuffer ('*');
>> - if (Gbl_CaptureComments && CurrentState.CaptureComments)
>> + if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>> {
>> *StringBuffer = '/';
>> ++StringBuffer;
>> @@ -595,7 +595,7 @@ loop:
>> while (((c = input ()) != '*') && (c != EOF))
>> {
>> AslInsertLineBuffer (c);
>> - if (Gbl_CaptureComments && CurrentState.CaptureComments)
>> + if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>> {
>> *StringBuffer = c;
>> ++StringBuffer;
>> @@ -623,7 +623,7 @@ loop:
>> /* Comment is closed only if the NEXT character is a slash */
>> AslInsertLineBuffer (c);
>> - if (Gbl_CaptureComments && CurrentState.CaptureComments)
>> + if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>> {
>> *StringBuffer = c;
>> ++StringBuffer;
>> @@ -698,7 +698,7 @@ AslDoCommentType2 (
>> AslInsertLineBuffer ('/');
>> - if (Gbl_CaptureComments && CurrentState.CaptureComments)
>> + if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>> {
>> AslInsertLineBuffer ('*');
>> *StringBuffer = '/';
>> @@ -714,7 +714,7 @@ AslDoCommentType2 (
>> while (((c = input ()) != '\n') && (c != EOF))
>> {
>> AslInsertLineBuffer (c);
>> - if (Gbl_CaptureComments && CurrentState.CaptureComments)
>> + if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>> {
>> *StringBuffer = c;
>> ++StringBuffer;
>> diff --git a/src/acpica/source/compiler/asltree.c
>> b/src/acpica/source/compiler/asltree.c
>> index 084bc4d5..06bf7599 100644
>> --- a/src/acpica/source/compiler/asltree.c
>> +++ b/src/acpica/source/compiler/asltree.c
>> @@ -253,7 +253,7 @@ TrSetOpIntegerValue (
>> /* Converter: if this is a method invocation, turn off capture
>> comments */
>> - if (Gbl_CaptureComments &&
>> + if (AcpiGbl_CaptureComments &&
>> (ParseOpcode == PARSEOP_METHODCALL))
>> {
>> Gbl_CommentState.CaptureComments = FALSE;
>> @@ -509,7 +509,7 @@ TrLinkOpChildren (
>> /* The following is for capturing comments */
>> - if(Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> /*
>> * If there are "regular comments" detected at this point,
>> @@ -590,7 +590,7 @@ TrLinkOpChildren (
>> va_end(ap);
>> DbgPrint (ASL_PARSE_OUTPUT, "\n\n");
>> - if(Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> Gbl_CommentState.LatestParseOp = Op;
>> CvDbgPrint ("TrLinkOpChildren=====Set latest parse op to
>> this op.\n");
>> @@ -768,7 +768,7 @@ TrLinkChildOp (
>> * turn on capture comments as it signifies that we are done
>> parsing
>> * a method call.
>> */
>> - if (Gbl_CaptureComments && Op1)
>> + if (AcpiGbl_CaptureComments && Op1)
>> {
>> if (Op1->Asl.ParseOpcode == PARSEOP_METHODCALL)
>> {
>> diff --git a/src/acpica/source/compiler/aslutils.c
>> b/src/acpica/source/compiler/aslutils.c
>> index 82d11b4b..0696b84d 100644
>> --- a/src/acpica/source/compiler/aslutils.c
>> +++ b/src/acpica/source/compiler/aslutils.c
>> @@ -422,7 +422,7 @@ UtSetParseOpName (
>> ACPI_PARSE_OBJECT *Op)
>> {
>> - strncpy (Op->Asl.ParseOpName, UtGetOpName (Op->Asl.ParseOpcode),
>> + AcpiUtSafeStrncpy (Op->Asl.ParseOpName, UtGetOpName
>> (Op->Asl.ParseOpcode),
>> ACPI_MAX_PARSEOP_NAME);
>> }
>> diff --git a/src/acpica/source/compiler/cvcompiler.c
>> b/src/acpica/source/compiler/cvcompiler.c
>> index d2a6c8f0..8da66782 100644
>> --- a/src/acpica/source/compiler/cvcompiler.c
>> +++ b/src/acpica/source/compiler/cvcompiler.c
>> @@ -186,7 +186,7 @@ CvProcessComment (
>> char *FinalCommentString;
>> - if (Gbl_CaptureComments && CurrentState.CaptureComments)
>> + if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>> {
>> *StringBuffer = (char) c1;
>> ++StringBuffer;
>> @@ -309,7 +309,7 @@ CvProcessCommentType2 (
>> char *FinalCommentString;
>> - if (Gbl_CaptureComments && CurrentState.CaptureComments)
>> + if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>> {
>> *StringBuffer = 0; /* null terminate */
>> CvDbgPrint ("Single-line comment\n");
>> @@ -395,7 +395,7 @@ CvCalculateCommentLengths(
>> ACPI_COMMENT_NODE *Current = NULL;
>> - if (!Gbl_CaptureComments)
>> + if (!AcpiGbl_CaptureComments)
>> {
>> return (0);
>> }
>> @@ -497,7 +497,7 @@ CgWriteAmlDefBlockComment(
>> char *DirectoryPosition;
>> - if (!Gbl_CaptureComments ||
>> + if (!AcpiGbl_CaptureComments ||
>> (Op->Asl.ParseOpcode != PARSEOP_DEFINITION_BLOCK))
>> {
>> return;
>> @@ -615,7 +615,7 @@ CgWriteAmlComment(
>> if ((Op->Asl.ParseOpcode == PARSEOP_DEFINITION_BLOCK) ||
>> - !Gbl_CaptureComments)
>> + !AcpiGbl_CaptureComments)
>> {
>> return;
>> }
>> diff --git a/src/acpica/source/compiler/cvdisasm.c
>> b/src/acpica/source/compiler/cvdisasm.c
>> index 8682f04e..d382aaa5 100644
>> --- a/src/acpica/source/compiler/cvdisasm.c
>> +++ b/src/acpica/source/compiler/cvdisasm.c
>> @@ -352,7 +352,7 @@ CvCloseBraceWriteComment(
>> UINT32 Level)
>> {
>> - if (!Gbl_CaptureComments)
>> + if (!AcpiGbl_CaptureComments)
>> {
>> AcpiOsPrintf ("}");
>> return;
>> @@ -385,7 +385,7 @@ CvCloseParenWriteComment(
>> UINT32 Level)
>> {
>> - if (!Gbl_CaptureComments)
>> + if (!AcpiGbl_CaptureComments)
>> {
>> AcpiOsPrintf (")");
>> return;
>> diff --git a/src/acpica/source/compiler/cvparser.c
>> b/src/acpica/source/compiler/cvparser.c
>> index b2e3e767..a3ef2806 100644
>> --- a/src/acpica/source/compiler/cvparser.c
>> +++ b/src/acpica/source/compiler/cvparser.c
>> @@ -254,7 +254,7 @@ CvInitFileTree (
>> char *ChildFilename = NULL;
>> - if (!Gbl_CaptureComments)
>> + if (!AcpiGbl_CaptureComments)
>> {
>> return;
>> }
>> @@ -720,7 +720,7 @@ CvCaptureCommentsOnly (
>> ACPI_FILE_NODE *FileNode;
>> - if (!Gbl_CaptureComments ||
>> + if (!AcpiGbl_CaptureComments ||
>> Opcode != AML_COMMENT_OP)
>> {
>> return;
>> @@ -973,7 +973,7 @@ CvCaptureComments (
>> const ACPI_OPCODE_INFO *OpInfo;
>> - if (!Gbl_CaptureComments)
>> + if (!AcpiGbl_CaptureComments)
>> {
>> return;
>> }
>> diff --git a/src/acpica/source/compiler/dtcompile.c
>> b/src/acpica/source/compiler/dtcompile.c
>> index 0823196f..47f72eb3 100644
>> --- a/src/acpica/source/compiler/dtcompile.c
>> +++ b/src/acpica/source/compiler/dtcompile.c
>> @@ -559,10 +559,18 @@ DtCompileTable (
>> ACPI_STATUS Status = AE_OK;
>> - if (!Field || !*Field)
>> + if (!Field)
>> {
>> return (AE_BAD_PARAMETER);
>> }
>> + if (!*Field)
>> + {
>> + /*
>> + * The field list is empty, this means that we are out of
>> fields to
>> + * parse. In other words, we are at the end of the table.
>> + */
>> + return (AE_END_OF_TABLE);
>> + }
>> /* Ignore optional subtable if name does not match */
>> diff --git a/src/acpica/source/compiler/dttable1.c
>> b/src/acpica/source/compiler/dttable1.c
>> index 138f4f3a..9b755509 100644
>> --- a/src/acpica/source/compiler/dttable1.c
>> +++ b/src/acpica/source/compiler/dttable1.c
>> @@ -596,7 +596,13 @@ DtCompileDbg2 (
>> Status = DtCompileTable (PFieldList,
>> AcpiDmTableInfoDbg2OemData,
>> &Subtable, TRUE);
>> - if (ACPI_FAILURE (Status))
>> + if (Status == AE_END_OF_TABLE)
>> + {
>> + /* optional field was not found and we're at the end of
>> the file */
>> +
>> + goto subtableDone;
>> + }
>> + else if (ACPI_FAILURE (Status))
>> {
>> return (Status);
>> }
>> @@ -615,7 +621,7 @@ DtCompileDbg2 (
>> DtInsertSubtable (ParentTable, Subtable);
>> }
>> -
>> +subtableDone:
>> SubtableCount--;
>> DtPopSubtable (); /* Get next Device Information subtable */
>> }
>> diff --git a/src/acpica/source/compiler/prscan.c
>> b/src/acpica/source/compiler/prscan.c
>> index a012e111..a46b41f4 100644
>> --- a/src/acpica/source/compiler/prscan.c
>> +++ b/src/acpica/source/compiler/prscan.c
>> @@ -1196,7 +1196,7 @@ PrPushDirective (
>> Info->Next = Gbl_DirectiveStack;
>> Info->Directive = Directive;
>> Info->IgnoringThisCodeBlock = Gbl_IgnoringThisCodeBlock;
>> - strncpy (Info->Argument, Argument, MAX_ARGUMENT_LENGTH);
>> + AcpiUtSafeStrncpy (Info->Argument, Argument, MAX_ARGUMENT_LENGTH);
>> DbgPrint (ASL_DEBUG_OUTPUT,
>> "Pr(%.4u) - [%u %s] %*s Pushed [#%s %s]: IgnoreFlag = %s\n",
>> diff --git a/src/acpica/source/components/debugger/dbfileio.c
>> b/src/acpica/source/components/debugger/dbfileio.c
>> index 501d3587..00bb777a 100644
>> --- a/src/acpica/source/components/debugger/dbfileio.c
>> +++ b/src/acpica/source/components/debugger/dbfileio.c
>> @@ -218,7 +218,7 @@ AcpiDbOpenDebugFile (
>> }
>> AcpiOsPrintf ("Debug output file %s opened\n", Name);
>> - strncpy (AcpiGbl_DbDebugFilename, Name,
>> + AcpiUtSafeStrncpy (AcpiGbl_DbDebugFilename, Name,
>> sizeof (AcpiGbl_DbDebugFilename));
>> AcpiGbl_DbOutputToFile = TRUE;
>> }
>> diff --git a/src/acpica/source/components/disassembler/dmwalk.c
>> b/src/acpica/source/components/disassembler/dmwalk.c
>> index 750e6398..ce8eb207 100644
>> --- a/src/acpica/source/components/disassembler/dmwalk.c
>> +++ b/src/acpica/source/components/disassembler/dmwalk.c
>> @@ -527,7 +527,7 @@ AcpiDmDescendingOp (
>> /* Determine which file this parse node is contained in. */
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> ASL_CV_LABEL_FILENODE (Op);
>> @@ -1046,7 +1046,7 @@ AcpiDmAscendingOp (
>> /* Point the Op's filename pointer to the proper file */
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> ASL_CV_LABEL_FILENODE (Op);
>> @@ -1074,7 +1074,7 @@ AcpiDmAscendingOp (
>> /* Print any comments that are at the end of the file here */
>> - if (Gbl_CaptureComments && AcpiGbl_LastListHead)
>> + if (AcpiGbl_CaptureComments && AcpiGbl_LastListHead)
>> {
>> AcpiOsPrintf ("\n");
>> ASL_CV_PRINT_ONE_COMMENT_LIST (AcpiGbl_LastListHead, 0);
>> diff --git a/src/acpica/source/components/dispatcher/dspkginit.c
>> b/src/acpica/source/components/dispatcher/dspkginit.c
>> index 14e34b09..d7a4c178 100644
>> --- a/src/acpica/source/components/dispatcher/dspkginit.c
>> +++ b/src/acpica/source/components/dispatcher/dspkginit.c
>> @@ -419,9 +419,12 @@ AcpiDsInitPackageElement (
>> ACPI_OPERAND_OBJECT **ElementPtr;
>> + ACPI_FUNCTION_TRACE (DsInitPackageElement);
>> +
>> +
>> if (!SourceObject)
>> {
>> - return (AE_OK);
>> + return_ACPI_STATUS (AE_OK);
>> }
>> /*
>> @@ -456,7 +459,7 @@ AcpiDsInitPackageElement (
>> SourceObject->Package.Flags |= AOPOBJ_DATA_VALID;
>> }
>> - return (AE_OK);
>> + return_ACPI_STATUS (AE_OK);
>> }
>> @@ -481,6 +484,7 @@ AcpiDsResolvePackageElement (
>> ACPI_GENERIC_STATE ScopeInfo;
>> ACPI_OPERAND_OBJECT *Element = *ElementPtr;
>> ACPI_NAMESPACE_NODE *ResolvedNode;
>> + ACPI_NAMESPACE_NODE *OriginalNode;
>> char *ExternalPath = NULL;
>> ACPI_OBJECT_TYPE Type;
>> @@ -576,6 +580,7 @@ AcpiDsResolvePackageElement (
>> * will remain as named references. This behavior is not described
>> * in the ACPI spec, but it appears to be an oversight.
>> */
>> + OriginalNode = ResolvedNode;
>> Status = AcpiExResolveNodeToValue (&ResolvedNode, NULL);
>> if (ACPI_FAILURE (Status))
>> {
>> @@ -607,26 +612,27 @@ AcpiDsResolvePackageElement (
>> */
>> case ACPI_TYPE_DEVICE:
>> case ACPI_TYPE_THERMAL:
>> -
>> - /* TBD: This may not be necesssary */
>> -
>> - AcpiUtAddReference (ResolvedNode->Object);
>> + case ACPI_TYPE_METHOD:
>> break;
>> case ACPI_TYPE_MUTEX:
>> - case ACPI_TYPE_METHOD:
>> case ACPI_TYPE_POWER:
>> case ACPI_TYPE_PROCESSOR:
>> case ACPI_TYPE_EVENT:
>> case ACPI_TYPE_REGION:
>> + /* AcpiExResolveNodeToValue gave these an extra reference */
>> +
>> + AcpiUtRemoveReference (OriginalNode->Object);
>> break;
>> default:
>> /*
>> * For all other types - the node was resolved to an actual
>> - * operand object with a value, return the object
>> + * operand object with a value, return the object. Remove
>> + * a reference on the existing object.
>> */
>> + AcpiUtRemoveReference (Element);
>> *ElementPtr = (ACPI_OPERAND_OBJECT *) ResolvedNode;
>> break;
>> }
>> diff --git a/src/acpica/source/components/executer/exdump.c
>> b/src/acpica/source/components/executer/exdump.c
>> index c1069b2c..8730a0eb 100644
>> --- a/src/acpica/source/components/executer/exdump.c
>> +++ b/src/acpica/source/components/executer/exdump.c
>> @@ -747,7 +747,7 @@ AcpiExDumpOperand (
>> UINT32 Index;
>> - ACPI_FUNCTION_NAME (ExDumpOperand)
>> + ACPI_FUNCTION_NAME (ExDumpOperand);
>> /* Check if debug output enabled */
>> @@ -1042,7 +1042,7 @@ AcpiExDumpOperands (
>> const char *OpcodeName,
>> UINT32 NumOperands)
>> {
>> - ACPI_FUNCTION_NAME (ExDumpOperands);
>> + ACPI_FUNCTION_TRACE (ExDumpOperands);
>> if (!OpcodeName)
>> @@ -1070,7 +1070,7 @@ AcpiExDumpOperands (
>> ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
>> "**** End operand dump for [%s]\n", OpcodeName));
>> - return;
>> + return_VOID;
>> }
>> diff --git a/src/acpica/source/components/hardware/hwvalid.c
>> b/src/acpica/source/components/hardware/hwvalid.c
>> index 0d41dd13..e2b187e7 100644
>> --- a/src/acpica/source/components/hardware/hwvalid.c
>> +++ b/src/acpica/source/components/hardware/hwvalid.c
>> @@ -245,7 +245,7 @@ AcpiHwValidateIoRequest (
>> const ACPI_PORT_INFO *PortInfo;
>> - ACPI_FUNCTION_NAME (HwValidateIoRequest);
>> + ACPI_FUNCTION_TRACE (HwValidateIoRequest);
>> /* Supported widths are 8/16/32 */
>> @@ -256,14 +256,15 @@ AcpiHwValidateIoRequest (
>> {
>> ACPI_ERROR ((AE_INFO,
>> "Bad BitWidth parameter: %8.8X", BitWidth));
>> - return (AE_BAD_PARAMETER);
>> + return_ACPI_STATUS (AE_BAD_PARAMETER);
>> }
>> PortInfo = AcpiProtectedPorts;
>> ByteWidth = ACPI_DIV_8 (BitWidth);
>> LastAddress = Address + ByteWidth - 1;
>> - ACPI_DEBUG_PRINT ((ACPI_DB_IO, "Address %8.8X%8.8X LastAddress
>> %8.8X%8.8X Length %X",
>> + ACPI_DEBUG_PRINT ((ACPI_DB_IO,
>> + "Address %8.8X%8.8X LastAddress %8.8X%8.8X Length %X",
>> ACPI_FORMAT_UINT64 (Address), ACPI_FORMAT_UINT64 (LastAddress),
>> ByteWidth));
>> @@ -274,14 +275,14 @@ AcpiHwValidateIoRequest (
>> ACPI_ERROR ((AE_INFO,
>> "Illegal I/O port address/length above 64K:
>> %8.8X%8.8X/0x%X",
>> ACPI_FORMAT_UINT64 (Address), ByteWidth));
>> - return (AE_LIMIT);
>> + return_ACPI_STATUS (AE_LIMIT);
>> }
>> /* Exit if requested address is not within the protected port
>> table */
>> if (Address > AcpiProtectedPorts[ACPI_PORT_INFO_ENTRIES - 1].End)
>> {
>> - return (AE_OK);
>> + return_ACPI_STATUS (AE_OK);
>> }
>> /* Check request against the list of protected I/O ports */
>> @@ -303,8 +304,8 @@ AcpiHwValidateIoRequest (
>> if (AcpiGbl_OsiData >= PortInfo->OsiDependency)
>> {
>> - ACPI_DEBUG_PRINT ((ACPI_DB_IO,
>> - "Denied AML access to port 0x%8.8X%8.8X/%X (%s
>> 0x%.4X-0x%.4X)",
>> + ACPI_DEBUG_PRINT ((ACPI_DB_VALUES,
>> + "Denied AML access to port 0x%8.8X%8.8X/%X (%s
>> 0x%.4X-0x%.4X)\n",
>> ACPI_FORMAT_UINT64 (Address), ByteWidth,
>> PortInfo->Name,
>> PortInfo->Start, PortInfo->End));
>> @@ -320,7 +321,7 @@ AcpiHwValidateIoRequest (
>> }
>> }
>> - return (AE_OK);
>> + return_ACPI_STATUS (AE_OK);
>> }
>> diff --git a/src/acpica/source/components/namespace/nsxfeval.c
>> b/src/acpica/source/components/namespace/nsxfeval.c
>> index ab3ad598..cb31e131 100644
>> --- a/src/acpica/source/components/namespace/nsxfeval.c
>> +++ b/src/acpica/source/components/namespace/nsxfeval.c
>> @@ -174,11 +174,11 @@ AcpiNsResolveReferences (
>> *
>> * PARAMETERS: Handle - Object handle (optional)
>> * Pathname - Object pathname (optional)
>> - * ExternalParams - List of parameters to pass to
>> method,
>> + * ExternalParams - List of parameters to pass to a
>> method,
>> * terminated by NULL. May be NULL
>> * if no parameters are being
>> passed.
>> - * ReturnBuffer - Where to put method's return
>> value (if
>> - * any). If NULL, no value is
>> returned.
>> + * ReturnBuffer - Where to put the object return
>> value (if
>> + * any). Required.
>> * ReturnType - Expected type of return object
>> *
>> * RETURN: Status
>> @@ -218,10 +218,16 @@ AcpiEvaluateObjectTyped (
>> FreeBufferOnError = TRUE;
>> }
>> - Status = AcpiGetHandle (Handle, Pathname, &TargetHandle);
>> - if (ACPI_FAILURE (Status))
>> + /* Get a handle here, in order to build an error message if
>> needed */
>> +
>> + TargetHandle = Handle;
>> + if (Pathname)
>> {
>> - return_ACPI_STATUS (Status);
>> + Status = AcpiGetHandle (Handle, Pathname, &TargetHandle);
>> + if (ACPI_FAILURE (Status))
>> + {
>> + return_ACPI_STATUS (Status);
>> + }
>> }
>> FullPathname = AcpiNsGetExternalPathname (TargetHandle);
>> diff --git a/src/acpica/source/components/parser/psutils.c
>> b/src/acpica/source/components/parser/psutils.c
>> index a04b2e50..1b01c4b0 100644
>> --- a/src/acpica/source/components/parser/psutils.c
>> +++ b/src/acpica/source/components/parser/psutils.c
>> @@ -213,7 +213,7 @@ AcpiPsInitOp (
>> Op->Common.DescriptorType = ACPI_DESC_TYPE_PARSER;
>> Op->Common.AmlOpcode = Opcode;
>> - ACPI_DISASM_ONLY_MEMBERS (strncpy (Op->Common.AmlOpName,
>> + ACPI_DISASM_ONLY_MEMBERS (AcpiUtSafeStrncpy (Op->Common.AmlOpName,
>> (AcpiPsGetOpcodeInfo (Opcode))->Name,
>> sizeof (Op->Common.AmlOpName)));
>> }
>> @@ -293,7 +293,7 @@ AcpiPsAllocOp (
>> AcpiGbl_CurrentScope = Op;
>> }
>> - if (Gbl_CaptureComments)
>> + if (AcpiGbl_CaptureComments)
>> {
>> ASL_CV_TRANSFER_COMMENTS (Op);
>> }
>> diff --git a/src/acpica/source/components/utilities/utdebug.c
>> b/src/acpica/source/components/utilities/utdebug.c
>> index dd80f241..177b141b 100644
>> --- a/src/acpica/source/components/utilities/utdebug.c
>> +++ b/src/acpica/source/components/utilities/utdebug.c
>> @@ -290,7 +290,9 @@ AcpiDebugPrint (
>> {
>> ACPI_THREAD_ID ThreadId;
>> va_list args;
>> -
>> +#ifdef ACPI_APPLICATION
>> + int FillCount;
>> +#endif
>> /* Check if debug output enabled */
>> @@ -334,10 +336,21 @@ AcpiDebugPrint (
>> AcpiOsPrintf ("[%u] ", (UINT32) ThreadId);
>> }
>> - AcpiOsPrintf ("[%02ld] ", AcpiGbl_NestingLevel);
>> -#endif
>> + FillCount = 48 - AcpiGbl_NestingLevel -
>> + strlen (AcpiUtTrimFunctionName (FunctionName));
>> + if (FillCount < 0)
>> + {
>> + FillCount = 0;
>> + }
>> + AcpiOsPrintf ("[%02ld] %*s",
>> + AcpiGbl_NestingLevel, AcpiGbl_NestingLevel + 1, " ");
>> + AcpiOsPrintf ("%s%*s: ",
>> + AcpiUtTrimFunctionName (FunctionName), FillCount, " ");
>> +
>> +#else
>> AcpiOsPrintf ("%-22.22s: ", AcpiUtTrimFunctionName (FunctionName));
>> +#endif
>> va_start (args, Format);
>> AcpiOsVprintf (Format, args);
>> diff --git a/src/acpica/source/components/utilities/utnonansi.c
>> b/src/acpica/source/components/utilities/utnonansi.c
>> index f9551d05..f1404e59 100644
>> --- a/src/acpica/source/components/utilities/utnonansi.c
>> +++ b/src/acpica/source/components/utilities/utnonansi.c
>> @@ -344,4 +344,17 @@ AcpiUtSafeStrncat (
>> strncat (Dest, Source, MaxTransferLength);
>> return (FALSE);
>> }
>> +
>> +void
>> +AcpiUtSafeStrncpy (
>> + char *Dest,
>> + char *Source,
>> + ACPI_SIZE DestSize)
>> +{
>> + /* Always terminate destination string */
>> +
>> + strncpy (Dest, Source, DestSize);
>> + Dest[DestSize - 1] = 0;
>> +}
>> +
>> #endif
>> diff --git a/src/acpica/source/components/utilities/utosi.c
>> b/src/acpica/source/components/utilities/utosi.c
>> index d8f299ed..ee2890fb 100644
>> --- a/src/acpica/source/components/utilities/utosi.c
>> +++ b/src/acpica/source/components/utilities/utosi.c
>> @@ -214,6 +214,8 @@ static ACPI_INTERFACE_INFO
>> AcpiDefaultSupportedInterfaces[] =
>> {"Windows 2012", NULL, 0, ACPI_OSI_WIN_8}, /*
>> Windows 8 and Server 2012 - Added 08/2012 */
>> {"Windows 2013", NULL, 0, ACPI_OSI_WIN_8}, /*
>> Windows 8.1 and Server 2012 R2 - Added 01/2014 */
>> {"Windows 2015", NULL, 0, ACPI_OSI_WIN_10}, /*
>> Windows 10 - Added 03/2015 */
>> + {"Windows 2016", NULL, 0, ACPI_OSI_WIN_10_RS1}, /*
>> Windows 10 version 1607 - Added 12/2017 */
>> + {"Windows 2017", NULL, 0, ACPI_OSI_WIN_10_RS2}, /*
>> Windows 10 version 1703 - Added 12/2017 */
>> /* Feature Group Strings */
>> diff --git a/src/acpica/source/components/utilities/uttrack.c
>> b/src/acpica/source/components/utilities/uttrack.c
>> index e74ff066..a9b5e058 100644
>> --- a/src/acpica/source/components/utilities/uttrack.c
>> +++ b/src/acpica/source/components/utilities/uttrack.c
>> @@ -557,8 +557,7 @@ AcpiUtTrackAllocation (
>> Allocation->Component = Component;
>> Allocation->Line = Line;
>> - strncpy (Allocation->Module, Module, ACPI_MAX_MODULE_NAME);
>> - Allocation->Module[ACPI_MAX_MODULE_NAME-1] = 0;
>> + AcpiUtSafeStrncpy (Allocation->Module, (char *) Module,
>> ACPI_MAX_MODULE_NAME);
>> if (!Element)
>> {
>> diff --git a/src/acpica/source/include/acexcep.h
>> b/src/acpica/source/include/acexcep.h
>> index 21db48dc..16d3698b 100644
>> --- a/src/acpica/source/include/acexcep.h
>> +++ b/src/acpica/source/include/acexcep.h
>> @@ -241,8 +241,9 @@ typedef struct acpi_exception_info
>> #define AE_HEX_OVERFLOW EXCEP_ENV (0x0020)
>> #define AE_DECIMAL_OVERFLOW EXCEP_ENV (0x0021)
>> #define AE_OCTAL_OVERFLOW EXCEP_ENV (0x0022)
>> +#define AE_END_OF_TABLE EXCEP_ENV (0x0023)
>> -#define AE_CODE_ENV_MAX 0x0022
>> +#define AE_CODE_ENV_MAX 0x0023
>> /*
>> @@ -379,7 +380,8 @@ static const ACPI_EXCEPTION_INFO
>> AcpiGbl_ExceptionNames_Env[] =
>> EXCEP_TXT ("AE_NUMERIC_OVERFLOW", "Overflow during
>> string-to-integer conversion"),
>> EXCEP_TXT ("AE_HEX_OVERFLOW", "Overflow during
>> ASCII hex-to-binary conversion"),
>> EXCEP_TXT ("AE_DECIMAL_OVERFLOW", "Overflow during
>> ASCII decimal-to-binary conversion"),
>> - EXCEP_TXT ("AE_OCTAL_OVERFLOW", "Overflow during
>> ASCII octal-to-binary conversion")
>> + EXCEP_TXT ("AE_OCTAL_OVERFLOW", "Overflow during
>> ASCII octal-to-binary conversion"),
>> + EXCEP_TXT ("AE_END_OF_TABLE", "Reached the end of
>> table")
>> };
>> static const ACPI_EXCEPTION_INFO AcpiGbl_ExceptionNames_Pgm[] =
>> diff --git a/src/acpica/source/include/acglobal.h
>> b/src/acpica/source/include/acglobal.h
>> index 686dcd81..d2958698 100644
>> --- a/src/acpica/source/include/acglobal.h
>> +++ b/src/acpica/source/include/acglobal.h
>> @@ -155,7 +155,7 @@
>>
>> /*****************************************************************************
>>
>> *
>> - * Globals related to the ACPI tables
>> + * Globals related to the incoming ACPI tables
>> *
>>
>> ****************************************************************************/
>>
>> @@ -197,7 +197,7 @@ ACPI_GLOBAL (UINT8,
>> AcpiGbl_IntegerNybbleWidth);
>>
>> /*****************************************************************************
>>
>> *
>> - * Mutual exclusion within ACPICA subsystem
>> + * Mutual exclusion within the ACPICA subsystem
>> *
>>
>> ****************************************************************************/
>>
>> @@ -278,7 +278,7 @@ ACPI_GLOBAL (UINT8,
>> AcpiGbl_NextOwnerIdOffset);
>> ACPI_INIT_GLOBAL (BOOLEAN,
>> AcpiGbl_NamespaceInitialized, FALSE);
>> -/* Misc */
>> +/* Miscellaneous */
>> ACPI_GLOBAL (UINT32, AcpiGbl_OriginalMode);
>> ACPI_GLOBAL (UINT32, AcpiGbl_NsLookupCount);
>> @@ -301,11 +301,9 @@ extern const char
>> AcpiGbl_LowerHexDigits[];
>> extern const char AcpiGbl_UpperHexDigits[];
>> extern const ACPI_OPCODE_INFO
>> AcpiGbl_AmlOpInfo[AML_NUM_OPCODES];
>> -
>> -#ifdef ACPI_DBG_TRACK_ALLOCATIONS
>> -
>> /* Lists for tracking memory allocations (debug only) */
>> +#ifdef ACPI_DBG_TRACK_ALLOCATIONS
>> ACPI_GLOBAL (ACPI_MEMORY_LIST *, AcpiGbl_GlobalList);
>> ACPI_GLOBAL (ACPI_MEMORY_LIST *, AcpiGbl_NsNodeList);
>> ACPI_GLOBAL (BOOLEAN, AcpiGbl_DisplayFinalMemStats);
>> @@ -315,7 +313,7 @@ ACPI_GLOBAL (BOOLEAN,
>> AcpiGbl_DisableMemTracking);
>>
>> /*****************************************************************************
>>
>> *
>> - * Namespace globals
>> + * ACPI Namespace
>> *
>>
>> ****************************************************************************/
>>
>> @@ -330,7 +328,6 @@ ACPI_GLOBAL (ACPI_NAMESPACE_NODE *,
>> AcpiGbl_RootNode);
>> ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_FadtGpeDevice);
>> ACPI_GLOBAL (ACPI_OPERAND_OBJECT *, AcpiGbl_ModuleCodeList);
>> -
>> extern const UINT8 AcpiGbl_NsProperties
>> [ACPI_NUM_NS_TYPES];
>> extern const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames
>> [NUM_PREDEFINED_NAMES];
>> @@ -347,15 +344,20 @@ ACPI_INIT_GLOBAL (UINT32,
>> AcpiGbl_NestingLevel, 0);
>>
>> /*****************************************************************************
>>
>> *
>> - * Interpreter globals
>> + * Interpreter/Parser globals
>> *
>>
>> ****************************************************************************/
>>
>> -ACPI_GLOBAL (ACPI_THREAD_STATE *, AcpiGbl_CurrentWalkList);
>> -
>> /* Control method single step flag */
>> ACPI_GLOBAL (UINT8, AcpiGbl_CmSingleStep);
>> +ACPI_GLOBAL (ACPI_THREAD_STATE *, AcpiGbl_CurrentWalkList);
>> +ACPI_INIT_GLOBAL (ACPI_PARSE_OBJECT, *AcpiGbl_CurrentScope, NULL);
>> +
>> +/* ASL/ASL+ converter */
>> +
>> +ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_CaptureComments, FALSE);
>> +ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE, *AcpiGbl_LastListHead, NULL);
>>
>> /*****************************************************************************
>>
>> @@ -365,7 +367,6 @@ ACPI_GLOBAL (UINT8,
>> AcpiGbl_CmSingleStep);
>>
>> ****************************************************************************/
>>
>> extern ACPI_BIT_REGISTER_INFO
>> AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG];
>> -
>> ACPI_GLOBAL (UINT8, AcpiGbl_SleepTypeA);
>> ACPI_GLOBAL (UINT8, AcpiGbl_SleepTypeB);
>> @@ -377,18 +378,16 @@ ACPI_GLOBAL (UINT8,
>> AcpiGbl_SleepTypeB);
>>
>> ****************************************************************************/
>>
>> #if (!ACPI_REDUCED_HARDWARE)
>> -
>> ACPI_GLOBAL (UINT8, AcpiGbl_AllGpesInitialized);
>> ACPI_GLOBAL (ACPI_GPE_XRUPT_INFO *, AcpiGbl_GpeXruptListHead);
>> ACPI_GLOBAL (ACPI_GPE_BLOCK_INFO *,
>> AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS]);
>> ACPI_GLOBAL (ACPI_GBL_EVENT_HANDLER, AcpiGbl_GlobalEventHandler);
>> ACPI_GLOBAL (void *,
>> AcpiGbl_GlobalEventHandlerContext);
>> ACPI_GLOBAL (ACPI_FIXED_EVENT_HANDLER,
>> AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS]);
>> -
>> extern ACPI_FIXED_EVENT_INFO
>> AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS];
>> -
>> #endif /* !ACPI_REDUCED_HARDWARE */
>> +
>>
>> /*****************************************************************************
>>
>> *
>> * Debug support
>> @@ -402,7 +401,7 @@ ACPI_GLOBAL (UINT32,
>> AcpiGpeCount);
>> ACPI_GLOBAL (UINT32, AcpiSciCount);
>> ACPI_GLOBAL (UINT32,
>> AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS]);
>> -/* Support for dynamic control method tracing mechanism */
>> +/* Dynamic control method tracing mechanism */
>> ACPI_GLOBAL (UINT32, AcpiGbl_OriginalDbgLevel);
>> ACPI_GLOBAL (UINT32, AcpiGbl_OriginalDbgLayer);
>> @@ -410,12 +409,13 @@ ACPI_GLOBAL (UINT32,
>> AcpiGbl_OriginalDbgLayer);
>>
>> /*****************************************************************************
>>
>> *
>> - * Debugger and Disassembler globals
>> + * Debugger and Disassembler
>> *
>>
>> ****************************************************************************/
>>
>> ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DbOutputFlags,
>> ACPI_DB_CONSOLE_OUTPUT);
>> +
>> #ifdef ACPI_DISASSEMBLER
>> /* Do not disassemble buffers to resource descriptors */
>> @@ -427,7 +427,7 @@ ACPI_INIT_GLOBAL (BOOLEAN,
>> AcpiGbl_ForceAmlDisassembly, FALSE);
>> ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Verbose, TRUE);
>> ACPI_INIT_GLOBAL (BOOLEAN,
>> AcpiGbl_DmEmitExternalOpcodes, FALSE);
>> ACPI_INIT_GLOBAL (BOOLEAN,
>> AcpiGbl_DoDisassemblerOptimizations, TRUE);
>> -ACPI_INIT_GLOBAL (ACPI_PARSE_OBJECT_LIST, *AcpiGbl_TempListHead,
>> NULL);
>> +ACPI_INIT_GLOBAL (ACPI_PARSE_OBJECT_LIST, *AcpiGbl_TempListHead, NULL);
>> ACPI_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Disasm);
>> ACPI_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Listing);
>> @@ -438,7 +438,6 @@ ACPI_GLOBAL (ACPI_EXTERNAL_FILE *,
>> AcpiGbl_ExternalFileList);
>> #endif
>> #ifdef ACPI_DEBUGGER
>> -
>> ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_AbortMethod, FALSE);
>> ACPI_INIT_GLOBAL (ACPI_THREAD_ID, AcpiGbl_DbThreadId,
>> ACPI_INVALID_THREAD_ID);
>> @@ -452,7 +451,6 @@ ACPI_GLOBAL (UINT32,
>> AcpiGbl_DbConsoleDebugLevel);
>> ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_DbScopeNode);
>> ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbTerminateLoop);
>> ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbThreadsTerminated);
>> -
>> ACPI_GLOBAL (char *,
>> AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]);
>> ACPI_GLOBAL (ACPI_OBJECT_TYPE,
>> AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS]);
>> @@ -462,81 +460,66 @@ ACPI_GLOBAL (char,
>> AcpiGbl_DbParsedBuf[ACPI_DB_LINE_BUFFER_
>> ACPI_GLOBAL (char,
>> AcpiGbl_DbScopeBuf[ACPI_DB_LINE_BUFFER_SIZE]);
>> ACPI_GLOBAL (char,
>> AcpiGbl_DbDebugFilename[ACPI_DB_LINE_BUFFER_SIZE]);
>> -/*
>> - * Statistic globals
>> - */
>> +/* Statistics globals */
>> +
>> ACPI_GLOBAL (UINT16,
>> AcpiGbl_ObjTypeCount[ACPI_TOTAL_TYPES]);
>> ACPI_GLOBAL (UINT16,
>> AcpiGbl_NodeTypeCount[ACPI_TOTAL_TYPES]);
>> ACPI_GLOBAL (UINT16, AcpiGbl_ObjTypeCountMisc);
>> ACPI_GLOBAL (UINT16, AcpiGbl_NodeTypeCountMisc);
>> ACPI_GLOBAL (UINT32, AcpiGbl_NumNodes);
>> ACPI_GLOBAL (UINT32, AcpiGbl_NumObjects);
>> -
>> #endif /* ACPI_DEBUGGER */
>> #if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER)
>> -
>> -ACPI_GLOBAL (const char, *AcpiGbl_PldPanelList[]);
>> -ACPI_GLOBAL (const char,
>> *AcpiGbl_PldVerticalPositionList[]);
>> -ACPI_GLOBAL (const char,
>> *AcpiGbl_PldHorizontalPositionList[]);
>> -ACPI_GLOBAL (const char, *AcpiGbl_PldShapeList[]);
>> -
>> +ACPI_GLOBAL (const char, *AcpiGbl_PldPanelList[]);
>> +ACPI_GLOBAL (const char,
>> *AcpiGbl_PldVerticalPositionList[]);
>> +ACPI_GLOBAL (const char,
>> *AcpiGbl_PldHorizontalPositionList[]);
>> +ACPI_GLOBAL (const char, *AcpiGbl_PldShapeList[]);
>> ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DisasmFlag, FALSE);
>> -
>> #endif
>> -/*
>> - * Meant for the -ca option.
>> - */
>> -ACPI_INIT_GLOBAL (char*, AcpiGbl_CurrentInlineComment, NULL);
>> -ACPI_INIT_GLOBAL (char*, AcpiGbl_CurrentEndNodeComment, NULL);
>> -ACPI_INIT_GLOBAL (char*, AcpiGbl_CurrentOpenBraceComment, NULL);
>> -ACPI_INIT_GLOBAL (char*, AcpiGbl_CurrentCloseBraceComment, NULL);
>> -ACPI_INIT_GLOBAL (char*, AcpiGbl_RootFilename, NULL);
>> -ACPI_INIT_GLOBAL (char*, AcpiGbl_CurrentFilename, NULL);
>> -ACPI_INIT_GLOBAL (char*, AcpiGbl_CurrentParentFilename, NULL);
>> -ACPI_INIT_GLOBAL (char*, AcpiGbl_CurrentIncludeFilename, NULL);
>> +/*****************************************************************************
>>
>> + *
>> + * ACPICA application-specific globals
>> + *
>> +
>> ****************************************************************************/
>>
>> +
>> +/* ASL-to-ASL+ conversion utility (implemented within the iASL
>> compiler) */
>> -ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE, *AcpiGbl_LastListHead, NULL);
>> +#ifdef ACPI_ASL_COMPILER
>> +ACPI_INIT_GLOBAL (char *, AcpiGbl_CurrentInlineComment,
>> NULL);
>> +ACPI_INIT_GLOBAL (char *,
>> AcpiGbl_CurrentEndNodeComment, NULL);
>> +ACPI_INIT_GLOBAL (char *,
>> AcpiGbl_CurrentOpenBraceComment, NULL);
>> +ACPI_INIT_GLOBAL (char *,
>> AcpiGbl_CurrentCloseBraceComment, NULL);
>> +
>> +ACPI_INIT_GLOBAL (char *, AcpiGbl_RootFilename, NULL);
>> +ACPI_INIT_GLOBAL (char *, AcpiGbl_CurrentFilename, NULL);
>> +ACPI_INIT_GLOBAL (char *,
>> AcpiGbl_CurrentParentFilename, NULL);
>> +ACPI_INIT_GLOBAL (char *,
>> AcpiGbl_CurrentIncludeFilename, NULL);
>> ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,
>> *AcpiGbl_DefBlkCommentListHead, NULL);
>> ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,
>> *AcpiGbl_DefBlkCommentListTail, NULL);
>> -
>> ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE, *AcpiGbl_RegCommentListHead,
>> NULL);
>> ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE, *AcpiGbl_RegCommentListTail,
>> NULL);
>> -
>> ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE, *AcpiGbl_IncCommentListHead,
>> NULL);
>> ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE, *AcpiGbl_IncCommentListTail,
>> NULL);
>> -
>> ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,
>> *AcpiGbl_EndBlkCommentListHead, NULL);
>> ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,
>> *AcpiGbl_EndBlkCommentListTail, NULL);
>> -ACPI_INIT_GLOBAL (ACPI_COMMENT_ADDR_NODE,
>> *AcpiGbl_CommentAddrListHead, NULL);
>> -
>> -ACPI_INIT_GLOBAL (ACPI_PARSE_OBJECT, *AcpiGbl_CurrentScope, NULL);
>> -
>> +ACPI_INIT_GLOBAL (ACPI_COMMENT_ADDR_NODE,
>> *AcpiGbl_CommentAddrListHead, NULL);
>> ACPI_INIT_GLOBAL (ACPI_FILE_NODE, *AcpiGbl_FileTreeRoot, NULL);
>> ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_RegCommentCache);
>> ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_CommentAddrCache);
>> ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_FileCache);
>> -ACPI_INIT_GLOBAL (BOOLEAN, Gbl_CaptureComments, FALSE);
>> -
>> -ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DebugAslConversion, FALSE);
>> -ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_ConvDebugFile, NULL);
>> -
>> -ACPI_GLOBAL (char, AcpiGbl_TableSig[4]);
>> -
>> -/*****************************************************************************
>>
>> - *
>> - * Application globals
>> - *
>> -
>> ****************************************************************************/
>>
>> +ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DebugAslConversion,
>> FALSE);
>> +ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_ConvDebugFile, NULL);
>> +ACPI_GLOBAL (char, AcpiGbl_TableSig[4]);
>> +#endif
>> #ifdef ACPI_APPLICATION
>> -
>> ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_DebugFile, NULL);
>> ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_OutputFile, NULL);
>> ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DebugTimeout, FALSE);
>> @@ -545,18 +528,6 @@ ACPI_INIT_GLOBAL (BOOLEAN,
>> AcpiGbl_DebugTimeout, FALSE);
>> ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_PrintLock); /*
>> For print buffer */
>> ACPI_GLOBAL (char, AcpiGbl_PrintBuffer[1024]);
>> -
>> #endif /* ACPI_APPLICATION */
>> -
>> -/*****************************************************************************
>>
>> - *
>> - * Info/help support
>> - *
>> -
>> ****************************************************************************/
>>
>> -
>> -extern const AH_PREDEFINED_NAME AslPredefinedInfo[];
>> -extern const AH_DEVICE_ID AslDeviceIds[];
>> -
>> -
>> #endif /* __ACGLOBAL_H__ */
>> diff --git a/src/acpica/source/include/acpixf.h
>> b/src/acpica/source/include/acpixf.h
>> index 3af2a137..ee857191 100644
>> --- a/src/acpica/source/include/acpixf.h
>> +++ b/src/acpica/source/include/acpixf.h
>> @@ -154,7 +154,7 @@
>> /* Current ACPICA subsystem version in YYYYMMDD format */
>> -#define ACPI_CA_VERSION 0x20171110
>> +#define ACPI_CA_VERSION 0x20171214
>> #include "acconfig.h"
>> #include "actypes.h"
>> diff --git a/src/acpica/source/include/actypes.h
>> b/src/acpica/source/include/actypes.h
>> index 4cc6d4fd..2d71de51 100644
>> --- a/src/acpica/source/include/actypes.h
>> +++ b/src/acpica/source/include/actypes.h
>> @@ -1509,6 +1509,8 @@ typedef enum
>> #define ACPI_OSI_WIN_7 0x0B
>> #define ACPI_OSI_WIN_8 0x0C
>> #define ACPI_OSI_WIN_10 0x0D
>> +#define ACPI_OSI_WIN_10_RS1 0x0E
>> +#define ACPI_OSI_WIN_10_RS2 0x0F
>> /* Definitions of getopt */
>> diff --git a/src/acpica/source/include/acutils.h
>> b/src/acpica/source/include/acutils.h
>> index ff9f72db..708c0896 100644
>> --- a/src/acpica/source/include/acutils.h
>> +++ b/src/acpica/source/include/acutils.h
>> @@ -1059,6 +1059,12 @@ AcpiUtSafeStrcpy (
>> ACPI_SIZE DestSize,
>> char *Source);
>> +void
>> +AcpiUtSafeStrncpy (
>> + char *Dest,
>> + char *Source,
>> + ACPI_SIZE DestSize);
>> +
>> BOOLEAN
>> AcpiUtSafeStrcat (
>> char *Dest,
>> diff --git a/src/acpica/source/os_specific/service_layers/osgendbg.c
>> b/src/acpica/source/os_specific/service_layers/osgendbg.c
>> index 504874bf..581cee33 100644
>> --- a/src/acpica/source/os_specific/service_layers/osgendbg.c
>> +++ b/src/acpica/source/os_specific/service_layers/osgendbg.c
>> @@ -1,6 +1,6 @@
>>
>> /******************************************************************************
>>
>> *
>> - * Module Name: osgendbg - Generic debugger command singalling
>> + * Module Name: osgendbg - Generic debugger command signalling
>> *
>>
>> *****************************************************************************/
>>
>> @@ -169,6 +169,7 @@ static ACPI_MUTEX AcpiGbl_DbCommandReady;
>> static ACPI_MUTEX AcpiGbl_DbCommandComplete;
>> static BOOLEAN AcpiGbl_DbCommandSignalsInitialized =
>> FALSE;
>> +
>>
>> /******************************************************************************
>>
>> *
>> * FUNCTION: AcpiDbRunRemoteDebugger
>> @@ -213,7 +214,7 @@ AcpiDbRunRemoteDebugger (
>> Ptr++;
>> }
>> - strncpy (AcpiGbl_DbLineBuf, Cmd,
>> ACPI_DB_LINE_BUFFER_SIZE);
>> + AcpiUtSafeStrncpy (AcpiGbl_DbLineBuf, Cmd,
>> ACPI_DB_LINE_BUFFER_SIZE);
>> Ptr++;
>> Cmd = Ptr;
>> }
>> diff --git a/src/acpica/source/tools/acpiexec/aehandlers.c
>> b/src/acpica/source/tools/acpiexec/aehandlers.c
>> index b2854195..1ed341d9 100644
>> --- a/src/acpica/source/tools/acpiexec/aehandlers.c
>> +++ b/src/acpica/source/tools/acpiexec/aehandlers.c
>> @@ -526,10 +526,12 @@ AeAttachedDataHandler (
>> {
>> ACPI_NAMESPACE_NODE *Node = ACPI_CAST_PTR
>> (ACPI_NAMESPACE_NODE, Data);
>> + ACPI_FUNCTION_NAME (AeAttachedDataHandler1);
>> - AcpiOsPrintf (AE_PREFIX
>> - "Received an attached data deletion (1) on %4.4s\n",
>> - Node->Name.Ascii);
>> +
>> + ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
>> + "Received an attached data deletion at handler 1 on %4.4s\n",
>> + Node->Name.Ascii));
>> }
>> @@ -549,10 +551,12 @@ AeAttachedDataHandler2 (
>> {
>> ACPI_NAMESPACE_NODE *Node = ACPI_CAST_PTR
>> (ACPI_NAMESPACE_NODE, Data);
>> + ACPI_FUNCTION_NAME (AeAttachedDataHandler2);
>> - AcpiOsPrintf (AE_PREFIX
>> - "Received an attached data deletion (2) on %4.4s\n",
>> - Node->Name.Ascii);
>> +
>> + ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
>> + "Received an attached data deletion at handler 2 on %4.4s\n",
>> + Node->Name.Ascii));
>> }
>>
>
>
More information about the fwts-devel
mailing list