1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-24 11:29:10 +00:00

Import ACPICA 20110922.

This commit is contained in:
Jung-uk Kim 2011-09-26 21:40:21 +00:00
parent f885636060
commit 33c583d0c7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor-sys/acpica/dist/; revision=225768
svn path=/vendor-sys/acpica/20110922/; revision=225769; tag=vendor/acpica/20110922
56 changed files with 1687 additions and 3303 deletions

View File

@ -1,3 +1,80 @@
----------------------------------------
22 September 2011. Summary of changes for version 20110922:
This release is available at www.acpica.org/downloads
0) ACPI 5.0 News:
Support for ACPI 5.0 in ACPICA has been underway for several months and will
be released at the same time that ACPI 5.0 is officially released.
The ACPI 5.0 specification is on track for release in the next few months.
1) ACPICA Core Subsystem:
Fixed a problem where the maximum sleep time for the Sleep() operator was
intended to be limited to two seconds, but was inadvertently limited to 20
seconds instead.
Linux and Unix makefiles: Added header file dependencies to ensure correct
generation of ACPICA core code and utilities. Also simplified the makefiles
considerably through the use of the vpath variable to specify search paths.
ACPICA BZ 924.
2) iASL Compiler/Disassembler and Tools:
iASL: Implemented support to check the access length for all fields created to
access named Resource Descriptor fields. For example, if a resource field is
defined to be two bits, a warning is issued if a CreateXxxxField() is used
with an incorrect bit length. This is implemented for all current resource
descriptor names. ACPICA BZ 930.
Disassembler: Fixed a byte ordering problem with the output of 24-bit and 56-
bit integers.
iASL: Fixed a couple of issues associated with variable-length package
objects. 1) properly handle constants like One, Ones, Zero -- do not make a
VAR_PACKAGE when these are used as a package length. 2) Allow the VAR_PACKAGE
opcode (in addition to PACKAGE) when validating object types for predefined
names.
iASL: Emit statistics for all output files (instead of just the ASL input and
AML output). Includes listings, hex files, etc.
iASL: Added -G option to the table compiler to allow the compilation of custom
ACPI tables. The only part of a table that is required is the standard 36-byte
ACPI header.
AcpiXtract: Ported to the standard ACPICA environment (with ACPICA headers),
which also adds correct 64-bit support. Also, now all output filenames are
completely lower case.
AcpiExec: Ignore any non-AML tables (tables other than DSDT or SSDT) when
loading table files. A warning is issued for any such tables. The only
exception is an FADT. This also fixes a possible fault when attempting to load
non-AML tables. ACPICA BZ 932.
AcpiHelp: Added the AccessAs and Offset operators. Fixed a problem where a
missing table terminator could cause a fault when using the -p option.
AcpiSrc: Fixed a possible divide-by-zero fault when generating file
statistics.
3) 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.
Previous Release (VC 9.0):
Non-Debug Version: 90.2K Code, 23.9K Data, 114.1K Total
Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
Current Release (VC 9.0):
Non-Debug Version: 90.2K Code, 23.9K Data, 114.1K Total
Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
---------------------------------------- ----------------------------------------
23 June 2011. Summary of changes for version 20110623: 23 June 2011. Summary of changes for version 20110623:

View File

@ -750,44 +750,25 @@ AcpiDmDumpTable (
AcpiOsPrintf ("%1.1X\n", (*Target >> 2) & 0x03); AcpiOsPrintf ("%1.1X\n", (*Target >> 2) & 0x03);
break; break;
/* Standard Data Types */ /* Integer Data Types */
case ACPI_DMT_UINT8: case ACPI_DMT_UINT8:
AcpiOsPrintf ("%2.2X\n", *Target);
break;
case ACPI_DMT_UINT16: case ACPI_DMT_UINT16:
AcpiOsPrintf ("%4.4X\n", ACPI_GET16 (Target));
break;
case ACPI_DMT_UINT24: case ACPI_DMT_UINT24:
AcpiOsPrintf ("%2.2X%2.2X%2.2X\n",
*Target, *(Target + 1), *(Target + 2));
break;
case ACPI_DMT_UINT32: case ACPI_DMT_UINT32:
AcpiOsPrintf ("%8.8X\n", ACPI_GET32 (Target));
break;
case ACPI_DMT_UINT56: case ACPI_DMT_UINT56:
case ACPI_DMT_UINT64:
for (Temp8 = 0; Temp8 < 7; Temp8++) /*
* Dump bytes - high byte first, low byte last.
* Note: All ACPI tables are little-endian.
*/
for (Temp8 = (UINT8) ByteLength; Temp8 > 0; Temp8--)
{ {
AcpiOsPrintf ("%2.2X", Target[Temp8]); AcpiOsPrintf ("%2.2X", Target[Temp8 - 1]);
} }
AcpiOsPrintf ("\n"); AcpiOsPrintf ("\n");
break; break;
case ACPI_DMT_UINT64:
AcpiOsPrintf ("%8.8X%8.8X\n",
ACPI_FORMAT_UINT64 (ACPI_GET64 (Target)));
break;
case ACPI_DMT_BUF7: case ACPI_DMT_BUF7:
case ACPI_DMT_BUF16: case ACPI_DMT_BUF16:
case ACPI_DMT_BUF128: case ACPI_DMT_BUF128:

View File

@ -19,50 +19,57 @@ PROG = iasl
HOST = _LINUX HOST = _LINUX
NOMAN = YES NOMAN = YES
COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $? COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $<
ACPICA_COMPONENTS = ACPICA_COMPONENTS =
ACPICA_SRC = .. ACPICA_SRC = ..
ACPICA_COMMON = $(ACPICA_SRC)/common ACPICA_INCLUDE = $(ACPICA_SRC)/include
ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS) ACPICA_COMMON = $(ACPICA_SRC)/common
ACPICA_TOOLS = $(ACPICA_SRC)/tools ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS)
ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers ACPICA_TOOLS = $(ACPICA_SRC)/tools
ASL_COMPILER = $(ACPICA_SRC)/compiler ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers
INSTALLDIR = /usr/bin ACPICA_DEBUGGER = $(ACPICA_CORE)/debugger
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR) ACPICA_DISASSEMBLER = $(ACPICA_CORE)/disassembler
ACPICA_DISPATCHER = $(ACPICA_CORE)/dispatcher
ACPICA_EXECUTER = $(ACPICA_CORE)/executer
ACPICA_NAMESPACE = $(ACPICA_CORE)/namespace
ACPICA_PARSER = $(ACPICA_CORE)/parser
ACPICA_TABLES = $(ACPICA_CORE)/tables
ACPICA_UTILITIES = $(ACPICA_CORE)/utilities
ASL_COMPILER = $(ACPICA_SRC)/compiler
INSTALLDIR = /usr/bin
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR)
CFLAGS+= \ ACPICA_HEADERS = \
-D$(HOST) \ $(wildcard $(ACPICA_INCLUDE)/*.h) \
-D_GNU_SOURCE \ $(wildcard $(ACPICA_INCLUDE)/platform/*.h)
-DACPI_ASL_COMPILER \
-I$(ACPICA_SRC)/include \
-I$(ASL_COMPILER)
CWARNINGFLAGS = \
-ansi \
-Wall \
-Wbad-function-cast \
-Wdeclaration-after-statement \
-Werror \
-Wformat=2 \
-Wmissing-declarations \
-Wmissing-prototypes \
-Wstrict-aliasing=0 \
-Wstrict-prototypes \
-Wswitch-default \
-Wpointer-arith \
-Wundef
# #
# Bison/Flex configuration # Search paths for source files
# #
YACC= bison vpath %.c \
YFLAGS+= -v -d -y $(ASL_COMPILER) \
$(ACPICA_DEBUGGER) \
$(ACPICA_DISASSEMBLER) \
$(ACPICA_DISPATCHER) \
$(ACPICA_EXECUTER) \
$(ACPICA_NAMESPACE) \
$(ACPICA_PARSER) \
$(ACPICA_TABLES) \
$(ACPICA_UTILITIES) \
$(ACPICA_COMMON) \
$(ACPICA_OSL)
LEX= flex HEADERS = \
LFLAGS+= -i -s $(wildcard $(ASL_COMPILER)/*.h) \
aslcompiler.y.h \
dtparser.y.h
OBJS = \ OBJECTS = \
aslcompilerlex.o \
aslcompilerparse.o \
dtparserlex.o \
dtparserparse.o \
adfile.o \ adfile.o \
adisasm.o \ adisasm.o \
adwalk.o \ adwalk.o \
@ -70,8 +77,6 @@ OBJS = \
aslbtypes.o \ aslbtypes.o \
aslcodegen.o \ aslcodegen.o \
aslcompile.o \ aslcompile.o \
aslcompilerlex.o \
aslcompilerparse.o \
aslerror.o \ aslerror.o \
aslfiles.o \ aslfiles.o \
aslfold.o \ aslfold.o \
@ -104,8 +109,6 @@ OBJS = \
dtexpress.o \ dtexpress.o \
dtfield.o \ dtfield.o \
dtio.o \ dtio.o \
dtparserlex.o \
dtparserparse.o \
dtsubtable.o \ dtsubtable.o \
dttable.o \ dttable.o \
dttemplate.o \ dttemplate.o \
@ -205,18 +208,67 @@ INTERMEDIATES = \
dtparserparse.c dtparserparse.c
MISC = \ MISC = \
aslcompilerparse.h \
aslcompiler.y.h \ aslcompiler.y.h \
aslcompilerparse.output \ aslcompilerparse.output \
dtparserparse.h \
dtparser.y.h \ dtparser.y.h \
dtparserparse.output dtparserparse.output
CFLAGS+= \
-D$(HOST) \
-D_GNU_SOURCE \
-DACPI_ASL_COMPILER \
-I$(ACPICA_INCLUDE) \
-I$(ASL_COMPILER)
CWARNINGFLAGS = \
-ansi \
-Wall \
-Wbad-function-cast \
-Wdeclaration-after-statement \
-Werror \
-Wformat=2 \
-Wmissing-declarations \
-Wmissing-prototypes \
-Wstrict-aliasing=0 \
-Wstrict-prototypes \
-Wswitch-default \
-Wpointer-arith \
-Wundef
#
# gcc 4+ flags
#
CWARNINGFLAGS += \
-Waddress \
-Waggregate-return \
-Wchar-subscripts \
-Wempty-body \
-Wlogical-op \
-Wmissing-declarations \
-Wmissing-field-initializers \
-Wmissing-parameter-type \
-Wnested-externs \
-Wold-style-declaration \
-Wold-style-definition \
-Wredundant-decls \
-Wtype-limits
#
# Bison/Flex configuration
#
YACC= bison
YFLAGS+= -v -d -y
LEX= flex
LFLAGS+= -i -s
# #
# Root rule # Root rule
# #
$(PROG) : $(INTERMEDIATES) $(OBJS) $(PROG) : $(INTERMEDIATES) $(MISC) $(OBJECTS)
$(CC) $(OBJS) $(LDFLAGS) -o $(PROG) $(CC) $(OBJECTS) $(LDFLAGS) -o $(PROG)
# #
# Parser and Lexer - intermediate C files # Parser and Lexer - intermediate C files
@ -224,16 +276,24 @@ $(PROG) : $(INTERMEDIATES) $(OBJS)
aslcompilerlex.c : $(ASL_COMPILER)/aslcompiler.l aslcompilerlex.c : $(ASL_COMPILER)/aslcompiler.l
${LEX} ${LFLAGS} -PAslCompiler -o$@ $? ${LEX} ${LFLAGS} -PAslCompiler -o$@ $?
aslcompilerparse.c : $(ASL_COMPILER)/aslcompiler.y aslcompilerparse.c aslcompilerparse.h : $(ASL_COMPILER)/aslcompiler.y
${YACC} ${YFLAGS} -pAslCompiler -o$@ $? ${YACC} ${YFLAGS} -pAslCompiler -o$@ $?
@mv -f aslcompilerparse.h aslcompiler.y.h
dtparserlex.c : $(ASL_COMPILER)/dtparser.l dtparserlex.c : $(ASL_COMPILER)/dtparser.l
${LEX} ${LFLAGS} -PDtParser -o$@ $? ${LEX} ${LFLAGS} -PDtParser -o$@ $?
dtparserparse.c : $(ASL_COMPILER)/dtparser.y dtparserparse.c dtparserparse.h : $(ASL_COMPILER)/dtparser.y
${YACC} ${YFLAGS} -pDtParser -o$@ $? ${YACC} ${YFLAGS} -pDtParser -o$@ $?
@mv -f dtparserparse.h dtparser.y.h
# Rename headers produced by bison/yacc
dtparser.y.h: dtparserparse.h
@echo Copy intermediate file:
@cp -f -v dtparserparse.h dtparser.y.h
aslcompiler.y.h : aslcompilerparse.h
@echo Copy intermediate file:
@cp -f -v aslcompilerparse.h aslcompiler.y.h
# #
@ -255,418 +315,11 @@ dtparserparse.o : dtparserparse.c
$(CC) -c $(CFLAGS) -Wall -Werror -Wstrict-aliasing=0 -o$@ $? $(CC) -c $(CFLAGS) -Wall -Werror -Wstrict-aliasing=0 -o$@ $?
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# Compiler source
#
aslanalyze.o : $(ASL_COMPILER)/aslanalyze.c
$(COMPILE) $(COMPILE)
aslbtypes.o : $(ASL_COMPILER)/aslbtypes.c
$(COMPILE)
aslcodegen.o : $(ASL_COMPILER)/aslcodegen.c
$(COMPILE)
aslcompile.o : $(ASL_COMPILER)/aslcompile.c
$(COMPILE)
aslerror.o : $(ASL_COMPILER)/aslerror.c
$(COMPILE)
aslfiles.o : $(ASL_COMPILER)/aslfiles.c
$(COMPILE)
aslfold.o : $(ASL_COMPILER)/aslfold.c
$(COMPILE)
asllength.o : $(ASL_COMPILER)/asllength.c
$(COMPILE)
asllisting.o : $(ASL_COMPILER)/asllisting.c
$(COMPILE)
aslload.o : $(ASL_COMPILER)/aslload.c
$(COMPILE)
asllookup.o : $(ASL_COMPILER)/asllookup.c
$(COMPILE)
aslmain.o : $(ASL_COMPILER)/aslmain.c
$(COMPILE)
aslmap.o : $(ASL_COMPILER)/aslmap.c
$(COMPILE)
aslopcodes.o : $(ASL_COMPILER)/aslopcodes.c
$(COMPILE)
asloperands.o : $(ASL_COMPILER)/asloperands.c
$(COMPILE)
aslopt.o : $(ASL_COMPILER)/aslopt.c
$(COMPILE)
aslpredef.o : $(ASL_COMPILER)/aslpredef.c
$(COMPILE)
aslresource.o : $(ASL_COMPILER)/aslresource.c
$(COMPILE)
aslrestype1.o : $(ASL_COMPILER)/aslrestype1.c
$(COMPILE)
aslrestype1i.o : $(ASL_COMPILER)/aslrestype1i.c
$(COMPILE)
aslrestype2.o : $(ASL_COMPILER)/aslrestype2.c
$(COMPILE)
aslrestype2d.o : $(ASL_COMPILER)/aslrestype2d.c
$(COMPILE)
aslrestype2e.o : $(ASL_COMPILER)/aslrestype2e.c
$(COMPILE)
aslrestype2q.o : $(ASL_COMPILER)/aslrestype2q.c
$(COMPILE)
aslrestype2w.o : $(ASL_COMPILER)/aslrestype2w.c
$(COMPILE)
aslstartup.o : $(ASL_COMPILER)/aslstartup.c
$(COMPILE)
aslstubs.o : $(ASL_COMPILER)/aslstubs.c
$(COMPILE)
asltransform.o : $(ASL_COMPILER)/asltransform.c
$(COMPILE)
asltree.o : $(ASL_COMPILER)/asltree.c
$(COMPILE)
aslutils.o : $(ASL_COMPILER)/aslutils.c
$(COMPILE)
asluuid.o : $(ASL_COMPILER)/asluuid.c
$(COMPILE)
aslwalks.o : $(ASL_COMPILER)/aslwalks.c
$(COMPILE)
#
# Data Table Compiler
#
dtcompile.o : $(ASL_COMPILER)/dtcompile.c
$(COMPILE)
dtexpress.o : $(ASL_COMPILER)/dtexpress.c
$(COMPILE)
dtfield.o : $(ASL_COMPILER)/dtfield.c
$(COMPILE)
dtio.o : $(ASL_COMPILER)/dtio.c
$(COMPILE)
dtsubtable.o : $(ASL_COMPILER)/dtsubtable.c
$(COMPILE)
dttable.o : $(ASL_COMPILER)/dttable.c
$(COMPILE)
dttemplate.o : $(ASL_COMPILER)/dttemplate.c
$(COMPILE)
dtutils.o : $(ASL_COMPILER)/dtutils.c
$(COMPILE)
#
# ACPICA core source - common
#
adfile.o : $(ACPICA_COMMON)/adfile.c
$(COMPILE)
adisasm.o : $(ACPICA_COMMON)/adisasm.c
$(COMPILE)
adwalk.o : $(ACPICA_COMMON)/adwalk.c
$(COMPILE)
dmextern.o : $(ACPICA_COMMON)/dmextern.c
$(COMPILE)
dmrestag.o : $(ACPICA_COMMON)/dmrestag.c
$(COMPILE)
dmtable.o : $(ACPICA_COMMON)/dmtable.c
$(COMPILE)
dmtbdump.o : $(ACPICA_COMMON)/dmtbdump.c
$(COMPILE)
dmtbinfo.o : $(ACPICA_COMMON)/dmtbinfo.c
$(COMPILE)
getopt.o : $(ACPICA_COMMON)/getopt.c
$(COMPILE)
#
# ACPICA core source
#
dbfileio.o : $(ACPICA_CORE)/debugger/dbfileio.c
$(COMPILE)
dmbuffer.o : $(ACPICA_CORE)/disassembler/dmbuffer.c
$(COMPILE)
dmnames.o : $(ACPICA_CORE)/disassembler/dmnames.c
$(COMPILE)
dmobject.o : $(ACPICA_CORE)/disassembler/dmobject.c
$(COMPILE)
dmopcode.o : $(ACPICA_CORE)/disassembler/dmopcode.c
$(COMPILE)
dmresrc.o : $(ACPICA_CORE)/disassembler/dmresrc.c
$(COMPILE)
dmresrcl.o : $(ACPICA_CORE)/disassembler/dmresrcl.c
$(COMPILE)
dmresrcs.o : $(ACPICA_CORE)/disassembler/dmresrcs.c
$(COMPILE)
dmutils.o : $(ACPICA_CORE)/disassembler/dmutils.c
$(COMPILE)
dmwalk.o : $(ACPICA_CORE)/disassembler/dmwalk.c
$(COMPILE)
dsargs.o : $(ACPICA_CORE)/dispatcher/dsargs.c
$(COMPILE)
dscontrol.o : $(ACPICA_CORE)/dispatcher/dscontrol.c
$(COMPILE)
dsfield.o : $(ACPICA_CORE)/dispatcher/dsfield.c
$(COMPILE)
dsobject.o : $(ACPICA_CORE)/dispatcher/dsobject.c
$(COMPILE)
dsopcode.o : $(ACPICA_CORE)/dispatcher/dsopcode.c
$(COMPILE)
dsutils.o : $(ACPICA_CORE)/dispatcher/dsutils.c
$(COMPILE)
dswexec.o : $(ACPICA_CORE)/dispatcher/dswexec.c
$(COMPILE)
dswload.o : $(ACPICA_CORE)/dispatcher/dswload.c
$(COMPILE)
dswload2.o : $(ACPICA_CORE)/dispatcher/dswload2.c
$(COMPILE)
dswscope.o : $(ACPICA_CORE)/dispatcher/dswscope.c
$(COMPILE)
dswstate.o : $(ACPICA_CORE)/dispatcher/dswstate.c
$(COMPILE)
exconvrt.o : $(ACPICA_CORE)/executer/exconvrt.c
$(COMPILE)
excreate.o : $(ACPICA_CORE)/executer/excreate.c
$(COMPILE)
exdump.o : $(ACPICA_CORE)/executer/exdump.c
$(COMPILE)
exmisc.o : $(ACPICA_CORE)/executer/exmisc.c
$(COMPILE)
exmutex.o : $(ACPICA_CORE)/executer/exmutex.c
$(COMPILE)
exnames.o : $(ACPICA_CORE)/executer/exnames.c
$(COMPILE)
exoparg1.o : $(ACPICA_CORE)/executer/exoparg1.c
$(COMPILE)
exoparg2.o : $(ACPICA_CORE)/executer/exoparg2.c
$(COMPILE)
exoparg3.o : $(ACPICA_CORE)/executer/exoparg3.c
$(COMPILE)
exoparg6.o : $(ACPICA_CORE)/executer/exoparg6.c
$(COMPILE)
exprep.o : $(ACPICA_CORE)/executer/exprep.c
$(COMPILE)
exregion.o : $(ACPICA_CORE)/executer/exregion.c
$(COMPILE)
exresnte.o : $(ACPICA_CORE)/executer/exresnte.c
$(COMPILE)
exresolv.o : $(ACPICA_CORE)/executer/exresolv.c
$(COMPILE)
exresop.o : $(ACPICA_CORE)/executer/exresop.c
$(COMPILE)
exstore.o : $(ACPICA_CORE)/executer/exstore.c
$(COMPILE)
exstoren.o : $(ACPICA_CORE)/executer/exstoren.c
$(COMPILE)
exstorob.o : $(ACPICA_CORE)/executer/exstorob.c
$(COMPILE)
exsystem.o : $(ACPICA_CORE)/executer/exsystem.c
$(COMPILE)
exutils.o : $(ACPICA_CORE)/executer/exutils.c
$(COMPILE)
nsaccess.o : $(ACPICA_CORE)/namespace/nsaccess.c
$(COMPILE)
nsalloc.o : $(ACPICA_CORE)/namespace/nsalloc.c
$(COMPILE)
nsdump.o : $(ACPICA_CORE)/namespace/nsdump.c
$(COMPILE)
nsnames.o : $(ACPICA_CORE)/namespace/nsnames.c
$(COMPILE)
nsobject.o : $(ACPICA_CORE)/namespace/nsobject.c
$(COMPILE)
nsparse.o : $(ACPICA_CORE)/namespace/nsparse.c
$(COMPILE)
nssearch.o : $(ACPICA_CORE)/namespace/nssearch.c
$(COMPILE)
nsutils.o : $(ACPICA_CORE)/namespace/nsutils.c
$(COMPILE)
nswalk.o : $(ACPICA_CORE)/namespace/nswalk.c
$(COMPILE)
nsxfobj.o : $(ACPICA_CORE)/namespace/nsxfobj.c
$(COMPILE)
psargs.o : $(ACPICA_CORE)/parser/psargs.c
$(COMPILE)
psloop.o : $(ACPICA_CORE)/parser/psloop.c
$(COMPILE)
psopcode.o : $(ACPICA_CORE)/parser/psopcode.c
$(COMPILE)
psparse.o : $(ACPICA_CORE)/parser/psparse.c
$(COMPILE)
psscope.o : $(ACPICA_CORE)/parser/psscope.c
$(COMPILE)
pstree.o : $(ACPICA_CORE)/parser/pstree.c
$(COMPILE)
psutils.o : $(ACPICA_CORE)/parser/psutils.c
$(COMPILE)
pswalk.o : $(ACPICA_CORE)/parser/pswalk.c
$(COMPILE)
tbfadt.o : $(ACPICA_CORE)/tables/tbfadt.c
$(COMPILE)
tbinstal.o : $(ACPICA_CORE)/tables/tbinstal.c
$(COMPILE)
tbutils.o : $(ACPICA_CORE)/tables/tbutils.c
$(COMPILE)
tbxface.o : $(ACPICA_CORE)/tables/tbxface.c
$(COMPILE)
utalloc.o : $(ACPICA_CORE)/utilities/utalloc.c
$(COMPILE)
utcache.o : $(ACPICA_CORE)/utilities/utcache.c
$(COMPILE)
utcopy.o : $(ACPICA_CORE)/utilities/utcopy.c
$(COMPILE)
utdebug.o : $(ACPICA_CORE)/utilities/utdebug.c
$(COMPILE)
utdecode.o : $(ACPICA_CORE)/utilities/utdecode.c
$(COMPILE)
utdelete.o : $(ACPICA_CORE)/utilities/utdelete.c
$(COMPILE)
utglobal.o : $(ACPICA_CORE)/utilities/utglobal.c
$(COMPILE)
utinit.o : $(ACPICA_CORE)/utilities/utinit.c
$(COMPILE)
utlock.o : $(ACPICA_CORE)/utilities/utlock.c
$(COMPILE)
utmath.o : $(ACPICA_CORE)/utilities/utmath.c
$(COMPILE)
utmisc.o : $(ACPICA_CORE)/utilities/utmisc.c
$(COMPILE)
utmutex.o : $(ACPICA_CORE)/utilities/utmutex.c
$(COMPILE)
utobject.o : $(ACPICA_CORE)/utilities/utobject.c
$(COMPILE)
utresrc.o : $(ACPICA_CORE)/utilities/utresrc.c
$(COMPILE)
utstate.o : $(ACPICA_CORE)/utilities/utstate.c
$(COMPILE)
utxferror.o : $(ACPICA_CORE)/utilities/utxferror.c
$(COMPILE)
utxface.o : $(ACPICA_CORE)/utilities/utxface.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixxf.o : $(ACPICA_OSL)/osunixxf.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) $(INTERMEDIATES) $(MISC) rm -f $(PROG) $(PROG).exe $(OBJECTS) $(INTERMEDIATES) $(MISC)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -472,6 +472,8 @@ CmDoCompile (
if (!RootNode) if (!RootNode)
{ {
AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL,
NULL, "- Could not resolve parse tree root node");
CmCleanupAndExit (); CmCleanupAndExit ();
return -1; return -1;
} }

View File

@ -829,17 +829,12 @@ RsAllocateResourceNode (
UINT32 Size); UINT32 Size);
void void
RsCreateBitField ( RsCreateResourceField (
ACPI_PARSE_OBJECT *Op, ACPI_PARSE_OBJECT *Op,
char *Name, char *Name,
UINT32 ByteOffset, UINT32 ByteOffset,
UINT32 BitOffset); UINT32 BitOffset,
UINT32 BitLength);
void
RsCreateByteField (
ACPI_PARSE_OBJECT *Op,
char *Name,
UINT32 ByteOffset);
void void
RsSetFlagBits ( RsSetFlagBits (

View File

@ -153,5 +153,25 @@
#define POSITIVE 0 #define POSITIVE 0
/* Helper macros for resource tag creation */
#define RsCreateMultiBitField \
RsCreateResourceField
#define RsCreateBitField(Op, Name, ByteOffset, BitOffset) \
RsCreateResourceField (Op, Name, ByteOffset, BitOffset, 1)
#define RsCreateByteField(Op, Name, ByteOffset) \
RsCreateResourceField (Op, Name, ByteOffset, 0, 8);
#define RsCreateWordField(Op, Name, ByteOffset) \
RsCreateResourceField (Op, Name, ByteOffset, 0, 16);
#define RsCreateDwordField(Op, Name, ByteOffset) \
RsCreateResourceField (Op, Name, ByteOffset, 0, 32);
#define RsCreateQwordField(Op, Name, ByteOffset) \
RsCreateResourceField (Op, Name, ByteOffset, 0, 64);
#endif /* ASLDEFINE.H */ #endif /* ASLDEFINE.H */

View File

@ -174,14 +174,18 @@ FlGetFileSize (
{ {
FILE *fp; FILE *fp;
UINT32 FileSize; UINT32 FileSize;
long Offset;
fp = Gbl_Files[FileId].Handle; fp = Gbl_Files[FileId].Handle;
Offset = ftell (fp);
fseek (fp, 0, SEEK_END); fseek (fp, 0, SEEK_END);
FileSize = (UINT32) ftell (fp); FileSize = (UINT32) ftell (fp);
fseek (fp, 0, SEEK_SET);
/* Restore file pointer */
fseek (fp, Offset, SEEK_SET);
return (FileSize); return (FileSize);
} }

View File

@ -128,6 +128,7 @@ ASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_WarningLevel, ASL_WARNI
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_UseOriginalCompilerId, FALSE); ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_UseOriginalCompilerId, FALSE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_VerboseTemplates, FALSE); ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_VerboseTemplates, FALSE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DoTemplates, FALSE); ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DoTemplates, FALSE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_CompileGeneric, FALSE);
#define HEX_OUTPUT_NONE 0 #define HEX_OUTPUT_NONE 0

View File

@ -850,9 +850,9 @@ LsFinishSourceListing (
FlPrintFile (FileId, "\n\nSummary of errors and warnings\n\n"); FlPrintFile (FileId, "\n\nSummary of errors and warnings\n\n");
AePrintErrorLog (FileId); AePrintErrorLog (FileId);
FlPrintFile (FileId, "\n\n"); FlPrintFile (FileId, "\n");
UtDisplaySummary (FileId); UtDisplaySummary (FileId);
FlPrintFile (FileId, "\n\n"); FlPrintFile (FileId, "\n");
} }
} }
@ -1309,6 +1309,7 @@ LsDoHexOutputC (
/* Get AML size, seek back to start */ /* Get AML size, seek back to start */
AmlFileSize = FlGetFileSize (ASL_FILE_AML_OUTPUT); AmlFileSize = FlGetFileSize (ASL_FILE_AML_OUTPUT);
FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
FlPrintFile (ASL_FILE_HEX_OUTPUT, " * C source code output\n"); FlPrintFile (ASL_FILE_HEX_OUTPUT, " * C source code output\n");
FlPrintFile (ASL_FILE_HEX_OUTPUT, " * AML code block contains 0x%X bytes\n *\n */\n", FlPrintFile (ASL_FILE_HEX_OUTPUT, " * AML code block contains 0x%X bytes\n *\n */\n",
@ -1365,7 +1366,6 @@ LsDoHexOutputC (
} }
FlPrintFile (ASL_FILE_HEX_OUTPUT, "};\n"); FlPrintFile (ASL_FILE_HEX_OUTPUT, "};\n");
FlCloseFile (ASL_FILE_HEX_OUTPUT);
} }
@ -1397,6 +1397,7 @@ LsDoHexOutputAsl (
/* Get AML size, seek back to start */ /* Get AML size, seek back to start */
AmlFileSize = FlGetFileSize (ASL_FILE_AML_OUTPUT); AmlFileSize = FlGetFileSize (ASL_FILE_AML_OUTPUT);
FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
FlPrintFile (ASL_FILE_HEX_OUTPUT, " * ASL source code output\n"); FlPrintFile (ASL_FILE_HEX_OUTPUT, " * ASL source code output\n");
FlPrintFile (ASL_FILE_HEX_OUTPUT, " * AML code block contains 0x%X bytes\n *\n */\n", FlPrintFile (ASL_FILE_HEX_OUTPUT, " * AML code block contains 0x%X bytes\n *\n */\n",
@ -1453,7 +1454,6 @@ LsDoHexOutputAsl (
} }
FlPrintFile (ASL_FILE_HEX_OUTPUT, " })\n"); FlPrintFile (ASL_FILE_HEX_OUTPUT, " })\n");
FlCloseFile (ASL_FILE_HEX_OUTPUT);
} }
@ -1485,6 +1485,7 @@ LsDoHexOutputAsm (
/* Get AML size, seek back to start */ /* Get AML size, seek back to start */
AmlFileSize = FlGetFileSize (ASL_FILE_AML_OUTPUT); AmlFileSize = FlGetFileSize (ASL_FILE_AML_OUTPUT);
FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
FlPrintFile (ASL_FILE_HEX_OUTPUT, "; Assembly code source output\n"); FlPrintFile (ASL_FILE_HEX_OUTPUT, "; Assembly code source output\n");
FlPrintFile (ASL_FILE_HEX_OUTPUT, "; AML code block contains 0x%X bytes\n;\n", FlPrintFile (ASL_FILE_HEX_OUTPUT, "; AML code block contains 0x%X bytes\n;\n",
@ -1536,7 +1537,6 @@ LsDoHexOutputAsm (
} }
FlPrintFile (ASL_FILE_HEX_OUTPUT, "\n"); FlPrintFile (ASL_FILE_HEX_OUTPUT, "\n");
FlCloseFile (ASL_FILE_HEX_OUTPUT);
} }

