summaryrefslogtreecommitdiffstats
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/aslanalyze.c121
-rw-r--r--compiler/aslcodegen.c4
-rw-r--r--compiler/aslcompile.c27
-rw-r--r--compiler/aslcompiler.h7
-rw-r--r--compiler/asldefine.h16
-rw-r--r--compiler/aslmain.c7
-rw-r--r--compiler/aslmessages.h436
-rw-r--r--compiler/aslresource.c62
-rw-r--r--compiler/aslrestype1.c4
-rw-r--r--compiler/aslrestype1i.c2
-rw-r--r--compiler/aslrestype2d.c6
-rw-r--r--compiler/aslrestype2e.c6
-rw-r--r--compiler/aslrestype2q.c6
-rw-r--r--compiler/aslrestype2w.c6
-rw-r--r--compiler/asltypes.h303
-rw-r--r--compiler/aslutils.c5
-rw-r--r--compiler/dtcompile.c2
-rw-r--r--compiler/dttemplate.c6
18 files changed, 651 insertions, 375 deletions
diff --git a/compiler/aslanalyze.c b/compiler/aslanalyze.c
index 4846c6b..1087bca 100644
--- a/compiler/aslanalyze.c
+++ b/compiler/aslanalyze.c
@@ -658,6 +658,95 @@ AnMapObjTypeToBtype (
/*******************************************************************************
*
+ * FUNCTION: AnCheckId
+ *
+ * PARAMETERS: Op - Current parse op
+ * Type - HID or CID
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Perform various checks on _HID and _CID strings. Only limited
+ * checks can be performed on _CID strings.
+ *
+ ******************************************************************************/
+
+#define ASL_TYPE_HID 0
+#define ASL_TYPE_CID 1
+#include <string.h>
+
+static void
+AnCheckId (
+ ACPI_PARSE_OBJECT *Op,
+ ACPI_NAME Type)
+{
+ UINT32 i;
+ ACPI_SIZE Length;
+ UINT32 AlphaPrefixLength;
+
+
+ if (Op->Asl.ParseOpcode != PARSEOP_STRING_LITERAL)
+ {
+ return;
+ }
+
+ Length = strlen (Op->Asl.Value.String);
+
+ /*
+ * If _HID/_CID is a string, all characters must be alphanumeric.
+ * One of the things we want to catch here is the use of
+ * a leading asterisk in the string -- an odd construct
+ * that certain platform manufacturers are fond of.
+ */
+ for (i = 0; Op->Asl.Value.String[i]; i++)
+ {
+ if (!isalnum ((int) Op->Asl.Value.String[i]))
+ {
+ AslError (ASL_ERROR, ASL_MSG_ALPHANUMERIC_STRING,
+ Op, Op->Asl.Value.String);
+ break;
+ }
+ }
+
+ if (Type == ASL_TYPE_CID)
+ {
+ /* _CID strings are bus-specific, no more checks can be performed */
+
+ return;
+ }
+
+ /* _HID String must be of the form "XXX####" or "ACPI####" */
+
+ if ((Length < 7) || (Length > 8))
+ {
+ AslError (ASL_ERROR, ASL_MSG_HID_LENGTH,
+ Op, Op->Asl.Value.String);
+ return;
+ }
+
+ /* _HID Length is valid, now check for uppercase (first 3 or 4 chars) */
+
+ AlphaPrefixLength = 3;
+ if (Length >= 8)
+ {
+ AlphaPrefixLength = 4;
+ }
+
+ /* Ensure the alphabetic prefix is all uppercase */
+
+ for (i = 0; (i < AlphaPrefixLength) && Op->Asl.Value.String[i]; i++)
+ {
+ if (!isupper ((int) Op->Asl.Value.String[i]))
+ {
+ AslError (ASL_ERROR, ASL_MSG_UPPER_CASE,
+ Op, &Op->Asl.Value.String[i]);
+ break;
+ }
+ }
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: AnMethodAnalysisWalkBegin
*
* PARAMETERS: ASL_WALK_CALLBACK
@@ -983,23 +1072,29 @@ AnMethodAnalysisWalkBegin (
if (!ACPI_STRCMP (METHOD_NAME__HID, Op->Asl.NameSeg))
{
Next = Op->Asl.Child->Asl.Next;
- if (Next->Asl.ParseOpcode == PARSEOP_STRING_LITERAL)
+ AnCheckId (Next, ASL_TYPE_HID);
+ }
+
+ /* Special typechecking for _CID */
+
+ else if (!ACPI_STRCMP (METHOD_NAME__CID, Op->Asl.NameSeg))
+ {
+ Next = Op->Asl.Child->Asl.Next;
+
+ if ((Next->Asl.ParseOpcode == PARSEOP_PACKAGE) ||
+ (Next->Asl.ParseOpcode == PARSEOP_VAR_PACKAGE))
{
- /*
- * _HID is a string, all characters must be alphanumeric.
- * One of the things we want to catch here is the use of
- * a leading asterisk in the string.
- */
- for (i = 0; Next->Asl.Value.String[i]; i++)
+ Next = Next->Asl.Child;
+ while (Next)
{
- if (!isalnum ((int) Next->Asl.Value.String[i]))
- {
- AslError (ASL_ERROR, ASL_MSG_ALPHANUMERIC_STRING,
- Next, Next->Asl.Value.String);
- break;
- }
+ AnCheckId (Next, ASL_TYPE_CID);
+ Next = Next->Asl.Next;
}
}
+ else
+ {
+ AnCheckId (Next, ASL_TYPE_CID);
+ }
}
break;
diff --git a/compiler/aslcodegen.c b/compiler/aslcodegen.c
index dcd6997..3446450 100644
--- a/compiler/aslcodegen.c
+++ b/compiler/aslcodegen.c
@@ -513,11 +513,11 @@ CgWriteTableHeader (
/* Compiler ID */
- strncpy (TableHeader.AslCompilerId, CompilerCreatorId, 4);
+ strncpy (TableHeader.AslCompilerId, ASL_CREATOR_ID, 4);
/* Compiler version */
- TableHeader.AslCompilerRevision = CompilerCreatorRevision;
+ TableHeader.AslCompilerRevision = ASL_REVISION;
/* Table length. Checksum zero for now, will rewrite later */
diff --git a/compiler/aslcompile.c b/compiler/aslcompile.c
index f199c5b..019f9e4 100644
--- a/compiler/aslcompile.c
+++ b/compiler/aslcompile.c
@@ -117,6 +117,7 @@
#include <stdio.h>
#include <time.h>
#include "aslcompiler.h"
+#include <acapps.h>
#define _COMPONENT ACPI_COMPILER
ACPI_MODULE_NAME ("aslcompile")
@@ -155,6 +156,7 @@ AslCompilerSignon (
UINT32 FileId)
{
char *Prefix = "";
+ char *UtilityName;
/* Set line prefix depending on the destination file type */
@@ -192,36 +194,21 @@ AslCompilerSignon (
break;
}
- /*
- * Compiler signon with copyright
- */
- FlPrintFile (FileId,
- "%s\n%s%s\n%s",
- Prefix,
- Prefix, IntelAcpiCA,
- Prefix);
-
/* Running compiler or disassembler? */
if (Gbl_DisasmFlag)
{
- FlPrintFile (FileId,
- "%s", DisassemblerId);
+ UtilityName = AML_DISASSEMBLER_NAME;
}
else
{
- FlPrintFile (FileId,
- "%s", CompilerId);
+ UtilityName = ASL_COMPILER_NAME;
}
- /* Version, build date, copyright, compliance */
+ /* Compiler signon with copyright */
- FlPrintFile (FileId,
- " version %X [%s]\n%s%s\n%s%s\n%s\n",
- (UINT32) ACPI_CA_VERSION, __DATE__,
- Prefix, CompilerCopyright,
- Prefix, CompilerCompliance,
- Prefix);
+ FlPrintFile (FileId, "%s\n", Prefix);
+ FlPrintFile (FileId, ACPI_COMMON_HEADER (UtilityName, Prefix));
}
diff --git a/compiler/aslcompiler.h b/compiler/aslcompiler.h
index 4e97677..ac26bd1 100644
--- a/compiler/aslcompiler.h
+++ b/compiler/aslcompiler.h
@@ -147,6 +147,7 @@
#include "asldefine.h"
#include "asltypes.h"
+#include "aslmessages.h"
#include "aslglobal.h"
@@ -795,7 +796,8 @@ RsSmallAddressCheck (
ACPI_PARSE_OBJECT *MinOp,
ACPI_PARSE_OBJECT *MaxOp,
ACPI_PARSE_OBJECT *LengthOp,
- ACPI_PARSE_OBJECT *AlignOp);
+ ACPI_PARSE_OBJECT *AlignOp,
+ ACPI_PARSE_OBJECT *Op);
void
RsLargeAddressCheck (
@@ -807,7 +809,8 @@ RsLargeAddressCheck (
ACPI_PARSE_OBJECT *MinOp,
ACPI_PARSE_OBJECT *MaxOp,
ACPI_PARSE_OBJECT *LengthOp,
- ACPI_PARSE_OBJECT *GranOp);
+ ACPI_PARSE_OBJECT *GranOp,
+ ACPI_PARSE_OBJECT *Op);
UINT16
RsGetStringDataLength (
diff --git a/compiler/asldefine.h b/compiler/asldefine.h
index 4cd8130..4105aeb 100644
--- a/compiler/asldefine.h
+++ b/compiler/asldefine.h
@@ -122,15 +122,13 @@
/*
* Compiler versions and names
*/
-#define CompilerCreatorRevision ACPI_CA_VERSION
-
-#define IntelAcpiCA "Intel ACPI Component Architecture"
-#define CompilerId "ASL Optimizing Compiler"
-#define DisassemblerId "AML Disassembler"
-#define CompilerCopyright "Copyright (c) 2000 - 2010 Intel Corporation"
-#define CompilerCompliance "Supports ACPI Specification Revision 4.0a"
-#define CompilerName "iasl"
-#define CompilerCreatorId "INTL"
+#define ASL_REVISION ACPI_CA_VERSION
+#define ASL_COMPILER_NAME "ASL Optimizing Compiler"
+#define AML_DISASSEMBLER_NAME "AML Disassembler"
+#define ASL_INVOCATION_NAME "iasl"
+#define ASL_CREATOR_ID "INTL"
+
+#define ASL_COMPLIANCE "Supports ACPI Specification Revision 4.0a"
/* Configuration constants */
diff --git a/compiler/aslmain.c b/compiler/aslmain.c
index 90faff7..7b5345b 100644
--- a/compiler/aslmain.c
+++ b/compiler/aslmain.c
@@ -296,7 +296,8 @@ Usage (
void)
{
- printf ("Usage: %s [Options] [Files]\n\n", CompilerName);
+ printf ("%s\n", ASL_COMPLIANCE);
+ printf ("Usage: %s [Options] [Files]\n\n", ASL_INVOCATION_NAME);
Options ();
}
@@ -903,7 +904,7 @@ AslCommandLine (
if (argc < 2)
{
- AslCompilerSignon (ASL_FILE_STDOUT);
+ printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME));
Usage ();
exit (1);
}
@@ -934,7 +935,7 @@ AslCommandLine (
if (Gbl_DoSignon)
{
- AslCompilerSignon (ASL_FILE_STDOUT);
+ printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME));
}
/* Abort if anything went wrong on the command line */
diff --git a/compiler/aslmessages.h b/compiler/aslmessages.h
new file mode 100644
index 0000000..0457800
--- /dev/null
+++ b/compiler/aslmessages.h
@@ -0,0 +1,436 @@
+
+/******************************************************************************
+ *
+ * Module Name: aslmessages.h - Compiler error/warning messages
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * 1. Copyright Notice
+ *
+ * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp.
+ * All rights reserved.
+ *
+ * 2. License
+ *
+ * 2.1. This is your license from Intel Corp. under its intellectual property
+ * rights. You may have additional license terms from the party that provided
+ * you this software, covering your right to use that party's intellectual
+ * property rights.
+ *
+ * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
+ * copy of the source code appearing in this file ("Covered Code") an
+ * irrevocable, perpetual, worldwide license under Intel's copyrights in the
+ * base code distributed originally by Intel ("Original Intel Code") to copy,
+ * make derivatives, distribute, use and display any portion of the Covered
+ * Code in any form, with the right to sublicense such rights; and
+ *
+ * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
+ * license (with the right to sublicense), under only those claims of Intel
+ * patents that are infringed by the Original Intel Code, to make, use, sell,
+ * offer to sell, and import the Covered Code and derivative works thereof
+ * solely to the minimum extent necessary to exercise the above copyright
+ * license, and in no event shall the patent license extend to any additions
+ * to or modifications of the Original Intel Code. No other license or right
+ * is granted directly or by implication, estoppel or otherwise;
+ *
+ * The above copyright and patent license is granted only if the following
+ * conditions are met:
+ *
+ * 3. Conditions
+ *
+ * 3.1. Redistribution of Source with Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification with rights to further distribute source must include
+ * the above Copyright Notice, the above License, this list of Conditions,
+ * and the following Disclaimer and Export Compliance provision. In addition,
+ * Licensee must cause all Covered Code to which Licensee contributes to
+ * contain a file documenting the changes Licensee made to create that Covered
+ * Code and the date of any change. Licensee must include in that file the
+ * documentation of any changes made by any predecessor Licensee. Licensee
+ * must include a prominent statement that the modification is derived,
+ * directly or indirectly, from Original Intel Code.
+ *
+ * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification without rights to further distribute source must
+ * include the following Disclaimer and Export Compliance provision in the
+ * documentation and/or other materials provided with distribution. In
+ * addition, Licensee may not authorize further sublicense of source of any
+ * portion of the Covered Code, and must include terms to the effect that the
+ * license from Licensee to its licensee is limited to the intellectual
+ * property embodied in the software Licensee provides to its licensee, and
+ * not to intellectual property embodied in modifications its licensee may
+ * make.
+ *
+ * 3.3. Redistribution of Executable. Redistribution in executable form of any
+ * substantial portion of the Covered Code or modification must reproduce the
+ * above Copyright Notice, and the following Disclaimer and Export Compliance
+ * provision in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3.4. Intel retains all right, title, and interest in and to the Original
+ * Intel Code.
+ *
+ * 3.5. Neither the name Intel nor any other trademark owned or controlled by
+ * Intel shall be used in advertising or otherwise to promote the sale, use or
+ * other dealings in products derived from or relating to the Covered Code
+ * without prior written authorization from Intel.
+ *
+ * 4. Disclaimer and Export Compliance
+ *
+ * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
+ * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
+ * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
+ * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
+ * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
+ * PARTICULAR PURPOSE.
+ *
+ * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
+ * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
+ * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
+ * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
+ * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
+ * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
+ * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
+ * LIMITED REMEDY.
+ *
+ * 4.3. Licensee shall not export, either directly or indirectly, any of this
+ * software or system incorporating such software without first obtaining any
+ * required license or other approval from the U. S. Department of Commerce or
+ * any other agency or department of the United States Government. In the
+ * event Licensee exports any such software from the United States or
+ * re-exports any such software from a foreign destination, Licensee shall
+ * ensure that the distribution and export/re-export of the software is in
+ * compliance with all laws, regulations, orders, or other restrictions of the
+ * U.S. Export Administration Regulations. Licensee agrees that neither it nor
+ * any of its subsidiaries will export/re-export any technical data, process,
+ * software, or service, directly or indirectly, to any country for which the
+ * United States government or any agency thereof requires an export license,
+ * other governmental approval, or letter of assurance, without first obtaining
+ * such license, approval or letter.
+ *
+ *****************************************************************************/
+
+
+#ifndef __ASLMESSAGES_H
+#define __ASLMESSAGES_H
+
+
+#define ASL_WARNING 0
+#define ASL_WARNING2 1
+#define ASL_WARNING3 2
+#define ASL_ERROR 3
+#define ASL_REMARK 4
+#define ASL_OPTIMIZATION 5
+#define ASL_NUM_REPORT_LEVELS 6
+
+
+/* Values for all compiler messages */
+
+typedef enum
+{
+ ASL_MSG_RESERVED = 0,
+ ASL_MSG_ALPHANUMERIC_STRING,
+ ASL_MSG_AML_NOT_IMPLEMENTED,
+ ASL_MSG_ARG_COUNT_HI,
+ ASL_MSG_ARG_COUNT_LO,
+ ASL_MSG_ARG_INIT,
+ ASL_MSG_BACKWARDS_OFFSET,
+ ASL_MSG_BITS_TO_BYTES,
+ ASL_MSG_BUFFER_LENGTH,
+ ASL_MSG_BYTES_TO_BITS,
+ ASL_MSG_CLOSE,
+ ASL_MSG_COMPILER_INTERNAL,
+ ASL_MSG_CONSTANT_EVALUATION,
+ ASL_MSG_CONSTANT_FOLDED,
+ ASL_MSG_CORE_EXCEPTION,
+ ASL_MSG_DEBUG_FILE_OPEN,
+ ASL_MSG_DEBUG_FILENAME,
+ ASL_MSG_DEPENDENT_NESTING,
+ ASL_MSG_DMA_CHANNEL,
+ ASL_MSG_DMA_LIST,
+ ASL_MSG_DUPLICATE_CASE,
+ ASL_MSG_DUPLICATE_ITEM,
+ ASL_MSG_EARLY_EOF,
+ ASL_MSG_ENCODING_LENGTH,
+ ASL_MSG_EX_INTERRUPT_LIST,
+ ASL_MSG_EX_INTERRUPT_LIST_MIN,
+ ASL_MSG_EX_INTERRUPT_NUMBER,
+ ASL_MSG_FIELD_ACCESS_WIDTH,
+ ASL_MSG_FIELD_UNIT_ACCESS_WIDTH,
+ ASL_MSG_FIELD_UNIT_OFFSET,
+ ASL_MSG_INCLUDE_FILE_OPEN,
+ ASL_MSG_INPUT_FILE_OPEN,
+ ASL_MSG_INTEGER_LENGTH,
+ ASL_MSG_INTEGER_OPTIMIZATION,
+ ASL_MSG_INTERRUPT_LIST,
+ ASL_MSG_INTERRUPT_NUMBER,
+ ASL_MSG_INVALID_CONSTANT_OP,
+ ASL_MSG_INVALID_EISAID,
+ ASL_MSG_INVALID_ESCAPE,
+ ASL_MSG_INVALID_OPERAND,
+ ASL_MSG_INVALID_PERFORMANCE,
+ ASL_MSG_INVALID_PRIORITY,
+ ASL_MSG_INVALID_STRING,
+ ASL_MSG_INVALID_TARGET,
+ ASL_MSG_INVALID_TIME,
+ ASL_MSG_INVALID_TYPE,
+ ASL_MSG_INVALID_UUID,
+ ASL_MSG_LIST_LENGTH_LONG,
+ ASL_MSG_LIST_LENGTH_SHORT,
+ ASL_MSG_LISTING_FILE_OPEN,
+ ASL_MSG_LISTING_FILENAME,
+ ASL_MSG_LOCAL_INIT,
+ ASL_MSG_LONG_LINE,
+ ASL_MSG_MEMORY_ALLOCATION,
+ ASL_MSG_MISSING_ENDDEPENDENT,
+ ASL_MSG_MISSING_STARTDEPENDENT,
+ ASL_MSG_MULTIPLE_TYPES,
+ ASL_MSG_NAME_EXISTS,
+ ASL_MSG_NAME_OPTIMIZATION,
+ ASL_MSG_NESTED_COMMENT,
+ ASL_MSG_NO_CASES,
+ ASL_MSG_NO_RETVAL,
+ ASL_MSG_NO_WHILE,
+ ASL_MSG_NON_ASCII,
+ ASL_MSG_NOT_EXIST,
+ ASL_MSG_NOT_FOUND,
+ ASL_MSG_NOT_METHOD,
+ ASL_MSG_NOT_PARAMETER,
+ ASL_MSG_NOT_REACHABLE,
+ ASL_MSG_OPEN,
+ ASL_MSG_OUTPUT_FILE_OPEN,
+ ASL_MSG_OUTPUT_FILENAME,
+ ASL_MSG_PACKAGE_LENGTH,
+ ASL_MSG_READ,
+ ASL_MSG_RECURSION,
+ ASL_MSG_REGION_BUFFER_ACCESS,
+ ASL_MSG_REGION_BYTE_ACCESS,
+ ASL_MSG_RESERVED_ARG_COUNT_HI,
+ ASL_MSG_RESERVED_ARG_COUNT_LO,
+ ASL_MSG_RESERVED_METHOD,
+ ASL_MSG_RESERVED_OPERAND_TYPE,
+ ASL_MSG_RESERVED_RETURN_VALUE,
+ ASL_MSG_RESERVED_USE,
+ ASL_MSG_RESERVED_WORD,
+ ASL_MSG_RESOURCE_FIELD,
+ ASL_MSG_RESOURCE_INDEX,
+ ASL_MSG_RESOURCE_LIST,
+ ASL_MSG_RESOURCE_SOURCE,
+ ASL_MSG_RETURN_TYPES,
+ ASL_MSG_SCOPE_FWD_REF,
+ ASL_MSG_SCOPE_TYPE,
+ ASL_MSG_SEEK,
+ ASL_MSG_SINGLE_NAME_OPTIMIZATION,
+ ASL_MSG_SOME_NO_RETVAL,
+ ASL_MSG_SWITCH_TYPE,
+ ASL_MSG_SYNC_LEVEL,
+ ASL_MSG_SYNTAX,
+ ASL_MSG_TABLE_SIGNATURE,
+ ASL_MSG_TOO_MANY_TEMPS,
+ ASL_MSG_UNKNOWN_RESERVED_NAME,
+ ASL_MSG_UNREACHABLE_CODE,
+ ASL_MSG_UNSUPPORTED,
+ ASL_MSG_VENDOR_LIST,
+ ASL_MSG_WRITE,
+ ASL_MSG_MULTIPLE_DEFAULT,
+ ASL_MSG_TIMEOUT,
+ ASL_MSG_RESULT_NOT_USED,
+ ASL_MSG_NOT_REFERENCED,
+ ASL_MSG_NON_ZERO,
+ ASL_MSG_STRING_LENGTH,
+ ASL_MSG_SERIALIZED,
+ ASL_MSG_COMPILER_RESERVED,
+ ASL_MSG_NAMED_OBJECT_IN_WHILE,
+ ASL_MSG_LOCAL_OUTSIDE_METHOD,
+ ASL_MSG_ALIGNMENT,
+ ASL_MSG_ISA_ADDRESS,
+ ASL_MSG_INVALID_MIN_MAX,
+ ASL_MSG_INVALID_LENGTH,
+ ASL_MSG_INVALID_LENGTH_FIXED,
+ ASL_MSG_INVALID_GRANULARITY,
+ ASL_MSG_INVALID_GRAN_FIXED,
+ ASL_MSG_INVALID_ACCESS_SIZE,
+ ASL_MSG_INVALID_ADDR_FLAGS,
+ ASL_MSG_NULL_DESCRIPTOR,
+ ASL_MSG_UPPER_CASE,
+ ASL_MSG_HID_LENGTH,
+ ASL_MSG_INVALID_FIELD_NAME,
+ ASL_MSG_INTEGER_SIZE,
+ ASL_MSG_INVALID_HEX_INTEGER,
+ ASL_MSG_BUFFER_ELEMENT,
+ ASL_MSG_RESERVED_VALUE,
+ ASL_MSG_FLAG_VALUE,
+ ASL_MSG_ZERO_VALUE,
+ ASL_MSG_UNKNOWN_TABLE,
+ ASL_MSG_UNKNOWN_SUBTABLE,
+ ASL_MSG_OEM_TABLE
+
+} ASL_MESSAGE_IDS;
+
+
+#ifdef ASL_EXCEPTIONS
+
+/* Actual message strings for each compiler message */
+
+char *AslMessages [] = {
+/* The zeroth message is reserved */ "",
+/* ASL_MSG_ALPHANUMERIC_STRING */ "String must be entirely alphanumeric",
+/* ASL_MSG_AML_NOT_IMPLEMENTED */ "Opcode is not implemented in compiler AML code generator",
+/* ASL_MSG_ARG_COUNT_HI */ "Too many arguments",
+/* ASL_MSG_ARG_COUNT_LO */ "Too few arguments",
+/* ASL_MSG_ARG_INIT */ "Method argument is not initialized",
+/* ASL_MSG_BACKWARDS_OFFSET */ "Invalid backwards offset",
+/* ASL_MSG_BITS_TO_BYTES */ "Field offset is in bits, but a byte offset is required",
+/* ASL_MSG_BUFFER_LENGTH */ "Effective AML buffer length is zero",
+/* ASL_MSG_BYTES_TO_BITS */ "Field offset is in bytes, but a bit offset is required",
+/* ASL_MSG_CLOSE */ "Could not close file",
+/* ASL_MSG_COMPILER_INTERNAL */ "Internal compiler error",
+/* ASL_MSG_CONSTANT_EVALUATION */ "Could not evaluate constant expression",
+/* ASL_MSG_CONSTANT_FOLDED */ "Constant expression evaluated and reduced",
+/* ASL_MSG_CORE_EXCEPTION */ "From ACPI CA Subsystem",
+/* ASL_MSG_DEBUG_FILE_OPEN */ "Could not open debug file",
+/* ASL_MSG_DEBUG_FILENAME */ "Could not create debug filename",
+/* ASL_MSG_DEPENDENT_NESTING */ "Dependent function macros cannot be nested",\
+/* ASL_MSG_DMA_CHANNEL */ "Invalid DMA channel (must be 0-7)",
+/* ASL_MSG_DMA_LIST */ "Too many DMA channels (8 max)",
+/* ASL_MSG_DUPLICATE_CASE */ "Case value already specified",
+/* ASL_MSG_DUPLICATE_ITEM */ "Duplicate value in list",
+/* ASL_MSG_EARLY_EOF */ "Premature end-of-file reached",
+/* ASL_MSG_ENCODING_LENGTH */ "Package length too long to encode",
+/* ASL_MSG_EX_INTERRUPT_LIST */ "Too many interrupts (255 max)",
+/* ASL_MSG_EX_INTERRUPT_LIST_MIN */ "Too few interrupts (1 minimum required)",
+/* ASL_MSG_EX_INTERRUPT_NUMBER */ "Invalid interrupt number (must be 32 bits)",
+/* ASL_MSG_FIELD_ACCESS_WIDTH */ "Access width is greater than region size",
+/* ASL_MSG_FIELD_UNIT_ACCESS_WIDTH */ "Access width of Field Unit extends beyond region limit",
+/* ASL_MSG_FIELD_UNIT_OFFSET */ "Field Unit extends beyond region limit",
+/* ASL_MSG_INCLUDE_FILE_OPEN */ "Could not open include file",
+/* ASL_MSG_INPUT_FILE_OPEN */ "Could not open input file",
+/* ASL_MSG_INTEGER_LENGTH */ "64-bit integer in 32-bit table, truncating",
+/* ASL_MSG_INTEGER_OPTIMIZATION */ "Integer optimized to single-byte AML opcode",
+/* ASL_MSG_INTERRUPT_LIST */ "Too many interrupts (16 max)",
+/* ASL_MSG_INTERRUPT_NUMBER */ "Invalid interrupt number (must be 0-15)",
+/* ASL_MSG_INVALID_CONSTANT_OP */ "Invalid operator in constant expression (not type 3/4/5)",
+/* ASL_MSG_INVALID_EISAID */ "EISAID string must be of the form \"UUUXXXX\" (3 uppercase, 4 hex digits)",
+/* ASL_MSG_INVALID_ESCAPE */ "Invalid or unknown escape sequence",
+/* ASL_MSG_INVALID_OPERAND */ "Invalid operand",
+/* ASL_MSG_INVALID_PERFORMANCE */ "Invalid performance/robustness value",
+/* ASL_MSG_INVALID_PRIORITY */ "Invalid priority value",
+/* ASL_MSG_INVALID_STRING */ "Invalid Hex/Octal Escape - Non-ASCII or NULL",
+/* ASL_MSG_INVALID_TARGET */ "Target operand not allowed in constant expression",
+/* ASL_MSG_INVALID_TIME */ "Time parameter too long (255 max)",
+/* ASL_MSG_INVALID_TYPE */ "Invalid type",
+/* ASL_MSG_INVALID_UUID */ "UUID string must be of the form \"aabbccdd-eeff-gghh-iijj-kkllmmnnoopp\"",
+/* ASL_MSG_LIST_LENGTH_LONG */ "Initializer list longer than declared package length",
+/* ASL_MSG_LIST_LENGTH_SHORT */ "Initializer list shorter than declared package length",
+/* ASL_MSG_LISTING_FILE_OPEN */ "Could not open listing file",
+/* ASL_MSG_LISTING_FILENAME */ "Could not create listing filename",
+/* ASL_MSG_LOCAL_INIT */ "Method local variable is not initialized",
+/* ASL_MSG_LONG_LINE */ "Splitting long input line",
+/* ASL_MSG_MEMORY_ALLOCATION */ "Memory allocation failure",
+/* ASL_MSG_MISSING_ENDDEPENDENT */ "Missing EndDependentFn() macro in dependent resource list",
+/* ASL_MSG_MISSING_STARTDEPENDENT */ "Missing StartDependentFn() macro in dependent resource list",
+/* ASL_MSG_MULTIPLE_TYPES */ "Multiple types",
+/* ASL_MSG_NAME_EXISTS */ "Name already exists in scope",
+/* ASL_MSG_NAME_OPTIMIZATION */ "NamePath optimized",
+/* ASL_MSG_NESTED_COMMENT */ "Nested comment found",
+/* ASL_MSG_NO_CASES */ "No Case statements under Switch",
+/* ASL_MSG_NO_RETVAL */ "Called method returns no value",
+/* ASL_MSG_NO_WHILE */ "No enclosing While statement",
+/* ASL_MSG_NON_ASCII */ "Invalid characters found in file",
+/* ASL_MSG_NOT_EXIST */ "Object does not exist",
+/* ASL_MSG_NOT_FOUND */ "Object not found or not accessible from scope",
+/* ASL_MSG_NOT_METHOD */ "Not a control method, cannot invoke",
+/* ASL_MSG_NOT_PARAMETER */ "Not a parameter, used as local only",
+/* ASL_MSG_NOT_REACHABLE */ "Object is not accessible from this scope",
+/* ASL_MSG_OPEN */ "Could not open file",
+/* ASL_MSG_OUTPUT_FILE_OPEN */ "Could not open output AML file",
+/* ASL_MSG_OUTPUT_FILENAME */ "Could not create output filename",
+/* ASL_MSG_PACKAGE_LENGTH */ "Effective AML package length is zero",
+/* ASL_MSG_READ */ "Could not read file",
+/* ASL_MSG_RECURSION */ "Recursive method call",
+/* ASL_MSG_REGION_BUFFER_ACCESS */ "Host Operation Region requires BufferAcc access",
+/* ASL_MSG_REGION_BYTE_ACCESS */ "Host Operation Region requires ByteAcc access",
+/* ASL_MSG_RESERVED_ARG_COUNT_HI */ "Reserved method has too many arguments",
+/* ASL_MSG_RESERVED_ARG_COUNT_LO */ "Reserved method has too few arguments",
+/* ASL_MSG_RESERVED_METHOD */ "Reserved name must be a control method",
+/* ASL_MSG_RESERVED_OPERAND_TYPE */ "Invalid object type for reserved name",
+/* ASL_MSG_RESERVED_RETURN_VALUE */ "Reserved method must return a value",
+/* ASL_MSG_RESERVED_USE */ "Invalid use of reserved name",
+/* ASL_MSG_RESERVED_WORD */ "Use of reserved name",
+/* ASL_MSG_RESOURCE_FIELD */ "Resource field name cannot be used as a target",
+/* ASL_MSG_RESOURCE_INDEX */ "Missing ResourceSourceIndex (required)",
+/* ASL_MSG_RESOURCE_LIST */ "Too many resource items (internal error)",
+/* ASL_MSG_RESOURCE_SOURCE */ "Missing ResourceSource string (required)",
+/* ASL_MSG_RETURN_TYPES */ "Not all control paths return a value",
+/* ASL_MSG_SCOPE_FWD_REF */ "Forward references from Scope operator not allowed",
+/* ASL_MSG_SCOPE_TYPE */ "Existing object has invalid type for Scope operator",
+/* ASL_MSG_SEEK */ "Could not seek file",
+/* ASL_MSG_SINGLE_NAME_OPTIMIZATION */ "NamePath optimized to NameSeg (uses run-time search path)",
+/* ASL_MSG_SOME_NO_RETVAL */ "Called method may not always return a value",
+/* ASL_MSG_SWITCH_TYPE */ "Switch expression is not a static Integer/Buffer/String data type, defaulting to Integer",
+/* ASL_MSG_SYNC_LEVEL */ "SyncLevel must be in the range 0-15",
+/* ASL_MSG_SYNTAX */ "",
+/* ASL_MSG_TABLE_SIGNATURE */ "Invalid Table Signature",
+/* ASL_MSG_TOO_MANY_TEMPS */ "Method requires too many temporary variables (_T_x)",
+/* ASL_MSG_UNKNOWN_RESERVED_NAME */ "Unknown reserved name",
+/* ASL_MSG_UNREACHABLE_CODE */ "Statement is unreachable",
+/* ASL_MSG_UNSUPPORTED */ "Unsupported feature",
+/* ASL_MSG_VENDOR_LIST */ "Too many vendor data bytes (7 max)",
+/* ASL_MSG_WRITE */ "Could not write file",
+/* ASL_MSG_MULTIPLE_DEFAULT */ "More than one Default statement within Switch construct",
+/* ASL_MSG_TIMEOUT */ "Possible operator timeout is ignored",
+/* ASL_MSG_RESULT_NOT_USED */ "Result is not used, operator has no effect",
+/* ASL_MSG_NOT_REFERENCED */ "Namespace object is not referenced",
+/* ASL_MSG_NON_ZERO */ "Operand evaluates to zero",
+/* ASL_MSG_STRING_LENGTH */ "String literal too long",
+/* ASL_MSG_SERIALIZED */ "Control Method marked Serialized",
+/* ASL_MSG_COMPILER_RESERVED */ "Use of compiler reserved name",
+/* ASL_MSG_NAMED_OBJECT_IN_WHILE */ "Creating a named object in a While loop",
+/* ASL_MSG_LOCAL_OUTSIDE_METHOD */ "Local or Arg used outside a control method",
+/* ASL_MSG_ALIGNMENT */ "Must be a multiple of alignment/granularity value",
+/* ASL_MSG_ISA_ADDRESS */ "Maximum 10-bit ISA address (0x3FF)",
+/* ASL_MSG_INVALID_MIN_MAX */ "Address Min is greater than Address Max",
+/* ASL_MSG_INVALID_LENGTH */ "Length is larger than Min/Max window",
+/* ASL_MSG_INVALID_LENGTH_FIXED */ "Length is not equal to fixed Min/Max window",
+/* ASL_MSG_INVALID_GRANULARITY */ "Granularity must be zero or a power of two minus one",
+/* ASL_MSG_INVALID_GRAN_FIXED */ "Granularity must be zero for fixed Min/Max",
+/* ASL_MSG_INVALID_ACCESS_SIZE */ "Invalid AccessSize (Maximum is 4 - QWord access)",
+/* ASL_MSG_INVALID_ADDR_FLAGS */ "Invalid combination of Length and Min/Max fixed flags",
+/* ASL_MSG_NULL_DESCRIPTOR */ "Min/Max/Length/Gran are all zero, but no resource tag",
+/* ASL_MSG_UPPER_CASE */ "Non-hex letters must be upper case",
+/* ASL_MSG_HID_LENGTH */ "_HID string must be exactly 7 or 8 characters",
+
+/* These messages are used by the data table compiler only */
+
+/* ASL_MSG_INVALID_FIELD_NAME */ "Invalid Field Name",
+/* ASL_MSG_INTEGER_SIZE */ "Integer too large for target",
+/* ASL_MSG_INVALID_HEX_INTEGER */ "Invalid hex integer constant",
+/* ASL_MSG_BUFFER_ELEMENT */ "Invalid element in buffer initializer list",
+/* ASL_MSG_RESERVED_VALUE */ "Reserved field must be zero",
+/* ASL_MSG_FLAG_VALUE */ "Flag value is too large",
+/* ASL_MSG_ZERO_VALUE */ "Value must be non-zero",
+/* ASL_MSG_UNKNOWN_TABLE */ "Unknown ACPI table signature",
+/* ASL_MSG_UNKNOWN_SUBTABLE */ "Unknown subtable type",
+/* ASL_MSG_OEM_TABLE */ "OEM table - unknown contents"
+
+};
+
+
+char *AslErrorLevel [ASL_NUM_REPORT_LEVELS] = {
+ "Warning ",
+ "Warning ",
+ "Warning ",
+ "Error ",
+ "Remark ",
+ "Optimize"
+};
+
+#define ASL_ERROR_LEVEL_LENGTH 8 /* Length of strings above */
+
+#endif /* ASL_EXCEPTIONS */
+
+#endif /* __ASLMESSAGES_H */
diff --git a/compiler/aslresource.c b/compiler/aslresource.c
index 67aabca..dcee78c 100644
--- a/compiler/aslresource.c
+++ b/compiler/aslresource.c
@@ -139,6 +139,7 @@
* NULL, means "zero value for alignment is
* OK, and means 64K alignment" (for
* Memory24 descriptor)
+ * Op - Parent Op for entire construct
*
* RETURN: None. Adds error messages to error log if necessary
*
@@ -158,7 +159,8 @@ RsSmallAddressCheck (
ACPI_PARSE_OBJECT *MinOp,
ACPI_PARSE_OBJECT *MaxOp,
ACPI_PARSE_OBJECT *LengthOp,
- ACPI_PARSE_OBJECT *AlignOp)
+ ACPI_PARSE_OBJECT *AlignOp,
+ ACPI_PARSE_OBJECT *Op)
{
if (Gbl_NoResourceChecking)
@@ -166,6 +168,34 @@ RsSmallAddressCheck (
return;
}
+ /*
+ * Check for a so-called "null descriptor". These are descriptors that are
+ * created with most fields set to zero. The intent is that the descriptor
+ * will be updated/completed at runtime via a BufferField.
+ *
+ * If the descriptor does NOT have a resource tag, it cannot be referenced
+ * by a BufferField and we will flag this as an error. Conversely, if
+ * the descriptor has a resource tag, we will assume that a BufferField
+ * will be used to dynamically update it, so no error.
+ *
+ * A possible enhancement to this check would be to verify that in fact
+ * a BufferField is created using the resource tag, and perhaps even
+ * verify that a Store is performed to the BufferField.
+ *
+ * Note: for these descriptors, Alignment is allowed to be zero
+ */
+ if (!Minimum && !Maximum && !Length)
+ {
+ if (!Op->Asl.ExternalName)
+ {
+ /* No resource tag. Descriptor is fixed and is also illegal */
+
+ AslError (ASL_ERROR, ASL_MSG_NULL_DESCRIPTOR, Op, NULL);
+ }
+
+ return;
+ }
+
/* Special case for Memory24, values are compressed */
if (Type == ACPI_RESOURCE_NAME_MEMORY24)
@@ -230,6 +260,7 @@ RsSmallAddressCheck (
* MaxOp - Original Op for Address Max
* LengthOp - Original Op for address range
* GranOp - Original Op for address granularity
+ * Op - Parent Op for entire construct
*
* RETURN: None. Adds error messages to error log if necessary
*
@@ -259,7 +290,8 @@ RsLargeAddressCheck (
ACPI_PARSE_OBJECT *MinOp,
ACPI_PARSE_OBJECT *MaxOp,
ACPI_PARSE_OBJECT *LengthOp,
- ACPI_PARSE_OBJECT *GranOp)
+ ACPI_PARSE_OBJECT *GranOp,
+ ACPI_PARSE_OBJECT *Op)
{
if (Gbl_NoResourceChecking)
@@ -267,6 +299,32 @@ RsLargeAddressCheck (
return;
}
+ /*
+ * Check for a so-called "null descriptor". These are descriptors that are
+ * created with most fields set to zero. The intent is that the descriptor
+ * will be updated/completed at runtime via a BufferField.
+ *
+ * If the descriptor does NOT have a resource tag, it cannot be referenced
+ * by a BufferField and we will flag this as an error. Conversely, if
+ * the descriptor has a resource tag, we will assume that a BufferField
+ * will be used to dynamically update it, so no error.
+ *
+ * A possible enhancement to this check would be to verify that in fact
+ * a BufferField is created using the resource tag, and perhaps even
+ * verify that a Store is performed to the BufferField.
+ */
+ if (!Minimum && !Maximum && !Length && !Granularity)
+ {
+ if (!Op->Asl.ExternalName)
+ {
+ /* No resource tag. Descriptor is fixed and is also illegal */
+
+ AslError (ASL_ERROR, ASL_MSG_NULL_DESCRIPTOR, Op, NULL);
+ }
+
+ return;
+ }
+
/* Basic checks on Min/Max/Length */
if (Minimum > Maximum)
diff --git a/compiler/aslrestype1.c b/compiler/aslrestype1.c
index 5c1bd0e..b68868e 100644
--- a/compiler/aslrestype1.c
+++ b/compiler/aslrestype1.c
@@ -300,7 +300,7 @@ RsDoMemory24Descriptor (
Descriptor->Memory24.Maximum,
Descriptor->Memory24.AddressLength,
Descriptor->Memory24.Alignment,
- MinOp, MaxOp, LengthOp, NULL);
+ MinOp, MaxOp, LengthOp, NULL, Op);
return (Rnode);
}
@@ -408,7 +408,7 @@ RsDoMemory32Descriptor (
Descriptor->Memory32.Maximum,
Descriptor->Memory32.AddressLength,
Descriptor->Memory32.Alignment,
- MinOp, MaxOp, LengthOp, AlignOp);
+ MinOp, MaxOp, LengthOp, AlignOp, Op);
return (Rnode);
}
diff --git a/compiler/aslrestype1i.c b/compiler/aslrestype1i.c
index 239c500..3f275ce 100644
--- a/compiler/aslrestype1i.c
+++ b/compiler/aslrestype1i.c
@@ -439,7 +439,7 @@ RsDoIoDescriptor (
Descriptor->Io.Maximum,
Descriptor->Io.AddressLength,
Descriptor->Io.Alignment,
- MinOp, MaxOp, LengthOp, AlignOp);
+ MinOp, MaxOp, LengthOp, AlignOp, Op);
return (Rnode);
}
diff --git a/compiler/aslrestype2d.c b/compiler/aslrestype2d.c
index 17ce270..9008545 100644
--- a/compiler/aslrestype2d.c
+++ b/compiler/aslrestype2d.c
@@ -352,7 +352,7 @@ RsDoDwordIoDescriptor (
(UINT64) Descriptor->Address32.AddressLength,
(UINT64) Descriptor->Address32.Granularity,
Descriptor->Address32.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
OptionIndex + StringLength;
@@ -588,7 +588,7 @@ RsDoDwordMemoryDescriptor (
(UINT64) Descriptor->Address32.AddressLength,
(UINT64) Descriptor->Address32.Granularity,
Descriptor->Address32.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
OptionIndex + StringLength;
@@ -806,7 +806,7 @@ RsDoDwordSpaceDescriptor (
(UINT64) Descriptor->Address32.AddressLength,
(UINT64) Descriptor->Address32.Granularity,
Descriptor->Address32.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
OptionIndex + StringLength;
diff --git a/compiler/aslrestype2e.c b/compiler/aslrestype2e.c
index e5b2bd9..c7fe0bd 100644
--- a/compiler/aslrestype2e.c
+++ b/compiler/aslrestype2e.c
@@ -294,7 +294,7 @@ RsDoExtendedIoDescriptor (
Descriptor->ExtAddress64.AddressLength,
Descriptor->ExtAddress64.Granularity,
Descriptor->ExtAddress64.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + StringLength;
return (Rnode);
@@ -475,7 +475,7 @@ RsDoExtendedMemoryDescriptor (
Descriptor->ExtAddress64.AddressLength,
Descriptor->ExtAddress64.Granularity,
Descriptor->ExtAddress64.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + StringLength;
return (Rnode);
@@ -638,7 +638,7 @@ RsDoExtendedSpaceDescriptor (
Descriptor->ExtAddress64.AddressLength,
Descriptor->ExtAddress64.Granularity,
Descriptor->ExtAddress64.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + StringLength;
return (Rnode);
diff --git a/compiler/aslrestype2q.c b/compiler/aslrestype2q.c
index 591ac25..6334f77 100644
--- a/compiler/aslrestype2q.c
+++ b/compiler/aslrestype2q.c
@@ -343,7 +343,7 @@ RsDoQwordIoDescriptor (
Descriptor->Address64.AddressLength,
Descriptor->Address64.Granularity,
Descriptor->Address64.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
OptionIndex + StringLength;
@@ -573,7 +573,7 @@ RsDoQwordMemoryDescriptor (
Descriptor->Address64.AddressLength,
Descriptor->Address64.Granularity,
Descriptor->Address64.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
OptionIndex + StringLength;
@@ -785,7 +785,7 @@ RsDoQwordSpaceDescriptor (
Descriptor->Address64.AddressLength,
Descriptor->Address64.Granularity,
Descriptor->Address64.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
OptionIndex + StringLength;
diff --git a/compiler/aslrestype2w.c b/compiler/aslrestype2w.c
index a6e6774..49fee9c 100644
--- a/compiler/aslrestype2w.c
+++ b/compiler/aslrestype2w.c
@@ -343,7 +343,7 @@ RsDoWordIoDescriptor (
(UINT64) Descriptor->Address16.AddressLength,
(UINT64) Descriptor->Address16.Granularity,
Descriptor->Address16.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
OptionIndex + StringLength;
@@ -549,7 +549,7 @@ RsDoWordBusNumberDescriptor (
(UINT64) Descriptor->Address16.AddressLength,
(UINT64) Descriptor->Address16.Granularity,
Descriptor->Address16.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
OptionIndex + StringLength;
@@ -766,7 +766,7 @@ RsDoWordSpaceDescriptor (
(UINT64) Descriptor->Address16.AddressLength,
(UINT64) Descriptor->Address16.Granularity,
Descriptor->Address16.Flags,
- MinOp, MaxOp, LengthOp, GranOp);
+ MinOp, MaxOp, LengthOp, GranOp, Op);
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
OptionIndex + StringLength;
diff --git a/compiler/asltypes.h b/compiler/asltypes.h
index f4e5f46..ea04210 100644
--- a/compiler/asltypes.h
+++ b/compiler/asltypes.h
@@ -302,307 +302,4 @@ typedef struct asl_event_info
} ASL_EVENT_INFO;
-#define ASL_WARNING 0
-#define ASL_WARNING2 1
-#define ASL_WARNING3 2
-#define ASL_ERROR 3
-#define ASL_REMARK 4
-#define ASL_OPTIMIZATION 5
-#define ASL_NUM_REPORT_LEVELS 6
-
-
-typedef enum
-{
- ASL_MSG_RESERVED = 0,
- ASL_MSG_ALPHANUMERIC_STRING,
- ASL_MSG_AML_NOT_IMPLEMENTED,
- ASL_MSG_ARG_COUNT_HI,
- ASL_MSG_ARG_COUNT_LO,
- ASL_MSG_ARG_INIT,
- ASL_MSG_BACKWARDS_OFFSET,
- ASL_MSG_BITS_TO_BYTES,
- ASL_MSG_BUFFER_LENGTH,
- ASL_MSG_BYTES_TO_BITS,
- ASL_MSG_CLOSE,
- ASL_MSG_COMPILER_INTERNAL,
- ASL_MSG_CONSTANT_EVALUATION,
- ASL_MSG_CONSTANT_FOLDED,
- ASL_MSG_CORE_EXCEPTION,
- ASL_MSG_DEBUG_FILE_OPEN,
- ASL_MSG_DEBUG_FILENAME,
- ASL_MSG_DEPENDENT_NESTING,
- ASL_MSG_DMA_CHANNEL,
- ASL_MSG_DMA_LIST,
- ASL_MSG_DUPLICATE_CASE,
- ASL_MSG_DUPLICATE_ITEM,
- ASL_MSG_EARLY_EOF,
- ASL_MSG_ENCODING_LENGTH,
- ASL_MSG_EX_INTERRUPT_LIST,
- ASL_MSG_EX_INTERRUPT_LIST_MIN,
- ASL_MSG_EX_INTERRUPT_NUMBER,
- ASL_MSG_FIELD_ACCESS_WIDTH,
- ASL_MSG_FIELD_UNIT_ACCESS_WIDTH,
- ASL_MSG_FIELD_UNIT_OFFSET,
- ASL_MSG_INCLUDE_FILE_OPEN,
- ASL_MSG_INPUT_FILE_OPEN,
- ASL_MSG_INTEGER_LENGTH,
- ASL_MSG_INTEGER_OPTIMIZATION,
- ASL_MSG_INTERRUPT_LIST,
- ASL_MSG_INTERRUPT_NUMBER,
- ASL_MSG_INVALID_CONSTANT_OP,
- ASL_MSG_INVALID_EISAID,
- ASL_MSG_INVALID_ESCAPE,
- ASL_MSG_INVALID_OPERAND,
- ASL_MSG_INVALID_PERFORMANCE,
- ASL_MSG_INVALID_PRIORITY,
- ASL_MSG_INVALID_STRING,
- ASL_MSG_INVALID_TARGET,
- ASL_MSG_INVALID_TIME,
- ASL_MSG_INVALID_TYPE,
- ASL_MSG_INVALID_UUID,
- ASL_MSG_LIST_LENGTH_LONG,
- ASL_MSG_LIST_LENGTH_SHORT,
- ASL_MSG_LISTING_FILE_OPEN,
- ASL_MSG_LISTING_FILENAME,
- ASL_MSG_LOCAL_INIT,
- ASL_MSG_LONG_LINE,
- ASL_MSG_MEMORY_ALLOCATION,
- ASL_MSG_MISSING_ENDDEPENDENT,
- ASL_MSG_MISSING_STARTDEPENDENT,
- ASL_MSG_MULTIPLE_TYPES,
- ASL_MSG_NAME_EXISTS,
- ASL_MSG_NAME_OPTIMIZATION,
- ASL_MSG_NESTED_COMMENT,
- ASL_MSG_NO_CASES,
- ASL_MSG_NO_RETVAL,
- ASL_MSG_NO_WHILE,
- ASL_MSG_NON_ASCII,
- ASL_MSG_NOT_EXIST,
- ASL_MSG_NOT_FOUND,
- ASL_MSG_NOT_METHOD,
- ASL_MSG_NOT_PARAMETER,
- ASL_MSG_NOT_REACHABLE,
- ASL_MSG_OPEN,
- ASL_MSG_OUTPUT_FILE_OPEN,
- ASL_MSG_OUTPUT_FILENAME,
- ASL_MSG_PACKAGE_LENGTH,
- ASL_MSG_READ,
- ASL_MSG_RECURSION,
- ASL_MSG_REGION_BUFFER_ACCESS,
- ASL_MSG_REGION_BYTE_ACCESS,
- ASL_MSG_RESERVED_ARG_COUNT_HI,
- ASL_MSG_RESERVED_ARG_COUNT_LO,
- ASL_MSG_RESERVED_METHOD,
- ASL_MSG_RESERVED_OPERAND_TYPE,
- ASL_MSG_RESERVED_RETURN_VALUE,
- ASL_MSG_RESERVED_USE,
- ASL_MSG_RESERVED_WORD,
- ASL_MSG_RESOURCE_FIELD,
- ASL_MSG_RESOURCE_INDEX,
- ASL_MSG_RESOURCE_LIST,
- ASL_MSG_RESOURCE_SOURCE,
- ASL_MSG_RETURN_TYPES,
- ASL_MSG_SCOPE_FWD_REF,
- ASL_MSG_SCOPE_TYPE,
- ASL_MSG_SEEK,
- ASL_MSG_SINGLE_NAME_OPTIMIZATION,
- ASL_MSG_SOME_NO_RETVAL,
- ASL_MSG_SWITCH_TYPE,
- ASL_MSG_SYNC_LEVEL,
- ASL_MSG_SYNTAX,
- ASL_MSG_TABLE_SIGNATURE,
- ASL_MSG_TOO_MANY_TEMPS,
- ASL_MSG_UNKNOWN_RESERVED_NAME,
- ASL_MSG_UNREACHABLE_CODE,
- ASL_MSG_UNSUPPORTED,
- ASL_MSG_VENDOR_LIST,
- ASL_MSG_WRITE,
- ASL_MSG_MULTIPLE_DEFAULT,
- ASL_MSG_TIMEOUT,
- ASL_MSG_RESULT_NOT_USED,
- ASL_MSG_NOT_REFERENCED,
- ASL_MSG_NON_ZERO,
- ASL_MSG_STRING_LENGTH,
- ASL_MSG_SERIALIZED,
- ASL_MSG_COMPILER_RESERVED,
- ASL_MSG_NAMED_OBJECT_IN_WHILE,
- ASL_MSG_LOCAL_OUTSIDE_METHOD,
- ASL_MSG_ALIGNMENT,
- ASL_MSG_ISA_ADDRESS,
- ASL_MSG_INVALID_MIN_MAX,
- ASL_MSG_INVALID_LENGTH,
- ASL_MSG_INVALID_LENGTH_FIXED,
- ASL_MSG_INVALID_GRANULARITY,
- ASL_MSG_INVALID_GRAN_FIXED,
- ASL_MSG_INVALID_ACCESS_SIZE,
- ASL_MSG_INVALID_ADDR_FLAGS,
- ASL_MSG_INVALID_FIELD_NAME,
- ASL_MSG_INTEGER_SIZE,
- ASL_MSG_INVALID_HEX_INTEGER,
- ASL_MSG_BUFFER_ELEMENT,
- ASL_MSG_RESERVED_VALUE,
- ASL_MSG_FLAG_VALUE,
- ASL_MSG_ZERO_VALUE,
- ASL_MSG_UNKNOWN_TABLE,
- ASL_MSG_UNKNOWN_SUBTABLE,
- ASL_MSG_OEM_TABLE
-
-} ASL_MESSAGE_IDS;
-
-#ifdef ASL_EXCEPTIONS
-
-char *AslMessages [] = {
-/* The zeroth message is reserved */ "",
-/* ASL_MSG_ALPHANUMERIC_STRING */ "String must be entirely alphanumeric",
-/* ASL_MSG_AML_NOT_IMPLEMENTED */ "Opcode is not implemented in compiler AML code generator",
-/* ASL_MSG_ARG_COUNT_HI */ "Too many arguments",
-/* ASL_MSG_ARG_COUNT_LO */ "Too few arguments",
-/* ASL_MSG_ARG_INIT */ "Method argument is not initialized",
-/* ASL_MSG_BACKWARDS_OFFSET */ "Invalid backwards offset",
-/* ASL_MSG_BITS_TO_BYTES */ "Field offset is in bits, but a byte offset is required",
-/* ASL_MSG_BUFFER_LENGTH */ "Effective AML buffer length is zero",
-/* ASL_MSG_BYTES_TO_BITS */ "Field offset is in bytes, but a bit offset is required",
-/* ASL_MSG_CLOSE */ "Could not close file",
-/* ASL_MSG_COMPILER_INTERNAL */ "Internal compiler error",
-/* ASL_MSG_CONSTANT_EVALUATION */ "Could not evaluate constant expression",
-/* ASL_MSG_CONSTANT_FOLDED */ "Constant expression evaluated and reduced",
-/* ASL_MSG_CORE_EXCEPTION */ "From ACPI CA Subsystem",
-/* ASL_MSG_DEBUG_FILE_OPEN */ "Could not open debug file",
-/* ASL_MSG_DEBUG_FILENAME */ "Could not create debug filename",
-/* ASL_MSG_DEPENDENT_NESTING */ "Dependent function macros cannot be nested",\
-/* ASL_MSG_DMA_CHANNEL */ "Invalid DMA channel (must be 0-7)",
-/* ASL_MSG_DMA_LIST */ "Too many DMA channels (8 max)",
-/* ASL_MSG_DUPLICATE_CASE */ "Case value already specified",
-/* ASL_MSG_DUPLICATE_ITEM */ "Duplicate value in list",
-/* ASL_MSG_EARLY_EOF */ "Premature end-of-file reached",
-/* ASL_MSG_ENCODING_LENGTH */ "Package length too long to encode",
-/* ASL_MSG_EX_INTERRUPT_LIST */ "Too many interrupts (255 max)",
-/* ASL_MSG_EX_INTERRUPT_LIST_MIN */ "Too few interrupts (1 minimum required)",
-/* ASL_MSG_EX_INTERRUPT_NUMBER */ "Invalid interrupt number (must be 32 bits)",
-/* ASL_MSG_FIELD_ACCESS_WIDTH */ "Access width is greater than region size",
-/* ASL_MSG_FIELD_UNIT_ACCESS_WIDTH */ "Access width of Field Unit extends beyond region limit",
-/* ASL_MSG_FIELD_UNIT_OFFSET */ "Field Unit extends beyond region limit",
-/* ASL_MSG_INCLUDE_FILE_OPEN */ "Could not open include file",
-/* ASL_MSG_INPUT_FILE_OPEN */ "Could not open input file",
-/* ASL_MSG_INTEGER_LENGTH */ "64-bit integer in 32-bit table, truncating",
-/* ASL_MSG_INTEGER_OPTIMIZATION */ "Integer optimized to single-byte AML opcode",
-/* ASL_MSG_INTERRUPT_LIST */ "Too many interrupts (16 max)",
-/* ASL_MSG_INTERRUPT_NUMBER */ "Invalid interrupt number (must be 0-15)",
-/* ASL_MSG_INVALID_CONSTANT_OP */ "Invalid operator in constant expression (not type 3/4/5)",
-/* ASL_MSG_INVALID_EISAID */ "EISAID string must be of the form \"UUUXXXX\" (3 uppercase, 4 hex digits)",
-/* ASL_MSG_INVALID_ESCAPE */ "Invalid or unknown escape sequence",
-/* ASL_MSG_INVALID_OPERAND */ "Invalid operand",
-/* ASL_MSG_INVALID_PERFORMANCE */ "Invalid performance/robustness value",
-/* ASL_MSG_INVALID_PRIORITY */ "Invalid priority value",
-/* ASL_MSG_INVALID_STRING */ "Invalid Hex/Octal Escape - Non-ASCII or NULL",
-/* ASL_MSG_INVALID_TARGET */ "Target operand not allowed in constant expression",
-/* ASL_MSG_INVALID_TIME */ "Time parameter too long (255 max)",
-/* ASL_MSG_INVALID_TYPE */ "Invalid type",
-/* ASL_MSG_INVALID_UUID */ "UUID string must be of the form \"aabbccdd-eeff-gghh-iijj-kkllmmnnoopp\"",
-/* ASL_MSG_LIST_LENGTH_LONG */ "Initializer list longer than declared package length",
-/* ASL_MSG_LIST_LENGTH_SHORT */ "Initializer list shorter than declared package length",
-/* ASL_MSG_LISTING_FILE_OPEN */ "Could not open listing file",
-/* ASL_MSG_LISTING_FILENAME */ "Could not create listing filename",
-/* ASL_MSG_LOCAL_INIT */ "Method local variable is not initialized",
-/* ASL_MSG_LONG_LINE */ "Splitting long input line",
-/* ASL_MSG_MEMORY_ALLOCATION */ "Memory allocation failure",
-/* ASL_MSG_MISSING_ENDDEPENDENT */ "Missing EndDependentFn() macro in dependent resource list",
-/* ASL_MSG_MISSING_STARTDEPENDENT */ "Missing StartDependentFn() macro in dependent resource list",
-/* ASL_MSG_MULTIPLE_TYPES */ "Multiple types",
-/* ASL_MSG_NAME_EXISTS */ "Name already exists in scope",
-/* ASL_MSG_NAME_OPTIMIZATION */ "NamePath optimized",
-/* ASL_MSG_NESTED_COMMENT */ "Nested comment found",
-/* ASL_MSG_NO_CASES */ "No Case statements under Switch",
-/* ASL_MSG_NO_RETVAL */ "Called method returns no value",
-/* ASL_MSG_NO_WHILE */ "No enclosing While statement",
-/* ASL_MSG_NON_ASCII */ "Invalid characters found in file",
-/* ASL_MSG_NOT_EXIST */ "Object does not exist",
-/* ASL_MSG_NOT_FOUND */ "Object not found or not accessible from scope",
-/* ASL_MSG_NOT_METHOD */ "Not a control method, cannot invoke",
-/* ASL_MSG_NOT_PARAMETER */ "Not a parameter, used as local only",
-/* ASL_MSG_NOT_REACHABLE */ "Object is not accessible from this scope",
-/* ASL_MSG_OPEN */ "Could not open file",
-/* ASL_MSG_OUTPUT_FILE_OPEN */ "Could not open output AML file",
-/* ASL_MSG_OUTPUT_FILENAME */ "Could not create output filename",
-/* ASL_MSG_PACKAGE_LENGTH */ "Effective AML package length is zero",
-/* ASL_MSG_READ */ "Could not read file",
-/* ASL_MSG_RECURSION */ "Recursive method call",
-/* ASL_MSG_REGION_BUFFER_ACCESS */ "Host Operation Region requires BufferAcc access",
-/* ASL_MSG_REGION_BYTE_ACCESS */ "Host Operation Region requires ByteAcc access",
-/* ASL_MSG_RESERVED_ARG_COUNT_HI */ "Reserved method has too many arguments",
-/* ASL_MSG_RESERVED_ARG_COUNT_LO */ "Reserved method has too few arguments",
-/* ASL_MSG_RESERVED_METHOD */ "Reserved name must be a control method",
-/* ASL_MSG_RESERVED_OPERAND_TYPE */ "Invalid object type for reserved name",
-/* ASL_MSG_RESERVED_RETURN_VALUE */ "Reserved method must return a value",
-/* ASL_MSG_RESERVED_USE */ "Invalid use of reserved name",
-/* ASL_MSG_RESERVED_WORD */ "Use of reserved name",
-/* ASL_MSG_RESOURCE_FIELD */ "Resource field name cannot be used as a target",
-/* ASL_MSG_RESOURCE_INDEX */ "Missing ResourceSourceIndex (required)",
-/* ASL_MSG_RESOURCE_LIST */ "Too many resource items (internal error)",
-/* ASL_MSG_RESOURCE_SOURCE */ "Missing ResourceSource string (required)",
-/* ASL_MSG_RETURN_TYPES */ "Not all control paths return a value",
-/* ASL_MSG_SCOPE_FWD_REF */ "Forward references from Scope operator not allowed",
-/* ASL_MSG_SCOPE_TYPE */ "Existing object has invalid type for Scope operator",
-/* ASL_MSG_SEEK */ "Could not seek file",
-/* ASL_MSG_SINGLE_NAME_OPTIMIZATION */ "NamePath optimized to NameSeg (uses run-time search path)",
-/* ASL_MSG_SOME_NO_RETVAL */ "Called method may not always return a value",
-/* ASL_MSG_SWITCH_TYPE */ "Switch expression is not a static Integer/Buffer/String data type, defaulting to Integer",
-/* ASL_MSG_SYNC_LEVEL */ "SyncLevel must be in the range 0-15",
-/* ASL_MSG_SYNTAX */ "",
-/* ASL_MSG_TABLE_SIGNATURE */ "Invalid Table Signature",
-/* ASL_MSG_TOO_MANY_TEMPS */ "Method requires too many temporary variables (_T_x)",
-/* ASL_MSG_UNKNOWN_RESERVED_NAME */ "Unknown reserved name",
-/* ASL_MSG_UNREACHABLE_CODE */ "Statement is unreachable",
-/* ASL_MSG_UNSUPPORTED */ "Unsupported feature",
-/* ASL_MSG_VENDOR_LIST */ "Too many vendor data bytes (7 max)",
-/* ASL_MSG_WRITE */ "Could not write file",
-/* ASL_MSG_MULTIPLE_DEFAULT */ "More than one Default statement within Switch construct",
-/* ASL_MSG_TIMEOUT */ "Possible operator timeout is ignored",
-/* ASL_MSG_RESULT_NOT_USED */ "Result is not used, operator has no effect",
-/* ASL_MSG_NOT_REFERENCED */ "Namespace object is not referenced",
-/* ASL_MSG_NON_ZERO */ "Operand evaluates to zero",
-/* ASL_MSG_STRING_LENGTH */ "String literal too long",
-/* ASL_MSG_SERIALIZED */ "Control Method marked Serialized",
-/* ASL_MSG_COMPILER_RESERVED */ "Use of compiler reserved name",
-/* ASL_MSG_NAMED_OBJECT_IN_WHILE */ "Creating a named object in a While loop",
-/* ASL_MSG_LOCAL_OUTSIDE_METHOD */ "Local or Arg used outside a control method",
-/* ASL_MSG_ALIGNMENT */ "Must be a multiple of alignment/granularity value",
-/* ASL_MSG_ISA_ADDRESS */ "Maximum 10-bit ISA address (0x3FF)",
-/* ASL_MSG_INVALID_MIN_MAX */ "Address Min is greater than Address Max",
-/* ASL_MSG_INVALID_LENGTH */ "Length is larger than Min/Max window",
-/* ASL_MSG_INVALID_LENGTH_FIXED */ "Length is not equal to fixed Min/Max window",
-/* ASL_MSG_INVALID_GRANULARITY */ "Granularity must be zero or a power of two minus one",
-/* ASL_MSG_INVALID_GRAN_FIXED */ "Granularity must be zero for fixed Min/Max",
-/* ASL_MSG_INVALID_ACCESS_SIZE */ "Invalid AccessSize (Maximum is 4 - QWord access)",
-/* ASL_MSG_INVALID_ADDR_FLAGS */ "Invalid combination of Length and Min/Max fixed flags",
-
-/* These messages are used by the data table compiler only */
-
-/* ASL_MSG_INVALID_FIELD_NAME */ "Invalid Field Name",
-/* ASL_MSG_INTEGER_SIZE */ "Integer too large for target",
-/* ASL_MSG_INVALID_HEX_INTEGER */ "Invalid hex integer constant",
-/* ASL_MSG_BUFFER_ELEMENT */ "Invalid element in buffer initializer list",
-/* ASL_MSG_RESERVED_VALUE */ "Reserved field must be zero",
-/* ASL_MSG_FLAG_VALUE */ "Flag value is too large",
-/* ASL_MSG_ZERO_VALUE */ "Value must be non-zero",
-/* ASL_MSG_UNKNOWN_TABLE */ "Unknown ACPI table signature",
-/* ASL_MSG_UNKNOWN_SUBTABLE */ "Unknown subtable type",
-/* ASL_MSG_OEM_TABLE */ "OEM table - unknown contents"
-
-};
-
-
-char *AslErrorLevel [ASL_NUM_REPORT_LEVELS] = {
- "Warning ",
- "Warning ",
- "Warning ",
- "Error ",
- "Remark ",
- "Optimize"
-};
-
-#define ASL_ERROR_LEVEL_LENGTH 8 /* Length of strings above */
-
-#endif /* ASL_EXCEPTIONS */
-
#endif /* __ASLTYPES_H */
diff --git a/compiler/aslutils.c b/compiler/aslutils.c
index 23e58e5..37a15e9 100644
--- a/compiler/aslutils.c
+++ b/compiler/aslutils.c
@@ -120,6 +120,7 @@
#include "acdisasm.h"
#include "acnamesp.h"
#include "amlcode.h"
+#include <acapps.h>
#define _COMPONENT ACPI_COMPILER
ACPI_MODULE_NAME ("aslutils")
@@ -566,8 +567,8 @@ UtDisplaySummary (
{
/* Compiler name and version number */
- FlPrintFile (FileId, "%s version %X [%s]\n",
- CompilerId, (UINT32) ACPI_CA_VERSION, __DATE__);
+ FlPrintFile (FileId, "%s version %X%s [%s]\n",
+ ASL_COMPILER_NAME, (UINT32) ACPI_CA_VERSION, ACPI_WIDTH, __DATE__);
}
if (Gbl_FileType == ASL_INPUT_TYPE_ASCII_DATA)
diff --git a/compiler/dtcompile.c b/compiler/dtcompile.c
index c287c5b..7596ba7 100644
--- a/compiler/dtcompile.c
+++ b/compiler/dtcompile.c
@@ -314,7 +314,7 @@ DtInsertCompilerIds (
Next = Next->Next;
}
- Next->Value = CompilerCreatorId;
+ Next->Value = ASL_CREATOR_ID;
Next->Flags = DT_FIELD_NOT_ALLOCATED;
Next = Next->Next;
diff --git a/compiler/dttemplate.c b/compiler/dttemplate.c
index ad69a14..e6a3cd5 100644
--- a/compiler/dttemplate.c
+++ b/compiler/dttemplate.c
@@ -377,9 +377,9 @@ DtCreateOneTemplate (
AcpiOsRedirectOutput (File);
- AcpiOsPrintf ("/*\n * %s\n", IntelAcpiCA);
- AcpiOsPrintf (" * iASL Compiler/Disassembler version %8.8X\n *\n",
- ACPI_CA_VERSION);
+ AcpiOsPrintf ("/*\n");
+ AcpiOsPrintf (ACPI_COMMON_HEADER ("iASL Compiler/Disassembler", " * "));
+
AcpiOsPrintf (" * Template for [%4.4s] ACPI Table\n",
Signature);
OpenPOWER on IntegriCloud