summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLv Zheng <lv.zheng@intel.com>2016-05-23 23:54:44 +0800
committerLv Zheng <lv.zheng@intel.com>2016-06-06 12:58:34 +0800
commit4de4519bb6c236115a4277917a6fc56facd45fb3 (patch)
treef063814f0c03fd0b98cdca5c1e96e89a5c9d4e00
parent6bbbef88118f08723c9dc82349ee92505476d762 (diff)
downloadacpica-4de4519bb6c236115a4277917a6fc56facd45fb3.tar.gz
EFI/acpiexec: Add EFI support for acpiexec
This patch enables acpiexec for EFI environment. Lv Zheng. Signed-off-by: Lv Zheng <lv.zheng@intel.com>
-rw-r--r--generate/efi/Makefile.config3
-rw-r--r--generate/efi/acpiexec/Makefile255
-rw-r--r--source/tools/acpiexec/aecommon.h5
-rw-r--r--source/tools/acpiexec/aemain.c10
4 files changed, 265 insertions, 8 deletions
diff --git a/generate/efi/Makefile.config b/generate/efi/Makefile.config
index 6c7c5950b..1f3aa74d4 100644
--- a/generate/efi/Makefile.config
+++ b/generate/efi/Makefile.config
@@ -47,7 +47,7 @@
#
# Common defines
#
-PROGS = acpidump
+PROGS = acpidump acpiexec
HOST = $(shell uname -m | sed s,i[3456789]86,ia32,)
TARGET = $(shell uname -m | sed s,i[3456789]86,ia32,)
SHARED ?= true
@@ -79,6 +79,7 @@ ACPICA_UTILITIES = $(ACPICA_CORE)/utilities
# ACPICA tool and utility source directories
#
ACPIDUMP = $(ACPICA_TOOLS)/acpidump
+ACPIEXEC = $(ACPICA_TOOLS)/acpiexec
#
# Common ACPICA header files
diff --git a/generate/efi/acpiexec/Makefile b/generate/efi/acpiexec/Makefile
new file mode 100644
index 000000000..aedcb6b14
--- /dev/null
+++ b/generate/efi/acpiexec/Makefile
@@ -0,0 +1,255 @@
+
+#
+# acpiexec: ACPI execution simulator. Runs ACPICA code in user
+# space. Loads ACPI tables, displays the namespace, and allows
+# execution of control methods.
+#
+
+#
+# Note: This makefile is intended to be used from within the native
+# ACPICA directory structure, from under generate/unix. It specifically
+# places all object files in a generate/unix subdirectory, not within
+# the various ACPICA source directories. This prevents collisions
+# between different compilations of the same source file with different
+# compile options, and prevents pollution of the source code.
+#
+include ../Makefile.config
+FINAL_PROG = ../$(BINDIR)/acpiexec
+PROG = $(OBJDIR)/acpiexec
+
+#
+# Search paths for source files
+#
+vpath %.c \
+ $(ACPIEXEC)\
+ $(ACPICA_DEBUGGER)\
+ $(ACPICA_DISASSEMBLER)\
+ $(ACPICA_DISPATCHER)\
+ $(ACPICA_EVENTS)\
+ $(ACPICA_EXECUTER)\
+ $(ACPICA_HARDWARE)\
+ $(ACPICA_NAMESPACE)\
+ $(ACPICA_PARSER)\
+ $(ACPICA_RESOURCES)\
+ $(ACPICA_TABLES)\
+ $(ACPICA_UTILITIES)\
+ $(ACPICA_COMMON)\
+ $(ACPICA_OSL)
+
+HEADERS = \
+ $(wildcard $(ACPIEXEC)/*.h)
+
+OBJECTS = \
+ $(OBJDIR)/acfileio.o\
+ $(OBJDIR)/acgetline.o\
+ $(OBJDIR)/aeexec.o\
+ $(OBJDIR)/aehandlers.o\
+ $(OBJDIR)/aeinitfile.o\
+ $(OBJDIR)/aemain.o\
+ $(OBJDIR)/aeregion.o\
+ $(OBJDIR)/aetables.o\
+ $(OBJDIR)/ahids.o\
+ $(OBJDIR)/ahuuids.o\
+ $(OBJDIR)/cmfsize.o\
+ $(OBJDIR)/dbcmds.o\
+ $(OBJDIR)/dbconvert.o\
+ $(OBJDIR)/dbdisply.o\
+ $(OBJDIR)/dbexec.o\
+ $(OBJDIR)/dbfileio.o\
+ $(OBJDIR)/dbhistry.o\
+ $(OBJDIR)/dbinput.o\
+ $(OBJDIR)/dbmethod.o\
+ $(OBJDIR)/dbnames.o\
+ $(OBJDIR)/dbobject.o\
+ $(OBJDIR)/dbstats.o\
+ $(OBJDIR)/dbtest.o\
+ $(OBJDIR)/dbutils.o\
+ $(OBJDIR)/dbxface.o\
+ $(OBJDIR)/dmbuffer.o\
+ $(OBJDIR)/dmcstyle.o\
+ $(OBJDIR)/dmdeferred.o\
+ $(OBJDIR)/dmnames.o\
+ $(OBJDIR)/dmopcode.o\
+ $(OBJDIR)/dmresrc.o\
+ $(OBJDIR)/dmresrcl.o\
+ $(OBJDIR)/dmresrcl2.o\
+ $(OBJDIR)/dmresrcs.o\
+ $(OBJDIR)/dmutils.o\
+ $(OBJDIR)/dmwalk.o\
+ $(OBJDIR)/dsargs.o\
+ $(OBJDIR)/dscontrol.o\
+ $(OBJDIR)/dsdebug.o\
+ $(OBJDIR)/dsfield.o\
+ $(OBJDIR)/dsinit.o\
+ $(OBJDIR)/dsmethod.o\
+ $(OBJDIR)/dsmthdat.o\
+ $(OBJDIR)/dsobject.o\
+ $(OBJDIR)/dsopcode.o\
+ $(OBJDIR)/dsutils.o\
+ $(OBJDIR)/dswexec.o\
+ $(OBJDIR)/dswload.o\
+ $(OBJDIR)/dswload2.o\
+ $(OBJDIR)/dswscope.o\
+ $(OBJDIR)/dswstate.o\
+ $(OBJDIR)/evevent.o\
+ $(OBJDIR)/evglock.o\
+ $(OBJDIR)/evgpe.o\
+ $(OBJDIR)/evgpeblk.o\
+ $(OBJDIR)/evgpeinit.o\
+ $(OBJDIR)/evgpeutil.o\
+ $(OBJDIR)/evhandler.o\
+ $(OBJDIR)/evmisc.o\
+ $(OBJDIR)/evregion.o\
+ $(OBJDIR)/evrgnini.o\
+ $(OBJDIR)/evsci.o\
+ $(OBJDIR)/evxface.o\
+ $(OBJDIR)/evxfevnt.o\
+ $(OBJDIR)/evxfgpe.o\
+ $(OBJDIR)/evxfregn.o\
+ $(OBJDIR)/exconcat.o\
+ $(OBJDIR)/exconfig.o\
+ $(OBJDIR)/exconvrt.o\
+ $(OBJDIR)/excreate.o\
+ $(OBJDIR)/exdebug.o\
+ $(OBJDIR)/exdump.o\
+ $(OBJDIR)/exfield.o\
+ $(OBJDIR)/exfldio.o\
+ $(OBJDIR)/exmisc.o\
+ $(OBJDIR)/exmutex.o\
+ $(OBJDIR)/exnames.o\
+ $(OBJDIR)/exoparg1.o\
+ $(OBJDIR)/exoparg2.o\
+ $(OBJDIR)/exoparg3.o\
+ $(OBJDIR)/exoparg6.o\
+ $(OBJDIR)/exprep.o\
+ $(OBJDIR)/exregion.o\
+ $(OBJDIR)/exresnte.o\
+ $(OBJDIR)/exresolv.o\
+ $(OBJDIR)/exresop.o\
+ $(OBJDIR)/exstore.o\
+ $(OBJDIR)/exstoren.o\
+ $(OBJDIR)/exstorob.o\
+ $(OBJDIR)/exsystem.o\
+ $(OBJDIR)/extrace.o\
+ $(OBJDIR)/exutils.o\
+ $(OBJDIR)/getopt.o\
+ $(OBJDIR)/hwacpi.o\
+ $(OBJDIR)/hwesleep.o\
+ $(OBJDIR)/hwgpe.o\
+ $(OBJDIR)/hwpci.o\
+ $(OBJDIR)/hwregs.o\
+ $(OBJDIR)/hwsleep.o\
+ $(OBJDIR)/hwvalid.o\
+ $(OBJDIR)/hwxface.o\
+ $(OBJDIR)/hwxfsleep.o\
+ $(OBJDIR)/nsaccess.o\
+ $(OBJDIR)/nsalloc.o\
+ $(OBJDIR)/nsarguments.o\
+ $(OBJDIR)/nsconvert.o\
+ $(OBJDIR)/nsdump.o\
+ $(OBJDIR)/nsdumpdv.o\
+ $(OBJDIR)/nseval.o\
+ $(OBJDIR)/nsinit.o\
+ $(OBJDIR)/nsload.o\
+ $(OBJDIR)/nsnames.o\
+ $(OBJDIR)/nsobject.o\
+ $(OBJDIR)/nsparse.o\
+ $(OBJDIR)/nspredef.o\
+ $(OBJDIR)/nsprepkg.o\
+ $(OBJDIR)/nsrepair.o\
+ $(OBJDIR)/nsrepair2.o\
+ $(OBJDIR)/nssearch.o\
+ $(OBJDIR)/nsutils.o\
+ $(OBJDIR)/nswalk.o\
+ $(OBJDIR)/nsxfeval.o\
+ $(OBJDIR)/nsxfname.o\
+ $(OBJDIR)/nsxfobj.o\
+ $(OBJDIR)/psargs.o\
+ $(OBJDIR)/psloop.o\
+ $(OBJDIR)/psobject.o\
+ $(OBJDIR)/psopcode.o\
+ $(OBJDIR)/psopinfo.o\
+ $(OBJDIR)/psparse.o\
+ $(OBJDIR)/psscope.o\
+ $(OBJDIR)/pstree.o\
+ $(OBJDIR)/psutils.o\
+ $(OBJDIR)/pswalk.o\
+ $(OBJDIR)/psxface.o\
+ $(OBJDIR)/rsaddr.o\
+ $(OBJDIR)/rscalc.o\
+ $(OBJDIR)/rscreate.o\
+ $(OBJDIR)/rsdump.o\
+ $(OBJDIR)/rsdumpinfo.o\
+ $(OBJDIR)/rsinfo.o\
+ $(OBJDIR)/rsio.o\
+ $(OBJDIR)/rsirq.o\
+ $(OBJDIR)/rslist.o\
+ $(OBJDIR)/rsmemory.o\
+ $(OBJDIR)/rsmisc.o\
+ $(OBJDIR)/rsserial.o\
+ $(OBJDIR)/rsutils.o\
+ $(OBJDIR)/rsxface.o\
+ $(OBJDIR)/tbdata.o\
+ $(OBJDIR)/tbfadt.o\
+ $(OBJDIR)/tbfind.o\
+ $(OBJDIR)/tbinstal.o\
+ $(OBJDIR)/tbprint.o\
+ $(OBJDIR)/tbutils.o\
+ $(OBJDIR)/tbxface.o\
+ $(OBJDIR)/tbxfload.o\
+ $(OBJDIR)/tbxfroot.o\
+ $(OBJDIR)/utaddress.o\
+ $(OBJDIR)/utalloc.o\
+ $(OBJDIR)/utascii.o\
+ $(OBJDIR)/utbuffer.o\
+ $(OBJDIR)/utcache.o\
+ $(OBJDIR)/utclib.o\
+ $(OBJDIR)/utcopy.o\
+ $(OBJDIR)/utdebug.o\
+ $(OBJDIR)/utdecode.o\
+ $(OBJDIR)/utdelete.o\
+ $(OBJDIR)/uterror.o\
+ $(OBJDIR)/uteval.o\
+ $(OBJDIR)/utexcep.o\
+ $(OBJDIR)/utglobal.o\
+ $(OBJDIR)/uthex.o\
+ $(OBJDIR)/utids.o\
+ $(OBJDIR)/utinit.o\
+ $(OBJDIR)/utlock.o\
+ $(OBJDIR)/utmath.o\
+ $(OBJDIR)/utmisc.o\
+ $(OBJDIR)/utmutex.o\
+ $(OBJDIR)/utnonansi.o\
+ $(OBJDIR)/utobject.o\
+ $(OBJDIR)/utosi.o\
+ $(OBJDIR)/utownerid.o\
+ $(OBJDIR)/utpredef.o\
+ $(OBJDIR)/utprint.o\
+ $(OBJDIR)/utresrc.o\
+ $(OBJDIR)/utstate.o\
+ $(OBJDIR)/utstring.o\
+ $(OBJDIR)/uttrack.o\
+ $(OBJDIR)/utuuid.o\
+ $(OBJDIR)/utxface.o\
+ $(OBJDIR)/utxferror.o\
+ $(OBJDIR)/utxfinit.o\
+ $(OBJDIR)/oseficlib.o\
+ $(OBJDIR)/osefixf.o\
+ $(OBJDIR)/utxfmutex.o
+
+#
+# Flags specific to acpiexec utility
+#
+CFLAGS += \
+ -DACPI_EXEC_APP\
+ -I$(ACPIEXEC)
+
+ifeq ($(ASLTS),TRUE)
+CFLAGS += \
+ -DACPI_CHECKSUM_ABORT=TRUE
+endif
+
+#
+# Common Rules
+#
+include ../Makefile.rules
diff --git a/source/tools/acpiexec/aecommon.h b/source/tools/acpiexec/aecommon.h
index 502717584..aaa7f9099 100644
--- a/source/tools/acpiexec/aecommon.h
+++ b/source/tools/acpiexec/aecommon.h
@@ -131,11 +131,6 @@
#include "amlresrc.h"
#include "acapps.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
/*
* Debug Regions
diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c
index 7e60a1233..b153121fe 100644
--- a/source/tools/acpiexec/aemain.c
+++ b/source/tools/acpiexec/aemain.c
@@ -114,7 +114,6 @@
*****************************************************************************/
#include "aecommon.h"
-#include "errno.h"
#define _COMPONENT ACPI_TOOLS
ACPI_MODULE_NAME ("aemain")
@@ -520,10 +519,17 @@ AeDoOptions (
*
*****************************************************************************/
+#ifndef _GNU_EFI
int ACPI_SYSTEM_XFACE
main (
int argc,
- char **argv)
+ char *argv[])
+#else
+int ACPI_SYSTEM_XFACE
+acpi_main (
+ int argc,
+ char *argv[])
+#endif
{
ACPI_NEW_TABLE_DESC *ListHead = NULL;
ACPI_STATUS Status;