View File

@ -290,7 +290,6 @@ LdLoadResourceElements (
InitializerOp = ASL_GET_CHILD_NODE (Op); InitializerOp = ASL_GET_CHILD_NODE (Op);
while (InitializerOp) while (InitializerOp)
{ {
if (InitializerOp->Asl.ExternalName) if (InitializerOp->Asl.ExternalName)
{ {
Status = AcpiNsLookup (WalkState->ScopeInfo, Status = AcpiNsLookup (WalkState->ScopeInfo,
@ -305,20 +304,15 @@ LdLoadResourceElements (
} }
/* /*
* Store the field offset in the namespace node so it * Store the field offset and length in the namespace node
* can be used when the field is referenced * so it can be used when the field is referenced
*/ */
Node->Value = (UINT32) InitializerOp->Asl.Value.Integer; Node->Value = InitializerOp->Asl.Value.Tag.BitOffset;
Node->Length = InitializerOp->Asl.Value.Tag.BitLength;
InitializerOp->Asl.Node = Node; InitializerOp->Asl.Node = Node;
Node->Op = InitializerOp; Node->Op = InitializerOp;
/* Pass thru the field type (Bitfield or Bytefield) */
if (InitializerOp->Asl.CompileFlags & NODE_IS_BIT_OFFSET)
{
Node->Flags |= ANOBJ_IS_BIT_OFFSET;
}
} }
InitializerOp = ASL_GET_PEER_NODE (InitializerOp); InitializerOp = ASL_GET_PEER_NODE (InitializerOp);
} }

View File

@ -822,7 +822,10 @@ LkNamespaceLocateBegin (
ACPI_PARSE_OBJECT *OwningOp; ACPI_PARSE_OBJECT *OwningOp;
ACPI_PARSE_OBJECT *SpaceIdOp; ACPI_PARSE_OBJECT *SpaceIdOp;
UINT32 MinimumLength; UINT32 MinimumLength;
UINT32 Temp; UINT32 Offset;
UINT32 FieldBitLength;
UINT32 TagBitLength;
UINT8 Message = 0;
const ACPI_OPCODE_INFO *OpInfo; const ACPI_OPCODE_INFO *OpInfo;
UINT32 Flags; UINT32 Flags;
@ -1026,74 +1029,106 @@ LkNamespaceLocateBegin (
/* 2) Check for a reference to a resource descriptor */ /* 2) Check for a reference to a resource descriptor */
if ((Node->Type == ACPI_TYPE_LOCAL_RESOURCE_FIELD) || if ((Node->Type == ACPI_TYPE_LOCAL_RESOURCE_FIELD) ||
(Node->Type == ACPI_TYPE_LOCAL_RESOURCE)) (Node->Type == ACPI_TYPE_LOCAL_RESOURCE))
{ {
/* /*
* This was a reference to a field within a resource descriptor. Extract * This was a reference to a field within a resource descriptor.
* the associated field offset (either a bit or byte offset depending on * Extract the associated field offset (either a bit or byte
* the field type) and change the named reference into an integer for * offset depending on the field type) and change the named
* AML code generation * reference into an integer for AML code generation
*/ */
Temp = Node->Value; Offset = Node->Value;
if (Node->Flags & ANOBJ_IS_BIT_OFFSET) TagBitLength = Node->Length;
/*
* If a field is being created, generate the length (in bits) of
* the field. Note: Opcodes other than CreateXxxField and Index
* can come through here. For other opcodes, we just need to
* convert the resource tag reference to an integer offset.
*/
switch (Op->Asl.Parent->Asl.AmlOpcode)
{ {
Op->Asl.CompileFlags |= NODE_IS_BIT_OFFSET; case AML_CREATE_FIELD_OP: /* Variable "Length" field, in bits */
/*
* We know the length operand is an integer constant because
* we know that it contains a reference to a resource
* descriptor tag.
*/
FieldBitLength = (UINT32) Op->Asl.Next->Asl.Value.Integer;
break;
case AML_CREATE_BIT_FIELD_OP:
FieldBitLength = 1;
break;
case AML_CREATE_BYTE_FIELD_OP:
case AML_INDEX_OP:
FieldBitLength = 8;
break;
case AML_CREATE_WORD_FIELD_OP:
FieldBitLength = 16;
break;
case AML_CREATE_DWORD_FIELD_OP:
FieldBitLength = 32;
break;
case AML_CREATE_QWORD_FIELD_OP:
FieldBitLength = 64;
break;
default:
FieldBitLength = 0;
break;
} }
/* Perform BitOffset <--> ByteOffset conversion if necessary */ /* Check the field length against the length of the resource tag */
if (FieldBitLength)
{
if (TagBitLength < FieldBitLength)
{
Message = ASL_MSG_TAG_SMALLER;
}
else if (TagBitLength > FieldBitLength)
{
Message = ASL_MSG_TAG_LARGER;
}
if (Message)
{
sprintf (MsgBuffer, "Tag: %u bit%s, Field: %u bit%s",
TagBitLength, (TagBitLength > 1) ? "s" : "",
FieldBitLength, (FieldBitLength > 1) ? "s" : "");
AslError (ASL_WARNING, Message, Op, MsgBuffer);
}
}
/* Convert the BitOffset to a ByteOffset for certain opcodes */
switch (Op->Asl.Parent->Asl.AmlOpcode) switch (Op->Asl.Parent->Asl.AmlOpcode)
{ {
case AML_CREATE_FIELD_OP:
/* We allow a Byte offset to Bit Offset conversion for this op */
if (!(Op->Asl.CompileFlags & NODE_IS_BIT_OFFSET))
{
/* Simply multiply byte offset times 8 to get bit offset */
Temp = ACPI_MUL_8 (Temp);
}
break;
case AML_CREATE_BIT_FIELD_OP:
/* This op requires a Bit Offset */
if (!(Op->Asl.CompileFlags & NODE_IS_BIT_OFFSET))
{
AslError (ASL_ERROR, ASL_MSG_BYTES_TO_BITS, Op, NULL);
}
break;
case AML_CREATE_BYTE_FIELD_OP: case AML_CREATE_BYTE_FIELD_OP:
case AML_CREATE_WORD_FIELD_OP: case AML_CREATE_WORD_FIELD_OP:
case AML_CREATE_DWORD_FIELD_OP: case AML_CREATE_DWORD_FIELD_OP:
case AML_CREATE_QWORD_FIELD_OP: case AML_CREATE_QWORD_FIELD_OP:
case AML_INDEX_OP: case AML_INDEX_OP:
/* These Ops require Byte offsets */ Offset = ACPI_DIV_8 (Offset);
if (Op->Asl.CompileFlags & NODE_IS_BIT_OFFSET)
{
AslError (ASL_ERROR, ASL_MSG_BITS_TO_BYTES, Op, NULL);
}
break; break;
default: default:
/* Nothing to do for other opcodes */
break; break;
} }
/* Now convert this node to an integer whose value is the field offset */ /* Now convert this node to an integer whose value is the field offset */
Op->Asl.AmlLength = 0; Op->Asl.AmlLength = 0;
Op->Asl.ParseOpcode = PARSEOP_INTEGER; Op->Asl.ParseOpcode = PARSEOP_INTEGER;
Op->Asl.Value.Integer = (UINT64) Temp; Op->Asl.Value.Integer = (UINT64) Offset;
Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD; Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD;
OpcGenerateAmlOpcode (Op); OpcGenerateAmlOpcode (Op);
} }

View File

@ -96,7 +96,7 @@ AslDoResponseFile (
#define ASL_TOKEN_SEPARATORS " \t\n" #define ASL_TOKEN_SEPARATORS " \t\n"
#define ASL_SUPPORTED_OPTIONS "@:2b:c:d^e:fgh^i^I:l^no:p:r:s:t:T:v:w:x:z" #define ASL_SUPPORTED_OPTIONS "@:2b:c:d^e:fgh^i^I:l^no:p:r:s:t:T:G^v:w:x:z"
/******************************************************************************* /*******************************************************************************
@ -116,55 +116,56 @@ Options (
void) void)
{ {
printf ("Global:\n"); printf ("\nGlobal:\n");
printf (" -@<file> Specify command file\n"); ACPI_OPTION ("-@ <file>", "Specify command file");
printf (" -I<dir> Specify additional include directory\n"); ACPI_OPTION ("-I <dir>", "Specify additional include directory");
printf ("\nGeneral Output:\n"); printf ("\nGeneral Output:\n");
printf (" -p<prefix> Specify path/filename prefix for all output files\n"); ACPI_OPTION ("-p <prefix>", "Specify path/filename prefix for all output files");
printf (" -va Disable all errors and warnings (summary only)\n"); ACPI_OPTION ("-va", "Disable all errors and warnings (summary only)");
printf (" -vi Less verbose errors and warnings for use with IDEs\n"); ACPI_OPTION ("-vi", "Less verbose errors and warnings for use with IDEs");
printf (" -vo Enable optimization comments\n"); ACPI_OPTION ("-vo", "Enable optimization comments");
printf (" -vr Disable remarks\n"); ACPI_OPTION ("-vr", "Disable remarks");
printf (" -vs Disable signon\n"); ACPI_OPTION ("-vs", "Disable signon");
printf (" -w<1|2|3> Set warning reporting level\n"); ACPI_OPTION ("-w <1|2|3>", "Set warning reporting level");
printf ("\nAML Output Files:\n"); printf ("\nAML Output Files:\n");
printf (" -s<a|c> Create AML in assembler or C source file (*.asm or *.c)\n"); ACPI_OPTION ("-s <a|c>", "Create AML in assembler or C source file (*.asm or *.c)");
printf (" -i<a|c> Create assembler or C include file (*.inc or *.h)\n"); ACPI_OPTION ("-i <a|c>", "Create assembler or C include file (*.inc or *.h)");
printf (" -t<a|c|s> Create AML in assembler, C, or ASL hex table (*.hex)\n"); ACPI_OPTION ("-t <a|c|s>", "Create AML in assembler, C, or ASL hex table (*.hex)");
printf ("\nAML Code Generation:\n"); printf ("\nAML Code Generation:\n");
printf (" -oa Disable all optimizations (compatibility mode)\n"); ACPI_OPTION ("-oa", "Disable all optimizations (compatibility mode)");
printf (" -of Disable constant folding\n"); ACPI_OPTION ("-of", "Disable constant folding");
printf (" -oi Disable integer optimization to Zero/One/Ones\n"); ACPI_OPTION ("-oi", "Disable integer optimization to Zero/One/Ones");
printf (" -on Disable named reference string optimization\n"); ACPI_OPTION ("-on", "Disable named reference string optimization");
printf (" -cr Disable Resource Descriptor error checking\n"); ACPI_OPTION ("-cr", "Disable Resource Descriptor error checking");
printf (" -r<Revision> Override table header Revision (1-255)\n"); ACPI_OPTION ("-r <revision>", "Override table header Revision (1-255)");
printf ("\nASL Listing Files:\n"); printf ("\nASL Listing Files:\n");
printf (" -l Create mixed listing file (ASL source and AML) (*.lst)\n"); ACPI_OPTION ("-l", "Create mixed listing file (ASL source and AML) (*.lst)");
printf (" -ln Create namespace file (*.nsp)\n"); ACPI_OPTION ("-ln", "Create namespace file (*.nsp)");
printf (" -ls Create combined source file (expanded includes) (*.src)\n"); ACPI_OPTION ("-ls", "Create combined source file (expanded includes) (*.src)");
printf ("\nACPI Data Tables:\n"); printf ("\nACPI Data Tables:\n");
printf (" -T <Sig>|ALL|* Create table template file(s) for <Sig>\n"); ACPI_OPTION ("-G", "Compile custom table containing generic operators");
printf (" -vt Create verbose templates (full disassembly)\n"); ACPI_OPTION ("-T <sig>|ALL|*", "Create table template file(s) for <Sig>");
ACPI_OPTION ("-vt", "Create verbose templates (full disassembly)");
printf ("\nAML Disassembler:\n"); printf ("\nAML Disassembler:\n");
printf (" -d [file] Disassemble or decode binary ACPI table to file (*.dsl)\n"); ACPI_OPTION ("-d [file]", "Disassemble or decode binary ACPI table to file (*.dsl)");
printf (" -da [f1,f2] Disassemble multiple tables from single namespace\n"); ACPI_OPTION ("-da [f1,f2]", "Disassemble multiple tables from single namespace");
printf (" -dc [file] Disassemble AML and immediately compile it\n"); ACPI_OPTION ("-dc [file]", "Disassemble AML and immediately compile it");
printf (" (Obtain DSDT from current system if no input file)\n"); ACPI_OPTION ("", "(Obtain DSDT from current system if no input file)");
printf (" -e [f1,f2] Include ACPI table(s) for external symbol resolution\n"); ACPI_OPTION ("-e [f1,f2]", "Include ACPI table(s) for external symbol resolution");
printf (" -2 Emit ACPI 2.0 compatible ASL code\n"); ACPI_OPTION ("-2", "Emit ACPI 2.0 compatible ASL code");
printf (" -g Get ACPI tables and write to files (*.dat)\n"); ACPI_OPTION ("-g", "Get ACPI tables and write to files (*.dat)");
printf ("\nHelp:\n"); printf ("\nHelp:\n");
printf (" -h Additional help and compiler debug options\n"); ACPI_OPTION ("-h", "Additional help and compiler debug options");
printf (" -hc Display operators allowed in constant expressions\n"); ACPI_OPTION ("-hc", "Display operators allowed in constant expressions");
printf (" -hr Display ACPI reserved method names\n"); ACPI_OPTION ("-hr", "Display ACPI reserved method names");
printf (" -ht Display currently supported ACPI table names\n"); ACPI_OPTION ("-ht", "Display currently supported ACPI table names");
} }
@ -185,7 +186,7 @@ HelpMessage (
void) void)
{ {
printf ("AML output filename generation:\n"); printf ("\nAML output filename generation:\n");
printf (" Output filenames are generated by appending an extension to a common\n"); printf (" Output filenames are generated by appending an extension to a common\n");
printf (" filename prefix. The filename prefix is obtained via one of the\n"); printf (" filename prefix. The filename prefix is obtained via one of the\n");
printf (" following methods (in priority order):\n"); printf (" following methods (in priority order):\n");
@ -197,13 +198,13 @@ HelpMessage (
Options (); Options ();
printf ("\nCompiler/Disassembler Debug Options:\n"); printf ("\nCompiler/Disassembler Debug Options:\n");
printf (" -b<p|t|b> Create compiler debug/trace file (*.txt)\n"); ACPI_OPTION ("-b<p|t|b>", "Create compiler debug/trace file (*.txt)");
printf (" Types: Parse/Tree/Both\n"); ACPI_OPTION ("", "Types: Parse/Tree/Both");
printf (" -f Ignore errors, force creation of AML output file(s)\n"); ACPI_OPTION ("-f", "Ignore errors, force creation of AML output file(s)");
printf (" -n Parse only, no output generation\n"); ACPI_OPTION ("-n", "Parse only, no output generation");
printf (" -ot Display compile times\n"); ACPI_OPTION ("-ot", "Display compile times");
printf (" -x<level> Set debug level for trace output\n"); ACPI_OPTION ("-x<level>", "Set debug level for trace output");
printf (" -z Do not insert new compiler ID for DataTables\n"); ACPI_OPTION ("-z", "Do not insert new compiler ID for DataTables");
} }
@ -224,8 +225,8 @@ Usage (
void) void)
{ {
printf ("%s\n", ASL_COMPLIANCE); printf ("%s\n\n", ASL_COMPLIANCE);
printf ("Usage: %s [Options] [Files]\n\n", ASL_INVOCATION_NAME); ACPI_USAGE_HEADER ("iasl [Options] [Files]");
Options (); Options ();
} }
@ -720,6 +721,11 @@ AslDoOptions (
break; break;
case 'G':
Gbl_CompileGeneric = TRUE;
break;
case 'T': case 'T':
Gbl_DoTemplates = TRUE; Gbl_DoTemplates = TRUE;
Gbl_TemplateSignature = AcpiGbl_Optarg; Gbl_TemplateSignature = AcpiGbl_Optarg;

View File

@ -61,17 +61,18 @@
typedef enum typedef enum
{ {
ASL_MSG_RESERVED = 0, ASL_MSG_RESERVED = 0,
ASL_MSG_ALIGNMENT,
ASL_MSG_ALPHANUMERIC_STRING, ASL_MSG_ALPHANUMERIC_STRING,
ASL_MSG_AML_NOT_IMPLEMENTED, ASL_MSG_AML_NOT_IMPLEMENTED,
ASL_MSG_ARG_COUNT_HI, ASL_MSG_ARG_COUNT_HI,
ASL_MSG_ARG_COUNT_LO, ASL_MSG_ARG_COUNT_LO,
ASL_MSG_ARG_INIT, ASL_MSG_ARG_INIT,
ASL_MSG_BACKWARDS_OFFSET, ASL_MSG_BACKWARDS_OFFSET,
ASL_MSG_BITS_TO_BYTES,
ASL_MSG_BUFFER_LENGTH, ASL_MSG_BUFFER_LENGTH,
ASL_MSG_BYTES_TO_BITS,
ASL_MSG_CLOSE, ASL_MSG_CLOSE,
ASL_MSG_COMPILER_INTERNAL, ASL_MSG_COMPILER_INTERNAL,
ASL_MSG_COMPILER_RESERVED,
ASL_MSG_CONSTANT_EVALUATION, ASL_MSG_CONSTANT_EVALUATION,
ASL_MSG_CONSTANT_FOLDED, ASL_MSG_CONSTANT_FOLDED,
ASL_MSG_CORE_EXCEPTION, ASL_MSG_CORE_EXCEPTION,
@ -90,15 +91,24 @@ typedef enum
ASL_MSG_FIELD_ACCESS_WIDTH, ASL_MSG_FIELD_ACCESS_WIDTH,
ASL_MSG_FIELD_UNIT_ACCESS_WIDTH, ASL_MSG_FIELD_UNIT_ACCESS_WIDTH,
ASL_MSG_FIELD_UNIT_OFFSET, ASL_MSG_FIELD_UNIT_OFFSET,
ASL_MSG_GPE_NAME_CONFLICT,
ASL_MSG_HID_LENGTH,
ASL_MSG_INCLUDE_FILE_OPEN, ASL_MSG_INCLUDE_FILE_OPEN,
ASL_MSG_INPUT_FILE_OPEN, ASL_MSG_INPUT_FILE_OPEN,
ASL_MSG_INTEGER_LENGTH, ASL_MSG_INTEGER_LENGTH,
ASL_MSG_INTEGER_OPTIMIZATION, ASL_MSG_INTEGER_OPTIMIZATION,
ASL_MSG_INTERRUPT_LIST, ASL_MSG_INTERRUPT_LIST,
ASL_MSG_INTERRUPT_NUMBER, ASL_MSG_INTERRUPT_NUMBER,
ASL_MSG_INVALID_ACCESS_SIZE,
ASL_MSG_INVALID_ADDR_FLAGS,
ASL_MSG_INVALID_CONSTANT_OP, ASL_MSG_INVALID_CONSTANT_OP,
ASL_MSG_INVALID_EISAID, ASL_MSG_INVALID_EISAID,
ASL_MSG_INVALID_ESCAPE, ASL_MSG_INVALID_ESCAPE,
ASL_MSG_INVALID_GRAN_FIXED,
ASL_MSG_INVALID_GRANULARITY,
ASL_MSG_INVALID_LENGTH,
ASL_MSG_INVALID_LENGTH_FIXED,
ASL_MSG_INVALID_MIN_MAX,
ASL_MSG_INVALID_OPERAND, ASL_MSG_INVALID_OPERAND,
ASL_MSG_INVALID_PERFORMANCE, ASL_MSG_INVALID_PERFORMANCE,
ASL_MSG_INVALID_PRIORITY, ASL_MSG_INVALID_PRIORITY,
@ -107,28 +117,38 @@ typedef enum
ASL_MSG_INVALID_TIME, ASL_MSG_INVALID_TIME,
ASL_MSG_INVALID_TYPE, ASL_MSG_INVALID_TYPE,
ASL_MSG_INVALID_UUID, ASL_MSG_INVALID_UUID,
ASL_MSG_ISA_ADDRESS,
ASL_MSG_LEADING_ASTERISK,
ASL_MSG_LIST_LENGTH_LONG, ASL_MSG_LIST_LENGTH_LONG,
ASL_MSG_LIST_LENGTH_SHORT, ASL_MSG_LIST_LENGTH_SHORT,
ASL_MSG_LISTING_FILE_OPEN, ASL_MSG_LISTING_FILE_OPEN,
ASL_MSG_LISTING_FILENAME, ASL_MSG_LISTING_FILENAME,
ASL_MSG_LOCAL_INIT, ASL_MSG_LOCAL_INIT,
ASL_MSG_LOCAL_OUTSIDE_METHOD,
ASL_MSG_LONG_LINE, ASL_MSG_LONG_LINE,
ASL_MSG_MEMORY_ALLOCATION, ASL_MSG_MEMORY_ALLOCATION,
ASL_MSG_MISSING_ENDDEPENDENT, ASL_MSG_MISSING_ENDDEPENDENT,
ASL_MSG_MISSING_STARTDEPENDENT, ASL_MSG_MISSING_STARTDEPENDENT,
ASL_MSG_MULTIPLE_DEFAULT,
ASL_MSG_MULTIPLE_TYPES, ASL_MSG_MULTIPLE_TYPES,
ASL_MSG_NAME_EXISTS, ASL_MSG_NAME_EXISTS,
ASL_MSG_NAME_OPTIMIZATION, ASL_MSG_NAME_OPTIMIZATION,
ASL_MSG_NAMED_OBJECT_IN_WHILE,
ASL_MSG_NESTED_COMMENT, ASL_MSG_NESTED_COMMENT,
ASL_MSG_NO_CASES, ASL_MSG_NO_CASES,
ASL_MSG_NO_REGION,
ASL_MSG_NO_RETVAL, ASL_MSG_NO_RETVAL,
ASL_MSG_NO_WHILE, ASL_MSG_NO_WHILE,
ASL_MSG_NON_ASCII, ASL_MSG_NON_ASCII,
ASL_MSG_NON_ZERO,
ASL_MSG_NOT_EXIST, ASL_MSG_NOT_EXIST,
ASL_MSG_NOT_FOUND, ASL_MSG_NOT_FOUND,
ASL_MSG_NOT_METHOD, ASL_MSG_NOT_METHOD,
ASL_MSG_NOT_PARAMETER, ASL_MSG_NOT_PARAMETER,
ASL_MSG_NOT_REACHABLE, ASL_MSG_NOT_REACHABLE,
ASL_MSG_NOT_REFERENCED,
ASL_MSG_NULL_DESCRIPTOR,
ASL_MSG_NULL_STRING,
ASL_MSG_OPEN, ASL_MSG_OPEN,
ASL_MSG_OUTPUT_FILE_OPEN, ASL_MSG_OUTPUT_FILE_OPEN,
ASL_MSG_OUTPUT_FILENAME, ASL_MSG_OUTPUT_FILENAME,
@ -140,6 +160,7 @@ typedef enum
ASL_MSG_RESERVED_ARG_COUNT_HI, ASL_MSG_RESERVED_ARG_COUNT_HI,
ASL_MSG_RESERVED_ARG_COUNT_LO, ASL_MSG_RESERVED_ARG_COUNT_LO,
ASL_MSG_RESERVED_METHOD, ASL_MSG_RESERVED_METHOD,
ASL_MSG_RESERVED_NO_RETURN_VAL,
ASL_MSG_RESERVED_OPERAND_TYPE, ASL_MSG_RESERVED_OPERAND_TYPE,
ASL_MSG_RESERVED_RETURN_VALUE, ASL_MSG_RESERVED_RETURN_VALUE,
ASL_MSG_RESERVED_USE, ASL_MSG_RESERVED_USE,
@ -148,63 +169,45 @@ typedef enum
ASL_MSG_RESOURCE_INDEX, ASL_MSG_RESOURCE_INDEX,
ASL_MSG_RESOURCE_LIST, ASL_MSG_RESOURCE_LIST,
ASL_MSG_RESOURCE_SOURCE, ASL_MSG_RESOURCE_SOURCE,
ASL_MSG_RESULT_NOT_USED,
ASL_MSG_RETURN_TYPES, ASL_MSG_RETURN_TYPES,
ASL_MSG_SCOPE_FWD_REF, ASL_MSG_SCOPE_FWD_REF,
ASL_MSG_SCOPE_TYPE, ASL_MSG_SCOPE_TYPE,
ASL_MSG_SEEK, ASL_MSG_SEEK,
ASL_MSG_SERIALIZED,
ASL_MSG_SINGLE_NAME_OPTIMIZATION, ASL_MSG_SINGLE_NAME_OPTIMIZATION,
ASL_MSG_SOME_NO_RETVAL, ASL_MSG_SOME_NO_RETVAL,
ASL_MSG_STRING_LENGTH,
ASL_MSG_SWITCH_TYPE, ASL_MSG_SWITCH_TYPE,
ASL_MSG_SYNC_LEVEL, ASL_MSG_SYNC_LEVEL,
ASL_MSG_SYNTAX, ASL_MSG_SYNTAX,
ASL_MSG_TABLE_SIGNATURE, ASL_MSG_TABLE_SIGNATURE,
ASL_MSG_TAG_LARGER,
ASL_MSG_TAG_SMALLER,
ASL_MSG_TIMEOUT,
ASL_MSG_TOO_MANY_TEMPS, ASL_MSG_TOO_MANY_TEMPS,
ASL_MSG_UNKNOWN_RESERVED_NAME, ASL_MSG_UNKNOWN_RESERVED_NAME,
ASL_MSG_UNREACHABLE_CODE, ASL_MSG_UNREACHABLE_CODE,
ASL_MSG_UNSUPPORTED, ASL_MSG_UNSUPPORTED,
ASL_MSG_UPPER_CASE,
ASL_MSG_VENDOR_LIST, ASL_MSG_VENDOR_LIST,
ASL_MSG_WRITE, ASL_MSG_WRITE,
ASL_MSG_MULTIPLE_DEFAULT,
ASL_MSG_TIMEOUT,
ASL_MSG_RESULT_NOT_USED,
ASL_MSG_NOT_REFERENCED,
ASL_MSG_NON_ZERO,
ASL_MSG_STRING_LENGTH,
ASL_MSG_SERIALIZED,
ASL_MSG_COMPILER_RESERVED,
ASL_MSG_NAMED_OBJECT_IN_WHILE,
ASL_MSG_LOCAL_OUTSIDE_METHOD,
ASL_MSG_ALIGNMENT,
ASL_MSG_ISA_ADDRESS,
ASL_MSG_INVALID_MIN_MAX,
ASL_MSG_INVALID_LENGTH,
ASL_MSG_INVALID_LENGTH_FIXED,
ASL_MSG_INVALID_GRANULARITY,
ASL_MSG_INVALID_GRAN_FIXED,
ASL_MSG_INVALID_ACCESS_SIZE,
ASL_MSG_INVALID_ADDR_FLAGS,
ASL_MSG_NULL_DESCRIPTOR,
ASL_MSG_UPPER_CASE,
ASL_MSG_HID_LENGTH,
ASL_MSG_NULL_STRING,
ASL_MSG_LEADING_ASTERISK,
ASL_MSG_RESERVED_NO_RETURN_VAL,
ASL_MSG_GPE_NAME_CONFLICT,
ASL_MSG_NO_REGION,
ASL_MSG_INVALID_FIELD_NAME, /* These messages are used by the data table compiler only */
ASL_MSG_INTEGER_SIZE,
ASL_MSG_INVALID_HEX_INTEGER,
ASL_MSG_BUFFER_ELEMENT, ASL_MSG_BUFFER_ELEMENT,
ASL_MSG_RESERVED_VALUE, ASL_MSG_DIVIDE_BY_ZERO,
ASL_MSG_FLAG_VALUE, ASL_MSG_FLAG_VALUE,
ASL_MSG_ZERO_VALUE, ASL_MSG_INTEGER_SIZE,
ASL_MSG_UNKNOWN_TABLE,
ASL_MSG_UNKNOWN_SUBTABLE,
ASL_MSG_OEM_TABLE,
ASL_MSG_UNKNOWN_LABEL,
ASL_MSG_INVALID_EXPRESSION, ASL_MSG_INVALID_EXPRESSION,
ASL_MSG_DIVIDE_BY_ZERO ASL_MSG_INVALID_FIELD_NAME,
ASL_MSG_INVALID_HEX_INTEGER,
ASL_MSG_OEM_TABLE,
ASL_MSG_RESERVED_VALUE,
ASL_MSG_UNKNOWN_LABEL,
ASL_MSG_UNKNOWN_SUBTABLE,
ASL_MSG_UNKNOWN_TABLE,
ASL_MSG_ZERO_VALUE
} ASL_MESSAGE_IDS; } ASL_MESSAGE_IDS;
@ -215,17 +218,17 @@ typedef enum
char *AslMessages [] = { char *AslMessages [] = {
/* The zeroth message is reserved */ "", /* The zeroth message is reserved */ "",
/* ASL_MSG_ALIGNMENT */ "Must be a multiple of alignment/granularity value",
/* ASL_MSG_ALPHANUMERIC_STRING */ "String must be entirely alphanumeric", /* ASL_MSG_ALPHANUMERIC_STRING */ "String must be entirely alphanumeric",
/* ASL_MSG_AML_NOT_IMPLEMENTED */ "Opcode is not implemented in compiler AML code generator", /* ASL_MSG_AML_NOT_IMPLEMENTED */ "Opcode is not implemented in compiler AML code generator",
/* ASL_MSG_ARG_COUNT_HI */ "Too many arguments", /* ASL_MSG_ARG_COUNT_HI */ "Too many arguments",
/* ASL_MSG_ARG_COUNT_LO */ "Too few arguments", /* ASL_MSG_ARG_COUNT_LO */ "Too few arguments",
/* ASL_MSG_ARG_INIT */ "Method argument is not initialized", /* ASL_MSG_ARG_INIT */ "Method argument is not initialized",
/* ASL_MSG_BACKWARDS_OFFSET */ "Invalid backwards offset", /* ASL_MSG_BACKWARDS_OFFSET */ "Invalid backwards offset",
/* ASL_MSG_BITS_TO_BYTES */ "Field offset is in bits, but a byte offset is required",
/* ASL_MSG_BUFFER_LENGTH */ "Effective AML buffer length is zero", /* ASL_MSG_BUFFER_LENGTH */ "Effective AML buffer length is zero",
/* ASL_MSG_BYTES_TO_BITS */ "Field offset is in bytes, but a bit offset is required",
/* ASL_MSG_CLOSE */ "Could not close file", /* ASL_MSG_CLOSE */ "Could not close file",
/* ASL_MSG_COMPILER_INTERNAL */ "Internal compiler error", /* ASL_MSG_COMPILER_INTERNAL */ "Internal compiler error",
/* ASL_MSG_COMPILER_RESERVED */ "Use of compiler reserved name",
/* ASL_MSG_CONSTANT_EVALUATION */ "Could not evaluate constant expression", /* ASL_MSG_CONSTANT_EVALUATION */ "Could not evaluate constant expression",
/* ASL_MSG_CONSTANT_FOLDED */ "Constant expression evaluated and reduced", /* ASL_MSG_CONSTANT_FOLDED */ "Constant expression evaluated and reduced",
/* ASL_MSG_CORE_EXCEPTION */ "From ACPI CA Subsystem", /* ASL_MSG_CORE_EXCEPTION */ "From ACPI CA Subsystem",
@ -244,15 +247,24 @@ char *AslMessages [] = {
/* ASL_MSG_FIELD_ACCESS_WIDTH */ "Access width is greater than region size", /* ASL_MSG_FIELD_ACCESS_WIDTH */ "Access width is greater than region size",
/* ASL_MSG_FIELD_UNIT_ACCESS_WIDTH */ "Access width of Field Unit extends beyond region limit", /* ASL_MSG_FIELD_UNIT_ACCESS_WIDTH */ "Access width of Field Unit extends beyond region limit",
/* ASL_MSG_FIELD_UNIT_OFFSET */ "Field Unit extends beyond region limit", /* ASL_MSG_FIELD_UNIT_OFFSET */ "Field Unit extends beyond region limit",
/* ASL_MSG_GPE_NAME_CONFLICT */ "Name conflicts with a previous GPE method",
/* ASL_MSG_HID_LENGTH */ "_HID string must be exactly 7 or 8 characters",
/* ASL_MSG_INCLUDE_FILE_OPEN */ "Could not open include file", /* ASL_MSG_INCLUDE_FILE_OPEN */ "Could not open include file",
/* ASL_MSG_INPUT_FILE_OPEN */ "Could not open input file", /* ASL_MSG_INPUT_FILE_OPEN */ "Could not open input file",
/* ASL_MSG_INTEGER_LENGTH */ "64-bit integer in 32-bit table, truncating", /* ASL_MSG_INTEGER_LENGTH */ "64-bit integer in 32-bit table, truncating",
/* ASL_MSG_INTEGER_OPTIMIZATION */ "Integer optimized to single-byte AML opcode", /* ASL_MSG_INTEGER_OPTIMIZATION */ "Integer optimized to single-byte AML opcode",
/* ASL_MSG_INTERRUPT_LIST */ "Too many interrupts (16 max)", /* ASL_MSG_INTERRUPT_LIST */ "Too many interrupts (16 max)",
/* ASL_MSG_INTERRUPT_NUMBER */ "Invalid interrupt number (must be 0-15)", /* ASL_MSG_INTERRUPT_NUMBER */ "Invalid interrupt number (must be 0-15)",
/* ASL_MSG_INVALID_ACCESS_SIZE */ "Invalid AccessSize (Maximum is 4 - QWord access)",
/* ASL_MSG_INVALID_ADDR_FLAGS */ "Invalid combination of Length and Min/Max fixed flags",
/* ASL_MSG_INVALID_CONSTANT_OP */ "Invalid operator in constant expression (not type 3/4/5)", /* ASL_MSG_INVALID_CONSTANT_OP */ "Invalid operator in constant expression (not type 3/4/5)",
/* ASL_MSG_INVALID_EISAID */ "EISAID string must be of the form \"UUUXXXX\" (3 uppercase, 4 hex digits)", /* ASL_MSG_INVALID_EISAID */ "EISAID string must be of the form \"UUUXXXX\" (3 uppercase, 4 hex digits)",
/* ASL_MSG_INVALID_ESCAPE */ "Invalid or unknown escape sequence", /* ASL_MSG_INVALID_ESCAPE */ "Invalid or unknown escape sequence",
/* ASL_MSG_INVALID_GRAN_FIXED */ "Granularity must be zero for fixed Min/Max",
/* ASL_MSG_INVALID_GRANULARITY */ "Granularity must be zero or a power of two minus one",
/* ASL_MSG_INVALID_LENGTH */ "Length is larger than Min/Max window",
/* ASL_MSG_INVALID_LENGTH_FIXED */ "Length is not equal to fixed Min/Max window",
/* ASL_MSG_INVALID_MIN_MAX */ "Address Min is greater than Address Max",
/* ASL_MSG_INVALID_OPERAND */ "Invalid operand", /* ASL_MSG_INVALID_OPERAND */ "Invalid operand",
/* ASL_MSG_INVALID_PERFORMANCE */ "Invalid performance/robustness value", /* ASL_MSG_INVALID_PERFORMANCE */ "Invalid performance/robustness value",
/* ASL_MSG_INVALID_PRIORITY */ "Invalid priority value", /* ASL_MSG_INVALID_PRIORITY */ "Invalid priority value",
@ -261,28 +273,38 @@ char *AslMessages [] = {
/* ASL_MSG_INVALID_TIME */ "Time parameter too long (255 max)", /* ASL_MSG_INVALID_TIME */ "Time parameter too long (255 max)",
/* ASL_MSG_INVALID_TYPE */ "Invalid type", /* ASL_MSG_INVALID_TYPE */ "Invalid type",
/* ASL_MSG_INVALID_UUID */ "UUID string must be of the form \"aabbccdd-eeff-gghh-iijj-kkllmmnnoopp\"", /* ASL_MSG_INVALID_UUID */ "UUID string must be of the form \"aabbccdd-eeff-gghh-iijj-kkllmmnnoopp\"",
/* ASL_MSG_ISA_ADDRESS */ "Maximum 10-bit ISA address (0x3FF)",
/* ASL_MSG_LEADING_ASTERISK */ "Invalid leading asterisk",
/* ASL_MSG_LIST_LENGTH_LONG */ "Initializer list longer than declared package length", /* ASL_MSG_LIST_LENGTH_LONG */ "Initializer list longer than declared package length",
/* ASL_MSG_LIST_LENGTH_SHORT */ "Initializer list shorter than declared package length", /* ASL_MSG_LIST_LENGTH_SHORT */ "Initializer list shorter than declared package length",
/* ASL_MSG_LISTING_FILE_OPEN */ "Could not open listing file", /* ASL_MSG_LISTING_FILE_OPEN */ "Could not open listing file",
/* ASL_MSG_LISTING_FILENAME */ "Could not create listing filename", /* ASL_MSG_LISTING_FILENAME */ "Could not create listing filename",
/* ASL_MSG_LOCAL_INIT */ "Method local variable is not initialized", /* ASL_MSG_LOCAL_INIT */ "Method local variable is not initialized",
/* ASL_MSG_LOCAL_OUTSIDE_METHOD */ "Local or Arg used outside a control method",
/* ASL_MSG_LONG_LINE */ "Splitting long input line", /* ASL_MSG_LONG_LINE */ "Splitting long input line",
/* ASL_MSG_MEMORY_ALLOCATION */ "Memory allocation failure", /* ASL_MSG_MEMORY_ALLOCATION */ "Memory allocation failure",
/* ASL_MSG_MISSING_ENDDEPENDENT */ "Missing EndDependentFn() macro in dependent resource list", /* ASL_MSG_MISSING_ENDDEPENDENT */ "Missing EndDependentFn() macro in dependent resource list",
/* ASL_MSG_MISSING_STARTDEPENDENT */ "Missing StartDependentFn() macro in dependent resource list", /* ASL_MSG_MISSING_STARTDEPENDENT */ "Missing StartDependentFn() macro in dependent resource list",
/* ASL_MSG_MULTIPLE_DEFAULT */ "More than one Default statement within Switch construct",
/* ASL_MSG_MULTIPLE_TYPES */ "Multiple types", /* ASL_MSG_MULTIPLE_TYPES */ "Multiple types",
/* ASL_MSG_NAME_EXISTS */ "Name already exists in scope", /* ASL_MSG_NAME_EXISTS */ "Name already exists in scope",
/* ASL_MSG_NAME_OPTIMIZATION */ "NamePath optimized", /* ASL_MSG_NAME_OPTIMIZATION */ "NamePath optimized",
/* ASL_MSG_NAMED_OBJECT_IN_WHILE */ "Creating a named object in a While loop",
/* ASL_MSG_NESTED_COMMENT */ "Nested comment found", /* ASL_MSG_NESTED_COMMENT */ "Nested comment found",
/* ASL_MSG_NO_CASES */ "No Case statements under Switch", /* ASL_MSG_NO_CASES */ "No Case statements under Switch",
/* ASL_MSG_NO_REGION */ "_REG has no corresponding Operation Region",
/* ASL_MSG_NO_RETVAL */ "Called method returns no value", /* ASL_MSG_NO_RETVAL */ "Called method returns no value",
/* ASL_MSG_NO_WHILE */ "No enclosing While statement", /* ASL_MSG_NO_WHILE */ "No enclosing While statement",
/* ASL_MSG_NON_ASCII */ "Invalid characters found in file", /* ASL_MSG_NON_ASCII */ "Invalid characters found in file",
/* ASL_MSG_NON_ZERO */ "Operand evaluates to zero",
/* ASL_MSG_NOT_EXIST */ "Object does not exist", /* ASL_MSG_NOT_EXIST */ "Object does not exist",
/* ASL_MSG_NOT_FOUND */ "Object not found or not accessible from scope", /* ASL_MSG_NOT_FOUND */ "Object not found or not accessible from scope",
/* ASL_MSG_NOT_METHOD */ "Not a control method, cannot invoke", /* ASL_MSG_NOT_METHOD */ "Not a control method, cannot invoke",
/* ASL_MSG_NOT_PARAMETER */ "Not a parameter, used as local only", /* ASL_MSG_NOT_PARAMETER */ "Not a parameter, used as local only",
/* ASL_MSG_NOT_REACHABLE */ "Object is not accessible from this scope", /* ASL_MSG_NOT_REACHABLE */ "Object is not accessible from this scope",
/* ASL_MSG_NOT_REFERENCED */ "Namespace object is not referenced",
/* ASL_MSG_NULL_DESCRIPTOR */ "Min/Max/Length/Gran are all zero, but no resource tag",
/* ASL_MSG_NULL_STRING */ "Invalid zero-length (null) string",
/* ASL_MSG_OPEN */ "Could not open file", /* ASL_MSG_OPEN */ "Could not open file",
/* ASL_MSG_OUTPUT_FILE_OPEN */ "Could not open output AML file", /* ASL_MSG_OUTPUT_FILE_OPEN */ "Could not open output AML file",
/* ASL_MSG_OUTPUT_FILENAME */ "Could not create output filename", /* ASL_MSG_OUTPUT_FILENAME */ "Could not create output filename",
@ -294,6 +316,7 @@ char *AslMessages [] = {
/* ASL_MSG_RESERVED_ARG_COUNT_HI */ "Reserved method has too many arguments", /* ASL_MSG_RESERVED_ARG_COUNT_HI */ "Reserved method has too many arguments",
/* ASL_MSG_RESERVED_ARG_COUNT_LO */ "Reserved method has too few arguments", /* ASL_MSG_RESERVED_ARG_COUNT_LO */ "Reserved method has too few arguments",
/* ASL_MSG_RESERVED_METHOD */ "Reserved name must be a control method", /* ASL_MSG_RESERVED_METHOD */ "Reserved name must be a control method",
/* ASL_MSG_RESERVED_NO_RETURN_VAL */ "Reserved method should not return a value",
/* ASL_MSG_RESERVED_OPERAND_TYPE */ "Invalid object type for reserved name", /* ASL_MSG_RESERVED_OPERAND_TYPE */ "Invalid object type for reserved name",
/* ASL_MSG_RESERVED_RETURN_VALUE */ "Reserved method must return a value", /* ASL_MSG_RESERVED_RETURN_VALUE */ "Reserved method must return a value",
/* ASL_MSG_RESERVED_USE */ "Invalid use of reserved name", /* ASL_MSG_RESERVED_USE */ "Invalid use of reserved name",
@ -302,65 +325,45 @@ char *AslMessages [] = {
/* ASL_MSG_RESOURCE_INDEX */ "Missing ResourceSourceIndex (required)", /* ASL_MSG_RESOURCE_INDEX */ "Missing ResourceSourceIndex (required)",
/* ASL_MSG_RESOURCE_LIST */ "Too many resource items (internal error)", /* ASL_MSG_RESOURCE_LIST */ "Too many resource items (internal error)",
/* ASL_MSG_RESOURCE_SOURCE */ "Missing ResourceSource string (required)", /* ASL_MSG_RESOURCE_SOURCE */ "Missing ResourceSource string (required)",
/* ASL_MSG_RESULT_NOT_USED */ "Result is not used, operator has no effect",
/* ASL_MSG_RETURN_TYPES */ "Not all control paths return a value", /* ASL_MSG_RETURN_TYPES */ "Not all control paths return a value",
/* ASL_MSG_SCOPE_FWD_REF */ "Forward references from Scope operator not allowed", /* ASL_MSG_SCOPE_FWD_REF */ "Forward references from Scope operator not allowed",
/* ASL_MSG_SCOPE_TYPE */ "Existing object has invalid type for Scope operator", /* ASL_MSG_SCOPE_TYPE */ "Existing object has invalid type for Scope operator",
/* ASL_MSG_SEEK */ "Could not seek file", /* ASL_MSG_SEEK */ "Could not seek file",
/* ASL_MSG_SERIALIZED */ "Control Method marked Serialized",
/* ASL_MSG_SINGLE_NAME_OPTIMIZATION */ "NamePath optimized to NameSeg (uses run-time search path)", /* ASL_MSG_SINGLE_NAME_OPTIMIZATION */ "NamePath optimized to NameSeg (uses run-time search path)",
/* ASL_MSG_SOME_NO_RETVAL */ "Called method may not always return a value", /* ASL_MSG_SOME_NO_RETVAL */ "Called method may not always return a value",
/* ASL_MSG_STRING_LENGTH */ "String literal too long",
/* ASL_MSG_SWITCH_TYPE */ "Switch expression is not a static Integer/Buffer/String data type, defaulting to Integer", /* ASL_MSG_SWITCH_TYPE */ "Switch expression is not a static Integer/Buffer/String data type, defaulting to Integer",
/* ASL_MSG_SYNC_LEVEL */ "SyncLevel must be in the range 0-15", /* ASL_MSG_SYNC_LEVEL */ "SyncLevel must be in the range 0-15",
/* ASL_MSG_SYNTAX */ "", /* ASL_MSG_SYNTAX */ "",
/* ASL_MSG_TABLE_SIGNATURE */ "Invalid Table Signature", /* ASL_MSG_TABLE_SIGNATURE */ "Invalid Table Signature",
/* ASL_MSG_TAG_LARGER */ "ResourceTag larger than Field",
/* ASL_MSG_TAG_SMALLER */ "ResourceTag smaller than Field",
/* ASL_MSG_TIMEOUT */ "Result is not used, possible operator timeout will be missed",
/* ASL_MSG_TOO_MANY_TEMPS */ "Method requires too many temporary variables (_T_x)", /* ASL_MSG_TOO_MANY_TEMPS */ "Method requires too many temporary variables (_T_x)",
/* ASL_MSG_UNKNOWN_RESERVED_NAME */ "Unknown reserved name", /* ASL_MSG_UNKNOWN_RESERVED_NAME */ "Unknown reserved name",
/* ASL_MSG_UNREACHABLE_CODE */ "Statement is unreachable", /* ASL_MSG_UNREACHABLE_CODE */ "Statement is unreachable",
/* ASL_MSG_UNSUPPORTED */ "Unsupported feature", /* ASL_MSG_UNSUPPORTED */ "Unsupported feature",
/* ASL_MSG_UPPER_CASE */ "Non-hex letters must be upper case",
/* ASL_MSG_VENDOR_LIST */ "Too many vendor data bytes (7 max)", /* ASL_MSG_VENDOR_LIST */ "Too many vendor data bytes (7 max)",
/* ASL_MSG_WRITE */ "Could not write file", /* ASL_MSG_WRITE */ "Could not write file",
/* ASL_MSG_MULTIPLE_DEFAULT */ "More than one Default statement within Switch construct",
/* ASL_MSG_TIMEOUT */ "Result is not used, possible operator timeout will be missed",
/* ASL_MSG_RESULT_NOT_USED */ "Result is not used, operator has no effect",
/* ASL_MSG_NOT_REFERENCED */ "Namespace object is not referenced",
/* ASL_MSG_NON_ZERO */ "Operand evaluates to zero",
/* ASL_MSG_STRING_LENGTH */ "String literal too long",
/* ASL_MSG_SERIALIZED */ "Control Method marked Serialized",
/* ASL_MSG_COMPILER_RESERVED */ "Use of compiler reserved name",
/* ASL_MSG_NAMED_OBJECT_IN_WHILE */ "Creating a named object in a While loop",
/* ASL_MSG_LOCAL_OUTSIDE_METHOD */ "Local or Arg used outside a control method",
/* ASL_MSG_ALIGNMENT */ "Must be a multiple of alignment/granularity value",
/* ASL_MSG_ISA_ADDRESS */ "Maximum 10-bit ISA address (0x3FF)",
/* ASL_MSG_INVALID_MIN_MAX */ "Address Min is greater than Address Max",
/* ASL_MSG_INVALID_LENGTH */ "Length is larger than Min/Max window",
/* ASL_MSG_INVALID_LENGTH_FIXED */ "Length is not equal to fixed Min/Max window",
/* ASL_MSG_INVALID_GRANULARITY */ "Granularity must be zero or a power of two minus one",
/* ASL_MSG_INVALID_GRAN_FIXED */ "Granularity must be zero for fixed Min/Max",
/* ASL_MSG_INVALID_ACCESS_SIZE */ "Invalid AccessSize (Maximum is 4 - QWord access)",
/* ASL_MSG_INVALID_ADDR_FLAGS */ "Invalid combination of Length and Min/Max fixed flags",
/* ASL_MSG_NULL_DESCRIPTOR */ "Min/Max/Length/Gran are all zero, but no resource tag",
/* ASL_MSG_UPPER_CASE */ "Non-hex letters must be upper case",
/* ASL_MSG_HID_LENGTH */ "_HID string must be exactly 7 or 8 characters",
/* ASL_MSG_NULL_STRING */ "Invalid zero-length (null) string",
/* ASL_MSG_LEADING_ASTERISK */ "Invalid leading asterisk",
/* ASL_MSG_RESERVED_NO_RETURN_VAL */ "Reserved method should not return a value",
/* ASL_MSG_GPE_NAME_CONFLICT */ "Name conflicts with a previous GPE method",
/* ASL_MSG_NO_REGION */ "_REG has no corresponding Operation Region",
/* These messages are used by the data table compiler only */ /* These messages are used by the data table compiler only */
/* ASL_MSG_INVALID_FIELD_NAME */ "Invalid Field Name",
/* ASL_MSG_INTEGER_SIZE */ "Integer too large for target",
/* ASL_MSG_INVALID_HEX_INTEGER */ "Invalid hex integer constant",
/* ASL_MSG_BUFFER_ELEMENT */ "Invalid element in buffer initializer list", /* ASL_MSG_BUFFER_ELEMENT */ "Invalid element in buffer initializer list",
/* ASL_MSG_RESERVED_VALUE */ "Reserved field must be zero", /* ASL_MSG_DIVIDE_BY_ZERO */ "Expression contains divide-by-zero",
/* ASL_MSG_FLAG_VALUE */ "Flag value is too large", /* ASL_MSG_FLAG_VALUE */ "Flag value is too large",
/* ASL_MSG_ZERO_VALUE */ "Value must be non-zero", /* ASL_MSG_INTEGER_SIZE */ "Integer too large for target",
/* ASL_MSG_UNKNOWN_TABLE */ "Unknown ACPI table signature",
/* ASL_MSG_UNKNOWN_SUBTABLE */ "Unknown subtable type",
/* ASL_MSG_OEM_TABLE */ "OEM table - unknown contents",
/* ASL_MSG_UNKNOWN_LABEL */ "Label is undefined",
/* ASL_MSG_INVALID_EXPRESSION */ "Invalid expression", /* ASL_MSG_INVALID_EXPRESSION */ "Invalid expression",
/* ASL_MSG_DIVIDE_BY_ZERO */ "Expression contains divide-by-zero" /* ASL_MSG_INVALID_FIELD_NAME */ "Invalid Field Name",
/* ASL_MSG_INVALID_HEX_INTEGER */ "Invalid hex integer constant",
/* ASL_MSG_OEM_TABLE */ "OEM table - unknown contents",
/* ASL_MSG_RESERVED_VALUE */ "Reserved field must be zero",
/* ASL_MSG_UNKNOWN_LABEL */ "Label is undefined",
/* ASL_MSG_UNKNOWN_SUBTABLE */ "Unknown subtable type",
/* ASL_MSG_UNKNOWN_TABLE */ "Unknown ACPI table signature",
/* ASL_MSG_ZERO_VALUE */ "Value must be non-zero"
}; };

View File

@ -761,6 +761,7 @@ OpnDoPackage (
if ((PackageLengthOp->Asl.ParseOpcode == PARSEOP_INTEGER) || if ((PackageLengthOp->Asl.ParseOpcode == PARSEOP_INTEGER) ||
(PackageLengthOp->Asl.ParseOpcode == PARSEOP_QWORDCONST) || (PackageLengthOp->Asl.ParseOpcode == PARSEOP_QWORDCONST) ||
(PackageLengthOp->Asl.ParseOpcode == PARSEOP_ZERO) ||
(PackageLengthOp->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)) (PackageLengthOp->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG))
{ {
if (!PackageLength) if (!PackageLength)
@ -778,8 +779,11 @@ OpnDoPackage (
* If the PackageLength is a constant <= 255, we can change the * If the PackageLength is a constant <= 255, we can change the
* AML opcode from VarPackage to a simple (ACPI 1.0) Package opcode. * AML opcode from VarPackage to a simple (ACPI 1.0) Package opcode.
*/ */
if ((Op->Asl.Child->Asl.ParseOpcode == PARSEOP_INTEGER) && if (((Op->Asl.Child->Asl.ParseOpcode == PARSEOP_INTEGER) &&
(Op->Asl.Child->Asl.Value.Integer <= 255)) (Op->Asl.Child->Asl.Value.Integer <= 255)) ||
(Op->Asl.Child->Asl.ParseOpcode == PARSEOP_ONE) ||
(Op->Asl.Child->Asl.ParseOpcode == PARSEOP_ONES)||
(Op->Asl.Child->Asl.ParseOpcode == PARSEOP_ZERO))
{ {
Op->Asl.AmlOpcode = AML_PACKAGE_OP; Op->Asl.AmlOpcode = AML_PACKAGE_OP;
Op->Asl.ParseOpcode = PARSEOP_PACKAGE; Op->Asl.ParseOpcode = PARSEOP_PACKAGE;

View File

@ -658,6 +658,7 @@ ApCheckObjectType (
break; break;
case PARSEOP_PACKAGE: case PARSEOP_PACKAGE:
case PARSEOP_VAR_PACKAGE:
ReturnBtype = ACPI_RTYPE_PACKAGE; ReturnBtype = ACPI_RTYPE_PACKAGE;
break; break;

View File

@ -437,13 +437,14 @@ RsAllocateResourceNode (
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: RsCreateBitField * FUNCTION: RsCreateResourceField
* *
* PARAMETERS: Op - Resource field node * PARAMETERS: Op - Resource field node
* Name - Name of the field (Used only to reference * Name - Name of the field (Used only to reference
* the field in the ASL, not in the AML) * the field in the ASL, not in the AML)
* ByteOffset - Offset from the field start * ByteOffset - Offset from the field start
* BitOffset - Additional bit offset * BitOffset - Additional bit offset
* BitLength - Number of bits in the field
* *
* RETURN: None, sets fields within the input node * RETURN: None, sets fields within the input node
* *
@ -454,46 +455,20 @@ RsAllocateResourceNode (
******************************************************************************/ ******************************************************************************/
void void
RsCreateBitField ( RsCreateResourceField (
ACPI_PARSE_OBJECT *Op, ACPI_PARSE_OBJECT *Op,
char *Name, char *Name,
UINT32 ByteOffset, UINT32 ByteOffset,
UINT32 BitOffset) UINT32 BitOffset,
UINT32 BitLength)
{ {
Op->Asl.ExternalName = Name; Op->Asl.ExternalName = Name;
Op->Asl.Value.Integer = ((UINT64) ByteOffset * 8) + BitOffset; Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD;
Op->Asl.CompileFlags |= (NODE_IS_RESOURCE_FIELD | NODE_IS_BIT_OFFSET);
}
/******************************************************************************* Op->Asl.Value.Tag.BitOffset = (ByteOffset * 8) + BitOffset;
* Op->Asl.Value.Tag.BitLength = BitLength;
* FUNCTION: RsCreateByteField
*
* PARAMETERS: Op - Resource field node
* Name - Name of the field (Used only to reference
* the field in the ASL, not in the AML)
* ByteOffset - Offset from the field start
*
* RETURN: None, sets fields within the input node
*
* DESCRIPTION: Utility function to generate a named byte field within a
* resource descriptor. Mark a node as 1) a field in a resource
* descriptor, and 2) set the value to be a BYTE offset
*
******************************************************************************/
void
RsCreateByteField (
ACPI_PARSE_OBJECT *Op,
char *Name,
UINT32 ByteOffset)
{
Op->Asl.ExternalName = Name;
Op->Asl.Value.Integer = ByteOffset;
Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD;
} }

View File

@ -179,7 +179,7 @@ RsDoMemory24Descriptor (
case 1: /* Min Address */ case 1: /* Min Address */
Descriptor->Memory24.Minimum = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Memory24.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -187,7 +187,7 @@ RsDoMemory24Descriptor (
case 2: /* Max Address */ case 2: /* Max Address */
Descriptor->Memory24.Maximum = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Memory24.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -195,14 +195,14 @@ RsDoMemory24Descriptor (
case 3: /* Alignment */ case 3: /* Alignment */
Descriptor->Memory24.Alignment = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Memory24.Alignment = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_ALIGNMENT, RsCreateWordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Alignment)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Alignment));
break; break;
case 4: /* Length */ case 4: /* Length */
Descriptor->Memory24.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Memory24.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -286,7 +286,7 @@ RsDoMemory32Descriptor (
case 1: /* Min Address */ case 1: /* Min Address */
Descriptor->Memory32.Minimum = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->Memory32.Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -294,7 +294,7 @@ RsDoMemory32Descriptor (
case 2: /* Max Address */ case 2: /* Max Address */
Descriptor->Memory32.Maximum = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->Memory32.Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -302,7 +302,7 @@ RsDoMemory32Descriptor (
case 3: /* Alignment */ case 3: /* Alignment */
Descriptor->Memory32.Alignment = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->Memory32.Alignment = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_ALIGNMENT, RsCreateDwordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment));
AlignOp = InitializerOp; AlignOp = InitializerOp;
break; break;
@ -310,7 +310,7 @@ RsDoMemory32Descriptor (
case 4: /* Length */ case 4: /* Length */
Descriptor->Memory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->Memory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -390,14 +390,14 @@ RsDoMemory32FixedDescriptor (
case 1: /* Address */ case 1: /* Address */
Descriptor->FixedMemory32.Address = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->FixedMemory32.Address = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_BASEADDRESS, RsCreateDwordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.Address)); CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.Address));
break; break;
case 2: /* Length */ case 2: /* Length */
Descriptor->FixedMemory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->FixedMemory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength));
break; break;

View File

@ -102,8 +102,8 @@ RsDoDmaDescriptor (
case 0: /* DMA type */ case 0: /* DMA type */
RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 5, 0); RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 5, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_DMATYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_DMATYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 5); CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 5, 2);
break; break;
case 1: /* Bus Master */ case 1: /* Bus Master */
@ -116,8 +116,8 @@ RsDoDmaDescriptor (
case 2: /* Xfer Type (transfer width) */ case 2: /* Xfer Type (transfer width) */
RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 0, 0); RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 0, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_XFERTYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_XFERTYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 0, 2);
break; break;
case 3: /* Name */ case 3: /* Name */
@ -223,7 +223,7 @@ RsDoFixedIoDescriptor (
Descriptor->FixedIo.Address = Descriptor->FixedIo.Address =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_BASEADDRESS, RsCreateWordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address)); CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address));
AddressOp = InitializerOp; AddressOp = InitializerOp;
break; break;
@ -314,7 +314,7 @@ RsDoIoDescriptor (
Descriptor->Io.Minimum = Descriptor->Io.Minimum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -323,7 +323,7 @@ RsDoIoDescriptor (
Descriptor->Io.Maximum = Descriptor->Io.Maximum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -480,7 +480,7 @@ RsDoIrqDescriptor (
/* Create a named field at the start of the list */ /* Create a named field at the start of the list */
RsCreateByteField (InitializerOp, ACPI_RESTAG_INTERRUPT, RsCreateWordField (InitializerOp, ACPI_RESTAG_INTERRUPT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask)); CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask));
} }
break; break;
@ -580,7 +580,7 @@ RsDoIrqNoFlagsDescriptor (
/* Create a named field at the start of the list */ /* Create a named field at the start of the list */
RsCreateByteField (InitializerOp, ACPI_RESTAG_INTERRUPT, RsCreateWordField (InitializerOp, ACPI_RESTAG_INTERRUPT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask)); CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask));
} }
break; break;

View File

@ -120,7 +120,7 @@ RsDoGeneralRegisterDescriptor (
case 3: /* Register Address */ case 3: /* Register Address */
Descriptor->GenericReg.Address = InitializerOp->Asl.Value.Integer; Descriptor->GenericReg.Address = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_ADDRESS, RsCreateQwordField (InitializerOp, ACPI_RESTAG_ADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address)); CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address));
break; break;
@ -354,7 +354,7 @@ RsDoInterruptDescriptor (
/* Create a named field at the start of the list */ /* Create a named field at the start of the list */
RsCreateByteField (InitializerOp, ACPI_RESTAG_INTERRUPT, RsCreateDwordField (InitializerOp, ACPI_RESTAG_INTERRUPT,
CurrentByteOffset + CurrentByteOffset +
ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0])); ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]));
} }

