Import ACPICA 20160729.
This commit is contained in:
+101
@@ -1,3 +1,104 @@
|
||||
----------------------------------------
|
||||
29 July 2016. Summary of changes for version 20160729:
|
||||
|
||||
This release is available at https://acpica.org/downloads
|
||||
|
||||
|
||||
1) ACPICA kernel-resident subsystem:
|
||||
|
||||
Implemented basic UEFI support for the various ACPICA tools. This
|
||||
includes:
|
||||
1) An OSL to implement the various AcpiOs* interfaces on UEFI.
|
||||
2) Support to obtain the ACPI tables on UEFI.
|
||||
3) Local implementation of required C library functions not available on
|
||||
UEFI.
|
||||
4) A front-end (main) function for the tools for UEFI-related
|
||||
initialization.
|
||||
|
||||
The initial deployment of this support is the AcpiDump utility executing
|
||||
as an UEFI application via EDK2 (EDKII, "UEFI Firmware Development Kit").
|
||||
Current environments supported are Linux/Unix. MSVC generation is not
|
||||
supported at this time. See the generate/efi/README file for build
|
||||
instructions. Lv Zheng.
|
||||
|
||||
Future plans include porting the AcpiExec utility to execute natively on
|
||||
the platform with I/O and memory access. This will allow viewing/dump of
|
||||
the platform namespace and native execution of ACPI control methods that
|
||||
access the actual hardware. To fully implement this support, the OSL
|
||||
functions below must be implemented with UEFI interfaces. Any community
|
||||
help in the implementation of these functions would be appreciated:
|
||||
AcpiOsReadPort
|
||||
AcpiOsWritePort
|
||||
AcpiOsReadMemory
|
||||
AcpiOsWriteMemory
|
||||
AcpiOsReadPciConfiguration
|
||||
AcpiOsWritePciConfiguration
|
||||
|
||||
|
||||
Restructured and standardized the C library configuration for ACPICA,
|
||||
resulting in the various configuration options below. This includes a
|
||||
global restructuring of the compiler-dependent and platform-dependent
|
||||
include files. These changes may affect the existing platform-dependent
|
||||
configuration files on some hosts. Lv Zheng.
|
||||
|
||||
The current C library configuration options appear below. For any issues,
|
||||
it may be helpful to examine the existing compiler-dependent and
|
||||
platform-dependent files as examples. Lv Zheng.
|
||||
|
||||
1) Linux kernel:
|
||||
ACPI_USE_STANDARD_HEADERS=n in order not to use system-provided C
|
||||
library.
|
||||
ACPI_USE_SYSTEM_CLIBRARY=y in order not to use ACPICA mini C library.
|
||||
2) Unix/Windows/BSD applications:
|
||||
ACPI_USE_STANDARD_HEADERS=y in order to use system-provided C
|
||||
library.
|
||||
ACPI_USE_SYSTEM_CLIBRARY=y in order not to use ACPICA mini C library.
|
||||
3) UEFI applications:
|
||||
ACPI_USE_STANDARD_HEADERS=n in order not to use system-provided C
|
||||
library.
|
||||
ACPI_USE_SYSTEM_CLIBRARY=n in order to use ACPICA mini C library.
|
||||
4) UEFI applications (EDK2/StdLib):
|
||||
ACPI_USE_STANDARD_HEADERS=y in order to use EDK2 StdLib C library.
|
||||
ACPI_USE_SYSTEM_CLIBRARY=y in order to use EDK2 StdLib C library.
|
||||
|
||||
|
||||
AML interpreter: "module-level code" support. Allows for execution of so-
|
||||
called "executable" AML code (math/logical operations, etc.) outside of
|
||||
control methods not just at the module level (top level) but also within
|
||||
any scope declared outside of a control method - Scope{}, Device{},
|
||||
Processor{}, PowerResource{}, and ThermalZone{}. Lv Zheng.
|
||||
|
||||
Simplified the configuration of the "maximum AML loops" global option by
|
||||
adding a global public variable, "AcpiGbl_MaxLoopIterations" which can be
|
||||
modified at runtime.
|
||||
|
||||
|
||||
Example Code and Data Size: These are the sizes for the OS-independent
|
||||
acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
|
||||
debug version of the code includes the debug output trace mechanism and
|
||||
has a much larger code and data size.
|
||||
|
||||
Current Release:
|
||||
Non-Debug Version: 139.1K Code, 22.9K Data, 162.0K Total
|
||||
Debug Version: 199.0K Code, 81.8K Data, 280.8K Total
|
||||
|
||||
|
||||
2) iASL Compiler/Disassembler and Tools:
|
||||
|
||||
iASL: Add full support for the RASF ACPI table (RAS Features Table).
|
||||
Includes disassembler, data table compiler, and header support.
|
||||
|
||||
iASL Expand "module-level code" support. Allows for
|
||||
compilation/disassembly of so-called "executable" AML code (math/logical
|
||||
operations, etc.) outside of control methods not just at the module level
|
||||
(top level) but also within any scope declared outside of a control
|
||||
method - Scope{}, Device{}, Processor{}, PowerResource{}, and
|
||||
ThermalZone{}.
|
||||
|
||||
AcpiDump: Added support for dumping all SSDTs on newer versions of
|
||||
Windows. These tables are now easily available -- SSDTs are not available
|
||||
through the registry on older versions.
|
||||
|
||||
----------------------------------------
|
||||
27 May 2016. Summary of changes for version 20160527:
|
||||
|
||||
|
||||
@@ -43,11 +43,9 @@ OBJECTS = \
|
||||
$(OBJDIR)/utmath.o\
|
||||
$(OBJDIR)/utmisc.o\
|
||||
$(OBJDIR)/utmutex.o\
|
||||
$(OBJDIR)/utprint.o\
|
||||
$(OBJDIR)/utstate.o\
|
||||
$(OBJDIR)/utstring.o\
|
||||
$(OBJDIR)/utxferror.o\
|
||||
$(OBJDIR)/oslibcfs.o\
|
||||
$(OBJDIR)/osunixxf.o
|
||||
|
||||
#
|
||||
|
||||
@@ -33,7 +33,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/apmain.o\
|
||||
$(OBJDIR)/cmfsize.o\
|
||||
$(OBJDIR)/getopt.o\
|
||||
$(OBJDIR)/oslibcfs.o\
|
||||
$(OBJDIR)/osunixdir.o\
|
||||
$(OBJDIR)/osunixmap.o\
|
||||
$(OBJDIR)/osunixxf.o\
|
||||
@@ -46,7 +45,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/utglobal.o\
|
||||
$(OBJDIR)/utmath.o\
|
||||
$(OBJDIR)/utnonansi.o\
|
||||
$(OBJDIR)/utprint.o\
|
||||
$(OBJDIR)/utstring.o\
|
||||
$(OBJDIR)/utxferror.o
|
||||
|
||||
|
||||
@@ -107,7 +107,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/nsxfeval.o\
|
||||
$(OBJDIR)/nsxfname.o\
|
||||
$(OBJDIR)/nsxfobj.o\
|
||||
$(OBJDIR)/oslibcfs.o\
|
||||
$(OBJDIR)/osunixxf.o\
|
||||
$(OBJDIR)/psargs.o\
|
||||
$(OBJDIR)/psloop.o\
|
||||
@@ -154,7 +153,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/utownerid.o\
|
||||
$(OBJDIR)/utnonansi.o\
|
||||
$(OBJDIR)/utpredef.o\
|
||||
$(OBJDIR)/utprint.o\
|
||||
$(OBJDIR)/utresrc.o\
|
||||
$(OBJDIR)/utstate.o\
|
||||
$(OBJDIR)/utstring.o\
|
||||
|
||||
@@ -163,7 +163,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/nsxfeval.o\
|
||||
$(OBJDIR)/nsxfname.o\
|
||||
$(OBJDIR)/nsxfobj.o\
|
||||
$(OBJDIR)/oslibcfs.o\
|
||||
$(OBJDIR)/osunixxf.o\
|
||||
$(OBJDIR)/psargs.o\
|
||||
$(OBJDIR)/psloop.o\
|
||||
@@ -224,7 +223,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/utownerid.o\
|
||||
$(OBJDIR)/utnonansi.o\
|
||||
$(OBJDIR)/utpredef.o\
|
||||
$(OBJDIR)/utprint.o\
|
||||
$(OBJDIR)/utresrc.o\
|
||||
$(OBJDIR)/utstate.o\
|
||||
$(OBJDIR)/utstring.o\
|
||||
|
||||
@@ -32,13 +32,13 @@ OBJECTS = \
|
||||
$(OBJDIR)/ahaslkey.o\
|
||||
$(OBJDIR)/ahaslops.o\
|
||||
$(OBJDIR)/ahdecode.o\
|
||||
$(OBJDIR)/ahgrammar.o\
|
||||
$(OBJDIR)/ahids.o\
|
||||
$(OBJDIR)/ahpredef.o\
|
||||
$(OBJDIR)/ahmain.o\
|
||||
$(OBJDIR)/ahtable.o\
|
||||
$(OBJDIR)/ahuuids.o\
|
||||
$(OBJDIR)/getopt.o\
|
||||
$(OBJDIR)/oslibcfs.o\
|
||||
$(OBJDIR)/osunixxf.o\
|
||||
$(OBJDIR)/utdebug.o\
|
||||
$(OBJDIR)/utexcep.o\
|
||||
@@ -47,7 +47,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/utmath.o\
|
||||
$(OBJDIR)/utnonansi.o\
|
||||
$(OBJDIR)/utpredef.o\
|
||||
$(OBJDIR)/utprint.o\
|
||||
$(OBJDIR)/utuuid.o
|
||||
|
||||
#
|
||||
|
||||
@@ -72,7 +72,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/nsxfeval.o\
|
||||
$(OBJDIR)/nsxfname.o\
|
||||
$(OBJDIR)/nsxfobj.o\
|
||||
$(OBJDIR)/oslibcfs.o\
|
||||
$(OBJDIR)/osunixxf.o\
|
||||
$(OBJDIR)/psargs.o\
|
||||
$(OBJDIR)/psloop.o\
|
||||
@@ -116,7 +115,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/utobject.o\
|
||||
$(OBJDIR)/utosi.o\
|
||||
$(OBJDIR)/utownerid.o\
|
||||
$(OBJDIR)/utprint.o\
|
||||
$(OBJDIR)/utstate.o\
|
||||
$(OBJDIR)/utstring.o\
|
||||
$(OBJDIR)/utxface.o\
|
||||
|
||||
@@ -36,16 +36,14 @@ OBJECTS = \
|
||||
$(OBJDIR)/asutils.o\
|
||||
$(OBJDIR)/cmfsize.o\
|
||||
$(OBJDIR)/getopt.o \
|
||||
$(OBJDIR)/oslibcfs.o\
|
||||
$(OBJDIR)/osunixdir.o\
|
||||
$(OBJDIR)/osunixxf.o\
|
||||
$(OBJDIR)/utascii.o\
|
||||
$(OBJDIR)/utascii.o\
|
||||
$(OBJDIR)/utdebug.o\
|
||||
$(OBJDIR)/utexcep.o\
|
||||
$(OBJDIR)/utglobal.o\
|
||||
$(OBJDIR)/utmath.o\
|
||||
$(OBJDIR)/utnonansi.o\
|
||||
$(OBJDIR)/utprint.o\
|
||||
$(OBJDIR)/utnonansi.o\
|
||||
$(OBJDIR)/utstring.o\
|
||||
$(OBJDIR)/utxferror.o
|
||||
|
||||
|
||||
@@ -31,7 +31,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/axmain.o\
|
||||
$(OBJDIR)/axutils.o\
|
||||
$(OBJDIR)/getopt.o\
|
||||
$(OBJDIR)/oslibcfs.o\
|
||||
$(OBJDIR)/osunixxf.o\
|
||||
$(OBJDIR)/utascii.o\
|
||||
$(OBJDIR)/utdebug.o\
|
||||
@@ -39,7 +38,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/utglobal.o\
|
||||
$(OBJDIR)/utmath.o\
|
||||
$(OBJDIR)/utnonansi.o\
|
||||
$(OBJDIR)/utprint.o\
|
||||
$(OBJDIR)/utxferror.o
|
||||
|
||||
#
|
||||
|
||||
@@ -177,7 +177,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/nswalk.o\
|
||||
$(OBJDIR)/nsxfobj.o\
|
||||
$(OBJDIR)/osunixxf.o\
|
||||
$(OBJDIR)/oslibcfs.o\
|
||||
$(OBJDIR)/prexpress.o\
|
||||
$(OBJDIR)/prmacros.o\
|
||||
$(OBJDIR)/prscan.o\
|
||||
@@ -221,7 +220,6 @@ OBJECTS = \
|
||||
$(OBJDIR)/utobject.o\
|
||||
$(OBJDIR)/utownerid.o\
|
||||
$(OBJDIR)/utpredef.o\
|
||||
$(OBJDIR)/utprint.o\
|
||||
$(OBJDIR)/utresrc.o\
|
||||
$(OBJDIR)/utstate.o\
|
||||
$(OBJDIR)/utstring.o\
|
||||
@@ -245,12 +243,14 @@ MISC = \
|
||||
|
||||
ASL_PARSER = \
|
||||
$(ASL_COMPILER)/aslcstyle.y\
|
||||
$(ASL_COMPILER)/aslhelpers.y\
|
||||
$(ASL_COMPILER)/aslparser.y\
|
||||
$(ASL_COMPILER)/aslprimaries.y\
|
||||
$(ASL_COMPILER)/aslresources.y\
|
||||
$(ASL_COMPILER)/aslrules.y\
|
||||
$(ASL_COMPILER)/aslsupport.y\
|
||||
$(ASL_COMPILER)/asltokens.y\
|
||||
$(ASL_COMPILER)/asltypes.y\
|
||||
$(ASL_COMPILER)/aslrules.y
|
||||
$(ASL_COMPILER)/asltypes.y
|
||||
|
||||
ASL_LEXER = \
|
||||
$(ASL_COMPILER)/aslcompiler.l\
|
||||
@@ -277,7 +277,7 @@ include ../Makefile.rules
|
||||
safe_yacc = \
|
||||
_d=`mktemp -d $(OBJDIR)/$(1).XXXXXX` &&\
|
||||
cd $$_d &&\
|
||||
$(YACC) $(YFLAGS) -d -p$(1) $(abspath $(2)) &&\
|
||||
$(YACC) $(YFLAGS) -v -d -p$(1) $(abspath $(2)) &&\
|
||||
cd - &&\
|
||||
mv $$_d/y.tab$(suffix $(3)) $(3);\
|
||||
_r=$$?;\
|
||||
|
||||
@@ -43,10 +43,9 @@
|
||||
|
||||
#include "acpi.h"
|
||||
#include "accommon.h"
|
||||
#include "acapps.h"
|
||||
#include "actables.h"
|
||||
#include "acutils.h"
|
||||
#include <errno.h>
|
||||
#include "acapps.h"
|
||||
|
||||
#define _COMPONENT ACPI_UTILITIES
|
||||
ACPI_MODULE_NAME ("acfileio")
|
||||
@@ -98,7 +97,7 @@ AcGetAllTablesFromFile (
|
||||
File = fopen (Filename, "rb");
|
||||
if (!File)
|
||||
{
|
||||
perror ("Could not open input file");
|
||||
fprintf (stderr, "Could not open input file: %s\n", Filename);
|
||||
if (errno == ENOENT)
|
||||
{
|
||||
return (AE_NOT_EXIST);
|
||||
@@ -280,7 +279,7 @@ AcGetOneTableFromFile (
|
||||
|
||||
/* Allocate a buffer for the entire table */
|
||||
|
||||
Table = AcpiOsAllocate ((size_t) TableHeader.Length);
|
||||
Table = AcpiOsAllocate ((ACPI_SIZE) TableHeader.Length);
|
||||
if (!Table)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
@@ -388,7 +387,7 @@ AcValidateTableHeader (
|
||||
long TableOffset)
|
||||
{
|
||||
ACPI_TABLE_HEADER TableHeader;
|
||||
size_t Actual;
|
||||
ACPI_SIZE Actual;
|
||||
long OriginalOffset;
|
||||
UINT32 FileSize;
|
||||
UINT32 i;
|
||||
|
||||
@@ -47,8 +47,6 @@
|
||||
#include "acparser.h"
|
||||
#include "acdebug.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
* This is an os-independent implementation of line-editing services needed
|
||||
* by the AcpiExec utility. It uses getchar() and putchar() and the existing
|
||||
|
||||
@@ -49,8 +49,6 @@
|
||||
#include "acparser.h"
|
||||
#include "acapps.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("adisasm")
|
||||
|
||||
@@ -124,6 +124,7 @@ const AH_TABLE AcpiSupportedTables[] =
|
||||
{ACPI_SIG_NFIT, "NVDIMM Firmware Interface Table"},
|
||||
{ACPI_SIG_PCCT, "Platform Communications Channel Table"},
|
||||
{ACPI_SIG_PMTT, "Platform Memory Topology Table"},
|
||||
{ACPI_SIG_RASF, "RAS Features Table"},
|
||||
{ACPI_RSDP_NAME,"Root System Description Pointer"},
|
||||
{ACPI_SIG_RSDT, "Root System Description Table"},
|
||||
{ACPI_SIG_S3PT, "S3 Performance Table"},
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
#include "acpi.h"
|
||||
#include "accommon.h"
|
||||
#include "acapps.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("cmfsize")
|
||||
@@ -74,19 +73,19 @@ CmGetFileSize (
|
||||
|
||||
/* Save the current file pointer, seek to EOF to obtain file size */
|
||||
|
||||
CurrentOffset = AcpiOsGetFileOffset (File);
|
||||
CurrentOffset = ftell (File);
|
||||
if (CurrentOffset < 0)
|
||||
{
|
||||
goto OffsetError;
|
||||
}
|
||||
|
||||
Status = AcpiOsSetFileOffset (File, 0, ACPI_FILE_END);
|
||||
Status = fseek (File, 0, SEEK_END);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto SeekError;
|
||||
}
|
||||
|
||||
FileSize = AcpiOsGetFileOffset (File);
|
||||
FileSize = ftell (File);
|
||||
if (FileSize < 0)
|
||||
{
|
||||
goto OffsetError;
|
||||
@@ -94,7 +93,7 @@ CmGetFileSize (
|
||||
|
||||
/* Restore original file pointer */
|
||||
|
||||
Status = AcpiOsSetFileOffset (File, CurrentOffset, ACPI_FILE_BEGIN);
|
||||
Status = fseek (File, CurrentOffset, SEEK_SET);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto SeekError;
|
||||
@@ -104,10 +103,10 @@ CmGetFileSize (
|
||||
|
||||
|
||||
OffsetError:
|
||||
AcpiLogError ("Could not get file offset");
|
||||
fprintf (stderr, "Could not get file offset\n");
|
||||
return (ACPI_UINT32_MAX);
|
||||
|
||||
SeekError:
|
||||
AcpiLogError ("Could not set file offset");
|
||||
fprintf (stderr, "Could not set file offset\n");
|
||||
return (ACPI_UINT32_MAX);
|
||||
}
|
||||
|
||||
@@ -358,6 +358,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
|
||||
{ACPI_SIG_NFIT, AcpiDmTableInfoNfit, AcpiDmDumpNfit, DtCompileNfit, TemplateNfit},
|
||||
{ACPI_SIG_PCCT, AcpiDmTableInfoPcct, AcpiDmDumpPcct, DtCompilePcct, TemplatePcct},
|
||||
{ACPI_SIG_PMTT, NULL, AcpiDmDumpPmtt, DtCompilePmtt, TemplatePmtt},
|
||||
{ACPI_SIG_RASF, AcpiDmTableInfoRasf, NULL, NULL, TemplateRasf},
|
||||
{ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, DtCompileRsdt, TemplateRsdt},
|
||||
{ACPI_SIG_S3PT, NULL, NULL, NULL, TemplateS3pt},
|
||||
{ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, NULL, TemplateSbst},
|
||||
@@ -844,6 +845,11 @@ AcpiDmDumpTable (
|
||||
ByteLength = 10;
|
||||
break;
|
||||
|
||||
case ACPI_DMT_BUF12:
|
||||
|
||||
ByteLength = 12;
|
||||
break;
|
||||
|
||||
case ACPI_DMT_BUF16:
|
||||
case ACPI_DMT_UUID:
|
||||
|
||||
@@ -1006,6 +1012,7 @@ AcpiDmDumpTable (
|
||||
|
||||
case ACPI_DMT_BUF7:
|
||||
case ACPI_DMT_BUF10:
|
||||
case ACPI_DMT_BUF12:
|
||||
case ACPI_DMT_BUF16:
|
||||
case ACPI_DMT_BUF128:
|
||||
/*
|
||||
|
||||
@@ -42,14 +42,12 @@
|
||||
*/
|
||||
|
||||
#include "aslcompiler.h"
|
||||
#include "acapps.h"
|
||||
#include "acdispat.h"
|
||||
#include "acnamesp.h"
|
||||
#include "actables.h"
|
||||
#include "acparser.h"
|
||||
#include "acapps.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("dmtables")
|
||||
|
||||
+70
-116
@@ -52,12 +52,31 @@
|
||||
ACPI_MODULE_NAME ("dmtbdump")
|
||||
|
||||
|
||||
/* Local prototypes */
|
||||
/* Table of revision-dependent FADT sizes */
|
||||
|
||||
static void
|
||||
AcpiDmValidateFadtLength (
|
||||
UINT32 Revision,
|
||||
UINT32 Length);
|
||||
static const UINT32 FadtRevisionLength [ACPI_FADT_MAX_VERSION + 1] =
|
||||
{
|
||||
0, /* 0 - illegal */
|
||||
ACPI_FADT_V1_SIZE, /* 1 - ACPI 1.0 */
|
||||
0, /* 2 - illegal */
|
||||
ACPI_FADT_V3_SIZE, /* 3 - ACPI 2.0 */
|
||||
ACPI_FADT_V4_SIZE, /* 4 - ACPI 3.0 and ACPI 4.0 */
|
||||
ACPI_FADT_V5_SIZE, /* 5 - ACPI 5.0 */
|
||||
ACPI_FADT_V6_SIZE /* 6 - ACPI 6.0 */
|
||||
};
|
||||
|
||||
/* Table of revision-dependent FADT info tables */
|
||||
|
||||
ACPI_DMTABLE_INFO *FadtRevisionInfo [ACPI_FADT_MAX_VERSION + 1] =
|
||||
{
|
||||
NULL, /* 0 - illegal */
|
||||
AcpiDmTableInfoFadt1, /* 1 - ACPI 1.0 */
|
||||
NULL, /* 2 - illegal */
|
||||
AcpiDmTableInfoFadt3, /* 3 - ACPI 2.0 */
|
||||
AcpiDmTableInfoFadt4, /* 4 - ACPI 3.0 and ACPI 4.0 */
|
||||
AcpiDmTableInfoFadt5, /* 5 - ACPI 5.0 */
|
||||
AcpiDmTableInfoFadt6 /* 6 - ACPI 6.0 */
|
||||
};
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
@@ -347,6 +366,11 @@ AcpiDmDumpXsdt (
|
||||
*
|
||||
* DESCRIPTION: Format the contents of a FADT
|
||||
*
|
||||
* Check the FADT revision against the expected table length for
|
||||
* that revision. Issue a warning if the length is not what was
|
||||
* expected. This seems to be such a common BIOS bug that the
|
||||
* FADT revision has been rendered virtually meaningless.
|
||||
*
|
||||
* NOTE: We cannot depend on the FADT version to indicate the actual
|
||||
* contents of the FADT because of BIOS bugs. The table length
|
||||
* is the only reliable indicator.
|
||||
@@ -358,142 +382,72 @@ AcpiDmDumpFadt (
|
||||
ACPI_TABLE_HEADER *Table)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
UINT8 FadtRevision;
|
||||
UINT32 ExpectedLength;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
/* Always dump the minimum FADT revision 1 fields (ACPI 1.0) */
|
||||
FadtRevision = Table->Revision;
|
||||
|
||||
Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
AcpiDmTableInfoFadt1);
|
||||
if (ACPI_FAILURE (Status))
|
||||
/* FADT revision/length validation */
|
||||
|
||||
if ((FadtRevision == 0) ||
|
||||
(FadtRevision == 2))
|
||||
{
|
||||
AcpiOsPrintf (
|
||||
"// ACPI Warning: Invalid or unsupported FADT revision: %u\n",
|
||||
FadtRevision);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check for FADT revision 2 fields (ACPI 1.0B MS extensions) */
|
||||
|
||||
if ((Table->Length > ACPI_FADT_V1_SIZE) &&
|
||||
(Table->Length <= ACPI_FADT_V2_SIZE))
|
||||
if (FadtRevision > ACPI_FADT_MAX_VERSION)
|
||||
{
|
||||
Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
AcpiDmTableInfoFadt2);
|
||||
if (ACPI_FAILURE (Status))
|
||||
AcpiOsPrintf ("// ACPI Warning: Revision %u is not fully supported, "
|
||||
"disassembling known fields (up to revision %u)\n\n",
|
||||
FadtRevision, ACPI_FADT_MAX_VERSION);
|
||||
}
|
||||
else
|
||||
{
|
||||
ExpectedLength = FadtRevisionLength[FadtRevision];
|
||||
if (Table->Length != ExpectedLength)
|
||||
{
|
||||
return;
|
||||
AcpiOsPrintf (
|
||||
"// ACPI Warning: Input FADT revision %X does not match "
|
||||
"expected length: found 0x%X expected 0x%X\n",
|
||||
FadtRevision, Table->Length, ExpectedLength);
|
||||
}
|
||||
}
|
||||
|
||||
/* Check for FADT revision 3/4 fields and up (ACPI 2.0+ extended data) */
|
||||
|
||||
else if (Table->Length > ACPI_FADT_V2_SIZE)
|
||||
/*
|
||||
* Dump the input table on a per-version basis, but is actually
|
||||
* based upon the length of the table. Table length must
|
||||
* be larger than the required length of the previous version.
|
||||
*/
|
||||
for (i = 1; i <= ACPI_FADT_MAX_VERSION; i++)
|
||||
{
|
||||
if (!FadtRevisionLength[i]) /* Skip any empty slots */
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Dump the fields specific to FADT revision[i] */
|
||||
|
||||
Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
AcpiDmTableInfoFadt3);
|
||||
FadtRevisionInfo[i]);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check for FADT revision 5 fields and up (ACPI 5.0+) */
|
||||
|
||||
if (Table->Length > ACPI_FADT_V3_SIZE)
|
||||
if (Table->Length <= FadtRevisionLength[i])
|
||||
{
|
||||
Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
AcpiDmTableInfoFadt5);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check for FADT revision 6 fields and up (ACPI 6.0+) */
|
||||
|
||||
if (Table->Length > ACPI_FADT_V3_SIZE)
|
||||
{
|
||||
Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||
AcpiDmTableInfoFadt6);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
}
|
||||
break; /* End of table */
|
||||
}
|
||||
}
|
||||
|
||||
/* Validate various fields in the FADT, including length */
|
||||
/* Build a local FADT to test some FADT values */
|
||||
|
||||
AcpiTbCreateLocalFadt (Table, Table->Length);
|
||||
|
||||
/* Validate FADT length against the revision */
|
||||
|
||||
AcpiDmValidateFadtLength (Table->Revision, Table->Length);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDmValidateFadtLength
|
||||
*
|
||||
* PARAMETERS: Revision - FADT revision (Header->Revision)
|
||||
* Length - FADT length (Header->Length
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Check the FADT revision against the expected table length for
|
||||
* that revision. Issue a warning if the length is not what was
|
||||
* expected. This seems to be such a common BIOS bug that the
|
||||
* FADT revision has been rendered virtually meaningless.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
static void
|
||||
AcpiDmValidateFadtLength (
|
||||
UINT32 Revision,
|
||||
UINT32 Length)
|
||||
{
|
||||
UINT32 ExpectedLength;
|
||||
|
||||
|
||||
switch (Revision)
|
||||
{
|
||||
case 0:
|
||||
|
||||
AcpiOsPrintf ("// ACPI Warning: Invalid FADT revision: 0\n");
|
||||
return;
|
||||
|
||||
case 1:
|
||||
|
||||
ExpectedLength = ACPI_FADT_V1_SIZE;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
||||
ExpectedLength = ACPI_FADT_V2_SIZE;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
case 4:
|
||||
|
||||
ExpectedLength = ACPI_FADT_V3_SIZE;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
|
||||
ExpectedLength = ACPI_FADT_V5_SIZE;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (Length == ExpectedLength)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
AcpiOsPrintf (
|
||||
"\n// ACPI Warning: FADT revision %X does not match length: "
|
||||
"found %X expected %X\n",
|
||||
Revision, Length, ExpectedLength);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+25
-16
@@ -106,6 +106,7 @@
|
||||
#define ACPI_NFIT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_NFIT,f)
|
||||
#define ACPI_PCCT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PCCT,f)
|
||||
#define ACPI_PMTT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PMTT,f)
|
||||
#define ACPI_RASF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RASF,f)
|
||||
#define ACPI_S3PT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_S3PT,f)
|
||||
#define ACPI_SBST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SBST,f)
|
||||
#define ACPI_SLIT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SLIT,f)
|
||||
@@ -399,7 +400,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[] =
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/* ACPI 1.0 FADT (Version 1) */
|
||||
/* FADT version 1 (ACPI 1.0) */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[] =
|
||||
{
|
||||
@@ -485,18 +486,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[] =
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* ACPI 1.0 MS Extensions (FADT version 2) */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[] =
|
||||
{
|
||||
{ACPI_DMT_GAS, ACPI_FADT_OFFSET (ResetRegister), "Reset Register", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_FADT_OFFSET (ResetValue), "Value to cause reset", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_FADT_OFFSET (ArmBootFlags), "Reserved", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_FADT_OFFSET (MinorRevision), "Reserved", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* ACPI 2.0+ Extensions (FADT version 3, 4, and 5) */
|
||||
/* FADT version 3 (ACPI 2.0) */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[] =
|
||||
{
|
||||
@@ -520,16 +510,23 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[] =
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* ACPI 5.0 Extensions (FADT version 5) */
|
||||
/* FADT version 4 (ACPI 3.0 and ACPI 4.0) */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt4[] =
|
||||
{
|
||||
{ACPI_DMT_GAS, ACPI_FADT_OFFSET (SleepControl), "Sleep Control Register", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* FADT version 5 (ACPI 5.0) */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[] =
|
||||
{
|
||||
{ACPI_DMT_GAS, ACPI_FADT_OFFSET (SleepControl), "Sleep Control Register", 0},
|
||||
{ACPI_DMT_GAS, ACPI_FADT_OFFSET (SleepStatus), "Sleep Status Register", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* ACPI 6.0 Extensions (FADT version 6) */
|
||||
/* FADT version 6 (ACPI 6.0) */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[] =
|
||||
{
|
||||
@@ -2438,6 +2435,18 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[] =
|
||||
};
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* RASF - RAS Feature table
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[] =
|
||||
{
|
||||
{ACPI_DMT_BUF12, ACPI_RASF_OFFSET (ChannelId[0]), "Channel ID", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* S3PT - S3 Performance Table
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#include "acapps.h"
|
||||
|
||||
#define ACPI_OPTION_ERROR(msg, badchar) \
|
||||
if (AcpiGbl_Opterr) {AcpiLogError ("%s%c\n", msg, badchar);}
|
||||
if (AcpiGbl_Opterr) {fprintf (stderr, "%s%c\n", msg, badchar);}
|
||||
|
||||
|
||||
int AcpiGbl_Opterr = 1;
|
||||
@@ -101,7 +101,7 @@ AcpiGetoptArgument (
|
||||
}
|
||||
else if (++AcpiGbl_Optind >= argc)
|
||||
{
|
||||
ACPI_OPTION_ERROR ("Option requires an argument: -", 'v');
|
||||
ACPI_OPTION_ERROR ("\nOption requires an argument", 0);
|
||||
|
||||
CurrentCharPtr = 1;
|
||||
return (-1);
|
||||
|
||||
@@ -62,7 +62,6 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
|
||||
@@ -82,6 +82,13 @@ NoEcho('
|
||||
* 13) = += -= *= /= %= <<= >>= &= ^= |=
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Basic operations for math and logical expressions.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
Expression
|
||||
|
||||
/* Unary operators */
|
||||
@@ -140,33 +147,43 @@ Expression
|
||||
| TermArg PARSEOP_EXP_LOGICAL_OR {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
|
||||
TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
|
||||
|
||||
/* Parentheses */
|
||||
/* Parentheses */
|
||||
|
||||
| '(' TermArg ')' { $$ = $2;}
|
||||
|
||||
/* Index term -- "= BUF1[5]" on right-hand side of an equals (source) */
|
||||
/* Index term -- "= BUF1[5]" on right-hand side of an equals (source) */
|
||||
|
||||
| SuperName PARSEOP_EXP_INDEX_LEFT TermArg PARSEOP_EXP_INDEX_RIGHT
|
||||
{$$ = TrCreateLeafNode (PARSEOP_INDEX);
|
||||
| SuperName PARSEOP_EXP_INDEX_LEFT
|
||||
TermArg PARSEOP_EXP_INDEX_RIGHT {$$ = TrCreateLeafNode (PARSEOP_INDEX);
|
||||
TrLinkChildren ($$,3,$1,$3,TrCreateNullTarget ());}
|
||||
;
|
||||
|
||||
/* Index term -- "BUF1[5] = " on left-hand side of an equals (target) */
|
||||
/* Index term -- "BUF1[5] = " on left-hand side of an equals (target) */
|
||||
|
||||
IndexExpTerm
|
||||
|
||||
: SuperName PARSEOP_EXP_INDEX_LEFT TermArg PARSEOP_EXP_INDEX_RIGHT
|
||||
{$$ = TrCreateLeafNode (PARSEOP_INDEX);
|
||||
: SuperName PARSEOP_EXP_INDEX_LEFT
|
||||
TermArg PARSEOP_EXP_INDEX_RIGHT {$$ = TrCreateLeafNode (PARSEOP_INDEX);
|
||||
TrLinkChildren ($$,3,$1,$3,TrCreateNullTarget ());}
|
||||
;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* All assignment-type operations -- math and logical. Includes simple
|
||||
* assignment and compound assignments.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
EqualsTerm
|
||||
|
||||
/* All assignment-type operations */
|
||||
/* Simple Store() operation */
|
||||
|
||||
: SuperName PARSEOP_EXP_EQUALS
|
||||
TermArg {$$ = TrCreateAssignmentNode ($1, $3);}
|
||||
|
||||
/* Compound assignments -- Add (operand, operand, target) */
|
||||
|
||||
| TermArg PARSEOP_EXP_ADD_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
|
||||
TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
|
||||
TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
|
||||
|
||||
@@ -0,0 +1,286 @@
|
||||
NoEcho('
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: aslhelpers.y - helper and option terms
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2016, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
||||
* substantially similar to the "NO WARRANTY" disclaimer below
|
||||
* ("Disclaimer") and any redistribution must be conditioned upon
|
||||
* including a substantially similar Disclaimer requirement for further
|
||||
* binary redistribution.
|
||||
* 3. Neither the names of the above-listed copyright holders nor the names
|
||||
* of any contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* Alternatively, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
')
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* ASL Helper Terms
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
OptionalBusMasterKeyword
|
||||
: ',' {$$ = TrCreateLeafNode (
|
||||
PARSEOP_BUSMASTERTYPE_MASTER);}
|
||||
| ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (
|
||||
PARSEOP_BUSMASTERTYPE_MASTER);}
|
||||
| ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (
|
||||
PARSEOP_BUSMASTERTYPE_NOTMASTER);}
|
||||
;
|
||||
|
||||
OptionalAccessAttribTerm
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' ByteConstExpr {$$ = $2;}
|
||||
| ',' AccessAttribKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalAccessSize
|
||||
: {$$ = TrCreateValuedLeafNode (
|
||||
PARSEOP_BYTECONST, 0);}
|
||||
| ',' {$$ = TrCreateValuedLeafNode (
|
||||
PARSEOP_BYTECONST, 0);}
|
||||
| ',' ByteConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalAddressingMode
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' AddressingModeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalAddressRange
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' AddressKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalBitsPerByte
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' BitsPerByteKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalBuffer_Last
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' RawDataBufferTerm {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalByteConstExpr
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' ByteConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalDecodeType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' DecodeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalDevicePolarity
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' DevicePolarityKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalDWordConstExpr
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' DWordConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalEndian
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' EndianKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalFlowControl
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' FlowControlKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalIoRestriction
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' IoRestrictionKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalListString
|
||||
: {$$ = TrCreateValuedLeafNode (
|
||||
PARSEOP_STRING_LITERAL,
|
||||
ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
|
||||
| ',' {$$ = TrCreateValuedLeafNode (
|
||||
PARSEOP_STRING_LITERAL,
|
||||
ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
|
||||
| ',' TermArg {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalMaxType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' MaxKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalMemType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' MemTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalMinType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' MinKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalNameString
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' NameString {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalNameString_Last
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' NameString {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalNameString_First
|
||||
: {$$ = TrCreateLeafNode (
|
||||
PARSEOP_ZERO);}
|
||||
| NameString {$$ = $1;}
|
||||
;
|
||||
|
||||
OptionalObjectTypeKeyword
|
||||
: {$$ = TrCreateLeafNode (
|
||||
PARSEOP_OBJECTTYPE_UNK);}
|
||||
| ',' ObjectTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalParityType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' ParityTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalQWordConstExpr
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' QWordConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalRangeType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' RangeTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalReadWriteKeyword
|
||||
: {$$ = TrCreateLeafNode (
|
||||
PARSEOP_READWRITETYPE_BOTH);}
|
||||
| PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (
|
||||
PARSEOP_READWRITETYPE_BOTH);}
|
||||
| PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (
|
||||
PARSEOP_READWRITETYPE_READONLY);}
|
||||
;
|
||||
|
||||
OptionalResourceType_First
|
||||
: {$$ = TrCreateLeafNode (
|
||||
PARSEOP_RESOURCETYPE_CONSUMER);}
|
||||
| ResourceTypeKeyword {$$ = $1;}
|
||||
;
|
||||
|
||||
OptionalResourceType
|
||||
: {$$ = TrCreateLeafNode (
|
||||
PARSEOP_RESOURCETYPE_CONSUMER);}
|
||||
| ',' {$$ = TrCreateLeafNode (
|
||||
PARSEOP_RESOURCETYPE_CONSUMER);}
|
||||
| ',' ResourceTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalSlaveMode
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' SlaveModeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalShareType
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' ShareTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalShareType_First
|
||||
: {$$ = NULL;}
|
||||
| ShareTypeKeyword {$$ = $1;}
|
||||
;
|
||||
|
||||
OptionalStopBits
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' StopBitsKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalStringData
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' StringData {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalTranslationType_Last
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' TranslationKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalType
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' TypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalType_Last
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' TypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalWireMode
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' WireModeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalWordConstExpr
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' WordConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalXferSize
|
||||
: {$$ = TrCreateValuedLeafNode (
|
||||
PARSEOP_XFERSIZE_32, 2);}
|
||||
| ',' {$$ = TrCreateValuedLeafNode (
|
||||
PARSEOP_XFERSIZE_32, 2);}
|
||||
| ',' XferSizeKeyword {$$ = $2;}
|
||||
;
|
||||
@@ -0,0 +1,352 @@
|
||||
NoEcho('
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: aslkeywords.y - Rules for resource descriptor keywords
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2016, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
||||
* substantially similar to the "NO WARRANTY" disclaimer below
|
||||
* ("Disclaimer") and any redistribution must be conditioned upon
|
||||
* including a substantially similar Disclaimer requirement for further
|
||||
* binary redistribution.
|
||||
* 3. Neither the names of the above-listed copyright holders nor the names
|
||||
* of any contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* Alternatively, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
')
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* ASL Parameter Keyword Terms
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
AccessAttribKeyword
|
||||
: PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
|
||||
| PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
|
||||
| PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
|
||||
| PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
|
||||
| PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
|
||||
| PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
|
||||
| PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
|
||||
| PARSEOP_ACCESSATTRIB_MULTIBYTE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
|
||||
ByteConst
|
||||
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
||||
| PARSEOP_ACCESSATTRIB_RAW_BYTES '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
|
||||
ByteConst
|
||||
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
||||
| PARSEOP_ACCESSATTRIB_RAW_PROCESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
|
||||
ByteConst
|
||||
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
||||
;
|
||||
|
||||
AccessTypeKeyword
|
||||
: PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
|
||||
| PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
|
||||
| PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
|
||||
| PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
|
||||
| PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
|
||||
| PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
|
||||
;
|
||||
|
||||
AddressingModeKeyword
|
||||
: PARSEOP_ADDRESSINGMODE_7BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
|
||||
| PARSEOP_ADDRESSINGMODE_10BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
|
||||
;
|
||||
|
||||
AddressKeyword
|
||||
: PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
|
||||
| PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
|
||||
| PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
|
||||
| PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
|
||||
;
|
||||
|
||||
AddressSpaceKeyword
|
||||
: ByteConst {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
|
||||
| RegionSpaceKeyword {}
|
||||
;
|
||||
|
||||
BitsPerByteKeyword
|
||||
: PARSEOP_BITSPERBYTE_FIVE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
|
||||
| PARSEOP_BITSPERBYTE_SIX {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
|
||||
| PARSEOP_BITSPERBYTE_SEVEN {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
|
||||
| PARSEOP_BITSPERBYTE_EIGHT {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
|
||||
| PARSEOP_BITSPERBYTE_NINE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
|
||||
;
|
||||
|
||||
ClockPhaseKeyword
|
||||
: PARSEOP_CLOCKPHASE_FIRST {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
|
||||
| PARSEOP_CLOCKPHASE_SECOND {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
|
||||
;
|
||||
|
||||
ClockPolarityKeyword
|
||||
: PARSEOP_CLOCKPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
|
||||
| PARSEOP_CLOCKPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
|
||||
;
|
||||
|
||||
DecodeKeyword
|
||||
: PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
|
||||
| PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
|
||||
;
|
||||
|
||||
DevicePolarityKeyword
|
||||
: PARSEOP_DEVICEPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
|
||||
| PARSEOP_DEVICEPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
|
||||
;
|
||||
|
||||
DMATypeKeyword
|
||||
: PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
|
||||
| PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
|
||||
| PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
|
||||
| PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
|
||||
;
|
||||
|
||||
EndianKeyword
|
||||
: PARSEOP_ENDIAN_LITTLE {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
|
||||
| PARSEOP_ENDIAN_BIG {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
|
||||
;
|
||||
|
||||
FlowControlKeyword
|
||||
: PARSEOP_FLOWCONTROL_HW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
|
||||
| PARSEOP_FLOWCONTROL_NONE {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
|
||||
| PARSEOP_FLOWCONTROL_SW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
|
||||
;
|
||||
|
||||
InterruptLevel
|
||||
: PARSEOP_INTLEVEL_ACTIVEBOTH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
|
||||
| PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
|
||||
| PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
|
||||
;
|
||||
|
||||
InterruptTypeKeyword
|
||||
: PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
|
||||
| PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
|
||||
;
|
||||
|
||||
IODecodeKeyword
|
||||
: PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
|
||||
| PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
|
||||
;
|
||||
|
||||
IoRestrictionKeyword
|
||||
: PARSEOP_IORESTRICT_IN {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
|
||||
| PARSEOP_IORESTRICT_OUT {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
|
||||
| PARSEOP_IORESTRICT_NONE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
|
||||
| PARSEOP_IORESTRICT_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
|
||||
;
|
||||
|
||||
LockRuleKeyword
|
||||
: PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
|
||||
| PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
|
||||
;
|
||||
|
||||
MatchOpKeyword
|
||||
: PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
|
||||
| PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
|
||||
| PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
|
||||
| PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
|
||||
| PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
|
||||
| PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
|
||||
;
|
||||
|
||||
MaxKeyword
|
||||
: PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
|
||||
| PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
|
||||
;
|
||||
|
||||
MemTypeKeyword
|
||||
: PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
|
||||
| PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
|
||||
| PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
|
||||
| PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
|
||||
;
|
||||
|
||||
MinKeyword
|
||||
: PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
|
||||
| PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
|
||||
;
|
||||
|
||||
ObjectTypeKeyword
|
||||
: PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
|
||||
| PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
|
||||
| PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
|
||||
| PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
|
||||
| PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
|
||||
| PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
|
||||
| PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
|
||||
| PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
|
||||
| PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
|
||||
| PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
|
||||
| PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
|
||||
| PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
|
||||
| PARSEOP_OBJECTTYPE_PRO {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
|
||||
| PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
|
||||
| PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
|
||||
| PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
|
||||
;
|
||||
|
||||
ParityTypeKeyword
|
||||
: PARSEOP_PARITYTYPE_SPACE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
|
||||
| PARSEOP_PARITYTYPE_MARK {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
|
||||
| PARSEOP_PARITYTYPE_ODD {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
|
||||
| PARSEOP_PARITYTYPE_EVEN {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
|
||||
| PARSEOP_PARITYTYPE_NONE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
|
||||
;
|
||||
|
||||
PinConfigByte
|
||||
: PinConfigKeyword {$$ = $1;}
|
||||
| ByteConstExpr {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
|
||||
;
|
||||
|
||||
PinConfigKeyword
|
||||
: PARSEOP_PIN_NOPULL {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
|
||||
| PARSEOP_PIN_PULLDOWN {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
|
||||
| PARSEOP_PIN_PULLUP {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
|
||||
| PARSEOP_PIN_PULLDEFAULT {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
|
||||
;
|
||||
|
||||
PldKeyword
|
||||
: PARSEOP_PLD_REVISION {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
|
||||
| PARSEOP_PLD_IGNORECOLOR {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
|
||||
| PARSEOP_PLD_RED {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
|
||||
| PARSEOP_PLD_GREEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
|
||||
| PARSEOP_PLD_BLUE {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
|
||||
| PARSEOP_PLD_WIDTH {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
|
||||
| PARSEOP_PLD_HEIGHT {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
|
||||
| PARSEOP_PLD_USERVISIBLE {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
|
||||
| PARSEOP_PLD_DOCK {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
|
||||
| PARSEOP_PLD_LID {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
|
||||
| PARSEOP_PLD_PANEL {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
|
||||
| PARSEOP_PLD_VERTICALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
|
||||
| PARSEOP_PLD_HORIZONTALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
|
||||
| PARSEOP_PLD_SHAPE {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
|
||||
| PARSEOP_PLD_GROUPORIENTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
|
||||
| PARSEOP_PLD_GROUPTOKEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
|
||||
| PARSEOP_PLD_GROUPPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
|
||||
| PARSEOP_PLD_BAY {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
|
||||
| PARSEOP_PLD_EJECTABLE {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
|
||||
| PARSEOP_PLD_EJECTREQUIRED {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
|
||||
| PARSEOP_PLD_CABINETNUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
|
||||
| PARSEOP_PLD_CARDCAGENUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
|
||||
| PARSEOP_PLD_REFERENCE {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
|
||||
| PARSEOP_PLD_ROTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
|
||||
| PARSEOP_PLD_ORDER {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
|
||||
| PARSEOP_PLD_RESERVED {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
|
||||
| PARSEOP_PLD_VERTICALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
|
||||
| PARSEOP_PLD_HORIZONTALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
|
||||
;
|
||||
|
||||
RangeTypeKeyword
|
||||
: PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
|
||||
| PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
|
||||
| PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
|
||||
;
|
||||
|
||||
RegionSpaceKeyword
|
||||
: PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
|
||||
| PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
|
||||
| PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
|
||||
| PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
|
||||
| PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
|
||||
| PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
|
||||
| PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
|
||||
| PARSEOP_REGIONSPACE_IPMI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
|
||||
| PARSEOP_REGIONSPACE_GPIO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
|
||||
| PARSEOP_REGIONSPACE_GSBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
|
||||
| PARSEOP_REGIONSPACE_PCC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
|
||||
| PARSEOP_REGIONSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
|
||||
;
|
||||
|
||||
ResourceTypeKeyword
|
||||
: PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
|
||||
| PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
|
||||
;
|
||||
|
||||
SerializeRuleKeyword
|
||||
: PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
|
||||
| PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
|
||||
;
|
||||
|
||||
ShareTypeKeyword
|
||||
: PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
|
||||
| PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
|
||||
| PARSEOP_SHARETYPE_SHAREDWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
|
||||
| PARSEOP_SHARETYPE_EXCLUSIVEWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
|
||||
;
|
||||
|
||||
SlaveModeKeyword
|
||||
: PARSEOP_SLAVEMODE_CONTROLLERINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
|
||||
| PARSEOP_SLAVEMODE_DEVICEINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
|
||||
;
|
||||
|
||||
StopBitsKeyword
|
||||
: PARSEOP_STOPBITS_TWO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
|
||||
| PARSEOP_STOPBITS_ONEPLUSHALF {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
|
||||
| PARSEOP_STOPBITS_ONE {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
|
||||
| PARSEOP_STOPBITS_ZERO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
|
||||
;
|
||||
|
||||
TranslationKeyword
|
||||
: PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
|
||||
| PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
|
||||
;
|
||||
|
||||
TypeKeyword
|
||||
: PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
|
||||
| PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
|
||||
;
|
||||
|
||||
UpdateRuleKeyword
|
||||
: PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
|
||||
| PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
|
||||
| PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
|
||||
;
|
||||
|
||||
WireModeKeyword
|
||||
: PARSEOP_WIREMODE_FOUR {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
|
||||
| PARSEOP_WIREMODE_THREE {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
|
||||
;
|
||||
|
||||
XferSizeKeyword
|
||||
: PARSEOP_XFERSIZE_8 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8, 0);}
|
||||
| PARSEOP_XFERSIZE_16 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16, 1);}
|
||||
| PARSEOP_XFERSIZE_32 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
|
||||
| PARSEOP_XFERSIZE_64 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64, 3);}
|
||||
| PARSEOP_XFERSIZE_128 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
|
||||
| PARSEOP_XFERSIZE_256 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
|
||||
;
|
||||
|
||||
XferTypeKeyword
|
||||
: PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
|
||||
| PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
|
||||
| PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
|
||||
;
|
||||
+18
-10
@@ -97,8 +97,6 @@ Usage (
|
||||
printf ("\nGeneral:\n");
|
||||
ACPI_OPTION ("-@ <file>", "Specify command file");
|
||||
ACPI_OPTION ("-I <dir>", "Specify additional include directory");
|
||||
ACPI_OPTION ("-T <sig list>|ALL", "Create ACPI table template/example files");
|
||||
ACPI_OPTION ("-T <count>", "Emit DSDT and <count> SSDTs to same file");
|
||||
ACPI_OPTION ("-p <prefix>", "Specify path/filename prefix for all output files");
|
||||
ACPI_OPTION ("-v", "Display compiler version");
|
||||
ACPI_OPTION ("-vo", "Enable optimization comments");
|
||||
@@ -123,7 +121,7 @@ Usage (
|
||||
ACPI_OPTION ("-vi", "Less verbose errors and warnings for use with IDEs");
|
||||
ACPI_OPTION ("-vr", "Disable remarks");
|
||||
ACPI_OPTION ("-vw <messageid>", "Disable specific warning or remark");
|
||||
ACPI_OPTION ("-w1 -w2 -w3", "Set warning reporting level");
|
||||
ACPI_OPTION ("-w <1|2|3>", "Set warning reporting level");
|
||||
ACPI_OPTION ("-we", "Report warnings as errors");
|
||||
|
||||
printf ("\nAML Code Generation (*.aml):\n");
|
||||
@@ -136,21 +134,31 @@ Usage (
|
||||
ACPI_OPTION ("-in", "Ignore NoOp operators");
|
||||
ACPI_OPTION ("-r <revision>", "Override table header Revision (1-255)");
|
||||
|
||||
printf ("\nOptional Source Code Output Files:\n");
|
||||
ACPI_OPTION ("-sc -sa", "Create source file in C or assembler (*.c or *.asm)");
|
||||
ACPI_OPTION ("-ic -ia", "Create include file in C or assembler (*.h or *.inc)");
|
||||
ACPI_OPTION ("-tc -ta -ts", "Create hex AML table in C, assembler, or ASL (*.hex)");
|
||||
ACPI_OPTION ("-so", "Create offset table in C (*.offset.h)");
|
||||
|
||||
printf ("\nOptional Listing Files:\n");
|
||||
printf ("\nListings:\n");
|
||||
ACPI_OPTION ("-l", "Create mixed listing file (ASL source and AML) (*.lst)");
|
||||
ACPI_OPTION ("-lm", "Create hardware summary map file (*.map)");
|
||||
ACPI_OPTION ("-ln", "Create namespace file (*.nsp)");
|
||||
ACPI_OPTION ("-ls", "Create combined source file (expanded includes) (*.src)");
|
||||
ACPI_OPTION ("-lx", "Create cross-reference file (*.xrf)");
|
||||
|
||||
printf ("\nFirmware Support - C Output:\n");
|
||||
ACPI_OPTION ("-tc", "Create hex AML table in C (*.hex)");
|
||||
ACPI_OPTION ("-sc", "Create named hex AML arrays in C (*.c)");
|
||||
ACPI_OPTION ("-ic", "Create include file in C for -sc symbols (*.h)");
|
||||
ACPI_OPTION ("-so", "Create namespace AML offset table in C (*.offset.h)");
|
||||
|
||||
printf ("\nFirmware Support - Assembler Output:\n");
|
||||
ACPI_OPTION ("-ta", "Create hex AML table in assembler (*.hex)");
|
||||
ACPI_OPTION ("-sa", "Create named hex AML arrays in assembler (*.asm)");
|
||||
ACPI_OPTION ("-ia", "Create include file in assembler for -sa symbols (*.inc)");
|
||||
|
||||
printf ("\nFirmware Support - ASL Output:\n");
|
||||
ACPI_OPTION ("-ts", "Create hex AML table in ASL (Buffer object) (*.hex)");
|
||||
|
||||
printf ("\nData Table Compiler:\n");
|
||||
ACPI_OPTION ("-G", "Compile custom table that contains generic operators");
|
||||
ACPI_OPTION ("-T <sig list>|ALL", "Create ACPI table template/example files");
|
||||
ACPI_OPTION ("-T <count>", "Emit DSDT and <count> SSDTs to same file");
|
||||
ACPI_OPTION ("-vt", "Create verbose template files (full disassembly)");
|
||||
|
||||
printf ("\nAML Disassembler:\n");
|
||||
|
||||
@@ -275,11 +275,25 @@ 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;
|
||||
|
||||
@@ -66,6 +66,7 @@ void *
|
||||
AslLocalAllocate (
|
||||
unsigned int Size);
|
||||
|
||||
|
||||
/* Bison/yacc configuration */
|
||||
|
||||
#define static
|
||||
@@ -99,7 +100,7 @@ AslLocalAllocate (
|
||||
* These shift/reduce conflicts are expected. There should be zero
|
||||
* reduce/reduce conflicts.
|
||||
*/
|
||||
%expect 101
|
||||
%expect 102
|
||||
|
||||
/*! [Begin] no source code translation */
|
||||
|
||||
@@ -122,8 +123,11 @@ m4_include(asltypes.y)
|
||||
/* Production rules */
|
||||
|
||||
m4_include(aslrules.y)
|
||||
m4_include(aslprimaries.y)
|
||||
m4_include(aslcstyle.y)
|
||||
m4_include(aslkeywords.y)
|
||||
m4_include(aslresources.y)
|
||||
m4_include(aslhelpers.y)
|
||||
%%
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+49
-572
@@ -44,313 +44,6 @@ NoEcho('
|
||||
|
||||
')
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* ASL Parameter Keyword Terms
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
AccessAttribKeyword
|
||||
: PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
|
||||
| PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
|
||||
| PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
|
||||
| PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
|
||||
| PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
|
||||
| PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
|
||||
| PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
|
||||
| PARSEOP_ACCESSATTRIB_MULTIBYTE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
|
||||
ByteConst
|
||||
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
||||
| PARSEOP_ACCESSATTRIB_RAW_BYTES '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
|
||||
ByteConst
|
||||
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
||||
| PARSEOP_ACCESSATTRIB_RAW_PROCESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
|
||||
ByteConst
|
||||
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
||||
;
|
||||
|
||||
AccessTypeKeyword
|
||||
: PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
|
||||
| PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
|
||||
| PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
|
||||
| PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
|
||||
| PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
|
||||
| PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
|
||||
;
|
||||
|
||||
AddressingModeKeyword
|
||||
: PARSEOP_ADDRESSINGMODE_7BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
|
||||
| PARSEOP_ADDRESSINGMODE_10BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
|
||||
;
|
||||
|
||||
AddressKeyword
|
||||
: PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
|
||||
| PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
|
||||
| PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
|
||||
| PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
|
||||
;
|
||||
|
||||
AddressSpaceKeyword
|
||||
: ByteConst {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
|
||||
| RegionSpaceKeyword {}
|
||||
;
|
||||
|
||||
BitsPerByteKeyword
|
||||
: PARSEOP_BITSPERBYTE_FIVE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
|
||||
| PARSEOP_BITSPERBYTE_SIX {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
|
||||
| PARSEOP_BITSPERBYTE_SEVEN {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
|
||||
| PARSEOP_BITSPERBYTE_EIGHT {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
|
||||
| PARSEOP_BITSPERBYTE_NINE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
|
||||
;
|
||||
|
||||
ClockPhaseKeyword
|
||||
: PARSEOP_CLOCKPHASE_FIRST {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
|
||||
| PARSEOP_CLOCKPHASE_SECOND {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
|
||||
;
|
||||
|
||||
ClockPolarityKeyword
|
||||
: PARSEOP_CLOCKPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
|
||||
| PARSEOP_CLOCKPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
|
||||
;
|
||||
|
||||
DecodeKeyword
|
||||
: PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
|
||||
| PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
|
||||
;
|
||||
|
||||
DevicePolarityKeyword
|
||||
: PARSEOP_DEVICEPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
|
||||
| PARSEOP_DEVICEPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
|
||||
;
|
||||
|
||||
DMATypeKeyword
|
||||
: PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
|
||||
| PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
|
||||
| PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
|
||||
| PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
|
||||
;
|
||||
|
||||
EndianKeyword
|
||||
: PARSEOP_ENDIAN_LITTLE {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
|
||||
| PARSEOP_ENDIAN_BIG {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
|
||||
;
|
||||
|
||||
FlowControlKeyword
|
||||
: PARSEOP_FLOWCONTROL_HW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
|
||||
| PARSEOP_FLOWCONTROL_NONE {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
|
||||
| PARSEOP_FLOWCONTROL_SW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
|
||||
;
|
||||
|
||||
InterruptLevel
|
||||
: PARSEOP_INTLEVEL_ACTIVEBOTH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
|
||||
| PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
|
||||
| PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
|
||||
;
|
||||
|
||||
InterruptTypeKeyword
|
||||
: PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
|
||||
| PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
|
||||
;
|
||||
|
||||
IODecodeKeyword
|
||||
: PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
|
||||
| PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
|
||||
;
|
||||
|
||||
IoRestrictionKeyword
|
||||
: PARSEOP_IORESTRICT_IN {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
|
||||
| PARSEOP_IORESTRICT_OUT {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
|
||||
| PARSEOP_IORESTRICT_NONE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
|
||||
| PARSEOP_IORESTRICT_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
|
||||
;
|
||||
|
||||
LockRuleKeyword
|
||||
: PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
|
||||
| PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
|
||||
;
|
||||
|
||||
MatchOpKeyword
|
||||
: PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
|
||||
| PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
|
||||
| PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
|
||||
| PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
|
||||
| PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
|
||||
| PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
|
||||
;
|
||||
|
||||
MaxKeyword
|
||||
: PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
|
||||
| PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
|
||||
;
|
||||
|
||||
MemTypeKeyword
|
||||
: PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
|
||||
| PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
|
||||
| PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
|
||||
| PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
|
||||
;
|
||||
|
||||
MinKeyword
|
||||
: PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
|
||||
| PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
|
||||
;
|
||||
|
||||
ObjectTypeKeyword
|
||||
: PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
|
||||
| PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
|
||||
| PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
|
||||
| PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
|
||||
| PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
|
||||
| PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
|
||||
| PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
|
||||
| PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
|
||||
| PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
|
||||
| PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
|
||||
| PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
|
||||
| PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
|
||||
| PARSEOP_OBJECTTYPE_PRO {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
|
||||
| PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
|
||||
| PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
|
||||
| PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
|
||||
;
|
||||
|
||||
ParityTypeKeyword
|
||||
: PARSEOP_PARITYTYPE_SPACE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
|
||||
| PARSEOP_PARITYTYPE_MARK {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
|
||||
| PARSEOP_PARITYTYPE_ODD {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
|
||||
| PARSEOP_PARITYTYPE_EVEN {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
|
||||
| PARSEOP_PARITYTYPE_NONE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
|
||||
;
|
||||
|
||||
PinConfigByte
|
||||
: PinConfigKeyword {$$ = $1;}
|
||||
| ByteConstExpr {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
|
||||
;
|
||||
|
||||
PinConfigKeyword
|
||||
: PARSEOP_PIN_NOPULL {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
|
||||
| PARSEOP_PIN_PULLDOWN {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
|
||||
| PARSEOP_PIN_PULLUP {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
|
||||
| PARSEOP_PIN_PULLDEFAULT {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
|
||||
;
|
||||
|
||||
PldKeyword
|
||||
: PARSEOP_PLD_REVISION {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
|
||||
| PARSEOP_PLD_IGNORECOLOR {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
|
||||
| PARSEOP_PLD_RED {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
|
||||
| PARSEOP_PLD_GREEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
|
||||
| PARSEOP_PLD_BLUE {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
|
||||
| PARSEOP_PLD_WIDTH {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
|
||||
| PARSEOP_PLD_HEIGHT {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
|
||||
| PARSEOP_PLD_USERVISIBLE {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
|
||||
| PARSEOP_PLD_DOCK {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
|
||||
| PARSEOP_PLD_LID {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
|
||||
| PARSEOP_PLD_PANEL {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
|
||||
| PARSEOP_PLD_VERTICALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
|
||||
| PARSEOP_PLD_HORIZONTALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
|
||||
| PARSEOP_PLD_SHAPE {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
|
||||
| PARSEOP_PLD_GROUPORIENTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
|
||||
| PARSEOP_PLD_GROUPTOKEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
|
||||
| PARSEOP_PLD_GROUPPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
|
||||
| PARSEOP_PLD_BAY {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
|
||||
| PARSEOP_PLD_EJECTABLE {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
|
||||
| PARSEOP_PLD_EJECTREQUIRED {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
|
||||
| PARSEOP_PLD_CABINETNUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
|
||||
| PARSEOP_PLD_CARDCAGENUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
|
||||
| PARSEOP_PLD_REFERENCE {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
|
||||
| PARSEOP_PLD_ROTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
|
||||
| PARSEOP_PLD_ORDER {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
|
||||
| PARSEOP_PLD_RESERVED {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
|
||||
| PARSEOP_PLD_VERTICALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
|
||||
| PARSEOP_PLD_HORIZONTALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
|
||||
;
|
||||
|
||||
RangeTypeKeyword
|
||||
: PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
|
||||
| PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
|
||||
| PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
|
||||
;
|
||||
|
||||
RegionSpaceKeyword
|
||||
: PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
|
||||
| PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
|
||||
| PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
|
||||
| PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
|
||||
| PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
|
||||
| PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
|
||||
| PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
|
||||
| PARSEOP_REGIONSPACE_IPMI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
|
||||
| PARSEOP_REGIONSPACE_GPIO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
|
||||
| PARSEOP_REGIONSPACE_GSBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
|
||||
| PARSEOP_REGIONSPACE_PCC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
|
||||
| PARSEOP_REGIONSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
|
||||
;
|
||||
|
||||
ResourceTypeKeyword
|
||||
: PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
|
||||
| PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
|
||||
;
|
||||
|
||||
SerializeRuleKeyword
|
||||
: PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
|
||||
| PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
|
||||
;
|
||||
|
||||
ShareTypeKeyword
|
||||
: PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
|
||||
| PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
|
||||
| PARSEOP_SHARETYPE_SHAREDWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
|
||||
| PARSEOP_SHARETYPE_EXCLUSIVEWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
|
||||
;
|
||||
|
||||
SlaveModeKeyword
|
||||
: PARSEOP_SLAVEMODE_CONTROLLERINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
|
||||
| PARSEOP_SLAVEMODE_DEVICEINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
|
||||
;
|
||||
|
||||
StopBitsKeyword
|
||||
: PARSEOP_STOPBITS_TWO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
|
||||
| PARSEOP_STOPBITS_ONEPLUSHALF {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
|
||||
| PARSEOP_STOPBITS_ONE {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
|
||||
| PARSEOP_STOPBITS_ZERO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
|
||||
;
|
||||
|
||||
TranslationKeyword
|
||||
: PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
|
||||
| PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
|
||||
;
|
||||
|
||||
TypeKeyword
|
||||
: PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
|
||||
| PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
|
||||
;
|
||||
|
||||
UpdateRuleKeyword
|
||||
: PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
|
||||
| PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
|
||||
| PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
|
||||
;
|
||||
|
||||
WireModeKeyword
|
||||
: PARSEOP_WIREMODE_FOUR {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
|
||||
| PARSEOP_WIREMODE_THREE {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
|
||||
;
|
||||
|
||||
XferSizeKeyword
|
||||
: PARSEOP_XFERSIZE_8 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8, 0);}
|
||||
| PARSEOP_XFERSIZE_16 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16, 1);}
|
||||
| PARSEOP_XFERSIZE_32 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
|
||||
| PARSEOP_XFERSIZE_64 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64, 3);}
|
||||
| PARSEOP_XFERSIZE_128 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
|
||||
| PARSEOP_XFERSIZE_256 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
|
||||
;
|
||||
|
||||
XferTypeKeyword
|
||||
: PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
|
||||
| PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
|
||||
| PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
|
||||
;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
@@ -363,15 +56,20 @@ XferTypeKeyword
|
||||
* Also, insert the EndTag at the end of the template.
|
||||
*/
|
||||
ResourceTemplateTerm
|
||||
: PARSEOP_RESOURCETEMPLATE '(' ')'
|
||||
: PARSEOP_RESOURCETEMPLATE OptionalParentheses
|
||||
'{'
|
||||
ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
|
||||
TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
|
||||
TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
|
||||
$5,
|
||||
$4,
|
||||
TrCreateLeafNode (PARSEOP_ENDTAG));}
|
||||
;
|
||||
|
||||
OptionalParentheses
|
||||
: {$$ = NULL;}
|
||||
| '(' ')' {$$ = NULL;}
|
||||
;
|
||||
|
||||
ResourceMacroList
|
||||
: {$$ = NULL;}
|
||||
| ResourceMacroList
|
||||
@@ -446,7 +144,8 @@ DWordIOTerm
|
||||
OptionalNameString
|
||||
OptionalType
|
||||
OptionalTranslationType_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,
|
||||
$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
|
||||
| PARSEOP_DWORDIO '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -469,7 +168,8 @@ DWordMemoryTerm
|
||||
OptionalNameString
|
||||
OptionalAddressRange
|
||||
OptionalType_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,16,
|
||||
$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
|
||||
| PARSEOP_DWORDMEMORY '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -490,7 +190,8 @@ DWordSpaceTerm
|
||||
OptionalByteConstExpr
|
||||
OptionalStringData
|
||||
OptionalNameString_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,
|
||||
$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
|
||||
| PARSEOP_DWORDSPACE '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -518,7 +219,8 @@ ExtendedIOTerm
|
||||
OptionalNameString
|
||||
OptionalType
|
||||
OptionalTranslationType_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,
|
||||
$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
|
||||
| PARSEOP_EXTENDEDIO '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -540,7 +242,8 @@ ExtendedMemoryTerm
|
||||
OptionalNameString
|
||||
OptionalAddressRange
|
||||
OptionalType_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,
|
||||
$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
|
||||
| PARSEOP_EXTENDEDMEMORY '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -560,7 +263,8 @@ ExtendedSpaceTerm
|
||||
',' QWordConstExpr
|
||||
OptionalQWordConstExpr
|
||||
OptionalNameString_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,13,
|
||||
$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
|
||||
| PARSEOP_EXTENDEDSPACE '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -599,7 +303,8 @@ GpioIntTerm
|
||||
OptionalNameString /* 15: DescriptorName */
|
||||
OptionalBuffer_Last /* 16: VendorData */
|
||||
')' '{'
|
||||
DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
|
||||
DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,
|
||||
$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
|
||||
| PARSEOP_GPIO_INT '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -617,7 +322,8 @@ GpioIoTerm
|
||||
OptionalNameString /* 14: DescriptorName */
|
||||
OptionalBuffer_Last /* 15: VendorData */
|
||||
')' '{'
|
||||
DWordList '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
|
||||
DWordList '}' {$$ = TrLinkChildren ($<n>3,11,
|
||||
$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
|
||||
| PARSEOP_GPIO_IO '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -633,7 +339,8 @@ I2cSerialBusTerm
|
||||
OptionalResourceType /* 12: ResourceType */
|
||||
OptionalNameString /* 13: DescriptorName */
|
||||
OptionalBuffer_Last /* 14: VendorData */
|
||||
')' {$$ = TrLinkChildren ($<n>3,10,$4,$5,$7,$8,$10,$11,$12,$13,
|
||||
')' {$$ = TrLinkChildren ($<n>3,10,
|
||||
$4,$5,$7,$8,$10,$11,$12,$13,
|
||||
TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
|
||||
| PARSEOP_I2C_SERIALBUS '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
@@ -651,8 +358,8 @@ I2cSerialBusTermV2
|
||||
OptionalNameString /* 13: DescriptorName */
|
||||
OptionalShareType /* 14: Share */
|
||||
OptionalBuffer_Last /* 15: VendorData */
|
||||
')' {$$ = TrLinkChildren ($<n>3,10,$4,$5,$7,$8,$10,$11,$12,$13,
|
||||
$14,$15);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,10,
|
||||
$4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
|
||||
| PARSEOP_I2C_SERIALBUS_V2 '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -667,7 +374,8 @@ InterruptTerm
|
||||
OptionalStringData
|
||||
OptionalNameString_Last
|
||||
')' '{'
|
||||
DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
|
||||
DWordList '}' {$$ = TrLinkChildren ($<n>3,8,
|
||||
$4,$6,$8,$9,$10,$11,$12,$15);}
|
||||
| PARSEOP_INTERRUPT '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -760,7 +468,8 @@ QWordIOTerm
|
||||
OptionalNameString
|
||||
OptionalType
|
||||
OptionalTranslationType_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,
|
||||
$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
|
||||
| PARSEOP_QWORDIO '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -783,7 +492,8 @@ QWordMemoryTerm
|
||||
OptionalNameString
|
||||
OptionalAddressRange
|
||||
OptionalType_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,16,
|
||||
$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
|
||||
| PARSEOP_QWORDMEMORY '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -804,7 +514,8 @@ QWordSpaceTerm
|
||||
OptionalByteConstExpr
|
||||
OptionalStringData
|
||||
OptionalNameString_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,
|
||||
$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
|
||||
| PARSEOP_QWORDSPACE '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -837,7 +548,8 @@ SpiSerialBusTerm
|
||||
OptionalResourceType /* 19: ResourceType */
|
||||
OptionalNameString /* 20: DescriptorName */
|
||||
OptionalBuffer_Last /* 21: VendorData */
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,
|
||||
$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
|
||||
TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
|
||||
| PARSEOP_SPI_SERIALBUS '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
@@ -859,8 +571,8 @@ SpiSerialBusTermV2
|
||||
OptionalNameString /* 20: DescriptorName */
|
||||
OptionalShareType /* 21: Share */
|
||||
OptionalBuffer_Last /* 22: VendorData */
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
|
||||
$21,$22);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,
|
||||
$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
|
||||
| PARSEOP_SPI_SERIALBUS_V2 '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -899,7 +611,8 @@ UartSerialBusTerm
|
||||
OptionalResourceType /* 19: ResourceType */
|
||||
OptionalNameString /* 20: DescriptorName */
|
||||
OptionalBuffer_Last /* 21: VendorData */
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,
|
||||
$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
|
||||
TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
|
||||
| PARSEOP_UART_SERIALBUS '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
@@ -922,8 +635,8 @@ UartSerialBusTermV2
|
||||
OptionalNameString /* 20: DescriptorName */
|
||||
OptionalShareType /* 21: Share */
|
||||
OptionalBuffer_Last /* 22: VendorData */
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
|
||||
$21,$22);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,
|
||||
$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
|
||||
| PARSEOP_UART_SERIALBUS_V2 '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -960,7 +673,8 @@ WordBusNumberTerm
|
||||
OptionalByteConstExpr
|
||||
OptionalStringData
|
||||
OptionalNameString_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,12,
|
||||
$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
|
||||
| PARSEOP_WORDBUSNUMBER '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -982,7 +696,8 @@ WordIOTerm
|
||||
OptionalNameString
|
||||
OptionalType
|
||||
OptionalTranslationType_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,15,
|
||||
$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
|
||||
| PARSEOP_WORDIO '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
@@ -1003,246 +718,8 @@ WordSpaceTerm
|
||||
OptionalByteConstExpr
|
||||
OptionalStringData
|
||||
OptionalNameString_Last
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
|
||||
')' {$$ = TrLinkChildren ($<n>3,14,
|
||||
$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
|
||||
| PARSEOP_WORDSPACE '('
|
||||
error ')' {$$ = AslDoError(); yyclearin;}
|
||||
;
|
||||
|
||||
|
||||
/******* Object References ***********************************************/
|
||||
|
||||
/* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
|
||||
|
||||
NameString
|
||||
: NameSeg {}
|
||||
| PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
|
||||
| PARSEOP_IO {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
|
||||
| PARSEOP_DMA {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
|
||||
| PARSEOP_IRQ {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
|
||||
;
|
||||
|
||||
NameSeg
|
||||
: PARSEOP_NAMESEG {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
|
||||
;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* ASL Helper Terms
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
OptionalBusMasterKeyword
|
||||
: ',' {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
|
||||
| ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
|
||||
| ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
|
||||
;
|
||||
|
||||
OptionalAccessAttribTerm
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' ByteConstExpr {$$ = $2;}
|
||||
| ',' AccessAttribKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalAccessSize
|
||||
: {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
|
||||
| ',' {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
|
||||
| ',' ByteConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalAddressingMode
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' AddressingModeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalAddressRange
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' AddressKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalBitsPerByte
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' BitsPerByteKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalBuffer_Last
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' RawDataBufferTerm {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalByteConstExpr
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' ByteConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalDecodeType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' DecodeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalDevicePolarity
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' DevicePolarityKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalDWordConstExpr
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' DWordConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalEndian
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' EndianKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalFlowControl
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' FlowControlKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalIoRestriction
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' IoRestrictionKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalListString
|
||||
: {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
|
||||
| ',' {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
|
||||
| ',' TermArg {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalMaxType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' MaxKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalMemType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' MemTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalMinType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' MinKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalNameString
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' NameString {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalNameString_Last
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' NameString {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalNameString_First
|
||||
: {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
|
||||
| NameString {$$ = $1;}
|
||||
;
|
||||
|
||||
OptionalObjectTypeKeyword
|
||||
: {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
|
||||
| ',' ObjectTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalParityType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' ParityTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalQWordConstExpr
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' QWordConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalRangeType
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' RangeTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalReadWriteKeyword
|
||||
: {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
|
||||
| PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
|
||||
| PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
|
||||
;
|
||||
|
||||
OptionalResourceType_First
|
||||
: {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
|
||||
| ResourceTypeKeyword {$$ = $1;}
|
||||
;
|
||||
|
||||
OptionalResourceType
|
||||
: {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
|
||||
| ',' {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
|
||||
| ',' ResourceTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalSlaveMode
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' SlaveModeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalShareType
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' ShareTypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalShareType_First
|
||||
: {$$ = NULL;}
|
||||
| ShareTypeKeyword {$$ = $1;}
|
||||
;
|
||||
|
||||
OptionalStopBits
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' StopBitsKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalStringData
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' StringData {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalTranslationType_Last
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' TranslationKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalType
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' TypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalType_Last
|
||||
: {$$ = NULL;}
|
||||
| ',' {$$ = NULL;}
|
||||
| ',' TypeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalWireMode
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' WireModeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalWordConstExpr
|
||||
: ',' {$$ = NULL;}
|
||||
| ',' WordConstExpr {$$ = $2;}
|
||||
;
|
||||
|
||||
OptionalXferSize
|
||||
: {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
|
||||
| ',' {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
|
||||
| ',' XferSizeKeyword {$$ = $2;}
|
||||
;
|
||||
|
||||
+95
-1113
File diff suppressed because it is too large
Load Diff
@@ -53,6 +53,16 @@ NoEcho('
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Most tokens are defined to return <i>, which is a UINT64.
|
||||
*
|
||||
* These tokens return <s>, a pointer to the associated lexed string:
|
||||
*
|
||||
* PARSEOP_NAMESEG
|
||||
* PARSEOP_NAMESTRING
|
||||
* PARSEOP_STRING_LITERAL
|
||||
* PARSEOP_STRUCTURE_NAMESTRING
|
||||
*/
|
||||
%token <i> PARSEOP_ACCESSAS
|
||||
%token <i> PARSEOP_ACCESSATTRIB_BLOCK
|
||||
%token <i> PARSEOP_ACCESSATTRIB_BLOCK_CALL
|
||||
@@ -466,12 +476,42 @@ NoEcho('
|
||||
%token <i> PARSEOP_FPRINTF
|
||||
%token <i> PARSEOP_FOR
|
||||
|
||||
/* Structures */
|
||||
|
||||
%token <i> PARSEOP_STRUCTURE
|
||||
%token <s> PARSEOP_STRUCTURE_NAMESTRING
|
||||
%token <i> PARSEOP_STRUCTURE_TAG
|
||||
%token <i> PARSEOP_STRUCTURE_ELEMENT
|
||||
%token <i> PARSEOP_STRUCTURE_INSTANCE
|
||||
%token <i> PARSEOP_STRUCTURE_REFERENCE
|
||||
%token <i> PARSEOP_STRUCTURE_POINTER
|
||||
|
||||
/* Top level */
|
||||
|
||||
%token <i> PARSEOP_ASL_CODE
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Tokens below are not in the aslmap.c file
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
/* Tokens below this are not in the aslmap.c file */
|
||||
|
||||
/* Specific parentheses tokens are not used at this time */
|
||||
/* PARSEOP_EXP_PAREN_OPEN */
|
||||
/* PARSEOP_EXP_PAREN_CLOSE */
|
||||
|
||||
/* ASL+ variable creation */
|
||||
|
||||
%token <i> PARSEOP_INTEGER_TYPE
|
||||
%token <i> PARSEOP_STRING_TYPE
|
||||
%token <i> PARSEOP_BUFFER_TYPE
|
||||
%token <i> PARSEOP_PACKAGE_TYPE
|
||||
%token <i> PARSEOP_REFERENCE_TYPE
|
||||
|
||||
%token <i> PARSEOP_ASL_CODE
|
||||
|
||||
/*
|
||||
* Special functions. These should probably stay at the end of this
|
||||
|
||||
@@ -278,7 +278,6 @@ NoEcho('
|
||||
%type <n> PackageElement
|
||||
%type <n> PackageList
|
||||
%type <n> PackageTerm
|
||||
%type <n> VarPackageLengthTerm
|
||||
|
||||
/* Macros */
|
||||
|
||||
@@ -350,9 +349,9 @@ NoEcho('
|
||||
%type <n> OptionalAddressRange
|
||||
%type <n> OptionalBitsPerByte
|
||||
%type <n> OptionalBuffer_Last
|
||||
%type <n> OptionalBufferLength
|
||||
%type <n> OptionalByteConstExpr
|
||||
%type <n> OptionalCount
|
||||
%type <n> OptionalDataCount
|
||||
%type <n> OptionalDecodeType
|
||||
%type <n> OptionalDevicePolarity
|
||||
%type <n> OptionalDWordConstExpr
|
||||
@@ -369,6 +368,7 @@ NoEcho('
|
||||
%type <n> OptionalObjectTypeKeyword
|
||||
%type <n> OptionalParameterTypePackage
|
||||
%type <n> OptionalParameterTypesPackage
|
||||
%type <n> OptionalParentheses
|
||||
%type <n> OptionalParityType
|
||||
%type <n> OptionalPredicate
|
||||
%type <n> OptionalQWordConstExpr
|
||||
@@ -393,8 +393,53 @@ NoEcho('
|
||||
%type <n> OptionalXferSize
|
||||
|
||||
/*
|
||||
* C-style expression parser
|
||||
* ASL+ (C-style) parser
|
||||
*/
|
||||
|
||||
/* Expressions and symbolic operators */
|
||||
|
||||
%type <n> Expression
|
||||
%type <n> EqualsTerm
|
||||
%type <n> IndexExpTerm
|
||||
|
||||
/* ASL+ Named object declaration support */
|
||||
/*
|
||||
%type <n> NameTermAslPlus
|
||||
|
||||
%type <n> BufferBegin
|
||||
%type <n> BufferEnd
|
||||
%type <n> PackageBegin
|
||||
%type <n> PackageEnd
|
||||
%type <n> OptionalLength
|
||||
*/
|
||||
/* ASL+ Structure declarations */
|
||||
/*
|
||||
%type <n> StructureTerm
|
||||
%type <n> StructureTermBegin
|
||||
%type <n> StructureType
|
||||
%type <n> StructureTag
|
||||
%type <n> StructureElementList
|
||||
%type <n> StructureElement
|
||||
%type <n> StructureElementType
|
||||
%type <n> OptionalStructureElementType
|
||||
%type <n> StructureId
|
||||
*/
|
||||
/* Structure instantiantion */
|
||||
/*
|
||||
%type <n> StructureInstanceTerm
|
||||
%type <n> StructureTagReference
|
||||
%type <n> StructureInstanceEnd
|
||||
*/
|
||||
/* Pseudo-instantiantion for method Args/Locals */
|
||||
/*
|
||||
%type <n> MethodStructureTerm
|
||||
%type <n> LocalStructureName
|
||||
*/
|
||||
/* Direct structure references via the Index operator */
|
||||
/*
|
||||
%type <n> StructureReference
|
||||
%type <n> StructureIndexTerm
|
||||
%type <n> StructurePointerTerm
|
||||
%type <n> StructurePointerReference
|
||||
%type <n> OptionalDefinePointer
|
||||
*/
|
||||
|
||||
@@ -609,6 +609,7 @@ extern const unsigned char TemplateMtmr[];
|
||||
extern const unsigned char TemplateNfit[];
|
||||
extern const unsigned char TemplatePcct[];
|
||||
extern const unsigned char TemplatePmtt[];
|
||||
extern const unsigned char TemplateRasf[];
|
||||
extern const unsigned char TemplateRsdt[];
|
||||
extern const unsigned char TemplateS3pt[];
|
||||
extern const unsigned char TemplateSbst[];
|
||||
|
||||
+34
-36
@@ -129,9 +129,12 @@ DtCompileFadt (
|
||||
DT_SUBTABLE *ParentTable;
|
||||
DT_FIELD **PFieldList = (DT_FIELD **) List;
|
||||
ACPI_TABLE_HEADER *Table;
|
||||
UINT8 Revision;
|
||||
UINT8 FadtRevision;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
/* Minimum table is the FADT version 1 (ACPI 1.0) */
|
||||
|
||||
Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt1,
|
||||
&Subtable, TRUE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@@ -143,22 +146,41 @@ DtCompileFadt (
|
||||
DtInsertSubtable (ParentTable, Subtable);
|
||||
|
||||
Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer);
|
||||
Revision = Table->Revision;
|
||||
FadtRevision = Table->Revision;
|
||||
|
||||
if (Revision == 2)
|
||||
/* Revision 0 and 2 are illegal */
|
||||
|
||||
if ((FadtRevision == 0) ||
|
||||
(FadtRevision == 2))
|
||||
{
|
||||
Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt2,
|
||||
&Subtable, TRUE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
DtError (ASL_ERROR, 0, NULL,
|
||||
"Invalid value for FADT revision");
|
||||
|
||||
DtInsertSubtable (ParentTable, Subtable);
|
||||
return (AE_BAD_VALUE);
|
||||
}
|
||||
else if (Revision >= 2)
|
||||
|
||||
/* Revision out of supported range? */
|
||||
|
||||
if (FadtRevision > ACPI_FADT_MAX_VERSION)
|
||||
{
|
||||
Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt3,
|
||||
DtError (ASL_ERROR, 0, NULL,
|
||||
"Unknown or unsupported value for FADT revision");
|
||||
|
||||
return (AE_BAD_VALUE);
|
||||
}
|
||||
|
||||
/* Compile individual sub-parts of the FADT, per-revision */
|
||||
|
||||
for (i = 3; i <= ACPI_FADT_MAX_VERSION; i++)
|
||||
{
|
||||
if (i > FadtRevision)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
/* Compile the fields specific to this FADT revision */
|
||||
|
||||
Status = DtCompileTable (PFieldList, FadtRevisionInfo[i],
|
||||
&Subtable, TRUE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@@ -166,30 +188,6 @@ DtCompileFadt (
|
||||
}
|
||||
|
||||
DtInsertSubtable (ParentTable, Subtable);
|
||||
|
||||
if (Revision >= 5)
|
||||
{
|
||||
Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt5,
|
||||
&Subtable, TRUE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
DtInsertSubtable (ParentTable, Subtable);
|
||||
}
|
||||
|
||||
if (Revision >= 6)
|
||||
{
|
||||
Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt6,
|
||||
&Subtable, TRUE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
DtInsertSubtable (ParentTable, Subtable);
|
||||
}
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
|
||||
@@ -906,6 +906,16 @@ const unsigned char TemplatePmtt[] =
|
||||
0x00,0x00,0x00,0x00 /* 000000B0 "...." */
|
||||
};
|
||||
|
||||
const unsigned char TemplateRasf[] =
|
||||
{
|
||||
0x52,0x41,0x53,0x46,0x30,0x00,0x00,0x00, /* 00000000 "RASF0..." */
|
||||
0x01,0x31,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".1INTEL " */
|
||||
0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
|
||||
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
|
||||
0x27,0x05,0x16,0x20,0x00,0x00,0x00,0x00, /* 00000020 "'.. ...." */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000028 "........" */
|
||||
};
|
||||
|
||||
const unsigned char TemplateRsdp[] =
|
||||
{
|
||||
0x52,0x53,0x44,0x20,0x50,0x54,0x52,0x20, /* 00000000 "RSD PTR " */
|
||||
|
||||
@@ -367,6 +367,7 @@ DtGetFieldType (
|
||||
case ACPI_DMT_RAW_BUFFER:
|
||||
case ACPI_DMT_BUF7:
|
||||
case ACPI_DMT_BUF10:
|
||||
case ACPI_DMT_BUF12:
|
||||
case ACPI_DMT_BUF16:
|
||||
case ACPI_DMT_BUF128:
|
||||
case ACPI_DMT_PCI_PATH:
|
||||
@@ -616,6 +617,11 @@ DtGetFieldLength (
|
||||
ByteLength = 10;
|
||||
break;
|
||||
|
||||
case ACPI_DMT_BUF12:
|
||||
|
||||
ByteLength = 12;
|
||||
break;
|
||||
|
||||
case ACPI_DMT_BUF16:
|
||||
case ACPI_DMT_UUID:
|
||||
|
||||
|
||||
@@ -46,15 +46,15 @@
|
||||
#include "accommon.h"
|
||||
#include "acdebug.h"
|
||||
#include "actables.h"
|
||||
#include <stdio.h>
|
||||
#ifdef ACPI_APPLICATION
|
||||
#include "acapps.h"
|
||||
#endif
|
||||
|
||||
#define _COMPONENT ACPI_CA_DEBUGGER
|
||||
ACPI_MODULE_NAME ("dbfileio")
|
||||
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
#include "acapps.h"
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUGGER
|
||||
/*******************************************************************************
|
||||
*
|
||||
@@ -73,8 +73,6 @@ AcpiDbCloseDebugFile (
|
||||
void)
|
||||
{
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
|
||||
if (AcpiGbl_DebugFile)
|
||||
{
|
||||
fclose (AcpiGbl_DebugFile);
|
||||
@@ -83,7 +81,6 @@ AcpiDbCloseDebugFile (
|
||||
AcpiOsPrintf ("Debug output file %s closed\n",
|
||||
AcpiGbl_DbDebugFilename);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -104,8 +101,6 @@ AcpiDbOpenDebugFile (
|
||||
char *Name)
|
||||
{
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
|
||||
AcpiDbCloseDebugFile ();
|
||||
AcpiGbl_DebugFile = fopen (Name, "w+");
|
||||
if (!AcpiGbl_DebugFile)
|
||||
@@ -118,8 +113,6 @@ AcpiDbOpenDebugFile (
|
||||
strncpy (AcpiGbl_DbDebugFilename, Name,
|
||||
sizeof (AcpiGbl_DbDebugFilename));
|
||||
AcpiGbl_DbOutputToFile = TRUE;
|
||||
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -169,8 +162,7 @@ AcpiDbLoadTables (
|
||||
return (Status);
|
||||
}
|
||||
|
||||
fprintf (stderr,
|
||||
"Acpi table [%4.4s] successfully installed and loaded\n",
|
||||
AcpiOsPrintf ("Acpi table [%4.4s] successfully installed and loaded\n",
|
||||
Table->Signature);
|
||||
|
||||
TableListHead = TableListHead->Next;
|
||||
@@ -178,3 +170,4 @@ AcpiDbLoadTables (
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -516,17 +516,19 @@ AcpiTbConvertFadt (
|
||||
|
||||
|
||||
/*
|
||||
* For ACPI 1.0 FADTs (revision 1 or 2), ensure that reserved fields which
|
||||
* For ACPI 1.0 FADTs (revision 1), ensure that reserved fields which
|
||||
* should be zero are indeed zero. This will workaround BIOSs that
|
||||
* inadvertently place values in these fields.
|
||||
*
|
||||
* The ACPI 1.0 reserved fields that will be zeroed are the bytes located
|
||||
* at offset 45, 55, 95, and the word located at offset 109, 110.
|
||||
*
|
||||
* Note: The FADT revision value is unreliable. Only the length can be
|
||||
* trusted.
|
||||
* Note: The FADT revision value is unreliable because of BIOS errors.
|
||||
* The table length is instead used as the final word on the version.
|
||||
*
|
||||
* Note: FADT revision 3 is the ACPI 2.0 version of the FADT.
|
||||
*/
|
||||
if (AcpiGbl_FADT.Header.Length <= ACPI_FADT_V2_SIZE)
|
||||
if (AcpiGbl_FADT.Header.Length <= ACPI_FADT_V3_SIZE)
|
||||
{
|
||||
AcpiGbl_FADT.PreferredProfile = 0;
|
||||
AcpiGbl_FADT.PstateControl = 0;
|
||||
|
||||
@@ -273,7 +273,7 @@ AcpiTbGetRootTableEntry (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiTbParseRootTable (
|
||||
ACPI_PHYSICAL_ADDRESS RsdpAddress)
|
||||
{
|
||||
|
||||
@@ -103,7 +103,7 @@ AcpiAllocateRootTable (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiInitializeTables (
|
||||
ACPI_TABLE_DESC *InitialTableArray,
|
||||
UINT32 InitialTableCount,
|
||||
@@ -179,7 +179,7 @@ ACPI_EXPORT_SYMBOL_INIT (AcpiInitializeTables)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiReallocateRootTable (
|
||||
void)
|
||||
{
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiLoadTables (
|
||||
void)
|
||||
{
|
||||
@@ -300,7 +300,7 @@ AcpiTbLoadNamespace (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiInstallTable (
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
BOOLEAN Physical)
|
||||
|
||||
@@ -156,7 +156,7 @@ AcpiTbValidateRsdp (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiFindRootPointer (
|
||||
ACPI_PHYSICAL_ADDRESS *TableAddress)
|
||||
{
|
||||
@@ -262,7 +262,7 @@ AcpiFindRootPointer (
|
||||
return_ACPI_STATUS (AE_NOT_FOUND);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL (AcpiFindRootPointer)
|
||||
ACPI_EXPORT_SYMBOL_INIT (AcpiFindRootPointer)
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
|
||||
@@ -264,7 +264,7 @@ AcpiUtDumpBufferToFile (
|
||||
|
||||
if (!Buffer)
|
||||
{
|
||||
AcpiUtFilePrintf (File, "Null Buffer Pointer in DumpBuffer!\n");
|
||||
fprintf (File, "Null Buffer Pointer in DumpBuffer!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ AcpiUtDumpBufferToFile (
|
||||
{
|
||||
/* Print current offset */
|
||||
|
||||
AcpiUtFilePrintf (File, "%6.4X: ", (BaseOffset + i));
|
||||
fprintf (File, "%6.4X: ", (BaseOffset + i));
|
||||
|
||||
/* Print 16 hex chars */
|
||||
|
||||
@@ -289,7 +289,7 @@ AcpiUtDumpBufferToFile (
|
||||
{
|
||||
/* Dump fill spaces */
|
||||
|
||||
AcpiUtFilePrintf (File, "%*s", ((Display * 2) + 1), " ");
|
||||
fprintf (File, "%*s", ((Display * 2) + 1), " ");
|
||||
j += Display;
|
||||
continue;
|
||||
}
|
||||
@@ -299,28 +299,28 @@ AcpiUtDumpBufferToFile (
|
||||
case DB_BYTE_DISPLAY:
|
||||
default: /* Default is BYTE display */
|
||||
|
||||
AcpiUtFilePrintf (File, "%02X ", Buffer[(ACPI_SIZE) i + j]);
|
||||
fprintf (File, "%02X ", Buffer[(ACPI_SIZE) i + j]);
|
||||
break;
|
||||
|
||||
case DB_WORD_DISPLAY:
|
||||
|
||||
ACPI_MOVE_16_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
|
||||
AcpiUtFilePrintf (File, "%04X ", Temp32);
|
||||
fprintf (File, "%04X ", Temp32);
|
||||
break;
|
||||
|
||||
case DB_DWORD_DISPLAY:
|
||||
|
||||
ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
|
||||
AcpiUtFilePrintf (File, "%08X ", Temp32);
|
||||
fprintf (File, "%08X ", Temp32);
|
||||
break;
|
||||
|
||||
case DB_QWORD_DISPLAY:
|
||||
|
||||
ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
|
||||
AcpiUtFilePrintf (File, "%08X", Temp32);
|
||||
fprintf (File, "%08X", Temp32);
|
||||
|
||||
ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j + 4]);
|
||||
AcpiUtFilePrintf (File, "%08X ", Temp32);
|
||||
fprintf (File, "%08X ", Temp32);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -331,29 +331,29 @@ AcpiUtDumpBufferToFile (
|
||||
* Print the ASCII equivalent characters but watch out for the bad
|
||||
* unprintable ones (printable chars are 0x20 through 0x7E)
|
||||
*/
|
||||
AcpiUtFilePrintf (File, " ");
|
||||
fprintf (File, " ");
|
||||
for (j = 0; j < 16; j++)
|
||||
{
|
||||
if (i + j >= Count)
|
||||
{
|
||||
AcpiUtFilePrintf (File, "\n");
|
||||
fprintf (File, "\n");
|
||||
return;
|
||||
}
|
||||
|
||||
BufChar = Buffer[(ACPI_SIZE) i + j];
|
||||
if (isprint (BufChar))
|
||||
{
|
||||
AcpiUtFilePrintf (File, "%c", BufChar);
|
||||
fprintf (File, "%c", BufChar);
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiUtFilePrintf (File, ".");
|
||||
fprintf (File, ".");
|
||||
}
|
||||
}
|
||||
|
||||
/* Done with that line. */
|
||||
|
||||
AcpiUtFilePrintf (File, "\n");
|
||||
fprintf (File, "\n");
|
||||
i += 16;
|
||||
}
|
||||
|
||||
|
||||
@@ -708,33 +708,3 @@ AcpiTracePoint (
|
||||
ACPI_EXPORT_SYMBOL (AcpiTracePoint)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiLogError
|
||||
*
|
||||
* PARAMETERS: Format - Printf format field
|
||||
* ... - Optional printf arguments
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Print error message to the console, used by applications.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
AcpiLogError (
|
||||
const char *Format,
|
||||
...)
|
||||
{
|
||||
va_list Args;
|
||||
|
||||
va_start (Args, Format);
|
||||
(void) AcpiUtFileVprintf (ACPI_FILE_ERR, Format, Args);
|
||||
va_end (Args);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL (AcpiLogError)
|
||||
#endif
|
||||
|
||||
@@ -226,7 +226,7 @@ AcpiUtInitGlobals (
|
||||
AcpiGbl_NextOwnerIdOffset = 0;
|
||||
AcpiGbl_DebuggerConfiguration = DEBUGGER_THREADING;
|
||||
AcpiGbl_OsiMutex = NULL;
|
||||
AcpiGbl_MaxLoopIterations = 0xFFFF;
|
||||
AcpiGbl_MaxLoopIterations = ACPI_MAX_LOOP_COUNT;
|
||||
|
||||
/* Hardware oriented */
|
||||
|
||||
|
||||
@@ -196,8 +196,6 @@ AcpiUtGetExpectedReturnTypes (
|
||||
******************************************************************************/
|
||||
|
||||
#if (defined ACPI_ASL_COMPILER || defined ACPI_HELP_APP)
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
|
||||
@@ -416,7 +416,7 @@ AcpiUtFormatNumber (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtVsnprintf
|
||||
* FUNCTION: vsnprintf
|
||||
*
|
||||
* PARAMETERS: String - String with boundary
|
||||
* Size - Boundary of the string
|
||||
@@ -430,7 +430,7 @@ AcpiUtFormatNumber (
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiUtVsnprintf (
|
||||
vsnprintf (
|
||||
char *String,
|
||||
ACPI_SIZE Size,
|
||||
const char *Format,
|
||||
@@ -713,7 +713,7 @@ AcpiUtVsnprintf (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtSnprintf
|
||||
* FUNCTION: snprintf
|
||||
*
|
||||
* PARAMETERS: String - String with boundary
|
||||
* Size - Boundary of the string
|
||||
@@ -726,7 +726,7 @@ AcpiUtVsnprintf (
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiUtSnprintf (
|
||||
snprintf (
|
||||
char *String,
|
||||
ACPI_SIZE Size,
|
||||
const char *Format,
|
||||
@@ -737,7 +737,38 @@ AcpiUtSnprintf (
|
||||
|
||||
|
||||
va_start (Args, Format);
|
||||
Length = AcpiUtVsnprintf (String, Size, Format, Args);
|
||||
Length = vsnprintf (String, Size, Format, Args);
|
||||
va_end (Args);
|
||||
|
||||
return (Length);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: sprintf
|
||||
*
|
||||
* PARAMETERS: String - String with boundary
|
||||
* Format, ... - Standard printf format
|
||||
*
|
||||
* RETURN: Number of bytes actually written.
|
||||
*
|
||||
* DESCRIPTION: Formatted output to a string.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
sprintf (
|
||||
char *String,
|
||||
const char *Format,
|
||||
...)
|
||||
{
|
||||
va_list Args;
|
||||
int Length;
|
||||
|
||||
|
||||
va_start (Args, Format);
|
||||
Length = vsnprintf (String, ACPI_UINT32_MAX, Format, Args);
|
||||
va_end (Args);
|
||||
|
||||
return (Length);
|
||||
@@ -747,7 +778,69 @@ AcpiUtSnprintf (
|
||||
#ifdef ACPI_APPLICATION
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtFileVprintf
|
||||
* FUNCTION: vprintf
|
||||
*
|
||||
* PARAMETERS: Format - Standard printf format
|
||||
* Args - Argument list
|
||||
*
|
||||
* RETURN: Number of bytes actually written.
|
||||
*
|
||||
* DESCRIPTION: Formatted output to stdout using argument list pointer.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
vprintf (
|
||||
const char *Format,
|
||||
va_list Args)
|
||||
{
|
||||
ACPI_CPU_FLAGS Flags;
|
||||
int Length;
|
||||
|
||||
|
||||
Flags = AcpiOsAcquireLock (AcpiGbl_PrintLock);
|
||||
Length = vsnprintf (AcpiGbl_PrintBuffer,
|
||||
sizeof (AcpiGbl_PrintBuffer), Format, Args);
|
||||
|
||||
(void) fwrite (AcpiGbl_PrintBuffer, Length, 1, ACPI_FILE_OUT);
|
||||
AcpiOsReleaseLock (AcpiGbl_PrintLock, Flags);
|
||||
|
||||
return (Length);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: printf
|
||||
*
|
||||
* PARAMETERS: Format, ... - Standard printf format
|
||||
*
|
||||
* RETURN: Number of bytes actually written.
|
||||
*
|
||||
* DESCRIPTION: Formatted output to stdout.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
printf (
|
||||
const char *Format,
|
||||
...)
|
||||
{
|
||||
va_list Args;
|
||||
int Length;
|
||||
|
||||
|
||||
va_start (Args, Format);
|
||||
Length = vprintf (Format, Args);
|
||||
va_end (Args);
|
||||
|
||||
return (Length);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: vfprintf
|
||||
*
|
||||
* PARAMETERS: File - File descriptor
|
||||
* Format - Standard printf format
|
||||
@@ -760,8 +853,8 @@ AcpiUtSnprintf (
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiUtFileVprintf (
|
||||
ACPI_FILE File,
|
||||
vfprintf (
|
||||
FILE *File,
|
||||
const char *Format,
|
||||
va_list Args)
|
||||
{
|
||||
@@ -770,10 +863,10 @@ AcpiUtFileVprintf (
|
||||
|
||||
|
||||
Flags = AcpiOsAcquireLock (AcpiGbl_PrintLock);
|
||||
Length = AcpiUtVsnprintf (AcpiGbl_PrintBuffer,
|
||||
Length = vsnprintf (AcpiGbl_PrintBuffer,
|
||||
sizeof (AcpiGbl_PrintBuffer), Format, Args);
|
||||
|
||||
(void) AcpiOsWriteFile (File, AcpiGbl_PrintBuffer, Length, 1);
|
||||
(void) fwrite (AcpiGbl_PrintBuffer, Length, 1, File);
|
||||
AcpiOsReleaseLock (AcpiGbl_PrintLock, Flags);
|
||||
|
||||
return (Length);
|
||||
@@ -782,7 +875,7 @@ AcpiUtFileVprintf (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtFilePrintf
|
||||
* FUNCTION: fprintf
|
||||
*
|
||||
* PARAMETERS: File - File descriptor
|
||||
* Format, ... - Standard printf format
|
||||
@@ -794,8 +887,8 @@ AcpiUtFileVprintf (
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiUtFilePrintf (
|
||||
ACPI_FILE File,
|
||||
fprintf (
|
||||
FILE *File,
|
||||
const char *Format,
|
||||
...)
|
||||
{
|
||||
@@ -804,7 +897,7 @@ AcpiUtFilePrintf (
|
||||
|
||||
|
||||
va_start (Args, Format);
|
||||
Length = AcpiUtFileVprintf (File, Format, Args);
|
||||
Length = vfprintf (File, Format, Args);
|
||||
va_end (Args);
|
||||
|
||||
return (Length);
|
||||
|
||||
@@ -107,14 +107,12 @@ AcpiUtCreateList (
|
||||
ACPI_MEMORY_LIST *Cache;
|
||||
|
||||
|
||||
Cache = AcpiOsAllocate (sizeof (ACPI_MEMORY_LIST));
|
||||
Cache = AcpiOsAllocateZeroed (sizeof (ACPI_MEMORY_LIST));
|
||||
if (!Cache)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
memset (Cache, 0, sizeof (ACPI_MEMORY_LIST));
|
||||
|
||||
Cache->ListName = ListName;
|
||||
Cache->ObjectSize = ObjectSize;
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiTerminate (
|
||||
void)
|
||||
{
|
||||
|
||||
@@ -72,7 +72,7 @@ AeDoObjectOverrides (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiInitializeSubsystem (
|
||||
void)
|
||||
{
|
||||
@@ -151,7 +151,7 @@ ACPI_EXPORT_SYMBOL_INIT (AcpiInitializeSubsystem)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiEnableSubsystem (
|
||||
UINT32 Flags)
|
||||
{
|
||||
@@ -263,7 +263,7 @@ ACPI_EXPORT_SYMBOL_INIT (AcpiEnableSubsystem)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiInitializeObjects (
|
||||
UINT32 Flags)
|
||||
{
|
||||
|
||||
@@ -44,11 +44,9 @@
|
||||
#ifndef _ACAPPS
|
||||
#define _ACAPPS
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef _MSC_VER /* disable some level-4 warnings */
|
||||
#pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */
|
||||
#endif
|
||||
#ifdef ACPI_USE_STANDARD_HEADERS
|
||||
#include <sys/stat.h>
|
||||
#endif /* ACPI_USE_STANDARD_HEADERS */
|
||||
|
||||
/* Common info for tool signons */
|
||||
|
||||
@@ -85,13 +83,13 @@
|
||||
/* Macros for usage messages */
|
||||
|
||||
#define ACPI_USAGE_HEADER(Usage) \
|
||||
AcpiOsPrintf ("Usage: %s\nOptions:\n", Usage);
|
||||
printf ("Usage: %s\nOptions:\n", Usage);
|
||||
|
||||
#define ACPI_USAGE_TEXT(Description) \
|
||||
AcpiOsPrintf (Description);
|
||||
printf (Description);
|
||||
|
||||
#define ACPI_OPTION(Name, Description) \
|
||||
AcpiOsPrintf (" %-20s%s\n", Name, Description);
|
||||
printf (" %-20s%s\n", Name, Description);
|
||||
|
||||
|
||||
/* Check for unexpected exceptions */
|
||||
|
||||
@@ -73,6 +73,23 @@ extern const UINT8 AcpiGbl_Ctypes[];
|
||||
#define isprint(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_XS | _ACPI_PU))
|
||||
#define isalpha(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
|
||||
|
||||
/* Error code */
|
||||
|
||||
#define EPERM 1 /* Operation not permitted */
|
||||
#define ENOENT 2 /* No such file or directory */
|
||||
#define EINTR 4 /* Interrupted system call */
|
||||
#define EIO 5 /* I/O error */
|
||||
#define EBADF 9 /* Bad file number */
|
||||
#define EAGAIN 11 /* Try again */
|
||||
#define ENOMEM 12 /* Out of memory */
|
||||
#define EACCES 13 /* Permission denied */
|
||||
#define EFAULT 14 /* Bad address */
|
||||
#define EBUSY 16 /* Device or resource busy */
|
||||
#define EEXIST 17 /* File exists */
|
||||
#define ENODEV 19 /* No such device */
|
||||
#define EINVAL 22 /* Invalid argument */
|
||||
#define EPIPE 32 /* Broken pipe */
|
||||
#define ERANGE 34 /* Math result not representable */
|
||||
|
||||
/* Strings */
|
||||
|
||||
@@ -164,4 +181,105 @@ int
|
||||
toupper (
|
||||
int c);
|
||||
|
||||
/*
|
||||
* utprint - printf/vprintf output functions
|
||||
*/
|
||||
const char *
|
||||
AcpiUtScanNumber (
|
||||
const char *String,
|
||||
UINT64 *NumberPtr);
|
||||
|
||||
const char *
|
||||
AcpiUtPrintNumber (
|
||||
char *String,
|
||||
UINT64 Number);
|
||||
|
||||
int
|
||||
vsnprintf (
|
||||
char *String,
|
||||
ACPI_SIZE Size,
|
||||
const char *Format,
|
||||
va_list Args);
|
||||
|
||||
int
|
||||
snprintf (
|
||||
char *String,
|
||||
ACPI_SIZE Size,
|
||||
const char *Format,
|
||||
...);
|
||||
|
||||
int
|
||||
sprintf (
|
||||
char *String,
|
||||
const char *Format,
|
||||
...);
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
#define SEEK_SET 0
|
||||
#define SEEK_CUR 1
|
||||
#define SEEK_END 2
|
||||
|
||||
/*
|
||||
* NOTE: Currently we only need to update errno for file IOs. Other
|
||||
* Clibrary invocations in ACPICA do not make descisions according to
|
||||
* the errno.
|
||||
*/
|
||||
extern int errno;
|
||||
|
||||
int
|
||||
vprintf (
|
||||
const char *Format,
|
||||
va_list Args);
|
||||
|
||||
int
|
||||
printf (
|
||||
const char *Format,
|
||||
...);
|
||||
|
||||
int
|
||||
vfprintf (
|
||||
FILE *File,
|
||||
const char *Format,
|
||||
va_list Args);
|
||||
|
||||
int
|
||||
fprintf (
|
||||
FILE *File,
|
||||
const char *Format,
|
||||
...);
|
||||
|
||||
FILE *
|
||||
fopen (
|
||||
const char *Path,
|
||||
const char *Modes);
|
||||
|
||||
void
|
||||
fclose (
|
||||
FILE *File);
|
||||
|
||||
int
|
||||
fread (
|
||||
void *Buffer,
|
||||
ACPI_SIZE Size,
|
||||
ACPI_SIZE Count,
|
||||
FILE *File);
|
||||
|
||||
int
|
||||
fwrite (
|
||||
void *Buffer,
|
||||
ACPI_SIZE Size,
|
||||
ACPI_SIZE Count,
|
||||
FILE *File);
|
||||
|
||||
int
|
||||
fseek (
|
||||
FILE *File,
|
||||
long Offset,
|
||||
int From);
|
||||
|
||||
long
|
||||
ftell (
|
||||
FILE *File);
|
||||
#endif
|
||||
|
||||
#endif /* _ACCLIB_H */
|
||||
|
||||
@@ -146,6 +146,10 @@
|
||||
|
||||
#define ACPI_ADDRESS_RANGE_MAX 2
|
||||
|
||||
/* Maximum number of While() loops before abort */
|
||||
|
||||
#define ACPI_MAX_LOOP_COUNT 0xFFFF
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
|
||||
@@ -109,6 +109,7 @@ typedef enum
|
||||
ACPI_DMT_UINT64,
|
||||
ACPI_DMT_BUF7,
|
||||
ACPI_DMT_BUF10,
|
||||
ACPI_DMT_BUF12,
|
||||
ACPI_DMT_BUF16,
|
||||
ACPI_DMT_BUF128,
|
||||
ACPI_DMT_SIG,
|
||||
@@ -279,8 +280,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt4[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[];
|
||||
@@ -386,6 +387,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct2[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[];
|
||||
@@ -423,6 +425,9 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoXenv[];
|
||||
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2];
|
||||
|
||||
extern ACPI_DMTABLE_INFO *FadtRevisionInfo [ACPI_FADT_MAX_VERSION + 1];
|
||||
|
||||
|
||||
/*
|
||||
* dmtable and ahtable
|
||||
*/
|
||||
|
||||
@@ -392,6 +392,7 @@ ACPI_GLOBAL (const char, *AcpiGbl_PldShapeList[]);
|
||||
|
||||
ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_DebugFile, NULL);
|
||||
ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_OutputFile, NULL);
|
||||
ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DebugTimeout, FALSE);
|
||||
|
||||
/* Print buffer */
|
||||
|
||||
|
||||
@@ -492,6 +492,15 @@ AcpiOsGetLine (
|
||||
UINT32 *BytesRead);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTracePoint
|
||||
void
|
||||
AcpiOsTracePoint (
|
||||
ACPI_TRACE_EVENT_TYPE Type,
|
||||
BOOLEAN Begin,
|
||||
UINT8 *Aml,
|
||||
char *Pathname);
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Obtain ACPI table(s)
|
||||
@@ -552,62 +561,4 @@ AcpiOsCloseDirectory (
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* File I/O and related support
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenFile
|
||||
ACPI_FILE
|
||||
AcpiOsOpenFile (
|
||||
const char *Path,
|
||||
UINT8 Modes);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseFile
|
||||
void
|
||||
AcpiOsCloseFile (
|
||||
ACPI_FILE File);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadFile
|
||||
int
|
||||
AcpiOsReadFile (
|
||||
ACPI_FILE File,
|
||||
void *Buffer,
|
||||
ACPI_SIZE Size,
|
||||
ACPI_SIZE Count);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteFile
|
||||
int
|
||||
AcpiOsWriteFile (
|
||||
ACPI_FILE File,
|
||||
void *Buffer,
|
||||
ACPI_SIZE Size,
|
||||
ACPI_SIZE Count);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetFileOffset
|
||||
long
|
||||
AcpiOsGetFileOffset (
|
||||
ACPI_FILE File);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSetFileOffset
|
||||
ACPI_STATUS
|
||||
AcpiOsSetFileOffset (
|
||||
ACPI_FILE File,
|
||||
long Offset,
|
||||
UINT8 From);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTracePoint
|
||||
void
|
||||
AcpiOsTracePoint (
|
||||
ACPI_TRACE_EVENT_TYPE Type,
|
||||
BOOLEAN Begin,
|
||||
UINT8 *Aml,
|
||||
char *Pathname);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __ACPIOSXF_H__ */
|
||||
|
||||
+10
-17
@@ -46,7 +46,7 @@
|
||||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20160527
|
||||
#define ACPI_CA_VERSION 0x20160729
|
||||
|
||||
#include "acconfig.h"
|
||||
#include "actypes.h"
|
||||
@@ -420,29 +420,29 @@ ACPI_GLOBAL (BOOLEAN, AcpiGbl_SystemAwakeAndRunning);
|
||||
* Initialization
|
||||
*/
|
||||
ACPI_EXTERNAL_RETURN_STATUS (
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiInitializeTables (
|
||||
ACPI_TABLE_DESC *InitialStorage,
|
||||
UINT32 InitialTableCount,
|
||||
BOOLEAN AllowResize))
|
||||
|
||||
ACPI_EXTERNAL_RETURN_STATUS (
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiInitializeSubsystem (
|
||||
void))
|
||||
|
||||
ACPI_EXTERNAL_RETURN_STATUS (
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiEnableSubsystem (
|
||||
UINT32 Flags))
|
||||
|
||||
ACPI_EXTERNAL_RETURN_STATUS (
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiInitializeObjects (
|
||||
UINT32 Flags))
|
||||
|
||||
ACPI_EXTERNAL_RETURN_STATUS (
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiTerminate (
|
||||
void))
|
||||
|
||||
@@ -520,7 +520,7 @@ AcpiDecodePldBuffer (
|
||||
* ACPI table load/unload interfaces
|
||||
*/
|
||||
ACPI_EXTERNAL_RETURN_STATUS (
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiInstallTable (
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
BOOLEAN Physical))
|
||||
@@ -536,7 +536,7 @@ AcpiUnloadParentTable (
|
||||
ACPI_HANDLE Object))
|
||||
|
||||
ACPI_EXTERNAL_RETURN_STATUS (
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiLoadTables (
|
||||
void))
|
||||
|
||||
@@ -545,12 +545,12 @@ AcpiLoadTables (
|
||||
* ACPI table manipulation interfaces
|
||||
*/
|
||||
ACPI_EXTERNAL_RETURN_STATUS (
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiReallocateRootTable (
|
||||
void))
|
||||
|
||||
ACPI_EXTERNAL_RETURN_STATUS (
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiFindRootPointer (
|
||||
ACPI_PHYSICAL_ADDRESS *RsdpAddress))
|
||||
|
||||
@@ -1232,13 +1232,6 @@ AcpiTracePoint (
|
||||
UINT8 *Aml,
|
||||
char *Pathname))
|
||||
|
||||
ACPI_APP_DEPENDENT_RETURN_VOID (
|
||||
ACPI_PRINTF_LIKE(1)
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
AcpiLogError (
|
||||
const char *Format,
|
||||
...))
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInitializeDebugger (
|
||||
void);
|
||||
|
||||
@@ -242,7 +242,7 @@ AcpiTbInstallFixedTable (
|
||||
char *Signature,
|
||||
UINT32 *TableIndex);
|
||||
|
||||
ACPI_STATUS
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION
|
||||
AcpiTbParseRootTable (
|
||||
ACPI_PHYSICAL_ADDRESS RsdpAddress);
|
||||
|
||||
|
||||
+94
-70
@@ -256,62 +256,72 @@ typedef struct acpi_table_facs
|
||||
|
||||
typedef struct acpi_table_fadt
|
||||
{
|
||||
ACPI_TABLE_HEADER Header; /* Common ACPI table header */
|
||||
UINT32 Facs; /* 32-bit physical address of FACS */
|
||||
UINT32 Dsdt; /* 32-bit physical address of DSDT */
|
||||
UINT8 Model; /* System Interrupt Model (ACPI 1.0) - not used in ACPI 2.0+ */
|
||||
UINT8 PreferredProfile; /* Conveys preferred power management profile to OSPM. */
|
||||
UINT16 SciInterrupt; /* System vector of SCI interrupt */
|
||||
UINT32 SmiCommand; /* 32-bit Port address of SMI command port */
|
||||
UINT8 AcpiEnable; /* Value to write to SMI_CMD to enable ACPI */
|
||||
UINT8 AcpiDisable; /* Value to write to SMI_CMD to disable ACPI */
|
||||
UINT8 S4BiosRequest; /* Value to write to SMI_CMD to enter S4BIOS state */
|
||||
UINT8 PstateControl; /* Processor performance state control*/
|
||||
UINT32 Pm1aEventBlock; /* 32-bit port address of Power Mgt 1a Event Reg Blk */
|
||||
UINT32 Pm1bEventBlock; /* 32-bit port address of Power Mgt 1b Event Reg Blk */
|
||||
UINT32 Pm1aControlBlock; /* 32-bit port address of Power Mgt 1a Control Reg Blk */
|
||||
UINT32 Pm1bControlBlock; /* 32-bit port address of Power Mgt 1b Control Reg Blk */
|
||||
UINT32 Pm2ControlBlock; /* 32-bit port address of Power Mgt 2 Control Reg Blk */
|
||||
UINT32 PmTimerBlock; /* 32-bit port address of Power Mgt Timer Ctrl Reg Blk */
|
||||
UINT32 Gpe0Block; /* 32-bit port address of General Purpose Event 0 Reg Blk */
|
||||
UINT32 Gpe1Block; /* 32-bit port address of General Purpose Event 1 Reg Blk */
|
||||
UINT8 Pm1EventLength; /* Byte Length of ports at Pm1xEventBlock */
|
||||
UINT8 Pm1ControlLength; /* Byte Length of ports at Pm1xControlBlock */
|
||||
UINT8 Pm2ControlLength; /* Byte Length of ports at Pm2ControlBlock */
|
||||
UINT8 PmTimerLength; /* Byte Length of ports at PmTimerBlock */
|
||||
UINT8 Gpe0BlockLength; /* Byte Length of ports at Gpe0Block */
|
||||
UINT8 Gpe1BlockLength; /* Byte Length of ports at Gpe1Block */
|
||||
UINT8 Gpe1Base; /* Offset in GPE number space where GPE1 events start */
|
||||
UINT8 CstControl; /* Support for the _CST object and C-States change notification */
|
||||
UINT16 C2Latency; /* Worst case HW latency to enter/exit C2 state */
|
||||
UINT16 C3Latency; /* Worst case HW latency to enter/exit C3 state */
|
||||
UINT16 FlushSize; /* Processor memory cache line width, in bytes */
|
||||
UINT16 FlushStride; /* Number of flush strides that need to be read */
|
||||
UINT8 DutyOffset; /* Processor duty cycle index in processor P_CNT reg */
|
||||
UINT8 DutyWidth; /* Processor duty cycle value bit width in P_CNT register */
|
||||
UINT8 DayAlarm; /* Index to day-of-month alarm in RTC CMOS RAM */
|
||||
UINT8 MonthAlarm; /* Index to month-of-year alarm in RTC CMOS RAM */
|
||||
UINT8 Century; /* Index to century in RTC CMOS RAM */
|
||||
UINT16 BootFlags; /* IA-PC Boot Architecture Flags (see below for individual flags) */
|
||||
UINT8 Reserved; /* Reserved, must be zero */
|
||||
UINT32 Flags; /* Miscellaneous flag bits (see below for individual flags) */
|
||||
ACPI_GENERIC_ADDRESS ResetRegister; /* 64-bit address of the Reset register */
|
||||
UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system */
|
||||
UINT16 ArmBootFlags; /* ARM-Specific Boot Flags (see below for individual flags) (ACPI 5.1) */
|
||||
UINT8 MinorRevision; /* FADT Minor Revision (ACPI 5.1) */
|
||||
UINT64 XFacs; /* 64-bit physical address of FACS */
|
||||
UINT64 XDsdt; /* 64-bit physical address of DSDT */
|
||||
ACPI_GENERIC_ADDRESS XPm1aEventBlock; /* 64-bit Extended Power Mgt 1a Event Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm1bEventBlock; /* 64-bit Extended Power Mgt 1b Event Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm1aControlBlock; /* 64-bit Extended Power Mgt 1a Control Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm1bControlBlock; /* 64-bit Extended Power Mgt 1b Control Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm2ControlBlock; /* 64-bit Extended Power Mgt 2 Control Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPmTimerBlock; /* 64-bit Extended Power Mgt Timer Ctrl Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XGpe0Block; /* 64-bit Extended General Purpose Event 0 Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XGpe1Block; /* 64-bit Extended General Purpose Event 1 Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS SleepControl; /* 64-bit Sleep Control register (ACPI 5.0) */
|
||||
ACPI_GENERIC_ADDRESS SleepStatus; /* 64-bit Sleep Status register (ACPI 5.0) */
|
||||
UINT64 HypervisorId; /* Hypervisor Vendor ID (ACPI 6.0) */
|
||||
ACPI_TABLE_HEADER Header; /* [V1] Common ACPI table header */
|
||||
UINT32 Facs; /* [V1] 32-bit physical address of FACS */
|
||||
UINT32 Dsdt; /* [V1] 32-bit physical address of DSDT */
|
||||
UINT8 Model; /* [V1] System Interrupt Model (ACPI 1.0) - not used in ACPI 2.0+ */
|
||||
UINT8 PreferredProfile; /* [V1] Conveys preferred power management profile to OSPM. */
|
||||
UINT16 SciInterrupt; /* [V1] System vector of SCI interrupt */
|
||||
UINT32 SmiCommand; /* [V1] 32-bit Port address of SMI command port */
|
||||
UINT8 AcpiEnable; /* [V1] Value to write to SMI_CMD to enable ACPI */
|
||||
UINT8 AcpiDisable; /* [V1] Value to write to SMI_CMD to disable ACPI */
|
||||
UINT8 S4BiosRequest; /* [V1] Value to write to SMI_CMD to enter S4BIOS state */
|
||||
UINT8 PstateControl; /* [V1] Processor performance state control*/
|
||||
UINT32 Pm1aEventBlock; /* [V1] 32-bit port address of Power Mgt 1a Event Reg Blk */
|
||||
UINT32 Pm1bEventBlock; /* [V1] 32-bit port address of Power Mgt 1b Event Reg Blk */
|
||||
UINT32 Pm1aControlBlock; /* [V1] 32-bit port address of Power Mgt 1a Control Reg Blk */
|
||||
UINT32 Pm1bControlBlock; /* [V1] 32-bit port address of Power Mgt 1b Control Reg Blk */
|
||||
UINT32 Pm2ControlBlock; /* [V1] 32-bit port address of Power Mgt 2 Control Reg Blk */
|
||||
UINT32 PmTimerBlock; /* [V1] 32-bit port address of Power Mgt Timer Ctrl Reg Blk */
|
||||
UINT32 Gpe0Block; /* [V1] 32-bit port address of General Purpose Event 0 Reg Blk */
|
||||
UINT32 Gpe1Block; /* [V1] 32-bit port address of General Purpose Event 1 Reg Blk */
|
||||
UINT8 Pm1EventLength; /* [V1] Byte Length of ports at Pm1xEventBlock */
|
||||
UINT8 Pm1ControlLength; /* [V1] Byte Length of ports at Pm1xControlBlock */
|
||||
UINT8 Pm2ControlLength; /* [V1] Byte Length of ports at Pm2ControlBlock */
|
||||
UINT8 PmTimerLength; /* [V1] Byte Length of ports at PmTimerBlock */
|
||||
UINT8 Gpe0BlockLength; /* [V1] Byte Length of ports at Gpe0Block */
|
||||
UINT8 Gpe1BlockLength; /* [V1] Byte Length of ports at Gpe1Block */
|
||||
UINT8 Gpe1Base; /* [V1] Offset in GPE number space where GPE1 events start */
|
||||
UINT8 CstControl; /* [V1] Support for the _CST object and C-States change notification */
|
||||
UINT16 C2Latency; /* [V1] Worst case HW latency to enter/exit C2 state */
|
||||
UINT16 C3Latency; /* [V1] Worst case HW latency to enter/exit C3 state */
|
||||
UINT16 FlushSize; /* [V1] Processor memory cache line width, in bytes */
|
||||
UINT16 FlushStride; /* [V1] Number of flush strides that need to be read */
|
||||
UINT8 DutyOffset; /* [V1] Processor duty cycle index in processor P_CNT reg */
|
||||
UINT8 DutyWidth; /* [V1] Processor duty cycle value bit width in P_CNT register */
|
||||
UINT8 DayAlarm; /* [V1] Index to day-of-month alarm in RTC CMOS RAM */
|
||||
UINT8 MonthAlarm; /* [V1] Index to month-of-year alarm in RTC CMOS RAM */
|
||||
UINT8 Century; /* [V1] Index to century in RTC CMOS RAM */
|
||||
UINT16 BootFlags; /* [V3] IA-PC Boot Architecture Flags (see below for individual flags) */
|
||||
UINT8 Reserved; /* [V1] Reserved, must be zero */
|
||||
UINT32 Flags; /* [V1] Miscellaneous flag bits (see below for individual flags) */
|
||||
/* End of Version 1 FADT fields (ACPI 1.0) */
|
||||
|
||||
ACPI_GENERIC_ADDRESS ResetRegister; /* [V3] 64-bit address of the Reset register */
|
||||
UINT8 ResetValue; /* [V3] Value to write to the ResetRegister port to reset the system */
|
||||
UINT16 ArmBootFlags; /* [V5] ARM-Specific Boot Flags (see below for individual flags) (ACPI 5.1) */
|
||||
UINT8 MinorRevision; /* [V5] FADT Minor Revision (ACPI 5.1) */
|
||||
UINT64 XFacs; /* [V3] 64-bit physical address of FACS */
|
||||
UINT64 XDsdt; /* [V3] 64-bit physical address of DSDT */
|
||||
ACPI_GENERIC_ADDRESS XPm1aEventBlock; /* [V3] 64-bit Extended Power Mgt 1a Event Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm1bEventBlock; /* [V3] 64-bit Extended Power Mgt 1b Event Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm1aControlBlock; /* [V3] 64-bit Extended Power Mgt 1a Control Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm1bControlBlock; /* [V3] 64-bit Extended Power Mgt 1b Control Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm2ControlBlock; /* [V3] 64-bit Extended Power Mgt 2 Control Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPmTimerBlock; /* [V3] 64-bit Extended Power Mgt Timer Ctrl Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XGpe0Block; /* [V3] 64-bit Extended General Purpose Event 0 Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XGpe1Block; /* [V3] 64-bit Extended General Purpose Event 1 Reg Blk address */
|
||||
/* End of Version 3 FADT fields (ACPI 2.0) */
|
||||
|
||||
ACPI_GENERIC_ADDRESS SleepControl; /* [V4] 64-bit Sleep Control register (ACPI 5.0) */
|
||||
/* End of Version 4 FADT fields (ACPI 3.0 and ACPI 4.0) (Field was originally reserved in ACPI 3.0) */
|
||||
|
||||
ACPI_GENERIC_ADDRESS SleepStatus; /* [V5] 64-bit Sleep Status register (ACPI 5.0) */
|
||||
/* End of Version 5 FADT fields (ACPI 5.0) */
|
||||
|
||||
UINT64 HypervisorId; /* [V6] Hypervisor Vendor ID (ACPI 6.0) */
|
||||
/* End of Version 6 FADT fields (ACPI 6.0) */
|
||||
|
||||
|
||||
} ACPI_TABLE_FADT;
|
||||
|
||||
@@ -327,8 +337,8 @@ typedef struct acpi_table_fadt
|
||||
|
||||
/* Masks for FADT ARM Boot Architecture Flags (arm_boot_flags) ACPI 5.1 */
|
||||
|
||||
#define ACPI_FADT_PSCI_COMPLIANT (1) /* 00: [V5+] PSCI 0.2+ is implemented */
|
||||
#define ACPI_FADT_PSCI_USE_HVC (1<<1) /* 01: [V5+] HVC must be used instead of SMC as the PSCI conduit */
|
||||
#define ACPI_FADT_PSCI_COMPLIANT (1) /* 00: [V5] PSCI 0.2+ is implemented */
|
||||
#define ACPI_FADT_PSCI_USE_HVC (1<<1) /* 01: [V5] HVC must be used instead of SMC as the PSCI conduit */
|
||||
|
||||
/* Masks for FADT flags */
|
||||
|
||||
@@ -435,20 +445,34 @@ typedef struct acpi_table_desc
|
||||
* match the expected length. In other words, the length of the
|
||||
* FADT is the bottom line as to what the version really is.
|
||||
*
|
||||
* For reference, the values below are as follows:
|
||||
* FADT V1 size: 0x074
|
||||
* FADT V2 size: 0x084
|
||||
* FADT V3 size: 0x0F4
|
||||
* FADT V4 size: 0x0F4
|
||||
* FADT V5 size: 0x10C
|
||||
* FADT V6 size: 0x114
|
||||
* NOTE: There is no officialy released V2 of the FADT. This
|
||||
* version was used only for prototyping and testing during the
|
||||
* 32-bit to 64-bit transition. V3 was the first official 64-bit
|
||||
* version of the FADT.
|
||||
*
|
||||
* Update this list of defines when a new version of the FADT is
|
||||
* added to the ACPI specification. Note that the FADT version is
|
||||
* only incremented when new fields are appended to the existing
|
||||
* version. Therefore, the FADT version is competely independent
|
||||
* from the version of the ACPI specification where it is
|
||||
* defined.
|
||||
*
|
||||
* For reference, the various FADT lengths are as follows:
|
||||
* FADT V1 size: 0x074 ACPI 1.0
|
||||
* FADT V3 size: 0x0F4 ACPI 2.0
|
||||
* FADT V4 size: 0x100 ACPI 3.0 and ACPI 4.0
|
||||
* FADT V5 size: 0x10C ACPI 5.0
|
||||
* FADT V6 size: 0x114 ACPI 6.0
|
||||
*/
|
||||
#define ACPI_FADT_V1_SIZE (UINT32) (ACPI_FADT_OFFSET (Flags) + 4)
|
||||
#define ACPI_FADT_V2_SIZE (UINT32) (ACPI_FADT_OFFSET (MinorRevision) + 1)
|
||||
#define ACPI_FADT_V3_SIZE (UINT32) (ACPI_FADT_OFFSET (SleepControl))
|
||||
#define ACPI_FADT_V5_SIZE (UINT32) (ACPI_FADT_OFFSET (HypervisorId))
|
||||
#define ACPI_FADT_V6_SIZE (UINT32) (sizeof (ACPI_TABLE_FADT))
|
||||
#define ACPI_FADT_V1_SIZE (UINT32) (ACPI_FADT_OFFSET (Flags) + 4) /* ACPI 1.0 */
|
||||
#define ACPI_FADT_V3_SIZE (UINT32) (ACPI_FADT_OFFSET (SleepControl)) /* ACPI 2.0 */
|
||||
#define ACPI_FADT_V4_SIZE (UINT32) (ACPI_FADT_OFFSET (SleepStatus)) /* ACPI 3.0 and ACPI 4.0 */
|
||||
#define ACPI_FADT_V5_SIZE (UINT32) (ACPI_FADT_OFFSET (HypervisorId)) /* ACPI 5.0 */
|
||||
#define ACPI_FADT_V6_SIZE (UINT32) (sizeof (ACPI_TABLE_FADT)) /* ACPI 6.0 */
|
||||
|
||||
/* Update these when new FADT versions are added */
|
||||
|
||||
#define ACPI_FADT_MAX_VERSION 6
|
||||
#define ACPI_FADT_CONFORMANCE "ACPI 6.1 (FADT version 6)"
|
||||
|
||||
#endif /* __ACTBL_H__ */
|
||||
|
||||
@@ -1387,16 +1387,6 @@ typedef enum
|
||||
#define ACPI_OSI_WIN_10 0x0D
|
||||
|
||||
|
||||
/* Definitions of file IO */
|
||||
|
||||
#define ACPI_FILE_READING 0x01
|
||||
#define ACPI_FILE_WRITING 0x02
|
||||
#define ACPI_FILE_BINARY 0x04
|
||||
|
||||
#define ACPI_FILE_BEGIN 0x01
|
||||
#define ACPI_FILE_END 0x02
|
||||
|
||||
|
||||
/* Definitions of getopt */
|
||||
|
||||
#define ACPI_OPT_END -1
|
||||
|
||||
@@ -1067,48 +1067,6 @@ AcpiAhMatchUuid (
|
||||
UINT8 *Data);
|
||||
|
||||
|
||||
/*
|
||||
* utprint - printf/vprintf output functions
|
||||
*/
|
||||
const char *
|
||||
AcpiUtScanNumber (
|
||||
const char *String,
|
||||
UINT64 *NumberPtr);
|
||||
|
||||
const char *
|
||||
AcpiUtPrintNumber (
|
||||
char *String,
|
||||
UINT64 Number);
|
||||
|
||||
int
|
||||
AcpiUtVsnprintf (
|
||||
char *String,
|
||||
ACPI_SIZE Size,
|
||||
const char *Format,
|
||||
va_list Args);
|
||||
|
||||
int
|
||||
AcpiUtSnprintf (
|
||||
char *String,
|
||||
ACPI_SIZE Size,
|
||||
const char *Format,
|
||||
...);
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
int
|
||||
AcpiUtFileVprintf (
|
||||
ACPI_FILE File,
|
||||
const char *Format,
|
||||
va_list Args);
|
||||
|
||||
int
|
||||
AcpiUtFilePrintf (
|
||||
ACPI_FILE File,
|
||||
const char *Format,
|
||||
...);
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* utuuid -- UUID support functions
|
||||
*/
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
/*
|
||||
* ACPICA configuration
|
||||
*/
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#define ACPI_USE_DO_WHILE_0
|
||||
#define ACPI_FLUSH_CPU_CACHE()
|
||||
@@ -58,11 +59,9 @@
|
||||
#define ACPI_USE_ALTERNATE_TIMEOUT
|
||||
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#ifdef ACPI_USE_STANDARD_HEADERS
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#if defined(__ia64__) || defined(__x86_64__)
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
@@ -86,10 +85,6 @@
|
||||
|
||||
#define ACPI_CAST_PTHREAD_T(pthread) ((ACPI_THREAD_ID) ACPI_TO_INTEGER (pthread))
|
||||
|
||||
/* Cygwin uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
|
||||
|
||||
/*
|
||||
* The vsnprintf/snprintf functions are defined by c99, but cygwin/gcc
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
#ifndef __ACDRAGONFLY_H_
|
||||
#define __ACDRAGONFLY_H_
|
||||
|
||||
#include <platform/acgcc.h> /* DragonFly uses GCC */
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __LP64__
|
||||
|
||||
@@ -44,10 +44,12 @@
|
||||
#ifndef __ACEFI_H__
|
||||
#define __ACEFI_H__
|
||||
|
||||
#include <stdarg.h>
|
||||
#if defined(_GNU_EFI)
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
/* EDK2 EFI environemnt */
|
||||
|
||||
#if defined(_EDK2_EFI)
|
||||
|
||||
#define _GNU_EFI
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__)
|
||||
@@ -57,23 +59,13 @@
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
#define EFIAPI __cdecl
|
||||
#define ACPI_EFI_API __cdecl
|
||||
#elif USE_MS_ABI
|
||||
#define EFIAPI __attribute__((ms_abi))
|
||||
#define ACPI_EFI_API __attribute__((ms_abi))
|
||||
#else
|
||||
#define EFIAPI
|
||||
#define ACPI_EFI_API
|
||||
#endif
|
||||
|
||||
typedef uint8_t UINT8;
|
||||
typedef uint16_t UINT16;
|
||||
typedef int16_t INT16;
|
||||
typedef uint32_t UINT32;
|
||||
typedef int32_t INT32;
|
||||
typedef uint64_t UINT64;
|
||||
typedef int64_t INT64;
|
||||
typedef uint8_t BOOLEAN;
|
||||
typedef uint16_t CHAR16;
|
||||
|
||||
#define VOID void
|
||||
|
||||
#if defined(__ia64__) || defined(__x86_64__)
|
||||
@@ -94,23 +86,23 @@ typedef uint16_t CHAR16;
|
||||
|
||||
#endif
|
||||
|
||||
typedef uint64_t UINTN;
|
||||
typedef int64_t INTN;
|
||||
#define UINTN uint64_t
|
||||
#define INTN int64_t
|
||||
|
||||
#define EFIERR(a) (0x8000000000000000 | a)
|
||||
#define ACPI_EFI_ERR(a) (0x8000000000000000 | a)
|
||||
|
||||
#else
|
||||
|
||||
#define ACPI_MACHINE_WIDTH 32
|
||||
#define ACPI_USE_NATIVE_DIVIDE
|
||||
|
||||
typedef uint32_t UINTN;
|
||||
typedef int32_t INTN;
|
||||
#define UINTN uint32_t
|
||||
#define INTN int32_t
|
||||
|
||||
#define EFIERR(a) (0x80000000 | a)
|
||||
#define ACPI_EFI_ERR(a) (0x80000000 | a)
|
||||
|
||||
#endif
|
||||
|
||||
#define CHAR16 uint16_t
|
||||
|
||||
#ifdef USE_EFI_FUNCTION_WRAPPER
|
||||
#define __VA_NARG__(...) \
|
||||
@@ -230,15 +222,6 @@ UINT64 efi_call10(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
|
||||
|
||||
#if defined(_GNU_EFI)
|
||||
|
||||
/* Using GCC for GNU EFI */
|
||||
|
||||
#include "acgcc.h"
|
||||
|
||||
#undef ACPI_USE_SYSTEM_CLIBRARY
|
||||
#undef ACPI_USE_STANDARD_HEADERS
|
||||
#undef ACPI_USE_NATIVE_DIVIDE
|
||||
#define ACPI_USE_SYSTEM_INTTYPES
|
||||
|
||||
/*
|
||||
* Math helpers
|
||||
*/
|
||||
@@ -255,21 +238,20 @@ UINT64 efi_call10(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
|
||||
(n_hi) >>= 1; \
|
||||
} while (0)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
struct _SIMPLE_TEXT_OUTPUT_INTERFACE;
|
||||
struct _SIMPLE_INPUT_INTERFACE;
|
||||
struct _EFI_FILE_IO_INTERFACE;
|
||||
struct _EFI_FILE_HANDLE;
|
||||
struct _EFI_BOOT_SERVICES;
|
||||
struct _EFI_SYSTEM_TABLE;
|
||||
struct _ACPI_SIMPLE_TEXT_OUTPUT_INTERFACE;
|
||||
struct _ACPI_SIMPLE_INPUT_INTERFACE;
|
||||
struct _ACPI_EFI_FILE_IO_INTERFACE;
|
||||
struct _ACPI_EFI_FILE_HANDLE;
|
||||
struct _ACPI_EFI_BOOT_SERVICES;
|
||||
struct _ACPI_EFI_SYSTEM_TABLE;
|
||||
|
||||
extern struct _EFI_SYSTEM_TABLE *ST;
|
||||
extern struct _EFI_BOOT_SERVICES *BS;
|
||||
extern struct _ACPI_EFI_SYSTEM_TABLE *ST;
|
||||
extern struct _ACPI_EFI_BOOT_SERVICES *BS;
|
||||
|
||||
#define ACPI_FILE struct _SIMPLE_TEXT_OUTPUT_INTERFACE *
|
||||
#define ACPI_FILE_OUT ST->ConOut
|
||||
#define ACPI_FILE_ERR ST->ConOut
|
||||
#define FILE struct _ACPI_SIMPLE_TEXT_OUTPUT_INTERFACE
|
||||
#define stdout ST->ConOut
|
||||
#define stderr ST->ConOut
|
||||
|
||||
#endif /* __ACEFI_H__ */
|
||||
|
||||
+445
-432
File diff suppressed because it is too large
Load Diff
@@ -79,6 +79,7 @@
|
||||
(defined ACPI_EXAMPLE_APP)
|
||||
#define ACPI_APPLICATION
|
||||
#define ACPI_SINGLE_THREADED
|
||||
#define USE_NATIVE_ALLOCATE_ZEROED
|
||||
#endif
|
||||
|
||||
/* iASL configuration */
|
||||
@@ -125,7 +126,6 @@
|
||||
|
||||
#ifdef ACPI_DUMP_APP
|
||||
#define ACPI_USE_NATIVE_MEMORY_MAPPING
|
||||
#define USE_NATIVE_ALLOCATE_ZEROED
|
||||
#endif
|
||||
|
||||
/* AcpiNames/Example configuration. Hardware disabled */
|
||||
@@ -150,7 +150,6 @@
|
||||
/* Common for all ACPICA applications */
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#define ACPI_USE_LOCAL_CACHE
|
||||
#endif
|
||||
|
||||
@@ -167,10 +166,21 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Host configuration files. The compiler configuration files are included
|
||||
* by the host files.
|
||||
* first.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
|
||||
#include "acgcc.h"
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
#include "acmsvc.h"
|
||||
|
||||
#elif defined(__INTEL_COMPILER)
|
||||
#include "acintel.h"
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(_LINUX) || defined(__linux__)
|
||||
#include "aclinux.h"
|
||||
|
||||
@@ -210,18 +220,20 @@
|
||||
#elif defined(__OS2__)
|
||||
#include "acos2.h"
|
||||
|
||||
#elif defined(_AED_EFI)
|
||||
#include "acefi.h"
|
||||
|
||||
#elif defined(_GNU_EFI)
|
||||
#include "acefi.h"
|
||||
|
||||
#elif defined(__HAIKU__)
|
||||
#include "achaiku.h"
|
||||
|
||||
#elif defined(__QNX__)
|
||||
#include "acqnx.h"
|
||||
|
||||
/*
|
||||
* EFI applications can be built with -nostdlib, in this case, it must be
|
||||
* included after including all other host environmental definitions, in
|
||||
* order to override the definitions.
|
||||
*/
|
||||
#elif defined(_AED_EFI) || defined(_GNU_EFI) || defined(_EDK2_EFI)
|
||||
#include "acefi.h"
|
||||
|
||||
#else
|
||||
|
||||
/* Unknown environment */
|
||||
@@ -330,7 +342,8 @@
|
||||
* ACPI_USE_SYSTEM_CLIBRARY - Define this if linking to an actual C library.
|
||||
* Otherwise, local versions of string/memory functions will be used.
|
||||
* ACPI_USE_STANDARD_HEADERS - Define this if linking to a C library and
|
||||
* the standard header files may be used.
|
||||
* the standard header files may be used. Defining this implies that
|
||||
* ACPI_USE_SYSTEM_CLIBRARY has been defined.
|
||||
*
|
||||
* The ACPICA subsystem only uses low level C library functions that do not
|
||||
* call operating system services and may therefore be inlined in the code.
|
||||
@@ -338,7 +351,6 @@
|
||||
* It may be necessary to tailor these include files to the target
|
||||
* generation environment.
|
||||
*/
|
||||
#ifdef ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
/* Use the standard C library headers. We want to keep these to a minimum. */
|
||||
|
||||
@@ -346,57 +358,20 @@
|
||||
|
||||
/* Use the standard headers from the standard locations */
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#ifdef ACPI_APPLICATION
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <time.h>
|
||||
#include <signal.h>
|
||||
#endif
|
||||
|
||||
#endif /* ACPI_USE_STANDARD_HEADERS */
|
||||
|
||||
/* We will be linking to the standard Clib functions */
|
||||
|
||||
#else
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Not using native C library, use local implementations
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Use local definitions of C library macros and functions. These function
|
||||
* implementations may not be as efficient as an inline or assembly code
|
||||
* implementation provided by a native C library, but they are functionally
|
||||
* equivalent.
|
||||
*/
|
||||
#ifndef va_arg
|
||||
|
||||
#ifndef _VALIST
|
||||
#define _VALIST
|
||||
typedef char *va_list;
|
||||
#endif /* _VALIST */
|
||||
|
||||
/* Storage alignment properties */
|
||||
|
||||
#define _AUPBND (sizeof (ACPI_NATIVE_INT) - 1)
|
||||
#define _ADNBND (sizeof (ACPI_NATIVE_INT) - 1)
|
||||
|
||||
/* Variable argument list macro definitions */
|
||||
|
||||
#define _Bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))
|
||||
#define va_arg(ap, T) (*(T *)(((ap) += (_Bnd (T, _AUPBND))) - (_Bnd (T,_ADNBND))))
|
||||
#define va_end(ap) (ap = (va_list) NULL)
|
||||
#define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_Bnd (A,_AUPBND))))
|
||||
|
||||
#endif /* va_arg */
|
||||
|
||||
/* Use the local (ACPICA) definitions of the clib functions */
|
||||
|
||||
#endif /* ACPI_USE_SYSTEM_CLIBRARY */
|
||||
|
||||
#ifndef ACPI_FILE
|
||||
#ifdef ACPI_APPLICATION
|
||||
#include <stdio.h>
|
||||
#define ACPI_FILE FILE *
|
||||
#define ACPI_FILE_OUT stdout
|
||||
#define ACPI_FILE_ERR stderr
|
||||
@@ -405,6 +380,9 @@ typedef char *va_list;
|
||||
#define ACPI_FILE_OUT NULL
|
||||
#define ACPI_FILE_ERR NULL
|
||||
#endif /* ACPI_APPLICATION */
|
||||
#endif /* ACPI_FILE */
|
||||
|
||||
#ifndef ACPI_INIT_FUNCTION
|
||||
#define ACPI_INIT_FUNCTION
|
||||
#endif
|
||||
|
||||
#endif /* __ACENV_H__ */
|
||||
|
||||
@@ -56,18 +56,25 @@
|
||||
#if defined(_LINUX) || defined(__linux__)
|
||||
#include "aclinuxex.h"
|
||||
|
||||
#elif defined(WIN32)
|
||||
#include "acwinex.h"
|
||||
|
||||
#elif defined(_AED_EFI)
|
||||
#include "acefiex.h"
|
||||
|
||||
#elif defined(_GNU_EFI)
|
||||
#include "acefiex.h"
|
||||
|
||||
#elif defined(__DragonFly__)
|
||||
#include "acdragonflyex.h"
|
||||
|
||||
/*
|
||||
* EFI applications can be built with -nostdlib, in this case, it must be
|
||||
* included after including all other host environmental definitions, in
|
||||
* order to override the definitions.
|
||||
*/
|
||||
#elif defined(_AED_EFI) || defined(_GNU_EFI) || defined(_EDK2_EFI)
|
||||
#include "acefiex.h"
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
|
||||
#include "acgccex.h"
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
#include "acmsvcex.h"
|
||||
|
||||
#endif
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
@@ -45,9 +45,6 @@
|
||||
#define __ACFREEBSD_H__
|
||||
|
||||
|
||||
/* FreeBSD uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __LP64__
|
||||
|
||||
@@ -44,6 +44,12 @@
|
||||
#ifndef __ACGCC_H__
|
||||
#define __ACGCC_H__
|
||||
|
||||
/*
|
||||
* Use compiler specific <stdarg.h> is a good practice for even when
|
||||
* -nostdinc is specified (i.e., ACPI_USE_STANDARD_HEADERS undefined.
|
||||
*/
|
||||
#include <stdarg.h>
|
||||
|
||||
#define ACPI_INLINE __inline__
|
||||
|
||||
/* Function name is used for debug output. Non-ANSI, compiler-dependent */
|
||||
@@ -64,17 +70,6 @@
|
||||
*/
|
||||
#define ACPI_UNUSED_VAR __attribute__ ((unused))
|
||||
|
||||
/*
|
||||
* Some versions of gcc implement strchr() with a buggy macro. So,
|
||||
* undef it here. Prevents error messages of this form (usually from the
|
||||
* file getopt.c):
|
||||
*
|
||||
* error: logical '&&' with non-zero constant will always evaluate as true
|
||||
*/
|
||||
#ifdef strchr
|
||||
#undef strchr
|
||||
#endif
|
||||
|
||||
/* GCC supports __VA_ARGS__ in macros */
|
||||
|
||||
#define COMPILER_VA_MACRO 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acwinex.h - Extra OS specific defines, etc.
|
||||
* Name: acgccex.h - Extra GCC specific defines, etc.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -41,12 +41,18 @@
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#ifndef __ACWINEX_H__
|
||||
#define __ACWINEX_H__
|
||||
#ifndef __ACGCCEX_H__
|
||||
#define __ACGCCEX_H__
|
||||
|
||||
/* Windows uses VC */
|
||||
#ifdef _MSC_VER
|
||||
#include "acmsvcex.h"
|
||||
/*
|
||||
* Some versions of gcc implement strchr() with a buggy macro. So,
|
||||
* undef it here. Prevents error messages of this form (usually from the
|
||||
* file getopt.c):
|
||||
*
|
||||
* error: logical '&&' with non-zero constant will always evaluate as true
|
||||
*/
|
||||
#ifdef strchr
|
||||
#undef strchr
|
||||
#endif
|
||||
|
||||
#endif /* __ACWINEX_H__ */
|
||||
#endif /* __ACGCCEX_H__ */
|
||||
@@ -44,7 +44,9 @@
|
||||
#ifndef __ACHAIKU_H__
|
||||
#define __ACHAIKU_H__
|
||||
|
||||
#include "acgcc.h"
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
#include <KernelExport.h>
|
||||
|
||||
struct mutex;
|
||||
@@ -52,9 +54,6 @@ struct mutex;
|
||||
|
||||
/* Host-dependent types and defines for user- and kernel-space ACPICA */
|
||||
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
#define ACPI_MUTEX_TYPE ACPI_OSL_MUTEX
|
||||
#define ACPI_MUTEX struct mutex *
|
||||
|
||||
|
||||
@@ -44,6 +44,12 @@
|
||||
#ifndef __ACINTEL_H__
|
||||
#define __ACINTEL_H__
|
||||
|
||||
/*
|
||||
* Use compiler specific <stdarg.h> is a good practice for even when
|
||||
* -nostdinc is specified (i.e., ACPI_USE_STANDARD_HEADERS undefined.
|
||||
*/
|
||||
#include <stdarg.h>
|
||||
|
||||
/* Configuration specific to Intel 64-bit C compiler */
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 __int64
|
||||
|
||||
@@ -89,6 +89,8 @@
|
||||
#include <asm/acenv.h>
|
||||
#endif
|
||||
|
||||
#define ACPI_INIT_FUNCTION __init
|
||||
|
||||
#ifndef CONFIG_ACPI
|
||||
|
||||
/* External globals for __KERNEL__, stubs is needed */
|
||||
@@ -173,11 +175,11 @@
|
||||
|
||||
#else /* !__KERNEL__ */
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
#ifdef ACPI_USE_STANDARD_HEADERS
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
/* Define/disable kernel-specific declarators */
|
||||
|
||||
@@ -208,8 +210,4 @@
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/* Linux uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
|
||||
#endif /* __ACLINUX_H__ */
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
/*
|
||||
* Overrides for in-kernel ACPICA
|
||||
*/
|
||||
ACPI_STATUS __init AcpiOsInitialize (
|
||||
ACPI_STATUS ACPI_INIT_FUNCTION AcpiOsInitialize (
|
||||
void);
|
||||
|
||||
ACPI_STATUS AcpiOsTerminate (
|
||||
|
||||
@@ -64,6 +64,10 @@
|
||||
#define stat _stat
|
||||
#define fstat _fstat
|
||||
#define mkdir _mkdir
|
||||
#define snprintf _snprintf
|
||||
#if _MSC_VER <= 1200 /* Versions below VC++ 6 */
|
||||
#define vsnprintf _vsnprintf
|
||||
#endif
|
||||
#define O_RDONLY _O_RDONLY
|
||||
#define O_BINARY _O_BINARY
|
||||
#define O_CREAT _O_CREAT
|
||||
@@ -102,6 +106,10 @@
|
||||
#define ACPI_INTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_VAR_XFACE __cdecl
|
||||
|
||||
|
||||
/* Do not maintain the architecture specific stuffs for the EFI ports */
|
||||
|
||||
#if !defined(_EDK2_EFI) && !defined(_GNU_EFI)
|
||||
#ifndef _LINT
|
||||
/*
|
||||
* Math helper functions
|
||||
@@ -136,6 +144,7 @@
|
||||
n_lo >>= 1; \
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* warn C4100: unreferenced formal parameter */
|
||||
#pragma warning(disable:4100)
|
||||
@@ -192,4 +201,15 @@ _CrtSetBreakAlloc (937);
|
||||
#else
|
||||
#endif
|
||||
|
||||
/* Begin standard headers */
|
||||
|
||||
/*
|
||||
* warn C4001: nonstandard extension 'single line comment' was used
|
||||
*
|
||||
* We need to enable this for ACPICA internal files, but disable it for
|
||||
* buggy MS runtime headers.
|
||||
*/
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable:4001)
|
||||
|
||||
#endif /* __ACMSVC_H__ */
|
||||
|
||||
@@ -44,6 +44,14 @@
|
||||
#ifndef __ACMSVCEX_H__
|
||||
#define __ACMSVCEX_H__
|
||||
|
||||
/* va_arg implementation can be compiler specific */
|
||||
|
||||
#ifdef ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#endif /* ACPI_USE_STANDARD_HEADERS */
|
||||
|
||||
/* Debug support. */
|
||||
|
||||
#ifdef _DEBUG
|
||||
@@ -51,4 +59,39 @@
|
||||
#include <crtdbg.h>
|
||||
#endif
|
||||
|
||||
/* End standard headers */
|
||||
|
||||
#pragma warning(pop)
|
||||
|
||||
#ifndef ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Not using native C library, use local implementations
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef va_arg
|
||||
|
||||
#ifndef _VALIST
|
||||
#define _VALIST
|
||||
typedef char *va_list;
|
||||
#endif /* _VALIST */
|
||||
|
||||
/* Storage alignment properties */
|
||||
|
||||
#define _AUPBND (sizeof (ACPI_NATIVE_INT) - 1)
|
||||
#define _ADNBND (sizeof (ACPI_NATIVE_INT) - 1)
|
||||
|
||||
/* Variable argument list macro definitions */
|
||||
|
||||
#define _Bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))
|
||||
#define va_arg(ap, T) (*(T *)(((ap) += (_Bnd (T, _AUPBND))) - (_Bnd (T,_ADNBND))))
|
||||
#define va_end(ap) (ap = (va_list) NULL)
|
||||
#define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_Bnd (A,_AUPBND))))
|
||||
|
||||
#endif /* va_arg */
|
||||
|
||||
#endif /* !ACPI_USE_SYSTEM_CLIBRARY */
|
||||
|
||||
#endif /* __ACMSVCEX_H__ */
|
||||
|
||||
@@ -44,10 +44,6 @@
|
||||
#ifndef __ACNETBSD_H__
|
||||
#define __ACNETBSD_H__
|
||||
|
||||
/* NetBSD uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
|
||||
#define ACPI_UINTPTR_T uintptr_t
|
||||
#define ACPI_USE_LOCAL_CACHE
|
||||
#define ACPI_CAST_PTHREAD_T(x) ((ACPI_THREAD_ID) ACPI_TO_INTEGER (x))
|
||||
|
||||
@@ -43,6 +43,10 @@
|
||||
|
||||
#ifndef __ACOS2_H__
|
||||
#define __ACOS2_H__
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
#define INCL_LONGLONG
|
||||
#include <os2.h>
|
||||
|
||||
@@ -66,7 +70,6 @@
|
||||
*/
|
||||
#define ACPI_UNUSED_VAR
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
#include <io.h>
|
||||
|
||||
#define ACPI_FLUSH_CPU_CACHE() Wbinvd()
|
||||
|
||||
@@ -44,9 +44,8 @@
|
||||
#ifndef __ACQNX_H__
|
||||
#define __ACQNX_H__
|
||||
|
||||
/* QNX uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
#define ACPI_UINTPTR_T uintptr_t
|
||||
#define ACPI_USE_LOCAL_CACHE
|
||||
@@ -62,13 +61,10 @@
|
||||
#include <stdint.h>
|
||||
#include <sys/neutrino.h>
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
#define __cli() InterruptDisable();
|
||||
#define __sti() InterruptEnable();
|
||||
#define __cdecl
|
||||
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#define ACPI_USE_NATIVE_DIVIDE
|
||||
|
||||
#endif /* __ACQNX_H__ */
|
||||
|
||||
@@ -44,18 +44,11 @@
|
||||
#ifndef __ACWIN_H__
|
||||
#define __ACWIN_H__
|
||||
|
||||
/*! [Begin] no source code translation (Keep the include) */
|
||||
|
||||
/* Windows uses VC */
|
||||
#ifdef _MSC_VER
|
||||
#include "acmsvc.h"
|
||||
#endif
|
||||
/*! [End] no source code translation !*/
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
#define ACPI_MACHINE_WIDTH 32
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
#ifdef ACPI_DEFINE_ALTERNATE_TYPES
|
||||
/*
|
||||
* Types used only in (Linux) translated source, defined here to enable
|
||||
|
||||
@@ -44,15 +44,11 @@
|
||||
#ifndef __ACWIN64_H__
|
||||
#define __ACWIN64_H__
|
||||
|
||||
/*! [Begin] no source code translation (Keep the include) */
|
||||
|
||||
#include "acintel.h"
|
||||
/*! [End] no source code translation !*/
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
/*
|
||||
* Handle platform- and compiler-specific assembly language differences.
|
||||
*
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,258 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: oslibcfs - C library OSL for file I/O
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2016, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
||||
* substantially similar to the "NO WARRANTY" disclaimer below
|
||||
* ("Disclaimer") and any redistribution must be conditioned upon
|
||||
* including a substantially similar Disclaimer requirement for further
|
||||
* binary redistribution.
|
||||
* 3. Neither the names of the above-listed copyright holders nor the names
|
||||
* of any contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* Alternatively, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include "acpi.h"
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#define _COMPONENT ACPI_OS_SERVICES
|
||||
ACPI_MODULE_NAME ("oslibcfs")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsOpenFile
|
||||
*
|
||||
* PARAMETERS: Path - File path
|
||||
* Modes - File operation type
|
||||
*
|
||||
* RETURN: File descriptor.
|
||||
*
|
||||
* DESCRIPTION: Open a file for reading (ACPI_FILE_READING) or/and writing
|
||||
* (ACPI_FILE_WRITING).
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_FILE
|
||||
AcpiOsOpenFile (
|
||||
const char *Path,
|
||||
UINT8 Modes)
|
||||
{
|
||||
ACPI_FILE File;
|
||||
UINT32 i = 0;
|
||||
char ModesStr[4];
|
||||
|
||||
|
||||
if (Modes & ACPI_FILE_READING)
|
||||
{
|
||||
ModesStr[i++] = 'r';
|
||||
}
|
||||
if (Modes & ACPI_FILE_WRITING)
|
||||
{
|
||||
ModesStr[i++] = 'w';
|
||||
}
|
||||
|
||||
if (Modes & ACPI_FILE_BINARY)
|
||||
{
|
||||
ModesStr[i++] = 'b';
|
||||
}
|
||||
|
||||
ModesStr[i++] = '\0';
|
||||
|
||||
File = fopen (Path, ModesStr);
|
||||
if (!File)
|
||||
{
|
||||
perror ("Could not open file");
|
||||
}
|
||||
|
||||
return (File);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsCloseFile
|
||||
*
|
||||
* PARAMETERS: File - An open file descriptor
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
* DESCRIPTION: Close a file opened via AcpiOsOpenFile.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiOsCloseFile (
|
||||
ACPI_FILE File)
|
||||
{
|
||||
|
||||
fclose (File);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsReadFile
|
||||
*
|
||||
* PARAMETERS: File - An open file descriptor
|
||||
* Buffer - Data buffer
|
||||
* Size - Data block size
|
||||
* Count - Number of data blocks
|
||||
*
|
||||
* RETURN: Number of bytes actually read.
|
||||
*
|
||||
* DESCRIPTION: Read from a file.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiOsReadFile (
|
||||
ACPI_FILE File,
|
||||
void *Buffer,
|
||||
ACPI_SIZE Size,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
int Length;
|
||||
|
||||
|
||||
Length = fread (Buffer, Size, Count, File);
|
||||
if (Length < 0)
|
||||
{
|
||||
perror ("Error reading file");
|
||||
}
|
||||
|
||||
return (Length);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsWriteFile
|
||||
*
|
||||
* PARAMETERS: File - An open file descriptor
|
||||
* Buffer - Data buffer
|
||||
* Size - Data block size
|
||||
* Count - Number of data blocks
|
||||
*
|
||||
* RETURN: Number of bytes actually written.
|
||||
*
|
||||
* DESCRIPTION: Write to a file.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiOsWriteFile (
|
||||
ACPI_FILE File,
|
||||
void *Buffer,
|
||||
ACPI_SIZE Size,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
int Length;
|
||||
|
||||
|
||||
Length = fwrite (Buffer, Size, Count, File);
|
||||
if (Length < 0)
|
||||
{
|
||||
perror ("Error writing file");
|
||||
}
|
||||
|
||||
return (Length);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsGetFileOffset
|
||||
*
|
||||
* PARAMETERS: File - An open file descriptor
|
||||
*
|
||||
* RETURN: Current file pointer position.
|
||||
*
|
||||
* DESCRIPTION: Get current file offset.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
long
|
||||
AcpiOsGetFileOffset (
|
||||
ACPI_FILE File)
|
||||
{
|
||||
long Offset;
|
||||
|
||||
|
||||
Offset = ftell (File);
|
||||
return (Offset);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsSetFileOffset
|
||||
*
|
||||
* PARAMETERS: File - An open file descriptor
|
||||
* Offset - New file offset
|
||||
* From - From begin/end of file
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Set current file offset.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsSetFileOffset (
|
||||
ACPI_FILE File,
|
||||
long Offset,
|
||||
UINT8 From)
|
||||
{
|
||||
int Ret = 0;
|
||||
|
||||
|
||||
if (From == ACPI_FILE_BEGIN)
|
||||
{
|
||||
Ret = fseek (File, Offset, SEEK_SET);
|
||||
}
|
||||
|
||||
if (From == ACPI_FILE_END)
|
||||
{
|
||||
Ret = fseek (File, Offset, SEEK_END);
|
||||
}
|
||||
|
||||
if (Ret < 0)
|
||||
{
|
||||
return (AE_ERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
}
|
||||
@@ -64,9 +64,6 @@
|
||||
ACPI_MODULE_NAME ("osunixxf")
|
||||
|
||||
|
||||
BOOLEAN AcpiGbl_DebugTimeout = FALSE;
|
||||
|
||||
|
||||
/* Upcalls to AcpiExec */
|
||||
|
||||
void
|
||||
|
||||
@@ -71,8 +71,8 @@ static char KeyBuffer[LOCAL_BUFFER_SIZE];
|
||||
static char ErrorBuffer[LOCAL_BUFFER_SIZE];
|
||||
|
||||
/*
|
||||
* Tables supported in the Windows registry. SSDTs are not placed into
|
||||
* the registry, a limitation.
|
||||
* Tables supported in the Windows registry. Zero or more SSDTs are assumed to
|
||||
* follow these tables.
|
||||
*/
|
||||
static char *SupportedTables[] =
|
||||
{
|
||||
@@ -82,9 +82,9 @@ static char *SupportedTables[] =
|
||||
"FACP"
|
||||
};
|
||||
|
||||
/* Max index for table above */
|
||||
/* Number of table names for the table above. */
|
||||
|
||||
#define ACPI_OS_MAX_TABLE_INDEX 3
|
||||
#define ACPI_OS_NUM_TABLE_ENTRIES 4
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
@@ -171,14 +171,32 @@ AcpiOsGetTableByIndex (
|
||||
ACPI_PHYSICAL_ADDRESS *Address)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
char *Signature;
|
||||
|
||||
|
||||
if (Index > ACPI_OS_MAX_TABLE_INDEX)
|
||||
if (Index < ACPI_OS_NUM_TABLE_ENTRIES)
|
||||
{
|
||||
return (AE_LIMIT);
|
||||
Signature = SupportedTables[Index];
|
||||
Index = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Signature = ACPI_SIG_SSDT;
|
||||
Index -= ACPI_OS_NUM_TABLE_ENTRIES;
|
||||
}
|
||||
|
||||
Status = AcpiOsGetTableByName (Signature, Index, Table, Address);
|
||||
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
*Instance = Index;
|
||||
}
|
||||
else if (Status == AE_NOT_FOUND && ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT))
|
||||
{
|
||||
/* Treat SSDTs that are not found as invalid index. */
|
||||
Status = (AE_LIMIT);
|
||||
}
|
||||
|
||||
Status = AcpiOsGetTableByName (SupportedTables[Index], 0, Table, Address);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
@@ -225,11 +243,9 @@ AcpiOsGetTableByName (
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
|
||||
|
||||
/*
|
||||
* Windows has no SSDTs in the registry, so multiple instances are
|
||||
* not supported.
|
||||
*/
|
||||
if (Instance > 0)
|
||||
/* Multiple instances are only supported for SSDT tables. */
|
||||
|
||||
if (Instance > 0 && !ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT))
|
||||
{
|
||||
return (AE_LIMIT);
|
||||
}
|
||||
@@ -244,6 +260,28 @@ AcpiOsGetTableByName (
|
||||
return (AE_BUFFER_OVERFLOW);
|
||||
}
|
||||
|
||||
/*
|
||||
* Windows stores SSDT at SSDT, SSD1, ..., SSD9, SSDA, ..., SSDS, SSDT,
|
||||
* SSDU, ..., SSDY. If the first (0th) and the 29th tables have the same
|
||||
* OEM ID, Table ID and Revision, then the 29th entry will overwrite the
|
||||
* first entry... Let's hope that we do not have that many entries.
|
||||
*/
|
||||
if (Instance > 0 && ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT))
|
||||
{
|
||||
if (Instance < 10)
|
||||
{
|
||||
KeyBuffer[strlen (KeyBuffer) - 1] = '0' + (char) Instance;
|
||||
}
|
||||
else if (Instance < 29)
|
||||
{
|
||||
KeyBuffer[strlen (KeyBuffer) - 1] = 'A' + (char) (Instance - 10);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (AE_LIMIT);
|
||||
}
|
||||
}
|
||||
|
||||
WinStatus = RegOpenKeyEx (HKEY_LOCAL_MACHINE, KeyBuffer,
|
||||
0L, KEY_READ, &Handle);
|
||||
|
||||
@@ -265,6 +303,12 @@ AcpiOsGetTableByName (
|
||||
{
|
||||
Signature = "RSDT";
|
||||
}
|
||||
else if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT))
|
||||
{
|
||||
/* SSDT may not be present on older Windows versions, but it is
|
||||
* also possible that the index is not found. */
|
||||
return (AE_NOT_FOUND);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf (stderr,
|
||||
|
||||
@@ -100,9 +100,6 @@ ACPI_OS_SEMAPHORE_INFO AcpiGbl_Semaphores[ACPI_OS_MAX_SEMAPHORES];
|
||||
|
||||
#endif /* ACPI_SINGLE_THREADED */
|
||||
|
||||
BOOLEAN AcpiGbl_DebugTimeout = FALSE;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsTerminate
|
||||
|
||||
@@ -42,7 +42,6 @@
|
||||
*/
|
||||
|
||||
#include "acpibin.h"
|
||||
#include "acapps.h"
|
||||
|
||||
|
||||
ACPI_TABLE_HEADER Header1;
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
|
||||
#define _DECLARE_GLOBALS
|
||||
#include "acpibin.h"
|
||||
#include "acapps.h"
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
|
||||
@@ -43,10 +43,7 @@
|
||||
|
||||
#include "acpi.h"
|
||||
#include "accommon.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include "acapps.h"
|
||||
|
||||
#define DB_CONSOLE_OUTPUT 0x02
|
||||
#define ACPI_DB_REDIRECTABLE_OUTPUT 0x01
|
||||
|
||||
@@ -55,12 +55,7 @@
|
||||
#include "acpi.h"
|
||||
#include "accommon.h"
|
||||
#include "actables.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "acapps.h"
|
||||
|
||||
/* Globals */
|
||||
|
||||
@@ -73,12 +68,6 @@ EXTERN ACPI_FILE INIT_GLOBAL (Gbl_OutputFile, NULL);
|
||||
EXTERN char INIT_GLOBAL (*Gbl_OutputFilename, NULL);
|
||||
EXTERN UINT64 INIT_GLOBAL (Gbl_RsdpBase, 0);
|
||||
|
||||
/* Globals required for use with ACPICA modules */
|
||||
|
||||
#ifdef _DECLARE_GLOBALS
|
||||
UINT8 AcpiGbl_IntegerByteWidth = 8;
|
||||
#endif
|
||||
|
||||
/* Action table used to defer requested options */
|
||||
|
||||
typedef struct ap_dump_action
|
||||
|
||||
@@ -76,7 +76,7 @@ ApIsValidHeader (
|
||||
|
||||
if (!AcpiUtValidNameseg (Table->Signature))
|
||||
{
|
||||
AcpiLogError ("Table signature (0x%8.8X) is invalid\n",
|
||||
fprintf (stderr, "Table signature (0x%8.8X) is invalid\n",
|
||||
*(UINT32 *) Table->Signature);
|
||||
return (FALSE);
|
||||
}
|
||||
@@ -85,7 +85,7 @@ ApIsValidHeader (
|
||||
|
||||
if (Table->Length < sizeof (ACPI_TABLE_HEADER))
|
||||
{
|
||||
AcpiLogError ("Table length (0x%8.8X) is invalid\n",
|
||||
fprintf (stderr, "Table length (0x%8.8X) is invalid\n",
|
||||
Table->Length);
|
||||
return (FALSE);
|
||||
}
|
||||
@@ -131,7 +131,7 @@ ApIsValidChecksum (
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiLogError ("%4.4s: Warning: wrong checksum in table\n",
|
||||
fprintf (stderr, "%4.4s: Warning: wrong checksum in table\n",
|
||||
Table->Signature);
|
||||
}
|
||||
|
||||
@@ -223,13 +223,13 @@ ApDumpTableBuffer (
|
||||
* Note: simplest to just always emit a 64-bit address. AcpiXtract
|
||||
* utility can handle this.
|
||||
*/
|
||||
AcpiUtFilePrintf (Gbl_OutputFile, "%4.4s @ 0x%8.8X%8.8X\n",
|
||||
fprintf (Gbl_OutputFile, "%4.4s @ 0x%8.8X%8.8X\n",
|
||||
Table->Signature, ACPI_FORMAT_UINT64 (Address));
|
||||
|
||||
AcpiUtDumpBufferToFile (Gbl_OutputFile,
|
||||
ACPI_CAST_PTR (UINT8, Table), TableLength,
|
||||
DB_BYTE_DISPLAY, 0);
|
||||
AcpiUtFilePrintf (Gbl_OutputFile, "\n");
|
||||
fprintf (Gbl_OutputFile, "\n");
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -274,13 +274,13 @@ ApDumpAllTables (
|
||||
}
|
||||
else if (i == 0)
|
||||
{
|
||||
AcpiLogError ("Could not get ACPI tables, %s\n",
|
||||
fprintf (stderr, "Could not get ACPI tables, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
return (-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiLogError ("Could not get ACPI table at index %u, %s\n",
|
||||
fprintf (stderr, "Could not get ACPI table at index %u, %s\n",
|
||||
i, AcpiFormatException (Status));
|
||||
continue;
|
||||
}
|
||||
@@ -330,7 +330,7 @@ ApDumpTableByAddress (
|
||||
ACPI_MAX64_BYTE_WIDTH, &LongAddress);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiLogError ("%s: Could not convert to a physical address\n",
|
||||
fprintf (stderr, "%s: Could not convert to a physical address\n",
|
||||
AsciiAddress);
|
||||
return (-1);
|
||||
}
|
||||
@@ -339,7 +339,7 @@ ApDumpTableByAddress (
|
||||
Status = AcpiOsGetTableByAddress (Address, &Table);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiLogError ("Could not get table at 0x%8.8X%8.8X, %s\n",
|
||||
fprintf (stderr, "Could not get table at 0x%8.8X%8.8X, %s\n",
|
||||
ACPI_FORMAT_UINT64 (Address),
|
||||
AcpiFormatException (Status));
|
||||
return (-1);
|
||||
@@ -378,7 +378,7 @@ ApDumpTableByName (
|
||||
|
||||
if (strlen (Signature) != ACPI_NAME_SIZE)
|
||||
{
|
||||
AcpiLogError (
|
||||
fprintf (stderr,
|
||||
"Invalid table signature [%s]: must be exactly 4 characters\n",
|
||||
Signature);
|
||||
return (-1);
|
||||
@@ -415,7 +415,7 @@ ApDumpTableByName (
|
||||
return (0);
|
||||
}
|
||||
|
||||
AcpiLogError (
|
||||
fprintf (stderr,
|
||||
"Could not get ACPI table with signature [%s], %s\n",
|
||||
LocalSignature, AcpiFormatException (Status));
|
||||
return (-1);
|
||||
@@ -467,7 +467,7 @@ ApDumpTableFromFile (
|
||||
|
||||
if (!AcpiUtValidNameseg (Table->Signature))
|
||||
{
|
||||
AcpiLogError (
|
||||
fprintf (stderr,
|
||||
"No valid ACPI signature was found in input file %s\n",
|
||||
Pathname);
|
||||
}
|
||||
@@ -476,7 +476,7 @@ ApDumpTableFromFile (
|
||||
|
||||
if (Table->Length > FileSize)
|
||||
{
|
||||
AcpiLogError (
|
||||
fprintf (stderr,
|
||||
"Table length (0x%X) is too large for input file (0x%X) %s\n",
|
||||
Table->Length, FileSize, Pathname);
|
||||
goto Exit;
|
||||
@@ -484,7 +484,7 @@ ApDumpTableFromFile (
|
||||
|
||||
if (Gbl_VerboseMode)
|
||||
{
|
||||
AcpiLogError (
|
||||
fprintf (stderr,
|
||||
"Input file: %s contains table [%4.4s], 0x%X (%u) bytes\n",
|
||||
Pathname, Table->Signature, FileSize, FileSize);
|
||||
}
|
||||
|
||||
@@ -42,7 +42,6 @@
|
||||
*/
|
||||
|
||||
#include "acpidump.h"
|
||||
#include "acapps.h"
|
||||
|
||||
|
||||
/* Local prototypes */
|
||||
@@ -74,7 +73,7 @@ ApIsExistingFile (
|
||||
|
||||
if (!stat (Pathname, &StatInfo))
|
||||
{
|
||||
AcpiLogError ("Target path already exists, overwrite? [y|n] ");
|
||||
fprintf (stderr, "Target path already exists, overwrite? [y|n] ");
|
||||
|
||||
if (getchar () != 'y')
|
||||
{
|
||||
@@ -116,10 +115,10 @@ ApOpenOutputFile (
|
||||
|
||||
/* Point stdout to the file */
|
||||
|
||||
File = AcpiOsOpenFile (Pathname, ACPI_FILE_WRITING);
|
||||
File = fopen (Pathname, "w");
|
||||
if (!File)
|
||||
{
|
||||
AcpiLogError ("Could not open output file: %s\n", Pathname);
|
||||
fprintf (stderr, "Could not open output file: %s\n", Pathname);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
@@ -153,7 +152,7 @@ ApWriteToBinaryFile (
|
||||
char Filename[ACPI_NAME_SIZE + 16];
|
||||
char InstanceStr [16];
|
||||
ACPI_FILE File;
|
||||
size_t Actual;
|
||||
ACPI_SIZE Actual;
|
||||
UINT32 TableLength;
|
||||
|
||||
|
||||
@@ -182,7 +181,7 @@ ApWriteToBinaryFile (
|
||||
|
||||
if (Instance > 0)
|
||||
{
|
||||
AcpiUtSnprintf (InstanceStr, sizeof (InstanceStr), "%u", Instance);
|
||||
snprintf (InstanceStr, sizeof (InstanceStr), "%u", Instance);
|
||||
strcat (Filename, InstanceStr);
|
||||
}
|
||||
|
||||
@@ -190,30 +189,29 @@ ApWriteToBinaryFile (
|
||||
|
||||
if (Gbl_VerboseMode)
|
||||
{
|
||||
AcpiLogError (
|
||||
fprintf (stderr,
|
||||
"Writing [%4.4s] to binary file: %s 0x%X (%u) bytes\n",
|
||||
Table->Signature, Filename, Table->Length, Table->Length);
|
||||
}
|
||||
|
||||
/* Open the file and dump the entire table in binary mode */
|
||||
|
||||
File = AcpiOsOpenFile (Filename,
|
||||
ACPI_FILE_WRITING | ACPI_FILE_BINARY);
|
||||
File = fopen (Filename, "wb");
|
||||
if (!File)
|
||||
{
|
||||
AcpiLogError ("Could not open output file: %s\n", Filename);
|
||||
fprintf (stderr, "Could not open output file: %s\n", Filename);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
Actual = AcpiOsWriteFile (File, Table, 1, TableLength);
|
||||
Actual = fwrite (Table, 1, TableLength, File);
|
||||
if (Actual != TableLength)
|
||||
{
|
||||
AcpiLogError ("Error writing binary output file: %s\n", Filename);
|
||||
AcpiOsCloseFile (File);
|
||||
fprintf (stderr, "Error writing binary output file: %s\n", Filename);
|
||||
fclose (File);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
AcpiOsCloseFile (File);
|
||||
fclose (File);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -239,15 +237,15 @@ ApGetTableFromFile (
|
||||
ACPI_TABLE_HEADER *Buffer = NULL;
|
||||
ACPI_FILE File;
|
||||
UINT32 FileSize;
|
||||
size_t Actual;
|
||||
ACPI_SIZE Actual;
|
||||
|
||||
|
||||
/* Must use binary mode */
|
||||
|
||||
File = AcpiOsOpenFile (Pathname, ACPI_FILE_READING | ACPI_FILE_BINARY);
|
||||
File = fopen (Pathname, "rb");
|
||||
if (!File)
|
||||
{
|
||||
AcpiLogError ("Could not open input file: %s\n", Pathname);
|
||||
fprintf (stderr, "Could not open input file: %s\n", Pathname);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@@ -256,7 +254,7 @@ ApGetTableFromFile (
|
||||
FileSize = CmGetFileSize (File);
|
||||
if (FileSize == ACPI_UINT32_MAX)
|
||||
{
|
||||
AcpiLogError (
|
||||
fprintf (stderr,
|
||||
"Could not get input file size: %s\n", Pathname);
|
||||
goto Cleanup;
|
||||
}
|
||||
@@ -266,18 +264,17 @@ ApGetTableFromFile (
|
||||
Buffer = ACPI_ALLOCATE_ZEROED (FileSize);
|
||||
if (!Buffer)
|
||||
{
|
||||
AcpiLogError (
|
||||
fprintf (stderr,
|
||||
"Could not allocate file buffer of size: %u\n", FileSize);
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
/* Read the entire file */
|
||||
|
||||
Actual = AcpiOsReadFile (File, Buffer, 1, FileSize);
|
||||
Actual = fread (Buffer, 1, FileSize, File);
|
||||
if (Actual != FileSize)
|
||||
{
|
||||
AcpiLogError (
|
||||
"Could not read input file: %s\n", Pathname);
|
||||
fprintf (stderr, "Could not read input file: %s\n", Pathname);
|
||||
ACPI_FREE (Buffer);
|
||||
Buffer = NULL;
|
||||
goto Cleanup;
|
||||
@@ -286,6 +283,6 @@ ApGetTableFromFile (
|
||||
*OutFileSize = FileSize;
|
||||
|
||||
Cleanup:
|
||||
AcpiOsCloseFile (File);
|
||||
fclose (File);
|
||||
return (Buffer);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
|
||||
#define _DECLARE_GLOBALS
|
||||
#include "acpidump.h"
|
||||
#include "acapps.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -161,7 +160,7 @@ ApInsertAction (
|
||||
CurrentAction++;
|
||||
if (CurrentAction > AP_MAX_ACTIONS)
|
||||
{
|
||||
AcpiLogError ("Too many table options (max %u)\n", AP_MAX_ACTIONS);
|
||||
fprintf (stderr, "Too many table options (max %u)\n", AP_MAX_ACTIONS);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
@@ -215,7 +214,7 @@ ApDoOptions (
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiLogError ("%s: Cannot handle this switch, please use on|off\n",
|
||||
fprintf (stderr, "%s: Cannot handle this switch, please use on|off\n",
|
||||
AcpiGbl_Optarg);
|
||||
return (-1);
|
||||
}
|
||||
@@ -241,7 +240,7 @@ ApDoOptions (
|
||||
ACPI_MAX64_BYTE_WIDTH, &Gbl_RsdpBase);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiLogError ("%s: Could not convert to a physical address\n",
|
||||
fprintf (stderr, "%s: Could not convert to a physical address\n",
|
||||
AcpiGbl_Optarg);
|
||||
return (-1);
|
||||
}
|
||||
@@ -272,7 +271,7 @@ ApDoOptions (
|
||||
case 'z': /* Verbose mode */
|
||||
|
||||
Gbl_VerboseMode = TRUE;
|
||||
AcpiLogError (ACPI_COMMON_SIGNON (AP_UTILITY_NAME));
|
||||
fprintf (stderr, ACPI_COMMON_SIGNON (AP_UTILITY_NAME));
|
||||
continue;
|
||||
|
||||
/*
|
||||
@@ -355,6 +354,7 @@ acpi_main (
|
||||
ACPI_DEBUG_INITIALIZE (); /* For debug version only */
|
||||
AcpiOsInitialize ();
|
||||
Gbl_OutputFile = ACPI_FILE_OUT;
|
||||
AcpiGbl_IntegerByteWidth = 8;
|
||||
|
||||
/* Process command line options */
|
||||
|
||||
@@ -397,7 +397,7 @@ acpi_main (
|
||||
|
||||
default:
|
||||
|
||||
AcpiLogError ("Internal error, invalid action: 0x%X\n",
|
||||
fprintf (stderr, "Internal error, invalid action: 0x%X\n",
|
||||
Action->ToBeDone);
|
||||
return (-1);
|
||||
}
|
||||
@@ -415,11 +415,11 @@ acpi_main (
|
||||
/* Summary for the output file */
|
||||
|
||||
FileSize = CmGetFileSize (Gbl_OutputFile);
|
||||
AcpiLogError ("Output file %s contains 0x%X (%u) bytes\n\n",
|
||||
fprintf (stderr, "Output file %s contains 0x%X (%u) bytes\n\n",
|
||||
Gbl_OutputFilename, FileSize, FileSize);
|
||||
}
|
||||
|
||||
AcpiOsCloseFile (Gbl_OutputFile);
|
||||
fclose (Gbl_OutputFile);
|
||||
}
|
||||
|
||||
return (Status);
|
||||
|
||||
@@ -59,11 +59,6 @@
|
||||
#include "amlresrc.h"
|
||||
#include "acapps.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
|
||||
|
||||
/*
|
||||
* Debug Regions
|
||||
|
||||
@@ -86,7 +86,8 @@ AeOpenInitializationFile (
|
||||
InitFile = fopen (Filename, "r");
|
||||
if (!InitFile)
|
||||
{
|
||||
perror ("Could not open initialization file");
|
||||
fprintf (stderr,
|
||||
"Could not open initialization file: %s\n", Filename);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,6 @@
|
||||
*/
|
||||
|
||||
#include "aecommon.h"
|
||||
#include "errno.h"
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("aemain")
|
||||
@@ -59,7 +58,6 @@
|
||||
* Windows: The setargv.obj module must be linked in to automatically
|
||||
* expand wildcards.
|
||||
*/
|
||||
extern BOOLEAN AcpiGbl_DebugTimeout;
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
@@ -68,7 +66,7 @@ AeDoOptions (
|
||||
int argc,
|
||||
char **argv);
|
||||
|
||||
static ACPI_STATUS
|
||||
static void
|
||||
AcpiDbRunBatchMode (
|
||||
void);
|
||||
|
||||
@@ -653,20 +651,23 @@ main (
|
||||
case AE_MODE_BATCH_SINGLE:
|
||||
|
||||
AcpiDbExecute (BatchBuffer, NULL, NULL, EX_NO_SINGLE_STEP);
|
||||
|
||||
/* Shut down the debugger */
|
||||
|
||||
AcpiTerminateDebugger ();
|
||||
Status = AcpiTerminate ();
|
||||
break;
|
||||
}
|
||||
|
||||
(void) AcpiOsTerminate ();
|
||||
/* Shut down the debugger and ACPICA */
|
||||
|
||||
#if 0
|
||||
|
||||
/* Temporarily removed */
|
||||
AcpiTerminateDebugger ();
|
||||
Status = AcpiTerminate ();
|
||||
#endif
|
||||
|
||||
Status = AcpiOsTerminate ();
|
||||
return (0);
|
||||
|
||||
|
||||
ErrorExit:
|
||||
(void) AcpiOsTerminate ();
|
||||
return (ExitCode);
|
||||
}
|
||||
|
||||
@@ -679,18 +680,17 @@ main (
|
||||
* to be executed.
|
||||
* Use only commas to separate elements of
|
||||
* particular command.
|
||||
* RETURN: Status
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: For each command of list separated by ';' prepare the command
|
||||
* buffer and pass it to AcpiDbCommandDispatch.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
static ACPI_STATUS
|
||||
static void
|
||||
AcpiDbRunBatchMode (
|
||||
void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
char *Ptr = BatchBuffer;
|
||||
char *Cmd = Ptr;
|
||||
UINT8 Run = 0;
|
||||
@@ -721,10 +721,4 @@ AcpiDbRunBatchMode (
|
||||
Cmd = Ptr;
|
||||
}
|
||||
}
|
||||
|
||||
/* Shut down the debugger */
|
||||
|
||||
AcpiTerminateDebugger ();
|
||||
Status = AcpiTerminate ();
|
||||
return (Status);
|
||||
}
|
||||
|
||||
@@ -49,17 +49,11 @@
|
||||
#include "accommon.h"
|
||||
#include "acapps.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#ifdef WIN32
|
||||
#include <io.h>
|
||||
#include <direct.h>
|
||||
#endif
|
||||
#include <errno.h>
|
||||
|
||||
|
||||
typedef enum
|
||||
@@ -70,9 +64,11 @@ typedef enum
|
||||
AH_DECODE_PREDEFINED_NAME,
|
||||
AH_DECODE_AML,
|
||||
AH_DECODE_AML_OPCODE,
|
||||
AH_DISPLAY_DEVICE_IDS,
|
||||
AH_DECODE_EXCEPTION,
|
||||
AH_DECODE_AML_TYPE,
|
||||
AH_DECODE_ASL_AML,
|
||||
AH_DECODE_EXCEPTION,
|
||||
|
||||
AH_DISPLAY_DEVICE_IDS,
|
||||
AH_DISPLAY_UUIDS,
|
||||
AH_DISPLAY_TABLES,
|
||||
AH_DISPLAY_DIRECTIVES
|
||||
@@ -96,6 +92,13 @@ typedef struct ah_aml_opcode
|
||||
|
||||
} AH_AML_OPCODE;
|
||||
|
||||
typedef struct ah_aml_type
|
||||
{
|
||||
char *Name;
|
||||
char *Description;
|
||||
|
||||
} AH_AML_TYPE;
|
||||
|
||||
typedef struct ah_asl_operator
|
||||
{
|
||||
char *Name;
|
||||
@@ -120,6 +123,7 @@ typedef struct ah_directive_info
|
||||
} AH_DIRECTIVE_INFO;
|
||||
|
||||
extern const AH_AML_OPCODE AmlOpcodeInfo[];
|
||||
extern const AH_AML_TYPE AmlTypesInfo[];
|
||||
extern const AH_ASL_OPERATOR AslOperatorInfo[];
|
||||
extern const AH_ASL_KEYWORD AslKeywordInfo[];
|
||||
extern const AH_UUID AcpiUuids[];
|
||||
@@ -155,6 +159,10 @@ void
|
||||
AhFindAslKeywords (
|
||||
char *Name);
|
||||
|
||||
void
|
||||
AhFindAmlTypes (
|
||||
char *Name);
|
||||
|
||||
void
|
||||
AhDisplayDeviceIds (
|
||||
char *Name);
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
|
||||
#include "acpihelp.h"
|
||||
|
||||
|
||||
/*
|
||||
* AML opcodes with related syntax and grammar information.
|
||||
* This table was extracted from the ACPI specification.
|
||||
|
||||
@@ -80,6 +80,10 @@ static void
|
||||
AhDisplayAmlOpcode (
|
||||
const AH_AML_OPCODE *Op);
|
||||
|
||||
static void
|
||||
AhDisplayAmlType (
|
||||
const AH_AML_TYPE *Op);
|
||||
|
||||
static void
|
||||
AhDisplayAslOperator (
|
||||
const AH_ASL_OPERATOR *Op);
|
||||
@@ -152,7 +156,7 @@ AhFindPredefinedNames (
|
||||
char Name[9];
|
||||
|
||||
|
||||
if (!NamePrefix)
|
||||
if (!NamePrefix || (NamePrefix[0] == '*'))
|
||||
{
|
||||
Found = AhDisplayPredefinedName (NULL, 0);
|
||||
return;
|
||||
@@ -356,7 +360,7 @@ AhFindAmlOpcode (
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!Name)
|
||||
if (!Name || (Name[0] == '*'))
|
||||
{
|
||||
AhDisplayAmlOpcode (Op);
|
||||
Found = TRUE;
|
||||
@@ -501,6 +505,122 @@ AhDisplayAmlOpcode (
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AhFindAmlTypes (entry point for AML grammar keyword search)
|
||||
*
|
||||
* PARAMETERS: Name - Name or prefix for an AML grammar element.
|
||||
* NULL means "find all"
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Find all AML grammar keywords that match the input Name or name
|
||||
* prefix.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AhFindAmlTypes (
|
||||
char *Name)
|
||||
{
|
||||
const AH_AML_TYPE *Keyword;
|
||||
BOOLEAN Found = FALSE;
|
||||
|
||||
|
||||
AcpiUtStrupr (Name);
|
||||
|
||||
for (Keyword = AmlTypesInfo; Keyword->Name; Keyword++)
|
||||
{
|
||||
if (!Name)
|
||||
{
|
||||
printf (" %s\n", Keyword->Name);
|
||||
Found = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (*Name == '*')
|
||||
{
|
||||
AhDisplayAmlType (Keyword);
|
||||
Found = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Upper case the operator name before substring compare */
|
||||
|
||||
strcpy (Gbl_Buffer, Keyword->Name);
|
||||
AcpiUtStrupr (Gbl_Buffer);
|
||||
|
||||
if (strstr (Gbl_Buffer, Name) == Gbl_Buffer)
|
||||
{
|
||||
AhDisplayAmlType (Keyword);
|
||||
Found = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Found)
|
||||
{
|
||||
printf ("%s, no matching AML grammar type\n", Name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AhDisplayAmlType
|
||||
*
|
||||
* PARAMETERS: Op - Pointer to AML grammar info
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Format and display info for an AML grammar element.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
static void
|
||||
AhDisplayAmlType (
|
||||
const AH_AML_TYPE *Op)
|
||||
{
|
||||
char *Description;
|
||||
|
||||
|
||||
Description = Op->Description;
|
||||
printf ("%4s", " "); /* Primary indent */
|
||||
|
||||
/* Emit the entire description string */
|
||||
|
||||
while (*Description)
|
||||
{
|
||||
/* Description can be multiple lines, must indent each */
|
||||
|
||||
while (*Description != '\n')
|
||||
{
|
||||
printf ("%c", *Description);
|
||||
Description++;
|
||||
}
|
||||
|
||||
printf ("\n");
|
||||
Description++;
|
||||
|
||||
/* Do indent */
|
||||
|
||||
if (*Description)
|
||||
{
|
||||
printf ("%8s", " "); /* Secondary indent */
|
||||
|
||||
/* Index extra for a comment */
|
||||
|
||||
if ((Description[0] == '/') &&
|
||||
(Description[1] == '/'))
|
||||
{
|
||||
printf ("%4s", " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AhFindAslKeywords (entry point for ASL keyword search)
|
||||
@@ -527,7 +647,7 @@ AhFindAslKeywords (
|
||||
|
||||
for (Keyword = AslKeywordInfo; Keyword->Name; Keyword++)
|
||||
{
|
||||
if (!Name)
|
||||
if (!Name || (Name[0] == '*'))
|
||||
{
|
||||
AhDisplayAslKeyword (Keyword);
|
||||
Found = TRUE;
|
||||
@@ -644,7 +764,7 @@ AhFindAslOperators (
|
||||
|
||||
for (Operator = AslOperatorInfo; Operator->Name; Operator++)
|
||||
{
|
||||
if (!Name)
|
||||
if (!Name || (Name[0] == '*'))
|
||||
{
|
||||
AhDisplayAslOperator (Operator);
|
||||
MatchCount++;
|
||||
@@ -859,7 +979,7 @@ AhDisplayDeviceIds (
|
||||
|
||||
/* Null input name indicates "display all" */
|
||||
|
||||
if (!Name)
|
||||
if (!Name || (Name[0] == '*'))
|
||||
{
|
||||
printf ("ACPI and PNP Device/Hardware IDs:\n\n");
|
||||
for (Info = AslDeviceIds; Info->Name; Info++)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user