summaryrefslogtreecommitdiff
path: root/source/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler')
-rw-r--r--source/compiler/aslcodegen.c19
-rw-r--r--source/compiler/aslcompile.c2
-rw-r--r--source/compiler/asldebug.c2
-rw-r--r--source/compiler/aslfiles.c2
-rw-r--r--source/compiler/asloptions.c20
-rw-r--r--source/compiler/aslparseop.c6
-rw-r--r--source/compiler/aslstartup.c4
-rw-r--r--source/compiler/aslsupport.l18
-rw-r--r--source/compiler/asltree.c8
-rw-r--r--source/compiler/aslutils.c2
-rw-r--r--source/compiler/cvcompiler.c10
-rw-r--r--source/compiler/cvdisasm.c4
-rw-r--r--source/compiler/cvparser.c6
-rw-r--r--source/compiler/dtcompile.c10
-rw-r--r--source/compiler/dttable1.c10
-rw-r--r--source/compiler/prscan.c2
16 files changed, 63 insertions, 62 deletions
diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c
index a527ddda832a..ea879b8c9461 100644
--- a/source/compiler/aslcodegen.c
+++ b/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/source/compiler/aslcompile.c b/source/compiler/aslcompile.c
index 1ddb8864c465..ae78cec4da33 100644
--- a/source/compiler/aslcompile.c
+++ b/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/source/compiler/asldebug.c b/source/compiler/asldebug.c
index ba252251f72e..0dab6d57063c 100644
--- a/source/compiler/asldebug.c
+++ b/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/source/compiler/aslfiles.c b/source/compiler/aslfiles.c
index 53df683e553f..177a329531ea 100644
--- a/source/compiler/aslfiles.c
+++ b/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/source/compiler/asloptions.c b/source/compiler/asloptions.c
index 683aaa2f4ff6..29a5c762d609 100644
--- a/source/compiler/asloptions.c
+++ b/source/compiler/asloptions.c
@@ -323,7 +323,7 @@ AslDoOptions (
Gbl_IntegerOptimizationFlag = FALSE;
Gbl_ReferenceOptimizationFlag = FALSE;
Gbl_OptimizeTrivialParseNodes = FALSE;
- Gbl_CaptureComments = TRUE;
+ AcpiGbl_CaptureComments = TRUE;
AcpiGbl_DoDisassemblerOptimizations = FALSE;
AcpiGbl_DebugAslConversion = TRUE;
AcpiGbl_DmEmitExternalOpcodes = TRUE;
@@ -391,7 +391,7 @@ AslDoOptions (
Gbl_IntegerOptimizationFlag = FALSE;
Gbl_ReferenceOptimizationFlag = FALSE;
Gbl_OptimizeTrivialParseNodes = FALSE;
- Gbl_CaptureComments = TRUE;
+ AcpiGbl_CaptureComments = TRUE;
AcpiGbl_DoDisassemblerOptimizations = FALSE;
AcpiGbl_DmEmitExternalOpcodes = TRUE;
Gbl_DoExternalsInPlace = TRUE;
@@ -416,25 +416,11 @@ AslDoOptions (
{
case '^':
- /* Get the required argument */
-
- if (AcpiGetoptArgument (argc, argv))
- {
- return (-1);
- }
-
Gbl_DoCompile = FALSE;
break;
case 'a':
- /* Get the required argument */
-
- if (AcpiGetoptArgument (argc, argv))
- {
- return (-1);
- }
-
Gbl_DoCompile = FALSE;
Gbl_DisassembleAll = TRUE;
break;
@@ -796,8 +782,8 @@ AslDoOptions (
Gbl_IntegerOptimizationFlag = FALSE;
Gbl_ReferenceOptimizationFlag = FALSE;
Gbl_OptimizeTrivialParseNodes = FALSE;
- Gbl_CaptureComments = TRUE;
Gbl_DoExternalsInPlace = TRUE;
+ AcpiGbl_CaptureComments = TRUE;
return (0);
case 'r': /* Override revision found in table header */
diff --git a/source/compiler/aslparseop.c b/source/compiler/aslparseop.c
index 438e5a281a40..ac80a0a24b8c 100644
--- a/source/compiler/aslparseop.c
+++ b/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/source/compiler/aslstartup.c b/source/compiler/aslstartup.c
index fa1ac25bd9ed..3cc260056bcb 100644
--- a/source/compiler/aslstartup.c
+++ b/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/source/compiler/aslsupport.l b/source/compiler/aslsupport.l
index 40cead33c3c5..db243e4a87ce 100644
--- a/source/compiler/aslsupport.l
+++ b/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/source/compiler/asltree.c b/source/compiler/asltree.c
index 084bc4d59ac9..06bf75995322 100644
--- a/source/compiler/asltree.c
+++ b/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/source/compiler/aslutils.c b/source/compiler/aslutils.c
index 82d11b4b967e..0696b84d7939 100644
--- a/source/compiler/aslutils.c
+++ b/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/source/compiler/cvcompiler.c b/source/compiler/cvcompiler.c
index d2a6c8f06fc6..8da66782fc19 100644
--- a/source/compiler/cvcompiler.c
+++ b/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/source/compiler/cvdisasm.c b/source/compiler/cvdisasm.c
index 8682f04e5178..d382aaa550ce 100644
--- a/source/compiler/cvdisasm.c
+++ b/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/source/compiler/cvparser.c b/source/compiler/cvparser.c
index b2e3e7674295..a3ef2806cc3b 100644
--- a/source/compiler/cvparser.c
+++ b/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/source/compiler/dtcompile.c b/source/compiler/dtcompile.c
index 0823196feb1c..47f72eb31e67 100644
--- a/source/compiler/dtcompile.c
+++ b/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/source/compiler/dttable1.c b/source/compiler/dttable1.c
index 138f4f3a1731..9b755509ff09 100644
--- a/source/compiler/dttable1.c
+++ b/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/source/compiler/prscan.c b/source/compiler/prscan.c
index a012e111b06c..a46b41f48bc6 100644
--- a/source/compiler/prscan.c
+++ b/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",