View File

@ -144,15 +144,15 @@ RsDoDwordIoDescriptor (
case 4: /* Range Type */ case 4: /* Range Type */
RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 0, 3); RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 0, 3);
RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 0, 2);
break; break;
case 5: /* Address Granularity */ case 5: /* Address Granularity */
Descriptor->Address32.Granularity = Descriptor->Address32.Granularity =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -161,7 +161,7 @@ RsDoDwordIoDescriptor (
Descriptor->Address32.Minimum = Descriptor->Address32.Minimum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -170,7 +170,7 @@ RsDoDwordIoDescriptor (
Descriptor->Address32.Maximum = Descriptor->Address32.Maximum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -179,7 +179,7 @@ RsDoDwordIoDescriptor (
Descriptor->Address32.TranslationOffset = Descriptor->Address32.TranslationOffset =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
break; break;
@ -187,7 +187,7 @@ RsDoDwordIoDescriptor (
Descriptor->Address32.AddressLength = Descriptor->Address32.AddressLength =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -376,8 +376,8 @@ RsDoDwordMemoryDescriptor (
case 4: /* Memory Type */ case 4: /* Memory Type */
RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 1, 0); RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 1, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMTYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMTYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 1); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 1, 2);
break; break;
case 5: /* Read/Write Type */ case 5: /* Read/Write Type */
@ -391,7 +391,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.Granularity = Descriptor->Address32.Granularity =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -400,7 +400,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.Minimum = Descriptor->Address32.Minimum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -409,7 +409,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.Maximum = Descriptor->Address32.Maximum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -418,7 +418,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.TranslationOffset = Descriptor->Address32.TranslationOffset =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
break; break;
@ -426,7 +426,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.AddressLength = Descriptor->Address32.AddressLength =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -488,8 +488,8 @@ RsDoDwordMemoryDescriptor (
case 14: /* Address Range */ case 14: /* Address Range */
RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 3, 0); RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 3, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 3); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 3, 2);
break; break;
case 15: /* Type */ case 15: /* Type */
@ -623,7 +623,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.Granularity = Descriptor->Address32.Granularity =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -632,7 +632,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.Minimum = Descriptor->Address32.Minimum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -641,7 +641,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.Maximum = Descriptor->Address32.Maximum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -650,7 +650,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.TranslationOffset = Descriptor->Address32.TranslationOffset =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
break; break;
@ -658,7 +658,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.AddressLength = Descriptor->Address32.AddressLength =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;

View File

@ -136,14 +136,14 @@ RsDoExtendedIoDescriptor (
case 4: /* Range Type */ case 4: /* Range Type */
RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 0, 3); RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 0, 3);
RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 0, 2);
break; break;
case 5: /* Address Granularity */ case 5: /* Address Granularity */
Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -151,7 +151,7 @@ RsDoExtendedIoDescriptor (
case 6: /* Address Min */ case 6: /* Address Min */
Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -159,7 +159,7 @@ RsDoExtendedIoDescriptor (
case 7: /* Address Max */ case 7: /* Address Max */
Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -167,14 +167,14 @@ RsDoExtendedIoDescriptor (
case 8: /* Translation Offset */ case 8: /* Translation Offset */
Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
break; break;
case 9: /* Address Length */ case 9: /* Address Length */
Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -182,7 +182,7 @@ RsDoExtendedIoDescriptor (
case 10: /* Type-Specific Attributes */ case 10: /* Type-Specific Attributes */
Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break; break;
@ -309,8 +309,8 @@ RsDoExtendedMemoryDescriptor (
case 4: /* Memory Type */ case 4: /* Memory Type */
RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 1, 0); RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 1, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMTYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMTYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 1); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 1, 2);
break; break;
case 5: /* Read/Write Type */ case 5: /* Read/Write Type */
@ -323,7 +323,7 @@ RsDoExtendedMemoryDescriptor (
case 6: /* Address Granularity */ case 6: /* Address Granularity */
Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -331,7 +331,7 @@ RsDoExtendedMemoryDescriptor (
case 7: /* Min Address */ case 7: /* Min Address */
Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -339,7 +339,7 @@ RsDoExtendedMemoryDescriptor (
case 8: /* Max Address */ case 8: /* Max Address */
Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -347,14 +347,14 @@ RsDoExtendedMemoryDescriptor (
case 9: /* Translation Offset */ case 9: /* Translation Offset */
Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
break; break;
case 10: /* Address Length */ case 10: /* Address Length */
Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -362,7 +362,7 @@ RsDoExtendedMemoryDescriptor (
case 11: /* Type-Specific Attributes */ case 11: /* Type-Specific Attributes */
Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break; break;
@ -375,8 +375,8 @@ RsDoExtendedMemoryDescriptor (
case 13: /* Address Range */ case 13: /* Address Range */
RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 3, 0); RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 3, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 3); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 3, 2);
break; break;
case 14: /* Type */ case 14: /* Type */
@ -501,7 +501,7 @@ RsDoExtendedSpaceDescriptor (
case 6: /* Address Granularity */ case 6: /* Address Granularity */
Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -509,7 +509,7 @@ RsDoExtendedSpaceDescriptor (
case 7: /* Min Address */ case 7: /* Min Address */
Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -517,7 +517,7 @@ RsDoExtendedSpaceDescriptor (
case 8: /* Max Address */ case 8: /* Max Address */
Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -525,14 +525,14 @@ RsDoExtendedSpaceDescriptor (
case 9: /* Translation Offset */ case 9: /* Translation Offset */
Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
break; break;
case 10: /* Address Length */ case 10: /* Address Length */
Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -540,7 +540,7 @@ RsDoExtendedSpaceDescriptor (
case 11: /* Type-Specific Attributes */ case 11: /* Type-Specific Attributes */
Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break; break;

View File

@ -144,14 +144,14 @@ RsDoQwordIoDescriptor (
case 4: /* Range Type */ case 4: /* Range Type */
RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 0, 3); RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 0, 3);
RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 0, 2);
break; break;
case 5: /* Address Granularity */ case 5: /* Address Granularity */
Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -159,7 +159,7 @@ RsDoQwordIoDescriptor (
case 6: /* Address Min */ case 6: /* Address Min */
Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -167,7 +167,7 @@ RsDoQwordIoDescriptor (
case 7: /* Address Max */ case 7: /* Address Max */
Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -182,7 +182,7 @@ RsDoQwordIoDescriptor (
case 9: /* Address Length */ case 9: /* Address Length */
Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -366,8 +366,8 @@ RsDoQwordMemoryDescriptor (
case 4: /* Memory Type */ case 4: /* Memory Type */
RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 1, 0); RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 1, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMTYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMTYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 1); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 1, 2);
break; break;
case 5: /* Read/Write Type */ case 5: /* Read/Write Type */
@ -380,7 +380,7 @@ RsDoQwordMemoryDescriptor (
case 6: /* Address Granularity */ case 6: /* Address Granularity */
Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -388,7 +388,7 @@ RsDoQwordMemoryDescriptor (
case 7: /* Min Address */ case 7: /* Min Address */
Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -396,7 +396,7 @@ RsDoQwordMemoryDescriptor (
case 8: /* Max Address */ case 8: /* Max Address */
Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -404,14 +404,14 @@ RsDoQwordMemoryDescriptor (
case 9: /* Translation Offset */ case 9: /* Translation Offset */
Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
break; break;
case 10: /* Address Length */ case 10: /* Address Length */
Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -473,8 +473,8 @@ RsDoQwordMemoryDescriptor (
case 14: /* Address Range */ case 14: /* Address Range */
RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 3, 0); RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 3, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 3); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 3, 2);
break; break;
case 15: /* Type */ case 15: /* Type */
@ -607,7 +607,7 @@ RsDoQwordSpaceDescriptor (
case 6: /* Address Granularity */ case 6: /* Address Granularity */
Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -615,7 +615,7 @@ RsDoQwordSpaceDescriptor (
case 7: /* Min Address */ case 7: /* Min Address */
Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -623,7 +623,7 @@ RsDoQwordSpaceDescriptor (
case 8: /* Max Address */ case 8: /* Max Address */
Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -631,14 +631,14 @@ RsDoQwordSpaceDescriptor (
case 9: /* Translation Offset */ case 9: /* Translation Offset */
Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
break; break;
case 10: /* Address Length */ case 10: /* Address Length */
Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;

View File

@ -144,14 +144,14 @@ RsDoWordIoDescriptor (
case 4: /* Range Type */ case 4: /* Range Type */
RsSetFlagBits (&Descriptor->Address16.SpecificFlags, InitializerOp, 0, 3); RsSetFlagBits (&Descriptor->Address16.SpecificFlags, InitializerOp, 0, 3);
RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.SpecificFlags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.SpecificFlags), 0, 2);
break; break;
case 5: /* Address Granularity */ case 5: /* Address Granularity */
Descriptor->Address16.Granularity = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -159,7 +159,7 @@ RsDoWordIoDescriptor (
case 6: /* Address Min */ case 6: /* Address Min */
Descriptor->Address16.Minimum = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -167,7 +167,7 @@ RsDoWordIoDescriptor (
case 7: /* Address Max */ case 7: /* Address Max */
Descriptor->Address16.Maximum = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -175,14 +175,14 @@ RsDoWordIoDescriptor (
case 8: /* Translation Offset */ case 8: /* Translation Offset */
Descriptor->Address16.TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
break; break;
case 9: /* Address Length */ case 9: /* Address Length */
Descriptor->Address16.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -367,7 +367,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.Granularity = Descriptor->Address16.Granularity =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -376,7 +376,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.Minimum = Descriptor->Address16.Minimum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -385,7 +385,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.Maximum = Descriptor->Address16.Maximum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -394,7 +394,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.TranslationOffset = Descriptor->Address16.TranslationOffset =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
break; break;
@ -402,7 +402,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.AddressLength = Descriptor->Address16.AddressLength =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -584,7 +584,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.Granularity = Descriptor->Address16.Granularity =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -593,7 +593,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.Minimum = Descriptor->Address16.Minimum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -602,7 +602,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.Maximum = Descriptor->Address16.Maximum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -611,7 +611,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.TranslationOffset = Descriptor->Address16.TranslationOffset =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
break; break;
@ -619,7 +619,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.AddressLength = Descriptor->Address16.AddressLength =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;

View File

@ -287,9 +287,6 @@ TrGetNodeFlagName (
case NODE_METHOD_TYPED: case NODE_METHOD_TYPED:
return ("NODE_METHOD_TYPED"); return ("NODE_METHOD_TYPED");
case NODE_IS_BIT_OFFSET:
return ("NODE_IS_BIT_OFFSET");
case NODE_COMPILE_TIME_CONST: case NODE_COMPILE_TIME_CONST:
return ("NODE_COMPILE_TIME_CONST"); return ("NODE_COMPILE_TIME_CONST");

View File

@ -68,7 +68,7 @@
#define NODE_METHOD_SOME_NO_RETVAL 0x00000200 #define NODE_METHOD_SOME_NO_RETVAL 0x00000200
#define NODE_RESULT_NOT_USED 0x00000400 #define NODE_RESULT_NOT_USED 0x00000400
#define NODE_METHOD_TYPED 0x00000800 #define NODE_METHOD_TYPED 0x00000800
#define NODE_IS_BIT_OFFSET 0x00001000 #define NODE_UNUSED_FLAG 0x00001000
#define NODE_COMPILE_TIME_CONST 0x00002000 #define NODE_COMPILE_TIME_CONST 0x00002000
#define NODE_IS_TERM_ARG 0x00004000 #define NODE_IS_TERM_ARG 0x00004000
#define NODE_WAS_ONES_OP 0x00008000 #define NODE_WAS_ONES_OP 0x00008000
@ -144,8 +144,10 @@ typedef struct asl_file_status
} ASL_FILE_STATUS; } ASL_FILE_STATUS;
/* File types */ /*
* File types. Note: Any changes to this table must also be reflected
* in the AslFileTypeNames array.
*/
typedef enum typedef enum
{ {
ASL_FILE_STDOUT = 0, ASL_FILE_STDOUT = 0,

View File

@ -53,11 +53,31 @@
#define _COMPONENT ACPI_COMPILER #define _COMPONENT ACPI_COMPILER
ACPI_MODULE_NAME ("aslutils") ACPI_MODULE_NAME ("aslutils")
char AslHexLookup[] = char AslHexLookup[] =
{ {
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
}; };
/* Table below must match ASL_FILE_TYPES in asltypes.h */
static const char *AslFileTypeNames [ASL_NUM_FILES] =
{
"stdout: ",
"stderr: ",
"Table Input: ",
"Binary Output:",
"Source Output:",
"Listing File: ",
"Hex Dump: ",
"Namespace: ",
"Debug File: ",
"ASM Source: ",
"C Source: ",
"ASM Include: ",
"C Include: "
};
/* Local prototypes */ /* Local prototypes */
@ -451,35 +471,40 @@ void
UtDisplaySummary ( UtDisplaySummary (
UINT32 FileId) UINT32 FileId)
{ {
UINT32 i;
if (FileId != ASL_FILE_STDOUT) if (FileId != ASL_FILE_STDOUT)
{ {
/* Compiler name and version number */ /* Compiler name and version number */
FlPrintFile (FileId, "%s version %X%s [%s]\n", FlPrintFile (FileId, "%s version %X%s [%s]\n\n",
ASL_COMPILER_NAME, (UINT32) ACPI_CA_VERSION, ACPI_WIDTH, __DATE__); ASL_COMPILER_NAME, (UINT32) ACPI_CA_VERSION, ACPI_WIDTH, __DATE__);
} }
/* Summary of main input and output files */
if (Gbl_FileType == ASL_INPUT_TYPE_ASCII_DATA) if (Gbl_FileType == ASL_INPUT_TYPE_ASCII_DATA)
{ {
FlPrintFile (FileId, FlPrintFile (FileId,
"Table Input: %s - %u lines, %u bytes, %u fields\n", "%-14s %s - %u lines, %u bytes, %u fields\n",
"Table Input:",
Gbl_Files[ASL_FILE_INPUT].Filename, Gbl_CurrentLineNumber, Gbl_Files[ASL_FILE_INPUT].Filename, Gbl_CurrentLineNumber,
Gbl_InputByteCount, Gbl_InputFieldCount); Gbl_InputByteCount, Gbl_InputFieldCount);
if ((Gbl_ExceptionCount[ASL_ERROR] == 0) || (Gbl_IgnoreErrors)) if ((Gbl_ExceptionCount[ASL_ERROR] == 0) || (Gbl_IgnoreErrors))
{ {
FlPrintFile (FileId, FlPrintFile (FileId,
"Binary Output: %s - %u bytes\n\n", "%-14s %s - %u bytes\n",
"Binary Output:",
Gbl_Files[ASL_FILE_AML_OUTPUT].Filename, Gbl_TableLength); Gbl_Files[ASL_FILE_AML_OUTPUT].Filename, Gbl_TableLength);
} }
} }
else else
{ {
/* Input/Output summary */
FlPrintFile (FileId, FlPrintFile (FileId,
"ASL Input: %s - %u lines, %u bytes, %u keywords\n", "%-14s %s - %u lines, %u bytes, %u keywords\n",
"ASL Input:",
Gbl_Files[ASL_FILE_INPUT].Filename, Gbl_CurrentLineNumber, Gbl_Files[ASL_FILE_INPUT].Filename, Gbl_CurrentLineNumber,
Gbl_InputByteCount, TotalKeywords); Gbl_InputByteCount, TotalKeywords);
@ -488,16 +513,38 @@ UtDisplaySummary (
if ((Gbl_ExceptionCount[ASL_ERROR] == 0) || (Gbl_IgnoreErrors)) if ((Gbl_ExceptionCount[ASL_ERROR] == 0) || (Gbl_IgnoreErrors))
{ {
FlPrintFile (FileId, FlPrintFile (FileId,
"AML Output: %s - %u bytes, %u named objects, %u executable opcodes\n\n", "%-14s %s - %u bytes, %u named objects, %u executable opcodes\n",
"AML Output:",
Gbl_Files[ASL_FILE_AML_OUTPUT].Filename, Gbl_TableLength, Gbl_Files[ASL_FILE_AML_OUTPUT].Filename, Gbl_TableLength,
TotalNamedObjects, TotalExecutableOpcodes); TotalNamedObjects, TotalExecutableOpcodes);
} }
} }
/* Display summary of any optional files */
for (i = ASL_FILE_SOURCE_OUTPUT; i <= ASL_MAX_FILE_TYPE; i++)
{
if (!Gbl_Files[i].Filename || !Gbl_Files[i].Handle)
{
continue;
}
/* .SRC is a temp file unless specifically requested */
if ((i == ASL_FILE_SOURCE_OUTPUT) && (!Gbl_SourceOutputFlag))
{
continue;
}
FlPrintFile (FileId, "%14s %s - %u bytes\n",
AslFileTypeNames [i],
Gbl_Files[i].Filename, FlGetFileSize (i));
}
/* Error summary */ /* Error summary */
FlPrintFile (FileId, FlPrintFile (FileId,
"Compilation complete. %u Errors, %u Warnings, %u Remarks", "\nCompilation complete. %u Errors, %u Warnings, %u Remarks",
Gbl_ExceptionCount[ASL_ERROR], Gbl_ExceptionCount[ASL_ERROR],
Gbl_ExceptionCount[ASL_WARNING] + Gbl_ExceptionCount[ASL_WARNING] +
Gbl_ExceptionCount[ASL_WARNING2] + Gbl_ExceptionCount[ASL_WARNING2] +

View File

@ -329,7 +329,7 @@ DtCompileDataTable (
/* Validate the signature via the ACPI table list */ /* Validate the signature via the ACPI table list */
TableData = AcpiDmGetTableData (Signature); TableData = AcpiDmGetTableData (Signature);
if (!TableData) if (!TableData || Gbl_CompileGeneric)
{ {
DtCompileGeneric ((void **) FieldList); DtCompileGeneric ((void **) FieldList);
goto Out; goto Out;

View File

@ -30,20 +30,54 @@ PROGS = acpibin acpiexec acpihelp acpinames acpisrc acpixtract iasl
HOST = _CYGWIN HOST = _CYGWIN
CC = gcc CC = gcc
COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $? COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $<
# #
# Common defines # Common defines
# #
ACPICA_SRC = ../../../source
ACPICA_COMMON = $(ACPICA_SRC)/common
ACPICA_CORE = $(ACPICA_SRC)/components
ACPICA_TOOLS = $(ACPICA_SRC)/tools
ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers
ASL_COMPILER = $(ACPICA_SRC)/compiler
COPYPROG = @mkdir -p ../bin; rm -f ../bin/$(PROG); cp --remove-destination $(PROG) ../bin COPYPROG = @mkdir -p ../bin; rm -f ../bin/$(PROG); cp --remove-destination $(PROG) ../bin
INSTALLDIR = /usr/bin INSTALLDIR = /usr/bin
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR) INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR)
#
# Main ACPICA source directories
#
ACPICA_SRC = ../../../source
ACPICA_COMMON = $(ACPICA_SRC)/common
ACPICA_TOOLS = $(ACPICA_SRC)/tools
ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers
ACPICA_CORE = $(ACPICA_SRC)/components
ACPICA_INCLUDE = $(ACPICA_SRC)/include
ACPICA_DEBUGGER = $(ACPICA_CORE)/debugger
ACPICA_DISASSEMBLER = $(ACPICA_CORE)/disassembler
ACPICA_DISPATCHER = $(ACPICA_CORE)/dispatcher
ACPICA_EVENTS = $(ACPICA_CORE)/events
ACPICA_EXECUTER = $(ACPICA_CORE)/executer
ACPICA_HARDWARE = $(ACPICA_CORE)/hardware
ACPICA_NAMESPACE = $(ACPICA_CORE)/namespace
ACPICA_PARSER = $(ACPICA_CORE)/parser
ACPICA_RESOURCES = $(ACPICA_CORE)/resources
ACPICA_TABLES = $(ACPICA_CORE)/tables
ACPICA_UTILITIES = $(ACPICA_CORE)/utilities
#
# ACPICA tool and utility source directories
#
ACPIBIN = $(ACPICA_TOOLS)/acpibin
ACPIEXEC = $(ACPICA_TOOLS)/acpiexec
ACPIHELP = $(ACPICA_TOOLS)/acpihelp
ACPINAMES = $(ACPICA_TOOLS)/acpinames
ACPISRC = $(ACPICA_TOOLS)/acpisrc
ACPIXTRACT = $(ACPICA_TOOLS)/acpixtract
ASL_COMPILER = $(ACPICA_SRC)/compiler
#
# Common ACPICA header files
#
ACPICA_HEADERS = \
$(wildcard $(ACPICA_INCLUDE)/*.h) \
$(wildcard $(ACPICA_INCLUDE)/platform/*.h)
# #
# Common compiler flags. The warning flags in addition to -Wall are not # Common compiler flags. The warning flags in addition to -Wall are not
# automatically included in -Wall. # automatically included in -Wall.
@ -51,7 +85,7 @@ INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR)
CFLAGS += \ CFLAGS += \
-D$(HOST) \ -D$(HOST) \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
-I$(ACPICA_SRC)/include -I$(ACPICA_INCLUDE)
CWARNINGFLAGS = \ CWARNINGFLAGS = \
-ansi \ -ansi \

View File

@ -14,13 +14,18 @@ include ../Makefile.config
PROG = acpibin PROG = acpibin
# #
# Flags specific to acpibin # Search paths for source files
# #
CFLAGS+= \ vpath %.c \
-DACPI_BIN_APP \ $(ACPIBIN) \
-I$(ACPICA_TOOLS)/acpibin $(ACPICA_UTILITIES) \
$(ACPICA_COMMON) \
$(ACPICA_OSL)
OBJS = \ HEADERS = \
$(wildcard $(ACPIBIN)/*.h)
OBJECTS = \
abcompare.o \ abcompare.o \
abmain.o \ abmain.o \
utalloc.o \ utalloc.o \
@ -38,72 +43,24 @@ OBJS = \
getopt.o getopt.o
# #
# Root rule # Flags specific to acpibin
# #
$(PROG) : $(OBJS) CFLAGS+= \
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) -DACPI_BIN_APP \
-I$(ACPIBIN)
#
# Rules
#
$(PROG) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG) $(COPYPROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# acpibin source
#
abcompare.o : $(ACPICA_TOOLS)/acpibin/abcompare.c
$(COMPILE) $(COMPILE)
abmain.o : $(ACPICA_TOOLS)/acpibin/abmain.c
$(COMPILE)
#
# ACPICA core source - common
#
getopt.o : $(ACPICA_COMMON)/getopt.c
$(COMPILE)
#
# ACPICA core source
#
utalloc.o : $(ACPICA_CORE)/utilities/utalloc.c
$(COMPILE)
utcache.o : $(ACPICA_CORE)/utilities/utcache.c
$(COMPILE)
utdebug.o : $(ACPICA_CORE)/utilities/utdebug.c
$(COMPILE)
utdecode.o : $(ACPICA_CORE)/utilities/utdecode.c
$(COMPILE)
utglobal.o : $(ACPICA_CORE)/utilities/utglobal.c
$(COMPILE)
utlock.o : $(ACPICA_CORE)/utilities/utlock.c
$(COMPILE)
utmath.o : $(ACPICA_CORE)/utilities/utmath.c
$(COMPILE)
utmisc.o : $(ACPICA_CORE)/utilities/utmisc.c
$(COMPILE)
utmutex.o : $(ACPICA_CORE)/utilities/utmutex.c
$(COMPILE)
utstate.o : $(ACPICA_CORE)/utilities/utstate.c
$(COMPILE)
utxferror.o : $(ACPICA_CORE)/utilities/utxferror.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixxf.o : $(ACPICA_OSL)/osunixxf.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -16,14 +16,28 @@ include ../Makefile.config
PROG = acpiexec PROG = acpiexec
# #
# Flags specific to acpiexec utility # Search paths for source files
# #
CFLAGS+= \ vpath %.c \
-DACPI_EXEC_APP \ $(ACPIEXEC) \
-I$(ACPICA_TOOLS)/acpiexec $(ACPICA_DEBUGGER) \
LDFLAGS += -lpthread -lrt $(ACPICA_DISASSEMBLER) \
$(ACPICA_DISPATCHER) \
$(ACPICA_EVENTS) \
$(ACPICA_EXECUTER) \
$(ACPICA_HARDWARE) \
$(ACPICA_NAMESPACE) \
$(ACPICA_PARSER) \
$(ACPICA_RESOURCES) \
$(ACPICA_TABLES) \
$(ACPICA_UTILITIES) \
$(ACPICA_COMMON) \
$(ACPICA_OSL)
OBJS = \ HEADERS = \
$(wildcard $(ACPIEXEC)/*.h)
OBJECTS = \
aeexec.o \ aeexec.o \
aehandlers.o \ aehandlers.o \
aemain.o \ aemain.o \
@ -178,483 +192,25 @@ OBJS = \
utxface.o utxface.o
# #
# Root rule # Flags specific to acpiexec utility
# #
$(PROG) : $(OBJS) CFLAGS+= \
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) -DACPI_EXEC_APP \
-I$(ACPIEXEC)
LDFLAGS += -lpthread -lrt
#
# Rules
#
$(PROG) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG) $(COPYPROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# acpiexec source
#
aeexec.o : $(ACPICA_TOOLS)/acpiexec/aeexec.c
$(COMPILE) $(COMPILE)
aehandlers.o : $(ACPICA_TOOLS)/acpiexec/aehandlers.c
$(COMPILE)
aemain.o : $(ACPICA_TOOLS)/acpiexec/aemain.c
$(COMPILE)
aetables.o : $(ACPICA_TOOLS)/acpiexec/aetables.c
$(COMPILE)
#
# ACPICA core source - common
#
getopt.o : $(ACPICA_COMMON)/getopt.c
$(COMPILE)
#
# ACPICA core source
#
dbcmds.o : $(ACPICA_CORE)/debugger/dbcmds.c
$(COMPILE)
dbdisply.o : $(ACPICA_CORE)/debugger/dbdisply.c
$(COMPILE)
dbexec.o : $(ACPICA_CORE)/debugger/dbexec.c
$(COMPILE)
dbfileio.o : $(ACPICA_CORE)/debugger/dbfileio.c
$(COMPILE)
dbhistry.o : $(ACPICA_CORE)/debugger/dbhistry.c
$(COMPILE)
dbinput.o : $(ACPICA_CORE)/debugger/dbinput.c
$(COMPILE)
dbmethod.o : $(ACPICA_CORE)/debugger/dbmethod.c
$(COMPILE)
dbnames.o : $(ACPICA_CORE)/debugger/dbnames.c
$(COMPILE)
dbstats.o : $(ACPICA_CORE)/debugger/dbstats.c
$(COMPILE)
dbutils.o : $(ACPICA_CORE)/debugger/dbutils.c
$(COMPILE)
dbxface.o : $(ACPICA_CORE)/debugger/dbxface.c
$(COMPILE)
dmbuffer.o : $(ACPICA_CORE)/disassembler/dmbuffer.c
$(COMPILE)
dmnames.o : $(ACPICA_CORE)/disassembler/dmnames.c
$(COMPILE)
dmobject.o : $(ACPICA_CORE)/disassembler/dmobject.c
$(COMPILE)
dmopcode.o : $(ACPICA_CORE)/disassembler/dmopcode.c
$(COMPILE)
dmresrc.o : $(ACPICA_CORE)/disassembler/dmresrc.c
$(COMPILE)
dmresrcl.o : $(ACPICA_CORE)/disassembler/dmresrcl.c
$(COMPILE)
dmresrcs.o : $(ACPICA_CORE)/disassembler/dmresrcs.c
$(COMPILE)
dmutils.o : $(ACPICA_CORE)/disassembler/dmutils.c
$(COMPILE)
dmwalk.o : $(ACPICA_CORE)/disassembler/dmwalk.c
$(COMPILE)
dsargs.o : $(ACPICA_CORE)/dispatcher/dsargs.c
$(COMPILE)
dscontrol.o : $(ACPICA_CORE)/dispatcher/dscontrol.c
$(COMPILE)
dsfield.o : $(ACPICA_CORE)/dispatcher/dsfield.c
$(COMPILE)
dsinit.o : $(ACPICA_CORE)/dispatcher/dsinit.c
$(COMPILE)
dsmethod.o : $(ACPICA_CORE)/dispatcher/dsmethod.c
$(COMPILE)
dsmthdat.o : $(ACPICA_CORE)/dispatcher/dsmthdat.c
$(COMPILE)
dsobject.o : $(ACPICA_CORE)/dispatcher/dsobject.c
$(COMPILE)
dsopcode.o : $(ACPICA_CORE)/dispatcher/dsopcode.c
$(COMPILE)
dsutils.o : $(ACPICA_CORE)/dispatcher/dsutils.c
$(COMPILE)
dswexec.o : $(ACPICA_CORE)/dispatcher/dswexec.c
$(COMPILE)
dswload.o : $(ACPICA_CORE)/dispatcher/dswload.c
$(COMPILE)
dswload2.o : $(ACPICA_CORE)/dispatcher/dswload2.c
$(COMPILE)
dswscope.o : $(ACPICA_CORE)/dispatcher/dswscope.c
$(COMPILE)
dswstate.o : $(ACPICA_CORE)/dispatcher/dswstate.c
$(COMPILE)
evevent.o : $(ACPICA_CORE)/events/evevent.c
$(COMPILE)
evglock.o : $(ACPICA_CORE)/events/evglock.c
$(COMPILE)
evgpe.o : $(ACPICA_CORE)/events/evgpe.c
$(COMPILE)
evgpeblk.o : $(ACPICA_CORE)/events/evgpeblk.c
$(COMPILE)
evgpeinit.o : $(ACPICA_CORE)/events/evgpeinit.c
$(COMPILE)
evgpeutil.o : $(ACPICA_CORE)/events/evgpeutil.c
$(COMPILE)
evmisc.o : $(ACPICA_CORE)/events/evmisc.c
$(COMPILE)
evregion.o : $(ACPICA_CORE)/events/evregion.c
$(COMPILE)
evrgnini.o : $(ACPICA_CORE)/events/evrgnini.c
$(COMPILE)
evsci.o : $(ACPICA_CORE)/events/evsci.c
$(COMPILE)
evxface.o : $(ACPICA_CORE)/events/evxface.c
$(COMPILE)
evxfevnt.o : $(ACPICA_CORE)/events/evxfevnt.c
$(COMPILE)
evxfgpe.o : $(ACPICA_CORE)/events/evxfgpe.c
$(COMPILE)
evxfregn.o : $(ACPICA_CORE)/events/evxfregn.c
$(COMPILE)
exconfig.o : $(ACPICA_CORE)/executer/exconfig.c
$(COMPILE)
exconvrt.o : $(ACPICA_CORE)/executer/exconvrt.c
$(COMPILE)
excreate.o : $(ACPICA_CORE)/executer/excreate.c
$(COMPILE)
exdebug.o : $(ACPICA_CORE)/executer/exdebug.c
$(COMPILE)
exdump.o : $(ACPICA_CORE)/executer/exdump.c
$(COMPILE)
exfield.o : $(ACPICA_CORE)/executer/exfield.c
$(COMPILE)
exfldio.o : $(ACPICA_CORE)/executer/exfldio.c
$(COMPILE)
exmisc.o : $(ACPICA_CORE)/executer/exmisc.c
$(COMPILE)
exmutex.o : $(ACPICA_CORE)/executer/exmutex.c
$(COMPILE)
exnames.o : $(ACPICA_CORE)/executer/exnames.c
$(COMPILE)
exoparg1.o : $(ACPICA_CORE)/executer/exoparg1.c
$(COMPILE)
exoparg2.o : $(ACPICA_CORE)/executer/exoparg2.c
$(COMPILE)
exoparg3.o : $(ACPICA_CORE)/executer/exoparg3.c
$(COMPILE)
exoparg6.o : $(ACPICA_CORE)/executer/exoparg6.c
$(COMPILE)
exprep.o : $(ACPICA_CORE)/executer/exprep.c
$(COMPILE)
exregion.o : $(ACPICA_CORE)/executer/exregion.c
$(COMPILE)
exresnte.o : $(ACPICA_CORE)/executer/exresnte.c
$(COMPILE)
exresolv.o : $(ACPICA_CORE)/executer/exresolv.c
$(COMPILE)
exresop.o : $(ACPICA_CORE)/executer/exresop.c
$(COMPILE)
exstore.o : $(ACPICA_CORE)/executer/exstore.c
$(COMPILE)
exstoren.o : $(ACPICA_CORE)/executer/exstoren.c
$(COMPILE)
exstorob.o : $(ACPICA_CORE)/executer/exstorob.c
$(COMPILE)
exsystem.o : $(ACPICA_CORE)/executer/exsystem.c
$(COMPILE)
exutils.o : $(ACPICA_CORE)/executer/exutils.c
$(COMPILE)
hwacpi.o : $(ACPICA_CORE)/hardware/hwacpi.c
$(COMPILE)
hwgpe.o : $(ACPICA_CORE)/hardware/hwgpe.c
$(COMPILE)
hwpci.o : $(ACPICA_CORE)/hardware/hwpci.c
$(COMPILE)
hwregs.o : $(ACPICA_CORE)/hardware/hwregs.c
$(COMPILE)
hwsleep.o : $(ACPICA_CORE)/hardware/hwsleep.c
$(COMPILE)
hwvalid.o : $(ACPICA_CORE)/hardware/hwvalid.c
$(COMPILE)
hwxface.o : $(ACPICA_CORE)/hardware/hwxface.c
$(COMPILE)
nsaccess.o : $(ACPICA_CORE)/namespace/nsaccess.c
$(COMPILE)
nsalloc.o : $(ACPICA_CORE)/namespace/nsalloc.c
$(COMPILE)
nsdump.o : $(ACPICA_CORE)/namespace/nsdump.c
$(COMPILE)
nsdumpdv.o : $(ACPICA_CORE)/namespace/nsdumpdv.c
$(COMPILE)
nseval.o : $(ACPICA_CORE)/namespace/nseval.c
$(COMPILE)
nsinit.o : $(ACPICA_CORE)/namespace/nsinit.c
$(COMPILE)
nsload.o : $(ACPICA_CORE)/namespace/nsload.c
$(COMPILE)
nsnames.o : $(ACPICA_CORE)/namespace/nsnames.c
$(COMPILE)
nsobject.o : $(ACPICA_CORE)/namespace/nsobject.c
$(COMPILE)
nsparse.o : $(ACPICA_CORE)/namespace/nsparse.c
$(COMPILE)
nspredef.o : $(ACPICA_CORE)/namespace/nspredef.c
$(COMPILE)
nsrepair.o : $(ACPICA_CORE)/namespace/nsrepair.c
$(COMPILE)
nsrepair2.o : $(ACPICA_CORE)/namespace/nsrepair2.c
$(COMPILE)
nssearch.o : $(ACPICA_CORE)/namespace/nssearch.c
$(COMPILE)
nsutils.o : $(ACPICA_CORE)/namespace/nsutils.c
$(COMPILE)
nswalk.o : $(ACPICA_CORE)/namespace/nswalk.c
$(COMPILE)
nsxfeval.o : $(ACPICA_CORE)/namespace/nsxfeval.c
$(COMPILE)
nsxfname.o : $(ACPICA_CORE)/namespace/nsxfname.c
$(COMPILE)
nsxfobj.o : $(ACPICA_CORE)/namespace/nsxfobj.c
$(COMPILE)
psargs.o : $(ACPICA_CORE)/parser/psargs.c
$(COMPILE)
psloop.o : $(ACPICA_CORE)/parser/psloop.c
$(COMPILE)
psopcode.o : $(ACPICA_CORE)/parser/psopcode.c
$(COMPILE)
psparse.o : $(ACPICA_CORE)/parser/psparse.c
$(COMPILE)
psscope.o : $(ACPICA_CORE)/parser/psscope.c
$(COMPILE)
pstree.o : $(ACPICA_CORE)/parser/pstree.c
$(COMPILE)
psutils.o : $(ACPICA_CORE)/parser/psutils.c
$(COMPILE)
pswalk.o : $(ACPICA_CORE)/parser/pswalk.c
$(COMPILE)
psxface.o : $(ACPICA_CORE)/parser/psxface.c
$(COMPILE)
rsaddr.o : $(ACPICA_CORE)/resources/rsaddr.c
$(COMPILE)
rscalc.o : $(ACPICA_CORE)/resources/rscalc.c
$(COMPILE)
rscreate.o : $(ACPICA_CORE)/resources/rscreate.c
$(COMPILE)
rsdump.o : $(ACPICA_CORE)/resources/rsdump.c
$(COMPILE)
rsio.o : $(ACPICA_CORE)/resources/rsio.c
$(COMPILE)
rsinfo.o : $(ACPICA_CORE)/resources/rsinfo.c
$(COMPILE)
rsirq.o : $(ACPICA_CORE)/resources/rsirq.c
$(COMPILE)
rslist.o : $(ACPICA_CORE)/resources/rslist.c
$(COMPILE)
rsmemory.o : $(ACPICA_CORE)/resources/rsmemory.c
$(COMPILE)
rsmisc.o : $(ACPICA_CORE)/resources/rsmisc.c
$(COMPILE)
rsutils.o : $(ACPICA_CORE)/resources/rsutils.c
$(COMPILE)
rsxface.o : $(ACPICA_CORE)/resources/rsxface.c
$(COMPILE)
tbfadt.o : $(ACPICA_CORE)/tables/tbfadt.c
$(COMPILE)
tbfind.o : $(ACPICA_CORE)/tables/tbfind.c
$(COMPILE)
tbinstal.o : $(ACPICA_CORE)/tables/tbinstal.c
$(COMPILE)
tbutils.o : $(ACPICA_CORE)/tables/tbutils.c
$(COMPILE)
tbxface.o : $(ACPICA_CORE)/tables/tbxface.c
$(COMPILE)
tbxfroot.o : $(ACPICA_CORE)/tables/tbxfroot.c
$(COMPILE)
utalloc.o : $(ACPICA_CORE)/utilities/utalloc.c
$(COMPILE)
utcache.o : $(ACPICA_CORE)/utilities/utcache.c
$(COMPILE)
utcopy.o : $(ACPICA_CORE)/utilities/utcopy.c
$(COMPILE)
utdebug.o : $(ACPICA_CORE)/utilities/utdebug.c
$(COMPILE)
utdecode.o : $(ACPICA_CORE)/utilities/utdecode.c
$(COMPILE)
utdelete.o : $(ACPICA_CORE)/utilities/utdelete.c
$(COMPILE)
uteval.o : $(ACPICA_CORE)/utilities/uteval.c
$(COMPILE)
utglobal.o : $(ACPICA_CORE)/utilities/utglobal.c
$(COMPILE)
utids.o : $(ACPICA_CORE)/utilities/utids.c
$(COMPILE)
utinit.o : $(ACPICA_CORE)/utilities/utinit.c
$(COMPILE)
utlock.o : $(ACPICA_CORE)/utilities/utlock.c
$(COMPILE)
utmath.o : $(ACPICA_CORE)/utilities/utmath.c
$(COMPILE)
utmisc.o : $(ACPICA_CORE)/utilities/utmisc.c
$(COMPILE)
utmutex.o : $(ACPICA_CORE)/utilities/utmutex.c
$(COMPILE)
utobject.o : $(ACPICA_CORE)/utilities/utobject.c
$(COMPILE)
utresrc.o : $(ACPICA_CORE)/utilities/utresrc.c
$(COMPILE)
utstate.o : $(ACPICA_CORE)/utilities/utstate.c
$(COMPILE)
uttrack.o : $(ACPICA_CORE)/utilities/uttrack.c
$(COMPILE)
utosi.o : $(ACPICA_CORE)/utilities/utosi.c
$(COMPILE)
utxferror.o : $(ACPICA_CORE)/utilities/utxferror.c
$(COMPILE)
utxface.o : $(ACPICA_CORE)/utilities/utxface.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixxf.o : $(ACPICA_OSL)/osunixxf.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -15,13 +15,16 @@ include ../Makefile.config
PROG = acpihelp PROG = acpihelp
# #
# Flags specific to acpihelp # Search paths for source files
# #
CFLAGS+= \ vpath %.c \
-DACPI_HELP_APP \ $(ACPIHELP) \
-I$(ACPICA_TOOLS)/acpihelp $(ACPICA_COMMON)
OBJS = \ HEADERS = \
$(wildcard $(ACPIHELP)/*.h)
OBJECTS = \
ahamlops.o \ ahamlops.o \
ahaslkey.o \ ahaslkey.o \
ahaslops.o \ ahaslops.o \
@ -31,42 +34,24 @@ OBJS = \
getopt.o getopt.o
# #
# Root rule # Flags specific to acpihelp
# #
$(PROG) : $(OBJS) CFLAGS+= \
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) -DACPI_HELP_APP \
-I$(ACPIHELP)
#
# Rules
#
$(PROG) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG) $(COPYPROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# acpihelp source
#
ahamlops.o : $(ACPICA_TOOLS)/acpihelp/ahamlops.c
$(COMPILE) $(COMPILE)
ahaslkey.o : $(ACPICA_TOOLS)/acpihelp/ahaslkey.c
$(COMPILE)
ahaslops.o : $(ACPICA_TOOLS)/acpihelp/ahaslops.c
$(COMPILE)
ahdecode.o : $(ACPICA_TOOLS)/acpihelp/ahdecode.c
$(COMPILE)
ahpredef.o : $(ACPICA_TOOLS)/acpihelp/ahpredef.c
$(COMPILE)
ahmain.o : $(ACPICA_TOOLS)/acpihelp/ahmain.c
$(COMPILE)
#
# ACPICA core source - common
#
getopt.o : $(ACPICA_COMMON)/getopt.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -16,13 +16,24 @@ include ../Makefile.config
PROG = acpinames PROG = acpinames
# #
# Flags specific to acpinames utility # Search paths for source files
# #
CFLAGS+= \ vpath %.c \
-DACPI_NAMES_APP \ $(ACPINAMES) \
-I$(ACPICA_TOOLS)/acpinames $(ACPICA_DEBUGGER) \
$(ACPICA_DISPATCHER) \
$(ACPICA_EXECUTER) \
$(ACPICA_NAMESPACE) \
$(ACPICA_PARSER) \
$(ACPICA_TABLES) \
$(ACPICA_UTILITIES) \
$(ACPICA_COMMON) \
$(ACPICA_OSL)
OBJS = \ HEADERS = \
$(wildcard $(ACPINAMES)/*.h)
OBJECTS = \
anmain.o \ anmain.o \
anstubs.o \ anstubs.o \
antables.o \ antables.o \
@ -88,216 +99,24 @@ OBJS = \
utxface.o utxface.o
# #
# Root rule # Flags specific to acpinames utility
# #
$(PROG) : $(OBJS) CFLAGS+= \
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) -DACPI_NAMES_APP \
-I$(ACPINAMES)
#
# Rules
#
$(PROG) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG) $(COPYPROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# acpinames source
#
anmain.o : $(ACPICA_TOOLS)/acpinames/anmain.c
$(COMPILE) $(COMPILE)
anstubs.o : $(ACPICA_TOOLS)/acpinames/anstubs.c
$(COMPILE)
antables.o : $(ACPICA_TOOLS)/acpinames/antables.c
$(COMPILE)
#
# ACPICA core source - common
#
getopt.o : $(ACPICA_COMMON)/getopt.c
$(COMPILE)
#
# ACPICA core source
#
dbfileio.o : $(ACPICA_CORE)/debugger/dbfileio.c
$(COMPILE)
dsfield.o : $(ACPICA_CORE)/dispatcher/dsfield.c
$(COMPILE)
dsmthdat.o : $(ACPICA_CORE)/dispatcher/dsmthdat.c
$(COMPILE)
dsobject.o : $(ACPICA_CORE)/dispatcher/dsobject.c
$(COMPILE)
dsutils.o : $(ACPICA_CORE)/dispatcher/dsutils.c
$(COMPILE)
dswload.o : $(ACPICA_CORE)/dispatcher/dswload.c
$(COMPILE)
dswload2.o : $(ACPICA_CORE)/dispatcher/dswload2.c
$(COMPILE)
dswscope.o : $(ACPICA_CORE)/dispatcher/dswscope.c
$(COMPILE)
dswstate.o : $(ACPICA_CORE)/dispatcher/dswstate.c
$(COMPILE)
excreate.o : $(ACPICA_CORE)/executer/excreate.c
$(COMPILE)
exnames.o : $(ACPICA_CORE)/executer/exnames.c
$(COMPILE)
exresnte.o : $(ACPICA_CORE)/executer/exresnte.c
$(COMPILE)
exresolv.o : $(ACPICA_CORE)/executer/exresolv.c
$(COMPILE)
exutils.o : $(ACPICA_CORE)/executer/exutils.c
$(COMPILE)
nsaccess.o : $(ACPICA_CORE)/namespace/nsaccess.c
$(COMPILE)
nsalloc.o : $(ACPICA_CORE)/namespace/nsalloc.c
$(COMPILE)
nsdump.o : $(ACPICA_CORE)/namespace/nsdump.c
$(COMPILE)
nsinit.o : $(ACPICA_CORE)/namespace/nsinit.c
$(COMPILE)
nsload.o : $(ACPICA_CORE)/namespace/nsload.c
$(COMPILE)
nsnames.o : $(ACPICA_CORE)/namespace/nsnames.c
$(COMPILE)
nsobject.o : $(ACPICA_CORE)/namespace/nsobject.c
$(COMPILE)
nsparse.o : $(ACPICA_CORE)/namespace/nsparse.c
$(COMPILE)
nssearch.o : $(ACPICA_CORE)/namespace/nssearch.c
$(COMPILE)
nsutils.o : $(ACPICA_CORE)/namespace/nsutils.c
$(COMPILE)
nswalk.o : $(ACPICA_CORE)/namespace/nswalk.c
$(COMPILE)
nsxfeval.o : $(ACPICA_CORE)/namespace/nsxfeval.c
$(COMPILE)
nsxfname.o : $(ACPICA_CORE)/namespace/nsxfname.c
$(COMPILE)
nsxfobj.o : $(ACPICA_CORE)/namespace/nsxfobj.c
$(COMPILE)
psargs.o : $(ACPICA_CORE)/parser/psargs.c
$(COMPILE)
psloop.o : $(ACPICA_CORE)/parser/psloop.c
$(COMPILE)
psopcode.o : $(ACPICA_CORE)/parser/psopcode.c
$(COMPILE)
psparse.o : $(ACPICA_CORE)/parser/psparse.c
$(COMPILE)
psscope.o : $(ACPICA_CORE)/parser/psscope.c
$(COMPILE)
pstree.o : $(ACPICA_CORE)/parser/pstree.c
$(COMPILE)
psutils.o : $(ACPICA_CORE)/parser/psutils.c
$(COMPILE)
pswalk.o : $(ACPICA_CORE)/parser/pswalk.c
$(COMPILE)
psxface.o : $(ACPICA_CORE)/parser/psxface.c
$(COMPILE)
tbfadt.o : $(ACPICA_CORE)/tables/tbfadt.c
$(COMPILE)
tbfind.o : $(ACPICA_CORE)/tables/tbfind.c
$(COMPILE)
tbinstal.o : $(ACPICA_CORE)/tables/tbinstal.c
$(COMPILE)
tbutils.o : $(ACPICA_CORE)/tables/tbutils.c
$(COMPILE)
tbxface.o : $(ACPICA_CORE)/tables/tbxface.c
$(COMPILE)
tbxfroot.o : $(ACPICA_CORE)/tables/tbxfroot.c
$(COMPILE)
utalloc.o : $(ACPICA_CORE)/utilities/utalloc.c
$(COMPILE)
utcache.o : $(ACPICA_CORE)/utilities/utcache.c
$(COMPILE)
utdebug.o : $(ACPICA_CORE)/utilities/utdebug.c
$(COMPILE)
utdecode.o : $(ACPICA_CORE)/utilities/utdecode.c
$(COMPILE)
utdelete.o : $(ACPICA_CORE)/utilities/utdelete.c
$(COMPILE)
utglobal.o : $(ACPICA_CORE)/utilities/utglobal.c
$(COMPILE)
utlock.o : $(ACPICA_CORE)/utilities/utlock.c
$(COMPILE)
utmath.o : $(ACPICA_CORE)/utilities/utmath.c
$(COMPILE)
utmisc.o : $(ACPICA_CORE)/utilities/utmisc.c
$(COMPILE)
utmutex.o : $(ACPICA_CORE)/utilities/utmutex.c
$(COMPILE)
utobject.o : $(ACPICA_CORE)/utilities/utobject.c
$(COMPILE)
utstate.o : $(ACPICA_CORE)/utilities/utstate.c
$(COMPILE)
utosi.o : $(ACPICA_CORE)/utilities/utosi.c
$(COMPILE)
utxferror.o : $(ACPICA_CORE)/utilities/utxferror.c
$(COMPILE)
utxface.o : $(ACPICA_CORE)/utilities/utxface.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixxf.o : $(ACPICA_OSL)/osunixxf.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -14,69 +14,46 @@ include ../Makefile.config
PROG = acpisrc PROG = acpisrc
# #
# Flags specific to acpisrc # Search path for source files and individual source files
#
vpath %.c \
$(ACPISRC) \
$(ACPICA_COMMON) \
$(ACPICA_OSL)
HEADERS = \
$(wildcard $(ACPISRC)/*.h)
OBJECTS = \
ascase.o \
asconvrt.o \
asfile.o \
asmain.o \
asremove.o \
astable.o \
asutils.o \
osunixdir.o \
getopt.o
#
# Compile flags specific to acpisrc
# #
CFLAGS+= \ CFLAGS+= \
-DACPI_SRC_APP \ -DACPI_SRC_APP \
-I$(ACPICA_TOOLS)/acpisrc -I$(ACPISRC)
OBJS = \
ascase.o \
asconvrt.o \
asfile.o \
asmain.o \
asremove.o \
astable.o \
asutils.o \
getopt.o \
osunixdir.o
# #
# Root rule # Rules
# #
$(PROG) : $(OBJS) $(PROG) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG) $(COPYPROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# acpisrc source
#
ascase.o : $(ACPICA_TOOLS)/acpisrc/ascase.c
$(COMPILE) $(COMPILE)
asconvrt.o : $(ACPICA_TOOLS)/acpisrc/asconvrt.c
$(COMPILE)
asfile.o : $(ACPICA_TOOLS)/acpisrc/asfile.c
$(COMPILE)
asmain.o : $(ACPICA_TOOLS)/acpisrc/asmain.c
$(COMPILE)
asremove.o : $(ACPICA_TOOLS)/acpisrc/asremove.c
$(COMPILE)
astable.o : $(ACPICA_TOOLS)/acpisrc/astable.c
$(COMPILE)
asutils.o : $(ACPICA_TOOLS)/acpisrc/asutils.c
$(COMPILE)
#
# ACPICA core source - common
#
getopt.o : $(ACPICA_COMMON)/getopt.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixdir.o : $(ACPICA_OSL)/osunixdir.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -13,24 +13,39 @@
include ../Makefile.config include ../Makefile.config
PROG = acpixtract PROG = acpixtract
OBJS = \ #
acpixtract.o # Search paths for source files
#
vpath %.c \
$(ACPIXTRACT) \
$(ACPICA_COMMON)
HEADERS = \
$(wildcard $(ACPIXTRACT)/*.h)
OBJECTS = \
acpixtract.o \
axmain.o \
getopt.o
# #
# Root rule # Flags specific to acpixtract
# #
$(PROG) : $(OBJS) CFLAGS+= \
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) -DACPI_XTRACT_APP \
# #
# acpixtract source # Rules
# #
acpixtract.o : $(ACPICA_TOOLS)/acpixtract/acpixtract.c $(PROG) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG)
%.o : %.c $(HEADERS) $(ACPICA_HEADERS)
$(COMPILE) $(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -14,14 +14,31 @@ include ../Makefile.config
PROG = iasl PROG = iasl
# #
# Flags specific to iASL compiler # Search paths for source files
# #
CFLAGS+= \ vpath %.c \
-DACPI_ASL_COMPILER \ $(ASL_COMPILER) \
-I$(ASL_COMPILER) \ $(ACPICA_DEBUGGER) \
-I. $(ACPICA_DISASSEMBLER) \
$(ACPICA_DISPATCHER) \
$(ACPICA_EXECUTER) \
$(ACPICA_NAMESPACE) \
$(ACPICA_PARSER) \
$(ACPICA_TABLES) \
$(ACPICA_UTILITIES) \
$(ACPICA_COMMON) \
$(ACPICA_OSL)
OBJS = \ HEADERS = \
$(wildcard $(ASL_COMPILER)/*.h) \
aslcompiler.y.h \
dtparser.y.h
OBJECTS = \
aslcompilerlex.o \
aslcompilerparse.o \
dtparserlex.o \
dtparserparse.o \
adfile.o \ adfile.o \
adisasm.o \ adisasm.o \
adwalk.o \ adwalk.o \
@ -29,8 +46,6 @@ OBJS = \
aslbtypes.o \ aslbtypes.o \
aslcodegen.o \ aslcodegen.o \
aslcompile.o \ aslcompile.o \
aslcompilerlex.o \
aslcompilerparse.o \
aslerror.o \ aslerror.o \
aslfiles.o \ aslfiles.o \
aslfold.o \ aslfold.o \
@ -63,8 +78,6 @@ OBJS = \
dtexpress.o \ dtexpress.o \
dtfield.o \ dtfield.o \
dtio.o \ dtio.o \
dtparserlex.o \
dtparserparse.o \
dtsubtable.o \ dtsubtable.o \
dttable.o \ dttable.o \
dttemplate.o \ dttemplate.o \
@ -164,16 +177,26 @@ INTERMEDIATES = \
dtparserparse.c dtparserparse.c
MISC = \ MISC = \
aslcompilerparse.h \
aslcompiler.y.h \ aslcompiler.y.h \
aslcompilerparse.output \ aslcompilerparse.output \
dtparserparse.h \
dtparser.y.h \ dtparser.y.h \
dtparserparse.output dtparserparse.output
#
# Flags specific to iASL compiler
#
CFLAGS+= \
-DACPI_ASL_COMPILER \
-I$(ASL_COMPILER) \
-I.
# #
# Root rule # Root rule
# #
$(PROG) : $(INTERMEDIATES) $(OBJS) $(PROG) : $(INTERMEDIATES) $(MISC) $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG) $(COPYPROG)
# #
@ -182,16 +205,25 @@ $(PROG) : $(INTERMEDIATES) $(OBJS)
aslcompilerlex.c : $(ASL_COMPILER)/aslcompiler.l aslcompilerlex.c : $(ASL_COMPILER)/aslcompiler.l
${LEX} ${LFLAGS} -PAslCompiler -o$@ $? ${LEX} ${LFLAGS} -PAslCompiler -o$@ $?
aslcompilerparse.c : $(ASL_COMPILER)/aslcompiler.y aslcompilerparse.c aslcompilerparse.h : $(ASL_COMPILER)/aslcompiler.y
${YACC} ${YFLAGS} -pAslCompiler -o$@ $? ${YACC} ${YFLAGS} -pAslCompiler -o$@ $?
@mv -f aslcompilerparse.h aslcompiler.y.h
dtparserlex.c : $(ASL_COMPILER)/dtparser.l dtparserlex.c : $(ASL_COMPILER)/dtparser.l
${LEX} ${LFLAGS} -PDtParser -o$@ $? ${LEX} ${LFLAGS} -PDtParser -o$@ $?
dtparserparse.c : $(ASL_COMPILER)/dtparser.y dtparserparse.c dtparserparse.h : $(ASL_COMPILER)/dtparser.y
${YACC} ${YFLAGS} -pDtParser -o$@ $? ${YACC} ${YFLAGS} -pDtParser -o$@ $?
@mv -f dtparserparse.h dtparser.y.h
# Rename headers produced by bison/yacc
dtparser.y.h: dtparserparse.h
@echo Copy intermediate file:
@cp -f -v dtparserparse.h dtparser.y.h
aslcompiler.y.h : aslcompilerparse.h
@echo Copy intermediate file:
@cp -f -v aslcompilerparse.h aslcompiler.y.h
# #
# Parsers and Lexers - final object files # Parsers and Lexers - final object files
@ -211,414 +243,12 @@ dtparserlex.o : dtparserlex.c
dtparserparse.o : dtparserparse.c dtparserparse.o : dtparserparse.c
$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $? $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $?
#
# Compiler source
#
aslanalyze.o : $(ASL_COMPILER)/aslanalyze.c
$(COMPILE)
aslbtypes.o : $(ASL_COMPILER)/aslbtypes.c
$(COMPILE)
aslcodegen.o : $(ASL_COMPILER)/aslcodegen.c
$(COMPILE)
aslcompile.o : $(ASL_COMPILER)/aslcompile.c
$(COMPILE)
aslerror.o : $(ASL_COMPILER)/aslerror.c
$(COMPILE)
aslfiles.o : $(ASL_COMPILER)/aslfiles.c
$(COMPILE)
aslfold.o : $(ASL_COMPILER)/aslfold.c
$(COMPILE)
asllength.o : $(ASL_COMPILER)/asllength.c
$(COMPILE)
asllisting.o : $(ASL_COMPILER)/asllisting.c
$(COMPILE)
aslload.o : $(ASL_COMPILER)/aslload.c
$(COMPILE)
asllookup.o : $(ASL_COMPILER)/asllookup.c
$(COMPILE)
aslmain.o : $(ASL_COMPILER)/aslmain.c
$(COMPILE)
aslmap.o : $(ASL_COMPILER)/aslmap.c
$(COMPILE)
aslopcodes.o : $(ASL_COMPILER)/aslopcodes.c
$(COMPILE)
asloperands.o : $(ASL_COMPILER)/asloperands.c
$(COMPILE)
aslopt.o : $(ASL_COMPILER)/aslopt.c
$(COMPILE)
aslpredef.o : $(ASL_COMPILER)/aslpredef.c
$(COMPILE)
aslresource.o : $(ASL_COMPILER)/aslresource.c
$(COMPILE)
aslrestype1.o : $(ASL_COMPILER)/aslrestype1.c
$(COMPILE)
aslrestype1i.o : $(ASL_COMPILER)/aslrestype1i.c
$(COMPILE)
aslrestype2.o : $(ASL_COMPILER)/aslrestype2.c
$(COMPILE)
aslrestype2d.o : $(ASL_COMPILER)/aslrestype2d.c
$(COMPILE)
aslrestype2e.o : $(ASL_COMPILER)/aslrestype2e.c
$(COMPILE)
aslrestype2q.o : $(ASL_COMPILER)/aslrestype2q.c
$(COMPILE)
aslrestype2w.o : $(ASL_COMPILER)/aslrestype2w.c
$(COMPILE)
aslstartup.o : $(ASL_COMPILER)/aslstartup.c
$(COMPILE)
aslstubs.o : $(ASL_COMPILER)/aslstubs.c
$(COMPILE)
asltransform.o : $(ASL_COMPILER)/asltransform.c
$(COMPILE)
asltree.o : $(ASL_COMPILER)/asltree.c
$(COMPILE)
aslutils.o : $(ASL_COMPILER)/aslutils.c
$(COMPILE)
asluuid.o : $(ASL_COMPILER)/asluuid.c
$(COMPILE)
aslwalks.o : $(ASL_COMPILER)/aslwalks.c
$(COMPILE)
#
# Data Table Compiler
#
dtcompile.o : $(ASL_COMPILER)/dtcompile.c
$(COMPILE)
dtexpress.o : $(ASL_COMPILER)/dtexpress.c
$(COMPILE)
dtfield.o : $(ASL_COMPILER)/dtfield.c
$(COMPILE)
dtio.o : $(ASL_COMPILER)/dtio.c
$(COMPILE)
dtsubtable.o : $(ASL_COMPILER)/dtsubtable.c
$(COMPILE)
dttable.o : $(ASL_COMPILER)/dttable.c
$(COMPILE)
dttemplate.o : $(ASL_COMPILER)/dttemplate.c
$(COMPILE)
dtutils.o : $(ASL_COMPILER)/dtutils.c
$(COMPILE)
#
# ACPICA core source - common
#
adfile.o : $(ACPICA_COMMON)/adfile.c
$(COMPILE)
adisasm.o : $(ACPICA_COMMON)/adisasm.c
$(COMPILE)
adwalk.o : $(ACPICA_COMMON)/adwalk.c
$(COMPILE)
dmextern.o : $(ACPICA_COMMON)/dmextern.c
$(COMPILE)
dmrestag.o : $(ACPICA_COMMON)/dmrestag.c
$(COMPILE)
dmtable.o : $(ACPICA_COMMON)/dmtable.c
$(COMPILE)
dmtbdump.o : $(ACPICA_COMMON)/dmtbdump.c
$(COMPILE)
dmtbinfo.o : $(ACPICA_COMMON)/dmtbinfo.c
$(COMPILE)
getopt.o : $(ACPICA_COMMON)/getopt.c
$(COMPILE)
#
# ACPICA core source
#
dbfileio.o : $(ACPICA_CORE)/debugger/dbfileio.c
$(COMPILE)
dmbuffer.o : $(ACPICA_CORE)/disassembler/dmbuffer.c
$(COMPILE)
dmnames.o : $(ACPICA_CORE)/disassembler/dmnames.c
$(COMPILE)
dmobject.o : $(ACPICA_CORE)/disassembler/dmobject.c
$(COMPILE)
dmopcode.o : $(ACPICA_CORE)/disassembler/dmopcode.c
$(COMPILE)
dmresrc.o : $(ACPICA_CORE)/disassembler/dmresrc.c
$(COMPILE)
dmresrcl.o : $(ACPICA_CORE)/disassembler/dmresrcl.c
$(COMPILE)
dmresrcs.o : $(ACPICA_CORE)/disassembler/dmresrcs.c
$(COMPILE)
dmutils.o : $(ACPICA_CORE)/disassembler/dmutils.c
$(COMPILE)
dmwalk.o : $(ACPICA_CORE)/disassembler/dmwalk.c
$(COMPILE)
dsargs.o : $(ACPICA_CORE)/dispatcher/dsargs.c
$(COMPILE)
dscontrol.o : $(ACPICA_CORE)/dispatcher/dscontrol.c
$(COMPILE)
dsfield.o : $(ACPICA_CORE)/dispatcher/dsfield.c
$(COMPILE)
dsobject.o : $(ACPICA_CORE)/dispatcher/dsobject.c
$(COMPILE)
dsopcode.o : $(ACPICA_CORE)/dispatcher/dsopcode.c
$(COMPILE)
dsutils.o : $(ACPICA_CORE)/dispatcher/dsutils.c
$(COMPILE)
dswexec.o : $(ACPICA_CORE)/dispatcher/dswexec.c %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
$(COMPILE) $(COMPILE)
dswload.o : $(ACPICA_CORE)/dispatcher/dswload.c
$(COMPILE)
dswload2.o : $(ACPICA_CORE)/dispatcher/dswload2.c
$(COMPILE)
dswscope.o : $(ACPICA_CORE)/dispatcher/dswscope.c
$(COMPILE)
dswstate.o : $(ACPICA_CORE)/dispatcher/dswstate.c
$(COMPILE)
exconvrt.o : $(ACPICA_CORE)/executer/exconvrt.c
$(COMPILE)
excreate.o : $(ACPICA_CORE)/executer/excreate.c
$(COMPILE)
exdump.o : $(ACPICA_CORE)/executer/exdump.c
$(COMPILE)
exmisc.o : $(ACPICA_CORE)/executer/exmisc.c
$(COMPILE)
exmutex.o : $(ACPICA_CORE)/executer/exmutex.c
$(COMPILE)
exnames.o : $(ACPICA_CORE)/executer/exnames.c
$(COMPILE)
exoparg1.o : $(ACPICA_CORE)/executer/exoparg1.c
$(COMPILE)
exoparg2.o : $(ACPICA_CORE)/executer/exoparg2.c
$(COMPILE)
exoparg3.o : $(ACPICA_CORE)/executer/exoparg3.c
$(COMPILE)
exoparg6.o : $(ACPICA_CORE)/executer/exoparg6.c
$(COMPILE)
exprep.o : $(ACPICA_CORE)/executer/exprep.c
$(COMPILE)
exregion.o : $(ACPICA_CORE)/executer/exregion.c
$(COMPILE)
exresnte.o : $(ACPICA_CORE)/executer/exresnte.c
$(COMPILE)
exresolv.o : $(ACPICA_CORE)/executer/exresolv.c
$(COMPILE)
exresop.o : $(ACPICA_CORE)/executer/exresop.c
$(COMPILE)
exstore.o : $(ACPICA_CORE)/executer/exstore.c
$(COMPILE)
exstoren.o : $(ACPICA_CORE)/executer/exstoren.c
$(COMPILE)
exstorob.o : $(ACPICA_CORE)/executer/exstorob.c
$(COMPILE)
exsystem.o : $(ACPICA_CORE)/executer/exsystem.c
$(COMPILE)
exutils.o : $(ACPICA_CORE)/executer/exutils.c
$(COMPILE)
nsaccess.o : $(ACPICA_CORE)/namespace/nsaccess.c
$(COMPILE)
nsalloc.o : $(ACPICA_CORE)/namespace/nsalloc.c
$(COMPILE)
nsdump.o : $(ACPICA_CORE)/namespace/nsdump.c
$(COMPILE)
nsnames.o : $(ACPICA_CORE)/namespace/nsnames.c
$(COMPILE)
nsobject.o : $(ACPICA_CORE)/namespace/nsobject.c
$(COMPILE)
nsparse.o : $(ACPICA_CORE)/namespace/nsparse.c
$(COMPILE)
nssearch.o : $(ACPICA_CORE)/namespace/nssearch.c
$(COMPILE)
nsutils.o : $(ACPICA_CORE)/namespace/nsutils.c
$(COMPILE)
nswalk.o : $(ACPICA_CORE)/namespace/nswalk.c
$(COMPILE)
nsxfobj.o : $(ACPICA_CORE)/namespace/nsxfobj.c
$(COMPILE)
psargs.o : $(ACPICA_CORE)/parser/psargs.c
$(COMPILE)
psloop.o : $(ACPICA_CORE)/parser/psloop.c
$(COMPILE)
psopcode.o : $(ACPICA_CORE)/parser/psopcode.c
$(COMPILE)
psparse.o : $(ACPICA_CORE)/parser/psparse.c
$(COMPILE)
psscope.o : $(ACPICA_CORE)/parser/psscope.c
$(COMPILE)
pstree.o : $(ACPICA_CORE)/parser/pstree.c
$(COMPILE)
psutils.o : $(ACPICA_CORE)/parser/psutils.c
$(COMPILE)
pswalk.o : $(ACPICA_CORE)/parser/pswalk.c
$(COMPILE)
tbfadt.o : $(ACPICA_CORE)/tables/tbfadt.c
$(COMPILE)
tbinstal.o : $(ACPICA_CORE)/tables/tbinstal.c
$(COMPILE)
tbutils.o : $(ACPICA_CORE)/tables/tbutils.c
$(COMPILE)
tbxface.o : $(ACPICA_CORE)/tables/tbxface.c
$(COMPILE)
utalloc.o : $(ACPICA_CORE)/utilities/utalloc.c
$(COMPILE)
utcache.o : $(ACPICA_CORE)/utilities/utcache.c
$(COMPILE)
utcopy.o : $(ACPICA_CORE)/utilities/utcopy.c
$(COMPILE)
utdebug.o : $(ACPICA_CORE)/utilities/utdebug.c
$(COMPILE)
utdecode.o : $(ACPICA_CORE)/utilities/utdecode.c
$(COMPILE)
utdelete.o : $(ACPICA_CORE)/utilities/utdelete.c
$(COMPILE)
utglobal.o : $(ACPICA_CORE)/utilities/utglobal.c
$(COMPILE)
utinit.o : $(ACPICA_CORE)/utilities/utinit.c
$(COMPILE)
utlock.o : $(ACPICA_CORE)/utilities/utlock.c
$(COMPILE)
utmath.o : $(ACPICA_CORE)/utilities/utmath.c
$(COMPILE)
utmisc.o : $(ACPICA_CORE)/utilities/utmisc.c
$(COMPILE)
utmutex.o : $(ACPICA_CORE)/utilities/utmutex.c
$(COMPILE)
utobject.o : $(ACPICA_CORE)/utilities/utobject.c
$(COMPILE)
utresrc.o : $(ACPICA_CORE)/utilities/utresrc.c
$(COMPILE)
utstate.o : $(ACPICA_CORE)/utilities/utstate.c
$(COMPILE)
utxferror.o : $(ACPICA_CORE)/utilities/utxferror.c
$(COMPILE)
utxface.o : $(ACPICA_CORE)/utilities/utxface.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixxf.o : $(ACPICA_OSL)/osunixxf.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) $(INTERMEDIATES) $(MISC) rm -f $(PROG) $(PROG).exe $(OBJECTS) $(INTERMEDIATES) $(MISC)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -81,6 +81,15 @@
Prefix, ACPICA_COPYRIGHT, \ Prefix, ACPICA_COPYRIGHT, \
Prefix Prefix
/* Macros for usage messages */
#define ACPI_USAGE_HEADER(Usage) \
printf ("Usage: %s\nOptions:\n", Usage);
#define ACPI_OPTION(Name, Description) \
printf (" %-18s%s\n", Name, Description);
#define FILE_SUFFIX_DISASSEMBLY "dsl" #define FILE_SUFFIX_DISASSEMBLY "dsl"
#define ACPI_TABLE_FILE_SUFFIX ".dat" #define ACPI_TABLE_FILE_SUFFIX ".dat"

View File

@ -123,7 +123,7 @@
/* Maximum sleep allowed via Sleep() operator */ /* Maximum sleep allowed via Sleep() operator */
#define ACPI_MAX_SLEEP 20000 /* Two seconds */ #define ACPI_MAX_SLEEP 2000 /* 2000 millisec == two seconds */
/****************************************************************************** /******************************************************************************

View File

@ -213,7 +213,6 @@ typedef struct acpi_namespace_node
#define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */ #define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */
#define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */ #define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */
#define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */ #define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */
#define ANOBJ_IS_BIT_OFFSET 0x40 /* iASL only: Reference is a bit offset */
#define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */ #define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */
@ -775,6 +774,17 @@ typedef struct acpi_opcode_info
} ACPI_OPCODE_INFO; } ACPI_OPCODE_INFO;
/* Structure for Resource Tag information */
typedef struct acpi_tag_info
{
UINT32 BitOffset;
UINT32 BitLength;
} ACPI_TAG_INFO;
/* Value associated with the parse object */
typedef union acpi_parse_value typedef union acpi_parse_value
{ {
UINT64 Integer; /* Integer constant (Up to 64 bits) */ UINT64 Integer; /* Integer constant (Up to 64 bits) */
@ -783,6 +793,7 @@ typedef union acpi_parse_value
UINT8 *Buffer; /* buffer or string */ UINT8 *Buffer; /* buffer or string */
char *Name; /* NULL terminated string */ char *Name; /* NULL terminated string */
union acpi_parse_object *Arg; /* arguments and contained ops */ union acpi_parse_object *Arg; /* arguments and contained ops */
ACPI_TAG_INFO Tag; /* Resource descriptor tag info */
} ACPI_PARSE_VALUE; } ACPI_PARSE_VALUE;

View File

@ -48,7 +48,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */ /* Current ACPICA subsystem version in YYYYMMDD format */
#define ACPI_CA_VERSION 0x20110623 #define ACPI_CA_VERSION 0x20110922
#include "actypes.h" #include "actypes.h"
#include "actbl.h" #include "actbl.h"

View File

@ -101,7 +101,8 @@
* no debug output. * no debug output.
*/ */
#if (defined ACPI_BIN_APP) || \ #if (defined ACPI_BIN_APP) || \
(defined ACPI_SRC_APP) (defined ACPI_SRC_APP) || \
(defined ACPI_XTRACT_APP)
#define ACPI_APPLICATION #define ACPI_APPLICATION
#define ACPI_SINGLE_THREADED #define ACPI_SINGLE_THREADED
#endif #endif

View File

@ -19,39 +19,37 @@ PROG = acpibin
HOST = _LINUX HOST = _LINUX
NOMAN = YES NOMAN = YES
COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $? COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $<
ACPICA_COMPONENTS = ACPICA_COMPONENTS =
ACPICA_SRC = ../.. ACPICA_SRC = ../..
ACPICA_COMMON = $(ACPICA_SRC)/common ACPICA_INCLUDE = $(ACPICA_SRC)/include
ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS) ACPICA_COMMON = $(ACPICA_SRC)/common
ACPICA_TOOLS = $(ACPICA_SRC)/tools ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS)
ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers ACPICA_TOOLS = $(ACPICA_SRC)/tools
INSTALLDIR = /usr/bin ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR) ACPICA_UTILITIES = $(ACPICA_CORE)/utilities
ACPIBIN = $(ACPICA_TOOLS)/acpibin
INSTALLDIR = /usr/bin
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR)
CFLAGS+= \ ACPICA_HEADERS = \
-D$(HOST) \ $(wildcard $(ACPICA_INCLUDE)/*.h) \
-D_GNU_SOURCE \ $(wildcard $(ACPICA_INCLUDE)/platform/*.h)
-DACPI_BIN_APP \
-I$(ACPICA_SRC)/include
CWARNINGFLAGS = \ #
-ansi \ # Search paths for source files
-Wall \ #
-Wbad-function-cast \ vpath %.c \
-Wdeclaration-after-statement \ $(ACPIBIN) \
-Werror \ $(ACPICA_UTILITIES) \
-Wformat=2 \ $(ACPICA_COMMON) \
-Wmissing-declarations \ $(ACPICA_OSL)
-Wmissing-prototypes \
-Wstrict-aliasing=0 \
-Wstrict-prototypes \
-Wswitch-default \
-Wpointer-arith \
-Wundef
OBJS = \ HEADERS = \
$(wildcard $(ACPIBIN)/*.h)
OBJECTS = \
abcompare.o \ abcompare.o \
abmain.o \ abmain.o \
utalloc.o \ utalloc.o \
@ -68,72 +66,56 @@ OBJS = \
osunixxf.o \ osunixxf.o \
getopt.o getopt.o
# CFLAGS+= \
# Root rule -D$(HOST) \
# -D_GNU_SOURCE \
$(PROG) : $(OBJS) -DACPI_BIN_APP \
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) -I$(ACPICA_INCLUDE)
CWARNINGFLAGS = \
-ansi \
-Wall \
-Wbad-function-cast \
-Wdeclaration-after-statement \
-Werror \
-Wformat=2 \
-Wmissing-declarations \
-Wmissing-prototypes \
-Wstrict-aliasing=0 \
-Wstrict-prototypes \
-Wswitch-default \
-Wpointer-arith \
-Wundef
# #
# acpibin source # gcc 4+ flags
# #
abcompare.o : $(ACPICA_TOOLS)/acpibin/abcompare.c CWARNINGFLAGS += \
$(COMPILE) -Waddress \
-Waggregate-return \
abmain.o : $(ACPICA_TOOLS)/acpibin/abmain.c -Wchar-subscripts \
$(COMPILE) -Wempty-body \
-Wlogical-op \
-Wmissing-declarations \
-Wmissing-field-initializers \
-Wmissing-parameter-type \
-Wnested-externs \
-Wold-style-declaration \
-Wold-style-definition \
-Wredundant-decls \
-Wtype-limits
# #
# ACPICA core source - common # Rules
# #
getopt.o : $(ACPICA_COMMON)/getopt.c $(PROG) : $(OBJECTS)
$(COMPILE) $(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# ACPICA core source
#
utalloc.o : $(ACPICA_CORE)/utilities/utalloc.c
$(COMPILE) $(COMPILE)
utcache.o : $(ACPICA_CORE)/utilities/utcache.c
$(COMPILE)
utdebug.o : $(ACPICA_CORE)/utilities/utdebug.c
$(COMPILE)
utdecode.o : $(ACPICA_CORE)/utilities/utdecode.c
$(COMPILE)
utglobal.o : $(ACPICA_CORE)/utilities/utglobal.c
$(COMPILE)
utlock.o : $(ACPICA_CORE)/utilities/utlock.c
$(COMPILE)
utmath.o : $(ACPICA_CORE)/utilities/utmath.c
$(COMPILE)
utmisc.o : $(ACPICA_CORE)/utilities/utmisc.c
$(COMPILE)
utmutex.o : $(ACPICA_CORE)/utilities/utmutex.c
$(COMPILE)
utstate.o : $(ACPICA_CORE)/utilities/utstate.c
$(COMPILE)
utxferror.o : $(ACPICA_CORE)/utilities/utxferror.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixxf.o : $(ACPICA_OSL)/osunixxf.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG) $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -72,18 +72,14 @@ AbDisplayUsage (
printf ("Option requires %u arguments\n\n", OptionCount); printf ("Option requires %u arguments\n\n", OptionCount);
} }
printf ("Usage: acpibin [options]\n\n"); ACPI_USAGE_HEADER ("acpibin [options]");
printf ("Options:\n\n");
printf (" -c <File1> <File2> Compare two AML files\n");
printf (" -d <InFile> <OutFile> Dump AML binary to text file\n");
printf (" -e <Sig> <InFile> <OutFile> Extract binary AML table from AcpiDmp file\n\n");
printf (" -h <File> Display table header for binary AML file\n"); ACPI_OPTION ("-c <File1><File2>", "Compare two AML files");
printf (" -s <File> Update checksum for binary AML file\n"); ACPI_OPTION ("-d <In><Out>", "Dump AML binary to text file");
printf (" -t Terse mode\n"); ACPI_OPTION ("-e <Sig><In><Out>", "Extract binary AML table from AcpiDmp file");
ACPI_OPTION ("-h <File>", "Display table header for binary AML file");
printf ("\n"); ACPI_OPTION ("-s <File>", "Update checksum for binary AML file");
return; ACPI_OPTION ("-t", "Terse mode");
} }

View File

@ -21,40 +21,58 @@ PROG = acpiexec
HOST = _LINUX HOST = _LINUX
NOMAN = YES NOMAN = YES
COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $? COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $<
LDFLAGS += -lpthread -lrt LDFLAGS += -lpthread -lrt
ACPICA_COMPONENTS = ACPICA_COMPONENTS =
ACPICA_SRC = ../.. ACPICA_SRC = ../..
ACPICA_COMMON = $(ACPICA_SRC)/common ACPICA_INCLUDE = $(ACPICA_SRC)/include
ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS) ACPICA_COMMON = $(ACPICA_SRC)/common
ACPICA_TOOLS = $(ACPICA_SRC)/tools ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS)
ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers ACPICA_TOOLS = $(ACPICA_SRC)/tools
INSTALLDIR = /usr/bin ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR) ACPICA_DEBUGGER = $(ACPICA_CORE)/debugger
ACPICA_DISASSEMBLER = $(ACPICA_CORE)/disassembler
ACPICA_DISPATCHER = $(ACPICA_CORE)/dispatcher
ACPICA_EVENTS = $(ACPICA_CORE)/events
ACPICA_EXECUTER = $(ACPICA_CORE)/executer
ACPICA_HARDWARE = $(ACPICA_CORE)/hardware
ACPICA_NAMESPACE = $(ACPICA_CORE)/namespace
ACPICA_PARSER = $(ACPICA_CORE)/parser
ACPICA_RESOURCES = $(ACPICA_CORE)/resources
ACPICA_TABLES = $(ACPICA_CORE)/tables
ACPICA_UTILITIES = $(ACPICA_CORE)/utilities
ACPIEXEC = $(ACPICA_TOOLS)/acpiexec
INSTALLDIR = /usr/bin
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR)
CFLAGS+= \ ACPICA_HEADERS = \
-D$(HOST) \ $(wildcard $(ACPICA_INCLUDE)/*.h) \
-D_GNU_SOURCE \ $(wildcard $(ACPICA_INCLUDE)/platform/*.h)
-DACPI_EXEC_APP \
-I$(ACPICA_SRC)/include
CWARNINGFLAGS = \ #
-ansi \ # Search paths for source files
-Wall \ #
-Wbad-function-cast \ vpath %.c \
-Wdeclaration-after-statement \ $(ACPIEXEC) \
-Werror \ $(ACPICA_DEBUGGER) \
-Wformat=2 \ $(ACPICA_DISASSEMBLER) \
-Wmissing-declarations \ $(ACPICA_DISPATCHER) \
-Wmissing-prototypes \ $(ACPICA_EVENTS) \
-Wstrict-aliasing=0 \ $(ACPICA_EXECUTER) \
-Wstrict-prototypes \ $(ACPICA_HARDWARE) \
-Wswitch-default \ $(ACPICA_NAMESPACE) \
-Wpointer-arith \ $(ACPICA_PARSER) \
-Wundef $(ACPICA_RESOURCES) \
$(ACPICA_TABLES) \
$(ACPICA_UTILITIES) \
$(ACPICA_COMMON) \
$(ACPICA_OSL)
OBJS = \ HEADERS = \
$(wildcard $(ACPIEXEC)/*.h)
OBJECTS = \
aeexec.o \ aeexec.o \
aehandlers.o \ aehandlers.o \
aemain.o \ aemain.o \
@ -208,483 +226,57 @@ OBJS = \
utxferror.o \ utxferror.o \
utxface.o utxface.o
# CFLAGS+= \
# Root rule -D$(HOST) \
# -D_GNU_SOURCE \
$(PROG) : $(OBJS) -DACPI_EXEC_APP \
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) -I$(ACPICA_INCLUDE)
CWARNINGFLAGS = \
-ansi \
-Wall \
-Wbad-function-cast \
-Wdeclaration-after-statement \
-Werror \
-Wformat=2 \
-Wmissing-declarations \
-Wmissing-prototypes \
-Wstrict-aliasing=0 \
-Wstrict-prototypes \
-Wswitch-default \
-Wpointer-arith \
-Wundef
# #
# acpiexec source # gcc 4+ flags
# #
aeexec.o : $(ACPICA_TOOLS)/acpiexec/aeexec.c CWARNINGFLAGS += \
$(COMPILE) -Waddress \
-Waggregate-return \
aehandlers.o : $(ACPICA_TOOLS)/acpiexec/aehandlers.c -Wchar-subscripts \
$(COMPILE) -Wempty-body \
-Wlogical-op \
aemain.o : $(ACPICA_TOOLS)/acpiexec/aemain.c -Wmissing-declarations \
$(COMPILE) -Wmissing-field-initializers \
-Wmissing-parameter-type \
aetables.o : $(ACPICA_TOOLS)/acpiexec/aetables.c -Wnested-externs \
$(COMPILE) -Wold-style-declaration \
-Wold-style-definition \
-Wredundant-decls \
-Wtype-limits
# #
# ACPICA core source - common # Rules
# #
getopt.o : $(ACPICA_COMMON)/getopt.c $(PROG) : $(OBJECTS)
$(COMPILE) $(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG)
#
# ACPICA core source
#
dbcmds.o : $(ACPICA_CORE)/debugger/dbcmds.c
$(COMPILE)
dbdisply.o : $(ACPICA_CORE)/debugger/dbdisply.c
$(COMPILE)
dbexec.o : $(ACPICA_CORE)/debugger/dbexec.c
$(COMPILE)
dbfileio.o : $(ACPICA_CORE)/debugger/dbfileio.c
$(COMPILE)
dbhistry.o : $(ACPICA_CORE)/debugger/dbhistry.c
$(COMPILE)
dbinput.o : $(ACPICA_CORE)/debugger/dbinput.c
$(COMPILE)
dbmethod.o : $(ACPICA_CORE)/debugger/dbmethod.c
$(COMPILE)
dbnames.o : $(ACPICA_CORE)/debugger/dbnames.c
$(COMPILE)
dbstats.o : $(ACPICA_CORE)/debugger/dbstats.c
$(COMPILE)
dbutils.o : $(ACPICA_CORE)/debugger/dbutils.c
$(COMPILE)
dbxface.o : $(ACPICA_CORE)/debugger/dbxface.c
$(COMPILE)
dmbuffer.o : $(ACPICA_CORE)/disassembler/dmbuffer.c
$(COMPILE)
dmnames.o : $(ACPICA_CORE)/disassembler/dmnames.c
$(COMPILE)
dmobject.o : $(ACPICA_CORE)/disassembler/dmobject.c
$(COMPILE)
dmopcode.o : $(ACPICA_CORE)/disassembler/dmopcode.c
$(COMPILE)
dmresrc.o : $(ACPICA_CORE)/disassembler/dmresrc.c
$(COMPILE)
dmresrcl.o : $(ACPICA_CORE)/disassembler/dmresrcl.c
$(COMPILE)
dmresrcs.o : $(ACPICA_CORE)/disassembler/dmresrcs.c
$(COMPILE)
dmutils.o : $(ACPICA_CORE)/disassembler/dmutils.c
$(COMPILE)
dmwalk.o : $(ACPICA_CORE)/disassembler/dmwalk.c
$(COMPILE)
dsargs.o : $(ACPICA_CORE)/dispatcher/dsargs.c
$(COMPILE)
dscontrol.o : $(ACPICA_CORE)/dispatcher/dscontrol.c
$(COMPILE)
dsfield.o : $(ACPICA_CORE)/dispatcher/dsfield.c
$(COMPILE)
dsinit.o : $(ACPICA_CORE)/dispatcher/dsinit.c
$(COMPILE)
dsmethod.o : $(ACPICA_CORE)/dispatcher/dsmethod.c
$(COMPILE)
dsmthdat.o : $(ACPICA_CORE)/dispatcher/dsmthdat.c
$(COMPILE)
dsobject.o : $(ACPICA_CORE)/dispatcher/dsobject.c
$(COMPILE)
dsopcode.o : $(ACPICA_CORE)/dispatcher/dsopcode.c
$(COMPILE)
dsutils.o : $(ACPICA_CORE)/dispatcher/dsutils.c
$(COMPILE)
dswexec.o : $(ACPICA_CORE)/dispatcher/dswexec.c
$(COMPILE)
dswload.o : $(ACPICA_CORE)/dispatcher/dswload.c
$(COMPILE)
dswload2.o : $(ACPICA_CORE)/dispatcher/dswload2.c
$(COMPILE)
dswscope.o : $(ACPICA_CORE)/dispatcher/dswscope.c
$(COMPILE)
dswstate.o : $(ACPICA_CORE)/dispatcher/dswstate.c
$(COMPILE)
evevent.o : $(ACPICA_CORE)/events/evevent.c
$(COMPILE)
evglock.o : $(ACPICA_CORE)/events/evglock.c
$(COMPILE)
evgpe.o : $(ACPICA_CORE)/events/evgpe.c
$(COMPILE)
evgpeblk.o : $(ACPICA_CORE)/events/evgpeblk.c
$(COMPILE)
evgpeinit.o : $(ACPICA_CORE)/events/evgpeinit.c
$(COMPILE)
evgpeutil.o : $(ACPICA_CORE)/events/evgpeutil.c
$(COMPILE)
evmisc.o : $(ACPICA_CORE)/events/evmisc.c
$(COMPILE)
evregion.o : $(ACPICA_CORE)/events/evregion.c
$(COMPILE)
evrgnini.o : $(ACPICA_CORE)/events/evrgnini.c
$(COMPILE)
evsci.o : $(ACPICA_CORE)/events/evsci.c
$(COMPILE)
evxface.o : $(ACPICA_CORE)/events/evxface.c
$(COMPILE)
evxfevnt.o : $(ACPICA_CORE)/events/evxfevnt.c
$(COMPILE)
evxfgpe.o : $(ACPICA_CORE)/events/evxfgpe.c
$(COMPILE)
evxfregn.o : $(ACPICA_CORE)/events/evxfregn.c
$(COMPILE)
exconfig.o : $(ACPICA_CORE)/executer/exconfig.c
$(COMPILE)
exconvrt.o : $(ACPICA_CORE)/executer/exconvrt.c
$(COMPILE)
excreate.o : $(ACPICA_CORE)/executer/excreate.c
$(COMPILE)
exdebug.o : $(ACPICA_CORE)/executer/exdebug.c
$(COMPILE)
exdump.o : $(ACPICA_CORE)/executer/exdump.c
$(COMPILE)
exfield.o : $(ACPICA_CORE)/executer/exfield.c
$(COMPILE)
exfldio.o : $(ACPICA_CORE)/executer/exfldio.c
$(COMPILE)
exmisc.o : $(ACPICA_CORE)/executer/exmisc.c
$(COMPILE)
exmutex.o : $(ACPICA_CORE)/executer/exmutex.c
$(COMPILE)
exnames.o : $(ACPICA_CORE)/executer/exnames.c
$(COMPILE)
exoparg1.o : $(ACPICA_CORE)/executer/exoparg1.c
$(COMPILE)
exoparg2.o : $(ACPICA_CORE)/executer/exoparg2.c
$(COMPILE)
exoparg3.o : $(ACPICA_CORE)/executer/exoparg3.c
$(COMPILE)
exoparg6.o : $(ACPICA_CORE)/executer/exoparg6.c
$(COMPILE)
exprep.o : $(ACPICA_CORE)/executer/exprep.c
$(COMPILE)
exregion.o : $(ACPICA_CORE)/executer/exregion.c
$(COMPILE)
exresnte.o : $(ACPICA_CORE)/executer/exresnte.c
$(COMPILE)
exresolv.o : $(ACPICA_CORE)/executer/exresolv.c
$(COMPILE)
exresop.o : $(ACPICA_CORE)/executer/exresop.c
$(COMPILE)
exstore.o : $(ACPICA_CORE)/executer/exstore.c
$(COMPILE)
exstoren.o : $(ACPICA_CORE)/executer/exstoren.c
$(COMPILE)
exstorob.o : $(ACPICA_CORE)/executer/exstorob.c
$(COMPILE)
exsystem.o : $(ACPICA_CORE)/executer/exsystem.c
$(COMPILE)
exutils.o : $(ACPICA_CORE)/executer/exutils.c
$(COMPILE)
hwacpi.o : $(ACPICA_CORE)/hardware/hwacpi.c
$(COMPILE)
hwgpe.o : $(ACPICA_CORE)/hardware/hwgpe.c %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
$(COMPILE) $(COMPILE)
hwpci.o : $(ACPICA_CORE)/hardware/hwpci.c
$(COMPILE)
hwregs.o : $(ACPICA_CORE)/hardware/hwregs.c
$(COMPILE)
hwsleep.o : $(ACPICA_CORE)/hardware/hwsleep.c
$(COMPILE)
hwvalid.o : $(ACPICA_CORE)/hardware/hwvalid.c
$(COMPILE)
hwxface.o : $(ACPICA_CORE)/hardware/hwxface.c
$(COMPILE)
nsaccess.o : $(ACPICA_CORE)/namespace/nsaccess.c
$(COMPILE)
nsalloc.o : $(ACPICA_CORE)/namespace/nsalloc.c
$(COMPILE)
nsdump.o : $(ACPICA_CORE)/namespace/nsdump.c
$(COMPILE)
nsdumpdv.o : $(ACPICA_CORE)/namespace/nsdumpdv.c
$(COMPILE)
nseval.o : $(ACPICA_CORE)/namespace/nseval.c
$(COMPILE)
nsinit.o : $(ACPICA_CORE)/namespace/nsinit.c
$(COMPILE)
nsload.o : $(ACPICA_CORE)/namespace/nsload.c
$(COMPILE)
nsnames.o : $(ACPICA_CORE)/namespace/nsnames.c
$(COMPILE)
nsobject.o : $(ACPICA_CORE)/namespace/nsobject.c
$(COMPILE)
nsparse.o : $(ACPICA_CORE)/namespace/nsparse.c
$(COMPILE)
nspredef.o : $(ACPICA_CORE)/namespace/nspredef.c
$(COMPILE)
nsrepair.o : $(ACPICA_CORE)/namespace/nsrepair.c
$(COMPILE)
nsrepair2.o : $(ACPICA_CORE)/namespace/nsrepair2.c
$(COMPILE)
nssearch.o : $(ACPICA_CORE)/namespace/nssearch.c
$(COMPILE)
nsutils.o : $(ACPICA_CORE)/namespace/nsutils.c
$(COMPILE)
nswalk.o : $(ACPICA_CORE)/namespace/nswalk.c
$(COMPILE)
nsxfeval.o : $(ACPICA_CORE)/namespace/nsxfeval.c
$(COMPILE)
nsxfname.o : $(ACPICA_CORE)/namespace/nsxfname.c
$(COMPILE)
nsxfobj.o : $(ACPICA_CORE)/namespace/nsxfobj.c
$(COMPILE)
psargs.o : $(ACPICA_CORE)/parser/psargs.c
$(COMPILE)
psloop.o : $(ACPICA_CORE)/parser/psloop.c
$(COMPILE)
psopcode.o : $(ACPICA_CORE)/parser/psopcode.c
$(COMPILE)
psparse.o : $(ACPICA_CORE)/parser/psparse.c
$(COMPILE)
psscope.o : $(ACPICA_CORE)/parser/psscope.c
$(COMPILE)
pstree.o : $(ACPICA_CORE)/parser/pstree.c
$(COMPILE)
psutils.o : $(ACPICA_CORE)/parser/psutils.c
$(COMPILE)
pswalk.o : $(ACPICA_CORE)/parser/pswalk.c
$(COMPILE)
psxface.o : $(ACPICA_CORE)/parser/psxface.c
$(COMPILE)
rsaddr.o : $(ACPICA_CORE)/resources/rsaddr.c
$(COMPILE)
rscalc.o : $(ACPICA_CORE)/resources/rscalc.c
$(COMPILE)
rscreate.o : $(ACPICA_CORE)/resources/rscreate.c
$(COMPILE)
rsdump.o : $(ACPICA_CORE)/resources/rsdump.c
$(COMPILE)
rsio.o : $(ACPICA_CORE)/resources/rsio.c
$(COMPILE)
rsinfo.o : $(ACPICA_CORE)/resources/rsinfo.c
$(COMPILE)
rsirq.o : $(ACPICA_CORE)/resources/rsirq.c
$(COMPILE)
rslist.o : $(ACPICA_CORE)/resources/rslist.c
$(COMPILE)
rsmemory.o : $(ACPICA_CORE)/resources/rsmemory.c
$(COMPILE)
rsmisc.o : $(ACPICA_CORE)/resources/rsmisc.c
$(COMPILE)
rsutils.o : $(ACPICA_CORE)/resources/rsutils.c
$(COMPILE)
rsxface.o : $(ACPICA_CORE)/resources/rsxface.c
$(COMPILE)
tbfadt.o : $(ACPICA_CORE)/tables/tbfadt.c
$(COMPILE)
tbfind.o : $(ACPICA_CORE)/tables/tbfind.c
$(COMPILE)
tbinstal.o : $(ACPICA_CORE)/tables/tbinstal.c
$(COMPILE)
tbutils.o : $(ACPICA_CORE)/tables/tbutils.c
$(COMPILE)
tbxface.o : $(ACPICA_CORE)/tables/tbxface.c
$(COMPILE)
tbxfroot.o : $(ACPICA_CORE)/tables/tbxfroot.c
$(COMPILE)
utalloc.o : $(ACPICA_CORE)/utilities/utalloc.c
$(COMPILE)
utcache.o : $(ACPICA_CORE)/utilities/utcache.c
$(COMPILE)
utcopy.o : $(ACPICA_CORE)/utilities/utcopy.c
$(COMPILE)
utdebug.o : $(ACPICA_CORE)/utilities/utdebug.c
$(COMPILE)
utdecode.o : $(ACPICA_CORE)/utilities/utdecode.c
$(COMPILE)
utdelete.o : $(ACPICA_CORE)/utilities/utdelete.c
$(COMPILE)
uteval.o : $(ACPICA_CORE)/utilities/uteval.c
$(COMPILE)
utglobal.o : $(ACPICA_CORE)/utilities/utglobal.c
$(COMPILE)
utids.o : $(ACPICA_CORE)/utilities/utids.c
$(COMPILE)
utinit.o : $(ACPICA_CORE)/utilities/utinit.c
$(COMPILE)
utlock.o : $(ACPICA_CORE)/utilities/utlock.c
$(COMPILE)
utmath.o : $(ACPICA_CORE)/utilities/utmath.c
$(COMPILE)
utmisc.o : $(ACPICA_CORE)/utilities/utmisc.c
$(COMPILE)
utmutex.o : $(ACPICA_CORE)/utilities/utmutex.c
$(COMPILE)
utobject.o : $(ACPICA_CORE)/utilities/utobject.c
$(COMPILE)
utresrc.o : $(ACPICA_CORE)/utilities/utresrc.c
$(COMPILE)
utstate.o : $(ACPICA_CORE)/utilities/utstate.c
$(COMPILE)
uttrack.o : $(ACPICA_CORE)/utilities/uttrack.c
$(COMPILE)
utosi.o : $(ACPICA_CORE)/utilities/utosi.c
$(COMPILE)
utxferror.o : $(ACPICA_CORE)/utilities/utxferror.c
$(COMPILE)
utxface.o : $(ACPICA_CORE)/utilities/utxface.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixxf.o : $(ACPICA_OSL)/osunixxf.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -82,30 +82,30 @@ static char *FileList[ASL_MAX_FILES];
static void static void
usage (void) usage (void)
{ {
printf ("Usage: acpiexec [options] AMLfile1 AMLfile2 ...\n\n");
printf ("Where:\n"); ACPI_USAGE_HEADER ("acpiexec [options] AMLfile1 AMLfile2 ...");
printf (" -? Display this message\n");
printf (" -b <CommandLine> Batch mode command execution\n"); ACPI_OPTION ("-?", "Display this message");
printf (" -m [Method] Batch mode method execution. Default=MAIN\n"); ACPI_OPTION ("-b <CommandLine>", "Batch mode command execution");
ACPI_OPTION ("-m [Method]", "Batch mode method execution. Default=MAIN");
printf ("\n"); printf ("\n");
printf (" -da Disable method abort on error\n"); ACPI_OPTION ("-da", "Disable method abort on error");
printf (" -di Disable execution of STA/INI methods during init\n"); ACPI_OPTION ("-di", "Disable execution of STA/INI methods during init");
printf (" -do Disable Operation Region address simulation\n"); ACPI_OPTION ("-do", "Disable Operation Region address simulation");
printf (" -dr Disable repair of method return values\n"); ACPI_OPTION ("-dr", "Disable repair of method return values");
printf (" -dt Disable allocation tracking (performance)\n"); ACPI_OPTION ("-dt", "Disable allocation tracking (performance)");
printf ("\n"); printf ("\n");
printf (" -ef Enable display of final memory statistics\n"); ACPI_OPTION ("-ef", "Enable display of final memory statistics");
printf (" -em Enable Interpreter Serialized Mode\n"); ACPI_OPTION ("-em", "Enable Interpreter Serialized Mode");
printf (" -es Enable Interpreter Slack Mode\n"); ACPI_OPTION ("-es", "Enable Interpreter Slack Mode");
printf (" -et Enable debug semaphore timeout\n"); ACPI_OPTION ("-et", "Enable debug semaphore timeout");
printf ("\n"); printf ("\n");
printf (" -f <Value> Operation Region initialization fill value\n"); ACPI_OPTION ("-f <Value>", "Operation Region initialization fill value");
printf (" -v Verbose initialization output\n"); ACPI_OPTION ("-v", "Verbose initialization output");
printf (" -x <DebugLevel> Debug output level\n"); ACPI_OPTION ("-x <DebugLevel>", "Debug output level");
} }
@ -583,12 +583,13 @@ main (
*WildcardList = NULL; *WildcardList = NULL;
WildcardList++; WildcardList++;
/* /* Ignore non-AML tables, we can't use them. Except for an FADT */
* Ignore an FACS or RSDT, we can't use them.
*/ if (!ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_FADT) &&
if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_FACS) || !AcpiUtIsAmlTable (Table))
ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_RSDT))
{ {
ACPI_WARNING ((AE_INFO,"Table %4.4s is not an AML table, ignoring",
Table->Signature));
AcpiOsFree (Table); AcpiOsFree (Table);
continue; continue;
} }

View File

@ -20,22 +20,48 @@ PROG = acpihelp
HOST = _LINUX HOST = _LINUX
NOMAN = YES NOMAN = YES
COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $? COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $<
ACPICA_COMPONENTS = ACPICA_COMPONENTS =
ACPICA_SRC = ../.. ACPICA_SRC = ../..
ACPICA_COMMON = $(ACPICA_SRC)/common ACPICA_INCLUDE = $(ACPICA_SRC)/include
ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS) ACPICA_COMMON = $(ACPICA_SRC)/common
ACPICA_TOOLS = $(ACPICA_SRC)/tools ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS)
ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers ACPICA_TOOLS = $(ACPICA_SRC)/tools
INSTALLDIR = /usr/bin ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR) ACPICA_UTILITIES = $(ACPICA_CORE)/utilities
ACPIHELP = $(ACPICA_TOOLS)/acpihelp
INSTALLDIR = /usr/bin
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR)
ACPICA_HEADERS = \
$(wildcard $(ACPICA_INCLUDE)/*.h) \
$(wildcard $(ACPICA_INCLUDE)/platform/*.h)
#
# Search paths for source files
#
vpath %.c \
$(ACPIHELP) \
$(ACPICA_COMMON)
HEADERS = \
$(wildcard $(ACPIHELP)/*.h)
OBJECTS = \
ahamlops.o \
ahaslkey.o \
ahaslops.o \
ahdecode.o \
ahpredef.o \
ahmain.o \
getopt.o
CFLAGS+= \ CFLAGS+= \
-D$(HOST) \ -D$(HOST) \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
-DACPI_HELP_APP \ -DACPI_HELP_APP \
-I$(ACPICA_SRC)/include -I$(ACPICA_INCLUDE)
CWARNINGFLAGS = \ CWARNINGFLAGS = \
-ansi \ -ansi \
@ -52,50 +78,36 @@ CWARNINGFLAGS = \
-Wpointer-arith \ -Wpointer-arith \
-Wundef -Wundef
OBJS = \ #
ahamlops.o \ # gcc 4+ flags
ahaslkey.o \ #
ahaslops.o \ CWARNINGFLAGS += \
ahdecode.o \ -Waddress \
ahpredef.o \ -Waggregate-return \
ahmain.o \ -Wchar-subscripts \
getopt.o -Wempty-body \
-Wlogical-op \
-Wmissing-declarations \
-Wmissing-field-initializers \
-Wmissing-parameter-type \
-Wnested-externs \
-Wold-style-declaration \
-Wold-style-definition \
-Wredundant-decls \
-Wtype-limits
# #
# Root rule # Rules
# #
$(PROG) : $(OBJS) $(PROG) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# acpihelp source
#
ahamlops.o : $(ACPICA_TOOLS)/acpihelp/ahamlops.c
$(COMPILE)
ahaslkey.o : $(ACPICA_TOOLS)/acpihelp/ahaslkey.c
$(COMPILE)
ahaslops.o : $(ACPICA_TOOLS)/acpihelp/ahaslops.c
$(COMPILE)
ahdecode.o : $(ACPICA_TOOLS)/acpihelp/ahdecode.c
$(COMPILE)
ahpredef.o : $(ACPICA_TOOLS)/acpihelp/ahpredef.c
$(COMPILE)
ahmain.o : $(ACPICA_TOOLS)/acpihelp/ahmain.c
$(COMPILE)
#
# ACPICA core source - common
#
getopt.o : $(ACPICA_COMMON)/getopt.c
$(COMPILE) $(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -50,6 +50,8 @@
*/ */
const AH_ASL_OPERATOR AslOperatorInfo[] = const AH_ASL_OPERATOR AslOperatorInfo[] =
{ {
{"AccessAs", "(AccessType, AccessAttibute)",
"ChangeFieldUnitAccess"},
{"Acquire", "(SyncObject, TimeoutValue) => Boolean", {"Acquire", "(SyncObject, TimeoutValue) => Boolean",
"Acquire a mutex"}, "Acquire a mutex"},
{"Add", "(Addend1, Addend2, Result) => Integer", {"Add", "(Addend1, Addend2, Result) => Integer",
@ -240,6 +242,8 @@ const AH_ASL_OPERATOR AslOperatorInfo[] =
"Notify Object of event"}, "Notify Object of event"},
{"ObjectType", "(Object) => Integer", {"ObjectType", "(Object) => Integer",
"Type of object"}, "Type of object"},
{"Offset", "(ByteOffset)",
"Change Current Field Unit Offset"},
{"One", "=> Integer", {"One", "=> Integer",
"Constant One Object (1)"}, "Constant One Object (1)"},
{"Ones", "=> Integer", {"Ones", "=> Integer",

View File

@ -64,18 +64,16 @@ AhDisplayUsage (
void) void)
{ {
printf ("\n"); ACPI_USAGE_HEADER ("acpihelp <options> [NamePrefix | HexValue]");
printf ("Usage: acpihelp <options> [NamePrefix | HexValue]\n\n"); ACPI_OPTION ("-k [NamePrefix]", "Find/Display ASL non-operator keyword(s)");
printf ("Where: -k [NamePrefix] Find/Display ASL non-operator keyword(s)\n"); ACPI_OPTION ("-m [NamePrefix]", "Find/Display AML opcode name(s)");
printf (" -m [NamePrefix] Find/Display AML opcode name(s)\n"); ACPI_OPTION ("-o [HexValue]", "Decode hex AML opcode");
printf (" -o [HexValue] Decode hex AML opcode\n"); ACPI_OPTION ("-p [NamePrefix]", "Find/Display ASL predefined method name(s)");
printf (" -p [NamePrefix] Find/Display ASL predefined method name(s)\n"); ACPI_OPTION ("-s [NamePrefix]", "Find/Display ASL operator name(s)");
printf (" -s [NamePrefix] Find/Display ASL operator name(s)\n");
printf ("\nNamePrefix/HexValue not specified means \"Display All\"\n"); printf ("\nNamePrefix/HexValue not specified means \"Display All\"\n");
printf ("\nDefault search with NamePrefix and no options:\n"); printf ("\nDefault search with NamePrefix and no options:\n");
printf (" Find ASL operator names - if NamePrefix does not start with underscore\n"); printf (" Find ASL operator names - if NamePrefix does not start with underscore\n");
printf (" Find ASL predefined method names - if NamePrefix starts with underscore\n"); printf (" Find ASL predefined method names - if NamePrefix starts with underscore\n");
printf ("\n");
} }

View File

@ -273,5 +273,6 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
{"_UPP", "User Presence Polling", "Returns the recommended user presence polling interval"}, {"_UPP", "User Presence Polling", "Returns the recommended user presence polling interval"},
{"_VPO", "Video Post Options", "Returns the implemented video post options"}, {"_VPO", "Video Post Options", "Returns the implemented video post options"},
{"_WAK", "Wake", "Inform AML that the system has just awakened"}, {"_WAK", "Wake", "Inform AML that the system has just awakened"},
{"_Wxx", "Wake Event", "Method executed as a result of a wake event"} {"_Wxx", "Wake Event", "Method executed as a result of a wake event"},
{NULL, NULL, NULL}
}; };

View File

@ -21,40 +21,49 @@ PROG = acpinames
HOST = _LINUX HOST = _LINUX
NOMAN = YES NOMAN = YES
COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $? COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $<
ACPICA_COMPONENTS = ACPICA_COMPONENTS =
ACPICA_SRC = ../.. ACPICA_SRC = ../..
ACPICA_COMMON = $(ACPICA_SRC)/common ACPICA_INCLUDE = $(ACPICA_SRC)/include
ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS) ACPICA_COMMON = $(ACPICA_SRC)/common
ACPICA_TOOLS = $(ACPICA_SRC)/tools ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS)
ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers ACPICA_TOOLS = $(ACPICA_SRC)/tools
INSTALLDIR = /usr/bin ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR) ACPICA_DEBUGGER = $(ACPICA_CORE)/debugger
ACPICA_DISPATCHER = $(ACPICA_CORE)/dispatcher
ACPICA_EXECUTER = $(ACPICA_CORE)/executer
ACPICA_NAMESPACE = $(ACPICA_CORE)/namespace
ACPICA_PARSER = $(ACPICA_CORE)/parser
ACPICA_TABLES = $(ACPICA_CORE)/tables
ACPICA_UTILITIES = $(ACPICA_CORE)/utilities
ACPINAMES = $(ACPICA_TOOLS)/acpinames
INSTALLDIR = /usr/bin
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR)
CFLAGS+= \ ACPICA_HEADERS = \
-D$(HOST) \ $(wildcard $(ACPICA_INCLUDE)/*.h) \
-D_GNU_SOURCE \ $(wildcard $(ACPICA_INCLUDE)/platform/*.h)
-DACPI_NAMES_APP \
-I$(ACPICA_SRC)/include \
-I$(ACPICA_TOOLS)/acpinames
CWARNINGFLAGS = \ #
-ansi \ # Search paths for source files
-Wall \ #
-Wbad-function-cast \ vpath %.c \
-Wdeclaration-after-statement \ $(ACPINAMES) \
-Werror \ $(ACPICA_DEBUGGER) \
-Wformat=2 \ $(ACPICA_DISPATCHER) \
-Wmissing-declarations \ $(ACPICA_EXECUTER) \
-Wmissing-prototypes \ $(ACPICA_NAMESPACE) \
-Wstrict-aliasing=0 \ $(ACPICA_PARSER) \
-Wstrict-prototypes \ $(ACPICA_TABLES) \
-Wswitch-default \ $(ACPICA_UTILITIES) \
-Wpointer-arith \ $(ACPICA_COMMON) \
-Wundef $(ACPICA_OSL)
OBJS = \ HEADERS = \
$(wildcard $(ACPINAMES)/*.h)
OBJECTS = \
anmain.o \ anmain.o \
anstubs.o \ anstubs.o \
antables.o \ antables.o \
@ -119,216 +128,58 @@ OBJS = \
utxferror.o \ utxferror.o \
utxface.o utxface.o
# CFLAGS+= \
# Root rule -D$(HOST) \
# -D_GNU_SOURCE \
$(PROG) : $(OBJS) -DACPI_NAMES_APP \
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) -I$(ACPICA_INCLUDE) \
-I$(ACPINAMES)
CWARNINGFLAGS = \
-ansi \
-Wall \
-Wbad-function-cast \
-Wdeclaration-after-statement \
-Werror \
-Wformat=2 \
-Wmissing-declarations \
-Wmissing-prototypes \
-Wstrict-aliasing=0 \
-Wstrict-prototypes \
-Wswitch-default \
-Wpointer-arith \
-Wundef
# #
# acpinames source # gcc 4+ flags
# #
anmain.o : $(ACPICA_TOOLS)/acpinames/anmain.c CWARNINGFLAGS += \
$(COMPILE) -Waddress \
-Waggregate-return \
anstubs.o : $(ACPICA_TOOLS)/acpinames/anstubs.c -Wchar-subscripts \
$(COMPILE) -Wempty-body \
-Wlogical-op \
antables.o : $(ACPICA_TOOLS)/acpinames/antables.c -Wmissing-declarations \
$(COMPILE) -Wmissing-field-initializers \
-Wmissing-parameter-type \
-Wnested-externs \
-Wold-style-declaration \
-Wold-style-definition \
-Wredundant-decls \
-Wtype-limits
# #
# ACPICA core source - common # Rules
# #
getopt.o : $(ACPICA_COMMON)/getopt.c $(PROG) : $(OBJECTS)
$(COMPILE) $(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# ACPICA core source
#
dbfileio.o : $(ACPICA_CORE)/debugger/dbfileio.c
$(COMPILE) $(COMPILE)
dsfield.o : $(ACPICA_CORE)/dispatcher/dsfield.c
$(COMPILE)
dsmthdat.o : $(ACPICA_CORE)/dispatcher/dsmthdat.c
$(COMPILE)
dsobject.o : $(ACPICA_CORE)/dispatcher/dsobject.c
$(COMPILE)
dsutils.o : $(ACPICA_CORE)/dispatcher/dsutils.c
$(COMPILE)
dswload.o : $(ACPICA_CORE)/dispatcher/dswload.c
$(COMPILE)
dswload2.o : $(ACPICA_CORE)/dispatcher/dswload2.c
$(COMPILE)
dswscope.o : $(ACPICA_CORE)/dispatcher/dswscope.c
$(COMPILE)
dswstate.o : $(ACPICA_CORE)/dispatcher/dswstate.c
$(COMPILE)
excreate.o : $(ACPICA_CORE)/executer/excreate.c
$(COMPILE)
exnames.o : $(ACPICA_CORE)/executer/exnames.c
$(COMPILE)
exresnte.o : $(ACPICA_CORE)/executer/exresnte.c
$(COMPILE)
exresolv.o : $(ACPICA_CORE)/executer/exresolv.c
$(COMPILE)
exutils.o : $(ACPICA_CORE)/executer/exutils.c
$(COMPILE)
nsaccess.o : $(ACPICA_CORE)/namespace/nsaccess.c
$(COMPILE)
nsalloc.o : $(ACPICA_CORE)/namespace/nsalloc.c
$(COMPILE)
nsdump.o : $(ACPICA_CORE)/namespace/nsdump.c
$(COMPILE)
nsinit.o : $(ACPICA_CORE)/namespace/nsinit.c
$(COMPILE)
nsload.o : $(ACPICA_CORE)/namespace/nsload.c
$(COMPILE)
nsnames.o : $(ACPICA_CORE)/namespace/nsnames.c
$(COMPILE)
nsobject.o : $(ACPICA_CORE)/namespace/nsobject.c
$(COMPILE)
nsparse.o : $(ACPICA_CORE)/namespace/nsparse.c
$(COMPILE)
nssearch.o : $(ACPICA_CORE)/namespace/nssearch.c
$(COMPILE)
nsutils.o : $(ACPICA_CORE)/namespace/nsutils.c
$(COMPILE)
nswalk.o : $(ACPICA_CORE)/namespace/nswalk.c
$(COMPILE)
nsxfeval.o : $(ACPICA_CORE)/namespace/nsxfeval.c
$(COMPILE)
nsxfname.o : $(ACPICA_CORE)/namespace/nsxfname.c
$(COMPILE)
nsxfobj.o : $(ACPICA_CORE)/namespace/nsxfobj.c
$(COMPILE)
psargs.o : $(ACPICA_CORE)/parser/psargs.c
$(COMPILE)
psloop.o : $(ACPICA_CORE)/parser/psloop.c
$(COMPILE)
psopcode.o : $(ACPICA_CORE)/parser/psopcode.c
$(COMPILE)
psparse.o : $(ACPICA_CORE)/parser/psparse.c
$(COMPILE)
psscope.o : $(ACPICA_CORE)/parser/psscope.c
$(COMPILE)
pstree.o : $(ACPICA_CORE)/parser/pstree.c
$(COMPILE)
psutils.o : $(ACPICA_CORE)/parser/psutils.c
$(COMPILE)
pswalk.o : $(ACPICA_CORE)/parser/pswalk.c
$(COMPILE)
psxface.o : $(ACPICA_CORE)/parser/psxface.c
$(COMPILE)
tbfadt.o : $(ACPICA_CORE)/tables/tbfadt.c
$(COMPILE)
tbfind.o : $(ACPICA_CORE)/tables/tbfind.c
$(COMPILE)
tbinstal.o : $(ACPICA_CORE)/tables/tbinstal.c
$(COMPILE)
tbutils.o : $(ACPICA_CORE)/tables/tbutils.c
$(COMPILE)
tbxface.o : $(ACPICA_CORE)/tables/tbxface.c
$(COMPILE)
tbxfroot.o : $(ACPICA_CORE)/tables/tbxfroot.c
$(COMPILE)
utalloc.o : $(ACPICA_CORE)/utilities/utalloc.c
$(COMPILE)
utcache.o : $(ACPICA_CORE)/utilities/utcache.c
$(COMPILE)
utdebug.o : $(ACPICA_CORE)/utilities/utdebug.c
$(COMPILE)
utdecode.o : $(ACPICA_CORE)/utilities/utdecode.c
$(COMPILE)
utdelete.o : $(ACPICA_CORE)/utilities/utdelete.c
$(COMPILE)
utglobal.o : $(ACPICA_CORE)/utilities/utglobal.c
$(COMPILE)
utlock.o : $(ACPICA_CORE)/utilities/utlock.c
$(COMPILE)
utmath.o : $(ACPICA_CORE)/utilities/utmath.c
$(COMPILE)
utmisc.o : $(ACPICA_CORE)/utilities/utmisc.c
$(COMPILE)
utmutex.o : $(ACPICA_CORE)/utilities/utmutex.c
$(COMPILE)
utobject.o : $(ACPICA_CORE)/utilities/utobject.c
$(COMPILE)
utstate.o : $(ACPICA_CORE)/utilities/utstate.c
$(COMPILE)
utosi.o : $(ACPICA_CORE)/utilities/utosi.c
$(COMPILE)
utxferror.o : $(ACPICA_CORE)/utilities/utxferror.c
$(COMPILE)
utxface.o : $(ACPICA_CORE)/utilities/utxface.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixxf.o : $(ACPICA_OSL)/osunixxf.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -72,10 +72,9 @@ static void
usage ( usage (
void) void)
{ {
printf ("Usage: AcpiNames [options] AMLfile\n\n");
printf ("Where:\n"); ACPI_USAGE_HEADER ("AcpiNames [options] AMLfile");
printf (" -? Display this message\n"); ACPI_OPTION ("-?", "Display this message");
} }

View File

@ -19,23 +19,51 @@ PROG = acpisrc
HOST = _LINUX HOST = _LINUX
NOMAN = YES NOMAN = YES
COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $? COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $<
ACPICA_COMPONENTS = ACPICA_COMPONENTS =
ACPICA_SRC = ../.. ACPICA_SRC = ../..
ACPICA_COMMON = $(ACPICA_SRC)/common ACPICA_INCLUDE = $(ACPICA_SRC)/include
ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS) ACPICA_COMMON = $(ACPICA_SRC)/common
ACPICA_TOOLS = $(ACPICA_SRC)/tools ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS)
ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers ACPICA_TOOLS = $(ACPICA_SRC)/tools
INSTALLDIR = /usr/bin ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR) ACPISRC = $(ACPICA_TOOLS)/acpisrc
INSTALLDIR = /usr/bin
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR)
ACPICA_HEADERS = \
$(wildcard $(ACPICA_INCLUDE)/*.h) \
$(wildcard $(ACPICA_INCLUDE)/platform/*.h)
#
# Search path for source files and individual source files
#
vpath %.c \
$(ACPISRC) \
$(ACPICA_COMMON) \
$(ACPICA_OSL)
HEADERS = \
$(wildcard $(ACPISRC)/*.h)
OBJECTS = \
ascase.o \
asconvrt.o \
asfile.o \
asmain.o \
asremove.o \
astable.o \
asutils.o \
osunixdir.o \
getopt.o
CFLAGS+= \ CFLAGS+= \
-D$(HOST) \ -D$(HOST) \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
-DACPI_SRC_APP \ -DACPI_SRC_APP \
-I$(ACPICA_SRC)/include \ -I$(ACPISRC) \
-I. -I$(ACPICA_INCLUDE)
CWARNINGFLAGS = \ CWARNINGFLAGS = \
-ansi \ -ansi \
@ -52,62 +80,35 @@ CWARNINGFLAGS = \
-Wpointer-arith \ -Wpointer-arith \
-Wundef -Wundef
OBJS = \ #
ascase.o \ # gcc 4+ flags
asconvrt.o \ #
asfile.o \ CWARNINGFLAGS += \
asmain.o \ -Waddress \
asremove.o \ -Waggregate-return \
astable.o \ -Wchar-subscripts \
asutils.o \ -Wempty-body \
osunixdir.o \ -Wlogical-op \
getopt.o -Wmissing-declarations \
-Wmissing-field-initializers \
-Wmissing-parameter-type \
-Wnested-externs \
-Wold-style-declaration \
-Wold-style-definition \
-Wredundant-decls \
-Wtype-limits
# #
# Root rule # Rules
# #
$(PROG) : $(OBJS) $(PROG) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# acpisrc source
#
ascase.o : $(ACPICA_TOOLS)/acpisrc/ascase.c
$(COMPILE) $(COMPILE)
asconvrt.o : $(ACPICA_TOOLS)/acpisrc/asconvrt.c
$(COMPILE)
asfile.o : $(ACPICA_TOOLS)/acpisrc/asfile.c
$(COMPILE)
asmain.o : $(ACPICA_TOOLS)/acpisrc/asmain.c
$(COMPILE)
asremove.o : $(ACPICA_TOOLS)/acpisrc/asremove.c
$(COMPILE)
astable.o : $(ACPICA_TOOLS)/acpisrc/astable.c
$(COMPILE)
asutils.o : $(ACPICA_TOOLS)/acpisrc/asutils.c
$(COMPILE)
#
# ACPICA core source - common
#
getopt.o : $(ACPICA_COMMON)/getopt.c
$(COMPILE)
#
# Unix OS services layer (OSL)
#
osunixdir.o : $(ACPICA_OSL)/osunixdir.c
$(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG) $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -229,6 +229,12 @@ AsDisplayStats (
printf ("\nAcpiSrc statistics:\n\n"); printf ("\nAcpiSrc statistics:\n\n");
printf ("%8u Files processed\n", Gbl_Files); printf ("%8u Files processed\n", Gbl_Files);
if (!Gbl_Files)
{
return;
}
printf ("%8u Total bytes (%.1fK/file)\n", printf ("%8u Total bytes (%.1fK/file)\n",
Gbl_TotalSize, ((double) Gbl_TotalSize/Gbl_Files)/1024); Gbl_TotalSize, ((double) Gbl_TotalSize/Gbl_Files)/1024);
printf ("%8u Tabs found\n", Gbl_Tabs); printf ("%8u Tabs found\n", Gbl_Tabs);
@ -243,6 +249,12 @@ AsDisplayStats (
((float) Gbl_SourceLines / (float) Gbl_WhiteLines)); ((float) Gbl_SourceLines / (float) Gbl_WhiteLines));
printf ("%8.1f Ratio of code to comments\n", printf ("%8.1f Ratio of code to comments\n",
((float) Gbl_SourceLines / (float) (Gbl_CommentLines + Gbl_NonAnsiComments))); ((float) Gbl_SourceLines / (float) (Gbl_CommentLines + Gbl_NonAnsiComments)));
if (!Gbl_TotalLines)
{
return;
}
printf (" %u%% code, %u%% comments, %u%% whitespace, %u%% headers\n", printf (" %u%% code, %u%% comments, %u%% whitespace, %u%% headers\n",
(Gbl_SourceLines * 100) / Gbl_TotalLines, (Gbl_SourceLines * 100) / Gbl_TotalLines,
(Gbl_CommentLines * 100) / Gbl_TotalLines, (Gbl_CommentLines * 100) / Gbl_TotalLines,
@ -265,19 +277,18 @@ AsDisplayUsage (
void) void)
{ {
ACPI_USAGE_HEADER ("acpisrc [-c|l|u] [-dsvy] <SourceDir> <DestinationDir>");
ACPI_OPTION ("-c", "Generate cleaned version of the source");
ACPI_OPTION ("-h", "Insert dual-license header into all modules");
ACPI_OPTION ("-l", "Generate Linux version of the source");
ACPI_OPTION ("-u", "Generate Custom source translation");
printf ("\n"); printf ("\n");
printf ("Usage: acpisrc [-c|l|u] [-dsvy] <SourceDir> <DestinationDir>\n\n"); ACPI_OPTION ("-d", "Leave debug statements in code");
printf ("Where: -c Generate cleaned version of the source\n"); ACPI_OPTION ("-s", "Generate source statistics only");
printf (" -h Insert dual-license header into all modules\n"); ACPI_OPTION ("-v", "Verbose mode");
printf (" -l Generate Linux version of the source\n"); ACPI_OPTION ("-y", "Suppress file overwrite prompts");
printf (" -u Generate Custom source translation\n");
printf ("\n");
printf (" -d Leave debug statements in code\n");
printf (" -s Generate source statistics only\n");
printf (" -v Verbose mode\n");
printf (" -y Suppress file overwrite prompts\n");
printf ("\n");
return;
} }

View File

@ -375,6 +375,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
{"ACPI_TABLE_LIST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_LIST", SRC_TYPE_STRUCT},
{"ACPI_TABLE_SUPPORT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SUPPORT", SRC_TYPE_STRUCT},
{"ACPI_TABLE_TYPE", SRC_TYPE_SIMPLE}, {"ACPI_TABLE_TYPE", SRC_TYPE_SIMPLE},
{"ACPI_TAG_INFO", SRC_TYPE_STRUCT},
{"ACPI_THREAD_ID", SRC_TYPE_SIMPLE}, {"ACPI_THREAD_ID", SRC_TYPE_SIMPLE},
{"ACPI_THREAD_STATE", SRC_TYPE_STRUCT}, {"ACPI_THREAD_STATE", SRC_TYPE_STRUCT},
{"ACPI_TYPED_IDENTIFIER_TABLE", SRC_TYPE_STRUCT}, {"ACPI_TYPED_IDENTIFIER_TABLE", SRC_TYPE_STRUCT},

View File

@ -19,21 +19,42 @@ PROG = acpixtract
HOST = _LINUX HOST = _LINUX
NOMAN = YES NOMAN = YES
COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $? COMPILE = $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $<
ACPICA_COMPONENTS = ACPICA_COMPONENTS =
ACPICA_SRC = ../.. ACPICA_SRC = ../..
ACPICA_COMMON = $(ACPICA_SRC)/common ACPICA_INCLUDE = $(ACPICA_SRC)/include
ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS) ACPICA_COMMON = $(ACPICA_SRC)/common
ACPICA_TOOLS = $(ACPICA_SRC)/tools ACPICA_CORE = $(ACPICA_SRC)$(ACPICA_COMPONENTS)
ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers ACPICA_TOOLS = $(ACPICA_SRC)/tools
INSTALLDIR = /usr/bin ACPIXTRACT = $(ACPICA_TOOLS)/acpixtract
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR) INSTALLDIR = /usr/bin
INSTALLPROG = cp --remove-destination $(PROG) $(INSTALLDIR)
ACPICA_HEADERS = \
$(wildcard $(ACPICA_INCLUDE)/*.h) \
$(wildcard $(ACPICA_INCLUDE)/platform/*.h)
#
# Search paths for source files
#
vpath %.c \
$(ACPIXTRACT) \
$(ACPICA_COMMON)
HEADERS = \
$(wildcard $(ACPIXTRACT)/*.h)
OBJECTS = \
acpixtract.o \
axmain.o \
getopt.o
CFLAGS+= \ CFLAGS+= \
-D$(HOST) \ -D$(HOST) \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
-I$(ACPICA_SRC)/include -DACPI_XTRACT_APP \
-I$(ACPICA_INCLUDE)
CWARNINGFLAGS = \ CWARNINGFLAGS = \
-ansi \ -ansi \
@ -50,24 +71,36 @@ CWARNINGFLAGS = \
-Wpointer-arith \ -Wpointer-arith \
-Wundef -Wundef
OBJS = \ #
acpixtract.o # gcc 4+ flags
#
CWARNINGFLAGS += \
-Waddress \
-Waggregate-return \
-Wchar-subscripts \
-Wempty-body \
-Wlogical-op \
-Wmissing-declarations \
-Wmissing-field-initializers \
-Wmissing-parameter-type \
-Wnested-externs \
-Wold-style-declaration \
-Wold-style-definition \
-Wredundant-decls \
-Wtype-limits
# #
# Root rule # Rules
# #
$(PROG) : $(OBJS) $(PROG) : $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(CC) $(LDFLAGS) $(OBJECTS) -o $(PROG)
$(COPYPROG)
# %.o : %.c $(HEADERS) $(ACPICA_HEADERS)
# acpixtract source
#
acpixtract.o : $(ACPICA_TOOLS)/acpixtract/acpixtract.c
$(COMPILE) $(COMPILE)
clean : clean :
rm -f $(PROG) $(PROG).exe $(OBJS) rm -f $(PROG) $(PROG).exe $(OBJECTS)
install : install :
$(INSTALLPROG) $(INSTALLPROG)

View File

@ -1,4 +1,3 @@
/****************************************************************************** /******************************************************************************
* *
* Module Name: acpixtract - convert ascii ACPI tables to binary * Module Name: acpixtract - convert ascii ACPI tables to binary
@ -42,121 +41,117 @@
* POSSIBILITY OF SUCH DAMAGES. * POSSIBILITY OF SUCH DAMAGES.
*/ */
#include "acpi.h"
#include "accommon.h"
#include "acapps.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
/* Note: This is a 32-bit program only */
#define VERSION 0x20110330
#define FIND_HEADER 0
#define EXTRACT_DATA 1
#define BUFFER_SIZE 256
#define MIN_HEADER_LENGTH 6 /* strlen ("DSDT @") */
/* Local prototypes */ /* Local prototypes */
static void static void
CheckAscii ( AxStrlwr (
char *String);
static void
AxCheckAscii (
char *Name, char *Name,
int Count); int Count);
static void static void
NormalizeSignature ( AxNormalizeSignature (
char *Signature); char *Signature);
static unsigned int static unsigned int
GetNextInstance ( AxGetNextInstance (
char *InputPathname, char *InputPathname,
char *Signature); char *Signature);
static int
ExtractTables (
char *InputPathname,
char *Signature,
unsigned int MinimumInstances);
static size_t static size_t
GetTableHeader ( AxGetTableHeader (
FILE *InputFile, FILE *InputFile,
unsigned char *OutputData); unsigned char *OutputData);
static unsigned int static unsigned int
CountTableInstances ( AxCountTableInstances (
char *InputPathname, char *InputPathname,
char *Signature); char *Signature);
static int int
ListTables ( AxExtractTables (
char *InputPathname,
char *Signature,
unsigned int MinimumInstances);
int
AxListTables (
char *InputPathname); char *InputPathname);
static size_t static size_t
ConvertLine ( AxConvertLine (
char *InputLine, char *InputLine,
unsigned char *OutputData); unsigned char *OutputData);
static void
DisplayUsage (
void);
typedef struct AxTableInfo
typedef struct acpi_table_header
{ {
char Signature[4]; UINT32 Signature;
int Length;
unsigned char Revision;
unsigned char Checksum;
char OemId[6];
char OemTableId[8];
int OemRevision;
char AslCompilerId[4];
int AslCompilerRevision;
} ACPI_TABLE_HEADER;
struct TableInfo
{
unsigned int Signature;
unsigned int Instances; unsigned int Instances;
unsigned int NextInstance; unsigned int NextInstance;
struct TableInfo *Next; struct AxTableInfo *Next;
};
static struct TableInfo *ListHead = NULL; } AX_TABLE_INFO;
/* Extraction states */
#define AX_STATE_FIND_HEADER 0
#define AX_STATE_EXTRACT_DATA 1
/* Miscellaneous constants */
#define AX_LINE_BUFFER_SIZE 256
#define AX_MIN_TABLE_NAME_LENGTH 6 /* strlen ("DSDT @") */
static AX_TABLE_INFO *AxTableListHead = NULL;
static char Filename[16]; static char Filename[16];
static unsigned char Data[16]; static unsigned char Data[16];
static char LineBuffer[AX_LINE_BUFFER_SIZE];
static char HeaderBuffer[AX_LINE_BUFFER_SIZE];
static char InstanceBuffer[AX_LINE_BUFFER_SIZE];
/****************************************************************************** /*******************************************************************************
* *
* FUNCTION: DisplayUsage * FUNCTION: AxStrlwr
* *
* DESCRIPTION: Usage message * PARAMETERS: String - Ascii string
*
* RETURN: None
*
* DESCRIPTION: String lowercase function.
* *
******************************************************************************/ ******************************************************************************/
static void static void
DisplayUsage ( AxStrlwr (
void) char *String)
{ {
printf ("Usage: acpixtract [option] <InputFile>\n"); while (*String)
printf ("\nExtract binary ACPI tables from text acpidump output\n"); {
printf ("Default invocation extracts all DSDTs and SSDTs\n"); *String = (char) tolower ((int) *String);
printf ("Version %8.8X\n\n", VERSION); String++;
printf ("Options:\n"); }
printf (" -a Extract all tables, not just DSDT/SSDT\n");
printf (" -l List table summaries, do not extract\n");
printf (" -s<Signature> Extract all tables named <Signature>\n");
printf ("\n");
} }
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: CheckAscii * FUNCTION: AxCheckAscii
* *
* PARAMETERS: Name - Ascii string, at least as long as Count * PARAMETERS: Name - Ascii string, at least as long as Count
* Count - Number of characters to check * Count - Number of characters to check
@ -169,7 +164,7 @@ DisplayUsage (
******************************************************************************/ ******************************************************************************/
static void static void
CheckAscii ( AxCheckAscii (
char *Name, char *Name,
int Count) int Count)
{ {
@ -188,7 +183,7 @@ CheckAscii (
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: NormalizeSignature * FUNCTION: AxNormalizeSignature
* *
* PARAMETERS: Name - Ascii string containing an ACPI signature * PARAMETERS: Name - Ascii string containing an ACPI signature
* *
@ -199,7 +194,7 @@ CheckAscii (
******************************************************************************/ ******************************************************************************/
static void static void
NormalizeSignature ( AxNormalizeSignature (
char *Signature) char *Signature)
{ {
@ -212,7 +207,7 @@ NormalizeSignature (
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: ConvertLine * FUNCTION: AxConvertLine
* *
* PARAMETERS: InputLine - One line from the input acpidump file * PARAMETERS: InputLine - One line from the input acpidump file
* OutputData - Where the converted data is returned * OutputData - Where the converted data is returned
@ -224,7 +219,7 @@ NormalizeSignature (
******************************************************************************/ ******************************************************************************/
static size_t static size_t
ConvertLine ( AxConvertLine (
char *InputLine, char *InputLine,
unsigned char *OutputData) unsigned char *OutputData)
{ {
@ -270,7 +265,7 @@ ConvertLine (
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: GetTableHeader * FUNCTION: AxGetTableHeader
* *
* PARAMETERS: InputFile - Handle for the input acpidump file * PARAMETERS: InputFile - Handle for the input acpidump file
* OutputData - Where the table header is returned * OutputData - Where the table header is returned
@ -282,26 +277,25 @@ ConvertLine (
******************************************************************************/ ******************************************************************************/
static size_t static size_t
GetTableHeader ( AxGetTableHeader (
FILE *InputFile, FILE *InputFile,
unsigned char *OutputData) unsigned char *OutputData)
{ {
size_t BytesConverted; size_t BytesConverted;
size_t TotalConverted = 0; size_t TotalConverted = 0;
char Buffer[BUFFER_SIZE];
int i; int i;
/* Get the full 36 byte header, requires 3 lines */ /* Get the full 36 byte ACPI table header, requires 3 input text lines */
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
{ {
if (!fgets (Buffer, BUFFER_SIZE, InputFile)) if (!fgets (HeaderBuffer, AX_LINE_BUFFER_SIZE, InputFile))
{ {
return (TotalConverted); return (TotalConverted);
} }
BytesConverted = ConvertLine (Buffer, OutputData); BytesConverted = AxConvertLine (HeaderBuffer, OutputData);
TotalConverted += BytesConverted; TotalConverted += BytesConverted;
OutputData += 16; OutputData += 16;
@ -317,7 +311,7 @@ GetTableHeader (
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: CountTableInstances * FUNCTION: AxCountTableInstances
* *
* PARAMETERS: InputPathname - Filename for acpidump file * PARAMETERS: InputPathname - Filename for acpidump file
* Signature - Requested signature to count * Signature - Requested signature to count
@ -330,11 +324,10 @@ GetTableHeader (
******************************************************************************/ ******************************************************************************/
static unsigned int static unsigned int
CountTableInstances ( AxCountTableInstances (
char *InputPathname, char *InputPathname,
char *Signature) char *Signature)
{ {
char Buffer[BUFFER_SIZE];
FILE *InputFile; FILE *InputFile;
unsigned int Instances = 0; unsigned int Instances = 0;
@ -348,18 +341,18 @@ CountTableInstances (
/* Count the number of instances of this signature */ /* Count the number of instances of this signature */
while (fgets (Buffer, BUFFER_SIZE, InputFile)) while (fgets (InstanceBuffer, AX_LINE_BUFFER_SIZE, InputFile))
{ {
/* Ignore empty lines and lines that start with a space */ /* Ignore empty lines and lines that start with a space */
if ((Buffer[0] == ' ') || if ((InstanceBuffer[0] == ' ') ||
(Buffer[0] == '\n')) (InstanceBuffer[0] == '\n'))
{ {
continue; continue;
} }
NormalizeSignature (Buffer); AxNormalizeSignature (InstanceBuffer);
if (!strncmp (Buffer, Signature, 4)) if (!strncmp (InstanceBuffer, Signature, 4))
{ {
Instances++; Instances++;
} }
@ -372,7 +365,7 @@ CountTableInstances (
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: GetNextInstance * FUNCTION: AxGetNextInstance
* *
* PARAMETERS: InputPathname - Filename for acpidump file * PARAMETERS: InputPathname - Filename for acpidump file
* Signature - Requested ACPI signature * Signature - Requested ACPI signature
@ -388,17 +381,17 @@ CountTableInstances (
******************************************************************************/ ******************************************************************************/
static unsigned int static unsigned int
GetNextInstance ( AxGetNextInstance (
char *InputPathname, char *InputPathname,
char *Signature) char *Signature)
{ {
struct TableInfo *Info; AX_TABLE_INFO *Info;
Info = ListHead; Info = AxTableListHead;
while (Info) while (Info)
{ {
if (*(unsigned int *) Signature == Info->Signature) if (*(UINT32 *) Signature == Info->Signature)
{ {
break; break;
} }
@ -410,18 +403,18 @@ GetNextInstance (
{ {
/* Signature not found, create new table info block */ /* Signature not found, create new table info block */
Info = malloc (sizeof (struct TableInfo)); Info = malloc (sizeof (AX_TABLE_INFO));
if (!Info) if (!Info)
{ {
printf ("Could not allocate memory\n"); printf ("Could not allocate memory\n");
exit (0); exit (0);
} }
Info->Signature = *(unsigned int *) Signature; Info->Signature = *(UINT32 *) Signature;
Info->Instances = CountTableInstances (InputPathname, Signature); Info->Instances = AxCountTableInstances (InputPathname, Signature);
Info->NextInstance = 1; Info->NextInstance = 1;
Info->Next = ListHead; Info->Next = AxTableListHead;
ListHead = Info; AxTableListHead = Info;
} }
if (Info->Instances > 1) if (Info->Instances > 1)
@ -435,7 +428,7 @@ GetNextInstance (
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: ExtractTables * FUNCTION: AxExtractTables
* *
* PARAMETERS: InputPathname - Filename for acpidump file * PARAMETERS: InputPathname - Filename for acpidump file
* Signature - Requested ACPI signature to extract. * Signature - Requested ACPI signature to extract.
@ -448,19 +441,18 @@ GetNextInstance (
* *
******************************************************************************/ ******************************************************************************/
static int int
ExtractTables ( AxExtractTables (
char *InputPathname, char *InputPathname,
char *Signature, char *Signature,
unsigned int MinimumInstances) unsigned int MinimumInstances)
{ {
char Buffer[BUFFER_SIZE];
FILE *InputFile; FILE *InputFile;
FILE *OutputFile = NULL; FILE *OutputFile = NULL;
size_t BytesWritten; size_t BytesWritten;
size_t TotalBytesWritten = 0; size_t TotalBytesWritten = 0;
size_t BytesConverted; size_t BytesConverted;
unsigned int State = FIND_HEADER; unsigned int State = AX_STATE_FIND_HEADER;
unsigned int FoundTable = 0; unsigned int FoundTable = 0;
unsigned int Instances = 0; unsigned int Instances = 0;
unsigned int ThisInstance; unsigned int ThisInstance;
@ -481,9 +473,9 @@ ExtractTables (
{ {
/* Are there enough instances of the table to continue? */ /* Are there enough instances of the table to continue? */
NormalizeSignature (Signature); AxNormalizeSignature (Signature);
Instances = CountTableInstances (InputPathname, Signature); Instances = AxCountTableInstances (InputPathname, Signature);
if (Instances < MinimumInstances) if (Instances < MinimumInstances)
{ {
printf ("Table %s was not found in %s\n", Signature, InputPathname); printf ("Table %s was not found in %s\n", Signature, InputPathname);
@ -499,42 +491,43 @@ ExtractTables (
/* Convert all instances of the table to binary */ /* Convert all instances of the table to binary */
while (fgets (Buffer, BUFFER_SIZE, InputFile)) while (fgets (LineBuffer, AX_LINE_BUFFER_SIZE, InputFile))
{ {
switch (State) switch (State)
{ {
case FIND_HEADER: case AX_STATE_FIND_HEADER:
/* Ignore lines that are too short to be header lines */ /* Ignore lines that are too short to be header lines */
if (strlen (Buffer) < MIN_HEADER_LENGTH) if (strlen (LineBuffer) < AX_MIN_TABLE_NAME_LENGTH)
{ {
continue; continue;
} }
/* Ignore empty lines and lines that start with a space */ /* Ignore empty lines and lines that start with a space */
if ((Buffer[0] == ' ') || if ((LineBuffer[0] == ' ') ||
(Buffer[0] == '\n')) (LineBuffer[0] == '\n'))
{ {
continue; continue;
} }
/* /*
* Ignore lines that are not of the form <sig> @ <addr>. Examples: * Ignore lines that are not of the form <sig> @ <addr>.
* Examples of lines that must be supported:
* *
* DSDT @ 0x737e4000 * DSDT @ 0x737e4000
* XSDT @ 0x737f2fff * XSDT @ 0x737f2fff
* RSD PTR @ 0xf6cd0 * RSD PTR @ 0xf6cd0
* SSDT @ (nil) * SSDT @ (nil)
*/ */
if (!strstr (Buffer, " @ ")) if (!strstr (LineBuffer, " @ "))
{ {
continue; continue;
} }
NormalizeSignature (Buffer); AxNormalizeSignature (LineBuffer);
strncpy (ThisSignature, Buffer, 4); strncpy (ThisSignature, LineBuffer, 4);
if (Signature) if (Signature)
{ {
@ -550,7 +543,7 @@ ExtractTables (
* Get the instance number for this signature. Only the * Get the instance number for this signature. Only the
* SSDT and PSDT tables can have multiple instances. * SSDT and PSDT tables can have multiple instances.
*/ */
ThisInstance = GetNextInstance (InputPathname, ThisSignature); ThisInstance = AxGetNextInstance (InputPathname, ThisSignature);
/* Build an output filename and create/open the output file */ /* Build an output filename and create/open the output file */
@ -563,6 +556,7 @@ ExtractTables (
sprintf (Filename, "%4.4s.dat", ThisSignature); sprintf (Filename, "%4.4s.dat", ThisSignature);
} }
AxStrlwr (Filename);
OutputFile = fopen (Filename, "w+b"); OutputFile = fopen (Filename, "w+b");
if (!OutputFile) if (!OutputFile)
{ {
@ -571,21 +565,21 @@ ExtractTables (
goto CleanupAndExit; goto CleanupAndExit;
} }
State = EXTRACT_DATA; State = AX_STATE_EXTRACT_DATA;
TotalBytesWritten = 0; TotalBytesWritten = 0;
FoundTable = 1; FoundTable = 1;
continue; continue;
case EXTRACT_DATA: case AX_STATE_EXTRACT_DATA:
/* Empty line or non-data line terminates the data */ /* Empty line or non-data line terminates the data */
if ((Buffer[0] == '\n') || if ((LineBuffer[0] == '\n') ||
(Buffer[0] != ' ')) (LineBuffer[0] != ' '))
{ {
fclose (OutputFile); fclose (OutputFile);
OutputFile = NULL; OutputFile = NULL;
State = FIND_HEADER; State = AX_STATE_FIND_HEADER;
printf ("Acpi table [%4.4s] - %u bytes written to %s\n", printf ("Acpi table [%4.4s] - %u bytes written to %s\n",
ThisSignature, (unsigned int) TotalBytesWritten, Filename); ThisSignature, (unsigned int) TotalBytesWritten, Filename);
@ -594,7 +588,7 @@ ExtractTables (
/* Convert the ascii data (one line of text) to binary */ /* Convert the ascii data (one line of text) to binary */
BytesConverted = ConvertLine (Buffer, Data); BytesConverted = AxConvertLine (LineBuffer, Data);
/* Write the binary data */ /* Write the binary data */
@ -628,7 +622,7 @@ ExtractTables (
if (OutputFile) if (OutputFile)
{ {
fclose (OutputFile); fclose (OutputFile);
if (State == EXTRACT_DATA) if (State == AX_STATE_EXTRACT_DATA)
{ {
/* Received an EOF while extracting data */ /* Received an EOF while extracting data */
@ -644,7 +638,7 @@ ExtractTables (
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: ListTables * FUNCTION: AxListTables
* *
* PARAMETERS: InputPathname - Filename for acpidump file * PARAMETERS: InputPathname - Filename for acpidump file
* *
@ -655,12 +649,11 @@ ExtractTables (
* *
******************************************************************************/ ******************************************************************************/
static int int
ListTables ( AxListTables (
char *InputPathname) char *InputPathname)
{ {
FILE *InputFile; FILE *InputFile;
char Buffer[BUFFER_SIZE];
size_t HeaderSize; size_t HeaderSize;
unsigned char Header[48]; unsigned char Header[48];
int TableCount = 0; int TableCount = 0;
@ -681,19 +674,19 @@ ListTables (
printf ("\nSignature Length Revision OemId OemTableId" printf ("\nSignature Length Revision OemId OemTableId"
" OemRevision CompilerId CompilerRevision\n\n"); " OemRevision CompilerId CompilerRevision\n\n");
while (fgets (Buffer, BUFFER_SIZE, InputFile)) while (fgets (LineBuffer, AX_LINE_BUFFER_SIZE, InputFile))
{ {
/* Ignore empty lines and lines that start with a space */ /* Ignore empty lines and lines that start with a space */
if ((Buffer[0] == ' ') || if ((LineBuffer[0] == ' ') ||
(Buffer[0] == '\n')) (LineBuffer[0] == '\n'))
{ {
continue; continue;
} }
/* Get the 36 byte header and display the fields */ /* Get the 36 byte header and display the fields */
HeaderSize = GetTableHeader (InputFile, Header); HeaderSize = AxGetTableHeader (InputFile, Header);
if (HeaderSize < 16) if (HeaderSize < 16)
{ {
continue; continue;
@ -703,7 +696,7 @@ ListTables (
if (!strncmp (TableHeader->Signature, "RSD PTR ", 8)) if (!strncmp (TableHeader->Signature, "RSD PTR ", 8))
{ {
CheckAscii ((char *) &Header[9], 6); AxCheckAscii ((char *) &Header[9], 6);
printf ("%8.4s \"%6.6s\"\n", "RSDP", &Header[9]); printf ("%8.4s \"%6.6s\"\n", "RSDP", &Header[9]);
TableCount++; TableCount++;
continue; continue;
@ -711,7 +704,7 @@ ListTables (
/* Minimum size for table with standard header */ /* Minimum size for table with standard header */
if (HeaderSize < 36) if (HeaderSize < sizeof (ACPI_TABLE_HEADER))
{ {
continue; continue;
} }
@ -731,9 +724,9 @@ ListTables (
/* OEM IDs and Compiler IDs */ /* OEM IDs and Compiler IDs */
CheckAscii (TableHeader->OemId, 6); AxCheckAscii (TableHeader->OemId, 6);
CheckAscii (TableHeader->OemTableId, 8); AxCheckAscii (TableHeader->OemTableId, 8);
CheckAscii (TableHeader->AslCompilerId, 4); AxCheckAscii (TableHeader->AslCompilerId, 4);
printf (" %2.2X \"%6.6s\" \"%8.8s\" %8.8X \"%4.4s\" %8.8X\n", printf (" %2.2X \"%6.6s\" \"%8.8s\" %8.8X \"%4.4s\" %8.8X\n",
TableHeader->Revision, TableHeader->OemId, TableHeader->Revision, TableHeader->OemId,
@ -741,80 +734,7 @@ ListTables (
TableHeader->AslCompilerId, TableHeader->AslCompilerRevision); TableHeader->AslCompilerId, TableHeader->AslCompilerRevision);
} }
printf ("\nFound %u ACPI tables [%8.8X]\n", TableCount, VERSION); printf ("\nFound %u ACPI tables\n", TableCount);
fclose (InputFile); fclose (InputFile);
return (0); return (0);
} }
/******************************************************************************
*
* FUNCTION: main
*
* DESCRIPTION: C main function
*
******************************************************************************/
int
main (
int argc,
char *argv[])
{
int Status;
if (argc < 2)
{
DisplayUsage ();
return (0);
}
if (argv[1][0] == '-')
{
if (argc < 3)
{
DisplayUsage ();
return (0);
}
switch (argv[1][1])
{
case 'a':
/* Extract all tables found */
return (ExtractTables (argv[2], NULL, 0));
case 'l':
/* List tables only, do not extract */
return (ListTables (argv[2]));
case 's':
/* Extract only tables with this signature */
return (ExtractTables (argv[2], &argv[1][2], 1));
default:
DisplayUsage ();
return (0);
}
}
/*
* Default output is the DSDT and all SSDTs. One DSDT is required,
* any SSDTs are optional.
*/
Status = ExtractTables (argv[1], "DSDT", 1);
if (Status)
{
return (Status);
}
Status = ExtractTables (argv[1], "SSDT", 0);
return (Status);
}

191
tools/acpixtract/axmain.c Normal file
View File

@ -0,0 +1,191 @@
/******************************************************************************
*
* Module Name: axmain - main module for acpixtract utility
*
*****************************************************************************/
/*
* Copyright (C) 2000 - 2011, 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 "accommon.h"
#include "acapps.h"
#include <stdio.h>
static void
DisplayUsage (
void);
int
AxExtractTables (
char *InputPathname,
char *Signature,
unsigned int MinimumInstances);
int
AxListTables (
char *InputPathname);
/* Options */
#define AX_EXTRACT_ALL 0
#define AX_LIST_ALL 1
#define AX_EXTRACT_SIGNATURE 2
#define AX_EXTRACT_AML_TABLES 3
static int AxAction = AX_EXTRACT_AML_TABLES; /* DSDT & SSDTs */
#define AX_OPTIONAL_TABLES 0
#define AX_REQUIRED_TABLE 1
/******************************************************************************
*
* FUNCTION: DisplayUsage
*
* DESCRIPTION: Usage message
*
******************************************************************************/
static void
DisplayUsage (
void)
{
ACPI_USAGE_HEADER ("acpixtract [option] <InputFile>");
ACPI_OPTION ("-a", "Extract all tables, not just DSDT/SSDT");
ACPI_OPTION ("-l", "List table summaries, do not extract");
ACPI_OPTION ("-s <signature>", "Extract all tables with <signature>");
printf ("\nExtract binary ACPI tables from text acpidump output\n");
printf ("Default invocation extracts the DSDT and all SSDTs\n");
}
/******************************************************************************
*
* FUNCTION: main
*
* DESCRIPTION: C main function
*
******************************************************************************/
int
main (
int argc,
char *argv[])
{
char *Filename;
int Status;
int j;
printf (ACPI_COMMON_SIGNON ("ACPI Binary Table Extraction Utility"));
if (argc < 2)
{
DisplayUsage ();
return (0);
}
/* Command line options */
while ((j = AcpiGetopt (argc, argv, "ahls:")) != EOF) switch (j)
{
case 'a':
AxAction = AX_EXTRACT_ALL; /* Extract all tables found */
break;
case 'l':
AxAction = AX_LIST_ALL; /* List tables only, do not extract */
break;
case 's':
AxAction = AX_EXTRACT_SIGNATURE; /* Extract only tables with this sig */
break;
case 'h':
default:
DisplayUsage ();
return (0);
}
/* Input filename is always required */
Filename = argv[AcpiGbl_Optind];
if (!Filename)
{
printf ("Missing required input filename\n");
return (-1);
}
/* Perform requested action */
switch (AxAction)
{
case AX_EXTRACT_ALL:
Status = AxExtractTables (Filename, NULL, AX_OPTIONAL_TABLES);
break;
case AX_LIST_ALL:
Status = AxListTables (Filename);
break;
case AX_EXTRACT_SIGNATURE:
Status = AxExtractTables (Filename, AcpiGbl_Optarg, AX_REQUIRED_TABLE);
break;
default:
/*
* Default output is the DSDT and all SSDTs. One DSDT is required,
* any SSDTs are optional.
*/
Status = AxExtractTables (Filename, "DSDT", AX_REQUIRED_TABLE);
if (Status)
{
return (Status);
}
Status = AxExtractTables (Filename, "SSDT", AX_OPTIONAL_TABLES);
break;
}
return (Status);
}