]> rtime.felk.cvut.cz Git - l4.git/commitdiff
update: sync
authorl4check <l4check@d050ee49-bd90-4346-b210-929a50b99cfc>
Fri, 16 Nov 2012 18:46:17 +0000 (18:46 +0000)
committerl4check <l4check@d050ee49-bd90-4346-b210-929a50b99cfc>
Fri, 16 Nov 2012 18:46:17 +0000 (18:46 +0000)
git-svn-id: http://svn.tudos.org/repos/oc/tudos/trunk@41 d050ee49-bd90-4346-b210-929a50b99cfc

161 files changed:
kernel/fiasco/src/kern/arm/bsp/omap3/boot_mp-arm-omap4.cpp [deleted file]
kernel/fiasco/src/kern/arm/bsp/realview/boot_mp-arm-realview.cpp [deleted file]
kernel/fiasco/src/kern/arm/bsp/tegra2/boot_mp-arm-tegra2.cpp [deleted file]
kernel/fiasco/src/kern/arm/logdefs.h [deleted file]
kernel/fiasco/src/kern/ia32/logdefs.h [deleted file]
kernel/fiasco/src/kern/tb_entry_output.cpp [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/README [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/changes.txt [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/compiler/Makefile [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbcmds.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbdisply.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbexec.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbfileio.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbhistry.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbinput.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbstats.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbutils.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbxface.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmbuffer.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmnames.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmobject.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmopcode.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmresrc.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmresrcl.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmresrcs.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmutils.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmwalk.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsfield.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsinit.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsmethod.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsmthdat.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsobject.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsopcode.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsutils.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswexec.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswload.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswscope.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswstate.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evevent.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evgpe.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evgpeblk.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evmisc.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evregion.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evrgnini.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evsci.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evxface.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evxfevnt.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/events/evxfregn.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exconfig.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exconvrt.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/excreate.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exdump.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exfield.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exfldio.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exmisc.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exmutex.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exnames.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg1.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg2.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg3.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg6.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exprep.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exregion.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exresnte.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exresolv.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exresop.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exstore.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exstoren.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exstorob.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exsystem.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/executer/exutils.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/files.lnt [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/lint.bat [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/lset.bat [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/options.lnt [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/readme.txt [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/std16.lnt [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/std32.lnt [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/std64.lnt [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwacpi.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwgpe.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwregs.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwsleep.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwtimer.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwvalid.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwxface.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsaccess.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsalloc.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsdump.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsdumpdv.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nseval.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsinit.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsload.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsnames.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsobject.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsparse.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nspredef.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsrepair.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsrepair2.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nssearch.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsutils.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nswalk.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsxfeval.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsxfname.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsxfobj.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/osunixxf.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/parser/psargs.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/parser/psloop.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/parser/psopcode.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/parser/psparse.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/parser/psscope.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/parser/pstree.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/parser/psutils.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/parser/pswalk.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/parser/psxface.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rsaddr.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rscalc.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rscreate.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rsdump.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rsinfo.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rsio.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rsirq.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rslist.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rsmemory.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rsmisc.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rsutils.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/resources/rsxface.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tables/tbfadt.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tables/tbfind.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tables/tbinstal.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tables/tbutils.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tables/tbxface.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tables/tbxfroot.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tools/acpiexec/Makefile [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tools/acpiexec/osunixdir.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tools/acpisrc/Makefile [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tools/acpisrc/osunixdir.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/tools/acpixtract/Makefile [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utalloc.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utcache.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utclib.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utcopy.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utdebug.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utdelete.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/uteval.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utglobal.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utids.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utinit.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utlock.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utmath.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utmisc.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utmutex.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utobject.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utresrc.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utstate.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/uttrack.c [deleted file]
l4/pkg/acpica/lib-acpi/src/acpica/utilities/utxface.c [deleted file]
l4/pkg/drivers/generic/include/io.h [deleted file]
l4/pkg/drivers/generic/src/amba.c [deleted file]
l4/pkg/examples/sys/vmtest/main.c [deleted file]
l4/pkg/l4re_c/util/include/cap.h [deleted file]

diff --git a/kernel/fiasco/src/kern/arm/bsp/omap3/boot_mp-arm-omap4.cpp b/kernel/fiasco/src/kern/arm/bsp/omap3/boot_mp-arm-omap4.cpp
deleted file mode 100644 (file)
index e3cf796..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-INTERFACE [arm && mp && omap4]:
-
-#include "types.h"
-
-class Boot_mp
-{
-};
-
-IMPLEMENTATION [arm && mp && omap4]:
-
-#include "io.h"
-#include "kmem.h"
-
-PRIVATE
-void
-Boot_mp::aux(unsigned cmd, Mword arg0, Mword arg1)
-{
-  register unsigned long r0  asm("r0")  = arg0;
-  register unsigned long r1  asm("r1")  = arg1;
-  register unsigned long r12 asm("r12") = cmd;
-
-  asm volatile("dsb; smc #0"
-               : : "r" (r0), "r" (r1), "r" (r12)
-               : "r2", "r3", "r4", "r5", "r6",
-                 "r7", "r8", "r9", "r10", "r11", "lr", "memory");
-}
-
-PUBLIC
-void
-Boot_mp::start_ap_cpus(Address phys_tramp_mp_addr)
-{
-  // two possibilities available, the memory mapped only in later board
-  // revisions
-  if (1)
-    {
-      enum {
-        AUX_CORE_BOOT_0 = 0x104,
-        AUX_CORE_BOOT_1 = 0x105,
-      };
-      aux(AUX_CORE_BOOT_1, phys_tramp_mp_addr, 0);
-      asm volatile("dsb; sev" : : : "memory");
-      aux(AUX_CORE_BOOT_0, 0x200, 0xfffffdff);
-    }
-  else
-    {
-      enum {
-        AUX_CORE_BOOT_0 = Kmem::Devices2_map_base + 0x81800,
-        AUX_CORE_BOOT_1 = Kmem::Devices2_map_base + 0x81804,
-      };
-      Io::write<Mword>(phys_tramp_mp_addr, AUX_CORE_BOOT_1);
-      asm volatile("dsb; sev" : : : "memory");
-      Io::write<Mword>((Io::read<Mword>(AUX_CORE_BOOT_0) & ~0xfffffdff) | 0x200,
-                       AUX_CORE_BOOT_0);
-    }
-}
-
-PUBLIC
-void
-Boot_mp::cleanup()
-{}
diff --git a/kernel/fiasco/src/kern/arm/bsp/realview/boot_mp-arm-realview.cpp b/kernel/fiasco/src/kern/arm/bsp/realview/boot_mp-arm-realview.cpp
deleted file mode 100644 (file)
index 2cf7be7..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-INTERFACE [arm && mp && realview]:
-
-#include "types.h"
-
-class Boot_mp
-{
-};
-
-IMPLEMENTATION [arm && mp && realview]:
-
-#include "io.h"
-#include "ipi.h"
-#include "platform.h"
-
-PUBLIC
-void
-Boot_mp::start_ap_cpus(Address phys_tramp_mp_addr)
-{
-  // set physical start address for AP CPUs
-  Platform::write(Platform::Sys::Flags_clr, 0xffffffff);
-  Platform::write(Platform::Sys::Flags, phys_tramp_mp_addr);
-
-  // wake up AP CPUs, always from CPU 0
-  Ipi::bcast(Ipi::Global_request, 0);
-}
-
-PUBLIC
-void
-Boot_mp::cleanup()
-{}
diff --git a/kernel/fiasco/src/kern/arm/bsp/tegra2/boot_mp-arm-tegra2.cpp b/kernel/fiasco/src/kern/arm/bsp/tegra2/boot_mp-arm-tegra2.cpp
deleted file mode 100644 (file)
index 8430399..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-INTERFACE [arm && mp && tegra2]:
-
-#include "mem_layout.h"
-
-class Boot_mp
-{
-private:
-  enum
-  {
-    Reset_vector_addr              = Mem_layout::Devices1_map_base + 0xf100,
-    Clk_rst_ctrl_clk_cpu_cmplx     = Mem_layout::Devices1_map_base + 0x604c,
-    Clk_rst_ctrl_rst_cpu_cmplx_clr = Mem_layout::Devices1_map_base + 0x6344,
-    Unhalt_addr                    = Mem_layout::Devices1_map_base + 0x7014,
-  };
-
-  Mword _orig_reset_vector;
-};
-
-IMPLEMENTATION [arm && mp && tegra2]:
-
-#include "io.h"
-
-PUBLIC
-void
-Boot_mp::start_ap_cpus(Address phys_reset_vector)
-{
-  // remember original reset vector
-  _orig_reset_vector = Io::read<Mword>(Reset_vector_addr);
-
-  // set (temporary) new reset vector
-  Io::write<Mword>(phys_reset_vector, Reset_vector_addr);
-
-  // clocks on other cpu
-  Mword r = Io::read<Mword>(Clk_rst_ctrl_clk_cpu_cmplx);
-  Io::write<Mword>(r & ~(1 << 9), Clk_rst_ctrl_clk_cpu_cmplx);
-  Io::write<Mword>((1 << 13) | (1 << 9) | (1 << 5) | (1 << 1),
-                  Clk_rst_ctrl_rst_cpu_cmplx_clr);
-
-  // kick cpu1
-  Io::write<Mword>(0, Unhalt_addr);
-}
-
-PUBLIC
-void
-Boot_mp::cleanup()
-{
-  Io::write<Mword>(_orig_reset_vector, Reset_vector_addr);
-}
diff --git a/kernel/fiasco/src/kern/arm/logdefs.h b/kernel/fiasco/src/kern/arm/logdefs.h
deleted file mode 100644 (file)
index 7e46d2b..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-#ifndef LOGDEFS_H
-#define LOGDEFS_H
-
-// ### How to create a tracebuffer entry ###
-//
-// If you only need a temporary debugging aid then you can use one of
-// the standard kernel logging events: 
-// 
-//   LOG_MSG(Context *context, const char *msg)
-//     - context is something like context_of(this) or current_context()
-//       or 0 if there is no context available
-//     - msg should be displayed in the tracebuffer view
-//
-//   LOG_MSG_3VAL(Context *context, const char *msg,
-//                Mword val1, Mword val2, Mword val3)
-//     - context and msg can be used the same way LOG_MSG does
-//     - val1, val2, and val3 are values that will be displayed in
-//       the tracebuffer view as hexadecimal values
-//
-// If you want to create a permanent log event xyz, you have to follow
-// these instructions:
-// - create enum Log_event_xyz (see jdb_ktrace.cpp)
-// - create class Tb_entry_xyz derived from Tb_entry (see tb_entry.cpp)
-//   with an appropriate ::set method and with accessor methods
-// - create function formatter_xyz (see tb_entry_output.cpp) and don't
-//   forget to register it (add an appropriate line to init_formatters)
-// - create macro LOG_XYZ (see the following example)
-//      #define LOG_XYZ
-//        BEGIN_LOG_EVENT(log_xyz)
-//        Lock_guard <Cpu_lock> guard (&cpu_lock);
-//        Tb_entry_xyz *tb =
-//           static_cast<Tb_entry_ctx_sw*>(Jdb_tbuf::new_entry());
-//        tb->set (this, <some log specific variables>)
-//        Jdb_tbuf::commit_entry();
-//        END_LOG_EVENT
-//   (grabbing the cpu_lock isn't necessary if it is still grabbed)
-// - create an empty macro declaration for CONFIG_JDB_LOGGING=n
-// - insert the macro call into the code
-// - WARNING: permanent log events should _not_ be placed into an inline
-//            function!
-// - add
-//     DECLARE_PATCH (lp<nn>, log_xyz);
-//     static Log_event le<mm>(<description for the 'O' command>,
-//                             Log_event_xyz, 1, &lp<nn>);
-//   and create an entry le<mm> for Jdb_tbuf_events::log_events[] 
-//   (see jdb_tbuf_events.cpp)
-
-#include "globalconfig.h"
-
-#if defined(CONFIG_JDB)
-
-#include "globals.h"
-#include "jdb_tbuf.h"
-#include "cpu_lock.h"
-#include "lock_guard.h"
-#include "processor.h"
-
-#define LOG_CONTEXT_SWITCH                                              \
-  BEGIN_LOG_EVENT("Context switch", "csw", 0)                           \
-  Tb_entry_ctx_sw *tb =                                                 \
-     static_cast<Tb_entry_ctx_sw*>(Jdb_tbuf::new_entry());              \
-  tb->set(this, space(), regs()->ip(), t, t_orig,      \
-          t_orig->lock_cnt(), current_sched(),                          \
-          current_sched() ? current_sched()->prio() : 0,                \
-          (Mword)__builtin_return_address(0));                          \
-  Jdb_tbuf::commit_entry();                                             \
-  END_LOG_EVENT
-
-#define LOG_TRAP                                                        \
-  BEGIN_LOG_EVENT("Exceptions", "exc", 0)                               \
-  Tb_entry_trap *tb =                                                   \
-      static_cast<Tb_entry_trap*>(Jdb_tbuf::new_entry());               \
-  tb->set(current_thread(), ts);                                        \
-  Jdb_tbuf::commit_entry();                                             \
-  END_LOG_EVENT
-
-#define LOG_TRAP_N(n)                                                   \
-  BEGIN_LOG_EVENT("Exception n", "exc", 0)                              \
-  Tb_entry_trap *tb =                                                   \
-     static_cast<Tb_entry_trap*>(Jdb_tbuf::new_entry());                \
-  Mword ip = (Mword)(__builtin_return_address(0));                      \
-  tb->set(current(), ip, n);                                            \
-  Jdb_tbuf::commit_entry();                                             \
-  END_LOG_EVENT
-
-#define LOG_PF_RES_USER                                                 \
-  BEGIN_LOG_EVENT("Page-fault results", "pfr", 0)                       \
-  Tb_entry_pf_res *tb =                                                 \
-     static_cast<Tb_entry_pf_res*>(Jdb_tbuf::new_entry());              \
-  tb->set(this, regs()->ip(), pfa, err, ret);                           \
-  Jdb_tbuf::commit_entry();                                             \
-  END_LOG_EVENT
-
-#define LOG_SCHED_SAVE(cs)                                             \
-  BEGIN_LOG_EVENT("Scheduling context save", "sch", 0)                 \
-  Tb_entry_sched *tb =                                                 \
-     static_cast<Tb_entry_sched*>(Jdb_tbuf::new_entry());              \
-  tb->set (current(), 0, 0,                    \
-           cs->context(),                                      \
-           0,                                  \
-           cs->prio(),                                 \
-           cs->left(),                                 \
-           cs->quantum());                                     \
-  Jdb_tbuf::commit_entry();                                            \
-  END_LOG_EVENT
-
-#define LOG_SCHED_LOAD(cs)                                             \
-  BEGIN_LOG_EVENT("Scheduling context load", "sch", 0)                 \
-  Tb_entry_sched *tb =                                                 \
-     static_cast<Tb_entry_sched*>(Jdb_tbuf::new_entry());              \
-  tb->set (current(), 0, 1,                    \
-           cs->context(),                                      \
-           0,                                  \
-           cs->prio(),                                 \
-           cs->left(),                                 \
-           cs->quantum());                                     \
-  Jdb_tbuf::commit_entry();                                            \
-  END_LOG_EVENT
-
-#define LOG_SCHED_INVALIDATE                                           \
-  BEGIN_LOG_EVENT("Schduling context invalidate", "sch", 0)            \
-  Tb_entry_sched *tb =                                                 \
-     static_cast<Tb_entry_sched*>(Jdb_tbuf::new_entry());              \
-  tb->set (current(), current()->regs()->ip(), 2,                      \
-           current_sched()->context(),                                 \
-           current_sched()->id(),                                      \
-           current_sched()->prio(),                                    \
-           timeslice_timeout.cpu(cpu())->get_timeout(Kip::k()->clock), \
-           current_sched()->quantum());                                        \
-  Jdb_tbuf::commit_entry();                                            \
-  END_LOG_EVENT
-
-#define LOG_SEND_PREEMPTION                                            \
-  BEGIN_LOG_EVENT("Preemption events", "pre", 0)                       \
-  Lock_guard <Cpu_lock> guard (&cpu_lock);                             \
-  Tb_entry_preemption *tb =                                            \
-     static_cast<Tb_entry_preemption*>(Jdb_tbuf::new_entry());         \
-  tb->set (context_of(this), _receiver.raw(), current()->regs()->ip());        \
-  Jdb_tbuf::commit_entry();                                            \
-  END_LOG_EVENT
-
-/*
- * Kernel instrumentation macro used by fm3. Do not remove!
- */
-#define LOG_MSG(context, text)                                         \
-  do {                                                                 \
-    /* The cpu_lock is needed since virq::hit() depends on it */       \
-    Lock_guard <Cpu_lock> guard (&cpu_lock);                           \
-    Tb_entry_ke *tb = static_cast<Tb_entry_ke*>(Jdb_tbuf::new_entry());        \
-    tb->set_const(context, Proc::program_counter(), text);             \
-    Jdb_tbuf::commit_entry();                                          \
-  } while (0)
-
-/*
- * Kernel instrumentation macro used by fm3. Do not remove!
- */
-#define LOG_MSG_3VAL(context, text, v1, v2, v3)                                \
-  do {                                                                 \
-    /* The cpu_lock is needed since virq::hit() depends on it */       \
-    Lock_guard <Cpu_lock> guard (&cpu_lock);                           \
-    Tb_entry_ke_reg *tb =                                              \
-       static_cast<Tb_entry_ke_reg*>(Jdb_tbuf::new_entry());           \
-    tb->set_const(context, Proc::program_counter(), text, v1, v2, v3); \
-    Jdb_tbuf::commit_entry();                                          \
-  } while (0)
-
-
-#define LOG_TRACE(name, sc, ctx, fmt, code...) \
-  BEGIN_LOG_EVENT(name, sc, fmt) \
-    Tb_entry *tbe = Jdb_tbuf::new_entry(); \
-    tbe->set_global(__do_log__, ctx, Proc::program_counter()); \
-    code ; \
-    Jdb_tbuf::commit_entry(); \
-    END_LOG_EVENT
-
-
-#else
-
-#define LOG_TRACE(name, sc, ctx, fmt, code...) do { } while (0)
-#define LOG_CONTEXT_SWITCH             do { } while (0)
-#define LOG_TRAP                       do { } while (0)
-#define LOG_TRAP_N(n)                  do { } while (0)
-#define LOG_PF_RES_USER                        do { } while (0)
-#define LOG_SCHED                      do { } while (0)
-#define LOG_SCHED_SAVE(n)              do { } while (0)
-#define LOG_SCHED_LOAD(n)              do { } while (0)
-#define LOG_SCHED_INVALIDATE           do { } while (0)
-#define LOG_SEND_PREEMPTION            do { } while (0)
-
-#endif // CONFIG_JDB
-
-#if defined(CONFIG_JDB) && defined(CONFIG_JDB_ACCOUNTING)
-
-#error ARM does not have CONFIG_JDB_ACCOUNTING
-
-#define CNT_CONTEXT_SWITCH     \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_context_switch]++;
-#define CNT_ADDR_SPACE_SWITCH  \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_addr_space_switch]++;
-#define CNT_SHORTCUT_FAILED    \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_shortcut_failed]++;
-#define CNT_SHORTCUT_SUCCESS   \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_shortcut_success]++;
-#define CNT_IRQ                        \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_irq]++;
-#define CNT_IPC_LONG           \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_ipc_long]++;
-#define CNT_PAGE_FAULT         \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_page_fault]++;
-#define CNT_IO_FAULT           \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_io_fault]++;
-#define CNT_TASK_CREATE                \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_task_create]++;
-#define CNT_SCHEDULE           \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_schedule]++;
-#define CNT_IOBMAP_TLB_FLUSH   \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_iobmap_tlb_flush]++;
-#define CNT_EXC_IPC             \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_exc_ipc]++;
-
-#else
-
-#define CNT_CONTEXT_SWITCH     do { } while (0)
-#define CNT_ADDR_SPACE_SWITCH  do { } while (0)
-#define CNT_SHORTCUT_FAILED    do { } while (0)
-#define CNT_SHORTCUT_SUCCESS   do { } while (0)
-#define CNT_IRQ                        do { } while (0)
-#define CNT_IPC_LONG           do { } while (0)
-#define CNT_PAGE_FAULT         do { } while (0)
-#define CNT_IO_FAULT           do { } while (0)
-#define CNT_TASK_CREATE                do { } while (0)
-#define CNT_SCHEDULE           do { } while (0)
-#define CNT_IOBMAP_TLB_FLUSH   do { } while (0)
-#define CNT_EXC_IPC             do { } while (0)
-
-#endif // CONFIG_JDB && CONFIG_JDB_ACCOUNTING
-
-#endif
diff --git a/kernel/fiasco/src/kern/ia32/logdefs.h b/kernel/fiasco/src/kern/ia32/logdefs.h
deleted file mode 100644 (file)
index 7713a55..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-#ifndef LOGDEFS_H
-#define LOGDEFS_H
-
-// ### How to create a tracebuffer entry ###
-//
-// If you only need a temporary debugging aid then you can use one of
-// the standard kernel logging events: 
-// 
-//   LOG_MSG(Context *context, const char *msg)
-//     - context is something like context_of(this) or current_context()
-//       or 0 if there is no context available
-//     - msg should be displayed in the tracebuffer view
-//
-//   LOG_MSG_3VAL(Context *context, const char *msg,
-//                Mword val1, Mword val2, Mword val3)
-//     - context and msg can be used the same way LOG_MSG does
-//     - val1, val2, and val3 are values that will be displayed in
-//       the tracebuffer view as hexadecimal values
-//
-// If you want to create a permanent log event xyz, you have to follow
-// these instructions:
-// - create enum Log_event_xyz (see jdb_ktrace.cpp)
-// - create class Tb_entry_xyz derived from Tb_entry (see tb_entry.cpp)
-//   with an appropriate ::set method and with accessor methods
-// - create function formatter_xyz (see tb_entry_output.cpp) and don't
-//   forget to register it (add an appropriate line to init_formatters)
-// - create macro LOG_XYZ (see the following example)
-//      #define LOG_XYZ
-//        BEGIN_LOG_EVENT(log_xyz)
-//        Lock_guard <Cpu_lock> guard (&cpu_lock);
-//        Tb_entry_xyz *tb =
-//           static_cast<Tb_entry_ctx_sw*>(Jdb_tbuf::new_entry());
-//        tb->set (this, <some log specific variables>)
-//        Jdb_tbuf::commit_entry();
-//        END_LOG_EVENT
-//   (grabbing the cpu_lock isn't necessary if it is still grabbed)
-// - create an empty macro declaration for CONFIG_JDB_LOGGING=n
-// - insert the macro call into the code
-// - WARNING: permanent log events should _not_ be placed into an inline
-//            function!
-// - add
-//     DECLARE_PATCH (lp<nn>, log_xyz);
-//     static Log_event le<mm>(<description for the 'O' command>,
-//                             Log_event_xyz, 1, &lp<nn>);
-//   and create an entry le<mm> for Jdb_tbuf_events::log_events[] 
-//   (see jdb_tbuf_events.cpp)
-
-#include "globalconfig.h"
-
-#if defined(CONFIG_JDB)
-
-#include "globals.h"
-#include "jdb_tbuf.h"
-#include "cpu_lock.h"
-#include "lock_guard.h"
-#include "processor.h"
-
-#define LOG_CONTEXT_SWITCH                                              \
-  BEGIN_LOG_EVENT("Context switch", "csw", 0)                           \
-  Tb_entry_ctx_sw *tb =                                                 \
-     static_cast<Tb_entry_ctx_sw*>(Jdb_tbuf::new_entry());              \
-  tb->set(this, space(), regs()->ip_syscall_page_user(), t, t_orig,    \
-          t_orig->lock_cnt(), current_sched(),                     \
-          current_sched() ? current_sched()->prio() : 0,                \
-          (Mword)__builtin_return_address(0));                          \
-  Jdb_tbuf::commit_entry();                                             \
-  END_LOG_EVENT
-
-
-#define LOG_TRAP                                                        \
-  BEGIN_LOG_EVENT("Exceptions", "exc", 0)                               \
-  if (ts->_trapno != 1 && ts->_trapno != 3)                             \
-    {                                                                   \
-      Tb_entry_trap *tb =                                               \
-         static_cast<Tb_entry_trap*>(Jdb_tbuf::new_entry());            \
-      tb->set(this, ts->ip(), ts);                                      \
-      Jdb_tbuf::commit_entry();                                         \
-    }                                                                   \
-  END_LOG_EVENT
-
-#define LOG_TRAP_N(n)                                                   \
-  BEGIN_LOG_EVENT("Exception n", "exc", 0)                              \
-  Tb_entry_trap *tb =                                                   \
-     static_cast<Tb_entry_trap*>(Jdb_tbuf::new_entry());                \
-  Mword ip = (Mword)(__builtin_return_address(0));                      \
-  tb->set(current(), ip, n);                                            \
-  Jdb_tbuf::commit_entry();                                             \
-  END_LOG_EVENT
-
-#define LOG_PF_RES_USER                                                 \
-  BEGIN_LOG_EVENT("Page-fault results", "pfr", 0)                       \
-  Tb_entry_pf_res *tb =                                                 \
-     static_cast<Tb_entry_pf_res*>(Jdb_tbuf::new_entry());              \
-  tb->set(this, regs()->ip_syscall_page_user(), pfa, err, ret);         \
-  Jdb_tbuf::commit_entry();                                             \
-  END_LOG_EVENT
-
-#define LOG_SCHED_SAVE(cs)                                             \
-  BEGIN_LOG_EVENT("Scheduling context save", "sch", 0)                 \
-  Tb_entry_sched *tb =                                                 \
-     static_cast<Tb_entry_sched*>(Jdb_tbuf::new_entry());              \
-  tb->set (current(), 0, 0,    \
-           cs->context(),                                      \
-           0,                                  \
-           cs->prio(),                                 \
-           cs->left(),                                 \
-           cs->quantum());                                     \
-  Jdb_tbuf::commit_entry();                                            \
-  END_LOG_EVENT
-
-#define LOG_SCHED_LOAD(cs)                                             \
-  BEGIN_LOG_EVENT("Scheduling context load", "sch", 0)                 \
-  Tb_entry_sched *tb =                                                 \
-     static_cast<Tb_entry_sched*>(Jdb_tbuf::new_entry());              \
-  tb->set (current(), 0, 1,    \
-           cs->context(),                                      \
-           0,                                  \
-           cs->prio(),                                 \
-           cs->left(),                                 \
-           cs->quantum());                                     \
-  Jdb_tbuf::commit_entry();                                            \
-  END_LOG_EVENT
-
-#define LOG_SCHED_INVALIDATE                                           \
-  BEGIN_LOG_EVENT("Schduling context invalidate", "sch", 0)                    \
-  Tb_entry_sched *tb =                                                 \
-     static_cast<Tb_entry_sched*>(Jdb_tbuf::new_entry());              \
-  tb->set (current(), current()->regs()->ip_syscall_page_user(), 2,    \
-           current_sched()->owner(),                                   \
-           current_sched()->id(),                                      \
-           current_sched()->prio(),                                    \
-           timeslice_timeout.cpu(cpu())->get_timeout(Kip::k()->clock), \
-           current_sched()->quantum());                                        \
-  Jdb_tbuf::commit_entry();                                            \
-  END_LOG_EVENT
-
-#define LOG_SEND_PREEMPTION                                            \
-  BEGIN_LOG_EVENT("Preemption events", "pre", 0)                       \
-  Lock_guard <Cpu_lock> guard (&cpu_lock);                             \
-  Tb_entry_preemption *tb =                                            \
-     static_cast<Tb_entry_preemption*>(Jdb_tbuf::new_entry());         \
-  tb->set (context_of(this), _receiver.raw(), current()->regs()->ip_syscall_page_user());\
-  Jdb_tbuf::commit_entry();                                            \
-  END_LOG_EVENT
-
-/*
- * Kernel instrumentation macro used by fm3. Do not remove!
- */
-#define LOG_MSG(context, text)                                         \
-  do {                                                                 \
-    /* The cpu_lock is needed since virq::hit() depends on it */       \
-    Lock_guard <Cpu_lock> guard (&cpu_lock);                           \
-    Tb_entry_ke *tb = static_cast<Tb_entry_ke*>(Jdb_tbuf::new_entry());        \
-    tb->set_const(context, Proc::program_counter(), text);             \
-    Jdb_tbuf::commit_entry();                                          \
-  } while (0)
-
-/*
- * Kernel instrumentation macro used by fm3. Do not remove!
- */
-#define LOG_MSG_3VAL(context, text, v1, v2, v3)                                \
-  do {                                                                 \
-    /* The cpu_lock is needed since virq::hit() depends on it */       \
-    Lock_guard <Cpu_lock> guard (&cpu_lock);                           \
-    Tb_entry_ke_reg *tb =                                              \
-       static_cast<Tb_entry_ke_reg*>(Jdb_tbuf::new_entry());           \
-    tb->set_const(context, Proc::program_counter(), text, v1, v2, v3); \
-    Jdb_tbuf::commit_entry();                                          \
-  } while (0)
-
-
-#define LOG_TRACE(name, sc, ctx, fmt, code...)                          \
-  BEGIN_LOG_EVENT(name, sc, fmt)                                        \
-    Tb_entry *tbe = Jdb_tbuf::new_entry();                              \
-    tbe->set_global(__do_log__, ctx, Proc::program_counter());          \
-    code;                                                               \
-    Jdb_tbuf::commit_entry();                                           \
-  END_LOG_EVENT
-
-
-#else
-
-#define LOG_TRACE(name, sc, ctx, fmt, code...) do { } while (0)
-#define LOG_CONTEXT_SWITCH                    do { } while (0)
-#define LOG_TRAP                              do { } while (0)
-#define LOG_TRAP_N(n)                         do { } while (0)
-#define LOG_PF_RES_USER                               do { } while (0)
-#define LOG_SCHED                             do { } while (0)
-#define LOG_SCHED_SAVE(n)                     do { } while (0)
-#define LOG_SCHED_LOAD(n)                     do { } while (0)
-#define LOG_SCHED_INVALIDATE                  do { } while (0)
-#define LOG_SEND_PREEMPTION                   do { } while (0)
-
-#endif // CONFIG_JDB
-
-#if defined(CONFIG_JDB) && defined(CONFIG_JDB_ACCOUNTING)
-
-#define CNT_CONTEXT_SWITCH     \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_context_switch]++;
-#define CNT_ADDR_SPACE_SWITCH  \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_addr_space_switch]++;
-#define CNT_SHORTCUT_FAILED    \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_shortcut_failed]++;
-#define CNT_SHORTCUT_SUCCESS   \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_shortcut_success]++;
-#define CNT_IRQ                        \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_irq]++;
-#define CNT_IPC_LONG           \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_ipc_long]++;
-#define CNT_PAGE_FAULT         \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_page_fault]++;
-#define CNT_IO_FAULT           \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_io_fault]++;
-#define CNT_TASK_CREATE                \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_task_create]++;
-#define CNT_SCHEDULE           \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_schedule]++;
-#define CNT_IOBMAP_TLB_FLUSH   \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_iobmap_tlb_flush]++;
-#define CNT_EXC_IPC             \
-  Jdb_tbuf::status()->kerncnts[Kern_cnt_exc_ipc]++;
-
-#else
-
-#define CNT_CONTEXT_SWITCH     do { } while (0)
-#define CNT_ADDR_SPACE_SWITCH  do { } while (0)
-#define CNT_SHORTCUT_FAILED    do { } while (0)
-#define CNT_SHORTCUT_SUCCESS   do { } while (0)
-#define CNT_IRQ                        do { } while (0)
-#define CNT_IPC_LONG           do { } while (0)
-#define CNT_PAGE_FAULT         do { } while (0)
-#define CNT_IO_FAULT           do { } while (0)
-#define CNT_TASK_CREATE                do { } while (0)
-#define CNT_SCHEDULE           do { } while (0)
-#define CNT_IOBMAP_TLB_FLUSH   do { } while (0)
-#define CNT_EXC_IPC             do { } while (0)
-
-#endif // CONFIG_JDB && CONFIG_JDB_ACCOUNTING
-
-#endif
diff --git a/kernel/fiasco/src/kern/tb_entry_output.cpp b/kernel/fiasco/src/kern/tb_entry_output.cpp
deleted file mode 100644 (file)
index 4e0da8e..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-IMPLEMENTATION:
-
-#include <cstdarg>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-
-#include "config.h"
-#include "jdb_symbol.h"
-#include "jdb_tbuf_output.h"
-#include "jdb_util.h"
-#include "static_init.h"
-#include "tb_entry.h"
-#include "thread.h"
-
-static __attribute__((format(printf, 3, 4)))
-void
-my_snprintf(char *&buf, int &maxlen, const char *format, ...)
-{
-  int len;
-  va_list list;
-
-  if (maxlen<=0)
-    return;
-
-  va_start(list, format);
-  len = vsnprintf(buf, maxlen, format, list);
-  va_end(list);
-
-  if (len<0 || len>=maxlen)
-    len = maxlen-1;
-
-  buf    += len;
-  maxlen -= len;
-}
-
-
-// timeout => x.x{
-static
-void
-format_timeout(Mword us, char *&buf, int &maxlen)
-{
-  if (us >= 1000000000)                // =>100s
-    my_snprintf(buf, maxlen, ">99s");
-  else if (us >= 10000000)     // >=10s
-    my_snprintf(buf, maxlen, "%lds", us/1000000);
-  else if (us >= 1000000)      // >=1s
-    my_snprintf(buf, maxlen, "%ld.%lds", us/1000000, (us%1000000)/100000);
-  else if (us >= 10000)                // 10ms
-    my_snprintf(buf, maxlen, "%ldm", us/1000);
-  else if (us >= 1000)         // 1ms
-    my_snprintf(buf, maxlen, "%ld.%ldm", us/1000, (us%1000)/100);
-  else
-    my_snprintf(buf, maxlen, "%ld%c", us, Config::char_micro);
-}
-
-template< typename T >
-static
-char const *
-get_ipc_type(T e)
-{
-  switch (e->ipc_type())
-    {
-    case L4_obj_ref::Ipc_call:           return "call";
-    case L4_obj_ref::Ipc_call_ipc:       return "call ipc";
-    case L4_obj_ref::Ipc_send:           return "send";
-    case L4_obj_ref::Ipc_recv:           return "recv";
-    case L4_obj_ref::Ipc_send_and_wait:  return "snd wait";
-    case L4_obj_ref::Ipc_reply_and_wait: return "repl";
-    case L4_obj_ref::Ipc_wait:           return "wait";
-    default:                             return "unk ipc";
-    }
-}
-
-static char const * const __tag_interpreter_strings_l4re[] = {
-    "ds", // 0
-    "name",
-    "parent",
-    "goos",
-    "ma",
-    "rm", // 5
-    "ev",
-  };
-static char const * const __tag_interpreter_strings_fiasco[] = {
-    "Kirq",      // -1
-    "Kpf",
-    "Kpreempt",
-    "Ksysexc",
-    "Kexc",      // -5
-    "Ksigma",
-    0,
-    "Kiopf",
-    "Kcapfault",
-    0,           // -10
-    "Ktask",
-    "Kthread",
-    "Klog",
-    "Ksched",
-    "Kfactory",  // -15
-    "Kvm",
-    0,
-    0,
-    0,
-    "Ksem",      // -20
-    "Kmeta",
-  };
-
-static
-char const *
-tag_to_string(L4_msg_tag const &tag)
-{
-  if (0x4000 <= tag.proto() && tag.proto() <= 0x4006)
-    return __tag_interpreter_strings_l4re[tag.proto() - 0x4000];
-  if (-21L <= tag.proto() && tag.proto() <= -1)
-    return __tag_interpreter_strings_fiasco[-tag.proto() - 1];
-  return 0;
-}
-
-static
-void
-tag_interpreter_snprintf(char *&buf, int &maxlen, L4_msg_tag const &tag)
-{
-  int len;
-  char const *s;
-
-  if (maxlen<=0)
-    return;
-
-  s = tag_to_string(tag);
-  if (s)
-    len = snprintf(buf, maxlen, "%s%04lx", s, tag.raw() & 0xffff);
-  else
-    len = snprintf(buf, maxlen, L4_PTR_FMT, tag.raw());
-
-  if (len<0 || len>=maxlen)
-    len = maxlen-1;
-
-  buf    += len;
-  maxlen -= len;
-}
-
-// ipc / irq / shortcut success
-static
-unsigned
-formatter_ipc(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-             char *buf, int maxlen)
-{
-  Tb_entry_ipc *e = static_cast<Tb_entry_ipc*>(tb);
-  unsigned char type = e->ipc_type();
-  if (!type)
-    type = L4_obj_ref::Ipc_call_ipc;
-
-  // ipc operation / shortcut succeeded/failed
-  const char *m = get_ipc_type(e);
-
-  my_snprintf(buf, maxlen, "%s: ", (e->type()==Tbuf_ipc) ? "ipc" : "sc ");  
-  my_snprintf(buf, maxlen, "%s%-*s %s->",
-      /*e->dst().next_period() ? "[NP] " :*/ "", tidlen, tidstr, m);
-
-  // print destination id
-  if (e->dst().special())
-    my_snprintf(buf, maxlen, "[C:INV] DID=%lx", e->dbg_id());
-  else
-    my_snprintf(buf, maxlen, "[C:%lx] DID=%lx", e->dst().raw(), e->dbg_id());
-
-  my_snprintf(buf, maxlen, " L=%lx", e->label());
-
-  // print mwords if have send part
-  if (type & L4_obj_ref::Ipc_send)
-    {
-      my_snprintf(buf, maxlen, " [");
-
-      tag_interpreter_snprintf(buf, maxlen, e->tag());
-
-      my_snprintf(buf, maxlen, "] (" L4_PTR_FMT "," L4_PTR_FMT ")",
-                              e->dword(0), e->dword(1));
-    }
-
-  my_snprintf(buf, maxlen, " TO=");
-  L4_timeout_pair to = e->timeout();
-  if (type & L4_obj_ref::Ipc_send)
-    {
-      if (to.snd.is_absolute())
-       {
-         // absolute send timeout
-         Unsigned64 end = 0; // FIXME: to.snd.microsecs_abs (e->kclock());
-         format_timeout((Mword)(end > e->kclock() ? end-e->kclock() : 0),
-                        buf, maxlen);
-       }
-      else
-       {
-         // relative send timeout
-         if (to.snd.is_never())
-           my_snprintf(buf, maxlen, "INF");
-         else if (to.snd.is_zero())
-           my_snprintf(buf, maxlen, "0");
-         else
-            format_timeout((Mword)to.snd.microsecs_rel(0), buf, maxlen);
-       }
-    }
-  if (type & L4_obj_ref::Ipc_send
-      && type & L4_obj_ref::Ipc_recv)
-    my_snprintf(buf, maxlen, "/");
-  if (type & L4_obj_ref::Ipc_recv)
-    {
-      if (to.rcv.is_absolute())
-       {
-         // absolute receive timeout
-         Unsigned64 end = 0; // FIXME: to.rcv.microsecs_abs (e->kclock());
-         format_timeout((Mword)(end > e->kclock() ? end-e->kclock() : 0),
-                        buf, maxlen);
-       }
-      else
-       {
-         // relative receive timeout
-         if (to.rcv.is_never())
-           my_snprintf(buf, maxlen, "INF");
-         else if (to.rcv.is_zero())
-           my_snprintf(buf, maxlen, "0");
-         else
-            format_timeout((Mword)to.rcv.microsecs_rel(0), buf, maxlen);
-       }
-    }
-
-  return maxlen;
-}
-
-// result of ipc
-static
-unsigned
-formatter_ipc_res(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-                 char *buf, int maxlen)
-{
-  Tb_entry_ipc_res *e = static_cast<Tb_entry_ipc_res*>(tb);
-  L4_error error;
-  if (e->tag().has_error())
-    error = e->result();
-  else
-    error = L4_error::None;
-  const char *m = "answ"; //get_ipc_type(e);
-
-  my_snprintf(buf, maxlen, "     %s%-*s %s [%08lx] L=%lx err=%lx (%s) (%lx,%lx) ",
-                           e->is_np() ? "[np] " : "",
-                           tidlen, tidstr, m, e->tag().raw(), e->from(),
-                            error.raw(), error.str_error(), e->dword(0),
-                           e->dword(1));
-
-  return maxlen;
-}
-
-IMPLEMENTATION:
-
-#include "kobject_dbg.h"
-
-// pagefault
-static
-unsigned
-formatter_pf(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-            char *buf, int maxlen)
-{
-  Tb_entry_pf *e = static_cast<Tb_entry_pf*>(tb);
-  char ip_buf[32];
-
-  snprintf(ip_buf, sizeof(ip_buf), L4_PTR_FMT, e->ip());
-  my_snprintf(buf, maxlen, "pf:  %-*s pfa=" L4_PTR_FMT " ip=%s (%c%c) spc=%p",
-      tidlen, tidstr, e->pfa(), e->ip() ? ip_buf : "unknown",
-      !PF::is_read_error(e->error()) ? (e->error() & 4 ? 'w' : 'W')
-                                     : (e->error() & 4 ? 'r' : 'R'),
-      !PF::is_translation_error(e->error()) ? 'p' : '-',
-      e->space());
-
-  return maxlen;
-}
-
-// pagefault result
-static
-unsigned
-formatter_pf_res(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-                char *buf, int maxlen)
-{
-  Tb_entry_pf_res *e = static_cast<Tb_entry_pf_res*>(tb);
-
-  // e->ret contains only an error code
-  // e->err contains only up to 3 dwords
-  my_snprintf(buf, maxlen, "     %-*s pfa=" L4_PTR_FMT " dope=%02lx (%s%s) "
-               "err=%04lx (%s%s)",
-             tidlen, tidstr, e->pfa(),
-             e->ret().raw(), e->ret().error() ? "L4_IPC_" : "",
-             e->ret().str_error(),
-             e->err().raw(), e->err().error() ? "L4_IPC_" : "",
-             e->err().str_error());
-
-  return maxlen;
-}
-
-// kernel event (enter_kdebug("*..."))
-static
-unsigned
-formatter_ke(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-            char *buf, int maxlen)
-{
-  Tb_entry_ke *e = static_cast<Tb_entry_ke*>(tb);
-  char ip_buf[32];
-
-  snprintf(ip_buf, sizeof(ip_buf), " @ " L4_PTR_FMT, e->ip());
-  my_snprintf(buf, maxlen, "ke:  %-*s \"%s\"%s",
-      tidlen, tidstr, e->msg(), e->ip() ? ip_buf : "");
-
-  return maxlen;
-}
-
-// kernel event (enter_kdebug_verb("*+...", val1, val2, val3))
-static
-unsigned
-formatter_ke_reg(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-                char *buf, int maxlen)
-{
-  Tb_entry_ke_reg *e = static_cast<Tb_entry_ke_reg*>(tb);
-
-  char ip_buf[32];
-  snprintf(ip_buf, sizeof(ip_buf), " @ " L4_PTR_FMT, e->ip());
-  my_snprintf(buf, maxlen, "ke:  %-*s \"%s\" "
-      L4_PTR_FMT " " L4_PTR_FMT " " L4_PTR_FMT "%s",
-      tidlen, tidstr, e->msg(), e->val1(), e->val2(), e->val3(), 
-      e->ip() ? ip_buf : "");
-
-  return maxlen;
-}
-
-
-// breakpoint
-static
-unsigned
-formatter_bp(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-            char *buf, int maxlen)
-{
-  Tb_entry_bp *e = static_cast<Tb_entry_bp*>(tb);
-
-  my_snprintf(buf, maxlen, "b%c:  %-*s @ " L4_PTR_FMT " ",
-      "iwpa"[e->mode() & 3], tidlen, tidstr, e->ip());
-  switch (e->mode() & 3)
-    {
-    case 1:
-    case 3:
-      switch (e->len())
-       {
-       case 1:
-         my_snprintf(buf, maxlen, "[" L4_PTR_FMT "]=%02lx", 
-                     e->addr(), e->value());
-         break;
-       case 2:
-         my_snprintf(buf, maxlen, "[" L4_PTR_FMT "]=%04lx", 
-                     e->addr(), e->value());
-         break;
-       case 4:
-         my_snprintf(buf, maxlen, "[" L4_PTR_FMT "]=" L4_PTR_FMT,
-                     e->addr(), e->value());
-         break;
-       }
-      break;
-    case 2:
-      my_snprintf(buf, maxlen, "[" L4_PTR_FMT "]", e->addr());
-      break;
-    }
-
-  return maxlen;
-}
-
-// context switch
-static
-unsigned
-formatter_ctx_switch(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-                    char *buf, int maxlen)
-{
-  char symstr[24], spcstr[16] = "";
-  Tb_entry_ctx_sw *e = static_cast<Tb_entry_ctx_sw*>(tb);
-
-  Context   *sctx    = 0;
-  Mword sctxid = ~0UL;
-  Mword dst;
-  Mword dst_orig;
-
-  sctx = e->from_sched()->context();
-  sctxid = static_cast<Thread*>(sctx)->dbg_id();
-
-  dst = static_cast<Thread const *>(e->dst())->dbg_id();
-  dst_orig = static_cast<Thread const *>(e->dst_orig())->dbg_id();
-
-  Address addr       = e->kernel_ip();
-
-  if (!Jdb_symbol::match_addr_to_symbol_fuzzy(&addr, 0 /*kernel*/,
-                                             symstr, sizeof(symstr)))
-    snprintf(symstr, sizeof(symstr), L4_PTR_FMT, e->kernel_ip());
-
-  my_snprintf(buf, maxlen, "     %-*s%s '%02lx",
-      tidlen, tidstr, spcstr, e->from_prio());
-  if (sctx != e->ctx())
-    my_snprintf(buf, maxlen, "(%lx)", sctxid);
-
-  my_snprintf(buf, maxlen, " ==> %lx ", dst);
-
-  if (dst != dst_orig || e->lock_cnt())
-    my_snprintf(buf, maxlen, "(");
-
-  if (dst != dst_orig)
-    my_snprintf(buf, maxlen, "want %lx",
-       dst_orig);
-
-  if (dst != dst_orig && e->lock_cnt())
-    my_snprintf(buf, maxlen, " ");
-
-  if (e->lock_cnt())
-    my_snprintf(buf, maxlen, "lck %ld", e->lock_cnt());
-
-  if (dst != dst_orig || e->lock_cnt())
-    my_snprintf(buf, maxlen, ") ");
-
-  my_snprintf(buf, maxlen, " krnl %s", symstr);
-
-  return maxlen;
-}
-
-
-// trap
-static
-unsigned
-formatter_trap(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-              char *buf, int maxlen)
-{
-  Tb_entry_trap *e = static_cast<Tb_entry_trap*>(tb);
-
-  if (!e->cs())
-    my_snprintf(buf, maxlen, "#%02x: %-*s err=%08x @ " L4_PTR_FMT,
-               e->trapno(), tidlen, tidstr, e->error(), e->ip());
-  else
-    my_snprintf(buf, maxlen,
-               e->trapno() == 14
-                 ? "#%02x: %-*s err=%04x @ " L4_PTR_FMT
-                   " cs=%04x sp=" L4_PTR_FMT " cr2=" L4_PTR_FMT
-                 : "#%02x: %-*s err=%04x @ " L4_PTR_FMT
-                   " cs=%04x sp=" L4_PTR_FMT " eax=" L4_PTR_FMT,
-               e->trapno(),
-               tidlen, tidstr, e->error(), e->ip(), e->cs(), e->sp(),
-               e->trapno() == 14 ? e->cr2() : e->eax());
-
-  return maxlen;
-}
-
-// sched
-static
-unsigned
-formatter_sched(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-               char *buf, int maxlen)
-{
-  Tb_entry_sched *e = static_cast<Tb_entry_sched*>(tb);
-  Thread const *_t = static_cast<Thread const *>(e->owner());
-  Mword t = ~0UL;
-  if (Jdb_util::is_mapped(_t))
-    t = _t->dbg_id();
-
-
-  my_snprintf(buf, maxlen, 
-            "%-*s (ts %s) owner:%lx id:%2x, prio:%2x, left:%6ld/%-6lu",
-               tidlen, tidstr,
-               e->mode() == 0 ? "save" :
-               e->mode() == 1 ? "load" :
-               e->mode() == 2 ? "invl" : "????",
-               t,
-               e->id(), e->prio(), e->left(), e->quantum());
-
-  return maxlen;
-}
-
-// preemption
-static
-unsigned
-formatter_preemption(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-                    char *buf, int maxlen)
-{
-  Tb_entry_preemption *e = static_cast<Tb_entry_preemption*>(tb);
-  Mword t = e->preempter();
-
-  my_snprintf(buf, maxlen,
-            "pre: %-*s sent to %lx",
-            tidlen, tidstr, t);
-
-  return maxlen;
-}
-
-// kernel event log binary data
-static
-unsigned
-formatter_ke_bin(Tb_entry *tb, const char *tidstr, unsigned tidlen,
-                char *buf, int maxlen)
-{
-  Tb_entry_ke_bin *e = static_cast<Tb_entry_ke_bin*>(tb);
-  char ip_buf[32];
-
-  snprintf(ip_buf, sizeof(ip_buf), " @ " L4_PTR_FMT, e->ip());
-  my_snprintf(buf, maxlen, "ke:  %-*s BINDATA %s",
-              tidlen, tidstr, e->ip() ? ip_buf : "");
-
-  return maxlen;
-}
-
-STATIC_INITIALIZER(init_formatters);
-
-// register all available format functions
-static FIASCO_INIT
-void
-init_formatters()
-{
-  Jdb_tbuf_output::register_ff(Tbuf_pf, formatter_pf);
-  Jdb_tbuf_output::register_ff(Tbuf_pf_res, formatter_pf_res);
-  Jdb_tbuf_output::register_ff(Tbuf_ipc, formatter_ipc);
-  Jdb_tbuf_output::register_ff(Tbuf_ipc_res, formatter_ipc_res);
-  Jdb_tbuf_output::register_ff(Tbuf_ke, formatter_ke);
-  Jdb_tbuf_output::register_ff(Tbuf_ke_reg, formatter_ke_reg);
-  Jdb_tbuf_output::register_ff(Tbuf_shortcut_succeeded, formatter_ipc);
-  Jdb_tbuf_output::register_ff(Tbuf_context_switch, formatter_ctx_switch);
-  Jdb_tbuf_output::register_ff(Tbuf_breakpoint, formatter_bp);
-  Jdb_tbuf_output::register_ff(Tbuf_trap, formatter_trap);
-  Jdb_tbuf_output::register_ff(Tbuf_sched, formatter_sched);
-  Jdb_tbuf_output::register_ff(Tbuf_preemption, formatter_preemption);
-  Jdb_tbuf_output::register_ff(Tbuf_ke_bin, formatter_ke_bin);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/README b/l4/pkg/acpica/lib-acpi/src/acpica/README
deleted file mode 100644 (file)
index 8b6f3ea..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-acpica-unix
------------
-
-This source release includes:
-
-
-1) a cross-OS AML interpreter
-
-This is intended to allow commercial and open source operating systems
-to be enabled for ACPI. OS specific code is still needed, but the
-AML interpreter should greatly improve the development speed of ACPI
-support.
-
-The AML interpreter source should be integrated into the kernel's
-build process. We recommend establishing an automated method for
-this, so later versions can also be incorporated easily. Please see
-the documentation on the website for API and other implementation
-information.
-
-
-2) iasl, an ASL compiler/decompiler
-
-iasl compiles ASL (ACPI Source Language) into AML (ACPI Machine
-Language). This AML is suitable for inclusion as a DSDT in system
-firmware. It also can disassemble AML, for debugging purposes.
-
-To compile:
-
-cd compiler
-make
-
-It has been compiled on Linux, but should easily port to other Unix
-environments.
-
-Run 'iasl -h' for more information, or download the binary version for
-documentation in PDF format.
-
-
-3) acpisrc, a source code conversion tool
-
-acpisrc converts the standard form of the acpica source release (included
-here) into a version that meets Linux coding guidelines. This consists
-mainly of performing a series of string replacements and transformations
-to the code.
-
-To compile:
-
-cd tools/acpisrc
-make
-
-It has been compiled on Linux, but should easily port to other Unix
-environments.
-
-
-4) acpibin, an AML file tool
-
-acpibin compares AML files, dumps AML binary files to text files,
-extracts binary AML from text files, and other AML file
-manipulation.
-
-To compile:
-
-cd tools/acpibin
-make
-
-
-5) acpiexec, a user-space AML interpreter
-
-acpiexec allows the loading of ACPI tables and execution of control
-methods from user space.  Useful for debugging AML code and testing
-the AML interpreter.
-
-To compile:
-
-cd tools/acpiexec
-make
-
-
-Thanks -- The ACPI CA Team
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/changes.txt b/l4/pkg/acpica/lib-acpi/src/acpica/changes.txt
deleted file mode 100644 (file)
index d8127f2..0000000
+++ /dev/null
@@ -1,9649 +0,0 @@
-----------------------------------------
-14 December 2009. Summary of changes for version 20091214:
-
-This release is available at www.acpica.org/downloads
-
-1) ACPI CA Core Subsystem:
-
-Enhanced automatic data type conversions for predefined name repairs. This 
-change expands the automatic repairs/conversions for predefined name return 
-values to make Integers, Strings, and Buffers fully interchangeable. Also, a 
-Buffer can be converted to a Package of Integers if necessary. The nsrepair.c 
-module was completely restructured. Lin Ming, Bob Moore.
-
-Implemented automatic removal of null package elements during predefined name 
-repairs. This change will automatically remove embedded and trailing NULL 
-package elements from returned package objects that are defined to contain a 
-variable number of sub-packages. The driver is then presented with a package 
-with no null elements to deal with. ACPICA BZ 819.
-
-Implemented a repair for the predefined _FDE and _GTM names. The expected 
-return value for both names is a Buffer of 5 DWORDs. This repair fixes two 
-possible problems (both seen in the field), where a package of integers is 
-returned, or a buffer of BYTEs is returned. With assistance from Jung-uk Kim.
-
-Implemented additional module-level code support. This change will properly 
-execute module-level code that is not at the root of the namespace (under a 
-Device object, etc.). Now executes the code within the current scope instead 
-of the root. ACPICA BZ 762. Lin Ming.
-
-Fixed possible mutex acquisition errors when running _REG methods. Fixes a 
-problem where mutex errors can occur when running a _REG method that is in 
-the same scope as a method-defined operation region or an operation region 
-under a module-level IF block. This type of code is rare, so the problem has 
-not been seen before. ACPICA BZ 826. Lin Ming, Bob Moore.
-
-Fixed a possible memory leak during module-level code execution. An object 
-could be leaked for each block of executed module-level code if the 
-interpreter slack mode is enabled This change deletes any implicitly returned 
-object from the module-level code block. Lin Ming.
-
-Removed messages for successful predefined repair(s). The repair mechanism 
-was considered too wordy. Now, messages are only unconditionally emitted if 
-the return object cannot be repaired. Existing messages for successful 
-repairs were converted to ACPI_DEBUG_PRINT messages for now. ACPICA BZ 827.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  86.6K Code, 18.2K Data, 104.8K Total
-    Debug Version:     162.7K Code, 50.8K Data, 213.5K Total
-  Current Release:
-    Non-Debug Version:  87.0K Code, 18.0K Data, 105.0K Total
-    Debug Version:     163.4K Code, 50.8K Data, 214.2K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-iASL: Fixed a regression introduced in 20091112 where intermediate .SRC files 
-were no longer automatically removed at the termination of the compile.
-
-acpiexec: Implemented the -f option to specify default region fill value. 
-This option specifies the value used to initialize buffers that simulate 
-operation regions. Default value is zero. Useful for debugging problems that 
-depend on a specific initial value for a region or field.
-
-----------------------------------------
-12 November 2009. Summary of changes for version 20091112:
-
-This release is available at www.acpica.org/downloads
-
-1) ACPI CA Core Subsystem:
-
-Implemented a post-order callback to AcpiWalkNamespace. The existing 
-interface only has a pre-order callback. This change adds an additional 
-parameter for a post-order callback which will be more useful for bus scans. 
-ACPICA BZ 779. Lin Ming. Updated the ACPICA Programmer Reference.
-
-Modified the behavior of the operation region memory mapping cache for 
-SystemMemory. Ensure that the memory mappings created for operation regions 
-do not cross 4K page boundaries. Crossing a page boundary while mapping 
-regions can cause kernel warnings on some hosts if the pages have different 
-attributes. Such regions are probably BIOS bugs, and this is the workaround. 
-Linux BZ 14445. Lin Ming.
-
-Implemented an automatic repair for predefined methods that must return 
-sorted lists. This change will repair (by sorting) packages returned by _ALR, 
-_PSS, and _TSS. Drivers can now assume that the packages are correctly sorted 
-and do not contain NULL package elements. Adds one new file, 
-namespace/nsrepair2.c. ACPICA BZ 784. Lin Ming, Bob Moore.
-
-Fixed a possible fault during predefined name validation if a return Package 
-object contains NULL elements. Also adds a warning if a NULL element is 
-followed by any non-null elements. ACPICA BZ 813, 814. Future enhancement may 
-include repair or removal of all such NULL elements where possible.
-
-Implemented additional module-level executable AML code support. This change 
-will execute module-level code that is not at the root of the namespace 
-(under a Device object, etc.) at table load time. Module-level executable AML 
-code has been illegal since ACPI 2.0. ACPICA BZ 762. Lin Ming.
-
-Implemented a new internal function to create Integer objects. This function 
-simplifies miscellaneous object creation code. ACPICA BZ 823.
-
-Reduced the severity of predefined repair messages, Warning to Info. Since 
-the object was successfully repaired, a warning is too severe. Reduced to an 
-info message for now. These messages may eventually be changed to debug-only. 
-ACPICA BZ 812.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  85.8K Code, 18.0K Data, 103.8K Total
-    Debug Version:     161.8K Code, 50.6K Data, 212.4K Total
-  Current Release:
-    Non-Debug Version:  86.6K Code, 18.2K Data, 104.8K Total
-    Debug Version:     162.7K Code, 50.8K Data, 213.5K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-iASL: Implemented Switch() with While(1) so that Break works correctly. This 
-change correctly implements the Switch operator with a surrounding While(1) 
-so that the Break operator works as expected. ACPICA BZ 461. Lin Ming.
-
-iASL: Added a message if a package initializer list is shorter than package 
-length. Adds a new remark for a Package() declaration if an initializer list 
-exists, but is shorter than the declared length of the package. Although 
-technically legal, this is probably a coding error and it is seen in the 
-field. ACPICA BZ 815. Lin Ming, Bob Moore.
-
-iASL: Fixed a problem where the compiler could fault after the maximum number 
-of errors was reached (200).
-
-acpixtract: Fixed a possible warning for pointer cast if the compiler warning 
-level set very high.
-
-----------------------------------------
-13 October 2009. Summary of changes for version 20091013:
-
-This release is available at www.acpica.org/downloads
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where an Operation Region _REG method could be executed more 
-than once. If a custom address space handler is installed by the host before 
-the "initialize operation regions" phase of the ACPICA initialization, any 
-_REG methods for that address space could be executed twice. This change 
-fixes the problem. ACPICA BZ 427. Lin Ming.
-
-Fixed a possible memory leak for the Scope() ASL operator. When the exact 
-invocation of "Scope(\)" is executed (change scope to root), one internal 
-operand object was leaked. Lin Ming.
-
-Implemented a run-time repair for the _MAT predefined method. If the _MAT 
-return value is defined as a Field object in the AML, and the field
-size is less than or equal to the default width of an integer (32 or 64),_MAT 
-can incorrectly return an Integer instead of a Buffer. ACPICA now 
-automatically repairs this problem. ACPICA BZ 810.
-
-Implemented a run-time repair for the _BIF and _BIX predefined methods. The 
-"OEM Information" field is often incorrectly returned as an Integer with 
-value zero if the field is not supported by the platform. This is due to an 
-ambiguity in the ACPI specification. The field should always be a string. 
-ACPICA now automatically repairs this problem by returning a NULL string 
-within the returned Package. ACPICA BZ 807.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  85.6K Code, 18.0K Data, 103.6K Total
-    Debug Version:     161.7K Code, 50.9K Data, 212.6K Total
-  Current Release:
-    Non-Debug Version:  85.8K Code, 18.0K Data, 103.8K Total
-    Debug Version:     161.8K Code, 50.6K Data, 212.4K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Fixed a problem where references to external symbols that 
-contained one or more parent-prefixes (carats) were not handled correctly, 
-possibly causing a fault. ACPICA BZ 806. Lin Ming.
-
-Disassembler: Restructured the code so that all functions that handle 
-external symbols are in a single module. One new file is added, 
-common/dmextern.c.
-
-AML Debugger: Added a max count argument for the Batch command (which 
-executes multiple predefined methods within the namespace.)
-
-iASL: Updated the compiler documentation (User Reference.) Available at 
-http://www.acpica.org/documentation/. ACPICA BZ 750.
-
-AcpiXtract: Updated for Lint and other formatting changes. Close all open 
-files.
-
-----------------------------------------
-03 September 2009. Summary of changes for version 20090903:
-
-1) ACPI CA Core Subsystem:
-
-For Windows Vista compatibility, added the automatic execution of an _INI 
-method located at the namespace root (\_INI). This method is executed at 
-table load time. This support is in addition to the automatic execution of 
-\_SB._INI. Lin Ming.
-
-Fixed a possible memory leak in the interpreter for AML package objects if 
-the package initializer list is longer than the defined size of the package. 
-This apparently can only happen if the BIOS changes the package size on the 
-fly (seen in a _PSS object), as ASL compilers do not allow this. The 
-interpreter will truncate the package to the defined size (and issue an error 
-message), but previously could leave the extra objects undeleted if they were 
-pre-created during the argument processing (such is the case if the package 
-consists of a number of sub-packages as in the _PSS.) ACPICA BZ 805.
-
-Fixed a problem seen when a Buffer or String is stored to itself via ASL. 
-This has been reported in the field. Previously, ACPICA would zero out the 
-buffer/string. Now, the operation is treated as a noop. Provides Windows 
-compatibility. ACPICA BZ 803. Lin Ming.
-
-Removed an extraneous error message for ASL constructs of the form 
-Store(LocalX,LocalX) when LocalX is uninitialized. These curious statements 
-are seen in many BIOSs and are once again treated as NOOPs and no error is 
-emitted when they are encountered. ACPICA BZ 785.
-
-Fixed an extraneous warning message if a _DSM reserved method returns a 
-Package object. _DSM can return any type of object, so validation on the 
-return type cannot be performed. ACPICA BZ 802.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  85.5K Code, 18.0K Data, 103.5K Total
-    Debug Version:     161.6K Code, 50.9K Data, 212.5K Total
-  Current Release:
-    Non-Debug Version:  85.6K Code, 18.0K Data, 103.6K Total
-    Debug Version:     161.7K Code, 50.9K Data, 212.6K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-iASL: Fixed a problem with the use of the Alias operator and Resource 
-Templates. The correct alias is now constructed and no error is emitted. 
-ACPICA BZ 738.
-
-iASL: Implemented the -I option to specify additional search directories for 
-include files. Allows multiple additional search paths for include files. 
-Directories are searched in the order specified on the command line (after 
-the local directory is searched.) ACPICA BZ 800.
-
-iASL: Fixed a problem where the full pathname for include files was not 
-emitted for warnings/errors. This caused the IDE support to not work 
-properly. ACPICA BZ 765.
-
-iASL: Implemented the -@ option to specify a Windows-style response file 
-containing additional command line options. ACPICA BZ 801.
-
-AcpiExec: Added support to load multiple AML files simultaneously (such as a 
-DSDT and multiple SSDTs). Also added support for wildcards within the AML 
-pathname. These features allow all machine tables to be easily loaded and 
-debugged together. ACPICA BZ 804.
-
-Disassembler: Added missing support for disassembly of HEST table Error Bank 
-subtables. 
-
-----------------------------------------
-30 July 2009. Summary of changes for version 20090730:
-
-The ACPI 4.0 implementation for ACPICA is complete with this release.
-
-1) ACPI CA Core Subsystem:
-
-ACPI 4.0: Added header file support for all new and changed ACPI tables. 
-Completely new tables are: IBFT, IVRS, MSCT, and WAET. Tables that are new 
-for ACPI 4.0, but have previously been supported in ACPICA are: CPEP, BERT, 
-EINJ, ERST, and HEST. Other newly supported tables are: UEFI and WDAT. There 
-have been some ACPI 4.0 changes to other existing tables. Split the large 
-actbl1.h header into the existing actbl2.h header. ACPICA BZ 774.
-
-ACPI 4.0: Implemented predefined name validation for all new names. There are 
-31 new names in ACPI 4.0. The predefined validation module was split into two 
-files. The new file is namespace/nsrepair.c. ACPICA BZ 770.
-
-Implemented support for so-called "module-level executable code". This is 
-executable AML code that exists outside of any control method and is intended 
-to be executed at table load time. Although illegal since ACPI 2.0, this type 
-of code still exists and is apparently still being created. Blocks of this 
-code are now detected and executed as intended. Currently, the code blocks 
-must exist under either an If, Else, or While construct; these are the 
-typical cases seen in the field. ACPICA BZ 762. Lin Ming.
-
-Implemented an automatic dynamic repair for predefined names that return 
-nested Package objects. This applies to predefined names that are defined to 
-return a variable-length Package of sub-packages. If the number of sub-
-packages is one, BIOS code is occasionally seen that creates a simple single 
-package with no sub-packages. This code attempts to fix the problem by 
-wrapping a new package object around the existing package. These methods can 
-be repaired: _ALR, _CSD, _HPX, _MLS, _PRT, _PSS, _TRT, and _TSS. ACPICA BZ 
-790.
-
-Fixed a regression introduced in 20090625 for the AcpiGetDevices interface. 
-The _HID/_CID matching was broken and no longer matched IDs correctly. ACPICA 
-BZ 793.
-
-Fixed a problem with AcpiReset where the reset would silently fail if the 
-register was one of the protected I/O ports. AcpiReset now bypasses the port 
-validation mechanism. This may eventually be driven into the AcpiRead/Write 
-interfaces.
-
-Fixed a regression related to the recent update of the AcpiRead/Write 
-interfaces. A sleep/suspend could fail if the optional PM2 Control register 
-does not exist during an attempt to write the Bus Master Arbitration bit. 
-(However, some hosts already delete the code that writes this bit, and the 
-code may in fact be obsolete at this date.) ACPICA BZ 799.
-
-Fixed a problem where AcpiTerminate could fault if inadvertently called twice 
-in succession. ACPICA BZ 795.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  84.7K Code, 17.8K Data, 102.5K Total
-    Debug Version:     160.5K Code, 50.6K Data, 211.1K Total
-  Current Release:
-    Non-Debug Version:  85.5K Code, 18.0K Data, 103.5K Total
-    Debug Version:     161.6K Code, 50.9K Data, 212.5K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-ACPI 4.0: Implemented disassembler support for all new ACPI tables and 
-changes to existing tables. ACPICA BZ 775.
-
-----------------------------------------
-25 June 2009. Summary of changes for version 20090625:
-
-The ACPI 4.0 Specification was released on June 16 and is available at 
-www.acpi.info. ACPICA implementation of ACPI 4.0 is underway and will 
-continue for the next few releases.
-
-1) ACPI CA Core Subsystem:
-
-ACPI 4.0: Implemented interpreter support for the IPMI operation region 
-address space. Includes support for bi-directional data buffers and an IPMI 
-address space handler (to be installed by an IPMI device driver.) ACPICA BZ 
-773. Lin Ming.
-
-ACPI 4.0: Added changes for existing ACPI tables - FACS and SRAT. Includes 
-support in both the header files and the disassembler.
-
-Completed a major update for the AcpiGetObjectInfo external interface. 
-Changes include:
- - Support for variable, unlimited length HID, UID, and CID strings.
- - Support Processor objects the same as Devices (HID,UID,CID,ADR,STA, etc.)
- - Call the _SxW power methods on behalf of a device object.
- - Determine if a device is a PCI root bridge.
- - Change the ACPI_BUFFER parameter to ACPI_DEVICE_INFO.
-These changes will require an update to all callers of this interface. See 
-the updated ACPICA Programmer Reference for details. One new source file has 
-been added - utilities/utids.c. ACPICA BZ 368, 780.
-
-Updated the AcpiRead and AcpiWrite external interfaces to support 64-bit 
-transfers. The Value parameter has been extended from 32 bits to 64 bits in 
-order to support new ACPI 4.0 tables. These changes will require an update to 
-all callers of these interfaces. See the ACPICA Programmer Reference for 
-details. ACPICA BZ 768.
-
-Fixed several problems with AcpiAttachData. The handler was not invoked when 
-the host node was deleted. The data sub-object was not automatically deleted 
-when the host node was deleted. The interface to the handler had an unused 
-parameter, this was removed. ACPICA BZ 778.
-
-Enhanced the function that dumps ACPI table headers. All non-printable 
-characters in the string fields are now replaced with '?' (Signature, OemId, 
-OemTableId, and CompilerId.) ACPI tables with non-printable characters in 
-these fields are occasionally seen in the field. ACPICA BZ 788.
-
-Fixed a problem with predefined method repair code where the code that 
-attempts to repair/convert an object of incorrect type is only executed on 
-the first time the predefined method is called. The mechanism that disables 
-warnings on subsequent calls was interfering with the repair mechanism. 
-ACPICA BZ 781.
-
-Fixed a possible memory leak in the predefined validation/repair code when a 
-buffer is automatically converted to an expected string object.
-
-Removed obsolete 16-bit files from the distribution and from the current git 
-tree head. ACPICA BZ 776.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  83.4K Code, 17.5K Data, 100.9K Total
-    Debug Version:     158.9K Code, 50.0K Data, 208.9K Total
-  Current Release:
-    Non-Debug Version:  84.7K Code, 17.8K Data, 102.5K Total
-    Debug Version:     160.5K Code, 50.6K Data, 211.1K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-ACPI 4.0: iASL and Disassembler - implemented support for the new IPMI 
-operation region keyword. ACPICA BZ 771, 772. Lin Ming.
-
-ACPI 4.0: iASL - implemented compile-time validation support for all new 
-predefined names and control methods (31 total). ACPICA BZ 769.
-
-----------------------------------------
-21 May 2009. Summary of changes for version 20090521:
-
-1) ACPI CA Core Subsystem:
-
-Disabled the preservation of the SCI enable bit in the PM1 control register. 
-The SCI enable bit (bit 0, SCI_EN) is defined by the ACPI specification to be 
-a "preserved" bit - "OSPM always preserves this bit position", section 
-4.7.3.2.1. However, some machines fail if this bit is in fact preserved 
-because the bit needs to be explicitly set by the OS as a workaround. No 
-machines fail if the bit is not preserved. Therefore, ACPICA no longer 
-attempts to preserve this bit.
-
-Fixed a problem in AcpiRsGetPciRoutingTableLength where an invalid or 
-incorrectly formed _PRT package could cause a fault. Added validation to 
-ensure that each package element is actually a sub-package.
-
-Implemented a new interface to install or override a single control method, 
-AcpiInstallMethod. This interface is useful when debugging in order to repair 
-an existing method or to install a missing method without having to override 
-the entire ACPI table. See the ACPICA Programmer Reference for use and 
-examples. Lin Ming, Bob Moore.
-
-Fixed several reference count issues with the DdbHandle object that is 
-created from a Load or LoadTable operator. Prevent premature deletion of the 
-object. Also, mark the object as invalid once the table has been unloaded. 
-This is needed because the handle itself may not be deleted after the table 
-unload, depending on whether it has been stored in a named object by the 
-caller. Lin Ming.
-
-Fixed a problem with Mutex Sync Levels. Fixed a problem where if multiple 
-mutexes of the same sync level are acquired but then not released in strict 
-opposite order, the internally maintained Current Sync Level becomes confused 
-and can cause subsequent execution errors. ACPICA BZ 471.
-
-Changed the allowable release order for ASL mutex objects. The ACPI 4.0 
-specification has been changed to make the SyncLevel for mutex objects more 
-useful. When releasing a mutex, the SyncLevel of the mutex must now be the 
-same as the current sync level. This makes more sense than the previous rule 
-(SyncLevel less than or equal). This change updates the code to match the 
-specification.
-
-Fixed a problem with the local version of the AcpiOsPurgeCache function. The 
-(local) cache must be locked during all cache object deletions. Andrew 
-Baumann.
-
-Updated the Load operator to use operation region interfaces. This replaces 
-direct memory mapping with region access calls. Now, all region accesses go 
-through the installed region handler as they should.
-
-Simplified and optimized the NsGetNextNode function. Reduced parameter count 
-and reduced code for this frequently used function.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  82.8K Code, 17.5K Data, 100.3K Total
-    Debug Version:     158.0K Code, 49.9K Data, 207.9K Total
-  Current Release:
-    Non-Debug Version:  83.4K Code, 17.5K Data, 100.9K Total
-    Debug Version:     158.9K Code, 50.0K Data, 208.9K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Fixed some issues with DMAR, HEST, MADT tables. Some problems 
-with sub-table disassembly and handling invalid sub-tables. Attempt recovery 
-after an invalid sub-table ID.
-
-----------------------------------------
-22 April 2009. Summary of changes for version 20090422:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a compatibility issue with the recently released I/O port protection 
-mechanism. For windows compatibility, 1) On a port protection violation, 
-simply ignore the request and do not return an exception (allow the control 
-method to continue execution.) 2) If only part of the request overlaps a 
-protected port, read/write the individual ports that are not protected. Linux 
-BZ 13036. Lin Ming
-
-Enhanced the execution of the ASL/AML BreakPoint operator so that it actually 
-breaks into the AML debugger if the debugger is present. This matches the 
-ACPI-defined behavior.
-
-Fixed several possible warnings related to the use of the configurable 
-ACPI_THREAD_ID. This type can now be configured as either an integer or a 
-pointer with no warnings. Also fixes several warnings in printf-like 
-statements for the 64-bit build when the type is configured as a pointer. 
-ACPICA BZ 766, 767.
-
-Fixed a number of possible warnings when compiling with gcc 4+ (depending on 
-warning options.) Examples include printf formats, aliasing, unused globals, 
-missing prototypes, missing switch default statements, use of non-ANSI 
-library functions, use of non-ANSI constructs. See generate/unix/Makefile for 
-a list of warning options used with gcc 3 and 4. ACPICA BZ 735.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  82.6K Code, 17.6K Data, 100.2K Total
-    Debug Version:     157.7K Code, 49.9K Data, 207.6K Total
-  Current Release:
-    Non-Debug Version:  82.8K Code, 17.5K Data, 100.3K Total
-    Debug Version:     158.0K Code, 49.9K Data, 207.9K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-iASL: Fixed a generation warning from Bison 2.3 and fixed several warnings on 
-the 64-bit build.
-
-iASL: Fixed a problem where the Unix/Linux versions of the compiler could not 
-correctly digest Windows/DOS formatted files (with CR/LF).
-
-iASL: Added a new option for "quiet mode" (-va) that produces only the 
-compilation summary, not individual errors and warnings. Useful for large 
-batch compilations.
-
-AcpiExec: Implemented a new option (-z) to enable a forced semaphore/mutex 
-timeout that can be used to detect hang conditions during execution of AML 
-code (includes both internal semaphores and AML-defined mutexes and events.)
-
-Added new makefiles for the generation of acpica in a generic unix-like 
-environment. These makefiles are intended to generate the acpica tools and 
-utilities from the original acpica git source tree structure.
-
-Test Suites: Updated and cleaned up the documentation files. Updated the 
-copyrights to 2009, affecting all source files. Use the new version of iASL 
-with quiet mode. Increased the number of available semaphores in the Windows 
-OSL, allowing the aslts to execute fully on Windows. For the Unix OSL, added 
-an alternate implementation of the semaphore timeout to allow aslts to 
-execute fully on Cygwin.
-
-----------------------------------------
-20 March 2009. Summary of changes for version 20090320:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a possible race condition between AcpiWalkNamespace and dynamic table 
-unloads. Added a reader/writer locking mechanism to allow multiple concurrent 
-namespace walks (readers), but block a dynamic table unload until it can gain 
-exclusive write access to the namespace. This fixes a problem where a table 
-unload could (possibly catastrophically) delete the portion of the namespace 
-that is currently being examined by a walk. Adds a new file, utlock.c, that 
-implements the reader/writer lock mechanism. ACPICA BZ 749.
-
-Fixed a regression introduced in version 20090220 where a change to the FADT 
-handling could cause the ACPICA subsystem to access non-existent I/O ports.
-
-Modified the handling of FADT register and table (FACS/DSDT) addresses. The 
-FADT can contain both 32-bit and 64-bit versions of these addresses. 
-Previously, the 64-bit versions were favored, meaning that if both 32 and 64 
-versions were valid, but not equal, the 64-bit version was used. This was 
-found to cause some machines to fail. Now, in this case, the 32-bit version 
-is used instead. This now matches the Windows behavior.
-
-Implemented a new mechanism to protect certain I/O ports. Provides Microsoft 
-compatibility and protects the standard PC I/O ports from access via AML 
-code. Adds a new file, hwvalid.c
-
-Fixed a possible extraneous warning message from the FADT support. The 
-message warns of a 32/64 length mismatch between the legacy and GAS 
-definitions for a register.
-
-Removed the obsolete AcpiOsValidateAddress OSL interface. This interface is 
-made obsolete by the port protection mechanism above. It was previously used 
-to validate the entire address range of an operation region, which could be 
-incorrect if the range included illegal ports, but fields within the 
-operation region did not actually access those ports. Validation is now 
-performed on a per-field basis instead of the entire region.
-
-Modified the handling of the PM1 Status Register ignored bit (bit 11.) 
-Ignored bits must be "preserved" according to the ACPI spec. Usually, this 
-means a read/modify/write when writing to the register. However, for status 
-registers, writing a one means clear the event. Writing a zero means preserve 
-the event (do not clear.) This behavior is clarified in the ACPI 4.0 spec, 
-and the ACPICA code now simply always writes a zero to the ignored bit.
-
-Modified the handling of ignored bits for the PM1 A/B Control Registers. As 
-per the ACPI specification, for the control registers, preserve 
-(read/modify/write) all bits that are defined as either reserved or ignored.
-
-Updated the handling of write-only bits in the PM1 A/B Control Registers. 
-When reading the register, zero the write-only bits as per the ACPI spec. 
-ACPICA BZ 443. Lin Ming.
-
-Removed "Linux" from the list of supported _OSI strings. Linux no longer 
-wants to reply true to this request. The Windows strings are the only paths 
-through the AML that are tested and known to work properly.
-
-  Previous Release:
-    Non-Debug Version:  82.0K Code, 17.5K Data,  99.5K Total
-    Debug Version:     156.9K Code, 49.8K Data, 206.7K Total
-  Current Release:
-    Non-Debug Version:  82.6K Code, 17.6K Data, 100.2K Total
-    Debug Version:     157.7K Code, 49.9K Data, 207.6K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Acpiexec: Split the large aeexec.c file into two new files, aehandlers.c and 
-aetables.c
-
-----------------------------------------
-20 February 2009. Summary of changes for version 20090220:
-
-1) ACPI CA Core Subsystem:
-
-Optimized the ACPI register locking. Removed locking for reads from the ACPI 
-bit registers in PM1 Status, Enable, Control, and PM2 Control. The lock is 
-not required when reading the single-bit registers. The 
-AcpiGetRegisterUnlocked function is no longer needed and has been removed. 
-This will improve performance for reads on these registers. ACPICA BZ 760.
-
-Fixed the parameter validation for AcpiRead/Write. Now return 
-AE_BAD_PARAMETER if the input register pointer is null, and AE_BAD_ADDRESS if 
-the register has an address of zero. Previously, these cases simply returned 
-AE_OK. For optional registers such as PM1B status/enable/control, the caller 
-should check for a valid register address before calling. ACPICA BZ 748.
-
-Renamed the external ACPI bit register access functions. Renamed 
-AcpiGetRegister and AcpiSetRegister to clarify the purpose of these 
-functions. The new names are AcpiReadBitRegister and AcpiWriteBitRegister. 
-Also, restructured the code for these functions by simplifying the code path 
-and condensing duplicate code to reduce code size.
-
-Added new functions to transparently handle the possibly split PM1 A/B 
-registers. AcpiHwReadMultiple and AcpiHwWriteMultiple. These two functions 
-now handle the split registers for PM1 Status, Enable, and Control. ACPICA BZ 
-746.
-
-Added a function to handle the PM1 control registers, AcpiHwWritePm1Control. 
-This function writes both of the PM1 control registers (A/B). These registers 
-are different than the PM1 A/B status and enable registers in that different 
-values can be written to the A/B registers. Most notably, the SLP_TYP bits 
-can be different, as per the values returned from the _Sx predefined methods.
-
-Removed an extra register write within AcpiHwClearAcpiStatus. This function 
-was writing an optional PM1B status register twice. The existing call to the 
-low-level AcpiHwRegisterWrite automatically handles a possibly split PM1 A/B 
-register. ACPICA BZ 751.
-
-Split out the PM1 Status registers from the FADT. Added new globals for these 
-registers (A/B), similar to the way the PM1 Enable registers are handled. 
-Instead of overloading the FADT Event Register blocks. This makes the code 
-clearer and less prone to error.
-
-Fixed the warning message for when the platform contains too many ACPI tables 
-for the default size of the global root table data structure. The calculation 
-for the truncation value was incorrect.
-
-Removed the ACPI_GET_OBJECT_TYPE macro. Removed all instances of this 
-obsolete macro, since it is now a simple reference to ->common.type. There 
-were about 150 invocations of the macro across 41 files. ACPICA BZ 755.
-
-Removed the redundant ACPI_BITREG_SLEEP_TYPE_B. This type is the same as 
-TYPE_A. Removed this and all related instances. Renamed SLEEP_TYPE_A to 
-simply SLEEP_TYPE. ACPICA BZ 754.
-
-Conditionally compile the AcpiSetFirmwareWakingVector64 function. This 
-function is only needed on 64-bit host operating systems and is thus not 
-included for 32-bit hosts.
-
-Debug output: print the input and result for invocations of the _OSI reserved 
-control method via the ACPI_LV_INFO debug level. Also, reduced some of the 
-verbosity of this debug level. Len Brown.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  82.3K Code, 17.5K Data,  99.8K Total
-    Debug Version:     157.3K Code, 49.8K Data, 207.1K Total
-  Current Release:
-    Non-Debug Version:  82.0K Code, 17.5K Data,  99.5K Total
-    Debug Version:     156.9K Code, 49.8K Data, 206.7K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Decode the FADT PM_Profile field. Emit ascii names for the 
-various legal performance profiles.
-
-----------------------------------------
-23 January 2009. Summary of changes for version 20090123:
-
-1) ACPI CA Core Subsystem:
-
-Added the 2009 copyright to all module headers and signons. This affects 
-virtually every file in the ACPICA core subsystem, the iASL compiler, and 
-the tools/utilities.
-
-Implemented a change to allow the host to override any ACPI table, including 
-dynamically loaded tables. Previously, only the DSDT could be replaced by the 
-host. With this change, the AcpiOsTableOverride interface is called for each 
-table found in the RSDT/XSDT during ACPICA initialization, and also whenever 
-a table is dynamically loaded via the AML Load operator.
-
-Updated FADT flag definitions, especially the Boot Architecture flags.
-
-Debugger: For the Find command, automatically pad the input ACPI name with 
-underscores if the name is shorter than 4 characters. This enables a match 
-with the actual namespace entry which is itself padded with underscores.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  82.3K Code, 17.4K Data,  99.7K Total
-    Debug Version:     157.1K Code, 49.7K Data, 206.8K Total
-  Current Release:
-    Non-Debug Version:  82.3K Code, 17.5K Data,  99.8K Total
-    Debug Version:     157.3K Code, 49.8K Data, 207.1K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fix build error under Bison-2.4.
-
-Dissasembler: Enhanced FADT support. Added decoding of the Boot Architecture 
-flags. Now decode all flags, regardless of the FADT version. Flag output 
-includes the FADT version which first defined each flag.
-
-The iASL -g option now dumps the RSDT to a file (in addition to the FADT and 
-DSDT). Windows only.
-
-----------------------------------------
-04 December 2008. Summary of changes for version 20081204:
-
-1) ACPI CA Core Subsystem:
-
-The ACPICA Programmer Reference has been completely updated and revamped for 
-this release. This includes updates to the external interfaces, OSL 
-interfaces, the overview sections, and the debugger reference.
-
-Several new ACPICA interfaces have been implemented and documented in the 
-programmer reference:
-AcpiReset - Writes the reset value to the FADT-defined reset register.
-AcpiDisableAllGpes - Disable all available GPEs.
-AcpiEnableAllRuntimeGpes - Enable all available runtime GPEs.
-AcpiGetGpeDevice - Get the GPE block device associated with a GPE.
-AcpiGbl_CurrentGpeCount - Tracks the current number of available GPEs.
-AcpiRead - Low-level read ACPI register (was HwLowLevelRead.)
-AcpiWrite - Low-level write ACPI register (was HwLowLevelWrite.)
-
-Most of the public ACPI hardware-related interfaces have been moved to a new 
-file, components/hardware/hwxface.c
-
-Enhanced the FADT parsing and low-level ACPI register access: The ACPI 
-register lengths within the FADT are now used, and the low level ACPI 
-register access no longer hardcodes the ACPI register lengths. Given that 
-there may be some risk in actually trusting the FADT register lengths, a run-
-time option was added to fall back to the default hardcoded lengths if the 
-FADT proves to contain incorrect values - UseDefaultRegisterWidths. This 
-option is set to true for now, and a warning is issued if a suspicious FADT 
-register length is overridden with the default value.
-
-Fixed a reference count issue in NsRepairObject. This problem was introduced 
-in version 20081031 as part of a fix to repair Buffer objects within 
-Packages. Lin Ming.
-
-Added semaphore support to the Linux/Unix application OS-services layer 
-(OSL). ACPICA BZ 448. Lin Ming.
-
-Added the ACPI_MUTEX_TYPE configuration option to select whether mutexes will 
-be implemented in the OSL, or will binary semaphores be used instead.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  81.7K Code, 17.3K Data,  99.0K Total
-    Debug Version:     156.4K Code, 49.4K Data, 205.8K Total
-  Current Release:
-    Non-Debug Version:  82.3K Code, 17.4K Data,  99.7K Total
-    Debug Version:     157.1K Code, 49.7K Data, 206.8K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-iASL: Completed the '-e' option to include additional ACPI tables in order to 
-aid with disassembly and External statement generation. ACPICA BZ 742. Lin 
-Ming.
-
-iASL: Removed the "named object in while loop" error. The compiler cannot 
-determine how many times a loop will execute. ACPICA BZ 730.
-
-Disassembler: Implemented support for FADT revision 2 (MS extension). ACPICA 
-BZ 743.
-
-Disassembler: Updates for several ACPI data tables (HEST, EINJ, and MCFG).
-
-----------------------------------------
-31 October 2008. Summary of changes for version 20081031:
-
-1) ACPI CA Core Subsystem:
-
-Restructured the ACPICA header files into public/private. acpi.h now includes 
-only the "public" acpica headers. All other acpica headers are "private" and 
-should not be included by acpica users. One new file, accommon.h is used to 
-include the commonly used private headers for acpica code generation. Future 
-plans include moving all private headers to a new subdirectory.
-
-Implemented an automatic Buffer->String return value conversion for 
-predefined ACPI methods. For these methods (such as _BIF), added automatic 
-conversion for return objects that are required to be a String, but a Buffer 
-was found instead. This can happen when reading string battery data from an 
-operation region, because it used to be difficult to convert the data from 
-buffer to string from within the ASL. Ensures that the host OS is provided 
-with a valid null-terminated string. Linux BZ 11822.
-
-Updated the FACS waking vector interfaces. Split AcpiSetFirmwareWakingVector 
-into two: one for the 32-bit vector, another for the 64-bit vector. This is 
-required because the host OS must setup the wake much differently for each 
-vector (real vs. protected mode, etc.) and the interface itself should not be 
-deciding which vector to use. Also, eliminated the GetFirmwareWakingVector 
-interface, as it served no purpose (only the firmware reads the vector, OS 
-only writes the vector.) ACPICA BZ 731.
-
-Implemented a mechanism to escape infinite AML While() loops. Added a loop 
-counter to force exit from AML While loops if the count becomes too large. 
-This can occur in poorly written AML when the hardware does not respond 
-within a while loop and the loop does not implement a timeout. The maximum 
-loop count is configurable. A new exception code is returned when a loop is 
-broken, AE_AML_INFINITE_LOOP. Alexey Starikovskiy, Bob Moore.
-
-Optimized the execution of AML While loops. Previously, a control state 
-object was allocated and freed for each execution of the loop. The 
-optimization is to simply reuse the control state for each iteration. This 
-speeds up the raw loop execution time by about 5%.
-
-Enhanced the implicit return mechanism. For Windows compatibility, return an 
-implicit integer of value zero for methods that contain no executable code. 
-Such methods are seen in the field as stubs (presumably), and can cause 
-drivers to fail if they expect a return value. Lin Ming.
-
-Allow multiple backslashes as root prefixes in namepaths. In a fully 
-qualified namepath, allow multiple backslash prefixes. This can happen (and 
-is seen in the field) because of the use of a double-backslash in strings 
-(since backslash is the escape character) causing confusion. ACPICA BZ 739 
-Lin Ming.
-
-Emit a warning if two different FACS or DSDT tables are discovered in the 
-FADT. Checks if there are two valid but different addresses for the FACS and 
-DSDT within the FADT (mismatch between the 32-bit and 64-bit fields.)
-
-Consolidated the method argument count validation code. Merged the code that 
-validates control method argument counts into the predefined validation 
-module. Eliminates possible multiple warnings for incorrect argument counts.
-
-Implemented ACPICA example code. Includes code for ACPICA initialization, 
-handler installation, and calling a control method. Available at 
-source/tools/examples.
-
-Added a global pointer for FACS table to simplify internal FACS access. Use 
-the global pointer instead of using AcpiGetTableByIndex for each FACS access. 
-This simplifies the code for the Global Lock and the Firmware Waking 
-Vector(s).
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  81.2K Code, 17.0K Data,  98.2K Total
-    Debug Version:     155.8K Code, 49.1K Data, 204.9K Total
-  Current Release:
-    Non-Debug Version:  81.7K Code, 17.3K Data,  99.0K Total
-    Debug Version:     156.4K Code, 49.4K Data, 205.8K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-iASL: Improved disassembly of external method calls. Added the -e option to 
-allow the inclusion of additional ACPI tables to help with the disassembly of 
-method invocations and the generation of external declarations during the 
-disassembly. Certain external method invocations cannot be disassembled 
-properly without the actual declaration of the method. Use the -e option to 
-include the table where the external method(s) are actually declared. Most 
-useful for disassembling SSDTs that make method calls back to the master 
-DSDT. Lin Ming. Example: To disassemble an SSDT with calls to DSDT:  iasl -d 
--e dsdt.aml ssdt1.aml
-
-iASL: Fix to allow references to aliases within ASL namepaths. Fixes a 
-problem where the use of an alias within a namepath would result in a not 
-found error or cause the compiler to fault. Also now allows forward 
-references from the Alias operator itself. ACPICA BZ 738.
-
-----------------------------------------
-26 September 2008. Summary of changes for version 20080926:
-
-1) ACPI CA Core Subsystem:
-
-Designed and implemented a mechanism to validate predefined ACPI methods and 
-objects. This code validates the predefined ACPI objects (objects whose names 
-start with underscore) that appear in the namespace, at the time they are 
-evaluated. The argument count and the type of the returned object are 
-validated against the ACPI specification. The purpose of this validation is 
-to detect problems with the BIOS-implemented predefined ACPI objects before 
-the results are returned to the ACPI-related drivers. Future enhancements may 
-include actual repair of incorrect return objects where possible. Two new 
-files are nspredef.c and acpredef.h.
-
-Fixed a fault in the AML parser if a memory allocation fails during the Op 
-completion routine AcpiPsCompleteThisOp. Lin Ming. ACPICA BZ 492.
-
-Fixed an issue with implicit return compatibility. This change improves the 
-implicit return mechanism to be more compatible with the MS interpreter. Lin 
-Ming, ACPICA BZ 349.
-
-Implemented support for zero-length buffer-to-string conversions. Allow zero 
-length strings during interpreter buffer-to-string conversions. For example, 
-during the ToDecimalString and ToHexString operators, as well as implicit 
-conversions. Fiodor Suietov, ACPICA BZ 585.
-
-Fixed two possible memory leaks in the error exit paths of 
-AcpiUtUpdateObjectReference and AcpiUtWalkPackageTree. These functions are 
-similar in that they use a stack of state objects in order to eliminate 
-recursion. The stack must be fully unwound and deallocated if an error 
-occurs. Lin Ming. ACPICA BZ 383.
-
-Removed the unused ACPI_BITREG_WAKE_ENABLE definition and entry in the global 
-ACPI register table. This bit does not exist and is unused. Lin Ming, Bob 
-Moore ACPICA BZ 442.
-
-Removed the obsolete version number in module headers. Removed the 
-"$Revision" number that appeared in each module header. This version number 
-was useful under SourceSafe and CVS, but has no meaning under git. It is not 
-only incorrect, it could also be misleading.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.7K Code, 16.4K Data,  96.1K Total
-    Debug Version:     153.7K Code, 48.2K Data, 201.9K Total
-  Current Release:
-    Non-Debug Version:  81.2K Code, 17.0K Data,  98.2K Total
-    Debug Version:     155.8K Code, 49.1K Data, 204.9K Total
-
-----------------------------------------
-29 August 2008. Summary of changes for version 20080829:
-
-1) ACPI CA Core Subsystem:
-
-Completed a major cleanup of the internal ACPI_OPERAND_OBJECT of type 
-Reference. Changes include the elimination of cheating on the Object field 
-for the DdbHandle subtype, addition of a reference class field to 
-differentiate the various reference types (instead of an AML opcode), and the 
-cleanup of debug output for this object. Lin Ming, Bob Moore. BZ 723
-
-Reduce an error to a warning for an incorrect method argument count. 
-Previously aborted with an error if too few arguments were passed to a 
-control method via the external ACPICA interface. Now issue a warning instead 
-and continue. Handles the case where the method inadvertently declares too 
-many arguments, but does not actually use the extra ones. Applies mainly to 
-the predefined methods. Lin Ming. Linux BZ 11032.
-
-Disallow the evaluation of named object types with no intrinsic value. Return 
-AE_TYPE for objects that have no value and therefore evaluation is undefined: 
-Device, Event, Mutex, Region, Thermal, and Scope. Previously, evaluation of 
-these types were allowed, but an exception would be generated at some point 
-during the evaluation. Now, the error is generated up front.
-
-Fixed a possible memory leak in the AcpiNsGetExternalPathname function 
-(nsnames.c). Fixes a leak in the error exit path.
-
-Removed the obsolete debug levels ACPI_DB_WARN and ACPI_DB_ERROR. These debug 
-levels were made obsolete by the ACPI_WARNING, ACPI_ERROR, and ACPI_EXCEPTION 
-interfaces. Also added ACPI_DB_EVENTS to correspond with the existing 
-ACPI_LV_EVENTS.
-
-Removed obsolete and/or unused exception codes from the acexcep.h header. 
-There is the possibility that certain device drivers may be affected if they 
-use any of these exceptions.
-
-The ACPICA documentation has been added to the public git source tree, under 
-acpica/documents. Included are the ACPICA programmer reference, the iASL 
-compiler reference, and the changes.txt release logfile.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.7K Code, 16.4K Data,  96.1K Total
-    Debug Version:     153.9K Code, 48.4K Data, 202.3K Total
-  Current Release:
-    Non-Debug Version:  79.7K Code, 16.4K Data,  96.1K Total
-    Debug Version:     153.7K Code, 48.2K Data, 201.9K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Allow multiple argument counts for the predefined _SCP method. ACPI 3.0 
-defines _SCP with 3 arguments. Previous versions defined it with only 1 
-argument. iASL now allows both definitions.
-
-iASL/disassembler: avoid infinite loop on bad ACPI tables. Check for zero-
-length subtables when disassembling ACPI tables. Also fixed a couple of 
-errors where a full 16-bit table type field was not extracted from the input 
-properly.
-
-acpisrc: Improve comment counting mechanism for generating source code 
-statistics. Count first and last lines of multi-line comments as whitespace, 
-not comment lines. Handle Linux legal header in addition to standard acpica 
-header.
-
-----------------------------------------
-
-29 July 2008. Summary of changes for version 20080729:
-
-This release is available at http://acpica.org/downloads
-Direct git access via http://www.acpica.org/repos/acpica.git
-
-1) ACPI CA Core Subsystem:
-
-Fix a possible deadlock in the GPE dispatch. Remove call to 
-AcpiHwDisableAllGpes during wake in AcpiEvGpeDispatch. This call will attempt 
-to acquire the GPE lock but can deadlock since the GPE lock is already held 
-at dispatch time. This code was introduced in version 20060831 as a response 
-to Linux BZ 6881 and has since been removed from Linux.
-
-Add a function to dereference returned reference objects. Examines the return 
-object from a call to AcpiEvaluateObject. Any Index or RefOf references are 
-automatically dereferenced in an attempt to return something useful (these 
-reference types cannot be converted into an external ACPI_OBJECT.) Provides 
-MS compatibility. Lin Ming, Bob Moore. Linux BZ 11105
-
-x2APIC support: changes for MADT and SRAT ACPI tables. There are 2 new 
-subtables for the MADT and one new subtable for the SRAT. Includes 
-disassembler and AcpiSrc support. Data from the Intel 64 Architecture x2APIC 
-Specification, June 2008.
-
-Additional error checking for pathname utilities. Add error check after all 
-calls to AcpiNsGetPathnameLength. Add status return from 
-AcpiNsBuildExternalPath and check after all calls. Add parameter validation 
-to AcpiUtInitializeBuffer. Reported by and initial patch by Ingo Molnar.
-
-Return status from the global init function AcpiUtGlobalInitialize. This is 
-used by both the kernel subsystem and the utilities such as iASL compiler. 
-The function could possibly fail when the caches are initialized. Yang Yi.
-
-Add a function to decode reference object types to strings. Created for 
-improved error messages. 
-
-Improve object conversion error messages. Better error messages during object 
-conversion from internal to the external ACPI_OBJECT. Used for external calls 
-to AcpiEvaluateObject.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.6K Code, 16.2K Data,  95.8K Total
-    Debug Version:     153.5K Code, 48.2K Data, 201.7K Total
-  Current Release:
-    Non-Debug Version:  79.7K Code, 16.4K Data,  96.1K Total
-    Debug Version:     153.9K Code, 48.4K Data, 202.3K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Debugger: fix a possible hang when evaluating non-methods. Fixes a problem 
-introduced in version 20080701. If the object being evaluated (via execute 
-command) is not a method, the debugger can hang while trying to obtain non-
-existent parameters.
-
-iASL: relax error for using reserved "_T_x" identifiers. These names can 
-appear in a disassembled ASL file if they were emitted by the original 
-compiler. Instead of issuing an error or warning and forcing the user to 
-manually change these names, issue a remark instead.
-
-iASL: error if named object created in while loop. Emit an error if any named 
-object is created within a While loop. If allowed, this code will generate a 
-run-time error on the second iteration of the loop when an attempt is made to 
-create the same named object twice. ACPICA bugzilla 730.
-
-iASL: Support absolute pathnames for include files. Add support for absolute 
-pathnames within the Include operator. previously, only relative pathnames 
-were supported.
-
-iASL: Enforce minimum 1 interrupt in interrupt macro and Resource Descriptor. 
-The ACPI spec requires one interrupt minimum. BZ 423
-
-iASL: Handle a missing ResourceSource arg, with a present SourceIndex. 
-Handles the case for the Interrupt Resource Descriptor where
-the ResourceSource argument is omitted but ResourceSourceIndex
-is present. Now leave room for the Index. BZ 426
-
-iASL: Prevent error message if CondRefOf target does not exist. Fixes cases 
-where an error message is emitted if the target does not exist. BZ 516
-
-iASL: Fix broken -g option (get Windows ACPI tables). Fixes the -g option 
-(get ACPI tables on Windows). This was apparently broken in version 20070919.
-
-AcpiXtract: Handle EOF while extracting data. Correctly handle the case where 
-the EOF happens immediately after the last table in the input file. Print 
-completion message. Previously, no message was displayed in this case.
-
-----------------------------------------
-01 July 2008. Summary of changes for version 20080701:
-
-This release is available at http://acpica.org/downloads
-Direct git access via http://www.acpica.org/repos/acpica.git
-
-0) Git source tree / acpica.org
-
-Fixed a problem where a git-clone from http would not transfer the entire 
-source tree.
-
-1) ACPI CA Core Subsystem:
-
-Implemented a "careful" GPE disable in AcpiEvDisableGpe, only modify one 
-enable bit. Now performs a read-change-write of the enable register instead 
-of simply writing out the cached enable mask. This will prevent inadvertent 
-enabling of GPEs if a rogue GPE is received during initialization (before GPE 
-handlers are installed.)
-
-Implemented a copy for dynamically loaded tables. Previously, dynamically 
-loaded tables were simply mapped - but on some machines this memory is 
-corrupted after suspend. Now copy the table to a local buffer. For the 
-OpRegion case, added checksum verify. Use the table length from the table 
-header, not the region length. For the Buffer case, use the table length 
-also. Dennis Noordsij, Bob Moore. BZ 10734
-
-Fixed a problem where the same ACPI table could not be dynamically loaded and 
-unloaded more than once. Without this change, a table cannot be loaded again 
-once it has been loaded/unloaded one time. The current mechanism does not 
-unregister a table upon an unload. During a load, if the same table is found, 
-this no longer returns an exception. BZ 722
-
-Fixed a problem where the wrong descriptor length was calculated for the 
-EndTag descriptor in 64-bit mode. The "minimal" descriptors such as EndTag 
-are calculated as 12 bytes long, but the actual length in the internal 
-descriptor is 16 because of the round-up to 8 on the 64-bit build. Reported 
-by Linn Crosetto. BZ 728
-
-Fixed a possible memory leak in the Unload operator. The DdbHandle returned 
-by Load() did not have its reference count decremented during unload, leading 
-to a memory leak. Lin Ming. BZ 727
-
-Fixed a possible memory leak when deleting thermal/processor objects. Any 
-associated notify handlers (and objects) were not being deleted. Fiodor 
-Suietov. BZ 506
-
-Fixed the ordering of the ASCII names in the global mutex table to match the 
-actual mutex IDs. Used by AcpiUtGetMutexName, a function used for debug only. 
-Vegard Nossum. BZ 726
-
-Enhanced the AcpiGetObjectInfo interface to return the number of required 
-arguments if the object is a control method. Added this call to the debugger 
-so the proper number of default arguments are passed to a method. This 
-prevents a warning when executing methods from AcpiExec.
-
-Added a check for an invalid handle in AcpiGetObjectInfo. Return 
-AE_BAD_PARAMETER if input handle is invalid. BZ 474
-
-Fixed an extraneous warning from exconfig.c on the 64-bit build.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.3K Code, 16.2K Data,  95.5K Total
-    Debug Version:     153.0K Code, 48.2K Data, 201.2K Total
-  Current Release:
-    Non-Debug Version:  79.6K Code, 16.2K Data,  95.8K Total
-    Debug Version:     153.5K Code, 48.2K Data, 201.7K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-iASL: Added two missing ACPI reserved names. Added _MTP and _ASZ, both 
-resource descriptor names.
-
-iASL: Detect invalid ASCII characters in input (windows version). Removed the 
-"-CF" flag from the flex compile, enables correct detection of non-ASCII 
-characters in the input. BZ 441
-
-iASL: Eliminate warning when result of LoadTable is not used. Eliminate the 
-"result of operation not used" warning when the DDB handle returned from 
-LoadTable is not used. The warning is not needed. BZ 590
-
-AcpiExec: Add support for dynamic table load/unload. Now calls _CFG method to 
-pass address of table to the AML. Added option to disable OpRegion simulation 
-to allow creation of an OpRegion with a real address that was passed to _CFG. 
-All of this allows testing of the Load and Unload operators from AcpiExec.
-
-Debugger: update tables command for unloaded tables. Handle unloaded tables 
-and use the standard table header output routine.
-
-----------------------------------------
-09 June 2008. Summary of changes for version 20080609:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a workaround for reversed _PRT entries. A significant number of 
-BIOSs erroneously reverse the _PRT SourceName and the SourceIndex. This 
-change dynamically detects and repairs this problem. Provides compatibility 
-with MS ACPI. BZ 6859
-
-Simplified the internal ACPI hardware interfaces to eliminate the locking 
-flag parameter from Register Read/Write. Added a new external interface, 
-AcpiGetRegisterUnlocked.
-
-Fixed a problem where the invocation of a GPE control method could hang. This 
-was a regression introduced in 20080514. The new method argument count 
-validation mechanism can enter an infinite loop when a GPE method is 
-dispatched. Problem fixed by removing the obsolete code that passed GPE block 
-information to the notify handler via the control method parameter pointer.
-
-Fixed a problem where the _SST execution status was incorrectly returned to 
-the caller of AcpiEnterSleepStatePrep. This was a regression introduced in 
-20080514. _SST is optional and a NOT_FOUND exception should never be 
-returned. BZ 716
-
-Fixed a problem where a deleted object could be accessed from within the AML 
-parser. This was a regression introduced in version 20080123 as a fix for the 
-Unload operator. Lin Ming. BZ 10669
-
-Cleaned up the debug operand dump mechanism. Eliminated unnecessary operands 
-and eliminated the use of a negative index in a loop. Operands are now 
-displayed in the correct order, not backwards. This also fixes a regression 
-introduced in 20080514 on 64-bit systems where the elimination of 
-ACPI_NATIVE_UINT caused the negative index to go large and positive. BZ 715
-
-Fixed a possible memory leak in EvPciConfigRegionSetup where the error exit 
-path did not delete a locally allocated structure.
-
-Updated definitions for the DMAR and SRAT tables to synchronize with the 
-current specifications. Includes disassembler support.
-
-Fixed a problem in the mutex debug code (in utmutex.c) where an incorrect 
-loop termination value was used. Loop terminated on iteration early, missing 
-one mutex. Linn Crosetto
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.5K Code, 16.2K Data,  95.7K Total
-    Debug Version:     153.3K Code, 48.3K Data, 201.6K Total
-  Current Release:
-    Non-Debug Version:  79.3K Code, 16.2K Data,  95.5K Total
-    Debug Version:     153.0K Code, 48.2K Data, 201.2K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Implemented support for EisaId() within _CID objects. Now 
-disassemble integer _CID objects back to EisaId invocations, including 
-multiple integers within _CID packages. Includes single-step support for 
-debugger also.
-
-Disassembler: Added support for DMAR and SRAT table definition changes.
-
-----------------------------------------
-14 May 2008. Summary of changes for version 20080514:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where GPEs were enabled too early during the ACPICA 
-initialization. This could lead to "handler not installed" errors on some 
-machines. Moved GPE enable until after _REG/_STA/_INI methods are run. This 
-ensures that all operation regions and devices throughout the namespace have 
-been initialized before GPEs are enabled. Alexey Starikovskiy, BZ 9916.
-
-Implemented a change to the enter sleep code. Moved execution of the _GTS 
-method to just before setting sleep enable bit. The execution was moved from 
-AcpiEnterSleepStatePrep to AcpiEnterSleepState. _GTS is now executed 
-immediately before the SLP_EN bit is set, as per the ACPI specification. 
-Luming Yu, BZ 1653.
-
-Implemented a fix to disable unknown GPEs (2nd version). Now always disable 
-the GPE, even if ACPICA thinks that that it is already disabled. It is 
-possible that the AML or some other code has enabled the GPE unbeknownst to 
-the ACPICA code.
-
-Fixed a problem with the Field operator where zero-length fields would return 
-an AE_AML_NO_OPERAND exception during table load. Fix enables zero-length ASL 
-field declarations in Field(), BankField(), and IndexField(). BZ 10606.
-
-Implemented a fix for the Load operator, now load the table at the namespace 
-root. This reverts a change introduced in version 20071019. The table is now 
-loaded at the namespace root even though this goes against the ACPI 
-specification. This provides compatibility with other ACPI implementations. 
-The ACPI specification will be updated to reflect this in ACPI 4.0. Lin Ming.
-
-Fixed a problem where ACPICA would not Load() tables with unusual signatures. 
-Now ignore ACPI table signature for Load() operator. Only "SSDT" is 
-acceptable to the ACPI spec, but tables are seen with OEMx and null sigs. 
-Therefore, signature validation is worthless. Apparently MS ACPI accepts such 
-signatures, ACPICA must be compatible. BZ 10454.
-
-Fixed a possible negative array index in AcpiUtValidateException. Added NULL 
-fields to the exception string arrays to eliminate a -1 subtraction on the 
-SubStatus field.
-
-Updated the debug tracking macros to reduce overall code and data size. 
-Changed ACPI_MODULE_NAME and ACPI_FUNCTION_NAME to use arrays of strings 
-instead of pointers to static strings. Jan Beulich and Bob Moore.
-
-Implemented argument count checking in control method invocation via 
-AcpiEvaluateObject. Now emit an error if too few arguments, warning if too 
-many. This applies only to extern programmatic control method execution, not 
-method-to-method calls within the AML. Lin Ming.
-
-Eliminated the ACPI_NATIVE_UINT type across all ACPICA code. This type is no 
-longer needed, especially with the removal of 16-bit support. It was replaced 
-mostly with UINT32, but also ACPI_SIZE where a type that changes 32/64 bit on 
-32/64-bit platforms is required.
-
-Added the C const qualifier for appropriate string constants -- mostly 
-MODULE_NAME and printf format strings. Jan Beulich.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  80.0K Code, 17.4K Data,  97.4K Total
-    Debug Version:     159.4K Code, 64.4K Data, 223.8K Total
-  Current Release:
-    Non-Debug Version:  79.5K Code, 16.2K Data,  95.7K Total
-    Debug Version:     153.3K Code, 48.3K Data, 201.6K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Implemented ACPI table revision ID validation in the disassembler. Zero is 
-always invalid. For DSDTs, the ID controls the interpreter integer width. 1 
-means 32-bit and this is unusual. 2 or greater is 64-bit.
-
-----------------------------------------
-21 March 2008. Summary of changes for version 20080321:
-
-1) ACPI CA Core Subsystem:
-
-Implemented an additional change to the GPE support in order to suppress 
-spurious or stray GPEs. The AcpiEvDisableGpe function will now permanently 
-disable incoming GPEs that are neither enabled nor disabled -- meaning that 
-the GPE is unknown to the system. This should prevent future interrupt floods 
-from that GPE. BZ 6217 (Zhang Rui)
-
-Fixed a problem where NULL package elements were not returned to the 
-AcpiEvaluateObject interface correctly. The element was simply ignored 
-instead of returning a NULL ACPI_OBJECT package element, potentially causing 
-a buffer overflow and/or confusing the caller who expected a fixed number of 
-elements. BZ 10132 (Lin Ming, Bob Moore)
-
-Fixed a problem with the CreateField, CreateXXXField (Bit, Byte, Word, Dword, 
-Qword), Field, BankField, and IndexField operators when invoked from inside 
-an executing control method. In this case, these operators created namespace 
-nodes that were incorrectly left marked as permanent nodes instead of 
-temporary nodes. This could cause a problem if there is race condition 
-between an exiting control method and a running namespace walk. (Reported by 
-Linn Crosetto)
-
-Fixed a problem where the CreateField and CreateXXXField operators would 
-incorrectly allow duplicate names (the name of the field) with no exception 
-generated.
-
-Implemented several changes for Notify handling. Added support for new Notify 
-values (ACPI 2.0+) and improved the Notify debug output. Notify on 
-PowerResource objects is no longer allowed, as per the ACPI specification. 
-(Bob Moore, Zhang Rui)
-
-All Reference Objects returned via the AcpiEvaluateObject interface are now 
-marked as type "REFERENCE" instead of "ANY". The type ANY is now reserved for 
-NULL objects - either NULL package elements or unresolved named references.
-
-Fixed a problem where an extraneous debug message was produced for package 
-objects (when debugging enabled). The message "Package List length larger 
-than NumElements count" is now produced in the correct case, and is now an 
-error message rather than a debug message. Added a debug message for the 
-opposite case, where NumElements is larger than the Package List (the package 
-will be padded out with NULL elements as per the ACPI spec.)
-
-Implemented several improvements for the output of the ASL "Debug" object to 
-clarify and keep all data for a given object on one output line.
-
-Fixed two size calculation issues with the variable-length Start Dependent 
-resource descriptor.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.7K Code, 17.3K Data,  97.0K Total
-    Debug Version:     158.9K Code, 64.0K Data, 222.9K Total
-  Current Release:
-    Non-Debug Version:  80.0K Code, 17.4K Data,  97.4K Total
-    Debug Version:     159.4K Code, 64.4K Data, 223.8K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a problem with the use of the Switch operator where execution of the 
-containing method by multiple concurrent threads could cause an 
-AE_ALREADY_EXISTS exception. This is caused by the fact that there is no 
-actual Switch opcode, it must be simulated with local named temporary 
-variables and if/else pairs. The solution chosen was to mark any method that 
-uses Switch as Serialized, thus preventing multiple thread entries. BZ 469.
-
-----------------------------------------
-13 February 2008. Summary of changes for version 20080213:
-
-1) ACPI CA Core Subsystem:
-
-Implemented another MS compatibility design change for GPE/Notify handling. 
-GPEs are now cleared/enabled asynchronously to allow all pending notifies to 
-complete first. It is expected that the OSL will queue the enable request 
-behind all pending notify requests (may require changes to the local host OSL 
-in AcpiOsExecute). Alexey Starikovskiy.
-
-Fixed a problem where buffer and package objects passed as arguments to a 
-control method via the external AcpiEvaluateObject interface could cause an 
-AE_AML_INTERNAL exception depending on the order and type of operators 
-executed by the target control method.
-
-Fixed a problem where resource descriptor size optimization could cause a 
-problem when a _CRS resource template is passed to a _SRS method. The _SRS 
-resource template must use the same descriptors (with the same size) as 
-returned from _CRS. This change affects the following resource descriptors: 
-IRQ / IRQNoFlags and StartDependendentFn / StartDependentFnNoPri. (BZ 9487)
-
-Fixed a problem where a CopyObject to RegionField, BankField, and IndexField 
-objects did not perform an implicit conversion as it should. These types must 
-retain their initial type permanently as per the ACPI specification. However, 
-a CopyObject to all other object types should not perform an implicit 
-conversion, as per the ACPI specification. (Lin Ming, Bob Moore) BZ 388
-
-Fixed a problem with the AcpiGetDevices interface where the mechanism to 
-match device CIDs did not examine the entire list of available CIDs, but 
-instead aborted on the first non-matching CID. Andrew Patterson.
-
-Fixed a regression introduced in version 20071114. The ACPI_HIDWORD macro was 
-inadvertently changed to return a 16-bit value instead of a 32-bit value, 
-truncating the upper dword of a 64-bit value. This macro is only used to 
-display debug output, so no incorrect calculations were made. Also, 
-reimplemented the macro so that a 64-bit shift is not performed by 
-inefficient compilers.
-
-Added missing va_end statements that should correspond with each va_start 
-statement.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.5K Code, 17.2K Data,  96.7K Total
-    Debug Version:     159.0K Code, 63.8K Data, 222.8K Total
-  Current Release:
-    Non-Debug Version:  79.7K Code, 17.3K Data,  97.0K Total
-    Debug Version:     158.9K Code, 64.0K Data, 222.9K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Implemented full disassembler support for the following new ACPI tables: 
-BERT, EINJ, and ERST. Implemented partial disassembler support for the 
-complicated HEST table. These tables support the Windows Hardware Error 
-Architecture (WHEA).
-
-----------------------------------------
-23 January 2008. Summary of changes for version 20080123:
-
-1) ACPI CA Core Subsystem:
-
-Added the 2008 copyright to all module headers and signons. This affects 
-virtually every file in the ACPICA core subsystem, the iASL compiler, and 
-the tools/utilities.
-
-Fixed a problem with the SizeOf operator when used with Package and Buffer 
-objects. These objects have deferred execution for some arguments, and the 
-execution is now completed before the SizeOf is executed. This problem caused 
-unexpected AE_PACKAGE_LIMIT errors on some systems (Lin Ming, Bob Moore) BZ 
-9558
-
-Implemented an enhancement to the interpreter "slack mode". In the absence of 
-an explicit return or an implicitly returned object from the last executed 
-opcode, a control method will now implicitly return an integer of value 0 for 
-Microsoft compatibility. (Lin Ming) BZ 392
-
-Fixed a problem with the Load operator where an exception was not returned in 
-the case where the table is already loaded. (Lin Ming) BZ 463
-
-Implemented support for the use of DDBHandles as an Indexed Reference, as per 
-the ACPI spec. (Lin Ming) BZ 486
-
-Implemented support for UserTerm (Method invocation) for the Unload operator 
-as per the ACPI spec. (Lin Ming) BZ 580
-
-Fixed a problem with the LoadTable operator where the OemId and OemTableId 
-input strings could cause unexpected failures if they were shorter than the 
-maximum lengths allowed. (Lin Ming, Bob Moore) BZ 576
-
-Implemented support for UserTerm (Method invocation) for the Unload operator 
-as per the ACPI spec. (Lin Ming) BZ 580
-
-Implemented header file support for new ACPI tables - BERT, ERST, EINJ, HEST, 
-IBFT, UEFI, WDAT. Disassembler support is forthcoming.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.3K Code, 17.2K Data,  96.5K Total
-    Debug Version:     158.6K Code, 63.8K Data, 222.4K Total
-  Current Release:
-    Non-Debug Version:  79.5K Code, 17.2K Data,  96.7K Total
-    Debug Version:     159.0K Code, 63.8K Data, 222.8K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Implemented support in the disassembler for checksum validation on incoming 
-binary DSDTs and SSDTs. If incorrect, a message is displayed within the table 
-header dump at the start of the disassembly.
-
-Implemented additional debugging information in the namespace listing file 
-created during compilation. In addition to the namespace hierarchy, the full 
-pathname to each namespace object is displayed.
-
-Fixed a problem with the disassembler where invalid ACPI tables could cause 
-faults or infinite loops.
-
-Fixed an unexpected parse error when using the optional "parameter types" 
-list in a control method declaration. (Lin Ming) BZ 397
-
-Fixed a problem where two External declarations with the same name did not 
-cause an error (Lin Ming) BZ 509
-
-Implemented support for full TermArgs (adding Argx, Localx and method 
-invocation) for the ParameterData parameter to the LoadTable operator. (Lin 
-Ming) BZ 583,587
-
-----------------------------------------
-19 December 2007. Summary of changes for version 20071219:
-
-1) ACPI CA Core Subsystem:
-
-Implemented full support for deferred execution for the TermArg string 
-arguments for DataTableRegion. This enables forward references and full 
-operand resolution for the three string arguments. Similar to OperationRegion 
-deferred argument execution.) Lin Ming. BZ 430
-
-Implemented full argument resolution support for the BankValue argument to 
-BankField. Previously, only constants were supported, now any TermArg may be 
-used. Lin Ming BZ 387, 393
-
-Fixed a problem with AcpiGetDevices where the search of a branch of the 
-device tree could be terminated prematurely. In accordance with the ACPI 
-specification, the search down the current branch is terminated if a device 
-is both not present and not functional (instead of just not present.) Yakui 
-Zhao.
-
-Fixed a problem where "unknown" GPEs could be allowed to fire repeatedly if 
-the underlying AML code changed the GPE enable registers. Now, any unknown 
-incoming GPE (no _Lxx/_Exx method and not the EC GPE) is immediately disabled 
-instead of simply ignored. Rui Zhang.
-
-Fixed a problem with Index Fields where the Index register was incorrectly 
-limited to a maximum of 32 bits. Now any size may be used.
-
-Fixed a couple memory leaks associated with "implicit return" objects when 
-the AML Interpreter slack mode is enabled. Lin Ming BZ 349
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.0K Code, 17.2K Data,  96.2K Total
-    Debug Version:     157.9K Code, 63.6K Data, 221.5K Total
-  Current Release:
-    Non-Debug Version:  79.3K Code, 17.2K Data,  96.5K Total
-    Debug Version:     158.6K Code, 63.8K Data, 222.4K Total
-
-----------------------------------------
-14 November 2007. Summary of changes for version 20071114:
-
-1) ACPI CA Core Subsystem:
-
-Implemented event counters for each of the Fixed Events, the ACPI SCI 
-(interrupt) itself, and control methods executed. Named 
-AcpiFixedEventCount[], AcpiSciCount, and AcpiMethodCount respectively. These 
-should be useful for debugging and statistics.
-
-Implemented a new external interface, AcpiGetStatistics, to retrieve the 
-contents of the various event counters. Returns the current values for 
-AcpiSciCount, AcpiGpeCount, the AcpiFixedEventCount array, and 
-AcpiMethodCount. The interface can be expanded in the future if new counters 
-are added. Device drivers should use this interface rather than access the 
-counters directly.
-
-Fixed a problem with the FromBCD and ToBCD operators. With some compilers, 
-the ShortDivide function worked incorrectly, causing problems with the BCD 
-functions with large input values. A truncation from 64-bit to 32-bit 
-inadvertently occurred. Internal BZ 435. Lin Ming
-
-Fixed a problem with Index references passed as method arguments. References 
-passed as arguments to control methods were dereferenced immediately (before 
-control was passed to the called method). The references are now correctly 
-passed directly to the called method. BZ 5389. Lin Ming
-
-Fixed a problem with CopyObject used in conjunction with the Index operator. 
-The reference was incorrectly dereferenced before the copy. The reference is 
-now correctly copied. BZ 5391. Lin Ming
-
-Fixed a problem with Control Method references within Package objects. These 
-references are now correctly generated. This completes the package 
-construction overhaul that began in version 20071019.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  78.8K Code, 17.2K Data,  96.0K Total
-    Debug Version:     157.2K Code, 63.4K Data, 220.6K Total
-  Current Release:
-    Non-Debug Version:  79.0K Code, 17.2K Data,  96.2K Total
-    Debug Version:     157.9K Code, 63.6K Data, 221.5K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-The AcpiExec utility now installs handlers for all of the predefined 
-Operation Region types. New types supported are: PCI_Config, CMOS, and 
-PCIBARTarget.
-
-Fixed a problem with the 64-bit version of AcpiExec where the extended (64-
-bit) address fields for the DSDT and FACS within the FADT were not being 
-used, causing truncation of the upper 32-bits of these addresses. Lin Ming 
-and Bob Moore
-
-----------------------------------------
-19 October 2007. Summary of changes for version 20071019:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with the Alias operator when the target of the alias is a 
-named ASL operator that opens a new scope -- Scope, Device, PowerResource, 
-Processor, and ThermalZone. In these cases, any children of the original 
-operator could not be accessed via the alias, potentially causing unexpected 
-AE_NOT_FOUND exceptions. (BZ 9067)
-
-Fixed a problem with the Package operator where all named references were 
-created as object references and left otherwise unresolved. According to the 
-ACPI specification, a Package can only contain Data Objects or references to 
-control methods. The implication is that named references to Data Objects 
-(Integer, Buffer, String, Package, BufferField, Field) should be resolved 
-immediately upon package creation. This is the approach taken with this 
-change. References to all other named objects (Methods, Devices, Scopes, 
-etc.) are all now properly created as reference objects. (BZ 5328)
-
-Reverted a change to Notify handling that was introduced in version 
-20070508. This version changed the Notify handling from asynchronous to 
-fully synchronous (Device driver Notify handling with respect to the Notify 
-ASL operator). It was found that this change caused more problems than it 
-solved and was removed by most users.
-
-Fixed a problem with the Increment and Decrement operators where the type of 
-the target object could be unexpectedly and incorrectly changed. (BZ 353) 
-Lin Ming.
-
-Fixed a problem with the Load and LoadTable operators where the table 
-location within the namespace was ignored. Instead, the table was always 
-loaded into the root or current scope. Lin Ming.
-
-Fixed a problem with the Load operator when loading a table from a buffer 
-object. The input buffer was prematurely zeroed and/or deleted. (BZ 577)
-
-Fixed a problem with the Debug object where a store of a DdbHandle reference 
-object to the Debug object could cause a fault.
-
-Added a table checksum verification for the Load operator, in the case where 
-the load is from a buffer. (BZ 578).
-
-Implemented additional parameter validation for the LoadTable operator. The 
-length of the input strings SignatureString, OemIdString, and OemTableId are 
-now checked for maximum lengths. (BZ 582) Lin Ming.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  78.5K Code, 17.1K Data,  95.6K Total
-    Debug Version:     156.7K Code, 63.2K Data, 219.9K Total
-  Current Release:
-    Non-Debug Version:  78.8K Code, 17.2K Data,  96.0K Total
-    Debug Version:     157.2K Code, 63.4K Data, 220.6K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem where if a single file was specified and the file did not 
-exist, no error message was emitted. (Introduced with wildcard support in 
-version 20070917.)
-
-----------------------------------------
-19 September 2007. Summary of changes for version 20070919:
-
-1) ACPI CA Core Subsystem:
-
-Designed and implemented new external interfaces to install and remove 
-handlers for ACPI table-related events. Current events that are defined are 
-LOAD and UNLOAD. These interfaces allow the host to track ACPI tables as 
-they are dynamically loaded and unloaded. See AcpiInstallTableHandler and 
-AcpiRemoveTableHandler. (Lin Ming and Bob Moore)
-
-Fixed a problem where the use of the AcpiGbl_AllMethodsSerialized flag 
-(acpi_serialized option on Linux) could cause some systems to hang during 
-initialization. (Bob Moore) BZ 8171
-
-Fixed a problem where objects of certain types (Device, ThermalZone, 
-Processor, PowerResource) can be not found if they are declared and 
-referenced from within the same control method (Lin Ming) BZ 341
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  78.3K Code, 17.0K Data,  95.3K Total
-    Debug Version:     156.3K Code, 63.1K Data, 219.4K Total
-  Current Release:
-    Non-Debug Version:  78.5K Code, 17.1K Data,  95.6K Total
-    Debug Version:     156.7K Code, 63.2K Data, 219.9K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support to allow multiple files to be compiled/disassembled in a 
-single invocation. This includes command line wildcard support for both the 
-Windows and Unix versions of the compiler. This feature simplifies the 
-disassembly and compilation of multiple ACPI tables in a single directory.
-
-----------------------------------------
-08 May 2007. Summary of changes for version 20070508:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a Microsoft compatibility design change for the handling of the 
-Notify AML operator. Previously, notify handlers were dispatched and 
-executed completely asynchronously in a deferred thread. The new design 
-still executes the notify handlers in a different thread, but the original 
-thread that executed the Notify() now waits at a synchronization point for 
-the notify handler to complete. Some machines depend on a synchronous Notify 
-operator in order to operate correctly.
-
-Implemented support to allow Package objects to be passed as method 
-arguments to the external AcpiEvaluateObject interface. Previously, this 
-would return the AE_NOT_IMPLEMENTED exception. This feature had not been 
-implemented since there were no reserved control methods that required it 
-until recently.
-
-Fixed a problem with the internal FADT conversion where ACPI 1.0 FADTs that 
-contained invalid non-zero values in reserved fields could cause later 
-failures because these fields have meaning in later revisions of the FADT. 
-For incoming ACPI 1.0 FADTs, these fields are now always zeroed. (The fields 
-are: Preferred_PM_Profile, PSTATE_CNT, CST_CNT, and IAPC_BOOT_FLAGS.)
-
-Fixed a problem where the Global Lock handle was not properly updated if a 
-thread that acquired the Global Lock via executing AML code then attempted 
-to acquire the lock via the AcpiAcquireGlobalLock interface. Reported by Joe 
-Liu.
-
-Fixed a problem in AcpiEvDeleteGpeXrupt where the global interrupt list 
-could be corrupted if the interrupt being removed was at the head of the 
-list. Reported by Linn Crosetto.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
-    Debug Version:     155.9K Code, 63.1K Data, 219.0K Total
-  Current Release:
-    Non-Debug Version:  78.3K Code, 17.0K Data,  95.3K Total
-    Debug Version:     156.3K Code, 63.1K Data, 219.4K Total
-
-----------------------------------------
-20 March 2007. Summary of changes for version 20070320:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a change to the order of interpretation and evaluation of AML 
-operand objects within the AML interpreter. The interpreter now evaluates 
-operands in the order that they appear in the AML stream (and the 
-corresponding ASL code), instead of in the reverse order (after the entire 
-operand list has been parsed). The previous behavior caused several subtle 
-incompatibilities with the Microsoft AML interpreter as well as being 
-somewhat non-intuitive. BZ 7871, local BZ 263. Valery Podrezov.
-
-Implemented a change to the ACPI Global Lock support. All interfaces to the 
-global lock now allow the same thread to acquire the lock multiple times. 
-This affects the AcpiAcquireGlobalLock external interface to the global lock 
-as well as the internal use of the global lock to support AML fields -- a 
-control method that is holding the global lock can now simultaneously access 
-AML fields that require global lock protection. Previously, in both cases, 
-this would have resulted in an AE_ALREADY_ACQUIRED exception. The change to 
-AcpiAcquireGlobalLock is of special interest to drivers for the Embedded 
-Controller. There is no change to the behavior of the AML Acquire operator, 
-as this can already be used to acquire a mutex multiple times by the same 
-thread. BZ 8066. With assistance from Alexey Starikovskiy.
-
-Fixed a problem where invalid objects could be referenced in the AML 
-Interpreter after error conditions. During operand evaluation, ensure that 
-the internal "Return Object" field is cleared on error and only valid 
-pointers are stored there. Caused occasional access to deleted objects that 
-resulted in "large reference count" warning messages. Valery Podrezov.
-
-Fixed a problem where an AE_STACK_OVERFLOW internal exception could occur on 
-deeply nested control method invocations. BZ 7873, local BZ 487. Valery 
-Podrezov.
-
-Fixed an internal problem with the handling of result objects on the 
-interpreter result stack. BZ 7872. Valery Podrezov.
-
-Removed obsolete code that handled the case where AML_NAME_OP is the target 
-of a reference (Reference.Opcode). This code was no longer necessary. BZ 
-7874. Valery Podrezov.
-
-Removed obsolete ACPI_NO_INTEGER64_SUPPORT from two header files. This was a 
-remnant from the previously discontinued 16-bit support.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
-    Debug Version:     155.8K Code, 63.3K Data, 219.1K Total
-  Current Release:
-    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
-    Debug Version:     155.9K Code, 63.1K Data, 219.0K Total
-
-----------------------------------------
-26 January 2007. Summary of changes for version 20070126:
-
-1) ACPI CA Core Subsystem:
-
-Added the 2007 copyright to all module headers and signons. This affects 
-virtually every file in the ACPICA core subsystem, the iASL compiler, and 
-the utilities.
-
-Implemented a fix for an incorrect parameter passed to AcpiTbDeleteTable 
-during a table load. A bad pointer was passed in the case where the DSDT is 
-overridden, causing a fault in this case.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
-    Debug Version:     155.8K Code, 63.3K Data, 219.1K Total
-  Current Release:
-    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
-    Debug Version:     155.8K Code, 63.3K Data, 219.1K Total
-
-----------------------------------------
-15 December 2006. Summary of changes for version 20061215:
-
-1) ACPI CA Core Subsystem:
-
-Support for 16-bit ACPICA has been completely removed since it is no longer 
-necessary and it clutters the code. All 16-bit macros, types, and 
-conditional compiles have been removed, cleaning up and simplifying the code 
-across the entire subsystem. DOS support is no longer needed since the 
-bootable Linux firmware kit is now available.
-
-The handler for the Global Lock is now removed during AcpiTerminate to 
-enable a clean subsystem restart, via the implementation of the 
-AcpiEvRemoveGlobalLockHandler function. (With assistance from Joel Bretz, 
-HP)
-
-Implemented enhancements to the multithreading support within the debugger 
-to enable improved multithreading debugging and evaluation of the subsystem. 
-(Valery Podrezov)
-
-Debugger: Enhanced the Statistics/Memory command to emit the total (maximum) 
-memory used during the execution, as well as the maximum memory consumed by 
-each of the various object types. (Valery Podrezov)
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  77.9K Code, 17.0K Data,  94.9K Total
-    Debug Version:     155.2K Code, 63.1K Data, 218.3K Total
-  Current Release:
-    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
-    Debug Version:     155.8K Code, 63.3K Data, 219.1K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-AcpiExec: Implemented a new option (-m) to display full memory use 
-statistics upon subsystem/program termination. (Valery Podrezov)
-
-----------------------------------------
-09 November 2006. Summary of changes for version 20061109:
-
-1) ACPI CA Core Subsystem:
-
-Optimized the Load ASL operator in the case where the source operand is an 
-operation region. Simply map the operation region memory, instead of 
-performing a bytewise read. (Region must be of type SystemMemory, see 
-below.)
-
-Fixed the Load ASL operator for the case where the source operand is a 
-region field. A buffer object is also allowed as the source operand. BZ 480
-
-Fixed a problem where the Load ASL operator allowed the source operand to be 
-an operation region of any type. It is now restricted to regions of type 
-SystemMemory, as per the ACPI specification. BZ 481
-
-Additional cleanup and optimizations for the new Table Manager code.
-
-AcpiEnable will now fail if all of the required ACPI tables are not loaded 
-(FADT, FACS, DSDT). BZ 477
-
-Added #pragma pack(8/4) to acobject.h to ensure that the structures in this 
-header are always compiled as aligned. The ACPI_OPERAND_OBJECT has been 
-manually optimized to be aligned and will not work if it is byte-packed. 
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  78.1K Code, 17.1K Data,  95.2K Total
-    Debug Version:     155.4K Code, 63.1K Data, 218.5K Total
-  Current Release:
-    Non-Debug Version:  77.9K Code, 17.0K Data,  94.9K Total
-    Debug Version:     155.2K Code, 63.1K Data, 218.3K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a problem where the presence of the _OSI predefined control method 
-within complex expressions could cause an internal compiler error.
-
-AcpiExec: Implemented full region support for multiple address spaces. 
-SpaceId is now part of the REGION object. BZ 429
-
-----------------------------------------
-11 October 2006. Summary of changes for version 20061011:
-
-1) ACPI CA Core Subsystem:
-
-Completed an AML interpreter performance enhancement for control method 
-execution. Previously a 2-pass parse/execution, control methods are now 
-completely parsed and executed in a single pass. This improves overall 
-interpreter performance by ~25%, reduces code size, and reduces CPU stack 
-use. (Valery Podrezov + interpreter changes in version 20051202 that 
-eliminated namespace loading during the pass one parse.)
-
-Implemented _CID support for PCI Root Bridge detection. If the _HID does not 
-match the predefined PCI Root Bridge IDs, the _CID list (if present) is now 
-obtained and also checked for an ID match.
-
-Implemented additional support for the PCI _ADR execution: upsearch until a 
-device scope is found before executing _ADR. This allows PCI_Config 
-operation regions to be declared locally within control methods underneath 
-PCI device objects.
-
-Fixed a problem with a possible race condition between threads executing 
-AcpiWalkNamespace and the AML interpreter. This condition was removed by 
-modifying AcpiWalkNamespace to (by default) ignore all temporary namespace 
-entries created during any concurrent control method execution. An 
-additional namespace race condition is known to exist between 
-AcpiWalkNamespace and the Load/Unload ASL operators and is still under 
-investigation.
-
-Restructured the AML ParseLoop function, breaking it into several 
-subfunctions in order to reduce CPU stack use and improve maintainability. 
-(Mikhail Kouzmich)
-
-AcpiGetHandle: Fix for parameter validation to detect invalid combinations 
-of prefix handle and pathname. BZ 478
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  77.9K Code, 17.1K Data,  95.0K Total
-    Debug Version:     154.6K Code, 63.0K Data, 217.6K Total
-  Current Release:
-    Non-Debug Version:  78.1K Code, 17.1K Data,  95.2K Total
-    Debug Version:     155.4K Code, 63.1K Data, 218.5K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Ported the -g option (get local ACPI tables) to the new ACPICA Table Manager 
-to restore original behavior.
-
-----------------------------------------
-27 September 2006. Summary of changes for version 20060927:
-
-1) ACPI CA Core Subsystem:
-
-Removed the "Flags" parameter from AcpiGetRegister and AcpiSetRegister. 
-These functions now use a spinlock for mutual exclusion and the interrupt 
-level indication flag is not needed.
-
-Fixed a problem with the Global Lock where the lock could appear to be 
-obtained before it is actually obtained. The global lock semaphore was 
-inadvertently created with one unit instead of zero units. (BZ 464) Fiodor 
-Suietov.
-
-Fixed a possible memory leak and fault in AcpiExResolveObjectToValue during 
-a read from a buffer or region field. (BZ 458) Fiodor Suietov.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  77.9K Code, 17.1K Data,  95.0K Total
-    Debug Version:     154.7K Code, 63.0K Data, 217.7K Total
-  Current Release:
-    Non-Debug Version:  77.9K Code, 17.1K Data,  95.0K Total
-    Debug Version:     154.6K Code, 63.0K Data, 217.6K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a compilation problem with the pre-defined Resource Descriptor field 
-names where an "object does not exist" error could be incorrectly generated 
-if the parent ResourceTemplate pathname places the template within a 
-different namespace scope than the current scope. (BZ 7212)
-
-Fixed a problem where the compiler could hang after syntax errors detected 
-in an ElseIf construct. (BZ 453)
-
-Fixed a problem with the AmlFilename parameter to the DefinitionBlock() 
-operator. An incorrect output filename was produced when this parameter was 
-a null string (""). Now, the original input filename is used as the AML 
-output filename, with an ".aml" extension.
-
-Implemented a generic batch command mode for the AcpiExec utility (execute 
-any AML debugger command) (Valery Podrezov).
-
-----------------------------------------
-12 September 2006. Summary of changes for version 20060912:
-
-1) ACPI CA Core Subsystem:
-
-Enhanced the implementation of the "serialized mode" of the interpreter 
-(enabled via the AcpiGbl_AllMethodsSerialized flag.) When this mode is 
-specified, instead of creating a serialization semaphore per control method, 
-the interpreter lock is simply no longer released before a blocking 
-operation during control method execution. This effectively makes the AML 
-Interpreter single-threaded. The overhead of a semaphore per-method is 
-eliminated.
-
-Fixed a regression where an error was no longer emitted if a control method 
-attempts to create 2 objects of the same name. This once again returns 
-AE_ALREADY_EXISTS. When this exception occurs, it invokes the mechanism that 
-will dynamically serialize the control method to possible prevent future 
-errors. (BZ 440)
-
-Integrated a fix for a problem with PCI Express HID detection in the PCI 
-Config Space setup procedure. (BZ 7145)
-
-Moved all FADT-related functions to a new file, tbfadt.c. Eliminated the 
-AcpiHwInitialize function - the FADT registers are now validated when the 
-table is loaded.
-
-Added two new warnings during FADT verification - 1) if the FADT is larger 
-than the largest known FADT version, and 2) if there is a mismatch between a 
-32-bit block address and the 64-bit X counterpart (when both are non-zero.)
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  77.9K Code, 16.7K Data,  94.6K Total
-    Debug Version:     154.9K Code, 62.6K Data, 217.5K Total
-  Current Release:
-    Non-Debug Version:  77.9K Code, 17.1K Data,  95.0K Total
-    Debug Version:     154.7K Code, 63.0K Data, 217.7K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a problem with the implementation of the Switch() operator where the 
-temporary variable was declared too close to the actual Switch, instead of 
-at method level. This could cause a problem if the Switch() operator is 
-within a while loop, causing an error on the second iteration. (BZ 460)
-
-Disassembler - fix for error emitted for unknown type for target of scope 
-operator. Now, ignore it and continue.
-
-Disassembly of an FADT now verifies the input FADT and reports any errors 
-found. Fix for proper disassembly of full-sized (ACPI 2.0) FADTs.
-
-Disassembly of raw data buffers with byte initialization data now prefixes 
-each output line with the current buffer offset.
-
-Disassembly of ASF! table now includes all variable-length data fields at 
-the end of some of the subtables.
-
-The disassembler now emits a comment if a buffer appears to be a 
-ResourceTemplate, but cannot be disassembled as such because the EndTag does 
-not appear at the very end of the buffer.
-
-AcpiExec - Added the "-t" command line option to enable the serialized mode 
-of the AML interpreter.
-
-----------------------------------------
-31 August 2006. Summary of changes for version 20060831:
-
-1) ACPI CA Core Subsystem:
-
-Miscellaneous fixes for the Table Manager:
-- Correctly initialize internal common FADT for all 64-bit "X" fields
-- Fixed a couple table mapping issues during table load
-- Fixed a couple alignment issues for IA64
-- Initialize input array to zero in AcpiInitializeTables
-- Additional parameter validation for AcpiGetTable, AcpiGetTableHeader, 
-AcpiGetTableByIndex
-
-Change for GPE support: when a "wake" GPE is received, all wake GPEs are now 
-immediately disabled to prevent the waking GPE from firing again and to 
-prevent other wake GPEs from interrupting the wake process.
-
-Added the AcpiGpeCount global that tracks the number of processed GPEs, to 
-be used for debugging systems with a large number of ACPI interrupts.
-
-Implemented support for the "DMAR" ACPI table (DMA Redirection Table) in 
-both the ACPICA headers and the disassembler.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  77.8K Code, 16.5K Data,  94.3K Total
-    Debug Version:     154.6K Code, 62.3K Data, 216.9K Total
-  Current Release:
-    Non-Debug Version:  77.9K Code, 16.7K Data,  94.6K Total
-    Debug Version:     154.9K Code, 62.6K Data, 217.5K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler support for the DMAR ACPI table.
-
-----------------------------------------
-23 August 2006. Summary of changes for version 20060823:
-
-1) ACPI CA Core Subsystem:
-
-The Table Manager component has been completely redesigned and 
-reimplemented. The new design is much simpler, and reduces the overall code 
-and data size of the kernel-resident ACPICA by approximately 5%. Also, it is 
-now possible to obtain the ACPI tables very early during kernel 
-initialization, even before dynamic memory management is initialized. 
-(Alexey Starikovskiy, Fiodor Suietov, Bob Moore)
-
-Obsolete ACPICA interfaces:
-
-- AcpiGetFirmwareTable: Use AcpiGetTable instead (works at early kernel init 
-time).
-- AcpiLoadTable: Not needed.
-- AcpiUnloadTable: Not needed.
-
-New ACPICA interfaces:
-
-- AcpiInitializeTables: Must be called before the table manager can be used.
-- AcpiReallocateRootTable: Used to transfer the root table to dynamically 
-allocated memory after it becomes available.
-- AcpiGetTableByIndex: Allows the host to easily enumerate all ACPI tables 
-in the RSDT/XSDT.
-
-Other ACPICA changes:
-
-- AcpiGetTableHeader returns the actual mapped table header, not a copy. Use 
-AcpiOsUnmapMemory to free this mapping.
-- AcpiGetTable returns the actual mapped table. The mapping is managed 
-internally and must not be deleted by the caller. Use of this interface 
-causes no additional dynamic memory allocation.
-- AcpiFindRootPointer: Support for physical addressing has been eliminated, 
-it appeared to be unused.
-- The interface to AcpiOsMapMemory has changed to be consistent with the 
-other allocation interfaces.
-- The interface to AcpiOsGetRootPointer has changed to eliminate unnecessary 
-parameters.
-- ACPI_PHYSICAL_ADDRESS is now 32 bits on 32-bit platforms, 64 bits on 64-
-bit platforms. Was previously 64 bits on all platforms.
-- The interface to the ACPI Global Lock acquire/release macros have changed 
-slightly since ACPICA no longer keeps a local copy of the FACS with a 
-constructed pointer to the actual global lock.
-
-Porting to the new table manager:
-
-- AcpiInitializeTables: Must be called once, and can be called anytime 
-during the OS initialization process. It allows the host to specify an area 
-of memory to be used to store the internal version of the RSDT/XSDT (root 
-table). This allows the host to access ACPI tables before memory management 
-is initialized and running.
-- AcpiReallocateRootTable: Can be called after memory management is running 
-to copy the root table to a dynamically allocated array, freeing up the 
-scratch memory specified in the call to AcpiInitializeTables.
-- AcpiSubsystemInitialize: This existing interface is independent of the 
-Table Manager, and does not have to be called before the Table Manager can 
-be used, it only must be called before the rest of ACPICA can be used.
-- ACPI Tables: Some changes have been made to the names and structure of the 
-actbl.h and actbl1.h header files and may require changes to existing code. 
-For example, bitfields have been completely removed because of their lack of 
-portability across C compilers.
-- Update interfaces to the Global Lock acquire/release macros if local 
-versions are used. (see acwin.h)
-
-Obsolete files: tbconvrt.c, tbget.c, tbgetall.c, tbrsdt.c
-
-New files: tbfind.c
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  80.7K Code, 17.9K Data,  98.6K Total
-    Debug Version:     161.0K Code, 65.1K Data, 226.1K Total
-  Current Release:
-    Non-Debug Version:  77.8K Code, 16.5K Data,  94.3K Total
-    Debug Version:     154.6K Code, 62.3K Data, 216.9K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-No changes for this release.
-
-----------------------------------------
-21 July 2006. Summary of changes for version 20060721:
-
-1) ACPI CA Core Subsystem:
-
-The full source code for the ASL test suite used to validate the iASL 
-compiler and the ACPICA core subsystem is being released with the ACPICA 
-source for the first time. The source is contained in a separate package and 
-consists of over 1100 files that exercise all ASL/AML operators. The package 
-should appear on the Intel/ACPI web site shortly. (Valery Podrezov, Fiodor 
-Suietov)
-
-Completed a new design and implementation for support of the ACPI Global 
-Lock. On the OS side, the global lock is now treated as a standard AML 
-mutex. Previously, multiple OS threads could "acquire" the global lock 
-simultaneously. However, this could cause the BIOS to be starved out of the 
-lock - especially in cases such as the Embedded Controller driver where 
-there is a tight coupling between the OS and the BIOS.
-
-Implemented an optimization for the ACPI Global Lock interrupt mechanism. 
-The Global Lock interrupt handler no longer queues the execution of a 
-separate thread to signal the global lock semaphore. Instead, the semaphore 
-is signaled directly from the interrupt handler.
-
-Implemented support within the AML interpreter for package objects that 
-contain a larger AML length (package list length) than the package element 
-count. In this case, the length of the package is truncated to match the 
-package element count. Some BIOS code apparently modifies the package length 
-on the fly, and this change supports this behavior. Provides compatibility 
-with the MS AML interpreter. (With assistance from Fiodor Suietov)
-
-Implemented a temporary fix for the BankValue parameter of a Bank Field to 
-support all constant values, now including the Zero and One opcodes. 
-Evaluation of this parameter must eventually be converted to a full TermArg 
-evaluation. A not-implemented error is now returned (temporarily) for non-
-constant values for this parameter.
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- Fix for premature object deletion after CopyObject on Operation Region (BZ 
-350)
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  80.7K Code, 18.0K Data,  98.7K Total
-    Debug Version:     160.9K Code, 65.1K Data, 226.0K Total
-  Current Release:
-    Non-Debug Version:  80.7K Code, 17.9K Data,  98.6K Total
-    Debug Version:     161.0K Code, 65.1K Data, 226.1K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-No changes for this release.
-
-----------------------------------------
-07 July 2006. Summary of changes for version 20060707:
-
-1) ACPI CA Core Subsystem:
-
-Added the ACPI_PACKED_POINTERS_NOT_SUPPORTED macro to support C compilers 
-that do not allow the initialization of address pointers within packed 
-structures - even though the hardware itself may support misaligned 
-transfers. Some of the debug data structures are packed by default to 
-minimize size.
-
-Added an error message for the case where AcpiOsGetThreadId() returns zero. 
-A non-zero value is required by the core ACPICA code to ensure the proper 
-operation of AML mutexes and recursive control methods.
-
-The DSDT is now the only ACPI table that determines whether the AML 
-interpreter is in 32-bit or 64-bit mode. Not really a functional change, but 
-the hooks for per-table 32/64 switching have been removed from the code. A 
-clarification to the ACPI specification is forthcoming in ACPI 3.0B.
-
-Fixed a possible leak of an OwnerID in the error path of 
-AcpiTbInitTableDescriptor (tbinstal.c), and migrated all table OwnerID 
-deletion to a single place in AcpiTbUninstallTable to correct possible leaks 
-when using the AcpiTbDeleteTablesByType interface (with assistance from 
-Lance Ortiz.)
-
-Fixed a problem with Serialized control methods where the semaphore 
-associated with the method could be over-signaled after multiple method 
-invocations.
-
-Fixed two issues with the locking of the internal namespace data structure. 
-Both the Unload() operator and AcpiUnloadTable interface now lock the 
-namespace during the namespace deletion associated with the table unload 
-(with assistance from Linn Crosetto.)
-
-Fixed problem reports (Valery Podrezov) integrated:
-- Eliminate unnecessary memory allocation for CreateXxxxField (BZ 5426)
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- Incomplete cleanup branches in AcpiTbGetTableRsdt (BZ 369)
-- On Address Space handler deletion, needless deactivation call (BZ 374)
-- AcpiRemoveAddressSpaceHandler: validate Device handle parameter (BZ 375)
-- Possible memory leak, Notify sub-objects of Processor, Power, ThermalZone 
-(BZ 376)
-- AcpiRemoveAddressSpaceHandler: validate Handler parameter (BZ 378)
-- Minimum Length of RSDT should be validated (BZ 379)
-- AcpiRemoveNotifyHandler: return AE_NOT_EXIST if Processor Obj has no 
-Handler (BZ (380)
-- AcpiUnloadTable: return AE_NOT_EXIST if no table of specified type loaded 
-(BZ 381)
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  80.5K Code, 17.8K Data,  98.3K Total
-    Debug Version:     160.8K Code, 64.8K Data, 225.6K Total
-  Current Release:
-    Non-Debug Version:  80.7K Code, 17.9K Data,  98.6K Total
-    Debug Version:     161.0K Code, 65.1K Data, 226.1K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed problem reports:
-Compiler segfault when ASL contains a long (>1024) String declaration (BZ 
-436)
-
-----------------------------------------
-23 June 2006. Summary of changes for version 20060623:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a new ACPI_SPINLOCK type for the OSL lock interfaces. This 
-allows the type to be customized to the host OS for improved efficiency 
-(since a spinlock is usually a very small object.)
-
-Implemented support for "ignored" bits in the ACPI registers. According to 
-the ACPI specification, these bits should be preserved when writing the 
-registers via a read/modify/write cycle. There are 3 bits preserved in this 
-manner: PM1_CONTROL[0] (SCI_EN), PM1_CONTROL[9], and PM1_STATUS[11].
-
-Implemented the initial deployment of new OSL mutex interfaces. Since some 
-host operating systems have separate mutex and semaphore objects, this 
-feature was requested. The base code now uses mutexes (and the new mutex 
-interfaces) wherever a binary semaphore was used previously. However, for 
-the current release, the mutex interfaces are defined as macros to map them 
-to the existing semaphore interfaces. Therefore, no OSL changes are required 
-at this time. (See acpiosxf.h)
-
-Fixed several problems with the support for the control method SyncLevel 
-parameter. The SyncLevel now works according to the ACPI specification and 
-in concert with the Mutex SyncLevel parameter, since the current SyncLevel 
-is a property of the executing thread. Mutual exclusion for control methods 
-is now implemented with a mutex instead of a semaphore.
-
-Fixed three instances of the use of the C shift operator in the bitfield 
-support code (exfldio.c) to avoid the use of a shift value larger than the 
-target data width. The behavior of C compilers is undefined in this case and 
-can cause unpredictable results, and therefore the case must be detected and 
-avoided. (Fiodor Suietov)
-
-Added an info message whenever an SSDT or OEM table is loaded dynamically 
-via the Load() or LoadTable() ASL operators. This should improve debugging 
-capability since it will show exactly what tables have been loaded (beyond 
-the tables present in the RSDT/XSDT.)
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  80.0K Code, 17.6K Data,  97.6K Total
-    Debug Version:     160.2K Code, 64.7K Data, 224.9K Total
-  Current Release:
-    Non-Debug Version:  80.5K Code, 17.8K Data,  98.3K Total
-    Debug Version:     160.8K Code, 64.8K Data, 225.6K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-No changes for this release.
-
-----------------------------------------
-08 June 2006. Summary of changes for version 20060608:
-
-1) ACPI CA Core Subsystem:
-
-Converted the locking mutex used for the ACPI hardware to a spinlock. This 
-change should eliminate all problems caused by attempting to acquire a 
-semaphore at interrupt level, and it means that all ACPICA external 
-interfaces that directly access the ACPI hardware can be safely called from 
-interrupt level. OSL code that implements the semaphore interfaces should be 
-able to eliminate any workarounds for being called at interrupt level.
-
-Fixed a regression introduced in 20060526 where the ACPI device 
-initialization could be prematurely aborted with an AE_NOT_FOUND if a device 
-did not have an optional _INI method.
-
-Fixed an IndexField issue where a write to the Data Register should be 
-limited in size to the AccessSize (width) of the IndexField itself. (BZ 433, 
-Fiodor Suietov)
-
-Fixed problem reports (Valery Podrezov) integrated:
-- Allow store of ThermalZone objects to Debug object (BZ 5369/5370)
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- AcpiGetTableHeader doesn't handle multiple instances correctly (BZ 364)
-
-Removed four global mutexes that were obsolete and were no longer being 
-used.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  80.0K Code, 17.7K Data,  97.7K Total
-    Debug Version:     160.3K Code, 64.9K Data, 225.2K Total
-  Current Release:
-    Non-Debug Version:  80.0K Code, 17.6K Data,  97.6K Total
-    Debug Version:     160.2K Code, 64.7K Data, 224.9K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a fault when using -g option (get tables from registry) on Windows 
-machines.
-
-Fixed problem reports integrated:
-- Generate error if CreateField NumBits parameter is zero. (BZ 405)
-- Fault if Offset/Length in Field unit is very large (BZ 432, Fiodor 
-Suietov)
-- Global table revision override (-r) is ignored (BZ 413)
-
-----------------------------------------
-26 May 2006. Summary of changes for version 20060526:
-
-1) ACPI CA Core Subsystem:
-
-Restructured, flattened, and simplified the internal interfaces for 
-namespace object evaluation - resulting in smaller code, less CPU stack use, 
-and fewer interfaces. (With assistance from Mikhail Kouzmich)
-
-Fixed a problem with the CopyObject operator where the first parameter was 
-not typed correctly for the parser, interpreter, compiler, and disassembler. 
-Caused various errors and unexpected behavior.
-
-Fixed a problem where a ShiftLeft or ShiftRight of more than 64 bits 
-produced incorrect results with some C compilers. Since the behavior of C 
-compilers when the shift value is larger than the datatype width is 
-apparently not well defined, the interpreter now detects this condition and 
-simply returns zero as expected in all such cases. (BZ 395)
-
-Fixed problem reports (Valery Podrezov) integrated:
-- Update String-to-Integer conversion to match ACPI 3.0A spec (BZ 5329)
-- Allow interpreter to handle nested method declarations (BZ 5361)
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- AcpiTerminate doesn't free debug memory allocation list objects (BZ 355)
-- After Core Subsystem shutdown, AcpiSubsystemStatus returns AE_OK (BZ 356)
-- AcpiOsUnmapMemory for RSDP can be invoked inconsistently (BZ 357)
-- Resource Manager should return AE_TYPE for non-device objects (BZ 358)
-- Incomplete cleanup branch in AcpiNsEvaluateRelative (BZ 359)
-- Use AcpiOsFree instead of ACPI_FREE in AcpiRsSetSrsMethodData (BZ 360)
-- Incomplete cleanup branch in AcpiPsParseAml (BZ 361)
-- Incomplete cleanup branch in AcpiDsDeleteWalkState (BZ 362)
-- AcpiGetTableHeader returns AE_NO_ACPI_TABLES until DSDT is loaded (BZ 365)
-- Status of the Global Initialization Handler call not used (BZ 366)
-- Incorrect object parameter to Global Initialization Handler (BZ 367)
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.8K Code, 17.7K Data,  97.5K Total
-    Debug Version:     160.5K Code, 65.1K Data, 225.6K Total
-  Current Release:
-    Non-Debug Version:  80.0K Code, 17.7K Data,  97.7K Total
-    Debug Version:     160.3K Code, 64.9K Data, 225.2K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Modified the parser to allow the names IO, DMA, and IRQ to be used as 
-namespace identifiers with no collision with existing resource descriptor 
-macro names. This provides compatibility with other ASL compilers and is 
-most useful for disassembly/recompilation of existing tables without parse 
-errors. (With assistance from Thomas Renninger)
-
-Disassembler: fixed an incorrect disassembly problem with the 
-DataTableRegion and CopyObject operators. Fixed a possible fault during 
-disassembly of some Alias operators.
-
-----------------------------------------
-12 May 2006. Summary of changes for version 20060512:
-
-1) ACPI CA Core Subsystem:
-
-Replaced the AcpiOsQueueForExecution interface with a new interface named 
-AcpiOsExecute. The major difference is that the new interface does not have 
-a Priority parameter, this appeared to be useless and has been replaced by a 
-Type parameter. The Type tells the host what type of execution is being 
-requested, such as global lock handler, notify handler, GPE handler, etc. 
-This allows the host to queue and execute the request as appropriate for the 
-request type, possibly using different work queues and different priorities 
-for the various request types. This enables fixes for multithreading 
-deadlock problems such as BZ #5534, and will require changes to all existing 
-OS interface layers. (Alexey Starikovskiy and Bob Moore)
-
-Fixed a possible memory leak associated with the support for the so-called 
-"implicit return" ACPI extension. Reported by FreeBSD, BZ #6514. (Fiodor 
-Suietov)
-
-Fixed a problem with the Load() operator where a table load from an 
-operation region could overwrite an internal table buffer by up to 7 bytes 
-and cause alignment faults on IPF systems. (With assistance from Luming Yu)
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  79.7K Code, 17.7K Data,  97.4K Total
-    Debug Version:     160.1K Code, 65.2K Data, 225.3K Total
-  Current Release:
-    Non-Debug Version:  79.8K Code, 17.7K Data,  97.5K Total
-    Debug Version:     160.5K Code, 65.1K Data, 225.6K Total
-
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Implemented support to cross reference the internal namespace 
-and automatically generate ASL External() statements for symbols not defined 
-within the current table being disassembled. This will simplify the 
-disassembly and recompilation of interdependent tables such as SSDTs since 
-these statements will no longer have to be added manually.
-
-Disassembler: Implemented experimental support to automatically detect 
-invocations of external control methods and generate appropriate External() 
-statements. This is problematic because the AML cannot be correctly parsed 
-until the number of arguments for each control method is known. Currently, 
-standalone method invocations and invocations as the source operand of a 
-Store() statement are supported.
-
-Disassembler: Implemented support for the ASL pseudo-operators LNotEqual, 
-LLessEqual, and LGreaterEqual. Previously disassembled as LNot(LEqual()), 
-LNot(LGreater()), and LNot(LLess()), this makes the disassembled ASL code 
-more readable and likely closer to the original ASL source.
-
-----------------------------------------
-21 April 2006. Summary of changes for version 20060421:
-
-1) ACPI CA Core Subsystem:
-
-Removed a device initialization optimization introduced in 20051216 where 
-the _STA method was not run unless an _INI was also present for the same 
-device. This optimization could cause problems because it could allow _INI 
-methods to be run within a not-present device subtree. (If a not-present 
-device had no _INI, _STA would not be run, the not-present status would not 
-be discovered, and the children of the device would be incorrectly 
-traversed.)
-
-Implemented a new _STA optimization where namespace subtrees that do not 
-contain _INI are identified and ignored during device initialization. 
-Selectively running _STA can significantly improve boot time on large 
-machines (with assistance from Len Brown.)
-
-Implemented support for the device initialization case where the returned 
-_STA flags indicate a device not-present but functioning. In this case, _INI 
-is not run, but the device children are examined for presence, as per the 
-ACPI specification.
-
-Implemented an additional change to the IndexField support in order to 
-conform to MS behavior. The value written to the Index Register is not 
-simply a byte offset, it is a byte offset in units of the access width of 
-the parent Index Field. (Fiodor Suietov)
-
-Defined and deployed a new OSL interface, AcpiOsValidateAddress. This 
-interface is called during the creation of all AML operation regions, and 
-allows the host OS to exert control over what addresses it will allow the 
-AML code to access. Operation Regions whose addresses are disallowed will 
-cause a runtime exception when they are actually accessed (will not affect 
-or abort table loading.) See oswinxf or osunixxf for an example 
-implementation.
-
-Defined and deployed a new OSL interface, AcpiOsValidateInterface. This 
-interface allows the host OS to match the various "optional" 
-interface/behavior strings for the _OSI predefined control method as 
-appropriate (with assistance from Bjorn Helgaas.) See oswinxf or osunixxf 
-for an example implementation.
-
-Restructured and corrected various problems in the exception handling code 
-paths within DsCallControlMethod and DsTerminateControlMethod in dsmethod 
-(with assistance from Takayoshi Kochi.)
-
-Modified the Linux source converter to ignore quoted string literals while 
-converting identifiers from mixed to lower case. This will correct problems 
-with the disassembler and other areas where such strings must not be 
-modified.
-
-The ACPI_FUNCTION_* macros no longer require quotes around the function 
-name. This allows the Linux source converter to convert the names, now that 
-the converter ignores quoted strings.
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-
-    Non-Debug Version:  81.1K Code, 17.7K Data,  98.8K Total
-    Debug Version:     158.9K Code, 64.9K Data, 223.8K Total
-  Current Release:
-    Non-Debug Version:  79.7K Code, 17.7K Data,  97.4K Total
-    Debug Version:     160.1K Code, 65.2K Data, 225.3K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Implemented 3 new warnings for iASL, and implemented multiple warning levels 
-(w2 flag).
-
-1) Ignored timeouts: If the TimeoutValue parameter to Wait or Acquire is not 
-WAIT_FOREVER (0xFFFF) and the code does not examine the return value to 
-check for the possible timeout, a warning is issued.
-
-2) Useless operators: If an ASL operator does not specify an optional target 
-operand and it also does not use the function return value from the 
-operator, a warning is issued since the operator effectively does nothing.
-
-3) Unreferenced objects: If a namespace object is created, but never 
-referenced, a warning is issued. This is a warning level 2 since there are 
-cases where this is ok, such as when a secondary table is loaded that uses 
-the unreferenced objects. Even so, care is taken to only flag objects that 
-don't look like they will ever be used. For example, the reserved methods 
-(starting with an underscore) are usually not referenced because it is 
-expected that the OS will invoke them.
-
-----------------------------------------
-31 March 2006. Summary of changes for version 20060331:
-
-1) ACPI CA Core Subsystem:
-
-Implemented header file support for the following additional ACPI tables: 
-ASF!, BOOT, CPEP, DBGP, MCFG, SPCR, SPMI, TCPA, and WDRT. With this support, 
-all current and known ACPI tables are now defined in the ACPICA headers and 
-are available for use by device drivers and other software.
-
-Implemented support to allow tables that contain ACPI names with invalid 
-characters to be loaded. Previously, this would cause the table load to 
-fail, but since there are several known cases of such tables on existing 
-machines, this change was made to enable ACPI support for them. Also, this 
-matches the behavior of the Microsoft ACPI implementation.
-
-Fixed a couple regressions introduced during the memory optimization in the 
-20060317 release. The namespace node definition required additional 
-reorganization and an internal datatype that had been changed to 8-bit was 
-restored to 32-bit. (Valery Podrezov)
-
-Fixed a problem where a null pointer passed to AcpiUtDeleteGenericState 
-could be passed through to AcpiOsReleaseObject which is unexpected. Such 
-null pointers are now trapped and ignored, matching the behavior of the 
-previous implementation before the deployment of AcpiOsReleaseObject.
-(Valery Podrezov, Fiodor Suietov)
-
-Fixed a memory mapping leak during the deletion of a SystemMemory operation 
-region where a cached memory mapping was not deleted. This became a 
-noticeable problem for operation regions that are defined within frequently 
-used control methods. (Dana Meyers)
-
-Reorganized the ACPI table header files into two main files: one for the 
-ACPI tables consumed by the ACPICA core, and another for the miscellaneous 
-ACPI tables that are consumed by the drivers and other software. The various 
-FADT definitions were merged into one common section and three different 
-tables (ACPI 1.0, 1.0+, and 2.0)
-
-Example Code and Data Size: These are the sizes for the OS-independent 
-acpica.lib produced by the Microsoft Visual C++ 6.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:
-    Non-Debug Version:  80.9K Code, 17.7K Data,  98.6K Total
-    Debug Version:     158.7K Code, 64.8K Data, 223.5K Total
-  Current Release:
-    Non-Debug Version:  81.1K Code, 17.7K Data,  98.8K Total
-    Debug Version:     158.9K Code, 64.9K Data, 223.8K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Implemented support to decode and format all non-AML ACPI 
-tables (tables other than DSDTs and SSDTs.) This includes the new tables 
-added to the ACPICA headers, therefore all current and known ACPI tables are 
-supported.
-
-Disassembler: The change to allow ACPI names with invalid characters also 
-enables the disassembly of such tables. Invalid characters within names are 
-changed to '*' to make the name printable; the iASL compiler will still 
-generate an error for such names, however, since this is an invalid ACPI 
-character.
-
-Implemented an option for AcpiXtract (-a) to extract all tables found in the 
-input file. The default invocation extracts only the DSDTs and SSDTs.
-
-Fixed a couple of gcc generation issues for iASL and AcpiExec and added a 
-makefile for the AcpiXtract utility.
-
-----------------------------------------
-17 March 2006. Summary of changes for version 20060317:
-
-1) ACPI CA Core Subsystem:
-
-Implemented the use of a cache object for all internal namespace nodes. 
-Since there are about 1000 static nodes in a typical system, this will 
-decrease memory use for cache implementations that minimize per-allocation 
-overhead (such as a slab allocator.)
-
-Removed the reference count mechanism for internal namespace nodes, since it 
-was deemed unnecessary. This reduces the size of each namespace node by 
-about 5%-10% on all platforms. Nodes are now 20 bytes for the 32-bit case, 
-and 32 bytes for the 64-bit case.
-
-Optimized several internal data structures to reduce object size on 64-bit 
-platforms by packing data within the 64-bit alignment. This includes the 
-frequently used ACPI_OPERAND_OBJECT, of which there can be ~1000 static 
-instances corresponding to the namespace objects.
-
-Added two new strings for the predefined _OSI method: "Windows 2001.1 SP1" 
-and "Windows 2006".
-
-Split the allocation tracking mechanism out to a separate file, from 
-utalloc.c to uttrack.c. This mechanism appears to be only useful for 
-application-level code. Kernels may wish to not include uttrack.c in 
-distributions.
-
-Removed all remnants of the obsolete ACPI_REPORT_* macros and the associated 
-code. (These macros have been replaced by the ACPI_ERROR and ACPI_WARNING 
-macros.)
-
-Code and Data Size: These are the sizes for the acpica.lib produced by the 
-Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any ACPI 
-driver or OSPM code. The debug version of the code includes the debug output 
-trace mechanism and has a much larger code and data size. Note that these 
-values will vary depending on the efficiency of the compiler and the 
-compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  81.1K Code, 17.8K Data,  98.9K Total
-    Debug Version:     161.6K Code, 65.7K Data, 227.3K Total
-  Current Release:
-    Non-Debug Version:  80.9K Code, 17.7K Data,  98.6K Total
-    Debug Version:     158.7K Code, 64.8K Data, 223.5K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Implemented an ANSI C version of the acpixtract utility. This version will 
-automatically extract the DSDT and all SSDTs from the input acpidump text 
-file and dump the binary output to separate files. It can also display a 
-summary of the input file including the headers for each table found and 
-will extract any single ACPI table, with any signature. (See 
-source/tools/acpixtract)
-
-----------------------------------------
-10 March 2006. Summary of changes for version 20060310:
-
-1) ACPI CA Core Subsystem:
-
-Tagged all external interfaces to the subsystem with the new 
-ACPI_EXPORT_SYMBOL macro. This macro can be defined as necessary to assist 
-kernel integration. For Linux, the macro resolves to the EXPORT_SYMBOL 
-macro. The default definition is NULL.
-
-Added the ACPI_THREAD_ID type for the return value from AcpiOsGetThreadId. 
-This allows the host to define this as necessary to simplify kernel 
-integration. The default definition is ACPI_NATIVE_UINT.
-
-Fixed two interpreter problems related to error processing, the deletion of 
-objects, and placing invalid pointers onto the internal operator result 
-stack. BZ 6028, 6151 (Valery Podrezov)
-
-Increased the reference count threshold where a warning is emitted for large 
-reference counts in order to eliminate unnecessary warnings on systems with 
-large namespaces (especially 64-bit.) Increased the value from 0x400 to 
-0x800.
-
-Due to universal disagreement as to the meaning of the 'c' in the calloc() 
-function, the ACPI_MEM_CALLOCATE macro has been renamed to 
-ACPI_ALLOCATE_ZEROED so that the purpose of the interface is 'clear'. 
-ACPI_MEM_ALLOCATE and ACPI_MEM_FREE are renamed to ACPI_ALLOCATE and 
-ACPI_FREE.
-
-Code and Data Size: These are the sizes for the acpica.lib produced by the 
-Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any ACPI 
-driver or OSPM code. The debug version of the code includes the debug output 
-trace mechanism and has a much larger code and data size. Note that these 
-values will vary depending on the efficiency of the compiler and the 
-compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  81.0K Code, 17.8K Data,  98.8K Total
-    Debug Version:     161.4K Code, 65.7K Data, 227.1K Total
-  Current Release:
-    Non-Debug Version:  81.1K Code, 17.8K Data,  98.9K Total
-    Debug Version:     161.6K Code, 65.7K Data, 227.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Disassembler: implemented support for symbolic resource descriptor 
-references. If a CreateXxxxField operator references a fixed offset within a 
-resource descriptor, a name is assigned to the descriptor and the offset is 
-translated to the appropriate resource tag and pathname. The addition of 
-this support brings the disassembled code very close to the original ASL 
-source code and helps eliminate run-time errors when the disassembled code 
-is modified (and recompiled) in such a way as to invalidate the original 
-fixed offsets.
-
-Implemented support for a Descriptor Name as the last parameter to the ASL 
-Register() macro. This parameter was inadvertently left out of the ACPI 
-specification, and will be added for ACPI 3.0b.
-
-Fixed a problem where the use of the "_OSI" string (versus the full path 
-"\_OSI") caused an internal compiler error. ("No back ptr to op")
-
-Fixed a problem with the error message that occurs when an invalid string is 
-used for a _HID object (such as one with an embedded asterisk: "*PNP010A".) 
-The correct message is now displayed.
-
-----------------------------------------
-17 February 2006. Summary of changes for version 20060217:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a change to the IndexField support to match the behavior of the 
-Microsoft AML interpreter. The value written to the Index register is now a 
-byte offset, no longer an index based upon the width of the Data register. 
-This should fix IndexField problems seen on some machines where the Data 
-register is not exactly one byte wide. The ACPI specification will be 
-clarified on this point.
-
-Fixed a problem where several resource descriptor types could overrun the 
-internal descriptor buffer due to size miscalculation: VendorShort, 
-VendorLong, and Interrupt. This was noticed on IA64 machines, but could 
-affect all platforms.
-
-Fixed a problem where individual resource descriptors were misaligned within 
-the internal buffer, causing alignment faults on IA64 platforms.
-
-Code and Data Size: These are the sizes for the acpica.lib produced by the 
-Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any ACPI 
-driver or OSPM code. The debug version of the code includes the debug output 
-trace mechanism and has a much larger code and data size. Note that these 
-values will vary depending on the efficiency of the compiler and the 
-compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  81.1K Code, 17.8K Data,  98.9K Total
-    Debug Version:     161.3K Code, 65.6K Data, 226.9K Total
-  Current Release:
-    Non-Debug Version:  81.0K Code, 17.8K Data,  98.8K Total
-    Debug Version:     161.4K Code, 65.7K Data, 227.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for new reserved names: _WDG and _WED are Microsoft 
-extensions for Windows Instrumentation Management, _TDL is a new ACPI-
-defined method (Throttling Depth Limit.)
-
-Fixed a problem where a zero-length VendorShort or VendorLong resource 
-descriptor was incorrectly emitted as a descriptor of length one.
-
-----------------------------------------
-10 February 2006. Summary of changes for version 20060210:
-
-1) ACPI CA Core Subsystem:
-
-Removed a couple of extraneous ACPI_ERROR messages that appeared during 
-normal execution. These became apparent after the conversion from 
-ACPI_DEBUG_PRINT.
-
-Fixed a problem where the CreateField operator could hang if the BitIndex or 
-NumBits parameter referred to a named object. (Valery Podrezov, BZ 5359)
-
-Fixed a problem where a DeRefOf operation on a buffer object incorrectly 
-failed with an exception. This also fixes a couple of related RefOf and 
-DeRefOf issues. (Valery Podrezov, BZ 5360/5392/5387)
-
-Fixed a problem where the AE_BUFFER_LIMIT exception was returned instead of 
-AE_STRING_LIMIT on an out-of-bounds Index() operation. (Valery Podrezov, BZ 
-5480)
-
-Implemented a memory cleanup at the end of the execution of each iteration 
-of an AML While() loop, preventing the accumulation of outstanding objects. 
-(Valery Podrezov, BZ 5427)
-
-Eliminated a chunk of duplicate code in the object resolution code. (Valery 
-Podrezov, BZ 5336)
-
-Fixed several warnings during the 64-bit code generation.
-
-The AcpiSrc source code conversion tool now inserts one line of whitespace 
-after an if() statement that is followed immediately by a comment, improving 
-readability of the Linux code.
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  81.0K Code, 17.9K Data,  98.9K Total
-    Debug Version:     161.3K Code, 65.7K Data, 227.0K Total
-  Current Release:
-    Non-Debug Version:  81.1K Code, 17.8K Data,  98.9K Total
-    Debug Version:     161.3K Code, 65.6K Data, 226.9K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the disassembly of a BankField operator with a complex 
-expression for the BankValue parameter.
-
-----------------------------------------
-27 January 2006. Summary of changes for version 20060127:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support in the Resource Manager to allow unresolved namestring 
-references within resource package objects for the _PRT method. This support 
-is in addition to the previously implemented unresolved reference support 
-within the AML parser. If the interpreter slack mode is enabled, these 
-unresolved references will be passed through to the caller as a NULL package 
-entry.
-
-Implemented and deployed new macros and functions for error and warning 
-messages across the subsystem. These macros are simpler and generate less 
-code than their predecessors. The new macros ACPI_ERROR, ACPI_EXCEPTION, 
-ACPI_WARNING, and ACPI_INFO replace the ACPI_REPORT_* macros. The older 
-macros remain defined to allow ACPI drivers time to migrate to the new 
-macros.
-
-Implemented the ACPI_CPU_FLAGS type to simplify host OS integration of the 
-Acquire/Release Lock OSL interfaces.
-
-Fixed a problem where Alias ASL operators are sometimes not correctly 
-resolved, in both the interpreter and the iASL compiler.
-
-Fixed several problems with the implementation of the ConcatenateResTemplate 
-ASL operator. As per the ACPI specification, zero length buffers are now 
-treated as a single EndTag. One-length buffers always cause a fatal 
-exception. Non-zero length buffers that do not end with a full 2-byte EndTag 
-cause a fatal exception.
-
-Fixed a possible structure overwrite in the AcpiGetObjectInfo external 
-interface. (With assistance from Thomas Renninger)
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  83.1K Code, 18.4K Data, 101.5K Total
-    Debug Version:     163.2K Code, 66.2K Data, 229.4K Total
-  Current Release:
-    Non-Debug Version:  81.0K Code, 17.9K Data,  98.9K Total
-    Debug Version:     161.3K Code, 65.7K Data, 227.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed an internal error that was generated for any forward references to ASL 
-Alias objects.
-
-----------------------------------------
-13 January 2006. Summary of changes for version 20060113:
-
-1) ACPI CA Core Subsystem:
-
-Added 2006 copyright to all module headers and signons. This affects 
-virtually every file in the ACPICA core subsystem, iASL compiler, and the 
-utilities.
-Enhanced the ACPICA error reporting in order to simplify user migration to 
-the non-debug version of ACPICA. Replaced all instances of the 
-ACPI_DEBUG_PRINT macro invoked at the ACPI_DB_ERROR and ACPI_DB_WARN debug 
-levels with the ACPI_REPORT_ERROR and ACPI_REPORT_WARNING macros, 
-respectively. This preserves all error and warning messages in the non-debug 
-version of the ACPICA code (this has been referred to as the "debug lite" 
-option.) Over 200 cases were converted to create a total of over 380 
-error/warning messages across the ACPICA code. This increases the code and 
-data size of the default non-debug version of the code somewhat (about 13K), 
-but all error/warning reporting may be disabled if desired (and code 
-eliminated) by specifying the ACPI_NO_ERROR_MESSAGES compile-time 
-configuration option. The size of the debug version of ACPICA remains about 
-the same.
-
-Fixed a memory leak within the AML Debugger "Set" command. One object was 
-not properly deleted for every successful invocation of the command.
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  76.6K Code, 12.3K Data,  88.9K Total
-    Debug Version:     163.7K Code, 67.5K Data, 231.2K Total
-  Current Release:
-    Non-Debug Version:  83.1K Code, 18.4K Data, 101.5K Total
-    Debug Version:     163.2K Code, 66.2K Data, 229.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-The compiler now officially supports the ACPI 3.0a specification that was 
-released on December 30, 2005. (Specification is available at www.acpi.info)
-
-----------------------------------------
-16 December 2005. Summary of changes for version 20051216:
-
-1) ACPI CA Core Subsystem:
-
-Implemented optional support to allow unresolved names within ASL Package 
-objects. A null object is inserted in the package when a named reference 
-cannot be located in the current namespace. Enabled via the interpreter 
-slack flag, this should eliminate AE_NOT_FOUND exceptions seen on machines 
-that contain such code.
-
-Implemented an optimization to the initialization sequence that can improve 
-boot time. During ACPI device initialization, the _STA method is now run if 
-and only if the _INI method exists. The _STA method is used to determine if 
-the device is present; An _INI can only be run if _STA returns present, but 
-it is a waste of time to run the _STA method if the _INI does not exist. 
-(Prototype and assistance from Dong Wei)
-
-Implemented use of the C99 uintptr_t for the pointer casting macros if it is 
-available in the current compiler. Otherwise, the default (void *) cast is 
-used as before.
-
-Fixed some possible memory leaks found within the execution path of the 
-Break, Continue, If, and CreateField operators. (Valery Podrezov)
-
-Fixed a problem introduced in the 20051202 release where an exception is 
-generated during method execution if a control method attempts to declare 
-another method.
-
-Moved resource descriptor string constants that are used by both the AML 
-disassembler and AML debugger to the common utilities directory so that 
-these components are independent.
-
-Implemented support in the AcpiExec utility (-e switch) to globally ignore 
-exceptions during control method execution (method is not aborted.)
-
-Added the rsinfo.c source file to the AcpiExec makefile for Linux/Unix 
-generation.
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  76.3K Code, 12.3K Data,  88.6K Total
-    Debug Version:     163.2K Code, 67.4K Data, 230.6K Total
-  Current Release:
-    Non-Debug Version:  76.6K Code, 12.3K Data,  88.9K Total
-    Debug Version:     163.7K Code, 67.5K Data, 231.2K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem where a CPU stack overflow fault could occur if a recursive 
-method call was made from within a Return statement.
-
-----------------------------------------
-02 December 2005. Summary of changes for version 20051202:
-
-1) ACPI CA Core Subsystem:
-
-Modified the parsing of control methods to no longer create namespace 
-objects during the first pass of the parse. Objects are now created only 
-during the execute phase, at the moment the namespace creation operator is 
-encountered in the AML (Name, OperationRegion, CreateByteField, etc.) This 
-should eliminate ALREADY_EXISTS exceptions seen on some machines where 
-reentrant control methods are protected by an AML mutex. The mutex will now 
-correctly block multiple threads from attempting to create the same object 
-more than once.
-
-Increased the number of available Owner Ids for namespace object tracking 
-from 32 to 255. This should eliminate the OWNER_ID_LIMIT exceptions seen on 
-some machines with a large number of ACPI tables (either static or dynamic).
-
-Fixed a problem with the AcpiExec utility where a fault could occur when the 
--b switch (batch mode) is used.
-
-Enhanced the namespace dump routine to output the owner ID for each 
-namespace object.
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  76.3K Code, 12.3K Data,  88.6K Total
-    Debug Version:     163.0K Code, 67.4K Data, 230.4K Total
-  Current Release:
-    Non-Debug Version:  76.3K Code, 12.3K Data,  88.6K Total
-    Debug Version:     163.2K Code, 67.4K Data, 230.6K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a parse error during compilation of certain Switch/Case constructs. To 
-simplify the parse, the grammar now allows for multiple Default statements 
-and this error is now detected and flagged during the analysis phase.
-
-Disassembler: The disassembly now includes the contents of the original 
-table header within a comment at the start of the file. This includes the 
-name and version of the original ASL compiler.
-
-----------------------------------------
-17 November 2005. Summary of changes for version 20051117:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem in the AML parser where the method thread count could be 
-decremented below zero if any errors occurred during the method parse phase. 
-This should eliminate AE_AML_METHOD_LIMIT exceptions seen on some machines. 
-This also fixed a related regression with the mechanism that detects and 
-corrects methods that cannot properly handle reentrancy (related to the 
-deployment of the new OwnerId mechanism.)
-
-Eliminated the pre-parsing of control methods (to detect errors) during 
-table load. Related to the problem above, this was causing unwind issues if 
-any errors occurred during the parse, and it seemed to be overkill. A table 
-load should not be aborted if there are problems with any single control 
-method, thus rendering this feature rather pointless.
-
-Fixed a problem with the new table-driven resource manager where an internal 
-buffer overflow could occur for small resource templates.
-
-Implemented a new external interface, AcpiGetVendorResource. This interface 
-will find and return a vendor-defined resource descriptor within a _CRS or 
-_PRS method via an ACPI 3.0 UUID match. With assistance from Bjorn Helgaas.
-
-Removed the length limit (200) on string objects as per the upcoming ACPI 
-3.0A specification. This affects the following areas of the interpreter: 1) 
-any implicit conversion of a Buffer to a String, 2) a String object result 
-of the ASL Concatentate operator, 3) the String object result of the ASL 
-ToString operator.
-
-Fixed a problem in the Windows OS interface layer (OSL) where a WAIT_FOREVER 
-on a semaphore object would incorrectly timeout. This allows the 
-multithreading features of the AcpiExec utility to work properly under 
-Windows.
-
-Updated the Linux makefiles for the iASL compiler and AcpiExec to include 
-the recently added file named "utresrc.c".
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  76.2K Code, 12.3K Data,  88.5K Total
-    Debug Version:     163.0K Code, 67.4K Data, 230.4K Total
-  Current Release:
-    Non-Debug Version:  76.3K Code, 12.3K Data,  88.6K Total
-    Debug Version:     163.0K Code, 67.4K Data, 230.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Removed the limit (200) on string objects as per the upcoming ACPI 3.0A 
-specification. For the iASL compiler, this means that string literals within 
-the source ASL can be of any length. 
-
-Enhanced the listing output to dump the AML code for resource descriptors 
-immediately after the ASL code for each descriptor, instead of in a block at 
-the end of the entire resource template.
-
-Enhanced the compiler debug output to dump the entire original parse tree 
-constructed during the parse phase, before any transforms are applied to the 
-tree. The transformed tree is dumped also.
-
-----------------------------------------
-02 November 2005. Summary of changes for version 20051102:
-
-1) ACPI CA Core Subsystem:
-
-Modified the subsystem initialization sequence to improve GPE support. The 
-GPE initialization has been split into two parts in order to defer execution 
-of the _PRW methods (Power Resources for Wake) until after the hardware is 
-fully initialized and the SCI handler is installed. This allows the _PRW 
-methods to access fields protected by the Global Lock. This will fix systems 
-where a NO_GLOBAL_LOCK exception has been seen during initialization.
-
-Converted the ACPI internal object disassemble and display code within the 
-AML debugger to fully table-driven operation, reducing code size and 
-increasing maintainability.
-
-Fixed a regression with the ConcatenateResTemplate() ASL operator introduced 
-in the 20051021 release.
-
-Implemented support for "local" internal ACPI object types within the 
-debugger "Object" command and the AcpiWalkNamespace external interfaces. 
-These local types include RegionFields, BankFields, IndexFields, Alias, and 
-reference objects.
-
-Moved common AML resource handling code into a new file, "utresrc.c". This 
-code is shared by both the Resource Manager and the AML Debugger.
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  76.1K Code, 12.2K Data,  88.3K Total
-    Debug Version:     163.5K Code, 67.0K Data, 230.5K Total
-  Current Release:
-    Non-Debug Version:  76.2K Code, 12.3K Data,  88.5K Total
-    Debug Version:     163.0K Code, 67.4K Data, 230.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with very large initializer lists (more than 4000 elements) 
-for both Buffer and Package objects where the parse stack could overflow.
-
-Enhanced the pre-compile source code scan for non-ASCII characters to ignore 
-characters within comment fields. The scan is now always performed and is no 
-longer optional, detecting invalid characters within a source file 
-immediately rather than during the parse phase or later.
-
-Enhanced the ASL grammar definition to force early reductions on all list-
-style grammar elements so that the overall parse stack usage is greatly 
-reduced. This should improve performance and reduce the possibility of parse 
-stack overflow.
-
-Eliminated all reduce/reduce conflicts in the iASL parser generation. Also, 
-with the addition of a %expected statement, the compiler generates from 
-source with no warnings.
-
-Fixed a possible segment fault in the disassembler if the input filename 
-does not contain a "dot" extension (Thomas Renninger).
-
-----------------------------------------
-21 October 2005. Summary of changes for version 20051021:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for the EM64T and other x86-64 processors. This 
-essentially entails recognizing that these processors support non-aligned 
-memory transfers. Previously, all 64-bit processors were assumed to lack 
-hardware support for non-aligned transfers.
-
-Completed conversion of the Resource Manager to nearly full table-driven 
-operation. Specifically, the resource conversion code (convert AML to 
-internal format and the reverse) and the debug code to dump internal 
-resource descriptors are fully table-driven, reducing code and data size and 
-improving maintainability.
-
-The OSL interfaces for Acquire and Release Lock now use a 64-bit flag word 
-on 64-bit processors instead of a fixed 32-bit word. (With assistance from 
-Alexey Starikovskiy)
-
-Implemented support within the resource conversion code for the Type-
-Specific byte within the various ACPI 3.0 *WordSpace macros.
-
-Fixed some issues within the resource conversion code for the type-specific 
-flags for both Memory and I/O address resource descriptors. For Memory, 
-implemented support for the MTP and TTP flags. For I/O, split the TRS and 
-TTP flags into two separate fields.
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.1K Code, 12.1K Data,  89.2K Total
-    Debug Version:     168.0K Code, 68.3K Data, 236.3K Total
-  Current Release:
-    Non-Debug Version:  76.1K Code, 12.2K Data,  88.3K Total
-    Debug Version:     163.5K Code, 67.0K Data, 230.5K Total
-
-
-
-2) iASL Compiler/Disassembler:
-
-Relaxed a compiler restriction that disallowed a ResourceIndex byte if the 
-corresponding ResourceSource string was not also present in a resource 
-descriptor declaration. This restriction caused problems with existing 
-AML/ASL code that includes the Index byte without the string. When such AML 
-was disassembled, it could not be compiled without modification. Further, 
-the modified code created a resource template with a different size than the 
-original, breaking code that used fixed offsets into the resource template 
-buffer.
-
-Removed a recent feature of the disassembler to ignore a lone ResourceIndex 
-byte. This byte is now emitted if present so that the exact AML can be 
-reproduced when the disassembled code is recompiled.
-
-Improved comments and text alignment for the resource descriptor code 
-emitted by the disassembler.
-
-Implemented disassembler support for the ACPI 3.0 AccessSize field within a 
-Register() resource descriptor.
-
-----------------------------------------
-30 September 2005. Summary of changes for version 20050930:
-
-1) ACPI CA Core Subsystem:
-
-Completed a major overhaul of the Resource Manager code - specifically, 
-optimizations in the area of the AML/internal resource conversion code. The 
-code has been optimized to simplify and eliminate duplicated code, CPU stack 
-use has been decreased by optimizing function parameters and local 
-variables, and naming conventions across the manager have been standardized 
-for clarity and ease of maintenance (this includes function, parameter, 
-variable, and struct/typedef names.) The update may force changes in some 
-driver code, depending on how resources are handled by the host OS.
-
-All Resource Manager dispatch and information tables have been moved to a 
-single location for clarity and ease of maintenance. One new file was 
-created, named "rsinfo.c".
-
-The ACPI return macros (return_ACPI_STATUS, etc.) have been modified to 
-guarantee that the argument is not evaluated twice, making them less prone 
-to macro side-effects. However, since there exists the possibility of 
-additional stack use if a particular compiler cannot optimize them (such as 
-in the debug generation case), the original macros are optionally available.  
-Note that some invocations of the return_VALUE macro may now cause size 
-mismatch warnings; the return_UINT8 and return_UINT32 macros are provided to 
-eliminate these. (From Randy Dunlap)
-
-Implemented a new mechanism to enable debug tracing for individual control 
-methods. A new external interface, AcpiDebugTrace, is provided to enable 
-this mechanism. The intent is to allow the host OS to easily enable and 
-disable tracing for problematic control methods. This interface can be 
-easily exposed to a user or debugger interface if desired. See the file 
-psxface.c for details.
-
-AcpiUtCallocate will now return a valid pointer if a length of zero is 
-specified - a length of one is used and a warning is issued. This matches 
-the behavior of AcpiUtAllocate.
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.5K Code, 12.0K Data,  89.5K Total
-    Debug Version:     168.1K Code, 68.4K Data, 236.5K Total
-  Current Release:
-    Non-Debug Version:  77.1K Code, 12.1K Data,  89.2K Total
-    Debug Version:     168.0K Code, 68.3K Data, 236.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-A remark is issued if the effective compile-time length of a package or 
-buffer is zero. Previously, this was a warning.
-
-----------------------------------------
-16 September 2005. Summary of changes for version 20050916:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem within the Resource Manager where support for the Generic 
-Register descriptor was not fully implemented. This descriptor is now fully 
-recognized, parsed, disassembled, and displayed.
-
-Completely restructured the Resource Manager code to utilize table-driven 
-dispatch and lookup, eliminating many of the large switch() statements. This 
-reduces overall subsystem code size and code complexity. Affects the 
-resource parsing and construction, disassembly, and debug dump output.
-
-Cleaned up and restructured the debug dump output for all resource 
-descriptors. Improved readability of the output and reduced code size.
-
-Fixed a problem where changes to internal data structures caused the 
-optional ACPI_MUTEX_DEBUG code to fail compilation if specified.
-
-Code and Data Size: The current and previous library sizes for the core 
-subsystem are shown below. These are the code and data sizes for the 
-acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These 
-values do not include any ACPI driver or OSPM code. The debug version of the 
-code includes the debug output trace mechanism and has a much larger code 
-and data size. Note that these values will vary depending on the efficiency 
-of the compiler and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.4K Code, 11.8K Data,  90.2K Total
-    Debug Version:     169.6K Code, 69.9K Data, 239.5K Total
-  Current Release:
-    Non-Debug Version:  77.5K Code, 12.0K Data,  89.5K Total
-    Debug Version:     168.1K Code, 68.4K Data, 236.5K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Updated the disassembler to automatically insert an EndDependentFn() macro 
-into the ASL stream if this macro is missing in the original AML code, 
-simplifying compilation of the resulting ASL module.
-
-Fixed a problem in the disassembler where a disassembled ResourceSource 
-string (within a large resource descriptor) was not surrounded by quotes and 
-not followed by a comma, causing errors when the resulting ASL module was 
-compiled. Also, escape sequences within a ResourceSource string are now 
-handled correctly (especially "\\")
-
-----------------------------------------
-02 September 2005. Summary of changes for version 20050902:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with the internal Owner ID allocation and deallocation 
-mechanisms for control method execution and recursive method invocation. 
-This should eliminate the OWNER_ID_LIMIT exceptions and "Invalid OwnerId" 
-messages seen on some systems. Recursive method invocation depth is 
-currently limited to 255. (Alexey Starikovskiy)
-
-Completely eliminated all vestiges of support for the "module-level 
-executable code" until this support is fully implemented and debugged. This 
-should eliminate the NO_RETURN_VALUE exceptions seen during table load on 
-some systems that invoke this support.
-
-Fixed a problem within the resource manager code where the transaction flags 
-for a 64-bit address descriptor were handled incorrectly in the type-
-specific flag byte.
-
-Consolidated duplicate code within the address descriptor resource manager 
-code, reducing overall subsystem code size.
-
-Fixed a fault when using the AML debugger "disassemble" command to 
-disassemble individual control methods.
-
-Removed references to the "release_current" directory within the Unix 
-release package.
-
-Code and Data Size: The current and previous core subsystem library sizes 
-are shown below. These are the code and data sizes for the acpica.lib 
-produced by the Microsoft Visual C++ 6.0 compiler. These values do not 
-include any ACPI driver or OSPM code. The debug version of the code includes 
-the debug output trace mechanism and has a much larger code and data size. 
-Note that these values will vary depending on the efficiency of the compiler 
-and the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.6K Code, 11.7K Data,  90.3K Total
-    Debug Version:     170.0K Code, 69.9K Data, 239.9K Total
-  Current Release:
-    Non-Debug Version:  78.4K Code, 11.8K Data,  90.2K Total
-    Debug Version:     169.6K Code, 69.9K Data, 239.5K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented an error check for illegal duplicate values in the interrupt and 
-dma lists for the following ASL macros: Dma(), Irq(), IrqNoFlags(), and 
-Interrupt().
-
-Implemented error checking for the Irq() and IrqNoFlags() macros to detect 
-too many values in the interrupt list (16 max) and invalid values in the 
-list (range 0 - 15)
-
-The maximum length string literal within an ASL file is now restricted to 
-200 characters as per the ACPI specification.
-
-Fixed a fault when using the -ln option (generate namespace listing).
-
-Implemented an error check to determine if a DescriptorName within a 
-resource descriptor has already been used within the current scope.
-
-----------------------------------------
-15 August 2005.  Summary of changes for version 20050815:
-1) ACPI CA Core Subsystem:
-Implemented a full bytewise compare to determine if a table load request is 
-attempting to load a duplicate table. The compare is performed if the table 
-signatures and table lengths match. This will allow different tables with 
-the same OEM Table ID and revision to be loaded - probably against the ACPI 
-specification, but discovered in the field nonetheless.
-Added the changes.txt logfile to each of the zipped release packages.
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-  Previous Release:
-    Non-Debug Version:  78.6K Code, 11.7K Data,  90.3K Total
-    Debug Version:     167.0K Code, 69.9K Data, 236.9K Total
-  Current Release:
-    Non-Debug Version:  78.6K Code, 11.7K Data,  90.3K Total
-    Debug Version:     170.0K Code, 69.9K Data, 239.9K Total
-2) iASL Compiler/Disassembler:
-Fixed a problem where incorrect AML code could be generated for Package 
-objects if optimization is disabled (via the -oa switch).
-Fixed a problem with where incorrect AML code is generated for variable-
-length packages when the package length is not specified and the number of 
-initializer values is greater than 255.
-
-----------------------------------------
-29 July 2005.  Summary of changes for version 20050729:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support to ignore an attempt to install/load a particular ACPI 
-table more than once. Apparently there exists BIOS code that repeatedly 
-attempts to load the same SSDT upon certain events. With assistance from 
-Venkatesh Pallipadi.
-
-Restructured the main interface to the AML parser in order to correctly 
-handle all exceptional conditions. This will prevent leakage of the OwnerId 
-resource and should eliminate the AE_OWNER_ID_LIMIT exceptions seen on some 
-machines. With assistance from Alexey Starikovskiy.
-
-Support for "module level code" has been disabled in this version due to a 
-number of issues that have appeared on various machines. The support can be 
-enabled by defining ACPI_ENABLE_MODULE_LEVEL_CODE during subsystem 
-compilation. When the issues are fully resolved, the code will be enabled by 
-default again.
-
-Modified the internal functions for debug print support to define the 
-FunctionName parameter as a (const char *) for compatibility with compiler 
-built-in macros such as __FUNCTION__, etc.
-
-Linted the entire ACPICA source tree for both 32-bit and 64-bit.
-
-Implemented support to display an object count summary for the AML Debugger 
-commands Object and Methods.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.6K Code, 11.6K Data,  90.2K Total
-    Debug Version:     170.0K Code, 69.7K Data, 239.7K Total
-  Current Release:
-    Non-Debug Version:  78.6K Code, 11.7K Data,  90.3K Total
-    Debug Version:     167.0K Code, 69.9K Data, 236.9K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a regression that appeared in the 20050708 version of the compiler 
-where an error message was inadvertently emitted for invocations of the _OSI 
-reserved control method.
-
-----------------------------------------
-08 July 2005.  Summary of changes for version 20050708:
-
-1) ACPI CA Core Subsystem:
-
-The use of the CPU stack in the debug version of the subsystem has been 
-considerably reduced. Previously, a debug structure was declared in every 
-function that used the debug macros. This structure has been removed in 
-favor of declaring the individual elements as parameters to the debug 
-functions. This reduces the cumulative stack use during nested execution of 
-ACPI function calls at the cost of a small increase in the code size of the 
-debug version of the subsystem. With assistance from Alexey Starikovskiy and 
-Len Brown.
-
-Added the ACPI_GET_FUNCTION_NAME macro to enable the compiler-dependent 
-headers to define a macro that will return the current function name at 
-runtime (such as __FUNCTION__ or _func_, etc.) The function name is used by 
-the debug trace output. If ACPI_GET_FUNCTION_NAME is not defined in the 
-compiler-dependent header, the function name is saved on the CPU stack (one 
-pointer per function.) This mechanism is used because apparently there 
-exists no standard ANSI-C defined macro that that returns the function name.
-
-Redesigned and reimplemented the "Owner ID" mechanism used to track 
-namespace objects created/deleted by ACPI tables and control method 
-execution. A bitmap is now used to allocate and free the IDs, thus solving 
-the wraparound problem present in the previous implementation. The size of 
-the namespace node descriptor was reduced by 2 bytes as a result (Alexey 
-Starikovskiy).
-
-Removed the UINT32_BIT and UINT16_BIT types that were used for the bitfield 
-flag definitions within the headers for the predefined ACPI tables. These 
-have been replaced by UINT8_BIT in order to increase the code portability of 
-the subsystem. If the use of UINT8 remains a problem, we may be forced to 
-eliminate bitfields entirely because of a lack of portability.
-
-Enhanced the performance of the AcpiUtUpdateObjectReference procedure. This 
-is a frequently used function and this improvement increases the performance 
-of the entire subsystem (Alexey Starikovskiy).
-
-Fixed several possible memory leaks and the inverse - premature object 
-deletion (Alexey Starikovskiy).
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.6K Code, 11.5K Data,  90.1K Total
-    Debug Version:     165.2K Code, 69.6K Data, 234.8K Total
-  Current Release:
-    Non-Debug Version:  78.6K Code, 11.6K Data,  90.2K Total
-    Debug Version:     170.0K Code, 69.7K Data, 239.7K Total
-
-----------------------------------------
-24 June 2005.  Summary of changes for version 20050624:
-
-1) ACPI CA Core Subsystem:
-
-Modified the new OSL cache interfaces to use ACPI_CACHE_T as the type for 
-the host-defined cache object. This allows the OSL implementation to define 
-and type this object in any manner desired, simplifying the OSL 
-implementation. For example, ACPI_CACHE_T is defined as kmem_cache_t for 
-Linux, and should be defined in the OS-specific header file for other 
-operating systems as required.
-
-Changed the interface to AcpiOsAcquireObject to directly return the 
-requested object as the function return (instead of ACPI_STATUS.) This 
-change was made for performance reasons, since this is the purpose of the 
-interface in the first place. AcpiOsAcquireObject is now similar to the 
-AcpiOsAllocate interface.
-
-Implemented a new AML debugger command named Businfo. This command displays 
-information about all devices that have an associate _PRT object. The _ADR, 
-_HID, _UID, and _CID are displayed for these devices.
-
-Modified the initialization sequence in AcpiInitializeSubsystem to call the 
-OSL interface AcpiOslInitialize first, before any local initialization. This 
-change was required because the global initialization now calls OSL 
-interfaces.
-
-Enhanced the Dump command to display the entire contents of Package objects 
-(including all sub-objects and their values.) 
-
-Restructured the code base to split some files because of size and/or 
-because the code logically belonged in a separate file. New files are listed 
-below. All makefiles and project files included in the ACPI CA release have 
-been updated.
-    utilities/utcache.c           /* Local cache interfaces */
-    utilities/utmutex.c           /* Local mutex support */
-    utilities/utstate.c           /* State object support */
-    interpreter/parser/psloop.c   /* Main AML parse loop */
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.3K Code, 11.6K Data,  89.9K Total
-    Debug Version:     164.0K Code, 69.1K Data, 233.1K Total
-  Current Release:
-    Non-Debug Version:  78.6K Code, 11.5K Data,  90.1K Total
-    Debug Version:     165.2K Code, 69.6K Data, 234.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a regression introduced in version 20050513 where the use of a Package 
-object within a Case() statement caused a compile time exception. The 
-original behavior has been restored (a Match() operator is emitted.)
-
-----------------------------------------
-17 June 2005.  Summary of changes for version 20050617:
-
-1) ACPI CA Core Subsystem:
-
-Moved the object cache operations into the OS interface layer (OSL) to allow 
-the host OS to handle these operations if desired (for example, the Linux 
-OSL will invoke the slab allocator). This support is optional; the compile 
-time define ACPI_USE_LOCAL_CACHE may be used to utilize the original cache 
-code in the ACPI CA core. The new OSL interfaces are shown below. See 
-utalloc.c for an example implementation, and acpiosxf.h for the exact 
-interface definitions. With assistance from Alexey Starikovskiy.
-    AcpiOsCreateCache
-    AcpiOsDeleteCache
-    AcpiOsPurgeCache
-    AcpiOsAcquireObject
-    AcpiOsReleaseObject
-
-Modified the interfaces to AcpiOsAcquireLock and AcpiOsReleaseLock to return 
-and restore a flags parameter. This fits better with many OS lock models. 
-Note: the current execution state (interrupt handler or not) is no longer 
-passed to these interfaces. If necessary, the OSL must determine this state 
-by itself, a simple and fast operation. With assistance from Alexey 
-Starikovskiy.
-
-Fixed a problem in the ACPI table handling where a valid XSDT was assumed 
-present if the revision of the RSDP was 2 or greater. According to the ACPI 
-specification, the XSDT is optional in all cases, and the table manager 
-therefore now checks for both an RSDP >=2 and a valid XSDT pointer. 
-Otherwise, the RSDT pointer is used. Some ACPI 2.0 compliant BIOSs contain 
-only the RSDT.
-
-Fixed an interpreter problem with the Mid() operator in the case of an input 
-string where the resulting output string is of zero length. It now correctly 
-returns a valid, null terminated string object instead of a string object 
-with a null pointer.
-
-Fixed a problem with the control method argument handling to allow a store 
-to an Arg object that already contains an object of type Device. The Device 
-object is now correctly overwritten. Previously, an error was returned.
-
-
-Enhanced the debugger Find command to emit object values in addition to the 
-found object pathnames. The output format is the same as the dump namespace 
-command.
-
-Enhanced the debugger Set command. It now has the ability to set the value 
-of any Named integer object in the namespace (Previously, only method locals 
-and args could be set.)
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.1K Code, 11.6K Data,  89.7K Total
-    Debug Version:     164.0K Code, 69.3K Data, 233.3K Total
-  Current Release:
-    Non-Debug Version:  78.3K Code, 11.6K Data,  89.9K Total
-    Debug Version:     164.0K Code, 69.1K Data, 233.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a regression in the disassembler where if/else/while constructs were 
-output incorrectly. This problem was introduced in the previous release 
-(20050526). This problem also affected the single-step disassembly in the 
-debugger.
-
-Fixed a problem where compiling the reserved _OSI method would randomly (but 
-rarely) produce compile errors.
-
-Enhanced the disassembler to emit compilable code in the face of incorrect 
-AML resource descriptors. If the optional ResourceSourceIndex is present, 
-but the ResourceSource is not, do not emit the ResourceSourceIndex in the 
-disassembly. Otherwise, the resulting code cannot be compiled without 
-errors.
-
-----------------------------------------
-26 May 2005.  Summary of changes for version 20050526:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support to execute Type 1 and Type 2 AML opcodes appearing at 
-the module level (not within a control method.) These opcodes are executed 
-exactly once at the time the table is loaded. This type of code was legal up 
-until the release of ACPI 2.0B (2002) and is now supported within ACPI CA in 
-order to provide backwards compatibility with earlier BIOS implementations. 
-This eliminates the "Encountered executable code at module level" warning 
-that was previously generated upon detection of such code.
-
-Fixed a problem in the interpreter where an AE_NOT_FOUND exception could 
-inadvertently be generated during the lookup of namespace objects in the 
-second pass parse of ACPI tables and control methods. It appears that this 
-problem could occur during the resolution of forward references to namespace 
-objects.
-
-Added the ACPI_MUTEX_DEBUG #ifdef to the AcpiUtReleaseMutex function, 
-corresponding to the same #ifdef in the AcpiUtAcquireMutex function. This 
-allows the deadlock detection debug code to be compiled out in the normal 
-case, improving mutex performance (and overall subsystem performance) 
-considerably.
-
-Implemented a handful of miscellaneous fixes for possible memory leaks on 
-error conditions and error handling control paths. These fixes were 
-suggested by FreeBSD and the Coverity Prevent source code analysis tool.
-
-Added a check for a null RSDT pointer in AcpiGetFirmwareTable (tbxfroot.c) 
-to prevent a fault in this error case.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.2K Code, 11.6K Data,  89.8K Total
-    Debug Version:     163.7K Code, 69.3K Data, 233.0K Total
-  Current Release:
-    Non-Debug Version:  78.1K Code, 11.6K Data,  89.7K Total
-    Debug Version:     164.0K Code, 69.3K Data, 233.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support to allow Type 1 and Type 2 ASL operators to appear at 
-the module level (not within a control method.) These operators will be 
-executed once at the time the table is loaded. This type of code was legal 
-up until the release of ACPI 2.0B (2002) and is now supported by the iASL 
-compiler in order to provide backwards compatibility with earlier BIOS ASL 
-code.
-
-The ACPI integer width (specified via the table revision ID or the -r 
-override, 32 or 64 bits) is now used internally during compile-time constant 
-folding to ensure that constants are truncated to 32 bits if necessary. 
-Previously, the revision ID value was only emitted in the AML table header.
-
-An error message is now generated for the Mutex and Method operators if the 
-SyncLevel parameter is outside the legal range of 0 through 15.
-
-Fixed a problem with the Method operator ParameterTypes list handling (ACPI 
-3.0). Previously, more than 2 types or 2 arguments generated a syntax error.  
-The actual underlying implementation of method argument typechecking is 
-still under development, however.
-
-----------------------------------------
-13 May 2005.  Summary of changes for version 20050513:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for PCI Express root bridges -- added support for device 
-PNP0A08 in the root bridge search within AcpiEvPciConfigRegionSetup.
-
-The interpreter now automatically truncates incoming 64-bit constants to 32 
-bits if currently executing out of a 32-bit ACPI table (Revision < 2). This 
-also affects the iASL compiler constant folding. (Note: as per below, the 
-iASL compiler no longer allows 64-bit constants within 32-bit tables.)
-
-Fixed a problem where string and buffer objects with "static" pointers 
-(pointers to initialization data within an ACPI table) were not handled 
-consistently. The internal object copy operation now always copies the data 
-to a newly allocated buffer, regardless of whether the source object is 
-static or not.
-
-Fixed a problem with the FromBCD operator where an implicit result 
-conversion was improperly performed while storing the result to the target 
-operand. Since this is an "explicit conversion" operator, the implicit 
-conversion should never be performed on the output.
-
-Fixed a problem with the CopyObject operator where a copy to an existing 
-named object did not always completely overwrite the existing object stored 
-at name. Specifically, a buffer-to-buffer copy did not delete the existing 
-buffer.
-
-Replaced "InterruptLevel" with "InterruptNumber" in all GPE interfaces and 
-structs for consistency.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.2K Code, 11.6K Data,  89.8K Total
-    Debug Version:     163.7K Code, 69.3K Data, 233.0K Total
-  Current Release: (Same sizes)
-    Non-Debug Version:  78.2K Code, 11.6K Data,  89.8K Total
-    Debug Version:     163.7K Code, 69.3K Data, 233.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-The compiler now emits a warning if an attempt is made to generate a 64-bit 
-integer constant from within a 32-bit ACPI table (Revision < 2). The integer 
-is truncated to 32 bits.
-
-Fixed a problem with large package objects: if the static length of the 
-package is greater than 255, the "variable length package" opcode is 
-emitted. Previously, this caused an error. This requires an update to the 
-ACPI spec, since it currently (incorrectly) states that packages larger than 
-255 elements are not allowed.
-
-The disassembler now correctly handles variable length packages and packages 
-larger than 255 elements.
-
-----------------------------------------
-08 April 2005.  Summary of changes for version 20050408:
-
-1) ACPI CA Core Subsystem:
-
-Fixed three cases in the interpreter where an "index" argument to an ASL 
-function was still (internally) 32 bits instead of the required 64 bits. 
-This was the Index argument to the Index, Mid, and Match operators.
-
-The "strupr" function is now permanently local (AcpiUtStrupr), since this is 
-not a POSIX-defined function and not present in most kernel-level C 
-libraries. All references to the C library strupr function have been removed 
-from the headers.
-
-Completed the deployment of static functions/prototypes. All prototypes with 
-the static attribute have been moved from the headers to the owning C file.
-
-Implemented an extract option (-e) for the AcpiBin utility (AML binary 
-utility). This option allows the utility to extract individual ACPI tables 
-from the output of AcpiDmp. It provides the same functionality of the 
-acpixtract.pl perl script without the worry of setting the correct perl 
-options. AcpiBin runs on Windows and has not yet been generated/validated in 
-the Linux/Unix environment (but should be soon).
-Updated and fixed the table dump option for AcpiBin (-d). This option 
-converts a single ACPI table to a hex/ascii file, similar to the output of 
-AcpiDmp.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.0K Code, 11.6K Data,  89.6K Total
-    Debug Version:     163.5K Code, 69.3K Data, 232.8K Total
-  Current Release:
-    Non-Debug Version:  78.2K Code, 11.6K Data,  89.8K Total
-    Debug Version:     163.7K Code, 69.3K Data, 233.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Disassembler fix: Added a check to ensure that the table length found in the 
-ACPI table header within the input file is not longer than the actual input 
-file size. This indicates some kind of file or table corruption.
-
-----------------------------------------
-29 March 2005.  Summary of changes for version 20050329:
-
-1) ACPI CA Core Subsystem:
-
-An error is now generated if an attempt is made to create a Buffer Field of 
-length zero (A CreateField with a length operand of zero.)
-
-The interpreter now issues a warning whenever executable code at the module 
-level is detected during ACPI table load. This will give some idea of the 
-prevalence of this type of code.
-
-Implemented support for references to named objects (other than control 
-methods) within package objects.
-
-Enhanced package object output for the debug object. Package objects are now 
-completely dumped, showing all elements.
-
-Enhanced miscellaneous object output for the debug object. Any object can 
-now be written to the debug object (for example, a device object can be 
-written, and the type of the object will be displayed.)
-
-The "static" qualifier has been added to all local functions across both the 
-core subsystem and the iASL compiler.
-
-The number of "long" lines (> 80 chars) within the source has been 
-significantly reduced, by about 1/3.
-
-Cleaned up all header files to ensure that all CA/iASL functions are 
-prototyped (even static functions) and the formatting is consistent.
-
-Two new header files have been added, acopcode.h and acnames.h.
-
-Removed several obsolete functions that were no longer used.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.3K Code, 11.5K Data,  89.8K Total
-    Debug Version:     165.4K Code, 69.7K Data, 236.1K Total
-  Current Release:
-    Non-Debug Version:  78.0K Code, 11.6K Data,  89.6K Total
-    Debug Version:     163.5K Code, 69.3K Data, 232.8K Total
-
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the resource descriptor generation/support. For the 
-ResourceSourceIndex and the ResourceSource fields, both must be present, or 
-both must be not present - can't have one without the other.
-
-The compiler now returns non-zero from the main procedure if any errors have 
-occurred during the compilation.
-
-
-----------------------------------------
-09 March 2005.  Summary of changes for version 20050309:
-
-1) ACPI CA Core Subsystem:
-
-The string-to-buffer implicit conversion code has been modified again after 
-a change to the ACPI specification.  In order to match the behavior of the 
-other major ACPI implementation, the target buffer is no longer truncated if 
-the source string is smaller than an existing target buffer. This change 
-requires an update to the ACPI spec, and should eliminate the recent 
-AE_AML_BUFFER_LIMIT issues.
-
-The "implicit return" support was rewritten to a new algorithm that solves 
-the general case. Rather than attempt to determine when a method is about to 
-exit, the result of every ASL operator is saved momentarily until the very 
-next ASL operator is executed. Therefore, no matter how the method exits, 
-there will always be a saved implicit return value. This feature is only 
-enabled with the AcpiGbl_EnableInterpreterSlack flag, and should eliminate 
-AE_AML_NO_RETURN_VALUE errors when enabled.
-
-Implemented implicit conversion support for the predicate (operand) of the 
-If, Else, and While operators. String and Buffer arguments are automatically 
-converted to Integers.
-
-Changed the string-to-integer conversion behavior to match the new ACPI 
-errata: "If no integer object exists, a new integer is created. The ASCII 
-string is interpreted as a hexadecimal constant. Each string character is 
-interpreted as a hexadecimal value ('0'-'9', 'A'-'F', 'a', 'f'), starting 
-with the first character as the most significant digit, and ending with the 
-first non-hexadecimal character or end-of-string." This means that the first 
-non-hex character terminates the conversion and this is the code that was 
-changed.
-
-Fixed a problem where the ObjectType operator would fail (fault) when used 
-on an Index of a Package which pointed to a null package element. The 
-operator now properly returns zero (Uninitialized) in this case.
-
-Fixed a problem where the While operator used excessive memory by not 
-properly popping the result stack during execution. There was no memory leak 
-after execution, however. (Code provided by Valery Podrezov.)
-
-Fixed a problem where references to control methods within Package objects 
-caused the method to be invoked, instead of producing a reference object 
-pointing to the method.
-
-Restructured and simplified the pswalk.c module (AcpiPsDeleteParseTree) to 
-improve performance and reduce code size. (Code provided by Alexey 
-Starikovskiy.)
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.3K Code, 11.5K Data,  89.8K Total
-    Debug Version:     165.4K Code, 69.6K Data, 236.0K Total
-  Current Release:
-    Non-Debug Version:  78.3K Code, 11.5K Data,  89.8K Total
-    Debug Version:     165.4K Code, 69.7K Data, 236.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the Return operator with no arguments. Since the AML 
-grammar for the byte encoding requires an operand for the Return opcode, the 
-compiler now emits a Return(Zero) for this case.  An ACPI specification 
-update has been written for this case.
-
-For tables other than the DSDT, namepath optimization is automatically 
-disabled. This is because SSDTs can be loaded anywhere in the namespace, the 
-compiler has no knowledge of where, and thus cannot optimize namepaths.
-
-Added "ProcessorObj" to the ObjectTypeKeyword list. This object type was 
-inadvertently omitted from the ACPI specification, and will require an 
-update to the spec.
-
-The source file scan for ASCII characters is now optional (-a). This change 
-was made because some vendors place non-ascii characters within comments. 
-However, the scan is simply a brute-force byte compare to ensure all 
-characters in the file are in the range 0x00 to 0x7F.
-
-Fixed a problem with the CondRefOf operator where the compiler was 
-inappropriately checking for the existence of the target. Since the point of 
-the operator is to check for the existence of the target at run-time, the 
-compiler no longer checks for the target existence.
-
-Fixed a problem where errors generated from the internal AML interpreter 
-during constant folding were not handled properly, causing a fault.
-
-Fixed a problem with overly aggressive range checking for the Stall 
-operator. The valid range (max 255) is now only checked if the operand is of 
-type Integer. All other operand types cannot be statically checked.
-
-Fixed a problem where control method references within the RefOf, DeRefOf, 
-and ObjectType operators were not treated properly. They are now treated as 
-actual references, not method invocations.
-
-Fixed and enhanced the "list namespace" option (-ln). This option was broken 
-a number of releases ago.
-
-Improved error handling for the Field, IndexField, and BankField operators. 
-The compiler now cleanly reports and recovers from errors in the field 
-component (FieldUnit) list.
-
-Fixed a disassembler problem where the optional ResourceDescriptor fields 
-TRS and TTP were not always handled correctly.
-
-Disassembler - Comments in output now use "//" instead of "/*"
-
-----------------------------------------
-28 February 2005.  Summary of changes for version 20050228:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where the result of an Index() operator (an object 
-reference) must increment the reference count on the target object for the 
-life of the object reference.
-
-Implemented AML Interpreter and Debugger support for the new ACPI 3.0 
-Extended Address (IO, Memory, Space), QwordSpace, DwordSpace, and WordSpace 
-resource descriptors.
-
-Implemented support in the _OSI method for the ACPI 3.0 "Extended Address 
-Space Descriptor" string, indicating interpreter support for the descriptors 
-above.
-
-Implemented header support for the new ACPI 3.0 FADT flag bits.
-
-Implemented header support for the new ACPI 3.0 PCI Express bits for the PM1 
-status/enable registers.
-
-Updated header support for the MADT processor local Apic struct and MADT 
-platform interrupt source struct for new ACPI 3.0 fields.
-
-Implemented header support for the SRAT and SLIT ACPI tables.
-
-Implemented the -s switch in AcpiExec to enable the "InterpreterSlack" flag 
-at runtime.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.2K Code, 11.5K Data,  89.7K Total
-    Debug Version:     164.9K Code, 69.2K Data, 234.1K Total
-  Current Release:
-    Non-Debug Version:  78.3K Code, 11.5K Data,  89.8K Total
-    Debug Version:     165.4K Code, 69.6K Data, 236.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the internal 64-bit String-to-integer conversion with 
-strings less than two characters long.
-
-Fixed a problem with constant folding where the result of the Index() 
-operator can not be considered a constant. This means that Index() cannot be 
-a type3 opcode and this will require an update to the ACPI specification.
-
-Disassembler: Implemented support for the TTP, MTP, and TRS resource 
-descriptor fields. These fields were inadvertently ignored and not output in 
-the disassembly of the resource descriptor.
-
-
- ----------------------------------------
-11 February 2005.  Summary of changes for version 20050211:
-
-1) ACPI CA Core Subsystem:
-
-Implemented ACPI 3.0 support for implicit conversion within the Match() 
-operator. MatchObjects can now be of type integer, buffer, or string instead 
-of just type integer.  Package elements are implicitly converted to the type 
-of the MatchObject. This change aligns the behavior of Match() with the 
-behavior of the other logical operators (LLess(), etc.) It also requires an 
-errata change to the ACPI specification as this support was intended for 
-ACPI 3.0, but was inadvertently omitted.
-
-Fixed a problem with the internal implicit "to buffer" conversion. Strings 
-that are converted to buffers will cause buffer truncation if the string is 
-smaller than the target buffer. Integers that are converted to buffers will 
-not cause buffer truncation, only zero extension (both as per the ACPI 
-spec.) The problem was introduced when code was added to truncate the 
-buffer, but this should not be performed in all cases, only the string case.
-
-Fixed a problem with the Buffer and Package operators where the interpreter 
-would get confused if two such operators were used as operands to an ASL 
-operator (such as LLess(Buffer(1){0},Buffer(1){1}). The internal result 
-stack was not being popped after the execution of these operators, resulting 
-in an AE_NO_RETURN_VALUE exception.
-
-Fixed a problem with constructs of the form Store(Index(...),...). The 
-reference object returned from Index was inadvertently resolved to an actual 
-value. This problem was introduced in version 20050114 when the behavior of 
-Store() was modified to restrict the object types that can be used as the 
-source operand (to match the ACPI specification.)
-
-Reduced excessive stack use within the AcpiGetObjectInfo procedure.
-
-Added a fix to aclinux.h to allow generation of AcpiExec on Linux.
-
-Updated the AcpiSrc utility to add the FADT_DESCRIPTOR_REV2_MINUS struct.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.1K Code, 11.5K Data,  89.6K Total
-    Debug Version:     164.8K Code, 69.2K Data, 234.0K Total
-  Current Release:
-    Non-Debug Version:  78.2K Code, 11.5K Data,  89.7K Total
-    Debug Version:     164.9K Code, 69.2K Data, 234.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a code generation problem in the constant folding optimization code 
-where incorrect code was generated if a constant was reduced to a buffer 
-object (i.e., a reduced type 5 opcode.)
-
-Fixed a typechecking problem for the ToBuffer operator. Caused by an 
-incorrect return type in the internal opcode information table.
-
-----------------------------------------
-25 January 2005.  Summary of changes for version 20050125:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a recently introduced problem with the Global Lock where the 
-underlying semaphore was not created.  This problem was introduced in 
-version 20050114, and caused an AE_AML_NO_OPERAND exception during an 
-Acquire() operation on _GL.
-
-The local object cache is now optional, and is disabled by default. Both 
-AcpiExec and the iASL compiler enable the cache because they run in user 
-mode and this enhances their performance. #define ACPI_ENABLE_OBJECT_CACHE 
-to enable the local cache.
-
-Fixed an issue in the internal function AcpiUtEvaluateObject concerning the 
-optional "implicit return" support where an error was returned if no return 
-object was expected, but one was implicitly returned. AE_OK is now returned 
-in this case and the implicitly returned object is deleted. 
-AcpiUtEvaluateObject is only occasionally used, and only to execute reserved 
-methods such as _STA and _INI where the return type is known up front.
-
-Fixed a few issues with the internal convert-to-integer code. It now returns 
-an error if an attempt is made to convert a null string, a string of only 
-blanks/tabs, or a zero-length buffer. This affects both implicit conversion 
-and explicit conversion via the ToInteger() operator.
-
-The internal debug code in AcpiUtAcquireMutex has been commented out. It is 
-not needed for normal operation and should increase the performance of the 
-entire subsystem. The code remains in case it is needed for debug purposes 
-again.
-
-The AcpiExec source and makefile are included in the Unix/Linux package for 
-the first time.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.4K Code,  11.5K Data,   89.9K Total
-    Debug Version:     165.4K Code,  69.4K Data,  234.8K Total
-  Current Release:
-    Non-Debug Version:  78.1K Code,  11.5K Data,   89.6K Total
-    Debug Version:     164.8K Code,  69.2K Data,  234.0K Total
-
-2) iASL Compiler/Disassembler:
-
-Switch/Case support: A warning is now issued if the type of the Switch value 
-cannot be determined at compile time. For example, Switch(Arg0) will 
-generate the warning, and the type is assumed to be an integer. As per the 
-ACPI spec, use a construct such as Switch(ToInteger(Arg0)) to eliminate the 
-warning.
-
-Switch/Case support: Implemented support for buffer and string objects as 
-the switch value.  This is an ACPI 3.0 feature, now that LEqual supports 
-buffers and strings.
-
-Switch/Case support: The emitted code for the LEqual() comparisons now uses 
-the switch value as the first operand, not the second. The case value is now 
-the second operand, and this allows the case value to be implicitly 
-converted to the type of the switch value, not the other way around.
-
-Switch/Case support: Temporary variables are now emitted immediately within 
-the control method, not at the global level. This means that there are now 
-36 temps available per-method, not 36 temps per-module as was the case with 
-the earlier implementation (_T_0 through _T_9 and _T_A through _T_Z.)
-
-----------------------------------------
-14 January 2005.  Summary of changes for version 20050114:
-
-Added 2005 copyright to all module headers.  This affects every module in 
-the core subsystem, iASL compiler, and the utilities.
-
-1) ACPI CA Core Subsystem:
-
-Fixed an issue with the String-to-Buffer conversion code where the string 
-null terminator was not included in the buffer after conversion, but there 
-is existing ASL that assumes the string null terminator is included. This is 
-the root of the ACPI_AML_BUFFER_LIMIT regression. This problem was 
-introduced in the previous version when the code was updated to correctly 
-set the converted buffer size as per the ACPI specification. The ACPI spec 
-is ambiguous and will be updated to specify that the null terminator must be 
-included in the converted buffer. This also affects the ToBuffer() ASL 
-operator.
-
-Fixed a problem with the Mid() ASL/AML operator where it did not work 
-correctly on Buffer objects. Newly created sub-buffers were not being marked 
-as initialized.
-
-
-Fixed a problem in AcpiTbFindTable where incorrect string compares were 
-performed on the OemId and OemTableId table header fields.  These fields are 
-not null terminated, so strncmp is now used instead of strcmp.
-
-Implemented a restriction on the Store() ASL/AML operator to align the 
-behavior with the ACPI specification.  Previously, any object could be used 
-as the source operand.  Now, the only objects that may be used are Integers, 
-Buffers, Strings, Packages, Object References, and DDB Handles.  If 
-necessary, the original behavior can be restored by enabling the 
-EnableInterpreterSlack flag.
-
-Enhanced the optional "implicit return" support to allow an implicit return 
-value from methods that are invoked externally via the AcpiEvaluateObject 
-interface.  This enables implicit returns from the _STA and _INI methods, 
-for example.
-
-Changed the Revision() ASL/AML operator to return the current version of the 
-AML interpreter, in the YYYYMMDD format. Previously, it incorrectly returned 
-the supported ACPI version (This is the function of the _REV method).
-
-Updated the _REV predefined method to return the currently supported version 
-of ACPI, now 3.
-
-Implemented batch mode option for the AcpiExec utility (-b).
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.3K Code,  11.5K Data,   89.8K Total
-    Debug Version:     165.3K Code,  69.4K Data,  234.7K Total
-  Current Release:
-    Non-Debug Version:  78.4K Code,  11.5K Data,   89.9K Total
-    Debug Version:     165.4K Code,  69.4K Data,  234.8K Total
-
-----------------------------------------
-10 December 2004.  Summary of changes for version 20041210:
-
-ACPI 3.0 support is nearing completion in both the iASL compiler and the 
-ACPI CA core subsystem.
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem in the ToDecimalString operator where the resulting string 
-length was incorrectly calculated. The length is now calculated exactly, 
-eliminating incorrect AE_STRING_LIMIT exceptions.
-
-Fixed a problem in the ToHexString operator to allow a maximum 200 character 
-string to be produced.
-
-Fixed a problem in the internal string-to-buffer and buffer-to-buffer copy 
-routine where the length of the resulting buffer was not truncated to the 
-new size (if the target buffer already existed).
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.3K Code,  11.5K Data,   89.8K Total
-    Debug Version:     164.7K Code,  68.5K Data,  233.2K Total
-  Current Release:
-    Non-Debug Version:  78.3K Code,  11.5K Data,   89.8K Total
-    Debug Version:     165.3K Code,  69.4K Data,  234.7K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented the new ACPI 3.0 resource template macros - DWordSpace, 
-ExtendedIO, ExtendedMemory, ExtendedSpace, QWordSpace, and WordSpace. 
-Includes support in the disassembler.
-
-Implemented support for the new (ACPI 3.0) parameter to the Register macro, 
-AccessSize.
-
-Fixed a problem where the _HE resource name for the Interrupt macro was 
-referencing bit 0 instead of bit 1.
-
-Implemented check for maximum 255 interrupts in the Interrupt macro.
-
-Fixed a problem with the predefined resource descriptor names where 
-incorrect AML code was generated if the offset within the resource buffer 
-was 0 or 1.  The optimizer shortened the AML code to a single byte opcode 
-but did not update the surrounding package lengths.
-
-Changes to the Dma macro:  All channels within the channel list must be in 
-the range 0-7.  Maximum 8 channels can be specified. BusMaster operand is 
-optional (default is BusMaster).
-
-Implemented check for maximum 7 data bytes for the VendorShort macro.
-
-The ReadWrite parameter is now optional for the Memory32 and similar macros.
-
-----------------------------------------
-03 December 2004.  Summary of changes for version 20041203:
-
-1) ACPI CA Core Subsystem:
-
-The low-level field insertion/extraction code (exfldio) has been completely 
-rewritten to eliminate unnecessary complexity, bugs, and boundary 
-conditions.
-
-Fixed a problem in the ToInteger, ToBuffer, ToHexString, and ToDecimalString 
-operators where the input operand could be inadvertently deleted if no 
-conversion was necessary (e.g., if the input to ToInteger was an Integer 
-object.)
-
-Fixed a problem with the ToDecimalString and ToHexString where an incorrect 
-exception code was returned if the resulting string would be > 200 chars.  
-AE_STRING_LIMIT is now returned.
-
-Fixed a problem with the Concatenate operator where AE_OK was always 
-returned, even if the operation failed.
-
-Fixed a problem in oswinxf (used by AcpiExec and iASL) to allow > 128 
-semaphores to be allocated.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.5K Code,  11.5K Data,   90.0K Total
-    Debug Version:     165.2K Code,  68.6K Data,  233.8K Total
-  Current Release:
-    Non-Debug Version:  78.3K Code,  11.5K Data,   89.8K Total
-    Debug Version:     164.7K Code,  68.5K Data,  233.2K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed typechecking for the ObjectType and SizeOf operators.  Problem was 
-recently introduced in 20041119.
-
-Fixed a problem with the ToUUID macro where the upper nybble of each buffer 
-byte was inadvertently set to zero.
-
-----------------------------------------
-19 November 2004.  Summary of changes for version 20041119:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem in the internal ConvertToInteger routine where new integers 
-were not truncated to 32 bits for 32-bit ACPI tables. This routine converts 
-buffers and strings to integers.
-
-Implemented support to store a value to an Index() on a String object. This 
-is an ACPI 2.0 feature that had not yet been implemented.
-
-Implemented new behavior for storing objects to individual package elements 
-(via the Index() operator). The previous behavior was to invoke the implicit 
-conversion rules if an object was already present at the index.  The new 
-behavior is to simply delete any existing object and directly store the new 
-object. Although the ACPI specification seems unclear on this subject, other 
-ACPI implementations behave in this manner.  (This is the root of the 
-AE_BAD_HEX_CONSTANT issue.)
-
-Modified the RSDP memory scan mechanism to support the extended checksum for 
-ACPI 2.0 (and above) RSDPs. Note that the search continues until a valid 
-RSDP signature is found with a valid checksum.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.5K Code,  11.5K Data,   90.0K Total
-    Debug Version:     165.2K Code,  68.6K Data,  233.8K Total
-  Current Release:
-    Non-Debug Version:  78.5K Code,  11.5K Data,   90.0K Total
-    Debug Version:     165.2K Code,  68.6K Data,  233.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a missing semicolon in the aslcompiler.y file.
-
-----------------------------------------
-05 November 2004.  Summary of changes for version 20041105:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for FADT revision 2.  This was an interim table (between 
-ACPI 1.0 and ACPI 2.0) that adds support for the FADT reset register.
-
-Implemented optional support to allow uninitialized LocalX and ArgX 
-variables in a control method.  The variables are initialized to an Integer 
-object with a value of zero.  This support is enabled by setting the 
-AcpiGbl_EnableInterpreterSlack flag to TRUE.
-
-Implemented support for Integer objects for the SizeOf operator.  Either 4 
-or 8 is returned, depending on the current integer size (32-bit or 64-bit, 
-depending on the parent table revision).
-
-Fixed a problem in the implementation of the SizeOf and ObjectType operators 
-where the operand was resolved to a value too early, causing incorrect 
-return values for some objects.
-
-Fixed some possible memory leaks during exceptional conditions.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.0K Code,  11.5K Data,   89.5K Total
-    Debug Version:     164.8K Code,  68.6K Data,  233.4K Total
-  Current Release:
-    Non-Debug Version:  78.5K Code,  11.5K Data,   90.0K Total
-    Debug Version:     165.2K Code,  68.6K Data,  233.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for all ACPI 3.0 reserved names and methods.
-
-Implemented all ACPI 3.0 grammar elements in the front-end, including 
-support for semicolons.
-
-Implemented the ACPI 3.0 Function() and ToUUID() macros
-
-Fixed a problem in the disassembler where a Scope() operator would not be 
-emitted properly if the target of the scope was in another table.
-
-----------------------------------------
-15 October 2004.  Summary of changes for version 20041015:
-
-Note:  ACPI CA is currently undergoing an in-depth and complete formal 
-evaluation to test/verify the following areas. Other suggestions are 
-welcome. This will result in an increase in the frequency of releases and 
-the number of bug fixes in the next few months.
-  - Functional tests for all ASL/AML operators
-  - All implicit/explicit type conversions
-  - Bit fields and operation regions
-  - 64-bit math support and 32-bit-only "truncated" math support
-  - Exceptional conditions, both compiler and interpreter
-  - Dynamic object deletion and memory leaks
-  - ACPI 3.0 support when implemented
-  - External interfaces to the ACPI subsystem
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed two alignment issues on 64-bit platforms - within debug statements in 
-AcpiEvGpeDetect and AcpiEvCreateGpeBlock. Removed references to the Address 
-field within the non-aligned ACPI generic address structure.
-
-Fixed a problem in the Increment and Decrement operators where incorrect 
-operand resolution could result in the inadvertent modification of the 
-original integer when the integer is passed into another method as an 
-argument and the arg is then incremented/decremented.
-
-Fixed a problem in the FromBCD operator where the upper 32-bits of a 64-bit 
-BCD number were truncated during conversion.
-
-Fixed a problem in the ToDecimal operator where the length of the resulting 
-string could be set incorrectly too long if the input operand was a Buffer 
-object.
-
-Fixed a problem in the Logical operators (LLess, etc.) where a NULL byte (0) 
-within a buffer would prematurely terminate a compare between buffer 
-objects.
-
-Added a check for string overflow (>200 characters as per the ACPI 
-specification) during the Concatenate operator with two string operands.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.8K Code,  11.5K Data,   89.3K Total
-    Debug Version:     164.6K Code,  68.5K Data,  233.1K Total
-  Current Release:
-    Non-Debug Version:  78.0K Code,  11.5K Data,   89.5K Total
-    Debug Version:     164.8K Code,  68.6K Data,  233.4K Total
-
-
-
-2) iASL Compiler/Disassembler:
-
-Allow the use of the ObjectType operator on uninitialized Locals and Args 
-(returns 0 as per the ACPI specification).
-
-Fixed a problem where the compiler would fault if there was a syntax error 
-in the FieldName of all of the various CreateXXXField operators.
-
-Disallow the use of lower case letters within the EISAID macro, as per the 
-ACPI specification.  All EISAID strings must be of the form "UUUNNNN" Where 
-U is an uppercase letter and N is a hex digit.
-
-
-----------------------------------------
-06 October 2004.  Summary of changes for version 20041006:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for the ACPI 3.0 Timer operator. This ASL function 
-implements a 64-bit timer with 100 nanosecond granularity.
-
-Defined a new OSL interface, AcpiOsGetTimer. This interface is used to 
-implement the ACPI 3.0 Timer operator.  This allows the host OS to implement 
-the timer with the best clock available. Also, it keeps the core subsystem 
-out of the clock handling business, since the host OS (usually) performs 
-this function.
-
-Fixed an alignment issue on 64-bit platforms. The HwLowLevelRead(Write) 
-functions use a 64-bit address which is part of the packed ACPI Generic 
-Address Structure. Since the structure is non-aligned, the alignment macros 
-are now used to extract the address to a local variable before use.
-
-Fixed a problem where the ToInteger operator assumed all input strings were 
-hexadecimal. The operator now handles both decimal strings and hex strings 
-(prefixed with "0x").
-
-Fixed a problem where the string length in the string object created as a 
-result of the internal ConvertToString procedure could be incorrect. This 
-potentially affected all implicit conversions and also the ToDecimalString 
-and ToHexString operators.
-
-Fixed two problems in the ToString operator. If the length parameter was 
-zero, an incorrect string object was created and the value of the input 
-length parameter was inadvertently changed from zero to Ones.
-
-Fixed a problem where the optional ResourceSource string in the ExtendedIRQ 
-resource macro was ignored.
-
-Simplified the interfaces to the internal division functions, reducing code 
-size and complexity.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.9K Code,  11.4K Data,   89.3K Total
-    Debug Version:     164.5K Code,  68.3K Data,  232.8K Total
-  Current Release:
-    Non-Debug Version:  77.8K Code,  11.5K Data,   89.3K Total
-    Debug Version:     164.6K Code,  68.5K Data,  233.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for the ACPI 3.0 Timer operator.
-
-Fixed a problem where the Default() operator was inadvertently ignored in a 
-Switch/Case block.  This was a problem in the translation of the Switch 
-statement to If...Else pairs.
-
-Added support to allow a standalone Return operator, with no parentheses (or 
-operands).
-
-Fixed a problem with code generation for the ElseIf operator where the 
-translated Else...If parse tree was improperly constructed leading to the 
-loss of some code.
-
-----------------------------------------
-22 September 2004.  Summary of changes for version 20040922:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with the implementation of the LNot() operator where "Ones" 
-was not returned for the TRUE case. Changed the code to return Ones instead 
-of (!Arg) which was usually 1. This change affects iASL constant folding for 
-this operator also.
-
-Fixed a problem in AcpiUtInitializeBuffer where an existing buffer was not 
-initialized properly -- Now zero the entire buffer in this case where the 
-buffer already exists.
-
-Changed the interface to AcpiOsSleep from (UINT32 Seconds, UINT32 
-Milliseconds) to simply (ACPI_INTEGER Milliseconds). This simplifies all 
-related code considerably. This will require changes/updates to all OS 
-interface layers (OSLs.)
-
-Implemented a new external interface, AcpiInstallExceptionHandler, to allow 
-a system exception handler to be installed. This handler is invoked upon any 
-run-time exception that occurs during control method execution.
-
-Added support for the DSDT in AcpiTbFindTable. This allows the 
-DataTableRegion() operator to access the local copy of the DSDT.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below. These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code. The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size. Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.8K Code,  11.4K Data,   89.2K Total
-    Debug Version:     164.2K Code,  68.2K Data,  232.4K Total
-  Current Release:
-    Non-Debug Version:  77.9K Code,  11.4K Data,   89.3K Total
-    Debug Version:     164.5K Code,  68.3K Data,  232.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with constant folding and the LNot operator. LNot was 
-returning 1 in the TRUE case, not Ones as per the ACPI specification. This 
-could result in the generation of an incorrect folded/reduced constant.
-
-End-Of-File is now allowed within a "//"-style comment.  A parse error no 
-longer occurs if such a comment is at the very end of the input ASL source 
-file.
-
-Implemented the "-r" option to override the Revision in the table header. 
-The initial use of this option will be to simplify the evaluation of the AML 
-interpreter by allowing a single ASL source module to be compiled for either 
-32-bit or 64-bit integers.
-
-
-----------------------------------------
-27 August 2004.  Summary of changes for version 20040827:
-
-1) ACPI CA Core Subsystem:
-
-- Implemented support for implicit object conversion in the non-numeric 
-logical operators (LEqual, LGreater, LGreaterEqual, LLess, LLessEqual, and 
-LNotEqual.)  Any combination of Integers/Strings/Buffers may now be used; 
-the second operand is implicitly converted on the fly to match the type of 
-the first operand.  For example:
-
-    LEqual (Source1, Source2)
-
-Source1 and Source2 must each evaluate to an integer, a string, or a buffer. 
-The data type of Source1 dictates the required type of Source2. Source2 is 
-implicitly converted if necessary to match the type of Source1.
-
-- Updated and corrected the behavior of the string conversion support.  The 
-rules concerning conversion of buffers to strings (according to the ACPI 
-specification) are as follows:
-
-ToDecimalString - explicit byte-wise conversion of buffer to string of 
-decimal values (0-255) separated by commas. ToHexString - explicit byte-wise 
-conversion of buffer to string of hex values (0-FF) separated by commas. 
-ToString - explicit byte-wise conversion of buffer to string.  Byte-by-byte 
-copy with no transform except NULL terminated. Any other implicit buffer-to-
-string conversion - byte-wise conversion of buffer to string of hex values 
-(0-FF) separated by spaces.
-
-- Fixed typo in definition of AcpiGbl_EnableInterpreterSlack.
-
-- Fixed a problem in AcpiNsGetPathnameLength where the returned length was 
-one byte too short in the case of a node in the root scope.  This could 
-cause a fault during debug output.
-
-- Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.9K Code,  11.5K Data,   89.4K Total
-    Debug Version:     164.1K Code,  68.3K Data,  232.4K Total
-  Current Release:
-    Non-Debug Version:  77.8K Code,  11.4K Data,   89.2K Total
-    Debug Version:     164.2K Code,  68.2K Data,  232.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-- Fixed a Linux generation error.
-
-
-----------------------------------------
-16 August 2004.  Summary of changes for version 20040816:
-
-1) ACPI CA Core Subsystem:
-
-Designed and implemented support within the AML interpreter for the so-
-called "implicit return".  This support returns the result of the last ASL 
-operation within a control method, in the absence of an explicit Return() 
-operator.  A few machines depend on this behavior, even though it is not 
-explicitly supported by the ASL language.  It is optional support that can 
-be enabled at runtime via the AcpiGbl_EnableInterpreterSlack flag.
-
-Removed support for the PCI_Config address space from the internal low level 
-hardware interfaces (AcpiHwLowLevelRead and AcpiHwLowLevelWrite).  This 
-support was not used internally, and would not work correctly anyway because 
-the PCI bus number and segment number were not supported.  There are 
-separate interfaces for PCI configuration space access because of the unique 
-interface.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  78.0K Code,  11.5K Data,   89.5K Total
-    Debug Version:     164.1K Code,  68.2K Data,  232.3K Total
-  Current Release:
-    Non-Debug Version:  77.9K Code,  11.5K Data,   89.4K Total
-    Debug Version:     164.1K Code,  68.3K Data,  232.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem where constants in ASL expressions at the root level (not 
-within a control method) could be inadvertently truncated during code 
-generation.  This problem was introduced in the 20040715 release.
-
-
-----------------------------------------
-15 July 2004.  Summary of changes for version 20040715:
-
-1) ACPI CA Core Subsystem:
-
-Restructured the internal HW GPE interfaces to pass/track the current state 
-of interrupts (enabled/disabled) in order to avoid possible deadlock and 
-increase flexibility of the interfaces.
-
-Implemented a "lexicographical compare" for String and Buffer objects within 
-the logical operators -- LGreater, LLess, LGreaterEqual, and LLessEqual -- 
-as per further clarification to the ACPI specification.  Behavior is similar 
-to C library "strcmp".
-
-Completed a major reduction in CPU stack use for the AcpiGetFirmwareTable 
-external function.  In the 32-bit non-debug case, the stack use has been 
-reduced from 168 bytes to 32 bytes.
-
-Deployed a new run-time configuration flag, AcpiGbl_EnableInterpreterSlack, 
-whose purpose is to allow the AML interpreter to forgive certain bad AML 
-constructs.  Default setting is FALSE.
-
-Implemented the first use of AcpiGbl_EnableInterpreterSlack in the Field IO 
-support code.  If enabled, it allows field access to go beyond the end of a 
-region definition if the field is within the region length rounded up to the 
-next access width boundary (a common coding error.)
-
-Renamed OSD_HANDLER to ACPI_OSD_HANDLER, and OSD_EXECUTION_CALLBACK to 
-ACPI_OSD_EXEC_CALLBACK for consistency with other ACPI symbols.  Also, these 
-symbols are lowercased by the latest version of the AcpiSrc tool.
-
-The prototypes for the PCI interfaces in acpiosxf.h have been updated to 
-rename "Register" to simply "Reg" to prevent certain compilers from 
-complaining.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.8K Code,  11.5K Data,   89.3K Total
-    Debug Version:     163.8K Code,  68.2K Data,  232.0K Total
-  Current Release:
-    Non-Debug Version:  78.0K Code,  11.5K Data,   89.5K Total
-    Debug Version:     164.1K Code,  68.2K Data,  232.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented full support for Package objects within the Case() operator.  
-Note: The Break() operator is currently not supported within Case blocks 
-(TermLists) as there is some question about backward compatibility with ACPI 
-1.0 interpreters.
-
-
-Fixed a problem where complex terms were not supported properly within the 
-Switch() operator.
-
-Eliminated extraneous warning for compiler-emitted reserved names of the 
-form "_T_x".  (Used in Switch/Case operators.)
-
-Eliminated optimization messages for "_T_x" objects and small constants 
-within the DefinitionBlock operator.
-
-
-----------------------------------------
-15 June 2004.  Summary of changes for version 20040615:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for Buffer and String objects (as per ACPI 2.0) for the 
-following ASL operators:  LEqual, LGreater, LLess, LGreaterEqual, and 
-LLessEqual.
-
-All directory names in the entire source package are lower case, as they 
-were in earlier releases.
-
-Implemented "Disassemble" command in the AML debugger that will disassemble 
-a single control method.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.7K Code,  11.5K Data,   89.2K Total
-    Debug Version:     163.3K Code,  67.2K Data,  230.5K Total
-
-  Current Release:
-    Non-Debug Version:  77.8K Code,  11.5K Data,   89.3K Total
-    Debug Version:     163.8K Code,  68.2K Data,  232.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for Buffer and String objects (as per ACPI 2.0) for the 
-following ASL operators:  LEqual, LGreater, LLess, LGreaterEqual, and 
-LLessEqual.
-
-All directory names in the entire source package are lower case, as they 
-were in earlier releases.
-
-Fixed a fault when using the -g or -d<nofilename> options if the FADT was 
-not found.
-
-Fixed an issue with the Windows version of the compiler where later versions 
-of Windows place the FADT in the registry under the name "FADT" and not 
-"FACP" as earlier versions did.  This applies when using the -g or -
-d<nofilename> options.  The compiler now looks for both strings as 
-necessary.
-
-Fixed a problem with compiler namepath optimization where a namepath within 
-the Scope() operator could not be optimized if the namepath was a subpath of 
-the current scope path.
-
-----------------------------------------
-27 May 2004.  Summary of changes for version 20040527:
-
-1) ACPI CA Core Subsystem:
-
-Completed a new design and implementation for EBDA (Extended BIOS Data Area) 
-support in the RSDP scan code.  The original code improperly scanned for the 
-EBDA by simply scanning from memory location 0 to 0x400.  The correct method 
-is to first obtain the EBDA pointer from within the BIOS data area, then 
-scan 1K of memory starting at the EBDA pointer.  There appear to be few if 
-any machines that place the RSDP in the EBDA, however.
-
-Integrated a fix for a possible fault during evaluation of BufferField 
-arguments.  Obsolete code that was causing the problem was removed.
-
-Found and fixed a problem in the Field Support Code where data could be 
-corrupted on a bit field read that starts on an aligned boundary but does 
-not end on an aligned boundary.  Merged the read/write "datum length" 
-calculation code into a common procedure.
-
-Rolled in a couple of changes to the FreeBSD-specific header.
-
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
-    Debug Version:     163.2K Code,  67.2K Data,  230.4K Total
-  Current Release:
-    Non-Debug Version:  77.7K Code,  11.5K Data,   89.2K Total
-    Debug Version:     163.3K Code,  67.2K Data,  230.5K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a generation warning produced by some overly-verbose compilers for a 
-64-bit constant.
-
-----------------------------------------
-14 May 2004.  Summary of changes for version 20040514:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where hardware GPE enable bits sometimes not set properly 
-during and after GPE method execution.  Result of 04/27 changes.
-
-Removed extra "clear all GPEs" when sleeping/waking.
-
-Removed AcpiHwEnableGpe and AcpiHwDisableGpe, replaced by the single 
-AcpiHwWriteGpeEnableReg. Changed a couple of calls to the functions above to 
-the new AcpiEv* calls as appropriate.
-
-ACPI_OS_NAME was removed from the OS-specific headers.  The default name is 
-now "Microsoft Windows NT" for maximum compatibility.  However this can be 
-changed by modifying the acconfig.h file.
-
-Allow a single invocation of AcpiInstallNotifyHandler for a handler that 
-traps both types of notifies (System, Device).  Use ACPI_ALL_NOTIFY flag. 
-
-Run _INI methods on ThermalZone objects.  This is against the ACPI 
-specification, but there is apparently ASL code in the field that has these 
-_INI methods, and apparently "other" AML interpreters execute them.
-
-Performed a full 16/32/64 bit lint that resulted in some small changes.
-
-Added a sleep simulation command to the AML debugger to test sleep code. 
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
-    Debug Version:     162.9K Code,  67.0K Data,  229.9K Total
-  Current Release:
-    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
-    Debug Version:     163.2K Code,  67.2K Data,  230.4K Total
-
-----------------------------------------
-27 April 2004.  Summary of changes for version 20040427:
-
-1) ACPI CA Core Subsystem:
-
-Completed a major overhaul of the GPE handling within ACPI CA.  There are 
-now three types of GPEs:  wake-only, runtime-only, and combination wake/run.  
-The only GPEs allowed to be combination wake/run are for button-style 
-devices such as a control-method power button, control-method sleep button, 
-or a notebook lid switch.  GPEs that have an _Lxx or _Exx method and are not 
-referenced by any _PRW methods are marked for "runtime" and hardware 
-enabled.  Any GPE that is referenced by a _PRW method is marked for "wake" 
-(and disabled at runtime).  However, at sleep time, only those GPEs that 
-have been specifically enabled for wake via the AcpiEnableGpe interface will 
-actually be hardware enabled.
-
-A new external interface has been added, AcpiSetGpeType(), that is meant to 
-be used by device drivers to force a GPE to a particular type.  It will be 
-especially useful for the drivers for the button devices mentioned above.
-
-Completed restructuring of the ACPI CA initialization sequence so that 
-default operation region handlers are installed before GPEs are initialized 
-and the _PRW methods are executed.  This will prevent errors when the _PRW 
-methods attempt to access system memory or I/O space.
-
-GPE enable/disable no longer reads the GPE enable register.  We now keep the 
-enable info for runtime and wake separate and in the GPE_EVENT_INFO.  We 
-thus no longer depend on the hardware to maintain these bits.
-
-Always clear the wake status and fixed/GPE status bits before sleep, even 
-for state S5.
-
-Improved the AML debugger output for displaying the GPE blocks and their 
-current status.
-
-Added new strings for the _OSI method, of the form "Windows 2001 SPx" where 
-x = 0,1,2,3,4.
-
-Fixed a problem where the physical address was incorrectly calculated when 
-the Load() operator was used to directly load from an Operation Region (vs. 
-loading from a Field object.)  Also added check for minimum table length for 
-this case.
-
-Fix for multiple mutex acquisition.  Restore original thread SyncLevel on 
-mutex release.
-
-Added ACPI_VALID_SXDS flag to the AcpiGetObjectInfo interface for 
-consistency with the other fields returned.
-
-Shrunk the ACPI_GPE_EVENT_INFO structure by 40%.  There is one such 
-structure for each GPE in the system, so the size of this structure is 
-important.
-
-CPU stack requirement reduction:  Cleaned up the method execution and object 
-evaluation paths so that now a parameter structure is passed, instead of 
-copying the various method parameters over and over again.
-
-In evregion.c:  Correctly exit and reenter the interpreter region if and 
-only if dispatching an operation region request to a user-installed handler.  
-Do not exit/reenter when dispatching to a default handler (e.g., default 
-system memory or I/O handlers)
-
-
-Notes for updating drivers for the new GPE support.  The following changes 
-must be made to ACPI-related device drivers that are attached to one or more 
-GPEs: (This information will be added to the ACPI CA Programmer Reference.)
-
-1) AcpiInstallGpeHandler no longer automatically enables the GPE, you must 
-explicitly call AcpiEnableGpe.
-2) There is a new interface called AcpiSetGpeType. This should be called 
-before enabling the GPE.  Also, this interface will automatically disable 
-the GPE if it is currently enabled.
-3) AcpiEnableGpe no longer supports a GPE type flag.
-
-Specific drivers that must be changed:
-1) EC driver:
-    AcpiInstallGpeHandler (NULL, GpeNum, ACPI_GPE_EDGE_TRIGGERED, 
-AeGpeHandler, NULL);
-    AcpiSetGpeType (NULL, GpeNum, ACPI_GPE_TYPE_RUNTIME);
-    AcpiEnableGpe (NULL, GpeNum, ACPI_NOT_ISR);
-
-2) Button Drivers (Power, Lid, Sleep):
-Run _PRW method under parent device
-If _PRW exists: /* This is a control-method button */
-    Extract GPE number and possibly GpeDevice
-    AcpiSetGpeType (GpeDevice, GpeNum, ACPI_GPE_TYPE_WAKE_RUN);
-    AcpiEnableGpe (GpeDevice, GpeNum, ACPI_NOT_ISR);
-
-For all other devices that have _PRWs, we automatically set the GPE type to 
-ACPI_GPE_TYPE_WAKE, but the GPE is NOT automatically (wake) enabled.  This 
-must be done on a selective basis, usually requiring some kind of user app 
-to allow the user to pick the wake devices.
-
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  77.0K Code,  11.4K Data,   88.4K Total
-    Debug Version:     161.0K Code,  66.3K Data,  227.3K Total
-  Current Release:
-
-    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
-    Debug Version:     162.9K Code,  67.0K Data,  229.9K Total
-
-
-
-----------------------------------------
-02 April 2004.  Summary of changes for version 20040402:
-
-1) ACPI CA Core Subsystem:
-
-Fixed an interpreter problem where an indirect store through an ArgX 
-parameter was incorrectly applying the "implicit conversion rules" during 
-the store.  From the ACPI specification: "If the target is a method local or 
-argument (LocalX or ArgX), no conversion is performed and the result is 
-stored directly to the target".  The new behavior is to disable implicit 
-conversion during ALL stores to an ArgX.
-
-Changed the behavior of the _PRW method scan to ignore any and all errors 
-returned by a given _PRW.  This prevents the scan from aborting from the 
-failure of any single _PRW.
-
-Moved the runtime configuration parameters from the global init procedure to 
-static variables in acglobal.h.  This will allow the host to override the 
-default values easily.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  76.9K Code,  11.4K Data,   88.3K Total
-    Debug Version:     160.8K Code,  66.1K Data,  226.9K Total
-  Current Release:
-    Non-Debug Version:  77.0K Code,  11.4K Data,   88.4K Total
-    Debug Version:     161.0K Code,  66.3K Data,  227.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-iASL now fully disassembles SSDTs.  However, External() statements are not 
-generated automatically for unresolved symbols at this time.  This is a 
-planned feature for future implementation.
-
-Fixed a scoping problem in the disassembler that occurs when the type of the 
-target of a Scope() operator is overridden.  This problem caused an 
-incorrectly nested internal namespace to be constructed.
-
-Any warnings or errors that are emitted during disassembly are now commented 
-out automatically so that the resulting file can be recompiled without any 
-hand editing.
-
-----------------------------------------
-26 March 2004.  Summary of changes for version 20040326:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for "wake" GPEs via interaction between GPEs and the 
-_PRW methods.  Every GPE that is pointed to by one or more _PRWs is 
-identified as a WAKE GPE and by default will no longer be enabled at 
-runtime.  Previously, we were blindly enabling all GPEs with a corresponding 
-_Lxx or _Exx method - but most of these turn out to be WAKE GPEs anyway.  We 
-believe this has been the cause of thousands of "spurious" GPEs on some 
-systems.
-
-This new GPE behavior is can be reverted to the original behavior (enable 
-ALL GPEs at runtime) via a runtime flag.
-
-Fixed a problem where aliased control methods could not access objects 
-properly.  The proper scope within the namespace was not initialized 
-(transferred to the target of the aliased method) before executing the 
-target method.
-
-Fixed a potential race condition on internal object deletion on the return 
-object in AcpiEvaluateObject. 
-
-Integrated a fix for resource descriptors where both _MEM and _MTP were 
-being extracted instead of just _MEM.  (i.e. bitmask was incorrectly too 
-wide, 0x0F instead of 0x03.)
-
-Added a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName, preventing a 
-fault in some cases.
-
-Updated Notify() values for debug statements in evmisc.c
-
-Return proper status from AcpiUtMutexInitialize, not just simply AE_OK.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-
-    Non-Debug Version:  76.5K Code,  11.3K Data,   87.8K Total
-    Debug Version:     160.3K Code,  66.0K Data,  226.3K Total
-  Current Release:
-    Non-Debug Version:  76.9K Code,  11.4K Data,   88.3K Total
-    Debug Version:     160.8K Code,  66.1K Data,  226.9K Total
-
-----------------------------------------
-11 March 2004.  Summary of changes for version 20040311:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where errors occurring during the parse phase of control 
-method execution did not abort cleanly.  For example, objects created and 
-installed in the namespace were not deleted.  This caused all subsequent 
-invocations of the method to return the AE_ALREADY_EXISTS exception.
-
-Implemented a mechanism to force a control method to "Serialized" execution 
-if the method attempts to create namespace objects. (The root of the 
-AE_ALREADY_EXISTS problem.)
-
-Implemented support for the predefined _OSI "internal" control method.  
-Initial supported strings are "Linux", "Windows 2000", "Windows 2001", and 
-"Windows 2001.1", and can be easily upgraded for new strings as necessary.  
-This feature will allow "other" operating systems to execute the fully 
-tested, "Windows" code path through the ASL code
-
-Global Lock Support:  Now allows multiple acquires and releases with any 
-internal thread.  Removed concept of "owning thread" for this special mutex.
-
-Fixed two functions that were inappropriately declaring large objects on the 
-CPU stack:  PsParseLoop, NsEvaluateRelative.  Reduces the stack usage during 
-method execution considerably.
-
-Fixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where the 
-S4Bios_f field was incorrectly defined as UINT32 instead of UINT32_BIT.
-
-Fixed a problem where AcpiEvGpeDetect would fault if there were no GPEs 
-defined on the machine.
-
-Implemented two runtime options:  One to force all control method execution 
-to "Serialized" to mimic Windows behavior, another to disable _OSI support 
-if it causes problems on a given machine.
-
-Code and Data Size: Current and previous core subsystem library sizes are 
-shown below.  These are the code and data sizes for the acpica.lib produced 
-by the Microsoft Visual C++ 6.0 compiler, and these values do not include 
-any ACPI driver or OSPM code.  The debug version of the code includes the 
-debug output trace mechanism and has a much larger code and data size.  Note 
-that these values will vary depending on the efficiency of the compiler and 
-the compiler options used during generation.
-
-  Previous Release:
-    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
-    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
-  Current Release:
-    Non-Debug Version:  76.5K Code,  11.3K Data,   87.8K Total
-    Debug Version:     160.3K Code,  66.0K Data,  226.3K Total
-
-2) iASL Compiler/Disassembler:
-
-Fixed an array size problem for FreeBSD that would cause the compiler to 
-fault.
-
-----------------------------------------
-20 February 2004.  Summary of changes for version 20040220:
-
-
-1) ACPI CA Core Subsystem:
-
-Implemented execution of _SxD methods for Device objects in the 
-GetObjectInfo interface.
-
-Fixed calls to _SST method to pass the correct arguments.
-
-Added a call to _SST on wake to restore to "working" state.
-
-Check for End-Of-Buffer failure case in the WalkResources interface.
-
-Integrated fix for 64-bit alignment issue in acglobal.h by moving two 
-structures to the beginning of the file.
-
-After wake, clear GPE status register(s) before enabling GPEs.
-
-After wake, clear/enable power button.  (Perhaps we should clear/enable all 
-fixed events upon wake.)
-
-Fixed a couple of possible memory leaks in the Namespace manager.
-
-Integrated latest acnetbsd.h file.
-
-----------------------------------------
-11 February 2004.  Summary of changes for version 20040211:
-
-
-1) ACPI CA Core Subsystem:
-
-Completed investigation and implementation of the call-by-reference 
-mechanism for control method arguments.
-
-Fixed a problem where a store of an object into an indexed package could 
-fail if the store occurs within a different method than the method that 
-created the package.
-
-Fixed a problem where the ToDecimal operator could return incorrect results.
-
-Fixed a problem where the CopyObject operator could fail on some of the more 
-obscure objects (e.g., Reference objects.)
-
-Improved the output of the Debug object to display buffer, package, and 
-index objects.
-
-Fixed a problem where constructs of the form "RefOf (ArgX)" did not return 
-the expected result.
-
-Added permanent ACPI_REPORT_ERROR macros for all instances of the 
-ACPI_AML_INTERNAL exception.
-
-Integrated latest version of acfreebsd.h
-
-----------------------------------------
-16 January 2004.  Summary of changes for version 20040116:
-
-The purpose of this release is primarily to update the copyright years in 
-each module, thus causing a huge number of diffs.  There are a few small 
-functional changes, however.
-
-1) ACPI CA Core Subsystem:
-
-Improved error messages when there is a problem finding one or more of the 
-required base ACPI tables
-
-Reintroduced the definition of APIC_HEADER in actbl.h
-
-Changed definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
-
-Removed extraneous reference to NewObj in dsmthdat.c
-
-2) iASL compiler
-
-Fixed a problem introduced in December that disabled the correct disassembly 
-of Resource Templates
-
-
-----------------------------------------
-03 December 2003.  Summary of changes for version 20031203:
-
-1) ACPI CA Core Subsystem:
-
-Changed the initialization of Operation Regions during subsystem
-init to perform two entire walks of the ACPI namespace; The first
-to initialize the regions themselves, the second to execute the
-_REG methods.  This fixed some interdependencies across _REG
-methods found on some machines.
-
-Fixed a problem where a Store(Local0, Local1) could simply update
-the object reference count, and not create a new copy of the
-object if the Local1 is uninitialized.
-
-Implemented support for the _SST reserved method during sleep
-transitions.
-
-Implemented support to clear the SLP_TYP and SLP_EN bits when
-waking up, this is apparently required by some machines.
-
-When sleeping, clear the wake status only if SleepState is not S5.
-
-Fixed a problem in AcpiRsExtendedIrqResource() where an incorrect
-pointer arithmetic advanced a string pointer too far.
-
-Fixed a problem in AcpiTbGetTablePtr() where a garbage pointer
-could be returned if the requested table has not been loaded.
-
-Within the support for IRQ resources, restructured the handling of
-the active and edge/level bits.
-
-Fixed a few problems in AcpiPsxExecute() where memory could be
-leaked under certain error conditions.
-
-Improved error messages for the cases where the ACPI mode could
-not be entered.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below.  These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code.  The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size.  Note that
-these values will vary depending on the efficiency of the compiler
-and the compiler options used during generation.
-
-  Previous Release (20031029):
-    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
-    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
-  Current Release:
-    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
-    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
-
-2) iASL Compiler/Disassembler:
-
-Implemented a fix for the iASL disassembler where a bad index was
-generated.  This was most noticeable on 64-bit platforms
-
-
-----------------------------------------
-29 October 2003.  Summary of changes for version 20031029:
-
-1) ACPI CA Core Subsystem:
-
-
-Fixed a problem where a level-triggered GPE with an associated
-_Lxx control method was incorrectly cleared twice.
-
-Fixed a problem with the Field support code where an access can
-occur beyond the end-of-region if the field is non-aligned but
-extends to the very end of the parent region (resulted in an
-AE_AML_REGION_LIMIT exception.)
-
-Fixed a problem with ACPI Fixed Events where an RT Clock handler
-would not get invoked on an RTC event.  The RTC event bitmasks for
-the PM1 registers were not being initialized properly.
-
-Implemented support for executing _STA and _INI methods for
-Processor objects.  Although this is currently not part of the
-ACPI specification, there is existing ASL code that depends on the
-init-time execution of these methods.
-
-Implemented and deployed a GetDescriptorName function to decode
-the various types of internal descriptors.  Guards against null
-descriptors during debug output also.
-
-Implemented and deployed a GetNodeName function to extract the 4-
-character namespace node name.  This function simplifies the debug
-and error output, as well as guarding against null pointers during
-output.
-
-Implemented and deployed the ACPI_FORMAT_UINT64 helper macro to
-simplify the debug and error output of 64-bit integers.  This
-macro replaces the HIDWORD and LODWORD macros for dumping these
-integers.
-
-Updated the implementation of the Stall() operator to only call
-AcpiOsStall(), and also return an error if the operand is larger
-than 255.  This preserves the required behavior of not
-relinquishing the processor, as would happen if AcpiOsSleep() was
-called for "long stalls".
-
-Constructs of the form "Store(LocalX,LocalX)" where LocalX is not
-initialized are now treated as NOOPs.
-
-Cleaned up a handful of warnings during 64-bit generation.
-
-Fixed a reported error where and incorrect GPE number was passed
-to the GPE dispatch handler.  This value is only used for error
-output, however.  Used this opportunity to clean up and streamline
-the GPE dispatch code.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below.  These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code.  The
-
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size.  Note that
-these values will vary depending on the efficiency of the compiler
-and the compiler options used during generation.
-
-  Previous Release (20031002):
-    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
-    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
-  Current Release:
-    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
-    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Updated the iASL compiler to return an error if the operand to the
-Stall() operator is larger than 255.
-
-
-----------------------------------------
-02 October 2003.  Summary of changes for version 20031002:
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with Index Fields where the index was not
-incremented for fields that require multiple writes to the
-index/data registers (Fields that are wider than the data
-register.)
-
-Fixed a problem with all Field objects where a write could go
-beyond the end-of-field if the field was larger than the access
-granularity and therefore required multiple writes to complete the
-request.  An extra write beyond the end of the field could happen
-inadvertently.
-
-Fixed a problem with Index Fields where a BUFFER_OVERFLOW error
-would incorrectly be returned if the width of the Data Register
-was larger than the specified field access width.
-
-Completed fixes for LoadTable() and Unload() and verified their
-operation.  Implemented full support for the "DdbHandle" object
-throughout the ACPI CA subsystem.
-
-Implemented full support for the MADT and ECDT tables in the ACPI
-CA header files.  Even though these tables are not directly
-consumed by ACPI CA, the header definitions are useful for ACPI
-device drivers.
-
-Integrated resource descriptor fixes posted to the Linux ACPI
-list.  This included checks for minimum descriptor length, and
-support for trailing NULL strings within descriptors that have
-optional string elements.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below.  These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code.  The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size.  Note that
-these values will vary depending on the efficiency of the compiler
-and the compiler options used during generation.
-
-  Previous Release (20030918):
-    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
-    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
-  Current Release:
-    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
-    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
-
-
-2) iASL Compiler:
-
-Implemented detection of non-ASCII characters within the input
-source ASL file.  This catches attempts to compile binary (AML)
-files early in the compile, with an informative error message.
-
-Fixed a problem where the disassembler would fault if the output
-filename could not be generated or if the output file could not be
-opened.
-
-----------------------------------------
-18 September 2003.  Summary of changes for version 20030918:
-
-
-1) ACPI CA Core Subsystem:
-
-Found and fixed a longstanding problem with the late execution of
-the various deferred AML opcodes (such as Operation Regions,
-Buffer Fields, Buffers, and Packages).  If the name string
-specified for the name of the new object placed the object in a
-scope other than the current scope, the initialization/execution
-of the opcode failed.  The solution to this problem was to
-implement a mechanism where the late execution of such opcodes
-does not attempt to lookup/create the name a second time in an
-incorrect scope.  This fixes the "region size computed
-incorrectly" problem.
-
-Fixed a call to AcpiHwRegisterWrite in hwregs.c that was causing a
-Global Lock AE_BAD_PARAMETER error.
-
-Fixed several 64-bit issues with prototypes, casting and data
-types.
-
-Removed duplicate prototype from acdisasm.h
-
-Fixed an issue involving EC Operation Region Detach (Shaohua Li)
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below.  These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code.  The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size.  Note that
-these values will vary depending on the efficiency of the compiler
-and the compiler options used during generation.
-
-  Previous Release:
-
-    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
-    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
-  Current Release:
-    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
-    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
-
-
-2) Linux:
-
-Fixed the AcpiOsSleep implementation in osunixxf.c to pass the
-correct sleep time in seconds.
-
-----------------------------------------
-14 July 2003.  Summary of changes for version 20030619:
-
-1) ACPI CA Core Subsystem:
-
-Parse SSDTs in order discovered, as opposed to reverse order
-(Hrvoje Habjanic)
-
-Fixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas
-Klausner,
-   Nate Lawson)
-
-
-2) Linux:
-
-Dynamically allocate SDT list (suggested by Andi Kleen)
-
-proc function return value cleanups (Andi Kleen)
-
-Correctly handle NMI watchdog during long stalls (Andrew Morton)
-
-Make it so acpismp=force works (reported by Andrew Morton)
-
-
-----------------------------------------
-19 June 2003.  Summary of changes for version 20030619:
-
-1) ACPI CA Core Subsystem:
-
-Fix To/FromBCD, eliminating the need for an arch-specific #define.
-
-Do not acquire a semaphore in the S5 shutdown path.
-
-Fix ex_digits_needed for 0. (Takayoshi Kochi)
-
-Fix sleep/stall code reversal. (Andi Kleen)
-
-Revert a change having to do with control method calling
-semantics.
-
-2) Linux:
-
-acpiphp update (Takayoshi Kochi)
-
-Export acpi_disabled for sonypi (Stelian Pop)
-
-Mention acpismp=force in config help
-
-Re-add acpitable.c and acpismp=force. This improves backwards
-
-compatibility and also cleans up the code to a significant degree.
-
-Add ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
-
-----------------------------------------
-22 May 2003.  Summary of changes for version 20030522:
-
-1) ACPI CA Core Subsystem:
-
-Found and fixed a reported problem where an AE_NOT_FOUND error
-occurred occasionally during _BST evaluation.  This turned out to
-be an Owner ID allocation issue where a called method did not get
-a new ID assigned to it.  Eventually, (after 64k calls), the Owner
-ID UINT16 would wraparound so that the ID would be the same as the
-caller's and the called method would delete the caller's
-namespace.
-
-Implemented extended error reporting for control methods that are
-aborted due to a run-time exception.  Output includes the exact
-AML instruction that caused the method abort, a dump of the method
-locals and arguments at the time of the abort, and a trace of all
-nested control method calls.
-
-Modified the interpreter to allow the creation of buffers of zero
-length from the AML code. Implemented new code to ensure that no
-attempt is made to actually allocate a memory buffer (of length
-zero) - instead, a simple buffer object with a NULL buffer pointer
-and length zero is created.  A warning is no longer issued when
-the AML attempts to create a zero-length buffer.
-
-Implemented a workaround for the "leading asterisk issue" in
-_HIDs, _UIDs, and _CIDs in the AML interpreter.  One leading
-asterisk is automatically removed if present in any HID, UID, or
-CID strings.  The iASL compiler will still flag this asterisk as
-an error, however.
-
-Implemented full support for _CID methods that return a package of
-multiple CIDs (Compatible IDs).  The AcpiGetObjectInfo() interface
-now additionally returns a device _CID list if present.  This
-required a change to the external interface in order to pass an
-ACPI_BUFFER object as a parameter since the _CID list is of
-variable length.
-
-Fixed a problem with the new AE_SAME_HANDLER exception where
-handler initialization code did not know about this exception.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below.  These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code.  The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size.  Note that
-these values will vary depending on the efficiency of the compiler
-and the compiler options used during generation.
-
-  Previous Release (20030509):
-    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
-    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
-  Current Release:
-    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
-    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
-
-
-2) Linux:
-
-Fixed a bug in which we would reinitialize the ACPI interrupt
-after it was already working, thus disabling all ACPI and the IRQs
-for any other device sharing the interrupt. (Thanks to Stian
-Jordet)
-
-Toshiba driver update (John Belmonte)
-
-Return only 0 or 1 for our interrupt handler status (Andrew
-Morton)
-
-
-3) iASL Compiler:
-
-Fixed a reported problem where multiple (nested) ElseIf()
-statements were not handled correctly by the compiler, resulting
-in incorrect warnings and incorrect AML code.  This was a problem
-in both the ASL parser and the code generator.
-
-
-4) Documentation:
-
-Added changes to existing interfaces, new exception codes, and new
-text concerning reference count object management versus garbage
-collection.
-
-----------------------------------------
-09 May 2003.  Summary of changes for version 20030509.
-
-
-1) ACPI CA Core Subsystem:
-
-Changed the subsystem initialization sequence to hold off
-installation of address space handlers until the hardware has been
-initialized and the system has entered ACPI mode.  This is because
-the installation of space handlers can cause _REG methods to be
-run.  Previously, the _REG methods could potentially be run before
-ACPI mode was enabled.
-
-Fixed some memory leak issues related to address space handler and
-notify handler installation.  There were some problems with the
-reference count mechanism caused by the fact that the handler
-objects are shared across several namespace objects.
-
-Fixed a reported problem where reference counts within the
-namespace were not properly updated when named objects created by
-method execution were deleted.
-
-Fixed a reported problem where multiple SSDTs caused a deletion
-issue during subsystem termination.  Restructured the table data
-structures to simplify the linked lists and the related code.
-
-Fixed a problem where the table ID associated with secondary
-tables (SSDTs) was not being propagated into the namespace objects
-created by those tables.  This would only present a problem for
-tables that are unloaded at run-time, however.
-
-Updated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
-type as the length parameter (instead of UINT32).
-
-Solved a long-standing problem where an ALREADY_EXISTS error
-appears on various systems.  This problem could happen when there
-are multiple PCI_Config operation regions under a single PCI root
-bus.  This doesn't happen very frequently, but there are some
-systems that do this in the ASL.
-
-Fixed a reported problem where the internal DeleteNode function
-was incorrectly handling the case where a namespace node was the
-first in the parent's child list, and had additional peers (not
-the only child, but first in the list of children.)
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
-    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
-  Current Release:
-    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
-    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
-
-
-2) Linux:
-
-Allow ":" in OS override string (Ducrot Bruno)
-
-Kobject fix (Greg KH)
-
-
-3 iASL Compiler/Disassembler:
-
-Fixed a problem in the generation of the C source code files (AML
-is emitted in C source statements for BIOS inclusion) where the
-Ascii dump that appears within a C comment at the end of each line
-could cause a compile time error if the AML sequence happens to
-have an open comment or close comment sequence embedded.
-
-
-----------------------------------------
-24 April 2003.  Summary of changes for version 20030424.
-
-
-1) ACPI CA Core Subsystem:
-
-Support for big-endian systems has been implemented.  Most of the
-support has been invisibly added behind big-endian versions of the
-ACPI_MOVE_* macros.
-
-Fixed a problem in AcpiHwDisableGpeBlock() and
-AcpiHwClearGpeBlock() where an incorrect offset was passed to the
-low level hardware write routine.  The offset parameter was
-actually eliminated from the low level read/write routines because
-they had become obsolete.
-
-Fixed a problem where a handler object was deleted twice during
-the removal of a fixed event handler.
-
-
-2) Linux:
-
-A fix for SMP systems with link devices was contributed by
-
-Compaq's Dan Zink.
-
-(2.5) Return whether we handled the interrupt in our IRQ handler.
-(Linux ISRs no longer return void, so we can propagate the handler
-return value from the ACPI CA core back to the OS.)
-
-
-
-3) Documentation:
-
-The ACPI CA Programmer Reference has been updated to reflect new
-interfaces and changes to existing interfaces.
-
-----------------------------------------
-28 March 2003.  Summary of changes for version 20030328.
-
-1) ACPI CA Core Subsystem:
-
-The GPE Block Device support has been completed.  New interfaces
-are AcpiInstallGpeBlock and AcpiRemoveGpeBlock.  The Event
-interfaces (enable, disable, clear, getstatus) have been split
-into separate interfaces for Fixed Events and General Purpose
-Events (GPEs) in order to support GPE Block Devices properly.
-
-Fixed a problem where the error message "Failed to acquire
-semaphore" would appear during operations on the embedded
-controller (EC).
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
-    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
-  Current Release:
-    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
-    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
-
-
-----------------------------------------
-28 February 2003.  Summary of changes for version 20030228.
-
-
-1) ACPI CA Core Subsystem:
-
-The GPE handling and dispatch code has been completely overhauled
-in preparation for support of GPE Block Devices (ID ACPI0006).
-This affects internal data structures and code only; there should
-be no differences visible externally.  One new file has been
-added, evgpeblk.c
-
-The FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
-fields that are used to determine the GPE block lengths.  The
-REGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
-structures are ignored.  This is per the ACPI specification but it
-isn't very clear.  The full 256 Block 0/1 GPEs are now supported
-(the use of REGISTER_BIT_WIDTH limited the number of GPEs to 128).
-
-In the SCI interrupt handler, removed the read of the PM1_CONTROL
-register to look at the SCI_EN bit.  On some machines, this read
-causes an SMI event and greatly slows down SCI events.  (This may
-in fact be the cause of slow battery status response on some
-systems.)
-
-Fixed a problem where a store of a NULL string to a package object
-could cause the premature deletion of the object.  This was seen
-during execution of the battery _BIF method on some systems,
-resulting in no battery data being returned.
-
-Added AcpiWalkResources interface to simplify parsing of resource
-lists.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
-    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
-  Current Release:
-    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
-    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
-
-
-2) Linux
-
-S3 fixes (Ole Rohne)
-
-Update ACPI PHP driver with to use new acpi_walk_resource API
-(Bjorn Helgaas)
-
-Add S4BIOS support (Pavel Machek)
-
-Map in entire table before performing checksum (John Stultz)
-
-Expand the mem= cmdline to allow the specification of reserved and
-ACPI DATA blocks (Pavel Machek)
-
-Never use ACPI on VISWS
-
-Fix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
-
-Revert a change that allowed P_BLK lengths to be 4 or 5. This is
-causing us to think that some systems support C2 when they really
-don't.
-
-Do not count processor objects for non-present CPUs (Thanks to
-Dominik Brodowski)
-
-
-3) iASL Compiler:
-
-Fixed a problem where ASL include files could not be found and
-opened.
-
-Added support for the _PDC reserved name.
-
-
-----------------------------------------
-22 January 2003.  Summary of changes for version 20030122.
-
-
-1) ACPI CA Core Subsystem:
-
-Added a check for constructs of the form:  Store (Local0, Local0)
-where Local0 is not initialized.  Apparently, some BIOS
-programmers believe that this is a NOOP.  Since this store doesn't
-do anything anyway, the new prototype behavior will ignore this
-error.  This is a case where we can relax the strict checking in
-the interpreter in the name of compatibility.
-
-
-2) Linux
-
-The AcpiSrc Source Conversion Utility has been released with the
-Linux package for the first time.  This is the utility that is
-used to convert the ACPI CA base source code to the Linux version.
-
-(Both) Handle P_BLK lengths shorter than 6 more gracefully
-
-(Both) Move more headers to include/acpi, and delete an unused
-header.
-
-(Both) Move drivers/acpi/include directory to include/acpi
-
-(Both) Boot functions don't use cmdline, so don't pass it around
-
-(Both) Remove include of unused header (Adrian Bunk)
-
-(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
-the
-former now also includes the latter, acpiphp.h only needs the one,
-now.
-
-(2.5) Make it possible to select method of bios restoring after S3
-resume. [=> no more ugly ifdefs] (Pavel Machek)
-
-(2.5) Make proc write interfaces work (Pavel Machek)
-
-(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
-
-(2.5) Break out ACPI Perf code into its own module, under cpufreq
-(Dominik Brodowski)
-
-(2.4) S4BIOS support (Ducrot Bruno)
-
-(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
-Visinoni)
-
-
-3) iASL Compiler:
-
-Added support to disassemble SSDT and PSDTs.
-
-Implemented support to obtain SSDTs from the Windows registry if
-available.
-
-
-----------------------------------------
-09 January 2003.  Summary of changes for version 20030109.
-
-1) ACPI CA Core Subsystem:
-
-Changed the behavior of the internal Buffer-to-String conversion
-function.  The current ACPI specification states that the contents
-of the buffer are "converted to a string of two-character
-hexadecimal numbers, each separated by a space".  Unfortunately,
-this definition is not backwards compatible with existing ACPI 1.0
-implementations (although the behavior was not defined in the ACPI
-1.0 specification).  The new behavior simply copies data from the
-buffer to the string until a null character is found or the end of
-the buffer is reached.  The new String object is always null
-terminated.  This problem was seen during the generation of _BIF
-battery data where incorrect strings were returned for battery
-type, etc.  This will also require an errata to the ACPI
-specification.
-
-Renamed all instances of NATIVE_UINT and NATIVE_INT to
-ACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
-
-Copyright in all module headers (both Linux and non-Linux) has be
-updated to 2003.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
-    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
-  Current Release:
-    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
-    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
-
-
-2) Linux
-
-Fixed an oops on module insertion/removal (Matthew Tippett)
-
-(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
-
-(2.5) Replace pr_debug (Randy Dunlap)
-
-(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
-
-(Both) Eliminate spawning of thread from timer callback, in favor
-of schedule_work()
-
-(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
-
-(Both) Added define for Fixed Function HW region (Matthew Wilcox)
-
-(Both) Add missing statics to button.c (Pavel Machek)
-
-Several changes have been made to the source code translation
-utility that generates the Linux Code in order to make the code
-more "Linux-like":
-
-All typedefs on structs and unions have been removed in keeping
-with the Linux coding style.
-
-Removed the non-Linux SourceSafe module revision number from each
-module header.
-
-Completed major overhaul of symbols to be lowercased for linux.
-Doubled the number of symbols that are lowercased.
-
-Fixed a problem where identifiers within procedure headers and
-within quotes were not fully lower cased (they were left with a
-starting capital.)
-
-Some C macros whose only purpose is to allow the generation of 16-
-bit code are now completely removed in the Linux code, increasing
-readability and maintainability.
-
-----------------------------------------
-
-12 December 2002.  Summary of changes for version 20021212.
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where the creation of a zero-length AML Buffer
-would cause a fault.
-
-Fixed a problem where a Buffer object that pointed to a static AML
-buffer (in an ACPI table) could inadvertently be deleted, causing
-memory corruption.
-
-Fixed a problem where a user buffer (passed in to the external
-ACPI CA interfaces) could be overwritten if the buffer was too
-small to complete the operation, causing memory corruption.
-
-Fixed a problem in the Buffer-to-String conversion code where a
-string of length one was always returned, regardless of the size
-of the input Buffer object.
-
-Removed the NATIVE_CHAR data type across the entire source due to
-lack of need and lack of consistent use.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
-    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
-  Current Release:
-    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
-    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
-
-
-----------------------------------------
-05 December 2002.  Summary of changes for version 20021205.
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where a store to a String or Buffer object could
-cause corruption of the DSDT if the object type being stored was
-the same as the target object type and the length of the object
-being stored was equal to or smaller than the original (existing)
-target object.  This was seen to cause corruption of battery _BIF
-buffers if the _BIF method modified the buffer on the fly.
-
-Fixed a problem where an internal error was generated if a control
-method invocation was used in an OperationRegion, Buffer, or
-Package declaration.  This was caused by the deferred parsing of
-the control method and thus the deferred creation of the internal
-method object.  The solution to this problem was to create the
-internal method object at the moment the method is encountered in
-the first pass - so that subsequent references to the method will
-able to obtain the required parameter count and thus properly
-parse the method invocation.  This problem presented itself as an
-AE_AML_INTERNAL during the pass 1 parse phase during table load.
-
-Fixed a problem where the internal String object copy routine did
-not always allocate sufficient memory for the target String object
-and caused memory corruption.  This problem was seen to cause
-"Allocation already present in list!" errors as memory allocation
-became corrupted.
-
-Implemented a new function for the evaluation of namespace objects
-that allows the specification of the allowable return object
-types.  This simplifies a lot of code that checks for a return
-object of one or more specific objects returned from the
-evaluation (such as _STA, etc.)  This may become and external
-function if it would be useful to ACPI-related drivers.
-
-Completed another round of prefixing #defines with "ACPI_" for
-clarity.
-
-Completed additional code restructuring to allow more modular
-linking for iASL compiler and AcpiExec.  Several files were split
-creating new files.  New files:  nsparse.c dsinit.c evgpe.c
-
-Implemented an abort mechanism to terminate an executing control
-method via the AML debugger.  This feature is useful for debugging
-control methods that depend (wait) for specific hardware
-responses.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
-    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
-  Current Release:
-    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
-    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
-
-
-2) iASL Compiler/Disassembler
-
-Fixed a compiler code generation problem for "Interrupt" Resource
-Descriptors.  If specified in the ASL, the optional "Resource
-Source Index" and "Resource Source" fields were not inserted into
-the correct location within the AML resource descriptor, creating
-an invalid descriptor.
-
-Fixed a disassembler problem for "Interrupt" resource descriptors.
-The optional "Resource Source Index" and "Resource Source" fields
-were ignored.
-
-
-----------------------------------------
-22 November 2002.  Summary of changes for version 20021122.
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a reported problem where an object stored to a Method Local
-or Arg was not copied to a new object during the store - the
-object pointer was simply copied to the Local/Arg.  This caused
-all subsequent operations on the Local/Arg to also affect the
-original source of the store operation.
-
-Fixed a problem where a store operation to a Method Local or Arg
-was not completed properly if the Local/Arg contained a reference
-(from RefOf) to a named field.  The general-purpose store-to-
-namespace-node code is now used so that this case is handled
-automatically.
-
-Fixed a problem where the internal object copy routine would cause
-a protection fault if the object being copied was a Package and
-contained either 1) a NULL package element or 2) a nested sub-
-package.
-
-Fixed a problem with the GPE initialization that resulted from an
-ambiguity in the ACPI specification.  One section of the
-specification states that both the address and length of the GPE
-block must be zero if the block is not supported.  Another section
-implies that only the address need be zero if the block is not
-supported.  The code has been changed so that both the address and
-the length must be non-zero to indicate a valid GPE block (i.e.,
-if either the address or the length is zero, the GPE block is
-invalid.)
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
-    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
-  Current Release:
-    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
-    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
-
-
-2) Linux
-
-Cleaned up EC driver. Exported an external EC read/write
-interface. By going through this, other drivers (most notably
-sonypi) will be able to serialize access to the EC.
-
-
-3) iASL Compiler/Disassembler
-
-Implemented support to optionally generate include files for both
-ASM and C (the -i switch).  This simplifies BIOS development by
-automatically creating include files that contain external
-declarations for the symbols that are created within the
-
-(optionally generated) ASM and C AML source files.
-
-
-----------------------------------------
-15 November 2002.  Summary of changes for version 20021115.
-
-1) ACPI CA Core Subsystem:
-
-Fixed a memory leak problem where an error during resolution of
-
-method arguments during a method invocation from another method
-failed to cleanup properly by deleting all successfully resolved
-argument objects.
-
-Fixed a problem where the target of the Index() operator was not
-correctly constructed if the source object was a package.  This
-problem has not been detected because the use of a target operand
-with Index() is very rare.
-
-Fixed a problem with the Index() operator where an attempt was
-made to delete the operand objects twice.
-
-Fixed a problem where an attempt was made to delete an operand
-twice during execution of the CondRefOf() operator if the target
-did not exist.
-
-Implemented the first of perhaps several internal create object
-functions that create and initialize a specific object type.  This
-consolidates duplicated code wherever the object is created, thus
-shrinking the size of the subsystem.
-
-Implemented improved debug/error messages for errors that occur
-during nested method invocations.  All executing method pathnames
-are displayed (with the error) as the call stack is unwound - thus
-simplifying debug.
-
-Fixed a problem introduced in the 10/02 release that caused
-premature deletion of a buffer object if a buffer was used as an
-ASL operand where an integer operand is required (Thus causing an
-implicit object conversion from Buffer to Integer.)  The change in
-the 10/02 release was attempting to fix a memory leak (albeit
-incorrectly.)
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
-    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
-  Current Release:
-    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
-    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
-
-
-2) Linux
-
-Changed the implementation of the ACPI semaphores to use down()
-instead of down_interruptable().  It is important that the
-execution of ACPI control methods not be interrupted by signals.
-Methods must run to completion, or the system may be left in an
-unknown/unstable state.
-
-Fixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not set.
-(Shawn Starr)
-
-
-3) iASL Compiler/Disassembler
-
-
-Changed the default location of output files.  All output files
-are now placed in the current directory by default instead of in
-the directory of the source file.  This change may affect some
-existing makefiles, but it brings the behavior of the compiler in
-line with other similar tools.  The location of the output files
-can be overridden with the -p command line switch.
-
-
-----------------------------------------
-11 November 2002.  Summary of changes for version 20021111.
-
-
-0) ACPI Specification 2.0B is released and is now available at:
-http://www.acpi.info/index.html
-
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for the ACPI 2.0 SMBus Operation Regions.
-This includes the early detection and handoff of the request to
-the SMBus region handler (avoiding all of the complex field
-support code), and support for the bidirectional return packet
-from an SMBus write operation.  This paves the way for the
-development of SMBus drivers in each host operating system.
-
-Fixed a problem where the semaphore WAIT_FOREVER constant was
-defined as 32 bits, but must be 16 bits according to the ACPI
-specification.  This had the side effect of causing ASL
-Mutex/Event timeouts even though the ASL code requested a wait
-forever.  Changed all internal references to the ACPI timeout
-parameter to 16 bits to prevent future problems.  Changed the name
-of WAIT_FOREVER to ACPI_WAIT_FOREVER.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
-    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
-  Current Release:
-    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
-    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
-
-
-2) Linux
-
-Module loading/unloading fixes (John Cagle)
-
-
-3) iASL Compiler/Disassembler
-
-Added support for the SMBBlockProcessCall keyword (ACPI 2.0)
-
-Implemented support for the disassembly of all SMBus protocol
-keywords (SMBQuick, SMBWord, etc.)
-
-----------------------------------------
-01 November 2002.  Summary of changes for version 20021101.
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where platforms that have a GPE1 block but no GPE0
-block were not handled correctly.  This resulted in a "GPE
-overlap" error message.  GPE0 is no longer required.
-
-Removed code added in the previous release that inserted nodes
-into the namespace in alphabetical order.  This caused some side-
-effects on various machines.  The root cause of the problem is
-still under investigation since in theory, the internal ordering
-of the namespace nodes should not matter.
-
-
-Enhanced error reporting for the case where a named object is not
-found during control method execution.  The full ACPI namepath
-(name reference) of the object that was not found is displayed in
-this case.
-
-Note: as a result of the overhaul of the namespace object types in
-the previous release, the namespace nodes for the predefined
-scopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
-instead of ACPI_TYPE_ANY.  This simplifies the namespace
-management code but may affect code that walks the namespace tree
-looking for specific object types.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size.  Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
-    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
-  Current Release:
-    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
-    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
-
-
-2) Linux
-
-Fixed a problem introduced in the previous release where the
-Processor and Thermal objects were not recognized and installed in
-/proc.  This was related to the scope type change described above.
-
-
-3) iASL Compiler/Disassembler
-
-Implemented the -g option to get all of the required ACPI tables
-from the registry and save them to files (Windows version of the
-compiler only.)  The required tables are the FADT, FACS, and DSDT.
-
-Added ACPI table checksum validation during table disassembly in
-order to catch corrupted tables.
-
-
-----------------------------------------
-22 October 2002.  Summary of changes for version 20021022.
-
-1) ACPI CA Core Subsystem:
-
-Implemented a restriction on the Scope operator that the target
-must already exist in the namespace at the time the operator is
-encountered (during table load or method execution).  In other
-words, forward references are not allowed and Scope() cannot
-create a new object. This changes the previous behavior where the
-interpreter would create the name if not found.  This new behavior
-correctly enables the search-to-root algorithm during namespace
-lookup of the target name.  Because of this upsearch, this fixes
-the known Compaq _SB_.OKEC problem and makes both the AML
-interpreter and iASL compiler compatible with other ACPI
-implementations.
-
-Completed a major overhaul of the internal ACPI object types for
-the ACPI Namespace and the associated operand objects.  Many of
-these types had become obsolete with the introduction of the two-
-pass namespace load.  This cleanup simplifies the code and makes
-the entire namespace load mechanism much clearer and easier to
-understand.
-
-Improved debug output for tracking scope opening/closing to help
-diagnose scoping issues.  The old scope name as well as the new
-scope name are displayed.  Also improved error messages for
-problems with ASL Mutex objects and error messages for GPE
-problems.
-
-Cleaned up the namespace dump code, removed obsolete code.
-
-All string output (for all namespace/object dumps) now uses the
-common ACPI string output procedure which handles escapes properly
-and does not emit non-printable characters.
-
-Fixed some issues with constants in the 64-bit version of the
-local C library (utclib.c)
-
-
-2) Linux
-
-EC Driver:  No longer attempts to acquire the Global Lock at
-interrupt level.
-
-
-3) iASL Compiler/Disassembler
-
-Implemented ACPI 2.0B grammar change that disallows all Type 1 and
-2 opcodes outside of a control method.  This means that the
-"executable" operators (versus the "namespace" operators) cannot
-be used at the table level; they can only be used within a control
-method.
-
-Implemented the restriction on the Scope() operator where the
-target must already exist in the namespace at the time the
-operator is encountered (during ASL compilation). In other words,
-forward references are not allowed and Scope() cannot create a new
-object.  This makes the iASL compiler compatible with other ACPI
-implementations and makes the Scope() implementation adhere to the
-ACPI specification.
-
-Fixed a problem where namepath optimization for the Alias operator
-was optimizing the wrong path (of the two namepaths.)  This caused
-a "Missing alias link" error message.
-
-Fixed a problem where an "unknown reserved name" warning could be
-incorrectly generated for names like "_SB" when the trailing
-underscore is not used in the original ASL.
-
-Fixed a problem where the reserved name check did not handle
-NamePaths with multiple NameSegs correctly.  The first nameseg of
-the NamePath was examined instead of the last NameSeg.
-
-
-----------------------------------------
-
-02 October 2002.  Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem version 20021002:
-
-Fixed a problem where a store/copy of a string to an existing
-string did not always set the string length properly in the String
-object.
-
-Fixed a reported problem with the ToString operator where the
-behavior was identical to the ToHexString operator instead of just
-simply converting a raw buffer to a string data type.
-
-Fixed a problem where CopyObject and the other "explicit"
-conversion operators were not updating the internal namespace node
-type as part of the store operation.
-
-Fixed a memory leak during implicit source operand conversion
-where the original object was not deleted if it was converted to a
-new object of a different type.
-
-Enhanced error messages for all problems associated with namespace
-lookups.  Common procedure generates and prints the lookup name as
-well as the formatted status.
-
-Completed implementation of a new design for the Alias support
-within the namespace.  The existing design did not handle the case
-where a new object was assigned to one of the two names due to the
-use of an explicit conversion operator, resulting in the two names
-pointing to two different objects.  The new design simply points
-the Alias name to the original name node - not to the object.
-This results in a level of indirection that must be handled in the
-name resolution mechanism.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
-    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
-  Current Release:
-    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
-    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
-
-
-2) Linux
-
-Initialize thermal driver's timer before it is used. (Knut
-Neumann)
-
-Allow handling negative celsius values. (Kochi Takayoshi)
-
-Fix thermal management and make trip points. R/W (Pavel Machek)
-
-Fix /proc/acpi/sleep. (P. Christeas)
-
-IA64 fixes. (David Mosberger)
-
-Fix reversed logic in blacklist code. (Sergio Monteiro Basto)
-
-Replace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
-Brodowski)
-
-
-3) iASL Compiler/Disassembler
-
-Clarified some warning/error messages.
-
-
-----------------------------------------
-18 September 2002.  Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem version 20020918:
-
-Fixed a reported problem with reference chaining (via the Index()
-and RefOf() operators) in the ObjectType() and SizeOf() operators.
-The definition of these operators includes the dereferencing of
-all chained references to return information on the base object.
-
-Fixed a problem with stores to indexed package elements - the
-existing code would not complete the store if an "implicit
-conversion" was not performed.  In other words, if the existing
-object (package element) was to be replaced completely, the code
-didn't handle this case.
-
-Relaxed typechecking on the ASL "Scope" operator to allow the
-target name to refer to an object of type Integer, String, or
-Buffer, in addition to the scoping object types (Device,
-predefined Scopes, Processor, PowerResource, and ThermalZone.)
-This allows existing AML code that has workarounds for a bug in
-Windows to function properly.  A warning is issued, however.  This
-affects both the AML interpreter and the iASL compiler. Below is
-an example of this type of ASL code:
-
-      Name(DEB,0x00)
-      Scope(DEB)
-      {
-
-Fixed some reported problems with 64-bit integer support in the
-local implementation of C library functions (clib.c)
-
-
-2) Linux
-
-Use ACPI fix map region instead of IOAPIC region, since it is
-undefined in non-SMP.
-
-Ensure that the SCI has the proper polarity and trigger, even on
-systems that do not have an interrupt override entry in the MADT.
-
-2.5 big driver reorganization (Pat Mochel)
-
-Use early table mapping code from acpitable.c (Andi Kleen)
-
-New blacklist entries (Andi Kleen)
-
-Blacklist improvements. Split blacklist code out into a separate
-file. Move checking the blacklist to very early. Previously, we
-would use ACPI tables, and then halfway through init, check the
-blacklist -- too late. Now, it's early enough to completely fall-
-back to non-ACPI.
-
-
-3) iASL Compiler/Disassembler version 20020918:
-
-Fixed a problem where the typechecking code didn't know that an
-alias could point to a method.  In other words, aliases were not
-being dereferenced during typechecking.
-
-
-----------------------------------------
-29 August 2002.  Summary of changes for this release.
-
-1) ACPI CA Core Subsystem Version 20020829:
-
-If the target of a Scope() operator already exists, it must be an
-object type that actually opens a scope -- such as a Device,
-Method, Scope, etc.  This is a fatal runtime error.  Similar error
-check has been added to the iASL compiler also.
-
-Tightened up the namespace load to disallow multiple names in the
-same scope.  This previously was allowed if both objects were of
-the same type.  (i.e., a lookup was the same as entering a new
-name).
-
-
-2) Linux
-
-Ensure that the ACPI interrupt has the proper trigger and
-polarity.
-
-local_irq_disable is extraneous. (Matthew Wilcox)
-
-Make "acpi=off" actually do what it says, and not use the ACPI
-interpreter *or* the tables.
-
-Added arch-neutral support for parsing SLIT and SRAT tables (Kochi
-Takayoshi)
-
-
-3) iASL Compiler/Disassembler  Version 20020829:
-
-Implemented namepath optimization for name declarations.  For
-example, a declaration like "Method (\_SB_.ABCD)" would get
-optimized to "Method (ABCD)" if the declaration is within the
-\_SB_ scope.  This optimization is in addition to the named
-reference path optimization first released in the previous
-version. This would seem to complete all possible optimizations
-for namepaths within the ASL/AML.
-
-If the target of a Scope() operator already exists, it must be an
-object type that actually opens a scope -- such as a Device,
-Method, Scope, etc.
-
-Implemented a check and warning for unreachable code in the same
-block below a Return() statement.
-
-Fixed a problem where the listing file was not generated if the
-compiler aborted if the maximum error count was exceeded (200).
-
-Fixed a problem where the typechecking of method return values was
-broken.  This includes the check for a return value when the
-method is invoked as a TermArg (a return value is expected.)
-
-Fixed a reported problem where EOF conditions during a quoted
-string or comment caused a fault.
-
-
-----------------------------------------
-15 August 2002.  Summary of changes for this release.
-
-1) ACPI CA Core Subsystem Version 20020815:
-
-Fixed a reported problem where a Store to a method argument that
-contains a reference did not perform the indirect store correctly.
-This problem was created during the conversion to the new
-reference object model - the indirect store to a method argument
-code was not updated to reflect the new model.
-
-Reworked the ACPI mode change code to better conform to ACPI 2.0,
-handle corner cases, and improve code legibility (Kochi Takayoshi)
-
-Fixed a problem with the pathname parsing for the carat (^)
-prefix.  The heavy use of the carat operator by the new namepath
-optimization in the iASL compiler uncovered a problem with the AML
-interpreter handling of this prefix.  In the case where one or
-more carats precede a single nameseg, the nameseg was treated as
-standalone and the search rule (to root) was inadvertently
-applied.  This could cause both the iASL compiler and the
-interpreter to find the wrong object or to miss the error that
-should occur if the object does not exist at that exact pathname.
-
-Found and fixed the problem where the HP Pavilion DSDT would not
-load.  This was a relatively minor tweak to the table loading code
-(a problem caused by the unexpected encounter with a method
-invocation not within a control method), but it does not solve the
-overall issue of the execution of AML code at the table level.
-This investigation is still ongoing.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
-    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
-  Current Release:
-    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
-    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
-
-
-2) Linux
-
-Remove redundant slab.h include (Brad Hards)
-
-Fix several bugs in thermal.c (Herbert Nachtnebel)
-
-Make CONFIG_ACPI_BOOT work properly (Pavel Machek)
-
-Change acpi_system_suspend to use updated irq functions (Pavel
-Machek)
-
-Export acpi_get_firmware_table (Matthew Wilcox)
-
-Use proper root proc entry for ACPI (Kochi Takayoshi)
-
-Fix early-boot table parsing (Bjorn Helgaas)
-
-
-3) iASL Compiler/Disassembler
-
-Reworked the compiler options to make them more consistent and to
-use two-letter options where appropriate.  We were running out of
-sensible letters.   This may break some makefiles, so check the
-current options list by invoking the compiler with no parameters.
-
-Completed the design and implementation of the ASL namepath
-optimization option for the compiler.  This option optimizes all
-references to named objects to the shortest possible path.  The
-first attempt tries to utilize a single nameseg (4 characters) and
-the "search-to-root" algorithm used by the interpreter.  If that
-cannot be used (because either the name is not in the search path
-or there is a conflict with another object with the same name),
-the pathname is optimized using the carat prefix (usually a
-shorter string than specifying the entire path from the root.)
-
-Implemented support to obtain the DSDT from the Windows registry
-(when the disassembly option is specified with no input file).
-Added this code as the implementation for AcpiOsTableOverride in
-the Windows OSL.  Migrated the 16-bit code (used in the AcpiDump
-utility) to scan memory for the DSDT to the AcpiOsTableOverride
-function in the DOS OSL to make the disassembler truly OS
-independent.
-
-Implemented a new option to disassemble and compile in one step.
-When used without an input filename, this option will grab the
-DSDT from the local machine, disassemble it, and compile it in one
-step.
-
-Added a warning message for invalid escapes (a backslash followed
-by any character other than the allowable escapes).  This catches
-the quoted string error "\_SB_" (which should be "\\_SB_" ).
-
-Also, there are numerous instances in the ACPI specification where
-this error occurs.
-
-Added a compiler option to disable all optimizations.  This is
-basically the "compatibility mode" because by using this option,
-the AML code will come out exactly the same as other ASL
-compilers.
-
-Added error messages for incorrectly ordered dependent resource
-functions.  This includes: missing EndDependentFn macro at end of
-dependent resource list, nested dependent function macros (both
-start and end), and missing StartDependentFn macro.  These are
-common errors that should be caught at compile time.
-
-Implemented _OSI support for the disassembler and compiler.  _OSI
-must be included in the namespace for proper disassembly (because
-the disassembler must know the number of arguments.)
-
-Added an "optimization" message type that is optional (off by
-default).  This message is used for all optimizations - including
-constant folding, integer optimization, and namepath optimization.
-
-----------------------------------------
-25 July 2002.  Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020725:
-
-The AML Disassembler has been enhanced to produce compilable ASL
-code and has been integrated into the iASL compiler (see below) as
-well as the single-step disassembly for the AML debugger and the
-disassembler for the AcpiDump utility.  All ACPI 2.0A opcodes,
-resource templates and macros are fully supported.  The
-disassembler has been tested on over 30 different AML files,
-producing identical AML when the resulting disassembled ASL file
-is recompiled with the same ASL compiler.
-
-Modified the Resource Manager to allow zero interrupts and zero
-dma channels during the GetCurrentResources call.  This was
-causing problems on some platforms.
-
-Added the AcpiOsRedirectOutput interface to the OSL to simplify
-output redirection for the AcpiOsPrintf and AcpiOsVprintf
-interfaces.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
-    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
-  Current Release:
-    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
-    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
-
-
-2) Linux
-
-Fixed a panic in the EC driver (Dominik Brodowski)
-
-Implemented checksum of the R/XSDT itself during Linux table scan
-(Richard Schaal)
-
-
-3) iASL compiler
-
-The AML disassembler is integrated into the compiler.  The "-d"
-option invokes the disassembler  to completely disassemble an
-input AML file, producing as output a text ASL file with the
-extension ".dsl" (to avoid name collisions with existing .asl
-source files.)  A future enhancement will allow the disassembler
-to obtain the BIOS DSDT from the registry under Windows.
-
-Fixed a problem with the VendorShort and VendorLong resource
-descriptors where an invalid AML sequence was created.
-
-Implemented a fix for BufferData term in the ASL parser.  It was
-inadvertently defined twice, allowing invalid syntax to pass and
-causing reduction conflicts.
-
-Fixed a problem where the Ones opcode could get converted to a
-value of zero if "Ones" was used where a byte, word or dword value
-was expected.  The 64-bit value is now truncated to the correct
-size with the correct value.
-
-
-
-----------------------------------------
-02 July 2002.  Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020702:
-
-The Table Manager code has been restructured to add several new
-features.  Tables that are not required by the core subsystem
-(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
-validated in any way and are returned from AcpiGetFirmwareTable if
-requested.  The AcpiOsTableOverride interface is now called for
-each table that is loaded by the subsystem in order to allow the
-host to override any table it chooses.  Previously, only the DSDT
-could be overridden.  Added one new files, tbrsdt.c and
-tbgetall.c.
-
-Fixed a problem with the conversion of internal package objects to
-external objects (when a package is returned from a control
-method.)  The return buffer length was set to zero instead of the
-proper length of the package object.
-
-Fixed a reported problem with the use of the RefOf and DeRefOf
-operators when passing reference arguments to control methods.  A
-new type of Reference object is used internally for references
-produced by the RefOf operator.
-
-Added additional error messages in the Resource Manager to explain
-AE_BAD_DATA errors when they occur during resource parsing.
-
-Split the AcpiEnableSubsystem into two primitives to enable a
-finer granularity initialization sequence.  These two calls should
-be called in this order: AcpiEnableSubsystem (flags),
-AcpiInitializeObjects (flags).  The flags parameter remains the
-same.
-
-
-2) Linux
-
-Updated the ACPI utilities module to understand the new style of
-fully resolved package objects that are now returned from the core
-subsystem.  This eliminates errors of the form:
-
-    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
-    acpi_utils-0430 [145] acpi_evaluate_reference:
-        Invalid element in package (not a device reference)
-
-The method evaluation utility uses the new buffer allocation
-scheme instead of calling AcpiEvaluate Object twice.
-
-Added support for ECDT. This allows the use of the Embedded
-
-Controller before the namespace has been fully initialized, which
-is necessary for ACPI 2.0 support, and for some laptops to
-initialize properly. (Laptops using ECDT are still rare, so only
-limited testing was performed of the added functionality.)
-
-Fixed memory leaks in the EC driver.
-
-Eliminated a brittle code structure in acpi_bus_init().
-
-Eliminated the acpi_evaluate() helper function in utils.c. It is
-no longer needed since acpi_evaluate_object can optionally
-allocate memory for the return object.
-
-Implemented fix for keyboard hang when getting battery readings on
-some systems (Stephen White)
-
-PCI IRQ routing update (Dominik Brodowski)
-
-Fix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
-support
-
-----------------------------------------
-11 June 2002.  Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020611:
-
-Fixed a reported problem where constants such as Zero and One
-appearing within _PRT packages were not handled correctly within
-the resource manager code.  Originally reported against the ASL
-compiler because the code generator now optimizes integers to
-their minimal AML representation (i.e. AML constants if possible.)
-The _PRT code now handles all AML constant opcodes correctly
-(Zero, One, Ones, Revision).
-
-Fixed a problem with the Concatenate operator in the AML
-interpreter where a buffer result object was incorrectly marked as
-not fully evaluated, causing a run-time error of AE_AML_INTERNAL.
-
-All package sub-objects are now fully resolved before they are
-returned from the external ACPI interfaces.  This means that name
-strings are resolved to object handles, and constant operators
-(Zero, One, Ones, Revision) are resolved to Integers.
-
-Implemented immediate resolution of the AML Constant opcodes
-(Zero, One, Ones, Revision) to Integer objects upon detection
-within the AML stream. This has simplified and reduced the
-generated code size of the subsystem by eliminating about 10
-switch statements for these constants (which previously were
-contained in Reference objects.)  The complicating issues are that
-the Zero opcode is used as a "placeholder" for unspecified
-optional target operands and stores to constants are defined to be
-no-ops.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
-    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
-  Current Release:
-    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
-    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
-
-
-2) Linux
-
-
-Added preliminary support for obtaining _TRA data for PCI root
-bridges (Bjorn Helgaas).
-
-
-3) iASL Compiler Version X2046:
-
-Fixed a problem where the "_DDN" reserved name was defined to be a
-control method with one argument.  There are no arguments, and
-_DDN does not have to be a control method.
-
-Fixed a problem with the Linux version of the compiler where the
-source lines printed with error messages were the wrong lines.
-This turned out to be the "LF versus CR/LF" difference between
-Windows and Unix.  This appears to be the longstanding issue
-concerning listing output and error messages.
-
-Fixed a problem with the Linux version of compiler where opcode
-names within error messages were wrong.  This was caused by a
-slight difference in the output of the Flex tool on Linux versus
-Windows.
-
-Fixed a problem with the Linux compiler where the hex output files
-contained some garbage data caused by an internal buffer overrun.
-
-
-----------------------------------------
-17 May 2002.  Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020517:
-
-Implemented a workaround to an BIOS bug discovered on the HP
-OmniBook where the FADT revision number and the table size are
-inconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The new
-behavior is to fallback to using only the ACPI 1.0 fields of the
-FADT if the table is too small to be a ACPI 2.0 table as claimed
-by the revision number.  Although this is a BIOS bug, this is a
-case where the workaround is simple enough and with no side
-effects, so it seemed prudent to add it.  A warning message is
-issued, however.
-
-Implemented minimum size checks for the fixed-length ACPI tables -
-- the FADT and FACS, as well as consistency checks between the
-revision number and the table size.
-
-Fixed a reported problem in the table override support where the
-new table pointer was incorrectly treated as a physical address
-instead of a logical address.
-
-Eliminated the use of the AE_AML_ERROR exception and replaced it
-with more descriptive codes.
-
-Fixed a problem where an exception would occur if an ASL Field was
-defined with no named Field Units underneath it (used by some
-index fields).
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
-    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
-  Current Release:
-    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
-    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
-
-
-
-2) Linux
-
-Much work done on ACPI init (MADT and PCI IRQ routing support).
-(Paul D. and Dominik Brodowski)
-
-Fix PCI IRQ-related panic on boot (Sam Revitch)
-
-Set BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
-
-Fix "MHz" typo (Dominik Brodowski)
-
-Fix RTC year 2000 issue (Dominik Brodowski)
-
-Preclude multiple button proc entries (Eric Brunet)
-
-Moved arch-specific code out of include/platform/aclinux.h
-
-3) iASL Compiler Version X2044:
-
-Implemented error checking for the string used in the EISAID macro
-(Usually used in the definition of the _HID object.)  The code now
-strictly enforces the PnP format - exactly 7 characters, 3
-uppercase letters and 4 hex digits.
-
-If a raw string is used in the definition of the _HID object
-(instead of the EISAID macro), the string must contain all
-alphanumeric characters (e.g., "*PNP0011" is not allowed because
-of the asterisk.)
-
-Implemented checking for invalid use of ACPI reserved names for
-most of the name creation operators (Name, Device, Event, Mutex,
-OperationRegion, PowerResource, Processor, and ThermalZone.)
-Previously, this check was only performed for control methods.
-
-Implemented an additional check on the Name operator to emit an
-error if a reserved name that must be implemented in ASL as a
-control method is used.  We know that a reserved name must be a
-method if it is defined with input arguments.
-
-The warning emitted when a namespace object reference is not found
-during the cross reference phase has been changed into an error.
-The "External" directive should be used for names defined in other
-modules.
-
-
-4) Tools and Utilities
-
-The 16-bit tools (adump16 and aexec16) have been regenerated and
-tested.
-
-Fixed a problem with the output of both acpidump and adump16 where
-the indentation of closing parentheses and brackets was not
-
-aligned properly with the parent block.
-
-
-----------------------------------------
-03 May 2002.  Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020503:
-
-Added support a new OSL interface that allows the host operating
-
-system software to override the DSDT found in the firmware -
-AcpiOsTableOverride.  With this interface, the OSL can examine the
-version of the firmware DSDT and replace it with a different one
-if desired.
-
-Added new external interfaces for accessing ACPI registers from
-device drivers and other system software - AcpiGetRegister and
-AcpiSetRegister.  This was simply an externalization of the
-existing AcpiHwBitRegister interfaces.
-
-Fixed a regression introduced in the previous build where the
-ASL/AML CreateField operator always returned an error,
-"destination must be a NS Node".
-
-Extended the maximum time (before failure) to successfully enable
-ACPI mode to 3 seconds.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
-    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
-  Current Release:
-    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
-    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
-
-
-2) Linux
-
-Enhanced ACPI init code for SMP. We are now fully MPS and $PIR-
-free. While 3 out of 4 of our in-house systems work fine, the last
-one still hangs when testing the LAPIC timer.
-
-Renamed many files in 2.5 kernel release to omit "acpi_" from the
-name.
-
-Added warning on boot for Presario 711FR.
-
-Sleep improvements (Pavel Machek)
-
-ACPI can now be built without CONFIG_PCI enabled.
-
-IA64: Fixed memory map functions (JI Lee)
-
-
-3) iASL Compiler Version X2043:
-
-Added support to allow the compiler to be integrated into the MS
-VC++ development environment for one-button compilation of single
-files or entire projects -- with error-to-source-line mapping.
-
-Implemented support for compile-time constant folding for the
-Type3, Type4, and Type5 opcodes first defined in the ACPI 2.0
-specification.  This allows the ASL writer to use expressions
-instead of Integer/Buffer/String constants in terms that must
-evaluate to constants at compile time and will also simplify the
-emitted AML in any such sub-expressions that can be folded
-(evaluated at compile-time.)  This increases the size of the
-compiler significantly because a portion of the ACPI CA AML
-interpreter is included within the compiler in order to pre-
-evaluate constant expressions.
-
-
-Fixed a problem with the "Unicode" ASL macro that caused the
-compiler to fault.  (This macro is used in conjunction with the
-_STR reserved name.)
-
-Implemented an AML opcode optimization to use the Zero, One, and
-Ones opcodes where possible to further reduce the size of integer
-constants and thus reduce the overall size of the generated AML
-code.
-
-Implemented error checking for new reserved terms for ACPI version
-2.0A.
-
-Implemented the -qr option to display the current list of ACPI
-reserved names known to the compiler.
-
-Implemented the -qc option to display the current list of ASL
-operators that are allowed within constant expressions and can
-therefore be folded at compile time if the operands are constants.
-
-
-4) Documentation
-
-Updated the Programmer's Reference for new interfaces, data types,
-and memory allocation model options.
-
-Updated the iASL Compiler User Reference to apply new format and
-add information about new features and options.
-
-----------------------------------------
-19 April 2002.  Summary of changes for this release.
-
-1) ACPI CA Core Subsystem Version 20020419:
-
-The source code base for the Core Subsystem has been completely
-cleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
-versions.  The Lint option files used are included in the
-/acpi/generate/lint directory.
-
-Implemented enhanced status/error checking across the entire
-Hardware manager subsystem.  Any hardware errors (reported from
-the OSL) are now bubbled up and will abort a running control
-method.
-
-
-Fixed a problem where the per-ACPI-table integer width (32 or 64)
-was stored only with control method nodes, causing a fault when
-non-control method code was executed during table loading.  The
-solution implemented uses a global variable to indicate table
-width across the entire ACPI subsystem.  Therefore, ACPI CA does
-not support mixed integer widths across different ACPI tables
-(DSDT, SSDT).
-
-Fixed a problem where NULL extended fields (X fields) in an ACPI
-2.0 ACPI FADT caused the table load to fail.  Although the
-existing ACPI specification is a bit fuzzy on this topic, the new
-behavior is to fall back on a ACPI 1.0 field if the corresponding
-ACPI 2.0 X field is zero (even though the table revision indicates
-a full ACPI 2.0 table.)  The ACPI specification will be updated to
-clarify this issue.
-
-Fixed a problem with the SystemMemory operation region handler
-where memory was always accessed byte-wise even if the AML-
-specified access width was larger than a byte.  This caused
-problems on systems with memory-mapped I/O.  Memory is now
-accessed with the width specified.  On systems that do not support
-non-aligned transfers, a check is made to guarantee proper address
-alignment before proceeding in order to avoid an AML-caused
-alignment fault within the kernel.
-
-
-Fixed a problem with the ExtendedIrq resource where only one byte
-of the 4-byte Irq field was extracted.
-
-Fixed the AcpiExDigitsNeeded() procedure to support _UID.  This
-function was out of date and required a rewrite.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
-    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
-  Current Release:
-    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
-    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
-
-
-2) Linux
-
-PCI IRQ routing fixes (Dominik Brodowski)
-
-
-3) iASL Compiler Version X2042:
-
-Implemented an additional compile-time error check for a field
-unit whose size + minimum access width would cause a run-time
-access beyond the end-of-region.  Previously, only the field size
-itself was checked.
-
-The Core subsystem and iASL compiler now share a common parse
-object in preparation for compile-time evaluation of the type
-3/4/5 ASL operators.
-
-
-----------------------------------------
-Summary of changes for this release: 03_29_02
-
-1) ACPI CA Core Subsystem Version 20020329:
-
-Implemented support for late evaluation of TermArg operands to
-Buffer and Package objects.  This allows complex expressions to be
-used in the declarations of these object types.
-
-Fixed an ACPI 1.0 compatibility issue when reading Fields. In ACPI
-1.0, if the field was larger than 32 bits, it was returned as a
-buffer - otherwise it was returned as an integer.  In ACPI 2.0,
-the field is returned as a buffer only if the field is larger than
-64 bits.  The TableRevision is now considered when making this
-conversion to avoid incompatibility with existing ASL code.
-
-Implemented logical addressing for AcpiOsGetRootPointer.  This
-allows an RSDP with either a logical or physical address.  With
-this support, the host OS can now override all ACPI tables with
-one logical RSDP.  Includes implementation of  "typed" pointer
-support to allow a common data type for both physical and logical
-pointers internally.  This required a change to the
-AcpiOsGetRootPointer interface.
-
-Implemented the use of ACPI 2.0 Generic Address Structures for all
-GPE, Fixed Event, and PM Timer I/O.  This allows the use of memory
-mapped I/O for these ACPI features.
-
-Initialization now ignores not only non-required tables (All
-tables other than the FADT, FACS, DSDT, and SSDTs), but also does
-not validate the table headers of unrecognized tables.
-
-Fixed a problem where a notify handler could only be
-installed/removed on an object of type Device.  All "notify"
-
-objects are now supported -- Devices, Processor, Power, and
-Thermal.
-
-Removed most verbosity from the ACPI_DB_INFO debug level.  Only
-critical information is returned when this debug level is enabled.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release
-    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
-    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
-  Current Release:
-    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
-    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
-
-
-2) Linux:
-
-The processor driver (acpi_processor.c) now fully supports ACPI
-2.0-based processor performance control (e.g. Intel(R)
-SpeedStep(TM) technology) Note that older laptops that only have
-the Intel "applet" interface are not supported through this.  The
-'limit' and 'performance' interface (/proc) are fully functional.
-[Note that basic policy for controlling performance state
-transitions will be included in the next version of ospmd.]  The
-idle handler was modified to more aggressively use C2, and PIIX4
-errata handling underwent a complete overhaul (big thanks to
-Dominik Brodowski).
-
-Added support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
-based devices in the ACPI namespace are now dynamically bound
-(associated) with their PCI counterparts (e.g. PCI1->01:00.0).
-This allows, among other things, ACPI to resolve bus numbers for
-subordinate PCI bridges.
-
-Enhanced PCI IRQ routing to get the proper bus number for _PRT
-entries defined underneath PCI bridges.
-
-Added IBM 600E to bad bios list due to invalid _ADR value for
-PIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
-
-In the process of adding full MADT support (e.g. IOAPIC) for IA32
-(acpi.c, mpparse.c) -- stay tuned.
-
-Added back visual differentiation between fixed-feature and
-control-method buttons in dmesg.  Buttons are also subtyped (e.g.
-button/power/PWRF) to simplify button identification.
-
-We no longer use -Wno-unused when compiling debug. Please ignore
-any "_THIS_MODULE defined but not used" messages.
-
-Can now shut down the system using "magic sysrq" key.
-
-
-3) iASL Compiler version 2041:
-
-Fixed a problem where conversion errors for hex/octal/decimal
-constants were not reported.
-
-Implemented a fix for the General Register template Address field.
-This field was 8 bits when it should be 64.
-
-Fixed a problem where errors/warnings were no longer being emitted
-within the listing output file.
-
-Implemented the ACPI 2.0A restriction on ACPI Table Signatures to
-exactly 4 characters, alphanumeric only.
-
-
-
-
-----------------------------------------
-Summary of changes for this release: 03_08_02
-
-
-1) ACPI CA Core Subsystem Version 20020308:
-
-Fixed a problem with AML Fields where the use of the "AccessAny"
-keyword could cause an interpreter error due to attempting to read
-or write beyond the end of the parent Operation Region.
-
-Fixed a problem in the SystemMemory Operation Region handler where
-an attempt was made to map memory beyond the end of the region.
-This was the root cause of the "AE_ERROR" and "AE_NO_MEMORY"
-errors on some Linux systems.
-
-Fixed a problem where the interpreter/namespace "search to root"
-algorithm was not functioning for some object types.  Relaxed the
-internal restriction on the search to allow upsearches for all
-external object types as well as most internal types.
-
-
-2) Linux:
-
-We now use safe_halt() macro versus individual calls to sti | hlt.
-
-Writing to the processor limit interface should now work. "echo 1"
-will increase the limit, 2 will decrease, and 0 will reset to the
-
-default.
-
-
-3) ASL compiler:
-
-Fixed segfault on Linux version.
-
-
-----------------------------------------
-Summary of changes for this release: 02_25_02
-
-1) ACPI CA Core Subsystem:
-
-
-Fixed a problem where the GPE bit masks were not initialized
-properly, causing erratic GPE behavior.
-
-Implemented limited support for multiple calling conventions.  The
-code can be generated with either the VPL (variable parameter
-list, or "C") convention, or the FPL (fixed parameter list, or
-"Pascal") convention.  The core subsystem is about 3.4% smaller
-when generated with FPL.
-
-
-2) Linux
-
-Re-add some /proc/acpi/event functionality that was lost during
-the rewrite
-
-Resolved issue with /proc events for fixed-feature buttons showing
-up as the system device.
-
-Fixed checks on C2/C3 latencies to be inclusive of maximum values.
-
-Replaced AE_ERRORs in acpi_osl.c with more specific error codes.
-
-Changed ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
-
-Fixed limit interface & usage to fix bugs with passive cooling
-hysterisis.
-
-Restructured PRT support.
-
-
-----------------------------------------
-Summary of changes for this label: 02_14_02
-
-
-1) ACPI CA Core Subsystem:
-
-Implemented support in AcpiLoadTable to allow loading of FACS and
-FADT tables.
-
-Suport for the now-obsolete interim 0.71 64-bit ACPI tables has
-been removed.  All 64-bit platforms should be migrated to the ACPI
-2.0 tables.  The actbl71.h header has been removed from the source
-tree.
-
-All C macros defined within the subsystem have been prefixed with
-"ACPI_" to avoid collision with other system include files.
-
-Removed the return value for the two AcpiOsPrint interfaces, since
-it is never used and causes lint warnings for ignoring the return
-value.
-
-Added error checking to all internal mutex acquire and release
-calls.  Although a failure from one of these interfaces is
-probably a fatal system error, these checks will cause the
-immediate abort of the currently executing method or interface.
-
-Fixed a problem where the AcpiSetCurrentResources interface could
-fault.  This was a side effect of the deployment of the new memory
-allocation model.
-
-Fixed a couple of problems with the Global Lock support introduced
-in the last major build.  The "common" (1.0/2.0) internal FACS was
-being overwritten with the FACS signature and clobbering the
-Global Lock pointer.  Also, the actual firmware FACS was being
-unmapped after construction of the "common" FACS, preventing
-access to the actual Global Lock field within it.  The "common"
-internal FACS is no longer installed as an actual ACPI table; it
-is used simply as a global.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below.  These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release (02_07_01)
-    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
-    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
-  Current Release:
-    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
-    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
-
-
-2) Linux
-
-Updated Linux-specific code for core macro and OSL interface
-changes described above.
-
-Improved /proc/acpi/event. It now can be opened only once and has
-proper poll functionality.
-
-Fixed and restructured power management (acpi_bus).
-
-Only create /proc "view by type" when devices of that class exist.
-
-Fixed "charging/discharging" bug (and others) in acpi_battery.
-
-Improved thermal zone code.
-
-
-3) ASL Compiler, version X2039:
-
-
-Implemented the new compiler restriction on ASL String hex/octal
-escapes to non-null, ASCII values.  An error results if an invalid
-value is used.  (This will require an ACPI 2.0 specification
-change.)
-
-AML object labels that are output to the optional C and ASM source
-are now prefixed with both the ACPI table signature and table ID
-to help guarantee uniqueness within a large BIOS project.
-
-
-----------------------------------------
-Summary of changes for this label: 02_01_02
-
-1) ACPI CA Core Subsystem:
-
-ACPI 2.0 support is complete in the entire Core Subsystem and the
-ASL compiler. All new ACPI 2.0 operators are implemented and all
-other changes for ACPI 2.0 support are complete.  With
-simultaneous code and data optimizations throughout the subsystem,
-ACPI 2.0 support has been implemented with almost no additional
-cost in terms of code and data size.
-
-Implemented a new mechanism for allocation of return buffers.  If
-the buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
-be allocated on behalf of the caller.  Consolidated all return
-buffer validation and allocation to a common procedure.  Return
-buffers will be allocated via the primary OSL allocation interface
-since it appears that a separate pool is not needed by most users.
-If a separate pool is required for these buffers, the caller can
-still use the original mechanism and pre-allocate the buffer(s).
-
-Implemented support for string operands within the DerefOf
-operator.
-
-Restructured the Hardware and Event managers to be table driven,
-simplifying the source code and reducing the amount of generated
-code.
-
-Split the common read/write low-level ACPI register bitfield
-procedure into a separate read and write, simplifying the code
-considerably.
-
-Obsoleted the AcpiOsCallocate OSL interface.  This interface was
-used only a handful of times and didn't have enough critical mass
-for a separate interface.  Replaced with a common calloc procedure
-in the core.
-
-Fixed a reported problem with the GPE number mapping mechanism
-that allows GPE1 numbers to be non-contiguous with GPE0.
-Reorganized the GPE information and shrunk a large array that was
-originally large enough to hold info for all possible GPEs (256)
-to simply large enough to hold all GPEs up to the largest GPE
-number on the machine.
-
-Fixed a reported problem with resource structure alignment on 64-
-bit platforms.
-
-Changed the AcpiEnableEvent and AcpiDisableEvent external
-interfaces to not require any flags for the common case of
-enabling/disabling a GPE.
-
-Implemented support to allow a "Notify" on a Processor object.
-
-Most TBDs in comments within the source code have been resolved
-and eliminated.
-
-
-Fixed a problem in the interpreter where a standalone parent
-prefix (^) was not handled correctly in the interpreter and
-debugger.
-
-Removed obsolete and unnecessary GPE save/restore code.
-
-Implemented Field support in the ASL Load operator.  This allows a
-table to be loaded from a named field, in addition to loading a
-table directly from an Operation Region.
-
-Implemented timeout and handle support in the external Global Lock
-interfaces.
-
-Fixed a problem in the AcpiDump utility where pathnames were no
-longer being generated correctly during the dump of named objects.
-
-Modified the AML debugger to give a full display of if/while
-predicates instead of just one AML opcode at a time.  (The
-predicate can have several nested ASL statements.)  The old method
-was confusing during single stepping.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release (12_18_01)
-     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
-     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
-   Current Release:
-     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
-     Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
-
-2) Linux
-
- Implemented fix for PIIX reverse throttling errata (Processor
-driver)
-
-Added new Limit interface (Processor and Thermal drivers)
-
-New thermal policy (Thermal driver)
-
-Many updates to /proc
-
-Battery "low" event support (Battery driver)
-
-Supports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
-
-IA32 - IA64 initialization unification, no longer experimental
-
-Menuconfig options redesigned
-
-3) ASL Compiler, version X2037:
-
-Implemented several new output features to simplify integration of
-AML code into  firmware: 1) Output the AML in C source code with
-labels for each named ASL object.  The    original ASL source code
-is interleaved as C comments. 2) Output the AML in ASM source code
-with labels and interleaved ASL    source. 3) Output the AML in
-raw hex table form, in either C or ASM.
-
-Implemented support for optional string parameters to the
-LoadTable operator.
-
-Completed support for embedded escape sequences within string
-literals.  The compiler now supports all single character escapes
-as well as the Octal and Hex escapes.  Note: the insertion of a
-null byte into a string literal (via the hex/octal escape) causes
-the string to be immediately terminated.  A warning is issued.
-
-Fixed a problem where incorrect AML was generated for the case
-where an ASL namepath consists of a single parent prefix (
-
-) with no trailing name segments.
-
-The compiler has been successfully generated with a 64-bit C
-compiler.
-
-
-
-
-----------------------------------------
-Summary of changes for this label: 12_18_01
-
-1) Linux
-
-Enhanced blacklist with reason and severity fields. Any table's
-signature may now be used to identify a blacklisted system.
-
-Call _PIC control method to inform the firmware which interrupt
-model the OS is using. Turn on any disabled link devices.
-
-Cleaned up busmgr /proc error handling (Andreas Dilger)
-
- 2) ACPI CA Core Subsystem:
-
-Implemented ACPI 2.0 semantics for the "Break" operator (Exit from
-while loop)
-
-Completed implementation of the ACPI 2.0 "Continue",
-"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
-operators.  All new ACPI 2.0 operators are now implemented in both
-the ASL compiler and the AML interpreter.  The only remaining ACPI
-2.0 task is support for the String data type in the DerefOf
-operator.  Fixed a problem with AcquireMutex where the status code
-was lost if the caller had to actually wait for the mutex.
-
-Increased the maximum ASL Field size from 64K bits to 4G bits.
-
-Completed implementation of the external Global Lock interfaces --
-AcpiAcquireGlobalLock and AcpiReleaseGlobalLock.  The Timeout and
-Handler parameters were added.
-
-Completed another pass at removing warnings and issues when
-compiling with 64-bit compilers.  The code now compiles cleanly
-with the Intel 64-bit C/C++ compiler.  Most notably, the pointer
-add and subtract (diff) macros have changed considerably.
-
-
-Created and deployed a new ACPI_SIZE type that is 64-bits wide on
-64-bit platforms, 32-bits on all others.  This type is used
-wherever memory allocation and/or the C sizeof() operator is used,
-and affects the OSL memory allocation interfaces AcpiOsAllocate
-and AcpiOsCallocate.
-
-Implemented sticky user breakpoints in the AML debugger.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release (12_05_01)
-     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
-     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
-   Current Release:
-     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
-     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
-
- 3) ASL Compiler, version X2034:
-
-Now checks for (and generates an error if detected) the use of a
-Break or Continue statement without an enclosing While statement.
-
-
-Successfully generated the compiler with the Intel 64-bit C
-compiler.
-
- ----------------------------------------
-Summary of changes for this label: 12_05_01
-
- 1) ACPI CA Core Subsystem:
-
-The ACPI 2.0 CopyObject operator is fully implemented.  This
-operator creates a new copy of an object (and is also used to
-bypass the "implicit conversion" mechanism of the Store operator.)
-
-The ACPI 2.0 semantics for the SizeOf operator are fully
-implemented.  The change is that performing a SizeOf on a
-reference object causes an automatic dereference of the object to
-tha actual value before the size is evaluated. This behavior was
-undefined in ACPI 1.0.
-
-The ACPI 2.0 semantics for the Extended IRQ resource descriptor
-have been implemented.  The interrupt polarity and mode are now
-independently set.
-
-Fixed a problem where ASL Constants (Zero, One, Ones, Revision)
-appearing in Package objects were not properly converted to
-integers when the internal Package was converted to an external
-object (via the AcpiEvaluateObject interface.)
-
-Fixed a problem with the namespace object deletion mechanism for
-objects created by control methods.  There were two parts to this
-problem: 1) Objects created during the initialization phase method
-parse were not being deleted, and 2) The object owner ID mechanism
-to track objects was broken.
-
-Fixed a problem where the use of the ASL Scope operator within a
-control method would result in an invalid opcode exception.
-
-Fixed a problem introduced in the previous label where the buffer
-length required for the _PRT structure was not being returned
-correctly.
-
-Code and Data Size: Current core subsystem library sizes are shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code.  The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Previous Release (11_20_01)
-     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
-     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
-
-  Current Release:
-     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
-     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
-
- 2) Linux:
-
-Updated all files to apply cleanly against 2.4.16.
-
-Added basic PCI Interrupt Routing Table (PRT) support for IA32
-(acpi_pci.c), and unified the PRT code for IA32 and IA64.  This
-version supports both static and dyanmic PRT entries, but dynamic
-entries are treated as if they were static (not yet
-reconfigurable).  Architecture- specific code to use this data is
-absent on IA32 but should be available shortly.
-
-Changed the initialization sequence to start the ACPI interpreter
-(acpi_init) prior to initialization of the PCI driver (pci_init)
-in init/main.c.  This ordering is required to support PRT and
-facilitate other (future) enhancement.  A side effect is that the
-ACPI bus driver and certain device drivers can no longer be loaded
-as modules.
-
-Modified the 'make menuconfig' options to allow PCI Interrupt
-Routing support to be included without the ACPI Bus and other
-device drivers.
-
- 3) ASL Compiler, version X2033:
-
-Fixed some issues with the use of the new CopyObject and
-DataTableRegion operators.  Both are fully functional.
-
- ----------------------------------------
-Summary of changes for this label: 11_20_01
-
- 20 November 2001.  Summary of changes for this release.
-
- 1) ACPI CA Core Subsystem:
-
-Updated Index support to match ACPI 2.0 semantics.  Storing a
-Integer, String, or Buffer to an Index of a Buffer will store only
-the least-significant byte of the source to the Indexed buffer
-byte.  Multiple writes are not performed.
-
-Fixed a problem where the access type used in an AccessAs ASL
-operator was not recorded correctly into the field object.
-
-Fixed a problem where ASL Event objects were created in a
-signalled state. Events are now created in an unsignalled state.
-
-The internal object cache is now purged after table loading and
-initialization to reduce the use of dynamic kernel memory -- on
-the assumption that object use is greatest during the parse phase
-of the entire table (versus the run-time use of individual control
-methods.)
-
-ACPI 2.0 variable-length packages are now fully operational.
-
-Code and Data Size: Code and Data optimizations have permitted new
-feature development with an actual reduction in the library size.
-Current core subsystem library sizes are shown below.  These are
-the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not include
-any ACPI driver or OSPM code.  The debug version of the code
-includes the debug output trace mechanism and has a larger code
-and data size.  Note that these values will vary depending on the
-efficiency of the compiler and the compiler options used during
-generation.
-
-  Previous Release (11_09_01):
-     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
-     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
-
-  Current Release:
-     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
-     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
-
- 2) Linux:
-
-Enhanced the ACPI boot-time initialization code to allow the use
-of Local APIC tables for processor enumeration on IA-32, and to
-pave the way for a fully MPS-free boot (on SMP systems) in the
-near future.  This functionality replaces
-arch/i386/kernel/acpitables.c, which was introduced in an earlier
-2.4.15-preX release.  To enable this feature you must add
-"acpi_boot=on" to the kernel command line -- see the help entry
-for CONFIG_ACPI_BOOT for more information.  An IA-64 release is in
-the works...
-
-Restructured the configuration options to allow boot-time table
-parsing support without inclusion of the ACPI Interpreter (and
-other) code.
-
-NOTE: This release does not include fixes for the reported events,
-power-down, and thermal passive cooling issues (coming soon).
-
- 3) ASL Compiler:
-
-Added additional typechecking for Fields within restricted access
-Operation Regions.  All fields within EC and CMOS regions must be
-declared with ByteAcc. All fields withing SMBus regions must be
-declared with the BufferAcc access type.
-
-Fixed a problem where the listing file output of control methods
-no longer interleaved the actual AML code with the ASL source
-code.
-
-
-
-
-----------------------------------------
-Summary of changes for this label: 11_09_01
-
-1) ACPI CA Core Subsystem:
-
-Implemented ACPI 2.0-defined support for writes to fields with a
-Buffer, String, or Integer source operand that is smaller than the
-target field. In these cases, the source operand is zero-extended
-to fill the target field.
-
-Fixed a problem where a Field starting bit offset (within the
-parent operation region) was calculated incorrectly if the
-
-alignment of the field differed from the access width.  This
-affected CreateWordField, CreateDwordField, CreateQwordField, and
-possibly other fields that use the "AccessAny" keyword.
-
-Fixed a problem introduced in the 11_02_01 release where indirect
-stores through method arguments did not operate correctly.
-
-2) Linux:
-
-Implemented boot-time ACPI table parsing support
-(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This code
-facilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
-legacy BIOS interfaces (e.g. MPS) for the configuration of system
-processors, memory, and interrupts during setup_arch().  Note that
-this patch does not include the required architecture-specific
-changes required to apply this information -- subsequent patches
-will be posted for both IA32 and IA64 to achieve this.
-
-Added low-level sleep support for IA32 platforms, courtesy of Pat
-Mochel. This allows IA32 systems to transition to/from various
-sleeping states (e.g. S1, S3), although the lack of a centralized
-driver model and power-manageable drivers will prevent its
-(successful) use on most systems.
-
-Revamped the ACPI 'menuconfig' layout: created new "ACPI Support"
-submenu, unified IA32 and IA64 options, added new "Boot using ACPI
-tables" option, etc.
-
-Increased the default timeout for the EC driver from 1ms to 10ms
-(1000 cycles of 10us) to try to address AE_TIME errors during EC
-transactions.
-
- ----------------------------------------
-Summary of changes for this label: 11_02_01
-
-1) ACPI CA Core Subsystem:
-
-ACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
-(QWordAcc keyword). All ACPI 2.0 64-bit support is now
-implemented.
-
-OSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
-changes to support ACPI 2.0 Qword field access.  Read/Write
-PciConfiguration(), Read/Write Memory(), and Read/Write Port() now
-accept an ACPI_INTEGER (64 bits) as the value parameter.  Also,
-the value parameter for the address space handler interface is now
-an ACPI_INTEGER.  OSL implementations of these interfaces must now
-handle the case where the Width parameter is 64.
-
-Index Fields: Fixed a problem where unaligned bit assembly and
-disassembly for IndexFields was not supported correctly.
-
-Index and Bank Fields:  Nested Index and Bank Fields are now
-supported. During field access, a check is performed to ensure
-that the value written to an Index or Bank register is not out of
-the range of the register.  The Index (or Bank) register is
-written before each access to the field data. Future support will
-include allowing individual IndexFields to be wider than the
-DataRegister width.
-
-Fields: Fixed a problem where the AML interpreter was incorrectly
-attempting to write beyond the end of a Field/OpRegion.  This was
-a boundary case that occurred when a DWORD field was written to a
-BYTE access OpRegion, forcing multiple writes and causing the
-interpreter to write one datum too many.
-
-Fields: Fixed a problem with Field/OpRegion access where the
-starting bit address of a field was incorrectly calculated if the
-current access type was wider than a byte (WordAcc, DwordAcc, or
-QwordAcc).
-
-Fields: Fixed a problem where forward references to individual
-FieldUnits (individual Field names within a Field definition) were
-not resolved during the AML table load.
-
-Fields: Fixed a problem where forward references from a Field
-definition to the parent Operation Region definition were not
-resolved during the AML table load.
-
-Fields: Duplicate FieldUnit names within a scope are now detected
-during AML table load.
-
-Acpi Interfaces: Fixed a problem where the AcpiGetName() interface
-returned an incorrect name for the root node.
-
-Code and Data Size: Code and Data optimizations have permitted new
-feature development with an actual reduction in the library size.
-Current core subsystem library sizes are shown below.  These are
-the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not include
-any ACPI driver or OSPM code.  The debug version of the code
-includes the debug output trace mechanism and has a larger code
-and data size.  Note that these values will vary depending on the
-efficiency of the compiler and the compiler options used during
-generation.
-
-  Previous Release (10_18_01):
-     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
-     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
-
-  Current Release:
-     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
-     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
-
- 2) Linux:
-
-Improved /proc processor output (Pavel Machek) Re-added
-MODULE_LICENSE("GPL") to all modules.
-
- 3) ASL Compiler version X2030:
-
-Duplicate FieldUnit names within a scope are now detected and
-flagged as errors.
-
- 4) Documentation:
-
-Programmer Reference updated to reflect OSL and address space
-handler interface changes described above.
-
-----------------------------------------
-Summary of changes for this label: 10_18_01
-
-ACPI CA Core Subsystem:
-
-Fixed a problem with the internal object reference count mechanism
-that occasionally caused premature object deletion. This resolves
-all of the outstanding problem reports where an object is deleted
-in the middle of an interpreter evaluation.  Although this problem
-only showed up in rather obscure cases, the solution to the
-problem involved an adjustment of all reference counts involving
-objects attached to namespace nodes.
-
-Fixed a problem with Field support in the interpreter where
-writing to an aligned field whose length is an exact multiple (2
-or greater) of the field access granularity would cause an attempt
-to write beyond the end of the field.
-
-The top level AML opcode execution functions within the
-interpreter have been renamed with a more meaningful and
-consistent naming convention.  The modules exmonad.c and
-exdyadic.c were eliminated.  New modules are exoparg1.c,
-exoparg2.c, exoparg3.c, and exoparg6.c.
-
-Support for the ACPI 2.0 "Mid" ASL operator has been implemented.
-
-Fixed a problem where the AML debugger was causing some internal
-objects to not be deleted during subsystem termination.
-
-Fixed a problem with the external AcpiEvaluateObject interface
-where the subsystem would fault if the named object to be
-evaluated refered to a constant such as Zero, Ones, etc.
-
-Fixed a problem with IndexFields and BankFields where the
-subsystem would fault if the index, data, or bank registers were
-not defined in the same scope as the field itself.
-
-Added printf format string checking for compilers that support
-this feature.  Corrected more than 50 instances of issues with
-format specifiers within invocations of ACPI_DEBUG_PRINT
-throughout the core subsystem code.
-
-The ASL "Revision" operator now returns the ACPI support level
-implemented in the core - the value "2" since the ACPI 2.0 support
-is more than 50% implemented.
-
-Enhanced the output of the AML debugger "dump namespace" command
-to output in a more human-readable form.
-
-Current core subsystem library code sizes are shown below.  These
-
-are the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not include
-any ACPI driver or OSPM code.  The debug version of the code
-includes the full debug trace mechanism -- leading to a much
-
-larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-     Previous Label (09_20_01):
-     Non-Debug Version:    65K Code,     5K Data,     70K Total
-     Debug Version:       138K Code,    58K Data,    196K Total
-
-     This Label:
-
-     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
-     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
-
-Linux:
-
-Implemented a "Bad BIOS Blacklist" to track machines that have
-known ASL/AML problems.
-
-Enhanced the /proc interface for the thermal zone driver and added
-support for _HOT (the critical suspend trip point).  The 'info'
-file now includes threshold/policy information, and allows setting
-of _SCP (cooling preference) and _TZP (polling frequency) values
-to the 'info' file. Examples: "echo tzp=5 > info" sets the polling
-frequency to 5 seconds, and "echo scp=1 > info" sets the cooling
-preference to the passive/quiet mode (if supported by the ASL).
-
-Implemented a workaround for a gcc bug that resuted in an OOPs
-when loading the control method battery driver.
-
- ----------------------------------------
-Summary of changes for this label: 09_20_01
-
- ACPI CA Core Subsystem:
-
-The AcpiEnableEvent and AcpiDisableEvent interfaces have been
-modified to allow individual GPE levels to be flagged as wake-
-enabled (i.e., these GPEs are to remain enabled when the platform
-sleeps.)
-
-The AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
-support wake-enabled GPEs.  This means that upon entering the
-sleep state, all GPEs that are not wake-enabled are disabled.
-When leaving the sleep state, these GPEs are reenabled.
-
-A local double-precision divide/modulo module has been added to
-enhance portability to OS kernels where a 64-bit math library is
-not available.  The new module is "utmath.c".
-
-Several optimizations have been made to reduce the use of CPU
-stack.  Originally over 2K, the maximum stack usage is now below
-2K at 1860  bytes (1.82k)
-
-Fixed a problem with the AcpiGetFirmwareTable interface where the
-root table pointer was not mapped into a logical address properly.
-
-Fixed a problem where a NULL pointer was being dereferenced in the
-interpreter code for the ASL Notify operator.
-
-Fixed a problem where the use of the ASL Revision operator
-returned an error. This operator now returns the current version
-of the ACPI CA core subsystem.
-
-Fixed a problem where objects passed as control method parameters
-to AcpiEvaluateObject were always deleted at method termination.
-However, these objects may end up being stored into the namespace
-by the called method.  The object reference count mechanism was
-applied to these objects instead of a force delete.
-
-Fixed a problem where static strings or buffers (contained in the
-AML code) that are declared as package elements within the ASL
-code could cause a fault because the interpreter would attempt to
-delete them.  These objects are now marked with the "static
-object" flag to prevent any attempt to delete them.
-
-Implemented an interpreter optimization to use operands directly
-from the state object instead of extracting the operands to local
-variables.  This reduces stack use and code size, and improves
-performance.
-
-The module exxface.c was eliminated as it was an unnecessary extra
-layer of code.
-
-Current core subsystem library code sizes are shown below.  These
-are the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not include
-any ACPI driver or OSPM code.  The debug version of the code
-includes the full debug trace mechanism -- leading to a much
-larger code and data size.  Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
-  Non-Debug Version:  65K Code,   5K Data,   70K Total
-(Previously 69K)   Debug Version:     138K Code,  58K Data,  196K
-Total  (Previously 195K)
-
-Linux:
-
-Support for ACPI 2.0 64-bit integers has been added.   All ACPI
-Integer objects are now 64 bits wide
-
-All Acpi data types and structures are now in lower case.  Only
-Acpi macros are upper case for differentiation.
-
- Documentation:
-
-Changes to the external interfaces as described above.
-
- ----------------------------------------
-Summary of changes for this label: 08_31_01
-
- ACPI CA Core Subsystem:
-
-A bug with interpreter implementation of the ASL Divide operator
-was found and fixed.  The implicit function return value (not the
-explicit store operands) was returning the remainder instead of
-the quotient.  This was a longstanding bug and it fixes several
-known outstanding issues on various platforms.
-
-The ACPI_DEBUG_PRINT and function trace entry/exit macros have
-been further optimized for size.  There are 700 invocations of the
-DEBUG_PRINT macro alone, so each optimization reduces the size of
-the debug version of the subsystem significantly.
-
-A stack trace mechanism has been implemented.  The maximum stack
-usage is about 2K on 32-bit platforms.  The debugger command "stat
-stack" will display the current maximum stack usage.
-
-All public symbols and global variables within the subsystem are
-now prefixed with the string "Acpi".  This keeps all of the
-symbols grouped together in a kernel map, and avoids conflicts
-with other kernel subsystems.
-
-Most of the internal fixed lookup tables have been moved into the
-code segment via the const operator.
-
-Several enhancements have been made to the interpreter to both
-reduce the code size and improve performance.
-
-Current core subsystem library code sizes are shown below.  These
-are the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not include
-any ACPI driver or OSPM code.  The debug version of the code
-includes the full debug trace mechanism which contains over 700
-invocations of the DEBUG_PRINT macro, 500 function entry macro
-invocations, and over 900 function exit macro invocations --
-leading to a much larger code and data size.  Note that these
-values will vary depending on the efficiency of the compiler and
-the compiler options used during generation.
-
-        Non-Debug Version:  64K Code,   5K Data,   69K Total
-Debug Version:     137K Code,  58K Data,  195K Total
-
- Linux:
-
-Implemented wbinvd() macro, pending a kernel-wide definition.
-
-Fixed /proc/acpi/event to handle poll() and short reads.
-
- ASL Compiler, version X2026:
-
-Fixed a problem introduced in the previous label where the AML
-
-code emitted for package objects produced packages with zero
-length.
-
- ----------------------------------------
-Summary of changes for this label: 08_16_01
-
-ACPI CA Core Subsystem:
-
-The following ACPI 2.0 ASL operators have been implemented in the
-AML interpreter (These are already supported by the Intel ASL
-compiler):  ToDecimalString, ToHexString, ToString, ToInteger, and
-ToBuffer.  Support for 64-bit AML constants is implemented in the
-AML parser, debugger, and disassembler.
-
-The internal memory tracking mechanism (leak detection code) has
-been upgraded to reduce the memory overhead (a separate tracking
-block is no longer allocated for each memory allocation), and now
-supports all of the internal object caches.
-
-The data structures and code for the internal object caches have
-been coelesced and optimized so that there is a single cache and
-memory list data structure and a single group of functions that
-implement generic cache management.  This has reduced the code
-size in both the debug and release versions of the subsystem.
-
-The DEBUG_PRINT macro(s) have been optimized for size and replaced
-by ACPI_DEBUG_PRINT.  The syntax for this macro is slightly
-different, because it generates a single call to an internal
-function.  This results in a savings of about 90 bytes per
-invocation, resulting in an overall code and data savings of about
-16% in the debug version of the subsystem.
-
- Linux:
-
-Fixed C3 disk corruption problems and re-enabled C3 on supporting
-machines.
-
-Integrated low-level sleep code by Patrick Mochel.
-
-Further tweaked source code Linuxization.
-
-Other minor fixes.
-
- ASL Compiler:
-
-Support for ACPI 2.0 variable length packages is fixed/completed.
-
-Fixed a problem where the optional length parameter for the ACPI
-2.0 ToString operator.
-
-Fixed multiple extraneous error messages when a syntax error is
-detected within the declaration line of a control method.
-
- ----------------------------------------
-Summary of changes for this label: 07_17_01
-
-ACPI CA Core Subsystem:
-
-Added a new interface named AcpiGetFirmwareTable to obtain any
-ACPI table via the ACPI signature.  The interface can be called at
-any time during kernel initialization, even before the kernel
-virtual memory manager is initialized and paging is enabled.  This
-allows kernel subsystems to obtain ACPI tables very early, even
-before the ACPI CA subsystem is initialized.
-
-Fixed a problem where Fields defined with the AnyAcc attribute
-could be resolved to the incorrect address under the following
-conditions: 1) the field width is larger than 8 bits and 2) the
-parent operation region is not defined on a DWORD boundary.
-
-Fixed a problem where the interpreter is not being locked during
-namespace initialization (during execution of the _INI control
-methods), causing an error when an attempt is made to release it
-later.
-
-ACPI 2.0 support in the AML Interpreter has begun and will be
-ongoing throughout the rest of this year.  In this label, The Mod
-operator is implemented.
-
-Added a new data type to contain full PCI addresses named
-ACPI_PCI_ID. This structure contains the PCI Segment, Bus, Device,
-and Function values.
-
- Linux:
-
-Enhanced the Linux version of the source code to change most
-capitalized ACPI type names to lowercase. For example, all
-instances of ACPI_STATUS are changed to acpi_status.  This will
-result in a large diff, but the change is strictly cosmetic and
-aligns the CA code closer to the Linux coding standard.
-
-OSL Interfaces:
-
-The interfaces to the PCI configuration space have been changed to
-add the PCI Segment number and to split the single 32-bit combined
-DeviceFunction field into two 16-bit fields.  This was
-accomplished by moving the four values that define an address in
-PCI configuration space (segment, bus, device, and function) to
-the new ACPI_PCI_ID structure.
-
-The changes to the PCI configuration space interfaces led to a
-reexamination of the complete set of address space access
-interfaces for PCI, I/O, and Memory.  The previously existing 18
-interfaces have proven difficult to maintain (any small change
-must be propagated across at least 6 interfaces) and do not easily
-allow for future expansion to 64 bits if necessary.  Also, on some
-systems, it would not be appropriate to demultiplex the access
-width (8, 16, 32,or 64) before calling the OSL if the
-corresponding native OS interfaces contain a similar access width
-parameter.  For these reasons, the 18 address space interfaces
-have been replaced by these 6 new ones:
-
-AcpiOsReadPciConfiguration
-AcpiOsWritePciConfiguration
-AcpiOsReadMemory
-AcpiOsWriteMemory
-AcpiOsReadPort
-AcpiOsWritePort
-
-Added a new interface named AcpiOsGetRootPointer to allow the OSL
-to perform the platform and/or OS-specific actions necessary to
-obtain the ACPI RSDP table pointer.  On IA-32 platforms, this
-interface will simply call down to the CA core to perform the low-
-memory search for the table.  On IA-64, the RSDP is obtained from
-EFI.  Migrating this interface to the OSL allows the CA core to
-
-remain OS and platform independent.
-
-Added a new interface named AcpiOsSignal to provide a generic
-"function code and pointer" interface for various miscellaneous
-signals and notifications that must be made to the host OS.   The
-first such signals are intended to support the ASL Fatal and
-Breakpoint operators.  In the latter case, the AcpiOsBreakpoint
-interface has been obsoleted.
-
-The definition of the AcpiFormatException interface has been
-changed to simplify its use.  The caller no longer must supply a
-buffer to the call; A pointer to a const string is now returned
-directly.  This allows the call to be easily used in printf
-statements, etc. since the caller does not have to manage a local
-buffer.
-
-
- ASL Compiler, Version X2025:
-
-The ACPI 2.0 Switch/Case/Default operators have been implemented
-and are fully functional.  They will work with all ACPI 1.0
-interpreters, since the operators are simply translated to If/Else
-pairs.
-
-The ACPI 2.0 ElseIf operator is implemented and will also work
-with 1.0 interpreters, for the same reason.
-
-Implemented support for ACPI 2.0 variable-length packages.  These
-packages have a separate opcode, and their size is determined by
-the interpreter at run-time.
-
-Documentation The ACPI CA Programmer Reference has been updated to
-reflect the new interfaces and changes to existing interfaces.
-
- ------------------------------------------
-Summary of changes for this label: 06_15_01
-
- ACPI CA Core Subsystem:
-
-Fixed a problem where a DWORD-accessed field within a Buffer
-object would get its byte address inadvertently rounded down to
-the nearest DWORD.  Buffers are always Byte-accessible.
-
- ASL Compiler, version X2024:
-
-Fixed a problem where the Switch() operator would either fault or
-hang the compiler.  Note however, that the AML code for this ACPI
-2.0 operator is not yet implemented.
-
-Compiler uses the new AcpiOsGetTimer interface to obtain compile
-timings.
-
-Implementation of the CreateField operator automatically converts
-a reference to a named field within a resource descriptor from a
-byte offset to a bit offset if required.
-
-Added some missing named fields from the resource descriptor
-support. These are the names that are automatically created by the
-compiler to reference fields within a descriptor.  They are only
-valid at compile time and are not passed through to the AML
-interpreter.
-
-Resource descriptor named fields are now typed as Integers and
-subject to compile-time typechecking when used in expressions.
-
- ------------------------------------------
-Summary of changes for this label: 05_18_01
-
- ACPI CA Core Subsystem:
-
-Fixed a couple of problems in the Field support code where bits
-from adjacent fields could be returned along with the proper field
-bits. Restructured the field support code to improve performance,
-readability and maintainability.
-
-New DEBUG_PRINTP macro automatically inserts the procedure name
-into the output, saving hundreds of copies of procedure name
-strings within the source, shrinking the memory footprint of the
-debug version of the core subsystem.
-
- Source Code Structure:
-
-The source code directory tree was restructured to reflect the
-current organization of the component architecture.  Some files
-and directories have been moved and/or renamed.
-
- Linux:
-
-Fixed leaking kacpidpc processes.
-
-Fixed queueing event data even when /proc/acpi/event is not
-opened.
-
- ASL Compiler, version X2020:
-
-Memory allocation performance enhancement - over 24X compile time
-improvement on large ASL files.  Parse nodes and namestring
-buffers are now allocated from a large internal compiler buffer.
-
-The temporary .SRC file is deleted unless the "-s" option is
-specified
-
-The "-d" debug output option now sends all output to the .DBG file
-instead of the console.
-
-"External" second parameter is now optional
-
-"ElseIf" syntax now properly allows the predicate
-
-Last operand to "Load" now recognized as a Target operand
-
-Debug object can now be used anywhere as a normal object.
-
-ResourceTemplate now returns an object of type BUFFER
-
-EISAID now returns an object of type INTEGER
-
-"Index" now works with a STRING operand
-
-"LoadTable" now accepts optional parameters
-
-"ToString" length parameter is now optional
-
-"Interrupt (ResourceType," parse error fixed.
-
-"Register" with a user-defined region space parse error fixed
-
-Escaped backslash at the end of a string ("\\") scan/parse error
-fixed
-
-"Revision" is now an object of type INTEGER.
-
-
-
-------------------------------------------
-Summary of changes for this label: 05_02_01
-
-Linux:
-
-/proc/acpi/event now blocks properly.
-
-Removed /proc/sys/acpi. You can still dump your DSDT from
-/proc/acpi/dsdt.
-
- ACPI CA Core Subsystem:
-
-Fixed a problem introduced in the previous label where some of the
-"small" resource descriptor types were not recognized.
-
-Improved error messages for the case where an ASL Field is outside
-the range of the parent operation region.
-
- ASL Compiler, version X2018:
-
-
-Added error detection for ASL Fields that extend beyond the length
-of the parent operation region (only if the length of the region
-is known at compile time.)  This includes fields that have a
-minimum access width that is smaller than the parent region, and
-individual field units that are partially or entirely beyond the
-extent of the parent.
-
-
-
-------------------------------------------
-Summary of changes for this label: 04_27_01
-
- ACPI CA Core Subsystem:
-
-Fixed a problem where the namespace mutex could be released at the
-wrong time during execution of AcpiRemoveAddressSpaceHandler.
-
-Added optional thread ID output for debug traces, to simplify
-debugging of multiple threads.  Added context switch notification
-when the debug code realizes that a different thread is now
-executing ACPI code.
-
-Some additional external data types have been prefixed with the
-string "ACPI_" for consistency.  This may effect existing code.
-The data types affected are the external callback typedefs - e.g.,
-
-WALK_CALLBACK becomes ACPI_WALK_CALLBACK.
-
- Linux:
-
-Fixed an issue with the OSL semaphore implementation where a
-thread was waking up with an error from receiving a SIGCHLD
-signal.
-
-Linux version of ACPI CA now uses the system C library for string
-manipulation routines instead of a local implementation.
-
-Cleaned up comments and removed TBDs.
-
- ASL Compiler, version X2017:
-
-Enhanced error detection and reporting for all file I/O
-operations.
-
- Documentation:
-
-Programmer Reference updated to version 1.06.
-
-
-
-------------------------------------------
-Summary of changes for this label: 04_13_01
-
- ACPI CA Core Subsystem:
-
-Restructured support for BufferFields and RegionFields.
-BankFields support is now fully operational.  All known 32-bit
-limitations on field sizes have been removed.  Both BufferFields
-and (Operation) RegionFields are now supported by the same field
-management code.
-
-Resource support now supports QWORD address and IO resources. The
-16/32/64 bit address structures and the Extended IRQ structure
-have been changed to properly handle Source Resource strings.
-
-A ThreadId of -1 is now used to indicate a "mutex not acquired"
-condition internally and must never be returned by AcpiOsThreadId.
-This reserved value was changed from 0 since Unix systems allow a
-thread ID of 0.
-
-Linux:
-
-Driver code reorganized to enhance portability
-
-Added a kernel configuration option to control ACPI_DEBUG
-
-Fixed the EC driver to honor _GLK.
-
-ASL Compiler, version X2016:
-
-Fixed support for the "FixedHw" keyword.  Previously, the FixedHw
-address space was set to 0, not 0x7f as it should be.
-
- ------------------------------------------
-Summary of changes for this label: 03_13_01
-
- ACPI CA Core Subsystem:
-
-During ACPI initialization, the _SB_._INI method is now run if
-present.
-
-Notify handler fix - notifies are deferred until the parent method
-completes execution.  This fixes the "mutex already acquired"
-issue seen occasionally.
-
-Part of the "implicit conversion" rules in ACPI 2.0 have been
-found to cause compatibility problems with existing ASL/AML.  The
-convert "result-to-target-type" implementation has been removed
-for stores to method Args and Locals.  Source operand conversion
-is still fully implemented.  Possible changes to ACPI 2.0
-specification pending.
-
-Fix to AcpiRsCalculatePciRoutingTableLength to return correct
-length.
-
-Fix for compiler warnings for 64-bit compiles.
-
- Linux:
-
-/proc output aligned for easier parsing.
-
-Release-version compile problem fixed.
-
-New kernel configuration options documented in Configure.help.
-
-IBM 600E - Fixed Sleep button may generate "Invalid <NULL>
-context" message.
-
- OSPM:
-
-Power resource driver integrated with bus manager.
-
-Fixed kernel fault during active cooling for thermal zones.
-
-Source Code:
-
-The source code tree has been restructured.
-
-
-
-------------------------------------------
-Summary of changes for this label: 03_02_01
-
- Linux OS Services Layer (OSL):
-
-Major revision of all Linux-specific code.
-
-Modularized all ACPI-specific drivers.
-
-Added new thermal zone and power resource drivers.
-
-Revamped /proc interface (new functionality is under /proc/acpi).
-
-New kernel configuration options.
-
- Linux known issues:
-
-New kernel configuration options not documented in Configure.help
-yet.
-
-
-Module dependencies not currently implemented. If used, they
-should be loaded in this order: busmgr, power, ec, system,
-processor, battery, ac_adapter, button, thermal.
-
-Modules will not load if CONFIG_MODVERSION is set.
-
-IBM 600E - entering S5 may reboot instead of shutting down.
-
-IBM 600E - Sleep button may generate "Invalid <NULL> context"
-message.
-
-Some systems may fail with "execution mutex already acquired"
-message.
-
- ACPI CA Core Subsystem:
-
-Added a new OSL Interface, AcpiOsGetThreadId.  This was required
-for the  deadlock detection code. Defined to return a non-zero, 32-
-bit thread ID for the currently executing thread.  May be a non-
-zero constant integer on single-thread systems.
-
-Implemented deadlock detection for internal subsystem mutexes.  We
-may add conditional compilation for this code (debug only) later.
-
-ASL/AML Mutex object semantics are now fully supported.  This
-includes multiple acquires/releases by owner and support for the
-
-Mutex SyncLevel parameter.
-
-A new "Force Release" mechanism automatically frees all ASL
-Mutexes that have been acquired but not released when a thread
-exits the interpreter.  This forces conformance to the ACPI spec
-("All mutexes must be released when an invocation exits") and
-prevents deadlocked ASL threads.  This mechanism can be expanded
-(later) to monitor other resource acquisitions if OEM ASL code
-continues to misbehave (which it will).
-
-Several new ACPI exception codes have been added for the Mutex
-support.
-
-Recursive method calls are now allowed and supported (the ACPI
-spec does in fact allow recursive method calls.)  The number of
-recursive calls is subject to the restrictions imposed by the
-SERIALIZED method keyword and SyncLevel (ACPI 2.0) method
-parameter.
-
-Implemented support for the SyncLevel parameter for control
-methods (ACPI 2.0 feature)
-
-Fixed a deadlock problem when multiple threads attempted to use
-the interpreter.
-
-Fixed a problem where the string length of a String package
-element was not always set in a package returned from
-AcpiEvaluateObject.
-
-Fixed a problem where the length of a String package element was
-not always included in the length of the overall package returned
-from AcpiEvaluateObject.
-
-Added external interfaces (Acpi*) to the ACPI debug memory
-manager.  This manager keeps a list of all outstanding
-allocations, and can therefore detect memory leaks and attempts to
-free memory blocks more than once. Useful for code such as the
-power manager, etc.  May not be appropriate for device drivers.
-Performance with the debug code enabled is slow.
-
-The ACPI Global Lock is now an optional hardware element.
-
- ASL Compiler Version X2015:
-
-Integrated changes to allow the compiler to be generated on
-multiple platforms.
-
-Linux makefile added to generate the compiler on Linux
-
- Source Code:
-
-All platform-specific headers have been moved to their own
-subdirectory, Include/Platform.
-
-New source file added, Interpreter/ammutex.c
-
-New header file, Include/acstruct.h
-
- Documentation:
-
-The programmer reference has been updated for the following new
-interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
-
- ------------------------------------------
-Summary of changes for this label: 02_08_01
-
-Core ACPI CA Subsystem: Fixed a problem where an error was
-incorrectly returned if the return resource buffer was larger than
-the actual data (in the resource interfaces).
-
-References to named objects within packages are resolved to the
-
-full pathname string before packages are returned directly (via
-the AcpiEvaluateObject interface) or indirectly via the resource
-interfaces.
-
-Linux OS Services Layer (OSL):
-
-Improved /proc battery interface.
-
-
-Added C-state debugging output and other miscellaneous fixes.
-
-ASL Compiler Version X2014:
-
-All defined method arguments can now be used as local variables,
-including the ones that are not actually passed in as parameters.
-The compiler tracks initialization of the arguments and issues an
-exception if they are used without prior assignment (just like
-locals).
-
-The -o option now specifies a filename prefix that is used for all
-output files, including the AML output file.  Otherwise, the
-default behavior is as follows:  1) the AML goes to the file
-specified in the DSDT.  2) all other output files use the input
-source filename as the base.
-
- ------------------------------------------
-Summary of changes for this label: 01_25_01
-
-Core ACPI CA Subsystem: Restructured the implementation of object
-store support within the  interpreter.  This includes support for
-the Store operator as well  as any ASL operators that include a
-target operand.
-
-Partially implemented support for Implicit Result-to-Target
-conversion. This is when a result object is converted on the fly
-to the type of  an existing target object.  Completion of this
-support is pending  further analysis of the ACPI specification
-concerning this matter.
-
-CPU-specific code has been removed from the subsystem (hardware
-directory).
-
-New Power Management Timer functions added
-
-Linux OS Services Layer (OSL): Moved system state transition code
-to the core, fixed it, and modified  Linux OSL accordingly.
-
-Fixed C2 and C3 latency calculations.
-
-
-We no longer use the compilation date for the version message on
-initialization, but retrieve the version from AcpiGetSystemInfo().
-
-Incorporated for fix Sony VAIO machines.
-
-Documentation:  The Programmer Reference has been updated and
-reformatted.
-
-
-ASL Compiler:  Version X2013: Fixed a problem where the line
-numbering and error reporting could get out  of sync in the
-presence of multiple include files.
-
- ------------------------------------------
-Summary of changes for this label: 01_15_01
-
-Core ACPI CA Subsystem:
-
-Implemented support for type conversions in the execution of the
-ASL  Concatenate operator (The second operand is converted to
-match the type  of the first operand before concatenation.)
-
-Support for implicit source operand conversion is partially
-implemented.   The ASL source operand types Integer, Buffer, and
-String are freely  interchangeable for most ASL operators and are
-converted by the interpreter  on the fly as required.  Implicit
-Target operand conversion (where the  result is converted to the
-target type before storing) is not yet implemented.
-
-Support for 32-bit and 64-bit BCD integers is implemented.
-
-Problem fixed where a field read on an aligned field could cause a
-read  past the end of the field.
-
-New exception, AE_AML_NO_RETURN_VALUE, is returned when a method
-does not return a value, but the caller expects one.  (The ASL
-compiler flags this as a warning.)
-
-ASL Compiler:
-
-Version X2011:
-1. Static typechecking of all operands is implemented. This
-prevents the use of invalid objects (such as using a Package where
-an Integer is required) at compile time instead of at interpreter
-run-time.
-2. The ASL source line is printed with ALL errors and warnings.
-3. Bug fix for source EOF without final linefeed.
-4. Debug option is split into a parse trace and a namespace trace.
-5. Namespace output option (-n) includes initial values for
-integers and strings.
-6. Parse-only option added for quick syntax checking.
-7. Compiler checks for duplicate ACPI name declarations
-
-Version X2012:
-1. Relaxed typechecking to allow interchangeability between
-strings, integers, and buffers.  These types are now converted by
-the interpreter at runtime.
-2. Compiler reports time taken by each internal subsystem in the
-debug         output file.
-
-
- ------------------------------------------
-Summary of changes for this label: 12_14_00
-
-ASL Compiler:
-
-This is the first official release of the compiler. Since the
-compiler requires elements of the Core Subsystem, this label
-synchronizes everything.
-
-------------------------------------------
-Summary of changes for this label: 12_08_00
-
-
-Fixed a problem where named references within the ASL definition
-of both OperationRegions and CreateXXXFields did not work
-properly.  The symptom was an AE_AML_OPERAND_TYPE during
-initialization of the region/field. This is similar (but not
-related internally) to the problem that was fixed in the last
-label.
-
-Implemented both 32-bit and 64-bit support for the BCD ASL
-functions ToBCD and FromBCD.
-
-Updated all legal headers to include "2000" in the copyright
-years.
-
- ------------------------------------------
-Summary of changes for this label: 12_01_00
-
-Fixed a problem where method invocations within the ASL definition
-of both OperationRegions and CreateXXXFields did not work
-properly.  The symptom was an AE_AML_OPERAND_TYPE during
-initialization of the region/field:
-
-  nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
-[DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
-(0x3005)
-
-Fixed a problem where operators with more than one nested
-subexpression would fail.  The symptoms were varied, by mostly
-AE_AML_OPERAND_TYPE errors.  This was actually a rather serious
-problem that has gone unnoticed until now.
-
-  Subtract (Add (1,2), Multiply (3,4))
-
-Fixed a problem where AcpiGetHandle didn't quite get fixed in the
-previous build (The prefix part of a relative path was handled
-incorrectly).
-
-Fixed a problem where Operation Region initialization failed if
-the operation region name was a "namepath" instead of a simple
-"nameseg". Symptom was an AE_NO_OPERAND error.
-
-Fixed a problem where an assignment to a local variable via the
-indirect RefOf mechanism only worked for the first such
-assignment.  Subsequent assignments were ignored.
-
- ------------------------------------------
-Summary of changes for this label: 11_15_00
-
-ACPI 2.0 table support with backwards support for ACPI 1.0 and the
-0.71 extensions.  Note: although we can read ACPI 2.0 BIOS tables,
-the AML  interpreter does NOT have support for the new 2.0 ASL
-grammar terms at this time.
-
-All ACPI hardware access is via the GAS structures in the ACPI 2.0
-FADT.
-
-All physical memory addresses across all platforms are now 64 bits
-wide. Logical address width remains dependent on the platform
-(i.e., "void *").
-
-AcpiOsMapMemory interface changed to a 64-bit physical address.
-
-The AML interpreter integer size is now 64 bits, as per the ACPI
-2.0 specification.
-
-For backwards compatibility with ACPI 1.0, ACPI tables with a
-revision number less than 2 use 32-bit integers only.
-
-Fixed a problem where the evaluation of OpRegion operands did not
-always resolve them to numbers properly.
-
-------------------------------------------
-Summary of changes for this label: 10_20_00
-
-Fix for CBN_._STA issue.  This fix will allow correct access to
-CBN_ OpRegions when the _STA returns 0x8.
-
-Support to convert ACPI constants (Ones, Zeros, One) to actual
-values before a package object is returned
-
-Fix for method call as predicate to if/while construct causing
-incorrect if/while behavior
-
-Fix for Else block package lengths sometimes calculated wrong (if
-block > 63 bytes)
-
-Fix for Processor object length field, was always zero
-
-Table load abort if FACP sanity check fails
-
-Fix for problem with Scope(name) if name already exists
-
-Warning emitted if a named object referenced cannot be found
-(resolved) during method execution.
-
-
-
-
-
-------------------------------------------
-Summary of changes for this label: 9_29_00
-
-New table initialization interfaces: AcpiInitializeSubsystem no
-longer has any parameters AcpiFindRootPointer - Find the RSDP (if
-necessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
->RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
-AcpiLoadTables
-
-Note: These interface changes require changes to all existing OSDs
-
-The PCI_Config default address space handler is always installed
-at the root namespace object.
-
--------------------------------------------
-Summary of changes for this label: 09_15_00
-
-The new initialization architecture is implemented.  New
-interfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
-AcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
-
-(Namespace is automatically loaded when a table is loaded)
-
-The ACPI_OPERAND_OBJECT has been optimized to shrink its size from
-52 bytes to 32 bytes.  There is usually one of these for every
-namespace object, so the memory savings is significant.
-
-Implemented just-in-time evaluation of the CreateField operators.
-
-Bug fixes for IA-64 support have been integrated.
-
-Additional code review comments have been implemented
-
-The so-called "third pass parse" has been replaced by a final walk
-through the namespace to initialize all operation regions (address
-spaces) and fields that have not yet been initialized during the
-execution of the various _INI and REG methods.
-
-New file - namespace/nsinit.c
-
--------------------------------------------
-Summary of changes for this label: 09_01_00
-
-Namespace manager data structures have been reworked to change the
-primary  object from a table to a single object.  This has
-resulted in dynamic memory  savings of 3X within the namespace and
-2X overall in the ACPI CA subsystem.
-
-Fixed problem where the call to AcpiEvFindPciRootBuses was
-inadvertently left  commented out.
-
-Reduced the warning count when generating the source with the GCC
-compiler.
-
-Revision numbers added to each module header showing the
-SourceSafe version of the file.  Please refer to this version
-number when giving us feedback or comments on individual modules.
-
-The main object types within the subsystem have been renamed to
-clarify their  purpose:
-
-ACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
-ACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
-ACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
-
-NOTE: no changes to the initialization sequence are included in
-this label.
-
--------------------------------------------
-Summary of changes for this label: 08_23_00
-
-Fixed problem where TerminateControlMethod was being called
-multiple times per  method
-
-Fixed debugger problem where single stepping caused a semaphore to
-be  oversignalled
-
-Improved performance through additional parse object caching -
-added  ACPI_EXTENDED_OP type
-
--------------------------------------------
-Summary of changes for this label: 08_10_00
-
-Parser/Interpreter integration:  Eliminated the creation of
-complete parse trees  for ACPI tables and control methods.
-Instead, parse subtrees are created and  then deleted as soon as
-they are processed (Either entered into the namespace or  executed
-by the interpreter).  This reduces the use of dynamic kernel
-memory  significantly. (about 10X)
-
-Exception codes broken into classes and renumbered.  Be sure to
-recompile all  code that includes acexcep.h.  Hopefully we won't
-have to renumber the codes  again now that they are split into
-classes (environment, programmer, AML code,  ACPI table, and
-internal).
-
-Fixed some additional alignment issues in the Resource Manager
-subcomponent
-
-Implemented semaphore tracking in the AcpiExec utility, and fixed
-several places  where mutexes/semaphores were being unlocked
-without a corresponding lock  operation.  There are no known
-semaphore or mutex "leaks" at this time.
-
-Fixed the case where an ASL Return operator is used to return an
-unnamed  package.
-
--------------------------------------------
-Summary of changes for this label: 07_28_00
-
-Fixed a problem with the way addresses were calculated in
-AcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This problem
-manifested itself when a Field was  created with WordAccess or
-DwordAccess, but the field unit defined within the  Field was less
-
-than a Word or Dword.
-
-Fixed a problem in AmlDumpOperands() module's loop to pull
-operands off of the  operand stack to display information. The
-problem manifested itself as a TLB  error on 64-bit systems when
-accessing an operand stack with two or more  operands.
-
-Fixed a problem with the PCI configuration space handlers where
-context was  getting confused between accesses. This required a
-change to the generic address  space handler and address space
-setup definitions. Handlers now get both a  global handler context
-(this is the one passed in by the user when executing
-AcpiInstallAddressSpaceHandler() and a specific region context
-that is unique to  each region (For example, the _ADR, _SEG and
-_BBN values associated with a  specific region). The generic
-function definitions have changed to the  following:
-
-typedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
-UINT32 Address, UINT32 BitWidth, UINT32 *Value, void
-*HandlerContext, // This used to be void *Context void
-*RegionContext); // This is an additional parameter
-
-typedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
-RegionHandle, UINT32 Function, void *HandlerContext,  void
-**RegionContext); // This used to be **ReturnContext
-
--------------------------------------------
-Summary of changes for this label: 07_21_00
-
-Major file consolidation and rename.  All files within the
-interpreter have been  renamed as well as most header files.  This
-was done to prevent collisions with  existing files in the host
-OSs -- filenames such as "config.h" and "global.h"  seem to be
-quite common.  The VC project files have been updated.  All
-makefiles  will require modification.
-
-The parser/interpreter integration continues in Phase 5 with the
-implementation  of a complete 2-pass parse (the AML is parsed
-twice) for each table;  This  avoids the construction of a huge
-parse tree and therefore reduces the amount of  dynamic memory
-required by the subsystem.  Greater use of the parse object cache
-means that performance is unaffected.
-
-Many comments from the two code reviews have been rolled in.
-
-The 64-bit alignment support is complete.
-
--------------------------------------------
-Summary of changes for this label: 06_30_00
-
-With a nod and a tip of the hat to the technology of yesteryear,
-we've added  support in the source code for 80 column output
-devices.  The code is now mostly  constrained to 80 columns or
-less to support environments and editors that 1)  cannot display
-or print more than 80 characters on a single line, and 2) cannot
-disable line wrapping.
-
-A major restructuring of the namespace data structure has been
-completed.  The  result is 1) cleaner and more
-understandable/maintainable code, and 2) a  significant reduction
-in the dynamic memory requirement for each named ACPI  object
-(almost half).
-
--------------------------------------------
-Summary of changes for this label: 06_23_00
-
-Linux support has been added.  In order to obtain approval to get
-the ACPI CA  subsystem into the Linux kernel, we've had to make
-quite a few changes to the  base subsystem that will affect all
-users (all the changes are generic and OS- independent).  The
-effects of these global changes have been somewhat far  reaching.
-Files have been merged and/or renamed and interfaces have been
-renamed.   The major changes are described below.
-
-Osd* interfaces renamed to AcpiOs* to eliminate namespace
-pollution/confusion  within our target kernels.  All OSD
-interfaces must be modified to match the new  naming convention.
-
-Files merged across the subsystem.  A number of the smaller source
-and header  files have been merged to reduce the file count and
-increase the density of the  existing files.  There are too many
-to list here.  In general, makefiles that  call out individual
-files will require rebuilding.
-
-Interpreter files renamed.  All interpreter files now have the
-prefix am*  instead of ie* and is*.
-
-Header files renamed:  The acapi.h file is now acpixf.h.  The
-acpiosd.h file is  now acpiosxf.h.  We are removing references to
-the acronym "API" since it is  somewhat windowsy. The new name is
-"external interface" or xface or xf in the  filenames.j
-
-
-All manifest constants have been forced to upper case (some were
-mixed case.)   Also, the string "ACPI_" has been prepended to many
-(not all) of the constants,  typedefs, and structs.
-
-The globals "DebugLevel" and "DebugLayer" have been renamed
-"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
-
-All other globals within the subsystem are now prefixed with
-"AcpiGbl_" Internal procedures within the subsystem are now
-prefixed with "Acpi" (with only  a few exceptions).  The original
-two-letter abbreviation for the subcomponent  remains after "Acpi"
-- for example, CmCallocate became AcpiCmCallocate.
-
-Added a source code translation/conversion utility.  Used to
-generate the Linux  source code, it can be modified to generate
-other types of source as well. Can  also be used to cleanup
-existing source by removing extraneous spaces and blank  lines.
-Found in tools/acpisrc/*
-
-OsdUnMapMemory was renamed to OsdUnmapMemory and then
-AcpiOsUnmapMemory.  (UnMap  became Unmap).
-
-A "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
-When set to  one, this indicates that the caller wants to use the
-
-semaphore as a mutex, not a  counting semaphore.  ACPI CA uses
-both types.  However, implementers of this  call may want to use
-different OS primitives depending on the type of semaphore
-requested.  For example, some operating systems provide separate
-
-"mutex" and  "semaphore" interfaces - where the mutex interface is
-much faster because it  doesn't have all the overhead of a full
-semaphore implementation.
-
-Fixed a deadlock problem where a method that accesses the PCI
-address space can  block forever if it is the first access to the
-space.
-
--------------------------------------------
-Summary of changes for this label: 06_02_00
-
-Support for environments that cannot handle unaligned data
-accesses (e.g.  firmware and OS environments devoid of alignment
-handler technology namely  SAL/EFI and the IA-64 Linux kernel) has
-been added (via configurable macros) in  these three areas: -
-Transfer of data from the raw AML byte stream is done via byte
-moves instead of    word/dword/qword moves. - External objects are
-aligned within the user buffer, including package   elements (sub-
-objects). - Conversion of name strings to UINT32 Acpi Names is now
-done byte-wise.
-
-The Store operator was modified to mimic Microsoft's
-implementation when storing  to a Buffer Field.
-
-Added a check of the BM_STS bit before entering C3.
-
-The methods subdirectory has been obsoleted and removed.  A new
-file, cmeval.c  subsumes the functionality.
-
-A 16-bit (DOS) version of AcpiExec has been developed.  The
-makefile is under  the acpiexec directory.
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/compiler/Makefile b/l4/pkg/acpica/lib-acpi/src/acpica/compiler/Makefile
deleted file mode 100644 (file)
index 597d1ff..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-
-PROG=  iasl
-SRCS=  aslcompilerparse.c aslcompilerlex.c aslanalyze.c aslcodegen.c \
-       aslcompile.c aslerror.c aslfiles.c asllength.c \
-       asllisting.c aslload.c asllookup.c aslmain.c aslmap.c aslopcodes.c \
-       asloperands.c aslresource.c aslrestype1.c aslrestype2.c aslstartup.c \
-       asltree.c aslutils.c asltransform.c aslfold.c aslstubs.c aslopt.c \
-       ../common/getopt.c \
-       ../utilities/utalloc.c \
-       ../utilities/utcache.c \
-       ../utilities/utcopy.c \
-       ../utilities/utdebug.c \
-       ../utilities/utdelete.c \
-       ../utilities/utglobal.c \
-       ../utilities/utinit.c \
-       ../utilities/utlock.c \
-       ../utilities/utobject.c \
-       ../utilities/utmisc.c \
-       ../utilities/utmath.c \
-       ../utilities/utmutex.c \
-       ../utilities/utresrc.c \
-       ../utilities/utstate.c \
-       ../utilities/utxface.c \
-       ../namespace/nsaccess.c \
-       ../namespace/nsalloc.c \
-       ../namespace/nsdump.c \
-       ../namespace/nsnames.c \
-       ../namespace/nsobject.c \
-       ../namespace/nsparse.c \
-       ../namespace/nssearch.c \
-       ../namespace/nsutils.c \
-       ../namespace/nswalk.c \
-       ../namespace/nsxfobj.c \
-       ../parser/psargs.c \
-       ../parser/psloop.c \
-       ../parser/psopcode.c \
-       ../parser/psparse.c \
-       ../parser/psscope.c \
-       ../parser/pstree.c \
-       ../parser/psutils.c \
-       ../parser/pswalk.c \
-       ../dispatcher/dswscope.c \
-       ../dispatcher/dswstate.c \
-       ../dispatcher/dsfield.c \
-       ../dispatcher/dsobject.c \
-       ../dispatcher/dsopcode.c \
-       ../dispatcher/dsutils.c \
-       ../dispatcher/dswexec.c \
-       ../dispatcher/dswload.c \
-       ../executer/exconvrt.c \
-       ../executer/excreate.c \
-       ../executer/exdump.c \
-       ../executer/exmisc.c \
-       ../executer/exmutex.c \
-       ../executer/exnames.c \
-       ../executer/exoparg1.c \
-       ../executer/exoparg2.c \
-       ../executer/exoparg3.c \
-       ../executer/exoparg6.c \
-       ../executer/exprep.c \
-       ../executer/exregion.c \
-       ../executer/exresnte.c \
-       ../executer/exresolv.c \
-       ../executer/exresop.c \
-       ../executer/exstore.c \
-       ../executer/exstoren.c \
-       ../executer/exstorob.c \
-       ../executer/exsystem.c \
-       ../executer/exutils.c \
-       ../common/adfile.c \
-       ../common/adisasm.c \
-       ../common/adwalk.c \
-       ../common/dmextern.c \
-       ../common/dmrestag.c \
-       ../common/dmtable.c \
-       ../common/dmtbinfo.c \
-       ../common/dmtbdump.c \
-       ../debugger/dbfileio.c \
-       ../disassembler/dmbuffer.c \
-       ../disassembler/dmnames.c \
-       ../disassembler/dmopcode.c \
-       ../disassembler/dmobject.c \
-       ../disassembler/dmresrc.c \
-       ../disassembler/dmresrcl.c \
-       ../disassembler/dmresrcs.c \
-       ../disassembler/dmutils.c \
-       ../disassembler/dmwalk.c \
-       ../tables/tbfadt.c \
-       ../tables/tbinstal.c \
-       ../tables/tbutils.c \
-       ../tables/tbxface.c \
-       ../osunixxf.c
-
-NOMAN= YES
-CFLAGS+= -Wall -O2 -Wstrict-prototypes -D_LINUX -DACPI_ASL_COMPILER -I../include 
-
-#YACC= yacc
-YACC=  bison
-YFLAGS+= -v -d
-LEX=   flex
-LFLAGS+= -i
-
-#.if $(YACC) == "bison"
-YFLAGS+= -y -pAslCompiler
-#.else
-#CFLAGS+= -D_USE_BERKELEY_YACC
-#.endif
-
-LDLIBS = -lpthread -lrt
-
-aslmain : $(patsubst %.c,%.o, $(SRCS))
-       $(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) \
-               $(LOADLIBES) $(LDLIBS) -o iasl
-
-CLEANFILES= y.output y.tab.c y.tab.h aslcompiler.y.h \
-       aslcompilerparse.c aslcompilerlex.c iasl
-
-aslcompilerparse.c: aslcompiler.y
-       ${YACC} ${YFLAGS} aslcompiler.y
-       cp y.tab.c aslcompilerparse.c
-       cp y.tab.h aslcompiler.y.h
-
-aslcompilerlex.c: aslcompiler.l
-       ${LEX} ${LFLAGS} -PAslCompiler -oaslcompilerlex.c aslcompiler.l
-
-clean : 
-       rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS))
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbcmds.c b/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbcmds.c
deleted file mode 100644 (file)
index 0a542d9..0000000
+++ /dev/null
@@ -1,2129 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbcmds - debug commands and output routines
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdispat.h"
-#include "acnamesp.h"
-#include "acevents.h"
-#include "acdebug.h"
-#include "acresrc.h"
-#include "acdisasm.h"
-#include "actables.h"
-#include "acparser.h"
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbcmds")
-
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDbIntegrityWalk (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue);
-
-static ACPI_STATUS
-AcpiDbWalkAndMatchName (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue);
-
-static ACPI_STATUS
-AcpiDbWalkForReferences (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue);
-
-static ACPI_STATUS
-AcpiDbWalkForSpecificObjects (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue);
-
-static ACPI_NAMESPACE_NODE *
-AcpiDbConvertToNode (
-    char                    *InString);
-
-static void
-AcpiDmCompareAmlResources (
-    UINT8                   *Aml1Buffer,
-    ACPI_RSDESC_SIZE        Aml1BufferLength,
-    UINT8                   *Aml2Buffer,
-    ACPI_RSDESC_SIZE        Aml2BufferLength);
-
-static ACPI_STATUS
-AcpiDmTestResourceConversion (
-    ACPI_NAMESPACE_NODE     *Node,
-    char                    *Name);
-
-
-/*
- * Arguments for the Objects command
- * These object types map directly to the ACPI_TYPES
- */
-static ARGUMENT_INFO        AcpiDbObjectTypes [] =
-{
-    {"ANY"},
-    {"INTEGERS"},
-    {"STRINGS"},
-    {"BUFFERS"},
-    {"PACKAGES"},
-    {"FIELDS"},
-    {"DEVICES"},
-    {"EVENTS"},
-    {"METHODS"},
-    {"MUTEXES"},
-    {"REGIONS"},
-    {"POWERRESOURCES"},
-    {"PROCESSORS"},
-    {"THERMALZONES"},
-    {"BUFFERFIELDS"},
-    {"DDBHANDLES"},
-    {"DEBUG"},
-    {"REGIONFIELDS"},
-    {"BANKFIELDS"},
-    {"INDEXFIELDS"},
-    {"REFERENCES"},
-    {"ALIAS"},
-    {NULL}           /* Must be null terminated */
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbConvertToNode
- *
- * PARAMETERS:  InString        - String to convert
- *
- * RETURN:      Pointer to a NS node
- *
- * DESCRIPTION: Convert a string to a valid NS pointer.  Handles numeric or
- *              alpha strings.
- *
- ******************************************************************************/
-
-static ACPI_NAMESPACE_NODE *
-AcpiDbConvertToNode (
-    char                    *InString)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    if ((*InString >= 0x30) && (*InString <= 0x39))
-    {
-        /* Numeric argument, convert */
-
-        Node = ACPI_TO_POINTER (ACPI_STRTOUL (InString, NULL, 16));
-        if (!AcpiOsReadable (Node, sizeof (ACPI_NAMESPACE_NODE)))
-        {
-            AcpiOsPrintf ("Address %p is invalid in this address space\n",
-                Node);
-            return (NULL);
-        }
-
-        /* Make sure pointer is valid NS node */
-
-        if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
-        {
-            AcpiOsPrintf ("Address %p is not a valid NS node [%s]\n",
-                    Node, AcpiUtGetDescriptorName (Node));
-            return (NULL);
-        }
-    }
-    else
-    {
-        /* Alpha argument */
-        /* The parameter is a name string that must be resolved to a
-         * Named obj
-         */
-        Node = AcpiDbLocalNsLookup (InString);
-        if (!Node)
-        {
-            Node = AcpiGbl_RootNode;
-        }
-    }
-
-    return (Node);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSleep
- *
- * PARAMETERS:  ObjectArg       - Desired sleep state (0-5)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Simulate a sleep/wake sequence
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbSleep (
-    char                    *ObjectArg)
-{
-    ACPI_STATUS             Status;
-    UINT8                   SleepState;
-
-
-    SleepState = (UINT8) ACPI_STRTOUL (ObjectArg, NULL, 0);
-
-    AcpiOsPrintf ("**** Prepare to sleep ****\n");
-    Status = AcpiEnterSleepStatePrep (SleepState);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    AcpiOsPrintf ("**** Going to sleep ****\n");
-    Status = AcpiEnterSleepState (SleepState);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    AcpiOsPrintf ("**** returning from sleep ****\n");
-    Status = AcpiLeaveSleepState (SleepState);
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbWalkForReferences
- *
- * PARAMETERS:  Callback from WalkNamespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Check if this namespace object refers to the target object
- *              that is passed in as the context value.
- *
- * Note: Currently doesn't check subobjects within the Node's object
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbWalkForReferences (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc = (ACPI_OPERAND_OBJECT  *) Context;
-    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-
-
-    /* Check for match against the namespace node itself */
-
-    if (Node == (void *) ObjDesc)
-    {
-        AcpiOsPrintf ("Object is a Node [%4.4s]\n",
-            AcpiUtGetNodeName (Node));
-    }
-
-    /* Check for match against the object attached to the node */
-
-    if (AcpiNsGetAttachedObject (Node) == ObjDesc)
-    {
-        AcpiOsPrintf ("Reference at Node->Object %p [%4.4s]\n",
-            Node, AcpiUtGetNodeName (Node));
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbFindReferences
- *
- * PARAMETERS:  ObjectArg       - String with hex value of the object
- *
- * RETURN:      None
- *
- * DESCRIPTION: Search namespace for all references to the input object
- *
- ******************************************************************************/
-
-void
-AcpiDbFindReferences (
-    char                    *ObjectArg)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    /* Convert string to object pointer */
-
-    ObjDesc = ACPI_TO_POINTER (ACPI_STRTOUL (ObjectArg, NULL, 16));
-
-    /* Search all nodes in namespace */
-
-    (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
-                    AcpiDbWalkForReferences, NULL, (void *) ObjDesc, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbWalkForPredefinedNames
- *
- * PARAMETERS:  Callback from WalkNamespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Detect and display predefined ACPI names (names that start with
- *              an underscore)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbWalkForPredefinedNames (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_NAMESPACE_NODE         *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-    UINT32                      *Count = (UINT32 *) Context;
-    const ACPI_PREDEFINED_INFO  *Predefined;
-    const ACPI_PREDEFINED_INFO  *Package = NULL;
-    char                        *Pathname;
-
-
-    Predefined = AcpiNsCheckForPredefinedName (Node);
-    if (!Predefined)
-    {
-        return (AE_OK);
-    }
-
-    Pathname = AcpiNsGetExternalPathname (Node);
-    if (!Pathname)
-    {
-        return (AE_OK);
-    }
-
-    /* If method returns a package, the info is in the next table entry */
-
-    if (Predefined->Info.ExpectedBtypes & ACPI_BTYPE_PACKAGE)
-    {
-        Package = Predefined + 1;
-    }
-
-    AcpiOsPrintf ("%-32s arg %X ret %2.2X", Pathname,
-        Predefined->Info.ParamCount, Predefined->Info.ExpectedBtypes);
-
-    if (Package)
-    {
-        AcpiOsPrintf (" PkgType %2.2X ObjType %2.2X Count %2.2X",
-            Package->RetInfo.Type, Package->RetInfo.ObjectType1,
-            Package->RetInfo.Count1);
-    }
-
-    AcpiOsPrintf("\n");
-
-    AcpiNsCheckParameterCount (Pathname, Node, ACPI_UINT32_MAX, Predefined);
-    ACPI_FREE (Pathname);
-    (*Count)++;
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbCheckPredefinedNames
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Validate all predefined names in the namespace
- *
- ******************************************************************************/
-
-void
-AcpiDbCheckPredefinedNames (
-    void)
-{
-    UINT32                  Count = 0;
-
-
-    /* Search all nodes in namespace */
-
-    (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
-                AcpiDbWalkForPredefinedNames, NULL, (void *) &Count, NULL);
-
-    AcpiOsPrintf ("Found %d predefined names in the namespace\n", Count);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbWalkForExecute
- *
- * PARAMETERS:  Callback from WalkNamespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Batch execution module. Currently only executes predefined
- *              ACPI names.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbWalkForExecute (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-    ACPI_EXECUTE_WALK       *Info = (ACPI_EXECUTE_WALK *) Context;
-    ACPI_BUFFER             ReturnObj;
-    ACPI_STATUS             Status;
-    char                    *Pathname;
-    UINT32                  i;
-    ACPI_DEVICE_INFO        *ObjInfo;
-    ACPI_OBJECT_LIST        ParamObjects;
-    ACPI_OBJECT             Params[ACPI_METHOD_NUM_ARGS];
-    const ACPI_PREDEFINED_INFO *Predefined;
-
-
-    Predefined = AcpiNsCheckForPredefinedName (Node);
-    if (!Predefined)
-    {
-        return (AE_OK);
-    }
-
-    if (Node->Type == ACPI_TYPE_LOCAL_SCOPE)
-    {
-        return (AE_OK);
-    }
-
-    Pathname = AcpiNsGetExternalPathname (Node);
-    if (!Pathname)
-    {
-        return (AE_OK);
-    }
-
-    /* Get the object info for number of method parameters */
-
-    Status = AcpiGetObjectInfo (ObjHandle, &ObjInfo);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    ParamObjects.Pointer = NULL;
-    ParamObjects.Count   = 0;
-
-    if (ObjInfo->Type == ACPI_TYPE_METHOD)
-    {
-        /* Setup default parameters */
-
-        for (i = 0; i < ObjInfo->ParamCount; i++)
-        {
-            Params[i].Type           = ACPI_TYPE_INTEGER;
-            Params[i].Integer.Value  = 1;
-        }
-
-        ParamObjects.Pointer     = Params;
-        ParamObjects.Count       = ObjInfo->ParamCount;
-    }
-
-    ACPI_FREE (ObjInfo);
-    ReturnObj.Pointer = NULL;
-    ReturnObj.Length = ACPI_ALLOCATE_BUFFER;
-
-    /* Do the actual method execution */
-
-    AcpiGbl_MethodExecuting = TRUE;
-
-    Status = AcpiEvaluateObject (Node, NULL, &ParamObjects, &ReturnObj);
-
-    AcpiOsPrintf ("%-32s returned %s\n", Pathname, AcpiFormatException (Status));
-    AcpiGbl_MethodExecuting = FALSE;
-    ACPI_FREE (Pathname);
-
-    /* Ignore status from method execution */
-
-    Status = AE_OK;
-
-    /* Update count, check if we have executed enough methods */
-
-    Info->Count++;
-    if (Info->Count >= Info->MaxCount)
-    {
-        Status = AE_CTRL_TERMINATE;
-    }
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbBatchExecute
- *
- * PARAMETERS:  CountArg            - Max number of methods to execute
- *
- * RETURN:      None
- *
- * DESCRIPTION: Namespace batch execution. Execute predefined names in the
- *              namespace, up to the max count, if specified.
- *
- ******************************************************************************/
-
-void
-AcpiDbBatchExecute (
-    char                    *CountArg)
-{
-    ACPI_EXECUTE_WALK       Info;
-
-
-    Info.Count = 0;
-    Info.MaxCount = ACPI_UINT32_MAX;
-
-    if (CountArg)
-    {
-        Info.MaxCount = ACPI_STRTOUL (CountArg, NULL, 0);
-    }
-
-
-    /* Search all nodes in namespace */
-
-    (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
-                AcpiDbWalkForExecute, NULL, (void *) &Info, NULL);
-
-    AcpiOsPrintf ("Executed %d predefined names in the namespace\n", Info.Count);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayLocks
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display information about internal mutexes.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayLocks (
-    void)
-{
-    UINT32                  i;
-
-
-    for (i = 0; i < ACPI_MAX_MUTEX; i++)
-    {
-        AcpiOsPrintf ("%26s : %s\n", AcpiUtGetMutexName (i),
-            AcpiGbl_MutexInfo[i].ThreadId == ACPI_MUTEX_NOT_ACQUIRED
-                ? "Locked" : "Unlocked");
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayTableInfo
- *
- * PARAMETERS:  TableArg        - String with name of table to be displayed
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display information about loaded tables.  Current
- *              implementation displays all loaded tables.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayTableInfo (
-    char                    *TableArg)
-{
-    UINT32                  i;
-    ACPI_TABLE_DESC         *TableDesc;
-    ACPI_STATUS             Status;
-
-
-    /* Walk the entire root table list */
-
-    for (i = 0; i < AcpiGbl_RootTableList.Count; i++)
-    {
-        TableDesc = &AcpiGbl_RootTableList.Tables[i];
-        AcpiOsPrintf ("%d ", i);
-
-        /* Make sure that the table is mapped */
-
-        Status = AcpiTbVerifyTable (TableDesc);
-        if (ACPI_FAILURE (Status))
-        {
-            return;
-        }
-
-        /* Dump the table header */
-
-        if (TableDesc->Pointer)
-        {
-            AcpiTbPrintTableHeader (TableDesc->Address, TableDesc->Pointer);
-        }
-        else
-        {
-            /* If the pointer is null, the table has been unloaded */
-
-            ACPI_INFO ((AE_INFO, "%4.4s - Table has been unloaded",
-                TableDesc->Signature.Ascii));
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbUnloadAcpiTable
- *
- * PARAMETERS:  TableArg        - Name of the table to be unloaded
- *              InstanceArg     - Which instance of the table to unload (if
- *                                there are multiple tables of the same type)
- *
- * RETURN:      Nonde
- *
- * DESCRIPTION: Unload an ACPI table.
- *              Instance is not implemented
- *
- ******************************************************************************/
-
-void
-AcpiDbUnloadAcpiTable (
-    char                    *TableArg,
-    char                    *InstanceArg)
-{
-/* TBD: Need to reimplement for new data structures */
-
-#if 0
-    UINT32                  i;
-    ACPI_STATUS             Status;
-
-
-    /* Search all tables for the target type */
-
-    for (i = 0; i < (ACPI_TABLE_ID_MAX+1); i++)
-    {
-        if (!ACPI_STRNCMP (TableArg, AcpiGbl_TableData[i].Signature,
-                AcpiGbl_TableData[i].SigLength))
-        {
-            /* Found the table, unload it */
-
-            Status = AcpiUnloadTable (i);
-            if (ACPI_SUCCESS (Status))
-            {
-                AcpiOsPrintf ("[%s] unloaded and uninstalled\n", TableArg);
-            }
-            else
-            {
-                AcpiOsPrintf ("%s, while unloading [%s]\n",
-                    AcpiFormatException (Status), TableArg);
-            }
-
-            return;
-        }
-    }
-
-    AcpiOsPrintf ("Unknown table type [%s]\n", TableArg);
-#endif
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSetMethodBreakpoint
- *
- * PARAMETERS:  Location            - AML offset of breakpoint
- *              WalkState           - Current walk info
- *              Op                  - Current Op (from parse walk)
- *
- * RETURN:      None
- *
- * DESCRIPTION: Set a breakpoint in a control method at the specified
- *              AML offset
- *
- ******************************************************************************/
-
-void
-AcpiDbSetMethodBreakpoint (
-    char                    *Location,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT32                  Address;
-
-
-    if (!Op)
-    {
-        AcpiOsPrintf ("There is no method currently executing\n");
-        return;
-    }
-
-    /* Get and verify the breakpoint address */
-
-    Address = ACPI_STRTOUL (Location, NULL, 16);
-    if (Address <= Op->Common.AmlOffset)
-    {
-        AcpiOsPrintf ("Breakpoint %X is beyond current address %X\n",
-            Address, Op->Common.AmlOffset);
-    }
-
-    /* Save breakpoint in current walk */
-
-    WalkState->UserBreakpoint = Address;
-    AcpiOsPrintf ("Breakpoint set at AML offset %X\n", Address);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSetMethodCallBreakpoint
- *
- * PARAMETERS:  Op                  - Current Op (from parse walk)
- *
- * RETURN:      None
- *
- * DESCRIPTION: Set a breakpoint in a control method at the specified
- *              AML offset
- *
- ******************************************************************************/
-
-void
-AcpiDbSetMethodCallBreakpoint (
-    ACPI_PARSE_OBJECT       *Op)
-{
-
-
-    if (!Op)
-    {
-        AcpiOsPrintf ("There is no method currently executing\n");
-        return;
-    }
-
-    AcpiGbl_StepToNextCall = TRUE;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisassembleAml
- *
- * PARAMETERS:  Statements          - Number of statements to disassemble
- *              Op                  - Current Op (from parse walk)
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display disassembled AML (ASL) starting from Op for the number
- *              of statements specified.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisassembleAml (
-    char                    *Statements,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT32                  NumStatements = 8;
-
-
-    if (!Op)
-    {
-        AcpiOsPrintf ("There is no method currently executing\n");
-        return;
-    }
-
-    if (Statements)
-    {
-        NumStatements = ACPI_STRTOUL (Statements, NULL, 0);
-    }
-
-    AcpiDmDisassemble (NULL, Op, NumStatements);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisassembleMethod
- *
- * PARAMETERS:  Name            - Name of control method
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display disassembled AML (ASL) starting from Op for the number
- *              of statements specified.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbDisassembleMethod (
-    char                    *Name)
-{
-    ACPI_STATUS             Status;
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_WALK_STATE         *WalkState;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Method;
-
-
-    Method = AcpiDbConvertToNode (Name);
-    if (!Method)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    ObjDesc = Method->Object;
-
-    Op = AcpiPsCreateScopeOp ();
-    if (!Op)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    /* Create and initialize a new walk state */
-
-    WalkState = AcpiDsCreateWalkState (0, Op, NULL, NULL);
-    if (!WalkState)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    Status = AcpiDsInitAmlWalk (WalkState, Op, NULL,
-                    ObjDesc->Method.AmlStart,
-                    ObjDesc->Method.AmlLength, NULL, ACPI_IMODE_LOAD_PASS1);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Parse the AML */
-
-    WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE;
-    WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE;
-    Status = AcpiPsParseAml (WalkState);
-
-    AcpiDmDisassemble (NULL, Op, 0);
-    AcpiPsDeleteParseTree (Op);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDumpNamespace
- *
- * PARAMETERS:  StartArg        - Node to begin namespace dump
- *              DepthArg        - Maximum tree depth to be dumped
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump entire namespace or a subtree.  Each node is displayed
- *              with type and other information.
- *
- ******************************************************************************/
-
-void
-AcpiDbDumpNamespace (
-    char                    *StartArg,
-    char                    *DepthArg)
-{
-    ACPI_HANDLE             SubtreeEntry = AcpiGbl_RootNode;
-    UINT32                  MaxDepth = ACPI_UINT32_MAX;
-
-
-    /* No argument given, just start at the root and dump entire namespace */
-
-    if (StartArg)
-    {
-        SubtreeEntry = AcpiDbConvertToNode (StartArg);
-        if (!SubtreeEntry)
-        {
-            return;
-        }
-
-        /* Now we can check for the depth argument */
-
-        if (DepthArg)
-        {
-            MaxDepth = ACPI_STRTOUL (DepthArg, NULL, 0);
-        }
-    }
-
-    AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
-    AcpiOsPrintf ("ACPI Namespace (from %4.4s (%p) subtree):\n",
-        ((ACPI_NAMESPACE_NODE *) SubtreeEntry)->Name.Ascii, SubtreeEntry);
-
-    /* Display the subtree */
-
-    AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
-    AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_SUMMARY, MaxDepth,
-        ACPI_OWNER_ID_MAX, SubtreeEntry);
-    AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDumpNamespaceByOwner
- *
- * PARAMETERS:  OwnerArg        - Owner ID whose nodes will be displayed
- *              DepthArg        - Maximum tree depth to be dumped
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump elements of the namespace that are owned by the OwnerId.
- *
- ******************************************************************************/
-
-void
-AcpiDbDumpNamespaceByOwner (
-    char                    *OwnerArg,
-    char                    *DepthArg)
-{
-    ACPI_HANDLE             SubtreeEntry = AcpiGbl_RootNode;
-    UINT32                  MaxDepth = ACPI_UINT32_MAX;
-    ACPI_OWNER_ID           OwnerId;
-
-
-    OwnerId = (ACPI_OWNER_ID) ACPI_STRTOUL (OwnerArg, NULL, 0);
-
-    /* Now we can check for the depth argument */
-
-    if (DepthArg)
-    {
-        MaxDepth = ACPI_STRTOUL (DepthArg, NULL, 0);
-    }
-
-    AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
-    AcpiOsPrintf ("ACPI Namespace by owner %X:\n", OwnerId);
-
-    /* Display the subtree */
-
-    AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
-    AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_SUMMARY, MaxDepth, OwnerId,
-        SubtreeEntry);
-    AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSendNotify
- *
- * PARAMETERS:  Name            - Name of ACPI object to send the notify to
- *              Value           - Value of the notify to send.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Send an ACPI notification.  The value specified is sent to the
- *              named object as an ACPI notify.
- *
- ******************************************************************************/
-
-void
-AcpiDbSendNotify (
-    char                    *Name,
-    UINT32                  Value)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    /* Translate name to an Named object */
-
-    Node = AcpiDbConvertToNode (Name);
-    if (!Node)
-    {
-        return;
-    }
-
-    /* Decode Named object type */
-
-    switch (Node->Type)
-    {
-    case ACPI_TYPE_DEVICE:
-    case ACPI_TYPE_THERMAL:
-
-         /* Send the notify */
-
-        Status = AcpiEvQueueNotifyRequest (Node, Value);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf ("Could not queue notify\n");
-        }
-        break;
-
-    default:
-        AcpiOsPrintf ("Named object is not a device or a thermal object\n");
-        break;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSetMethodData
- *
- * PARAMETERS:  TypeArg         - L for local, A for argument
- *              IndexArg        - which one
- *              ValueArg        - Value to set.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Set a local or argument for the running control method.
- *              NOTE: only object supported is Number.
- *
- ******************************************************************************/
-
-void
-AcpiDbSetMethodData (
-    char                    *TypeArg,
-    char                    *IndexArg,
-    char                    *ValueArg)
-{
-    char                    Type;
-    UINT32                  Index;
-    UINT32                  Value;
-    ACPI_WALK_STATE         *WalkState;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    /* Validate TypeArg */
-
-    AcpiUtStrupr (TypeArg);
-    Type = TypeArg[0];
-    if ((Type != 'L') &&
-        (Type != 'A') &&
-        (Type != 'N'))
-    {
-        AcpiOsPrintf ("Invalid SET operand: %s\n", TypeArg);
-        return;
-    }
-
-    Value = ACPI_STRTOUL (ValueArg, NULL, 16);
-
-    if (Type == 'N')
-    {
-        Node = AcpiDbConvertToNode (IndexArg);
-        if (Node->Type != ACPI_TYPE_INTEGER)
-        {
-            AcpiOsPrintf ("Can only set Integer nodes\n");
-            return;
-        }
-        ObjDesc = Node->Object;
-        ObjDesc->Integer.Value = Value;
-        return;
-    }
-
-    /* Get the index and value */
-
-    Index = ACPI_STRTOUL (IndexArg, NULL, 16);
-
-    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
-    if (!WalkState)
-    {
-        AcpiOsPrintf ("There is no method currently executing\n");
-        return;
-    }
-
-    /* Create and initialize the new object */
-
-    ObjDesc = AcpiUtCreateIntegerObject ((UINT64) Value);
-    if (!ObjDesc)
-    {
-        AcpiOsPrintf ("Could not create an internal object\n");
-        return;
-    }
-
-    /* Store the new object into the target */
-
-    switch (Type)
-    {
-    case 'A':
-
-        /* Set a method argument */
-
-        if (Index > ACPI_METHOD_MAX_ARG)
-        {
-            AcpiOsPrintf ("Arg%d - Invalid argument name\n", Index);
-            goto Cleanup;
-        }
-
-        Status = AcpiDsStoreObjectToLocal (ACPI_REFCLASS_ARG, Index, ObjDesc,
-                    WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        ObjDesc = WalkState->Arguments[Index].Object;
-
-        AcpiOsPrintf ("Arg%d: ", Index);
-        AcpiDmDisplayInternalObject (ObjDesc, WalkState);
-        break;
-
-    case 'L':
-
-        /* Set a method local */
-
-        if (Index > ACPI_METHOD_MAX_LOCAL)
-        {
-            AcpiOsPrintf ("Local%d - Invalid local variable name\n", Index);
-            goto Cleanup;
-        }
-
-        Status = AcpiDsStoreObjectToLocal (ACPI_REFCLASS_LOCAL, Index, ObjDesc,
-                    WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        ObjDesc = WalkState->LocalVariables[Index].Object;
-
-        AcpiOsPrintf ("Local%d: ", Index);
-        AcpiDmDisplayInternalObject (ObjDesc, WalkState);
-        break;
-
-    default:
-        break;
-    }
-
-Cleanup:
-    AcpiUtRemoveReference (ObjDesc);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbWalkForSpecificObjects
- *
- * PARAMETERS:  Callback from WalkNamespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Display short info about objects in the namespace
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbWalkForSpecificObjects (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_WALK_INFO          *Info = (ACPI_WALK_INFO *) Context;
-    ACPI_BUFFER             Buffer;
-    ACPI_STATUS             Status;
-
-
-    Info->Count++;
-
-    /* Get and display the full pathname to this object */
-
-    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could Not get pathname for object %p\n", ObjHandle);
-        return (AE_OK);
-    }
-
-    AcpiOsPrintf ("%32s", (char *) Buffer.Pointer);
-    ACPI_FREE (Buffer.Pointer);
-
-    /* Dump short info about the object */
-
-    (void) AcpiNsDumpOneObject (ObjHandle, NestingLevel, Info, NULL);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayObjects
- *
- * PARAMETERS:  ObjTypeArg          - Type of object to display
- *              DisplayCountArg     - Max depth to display
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display objects in the namespace of the requested type
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbDisplayObjects (
-    char                    *ObjTypeArg,
-    char                    *DisplayCountArg)
-{
-    ACPI_WALK_INFO          Info;
-    ACPI_OBJECT_TYPE        Type;
-
-
-    /* Get the object type */
-
-    Type = AcpiDbMatchArgument (ObjTypeArg, AcpiDbObjectTypes);
-    if (Type == ACPI_TYPE_NOT_FOUND)
-    {
-        AcpiOsPrintf ("Invalid or unsupported argument\n");
-        return (AE_OK);
-    }
-
-    AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
-    AcpiOsPrintf (
-        "Objects of type [%s] defined in the current ACPI Namespace:\n",
-        AcpiUtGetTypeName (Type));
-
-    AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
-
-    Info.Count = 0;
-    Info.OwnerId = ACPI_OWNER_ID_MAX;
-    Info.DebugLevel = ACPI_UINT32_MAX;
-    Info.DisplayType = ACPI_DISPLAY_SUMMARY | ACPI_DISPLAY_SHORT;
-
-    /* Walk the namespace from the root */
-
-    (void) AcpiWalkNamespace (Type, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
-                AcpiDbWalkForSpecificObjects, NULL, (void *) &Info, NULL);
-
-    AcpiOsPrintf (
-        "\nFound %u objects of type [%s] in the current ACPI Namespace\n",
-        Info.Count, AcpiUtGetTypeName (Type));
-
-    AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbWalkAndMatchName
- *
- * PARAMETERS:  Callback from WalkNamespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Find a particular name/names within the namespace.  Wildcards
- *              are supported -- '?' matches any character.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbWalkAndMatchName (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_STATUS             Status;
-    char                    *RequestedName = (char *) Context;
-    UINT32                  i;
-    ACPI_BUFFER             Buffer;
-    ACPI_WALK_INFO          Info;
-
-
-    /* Check for a name match */
-
-    for (i = 0; i < 4; i++)
-    {
-        /* Wildcard support */
-
-        if ((RequestedName[i] != '?') &&
-            (RequestedName[i] != ((ACPI_NAMESPACE_NODE *) ObjHandle)->Name.Ascii[i]))
-        {
-            /* No match, just exit */
-
-            return (AE_OK);
-        }
-    }
-
-    /* Get the full pathname to this object */
-
-    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could Not get pathname for object %p\n", ObjHandle);
-    }
-    else
-    {
-        Info.OwnerId = ACPI_OWNER_ID_MAX;
-        Info.DebugLevel = ACPI_UINT32_MAX;
-        Info.DisplayType = ACPI_DISPLAY_SUMMARY | ACPI_DISPLAY_SHORT;
-
-        AcpiOsPrintf ("%32s", (char *) Buffer.Pointer);
-        (void) AcpiNsDumpOneObject (ObjHandle, NestingLevel, &Info, NULL);
-        ACPI_FREE (Buffer.Pointer);
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbFindNameInNamespace
- *
- * PARAMETERS:  NameArg         - The 4-character ACPI name to find.
- *                                wildcards are supported.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Search the namespace for a given name (with wildcards)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbFindNameInNamespace (
-    char                    *NameArg)
-{
-    char                    AcpiName[5] = "____";
-    char                    *AcpiNamePtr = AcpiName;
-
-
-    if (ACPI_STRLEN (NameArg) > 4)
-    {
-        AcpiOsPrintf ("Name must be no longer than 4 characters\n");
-        return (AE_OK);
-    }
-
-    /* Pad out name with underscores as necessary to create a 4-char name */
-
-    AcpiUtStrupr (NameArg);
-    while (*NameArg)
-    {
-        *AcpiNamePtr = *NameArg;
-        AcpiNamePtr++;
-        NameArg++;
-    }
-
-    /* Walk the namespace from the root */
-
-    (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
-                        AcpiDbWalkAndMatchName, NULL, AcpiName, NULL);
-
-    AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSetScope
- *
- * PARAMETERS:  Name                - New scope path
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Set the "current scope" as maintained by this utility.
- *              The scope is used as a prefix to ACPI paths.
- *
- ******************************************************************************/
-
-void
-AcpiDbSetScope (
-    char                    *Name)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    if (!Name || Name[0] == 0)
-    {
-        AcpiOsPrintf ("Current scope: %s\n", AcpiGbl_DbScopeBuf);
-        return;
-    }
-
-    AcpiDbPrepNamestring (Name);
-
-    if (Name[0] == '\\')
-    {
-        /* Validate new scope from the root */
-
-        Status = AcpiNsGetNode (AcpiGbl_RootNode, Name, ACPI_NS_NO_UPSEARCH,
-                    &Node);
-        if (ACPI_FAILURE (Status))
-        {
-            goto ErrorExit;
-        }
-
-        ACPI_STRCPY (AcpiGbl_DbScopeBuf, Name);
-        ACPI_STRCAT (AcpiGbl_DbScopeBuf, "\\");
-    }
-    else
-    {
-        /* Validate new scope relative to old scope */
-
-        Status = AcpiNsGetNode (AcpiGbl_DbScopeNode, Name, ACPI_NS_NO_UPSEARCH,
-                    &Node);
-        if (ACPI_FAILURE (Status))
-        {
-            goto ErrorExit;
-        }
-
-        ACPI_STRCAT (AcpiGbl_DbScopeBuf, Name);
-        ACPI_STRCAT (AcpiGbl_DbScopeBuf, "\\");
-    }
-
-    AcpiGbl_DbScopeNode = Node;
-    AcpiOsPrintf ("New scope: %s\n", AcpiGbl_DbScopeBuf);
-    return;
-
-ErrorExit:
-
-    AcpiOsPrintf ("Could not attach scope: %s, %s\n",
-        Name, AcpiFormatException (Status));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmCompareAmlResources
- *
- * PARAMETERS:  Aml1Buffer          - Contains first resource list
- *              Aml1BufferLength    - Length of first resource list
- *              Aml2Buffer          - Contains second resource list
- *              Aml2BufferLength    - Length of second resource list
- *
- * RETURN:      None
- *
- * DESCRIPTION: Compare two AML resource lists, descriptor by descriptor (in
- *              order to isolate a miscompare to an individual resource)
- *
- ******************************************************************************/
-
-static void
-AcpiDmCompareAmlResources (
-    UINT8                   *Aml1Buffer,
-    ACPI_RSDESC_SIZE        Aml1BufferLength,
-    UINT8                   *Aml2Buffer,
-    ACPI_RSDESC_SIZE        Aml2BufferLength)
-{
-    UINT8                   *Aml1;
-    UINT8                   *Aml2;
-    ACPI_RSDESC_SIZE        Aml1Length;
-    ACPI_RSDESC_SIZE        Aml2Length;
-    ACPI_RSDESC_SIZE        Offset = 0;
-    UINT8                   ResourceType;
-    UINT32                  Count = 0;
-
-
-    /* Compare overall buffer sizes (may be different due to size rounding) */
-
-    if (Aml1BufferLength != Aml2BufferLength)
-    {
-        AcpiOsPrintf (
-            "**** Buffer length mismatch in converted AML: original %X new %X ****\n",
-            Aml1BufferLength, Aml2BufferLength);
-    }
-
-    Aml1 = Aml1Buffer;
-    Aml2 = Aml2Buffer;
-
-    /* Walk the descriptor lists, comparing each descriptor */
-
-    while (Aml1 < (Aml1Buffer + Aml1BufferLength))
-    {
-        /* Get the lengths of each descriptor */
-
-        Aml1Length = AcpiUtGetDescriptorLength (Aml1);
-        Aml2Length = AcpiUtGetDescriptorLength (Aml2);
-        ResourceType = AcpiUtGetResourceType (Aml1);
-
-        /* Check for descriptor length match */
-
-        if (Aml1Length != Aml2Length)
-        {
-            AcpiOsPrintf (
-                "**** Length mismatch in descriptor [%.2X] type %2.2X, Offset %8.8X L1 %X L2 %X ****\n",
-                Count, ResourceType, Offset, Aml1Length, Aml2Length);
-        }
-
-        /* Check for descriptor byte match */
-
-        else if (ACPI_MEMCMP (Aml1, Aml2, Aml1Length))
-        {
-            AcpiOsPrintf (
-                "**** Data mismatch in descriptor [%.2X] type %2.2X, Offset %8.8X ****\n",
-                Count, ResourceType, Offset);
-        }
-
-        /* Exit on EndTag descriptor */
-
-        if (ResourceType == ACPI_RESOURCE_NAME_END_TAG)
-        {
-            return;
-        }
-
-        /* Point to next descriptor in each buffer */
-
-        Count++;
-        Offset += Aml1Length;
-        Aml1 += Aml1Length;
-        Aml2 += Aml2Length;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmTestResourceConversion
- *
- * PARAMETERS:  Node            - Parent device node
- *              Name            - resource method name (_CRS)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Compare the original AML with a conversion of the AML to
- *              internal resource list, then back to AML.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmTestResourceConversion (
-    ACPI_NAMESPACE_NODE     *Node,
-    char                    *Name)
-{
-    ACPI_STATUS             Status;
-    ACPI_BUFFER             ReturnObj;
-    ACPI_BUFFER             ResourceObj;
-    ACPI_BUFFER             NewAml;
-    ACPI_OBJECT             *OriginalAml;
-
-
-    AcpiOsPrintf ("Resource Conversion Comparison:\n");
-
-    NewAml.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    ReturnObj.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    ResourceObj.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-
-    /* Get the original _CRS AML resource template */
-
-    Status = AcpiEvaluateObject (Node, Name, NULL, &ReturnObj);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not obtain %s: %s\n",
-            Name, AcpiFormatException (Status));
-        return (Status);
-    }
-
-    /* Get the AML resource template, converted to internal resource structs */
-
-    Status = AcpiGetCurrentResources (Node, &ResourceObj);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("AcpiGetCurrentResources failed: %s\n",
-            AcpiFormatException (Status));
-        goto Exit1;
-    }
-
-    /* Convert internal resource list to external AML resource template */
-
-    Status = AcpiRsCreateAmlResources (ResourceObj.Pointer, &NewAml);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("AcpiRsCreateAmlResources failed: %s\n",
-            AcpiFormatException (Status));
-        goto Exit2;
-    }
-
-    /* Compare original AML to the newly created AML resource list */
-
-    OriginalAml = ReturnObj.Pointer;
-
-    AcpiDmCompareAmlResources (
-        OriginalAml->Buffer.Pointer, (ACPI_RSDESC_SIZE) OriginalAml->Buffer.Length,
-        NewAml.Pointer, (ACPI_RSDESC_SIZE) NewAml.Length);
-
-    /* Cleanup and exit */
-
-    ACPI_FREE (NewAml.Pointer);
-Exit2:
-    ACPI_FREE (ResourceObj.Pointer);
-Exit1:
-    ACPI_FREE (ReturnObj.Pointer);
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayResources
- *
- * PARAMETERS:  ObjectArg       - String with hex value of the object
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display the resource objects associated with a device.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayResources (
-    char                    *ObjectArg)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-    ACPI_BUFFER             ReturnObj;
-
-
-    AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
-    AcpiDbgLevel |= ACPI_LV_RESOURCES;
-
-    /* Convert string to object pointer */
-
-    Node = AcpiDbConvertToNode (ObjectArg);
-    if (!Node)
-    {
-        return;
-    }
-
-    /* Prepare for a return object of arbitrary size */
-
-    ReturnObj.Pointer = AcpiGbl_DbBuffer;
-    ReturnObj.Length  = ACPI_DEBUG_BUFFER_SIZE;
-
-    /* _PRT */
-
-    AcpiOsPrintf ("Evaluating _PRT\n");
-
-    /* Check if _PRT exists */
-
-    Status = AcpiEvaluateObject (Node, METHOD_NAME__PRT, NULL, &ReturnObj);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not obtain _PRT: %s\n",
-            AcpiFormatException (Status));
-        goto GetCrs;
-    }
-
-    ReturnObj.Pointer = AcpiGbl_DbBuffer;
-    ReturnObj.Length  = ACPI_DEBUG_BUFFER_SIZE;
-
-    Status = AcpiGetIrqRoutingTable (Node, &ReturnObj);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("GetIrqRoutingTable failed: %s\n",
-            AcpiFormatException (Status));
-        goto GetCrs;
-    }
-
-    AcpiRsDumpIrqList (ACPI_CAST_PTR (UINT8, AcpiGbl_DbBuffer));
-
-
-    /* _CRS */
-
-GetCrs:
-    AcpiOsPrintf ("Evaluating _CRS\n");
-
-    ReturnObj.Pointer = AcpiGbl_DbBuffer;
-    ReturnObj.Length  = ACPI_DEBUG_BUFFER_SIZE;
-
-    /* Check if _CRS exists */
-
-    Status = AcpiEvaluateObject (Node, METHOD_NAME__CRS, NULL, &ReturnObj);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not obtain _CRS: %s\n",
-            AcpiFormatException (Status));
-        goto GetPrs;
-    }
-
-    /* Get the _CRS resource list */
-
-    ReturnObj.Pointer = AcpiGbl_DbBuffer;
-    ReturnObj.Length  = ACPI_DEBUG_BUFFER_SIZE;
-
-    Status = AcpiGetCurrentResources (Node, &ReturnObj);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("AcpiGetCurrentResources failed: %s\n",
-            AcpiFormatException (Status));
-        goto GetPrs;
-    }
-
-    /* Dump the _CRS resource list */
-
-    AcpiRsDumpResourceList (ACPI_CAST_PTR (ACPI_RESOURCE,
-        ReturnObj.Pointer));
-
-    /*
-     * Perform comparison of original AML to newly created AML. This tests both
-     * the AML->Resource conversion and the Resource->Aml conversion.
-     */
-    Status = AcpiDmTestResourceConversion (Node, METHOD_NAME__CRS);
-
-    /* Execute _SRS with the resource list */
-
-    Status = AcpiSetCurrentResources (Node, &ReturnObj);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("AcpiSetCurrentResources failed: %s\n",
-            AcpiFormatException (Status));
-        goto GetPrs;
-    }
-
-
-    /* _PRS */
-
-GetPrs:
-    AcpiOsPrintf ("Evaluating _PRS\n");
-
-    ReturnObj.Pointer = AcpiGbl_DbBuffer;
-    ReturnObj.Length  = ACPI_DEBUG_BUFFER_SIZE;
-
-    /* Check if _PRS exists */
-
-    Status = AcpiEvaluateObject (Node, METHOD_NAME__PRS, NULL, &ReturnObj);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not obtain _PRS: %s\n",
-            AcpiFormatException (Status));
-        goto Cleanup;
-    }
-
-    ReturnObj.Pointer = AcpiGbl_DbBuffer;
-    ReturnObj.Length  = ACPI_DEBUG_BUFFER_SIZE;
-
-    Status = AcpiGetPossibleResources (Node, &ReturnObj);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("AcpiGetPossibleResources failed: %s\n",
-            AcpiFormatException (Status));
-        goto Cleanup;
-    }
-
-    AcpiRsDumpResourceList (ACPI_CAST_PTR (ACPI_RESOURCE, AcpiGbl_DbBuffer));
-
-Cleanup:
-
-    AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-    return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbIntegrityWalk
- *
- * PARAMETERS:  Callback from WalkNamespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Examine one NS node for valid values.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbIntegrityWalk (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_INTEGRITY_INFO     *Info = (ACPI_INTEGRITY_INFO *) Context;
-    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-    ACPI_OPERAND_OBJECT     *Object;
-    BOOLEAN                 Alias = TRUE;
-
-
-    Info->Nodes++;
-
-    /* Verify the NS node, and dereference aliases */
-
-    while (Alias)
-    {
-        if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
-        {
-            AcpiOsPrintf ("Invalid Descriptor Type for Node %p [%s] - is %2.2X should be %2.2X\n",
-                Node, AcpiUtGetDescriptorName (Node), ACPI_GET_DESCRIPTOR_TYPE (Node),
-                ACPI_DESC_TYPE_NAMED);
-            return (AE_OK);
-        }
-
-        if ((Node->Type == ACPI_TYPE_LOCAL_ALIAS)  ||
-            (Node->Type == ACPI_TYPE_LOCAL_METHOD_ALIAS))
-        {
-            Node = (ACPI_NAMESPACE_NODE *) Node->Object;
-        }
-        else
-        {
-            Alias = FALSE;
-        }
-    }
-
-    if (Node->Type > ACPI_TYPE_LOCAL_MAX)
-    {
-        AcpiOsPrintf ("Invalid Object Type for Node %p, Type = %X\n",
-            Node, Node->Type);
-        return (AE_OK);
-    }
-
-    if (!AcpiUtValidAcpiName (Node->Name.Integer))
-    {
-        AcpiOsPrintf ("Invalid AcpiName for Node %p\n", Node);
-        return (AE_OK);
-    }
-
-    Object = AcpiNsGetAttachedObject (Node);
-    if (Object)
-    {
-        Info->Objects++;
-        if (ACPI_GET_DESCRIPTOR_TYPE (Object) != ACPI_DESC_TYPE_OPERAND)
-        {
-            AcpiOsPrintf ("Invalid Descriptor Type for Object %p [%s]\n",
-                Object, AcpiUtGetDescriptorName (Object));
-        }
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbCheckIntegrity
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Check entire namespace for data structure integrity
- *
- ******************************************************************************/
-
-void
-AcpiDbCheckIntegrity (
-    void)
-{
-    ACPI_INTEGRITY_INFO     Info = {0,0};
-
-    /* Search all nodes in namespace */
-
-    (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
-                    AcpiDbIntegrityWalk, NULL, (void *) &Info, NULL);
-
-    AcpiOsPrintf ("Verified %d namespace nodes with %d Objects\n",
-        Info.Nodes, Info.Objects);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbGenerateGpe
- *
- * PARAMETERS:  GpeArg          - Raw GPE number, ascii string
- *              BlockArg        - GPE block number, ascii string
- *                                0 or 1 for FADT GPE blocks
- *
- * RETURN:      None
- *
- * DESCRIPTION: Generate a GPE
- *
- ******************************************************************************/
-
-void
-AcpiDbGenerateGpe (
-    char                    *GpeArg,
-    char                    *BlockArg)
-{
-    UINT32                  BlockNumber;
-    UINT32                  GpeNumber;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-
-
-    GpeNumber   = ACPI_STRTOUL (GpeArg, NULL, 0);
-    BlockNumber = ACPI_STRTOUL (BlockArg, NULL, 0);
-
-
-    GpeEventInfo = AcpiEvGetGpeEventInfo (ACPI_TO_POINTER (BlockNumber),
-        GpeNumber);
-    if (!GpeEventInfo)
-    {
-        AcpiOsPrintf ("Invalid GPE\n");
-        return;
-    }
-
-    (void) AcpiEvGpeDispatch (GpeEventInfo, GpeNumber);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbBusWalk
- *
- * PARAMETERS:  Callback from WalkNamespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Display info about device objects that have a corresponding
- *              _PRT method.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbBusWalk (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-    ACPI_STATUS             Status;
-    ACPI_BUFFER             Buffer;
-    ACPI_NAMESPACE_NODE     *TempNode;
-    ACPI_DEVICE_INFO        *Info;
-    UINT32                  i;
-
-
-    if ((Node->Type != ACPI_TYPE_DEVICE) &&
-        (Node->Type != ACPI_TYPE_PROCESSOR))
-    {
-        return (AE_OK);
-    }
-
-    /* Exit if there is no _PRT under this device */
-
-    Status = AcpiGetHandle (Node, METHOD_NAME__PRT,
-                ACPI_CAST_PTR (ACPI_HANDLE, &TempNode));
-    if (ACPI_FAILURE (Status))
-    {
-        return (AE_OK);
-    }
-
-    /* Get the full path to this device object */
-
-    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could Not get pathname for object %p\n", ObjHandle);
-        return (AE_OK);
-    }
-
-    Status = AcpiGetObjectInfo (ObjHandle, &Info);
-    if (ACPI_FAILURE (Status))
-    {
-        return (AE_OK);
-    }
-
-    /* Display the full path */
-
-    AcpiOsPrintf ("%-32s Type %X", (char *) Buffer.Pointer, Node->Type);
-    ACPI_FREE (Buffer.Pointer);
-
-    if (Info->Flags & ACPI_PCI_ROOT_BRIDGE)
-    {
-        AcpiOsPrintf ("  - Is PCI Root Bridge");
-    }
-    AcpiOsPrintf ("\n");
-
-    /* _PRT info */
-
-    AcpiOsPrintf ("_PRT: %p\n", TempNode);
-
-    /* Dump _ADR, _HID, _UID, _CID */
-
-    if (Info->Valid & ACPI_VALID_ADR)
-    {
-        AcpiOsPrintf ("_ADR: %8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Info->Address));
-    }
-    else
-    {
-        AcpiOsPrintf ("_ADR: <Not Present>\n");
-    }
-
-    if (Info->Valid & ACPI_VALID_HID)
-    {
-        AcpiOsPrintf ("_HID: %s\n", Info->HardwareId.String);
-    }
-    else
-    {
-        AcpiOsPrintf ("_HID: <Not Present>\n");
-    }
-
-    if (Info->Valid & ACPI_VALID_UID)
-    {
-        AcpiOsPrintf ("_UID: %s\n", Info->UniqueId.String);
-    }
-    else
-    {
-        AcpiOsPrintf ("_UID: <Not Present>\n");
-    }
-
-    if (Info->Valid & ACPI_VALID_CID)
-    {
-        for (i = 0; i < Info->CompatibleIdList.Count; i++)
-        {
-            AcpiOsPrintf ("_CID: %s\n",
-                Info->CompatibleIdList.Ids[i].String);
-        }
-    }
-    else
-    {
-        AcpiOsPrintf ("_CID: <Not Present>\n");
-    }
-
-    ACPI_FREE (Info);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbGetBusInfo
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display info about system busses.
- *
- ******************************************************************************/
-
-void
-AcpiDbGetBusInfo (
-    void)
-{
-    /* Search all nodes in namespace */
-
-    (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
-                    AcpiDbBusWalk, NULL, NULL, NULL);
-}
-
-#endif /* ACPI_DEBUGGER */
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbdisply.c b/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbdisply.c
deleted file mode 100644 (file)
index fbcb8f1..0000000
+++ /dev/null
@@ -1,971 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbdisply - debug display commands
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acdispat.h"
-#include "acnamesp.h"
-#include "acparser.h"
-#include "acinterp.h"
-#include "acdebug.h"
-#include "acdisasm.h"
-
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbdisply")
-
-/* Local prototypes */
-
-static void
-AcpiDbDumpParserDescriptor (
-    ACPI_PARSE_OBJECT       *Op);
-
-static void *
-AcpiDbGetPointer (
-    void                    *Target);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbGetPointer
- *
- * PARAMETERS:  Target          - Pointer to string to be converted
- *
- * RETURN:      Converted pointer
- *
- * DESCRIPTION: Convert an ascii pointer value to a real value
- *
- ******************************************************************************/
-
-static void *
-AcpiDbGetPointer (
-    void                    *Target)
-{
-    void                    *ObjPtr;
-
-
-    ObjPtr = ACPI_TO_POINTER (ACPI_STRTOUL (Target, NULL, 16));
-    return (ObjPtr);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDumpParserDescriptor
- *
- * PARAMETERS:  Op              - A parser Op descriptor
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display a formatted parser object
- *
- ******************************************************************************/
-
-static void
-AcpiDbDumpParserDescriptor (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    const ACPI_OPCODE_INFO  *Info;
-
-
-    Info = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
-    AcpiOsPrintf ("Parser Op Descriptor:\n");
-    AcpiOsPrintf ("%20.20s : %4.4X\n", "Opcode", Op->Common.AmlOpcode);
-
-    ACPI_DEBUG_ONLY_MEMBERS (AcpiOsPrintf ("%20.20s : %s\n", "Opcode Name",
-        Info->Name));
-
-    AcpiOsPrintf ("%20.20s : %p\n", "Value/ArgList", Op->Common.Value.Arg);
-    AcpiOsPrintf ("%20.20s : %p\n", "Parent", Op->Common.Parent);
-    AcpiOsPrintf ("%20.20s : %p\n", "NextOp", Op->Common.Next);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDecodeAndDisplayObject
- *
- * PARAMETERS:  Target          - String with object to be displayed.  Names
- *                                and hex pointers are supported.
- *              OutputType      - Byte, Word, Dword, or Qword (B|W|D|Q)
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display a formatted ACPI object
- *
- ******************************************************************************/
-
-void
-AcpiDbDecodeAndDisplayObject (
-    char                    *Target,
-    char                    *OutputType)
-{
-    void                    *ObjPtr;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    UINT32                  Display = DB_BYTE_DISPLAY;
-    char                    Buffer[80];
-    ACPI_BUFFER             RetBuf;
-    ACPI_STATUS             Status;
-    UINT32                  Size;
-
-
-    if (!Target)
-    {
-        return;
-    }
-
-    /* Decode the output type */
-
-    if (OutputType)
-    {
-        AcpiUtStrupr (OutputType);
-        if (OutputType[0] == 'W')
-        {
-            Display = DB_WORD_DISPLAY;
-        }
-        else if (OutputType[0] == 'D')
-        {
-            Display = DB_DWORD_DISPLAY;
-        }
-        else if (OutputType[0] == 'Q')
-        {
-            Display = DB_QWORD_DISPLAY;
-        }
-    }
-
-    RetBuf.Length = sizeof (Buffer);
-    RetBuf.Pointer = Buffer;
-
-    /* Differentiate between a number and a name */
-
-    if ((Target[0] >= 0x30) && (Target[0] <= 0x39))
-    {
-        ObjPtr = AcpiDbGetPointer (Target);
-        if (!AcpiOsReadable (ObjPtr, 16))
-        {
-            AcpiOsPrintf ("Address %p is invalid in this address space\n",
-                ObjPtr);
-            return;
-        }
-
-        /* Decode the object type */
-
-        switch (ACPI_GET_DESCRIPTOR_TYPE (ObjPtr))
-        {
-        case ACPI_DESC_TYPE_NAMED:
-
-            /* This is a namespace Node */
-
-            if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_NAMESPACE_NODE)))
-            {
-                AcpiOsPrintf (
-                    "Cannot read entire Named object at address %p\n", ObjPtr);
-                return;
-            }
-
-            Node = ObjPtr;
-            goto DumpNode;
-
-
-        case ACPI_DESC_TYPE_OPERAND:
-
-            /* This is a ACPI OPERAND OBJECT */
-
-            if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_OPERAND_OBJECT)))
-            {
-                AcpiOsPrintf ("Cannot read entire ACPI object at address %p\n",
-                    ObjPtr);
-                return;
-            }
-
-            AcpiUtDumpBuffer (ObjPtr, sizeof (ACPI_OPERAND_OBJECT), Display,
-                ACPI_UINT32_MAX);
-            AcpiExDumpObjectDescriptor (ObjPtr, 1);
-            break;
-
-
-        case ACPI_DESC_TYPE_PARSER:
-
-            /* This is a Parser Op object */
-
-            if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_PARSE_OBJECT)))
-            {
-                AcpiOsPrintf (
-                    "Cannot read entire Parser object at address %p\n", ObjPtr);
-                return;
-            }
-
-            AcpiUtDumpBuffer (ObjPtr, sizeof (ACPI_PARSE_OBJECT), Display,
-                ACPI_UINT32_MAX);
-            AcpiDbDumpParserDescriptor ((ACPI_PARSE_OBJECT *) ObjPtr);
-            break;
-
-
-        default:
-
-            /* Is not a recognizeable object */
-
-            Size = 16;
-            if (AcpiOsReadable (ObjPtr, 64))
-            {
-                Size = 64;
-            }
-
-            /* Just dump some memory */
-
-            AcpiUtDumpBuffer (ObjPtr, Size, Display, ACPI_UINT32_MAX);
-            break;
-        }
-
-        return;
-    }
-
-    /* The parameter is a name string that must be resolved to a Named obj */
-
-    Node = AcpiDbLocalNsLookup (Target);
-    if (!Node)
-    {
-        return;
-    }
-
-
-DumpNode:
-    /* Now dump the NS node */
-
-    Status = AcpiGetName (Node, ACPI_FULL_PATHNAME, &RetBuf);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not convert name to pathname\n");
-    }
-
-    else
-    {
-        AcpiOsPrintf ("Object (%p) Pathname:  %s\n",
-            Node, (char *) RetBuf.Pointer);
-    }
-
-    if (!AcpiOsReadable (Node, sizeof (ACPI_NAMESPACE_NODE)))
-    {
-        AcpiOsPrintf ("Invalid Named object at address %p\n", Node);
-        return;
-    }
-
-    AcpiUtDumpBuffer ((void *) Node, sizeof (ACPI_NAMESPACE_NODE),
-        Display, ACPI_UINT32_MAX);
-    AcpiExDumpNamespaceNode (Node, 1);
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (ObjDesc)
-    {
-        AcpiOsPrintf ("\nAttached Object (%p):\n", ObjDesc);
-        if (!AcpiOsReadable (ObjDesc, sizeof (ACPI_OPERAND_OBJECT)))
-        {
-            AcpiOsPrintf ("Invalid internal ACPI Object at address %p\n",
-                ObjDesc);
-            return;
-        }
-
-        AcpiUtDumpBuffer ((void *) ObjDesc, sizeof (ACPI_OPERAND_OBJECT),
-            Display, ACPI_UINT32_MAX);
-        AcpiExDumpObjectDescriptor (ObjDesc, 1);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayMethodInfo
- *
- * PARAMETERS:  StartOp         - Root of the control method parse tree
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display information about the current method
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayMethodInfo (
-    ACPI_PARSE_OBJECT       *StartOp)
-{
-    ACPI_WALK_STATE         *WalkState;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_PARSE_OBJECT       *RootOp;
-    ACPI_PARSE_OBJECT       *Op;
-    const ACPI_OPCODE_INFO  *OpInfo;
-    UINT32                  NumOps = 0;
-    UINT32                  NumOperands = 0;
-    UINT32                  NumOperators = 0;
-    UINT32                  NumRemainingOps = 0;
-    UINT32                  NumRemainingOperands = 0;
-    UINT32                  NumRemainingOperators = 0;
-    BOOLEAN                 CountRemaining = FALSE;
-
-
-    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
-    if (!WalkState)
-    {
-        AcpiOsPrintf ("There is no method currently executing\n");
-        return;
-    }
-
-    ObjDesc = WalkState->MethodDesc;
-    Node    = WalkState->MethodNode;
-
-    AcpiOsPrintf ("Currently executing control method is [%4.4s]\n",
-            AcpiUtGetNodeName (Node));
-    AcpiOsPrintf ("%X Arguments, SyncLevel = %X\n",
-            (UINT32) ObjDesc->Method.ParamCount,
-            (UINT32) ObjDesc->Method.SyncLevel);
-
-
-    RootOp = StartOp;
-    while (RootOp->Common.Parent)
-    {
-        RootOp = RootOp->Common.Parent;
-    }
-
-    Op = RootOp;
-
-    while (Op)
-    {
-        if (Op == StartOp)
-        {
-            CountRemaining = TRUE;
-        }
-
-        NumOps++;
-        if (CountRemaining)
-        {
-            NumRemainingOps++;
-        }
-
-        /* Decode the opcode */
-
-        OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-        switch (OpInfo->Class)
-        {
-        case AML_CLASS_ARGUMENT:
-            if (CountRemaining)
-            {
-                NumRemainingOperands++;
-            }
-
-            NumOperands++;
-            break;
-
-        case AML_CLASS_UNKNOWN:
-            /* Bad opcode or ASCII character */
-
-            continue;
-
-        default:
-            if (CountRemaining)
-            {
-                NumRemainingOperators++;
-            }
-
-            NumOperators++;
-            break;
-        }
-
-        Op = AcpiPsGetDepthNext (StartOp, Op);
-    }
-
-    AcpiOsPrintf (
-        "Method contains:       %X AML Opcodes - %X Operators, %X Operands\n",
-        NumOps, NumOperators, NumOperands);
-
-    AcpiOsPrintf (
-        "Remaining to execute:  %X AML Opcodes - %X Operators, %X Operands\n",
-        NumRemainingOps, NumRemainingOperators, NumRemainingOperands);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayLocals
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display all locals for the currently running control method
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayLocals (
-    void)
-{
-    ACPI_WALK_STATE         *WalkState;
-
-
-    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
-    if (!WalkState)
-    {
-        AcpiOsPrintf ("There is no method currently executing\n");
-        return;
-    }
-
-    AcpiDmDisplayLocals (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayArguments
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display all arguments for the currently running control method
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayArguments (
-    void)
-{
-    ACPI_WALK_STATE         *WalkState;
-
-
-    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
-    if (!WalkState)
-    {
-        AcpiOsPrintf ("There is no method currently executing\n");
-        return;
-    }
-
-    AcpiDmDisplayArguments (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayResults
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display current contents of a method result stack
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayResults (
-    void)
-{
-    UINT32                  i;
-    ACPI_WALK_STATE         *WalkState;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    UINT32                  ResultCount = 0;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_GENERIC_STATE      *Frame;
-    UINT32                  Index; /* Index onto current frame */
-
-
-    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
-    if (!WalkState)
-    {
-        AcpiOsPrintf ("There is no method currently executing\n");
-        return;
-    }
-
-    ObjDesc = WalkState->MethodDesc;
-    Node    = WalkState->MethodNode;
-
-    if (WalkState->Results)
-    {
-        ResultCount = WalkState->ResultCount;
-    }
-
-    AcpiOsPrintf ("Method [%4.4s] has %X stacked result objects\n",
-            AcpiUtGetNodeName (Node), ResultCount);
-
-    /* From the top element of result stack */
-
-    Frame = WalkState->Results;
-    Index = (ResultCount - 1) % ACPI_RESULTS_FRAME_OBJ_NUM;
-
-    for (i = 0; i < ResultCount; i++)
-    {
-        ObjDesc = Frame->Results.ObjDesc[Index];
-        AcpiOsPrintf ("Result%d: ", i);
-        AcpiDmDisplayInternalObject (ObjDesc, WalkState);
-        if (Index == 0)
-        {
-            Frame = Frame->Results.Next;
-            Index = ACPI_RESULTS_FRAME_OBJ_NUM;
-        }
-        Index--;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayCallingTree
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display current calling tree of nested control methods
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayCallingTree (
-    void)
-{
-    ACPI_WALK_STATE         *WalkState;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
-    if (!WalkState)
-    {
-        AcpiOsPrintf ("There is no method currently executing\n");
-        return;
-    }
-
-    Node = WalkState->MethodNode;
-    AcpiOsPrintf ("Current Control Method Call Tree\n");
-
-    while (WalkState)
-    {
-        Node = WalkState->MethodNode;
-
-        AcpiOsPrintf ("    [%4.4s]\n", AcpiUtGetNodeName (Node));
-
-        WalkState = WalkState->Next;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayObjectType
- *
- * PARAMETERS:  ObjectArg       - User entered NS node handle
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display type of an arbitrary NS node
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayObjectType (
-    char                    *ObjectArg)
-{
-    ACPI_HANDLE             Handle;
-    ACPI_DEVICE_INFO        *Info;
-    ACPI_STATUS             Status;
-    UINT32                  i;
-
-
-    Handle = ACPI_TO_POINTER (ACPI_STRTOUL (ObjectArg, NULL, 16));
-
-    Status = AcpiGetObjectInfo (Handle, &Info);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not get object info, %s\n",
-            AcpiFormatException (Status));
-        return;
-    }
-
-    AcpiOsPrintf ("ADR: %8.8X%8.8X, STA: %8.8X, Flags: %X\n",
-        ACPI_FORMAT_UINT64 (Info->Address),
-        Info->CurrentStatus, Info->Flags);
-
-    AcpiOsPrintf ("S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X\n",
-        Info->HighestDstates[0], Info->HighestDstates[1],
-        Info->HighestDstates[2], Info->HighestDstates[3]);
-
-    AcpiOsPrintf ("S0W-%2.2X S1W-%2.2X S2W-%2.2X S3W-%2.2X S4W-%2.2X\n",
-        Info->LowestDstates[0], Info->LowestDstates[1],
-        Info->LowestDstates[2], Info->LowestDstates[3],
-        Info->LowestDstates[4]);
-
-    if (Info->Valid & ACPI_VALID_HID)
-    {
-        AcpiOsPrintf ("HID: %s\n", Info->HardwareId.String);
-    }
-    if (Info->Valid & ACPI_VALID_UID)
-    {
-        AcpiOsPrintf ("UID: %s\n", Info->UniqueId.String);
-    }
-    if (Info->Valid & ACPI_VALID_CID)
-    {
-        for (i = 0; i < Info->CompatibleIdList.Count; i++)
-        {
-            AcpiOsPrintf ("CID %d: %s\n", i,
-                Info->CompatibleIdList.Ids[i].String);
-        }
-    }
-
-    ACPI_FREE (Info);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayResultObject
- *
- * PARAMETERS:  ObjDesc         - Object to be displayed
- *              WalkState       - Current walk state
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display the result of an AML opcode
- *
- * Note: Curently only displays the result object if we are single stepping.
- * However, this output may be useful in other contexts and could be enabled
- * to do so if needed.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayResultObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-
-    /* Only display if single stepping */
-
-    if (!AcpiGbl_CmSingleStep)
-    {
-        return;
-    }
-
-    AcpiOsPrintf ("ResultObj: ");
-    AcpiDmDisplayInternalObject (ObjDesc, WalkState);
-    AcpiOsPrintf ("\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayArgumentObject
- *
- * PARAMETERS:  ObjDesc         - Object to be displayed
- *              WalkState       - Current walk state
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display the result of an AML opcode
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayArgumentObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-
-    if (!AcpiGbl_CmSingleStep)
-    {
-        return;
-    }
-
-    AcpiOsPrintf ("ArgObj:    ");
-    AcpiDmDisplayInternalObject (ObjDesc, WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayGpes
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display the current GPE structures
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayGpes (
-    void)
-{
-    ACPI_GPE_BLOCK_INFO     *GpeBlock;
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-    ACPI_GPE_REGISTER_INFO  *GpeRegisterInfo;
-    UINT32                  GpeIndex;
-    UINT32                  Block = 0;
-    UINT32                  i;
-    UINT32                  j;
-    char                    Buffer[80];
-    ACPI_BUFFER             RetBuf;
-    ACPI_STATUS             Status;
-
-
-    RetBuf.Length = sizeof (Buffer);
-    RetBuf.Pointer = Buffer;
-
-    Block = 0;
-
-    /* Walk the GPE lists */
-
-    GpeXruptInfo = AcpiGbl_GpeXruptListHead;
-    while (GpeXruptInfo)
-    {
-        GpeBlock = GpeXruptInfo->GpeBlockListHead;
-        while (GpeBlock)
-        {
-            Status = AcpiGetName (GpeBlock->Node, ACPI_FULL_PATHNAME, &RetBuf);
-            if (ACPI_FAILURE (Status))
-            {
-                AcpiOsPrintf ("Could not convert name to pathname\n");
-            }
-
-            AcpiOsPrintf ("\nBlock %d - Info %p  DeviceNode %p [%s]\n",
-                Block, GpeBlock, GpeBlock->Node, Buffer);
-
-            AcpiOsPrintf ("    Registers:    %u (%u GPEs)\n",
-                GpeBlock->RegisterCount,
-                ACPI_MUL_8 (GpeBlock->RegisterCount));
-
-            AcpiOsPrintf ("    GPE range:    0x%X to 0x%X\n",
-                GpeBlock->BlockBaseNumber,
-                GpeBlock->BlockBaseNumber +
-                    (GpeBlock->RegisterCount * 8) -1);
-
-            AcpiOsPrintf (
-                "    RegisterInfo: %p  Status %8.8X%8.8X Enable %8.8X%8.8X\n",
-                GpeBlock->RegisterInfo,
-                ACPI_FORMAT_UINT64 (GpeBlock->RegisterInfo->StatusAddress.Address),
-                ACPI_FORMAT_UINT64 (GpeBlock->RegisterInfo->EnableAddress.Address));
-
-            AcpiOsPrintf ("    EventInfo:    %p\n", GpeBlock->EventInfo);
-
-            /* Examine each GPE Register within the block */
-
-            for (i = 0; i < GpeBlock->RegisterCount; i++)
-            {
-                GpeRegisterInfo = &GpeBlock->RegisterInfo[i];
-
-                AcpiOsPrintf (
-                    "    Reg %u:  WakeEnable %2.2X, RunEnable %2.2X  Status %8.8X%8.8X Enable %8.8X%8.8X\n",
-                    i, GpeRegisterInfo->EnableForWake,
-                    GpeRegisterInfo->EnableForRun,
-                    ACPI_FORMAT_UINT64 (GpeRegisterInfo->StatusAddress.Address),
-                    ACPI_FORMAT_UINT64 (GpeRegisterInfo->EnableAddress.Address));
-
-                /* Now look at the individual GPEs in this byte register */
-
-                for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++)
-                {
-                    GpeIndex = (i * ACPI_GPE_REGISTER_WIDTH) + j;
-                    GpeEventInfo = &GpeBlock->EventInfo[GpeIndex];
-
-                    if (!(GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK))
-                    {
-                        /* This GPE is not used (no method or handler) */
-
-                        continue;
-                    }
-
-                    AcpiOsPrintf (
-                        "        GPE %.3X: %p Flags %2.2X: ",
-                        GpeBlock->BlockBaseNumber + GpeIndex,
-                        GpeEventInfo,
-                        GpeEventInfo->Flags);
-
-                    if (GpeEventInfo->Flags & ACPI_GPE_LEVEL_TRIGGERED)
-                    {
-                        AcpiOsPrintf ("Level, ");
-                    }
-                    else
-                    {
-                        AcpiOsPrintf ("Edge,  ");
-                    }
-
-                    switch (GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK)
-                    {
-                    case ACPI_GPE_TYPE_WAKE:
-                        AcpiOsPrintf ("WakeOnly: ");
-                        break;
-                    case ACPI_GPE_TYPE_RUNTIME:
-                        AcpiOsPrintf (" RunOnly: ");
-                        break;
-                    case ACPI_GPE_TYPE_WAKE_RUN:
-                        AcpiOsPrintf (" WakeRun: ");
-                        break;
-                    default:
-                        AcpiOsPrintf (" NotUsed: ");
-                        break;
-                    }
-
-                    if (GpeEventInfo->Flags & ACPI_GPE_WAKE_ENABLED)
-                    {
-                        AcpiOsPrintf ("[Wake 1 ");
-                    }
-                    else
-                    {
-                        AcpiOsPrintf ("[Wake 0 ");
-                    }
-
-                    if (GpeEventInfo->Flags & ACPI_GPE_RUN_ENABLED)
-                    {
-                        AcpiOsPrintf ("Run 1], ");
-                    }
-                    else
-                    {
-                        AcpiOsPrintf ("Run 0], ");
-                    }
-
-                    switch (GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK)
-                    {
-                    case ACPI_GPE_DISPATCH_NOT_USED:
-                        AcpiOsPrintf ("NotUsed");
-                        break;
-                    case ACPI_GPE_DISPATCH_HANDLER:
-                        AcpiOsPrintf ("Handler");
-                        break;
-                    case ACPI_GPE_DISPATCH_METHOD:
-                        AcpiOsPrintf ("Method");
-                        break;
-                    default:
-                        AcpiOsPrintf ("UNKNOWN: %X",
-                            GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK);
-                        break;
-                    }
-
-                    AcpiOsPrintf ("\n");
-                }
-            }
-            Block++;
-            GpeBlock = GpeBlock->Next;
-        }
-        GpeXruptInfo = GpeXruptInfo->Next;
-    }
-}
-
-#endif /* ACPI_DEBUGGER */
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbexec.c b/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbexec.c
deleted file mode 100644 (file)
index 7990890..0000000
+++ /dev/null
@@ -1,793 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbexec - debugger control method execution
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdebug.h"
-#include "acnamesp.h"
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbexec")
-
-
-static ACPI_DB_METHOD_INFO  AcpiGbl_DbMethodInfo;
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDbExecuteMethod (
-    ACPI_DB_METHOD_INFO     *Info,
-    ACPI_BUFFER             *ReturnObj);
-
-static void
-AcpiDbExecuteSetup (
-    ACPI_DB_METHOD_INFO     *Info);
-
-static UINT32
-AcpiDbGetOutstandingAllocations (
-    void);
-
-static void ACPI_SYSTEM_XFACE
-AcpiDbMethodThread (
-    void                    *Context);
-
-static ACPI_STATUS
-AcpiDbExecutionWalk (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbExecuteMethod
- *
- * PARAMETERS:  Info            - Valid info segment
- *              ReturnObj       - Where to put return object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute a control method.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbExecuteMethod (
-    ACPI_DB_METHOD_INFO     *Info,
-    ACPI_BUFFER             *ReturnObj)
-{
-    ACPI_STATUS             Status;
-    ACPI_OBJECT_LIST        ParamObjects;
-    ACPI_OBJECT             Params[ACPI_METHOD_NUM_ARGS];
-    ACPI_HANDLE             Handle;
-    UINT32                  i;
-    ACPI_DEVICE_INFO        *ObjInfo;
-
-
-    if (AcpiGbl_DbOutputToFile && !AcpiDbgLevel)
-    {
-        AcpiOsPrintf ("Warning: debug output is not enabled!\n");
-    }
-
-    /* Get the NS node, determines existence also */
-
-    Status = AcpiGetHandle (NULL, Info->Pathname, &Handle);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Get the object info for number of method parameters */
-
-    Status = AcpiGetObjectInfo (Handle, &ObjInfo);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    ParamObjects.Pointer = NULL;
-    ParamObjects.Count   = 0;
-
-    if (ObjInfo->Type == ACPI_TYPE_METHOD)
-    {
-        /* Are there arguments to the method? */
-
-        if (Info->Args && Info->Args[0])
-        {
-            for (i = 0; Info->Args[i] && i < ACPI_METHOD_NUM_ARGS; i++)
-            {
-                Params[i].Type          = ACPI_TYPE_INTEGER;
-                Params[i].Integer.Value = ACPI_STRTOUL (Info->Args[i], NULL, 16);
-            }
-
-            ParamObjects.Pointer = Params;
-            ParamObjects.Count   = i;
-        }
-        else
-        {
-            /* Setup default parameters */
-
-            for (i = 0; i < ObjInfo->ParamCount; i++)
-            {
-                switch (i)
-                {
-                case 0:
-
-                    Params[0].Type           = ACPI_TYPE_INTEGER;
-                    Params[0].Integer.Value  = 0x01020304;
-                    break;
-
-                case 1:
-
-                    Params[1].Type           = ACPI_TYPE_STRING;
-                    Params[1].String.Length  = 12;
-                    Params[1].String.Pointer = "AML Debugger";
-                    break;
-
-                default:
-
-                    Params[i].Type           = ACPI_TYPE_INTEGER;
-                    Params[i].Integer.Value  = i * (ACPI_INTEGER) 0x1000;
-                    break;
-                }
-            }
-
-            ParamObjects.Pointer     = Params;
-            ParamObjects.Count       = ObjInfo->ParamCount;
-        }
-    }
-
-    ACPI_FREE (ObjInfo);
-
-    /* Prepare for a return object of arbitrary size */
-
-    ReturnObj->Pointer = AcpiGbl_DbBuffer;
-    ReturnObj->Length  = ACPI_DEBUG_BUFFER_SIZE;
-
-    /* Do the actual method execution */
-
-    AcpiGbl_MethodExecuting = TRUE;
-    Status = AcpiEvaluateObject (NULL,
-                Info->Pathname, &ParamObjects, ReturnObj);
-
-    AcpiGbl_CmSingleStep = FALSE;
-    AcpiGbl_MethodExecuting = FALSE;
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbExecuteSetup
- *
- * PARAMETERS:  Info            - Valid method info
- *
- * RETURN:      None
- *
- * DESCRIPTION: Setup info segment prior to method execution
- *
- ******************************************************************************/
-
-static void
-AcpiDbExecuteSetup (
-    ACPI_DB_METHOD_INFO     *Info)
-{
-
-    /* Catenate the current scope to the supplied name */
-
-    Info->Pathname[0] = 0;
-    if ((Info->Name[0] != '\\') &&
-        (Info->Name[0] != '/'))
-    {
-        ACPI_STRCAT (Info->Pathname, AcpiGbl_DbScopeBuf);
-    }
-
-    ACPI_STRCAT (Info->Pathname, Info->Name);
-    AcpiDbPrepNamestring (Info->Pathname);
-
-    AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
-    AcpiOsPrintf ("Executing %s\n", Info->Pathname);
-
-    if (Info->Flags & EX_SINGLE_STEP)
-    {
-        AcpiGbl_CmSingleStep = TRUE;
-        AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-    }
-
-    else
-    {
-        /* No single step, allow redirection to a file */
-
-        AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
-    }
-}
-
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-UINT32
-AcpiDbGetCacheInfo (
-    ACPI_MEMORY_LIST        *Cache)
-{
-
-    return (Cache->TotalAllocated - Cache->TotalFreed - Cache->CurrentDepth);
-}
-#endif
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbGetOutstandingAllocations
- *
- * PARAMETERS:  None
- *
- * RETURN:      Current global allocation count minus cache entries
- *
- * DESCRIPTION: Determine the current number of "outstanding" allocations --
- *              those allocations that have not been freed and also are not
- *              in one of the various object caches.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDbGetOutstandingAllocations (
-    void)
-{
-    UINT32                  Outstanding = 0;
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
-    Outstanding += AcpiDbGetCacheInfo (AcpiGbl_StateCache);
-    Outstanding += AcpiDbGetCacheInfo (AcpiGbl_PsNodeCache);
-    Outstanding += AcpiDbGetCacheInfo (AcpiGbl_PsNodeExtCache);
-    Outstanding += AcpiDbGetCacheInfo (AcpiGbl_OperandCache);
-#endif
-
-    return (Outstanding);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbExecutionWalk
- *
- * PARAMETERS:  WALK_CALLBACK
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute a control method.  Name is relative to the current
- *              scope.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbExecutionWalk (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-    ACPI_BUFFER             ReturnObj;
-    ACPI_STATUS             Status;
-
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (ObjDesc->Method.ParamCount)
-    {
-        return (AE_OK);
-    }
-
-    ReturnObj.Pointer = NULL;
-    ReturnObj.Length = ACPI_ALLOCATE_BUFFER;
-
-    AcpiNsPrintNodePathname (Node, "Execute");
-
-    /* Do the actual method execution */
-
-    AcpiOsPrintf ("\n");
-    AcpiGbl_MethodExecuting = TRUE;
-
-    Status = AcpiEvaluateObject (Node, NULL, NULL, &ReturnObj);
-
-    AcpiOsPrintf ("[%4.4s] returned %s\n", AcpiUtGetNodeName (Node),
-            AcpiFormatException (Status));
-    AcpiGbl_MethodExecuting = FALSE;
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbExecute
- *
- * PARAMETERS:  Name                - Name of method to execute
- *              Args                - Parameters to the method
- *              Flags               - single step/no single step
- *
- * RETURN:      None
- *
- * DESCRIPTION: Execute a control method.  Name is relative to the current
- *              scope.
- *
- ******************************************************************************/
-
-void
-AcpiDbExecute (
-    char                    *Name,
-    char                    **Args,
-    UINT32                  Flags)
-{
-    ACPI_STATUS             Status;
-    ACPI_BUFFER             ReturnObj;
-    char                    *NameString;
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-    UINT32                  PreviousAllocations;
-    UINT32                  Allocations;
-
-
-    /* Memory allocation tracking */
-
-    PreviousAllocations = AcpiDbGetOutstandingAllocations ();
-#endif
-
-    if (*Name == '*')
-    {
-        (void) AcpiWalkNamespace (ACPI_TYPE_METHOD, ACPI_ROOT_OBJECT,
-                    ACPI_UINT32_MAX, AcpiDbExecutionWalk, NULL, NULL, NULL);
-        return;
-    }
-    else
-    {
-        NameString = ACPI_ALLOCATE (ACPI_STRLEN (Name) + 1);
-        if (!NameString)
-        {
-            return;
-        }
-
-        ACPI_MEMSET (&AcpiGbl_DbMethodInfo, 0, sizeof (ACPI_DB_METHOD_INFO));
-
-        ACPI_STRCPY (NameString, Name);
-        AcpiUtStrupr (NameString);
-        AcpiGbl_DbMethodInfo.Name = NameString;
-        AcpiGbl_DbMethodInfo.Args = Args;
-        AcpiGbl_DbMethodInfo.Flags = Flags;
-
-        ReturnObj.Pointer = NULL;
-        ReturnObj.Length = ACPI_ALLOCATE_BUFFER;
-
-        AcpiDbExecuteSetup (&AcpiGbl_DbMethodInfo);
-        Status = AcpiDbExecuteMethod (&AcpiGbl_DbMethodInfo, &ReturnObj);
-        ACPI_FREE (NameString);
-    }
-
-    /*
-     * Allow any handlers in separate threads to complete.
-     * (Such as Notify handlers invoked from AML executed above).
-     */
-    AcpiOsSleep ((ACPI_INTEGER) 10);
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-
-    /* Memory allocation tracking */
-
-    Allocations = AcpiDbGetOutstandingAllocations () - PreviousAllocations;
-
-    AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
-
-    if (Allocations > 0)
-    {
-        AcpiOsPrintf ("Outstanding: 0x%X allocations after execution\n",
-                        Allocations);
-    }
-#endif
-
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Execution of %s failed with status %s\n",
-            AcpiGbl_DbMethodInfo.Pathname, AcpiFormatException (Status));
-    }
-    else
-    {
-        /* Display a return object, if any */
-
-        if (ReturnObj.Length)
-        {
-            AcpiOsPrintf ("Execution of %s returned object %p Buflen %X\n",
-                AcpiGbl_DbMethodInfo.Pathname, ReturnObj.Pointer,
-                (UINT32) ReturnObj.Length);
-            AcpiDbDumpExternalObject (ReturnObj.Pointer, 1);
-        }
-        else
-        {
-            AcpiOsPrintf ("No return object from execution of %s\n",
-                AcpiGbl_DbMethodInfo.Pathname);
-        }
-    }
-
-    AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbMethodThread
- *
- * PARAMETERS:  Context             - Execution info segment
- *
- * RETURN:      None
- *
- * DESCRIPTION: Debugger execute thread.  Waits for a command line, then
- *              simply dispatches it.
- *
- ******************************************************************************/
-
-static void ACPI_SYSTEM_XFACE
-AcpiDbMethodThread (
-    void                    *Context)
-{
-    ACPI_STATUS             Status;
-    ACPI_DB_METHOD_INFO     *Info = Context;
-    ACPI_DB_METHOD_INFO     LocalInfo;
-    UINT32                  i;
-    UINT8                   Allow;
-    ACPI_BUFFER             ReturnObj;
-
-
-    /*
-     * AcpiGbl_DbMethodInfo.Arguments will be passed as method arguments.
-     * Prevent AcpiGbl_DbMethodInfo from being modified by multiple threads
-     * concurrently.
-     *
-     * Note: The arguments we are passing are used by the ASL test suite
-     * (aslts). Do not change them without updating the tests.
-     */
-    (void) AcpiOsWaitSemaphore (Info->InfoGate, 1, ACPI_WAIT_FOREVER);
-
-    if (Info->InitArgs)
-    {
-        AcpiDbUInt32ToHexString (Info->NumCreated, Info->IndexOfThreadStr);
-        AcpiDbUInt32ToHexString (ACPI_TO_INTEGER (AcpiOsGetThreadId ()),
-            Info->IdOfThreadStr);
-    }
-
-    if (Info->Threads && (Info->NumCreated < Info->NumThreads))
-    {
-        Info->Threads[Info->NumCreated++] =
-            ACPI_TO_INTEGER (AcpiOsGetThreadId());
-    }
-
-    LocalInfo = *Info;
-    LocalInfo.Args = LocalInfo.Arguments;
-    LocalInfo.Arguments[0] = LocalInfo.NumThreadsStr;
-    LocalInfo.Arguments[1] = LocalInfo.IdOfThreadStr;
-    LocalInfo.Arguments[2] = LocalInfo.IndexOfThreadStr;
-    LocalInfo.Arguments[3] = NULL;
-
-    (void) AcpiOsSignalSemaphore (Info->InfoGate, 1);
-
-    for (i = 0; i < Info->NumLoops; i++)
-    {
-        Status = AcpiDbExecuteMethod (&LocalInfo, &ReturnObj);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf ("%s During execution of %s at iteration %X\n",
-                AcpiFormatException (Status), Info->Pathname, i);
-            if (Status == AE_ABORT_METHOD)
-            {
-                break;
-            }
-        }
-
-#if 0
-        if ((i % 100) == 0)
-        {
-            AcpiOsPrintf ("%d executions, Thread 0x%x\n", i, AcpiOsGetThreadId ());
-        }
-
-        if (ReturnObj.Length)
-        {
-            AcpiOsPrintf ("Execution of %s returned object %p Buflen %X\n",
-                Info->Pathname, ReturnObj.Pointer, (UINT32) ReturnObj.Length);
-            AcpiDbDumpExternalObject (ReturnObj.Pointer, 1);
-        }
-#endif
-    }
-
-    /* Signal our completion */
-
-    Allow = 0;
-    (void) AcpiOsWaitSemaphore (Info->ThreadCompleteGate, 1, ACPI_WAIT_FOREVER);
-    Info->NumCompleted++;
-
-    if (Info->NumCompleted == Info->NumThreads)
-    {
-        /* Do signal for main thread once only */
-        Allow = 1;
-    }
-
-    (void) AcpiOsSignalSemaphore (Info->ThreadCompleteGate, 1);
-
-    if (Allow)
-    {
-        Status = AcpiOsSignalSemaphore (Info->MainThreadGate, 1);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf ("Could not signal debugger thread sync semaphore, %s\n",
-                AcpiFormatException (Status));
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbCreateExecutionThreads
- *
- * PARAMETERS:  NumThreadsArg           - Number of threads to create
- *              NumLoopsArg             - Loop count for the thread(s)
- *              MethodNameArg           - Control method to execute
- *
- * RETURN:      None
- *
- * DESCRIPTION: Create threads to execute method(s)
- *
- ******************************************************************************/
-
-void
-AcpiDbCreateExecutionThreads (
-    char                    *NumThreadsArg,
-    char                    *NumLoopsArg,
-    char                    *MethodNameArg)
-{
-    ACPI_STATUS             Status;
-    UINT32                  NumThreads;
-    UINT32                  NumLoops;
-    UINT32                  i;
-    UINT32                  Size;
-    ACPI_MUTEX              MainThreadGate;
-    ACPI_MUTEX              ThreadCompleteGate;
-    ACPI_MUTEX              InfoGate;
-
-
-    /* Get the arguments */
-
-    NumThreads = ACPI_STRTOUL (NumThreadsArg, NULL, 0);
-    NumLoops   = ACPI_STRTOUL (NumLoopsArg, NULL, 0);
-
-    if (!NumThreads || !NumLoops)
-    {
-        AcpiOsPrintf ("Bad argument: Threads %X, Loops %X\n",
-            NumThreads, NumLoops);
-        return;
-    }
-
-    /*
-     * Create the semaphore for synchronization of
-     * the created threads with the main thread.
-     */
-    Status = AcpiOsCreateSemaphore (1, 0, &MainThreadGate);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not create semaphore for synchronization with the main thread, %s\n",
-            AcpiFormatException (Status));
-        return;
-    }
-
-    /*
-     * Create the semaphore for synchronization
-     * between the created threads.
-     */
-    Status = AcpiOsCreateSemaphore (1, 1, &ThreadCompleteGate);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not create semaphore for synchronization between the created threads, %s\n",
-            AcpiFormatException (Status));
-        (void) AcpiOsDeleteSemaphore (MainThreadGate);
-        return;
-    }
-
-    Status = AcpiOsCreateSemaphore (1, 1, &InfoGate);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not create semaphore for synchronization of AcpiGbl_DbMethodInfo, %s\n",
-            AcpiFormatException (Status));
-        (void) AcpiOsDeleteSemaphore (ThreadCompleteGate);
-        (void) AcpiOsDeleteSemaphore (MainThreadGate);
-        return;
-    }
-
-    ACPI_MEMSET (&AcpiGbl_DbMethodInfo, 0, sizeof (ACPI_DB_METHOD_INFO));
-
-    /* Array to store IDs of threads */
-
-    AcpiGbl_DbMethodInfo.NumThreads = NumThreads;
-    Size = 4 * AcpiGbl_DbMethodInfo.NumThreads;
-    AcpiGbl_DbMethodInfo.Threads = (UINT32 *) AcpiOsAllocate (Size);
-    if (AcpiGbl_DbMethodInfo.Threads == NULL)
-    {
-        AcpiOsPrintf ("No memory for thread IDs array\n");
-        (void) AcpiOsDeleteSemaphore (MainThreadGate);
-        (void) AcpiOsDeleteSemaphore (ThreadCompleteGate);
-        (void) AcpiOsDeleteSemaphore (InfoGate);
-        return;
-    }
-    ACPI_MEMSET (AcpiGbl_DbMethodInfo.Threads, 0, Size);
-
-    /* Setup the context to be passed to each thread */
-
-    AcpiGbl_DbMethodInfo.Name = MethodNameArg;
-    AcpiGbl_DbMethodInfo.Flags = 0;
-    AcpiGbl_DbMethodInfo.NumLoops = NumLoops;
-    AcpiGbl_DbMethodInfo.MainThreadGate = MainThreadGate;
-    AcpiGbl_DbMethodInfo.ThreadCompleteGate = ThreadCompleteGate;
-    AcpiGbl_DbMethodInfo.InfoGate = InfoGate;
-
-    /* Init arguments to be passed to method */
-
-    AcpiGbl_DbMethodInfo.InitArgs = 1;
-    AcpiGbl_DbMethodInfo.Args = AcpiGbl_DbMethodInfo.Arguments;
-    AcpiGbl_DbMethodInfo.Arguments[0] = AcpiGbl_DbMethodInfo.NumThreadsStr;
-    AcpiGbl_DbMethodInfo.Arguments[1] = AcpiGbl_DbMethodInfo.IdOfThreadStr;
-    AcpiGbl_DbMethodInfo.Arguments[2] = AcpiGbl_DbMethodInfo.IndexOfThreadStr;
-    AcpiGbl_DbMethodInfo.Arguments[3] = NULL;
-    AcpiDbUInt32ToHexString (NumThreads, AcpiGbl_DbMethodInfo.NumThreadsStr);
-
-    AcpiDbExecuteSetup (&AcpiGbl_DbMethodInfo);
-
-    /* Create the threads */
-
-    AcpiOsPrintf ("Creating %X threads to execute %X times each\n",
-        NumThreads, NumLoops);
-
-    for (i = 0; i < (NumThreads); i++)
-    {
-        Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, AcpiDbMethodThread,
-            &AcpiGbl_DbMethodInfo);
-        if (ACPI_FAILURE (Status))
-        {
-            break;
-        }
-    }
-
-    /* Wait for all threads to complete */
-
-    (void) AcpiOsWaitSemaphore (MainThreadGate, 1, ACPI_WAIT_FOREVER);
-
-    AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
-    AcpiOsPrintf ("All threads (%X) have completed\n", NumThreads);
-    AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-
-    /* Cleanup and exit */
-
-    (void) AcpiOsDeleteSemaphore (MainThreadGate);
-    (void) AcpiOsDeleteSemaphore (ThreadCompleteGate);
-    (void) AcpiOsDeleteSemaphore (InfoGate);
-
-    AcpiOsFree (AcpiGbl_DbMethodInfo.Threads);
-    AcpiGbl_DbMethodInfo.Threads = NULL;
-}
-
-#endif /* ACPI_DEBUGGER */
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbfileio.c b/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbfileio.c
deleted file mode 100644 (file)
index d52a72c..0000000
+++ /dev/null
@@ -1,652 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbfileio - Debugger file I/O commands. These can't usually
- *              be used when running the debugger in Ring 0 (Kernel mode)
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdebug.h"
-
-#ifdef ACPI_APPLICATION
-#include "actables.h"
-#endif
-
-#if (defined ACPI_DEBUGGER || defined ACPI_DISASSEMBLER)
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbfileio")
-
-/*
- * NOTE: this is here for lack of a better place. It is used in all
- * flavors of the debugger, need LCD file
- */
-#ifdef ACPI_APPLICATION
-#include <stdio.h>
-FILE                        *AcpiGbl_DebugFile = NULL;
-#endif
-
-
-#ifdef ACPI_DEBUGGER
-
-/* Local prototypes */
-
-#ifdef ACPI_APPLICATION
-
-static ACPI_STATUS
-AcpiDbCheckTextModeCorruption (
-    UINT8                   *Table,
-    UINT32                  TableLength,
-    UINT32                  FileLength);
-
-static ACPI_STATUS
-AeLocalLoadTable (
-    ACPI_TABLE_HEADER       *TablePtr);
-#endif
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbCloseDebugFile
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: If open, close the current debug output file
- *
- ******************************************************************************/
-
-void
-AcpiDbCloseDebugFile (
-    void)
-{
-
-#ifdef ACPI_APPLICATION
-
-    if (AcpiGbl_DebugFile)
-    {
-       fclose (AcpiGbl_DebugFile);
-       AcpiGbl_DebugFile = NULL;
-       AcpiGbl_DbOutputToFile = FALSE;
-       AcpiOsPrintf ("Debug output file %s closed\n", AcpiGbl_DbDebugFilename);
-    }
-#endif
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbOpenDebugFile
- *
- * PARAMETERS:  Name                - Filename to open
- *
- * RETURN:      None
- *
- * DESCRIPTION: Open a file where debug output will be directed.
- *
- ******************************************************************************/
-
-void
-AcpiDbOpenDebugFile (
-    char                    *Name)
-{
-
-#ifdef ACPI_APPLICATION
-
-    AcpiDbCloseDebugFile ();
-    AcpiGbl_DebugFile = fopen (Name, "w+");
-    if (AcpiGbl_DebugFile)
-    {
-        AcpiOsPrintf ("Debug output file %s opened\n", Name);
-        ACPI_STRCPY (AcpiGbl_DbDebugFilename, Name);
-        AcpiGbl_DbOutputToFile = TRUE;
-    }
-    else
-    {
-        AcpiOsPrintf ("Could not open debug file %s\n", Name);
-    }
-
-#endif
-}
-#endif
-
-
-#ifdef ACPI_APPLICATION
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbCheckTextModeCorruption
- *
- * PARAMETERS:  Table           - Table buffer
- *              TableLength     - Length of table from the table header
- *              FileLength      - Length of the file that contains the table
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Check table for text mode file corruption where all linefeed
- *              characters (LF) have been replaced by carriage return linefeed
- *              pairs (CR/LF).
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbCheckTextModeCorruption (
-    UINT8                   *Table,
-    UINT32                  TableLength,
-    UINT32                  FileLength)
-{
-    UINT32                  i;
-    UINT32                  Pairs = 0;
-
-
-    if (TableLength != FileLength)
-    {
-        ACPI_WARNING ((AE_INFO,
-            "File length (0x%X) is not the same as the table length (0x%X)",
-            FileLength, TableLength));
-    }
-
-    /* Scan entire table to determine if each LF has been prefixed with a CR */
-
-    for (i = 1; i < FileLength; i++)
-    {
-        if (Table[i] == 0x0A)
-        {
-            if (Table[i - 1] != 0x0D)
-            {
-                /* The LF does not have a preceding CR, table not corrupted */
-
-                return (AE_OK);
-            }
-            else
-            {
-                /* Found a CR/LF pair */
-
-                Pairs++;
-            }
-            i++;
-        }
-    }
-
-    if (!Pairs)
-    {
-        return (AE_OK);
-    }
-
-    /*
-     * Entire table scanned, each CR is part of a CR/LF pair --
-     * meaning that the table was treated as a text file somewhere.
-     *
-     * NOTE: We can't "fix" the table, because any existing CR/LF pairs in the
-     * original table are left untouched by the text conversion process --
-     * meaning that we cannot simply replace CR/LF pairs with LFs.
-     */
-    AcpiOsPrintf ("Table has been corrupted by text mode conversion\n");
-    AcpiOsPrintf ("All LFs (%d) were changed to CR/LF pairs\n", Pairs);
-    AcpiOsPrintf ("Table cannot be repaired!\n");
-    return (AE_BAD_VALUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbReadTable
- *
- * PARAMETERS:  fp              - File that contains table
- *              Table           - Return value, buffer with table
- *              TableLength     - Return value, length of table
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load the DSDT from the file pointer
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbReadTable (
-    FILE                    *fp,
-    ACPI_TABLE_HEADER       **Table,
-    UINT32                  *TableLength)
-{
-    ACPI_TABLE_HEADER       TableHeader;
-    UINT32                  Actual;
-    ACPI_STATUS             Status;
-    UINT32                  FileSize;
-    BOOLEAN                 StandardHeader = TRUE;
-
-
-    /* Get the file size */
-
-    fseek (fp, 0, SEEK_END);
-    FileSize = (UINT32) ftell (fp);
-    fseek (fp, 0, SEEK_SET);
-
-    if (FileSize < 4)
-    {
-        return (AE_BAD_HEADER);
-    }
-
-    /* Read the signature */
-
-    if (fread (&TableHeader, 1, 4, fp) != 4)
-    {
-        AcpiOsPrintf ("Could not read the table signature\n");
-        return (AE_BAD_HEADER);
-    }
-
-    fseek (fp, 0, SEEK_SET);
-
-    /* The RSDT and FACS tables do not have standard ACPI headers */
-
-    if (ACPI_COMPARE_NAME (TableHeader.Signature, "RSD ") ||
-        ACPI_COMPARE_NAME (TableHeader.Signature, "FACS"))
-    {
-        *TableLength = FileSize;
-        StandardHeader = FALSE;
-    }
-    else
-    {
-        /* Read the table header */
-
-        if (fread (&TableHeader, 1, sizeof (TableHeader), fp) !=
-                sizeof (ACPI_TABLE_HEADER))
-        {
-            AcpiOsPrintf ("Could not read the table header\n");
-            return (AE_BAD_HEADER);
-        }
-
-#if 0
-        /* Validate the table header/length */
-
-        Status = AcpiTbValidateTableHeader (&TableHeader);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf ("Table header is invalid!\n");
-            return (Status);
-        }
-#endif
-
-        /* File size must be at least as long as the Header-specified length */
-
-        if (TableHeader.Length > FileSize)
-        {
-            AcpiOsPrintf (
-                "TableHeader length [0x%X] greater than the input file size [0x%X]\n",
-                TableHeader.Length, FileSize);
-            return (AE_BAD_HEADER);
-        }
-
-#ifdef ACPI_OBSOLETE_CODE
-        /* We only support a limited number of table types */
-
-        if (ACPI_STRNCMP ((char *) TableHeader.Signature, DSDT_SIG, 4) &&
-            ACPI_STRNCMP ((char *) TableHeader.Signature, PSDT_SIG, 4) &&
-            ACPI_STRNCMP ((char *) TableHeader.Signature, SSDT_SIG, 4))
-        {
-            AcpiOsPrintf ("Table signature [%4.4s] is invalid or not supported\n",
-                (char *) TableHeader.Signature);
-            ACPI_DUMP_BUFFER (&TableHeader, sizeof (ACPI_TABLE_HEADER));
-            return (AE_ERROR);
-        }
-#endif
-
-        *TableLength = TableHeader.Length;
-    }
-
-    /* Allocate a buffer for the table */
-
-    *Table = AcpiOsAllocate ((size_t) FileSize);
-    if (!*Table)
-    {
-        AcpiOsPrintf (
-            "Could not allocate memory for ACPI table %4.4s (size=0x%X)\n",
-            TableHeader.Signature, *TableLength);
-        return (AE_NO_MEMORY);
-    }
-
-    /* Get the rest of the table */
-
-    fseek (fp, 0, SEEK_SET);
-    Actual = fread (*Table, 1, (size_t) FileSize, fp);
-    if (Actual == FileSize)
-    {
-        if (StandardHeader)
-        {
-            /* Now validate the checksum */
-
-            Status = AcpiTbChecksum ((void *) *Table,
-                        ACPI_CAST_PTR (ACPI_TABLE_HEADER, *Table)->Length);
-
-            if (Status == AE_BAD_CHECKSUM)
-            {
-                Status = AcpiDbCheckTextModeCorruption ((UINT8 *) *Table,
-                            FileSize, (*Table)->Length);
-                return (Status);
-            }
-        }
-        return (AE_OK);
-    }
-
-    if (Actual > 0)
-    {
-        AcpiOsPrintf ("Warning - reading table, asked for %X got %X\n",
-            FileSize, Actual);
-        return (AE_OK);
-    }
-
-    AcpiOsPrintf ("Error - could not read the table file\n");
-    AcpiOsFree (*Table);
-    *Table = NULL;
-    *TableLength = 0;
-
-    return (AE_ERROR);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AeLocalLoadTable
- *
- * PARAMETERS:  Table           - pointer to a buffer containing the entire
- *                                table to be loaded
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to load a table from the caller's
- *              buffer. The buffer must contain an entire ACPI Table including
- *              a valid header. The header fields will be verified, and if it
- *              is determined that the table is invalid, the call will fail.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AeLocalLoadTable (
-    ACPI_TABLE_HEADER       *Table)
-{
-    ACPI_STATUS             Status = AE_OK;
-/*    ACPI_TABLE_DESC         TableInfo; */
-
-
-    ACPI_FUNCTION_TRACE (AeLocalLoadTable);
-#if 0
-
-
-    if (!Table)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    TableInfo.Pointer = Table;
-    Status = AcpiTbRecognizeTable (&TableInfo, ACPI_TABLE_ALL);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Install the new table into the local data structures */
-
-    Status = AcpiTbInstallTable (&TableInfo);
-    if (ACPI_FAILURE (Status))
-    {
-        if (Status == AE_ALREADY_EXISTS)
-        {
-            /* Table already exists, no error */
-
-            Status = AE_OK;
-        }
-
-        /* Free table allocated by AcpiTbGetTable */
-
-        AcpiTbDeleteSingleTable (&TableInfo);
-        return_ACPI_STATUS (Status);
-    }
-
-#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
-
-    Status = AcpiNsLoadTable (TableInfo.InstalledDesc, AcpiGbl_RootNode);
-    if (ACPI_FAILURE (Status))
-    {
-        /* Uninstall table and free the buffer */
-
-        AcpiTbDeleteTablesByType (ACPI_TABLE_ID_DSDT);
-        return_ACPI_STATUS (Status);
-    }
-#endif
-#endif
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbReadTableFromFile
- *
- * PARAMETERS:  Filename         - File where table is located
- *              Table            - Where a pointer to the table is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get an ACPI table from a file
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbReadTableFromFile (
-    char                    *Filename,
-    ACPI_TABLE_HEADER       **Table)
-{
-    FILE                    *fp;
-    UINT32                  TableLength;
-    ACPI_STATUS             Status;
-
-
-    /* Open the file */
-
-    fp = fopen (Filename, "rb");
-    if (!fp)
-    {
-        AcpiOsPrintf ("Could not open input file %s\n", Filename);
-        return (AE_ERROR);
-    }
-
-    /* Get the entire file */
-
-    fprintf (stderr, "Loading Acpi table from file %s\n", Filename);
-    Status = AcpiDbReadTable (fp, Table, &TableLength);
-    fclose(fp);
-
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not get table from the file\n");
-        return (Status);
-    }
-
-    return (AE_OK);
- }
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbGetTableFromFile
- *
- * PARAMETERS:  Filename        - File where table is located
- *              ReturnTable     - Where a pointer to the table is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load an ACPI table from a file
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbGetTableFromFile (
-    char                    *Filename,
-    ACPI_TABLE_HEADER       **ReturnTable)
-{
-#ifdef ACPI_APPLICATION
-    ACPI_STATUS             Status;
-    ACPI_TABLE_HEADER       *Table;
-    BOOLEAN                 IsAmlTable = TRUE;
-
-
-    Status = AcpiDbReadTableFromFile (Filename, &Table);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-#ifdef ACPI_DATA_TABLE_DISASSEMBLY
-    IsAmlTable = AcpiUtIsAmlTable (Table);
-#endif
-
-    if (IsAmlTable)
-    {
-        /* Attempt to recognize and install the table */
-
-        Status = AeLocalLoadTable (Table);
-        if (ACPI_FAILURE (Status))
-        {
-            if (Status == AE_ALREADY_EXISTS)
-            {
-                AcpiOsPrintf ("Table %4.4s is already installed\n",
-                    Table->Signature);
-            }
-            else
-            {
-                AcpiOsPrintf ("Could not install table, %s\n",
-                    AcpiFormatException (Status));
-            }
-
-            return (Status);
-        }
-
-        fprintf (stderr,
-            "Acpi table [%4.4s] successfully installed and loaded\n",
-            Table->Signature);
-    }
-
-    AcpiGbl_AcpiHardwarePresent = FALSE;
-    if (ReturnTable)
-    {
-        *ReturnTable = Table;
-    }
-
-
-#endif  /* ACPI_APPLICATION */
-    return (AE_OK);
-}
-
-#endif  /* ACPI_DEBUGGER */
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbhistry.c b/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbhistry.c
deleted file mode 100644 (file)
index e8e8a76..0000000
+++ /dev/null
@@ -1,292 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dbhistry - debugger HISTORY command
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdebug.h"
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbhistry")
-
-
-#define HI_NO_HISTORY       0
-#define HI_RECORD_HISTORY   1
-#define HISTORY_SIZE        20
-
-
-typedef struct HistoryInfo
-{
-    char                    Command[80];
-    UINT32                  CmdNum;
-
-} HISTORY_INFO;
-
-
-static HISTORY_INFO         AcpiGbl_HistoryBuffer[HISTORY_SIZE];
-static UINT16               AcpiGbl_LoHistory = 0;
-static UINT16               AcpiGbl_NumHistory = 0;
-static UINT16               AcpiGbl_NextHistoryIndex = 0;
-static UINT32               AcpiGbl_NextCmdNum = 1;
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbAddToHistory
- *
- * PARAMETERS:  CommandLine     - Command to add
- *
- * RETURN:      None
- *
- * DESCRIPTION: Add a command line to the history buffer.
- *
- ******************************************************************************/
-
-void
-AcpiDbAddToHistory (
-    char                    *CommandLine)
-{
-
-    /* Put command into the next available slot */
-
-    ACPI_STRCPY (AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command,
-        CommandLine);
-
-    AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].CmdNum = AcpiGbl_NextCmdNum;
-
-    /* Adjust indexes */
-
-    if ((AcpiGbl_NumHistory == HISTORY_SIZE) &&
-        (AcpiGbl_NextHistoryIndex == AcpiGbl_LoHistory))
-    {
-        AcpiGbl_LoHistory++;
-        if (AcpiGbl_LoHistory >= HISTORY_SIZE)
-        {
-            AcpiGbl_LoHistory = 0;
-        }
-    }
-
-    AcpiGbl_NextHistoryIndex++;
-    if (AcpiGbl_NextHistoryIndex >= HISTORY_SIZE)
-    {
-        AcpiGbl_NextHistoryIndex = 0;
-    }
-
-    AcpiGbl_NextCmdNum++;
-    if (AcpiGbl_NumHistory < HISTORY_SIZE)
-    {
-        AcpiGbl_NumHistory++;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayHistory
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display the contents of the history buffer
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayHistory (
-    void)
-{
-    UINT32                  i;
-    UINT16                  HistoryIndex;
-
-
-    HistoryIndex = AcpiGbl_LoHistory;
-
-    /* Dump entire history buffer */
-
-    for (i = 0; i < AcpiGbl_NumHistory; i++)
-    {
-        AcpiOsPrintf ("%ld  %s\n", AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum,
-                                   AcpiGbl_HistoryBuffer[HistoryIndex].Command);
-
-        HistoryIndex++;
-        if (HistoryIndex >= HISTORY_SIZE)
-        {
-            HistoryIndex = 0;
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbGetFromHistory
- *
- * PARAMETERS:  CommandNumArg           - String containing the number of the
- *                                        command to be retrieved
- *
- * RETURN:      Pointer to the retrieved command. Null on error.
- *
- * DESCRIPTION: Get a command from the history buffer
- *
- ******************************************************************************/
-
-char *
-AcpiDbGetFromHistory (
-    char                    *CommandNumArg)
-{
-    UINT32                  i;
-    UINT16                  HistoryIndex;
-    UINT32                  CmdNum;
-
-
-    if (CommandNumArg == NULL)
-    {
-        CmdNum = AcpiGbl_NextCmdNum - 1;
-    }
-
-    else
-    {
-        CmdNum = ACPI_STRTOUL (CommandNumArg, NULL, 0);
-    }
-
-    /* Search history buffer */
-
-    HistoryIndex = AcpiGbl_LoHistory;
-    for (i = 0; i < AcpiGbl_NumHistory; i++)
-    {
-        if (AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum == CmdNum)
-        {
-            /* Found the commnad, return it */
-
-            return (AcpiGbl_HistoryBuffer[HistoryIndex].Command);
-        }
-
-
-        HistoryIndex++;
-        if (HistoryIndex >= HISTORY_SIZE)
-        {
-            HistoryIndex = 0;
-        }
-    }
-
-    AcpiOsPrintf ("Invalid history number: %d\n", HistoryIndex);
-    return (NULL);
-}
-
-#endif /* ACPI_DEBUGGER */
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbinput.c b/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbinput.c
deleted file mode 100644 (file)
index 74b2dca..0000000
+++ /dev/null
@@ -1,1085 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbinput - user front-end to the AML debugger
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdebug.h"
-
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbinput")
-
-/* Local prototypes */
-
-static char *
-AcpiDbGetNextToken (
-    char                    *String,
-    char                    **Next);
-
-static UINT32
-AcpiDbGetLine (
-    char                    *InputBuffer);
-
-static UINT32
-AcpiDbMatchCommand (
-    char                    *UserCommand);
-
-static void
-AcpiDbSingleThread (
-    void);
-
-static void
-AcpiDbDisplayHelp (
-    char                    *HelpType);
-
-
-/*
- * Top-level debugger commands.
- *
- * This list of commands must match the string table below it
- */
-enum AcpiExDebuggerCommands
-{
-    CMD_NOT_FOUND = 0,
-    CMD_NULL,
-    CMD_ALLOCATIONS,
-    CMD_ARGS,
-    CMD_ARGUMENTS,
-    CMD_BATCH,
-    CMD_BREAKPOINT,
-    CMD_BUSINFO,
-    CMD_CALL,
-    CMD_CLOSE,
-    CMD_DEBUG,
-    CMD_DISASSEMBLE,
-    CMD_DUMP,
-    CMD_ENABLEACPI,
-    CMD_EVENT,
-    CMD_EXECUTE,
-    CMD_EXIT,
-    CMD_FIND,
-    CMD_GO,
-    CMD_GPE,
-    CMD_GPES,
-    CMD_HELP,
-    CMD_HELP2,
-    CMD_HISTORY,
-    CMD_HISTORY_EXE,
-    CMD_HISTORY_LAST,
-    CMD_INFORMATION,
-    CMD_INTEGRITY,
-    CMD_INTO,
-    CMD_LEVEL,
-    CMD_LIST,
-    CMD_LOAD,
-    CMD_LOCALS,
-    CMD_LOCKS,
-    CMD_METHODS,
-    CMD_NAMESPACE,
-    CMD_NOTIFY,
-    CMD_OBJECT,
-    CMD_OPEN,
-    CMD_OWNER,
-    CMD_PREDEFINED,
-    CMD_PREFIX,
-    CMD_QUIT,
-    CMD_REFERENCES,
-    CMD_RESOURCES,
-    CMD_RESULTS,
-    CMD_SET,
-    CMD_SLEEP,
-    CMD_STATS,
-    CMD_STOP,
-    CMD_TABLES,
-    CMD_TERMINATE,
-    CMD_THREADS,
-    CMD_TRACE,
-    CMD_TREE,
-    CMD_TYPE,
-    CMD_UNLOAD
-};
-
-#define CMD_FIRST_VALID     2
-
-
-/* Second parameter is the required argument count */
-
-static const COMMAND_INFO       AcpiGbl_DbCommands[] =
-{
-    {"<NOT FOUND>",  0},
-    {"<NULL>",       0},
-    {"ALLOCATIONS",  0},
-    {"ARGS",         0},
-    {"ARGUMENTS",    0},
-    {"BATCH",        0},
-    {"BREAKPOINT",   1},
-    {"BUSINFO",      0},
-    {"CALL",         0},
-    {"CLOSE",        0},
-    {"DEBUG",        1},
-    {"DISASSEMBLE",  1},
-    {"DUMP",         1},
-    {"ENABLEACPI",   0},
-    {"EVENT",        1},
-    {"EXECUTE",      1},
-    {"EXIT",         0},
-    {"FIND",         1},
-    {"GO",           0},
-    {"GPE",          2},
-    {"GPES",         0},
-    {"HELP",         0},
-    {"?",            0},
-    {"HISTORY",      0},
-    {"!",            1},
-    {"!!",           0},
-    {"INFORMATION",  0},
-    {"INTEGRITY",    0},
-    {"INTO",         0},
-    {"LEVEL",        0},
-    {"LIST",         0},
-    {"LOAD",         1},
-    {"LOCALS",       0},
-    {"LOCKS",        0},
-    {"METHODS",      0},
-    {"NAMESPACE",    0},
-    {"NOTIFY",       2},
-    {"OBJECT",       1},
-    {"OPEN",         1},
-    {"OWNER",        1},
-    {"PREDEFINED",   0},
-    {"PREFIX",       0},
-    {"QUIT",         0},
-    {"REFERENCES",   1},
-    {"RESOURCES",    1},
-    {"RESULTS",      0},
-    {"SET",          3},
-    {"SLEEP",        1},
-    {"STATS",        0},
-    {"STOP",         0},
-    {"TABLES",       0},
-    {"TERMINATE",    0},
-    {"THREADS",      3},
-    {"TRACE",        1},
-    {"TREE",         0},
-    {"TYPE",         1},
-    {"UNLOAD",       1},
-    {NULL,           0}
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayHelp
- *
- * PARAMETERS:  HelpType        - Subcommand (optional)
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print a usage message.
- *
- ******************************************************************************/
-
-static void
-AcpiDbDisplayHelp (
-    char                    *HelpType)
-{
-
-    AcpiUtStrupr (HelpType);
-
-    /* No parameter, just give the overview */
-
-    if (!HelpType)
-    {
-        AcpiOsPrintf ("ACPI CA Debugger Commands\n\n");
-        AcpiOsPrintf ("The following classes of commands are available.  Help is available for\n");
-        AcpiOsPrintf ("each class by entering \"Help <ClassName>\"\n\n");
-        AcpiOsPrintf ("    [GENERAL]       General-Purpose Commands\n");
-        AcpiOsPrintf ("    [NAMESPACE]     Namespace Access Commands\n");
-        AcpiOsPrintf ("    [METHOD]        Control Method Execution Commands\n");
-        AcpiOsPrintf ("    [STATISTICS]    Statistical Information\n");
-        AcpiOsPrintf ("    [FILE]          File I/O Commands\n");
-        return;
-    }
-
-    /*
-     * Parameter is the command class
-     *
-     * The idea here is to keep each class of commands smaller than a screenful
-     */
-    switch (HelpType[0])
-    {
-    case 'G':
-        AcpiOsPrintf ("\nGeneral-Purpose Commands\n\n");
-        AcpiOsPrintf ("Allocations                         Display list of current memory allocations\n");
-        AcpiOsPrintf ("Dump <Address>|<Namepath>\n");
-        AcpiOsPrintf ("     [Byte|Word|Dword|Qword]        Display ACPI objects or memory\n");
-        AcpiOsPrintf ("EnableAcpi                          Enable ACPI (hardware) mode\n");
-        AcpiOsPrintf ("Help                                This help screen\n");
-        AcpiOsPrintf ("History                             Display command history buffer\n");
-        AcpiOsPrintf ("Level [<DebugLevel>] [console]      Get/Set debug level for file or console\n");
-        AcpiOsPrintf ("Locks                               Current status of internal mutexes\n");
-        AcpiOsPrintf ("Quit or Exit                        Exit this command\n");
-        AcpiOsPrintf ("Stats [Allocations|Memory|Misc\n");
-        AcpiOsPrintf ("      |Objects|Sizes|Stack|Tables]  Display namespace and memory statistics\n");
-        AcpiOsPrintf ("Tables                              Display info about loaded ACPI tables\n");
-        AcpiOsPrintf ("Unload <TableSig> [Instance]        Unload an ACPI table\n");
-        AcpiOsPrintf ("! <CommandNumber>                   Execute command from history buffer\n");
-        AcpiOsPrintf ("!!                                  Execute last command again\n");
-        return;
-
-    case 'S':
-        AcpiOsPrintf ("\nStats Subcommands\n\n");
-        AcpiOsPrintf ("Allocations                         Display list of current memory allocations\n");
-        AcpiOsPrintf ("Memory                              Dump internal memory lists\n");
-        AcpiOsPrintf ("Misc                                Namespace search and mutex stats\n");
-        AcpiOsPrintf ("Objects                             Summary of namespace objects\n");
-        AcpiOsPrintf ("Sizes                               Sizes for each of the internal objects\n");
-        AcpiOsPrintf ("Stack                               Display CPU stack usage\n");
-        AcpiOsPrintf ("Tables                              Info about current ACPI table(s)\n");
-        return;
-
-    case 'N':
-        AcpiOsPrintf ("\nNamespace Access Commands\n\n");
-        AcpiOsPrintf ("Businfo                             Display system bus info\n");
-        AcpiOsPrintf ("Disassemble <Method>                Disassemble a control method\n");
-        AcpiOsPrintf ("Event <F|G> <Value>                 Generate AcpiEvent (Fixed/GPE)\n");
-        AcpiOsPrintf ("Find <AcpiName>  (? is wildcard)    Find ACPI name(s) with wildcards\n");
-        AcpiOsPrintf ("Gpe <GpeNum> <GpeBlock>             Simulate a GPE\n");
-        AcpiOsPrintf ("Gpes                                Display info on all GPEs\n");
-        AcpiOsPrintf ("Integrity                           Validate namespace integrity\n");
-        AcpiOsPrintf ("Methods                             Display list of loaded control methods\n");
-        AcpiOsPrintf ("Namespace [Object] [Depth]          Display loaded namespace tree/subtree\n");
-        AcpiOsPrintf ("Notify <Object> <Value>             Send a notification on Object\n");
-        AcpiOsPrintf ("Objects <ObjectType>                Display all objects of the given type\n");
-        AcpiOsPrintf ("Owner <OwnerId> [Depth]             Display loaded namespace by object owner\n");
-        AcpiOsPrintf ("Predefined                          Check all predefined names\n");
-        AcpiOsPrintf ("Prefix [<NamePath>]                 Set or Get current execution prefix\n");
-        AcpiOsPrintf ("References <Addr>                   Find all references to object at addr\n");
-        AcpiOsPrintf ("Resources <Device>                  Get and display Device resources\n");
-        AcpiOsPrintf ("Set N <NamedObject> <Value>         Set value for named integer\n");
-        AcpiOsPrintf ("Sleep <SleepState>                  Simulate sleep/wake sequence\n");
-        AcpiOsPrintf ("Terminate                           Delete namespace and all internal objects\n");
-        AcpiOsPrintf ("Type <Object>                       Display object type\n");
-        return;
-
-    case 'M':
-        AcpiOsPrintf ("\nControl Method Execution Commands\n\n");
-        AcpiOsPrintf ("Arguments (or Args)                 Display method arguments\n");
-        AcpiOsPrintf ("Breakpoint <AmlOffset>              Set an AML execution breakpoint\n");
-        AcpiOsPrintf ("Call                                Run to next control method invocation\n");
-        AcpiOsPrintf ("Debug <Namepath> [Arguments]        Single Step a control method\n");
-        AcpiOsPrintf ("Execute <Namepath> [Arguments]      Execute control method\n");
-        AcpiOsPrintf ("Go                                  Allow method to run to completion\n");
-        AcpiOsPrintf ("Information                         Display info about the current method\n");
-        AcpiOsPrintf ("Into                                Step into (not over) a method call\n");
-        AcpiOsPrintf ("List [# of Aml Opcodes]             Display method ASL statements\n");
-        AcpiOsPrintf ("Locals                              Display method local variables\n");
-        AcpiOsPrintf ("Results                             Display method result stack\n");
-        AcpiOsPrintf ("Set <A|L> <#> <Value>               Set method data (Arguments/Locals)\n");
-        AcpiOsPrintf ("Stop                                Terminate control method\n");
-        AcpiOsPrintf ("Thread <Threads><Loops><NamePath>   Spawn threads to execute method(s)\n");
-        AcpiOsPrintf ("Trace <method name>                 Trace method execution\n");
-        AcpiOsPrintf ("Tree                                Display control method calling tree\n");
-        AcpiOsPrintf ("<Enter>                             Single step next AML opcode (over calls)\n");
-        return;
-
-    case 'F':
-        AcpiOsPrintf ("\nFile I/O Commands\n\n");
-        AcpiOsPrintf ("Close                               Close debug output file\n");
-        AcpiOsPrintf ("Open <Output Filename>              Open a file for debug output\n");
-        AcpiOsPrintf ("Load <Input Filename>               Load ACPI table from a file\n");
-        return;
-
-    default:
-        AcpiOsPrintf ("Unrecognized Command Class: %s\n", HelpType);
-        return;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbGetNextToken
- *
- * PARAMETERS:  String          - Command buffer
- *              Next            - Return value, end of next token
- *
- * RETURN:      Pointer to the start of the next token.
- *
- * DESCRIPTION: Command line parsing.  Get the next token on the command line
- *
- ******************************************************************************/
-
-static char *
-AcpiDbGetNextToken (
-    char                    *String,
-    char                    **Next)
-{
-    char                    *Start;
-
-
-    /* At end of buffer? */
-
-    if (!String || !(*String))
-    {
-        return (NULL);
-    }
-
-    /* Get rid of any spaces at the beginning */
-
-    if (*String == ' ')
-    {
-        while (*String && (*String == ' '))
-        {
-            String++;
-        }
-
-        if (!(*String))
-        {
-            return (NULL);
-        }
-    }
-
-    Start = String;
-
-    /* Find end of token */
-
-    while (*String && (*String != ' '))
-    {
-        String++;
-    }
-
-    if (!(*String))
-    {
-        *Next = NULL;
-    }
-    else
-    {
-        *String = 0;
-        *Next = String + 1;
-    }
-
-    return (Start);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbGetLine
- *
- * PARAMETERS:  InputBuffer         - Command line buffer
- *
- * RETURN:      Count of arguments to the command
- *
- * DESCRIPTION: Get the next command line from the user.  Gets entire line
- *              up to the next newline
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDbGetLine (
-    char                    *InputBuffer)
-{
-    UINT32                  i;
-    UINT32                  Count;
-    char                    *Next;
-    char                    *This;
-
-
-    ACPI_STRCPY (AcpiGbl_DbParsedBuf, InputBuffer);
-
-    This = AcpiGbl_DbParsedBuf;
-    for (i = 0; i < ACPI_DEBUGGER_MAX_ARGS; i++)
-    {
-        AcpiGbl_DbArgs[i] = AcpiDbGetNextToken (This, &Next);
-        if (!AcpiGbl_DbArgs[i])
-        {
-            break;
-        }
-
-        This = Next;
-    }
-
-    /* Uppercase the actual command */
-
-    if (AcpiGbl_DbArgs[0])
-    {
-        AcpiUtStrupr (AcpiGbl_DbArgs[0]);
-    }
-
-    Count = i;
-    if (Count)
-    {
-        Count--;  /* Number of args only */
-    }
-
-    return (Count);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbMatchCommand
- *
- * PARAMETERS:  UserCommand             - User command line
- *
- * RETURN:      Index into command array, -1 if not found
- *
- * DESCRIPTION: Search command array for a command match
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDbMatchCommand (
-    char                    *UserCommand)
-{
-    UINT32                  i;
-
-
-    if (!UserCommand || UserCommand[0] == 0)
-    {
-        return (CMD_NULL);
-    }
-
-    for (i = CMD_FIRST_VALID; AcpiGbl_DbCommands[i].Name; i++)
-    {
-        if (ACPI_STRSTR (AcpiGbl_DbCommands[i].Name, UserCommand) ==
-                         AcpiGbl_DbCommands[i].Name)
-        {
-            return (i);
-        }
-    }
-
-    /* Command not recognized */
-
-    return (CMD_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbCommandDispatch
- *
- * PARAMETERS:  InputBuffer         - Command line buffer
- *              WalkState           - Current walk
- *              Op                  - Current (executing) parse op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Command dispatcher.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbCommandDispatch (
-    char                    *InputBuffer,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT32                  Temp;
-    UINT32                  CommandIndex;
-    UINT32                  ParamCount;
-    char                    *CommandLine;
-    ACPI_STATUS             Status = AE_CTRL_TRUE;
-
-
-    /* If AcpiTerminate has been called, terminate this thread */
-
-    if (AcpiGbl_DbTerminateThreads)
-    {
-        return (AE_CTRL_TERMINATE);
-    }
-
-    ParamCount = AcpiDbGetLine (InputBuffer);
-    CommandIndex = AcpiDbMatchCommand (AcpiGbl_DbArgs[0]);
-    Temp = 0;
-
-    /* Verify that we have the minimum number of params */
-
-    if (ParamCount < AcpiGbl_DbCommands[CommandIndex].MinArgs)
-    {
-        AcpiOsPrintf ("%d parameters entered, [%s] requires %d parameters\n",
-            ParamCount, AcpiGbl_DbCommands[CommandIndex].Name,
-            AcpiGbl_DbCommands[CommandIndex].MinArgs);
-
-        return (AE_CTRL_TRUE);
-    }
-
-    /* Decode and dispatch the command */
-
-    switch (CommandIndex)
-    {
-    case CMD_NULL:
-        if (Op)
-        {
-            return (AE_OK);
-        }
-        break;
-
-    case CMD_ALLOCATIONS:
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-        AcpiUtDumpAllocations ((UINT32) -1, NULL);
-#endif
-        break;
-
-    case CMD_ARGS:
-    case CMD_ARGUMENTS:
-        AcpiDbDisplayArguments ();
-        break;
-
-    case CMD_BATCH:
-        AcpiDbBatchExecute (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_BREAKPOINT:
-        AcpiDbSetMethodBreakpoint (AcpiGbl_DbArgs[1], WalkState, Op);
-        break;
-
-    case CMD_BUSINFO:
-        AcpiDbGetBusInfo ();
-        break;
-
-    case CMD_CALL:
-        AcpiDbSetMethodCallBreakpoint (Op);
-        Status = AE_OK;
-        break;
-
-    case CMD_CLOSE:
-        AcpiDbCloseDebugFile ();
-        break;
-
-    case CMD_DEBUG:
-        AcpiDbExecute (AcpiGbl_DbArgs[1], &AcpiGbl_DbArgs[2], EX_SINGLE_STEP);
-        break;
-
-    case CMD_DISASSEMBLE:
-        (void) AcpiDbDisassembleMethod (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_DUMP:
-        AcpiDbDecodeAndDisplayObject (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
-        break;
-
-    case CMD_ENABLEACPI:
-        Status = AcpiEnable();
-        if (ACPI_FAILURE(Status))
-        {
-            AcpiOsPrintf("AcpiEnable failed (Status=%X)\n", Status);
-            return (Status);
-        }
-        break;
-
-    case CMD_EVENT:
-        AcpiOsPrintf ("Event command not implemented\n");
-        break;
-
-    case CMD_EXECUTE:
-        AcpiDbExecute (AcpiGbl_DbArgs[1],
-            &AcpiGbl_DbArgs[2], EX_NO_SINGLE_STEP);
-        break;
-
-    case CMD_FIND:
-        Status = AcpiDbFindNameInNamespace (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_GO:
-        AcpiGbl_CmSingleStep = FALSE;
-        return (AE_OK);
-
-    case CMD_GPE:
-        AcpiDbGenerateGpe (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
-        break;
-
-    case CMD_GPES:
-        AcpiDbDisplayGpes ();
-        break;
-
-    case CMD_HELP:
-    case CMD_HELP2:
-        AcpiDbDisplayHelp (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_HISTORY:
-        AcpiDbDisplayHistory ();
-        break;
-
-    case CMD_HISTORY_EXE:
-        CommandLine = AcpiDbGetFromHistory (AcpiGbl_DbArgs[1]);
-        if (!CommandLine)
-        {
-            return (AE_CTRL_TRUE);
-        }
-
-        Status = AcpiDbCommandDispatch (CommandLine, WalkState, Op);
-        return (Status);
-
-    case CMD_HISTORY_LAST:
-        CommandLine = AcpiDbGetFromHistory (NULL);
-        if (!CommandLine)
-        {
-            return (AE_CTRL_TRUE);
-        }
-
-        Status = AcpiDbCommandDispatch (CommandLine, WalkState, Op);
-        return (Status);
-
-    case CMD_INFORMATION:
-        AcpiDbDisplayMethodInfo (Op);
-        break;
-
-    case CMD_INTEGRITY:
-        AcpiDbCheckIntegrity ();
-        break;
-
-    case CMD_INTO:
-        if (Op)
-        {
-            AcpiGbl_CmSingleStep = TRUE;
-            return (AE_OK);
-        }
-        break;
-
-    case CMD_LEVEL:
-        if (ParamCount == 0)
-        {
-            AcpiOsPrintf ("Current debug level for file output is:    %8.8lX\n",
-                AcpiGbl_DbDebugLevel);
-            AcpiOsPrintf ("Current debug level for console output is: %8.8lX\n",
-                AcpiGbl_DbConsoleDebugLevel);
-        }
-        else if (ParamCount == 2)
-        {
-            Temp = AcpiGbl_DbConsoleDebugLevel;
-            AcpiGbl_DbConsoleDebugLevel = ACPI_STRTOUL (AcpiGbl_DbArgs[1],
-                                            NULL, 16);
-            AcpiOsPrintf (
-                "Debug Level for console output was %8.8lX, now %8.8lX\n",
-                Temp, AcpiGbl_DbConsoleDebugLevel);
-        }
-        else
-        {
-            Temp = AcpiGbl_DbDebugLevel;
-            AcpiGbl_DbDebugLevel = ACPI_STRTOUL (AcpiGbl_DbArgs[1], NULL, 16);
-            AcpiOsPrintf (
-                "Debug Level for file output was %8.8lX, now %8.8lX\n",
-                Temp, AcpiGbl_DbDebugLevel);
-        }
-        break;
-
-    case CMD_LIST:
-        AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);
-        break;
-
-    case CMD_LOAD:
-        Status = AcpiDbGetTableFromFile (AcpiGbl_DbArgs[1], NULL);
-        break;
-
-    case CMD_LOCKS:
-        AcpiDbDisplayLocks ();
-        break;
-
-    case CMD_LOCALS:
-        AcpiDbDisplayLocals ();
-        break;
-
-    case CMD_METHODS:
-        Status = AcpiDbDisplayObjects ("METHOD", AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_NAMESPACE:
-        AcpiDbDumpNamespace (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
-        break;
-
-    case CMD_NOTIFY:
-        Temp = ACPI_STRTOUL (AcpiGbl_DbArgs[2], NULL, 0);
-        AcpiDbSendNotify (AcpiGbl_DbArgs[1], Temp);
-        break;
-
-    case CMD_OBJECT:
-        AcpiUtStrupr (AcpiGbl_DbArgs[1]);
-        Status = AcpiDbDisplayObjects (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
-        break;
-
-    case CMD_OPEN:
-        AcpiDbOpenDebugFile (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_OWNER:
-        AcpiDbDumpNamespaceByOwner (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
-        break;
-
-    case CMD_PREDEFINED:
-        AcpiDbCheckPredefinedNames ();
-        break;
-
-    case CMD_PREFIX:
-        AcpiDbSetScope (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_REFERENCES:
-        AcpiDbFindReferences (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_RESOURCES:
-        AcpiDbDisplayResources (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_RESULTS:
-        AcpiDbDisplayResults ();
-        break;
-
-    case CMD_SET:
-        AcpiDbSetMethodData (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2],
-            AcpiGbl_DbArgs[3]);
-        break;
-
-    case CMD_SLEEP:
-        Status = AcpiDbSleep (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_STATS:
-        Status = AcpiDbDisplayStatistics (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_STOP:
-        return (AE_NOT_IMPLEMENTED);
-
-    case CMD_TABLES:
-        AcpiDbDisplayTableInfo (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_TERMINATE:
-        AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
-        AcpiUtSubsystemShutdown ();
-
-        /*
-         * TBD: [Restructure] Need some way to re-initialize without
-         * re-creating the semaphores!
-         */
-
-        /*  AcpiInitialize (NULL);  */
-        break;
-
-    case CMD_THREADS:
-        AcpiDbCreateExecutionThreads (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2],
-            AcpiGbl_DbArgs[3]);
-        break;
-
-    case CMD_TRACE:
-        (void) AcpiDebugTrace (AcpiGbl_DbArgs[1],0,0,1);
-        break;
-
-    case CMD_TREE:
-        AcpiDbDisplayCallingTree ();
-        break;
-
-    case CMD_TYPE:
-        AcpiDbDisplayObjectType (AcpiGbl_DbArgs[1]);
-        break;
-
-    case CMD_UNLOAD:
-        AcpiDbUnloadAcpiTable (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
-        break;
-
-    case CMD_EXIT:
-    case CMD_QUIT:
-        if (Op)
-        {
-            AcpiOsPrintf ("Method execution terminated\n");
-            return (AE_CTRL_TERMINATE);
-        }
-
-        if (!AcpiGbl_DbOutputToFile)
-        {
-            AcpiDbgLevel = ACPI_DEBUG_DEFAULT;
-        }
-
-        AcpiDbCloseDebugFile ();
-        AcpiGbl_DbTerminateThreads = TRUE;
-        return (AE_CTRL_TERMINATE);
-
-    case CMD_NOT_FOUND:
-    default:
-        AcpiOsPrintf ("Unknown Command\n");
-        return (AE_CTRL_TRUE);
-    }
-
-    if (ACPI_SUCCESS (Status))
-    {
-        Status = AE_CTRL_TRUE;
-    }
-
-    /* Add all commands that come here to the history buffer */
-
-    AcpiDbAddToHistory (InputBuffer);
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbExecuteThread
- *
- * PARAMETERS:  Context         - Not used
- *
- * RETURN:      None
- *
- * DESCRIPTION: Debugger execute thread.  Waits for a command line, then
- *              simply dispatches it.
- *
- ******************************************************************************/
-
-void ACPI_SYSTEM_XFACE
-AcpiDbExecuteThread (
-    void                    *Context)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_STATUS             MStatus;
-
-
-    while (Status != AE_CTRL_TERMINATE)
-    {
-        AcpiGbl_MethodExecuting = FALSE;
-        AcpiGbl_StepToNextCall = FALSE;
-
-        MStatus = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY);
-        if (ACPI_FAILURE (MStatus))
-        {
-            return;
-        }
-
-        Status = AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, NULL, NULL);
-
-        MStatus = AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);
-        if (ACPI_FAILURE (MStatus))
-        {
-            return;
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSingleThread
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Debugger execute thread.  Waits for a command line, then
- *              simply dispatches it.
- *
- ******************************************************************************/
-
-static void
-AcpiDbSingleThread (
-    void)
-{
-
-    AcpiGbl_MethodExecuting = FALSE;
-    AcpiGbl_StepToNextCall = FALSE;
-
-    (void) AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, NULL, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbUserCommands
- *
- * PARAMETERS:  Prompt              - User prompt (depends on mode)
- *              Op                  - Current executing parse op
- *
- * RETURN:      None
- *
- * DESCRIPTION: Command line execution for the AML debugger.  Commands are
- *              matched and dispatched here.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbUserCommands (
-    char                    Prompt,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    /* TBD: [Restructure] Need a separate command line buffer for step mode */
-
-    while (!AcpiGbl_DbTerminateThreads)
-    {
-        /* Force output to console until a command is entered */
-
-        AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-
-        /* Different prompt if method is executing */
-
-        if (!AcpiGbl_MethodExecuting)
-        {
-            AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_COMMAND_PROMPT);
-        }
-        else
-        {
-            AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_EXECUTE_PROMPT);
-        }
-
-        /* Get the user input line */
-
-        (void) AcpiOsGetLine (AcpiGbl_DbLineBuf);
-
-        /* Check for single or multithreaded debug */
-
-        if (AcpiGbl_DebuggerConfiguration & DEBUGGER_MULTI_THREADED)
-        {
-            /*
-             * Signal the debug thread that we have a command to execute,
-             * and wait for the command to complete.
-             */
-            Status = AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_READY);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-
-            Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-        }
-        else
-        {
-            /* Just call to the command line interpreter */
-
-            AcpiDbSingleThread ();
-        }
-    }
-
-    /*
-     * Only this thread (the original thread) should actually terminate the
-     * subsystem, because all the semaphores are deleted during termination
-     */
-    Status = AcpiTerminate ();
-    return (Status);
-}
-
-#endif  /* ACPI_DEBUGGER */
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbstats.c b/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbstats.c
deleted file mode 100644 (file)
index 63a62ec..0000000
+++ /dev/null
@@ -1,621 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbstats - Generation and display of ACPI table statistics
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdebug.h"
-#include "acnamesp.h"
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbstats")
-
-/* Local prototypes */
-
-static void
-AcpiDbCountNamespaceObjects (
-    void);
-
-static void
-AcpiDbEnumerateObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc);
-
-static ACPI_STATUS
-AcpiDbClassifyOneObject (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue);
-
-#if defined ACPI_DBG_TRACK_ALLOCATIONS || defined ACPI_USE_LOCAL_CACHE
-static void
-AcpiDbListInfo (
-    ACPI_MEMORY_LIST        *List);
-#endif
-
-
-/*
- * Statistics subcommands
- */
-static ARGUMENT_INFO        AcpiDbStatTypes [] =
-{
-    {"ALLOCATIONS"},
-    {"OBJECTS"},
-    {"MEMORY"},
-    {"MISC"},
-    {"TABLES"},
-    {"SIZES"},
-    {"STACK"},
-    {NULL}           /* Must be null terminated */
-};
-
-#define CMD_STAT_ALLOCATIONS     0
-#define CMD_STAT_OBJECTS         1
-#define CMD_STAT_MEMORY          2
-#define CMD_STAT_MISC            3
-#define CMD_STAT_TABLES          4
-#define CMD_STAT_SIZES           5
-#define CMD_STAT_STACK           6
-
-
-#if defined ACPI_DBG_TRACK_ALLOCATIONS || defined ACPI_USE_LOCAL_CACHE
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbListInfo
- *
- * PARAMETERS:  List            - Memory list/cache to be displayed
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display information about the input memory list or cache.
- *
- ******************************************************************************/
-
-static void
-AcpiDbListInfo (
-    ACPI_MEMORY_LIST        *List)
-{
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-    UINT32                  Outstanding;
-#endif
-
-    AcpiOsPrintf ("\n%s\n", List->ListName);
-
-    /* MaxDepth > 0 indicates a cache object */
-
-    if (List->MaxDepth > 0)
-    {
-        AcpiOsPrintf (
-            "    Cache: [Depth    MaxD Avail  Size]                %8.2X %8.2X %8.2X %8.2X\n",
-            List->CurrentDepth,
-            List->MaxDepth,
-            List->MaxDepth - List->CurrentDepth,
-            (List->CurrentDepth * List->ObjectSize));
-    }
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-    if (List->MaxDepth > 0)
-    {
-        AcpiOsPrintf (
-            "    Cache: [Requests Hits Misses ObjSize]             %8.2X %8.2X %8.2X %8.2X\n",
-            List->Requests,
-            List->Hits,
-            List->Requests - List->Hits,
-            List->ObjectSize);
-    }
-
-    Outstanding = AcpiDbGetCacheInfo (List);
-
-    if (List->ObjectSize)
-    {
-        AcpiOsPrintf (
-            "    Mem:   [Alloc    Free Max    CurSize Outstanding] %8.2X %8.2X %8.2X %8.2X %8.2X\n",
-            List->TotalAllocated,
-            List->TotalFreed,
-            List->MaxOccupied,
-            Outstanding * List->ObjectSize,
-            Outstanding);
-    }
-    else
-    {
-        AcpiOsPrintf (
-            "    Mem:   [Alloc Free Max CurSize Outstanding Total] %8.2X %8.2X %8.2X %8.2X %8.2X %8.2X\n",
-            List->TotalAllocated,
-            List->TotalFreed,
-            List->MaxOccupied,
-            List->CurrentTotalSize,
-            Outstanding,
-            List->TotalSize);
-    }
-#endif
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbEnumerateObject
- *
- * PARAMETERS:  ObjDesc             - Object to be counted
- *
- * RETURN:      None
- *
- * DESCRIPTION: Add this object to the global counts, by object type.
- *              Limited recursion handles subobjects and packages, and this
- *              is probably acceptable within the AML debugger only.
- *
- ******************************************************************************/
-
-static void
-AcpiDbEnumerateObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    UINT32                  i;
-
-
-    if (!ObjDesc)
-    {
-        return;
-    }
-
-    /* Enumerate this object first */
-
-    AcpiGbl_NumObjects++;
-
-    if (ObjDesc->Common.Type > ACPI_TYPE_NS_NODE_MAX)
-    {
-        AcpiGbl_ObjTypeCountMisc++;
-    }
-    else
-    {
-        AcpiGbl_ObjTypeCount [ObjDesc->Common.Type]++;
-    }
-
-    /* Count the sub-objects */
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_PACKAGE:
-
-        for (i = 0; i < ObjDesc->Package.Count; i++)
-        {
-            AcpiDbEnumerateObject (ObjDesc->Package.Elements[i]);
-        }
-        break;
-
-    case ACPI_TYPE_DEVICE:
-
-        AcpiDbEnumerateObject (ObjDesc->Device.SystemNotify);
-        AcpiDbEnumerateObject (ObjDesc->Device.DeviceNotify);
-        AcpiDbEnumerateObject (ObjDesc->Device.Handler);
-        break;
-
-    case ACPI_TYPE_BUFFER_FIELD:
-
-        if (AcpiNsGetSecondaryObject (ObjDesc))
-        {
-            AcpiGbl_ObjTypeCount [ACPI_TYPE_BUFFER_FIELD]++;
-        }
-        break;
-
-    case ACPI_TYPE_REGION:
-
-        AcpiGbl_ObjTypeCount [ACPI_TYPE_LOCAL_REGION_FIELD ]++;
-        AcpiDbEnumerateObject (ObjDesc->Region.Handler);
-        break;
-
-    case ACPI_TYPE_POWER:
-
-        AcpiDbEnumerateObject (ObjDesc->PowerResource.SystemNotify);
-        AcpiDbEnumerateObject (ObjDesc->PowerResource.DeviceNotify);
-        break;
-
-    case ACPI_TYPE_PROCESSOR:
-
-        AcpiDbEnumerateObject (ObjDesc->Processor.SystemNotify);
-        AcpiDbEnumerateObject (ObjDesc->Processor.DeviceNotify);
-        AcpiDbEnumerateObject (ObjDesc->Processor.Handler);
-        break;
-
-    case ACPI_TYPE_THERMAL:
-
-        AcpiDbEnumerateObject (ObjDesc->ThermalZone.SystemNotify);
-        AcpiDbEnumerateObject (ObjDesc->ThermalZone.DeviceNotify);
-        AcpiDbEnumerateObject (ObjDesc->ThermalZone.Handler);
-        break;
-
-    default:
-        break;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbClassifyOneObject
- *
- * PARAMETERS:  Callback for WalkNamespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enumerate both the object descriptor (including subobjects) and
- *              the parent namespace node.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbClassifyOneObject (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    UINT32                  Type;
-
-
-    AcpiGbl_NumNodes++;
-
-    Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-
-    AcpiDbEnumerateObject (ObjDesc);
-
-    Type = Node->Type;
-    if (Type > ACPI_TYPE_NS_NODE_MAX)
-    {
-        AcpiGbl_NodeTypeCountMisc++;
-    }
-    else
-    {
-        AcpiGbl_NodeTypeCount [Type]++;
-    }
-
-    return AE_OK;
-
-
-#ifdef ACPI_FUTURE_IMPLEMENTATION
-
-    /* TBD: These need to be counted during the initial parsing phase */
-
-    if (AcpiPsIsNamedOp (Op->Opcode))
-    {
-        NumNodes++;
-    }
-
-    if (IsMethod)
-    {
-        NumMethodElements++;
-    }
-
-    NumGrammarElements++;
-    Op = AcpiPsGetDepthNext (Root, Op);
-
-    SizeOfParseTree   = (NumGrammarElements - NumMethodElements) *
-                            (UINT32) sizeof (ACPI_PARSE_OBJECT);
-    SizeOfMethodTrees = NumMethodElements * (UINT32) sizeof (ACPI_PARSE_OBJECT);
-    SizeOfNodeEntries = NumNodes * (UINT32) sizeof (ACPI_NAMESPACE_NODE);
-    SizeOfAcpiObjects = NumNodes * (UINT32) sizeof (ACPI_OPERAND_OBJECT);
-#endif
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbCountNamespaceObjects
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Count and classify the entire namespace, including all
- *              namespace nodes and attached objects.
- *
- ******************************************************************************/
-
-static void
-AcpiDbCountNamespaceObjects (
-    void)
-{
-    UINT32                  i;
-
-
-    AcpiGbl_NumNodes = 0;
-    AcpiGbl_NumObjects = 0;
-
-    AcpiGbl_ObjTypeCountMisc = 0;
-    for (i = 0; i < (ACPI_TYPE_NS_NODE_MAX -1); i++)
-    {
-        AcpiGbl_ObjTypeCount [i] = 0;
-        AcpiGbl_NodeTypeCount [i] = 0;
-    }
-
-    (void) AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
-                ACPI_UINT32_MAX, FALSE, AcpiDbClassifyOneObject, NULL, NULL, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDisplayStatistics
- *
- * PARAMETERS:  TypeArg         - Subcommand
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Display various statistics
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbDisplayStatistics (
-    char                    *TypeArg)
-{
-    UINT32                  i;
-    UINT32                  Temp;
-
-
-    if (!TypeArg)
-    {
-        AcpiOsPrintf ("The following subcommands are available:\n    ALLOCATIONS, OBJECTS, MEMORY, MISC, SIZES, TABLES\n");
-        return (AE_OK);
-    }
-
-    AcpiUtStrupr (TypeArg);
-    Temp = AcpiDbMatchArgument (TypeArg, AcpiDbStatTypes);
-    if (Temp == (UINT32) -1)
-    {
-        AcpiOsPrintf ("Invalid or unsupported argument\n");
-        return (AE_OK);
-    }
-
-
-    switch (Temp)
-    {
-    case CMD_STAT_ALLOCATIONS:
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-        AcpiUtDumpAllocationInfo ();
-#endif
-        break;
-
-    case CMD_STAT_TABLES:
-
-        AcpiOsPrintf ("ACPI Table Information (not implemented):\n\n");
-        break;
-
-    case CMD_STAT_OBJECTS:
-
-        AcpiDbCountNamespaceObjects ();
-
-        AcpiOsPrintf ("\nObjects defined in the current namespace:\n\n");
-
-        AcpiOsPrintf ("%16.16s %10.10s %10.10s\n",
-            "ACPI_TYPE", "NODES", "OBJECTS");
-
-        for (i = 0; i < ACPI_TYPE_NS_NODE_MAX; i++)
-        {
-            AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", AcpiUtGetTypeName (i),
-                AcpiGbl_NodeTypeCount [i], AcpiGbl_ObjTypeCount [i]);
-        }
-        AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", "Misc/Unknown",
-            AcpiGbl_NodeTypeCountMisc, AcpiGbl_ObjTypeCountMisc);
-
-        AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", "TOTALS:",
-            AcpiGbl_NumNodes, AcpiGbl_NumObjects);
-        break;
-
-    case CMD_STAT_MEMORY:
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-        AcpiOsPrintf ("\n----Object Statistics (all in hex)---------\n");
-
-        AcpiDbListInfo (AcpiGbl_GlobalList);
-        AcpiDbListInfo (AcpiGbl_NsNodeList);
-#endif
-
-#ifdef ACPI_USE_LOCAL_CACHE
-        AcpiOsPrintf ("\n----Cache Statistics (all in hex)---------\n");
-        AcpiDbListInfo (AcpiGbl_OperandCache);
-        AcpiDbListInfo (AcpiGbl_PsNodeCache);
-        AcpiDbListInfo (AcpiGbl_PsNodeExtCache);
-        AcpiDbListInfo (AcpiGbl_StateCache);
-#endif
-
-        break;
-
-    case CMD_STAT_MISC:
-
-        AcpiOsPrintf ("\nMiscellaneous Statistics:\n\n");
-        AcpiOsPrintf ("Calls to AcpiPsFind:..  ........% 7ld\n",
-            AcpiGbl_PsFindCount);
-        AcpiOsPrintf ("Calls to AcpiNsLookup:..........% 7ld\n",
-            AcpiGbl_NsLookupCount);
-
-        AcpiOsPrintf ("\n");
-
-        AcpiOsPrintf ("Mutex usage:\n\n");
-        for (i = 0; i < ACPI_NUM_MUTEX; i++)
-        {
-            AcpiOsPrintf ("%-28s:       % 7ld\n",
-                AcpiUtGetMutexName (i), AcpiGbl_MutexInfo[i].UseCount);
-        }
-        break;
-
-
-    case CMD_STAT_SIZES:
-
-        AcpiOsPrintf ("\nInternal object sizes:\n\n");
-
-        AcpiOsPrintf ("Common           %3d\n", sizeof (ACPI_OBJECT_COMMON));
-        AcpiOsPrintf ("Number           %3d\n", sizeof (ACPI_OBJECT_INTEGER));
-        AcpiOsPrintf ("String           %3d\n", sizeof (ACPI_OBJECT_STRING));
-        AcpiOsPrintf ("Buffer           %3d\n", sizeof (ACPI_OBJECT_BUFFER));
-        AcpiOsPrintf ("Package          %3d\n", sizeof (ACPI_OBJECT_PACKAGE));
-        AcpiOsPrintf ("BufferField      %3d\n", sizeof (ACPI_OBJECT_BUFFER_FIELD));
-        AcpiOsPrintf ("Device           %3d\n", sizeof (ACPI_OBJECT_DEVICE));
-        AcpiOsPrintf ("Event            %3d\n", sizeof (ACPI_OBJECT_EVENT));
-        AcpiOsPrintf ("Method           %3d\n", sizeof (ACPI_OBJECT_METHOD));
-        AcpiOsPrintf ("Mutex            %3d\n", sizeof (ACPI_OBJECT_MUTEX));
-        AcpiOsPrintf ("Region           %3d\n", sizeof (ACPI_OBJECT_REGION));
-        AcpiOsPrintf ("PowerResource    %3d\n", sizeof (ACPI_OBJECT_POWER_RESOURCE));
-        AcpiOsPrintf ("Processor        %3d\n", sizeof (ACPI_OBJECT_PROCESSOR));
-        AcpiOsPrintf ("ThermalZone      %3d\n", sizeof (ACPI_OBJECT_THERMAL_ZONE));
-        AcpiOsPrintf ("RegionField      %3d\n", sizeof (ACPI_OBJECT_REGION_FIELD));
-        AcpiOsPrintf ("BankField        %3d\n", sizeof (ACPI_OBJECT_BANK_FIELD));
-        AcpiOsPrintf ("IndexField       %3d\n", sizeof (ACPI_OBJECT_INDEX_FIELD));
-        AcpiOsPrintf ("Reference        %3d\n", sizeof (ACPI_OBJECT_REFERENCE));
-        AcpiOsPrintf ("Notify           %3d\n", sizeof (ACPI_OBJECT_NOTIFY_HANDLER));
-        AcpiOsPrintf ("AddressSpace     %3d\n", sizeof (ACPI_OBJECT_ADDR_HANDLER));
-        AcpiOsPrintf ("Extra            %3d\n", sizeof (ACPI_OBJECT_EXTRA));
-        AcpiOsPrintf ("Data             %3d\n", sizeof (ACPI_OBJECT_DATA));
-
-        AcpiOsPrintf ("\n");
-
-        AcpiOsPrintf ("ParseObject      %3d\n", sizeof (ACPI_PARSE_OBJ_COMMON));
-        AcpiOsPrintf ("ParseObjectNamed %3d\n", sizeof (ACPI_PARSE_OBJ_NAMED));
-        AcpiOsPrintf ("ParseObjectAsl   %3d\n", sizeof (ACPI_PARSE_OBJ_ASL));
-        AcpiOsPrintf ("OperandObject    %3d\n", sizeof (ACPI_OPERAND_OBJECT));
-        AcpiOsPrintf ("NamespaceNode    %3d\n", sizeof (ACPI_NAMESPACE_NODE));
-        AcpiOsPrintf ("AcpiObject       %3d\n", sizeof (ACPI_OBJECT));
-
-        break;
-
-
-    case CMD_STAT_STACK:
-#if defined(ACPI_DEBUG_OUTPUT)
-
-        Temp = (UINT32) ACPI_PTR_DIFF (AcpiGbl_EntryStackPointer, AcpiGbl_LowestStackPointer);
-
-        AcpiOsPrintf ("\nSubsystem Stack Usage:\n\n");
-        AcpiOsPrintf ("Entry Stack Pointer          %p\n", AcpiGbl_EntryStackPointer);
-        AcpiOsPrintf ("Lowest Stack Pointer         %p\n", AcpiGbl_LowestStackPointer);
-        AcpiOsPrintf ("Stack Use                    %X (%u)\n", Temp, Temp);
-        AcpiOsPrintf ("Deepest Procedure Nesting    %u\n", AcpiGbl_DeepestNesting);
-#endif
-        break;
-
-    default:
-        break;
-    }
-
-    AcpiOsPrintf ("\n");
-    return (AE_OK);
-}
-
-#endif /* ACPI_DEBUGGER  */
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbutils.c b/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbutils.c
deleted file mode 100644 (file)
index 15799eb..0000000
+++ /dev/null
@@ -1,599 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbutils - AML debugger utilities
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acdebug.h"
-#include "acdisasm.h"
-
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbutils")
-
-/* Local prototypes */
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-ACPI_STATUS
-AcpiDbSecondPassParse (
-    ACPI_PARSE_OBJECT       *Root);
-
-void
-AcpiDbDumpBuffer (
-    UINT32                  Address);
-#endif
-
-static char                 *Converter = "0123456789ABCDEF";
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbMatchArgument
- *
- * PARAMETERS:  UserArgument            - User command line
- *              Arguments               - Array of commands to match against
- *
- * RETURN:      Index into command array or ACPI_TYPE_NOT_FOUND if not found
- *
- * DESCRIPTION: Search command array for a command match
- *
- ******************************************************************************/
-
-ACPI_OBJECT_TYPE
-AcpiDbMatchArgument (
-    char                    *UserArgument,
-    ARGUMENT_INFO           *Arguments)
-{
-    UINT32                  i;
-
-
-    if (!UserArgument || UserArgument[0] == 0)
-    {
-        return (ACPI_TYPE_NOT_FOUND);
-    }
-
-    for (i = 0; Arguments[i].Name; i++)
-    {
-        if (ACPI_STRSTR (Arguments[i].Name, UserArgument) == Arguments[i].Name)
-        {
-            return (i);
-        }
-    }
-
-    /* Argument not recognized */
-
-    return (ACPI_TYPE_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSetOutputDestination
- *
- * PARAMETERS:  OutputFlags         - Current flags word
- *
- * RETURN:      None
- *
- * DESCRIPTION: Set the current destination for debugger output.  Also sets
- *              the debug output level accordingly.
- *
- ******************************************************************************/
-
-void
-AcpiDbSetOutputDestination (
-    UINT32                  OutputFlags)
-{
-
-    AcpiGbl_DbOutputFlags = (UINT8) OutputFlags;
-
-    if ((OutputFlags & ACPI_DB_REDIRECTABLE_OUTPUT) && AcpiGbl_DbOutputToFile)
-    {
-        AcpiDbgLevel = AcpiGbl_DbDebugLevel;
-    }
-    else
-    {
-        AcpiDbgLevel = AcpiGbl_DbConsoleDebugLevel;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDumpExternalObject
- *
- * PARAMETERS:  ObjDesc         - External ACPI object to dump
- *              Level           - Nesting level.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump the contents of an ACPI external object
- *
- ******************************************************************************/
-
-void
-AcpiDbDumpExternalObject (
-    ACPI_OBJECT             *ObjDesc,
-    UINT32                  Level)
-{
-    UINT32                  i;
-
-
-    if (!ObjDesc)
-    {
-        AcpiOsPrintf ("[Null Object]\n");
-        return;
-    }
-
-    for (i = 0; i < Level; i++)
-    {
-        AcpiOsPrintf ("  ");
-    }
-
-    switch (ObjDesc->Type)
-    {
-    case ACPI_TYPE_ANY:
-
-        AcpiOsPrintf ("[Null Object] (Type=0)\n");
-        break;
-
-
-    case ACPI_TYPE_INTEGER:
-
-        AcpiOsPrintf ("[Integer] = %8.8X%8.8X\n",
-                    ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
-        break;
-
-
-    case ACPI_TYPE_STRING:
-
-        AcpiOsPrintf ("[String] Length %.2X = ", ObjDesc->String.Length);
-        for (i = 0; i < ObjDesc->String.Length; i++)
-        {
-            AcpiOsPrintf ("%c", ObjDesc->String.Pointer[i]);
-        }
-        AcpiOsPrintf ("\n");
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length);
-        if (ObjDesc->Buffer.Length)
-        {
-            if (ObjDesc->Buffer.Length > 16)
-            {
-                AcpiOsPrintf ("\n");
-            }
-            AcpiUtDumpBuffer (ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer),
-                    ObjDesc->Buffer.Length, DB_DWORD_DISPLAY, _COMPONENT);
-        }
-        else
-        {
-            AcpiOsPrintf ("\n");
-        }
-        break;
-
-
-    case ACPI_TYPE_PACKAGE:
-
-        AcpiOsPrintf ("[Package] Contains %d Elements:\n",
-                ObjDesc->Package.Count);
-
-        for (i = 0; i < ObjDesc->Package.Count; i++)
-        {
-            AcpiDbDumpExternalObject (&ObjDesc->Package.Elements[i], Level+1);
-        }
-        break;
-
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        AcpiOsPrintf ("[Object Reference] = ");
-        AcpiDmDisplayInternalObject (ObjDesc->Reference.Handle, NULL);
-        break;
-
-
-    case ACPI_TYPE_PROCESSOR:
-
-        AcpiOsPrintf ("[Processor]\n");
-        break;
-
-
-    case ACPI_TYPE_POWER:
-
-        AcpiOsPrintf ("[Power Resource]\n");
-        break;
-
-
-    default:
-
-        AcpiOsPrintf ("[Unknown Type] %X\n", ObjDesc->Type);
-        break;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbPrepNamestring
- *
- * PARAMETERS:  Name            - String to prepare
- *
- * RETURN:      None
- *
- * DESCRIPTION: Translate all forward slashes and dots to backslashes.
- *
- ******************************************************************************/
-
-void
-AcpiDbPrepNamestring (
-    char                    *Name)
-{
-
-    if (!Name)
-    {
-        return;
-    }
-
-    AcpiUtStrupr (Name);
-
-    /* Convert a leading forward slash to a backslash */
-
-    if (*Name == '/')
-    {
-        *Name = '\\';
-    }
-
-    /* Ignore a leading backslash, this is the root prefix */
-
-    if (*Name == '\\')
-    {
-        Name++;
-    }
-
-    /* Convert all slash path separators to dots */
-
-    while (*Name)
-    {
-        if ((*Name == '/') ||
-            (*Name == '\\'))
-        {
-            *Name = '.';
-        }
-
-        Name++;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbLocalNsLookup
- *
- * PARAMETERS:  Name            - Name to lookup
- *
- * RETURN:      Pointer to a namespace node, null on failure
- *
- * DESCRIPTION: Lookup a name in the ACPI namespace
- *
- * Note: Currently begins search from the root.  Could be enhanced to use
- * the current prefix (scope) node as the search beginning point.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiDbLocalNsLookup (
-    char                    *Name)
-{
-    char                    *InternalPath;
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node = NULL;
-
-
-    AcpiDbPrepNamestring (Name);
-
-    /* Build an internal namestring */
-
-    Status = AcpiNsInternalizeName (Name, &InternalPath);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Invalid namestring: %s\n", Name);
-        return (NULL);
-    }
-
-    /*
-     * Lookup the name.
-     * (Uses root node as the search starting point)
-     */
-    Status = AcpiNsLookup (NULL, InternalPath, ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
-                    ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("Could not locate name: %s, %s\n",
-                Name, AcpiFormatException (Status));
-    }
-
-    ACPI_FREE (InternalPath);
-    return (Node);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbUInt32ToHexString
- *
- * PARAMETERS:  Value           - The value to be converted to string
- *              Buffer          - Buffer for result (not less than 11 bytes)
- *
- * RETURN:      None
- *
- * DESCRIPTION: Convert the unsigned 32-bit value to the hexadecimal image
- *
- * NOTE: It is the caller's responsibility to ensure that the length of buffer
- *       is sufficient.
- *
- ******************************************************************************/
-
-void
-AcpiDbUInt32ToHexString (
-    UINT32                  Value,
-    char                    *Buffer)
-{
-    UINT8                   i;
-
-
-    if (Value == 0)
-    {
-        ACPI_STRCPY (Buffer, "0");
-        return;
-    }
-
-    ACPI_STRCPY (Buffer, "0x");
-    Buffer[10] = '\0';
-
-    for (i = 9; i > 1; i--)
-    {
-        Buffer[i] = Converter [Value & 0x0F];
-        Value = Value >> 4;
-    }
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSecondPassParse
- *
- * PARAMETERS:  Root            - Root of the parse tree
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Second pass parse of the ACPI tables.  We need to wait until
- *              second pass to parse the control methods
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbSecondPassParse (
-    ACPI_PARSE_OBJECT       *Root)
-{
-    ACPI_PARSE_OBJECT       *Op = Root;
-    ACPI_PARSE_OBJECT       *Method;
-    ACPI_PARSE_OBJECT       *SearchOp;
-    ACPI_PARSE_OBJECT       *StartOp;
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  BaseAmlOffset;
-    ACPI_WALK_STATE         *WalkState;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    AcpiOsPrintf ("Pass two parse ....\n");
-
-    while (Op)
-    {
-        if (Op->Common.AmlOpcode == AML_METHOD_OP)
-        {
-            Method = Op;
-
-            /* Create a new walk state for the parse */
-
-            WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL);
-            if (!WalkState)
-            {
-                return (AE_NO_MEMORY);
-            }
-
-            /* Init the Walk State */
-
-            WalkState->ParserState.Aml          =
-            WalkState->ParserState.AmlStart     = Method->Named.Data;
-            WalkState->ParserState.AmlEnd       =
-            WalkState->ParserState.PkgEnd       = Method->Named.Data +
-                                                  Method->Named.Length;
-            WalkState->ParserState.StartScope   = Op;
-
-            WalkState->DescendingCallback       = AcpiDsLoad1BeginOp;
-            WalkState->AscendingCallback        = AcpiDsLoad1EndOp;
-
-            /* Perform the AML parse */
-
-            Status = AcpiPsParseAml (WalkState);
-
-            BaseAmlOffset = (Method->Common.Value.Arg)->Common.AmlOffset + 1;
-            StartOp = (Method->Common.Value.Arg)->Common.Next;
-            SearchOp = StartOp;
-
-            while (SearchOp)
-            {
-                SearchOp->Common.AmlOffset += BaseAmlOffset;
-                SearchOp = AcpiPsGetDepthNext (StartOp, SearchOp);
-            }
-        }
-
-        if (Op->Common.AmlOpcode == AML_REGION_OP)
-        {
-            /* TBD: [Investigate] this isn't quite the right thing to do! */
-            /*
-             *
-             * Method = (ACPI_DEFERRED_OP *) Op;
-             * Status = AcpiPsParseAml (Op, Method->Body, Method->BodyLength);
-             */
-        }
-
-        if (ACPI_FAILURE (Status))
-        {
-            break;
-        }
-
-        Op = AcpiPsGetDepthNext (Root, Op);
-    }
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbDumpBuffer
- *
- * PARAMETERS:  Address             - Pointer to the buffer
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print a portion of a buffer
- *
- ******************************************************************************/
-
-void
-AcpiDbDumpBuffer (
-    UINT32                  Address)
-{
-
-    AcpiOsPrintf ("\nLocation %X:\n", Address);
-
-    AcpiDbgLevel |= ACPI_LV_TABLES;
-    AcpiUtDumpBuffer (ACPI_TO_POINTER (Address), 64, DB_BYTE_DISPLAY,
-            ACPI_UINT32_MAX);
-}
-#endif
-
-#endif /* ACPI_DEBUGGER */
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbxface.c b/l4/pkg/acpica/lib-acpi/src/acpica/debugger/dbxface.c
deleted file mode 100644 (file)
index f3f7a44..0000000
+++ /dev/null
@@ -1,602 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbxface - AML Debugger external interfaces
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acdebug.h"
-#include "acdisasm.h"
-
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbxface")
-
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDbStartCommand (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op);
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-void
-AcpiDbMethodEnd (
-    ACPI_WALK_STATE         *WalkState);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbStartCommand
- *
- * PARAMETERS:  WalkState       - Current walk
- *              Op              - Current executing Op, from AML interpreter
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enter debugger command loop
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbStartCommand (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status;
-
-
-    /* TBD: [Investigate] are there namespace locking issues here? */
-
-    /* AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); */
-
-    /* Go into the command loop and await next user command */
-
-
-    AcpiGbl_MethodExecuting = TRUE;
-    Status = AE_CTRL_TRUE;
-    while (Status == AE_CTRL_TRUE)
-    {
-        if (AcpiGbl_DebuggerConfiguration == DEBUGGER_MULTI_THREADED)
-        {
-            /* Handshake with the front-end that gets user command lines */
-
-            Status = AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-            Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-        }
-        else
-        {
-            /* Single threaded, we must get a command line ourselves */
-
-            /* Force output to console until a command is entered */
-
-            AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-
-            /* Different prompt if method is executing */
-
-            if (!AcpiGbl_MethodExecuting)
-            {
-                AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_COMMAND_PROMPT);
-            }
-            else
-            {
-                AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_EXECUTE_PROMPT);
-            }
-
-            /* Get the user input line */
-
-            (void) AcpiOsGetLine (AcpiGbl_DbLineBuf);
-        }
-
-        Status = AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, WalkState, Op);
-    }
-
-    /* AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); */
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbSingleStep
- *
- * PARAMETERS:  WalkState       - Current walk
- *              Op              - Current executing op (from aml interpreter)
- *              OpcodeClass     - Class of the current AML Opcode
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Called just before execution of an AML opcode.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbSingleStep (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  OpcodeClass)
-{
-    ACPI_PARSE_OBJECT       *Next;
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  OriginalDebugLevel;
-    ACPI_PARSE_OBJECT       *DisplayOp;
-    ACPI_PARSE_OBJECT       *ParentOp;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Check the abort flag */
-
-    if (AcpiGbl_AbortMethod)
-    {
-        AcpiGbl_AbortMethod = FALSE;
-        return (AE_ABORT_METHOD);
-    }
-
-    /* Check for single-step breakpoint */
-
-    if (WalkState->MethodBreakpoint &&
-       (WalkState->MethodBreakpoint <= Op->Common.AmlOffset))
-    {
-        /* Check if the breakpoint has been reached or passed */
-        /* Hit the breakpoint, resume single step, reset breakpoint */
-
-        AcpiOsPrintf ("***Break*** at AML offset %X\n", Op->Common.AmlOffset);
-        AcpiGbl_CmSingleStep = TRUE;
-        AcpiGbl_StepToNextCall = FALSE;
-        WalkState->MethodBreakpoint = 0;
-    }
-
-    /* Check for user breakpoint (Must be on exact Aml offset) */
-
-    else if (WalkState->UserBreakpoint &&
-            (WalkState->UserBreakpoint == Op->Common.AmlOffset))
-    {
-        AcpiOsPrintf ("***UserBreakpoint*** at AML offset %X\n",
-            Op->Common.AmlOffset);
-        AcpiGbl_CmSingleStep = TRUE;
-        AcpiGbl_StepToNextCall = FALSE;
-        WalkState->MethodBreakpoint = 0;
-    }
-
-    /*
-     * Check if this is an opcode that we are interested in --
-     * namely, opcodes that have arguments
-     */
-    if (Op->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
-    {
-        return (AE_OK);
-    }
-
-    switch (OpcodeClass)
-    {
-    case AML_CLASS_UNKNOWN:
-    case AML_CLASS_ARGUMENT:    /* constants, literals, etc.  do nothing */
-        return (AE_OK);
-
-    default:
-        /* All other opcodes -- continue */
-        break;
-    }
-
-    /*
-     * Under certain debug conditions, display this opcode and its operands
-     */
-    if ((AcpiGbl_DbOutputToFile)            ||
-        (AcpiGbl_CmSingleStep)              ||
-        (AcpiDbgLevel & ACPI_LV_PARSE))
-    {
-        if ((AcpiGbl_DbOutputToFile)        ||
-            (AcpiDbgLevel & ACPI_LV_PARSE))
-        {
-            AcpiOsPrintf ("\n[AmlDebug] Next AML Opcode to execute:\n");
-        }
-
-        /*
-         * Display this op (and only this op - zero out the NEXT field
-         * temporarily, and disable parser trace output for the duration of
-         * the display because we don't want the extraneous debug output)
-         */
-        OriginalDebugLevel = AcpiDbgLevel;
-        AcpiDbgLevel &= ~(ACPI_LV_PARSE | ACPI_LV_FUNCTIONS);
-        Next = Op->Common.Next;
-        Op->Common.Next = NULL;
-
-
-        DisplayOp = Op;
-        ParentOp = Op->Common.Parent;
-        if (ParentOp)
-        {
-            if ((WalkState->ControlState) &&
-                (WalkState->ControlState->Common.State ==
-                    ACPI_CONTROL_PREDICATE_EXECUTING))
-            {
-                /*
-                 * We are executing the predicate of an IF or WHILE statement
-                 * Search upwards for the containing IF or WHILE so that the
-                 * entire predicate can be displayed.
-                 */
-                while (ParentOp)
-                {
-                    if ((ParentOp->Common.AmlOpcode == AML_IF_OP) ||
-                        (ParentOp->Common.AmlOpcode == AML_WHILE_OP))
-                    {
-                        DisplayOp = ParentOp;
-                        break;
-                    }
-                    ParentOp = ParentOp->Common.Parent;
-                }
-            }
-            else
-            {
-                while (ParentOp)
-                {
-                    if ((ParentOp->Common.AmlOpcode == AML_IF_OP)     ||
-                        (ParentOp->Common.AmlOpcode == AML_ELSE_OP)   ||
-                        (ParentOp->Common.AmlOpcode == AML_SCOPE_OP)  ||
-                        (ParentOp->Common.AmlOpcode == AML_METHOD_OP) ||
-                        (ParentOp->Common.AmlOpcode == AML_WHILE_OP))
-                    {
-                        break;
-                    }
-                    DisplayOp = ParentOp;
-                    ParentOp = ParentOp->Common.Parent;
-                }
-            }
-        }
-
-        /* Now we can display it */
-
-        AcpiDmDisassemble (WalkState, DisplayOp, ACPI_UINT32_MAX);
-
-        if ((Op->Common.AmlOpcode == AML_IF_OP) ||
-            (Op->Common.AmlOpcode == AML_WHILE_OP))
-        {
-            if (WalkState->ControlState->Common.Value)
-            {
-                AcpiOsPrintf ("Predicate = [True], IF block was executed\n");
-            }
-            else
-            {
-                AcpiOsPrintf ("Predicate = [False], Skipping IF block\n");
-            }
-        }
-        else if (Op->Common.AmlOpcode == AML_ELSE_OP)
-        {
-            AcpiOsPrintf ("Predicate = [False], ELSE block was executed\n");
-        }
-
-        /* Restore everything */
-
-        Op->Common.Next = Next;
-        AcpiOsPrintf ("\n");
-        if ((AcpiGbl_DbOutputToFile)        ||
-            (AcpiDbgLevel & ACPI_LV_PARSE))
-        {
-            AcpiOsPrintf ("\n");
-        }
-        AcpiDbgLevel = OriginalDebugLevel;
-    }
-
-    /* If we are not single stepping, just continue executing the method */
-
-    if (!AcpiGbl_CmSingleStep)
-    {
-        return (AE_OK);
-    }
-
-    /*
-     * If we are executing a step-to-call command,
-     * Check if this is a method call.
-     */
-    if (AcpiGbl_StepToNextCall)
-    {
-        if (Op->Common.AmlOpcode != AML_INT_METHODCALL_OP)
-        {
-            /* Not a method call, just keep executing */
-
-            return (AE_OK);
-        }
-
-        /* Found a method call, stop executing */
-
-        AcpiGbl_StepToNextCall = FALSE;
-    }
-
-    /*
-     * If the next opcode is a method call, we will "step over" it
-     * by default.
-     */
-    if (Op->Common.AmlOpcode == AML_INT_METHODCALL_OP)
-    {
-        /* Force no more single stepping while executing called method */
-
-        AcpiGbl_CmSingleStep = FALSE;
-
-        /*
-         * Set the breakpoint on/before the call, it will stop execution
-         * as soon as we return
-         */
-        WalkState->MethodBreakpoint = 1;  /* Must be non-zero! */
-    }
-
-
-    Status = AcpiDbStartCommand (WalkState, Op);
-
-    /* User commands complete, continue execution of the interrupted method */
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbInitialize
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Init and start debugger
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbInitialize (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    /* Init globals */
-
-    AcpiGbl_DbBuffer            = NULL;
-    AcpiGbl_DbFilename          = NULL;
-    AcpiGbl_DbOutputToFile      = FALSE;
-
-    AcpiGbl_DbDebugLevel        = ACPI_LV_VERBOSITY2;
-    AcpiGbl_DbConsoleDebugLevel = ACPI_NORMAL_DEFAULT | ACPI_LV_TABLES;
-    AcpiGbl_DbOutputFlags       = ACPI_DB_CONSOLE_OUTPUT;
-
-    AcpiGbl_DbOpt_tables        = FALSE;
-    AcpiGbl_DbOpt_disasm        = FALSE;
-    AcpiGbl_DbOpt_stats         = FALSE;
-    AcpiGbl_DbOpt_verbose       = TRUE;
-    AcpiGbl_DbOpt_ini_methods   = TRUE;
-
-    AcpiGbl_DbBuffer = AcpiOsAllocate (ACPI_DEBUG_BUFFER_SIZE);
-    if (!AcpiGbl_DbBuffer)
-    {
-        return (AE_NO_MEMORY);
-    }
-    ACPI_MEMSET (AcpiGbl_DbBuffer, 0, ACPI_DEBUG_BUFFER_SIZE);
-
-    /* Initial scope is the root */
-
-    AcpiGbl_DbScopeBuf [0] = '\\';
-    AcpiGbl_DbScopeBuf [1] =  0;
-    AcpiGbl_DbScopeNode = AcpiGbl_RootNode;
-
-    /*
-     * If configured for multi-thread support, the debug executor runs in
-     * a separate thread so that the front end can be in another address
-     * space, environment, or even another machine.
-     */
-    if (AcpiGbl_DebuggerConfiguration & DEBUGGER_MULTI_THREADED)
-    {
-        /* These were created with one unit, grab it */
-
-        Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf ("Could not get debugger mutex\n");
-            return (Status);
-        }
-
-        Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf ("Could not get debugger mutex\n");
-            return (Status);
-        }
-
-        /* Create the debug execution thread to execute commands */
-
-        Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, AcpiDbExecuteThread, NULL);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf ("Could not start debugger thread\n");
-            return (Status);
-        }
-    }
-
-    if (!AcpiGbl_DbOpt_verbose)
-    {
-        AcpiGbl_DbOpt_disasm = TRUE;
-        AcpiGbl_DbOpt_stats = FALSE;
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbTerminate
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Stop debugger
- *
- ******************************************************************************/
-
-void
-AcpiDbTerminate (
-    void)
-{
-
-    if (AcpiGbl_DbBuffer)
-    {
-        AcpiOsFree (AcpiGbl_DbBuffer);
-    }
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDbMethodEnd
- *
- * PARAMETERS:  WalkState       - Current walk
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Called at method termination
- *
- ******************************************************************************/
-
-void
-AcpiDbMethodEnd (
-    ACPI_WALK_STATE         *WalkState)
-{
-
-    if (!AcpiGbl_CmSingleStep)
-    {
-        return;
-    }
-
-    AcpiOsPrintf ("<Method Terminating>\n");
-
-    AcpiDbStartCommand (WalkState, NULL);
-}
-#endif
-
-#endif /* ACPI_DEBUGGER */
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmbuffer.c b/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmbuffer.c
deleted file mode 100644 (file)
index 5a4d174..0000000
+++ /dev/null
@@ -1,614 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmbuffer - AML disassembler, buffer and string support
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdisasm.h"
-#include "acparser.h"
-#include "amlcode.h"
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dmbuffer")
-
-/* Local prototypes */
-
-static void
-AcpiDmUnicode (
-    ACPI_PARSE_OBJECT       *Op);
-
-static void
-AcpiDmIsEisaIdElement (
-    ACPI_PARSE_OBJECT       *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDisasmByteList
- *
- * PARAMETERS:  Level               - Current source code indentation level
- *              ByteData            - Pointer to the byte list
- *              ByteCount           - Length of the byte list
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump an AML "ByteList" in Hex format. 8 bytes per line, prefixed
- *              with the hex buffer offset.
- *
- ******************************************************************************/
-
-void
-AcpiDmDisasmByteList (
-    UINT32                  Level,
-    UINT8                   *ByteData,
-    UINT32                  ByteCount)
-{
-    UINT32                  i;
-
-
-    if (!ByteCount)
-    {
-        return;
-    }
-
-    /* Dump the byte list */
-
-    for (i = 0; i < ByteCount; i++)
-    {
-        /* New line every 8 bytes */
-
-        if (((i % 8) == 0) && (i < ByteCount))
-        {
-            if (i > 0)
-            {
-                AcpiOsPrintf ("\n");
-            }
-
-            AcpiDmIndent (Level);
-            if (ByteCount > 7)
-            {
-                AcpiOsPrintf ("/* %04X */    ", i);
-            }
-        }
-
-        AcpiOsPrintf ("0x%2.2X", (UINT32) ByteData[i]);
-
-        /* Add comma if there are more bytes to display */
-
-        if (i < (ByteCount -1))
-        {
-            AcpiOsPrintf (", ");
-        }
-    }
-
-    if (Level)
-    {
-        AcpiOsPrintf ("\n");
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmByteList
- *
- * PARAMETERS:  Info            - Parse tree walk info
- *              Op              - Byte list op
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump a buffer byte list, handling the various types of buffers.
- *              Buffer type must be already set in the Op DisasmOpcode.
- *
- ******************************************************************************/
-
-void
-AcpiDmByteList (
-    ACPI_OP_WALK_INFO       *Info,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT8                   *ByteData;
-    UINT32                  ByteCount;
-
-
-    ByteData = Op->Named.Data;
-    ByteCount = (UINT32) Op->Common.Value.Integer;
-
-    /*
-     * The byte list belongs to a buffer, and can be produced by either
-     * a ResourceTemplate, Unicode, quoted string, or a plain byte list.
-     */
-    switch (Op->Common.Parent->Common.DisasmOpcode)
-    {
-    case ACPI_DASM_RESOURCE:
-
-        AcpiDmResourceTemplate (Info, Op->Common.Parent, ByteData, ByteCount);
-        break;
-
-    case ACPI_DASM_STRING:
-
-        AcpiDmIndent (Info->Level);
-        AcpiUtPrintString ((char *) ByteData, ACPI_UINT8_MAX);
-        AcpiOsPrintf ("\n");
-        break;
-
-    case ACPI_DASM_UNICODE:
-
-        AcpiDmUnicode (Op);
-        break;
-
-    case ACPI_DASM_BUFFER:
-    default:
-
-        /*
-         * Not a resource, string, or unicode string.
-         * Just dump the buffer
-         */
-        AcpiDmDisasmByteList (Info->Level, ByteData, ByteCount);
-        break;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIsUnicodeBuffer
- *
- * PARAMETERS:  Op              - Buffer Object to be examined
- *
- * RETURN:      TRUE if buffer contains a UNICODE string
- *
- * DESCRIPTION: Determine if a buffer Op contains a Unicode string
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDmIsUnicodeBuffer (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT8                   *ByteData;
-    UINT32                  ByteCount;
-    UINT32                  WordCount;
-    ACPI_PARSE_OBJECT       *SizeOp;
-    ACPI_PARSE_OBJECT       *NextOp;
-    UINT32                  i;
-
-
-    /* Buffer size is the buffer argument */
-
-    SizeOp = Op->Common.Value.Arg;
-
-    /* Next, the initializer byte list to examine */
-
-    NextOp = SizeOp->Common.Next;
-    if (!NextOp)
-    {
-        return (FALSE);
-    }
-
-    /* Extract the byte list info */
-
-    ByteData = NextOp->Named.Data;
-    ByteCount = (UINT32) NextOp->Common.Value.Integer;
-    WordCount = ACPI_DIV_2 (ByteCount);
-
-    /*
-     * Unicode string must have an even number of bytes and last
-     * word must be zero
-     */
-    if ((!ByteCount)     ||
-         (ByteCount < 4) ||
-         (ByteCount & 1) ||
-        ((UINT16 *) (void *) ByteData)[WordCount - 1] != 0)
-    {
-        return (FALSE);
-    }
-
-    /* For each word, 1st byte must be ascii, 2nd byte must be zero */
-
-    for (i = 0; i < (ByteCount - 2); i += 2)
-    {
-        if ((!ACPI_IS_PRINT (ByteData[i])) ||
-            (ByteData[(ACPI_SIZE) i + 1] != 0))
-        {
-            return (FALSE);
-        }
-    }
-
-    /* Ignore the Size argument in the disassembly of this buffer op */
-
-    SizeOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-    return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIsStringBuffer
- *
- * PARAMETERS:  Op              - Buffer Object to be examined
- *
- * RETURN:      TRUE if buffer contains a ASCII string, FALSE otherwise
- *
- * DESCRIPTION: Determine if a buffer Op contains a ASCII string
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDmIsStringBuffer (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT8                   *ByteData;
-    UINT32                  ByteCount;
-    ACPI_PARSE_OBJECT       *SizeOp;
-    ACPI_PARSE_OBJECT       *NextOp;
-    UINT32                  i;
-
-
-    /* Buffer size is the buffer argument */
-
-    SizeOp = Op->Common.Value.Arg;
-
-    /* Next, the initializer byte list to examine */
-
-    NextOp = SizeOp->Common.Next;
-    if (!NextOp)
-    {
-        return (FALSE);
-    }
-
-    /* Extract the byte list info */
-
-    ByteData = NextOp->Named.Data;
-    ByteCount = (UINT32) NextOp->Common.Value.Integer;
-
-    /* Last byte must be the null terminator */
-
-    if ((!ByteCount)     ||
-         (ByteCount < 2) ||
-         (ByteData[ByteCount-1] != 0))
-    {
-        return (FALSE);
-    }
-
-    for (i = 0; i < (ByteCount - 1); i++)
-    {
-        /* TBD: allow some escapes (non-ascii chars).
-         * they will be handled in the string output routine
-         */
-
-        if (!ACPI_IS_PRINT (ByteData[i]))
-        {
-            return (FALSE);
-        }
-    }
-
-    return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmUnicode
- *
- * PARAMETERS:  Op              - Byte List op containing Unicode string
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump Unicode string as a standard ASCII string.  (Remove
- *              the extra zero bytes).
- *
- ******************************************************************************/
-
-static void
-AcpiDmUnicode (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT16                  *WordData;
-    UINT32                  WordCount;
-    UINT32                  i;
-
-
-    /* Extract the buffer info as a WORD buffer */
-
-    WordData = ACPI_CAST_PTR (UINT16, Op->Named.Data);
-    WordCount = ACPI_DIV_2 (((UINT32) Op->Common.Value.Integer));
-
-
-    AcpiOsPrintf ("\"");
-
-    /* Write every other byte as an ASCII character */
-
-    for (i = 0; i < (WordCount - 1); i++)
-    {
-        AcpiOsPrintf ("%c", (int) WordData[i]);
-    }
-
-    AcpiOsPrintf ("\")");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIsEisaIdElement
- *
- * PARAMETERS:  Op              - Op to be examined
- *
- * RETURN:      None
- *
- * DESCRIPTION: Determine if an Op (argument to _HID or _CID) can be converted
- *              to an EISA ID.
- *
- ******************************************************************************/
-
-static void
-AcpiDmIsEisaIdElement (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT32                  BigEndianId;
-    UINT32                  Prefix[3];
-    UINT32                  i;
-
-
-    /* The parameter must be either a word or a dword */
-
-    if ((Op->Common.AmlOpcode != AML_DWORD_OP) &&
-        (Op->Common.AmlOpcode != AML_WORD_OP))
-    {
-        return;
-    }
-
-    /* Swap from little-endian to big-endian to simplify conversion */
-
-    BigEndianId = AcpiUtDwordByteSwap ((UINT32) Op->Common.Value.Integer);
-
-    /* Create the 3 leading ASCII letters */
-
-    Prefix[0] = ((BigEndianId >> 26) & 0x1F) + 0x40;
-    Prefix[1] = ((BigEndianId >> 21) & 0x1F) + 0x40;
-    Prefix[2] = ((BigEndianId >> 16) & 0x1F) + 0x40;
-
-    /* Verify that all 3 are ascii and alpha */
-
-    for (i = 0; i < 3; i++)
-    {
-        if (!ACPI_IS_ASCII (Prefix[i]) ||
-            !ACPI_IS_ALPHA (Prefix[i]))
-        {
-            return;
-        }
-    }
-
-    /* OK - mark this node as convertable to an EISA ID */
-
-    Op->Common.DisasmOpcode = ACPI_DASM_EISAID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIsEisaId
- *
- * PARAMETERS:  Op              - Op to be examined
- *
- * RETURN:      None
- *
- * DESCRIPTION: Determine if a Name() Op can be converted to an EisaId.
- *
- ******************************************************************************/
-
-void
-AcpiDmIsEisaId (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT32                  Name;
-    ACPI_PARSE_OBJECT       *NextOp;
-
-
-    /* Get the NameSegment */
-
-    Name = AcpiPsGetName (Op);
-    if (!Name)
-    {
-        return;
-    }
-
-    NextOp = AcpiPsGetDepthNext (NULL, Op);
-    if (!NextOp)
-    {
-        return;
-    }
-
-    /* Check for _HID - has one argument */
-
-    if (ACPI_COMPARE_NAME (&Name, METHOD_NAME__HID))
-    {
-        AcpiDmIsEisaIdElement (NextOp);
-        return;
-    }
-
-    /* Exit if not _CID */
-
-    if (!ACPI_COMPARE_NAME (&Name, METHOD_NAME__CID))
-    {
-        return;
-    }
-
-    /* _CID can contain a single argument or a package */
-
-    if (NextOp->Common.AmlOpcode != AML_PACKAGE_OP)
-    {
-        AcpiDmIsEisaIdElement (NextOp);
-        return;
-    }
-
-    /* _CID with Package: get the package length */
-
-    NextOp = AcpiPsGetDepthNext (NULL, NextOp);
-
-    /* Don't need to use the length, just walk the peer list */
-
-    NextOp = NextOp->Common.Next;
-    while (NextOp)
-    {
-        AcpiDmIsEisaIdElement (NextOp);
-        NextOp = NextOp->Common.Next;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmEisaId
- *
- * PARAMETERS:  EncodedId       - Raw encoded EISA ID.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Convert an encoded EISAID back to the original ASCII String.
- *
- ******************************************************************************/
-
-void
-AcpiDmEisaId (
-    UINT32                  EncodedId)
-{
-    UINT32                  BigEndianId;
-
-
-    /* Swap from little-endian to big-endian to simplify conversion */
-
-    BigEndianId = AcpiUtDwordByteSwap (EncodedId);
-
-
-    /* Split to form "AAANNNN" string */
-
-    AcpiOsPrintf ("EisaId (\"%c%c%c%4.4X\")",
-
-        /* Three Alpha characters (AAA), 5 bits each */
-
-        (int) ((BigEndianId >> 26) & 0x1F) + 0x40,
-        (int) ((BigEndianId >> 21) & 0x1F) + 0x40,
-        (int) ((BigEndianId >> 16) & 0x1F) + 0x40,
-
-        /* Numeric part (NNNN) is simply the lower 16 bits */
-
-        (UINT32) (BigEndianId & 0xFFFF));
-}
-
-#endif
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmnames.c b/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmnames.c
deleted file mode 100644 (file)
index b09d3d3..0000000
+++ /dev/null
@@ -1,525 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmnames - AML disassembler, names, namestrings, pathnames
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-#include "acdisasm.h"
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dmnames")
-
-/* Local prototypes */
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-void
-AcpiDmDisplayPath (
-    ACPI_PARSE_OBJECT       *Op);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDumpName
- *
- * PARAMETERS:  Name            - 4 character ACPI name
- *
- * RETURN:      Final length of name
- *
- * DESCRIPTION: Dump an ACPI name, minus any trailing underscores.
- *
- ******************************************************************************/
-
-UINT32
-AcpiDmDumpName (
-    UINT32                  Name)
-{
-    UINT32                  i;
-    UINT32                  Length;
-    char                    NewName[4];
-
-
-    /* Copy name locally in case the original name is not writeable */
-
-    *ACPI_CAST_PTR (UINT32, &NewName[0]) = Name;
-
-    /* Ensure that the name is printable, even if we have to fix it */
-
-    AcpiUtRepairName (NewName);
-
-    /* Remove all trailing underscores from the name */
-
-    Length = ACPI_NAME_SIZE;
-    for (i = (ACPI_NAME_SIZE - 1); i != 0; i--)
-    {
-        if (NewName[i] == '_')
-        {
-            Length--;
-        }
-        else
-        {
-            break;
-        }
-    }
-
-    /* Dump the name, up to the start of the trailing underscores */
-
-    for (i = 0; i < Length; i++)
-    {
-        AcpiOsPrintf ("%c", NewName[i]);
-    }
-
-    return (Length);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsDisplayObjectPathname
- *
- * PARAMETERS:  WalkState       - Current walk state
- *              Op              - Object whose pathname is to be obtained
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Diplay the pathname associated with a named object.  Two
- *              versions. One searches the parse tree (for parser-only
- *              applications suchas AcpiDump), and the other searches the
- *              ACPI namespace (the parse tree is probably deleted)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsDisplayObjectPathname (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_BUFFER             Buffer;
-    UINT32                  DebugLevel;
-
-
-    /* Save current debug level so we don't get extraneous debug output */
-
-    DebugLevel = AcpiDbgLevel;
-    AcpiDbgLevel = 0;
-
-    /* Just get the Node out of the Op object */
-
-    Node = Op->Common.Node;
-    if (!Node)
-    {
-        /* Node not defined in this scope, look it up */
-
-        Status = AcpiNsLookup (WalkState->ScopeInfo, Op->Common.Value.String,
-                    ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
-                    WalkState, &(Node));
-
-        if (ACPI_FAILURE (Status))
-        {
-            /*
-             * We can't get the pathname since the object
-             * is not in the namespace.  This can happen during single
-             * stepping where a dynamic named object is *about* to be created.
-             */
-            AcpiOsPrintf ("  [Path not found]");
-            goto Exit;
-        }
-
-        /* Save it for next time. */
-
-        Op->Common.Node = Node;
-    }
-
-    /* Convert NamedDesc/handle to a full pathname */
-
-    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    Status = AcpiNsHandleToPathname (Node, &Buffer);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsPrintf ("****Could not get pathname****)");
-        goto Exit;
-    }
-
-    AcpiOsPrintf ("  (Path %s)", (char *) Buffer.Pointer);
-    ACPI_FREE (Buffer.Pointer);
-
-
-Exit:
-    /* Restore the debug level */
-
-    AcpiDbgLevel = DebugLevel;
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmNamestring
- *
- * PARAMETERS:  Name                - ACPI Name string to store
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode and dump an ACPI namestring. Handles prefix characters
- *
- ******************************************************************************/
-
-void
-AcpiDmNamestring (
-    char                    *Name)
-{
-    UINT32                  SegCount;
-
-
-    if (!Name)
-    {
-        return;
-    }
-
-    /* Handle all Scope Prefix operators */
-
-    while (AcpiPsIsPrefixChar (ACPI_GET8 (Name)))
-    {
-        /* Append prefix character */
-
-        AcpiOsPrintf ("%1c", ACPI_GET8 (Name));
-        Name++;
-    }
-
-    switch (ACPI_GET8 (Name))
-    {
-    case 0:
-        SegCount = 0;
-        break;
-
-    case AML_DUAL_NAME_PREFIX:
-        SegCount = 2;
-        Name++;
-        break;
-
-    case AML_MULTI_NAME_PREFIX_OP:
-        SegCount = (UINT32) ACPI_GET8 (Name + 1);
-        Name += 2;
-        break;
-
-    default:
-        SegCount = 1;
-        break;
-    }
-
-    while (SegCount)
-    {
-        /* Append Name segment */
-
-        AcpiDmDumpName (*ACPI_CAST_PTR (UINT32, Name));
-
-        SegCount--;
-        if (SegCount)
-        {
-            /* Not last name, append dot separator */
-
-            AcpiOsPrintf (".");
-        }
-        Name += ACPI_NAME_SIZE;
-    }
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDisplayPath
- *
- * PARAMETERS:  Op                  - Named Op whose path is to be constructed
- *
- * RETURN:      None
- *
- * DESCRIPTION: Walk backwards from current scope and display the name
- *              of each previous level of scope up to the root scope
- *              (like "pwd" does with file systems)
- *
- ******************************************************************************/
-
-void
-AcpiDmDisplayPath (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_PARSE_OBJECT       *Prev;
-    ACPI_PARSE_OBJECT       *Search;
-    UINT32                  Name;
-    BOOLEAN                 DoDot = FALSE;
-    ACPI_PARSE_OBJECT       *NamePath;
-    const ACPI_OPCODE_INFO  *OpInfo;
-
-
-    /* We are only interested in named objects */
-
-    OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-    if (!(OpInfo->Flags & AML_NSNODE))
-    {
-        return;
-    }
-
-    if (OpInfo->Flags & AML_CREATE)
-    {
-        /* Field creation - check for a fully qualified namepath */
-
-        if (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP)
-        {
-            NamePath = AcpiPsGetArg (Op, 3);
-        }
-        else
-        {
-            NamePath = AcpiPsGetArg (Op, 2);
-        }
-
-        if ((NamePath) &&
-            (NamePath->Common.Value.String) &&
-            (NamePath->Common.Value.String[0] == '\\'))
-        {
-            AcpiDmNamestring (NamePath->Common.Value.String);
-            return;
-        }
-    }
-
-    Prev = NULL;            /* Start with Root Node */
-
-    while (Prev != Op)
-    {
-        /* Search upwards in the tree to find scope with "prev" as its parent */
-
-        Search = Op;
-        for (; ;)
-        {
-            if (Search->Common.Parent == Prev)
-            {
-                break;
-            }
-
-            /* Go up one level */
-
-            Search = Search->Common.Parent;
-        }
-
-        if (Prev)
-        {
-            OpInfo = AcpiPsGetOpcodeInfo (Search->Common.AmlOpcode);
-            if (!(OpInfo->Flags & AML_FIELD))
-            {
-                /* Below root scope, append scope name */
-
-                if (DoDot)
-                {
-                    /* Append dot */
-
-                    AcpiOsPrintf (".");
-                }
-
-                if (OpInfo->Flags & AML_CREATE)
-                {
-                    if (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP)
-                    {
-                        NamePath = AcpiPsGetArg (Op, 3);
-                    }
-                    else
-                    {
-                        NamePath = AcpiPsGetArg (Op, 2);
-                    }
-
-                    if ((NamePath) &&
-                        (NamePath->Common.Value.String))
-                    {
-                        AcpiDmDumpName (NamePath->Common.Value.String);
-                    }
-                }
-                else
-                {
-                    Name = AcpiPsGetName (Search);
-                    AcpiDmDumpName ((char *) &Name);
-                }
-
-                DoDot = TRUE;
-            }
-        }
-        Prev = Search;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmValidateName
- *
- * PARAMETERS:  Name            - 4 character ACPI name
- *
- * RETURN:      None
- *
- * DESCRIPTION: Lookup the name
- *
- ******************************************************************************/
-
-void
-AcpiDmValidateName (
-    char                    *Name,
-    ACPI_PARSE_OBJECT       *Op)
-{
-
-    if ((!Name) ||
-        (!Op->Common.Parent))
-    {
-        return;
-    }
-
-    if (!Op->Common.Node)
-    {
-        AcpiOsPrintf (
-            " /**** Name not found or not accessible from this scope ****/ ");
-    }
-
-    ACPI_PARSE_OBJECT       *TargetOp;
-
-
-    if ((!Name) ||
-        (!Op->Common.Parent))
-    {
-        return;
-    }
-
-    TargetOp = AcpiPsFind (Op, Name, 0, 0);
-    if (!TargetOp)
-    {
-        /*
-         * Didn't find the name in the parse tree.  This may be
-         * a problem, or it may simply be one of the predefined names
-         * (such as _OS_).  Rather than worry about looking up all
-         * the predefined names, just display the name as given
-         */
-        AcpiOsPrintf (
-            " /**** Name not found or not accessible from this scope ****/ ");
-    }
-}
-#endif
-
-#endif
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmobject.c b/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmobject.c
deleted file mode 100644 (file)
index 0f56992..0000000
+++ /dev/null
@@ -1,661 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmobject - ACPI object decode and display
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acdisasm.h"
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dmnames")
-
-/* Local prototypes */
-
-static void
-AcpiDmDecodeNode (
-    ACPI_NAMESPACE_NODE     *Node);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDumpMethodInfo
- *
- * PARAMETERS:  Status          - Method execution status
- *              WalkState       - Current state of the parse tree walk
- *              Op              - Executing parse op
- *
- * RETURN:      None
- *
- * DESCRIPTION: Called when a method has been aborted because of an error.
- *              Dumps the method execution stack, and the method locals/args,
- *              and disassembles the AML opcode that failed.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpMethodInfo (
-    ACPI_STATUS             Status,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_PARSE_OBJECT       *Next;
-    ACPI_THREAD_STATE       *Thread;
-    ACPI_WALK_STATE         *NextWalkState;
-    ACPI_NAMESPACE_NODE     *PreviousMethod = NULL;
-
-
-    /* Ignore control codes, they are not errors */
-
-    if ((Status & AE_CODE_MASK) == AE_CODE_CONTROL)
-    {
-        return;
-    }
-
-    /* We may be executing a deferred opcode */
-
-    if (WalkState->DeferredNode)
-    {
-        AcpiOsPrintf ("Executing subtree for Buffer/Package/Region\n");
-        return;
-    }
-
-    /*
-     * If there is no Thread, we are not actually executing a method.
-     * This can happen when the iASL compiler calls the interpreter
-     * to perform constant folding.
-     */
-    Thread = WalkState->Thread;
-    if (!Thread)
-    {
-        return;
-    }
-
-    /* Display exception and method name */
-
-    AcpiOsPrintf ("\n**** Exception %s during execution of method ",
-        AcpiFormatException (Status));
-    AcpiNsPrintNodePathname (WalkState->MethodNode, NULL);
-
-    /* Display stack of executing methods */
-
-    AcpiOsPrintf ("\n\nMethod Execution Stack:\n");
-    NextWalkState = Thread->WalkStateList;
-
-    /* Walk list of linked walk states */
-
-    while (NextWalkState)
-    {
-        AcpiOsPrintf ("    Method [%4.4s] executing: ",
-                AcpiUtGetNodeName (NextWalkState->MethodNode));
-
-        /* First method is the currently executing method */
-
-        if (NextWalkState == WalkState)
-        {
-            if (Op)
-            {
-                /* Display currently executing ASL statement */
-
-                Next = Op->Common.Next;
-                Op->Common.Next = NULL;
-
-                AcpiDmDisassemble (NextWalkState, Op, ACPI_UINT32_MAX);
-                Op->Common.Next = Next;
-            }
-        }
-        else
-        {
-            /*
-             * This method has called another method
-             * NOTE: the method call parse subtree is already deleted at this
-             * point, so we cannot disassemble the method invocation.
-             */
-            AcpiOsPrintf ("Call to method ");
-            AcpiNsPrintNodePathname (PreviousMethod, NULL);
-        }
-
-        PreviousMethod = NextWalkState->MethodNode;
-        NextWalkState = NextWalkState->Next;
-        AcpiOsPrintf ("\n");
-    }
-
-    /* Display the method locals and arguments */
-
-    AcpiOsPrintf ("\n");
-    AcpiDmDisplayLocals (WalkState);
-    AcpiOsPrintf ("\n");
-    AcpiDmDisplayArguments (WalkState);
-    AcpiOsPrintf ("\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDecodeInternalObject
- *
- * PARAMETERS:  ObjDesc         - Object to be displayed
- *
- * RETURN:      None
- *
- * DESCRIPTION: Short display of an internal object.  Numbers/Strings/Buffers.
- *
- ******************************************************************************/
-
-void
-AcpiDmDecodeInternalObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    UINT32                  i;
-
-
-    if (!ObjDesc)
-    {
-        AcpiOsPrintf (" Uninitialized");
-        return;
-    }
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
-    {
-        AcpiOsPrintf (" %p [%s]", ObjDesc, AcpiUtGetDescriptorName (ObjDesc));
-        return;
-    }
-
-    AcpiOsPrintf (" %s", AcpiUtGetObjectTypeName (ObjDesc));
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-
-        AcpiOsPrintf (" %8.8X%8.8X",
-                ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
-        break;
-
-
-    case ACPI_TYPE_STRING:
-
-        AcpiOsPrintf ("(%d) \"%.24s",
-                ObjDesc->String.Length, ObjDesc->String.Pointer);
-
-        if (ObjDesc->String.Length > 24)
-        {
-            AcpiOsPrintf ("...");
-        }
-        else
-        {
-            AcpiOsPrintf ("\"");
-        }
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        AcpiOsPrintf ("(%d)", ObjDesc->Buffer.Length);
-        for (i = 0; (i < 8) && (i < ObjDesc->Buffer.Length); i++)
-        {
-            AcpiOsPrintf (" %2.2X", ObjDesc->Buffer.Pointer[i]);
-        }
-        break;
-
-
-    default:
-
-        AcpiOsPrintf (" %p", ObjDesc);
-        break;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDecodeNode
- *
- * PARAMETERS:  Node        - Object to be displayed
- *
- * RETURN:      None
- *
- * DESCRIPTION: Short display of a namespace node
- *
- ******************************************************************************/
-
-static void
-AcpiDmDecodeNode (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-
-    AcpiOsPrintf ("<Node>            Name %4.4s",
-            AcpiUtGetNodeName (Node));
-
-    if (Node->Flags & ANOBJ_METHOD_ARG)
-    {
-        AcpiOsPrintf (" [Method Arg]");
-    }
-    if (Node->Flags & ANOBJ_METHOD_LOCAL)
-    {
-        AcpiOsPrintf (" [Method Local]");
-    }
-
-    switch (Node->Type)
-    {
-    /* These types have no attached object */
-
-    case ACPI_TYPE_DEVICE:
-        AcpiOsPrintf (" Device");
-        break;
-
-    case ACPI_TYPE_THERMAL:
-        AcpiOsPrintf (" Thermal Zone");
-        break;
-
-    default:
-        AcpiDmDecodeInternalObject (AcpiNsGetAttachedObject (Node));
-        break;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDisplayInternalObject
- *
- * PARAMETERS:  ObjDesc         - Object to be displayed
- *              WalkState       - Current walk state
- *
- * RETURN:      None
- *
- * DESCRIPTION: Short display of an internal object
- *
- ******************************************************************************/
-
-void
-AcpiDmDisplayInternalObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    UINT8                   Type;
-
-
-    AcpiOsPrintf ("%p ", ObjDesc);
-
-    if (!ObjDesc)
-    {
-        AcpiOsPrintf ("<Null Object>\n");
-        return;
-    }
-
-    /* Decode the object type */
-
-    switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
-    {
-    case ACPI_DESC_TYPE_PARSER:
-
-        AcpiOsPrintf ("<Parser>  ");
-        break;
-
-
-    case ACPI_DESC_TYPE_NAMED:
-
-        AcpiDmDecodeNode ((ACPI_NAMESPACE_NODE *) ObjDesc);
-        break;
-
-
-    case ACPI_DESC_TYPE_OPERAND:
-
-        Type = ObjDesc->Common.Type;
-        if (Type > ACPI_TYPE_LOCAL_MAX)
-        {
-            AcpiOsPrintf (" Type %X [Invalid Type]", (UINT32) Type);
-            return;
-        }
-
-        /* Decode the ACPI object type */
-
-        switch (ObjDesc->Common.Type)
-        {
-        case ACPI_TYPE_LOCAL_REFERENCE:
-
-            AcpiOsPrintf ("[%s] ", AcpiUtGetReferenceName (ObjDesc));
-
-            /* Decode the refererence */
-
-            switch (ObjDesc->Reference.Class)
-            {
-            case ACPI_REFCLASS_LOCAL:
-
-                AcpiOsPrintf ("%X ", ObjDesc->Reference.Value);
-                if (WalkState)
-                {
-                    ObjDesc = WalkState->LocalVariables
-                                [ObjDesc->Reference.Value].Object;
-                    AcpiOsPrintf ("%p", ObjDesc);
-                    AcpiDmDecodeInternalObject (ObjDesc);
-                }
-                break;
-
-
-            case ACPI_REFCLASS_ARG:
-
-                AcpiOsPrintf ("%X ", ObjDesc->Reference.Value);
-                if (WalkState)
-                {
-                    ObjDesc = WalkState->Arguments
-                                [ObjDesc->Reference.Value].Object;
-                    AcpiOsPrintf ("%p", ObjDesc);
-                    AcpiDmDecodeInternalObject (ObjDesc);
-                }
-                break;
-
-
-            case ACPI_REFCLASS_INDEX:
-
-                switch (ObjDesc->Reference.TargetType)
-                {
-                case ACPI_TYPE_BUFFER_FIELD:
-
-                    AcpiOsPrintf ("%p", ObjDesc->Reference.Object);
-                    AcpiDmDecodeInternalObject (ObjDesc->Reference.Object);
-                    break;
-
-                case ACPI_TYPE_PACKAGE:
-
-                    AcpiOsPrintf ("%p", ObjDesc->Reference.Where);
-                    if (!ObjDesc->Reference.Where)
-                    {
-                        AcpiOsPrintf (" Uninitialized WHERE pointer");
-                    }
-                    else
-                    {
-                        AcpiDmDecodeInternalObject (
-                            *(ObjDesc->Reference.Where));
-                    }
-                    break;
-
-                default:
-
-                    AcpiOsPrintf ("Unknown index target type");
-                    break;
-                }
-                break;
-
-
-            case ACPI_REFCLASS_REFOF:
-
-                if (!ObjDesc->Reference.Object)
-                {
-                    AcpiOsPrintf ("Uninitialized reference subobject pointer");
-                    break;
-                }
-
-                /* Reference can be to a Node or an Operand object */
-
-                switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc->Reference.Object))
-                {
-                case ACPI_DESC_TYPE_NAMED:
-                    AcpiDmDecodeNode (ObjDesc->Reference.Object);
-                    break;
-
-                case ACPI_DESC_TYPE_OPERAND:
-                    AcpiDmDecodeInternalObject (ObjDesc->Reference.Object);
-                    break;
-
-                default:
-                    break;
-                }
-                break;
-
-
-            case ACPI_REFCLASS_NAME:
-
-                AcpiDmDecodeNode (ObjDesc->Reference.Node);
-                break;
-
-
-            case ACPI_REFCLASS_DEBUG:
-            case ACPI_REFCLASS_TABLE:
-
-                AcpiOsPrintf ("\n");
-                break;
-
-
-            default:    /* Unknown reference class */
-
-                AcpiOsPrintf ("%2.2X\n", ObjDesc->Reference.Class);
-                break;
-            }
-            break;
-
-
-        default:
-
-            AcpiOsPrintf ("<Obj>            ");
-            AcpiDmDecodeInternalObject (ObjDesc);
-            break;
-        }
-        break;
-
-
-    default:
-
-        AcpiOsPrintf ("<Not a valid ACPI Object Descriptor> [%s]",
-            AcpiUtGetDescriptorName (ObjDesc));
-        break;
-    }
-
-    AcpiOsPrintf ("\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDisplayLocals
- *
- * PARAMETERS:  WalkState       - State for current method
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display all locals for the currently running control method
- *
- ******************************************************************************/
-
-void
-AcpiDmDisplayLocals (
-    ACPI_WALK_STATE         *WalkState)
-{
-    UINT32                  i;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ObjDesc = WalkState->MethodDesc;
-    Node    = WalkState->MethodNode;
-    if (!Node)
-    {
-        AcpiOsPrintf (
-            "No method node (Executing subtree for buffer or opregion)\n");
-        return;
-    }
-
-    if (Node->Type != ACPI_TYPE_METHOD)
-    {
-        AcpiOsPrintf ("Executing subtree for Buffer/Package/Region\n");
-        return;
-    }
-
-    AcpiOsPrintf ("Local Variables for method [%4.4s]:\n",
-            AcpiUtGetNodeName (Node));
-
-    for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++)
-    {
-        ObjDesc = WalkState->LocalVariables[i].Object;
-        AcpiOsPrintf ("    Local%X: ", i);
-        AcpiDmDisplayInternalObject (ObjDesc, WalkState);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDisplayArguments
- *
- * PARAMETERS:  WalkState       - State for current method
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display all arguments for the currently running control method
- *
- ******************************************************************************/
-
-void
-AcpiDmDisplayArguments (
-    ACPI_WALK_STATE         *WalkState)
-{
-    UINT32                  i;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ObjDesc = WalkState->MethodDesc;
-    Node    = WalkState->MethodNode;
-    if (!Node)
-    {
-        AcpiOsPrintf (
-            "No method node (Executing subtree for buffer or opregion)\n");
-        return;
-    }
-
-    if (Node->Type != ACPI_TYPE_METHOD)
-    {
-        AcpiOsPrintf ("Executing subtree for Buffer/Package/Region\n");
-        return;
-    }
-
-    AcpiOsPrintf (
-        "Arguments for Method [%4.4s]:  (%X arguments defined, max concurrency = %X)\n",
-        AcpiUtGetNodeName (Node), ObjDesc->Method.ParamCount, ObjDesc->Method.SyncLevel);
-
-    for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++)
-    {
-        ObjDesc = WalkState->Arguments[i].Object;
-        AcpiOsPrintf ("    Arg%d:   ", i);
-        AcpiDmDisplayInternalObject (ObjDesc, WalkState);
-    }
-}
-
-#endif
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmopcode.c b/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmopcode.c
deleted file mode 100644 (file)
index 931ef6c..0000000
+++ /dev/null
@@ -1,632 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmopcode - AML disassembler, specific AML opcodes
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-#include "acdisasm.h"
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dmopcode")
-
-/* Local prototypes */
-
-static void
-AcpiDmMatchKeyword (
-    ACPI_PARSE_OBJECT       *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmMethodFlags
- *
- * PARAMETERS:  Op              - Method Object to be examined
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode control method flags
- *
- ******************************************************************************/
-
-void
-AcpiDmMethodFlags (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT32                  Flags;
-    UINT32                  Args;
-
-
-    /* The next Op contains the flags */
-
-    Op = AcpiPsGetDepthNext (NULL, Op);
-    Flags = (UINT8) Op->Common.Value.Integer;
-    Args = Flags & 0x07;
-
-    /* Mark the Op as completed */
-
-    Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
-    /* 1) Method argument count */
-
-    AcpiOsPrintf (", %d, ", Args);
-
-    /* 2) Serialize rule */
-
-    if (!(Flags & 0x08))
-    {
-        AcpiOsPrintf ("Not");
-    }
-
-    AcpiOsPrintf ("Serialized");
-
-    /* 3) SyncLevel */
-
-    if (Flags & 0xF0)
-    {
-        AcpiOsPrintf (", %d", Flags >> 4);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmFieldFlags
- *
- * PARAMETERS:  Op              - Field Object to be examined
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode Field definition flags
- *
- ******************************************************************************/
-
-void
-AcpiDmFieldFlags (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    UINT32                  Flags;
-
-
-    Op = Op->Common.Next;
-    Flags = (UINT8) Op->Common.Value.Integer;
-
-    /* Mark the Op as completed */
-
-    Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
-    AcpiOsPrintf ("%s, ", AcpiGbl_AccessTypes [Flags & 0x07]);
-    AcpiOsPrintf ("%s, ", AcpiGbl_LockRule [(Flags & 0x10) >> 4]);
-    AcpiOsPrintf ("%s)",  AcpiGbl_UpdateRules [(Flags & 0x60) >> 5]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmAddressSpace
- *
- * PARAMETERS:  SpaceId         - ID to be translated
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a SpaceId to an AddressSpaceKeyword
- *
- ******************************************************************************/
-
-void
-AcpiDmAddressSpace (
-    UINT8                   SpaceId)
-{
-
-    if (SpaceId >= ACPI_NUM_PREDEFINED_REGIONS)
-    {
-        if (SpaceId == 0x7F)
-        {
-            AcpiOsPrintf ("FFixedHW, ");
-        }
-        else
-        {
-            AcpiOsPrintf ("0x%.2X, ", SpaceId);
-        }
-    }
-    else
-    {
-        AcpiOsPrintf ("%s, ", AcpiGbl_RegionTypes [SpaceId]);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmRegionFlags
- *
- * PARAMETERS:  Op              - Object to be examined
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode OperationRegion flags
- *
- ******************************************************************************/
-
-void
-AcpiDmRegionFlags (
-    ACPI_PARSE_OBJECT       *Op)
-{
-
-
-    /* The next Op contains the SpaceId */
-
-    Op = AcpiPsGetDepthNext (NULL, Op);
-
-    /* Mark the Op as completed */
-
-    Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
-    AcpiOsPrintf (", ");
-    AcpiDmAddressSpace ((UINT8) Op->Common.Value.Integer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmMatchOp
- *
- * PARAMETERS:  Op              - Match Object to be examined
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode Match opcode operands
- *
- ******************************************************************************/
-
-void
-AcpiDmMatchOp (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_PARSE_OBJECT       *NextOp;
-
-
-    NextOp = AcpiPsGetDepthNext (NULL, Op);
-    NextOp = NextOp->Common.Next;
-
-    if (!NextOp)
-    {
-        /* Handle partial tree during single-step */
-
-        return;
-    }
-
-    /* Mark the two nodes that contain the encoding for the match keywords */
-
-    NextOp->Common.DisasmOpcode = ACPI_DASM_MATCHOP;
-
-    NextOp = NextOp->Common.Next;
-    NextOp = NextOp->Common.Next;
-    NextOp->Common.DisasmOpcode = ACPI_DASM_MATCHOP;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmMatchKeyword
- *
- * PARAMETERS:  Op              - Match Object to be examined
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode Match opcode operands
- *
- ******************************************************************************/
-
-static void
-AcpiDmMatchKeyword (
-    ACPI_PARSE_OBJECT       *Op)
-{
-
-
-    if (((UINT32) Op->Common.Value.Integer) > ACPI_MAX_MATCH_OPCODE)
-    {
-        AcpiOsPrintf ("/* Unknown Match Keyword encoding */");
-    }
-    else
-    {
-        AcpiOsPrintf ("%s", ACPI_CAST_PTR (char,
-            AcpiGbl_MatchOps[(ACPI_SIZE) Op->Common.Value.Integer]));
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDisassembleOneOp
- *
- * PARAMETERS:  WalkState           - Current walk info
- *              Info                - Parse tree walk info
- *              Op                  - Op that is to be printed
- *
- * RETURN:      None
- *
- * DESCRIPTION: Disassemble a single AML opcode
- *
- ******************************************************************************/
-
-void
-AcpiDmDisassembleOneOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_OP_WALK_INFO       *Info,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    const ACPI_OPCODE_INFO  *OpInfo = NULL;
-    UINT32                  Offset;
-    UINT32                  Length;
-    ACPI_PARSE_OBJECT       *Child;
-    ACPI_STATUS             Status;
-
-
-    if (!Op)
-    {
-        AcpiOsPrintf ("<NULL OP PTR>");
-        return;
-    }
-
-    switch (Op->Common.DisasmOpcode)
-    {
-    case ACPI_DASM_MATCHOP:
-
-        AcpiDmMatchKeyword (Op);
-        return;
-
-    case ACPI_DASM_LNOT_SUFFIX:
-        switch (Op->Common.AmlOpcode)
-        {
-        case AML_LEQUAL_OP:
-            AcpiOsPrintf ("LNotEqual");
-            break;
-
-        case AML_LGREATER_OP:
-            AcpiOsPrintf ("LLessEqual");
-            break;
-
-        case AML_LLESS_OP:
-            AcpiOsPrintf ("LGreaterEqual");
-            break;
-
-        default:
-            break;
-        }
-        Op->Common.DisasmOpcode = 0;
-        Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-        return;
-
-    default:
-        break;
-    }
-
-
-    OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
-    /* The op and arguments */
-
-    switch (Op->Common.AmlOpcode)
-    {
-    case AML_LNOT_OP:
-
-        Child = Op->Common.Value.Arg;
-        if ((Child->Common.AmlOpcode == AML_LEQUAL_OP) ||
-            (Child->Common.AmlOpcode == AML_LGREATER_OP) ||
-            (Child->Common.AmlOpcode == AML_LLESS_OP))
-        {
-            Child->Common.DisasmOpcode = ACPI_DASM_LNOT_SUFFIX;
-            Op->Common.DisasmOpcode = ACPI_DASM_LNOT_PREFIX;
-        }
-        else
-        {
-            AcpiOsPrintf ("%s", OpInfo->Name);
-        }
-        break;
-
-    case AML_BYTE_OP:
-
-        AcpiOsPrintf ("0x%2.2X", (UINT32) Op->Common.Value.Integer);
-        break;
-
-
-    case AML_WORD_OP:
-
-        if (Op->Common.DisasmOpcode == ACPI_DASM_EISAID)
-        {
-            AcpiDmEisaId ((UINT32) Op->Common.Value.Integer);
-        }
-        else
-        {
-            AcpiOsPrintf ("0x%4.4X", (UINT32) Op->Common.Value.Integer);
-        }
-        break;
-
-
-    case AML_DWORD_OP:
-
-        if (Op->Common.DisasmOpcode == ACPI_DASM_EISAID)
-        {
-            AcpiDmEisaId ((UINT32) Op->Common.Value.Integer);
-        }
-        else
-        {
-            AcpiOsPrintf ("0x%8.8X", (UINT32) Op->Common.Value.Integer);
-        }
-        break;
-
-
-    case AML_QWORD_OP:
-
-        AcpiOsPrintf ("0x%8.8X%8.8X", Op->Common.Value.Integer64.Hi,
-                                      Op->Common.Value.Integer64.Lo);
-        break;
-
-
-    case AML_STRING_OP:
-
-        AcpiUtPrintString (Op->Common.Value.String, ACPI_UINT8_MAX);
-        break;
-
-
-    case AML_BUFFER_OP:
-
-        /*
-         * Determine the type of buffer.  We can have one of the following:
-         *
-         * 1) ResourceTemplate containing Resource Descriptors.
-         * 2) Unicode String buffer
-         * 3) ASCII String buffer
-         * 4) Raw data buffer (if none of the above)
-         *
-         * Since there are no special AML opcodes to differentiate these
-         * types of buffers, we have to closely look at the data in the
-         * buffer to determine the type.
-         */
-        Status = AcpiDmIsResourceTemplate (Op);
-        if (ACPI_SUCCESS (Status))
-        {
-            Op->Common.DisasmOpcode = ACPI_DASM_RESOURCE;
-            AcpiOsPrintf ("ResourceTemplate");
-            break;
-        }
-        else if (Status == AE_AML_NO_RESOURCE_END_TAG)
-        {
-            AcpiOsPrintf ("/**** Is ResourceTemplate, but EndTag not at buffer end ****/ ");
-        }
-
-        if (AcpiDmIsUnicodeBuffer (Op))
-        {
-            Op->Common.DisasmOpcode = ACPI_DASM_UNICODE;
-            AcpiOsPrintf ("Unicode (");
-        }
-        else if (AcpiDmIsStringBuffer (Op))
-        {
-            Op->Common.DisasmOpcode = ACPI_DASM_STRING;
-            AcpiOsPrintf ("Buffer");
-        }
-        else
-        {
-            Op->Common.DisasmOpcode = ACPI_DASM_BUFFER;
-            AcpiOsPrintf ("Buffer");
-        }
-        break;
-
-
-    case AML_INT_STATICSTRING_OP:
-
-        if (Op->Common.Value.String)
-        {
-            AcpiOsPrintf ("%s", Op->Common.Value.String);
-        }
-        else
-        {
-            AcpiOsPrintf ("\"<NULL STATIC STRING PTR>\"");
-        }
-        break;
-
-
-    case AML_INT_NAMEPATH_OP:
-
-        AcpiDmNamestring (Op->Common.Value.Name);
-        break;
-
-
-    case AML_INT_NAMEDFIELD_OP:
-
-        Length = AcpiDmDumpName (Op->Named.Name);
-        AcpiOsPrintf (",%*.s  %d", (int) (5 - Length), " ",
-            (UINT32) Op->Common.Value.Integer);
-        AcpiDmCommaIfFieldMember (Op);
-
-        Info->BitOffset += (UINT32) Op->Common.Value.Integer;
-        break;
-
-
-    case AML_INT_RESERVEDFIELD_OP:
-
-        /* Offset() -- Must account for previous offsets */
-
-        Offset = (UINT32) Op->Common.Value.Integer;
-        Info->BitOffset += Offset;
-
-        if (Info->BitOffset % 8 == 0)
-        {
-            AcpiOsPrintf ("        Offset (0x%.2X)", ACPI_DIV_8 (Info->BitOffset));
-        }
-        else
-        {
-            AcpiOsPrintf ("    ,   %d", Offset);
-        }
-
-        AcpiDmCommaIfFieldMember (Op);
-        break;
-
-
-    case AML_INT_ACCESSFIELD_OP:
-
-        AcpiOsPrintf ("        AccessAs (%s, ",
-            AcpiGbl_AccessTypes [(UINT32) (Op->Common.Value.Integer >> 8) & 0x7]);
-
-        AcpiDmDecodeAttribute ((UINT8) Op->Common.Value.Integer);
-        AcpiOsPrintf (")");
-        AcpiDmCommaIfFieldMember (Op);
-        break;
-
-
-    case AML_INT_BYTELIST_OP:
-
-        AcpiDmByteList (Info, Op);
-        break;
-
-
-    case AML_INT_METHODCALL_OP:
-
-        Op = AcpiPsGetDepthNext (NULL, Op);
-        Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
-        AcpiDmNamestring (Op->Common.Value.Name);
-        break;
-
-
-    default:
-
-        /* Just get the opcode name and print it */
-
-        AcpiOsPrintf ("%s", OpInfo->Name);
-
-
-#ifdef ACPI_DEBUGGER
-
-        if ((Op->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP) &&
-            (WalkState) &&
-            (WalkState->Results) &&
-            (WalkState->ResultCount))
-        {
-            AcpiDmDecodeInternalObject (
-                WalkState->Results->Results.ObjDesc [
-                    (WalkState->ResultCount - 1) %
-                        ACPI_RESULTS_FRAME_OBJ_NUM]);
-        }
-#endif
-
-        break;
-    }
-}
-
-#endif  /* ACPI_DISASSEMBLER */
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmresrc.c b/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmresrc.c
deleted file mode 100644 (file)
index f0fc4b1..0000000
+++ /dev/null
@@ -1,509 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmresrc.c - Resource Descriptor disassembly
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acdisasm.h"
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbresrc")
-
-
-/* Dispatch tables for Resource disassembly functions */
-
-typedef
-void (*ACPI_RESOURCE_HANDLER) (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level);
-
-static ACPI_RESOURCE_HANDLER    AcpiGbl_DmResourceDispatch [] =
-{
-    /* Small descriptors */
-
-    NULL,                           /* 0x00, Reserved */
-    NULL,                           /* 0x01, Reserved */
-    NULL,                           /* 0x02, Reserved */
-    NULL,                           /* 0x03, Reserved */
-    AcpiDmIrqDescriptor,            /* 0x04, ACPI_RESOURCE_NAME_IRQ_FORMAT */
-    AcpiDmDmaDescriptor,            /* 0x05, ACPI_RESOURCE_NAME_DMA_FORMAT */
-    AcpiDmStartDependentDescriptor, /* 0x06, ACPI_RESOURCE_NAME_START_DEPENDENT */
-    AcpiDmEndDependentDescriptor,   /* 0x07, ACPI_RESOURCE_NAME_END_DEPENDENT */
-    AcpiDmIoDescriptor,             /* 0x08, ACPI_RESOURCE_NAME_IO_PORT */
-    AcpiDmFixedIoDescriptor,        /* 0x09, ACPI_RESOURCE_NAME_FIXED_IO_PORT */
-    NULL,                           /* 0x0A, Reserved */
-    NULL,                           /* 0x0B, Reserved */
-    NULL,                           /* 0x0C, Reserved */
-    NULL,                           /* 0x0D, Reserved */
-    AcpiDmVendorSmallDescriptor,    /* 0x0E, ACPI_RESOURCE_NAME_SMALL_VENDOR */
-    NULL,                           /* 0x0F, ACPI_RESOURCE_NAME_END_TAG (not used) */
-
-    /* Large descriptors */
-
-    NULL,                           /* 0x00, Reserved */
-    AcpiDmMemory24Descriptor,       /* 0x01, ACPI_RESOURCE_NAME_MEMORY_24 */
-    AcpiDmGenericRegisterDescriptor,/* 0x02, ACPI_RESOURCE_NAME_GENERIC_REGISTER */
-    NULL,                           /* 0x03, Reserved */
-    AcpiDmVendorLargeDescriptor,    /* 0x04, ACPI_RESOURCE_NAME_LARGE_VENDOR */
-    AcpiDmMemory32Descriptor,       /* 0x05, ACPI_RESOURCE_NAME_MEMORY_32 */
-    AcpiDmFixedMemory32Descriptor,  /* 0x06, ACPI_RESOURCE_NAME_FIXED_MEMORY_32 */
-    AcpiDmDwordDescriptor,          /* 0x07, ACPI_RESOURCE_NAME_DWORD_ADDRESS_SPACE */
-    AcpiDmWordDescriptor,           /* 0x08, ACPI_RESOURCE_NAME_WORD_ADDRESS_SPACE */
-    AcpiDmInterruptDescriptor,      /* 0x09, ACPI_RESOURCE_NAME_EXTENDED_XRUPT */
-    AcpiDmQwordDescriptor,          /* 0x0A, ACPI_RESOURCE_NAME_QWORD_ADDRESS_SPACE */
-    AcpiDmExtendedDescriptor        /* 0x0B, ACPI_RESOURCE_NAME_EXTENDED_ADDRESS_SPACE */
-};
-
-
-/* Only used for single-threaded applications */
-/* TBD: remove when name is passed as parameter to the dump functions */
-
-static UINT32               ResourceName;
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDescriptorName
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Emit a name for the descriptor if one is present (indicated
- *              by the name being changed from the default name.) A name is only
- *              emitted if a reference to the descriptor has been made somewhere
- *              in the original ASL code.
- *
- ******************************************************************************/
-
-void
-AcpiDmDescriptorName (
-    void)
-{
-
-    if (ResourceName == ACPI_DEFAULT_RESNAME)
-    {
-        return;
-    }
-
-    AcpiOsPrintf ("%4.4s", (char *) &ResourceName);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDumpInteger*
- *
- * PARAMETERS:  Value               - Value to emit
- *              Name                - Associated name (emitted as a comment)
- *
- * RETURN:      None
- *
- * DESCRIPTION: Integer output helper functions
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpInteger8 (
-    UINT8                   Value,
-    char                    *Name)
-{
-    AcpiOsPrintf ("0x%2.2X,               // %s\n", Value, Name);
-}
-
-void
-AcpiDmDumpInteger16 (
-    UINT16                  Value,
-    char                    *Name)
-{
-    AcpiOsPrintf ("0x%4.4X,             // %s\n", Value, Name);
-}
-
-void
-AcpiDmDumpInteger32 (
-    UINT32                  Value,
-    char                    *Name)
-{
-    AcpiOsPrintf ("0x%8.8X,         // %s\n", Value, Name);
-}
-
-void
-AcpiDmDumpInteger64 (
-    UINT64                  Value,
-    char                    *Name)
-{
-    AcpiOsPrintf ("0x%8.8X%8.8X, // %s\n", ACPI_FORMAT_UINT64 (Value), Name);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmBitList
- *
- * PARAMETERS:  Mask            - 16-bit value corresponding to 16 interrupt
- *                                or DMA values
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump a bit mask as a list of individual interrupt/DMA levels.
- *
- ******************************************************************************/
-
-void
-AcpiDmBitList (
-    UINT16                  Mask)
-{
-    UINT32                  i;
-    BOOLEAN                 Previous = FALSE;
-
-
-    /* Open the initializer list */
-
-    AcpiOsPrintf ("{");
-
-    /* Examine each bit */
-
-    for (i = 0; i < 16; i++)
-    {
-        /* Only interested in bits that are set to 1 */
-
-        if (Mask & 1)
-        {
-            if (Previous)
-            {
-                AcpiOsPrintf (",");
-            }
-            Previous = TRUE;
-            AcpiOsPrintf ("%d", i);
-        }
-
-        Mask >>= 1;
-    }
-
-    /* Close list */
-
-    AcpiOsPrintf ("}\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmResourceTemplate
- *
- * PARAMETERS:  Info            - Curent parse tree walk info
- *              ByteData        - Pointer to the byte list data
- *              ByteCount       - Length of the byte list
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump the contents of a Resource Template containing a set of
- *              Resource Descriptors.
- *
- ******************************************************************************/
-
-void
-AcpiDmResourceTemplate (
-    ACPI_OP_WALK_INFO       *Info,
-    ACPI_PARSE_OBJECT       *Op,
-    UINT8                   *ByteData,
-    UINT32                  ByteCount)
-{
-    ACPI_STATUS             Status;
-    UINT32                  CurrentByteOffset;
-    UINT8                   ResourceType;
-    UINT32                  ResourceLength;
-    void                    *Aml;
-    UINT32                  Level;
-    BOOLEAN                 DependentFns = FALSE;
-    UINT8                   ResourceIndex;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    Level = Info->Level;
-    ResourceName = ACPI_DEFAULT_RESNAME;
-    Node = Op->Common.Node;
-    if (Node)
-    {
-        Node = Node->Child;
-    }
-
-    for (CurrentByteOffset = 0; CurrentByteOffset < ByteCount;)
-    {
-        Aml = &ByteData[CurrentByteOffset];
-
-        /* Get the descriptor type and length */
-
-        ResourceType = AcpiUtGetResourceType (Aml);
-        ResourceLength = AcpiUtGetResourceLength (Aml);
-
-        /* Validate the Resource Type and Resource Length */
-
-        Status = AcpiUtValidateResource (Aml, &ResourceIndex);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf ("/*** Could not validate Resource, type (%X) %s***/\n",
-                ResourceType, AcpiFormatException (Status));
-            return;
-        }
-
-        /* Point to next descriptor */
-
-        CurrentByteOffset += AcpiUtGetDescriptorLength (Aml);
-
-        /* Descriptor pre-processing */
-
-        switch (ResourceType)
-        {
-        case ACPI_RESOURCE_NAME_START_DEPENDENT:
-
-            /* Finish a previous StartDependentFns */
-
-            if (DependentFns)
-            {
-                Level--;
-                AcpiDmIndent (Level);
-                AcpiOsPrintf ("}\n");
-            }
-            break;
-
-        case ACPI_RESOURCE_NAME_END_DEPENDENT:
-
-            Level--;
-            DependentFns = FALSE;
-            break;
-
-        case ACPI_RESOURCE_NAME_END_TAG:
-
-            /* Normal exit, the resource list is finished */
-
-            if (DependentFns)
-            {
-                /*
-                 * Close an open StartDependentDescriptor. This indicates a
-                 * missing EndDependentDescriptor.
-                 */
-                Level--;
-                DependentFns = FALSE;
-
-                /* Go ahead and insert EndDependentFn() */
-
-                AcpiDmEndDependentDescriptor (Aml, ResourceLength, Level);
-
-                AcpiDmIndent (Level);
-                AcpiOsPrintf (
-                    "/*** Disassembler: inserted missing EndDependentFn () ***/\n");
-            }
-            return;
-
-        default:
-            break;
-        }
-
-        /* Disassemble the resource structure */
-
-        if (Node)
-        {
-            ResourceName = Node->Name.Integer;
-            Node = Node->Peer;
-        }
-
-        AcpiGbl_DmResourceDispatch [ResourceIndex] (
-            Aml, ResourceLength, Level);
-
-        /* Descriptor post-processing */
-
-        if (ResourceType == ACPI_RESOURCE_NAME_START_DEPENDENT)
-        {
-            DependentFns = TRUE;
-            Level++;
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIsResourceTemplate
- *
- * PARAMETERS:  Op          - Buffer Op to be examined
- *
- * RETURN:      Status. AE_OK if valid template
- *
- * DESCRIPTION: Walk a byte list to determine if it consists of a valid set
- *              of resource descriptors.  Nothing is output.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDmIsResourceTemplate (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status;
-    ACPI_PARSE_OBJECT       *NextOp;
-    UINT8                   *Aml;
-    UINT8                   *EndAml;
-    ACPI_SIZE               Length;
-
-
-    /* This op must be a buffer */
-
-    if (Op->Common.AmlOpcode != AML_BUFFER_OP)
-    {
-        return (AE_TYPE);
-    }
-
-    /* Get the ByteData list and length */
-
-    NextOp = Op->Common.Value.Arg;
-    NextOp = NextOp->Common.Next;
-    if (!NextOp)
-    {
-        return (AE_TYPE);
-    }
-
-    Aml = NextOp->Named.Data;
-    Length = (ACPI_SIZE) NextOp->Common.Value.Integer;
-
-    /* Walk the byte list, abort on any invalid descriptor type or length */
-
-    Status = AcpiUtWalkAmlResources (Aml, Length, NULL, &EndAml);
-    if (ACPI_FAILURE (Status))
-    {
-        return (AE_TYPE);
-    }
-
-    /*
-     * For the resource template to be valid, one EndTag must appear
-     * at the very end of the ByteList, not before. (For proper disassembly
-     * of a ResourceTemplate, the buffer must not have any extra data after
-     * the EndTag.)
-     */
-    if ((Aml + Length - sizeof (AML_RESOURCE_END_TAG)) != EndAml)
-    {
-        return (AE_AML_NO_RESOURCE_END_TAG);
-    }
-
-    /*
-     * All resource descriptors are valid, therefore this list appears
-     * to be a valid resource template
-     */
-    return (AE_OK);
-}
-
-#endif
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmresrcl.c b/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmresrcl.c
deleted file mode 100644 (file)
index b1b86db..0000000
+++ /dev/null
@@ -1,1125 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmresrcl.c - "Large" Resource Descriptor disassembly
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdisasm.h"
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbresrcl")
-
-
-/* Common names for address and memory descriptors */
-
-static char                 *AcpiDmAddressNames[] =
-{
-    "Granularity",
-    "Range Minimum",
-    "Range Maximum",
-    "Translation Offset",
-    "Length"
-};
-
-static char                 *AcpiDmMemoryNames[] =
-{
-    "Range Minimum",
-    "Range Maximum",
-    "Alignment",
-    "Length"
-};
-
-
-/* Local prototypes */
-
-static void
-AcpiDmSpaceFlags (
-        UINT8               Flags);
-
-static void
-AcpiDmIoFlags (
-        UINT8               Flags);
-
-static void
-AcpiDmIoFlags2 (
-        UINT8               SpecificFlags);
-
-static void
-AcpiDmMemoryFlags (
-    UINT8                   Flags,
-    UINT8                   SpecificFlags);
-
-static void
-AcpiDmMemoryFlags2 (
-    UINT8                   SpecificFlags);
-
-static void
-AcpiDmResourceSource (
-    AML_RESOURCE            *Resource,
-    ACPI_SIZE               MinimumLength,
-    UINT32                  Length);
-
-static void
-AcpiDmAddressFields (
-    void                    *Source,
-    UINT8                   Type,
-    UINT32                  Level);
-
-static void
-AcpiDmAddressPrefix (
-    UINT8                   Type);
-
-static void
-AcpiDmAddressCommon (
-    AML_RESOURCE            *Resource,
-    UINT8                   Type,
-    UINT32                  Level);
-
-static void
-AcpiDmAddressFlags (
-    AML_RESOURCE            *Resource);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmMemoryFields
- *
- * PARAMETERS:  Source              - Pointer to the contiguous data fields
- *              Type                - 16 or 32 (bit)
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode fields common to Memory24 and Memory32 descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmMemoryFields (
-    void                    *Source,
-    UINT8                   Type,
-    UINT32                  Level)
-{
-    UINT32                  i;
-
-
-    for (i = 0; i < 4; i++)
-    {
-        AcpiDmIndent (Level + 1);
-
-        switch (Type)
-        {
-        case 16:
-            AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
-                AcpiDmMemoryNames[i]);
-            break;
-
-        case 32:
-            AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
-                AcpiDmMemoryNames[i]);
-            break;
-
-        default:
-            return;
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmAddressFields
- *
- * PARAMETERS:  Source              - Pointer to the contiguous data fields
- *              Type                - 16, 32, or 64 (bit)
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode fields common to address descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddressFields (
-    void                    *Source,
-    UINT8                   Type,
-    UINT32                  Level)
-{
-    UINT32                  i;
-
-
-    AcpiOsPrintf ("\n");
-
-    for (i = 0; i < 5; i++)
-    {
-        AcpiDmIndent (Level + 1);
-
-        switch (Type)
-        {
-        case 16:
-            AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
-                AcpiDmAddressNames[i]);
-            break;
-
-        case 32:
-            AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
-                AcpiDmAddressNames[i]);
-            break;
-
-        case 64:
-            AcpiDmDumpInteger64 (ACPI_CAST_PTR (UINT64, Source)[i],
-                AcpiDmAddressNames[i]);
-            break;
-
-        default:
-            return;
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmAddressPrefix
- *
- * PARAMETERS:  Type                - Descriptor type
- *
- * RETURN:      None
- *
- * DESCRIPTION: Emit name prefix representing the address descriptor type
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddressPrefix (
-    UINT8                   Type)
-{
-
-    switch (Type)
-    {
-    case ACPI_RESOURCE_TYPE_ADDRESS16:
-        AcpiOsPrintf ("Word");
-        break;
-
-    case ACPI_RESOURCE_TYPE_ADDRESS32:
-        AcpiOsPrintf ("DWord");
-        break;
-
-    case ACPI_RESOURCE_TYPE_ADDRESS64:
-        AcpiOsPrintf ("QWord");
-        break;
-
-    case ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64:
-        AcpiOsPrintf ("Extended");
-        break;
-
-    default:
-        return;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmAddressCommon
- *
- * PARAMETERS:  Resource            - Raw AML descriptor
- *              Type                - Descriptor type
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Emit common name and flag fields common to address descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddressCommon (
-    AML_RESOURCE            *Resource,
-    UINT8                   Type,
-    UINT32                  Level)
-{
-    UINT8                   ResourceType;
-    UINT8                   SpecificFlags;
-    UINT8                   Flags;
-
-
-    ResourceType = Resource->Address.ResourceType;
-    SpecificFlags = Resource->Address.SpecificFlags;
-    Flags = Resource->Address.Flags;
-
-    AcpiDmIndent (Level);
-
-    /* Validate ResourceType */
-
-    if ((ResourceType > 2) && (ResourceType < 0xC0))
-    {
-        AcpiOsPrintf ("/**** Invalid Resource Type: 0x%X ****/", ResourceType);
-        return;
-    }
-
-    /* Prefix is either Word, DWord, QWord, or Extended */
-
-    AcpiDmAddressPrefix (Type);
-
-    /* Resource Types above 0xC0 are vendor-defined */
-
-    if (ResourceType > 2)
-    {
-        AcpiOsPrintf ("Space (0x%2.2X, ", ResourceType);
-        AcpiDmSpaceFlags (Flags);
-        AcpiOsPrintf (" 0x%2.2X,", SpecificFlags);
-        return;
-    }
-
-    /* This is either a Memory, IO, or BusNumber descriptor (0,1,2) */
-
-    AcpiOsPrintf ("%s (", AcpiGbl_WordDecode [ResourceType & 0x3]);
-
-    /* Decode the general and type-specific flags */
-
-    if (ResourceType == ACPI_MEMORY_RANGE)
-    {
-        AcpiDmMemoryFlags (Flags, SpecificFlags);
-    }
-    else /* IO range or BusNumberRange */
-    {
-        AcpiDmIoFlags (Flags);
-        if (ResourceType == ACPI_IO_RANGE)
-        {
-            AcpiOsPrintf (" %s,", AcpiGbl_RngDecode [SpecificFlags & 0x3]);
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmAddressFlags
- *
- * PARAMETERS:  Resource        - Raw AML descriptor
- *
- * RETURN:      None
- *
- * DESCRIPTION: Emit flags common to address descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddressFlags (
-    AML_RESOURCE            *Resource)
-{
-
-    if (Resource->Address.ResourceType == ACPI_IO_RANGE)
-    {
-        AcpiDmIoFlags2 (Resource->Address.SpecificFlags);
-    }
-    else if (Resource->Address.ResourceType == ACPI_MEMORY_RANGE)
-    {
-        AcpiDmMemoryFlags2 (Resource->Address.SpecificFlags);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmSpaceFlags
- *
- * PARAMETERS:  Flags               - Flag byte to be decoded
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode the flags specific to Space Address space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmSpaceFlags (
-    UINT8                   Flags)
-{
-
-    AcpiOsPrintf ("%s, %s, %s, %s,",
-        AcpiGbl_ConsumeDecode [(Flags & 1)],
-        AcpiGbl_DecDecode [(Flags & 0x2) >> 1],
-        AcpiGbl_MinDecode [(Flags & 0x4) >> 2],
-        AcpiGbl_MaxDecode [(Flags & 0x8) >> 3]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIoFlags
- *
- * PARAMETERS:  Flags               - Flag byte to be decoded
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode the flags specific to IO Address space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmIoFlags (
-        UINT8               Flags)
-{
-    AcpiOsPrintf ("%s, %s, %s, %s,",
-        AcpiGbl_ConsumeDecode [(Flags & 1)],
-        AcpiGbl_MinDecode [(Flags & 0x4) >> 2],
-        AcpiGbl_MaxDecode [(Flags & 0x8) >> 3],
-        AcpiGbl_DecDecode [(Flags & 0x2) >> 1]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIoFlags2
- *
- * PARAMETERS:  SpecificFlags       - "Specific" flag byte to be decoded
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode the flags specific to IO Address space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmIoFlags2 (
-        UINT8               SpecificFlags)
-{
-
-    AcpiOsPrintf (", %s",
-        AcpiGbl_TtpDecode [(SpecificFlags & 0x10) >> 4]);
-
-    /* TRS is only used if TTP is TypeTranslation */
-
-    if (SpecificFlags & 0x10)
-    {
-        AcpiOsPrintf (", %s",
-            AcpiGbl_TrsDecode [(SpecificFlags & 0x20) >> 5]);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmMemoryFlags
- *
- * PARAMETERS:  Flags               - Flag byte to be decoded
- *              SpecificFlags       - "Specific" flag byte to be decoded
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode flags specific to Memory Address Space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmMemoryFlags (
-    UINT8                   Flags,
-    UINT8                   SpecificFlags)
-{
-
-    AcpiOsPrintf ("%s, %s, %s, %s, %s, %s,",
-        AcpiGbl_ConsumeDecode [(Flags & 1)],
-        AcpiGbl_DecDecode [(Flags & 0x2) >> 1],
-        AcpiGbl_MinDecode [(Flags & 0x4) >> 2],
-        AcpiGbl_MaxDecode [(Flags & 0x8) >> 3],
-        AcpiGbl_MemDecode [(SpecificFlags & 0x6) >> 1],
-        AcpiGbl_RwDecode [(SpecificFlags & 0x1)]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmMemoryFlags2
- *
- * PARAMETERS:  SpecificFlags       - "Specific" flag byte to be decoded
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode flags specific to Memory Address Space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmMemoryFlags2 (
-    UINT8                   SpecificFlags)
-{
-
-    AcpiOsPrintf (", %s, %s",
-        AcpiGbl_MtpDecode [(SpecificFlags & 0x18) >> 3],
-        AcpiGbl_TtpDecode [(SpecificFlags & 0x20) >> 5]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmResourceSource
- *
- * PARAMETERS:  Resource        - Raw AML descriptor
- *              MinimumLength   - descriptor length without optional fields
- *              ResourceLength
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump optional ResourceSource fields of an address descriptor
- *
- ******************************************************************************/
-
-static void
-AcpiDmResourceSource (
-    AML_RESOURCE            *Resource,
-    ACPI_SIZE               MinimumTotalLength,
-    UINT32                  ResourceLength)
-{
-    UINT8                   *AmlResourceSource;
-    UINT32                  TotalLength;
-
-
-    TotalLength = ResourceLength + sizeof (AML_RESOURCE_LARGE_HEADER);
-
-    /* Check if the optional ResourceSource fields are present */
-
-    if (TotalLength <= MinimumTotalLength)
-    {
-        /* The two optional fields are not used */
-
-        AcpiOsPrintf (",, ");
-        return;
-    }
-
-    /* Get a pointer to the ResourceSource */
-
-    AmlResourceSource = ACPI_ADD_PTR (UINT8, Resource, MinimumTotalLength);
-
-    /*
-     * Always emit the ResourceSourceIndex (Byte)
-     *
-     * NOTE: Some ASL compilers always create a 0 byte (in the AML) for the
-     * Index even if the String does not exist. Although this is in violation
-     * of the ACPI specification, it is very important to emit ASL code that
-     * can be compiled back to the identical AML. There may be fields and/or
-     * indexes into the resource template buffer that are compiled to absolute
-     * offsets, and these will be broken if the AML length is changed.
-     */
-    AcpiOsPrintf ("0x%2.2X,", (UINT32) AmlResourceSource[0]);
-
-    /* Make sure that the ResourceSource string exists before dumping it */
-
-    if (TotalLength > (MinimumTotalLength + 1))
-    {
-        AcpiOsPrintf (" ");
-        AcpiUtPrintString ((char *) &AmlResourceSource[1], ACPI_UINT8_MAX);
-    }
-
-    AcpiOsPrintf (", ");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmWordDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Word Address Space descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmWordDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    /* Dump resource name and flags */
-
-    AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_ADDRESS16, Level);
-
-    /* Dump the 5 contiguous WORD values */
-
-    AcpiDmAddressFields (&Resource->Address16.Granularity, 16, Level);
-
-    /* The ResourceSource fields are optional */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmResourceSource (Resource, sizeof (AML_RESOURCE_ADDRESS16), Length);
-
-    /* Insert a descriptor name */
-
-    AcpiDmDescriptorName ();
-
-    /* Type-specific flags */
-
-    AcpiDmAddressFlags (Resource);
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDwordDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a DWord Address Space descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmDwordDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    /* Dump resource name and flags */
-
-    AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_ADDRESS32, Level);
-
-    /* Dump the 5 contiguous DWORD values */
-
-    AcpiDmAddressFields (&Resource->Address32.Granularity, 32, Level);
-
-    /* The ResourceSource fields are optional */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmResourceSource (Resource, sizeof (AML_RESOURCE_ADDRESS32), Length);
-
-    /* Insert a descriptor name */
-
-    AcpiDmDescriptorName ();
-
-    /* Type-specific flags */
-
-    AcpiDmAddressFlags (Resource);
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmQwordDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a QWord Address Space descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmQwordDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    /* Dump resource name and flags */
-
-    AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_ADDRESS64, Level);
-
-    /* Dump the 5 contiguous QWORD values */
-
-    AcpiDmAddressFields (&Resource->Address64.Granularity, 64, Level);
-
-    /* The ResourceSource fields are optional */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmResourceSource (Resource, sizeof (AML_RESOURCE_ADDRESS64), Length);
-
-    /* Insert a descriptor name */
-
-    AcpiDmDescriptorName ();
-
-    /* Type-specific flags */
-
-    AcpiDmAddressFlags (Resource);
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmExtendedDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Extended Address Space descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmExtendedDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    /* Dump resource name and flags */
-
-    AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64, Level);
-
-    /* Dump the 5 contiguous QWORD values */
-
-    AcpiDmAddressFields (&Resource->ExtAddress64.Granularity, 64, Level);
-
-    /* Extra field for this descriptor only */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger64 (Resource->ExtAddress64.TypeSpecific,
-        "Type-Specific Attributes");
-
-    /* Insert a descriptor name */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDescriptorName ();
-
-    /* Type-specific flags */
-
-    AcpiDmAddressFlags (Resource);
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmMemory24Descriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Memory24 descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmMemory24Descriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    /* Dump name and read/write flag */
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("Memory24 (%s,\n",
-        AcpiGbl_RwDecode [Resource->Memory24.Flags & 1]);
-
-    /* Dump the 4 contiguous WORD values */
-
-    AcpiDmMemoryFields (&Resource->Memory24.Minimum, 16, Level);
-
-    /* Insert a descriptor name */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmMemory32Descriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Memory32 descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmMemory32Descriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    /* Dump name and read/write flag */
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("Memory32 (%s,\n",
-        AcpiGbl_RwDecode [Resource->Memory32.Flags & 1]);
-
-    /* Dump the 4 contiguous DWORD values */
-
-    AcpiDmMemoryFields (&Resource->Memory32.Minimum, 32, Level);
-
-    /* Insert a descriptor name */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmFixedMemory32Descriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Fixed Memory32 descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmFixedMemory32Descriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    /* Dump name and read/write flag */
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("Memory32Fixed (%s,\n",
-        AcpiGbl_RwDecode [Resource->FixedMemory32.Flags & 1]);
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger32 (Resource->FixedMemory32.Address, "Address Base");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength, "Address Length");
-
-    /* Insert a descriptor name */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmGenericRegisterDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Generic Register descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmGenericRegisterDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("Register (");
-    AcpiDmAddressSpace (Resource->GenericReg.AddressSpaceId);
-    AcpiOsPrintf ("\n");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger8 (Resource->GenericReg.BitWidth, "Bit Width");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger8 (Resource->GenericReg.BitOffset, "Bit Offset");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger64 (Resource->GenericReg.Address, "Address");
-
-    /* Optional field for ACPI 3.0 */
-
-    AcpiDmIndent (Level + 1);
-    if (Resource->GenericReg.AccessSize)
-    {
-        AcpiOsPrintf ("0x%2.2X,               // %s\n",
-            Resource->GenericReg.AccessSize, "Access Size");
-        AcpiDmIndent (Level + 1);
-    }
-    else
-    {
-        AcpiOsPrintf (",");
-    }
-
-    /* DescriptorName was added for ACPI 3.0+ */
-
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmInterruptDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a extended Interrupt descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmInterruptDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-    UINT32                  i;
-
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("Interrupt (%s, %s, %s, %s, ",
-        AcpiGbl_ConsumeDecode [(Resource->ExtendedIrq.Flags & 1)],
-        AcpiGbl_HeDecode [(Resource->ExtendedIrq.Flags >> 1) & 1],
-        AcpiGbl_LlDecode [(Resource->ExtendedIrq.Flags >> 2) & 1],
-        AcpiGbl_ShrDecode [(Resource->ExtendedIrq.Flags >> 3) & 1]);
-
-    /*
-     * The ResourceSource fields are optional and appear after the interrupt
-     * list. Must compute length based on length of the list. First xrupt
-     * is included in the struct (reason for -1 below)
-     */
-    AcpiDmResourceSource (Resource,
-        sizeof (AML_RESOURCE_EXTENDED_IRQ) +
-            ((UINT32) Resource->ExtendedIrq.InterruptCount - 1) * sizeof (UINT32),
-        Resource->ExtendedIrq.ResourceLength);
-
-    /* Insert a descriptor name */
-
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")\n");
-
-    /* Dump the interrupt list */
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("{\n");
-    for (i = 0; i < Resource->ExtendedIrq.InterruptCount; i++)
-    {
-        AcpiDmIndent (Level + 1);
-        AcpiOsPrintf ("0x%8.8X,\n",
-            (UINT32) Resource->ExtendedIrq.Interrupts[i]);
-    }
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("}\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmVendorCommon
- *
- * PARAMETERS:  Name                - Descriptor name suffix
- *              ByteData            - Pointer to the vendor byte data
- *              Length              - Length of the byte data
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Vendor descriptor, both Large and Small
- *
- ******************************************************************************/
-
-void
-AcpiDmVendorCommon (
-    char                    *Name,
-    UINT8                   *ByteData,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    /* Dump macro name */
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("Vendor%s (", Name);
-
-    /* Insert a descriptor name */
-
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")      // Length = 0x%.2X\n", Length);
-
-    /* Dump the vendor bytes */
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("{\n");
-
-    AcpiDmDisasmByteList (Level + 1, ByteData, Length);
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("}\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmVendorLargeDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Vendor Large descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmVendorLargeDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    AcpiDmVendorCommon ("Long ",
-        ACPI_ADD_PTR (UINT8, Resource, sizeof (AML_RESOURCE_LARGE_HEADER)),
-        Length, Level);
-}
-
-#endif
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmresrcs.c b/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmresrcs.c
deleted file mode 100644 (file)
index 5089852..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmresrcs.c - "Small" Resource Descriptor disassembly
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdisasm.h"
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dbresrcs")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIrqDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a IRQ descriptor, either Irq() or IrqNoFlags()
- *
- ******************************************************************************/
-
-void
-AcpiDmIrqDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("%s (",
-        AcpiGbl_IrqDecode [Length & 1]);
-
-    /* Decode flags byte if present */
-
-    if (Length & 1)
-    {
-        AcpiOsPrintf ("%s, %s, %s, ",
-            AcpiGbl_HeDecode [Resource->Irq.Flags & 1],
-            AcpiGbl_LlDecode [(Resource->Irq.Flags >> 3) & 1],
-            AcpiGbl_ShrDecode [(Resource->Irq.Flags >> 4) & 1]);
-    }
-
-    /* Insert a descriptor name */
-
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")\n");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmBitList (Resource->Irq.IrqMask);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDmaDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a DMA descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmDmaDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("DMA (%s, %s, %s, ",
-            AcpiGbl_TypDecode [(Resource->Dma.Flags >> 5) & 3],
-            AcpiGbl_BmDecode  [(Resource->Dma.Flags >> 2) & 1],
-            AcpiGbl_SizDecode [(Resource->Dma.Flags >> 0) & 3]);
-
-    /* Insert a descriptor name */
-
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")\n");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmBitList (Resource->Dma.DmaChannelMask);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIoDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode an IO descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmIoDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("IO (%s,\n",
-        AcpiGbl_IoDecode [(Resource->Io.Flags & 1)]);
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger16 (Resource->Io.Minimum, "Range Minimum");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger16 (Resource->Io.Maximum, "Range Maximum");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger8 (Resource->Io.Alignment, "Alignment");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger8 (Resource->Io.AddressLength, "Length");
-
-    /* Insert a descriptor name */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmFixedIoDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Fixed IO descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmFixedIoDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("FixedIO (\n");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger16 (Resource->FixedIo.Address, "Address");
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDumpInteger8 (Resource->FixedIo.AddressLength, "Length");
-
-    /* Insert a descriptor name */
-
-    AcpiDmIndent (Level + 1);
-    AcpiDmDescriptorName ();
-    AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmStartDependentDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Start Dependendent functions descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmStartDependentDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    AcpiDmIndent (Level);
-
-    if (Length & 1)
-    {
-        AcpiOsPrintf ("StartDependentFn (0x%2.2X, 0x%2.2X)\n",
-            (UINT32) Resource->StartDpf.Flags & 3,
-            (UINT32) (Resource->StartDpf.Flags >> 2) & 3);
-    }
-    else
-    {
-        AcpiOsPrintf ("StartDependentFnNoPri ()\n");
-    }
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("{\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmEndDependentDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode an End Dependent functions descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmEndDependentDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("}\n");
-    AcpiDmIndent (Level);
-    AcpiOsPrintf ("EndDependentFn ()\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmVendorSmallDescriptor
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Length              - Length of the descriptor in bytes
- *              Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode a Vendor Small Descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmVendorSmallDescriptor (
-    AML_RESOURCE            *Resource,
-    UINT32                  Length,
-    UINT32                  Level)
-{
-
-    AcpiDmVendorCommon ("Short",
-        ACPI_ADD_PTR (UINT8, Resource, sizeof (AML_RESOURCE_SMALL_HEADER)),
-        Length, Level);
-}
-
-#endif
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmutils.c b/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmutils.c
deleted file mode 100644 (file)
index 111c785..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmutils - AML disassembler utilities
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acdisasm.h"
-
-#ifdef ACPI_ASL_COMPILER
-#include <acnamesp.h>
-#endif
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dmutils")
-
-
-/* Data used in keeping track of fields */
-#if 0
-const char                      *AcpiGbl_FENames[] =
-{
-    "skip",
-    "?access?"
-};              /* FE = Field Element */
-#endif
-
-/* Operators for Match() */
-
-const char                      *AcpiGbl_MatchOps[] =
-{
-    "MTR",
-    "MEQ",
-    "MLE",
-    "MLT",
-    "MGE",
-    "MGT"
-};
-
-/* Access type decoding */
-
-const char                      *AcpiGbl_AccessTypes[] =
-{
-    "AnyAcc",
-    "ByteAcc",
-    "WordAcc",
-    "DWordAcc",
-    "QWordAcc",
-    "BufferAcc",
-    "InvalidAccType",
-    "InvalidAccType"
-};
-
-/* Lock rule decoding */
-
-const char                      *AcpiGbl_LockRule[] =
-{
-    "NoLock",
-    "Lock"
-};
-
-/* Update rule decoding */
-
-const char                      *AcpiGbl_UpdateRules[] =
-{
-    "Preserve",
-    "WriteAsOnes",
-    "WriteAsZeros",
-    "InvalidUpdateRule"
-};
-
-/* Strings used to decode resource descriptors */
-
-const char                      *AcpiGbl_WordDecode[] =
-{
-    "Memory",
-    "IO",
-    "BusNumber",
-    "UnknownResourceType"
-};
-
-const char                      *AcpiGbl_IrqDecode[] =
-{
-    "IRQNoFlags",
-    "IRQ"
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDecodeAttribute
- *
- * PARAMETERS:  Attribute       - Attribute field of AccessAs keyword
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decode the AccessAs attribute byte.  (Mostly SMBus stuff)
- *
- ******************************************************************************/
-
-void
-AcpiDmDecodeAttribute (
-    UINT8                   Attribute)
-{
-
-    switch (Attribute)
-    {
-    case AML_FIELD_ATTRIB_SMB_QUICK:
-
-        AcpiOsPrintf ("SMBQuick");
-        break;
-
-    case AML_FIELD_ATTRIB_SMB_SEND_RCV:
-
-        AcpiOsPrintf ("SMBSendReceive");
-        break;
-
-    case AML_FIELD_ATTRIB_SMB_BYTE:
-
-        AcpiOsPrintf ("SMBByte");
-        break;
-
-    case AML_FIELD_ATTRIB_SMB_WORD:
-
-        AcpiOsPrintf ("SMBWord");
-        break;
-
-    case AML_FIELD_ATTRIB_SMB_WORD_CALL:
-
-        AcpiOsPrintf ("SMBProcessCall");
-        break;
-
-    case AML_FIELD_ATTRIB_SMB_BLOCK:
-
-        AcpiOsPrintf ("SMBBlock");
-        break;
-
-    case AML_FIELD_ATTRIB_SMB_BLOCK_CALL:
-
-        AcpiOsPrintf ("SMBBlockProcessCall");
-        break;
-
-    default:
-
-        AcpiOsPrintf ("0x%.2X", Attribute);
-        break;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmIndent
- *
- * PARAMETERS:  Level               - Current source code indentation level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Indent 4 spaces per indentation level.
- *
- ******************************************************************************/
-
-void
-AcpiDmIndent (
-    UINT32                  Level)
-{
-
-    if (!Level)
-    {
-        return;
-    }
-
-    AcpiOsPrintf ("%*.s", ACPI_MUL_4 (Level), " ");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmCommaIfListMember
- *
- * PARAMETERS:  Op              - Current operator/operand
- *
- * RETURN:      TRUE if a comma was inserted
- *
- * DESCRIPTION: Insert a comma if this Op is a member of an argument list.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDmCommaIfListMember (
-    ACPI_PARSE_OBJECT       *Op)
-{
-
-    if (!Op->Common.Next)
-    {
-        return FALSE;
-    }
-
-    if (AcpiDmListType (Op->Common.Parent) & BLOCK_COMMA_LIST)
-    {
-        /* Check for a NULL target operand */
-
-        if ((Op->Common.Next->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
-            (!Op->Common.Next->Common.Value.String))
-        {
-            /*
-             * To handle the Divide() case where there are two optional
-             * targets, look ahead one more op.  If null, this null target
-             * is the one and only target -- no comma needed.  Otherwise,
-             * we need a comma to prepare for the next target.
-             */
-            if (!Op->Common.Next->Common.Next)
-            {
-                return FALSE;
-            }
-        }
-
-        if ((Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST) &&
-            (!(Op->Common.Next->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)))
-        {
-            return FALSE;
-        }
-
-        AcpiOsPrintf (", ");
-        return (TRUE);
-    }
-
-    else if ((Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST) &&
-             (Op->Common.Next->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST))
-    {
-        AcpiOsPrintf (", ");
-        return (TRUE);
-    }
-
-    return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmCommaIfFieldMember
- *
- * PARAMETERS:  Op              - Current operator/operand
- *
- * RETURN:      None
- *
- * DESCRIPTION: Insert a comma if this Op is a member of a Field argument list.
- *
- ******************************************************************************/
-
-void
-AcpiDmCommaIfFieldMember (
-    ACPI_PARSE_OBJECT       *Op)
-{
-
-    if (Op->Common.Next)
-    {
-        AcpiOsPrintf (", ");
-    }
-}
-
-#endif
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmwalk.c b/l4/pkg/acpica/lib-acpi/src/acpica/disassembler/dmwalk.c
deleted file mode 100644 (file)
index 85477fe..0000000
+++ /dev/null
@@ -1,1006 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmwalk - AML disassembly tree walk
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-#include "acdisasm.h"
-#include "acdebug.h"
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT          ACPI_CA_DEBUGGER
-        ACPI_MODULE_NAME    ("dmwalk")
-
-
-#define DB_FULL_OP_INFO     "[%4.4s] @%5.5X #%4.4X:  "
-
-/* Stub for non-compiler code */
-
-#ifndef ACPI_ASL_COMPILER
-void
-AcpiDmEmitExternals (
-    void)
-{
-    return;
-}
-#endif
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDmDescendingOp (
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  Level,
-    void                    *Context);
-
-static ACPI_STATUS
-AcpiDmAscendingOp (
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  Level,
-    void                    *Context);
-
-static UINT32
-AcpiDmBlockType (
-    ACPI_PARSE_OBJECT       *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDisassemble
- *
- * PARAMETERS:  WalkState       - Current state
- *              Origin          - Starting object
- *              NumOpcodes      - Max number of opcodes to be displayed
- *
- * RETURN:      None
- *
- * DESCRIPTION: Disassemble parser object and its children.  This is the
- *              main entry point of the disassembler.
- *
- ******************************************************************************/
-
-void
-AcpiDmDisassemble (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Origin,
-    UINT32                  NumOpcodes)
-{
-    ACPI_PARSE_OBJECT       *Op = Origin;
-    ACPI_OP_WALK_INFO       Info;
-
-
-    if (!Op)
-    {
-        return;
-    }
-
-    Info.Flags = 0;
-    Info.Level = 0;
-    Info.Count = 0;
-    Info.WalkState = WalkState;
-    AcpiDmWalkParseTree (Op, AcpiDmDescendingOp, AcpiDmAscendingOp, &Info);
-    return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmWalkParseTree
- *
- * PARAMETERS:  Op                      - Root Op object
- *              DescendingCallback      - Called during tree descent
- *              AscendingCallback       - Called during tree ascent
- *              Context                 - To be passed to the callbacks
- *
- * RETURN:      Status from callback(s)
- *
- * DESCRIPTION: Walk the entire parse tree.
- *
- ******************************************************************************/
-
-void
-AcpiDmWalkParseTree (
-    ACPI_PARSE_OBJECT       *Op,
-    ASL_WALK_CALLBACK       DescendingCallback,
-    ASL_WALK_CALLBACK       AscendingCallback,
-    void                    *Context)
-{
-    BOOLEAN                 NodePreviouslyVisited;
-    ACPI_PARSE_OBJECT       *StartOp = Op;
-    ACPI_STATUS             Status;
-    ACPI_PARSE_OBJECT       *Next;
-    ACPI_OP_WALK_INFO       *Info = Context;
-
-
-    Info->Level = 0;
-    NodePreviouslyVisited = FALSE;
-
-    while (Op)
-    {
-        if (NodePreviouslyVisited)
-        {
-            if (AscendingCallback)
-            {
-                Status = AscendingCallback (Op, Info->Level, Context);
-                if (ACPI_FAILURE (Status))
-                {
-                    return;
-                }
-            }
-        }
-        else
-        {
-            /* Let the callback process the node */
-
-            Status = DescendingCallback (Op, Info->Level, Context);
-            if (ACPI_SUCCESS (Status))
-            {
-                /* Visit children first, once */
-
-                Next = AcpiPsGetArg (Op, 0);
-                if (Next)
-                {
-                    Info->Level++;
-                    Op = Next;
-                    continue;
-                }
-            }
-            else if (Status != AE_CTRL_DEPTH)
-            {
-                /* Exit immediately on any error */
-
-                return;
-            }
-        }
-
-        /* Terminate walk at start op */
-
-        if (Op == StartOp)
-        {
-            break;
-        }
-
-        /* No more children, re-visit this node */
-
-        if (!NodePreviouslyVisited)
-        {
-            NodePreviouslyVisited = TRUE;
-            continue;
-        }
-
-        /* No more children, visit peers */
-
-        if (Op->Common.Next)
-        {
-            Op = Op->Common.Next;
-            NodePreviouslyVisited = FALSE;
-        }
-        else
-        {
-            /* No peers, re-visit parent */
-
-            if (Info->Level != 0 )
-            {
-                Info->Level--;
-            }
-
-            Op = Op->Common.Parent;
-            NodePreviouslyVisited = TRUE;
-        }
-    }
-
-    /* If we get here, the walk completed with no errors */
-
-    return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmBlockType
- *
- * PARAMETERS:  Op              - Object to be examined
- *
- * RETURN:      BlockType - not a block, parens, braces, or even both.
- *
- * DESCRIPTION: Type of block for this op (parens or braces)
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDmBlockType (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    const ACPI_OPCODE_INFO  *OpInfo;
-
-
-    if (!Op)
-    {
-        return (BLOCK_NONE);
-    }
-
-    switch (Op->Common.AmlOpcode)
-    {
-    case AML_ELSE_OP:
-
-        return (BLOCK_BRACE);
-
-    case AML_METHOD_OP:
-    case AML_DEVICE_OP:
-    case AML_SCOPE_OP:
-    case AML_PROCESSOR_OP:
-    case AML_POWER_RES_OP:
-    case AML_THERMAL_ZONE_OP:
-    case AML_IF_OP:
-    case AML_WHILE_OP:
-    case AML_FIELD_OP:
-    case AML_INDEX_FIELD_OP:
-    case AML_BANK_FIELD_OP:
-
-        return (BLOCK_PAREN | BLOCK_BRACE);
-
-    case AML_BUFFER_OP:
-
-        if (Op->Common.DisasmOpcode == ACPI_DASM_UNICODE)
-        {
-            return (BLOCK_NONE);
-        }
-
-        /*lint -fallthrough */
-
-    case AML_PACKAGE_OP:
-    case AML_VAR_PACKAGE_OP:
-
-        return (BLOCK_PAREN | BLOCK_BRACE);
-
-    case AML_EVENT_OP:
-
-        return (BLOCK_PAREN);
-
-    default:
-
-        OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-        if (OpInfo->Flags & AML_HAS_ARGS)
-        {
-            return (BLOCK_PAREN);
-        }
-
-        return (BLOCK_NONE);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmListType
- *
- * PARAMETERS:  Op              - Object to be examined
- *
- * RETURN:      ListType - has commas or not.
- *
- * DESCRIPTION: Type of block for this op (parens or braces)
- *
- ******************************************************************************/
-
-UINT32
-AcpiDmListType (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    const ACPI_OPCODE_INFO  *OpInfo;
-
-
-    if (!Op)
-    {
-        return (BLOCK_NONE);
-    }
-
-    switch (Op->Common.AmlOpcode)
-    {
-
-    case AML_ELSE_OP:
-    case AML_METHOD_OP:
-    case AML_DEVICE_OP:
-    case AML_SCOPE_OP:
-    case AML_POWER_RES_OP:
-    case AML_PROCESSOR_OP:
-    case AML_THERMAL_ZONE_OP:
-    case AML_IF_OP:
-    case AML_WHILE_OP:
-    case AML_FIELD_OP:
-    case AML_INDEX_FIELD_OP:
-    case AML_BANK_FIELD_OP:
-
-        return (BLOCK_NONE);
-
-    case AML_BUFFER_OP:
-    case AML_PACKAGE_OP:
-    case AML_VAR_PACKAGE_OP:
-
-        return (BLOCK_COMMA_LIST);
-
-    default:
-
-        OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-        if (OpInfo->Flags & AML_HAS_ARGS)
-        {
-            return (BLOCK_COMMA_LIST);
-        }
-
-        return (BLOCK_NONE);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmDescendingOp
- *
- * PARAMETERS:  ASL_WALK_CALLBACK
- *
- * RETURN:      Status
- *
- * DESCRIPTION: First visitation of a parse object during tree descent.
- *              Decode opcode name and begin parameter list(s), if any.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmDescendingOp (
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  Level,
-    void                    *Context)
-{
-    ACPI_OP_WALK_INFO       *Info = Context;
-    const ACPI_OPCODE_INFO  *OpInfo;
-    UINT32                  Name;
-    ACPI_PARSE_OBJECT       *NextOp;
-
-
-    if (Op->Common.DisasmFlags & ACPI_PARSEOP_IGNORE)
-    {
-        /* Ignore this op -- it was handled elsewhere */
-
-        return (AE_CTRL_DEPTH);
-    }
-
-    /* Level 0 is at the Definition Block level */
-
-    if (Level == 0)
-    {
-        /* In verbose mode, print the AML offset, opcode and depth count */
-
-        if (Info->WalkState)
-        {
-            VERBOSE_PRINT ((DB_FULL_OP_INFO,
-                (Info->WalkState->MethodNode ?
-                    Info->WalkState->MethodNode->Name.Ascii : "   "),
-                Op->Common.AmlOffset, (UINT32) Op->Common.AmlOpcode));
-        }
-
-        if (Op->Common.AmlOpcode == AML_SCOPE_OP)
-        {
-            /* This is the beginning of the Definition Block */
-
-            AcpiOsPrintf ("{\n");
-
-            /* Emit all External() declarations here */
-
-            AcpiDmEmitExternals ();
-            return (AE_OK);
-        }
-    }
-    else if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) &&
-             (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) &&
-             (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP))
-    {
-            /*
-             * This is a first-level element of a term list,
-             * indent a new line
-             */
-            AcpiDmIndent (Level);
-            Info->LastLevel = Level;
-            Info->Count = 0;
-    }
-
-    /*
-     * This is an inexpensive mechanism to try and keep lines from getting
-     * too long. When the limit is hit, start a new line at the previous
-     * indent plus one. A better but more expensive mechanism would be to
-     * keep track of the current column.
-     */
-    Info->Count++;
-    if (Info->Count /*+Info->LastLevel*/ > 10)
-    {
-        Info->Count = 0;
-        AcpiOsPrintf ("\n");
-        AcpiDmIndent (Info->LastLevel + 1);
-    }
-
-    /* Print the opcode name */
-
-    AcpiDmDisassembleOneOp (NULL, Info, Op);
-
-    if (Op->Common.DisasmOpcode == ACPI_DASM_LNOT_PREFIX)
-    {
-        return (AE_OK);
-    }
-
-    if ((Op->Common.AmlOpcode == AML_NAME_OP) ||
-        (Op->Common.AmlOpcode == AML_RETURN_OP))
-    {
-        Info->Level--;
-    }
-
-    /* Start the opcode argument list if necessary */
-
-    OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
-    if ((OpInfo->Flags & AML_HAS_ARGS) ||
-        (Op->Common.AmlOpcode == AML_EVENT_OP))
-    {
-        /* This opcode has an argument list */
-
-        if (AcpiDmBlockType (Op) & BLOCK_PAREN)
-        {
-            AcpiOsPrintf (" (");
-        }
-
-        /* If this is a named opcode, print the associated name value */
-
-        if (OpInfo->Flags & AML_NAMED)
-        {
-            switch (Op->Common.AmlOpcode)
-            {
-            case AML_ALIAS_OP:
-
-                NextOp = AcpiPsGetDepthNext (NULL, Op);
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-                AcpiDmNamestring (NextOp->Common.Value.Name);
-                AcpiOsPrintf (", ");
-
-                /*lint -fallthrough */
-
-            default:
-
-                Name = AcpiPsGetName (Op);
-                if (Op->Named.Path)
-                {
-                    AcpiDmNamestring ((char *) Op->Named.Path);
-                }
-                else
-                {
-                    AcpiDmDumpName (Name);
-                }
-
-                if (Op->Common.AmlOpcode != AML_INT_NAMEDFIELD_OP)
-                {
-                    if (AcpiGbl_DbOpt_verbose)
-                    {
-                        (void) AcpiPsDisplayObjectPathname (NULL, Op);
-                    }
-                }
-                break;
-            }
-
-            switch (Op->Common.AmlOpcode)
-            {
-            case AML_METHOD_OP:
-
-                AcpiDmMethodFlags (Op);
-                AcpiOsPrintf (")");
-                break;
-
-
-            case AML_NAME_OP:
-
-                /* Check for _HID and related EISAID() */
-
-                AcpiDmIsEisaId (Op);
-                AcpiOsPrintf (", ");
-                break;
-
-
-            case AML_REGION_OP:
-
-                AcpiDmRegionFlags (Op);
-                break;
-
-
-            case AML_POWER_RES_OP:
-
-                /* Mark the next two Ops as part of the parameter list */
-
-                AcpiOsPrintf (", ");
-                NextOp = AcpiPsGetDepthNext (NULL, Op);
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-
-                NextOp = NextOp->Common.Next;
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-                return (AE_OK);
-
-
-            case AML_PROCESSOR_OP:
-
-                /* Mark the next three Ops as part of the parameter list */
-
-                AcpiOsPrintf (", ");
-                NextOp = AcpiPsGetDepthNext (NULL, Op);
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-
-                NextOp = NextOp->Common.Next;
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-
-                NextOp = NextOp->Common.Next;
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-                return (AE_OK);
-
-
-            case AML_MUTEX_OP:
-            case AML_DATA_REGION_OP:
-
-                AcpiOsPrintf (", ");
-                return (AE_OK);
-
-
-            case AML_EVENT_OP:
-            case AML_ALIAS_OP:
-
-                return (AE_OK);
-
-
-            case AML_SCOPE_OP:
-            case AML_DEVICE_OP:
-            case AML_THERMAL_ZONE_OP:
-
-                AcpiOsPrintf (")");
-                break;
-
-
-            default:
-
-                AcpiOsPrintf ("*** Unhandled named opcode %X\n", Op->Common.AmlOpcode);
-                break;
-            }
-        }
-
-        else switch (Op->Common.AmlOpcode)
-        {
-        case AML_FIELD_OP:
-        case AML_BANK_FIELD_OP:
-        case AML_INDEX_FIELD_OP:
-
-            Info->BitOffset = 0;
-
-            /* Name of the parent OperationRegion */
-
-            NextOp = AcpiPsGetDepthNext (NULL, Op);
-            AcpiDmNamestring (NextOp->Common.Value.Name);
-            AcpiOsPrintf (", ");
-            NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
-            switch (Op->Common.AmlOpcode)
-            {
-            case AML_BANK_FIELD_OP:
-
-                /* Namestring - Bank Name */
-
-                NextOp = AcpiPsGetDepthNext (NULL, NextOp);
-                AcpiDmNamestring (NextOp->Common.Value.Name);
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-                AcpiOsPrintf (", ");
-
-                /*
-                 * Bank Value. This is a TermArg in the middle of the parameter
-                 * list, must handle it here.
-                 *
-                 * Disassemble the TermArg parse tree. ACPI_PARSEOP_PARAMLIST
-                 * eliminates newline in the output.
-                 */
-                NextOp = NextOp->Common.Next;
-
-                Info->Flags = ACPI_PARSEOP_PARAMLIST;
-                AcpiDmWalkParseTree (NextOp, AcpiDmDescendingOp, AcpiDmAscendingOp, Info);
-                Info->Flags = 0;
-                Info->Level = Level;
-
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-                AcpiOsPrintf (", ");
-                break;
-
-            case AML_INDEX_FIELD_OP:
-
-                /* Namestring - Data Name */
-
-                NextOp = AcpiPsGetDepthNext (NULL, NextOp);
-                AcpiDmNamestring (NextOp->Common.Value.Name);
-                AcpiOsPrintf (", ");
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-                break;
-
-            default:
-
-                break;
-            }
-
-            AcpiDmFieldFlags (NextOp);
-            break;
-
-
-        case AML_BUFFER_OP:
-
-            /* The next op is the size parameter */
-
-            NextOp = AcpiPsGetDepthNext (NULL, Op);
-            if (!NextOp)
-            {
-                /* Single-step support */
-
-                return (AE_OK);
-            }
-
-            if (Op->Common.DisasmOpcode == ACPI_DASM_RESOURCE)
-            {
-                /*
-                 * We have a resource list.  Don't need to output
-                 * the buffer size Op.  Open up a new block
-                 */
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-                NextOp = NextOp->Common.Next;
-                AcpiOsPrintf (")\n");
-                AcpiDmIndent (Info->Level);
-                AcpiOsPrintf ("{\n");
-                return (AE_OK);
-            }
-
-            /* Normal Buffer, mark size as in the parameter list */
-
-            NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-            return (AE_OK);
-
-
-        case AML_VAR_PACKAGE_OP:
-        case AML_IF_OP:
-        case AML_WHILE_OP:
-
-            /* The next op is the size or predicate parameter */
-
-            NextOp = AcpiPsGetDepthNext (NULL, Op);
-            if (NextOp)
-            {
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-            }
-            return (AE_OK);
-
-
-        case AML_PACKAGE_OP:
-
-            /* The next op is the size or predicate parameter */
-
-            NextOp = AcpiPsGetDepthNext (NULL, Op);
-            if (NextOp)
-            {
-                NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-            }
-            return (AE_OK);
-
-
-        case AML_MATCH_OP:
-
-            AcpiDmMatchOp (Op);
-            break;
-
-
-        default:
-
-            break;
-        }
-
-        if (AcpiDmBlockType (Op) & BLOCK_BRACE)
-        {
-            AcpiOsPrintf ("\n");
-            AcpiDmIndent (Level);
-            AcpiOsPrintf ("{\n");
-        }
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDmAscendingOp
- *
- * PARAMETERS:  ASL_WALK_CALLBACK
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Second visitation of a parse object, during ascent of parse
- *              tree.  Close out any parameter lists and complete the opcode.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmAscendingOp (
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  Level,
-    void                    *Context)
-{
-    ACPI_OP_WALK_INFO       *Info = Context;
-
-
-    if (Op->Common.DisasmFlags & ACPI_PARSEOP_IGNORE)
-    {
-        /* Ignore this op -- it was handled elsewhere */
-
-        return (AE_OK);
-    }
-
-    if ((Level == 0) && (Op->Common.AmlOpcode == AML_SCOPE_OP))
-    {
-        /* Indicates the end of the current descriptor block (table) */
-
-        AcpiOsPrintf ("}\n\n");
-        return (AE_OK);
-    }
-
-    switch (AcpiDmBlockType (Op))
-    {
-    case BLOCK_PAREN:
-
-        /* Completed an op that has arguments, add closing paren */
-
-        AcpiOsPrintf (")");
-
-        /* Could be a nested operator, check if comma required */
-
-        if (!AcpiDmCommaIfListMember (Op))
-        {
-            if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) &&
-                     (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) &&
-                     (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP))
-            {
-                /*
-                 * This is a first-level element of a term list
-                 * start a new line
-                 */
-                if (!(Info->Flags & ACPI_PARSEOP_PARAMLIST))
-                {
-                    AcpiOsPrintf ("\n");
-                }
-            }
-        }
-        break;
-
-
-    case BLOCK_BRACE:
-    case (BLOCK_BRACE | BLOCK_PAREN):
-
-        /* Completed an op that has a term list, add closing brace */
-
-        if (Op->Common.DisasmFlags & ACPI_PARSEOP_EMPTY_TERMLIST)
-        {
-            AcpiOsPrintf ("}");
-        }
-        else
-        {
-            AcpiDmIndent (Level);
-            AcpiOsPrintf ("}");
-        }
-
-        AcpiDmCommaIfListMember (Op);
-
-        if (AcpiDmBlockType (Op->Common.Parent) != BLOCK_PAREN)
-        {
-            AcpiOsPrintf ("\n");
-            if (!(Op->Common.DisasmFlags & ACPI_PARSEOP_EMPTY_TERMLIST))
-            {
-                if ((Op->Common.AmlOpcode == AML_IF_OP)  &&
-                    (Op->Common.Next) &&
-                    (Op->Common.Next->Common.AmlOpcode == AML_ELSE_OP))
-                {
-                    break;
-                }
-
-                if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) &&
-                    (!Op->Common.Next))
-                {
-                    break;
-                }
-                AcpiOsPrintf ("\n");
-            }
-        }
-        break;
-
-
-    case BLOCK_NONE:
-    default:
-
-        /* Could be a nested operator, check if comma required */
-
-        if (!AcpiDmCommaIfListMember (Op))
-        {
-            if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) &&
-                     (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) &&
-                     (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP))
-            {
-                /*
-                 * This is a first-level element of a term list
-                 * start a new line
-                 */
-                AcpiOsPrintf ("\n");
-            }
-        }
-        else if (Op->Common.Parent)
-        {
-            switch (Op->Common.Parent->Common.AmlOpcode)
-            {
-            case AML_PACKAGE_OP:
-            case AML_VAR_PACKAGE_OP:
-
-                if (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST))
-                {
-                    AcpiOsPrintf ("\n");
-                }
-                break;
-
-            default:
-
-                break;
-            }
-        }
-        break;
-    }
-
-    if (Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)
-    {
-        if ((Op->Common.Next) &&
-            (Op->Common.Next->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST))
-        {
-            return (AE_OK);
-        }
-
-        /*
-         * Just completed a parameter node for something like "Buffer (param)".
-         * Close the paren and open up the term list block with a brace
-         */
-        if (Op->Common.Next)
-        {
-            AcpiOsPrintf (")\n");
-            AcpiDmIndent (Level - 1);
-            AcpiOsPrintf ("{\n");
-        }
-        else
-        {
-            Op->Common.Parent->Common.DisasmFlags |=
-                                    ACPI_PARSEOP_EMPTY_TERMLIST;
-            AcpiOsPrintf (") {");
-        }
-    }
-
-    if ((Op->Common.AmlOpcode == AML_NAME_OP) ||
-        (Op->Common.AmlOpcode == AML_RETURN_OP))
-    {
-        Info->Level++;
-    }
-    return (AE_OK);
-}
-
-
-#endif  /* ACPI_DISASSEMBLER */
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsfield.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsfield.c
deleted file mode 100644 (file)
index 12d55f4..0000000
+++ /dev/null
@@ -1,776 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsfield - Dispatcher field routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSFIELD_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-#include "acparser.h"
-
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dsfield")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsGetFieldNames (
-    ACPI_CREATE_FIELD_INFO  *Info,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Arg);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCreateBufferField
- *
- * PARAMETERS:  Op                  - Current parse op (CreateXXField)
- *              WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute the CreateField operators:
- *              CreateBitFieldOp,
- *              CreateByteFieldOp,
- *              CreateWordFieldOp,
- *              CreateDWordFieldOp,
- *              CreateQWordFieldOp,
- *              CreateFieldOp       (all of which define a field in a buffer)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateBufferField (
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_PARSE_OBJECT       *Arg;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *SecondDesc = NULL;
-    UINT32                  Flags;
-
-
-    ACPI_FUNCTION_TRACE (DsCreateBufferField);
-
-
-    /*
-     * Get the NameString argument (name of the new BufferField)
-     */
-    if (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP)
-    {
-        /* For CreateField, name is the 4th argument */
-
-        Arg = AcpiPsGetArg (Op, 3);
-    }
-    else
-    {
-        /* For all other CreateXXXField operators, name is the 3rd argument */
-
-        Arg = AcpiPsGetArg (Op, 2);
-    }
-
-    if (!Arg)
-    {
-        return_ACPI_STATUS (AE_AML_NO_OPERAND);
-    }
-
-    if (WalkState->DeferredNode)
-    {
-        Node = WalkState->DeferredNode;
-        Status = AE_OK;
-    }
-    else
-    {
-        /* Execute flag should always be set when this function is entered */
-
-        if (!(WalkState->ParseFlags & ACPI_PARSE_EXECUTE))
-        {
-            return_ACPI_STATUS (AE_AML_INTERNAL);
-        }
-
-        /* Creating new namespace node, should not already exist */
-
-        Flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE |
-                ACPI_NS_ERROR_IF_FOUND;
-
-        /*
-         * Mark node temporary if we are executing a normal control
-         * method. (Don't mark if this is a module-level code method)
-         */
-        if (WalkState->MethodNode &&
-            !(WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL))
-        {
-            Flags |= ACPI_NS_TEMPORARY;
-        }
-
-        /* Enter the NameString into the namespace */
-
-        Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
-                    ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS1,
-                    Flags, WalkState, &Node);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * We could put the returned object (Node) on the object stack for later,
-     * but for now, we will put it in the "op" object that the parser uses,
-     * so we can get it again at the end of this scope.
-     */
-    Op->Common.Node = Node;
-
-    /*
-     * If there is no object attached to the node, this node was just created
-     * and we need to create the field object. Otherwise, this was a lookup
-     * of an existing node and we don't want to create the field object again.
-     */
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (ObjDesc)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * The Field definition is not fully parsed at this time.
-     * (We must save the address of the AML for the buffer and index operands)
-     */
-
-    /* Create the buffer field object */
-
-    ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER_FIELD);
-    if (!ObjDesc)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /*
-     * Remember location in AML stream of the field unit opcode and operands --
-     * since the buffer and index operands must be evaluated.
-     */
-    SecondDesc                  = ObjDesc->Common.NextObject;
-    SecondDesc->Extra.AmlStart  = Op->Named.Data;
-    SecondDesc->Extra.AmlLength = Op->Named.Length;
-    ObjDesc->BufferField.Node   = Node;
-
-    /* Attach constructed field descriptors to parent node */
-
-    Status = AcpiNsAttachObject (Node, ObjDesc, ACPI_TYPE_BUFFER_FIELD);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-
-Cleanup:
-
-    /* Remove local reference to the object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsGetFieldNames
- *
- * PARAMETERS:  Info            - CreateField info structure
- *  `           WalkState       - Current method state
- *              Arg             - First parser arg for the field name list
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Process all named fields in a field declaration.  Names are
- *              entered into the namespace.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsGetFieldNames (
-    ACPI_CREATE_FIELD_INFO  *Info,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Arg)
-{
-    ACPI_STATUS             Status;
-    ACPI_INTEGER            Position;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsGetFieldNames, Info);
-
-
-    /* First field starts at bit zero */
-
-    Info->FieldBitPosition = 0;
-
-    /* Process all elements in the field list (of parse nodes) */
-
-    while (Arg)
-    {
-        /*
-         * Three types of field elements are handled:
-         * 1) Offset - specifies a bit offset
-         * 2) AccessAs - changes the access mode
-         * 3) Name - Enters a new named field into the namespace
-         */
-        switch (Arg->Common.AmlOpcode)
-        {
-        case AML_INT_RESERVEDFIELD_OP:
-
-            Position = (ACPI_INTEGER) Info->FieldBitPosition
-                        + (ACPI_INTEGER) Arg->Common.Value.Size;
-
-            if (Position > ACPI_UINT32_MAX)
-            {
-                ACPI_ERROR ((AE_INFO,
-                    "Bit offset within field too large (> 0xFFFFFFFF)"));
-                return_ACPI_STATUS (AE_SUPPORT);
-            }
-
-            Info->FieldBitPosition = (UINT32) Position;
-            break;
-
-
-        case AML_INT_ACCESSFIELD_OP:
-
-            /*
-             * Get a new AccessType and AccessAttribute -- to be used for all
-             * field units that follow, until field end or another AccessAs
-             * keyword.
-             *
-             * In FieldFlags, preserve the flag bits other than the
-             * ACCESS_TYPE bits
-             */
-            Info->FieldFlags = (UINT8)
-                ((Info->FieldFlags & ~(AML_FIELD_ACCESS_TYPE_MASK)) |
-                ((UINT8) ((UINT32) Arg->Common.Value.Integer >> 8)));
-
-            Info->Attribute = (UINT8) (Arg->Common.Value.Integer);
-            break;
-
-
-        case AML_INT_NAMEDFIELD_OP:
-
-            /* Lookup the name, it should already exist */
-
-            Status = AcpiNsLookup (WalkState->ScopeInfo,
-                        (char *) &Arg->Named.Name, Info->FieldType,
-                        ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE,
-                        WalkState, &Info->FieldNode);
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status);
-                return_ACPI_STATUS (Status);
-            }
-            else
-            {
-                Arg->Common.Node = Info->FieldNode;
-                Info->FieldBitLength = Arg->Common.Value.Size;
-
-                /*
-                 * If there is no object attached to the node, this node was
-                 * just created and we need to create the field object.
-                 * Otherwise, this was a lookup of an existing node and we
-                 * don't want to create the field object again.
-                 */
-                if (!AcpiNsGetAttachedObject (Info->FieldNode))
-                {
-                    Status = AcpiExPrepFieldValue (Info);
-                    if (ACPI_FAILURE (Status))
-                    {
-                        return_ACPI_STATUS (Status);
-                    }
-                }
-            }
-
-            /* Keep track of bit position for the next field */
-
-            Position = (ACPI_INTEGER) Info->FieldBitPosition
-                        + (ACPI_INTEGER) Arg->Common.Value.Size;
-
-            if (Position > ACPI_UINT32_MAX)
-            {
-                ACPI_ERROR ((AE_INFO,
-                    "Field [%4.4s] bit offset too large (> 0xFFFFFFFF)",
-                    ACPI_CAST_PTR (char, &Info->FieldNode->Name)));
-                return_ACPI_STATUS (AE_SUPPORT);
-            }
-
-            Info->FieldBitPosition += Info->FieldBitLength;
-            break;
-
-
-        default:
-
-            ACPI_ERROR ((AE_INFO,
-                "Invalid opcode in field list: %X", Arg->Common.AmlOpcode));
-            return_ACPI_STATUS (AE_AML_BAD_OPCODE);
-        }
-
-        Arg = Arg->Common.Next;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCreateField
- *
- * PARAMETERS:  Op              - Op containing the Field definition and args
- *              RegionNode      - Object for the containing Operation Region
- *  `           WalkState       - Current method state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new field in the specified operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateField (
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_NAMESPACE_NODE     *RegionNode,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_PARSE_OBJECT       *Arg;
-    ACPI_CREATE_FIELD_INFO  Info;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsCreateField, Op);
-
-
-    /* First arg is the name of the parent OpRegion (must already exist) */
-
-    Arg = Op->Common.Value.Arg;
-    if (!RegionNode)
-    {
-        Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.Name,
-                        ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE,
-                        ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_ERROR_NAMESPACE (Arg->Common.Value.Name, Status);
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Second arg is the field flags */
-
-    Arg = Arg->Common.Next;
-    Info.FieldFlags = (UINT8) Arg->Common.Value.Integer;
-    Info.Attribute = 0;
-
-    /* Each remaining arg is a Named Field */
-
-    Info.FieldType = ACPI_TYPE_LOCAL_REGION_FIELD;
-    Info.RegionNode = RegionNode;
-
-    Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsInitFieldObjects
- *
- * PARAMETERS:  Op              - Op containing the Field definition and args
- *  `           WalkState       - Current method state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: For each "Field Unit" name in the argument list that is
- *              part of the field declaration, enter the name into the
- *              namespace.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitFieldObjects (
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_PARSE_OBJECT       *Arg = NULL;
-    ACPI_NAMESPACE_NODE     *Node;
-    UINT8                   Type = 0;
-    UINT32                  Flags;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsInitFieldObjects, Op);
-
-
-    /* Execute flag should always be set when this function is entered */
-
-    if (!(WalkState->ParseFlags & ACPI_PARSE_EXECUTE))
-    {
-        if (WalkState->ParseFlags & ACPI_PARSE_DEFERRED_OP)
-        {
-            /* BankField Op is deferred, just return OK */
-
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        return_ACPI_STATUS (AE_AML_INTERNAL);
-    }
-
-    /*
-     * Get the FieldList argument for this opcode. This is the start of the
-     * list of field elements.
-     */
-    switch (WalkState->Opcode)
-    {
-    case AML_FIELD_OP:
-        Arg = AcpiPsGetArg (Op, 2);
-        Type = ACPI_TYPE_LOCAL_REGION_FIELD;
-        break;
-
-    case AML_BANK_FIELD_OP:
-        Arg = AcpiPsGetArg (Op, 4);
-        Type = ACPI_TYPE_LOCAL_BANK_FIELD;
-        break;
-
-    case AML_INDEX_FIELD_OP:
-        Arg = AcpiPsGetArg (Op, 3);
-        Type = ACPI_TYPE_LOCAL_INDEX_FIELD;
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Creating new namespace node(s), should not already exist */
-
-    Flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE |
-            ACPI_NS_ERROR_IF_FOUND;
-
-    /*
-     * Mark node(s) temporary if we are executing a normal control
-     * method. (Don't mark if this is a module-level code method)
-     */
-    if (WalkState->MethodNode &&
-        !(WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL))
-    {
-        Flags |= ACPI_NS_TEMPORARY;
-    }
-
-    /*
-     * Walk the list of entries in the FieldList
-     * Note: FieldList can be of zero length. In this case, Arg will be NULL.
-     */
-    while (Arg)
-    {
-        /*
-         * Ignore OFFSET and ACCESSAS terms here; we are only interested in the
-         * field names in order to enter them into the namespace.
-         */
-        if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
-        {
-            Status = AcpiNsLookup (WalkState->ScopeInfo,
-                        (char *) &Arg->Named.Name, Type, ACPI_IMODE_LOAD_PASS1,
-                        Flags, WalkState, &Node);
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status);
-                if (Status != AE_ALREADY_EXISTS)
-                {
-                    return_ACPI_STATUS (Status);
-                }
-
-                /* Name already exists, just ignore this error */
-
-                Status = AE_OK;
-            }
-
-            Arg->Common.Node = Node;
-        }
-
-        /* Get the next field element in the list */
-
-        Arg = Arg->Common.Next;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCreateBankField
- *
- * PARAMETERS:  Op              - Op containing the Field definition and args
- *              RegionNode      - Object for the containing Operation Region
- *              WalkState       - Current method state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new bank field in the specified operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateBankField (
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_NAMESPACE_NODE     *RegionNode,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_PARSE_OBJECT       *Arg;
-    ACPI_CREATE_FIELD_INFO  Info;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsCreateBankField, Op);
-
-
-    /* First arg is the name of the parent OpRegion (must already exist) */
-
-    Arg = Op->Common.Value.Arg;
-    if (!RegionNode)
-    {
-        Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.Name,
-                        ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE,
-                        ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_ERROR_NAMESPACE (Arg->Common.Value.Name, Status);
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Second arg is the Bank Register (Field) (must already exist) */
-
-    Arg = Arg->Common.Next;
-    Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
-                    ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
-                    ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Third arg is the BankValue
-     * This arg is a TermArg, not a constant
-     * It will be evaluated later, by AcpiDsEvalBankFieldOperands
-     */
-    Arg = Arg->Common.Next;
-
-    /* Fourth arg is the field flags */
-
-    Arg = Arg->Common.Next;
-    Info.FieldFlags = (UINT8) Arg->Common.Value.Integer;
-
-    /* Each remaining arg is a Named Field */
-
-    Info.FieldType = ACPI_TYPE_LOCAL_BANK_FIELD;
-    Info.RegionNode = RegionNode;
-
-    /*
-     * Use Info.DataRegisterNode to store BankField Op
-     * It's safe because DataRegisterNode will never be used when create bank field
-     * We store AmlStart and AmlLength in the BankField Op for late evaluation
-     * Used in AcpiExPrepFieldValue(Info)
-     *
-     * TBD: Or, should we add a field in ACPI_CREATE_FIELD_INFO, like "void *ParentOp"?
-     */
-    Info.DataRegisterNode = (ACPI_NAMESPACE_NODE*) Op;
-
-    Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCreateIndexField
- *
- * PARAMETERS:  Op              - Op containing the Field definition and args
- *              RegionNode      - Object for the containing Operation Region
- *  `           WalkState       - Current method state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new index field in the specified operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateIndexField (
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_NAMESPACE_NODE     *RegionNode,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_PARSE_OBJECT       *Arg;
-    ACPI_CREATE_FIELD_INFO  Info;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsCreateIndexField, Op);
-
-
-    /* First arg is the name of the Index register (must already exist) */
-
-    Arg = Op->Common.Value.Arg;
-    Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
-                    ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
-                    ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Second arg is the data register (must already exist) */
-
-    Arg = Arg->Common.Next;
-    Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
-                    ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
-                    ACPI_NS_SEARCH_PARENT, WalkState, &Info.DataRegisterNode);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Next arg is the field flags */
-
-    Arg = Arg->Common.Next;
-    Info.FieldFlags = (UINT8) Arg->Common.Value.Integer;
-
-    /* Each remaining arg is a Named Field */
-
-    Info.FieldType = ACPI_TYPE_LOCAL_INDEX_FIELD;
-    Info.RegionNode = RegionNode;
-
-    Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsinit.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsinit.c
deleted file mode 100644 (file)
index efea20e..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsinit - Object initialization namespace walk
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSINIT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdispat.h"
-#include "acnamesp.h"
-#include "actables.h"
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dsinit")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsInitOneObject (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsInitOneObject
- *
- * PARAMETERS:  ObjHandle       - Node for the object
- *              Level           - Current nesting level
- *              Context         - Points to a init info struct
- *              ReturnValue     - Not used
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Callback from AcpiWalkNamespace.  Invoked for every object
- *              within the namespace.
- *
- *              Currently, the only objects that require initialization are:
- *              1) Methods
- *              2) Operation Regions
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsInitOneObject (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_INIT_WALK_INFO     *Info = (ACPI_INIT_WALK_INFO *) Context;
-    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-    ACPI_OBJECT_TYPE        Type;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * We are only interested in NS nodes owned by the table that
-     * was just loaded
-     */
-    if (Node->OwnerId != Info->OwnerId)
-    {
-        return (AE_OK);
-    }
-
-    Info->ObjectCount++;
-
-    /* And even then, we are only interested in a few object types */
-
-    Type = AcpiNsGetType (ObjHandle);
-
-    switch (Type)
-    {
-    case ACPI_TYPE_REGION:
-
-        Status = AcpiDsInitializeRegion (ObjHandle);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "During Region initialization %p [%4.4s]",
-                ObjHandle, AcpiUtGetNodeName (ObjHandle)));
-        }
-
-        Info->OpRegionCount++;
-        break;
-
-
-    case ACPI_TYPE_METHOD:
-
-        Info->MethodCount++;
-        break;
-
-
-    case ACPI_TYPE_DEVICE:
-
-        Info->DeviceCount++;
-        break;
-
-
-    default:
-        break;
-    }
-
-    /*
-     * We ignore errors from above, and always return OK, since
-     * we don't want to abort the walk on a single error.
-     */
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsInitializeObjects
- *
- * PARAMETERS:  TableDesc       - Descriptor for parent ACPI table
- *              StartNode       - Root of subtree to be initialized.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Walk the namespace starting at "StartNode" and perform any
- *              necessary initialization on the objects found therein
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitializeObjects (
-    UINT32                  TableIndex,
-    ACPI_NAMESPACE_NODE     *StartNode)
-{
-    ACPI_STATUS             Status;
-    ACPI_INIT_WALK_INFO     Info;
-    ACPI_TABLE_HEADER       *Table;
-    ACPI_OWNER_ID           OwnerId;
-
-
-    ACPI_FUNCTION_TRACE (DsInitializeObjects);
-
-
-    Status = AcpiTbGetOwnerId (TableIndex, &OwnerId);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "**** Starting initialization of namespace objects ****\n"));
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "Parsing all Control Methods:"));
-
-    Info.MethodCount    = 0;
-    Info.OpRegionCount  = 0;
-    Info.ObjectCount    = 0;
-    Info.DeviceCount    = 0;
-    Info.TableIndex     = TableIndex;
-    Info.OwnerId        = OwnerId;
-
-    /* Walk entire namespace from the supplied root */
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * We don't use AcpiWalkNamespace since we do not want to acquire
-     * the namespace reader lock.
-     */
-    Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, StartNode, ACPI_UINT32_MAX,
-                ACPI_NS_WALK_UNLOCK, AcpiDsInitOneObject, NULL, &Info, NULL);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace"));
-    }
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
-    Status = AcpiGetTableByIndex (TableIndex, &Table);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
-        "\nTable [%4.4s](id %4.4X) - %hd Objects with %hd Devices %hd Methods %hd Regions\n",
-        Table->Signature, OwnerId, Info.ObjectCount,
-        Info.DeviceCount, Info.MethodCount, Info.OpRegionCount));
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "%hd Methods, %hd Regions\n", Info.MethodCount, Info.OpRegionCount));
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsmethod.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsmethod.c
deleted file mode 100644 (file)
index 48172e9..0000000
+++ /dev/null
@@ -1,762 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsmethod - Parser/Interpreter interface - control method parsing
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSMETHOD_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-#include "acdisasm.h"
-
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dsmethod")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsCreateMethodMutex (
-    ACPI_OPERAND_OBJECT     *MethodDesc);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsMethodError
- *
- * PARAMETERS:  Status          - Execution status
- *              WalkState       - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Called on method error. Invoke the global exception handler if
- *              present, dump the method data if the disassembler is configured
- *
- *              Note: Allows the exception handler to change the status code
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsMethodError (
-    ACPI_STATUS             Status,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Ignore AE_OK and control exception codes */
-
-    if (ACPI_SUCCESS (Status) ||
-        (Status & AE_CODE_CONTROL))
-    {
-        return (Status);
-    }
-
-    /* Invoke the global exception handler */
-
-    if (AcpiGbl_ExceptionHandler)
-    {
-        /* Exit the interpreter, allow handler to execute methods */
-
-        AcpiExExitInterpreter ();
-
-        /*
-         * Handler can map the exception code to anything it wants, including
-         * AE_OK, in which case the executing method will not be aborted.
-         */
-        Status = AcpiGbl_ExceptionHandler (Status,
-                    WalkState->MethodNode ?
-                        WalkState->MethodNode->Name.Integer : 0,
-                    WalkState->Opcode, WalkState->AmlOffset, NULL);
-        AcpiExEnterInterpreter ();
-    }
-
-    AcpiDsClearImplicitReturn (WalkState);
-
-#ifdef ACPI_DISASSEMBLER
-    if (ACPI_FAILURE (Status))
-    {
-        /* Display method locals/args if disassembler is present */
-
-        AcpiDmDumpMethodInfo (Status, WalkState, WalkState->Op);
-    }
-#endif
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCreateMethodMutex
- *
- * PARAMETERS:  ObjDesc             - The method object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a mutex object for a serialized control method
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsCreateMethodMutex (
-    ACPI_OPERAND_OBJECT     *MethodDesc)
-{
-    ACPI_OPERAND_OBJECT     *MutexDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (DsCreateMethodMutex);
-
-
-    /* Create the new mutex object */
-
-    MutexDesc = AcpiUtCreateInternalObject (ACPI_TYPE_MUTEX);
-    if (!MutexDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Create the actual OS Mutex */
-
-    Status = AcpiOsCreateMutex (&MutexDesc->Mutex.OsMutex);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    MutexDesc->Mutex.SyncLevel = MethodDesc->Method.SyncLevel;
-    MethodDesc->Method.Mutex = MutexDesc;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsBeginMethodExecution
- *
- * PARAMETERS:  MethodNode          - Node of the method
- *              ObjDesc             - The method object
- *              WalkState           - current state, NULL if not yet executing
- *                                    a method.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Prepare a method for execution.  Parses the method if necessary,
- *              increments the thread count, and waits at the method semaphore
- *              for clearance to execute.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsBeginMethodExecution (
-    ACPI_NAMESPACE_NODE     *MethodNode,
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsBeginMethodExecution, MethodNode);
-
-
-    if (!MethodNode)
-    {
-        return_ACPI_STATUS (AE_NULL_ENTRY);
-    }
-
-    /* Prevent wraparound of thread count */
-
-    if (ObjDesc->Method.ThreadCount == ACPI_UINT8_MAX)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Method reached maximum reentrancy limit (255)"));
-        return_ACPI_STATUS (AE_AML_METHOD_LIMIT);
-    }
-
-    /*
-     * If this method is serialized, we need to acquire the method mutex.
-     */
-    if (ObjDesc->Method.MethodFlags & AML_METHOD_SERIALIZED)
-    {
-        /*
-         * Create a mutex for the method if it is defined to be Serialized
-         * and a mutex has not already been created. We defer the mutex creation
-         * until a method is actually executed, to minimize the object count
-         */
-        if (!ObjDesc->Method.Mutex)
-        {
-            Status = AcpiDsCreateMethodMutex (ObjDesc);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-
-        /*
-         * The CurrentSyncLevel (per-thread) must be less than or equal to
-         * the sync level of the method. This mechanism provides some
-         * deadlock prevention
-         *
-         * Top-level method invocation has no walk state at this point
-         */
-        if (WalkState &&
-            (WalkState->Thread->CurrentSyncLevel > ObjDesc->Method.Mutex->Mutex.SyncLevel))
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Cannot acquire Mutex for method [%4.4s], current SyncLevel is too large (%d)",
-                AcpiUtGetNodeName (MethodNode),
-                WalkState->Thread->CurrentSyncLevel));
-
-            return_ACPI_STATUS (AE_AML_MUTEX_ORDER);
-        }
-
-        /*
-         * Obtain the method mutex if necessary. Do not acquire mutex for a
-         * recursive call.
-         */
-        if (!WalkState ||
-            !ObjDesc->Method.Mutex->Mutex.ThreadId ||
-            (WalkState->Thread->ThreadId != ObjDesc->Method.Mutex->Mutex.ThreadId))
-        {
-            /*
-             * Acquire the method mutex. This releases the interpreter if we
-             * block (and reacquires it before it returns)
-             */
-            Status = AcpiExSystemWaitMutex (ObjDesc->Method.Mutex->Mutex.OsMutex,
-                        ACPI_WAIT_FOREVER);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-
-            /* Update the mutex and walk info and save the original SyncLevel */
-
-            if (WalkState)
-            {
-                ObjDesc->Method.Mutex->Mutex.OriginalSyncLevel =
-                    WalkState->Thread->CurrentSyncLevel;
-
-                ObjDesc->Method.Mutex->Mutex.ThreadId = WalkState->Thread->ThreadId;
-                WalkState->Thread->CurrentSyncLevel = ObjDesc->Method.SyncLevel;
-            }
-            else
-            {
-                ObjDesc->Method.Mutex->Mutex.OriginalSyncLevel =
-                    ObjDesc->Method.Mutex->Mutex.SyncLevel;
-            }
-        }
-
-        /* Always increase acquisition depth */
-
-        ObjDesc->Method.Mutex->Mutex.AcquisitionDepth++;
-    }
-
-    /*
-     * Allocate an Owner ID for this method, only if this is the first thread
-     * to begin concurrent execution. We only need one OwnerId, even if the
-     * method is invoked recursively.
-     */
-    if (!ObjDesc->Method.OwnerId)
-    {
-        Status = AcpiUtAllocateOwnerId (&ObjDesc->Method.OwnerId);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-    }
-
-    /*
-     * Increment the method parse tree thread count since it has been
-     * reentered one more time (even if it is the same thread)
-     */
-    ObjDesc->Method.ThreadCount++;
-    AcpiMethodCount++;
-    return_ACPI_STATUS (Status);
-
-
-Cleanup:
-    /* On error, must release the method mutex (if present) */
-
-    if (ObjDesc->Method.Mutex)
-    {
-        AcpiOsReleaseMutex (ObjDesc->Method.Mutex->Mutex.OsMutex);
-    }
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCallControlMethod
- *
- * PARAMETERS:  Thread              - Info for this thread
- *              ThisWalkState       - Current walk state
- *              Op                  - Current Op to be walked
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Transfer execution to a called control method
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCallControlMethod (
-    ACPI_THREAD_STATE       *Thread,
-    ACPI_WALK_STATE         *ThisWalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *MethodNode;
-    ACPI_WALK_STATE         *NextWalkState = NULL;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_EVALUATE_INFO      *Info;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsCallControlMethod, ThisWalkState);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Calling method %p, currentstate=%p\n",
-        ThisWalkState->PrevOp, ThisWalkState));
-
-    /*
-     * Get the namespace entry for the control method we are about to call
-     */
-    MethodNode = ThisWalkState->MethodCallNode;
-    if (!MethodNode)
-    {
-        return_ACPI_STATUS (AE_NULL_ENTRY);
-    }
-
-    ObjDesc = AcpiNsGetAttachedObject (MethodNode);
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_NULL_OBJECT);
-    }
-
-    /* Init for new method, possibly wait on method mutex */
-
-    Status = AcpiDsBeginMethodExecution (MethodNode, ObjDesc,
-                ThisWalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Begin method parse/execution. Create a new walk state */
-
-    NextWalkState = AcpiDsCreateWalkState (ObjDesc->Method.OwnerId,
-                        NULL, ObjDesc, Thread);
-    if (!NextWalkState)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /*
-     * The resolved arguments were put on the previous walk state's operand
-     * stack. Operands on the previous walk state stack always
-     * start at index 0. Also, null terminate the list of arguments
-     */
-    ThisWalkState->Operands [ThisWalkState->NumOperands] = NULL;
-
-    /*
-     * Allocate and initialize the evaluation information block
-     * TBD: this is somewhat inefficient, should change interface to
-     * DsInitAmlWalk. For now, keeps this struct off the CPU stack
-     */
-    Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
-    if (!Info)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Info->Parameters = &ThisWalkState->Operands[0];
-
-    Status = AcpiDsInitAmlWalk (NextWalkState, NULL, MethodNode,
-                ObjDesc->Method.AmlStart, ObjDesc->Method.AmlLength,
-                Info, ACPI_IMODE_EXECUTE);
-
-    ACPI_FREE (Info);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    /*
-     * Delete the operands on the previous walkstate operand stack
-     * (they were copied to new objects)
-     */
-    for (i = 0; i < ObjDesc->Method.ParamCount; i++)
-    {
-        AcpiUtRemoveReference (ThisWalkState->Operands [i]);
-        ThisWalkState->Operands [i] = NULL;
-    }
-
-    /* Clear the operand stack */
-
-    ThisWalkState->NumOperands = 0;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "**** Begin nested execution of [%4.4s] **** WalkState=%p\n",
-        MethodNode->Name.Ascii, NextWalkState));
-
-    /* Invoke an internal method if necessary */
-
-    if (ObjDesc->Method.MethodFlags & AML_METHOD_INTERNAL_ONLY)
-    {
-        Status = ObjDesc->Method.Extra.Implementation (NextWalkState);
-        if (Status == AE_OK)
-        {
-            Status = AE_CTRL_TERMINATE;
-        }
-    }
-
-    return_ACPI_STATUS (Status);
-
-
-Cleanup:
-
-    /* On error, we must terminate the method properly */
-
-    AcpiDsTerminateControlMethod (ObjDesc, NextWalkState);
-    if (NextWalkState)
-    {
-        AcpiDsDeleteWalkState (NextWalkState);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsRestartControlMethod
- *
- * PARAMETERS:  WalkState           - State for preempted method (caller)
- *              ReturnDesc          - Return value from the called method
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Restart a method that was preempted by another (nested) method
- *              invocation.  Handle the return value (if any) from the callee.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsRestartControlMethod (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_OPERAND_OBJECT     *ReturnDesc)
-{
-    ACPI_STATUS             Status;
-    int                     SameAsImplicitReturn;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsRestartControlMethod, WalkState);
-
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "****Restart [%4.4s] Op %p ReturnValueFromCallee %p\n",
-        AcpiUtGetNodeName (WalkState->MethodNode),
-        WalkState->MethodCallOp, ReturnDesc));
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "    ReturnFromThisMethodUsed?=%X ResStack %p Walk %p\n",
-        WalkState->ReturnUsed,
-        WalkState->Results, WalkState));
-
-    /* Did the called method return a value? */
-
-    if (ReturnDesc)
-    {
-        /* Is the implicit return object the same as the return desc? */
-
-        SameAsImplicitReturn = (WalkState->ImplicitReturnObj == ReturnDesc);
-
-        /* Are we actually going to use the return value? */
-
-        if (WalkState->ReturnUsed)
-        {
-            /* Save the return value from the previous method */
-
-            Status = AcpiDsResultPush (ReturnDesc, WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                AcpiUtRemoveReference (ReturnDesc);
-                return_ACPI_STATUS (Status);
-            }
-
-            /*
-             * Save as THIS method's return value in case it is returned
-             * immediately to yet another method
-             */
-            WalkState->ReturnDesc = ReturnDesc;
-        }
-
-        /*
-         * The following code is the optional support for the so-called
-         * "implicit return". Some AML code assumes that the last value of the
-         * method is "implicitly" returned to the caller, in the absence of an
-         * explicit return value.
-         *
-         * Just save the last result of the method as the return value.
-         *
-         * NOTE: this is optional because the ASL language does not actually
-         * support this behavior.
-         */
-        else if (!AcpiDsDoImplicitReturn (ReturnDesc, WalkState, FALSE) ||
-                 SameAsImplicitReturn)
-        {
-            /*
-             * Delete the return value if it will not be used by the
-             * calling method or remove one reference if the explicit return
-             * is the same as the implicit return value.
-             */
-            AcpiUtRemoveReference (ReturnDesc);
-        }
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsTerminateControlMethod
- *
- * PARAMETERS:  MethodDesc          - Method object
- *              WalkState           - State associated with the method
- *
- * RETURN:      None
- *
- * DESCRIPTION: Terminate a control method.  Delete everything that the method
- *              created, delete all locals and arguments, and delete the parse
- *              tree if requested.
- *
- * MUTEX:       Interpreter is locked
- *
- ******************************************************************************/
-
-void
-AcpiDsTerminateControlMethod (
-    ACPI_OPERAND_OBJECT     *MethodDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-
-    ACPI_FUNCTION_TRACE_PTR (DsTerminateControlMethod, WalkState);
-
-
-    /* MethodDesc is required, WalkState is optional */
-
-    if (!MethodDesc)
-    {
-        return_VOID;
-    }
-
-    if (WalkState)
-    {
-        /* Delete all arguments and locals */
-
-        AcpiDsMethodDataDeleteAll (WalkState);
-
-        /*
-         * If method is serialized, release the mutex and restore the
-         * current sync level for this thread
-         */
-        if (MethodDesc->Method.Mutex)
-        {
-            /* Acquisition Depth handles recursive calls */
-
-            MethodDesc->Method.Mutex->Mutex.AcquisitionDepth--;
-            if (!MethodDesc->Method.Mutex->Mutex.AcquisitionDepth)
-            {
-                WalkState->Thread->CurrentSyncLevel =
-                    MethodDesc->Method.Mutex->Mutex.OriginalSyncLevel;
-
-                AcpiOsReleaseMutex (MethodDesc->Method.Mutex->Mutex.OsMutex);
-                MethodDesc->Method.Mutex->Mutex.ThreadId = 0;
-            }
-        }
-
-        /*
-         * Delete any namespace objects created anywhere within the
-         * namespace by the execution of this method. Unless this method
-         * is a module-level executable code method, in which case we
-         * want make the objects permanent.
-         */
-        if (!(MethodDesc->Method.Flags & AOPOBJ_MODULE_LEVEL))
-        {
-            AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId);
-        }
-    }
-
-    /* Decrement the thread count on the method */
-
-    if (MethodDesc->Method.ThreadCount)
-    {
-        MethodDesc->Method.ThreadCount--;
-    }
-    else
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Invalid zero thread count in method"));
-    }
-
-    /* Are there any other threads currently executing this method? */
-
-    if (MethodDesc->Method.ThreadCount)
-    {
-        /*
-         * Additional threads. Do not release the OwnerId in this case,
-         * we immediately reuse it for the next thread executing this method
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-            "*** Completed execution of one thread, %d threads remaining\n",
-            MethodDesc->Method.ThreadCount));
-    }
-    else
-    {
-        /* This is the only executing thread for this method */
-
-        /*
-         * Support to dynamically change a method from NotSerialized to
-         * Serialized if it appears that the method is incorrectly written and
-         * does not support multiple thread execution. The best example of this
-         * is if such a method creates namespace objects and blocks. A second
-         * thread will fail with an AE_ALREADY_EXISTS exception
-         *
-         * This code is here because we must wait until the last thread exits
-         * before creating the synchronization semaphore.
-         */
-        if ((MethodDesc->Method.MethodFlags & AML_METHOD_SERIALIZED) &&
-            (!MethodDesc->Method.Mutex))
-        {
-            (void) AcpiDsCreateMethodMutex (MethodDesc);
-        }
-
-        /* No more threads, we can free the OwnerId */
-
-        if (!(MethodDesc->Method.Flags & AOPOBJ_MODULE_LEVEL))
-        {
-            AcpiUtReleaseOwnerId (&MethodDesc->Method.OwnerId);
-        }
-    }
-
-    return_VOID;
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsmthdat.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsmthdat.c
deleted file mode 100644 (file)
index 551e848..0000000
+++ /dev/null
@@ -1,846 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dsmthdat - control method arguments and local variables
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSMTHDAT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdispat.h"
-#include "acnamesp.h"
-#include "acinterp.h"
-
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dsmthdat")
-
-/* Local prototypes */
-
-static void
-AcpiDsMethodDataDeleteValue (
-    UINT8                   Type,
-    UINT32                  Index,
-    ACPI_WALK_STATE         *WalkState);
-
-static ACPI_STATUS
-AcpiDsMethodDataSetValue (
-    UINT8                   Type,
-    UINT32                  Index,
-    ACPI_OPERAND_OBJECT     *Object,
-    ACPI_WALK_STATE         *WalkState);
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-ACPI_OBJECT_TYPE
-AcpiDsMethodDataGetType (
-    UINT16                  Opcode,
-    UINT32                  Index,
-    ACPI_WALK_STATE         *WalkState);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsMethodDataInit
- *
- * PARAMETERS:  WalkState           - Current walk state object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initialize the data structures that hold the method's arguments
- *              and locals.  The data struct is an array of namespace nodes for
- *              each - this allows RefOf and DeRefOf to work properly for these
- *              special data types.
- *
- * NOTES:       WalkState fields are initialized to zero by the
- *              ACPI_ALLOCATE_ZEROED().
- *
- *              A pseudo-Namespace Node is assigned to each argument and local
- *              so that RefOf() can return a pointer to the Node.
- *
- ******************************************************************************/
-
-void
-AcpiDsMethodDataInit (
-    ACPI_WALK_STATE         *WalkState)
-{
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (DsMethodDataInit);
-
-
-    /* Init the method arguments */
-
-    for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++)
-    {
-        ACPI_MOVE_32_TO_32 (&WalkState->Arguments[i].Name, NAMEOF_ARG_NTE);
-        WalkState->Arguments[i].Name.Integer |= (i << 24);
-        WalkState->Arguments[i].DescriptorType = ACPI_DESC_TYPE_NAMED;
-        WalkState->Arguments[i].Type = ACPI_TYPE_ANY;
-        WalkState->Arguments[i].Flags =
-            ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_ARG;
-    }
-
-    /* Init the method locals */
-
-    for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++)
-    {
-        ACPI_MOVE_32_TO_32 (&WalkState->LocalVariables[i].Name, NAMEOF_LOCAL_NTE);
-
-        WalkState->LocalVariables[i].Name.Integer |= (i << 24);
-        WalkState->LocalVariables[i].DescriptorType = ACPI_DESC_TYPE_NAMED;
-        WalkState->LocalVariables[i].Type = ACPI_TYPE_ANY;
-        WalkState->LocalVariables[i].Flags =
-            ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_LOCAL;
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsMethodDataDeleteAll
- *
- * PARAMETERS:  WalkState           - Current walk state object
- *
- * RETURN:      None
- *
- * DESCRIPTION: Delete method locals and arguments.  Arguments are only
- *              deleted if this method was called from another method.
- *
- ******************************************************************************/
-
-void
-AcpiDsMethodDataDeleteAll (
-    ACPI_WALK_STATE         *WalkState)
-{
-    UINT32                  Index;
-
-
-    ACPI_FUNCTION_TRACE (DsMethodDataDeleteAll);
-
-
-    /* Detach the locals */
-
-    for (Index = 0; Index < ACPI_METHOD_NUM_LOCALS; Index++)
-    {
-        if (WalkState->LocalVariables[Index].Object)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Local%d=%p\n",
-                    Index, WalkState->LocalVariables[Index].Object));
-
-            /* Detach object (if present) and remove a reference */
-
-            AcpiNsDetachObject (&WalkState->LocalVariables[Index]);
-        }
-    }
-
-    /* Detach the arguments */
-
-    for (Index = 0; Index < ACPI_METHOD_NUM_ARGS; Index++)
-    {
-        if (WalkState->Arguments[Index].Object)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Arg%d=%p\n",
-                    Index, WalkState->Arguments[Index].Object));
-
-            /* Detach object (if present) and remove a reference */
-
-            AcpiNsDetachObject (&WalkState->Arguments[Index]);
-        }
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsMethodDataInitArgs
- *
- * PARAMETERS:  *Params         - Pointer to a parameter list for the method
- *              MaxParamCount   - The arg count for this method
- *              WalkState       - Current walk state object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initialize arguments for a method.  The parameter list is a list
- *              of ACPI operand objects, either null terminated or whose length
- *              is defined by MaxParamCount.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsMethodDataInitArgs (
-    ACPI_OPERAND_OBJECT     **Params,
-    UINT32                  MaxParamCount,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    UINT32                  Index = 0;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsMethodDataInitArgs, Params);
-
-
-    if (!Params)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "No param list passed to method\n"));
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Copy passed parameters into the new method stack frame */
-
-    while ((Index < ACPI_METHOD_NUM_ARGS) &&
-           (Index < MaxParamCount)        &&
-            Params[Index])
-    {
-        /*
-         * A valid parameter.
-         * Store the argument in the method/walk descriptor.
-         * Do not copy the arg in order to implement call by reference
-         */
-        Status = AcpiDsMethodDataSetValue (ACPI_REFCLASS_ARG, Index,
-                    Params[Index], WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        Index++;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%d args passed to method\n", Index));
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsMethodDataGetNode
- *
- * PARAMETERS:  Type                - Either ACPI_REFCLASS_LOCAL or
- *                                    ACPI_REFCLASS_ARG
- *              Index               - Which Local or Arg whose type to get
- *              WalkState           - Current walk state object
- *              Node                - Where the node is returned.
- *
- * RETURN:      Status and node
- *
- * DESCRIPTION: Get the Node associated with a local or arg.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsMethodDataGetNode (
-    UINT8                   Type,
-    UINT32                  Index,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_NAMESPACE_NODE     **Node)
-{
-    ACPI_FUNCTION_TRACE (DsMethodDataGetNode);
-
-
-    /*
-     * Method Locals and Arguments are supported
-     */
-    switch (Type)
-    {
-    case ACPI_REFCLASS_LOCAL:
-
-        if (Index > ACPI_METHOD_MAX_LOCAL)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Local index %d is invalid (max %d)",
-                Index, ACPI_METHOD_MAX_LOCAL));
-            return_ACPI_STATUS (AE_AML_INVALID_INDEX);
-        }
-
-        /* Return a pointer to the pseudo-node */
-
-        *Node = &WalkState->LocalVariables[Index];
-        break;
-
-    case ACPI_REFCLASS_ARG:
-
-        if (Index > ACPI_METHOD_MAX_ARG)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Arg index %d is invalid (max %d)",
-                Index, ACPI_METHOD_MAX_ARG));
-            return_ACPI_STATUS (AE_AML_INVALID_INDEX);
-        }
-
-        /* Return a pointer to the pseudo-node */
-
-        *Node = &WalkState->Arguments[Index];
-        break;
-
-    default:
-        ACPI_ERROR ((AE_INFO, "Type %d is invalid", Type));
-        return_ACPI_STATUS (AE_TYPE);
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsMethodDataSetValue
- *
- * PARAMETERS:  Type                - Either ACPI_REFCLASS_LOCAL or
- *                                    ACPI_REFCLASS_ARG
- *              Index               - Which Local or Arg to get
- *              Object              - Object to be inserted into the stack entry
- *              WalkState           - Current walk state object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Insert an object onto the method stack at entry Opcode:Index.
- *              Note: There is no "implicit conversion" for locals.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsMethodDataSetValue (
-    UINT8                   Type,
-    UINT32                  Index,
-    ACPI_OPERAND_OBJECT     *Object,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ACPI_FUNCTION_TRACE (DsMethodDataSetValue);
-
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "NewObj %p Type %2.2X, Refs=%d [%s]\n", Object,
-        Type, Object->Common.ReferenceCount,
-        AcpiUtGetTypeName (Object->Common.Type)));
-
-    /* Get the namespace node for the arg/local */
-
-    Status = AcpiDsMethodDataGetNode (Type, Index, WalkState, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Increment ref count so object can't be deleted while installed.
-     * NOTE: We do not copy the object in order to preserve the call by
-     * reference semantics of ACPI Control Method invocation.
-     * (See ACPI Specification 2.0C)
-     */
-    AcpiUtAddReference (Object);
-
-    /* Install the object */
-
-    Node->Object = Object;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsMethodDataGetValue
- *
- * PARAMETERS:  Type                - Either ACPI_REFCLASS_LOCAL or
- *                                    ACPI_REFCLASS_ARG
- *              Index               - Which localVar or argument to get
- *              WalkState           - Current walk state object
- *              DestDesc            - Where Arg or Local value is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Retrieve value of selected Arg or Local for this method
- *              Used only in AcpiExResolveToValue().
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsMethodDataGetValue (
-    UINT8                   Type,
-    UINT32                  Index,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_OPERAND_OBJECT     **DestDesc)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OPERAND_OBJECT     *Object;
-
-
-    ACPI_FUNCTION_TRACE (DsMethodDataGetValue);
-
-
-    /* Validate the object descriptor */
-
-    if (!DestDesc)
-    {
-        ACPI_ERROR ((AE_INFO, "Null object descriptor pointer"));
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Get the namespace node for the arg/local */
-
-    Status = AcpiDsMethodDataGetNode (Type, Index, WalkState, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Get the object from the node */
-
-    Object = Node->Object;
-
-    /* Examine the returned object, it must be valid. */
-
-    if (!Object)
-    {
-        /*
-         * Index points to uninitialized object.
-         * This means that either 1) The expected argument was
-         * not passed to the method, or 2) A local variable
-         * was referenced by the method (via the ASL)
-         * before it was initialized.  Either case is an error.
-         */
-
-        /* If slack enabled, init the LocalX/ArgX to an Integer of value zero */
-
-        if (AcpiGbl_EnableInterpreterSlack)
-        {
-            Object = AcpiUtCreateIntegerObject ((UINT64) 0);
-            if (!Object)
-            {
-                return_ACPI_STATUS (AE_NO_MEMORY);
-            }
-
-            Node->Object = Object;
-        }
-
-        /* Otherwise, return the error */
-
-        else switch (Type)
-        {
-        case ACPI_REFCLASS_ARG:
-
-            ACPI_ERROR ((AE_INFO,
-                "Uninitialized Arg[%d] at node %p",
-                Index, Node));
-
-            return_ACPI_STATUS (AE_AML_UNINITIALIZED_ARG);
-
-        case ACPI_REFCLASS_LOCAL:
-
-            /*
-             * No error message for this case, will be trapped again later to
-             * detect and ignore cases of Store(LocalX,LocalX)
-             */
-            return_ACPI_STATUS (AE_AML_UNINITIALIZED_LOCAL);
-
-        default:
-
-            ACPI_ERROR ((AE_INFO, "Not a Arg/Local opcode: %X", Type));
-            return_ACPI_STATUS (AE_AML_INTERNAL);
-        }
-    }
-
-    /*
-     * The Index points to an initialized and valid object.
-     * Return an additional reference to the object
-     */
-    *DestDesc = Object;
-    AcpiUtAddReference (Object);
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsMethodDataDeleteValue
- *
- * PARAMETERS:  Type                - Either ACPI_REFCLASS_LOCAL or
- *                                    ACPI_REFCLASS_ARG
- *              Index               - Which localVar or argument to delete
- *              WalkState           - Current walk state object
- *
- * RETURN:      None
- *
- * DESCRIPTION: Delete the entry at Opcode:Index.  Inserts
- *              a null into the stack slot after the object is deleted.
- *
- ******************************************************************************/
-
-static void
-AcpiDsMethodDataDeleteValue (
-    UINT8                   Type,
-    UINT32                  Index,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OPERAND_OBJECT     *Object;
-
-
-    ACPI_FUNCTION_TRACE (DsMethodDataDeleteValue);
-
-
-    /* Get the namespace node for the arg/local */
-
-    Status = AcpiDsMethodDataGetNode (Type, Index, WalkState, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        return_VOID;
-    }
-
-    /* Get the associated object */
-
-    Object = AcpiNsGetAttachedObject (Node);
-
-    /*
-     * Undefine the Arg or Local by setting its descriptor
-     * pointer to NULL. Locals/Args can contain both
-     * ACPI_OPERAND_OBJECTS and ACPI_NAMESPACE_NODEs
-     */
-    Node->Object = NULL;
-
-    if ((Object) &&
-        (ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_OPERAND))
-    {
-        /*
-         * There is a valid object.
-         * Decrement the reference count by one to balance the
-         * increment when the object was stored.
-         */
-        AcpiUtRemoveReference (Object);
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsStoreObjectToLocal
- *
- * PARAMETERS:  Type                - Either ACPI_REFCLASS_LOCAL or
- *                                    ACPI_REFCLASS_ARG
- *              Index               - Which Local or Arg to set
- *              ObjDesc             - Value to be stored
- *              WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Store a value in an Arg or Local.  The ObjDesc is installed
- *              as the new value for the Arg or Local and the reference count
- *              for ObjDesc is incremented.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsStoreObjectToLocal (
-    UINT8                   Type,
-    UINT32                  Index,
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OPERAND_OBJECT     *CurrentObjDesc;
-    ACPI_OPERAND_OBJECT     *NewObjDesc;
-
-
-    ACPI_FUNCTION_TRACE (DsStoreObjectToLocal);
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Type=%2.2X Index=%d Obj=%p\n",
-        Type, Index, ObjDesc));
-
-    /* Parameter validation */
-
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Get the namespace node for the arg/local */
-
-    Status = AcpiDsMethodDataGetNode (Type, Index, WalkState, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    CurrentObjDesc = AcpiNsGetAttachedObject (Node);
-    if (CurrentObjDesc == ObjDesc)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p already installed!\n",
-            ObjDesc));
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * If the reference count on the object is more than one, we must
-     * take a copy of the object before we store.  A reference count
-     * of exactly 1 means that the object was just created during the
-     * evaluation of an expression, and we can safely use it since it
-     * is not used anywhere else.
-     */
-    NewObjDesc = ObjDesc;
-    if (ObjDesc->Common.ReferenceCount > 1)
-    {
-        Status = AcpiUtCopyIobjectToIobject (ObjDesc, &NewObjDesc, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * If there is an object already in this slot, we either
-     * have to delete it, or if this is an argument and there
-     * is an object reference stored there, we have to do
-     * an indirect store!
-     */
-    if (CurrentObjDesc)
-    {
-        /*
-         * Check for an indirect store if an argument
-         * contains an object reference (stored as an Node).
-         * We don't allow this automatic dereferencing for
-         * locals, since a store to a local should overwrite
-         * anything there, including an object reference.
-         *
-         * If both Arg0 and Local0 contain RefOf (Local4):
-         *
-         * Store (1, Arg0)             - Causes indirect store to local4
-         * Store (1, Local0)           - Stores 1 in local0, overwriting
-         *                                  the reference to local4
-         * Store (1, DeRefof (Local0)) - Causes indirect store to local4
-         *
-         * Weird, but true.
-         */
-        if (Type == ACPI_REFCLASS_ARG)
-        {
-            /*
-             * If we have a valid reference object that came from RefOf(),
-             * do the indirect store
-             */
-            if ((ACPI_GET_DESCRIPTOR_TYPE (CurrentObjDesc) == ACPI_DESC_TYPE_OPERAND) &&
-                (CurrentObjDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&
-                (CurrentObjDesc->Reference.Class == ACPI_REFCLASS_REFOF))
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                        "Arg (%p) is an ObjRef(Node), storing in node %p\n",
-                        NewObjDesc, CurrentObjDesc));
-
-                /*
-                 * Store this object to the Node (perform the indirect store)
-                 * NOTE: No implicit conversion is performed, as per the ACPI
-                 * specification rules on storing to Locals/Args.
-                 */
-                Status = AcpiExStoreObjectToNode (NewObjDesc,
-                            CurrentObjDesc->Reference.Object, WalkState,
-                            ACPI_NO_IMPLICIT_CONVERSION);
-
-                /* Remove local reference if we copied the object above */
-
-                if (NewObjDesc != ObjDesc)
-                {
-                    AcpiUtRemoveReference (NewObjDesc);
-                }
-                return_ACPI_STATUS (Status);
-            }
-        }
-
-        /* Delete the existing object before storing the new one */
-
-        AcpiDsMethodDataDeleteValue (Type, Index, WalkState);
-    }
-
-    /*
-     * Install the Obj descriptor (*NewObjDesc) into
-     * the descriptor for the Arg or Local.
-     * (increments the object reference count by one)
-     */
-    Status = AcpiDsMethodDataSetValue (Type, Index, NewObjDesc, WalkState);
-
-    /* Remove local reference if we copied the object above */
-
-    if (NewObjDesc != ObjDesc)
-    {
-        AcpiUtRemoveReference (NewObjDesc);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsMethodDataGetType
- *
- * PARAMETERS:  Opcode              - Either AML_LOCAL_OP or AML_ARG_OP
- *              Index               - Which Local or Arg whose type to get
- *              WalkState           - Current walk state object
- *
- * RETURN:      Data type of current value of the selected Arg or Local
- *
- * DESCRIPTION: Get the type of the object stored in the Local or Arg
- *
- ******************************************************************************/
-
-ACPI_OBJECT_TYPE
-AcpiDsMethodDataGetType (
-    UINT16                  Opcode,
-    UINT32                  Index,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OPERAND_OBJECT     *Object;
-
-
-    ACPI_FUNCTION_TRACE (DsMethodDataGetType);
-
-
-    /* Get the namespace node for the arg/local */
-
-    Status = AcpiDsMethodDataGetNode (Opcode, Index, WalkState, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        return_VALUE ((ACPI_TYPE_NOT_FOUND));
-    }
-
-    /* Get the object */
-
-    Object = AcpiNsGetAttachedObject (Node);
-    if (!Object)
-    {
-        /* Uninitialized local/arg, return TYPE_ANY */
-
-        return_VALUE (ACPI_TYPE_ANY);
-    }
-
-    /* Get the object type */
-
-    return_VALUE (Object->Type);
-}
-#endif
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsobject.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsobject.c
deleted file mode 100644 (file)
index cf444a1..0000000
+++ /dev/null
@@ -1,925 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsobject - Dispatcher object management routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSOBJECT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-#include "acdispat.h"
-#include "acnamesp.h"
-#include "acinterp.h"
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dsobject")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsBuildInternalObject (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_OPERAND_OBJECT     **ObjDescPtr);
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsBuildInternalObject
- *
- * PARAMETERS:  WalkState       - Current walk state
- *              Op              - Parser object to be translated
- *              ObjDescPtr      - Where the ACPI internal object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Translate a parser Op object to the equivalent namespace object
- *              Simple objects are any objects other than a package object!
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsBuildInternalObject (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_OPERAND_OBJECT     **ObjDescPtr)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (DsBuildInternalObject);
-
-
-    *ObjDescPtr = NULL;
-    if (Op->Common.AmlOpcode == AML_INT_NAMEPATH_OP)
-    {
-        /*
-         * This is a named object reference. If this name was
-         * previously looked up in the namespace, it was stored in this op.
-         * Otherwise, go ahead and look it up now
-         */
-        if (!Op->Common.Node)
-        {
-            Status = AcpiNsLookup (WalkState->ScopeInfo,
-                        Op->Common.Value.String,
-                        ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
-                        ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL,
-                        ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &(Op->Common.Node)));
-            if (ACPI_FAILURE (Status))
-            {
-                /* Check if we are resolving a named reference within a package */
-
-                if ((Status == AE_NOT_FOUND) && (AcpiGbl_EnableInterpreterSlack) &&
-
-                    ((Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
-                     (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP)))
-                {
-                    /*
-                     * We didn't find the target and we are populating elements
-                     * of a package - ignore if slack enabled. Some ASL code
-                     * contains dangling invalid references in packages and
-                     * expects that no exception will be issued. Leave the
-                     * element as a null element. It cannot be used, but it
-                     * can be overwritten by subsequent ASL code - this is
-                     * typically the case.
-                     */
-                    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                        "Ignoring unresolved reference in package [%4.4s]\n",
-                        WalkState->ScopeInfo->Scope.Node->Name.Ascii));
-
-                    return_ACPI_STATUS (AE_OK);
-                }
-                else
-                {
-                    ACPI_ERROR_NAMESPACE (Op->Common.Value.String, Status);
-                }
-
-                return_ACPI_STATUS (Status);
-            }
-        }
-
-        /* Special object resolution for elements of a package */
-
-        if ((Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
-            (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP))
-        {
-            /*
-             * Attempt to resolve the node to a value before we insert it into
-             * the package. If this is a reference to a common data type,
-             * resolve it immediately. According to the ACPI spec, package
-             * elements can only be "data objects" or method references.
-             * Attempt to resolve to an Integer, Buffer, String or Package.
-             * If cannot, return the named reference (for things like Devices,
-             * Methods, etc.) Buffer Fields and Fields will resolve to simple
-             * objects (int/buf/str/pkg).
-             *
-             * NOTE: References to things like Devices, Methods, Mutexes, etc.
-             * will remain as named references. This behavior is not described
-             * in the ACPI spec, but it appears to be an oversight.
-             */
-            ObjDesc = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Op->Common.Node);
-
-            Status = AcpiExResolveNodeToValue (
-                        ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc),
-                        WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-
-            switch (Op->Common.Node->Type)
-            {
-            /*
-             * For these types, we need the actual node, not the subobject.
-             * However, the subobject did not get an extra reference count above.
-             *
-             * TBD: should ExResolveNodeToValue be changed to fix this?
-             */
-            case ACPI_TYPE_DEVICE:
-            case ACPI_TYPE_THERMAL:
-
-                AcpiUtAddReference (Op->Common.Node->Object);
-
-                /*lint -fallthrough */
-            /*
-             * For these types, we need the actual node, not the subobject.
-             * The subobject got an extra reference count in ExResolveNodeToValue.
-             */
-            case ACPI_TYPE_MUTEX:
-            case ACPI_TYPE_METHOD:
-            case ACPI_TYPE_POWER:
-            case ACPI_TYPE_PROCESSOR:
-            case ACPI_TYPE_EVENT:
-            case ACPI_TYPE_REGION:
-
-                /* We will create a reference object for these types below */
-                break;
-
-            default:
-                /*
-                 * All other types - the node was resolved to an actual
-                 * object, we are done.
-                 */
-                goto Exit;
-            }
-        }
-    }
-
-    /* Create and init a new internal ACPI object */
-
-    ObjDesc = AcpiUtCreateInternalObject (
-                (AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode))->ObjectType);
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Status = AcpiDsInitObjectFromOp (WalkState, Op, Op->Common.AmlOpcode,
-                &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtRemoveReference (ObjDesc);
-        return_ACPI_STATUS (Status);
-    }
-
-Exit:
-    *ObjDescPtr = ObjDesc;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsBuildInternalBufferObj
- *
- * PARAMETERS:  WalkState       - Current walk state
- *              Op              - Parser object to be translated
- *              BufferLength    - Length of the buffer
- *              ObjDescPtr      - Where the ACPI internal object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Translate a parser Op package object to the equivalent
- *              namespace object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsBuildInternalBufferObj (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  BufferLength,
-    ACPI_OPERAND_OBJECT     **ObjDescPtr)
-{
-    ACPI_PARSE_OBJECT       *Arg;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_PARSE_OBJECT       *ByteList;
-    UINT32                  ByteListLength = 0;
-
-
-    ACPI_FUNCTION_TRACE (DsBuildInternalBufferObj);
-
-
-    /*
-     * If we are evaluating a Named buffer object "Name (xxxx, Buffer)".
-     * The buffer object already exists (from the NS node), otherwise it must
-     * be created.
-     */
-    ObjDesc = *ObjDescPtr;
-    if (!ObjDesc)
-    {
-        /* Create a new buffer object */
-
-        ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
-        *ObjDescPtr = ObjDesc;
-        if (!ObjDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-    }
-
-    /*
-     * Second arg is the buffer data (optional) ByteList can be either
-     * individual bytes or a string initializer.  In either case, a
-     * ByteList appears in the AML.
-     */
-    Arg = Op->Common.Value.Arg;         /* skip first arg */
-
-    ByteList = Arg->Named.Next;
-    if (ByteList)
-    {
-        if (ByteList->Common.AmlOpcode != AML_INT_BYTELIST_OP)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Expecting bytelist, got AML opcode %X in op %p",
-                ByteList->Common.AmlOpcode, ByteList));
-
-            AcpiUtRemoveReference (ObjDesc);
-            return (AE_TYPE);
-        }
-
-        ByteListLength = (UINT32) ByteList->Common.Value.Integer;
-    }
-
-    /*
-     * The buffer length (number of bytes) will be the larger of:
-     * 1) The specified buffer length and
-     * 2) The length of the initializer byte list
-     */
-    ObjDesc->Buffer.Length = BufferLength;
-    if (ByteListLength > BufferLength)
-    {
-        ObjDesc->Buffer.Length = ByteListLength;
-    }
-
-    /* Allocate the buffer */
-
-    if (ObjDesc->Buffer.Length == 0)
-    {
-        ObjDesc->Buffer.Pointer = NULL;
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "Buffer defined with zero length in AML, creating\n"));
-    }
-    else
-    {
-        ObjDesc->Buffer.Pointer = ACPI_ALLOCATE_ZEROED (
-                                        ObjDesc->Buffer.Length);
-        if (!ObjDesc->Buffer.Pointer)
-        {
-            AcpiUtDeleteObjectDesc (ObjDesc);
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /* Initialize buffer from the ByteList (if present) */
-
-        if (ByteList)
-        {
-            ACPI_MEMCPY (ObjDesc->Buffer.Pointer, ByteList->Named.Data,
-                         ByteListLength);
-        }
-    }
-
-    ObjDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
-    Op->Common.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjDesc);
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsBuildInternalPackageObj
- *
- * PARAMETERS:  WalkState       - Current walk state
- *              Op              - Parser object to be translated
- *              ElementCount    - Number of elements in the package - this is
- *                                the NumElements argument to Package()
- *              ObjDescPtr      - Where the ACPI internal object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Translate a parser Op package object to the equivalent
- *              namespace object
- *
- * NOTE: The number of elements in the package will be always be the NumElements
- * count, regardless of the number of elements in the package list. If
- * NumElements is smaller, only that many package list elements are used.
- * if NumElements is larger, the Package object is padded out with
- * objects of type Uninitialized (as per ACPI spec.)
- *
- * Even though the ASL compilers do not allow NumElements to be smaller
- * than the Package list length (for the fixed length package opcode), some
- * BIOS code modifies the AML on the fly to adjust the NumElements, and
- * this code compensates for that. This also provides compatibility with
- * other AML interpreters.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsBuildInternalPackageObj (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  ElementCount,
-    ACPI_OPERAND_OBJECT     **ObjDescPtr)
-{
-    ACPI_PARSE_OBJECT       *Arg;
-    ACPI_PARSE_OBJECT       *Parent;
-    ACPI_OPERAND_OBJECT     *ObjDesc = NULL;
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  i;
-    UINT16                  Index;
-    UINT16                  ReferenceCount;
-
-
-    ACPI_FUNCTION_TRACE (DsBuildInternalPackageObj);
-
-
-    /* Find the parent of a possibly nested package */
-
-    Parent = Op->Common.Parent;
-    while ((Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
-           (Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP))
-    {
-        Parent = Parent->Common.Parent;
-    }
-
-    /*
-     * If we are evaluating a Named package object "Name (xxxx, Package)",
-     * the package object already exists, otherwise it must be created.
-     */
-    ObjDesc = *ObjDescPtr;
-    if (!ObjDesc)
-    {
-        ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_PACKAGE);
-        *ObjDescPtr = ObjDesc;
-        if (!ObjDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        ObjDesc->Package.Node = Parent->Common.Node;
-    }
-
-    /*
-     * Allocate the element array (array of pointers to the individual
-     * objects) based on the NumElements parameter. Add an extra pointer slot
-     * so that the list is always null terminated.
-     */
-    ObjDesc->Package.Elements = ACPI_ALLOCATE_ZEROED (
-        ((ACPI_SIZE) ElementCount + 1) * sizeof (void *));
-
-    if (!ObjDesc->Package.Elements)
-    {
-        AcpiUtDeleteObjectDesc (ObjDesc);
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    ObjDesc->Package.Count = ElementCount;
-
-    /*
-     * Initialize the elements of the package, up to the NumElements count.
-     * Package is automatically padded with uninitialized (NULL) elements
-     * if NumElements is greater than the package list length. Likewise,
-     * Package is truncated if NumElements is less than the list length.
-     */
-    Arg = Op->Common.Value.Arg;
-    Arg = Arg->Common.Next;
-    for (i = 0; Arg && (i < ElementCount); i++)
-    {
-        if (Arg->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP)
-        {
-            if (Arg->Common.Node->Type == ACPI_TYPE_METHOD)
-            {
-                /*
-                 * A method reference "looks" to the parser to be a method
-                 * invocation, so we special case it here
-                 */
-                Arg->Common.AmlOpcode = AML_INT_NAMEPATH_OP;
-                Status = AcpiDsBuildInternalObject (WalkState, Arg,
-                            &ObjDesc->Package.Elements[i]);
-            }
-            else
-            {
-                /* This package element is already built, just get it */
-
-                ObjDesc->Package.Elements[i] =
-                    ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Arg->Common.Node);
-            }
-        }
-        else
-        {
-            Status = AcpiDsBuildInternalObject (WalkState, Arg,
-                        &ObjDesc->Package.Elements[i]);
-        }
-
-        if (*ObjDescPtr)
-        {
-            /* Existing package, get existing reference count */
-
-            ReferenceCount = (*ObjDescPtr)->Common.ReferenceCount;
-            if (ReferenceCount > 1)
-            {
-                /* Make new element ref count match original ref count */
-
-                for (Index = 0; Index < (ReferenceCount - 1); Index++)
-                {
-                    AcpiUtAddReference ((ObjDesc->Package.Elements[i]));
-                }
-            }
-        }
-
-        Arg = Arg->Common.Next;
-    }
-
-    /* Check for match between NumElements and actual length of PackageList */
-
-    if (Arg)
-    {
-        /*
-         * NumElements was exhausted, but there are remaining elements in the
-         * PackageList. Truncate the package to NumElements.
-         *
-         * Note: technically, this is an error, from ACPI spec: "It is an error
-         * for NumElements to be less than the number of elements in the
-         * PackageList". However, we just print a message and
-         * no exception is returned. This provides Windows compatibility. Some
-         * BIOSs will alter the NumElements on the fly, creating this type
-         * of ill-formed package object.
-         */
-        while (Arg)
-        {
-            /*
-             * We must delete any package elements that were created earlier
-             * and are not going to be used because of the package truncation.
-             */
-            if (Arg->Common.Node)
-            {
-                AcpiUtRemoveReference (
-                    ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Arg->Common.Node));
-                Arg->Common.Node = NULL;
-            }
-
-            /* Find out how many elements there really are */
-
-            i++;
-            Arg = Arg->Common.Next;
-        }
-
-        ACPI_INFO ((AE_INFO,
-            "Actual Package length (0x%X) is larger than NumElements field (0x%X), truncated\n",
-            i, ElementCount));
-    }
-    else if (i < ElementCount)
-    {
-        /*
-         * Arg list (elements) was exhausted, but we did not reach NumElements count.
-         * Note: this is not an error, the package is padded out with NULLs.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-            "Package List length (0x%X) smaller than NumElements count (0x%X), padded with null elements\n",
-            i, ElementCount));
-    }
-
-    ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
-    Op->Common.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCreateNode
- *
- * PARAMETERS:  WalkState       - Current walk state
- *              Node            - NS Node to be initialized
- *              Op              - Parser object to be translated
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create the object to be associated with a namespace node
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateNode (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsCreateNode, Op);
-
-
-    /*
-     * Because of the execution pass through the non-control-method
-     * parts of the table, we can arrive here twice.  Only init
-     * the named object node the first time through
-     */
-    if (AcpiNsGetAttachedObject (Node))
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    if (!Op->Common.Value.Arg)
-    {
-        /* No arguments, there is nothing to do */
-
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Build an internal object for the argument(s) */
-
-    Status = AcpiDsBuildInternalObject (WalkState, Op->Common.Value.Arg,
-                &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Re-type the object according to its argument */
-
-    Node->Type = ObjDesc->Common.Type;
-
-    /* Attach obj to node */
-
-    Status = AcpiNsAttachObject (Node, ObjDesc, Node->Type);
-
-    /* Remove local reference to the object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-#endif /* ACPI_NO_METHOD_EXECUTION */
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsInitObjectFromOp
- *
- * PARAMETERS:  WalkState       - Current walk state
- *              Op              - Parser op used to init the internal object
- *              Opcode          - AML opcode associated with the object
- *              RetObjDesc      - Namespace object to be initialized
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initialize a namespace object from a parser Op and its
- *              associated arguments.  The namespace object is a more compact
- *              representation of the Op and its arguments.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitObjectFromOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    UINT16                  Opcode,
-    ACPI_OPERAND_OBJECT     **RetObjDesc)
-{
-    const ACPI_OPCODE_INFO  *OpInfo;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (DsInitObjectFromOp);
-
-
-    ObjDesc = *RetObjDesc;
-    OpInfo = AcpiPsGetOpcodeInfo (Opcode);
-    if (OpInfo->Class == AML_CLASS_UNKNOWN)
-    {
-        /* Unknown opcode */
-
-        return_ACPI_STATUS (AE_TYPE);
-    }
-
-    /* Perform per-object initialization */
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_BUFFER:
-
-        /*
-         * Defer evaluation of Buffer TermArg operand
-         */
-        ObjDesc->Buffer.Node      = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE,
-                                        WalkState->Operands[0]);
-        ObjDesc->Buffer.AmlStart  = Op->Named.Data;
-        ObjDesc->Buffer.AmlLength = Op->Named.Length;
-        break;
-
-
-    case ACPI_TYPE_PACKAGE:
-
-        /*
-         * Defer evaluation of Package TermArg operand
-         */
-        ObjDesc->Package.Node      = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE,
-                                        WalkState->Operands[0]);
-        ObjDesc->Package.AmlStart  = Op->Named.Data;
-        ObjDesc->Package.AmlLength = Op->Named.Length;
-        break;
-
-
-    case ACPI_TYPE_INTEGER:
-
-        switch (OpInfo->Type)
-        {
-        case AML_TYPE_CONSTANT:
-            /*
-             * Resolve AML Constants here - AND ONLY HERE!
-             * All constants are integers.
-             * We mark the integer with a flag that indicates that it started
-             * life as a constant -- so that stores to constants will perform
-             * as expected (noop). ZeroOp is used as a placeholder for optional
-             * target operands.
-             */
-            ObjDesc->Common.Flags = AOPOBJ_AML_CONSTANT;
-
-            switch (Opcode)
-            {
-            case AML_ZERO_OP:
-
-                ObjDesc->Integer.Value = 0;
-                break;
-
-            case AML_ONE_OP:
-
-                ObjDesc->Integer.Value = 1;
-                break;
-
-            case AML_ONES_OP:
-
-                ObjDesc->Integer.Value = ACPI_INTEGER_MAX;
-
-                /* Truncate value if we are executing from a 32-bit ACPI table */
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-                AcpiExTruncateFor32bitTable (ObjDesc);
-#endif
-                break;
-
-            case AML_REVISION_OP:
-
-                ObjDesc->Integer.Value = ACPI_CA_VERSION;
-                break;
-
-            default:
-
-                ACPI_ERROR ((AE_INFO,
-                    "Unknown constant opcode %X", Opcode));
-                Status = AE_AML_OPERAND_TYPE;
-                break;
-            }
-            break;
-
-
-        case AML_TYPE_LITERAL:
-
-            ObjDesc->Integer.Value = Op->Common.Value.Integer;
-#ifndef ACPI_NO_METHOD_EXECUTION
-            AcpiExTruncateFor32bitTable (ObjDesc);
-#endif
-            break;
-
-
-        default:
-            ACPI_ERROR ((AE_INFO, "Unknown Integer type %X",
-                OpInfo->Type));
-            Status = AE_AML_OPERAND_TYPE;
-            break;
-        }
-        break;
-
-
-    case ACPI_TYPE_STRING:
-
-        ObjDesc->String.Pointer = Op->Common.Value.String;
-        ObjDesc->String.Length = (UINT32) ACPI_STRLEN (Op->Common.Value.String);
-
-        /*
-         * The string is contained in the ACPI table, don't ever try
-         * to delete it
-         */
-        ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;
-        break;
-
-
-    case ACPI_TYPE_METHOD:
-        break;
-
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        switch (OpInfo->Type)
-        {
-        case AML_TYPE_LOCAL_VARIABLE:
-
-            /* Local ID (0-7) is (AML opcode - base AML_LOCAL_OP) */
-
-            ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_LOCAL_OP;
-            ObjDesc->Reference.Class = ACPI_REFCLASS_LOCAL;
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-            Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_LOCAL,
-                        ObjDesc->Reference.Value, WalkState,
-                        ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE,
-                            &ObjDesc->Reference.Object));
-#endif
-            break;
-
-
-        case AML_TYPE_METHOD_ARGUMENT:
-
-            /* Arg ID (0-6) is (AML opcode - base AML_ARG_OP) */
-
-            ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_ARG_OP;
-            ObjDesc->Reference.Class = ACPI_REFCLASS_ARG;
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-            Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_ARG,
-                        ObjDesc->Reference.Value, WalkState,
-                        ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE,
-                            &ObjDesc->Reference.Object));
-#endif
-            break;
-
-        default: /* Object name or Debug object */
-
-            switch (Op->Common.AmlOpcode)
-            {
-            case AML_INT_NAMEPATH_OP:
-
-                /* Node was saved in Op */
-
-                ObjDesc->Reference.Node = Op->Common.Node;
-                ObjDesc->Reference.Object = Op->Common.Node->Object;
-                ObjDesc->Reference.Class = ACPI_REFCLASS_NAME;
-                break;
-
-            case AML_DEBUG_OP:
-
-                ObjDesc->Reference.Class = ACPI_REFCLASS_DEBUG;
-                break;
-
-            default:
-
-                ACPI_ERROR ((AE_INFO,
-                    "Unimplemented reference type for AML opcode: %4.4X", Opcode));
-                return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-            }
-            break;
-        }
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unimplemented data type: %X",
-            ObjDesc->Common.Type));
-
-        Status = AE_AML_OPERAND_TYPE;
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsopcode.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsopcode.c
deleted file mode 100644 (file)
index 3edbacc..0000000
+++ /dev/null
@@ -1,1619 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsopcode - Dispatcher Op Region support and handling of
- *                         "control" opcodes
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSOPCODE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-#include "acevents.h"
-#include "actables.h"
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dsopcode")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsExecuteArguments (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_NAMESPACE_NODE     *ScopeNode,
-    UINT32                  AmlLength,
-    UINT8                   *AmlStart);
-
-static ACPI_STATUS
-AcpiDsInitBufferField (
-    UINT16                  AmlOpcode,
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_OPERAND_OBJECT     *BufferDesc,
-    ACPI_OPERAND_OBJECT     *OffsetDesc,
-    ACPI_OPERAND_OBJECT     *LengthDesc,
-    ACPI_OPERAND_OBJECT     *ResultDesc);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsExecuteArguments
- *
- * PARAMETERS:  Node                - Object NS node
- *              ScopeNode           - Parent NS node
- *              AmlLength           - Length of executable AML
- *              AmlStart            - Pointer to the AML
- *
- * RETURN:      Status.
- *
- * DESCRIPTION: Late (deferred) execution of region or field arguments
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsExecuteArguments (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_NAMESPACE_NODE     *ScopeNode,
-    UINT32                  AmlLength,
-    UINT8                   *AmlStart)
-{
-    ACPI_STATUS             Status;
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_WALK_STATE         *WalkState;
-
-
-    ACPI_FUNCTION_TRACE (DsExecuteArguments);
-
-
-    /*
-     * Allocate a new parser op to be the root of the parsed tree
-     */
-    Op = AcpiPsAllocOp (AML_INT_EVAL_SUBTREE_OP);
-    if (!Op)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Save the Node for use in AcpiPsParseAml */
-
-    Op->Common.Node = ScopeNode;
-
-    /* Create and initialize a new parser state */
-
-    WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL);
-    if (!WalkState)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, AmlStart,
-                    AmlLength, NULL, ACPI_IMODE_LOAD_PASS1);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiDsDeleteWalkState (WalkState);
-        goto Cleanup;
-    }
-
-    /* Mark this parse as a deferred opcode */
-
-    WalkState->ParseFlags = ACPI_PARSE_DEFERRED_OP;
-    WalkState->DeferredNode = Node;
-
-    /* Pass1: Parse the entire declaration */
-
-    Status = AcpiPsParseAml (WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    /* Get and init the Op created above */
-
-    Op->Common.Node = Node;
-    AcpiPsDeleteParseTree (Op);
-
-    /* Evaluate the deferred arguments */
-
-    Op = AcpiPsAllocOp (AML_INT_EVAL_SUBTREE_OP);
-    if (!Op)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Op->Common.Node = ScopeNode;
-
-    /* Create and initialize a new parser state */
-
-    WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL);
-    if (!WalkState)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /* Execute the opcode and arguments */
-
-    Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, AmlStart,
-                    AmlLength, NULL, ACPI_IMODE_EXECUTE);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiDsDeleteWalkState (WalkState);
-        goto Cleanup;
-    }
-
-    /* Mark this execution as a deferred opcode */
-
-    WalkState->DeferredNode = Node;
-    Status = AcpiPsParseAml (WalkState);
-
-Cleanup:
-    AcpiPsDeleteParseTree (Op);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsGetBufferFieldArguments
- *
- * PARAMETERS:  ObjDesc         - A valid BufferField object
- *
- * RETURN:      Status.
- *
- * DESCRIPTION: Get BufferField Buffer and Index.  This implements the late
- *              evaluation of these field attributes.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetBufferFieldArguments (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_OPERAND_OBJECT     *ExtraDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsGetBufferFieldArguments, ObjDesc);
-
-
-    if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Get the AML pointer (method object) and BufferField node */
-
-    ExtraDesc = AcpiNsGetSecondaryObject (ObjDesc);
-    Node = ObjDesc->BufferField.Node;
-
-    ACPI_DEBUG_EXEC(AcpiUtDisplayInitPathname (ACPI_TYPE_BUFFER_FIELD, Node, NULL));
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] BufferField Arg Init\n",
-        AcpiUtGetNodeName (Node)));
-
-    /* Execute the AML code for the TermArg arguments */
-
-    Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node),
-                ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsGetBankFieldArguments
- *
- * PARAMETERS:  ObjDesc         - A valid BankField object
- *
- * RETURN:      Status.
- *
- * DESCRIPTION: Get BankField BankValue.  This implements the late
- *              evaluation of these field attributes.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetBankFieldArguments (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_OPERAND_OBJECT     *ExtraDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsGetBankFieldArguments, ObjDesc);
-
-
-    if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Get the AML pointer (method object) and BankField node */
-
-    ExtraDesc = AcpiNsGetSecondaryObject (ObjDesc);
-    Node = ObjDesc->BankField.Node;
-
-    ACPI_DEBUG_EXEC(AcpiUtDisplayInitPathname (ACPI_TYPE_LOCAL_BANK_FIELD, Node, NULL));
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] BankField Arg Init\n",
-        AcpiUtGetNodeName (Node)));
-
-    /* Execute the AML code for the TermArg arguments */
-
-    Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node),
-                ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsGetBufferArguments
- *
- * PARAMETERS:  ObjDesc         - A valid Buffer object
- *
- * RETURN:      Status.
- *
- * DESCRIPTION: Get Buffer length and initializer byte list.  This implements
- *              the late evaluation of these attributes.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetBufferArguments (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsGetBufferArguments, ObjDesc);
-
-
-    if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Get the Buffer node */
-
-    Node = ObjDesc->Buffer.Node;
-    if (!Node)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "No pointer back to NS node in buffer obj %p", ObjDesc));
-        return_ACPI_STATUS (AE_AML_INTERNAL);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Buffer Arg Init\n"));
-
-    /* Execute the AML code for the TermArg arguments */
-
-    Status = AcpiDsExecuteArguments (Node, Node,
-                ObjDesc->Buffer.AmlLength, ObjDesc->Buffer.AmlStart);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsGetPackageArguments
- *
- * PARAMETERS:  ObjDesc         - A valid Package object
- *
- * RETURN:      Status.
- *
- * DESCRIPTION: Get Package length and initializer byte list.  This implements
- *              the late evaluation of these attributes.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetPackageArguments (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsGetPackageArguments, ObjDesc);
-
-
-    if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Get the Package node */
-
-    Node = ObjDesc->Package.Node;
-    if (!Node)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "No pointer back to NS node in package %p", ObjDesc));
-        return_ACPI_STATUS (AE_AML_INTERNAL);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Package Arg Init\n"));
-
-    /* Execute the AML code for the TermArg arguments */
-
-    Status = AcpiDsExecuteArguments (Node, Node,
-                ObjDesc->Package.AmlLength, ObjDesc->Package.AmlStart);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*****************************************************************************
- *
- * FUNCTION:    AcpiDsGetRegionArguments
- *
- * PARAMETERS:  ObjDesc         - A valid region object
- *
- * RETURN:      Status.
- *
- * DESCRIPTION: Get region address and length.  This implements the late
- *              evaluation of these region attributes.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetRegionArguments (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ExtraDesc;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsGetRegionArguments, ObjDesc);
-
-
-    if (ObjDesc->Region.Flags & AOPOBJ_DATA_VALID)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    ExtraDesc = AcpiNsGetSecondaryObject (ObjDesc);
-    if (!ExtraDesc)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    /* Get the Region node */
-
-    Node = ObjDesc->Region.Node;
-
-    ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_REGION, Node, NULL));
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] OpRegion Arg Init at AML %p\n",
-        AcpiUtGetNodeName (Node), ExtraDesc->Extra.AmlStart));
-
-    /* Execute the argument AML */
-
-    Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node),
-                ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsInitializeRegion
- *
- * PARAMETERS:  ObjHandle       - Region namespace node
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Front end to EvInitializeRegion
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitializeRegion (
-    ACPI_HANDLE             ObjHandle)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ObjDesc = AcpiNsGetAttachedObject (ObjHandle);
-
-    /* Namespace is NOT locked */
-
-    Status = AcpiEvInitializeRegion (ObjDesc, FALSE);
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsInitBufferField
- *
- * PARAMETERS:  AmlOpcode       - CreateXxxField
- *              ObjDesc         - BufferField object
- *              BufferDesc      - Host Buffer
- *              OffsetDesc      - Offset into buffer
- *              LengthDesc      - Length of field (CREATE_FIELD_OP only)
- *              ResultDesc      - Where to store the result
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Perform actual initialization of a buffer field
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsInitBufferField (
-    UINT16                  AmlOpcode,
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_OPERAND_OBJECT     *BufferDesc,
-    ACPI_OPERAND_OBJECT     *OffsetDesc,
-    ACPI_OPERAND_OBJECT     *LengthDesc,
-    ACPI_OPERAND_OBJECT     *ResultDesc)
-{
-    UINT32                  Offset;
-    UINT32                  BitOffset;
-    UINT32                  BitCount;
-    UINT8                   FieldFlags;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsInitBufferField, ObjDesc);
-
-
-    /* Host object must be a Buffer */
-
-    if (BufferDesc->Common.Type != ACPI_TYPE_BUFFER)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Target of Create Field is not a Buffer object - %s",
-            AcpiUtGetObjectTypeName (BufferDesc)));
-
-        Status = AE_AML_OPERAND_TYPE;
-        goto Cleanup;
-    }
-
-    /*
-     * The last parameter to all of these opcodes (ResultDesc) started
-     * out as a NameString, and should therefore now be a NS node
-     * after resolution in AcpiExResolveOperands().
-     */
-    if (ACPI_GET_DESCRIPTOR_TYPE (ResultDesc) != ACPI_DESC_TYPE_NAMED)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "(%s) destination not a NS Node [%s]",
-            AcpiPsGetOpcodeName (AmlOpcode),
-            AcpiUtGetDescriptorName (ResultDesc)));
-
-        Status = AE_AML_OPERAND_TYPE;
-        goto Cleanup;
-    }
-
-    Offset = (UINT32) OffsetDesc->Integer.Value;
-
-    /*
-     * Setup the Bit offsets and counts, according to the opcode
-     */
-    switch (AmlOpcode)
-    {
-    case AML_CREATE_FIELD_OP:
-
-        /* Offset is in bits, count is in bits */
-
-        FieldFlags = AML_FIELD_ACCESS_BYTE;
-        BitOffset  = Offset;
-        BitCount   = (UINT32) LengthDesc->Integer.Value;
-
-        /* Must have a valid (>0) bit count */
-
-        if (BitCount == 0)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Attempt to CreateField of length zero"));
-            Status = AE_AML_OPERAND_VALUE;
-            goto Cleanup;
-        }
-        break;
-
-    case AML_CREATE_BIT_FIELD_OP:
-
-        /* Offset is in bits, Field is one bit */
-
-        BitOffset  = Offset;
-        BitCount   = 1;
-        FieldFlags = AML_FIELD_ACCESS_BYTE;
-        break;
-
-    case AML_CREATE_BYTE_FIELD_OP:
-
-        /* Offset is in bytes, field is one byte */
-
-        BitOffset  = 8 * Offset;
-        BitCount   = 8;
-        FieldFlags = AML_FIELD_ACCESS_BYTE;
-        break;
-
-    case AML_CREATE_WORD_FIELD_OP:
-
-        /* Offset is in bytes, field is one word */
-
-        BitOffset  = 8 * Offset;
-        BitCount   = 16;
-        FieldFlags = AML_FIELD_ACCESS_WORD;
-        break;
-
-    case AML_CREATE_DWORD_FIELD_OP:
-
-        /* Offset is in bytes, field is one dword */
-
-        BitOffset  = 8 * Offset;
-        BitCount   = 32;
-        FieldFlags = AML_FIELD_ACCESS_DWORD;
-        break;
-
-    case AML_CREATE_QWORD_FIELD_OP:
-
-        /* Offset is in bytes, field is one qword */
-
-        BitOffset  = 8 * Offset;
-        BitCount   = 64;
-        FieldFlags = AML_FIELD_ACCESS_QWORD;
-        break;
-
-    default:
-
-        ACPI_ERROR ((AE_INFO,
-            "Unknown field creation opcode %02x",
-            AmlOpcode));
-        Status = AE_AML_BAD_OPCODE;
-        goto Cleanup;
-    }
-
-    /* Entire field must fit within the current length of the buffer */
-
-    if ((BitOffset + BitCount) >
-        (8 * (UINT32) BufferDesc->Buffer.Length))
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Field [%4.4s] at %d exceeds Buffer [%4.4s] size %d (bits)",
-            AcpiUtGetNodeName (ResultDesc),
-            BitOffset + BitCount,
-            AcpiUtGetNodeName (BufferDesc->Buffer.Node),
-            8 * (UINT32) BufferDesc->Buffer.Length));
-        Status = AE_AML_BUFFER_LIMIT;
-        goto Cleanup;
-    }
-
-    /*
-     * Initialize areas of the field object that are common to all fields
-     * For FieldFlags, use LOCK_RULE = 0 (NO_LOCK),
-     * UPDATE_RULE = 0 (UPDATE_PRESERVE)
-     */
-    Status = AcpiExPrepCommonFieldObject (ObjDesc, FieldFlags, 0,
-                                            BitOffset, BitCount);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    ObjDesc->BufferField.BufferObj = BufferDesc;
-
-    /* Reference count for BufferDesc inherits ObjDesc count */
-
-    BufferDesc->Common.ReferenceCount = (UINT16)
-        (BufferDesc->Common.ReferenceCount + ObjDesc->Common.ReferenceCount);
-
-
-Cleanup:
-
-    /* Always delete the operands */
-
-    AcpiUtRemoveReference (OffsetDesc);
-    AcpiUtRemoveReference (BufferDesc);
-
-    if (AmlOpcode == AML_CREATE_FIELD_OP)
-    {
-        AcpiUtRemoveReference (LengthDesc);
-    }
-
-    /* On failure, delete the result descriptor */
-
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtRemoveReference (ResultDesc);     /* Result descriptor */
-    }
-    else
-    {
-        /* Now the address and length are valid for this BufferField */
-
-        ObjDesc->BufferField.Flags |= AOPOBJ_DATA_VALID;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsEvalBufferFieldOperands
- *
- * PARAMETERS:  WalkState       - Current walk
- *              Op              - A valid BufferField Op object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get BufferField Buffer and Index
- *              Called from AcpiDsExecEndOp during BufferField parse tree walk
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvalBufferFieldOperands (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_PARSE_OBJECT       *NextOp;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsEvalBufferFieldOperands, Op);
-
-
-    /*
-     * This is where we evaluate the address and length fields of the
-     * CreateXxxField declaration
-     */
-    Node =  Op->Common.Node;
-
-    /* NextOp points to the op that holds the Buffer */
-
-    NextOp = Op->Common.Value.Arg;
-
-    /* Evaluate/create the address and length operands */
-
-    Status = AcpiDsCreateOperands (WalkState, NextOp);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    /* Resolve the operands */
-
-    Status = AcpiExResolveOperands (Op->Common.AmlOpcode,
-                    ACPI_WALK_OPERANDS, WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_ERROR ((AE_INFO, "(%s) bad operand(s) (%X)",
-            AcpiPsGetOpcodeName (Op->Common.AmlOpcode), Status));
-
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Initialize the Buffer Field */
-
-    if (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP)
-    {
-        /* NOTE: Slightly different operands for this opcode */
-
-        Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc,
-                    WalkState->Operands[0], WalkState->Operands[1],
-                    WalkState->Operands[2], WalkState->Operands[3]);
-    }
-    else
-    {
-        /* All other, CreateXxxField opcodes */
-
-        Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc,
-                    WalkState->Operands[0], WalkState->Operands[1],
-                                      NULL, WalkState->Operands[2]);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsEvalRegionOperands
- *
- * PARAMETERS:  WalkState       - Current walk
- *              Op              - A valid region Op object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get region address and length
- *              Called from AcpiDsExecEndOp during OpRegion parse tree walk
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvalRegionOperands (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *OperandDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_PARSE_OBJECT       *NextOp;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsEvalRegionOperands, Op);
-
-
-    /*
-     * This is where we evaluate the address and length fields of the
-     * OpRegion declaration
-     */
-    Node =  Op->Common.Node;
-
-    /* NextOp points to the op that holds the SpaceID */
-
-    NextOp = Op->Common.Value.Arg;
-
-    /* NextOp points to address op */
-
-    NextOp = NextOp->Common.Next;
-
-    /* Evaluate/create the address and length operands */
-
-    Status = AcpiDsCreateOperands (WalkState, NextOp);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Resolve the length and address operands to numbers */
-
-    Status = AcpiExResolveOperands (Op->Common.AmlOpcode,
-                ACPI_WALK_OPERANDS, WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    /*
-     * Get the length operand and save it
-     * (at Top of stack)
-     */
-    OperandDesc = WalkState->Operands[WalkState->NumOperands - 1];
-
-    ObjDesc->Region.Length = (UINT32) OperandDesc->Integer.Value;
-    AcpiUtRemoveReference (OperandDesc);
-
-    /*
-     * Get the address and save it
-     * (at top of stack - 1)
-     */
-    OperandDesc = WalkState->Operands[WalkState->NumOperands - 2];
-
-    ObjDesc->Region.Address = (ACPI_PHYSICAL_ADDRESS)
-                                OperandDesc->Integer.Value;
-    AcpiUtRemoveReference (OperandDesc);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "RgnObj %p Addr %8.8X%8.8X Len %X\n",
-        ObjDesc,
-        ACPI_FORMAT_NATIVE_UINT (ObjDesc->Region.Address),
-        ObjDesc->Region.Length));
-
-    /* Now the address and length are valid for this opregion */
-
-    ObjDesc->Region.Flags |= AOPOBJ_DATA_VALID;
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsEvalTableRegionOperands
- *
- * PARAMETERS:  WalkState       - Current walk
- *              Op              - A valid region Op object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get region address and length
- *              Called from AcpiDsExecEndOp during DataTableRegion parse tree walk
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvalTableRegionOperands (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     **Operand;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_PARSE_OBJECT       *NextOp;
-    UINT32                  TableIndex;
-    ACPI_TABLE_HEADER       *Table;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsEvalTableRegionOperands, Op);
-
-
-    /*
-     * This is where we evaluate the SignatureString and OemIDString
-     * and OemTableIDString of the DataTableRegion declaration
-     */
-    Node =  Op->Common.Node;
-
-    /* NextOp points to SignatureString op */
-
-    NextOp = Op->Common.Value.Arg;
-
-    /*
-     * Evaluate/create the SignatureString and OemIDString
-     * and OemTableIDString operands
-     */
-    Status = AcpiDsCreateOperands (WalkState, NextOp);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Resolve the SignatureString and OemIDString
-     * and OemTableIDString operands
-     */
-    Status = AcpiExResolveOperands (Op->Common.AmlOpcode,
-                ACPI_WALK_OPERANDS, WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Operand = &WalkState->Operands[0];
-
-    /* Find the ACPI table */
-
-    Status = AcpiTbFindTable (Operand[0]->String.Pointer,
-                Operand[1]->String.Pointer, Operand[2]->String.Pointer,
-                &TableIndex);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    AcpiUtRemoveReference (Operand[0]);
-    AcpiUtRemoveReference (Operand[1]);
-    AcpiUtRemoveReference (Operand[2]);
-
-    Status = AcpiGetTableByIndex (TableIndex, &Table);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    ObjDesc->Region.Address = (ACPI_PHYSICAL_ADDRESS) ACPI_TO_INTEGER (Table);
-    ObjDesc->Region.Length = Table->Length;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "RgnObj %p Addr %8.8X%8.8X Len %X\n",
-        ObjDesc,
-        ACPI_FORMAT_NATIVE_UINT (ObjDesc->Region.Address),
-        ObjDesc->Region.Length));
-
-    /* Now the address and length are valid for this opregion */
-
-    ObjDesc->Region.Flags |= AOPOBJ_DATA_VALID;
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsEvalDataObjectOperands
- *
- * PARAMETERS:  WalkState       - Current walk
- *              Op              - A valid DataObject Op object
- *              ObjDesc         - DataObject
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get the operands and complete the following data object types:
- *              Buffer, Package.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvalDataObjectOperands (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ArgDesc;
-    UINT32                  Length;
-
-
-    ACPI_FUNCTION_TRACE (DsEvalDataObjectOperands);
-
-
-    /* The first operand (for all of these data objects) is the length */
-
-    /*
-     * Set proper index into operand stack for AcpiDsObjStackPush
-     * invoked inside AcpiDsCreateOperand.
-     */
-    WalkState->OperandIndex = WalkState->NumOperands;
-
-    Status = AcpiDsCreateOperand (WalkState, Op->Common.Value.Arg, 1);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiExResolveOperands (WalkState->Opcode,
-                    &(WalkState->Operands [WalkState->NumOperands -1]),
-                    WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Extract length operand */
-
-    ArgDesc = WalkState->Operands [WalkState->NumOperands - 1];
-    Length = (UINT32) ArgDesc->Integer.Value;
-
-    /* Cleanup for length operand */
-
-    Status = AcpiDsObjStackPop (1, WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    AcpiUtRemoveReference (ArgDesc);
-
-    /*
-     * Create the actual data object
-     */
-    switch (Op->Common.AmlOpcode)
-    {
-    case AML_BUFFER_OP:
-
-        Status = AcpiDsBuildInternalBufferObj (WalkState, Op, Length, &ObjDesc);
-        break;
-
-    case AML_PACKAGE_OP:
-    case AML_VAR_PACKAGE_OP:
-
-        Status = AcpiDsBuildInternalPackageObj (WalkState, Op, Length, &ObjDesc);
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_AML_BAD_OPCODE);
-    }
-
-    if (ACPI_SUCCESS (Status))
-    {
-        /*
-         * Return the object in the WalkState, unless the parent is a package -
-         * in this case, the return object will be stored in the parse tree
-         * for the package.
-         */
-        if ((!Op->Common.Parent) ||
-            ((Op->Common.Parent->Common.AmlOpcode != AML_PACKAGE_OP) &&
-             (Op->Common.Parent->Common.AmlOpcode != AML_VAR_PACKAGE_OP) &&
-             (Op->Common.Parent->Common.AmlOpcode != AML_NAME_OP)))
-        {
-            WalkState->ResultObj = ObjDesc;
-        }
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsEvalBankFieldOperands
- *
- * PARAMETERS:  WalkState       - Current walk
- *              Op              - A valid BankField Op object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get BankField BankValue
- *              Called from AcpiDsExecEndOp during BankField parse tree walk
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvalBankFieldOperands (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *OperandDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_PARSE_OBJECT       *NextOp;
-    ACPI_PARSE_OBJECT       *Arg;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsEvalBankFieldOperands, Op);
-
-
-    /*
-     * This is where we evaluate the BankValue field of the
-     * BankField declaration
-     */
-
-    /* NextOp points to the op that holds the Region */
-
-    NextOp = Op->Common.Value.Arg;
-
-    /* NextOp points to the op that holds the Bank Register */
-
-    NextOp = NextOp->Common.Next;
-
-    /* NextOp points to the op that holds the Bank Value */
-
-    NextOp = NextOp->Common.Next;
-
-    /*
-     * Set proper index into operand stack for AcpiDsObjStackPush
-     * invoked inside AcpiDsCreateOperand.
-     *
-     * We use WalkState->Operands[0] to store the evaluated BankValue
-     */
-    WalkState->OperandIndex = 0;
-
-    Status = AcpiDsCreateOperand (WalkState, NextOp, 0);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiExResolveToValue (&WalkState->Operands[0], WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ACPI_DUMP_OPERANDS (ACPI_WALK_OPERANDS,
-        AcpiPsGetOpcodeName (Op->Common.AmlOpcode), 1);
-    /*
-     * Get the BankValue operand and save it
-     * (at Top of stack)
-     */
-    OperandDesc = WalkState->Operands[0];
-
-    /* Arg points to the start Bank Field */
-
-    Arg = AcpiPsGetArg (Op, 4);
-    while (Arg)
-    {
-        /* Ignore OFFSET and ACCESSAS terms here */
-
-        if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
-        {
-            Node = Arg->Common.Node;
-
-            ObjDesc = AcpiNsGetAttachedObject (Node);
-            if (!ObjDesc)
-            {
-                return_ACPI_STATUS (AE_NOT_EXIST);
-            }
-
-            ObjDesc->BankField.Value = (UINT32) OperandDesc->Integer.Value;
-        }
-
-        /* Move to next field in the list */
-
-        Arg = Arg->Common.Next;
-    }
-
-    AcpiUtRemoveReference (OperandDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsExecBeginControlOp
- *
- * PARAMETERS:  WalkList        - The list that owns the walk stack
- *              Op              - The control Op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Handles all control ops encountered during control method
- *              execution.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsExecBeginControlOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_GENERIC_STATE      *ControlState;
-
-
-    ACPI_FUNCTION_NAME (DsExecBeginControlOp);
-
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p Opcode=%2.2X State=%p\n", Op,
-        Op->Common.AmlOpcode, WalkState));
-
-    switch (Op->Common.AmlOpcode)
-    {
-    case AML_WHILE_OP:
-
-        /*
-         * If this is an additional iteration of a while loop, continue.
-         * There is no need to allocate a new control state.
-         */
-        if (WalkState->ControlState)
-        {
-            if (WalkState->ControlState->Control.AmlPredicateStart ==
-                (WalkState->ParserState.Aml - 1))
-            {
-                /* Reset the state to start-of-loop */
-
-                WalkState->ControlState->Common.State = ACPI_CONTROL_CONDITIONAL_EXECUTING;
-                break;
-            }
-        }
-
-        /*lint -fallthrough */
-
-    case AML_IF_OP:
-
-        /*
-         * IF/WHILE: Create a new control state to manage these
-         * constructs. We need to manage these as a stack, in order
-         * to handle nesting.
-         */
-        ControlState = AcpiUtCreateControlState ();
-        if (!ControlState)
-        {
-            Status = AE_NO_MEMORY;
-            break;
-        }
-        /*
-         * Save a pointer to the predicate for multiple executions
-         * of a loop
-         */
-        ControlState->Control.AmlPredicateStart = WalkState->ParserState.Aml - 1;
-        ControlState->Control.PackageEnd = WalkState->ParserState.PkgEnd;
-        ControlState->Control.Opcode = Op->Common.AmlOpcode;
-
-
-        /* Push the control state on this walk's control stack */
-
-        AcpiUtPushGenericState (&WalkState->ControlState, ControlState);
-        break;
-
-    case AML_ELSE_OP:
-
-        /* Predicate is in the state object */
-        /* If predicate is true, the IF was executed, ignore ELSE part */
-
-        if (WalkState->LastPredicate)
-        {
-            Status = AE_CTRL_TRUE;
-        }
-
-        break;
-
-    case AML_RETURN_OP:
-
-        break;
-
-    default:
-        break;
-    }
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsExecEndControlOp
- *
- * PARAMETERS:  WalkList        - The list that owns the walk stack
- *              Op              - The control Op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Handles all control ops encountered during control method
- *              execution.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsExecEndControlOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_GENERIC_STATE      *ControlState;
-
-
-    ACPI_FUNCTION_NAME (DsExecEndControlOp);
-
-
-    switch (Op->Common.AmlOpcode)
-    {
-    case AML_IF_OP:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[IF_OP] Op=%p\n", Op));
-
-        /*
-         * Save the result of the predicate in case there is an
-         * ELSE to come
-         */
-        WalkState->LastPredicate =
-            (BOOLEAN) WalkState->ControlState->Common.Value;
-
-        /*
-         * Pop the control state that was created at the start
-         * of the IF and free it
-         */
-        ControlState = AcpiUtPopGenericState (&WalkState->ControlState);
-        AcpiUtDeleteGenericState (ControlState);
-        break;
-
-
-    case AML_ELSE_OP:
-
-        break;
-
-
-    case AML_WHILE_OP:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[WHILE_OP] Op=%p\n", Op));
-
-        ControlState = WalkState->ControlState;
-        if (ControlState->Common.Value)
-        {
-            /* Predicate was true, the body of the loop was just executed */
-
-            /*
-             * This loop counter mechanism allows the interpreter to escape
-             * possibly infinite loops. This can occur in poorly written AML
-             * when the hardware does not respond within a while loop and the
-             * loop does not implement a timeout.
-             */
-            ControlState->Control.LoopCount++;
-            if (ControlState->Control.LoopCount > ACPI_MAX_LOOP_ITERATIONS)
-            {
-                Status = AE_AML_INFINITE_LOOP;
-                break;
-            }
-
-            /*
-             * Go back and evaluate the predicate and maybe execute the loop
-             * another time
-             */
-            Status = AE_CTRL_PENDING;
-            WalkState->AmlLastWhile = ControlState->Control.AmlPredicateStart;
-            break;
-        }
-
-        /* Predicate was false, terminate this while loop */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-            "[WHILE_OP] termination! Op=%p\n",Op));
-
-        /* Pop this control state and free it */
-
-        ControlState = AcpiUtPopGenericState (&WalkState->ControlState);
-        AcpiUtDeleteGenericState (ControlState);
-        break;
-
-
-    case AML_RETURN_OP:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-            "[RETURN_OP] Op=%p Arg=%p\n",Op, Op->Common.Value.Arg));
-
-        /*
-         * One optional operand -- the return value
-         * It can be either an immediate operand or a result that
-         * has been bubbled up the tree
-         */
-        if (Op->Common.Value.Arg)
-        {
-            /* Since we have a real Return(), delete any implicit return */
-
-            AcpiDsClearImplicitReturn (WalkState);
-
-            /* Return statement has an immediate operand */
-
-            Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-
-            /*
-             * If value being returned is a Reference (such as
-             * an arg or local), resolve it now because it may
-             * cease to exist at the end of the method.
-             */
-            Status = AcpiExResolveToValue (&WalkState->Operands [0], WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-
-            /*
-             * Get the return value and save as the last result
-             * value.  This is the only place where WalkState->ReturnDesc
-             * is set to anything other than zero!
-             */
-            WalkState->ReturnDesc = WalkState->Operands[0];
-        }
-        else if (WalkState->ResultCount)
-        {
-            /* Since we have a real Return(), delete any implicit return */
-
-            AcpiDsClearImplicitReturn (WalkState);
-
-            /*
-             * The return value has come from a previous calculation.
-             *
-             * If value being returned is a Reference (such as
-             * an arg or local), resolve it now because it may
-             * cease to exist at the end of the method.
-             *
-             * Allow references created by the Index operator to return unchanged.
-             */
-            if ((ACPI_GET_DESCRIPTOR_TYPE (WalkState->Results->Results.ObjDesc[0]) == ACPI_DESC_TYPE_OPERAND) &&
-                ((WalkState->Results->Results.ObjDesc [0])->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&
-                ((WalkState->Results->Results.ObjDesc [0])->Reference.Class != ACPI_REFCLASS_INDEX))
-            {
-                Status = AcpiExResolveToValue (&WalkState->Results->Results.ObjDesc [0], WalkState);
-                if (ACPI_FAILURE (Status))
-                {
-                    return (Status);
-                }
-            }
-
-            WalkState->ReturnDesc = WalkState->Results->Results.ObjDesc [0];
-        }
-        else
-        {
-            /* No return operand */
-
-            if (WalkState->NumOperands)
-            {
-                AcpiUtRemoveReference (WalkState->Operands [0]);
-            }
-
-            WalkState->Operands [0]     = NULL;
-            WalkState->NumOperands      = 0;
-            WalkState->ReturnDesc       = NULL;
-        }
-
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-            "Completed RETURN_OP State=%p, RetVal=%p\n",
-            WalkState, WalkState->ReturnDesc));
-
-        /* End the control method execution right now */
-
-        Status = AE_CTRL_TERMINATE;
-        break;
-
-
-    case AML_NOOP_OP:
-
-        /* Just do nothing! */
-        break;
-
-
-    case AML_BREAK_POINT_OP:
-
-        /*
-         * Set the single-step flag. This will cause the debugger (if present)
-         * to break to the console within the AML debugger at the start of the
-         * next AML instruction.
-         */
-        ACPI_DEBUGGER_EXEC (
-            AcpiGbl_CmSingleStep = TRUE);
-        ACPI_DEBUGGER_EXEC (
-            AcpiOsPrintf ("**break** Executed AML BreakPoint opcode\n"));
-
-        /* Call to the OSL in case OS wants a piece of the action */
-
-        Status = AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT,
-                    "Executed AML Breakpoint opcode");
-        break;
-
-
-    case AML_BREAK_OP:
-    case AML_CONTINUE_OP: /* ACPI 2.0 */
-
-
-        /* Pop and delete control states until we find a while */
-
-        while (WalkState->ControlState &&
-                (WalkState->ControlState->Control.Opcode != AML_WHILE_OP))
-        {
-            ControlState = AcpiUtPopGenericState (&WalkState->ControlState);
-            AcpiUtDeleteGenericState (ControlState);
-        }
-
-        /* No while found? */
-
-        if (!WalkState->ControlState)
-        {
-            return (AE_AML_NO_WHILE);
-        }
-
-        /* Was: WalkState->AmlLastWhile = WalkState->ControlState->Control.AmlPredicateStart; */
-
-        WalkState->AmlLastWhile = WalkState->ControlState->Control.PackageEnd;
-
-        /* Return status depending on opcode */
-
-        if (Op->Common.AmlOpcode == AML_BREAK_OP)
-        {
-            Status = AE_CTRL_BREAK;
-        }
-        else
-        {
-            Status = AE_CTRL_CONTINUE;
-        }
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown control opcode=%X Op=%p",
-            Op->Common.AmlOpcode, Op));
-
-        Status = AE_AML_BAD_OPCODE;
-        break;
-    }
-
-    return (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsutils.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dsutils.c
deleted file mode 100644 (file)
index 6c211ac..0000000
+++ /dev/null
@@ -1,1009 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dsutils - Dispatcher utilities
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSUTILS_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-#include "acdebug.h"
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dsutils")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsClearImplicitReturn
- *
- * PARAMETERS:  WalkState           - Current State
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Clear and remove a reference on an implicit return value.  Used
- *              to delete "stale" return values (if enabled, the return value
- *              from every operator is saved at least momentarily, in case the
- *              parent method exits.)
- *
- ******************************************************************************/
-
-void
-AcpiDsClearImplicitReturn (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_FUNCTION_NAME (DsClearImplicitReturn);
-
-
-    /*
-     * Slack must be enabled for this feature
-     */
-    if (!AcpiGbl_EnableInterpreterSlack)
-    {
-        return;
-    }
-
-    if (WalkState->ImplicitReturnObj)
-    {
-        /*
-         * Delete any "stale" implicit return. However, in
-         * complex statements, the implicit return value can be
-         * bubbled up several levels.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-            "Removing reference on stale implicit return obj %p\n",
-            WalkState->ImplicitReturnObj));
-
-        AcpiUtRemoveReference (WalkState->ImplicitReturnObj);
-        WalkState->ImplicitReturnObj = NULL;
-    }
-}
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsDoImplicitReturn
- *
- * PARAMETERS:  ReturnDesc          - The return value
- *              WalkState           - Current State
- *              AddReference        - True if a reference should be added to the
- *                                    return object
- *
- * RETURN:      TRUE if implicit return enabled, FALSE otherwise
- *
- * DESCRIPTION: Implements the optional "implicit return".  We save the result
- *              of every ASL operator and control method invocation in case the
- *              parent method exit.  Before storing a new return value, we
- *              delete the previous return value.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDsDoImplicitReturn (
-    ACPI_OPERAND_OBJECT     *ReturnDesc,
-    ACPI_WALK_STATE         *WalkState,
-    BOOLEAN                 AddReference)
-{
-    ACPI_FUNCTION_NAME (DsDoImplicitReturn);
-
-
-    /*
-     * Slack must be enabled for this feature, and we must
-     * have a valid return object
-     */
-    if ((!AcpiGbl_EnableInterpreterSlack) ||
-        (!ReturnDesc))
-    {
-        return (FALSE);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-            "Result %p will be implicitly returned; Prev=%p\n",
-            ReturnDesc,
-            WalkState->ImplicitReturnObj));
-
-    /*
-     * Delete any "stale" implicit return value first. However, in
-     * complex statements, the implicit return value can be
-     * bubbled up several levels, so we don't clear the value if it
-     * is the same as the ReturnDesc.
-     */
-    if (WalkState->ImplicitReturnObj)
-    {
-        if (WalkState->ImplicitReturnObj == ReturnDesc)
-        {
-            return (TRUE);
-        }
-        AcpiDsClearImplicitReturn (WalkState);
-    }
-
-    /* Save the implicit return value, add a reference if requested */
-
-    WalkState->ImplicitReturnObj = ReturnDesc;
-    if (AddReference)
-    {
-        AcpiUtAddReference (ReturnDesc);
-    }
-
-    return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsIsResultUsed
- *
- * PARAMETERS:  Op                  - Current Op
- *              WalkState           - Current State
- *
- * RETURN:      TRUE if result is used, FALSE otherwise
- *
- * DESCRIPTION: Check if a result object will be used by the parent
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDsIsResultUsed (
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_WALK_STATE         *WalkState)
-{
-    const ACPI_OPCODE_INFO  *ParentInfo;
-
-    ACPI_FUNCTION_TRACE_PTR (DsIsResultUsed, Op);
-
-
-    /* Must have both an Op and a Result Object */
-
-    if (!Op)
-    {
-        ACPI_ERROR ((AE_INFO, "Null Op"));
-        return_UINT8 (TRUE);
-    }
-
-    /*
-     * We know that this operator is not a
-     * Return() operator (would not come here.) The following code is the
-     * optional support for a so-called "implicit return". Some AML code
-     * assumes that the last value of the method is "implicitly" returned
-     * to the caller. Just save the last result as the return value.
-     * NOTE: this is optional because the ASL language does not actually
-     * support this behavior.
-     */
-    (void) AcpiDsDoImplicitReturn (WalkState->ResultObj, WalkState, TRUE);
-
-    /*
-     * Now determine if the parent will use the result
-     *
-     * If there is no parent, or the parent is a ScopeOp, we are executing
-     * at the method level. An executing method typically has no parent,
-     * since each method is parsed separately.  A method invoked externally
-     * via ExecuteControlMethod has a ScopeOp as the parent.
-     */
-    if ((!Op->Common.Parent) ||
-        (Op->Common.Parent->Common.AmlOpcode == AML_SCOPE_OP))
-    {
-        /* No parent, the return value cannot possibly be used */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-            "At Method level, result of [%s] not used\n",
-            AcpiPsGetOpcodeName (Op->Common.AmlOpcode)));
-        return_UINT8 (FALSE);
-    }
-
-    /* Get info on the parent. The RootOp is AML_SCOPE */
-
-    ParentInfo = AcpiPsGetOpcodeInfo (Op->Common.Parent->Common.AmlOpcode);
-    if (ParentInfo->Class == AML_CLASS_UNKNOWN)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Unknown parent opcode Op=%p", Op));
-        return_UINT8 (FALSE);
-    }
-
-    /*
-     * Decide what to do with the result based on the parent.  If
-     * the parent opcode will not use the result, delete the object.
-     * Otherwise leave it as is, it will be deleted when it is used
-     * as an operand later.
-     */
-    switch (ParentInfo->Class)
-    {
-    case AML_CLASS_CONTROL:
-
-        switch (Op->Common.Parent->Common.AmlOpcode)
-        {
-        case AML_RETURN_OP:
-
-            /* Never delete the return value associated with a return opcode */
-
-            goto ResultUsed;
-
-        case AML_IF_OP:
-        case AML_WHILE_OP:
-
-            /*
-             * If we are executing the predicate AND this is the predicate op,
-             * we will use the return value
-             */
-            if ((WalkState->ControlState->Common.State == ACPI_CONTROL_PREDICATE_EXECUTING) &&
-                (WalkState->ControlState->Control.PredicateOp == Op))
-            {
-                goto ResultUsed;
-            }
-            break;
-
-        default:
-            /* Ignore other control opcodes */
-            break;
-        }
-
-        /* The general control opcode returns no result */
-
-        goto ResultNotUsed;
-
-
-    case AML_CLASS_CREATE:
-
-        /*
-         * These opcodes allow TermArg(s) as operands and therefore
-         * the operands can be method calls.  The result is used.
-         */
-        goto ResultUsed;
-
-
-    case AML_CLASS_NAMED_OBJECT:
-
-        if ((Op->Common.Parent->Common.AmlOpcode == AML_REGION_OP)       ||
-            (Op->Common.Parent->Common.AmlOpcode == AML_DATA_REGION_OP)  ||
-            (Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP)      ||
-            (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP)  ||
-            (Op->Common.Parent->Common.AmlOpcode == AML_BUFFER_OP)       ||
-            (Op->Common.Parent->Common.AmlOpcode == AML_INT_EVAL_SUBTREE_OP) ||
-            (Op->Common.Parent->Common.AmlOpcode == AML_BANK_FIELD_OP))
-        {
-            /*
-             * These opcodes allow TermArg(s) as operands and therefore
-             * the operands can be method calls.  The result is used.
-             */
-            goto ResultUsed;
-        }
-
-        goto ResultNotUsed;
-
-
-    default:
-
-        /*
-         * In all other cases. the parent will actually use the return
-         * object, so keep it.
-         */
-        goto ResultUsed;
-    }
-
-
-ResultUsed:
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "Result of [%s] used by Parent [%s] Op=%p\n",
-        AcpiPsGetOpcodeName (Op->Common.AmlOpcode),
-        AcpiPsGetOpcodeName (Op->Common.Parent->Common.AmlOpcode), Op));
-
-    return_UINT8 (TRUE);
-
-
-ResultNotUsed:
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "Result of [%s] not used by Parent [%s] Op=%p\n",
-        AcpiPsGetOpcodeName (Op->Common.AmlOpcode),
-        AcpiPsGetOpcodeName (Op->Common.Parent->Common.AmlOpcode), Op));
-
-    return_UINT8 (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsDeleteResultIfNotUsed
- *
- * PARAMETERS:  Op              - Current parse Op
- *              ResultObj       - Result of the operation
- *              WalkState       - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Used after interpretation of an opcode.  If there is an internal
- *              result descriptor, check if the parent opcode will actually use
- *              this result.  If not, delete the result now so that it will
- *              not become orphaned.
- *
- ******************************************************************************/
-
-void
-AcpiDsDeleteResultIfNotUsed (
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_OPERAND_OBJECT     *ResultObj,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsDeleteResultIfNotUsed, ResultObj);
-
-
-    if (!Op)
-    {
-        ACPI_ERROR ((AE_INFO, "Null Op"));
-        return_VOID;
-    }
-
-    if (!ResultObj)
-    {
-        return_VOID;
-    }
-
-    if (!AcpiDsIsResultUsed (Op, WalkState))
-    {
-        /* Must pop the result stack (ObjDesc should be equal to ResultObj) */
-
-        Status = AcpiDsResultPop (&ObjDesc, WalkState);
-        if (ACPI_SUCCESS (Status))
-        {
-            AcpiUtRemoveReference (ResultObj);
-        }
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsResolveOperands
- *
- * PARAMETERS:  WalkState           - Current walk state with operands on stack
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Resolve all operands to their values.  Used to prepare
- *              arguments to a control method invocation (a call from one
- *              method to another.)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsResolveOperands (
-    ACPI_WALK_STATE         *WalkState)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsResolveOperands, WalkState);
-
-
-    /*
-     * Attempt to resolve each of the valid operands
-     * Method arguments are passed by reference, not by value.  This means
-     * that the actual objects are passed, not copies of the objects.
-     */
-    for (i = 0; i < WalkState->NumOperands; i++)
-    {
-        Status = AcpiExResolveToValue (&WalkState->Operands[i], WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            break;
-        }
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsClearOperands
- *
- * PARAMETERS:  WalkState           - Current walk state with operands on stack
- *
- * RETURN:      None
- *
- * DESCRIPTION: Clear all operands on the current walk state operand stack.
- *
- ******************************************************************************/
-
-void
-AcpiDsClearOperands (
-    ACPI_WALK_STATE         *WalkState)
-{
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsClearOperands, WalkState);
-
-
-    /* Remove a reference on each operand on the stack */
-
-    for (i = 0; i < WalkState->NumOperands; i++)
-    {
-        /*
-         * Remove a reference to all operands, including both
-         * "Arguments" and "Targets".
-         */
-        AcpiUtRemoveReference (WalkState->Operands[i]);
-        WalkState->Operands[i] = NULL;
-    }
-
-    WalkState->NumOperands = 0;
-    return_VOID;
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCreateOperand
- *
- * PARAMETERS:  WalkState       - Current walk state
- *              Arg             - Parse object for the argument
- *              ArgIndex        - Which argument (zero based)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Translate a parse tree object that is an argument to an AML
- *              opcode to the equivalent interpreter object.  This may include
- *              looking up a name or entering a new name into the internal
- *              namespace.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateOperand (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Arg,
-    UINT32                  ArgIndex)
-{
-    ACPI_STATUS             Status = AE_OK;
-    char                    *NameString;
-    UINT32                  NameLength;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_PARSE_OBJECT       *ParentOp;
-    UINT16                  Opcode;
-    ACPI_INTERPRETER_MODE   InterpreterMode;
-    const ACPI_OPCODE_INFO  *OpInfo;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsCreateOperand, Arg);
-
-
-    /* A valid name must be looked up in the namespace */
-
-    if ((Arg->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
-        (Arg->Common.Value.String) &&
-        !(Arg->Common.Flags & ACPI_PARSEOP_IN_STACK))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Getting a name: Arg=%p\n", Arg));
-
-        /* Get the entire name string from the AML stream */
-
-        Status = AcpiExGetNameString (ACPI_TYPE_ANY, Arg->Common.Value.Buffer,
-                        &NameString, &NameLength);
-
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* All prefixes have been handled, and the name is in NameString */
-
-        /*
-         * Special handling for BufferField declarations.  This is a deferred
-         * opcode that unfortunately defines the field name as the last
-         * parameter instead of the first.  We get here when we are performing
-         * the deferred execution, so the actual name of the field is already
-         * in the namespace.  We don't want to attempt to look it up again
-         * because we may be executing in a different scope than where the
-         * actual opcode exists.
-         */
-        if ((WalkState->DeferredNode) &&
-            (WalkState->DeferredNode->Type == ACPI_TYPE_BUFFER_FIELD) &&
-            (ArgIndex == (UINT32) ((WalkState->Opcode == AML_CREATE_FIELD_OP) ? 3 : 2)))
-        {
-            ObjDesc = ACPI_CAST_PTR (
-                        ACPI_OPERAND_OBJECT, WalkState->DeferredNode);
-            Status = AE_OK;
-        }
-        else    /* All other opcodes */
-        {
-            /*
-             * Differentiate between a namespace "create" operation
-             * versus a "lookup" operation (IMODE_LOAD_PASS2 vs.
-             * IMODE_EXECUTE) in order to support the creation of
-             * namespace objects during the execution of control methods.
-             */
-            ParentOp = Arg->Common.Parent;
-            OpInfo = AcpiPsGetOpcodeInfo (ParentOp->Common.AmlOpcode);
-            if ((OpInfo->Flags & AML_NSNODE) &&
-                (ParentOp->Common.AmlOpcode != AML_INT_METHODCALL_OP) &&
-                (ParentOp->Common.AmlOpcode != AML_REGION_OP) &&
-                (ParentOp->Common.AmlOpcode != AML_INT_NAMEPATH_OP))
-            {
-                /* Enter name into namespace if not found */
-
-                InterpreterMode = ACPI_IMODE_LOAD_PASS2;
-            }
-            else
-            {
-                /* Return a failure if name not found */
-
-                InterpreterMode = ACPI_IMODE_EXECUTE;
-            }
-
-            Status = AcpiNsLookup (WalkState->ScopeInfo, NameString,
-                        ACPI_TYPE_ANY, InterpreterMode,
-                        ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
-                        WalkState,
-                        ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc));
-            /*
-             * The only case where we pass through (ignore) a NOT_FOUND
-             * error is for the CondRefOf opcode.
-             */
-            if (Status == AE_NOT_FOUND)
-            {
-                if (ParentOp->Common.AmlOpcode == AML_COND_REF_OF_OP)
-                {
-                    /*
-                     * For the Conditional Reference op, it's OK if
-                     * the name is not found;  We just need a way to
-                     * indicate this to the interpreter, set the
-                     * object to the root
-                     */
-                    ObjDesc = ACPI_CAST_PTR (
-                                ACPI_OPERAND_OBJECT, AcpiGbl_RootNode);
-                    Status = AE_OK;
-                }
-                else
-                {
-                    /*
-                     * We just plain didn't find it -- which is a
-                     * very serious error at this point
-                     */
-                    Status = AE_AML_NAME_NOT_FOUND;
-                }
-            }
-
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_ERROR_NAMESPACE (NameString, Status);
-            }
-        }
-
-        /* Free the namestring created above */
-
-        ACPI_FREE (NameString);
-
-        /* Check status from the lookup */
-
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Put the resulting object onto the current object stack */
-
-        Status = AcpiDsObjStackPush (ObjDesc, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-        ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (ObjDesc, WalkState));
-    }
-    else
-    {
-        /* Check for null name case */
-
-        if ((Arg->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
-            !(Arg->Common.Flags & ACPI_PARSEOP_IN_STACK))
-        {
-            /*
-             * If the name is null, this means that this is an
-             * optional result parameter that was not specified
-             * in the original ASL.  Create a Zero Constant for a
-             * placeholder.  (Store to a constant is a Noop.)
-             */
-            Opcode = AML_ZERO_OP;       /* Has no arguments! */
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-                "Null namepath: Arg=%p\n", Arg));
-        }
-        else
-        {
-            Opcode = Arg->Common.AmlOpcode;
-        }
-
-        /* Get the object type of the argument */
-
-        OpInfo = AcpiPsGetOpcodeInfo (Opcode);
-        if (OpInfo->ObjectType == ACPI_TYPE_INVALID)
-        {
-            return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
-        }
-
-        if ((OpInfo->Flags & AML_HAS_RETVAL) || (Arg->Common.Flags & ACPI_PARSEOP_IN_STACK))
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-                "Argument previously created, already stacked\n"));
-
-            ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (
-                WalkState->Operands [WalkState->NumOperands - 1], WalkState));
-
-            /*
-             * Use value that was already previously returned
-             * by the evaluation of this argument
-             */
-            Status = AcpiDsResultPop (&ObjDesc, WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                /*
-                 * Only error is underflow, and this indicates
-                 * a missing or null operand!
-                 */
-                ACPI_EXCEPTION ((AE_INFO, Status,
-                    "Missing or null operand"));
-                return_ACPI_STATUS (Status);
-            }
-        }
-        else
-        {
-            /* Create an ACPI_INTERNAL_OBJECT for the argument */
-
-            ObjDesc = AcpiUtCreateInternalObject (OpInfo->ObjectType);
-            if (!ObjDesc)
-            {
-                return_ACPI_STATUS (AE_NO_MEMORY);
-            }
-
-            /* Initialize the new object */
-
-            Status = AcpiDsInitObjectFromOp (
-                        WalkState, Arg, Opcode, &ObjDesc);
-            if (ACPI_FAILURE (Status))
-            {
-                AcpiUtDeleteObjectDesc (ObjDesc);
-                return_ACPI_STATUS (Status);
-            }
-        }
-
-        /* Put the operand object on the object stack */
-
-        Status = AcpiDsObjStackPush (ObjDesc, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (ObjDesc, WalkState));
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCreateOperands
- *
- * PARAMETERS:  WalkState           - Current state
- *              FirstArg            - First argument of a parser argument tree
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert an operator's arguments from a parse tree format to
- *              namespace objects and place those argument object on the object
- *              stack in preparation for evaluation by the interpreter.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateOperands (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *FirstArg)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_PARSE_OBJECT       *Arg;
-    ACPI_PARSE_OBJECT       *Arguments[ACPI_OBJ_NUM_OPERANDS];
-    UINT32                  ArgCount = 0;
-    UINT32                  Index = WalkState->NumOperands;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsCreateOperands, FirstArg);
-
-
-    /* Get all arguments in the list */
-
-    Arg = FirstArg;
-    while (Arg)
-    {
-        if (Index >= ACPI_OBJ_NUM_OPERANDS)
-        {
-            return_ACPI_STATUS (AE_BAD_DATA);
-        }
-
-        Arguments[Index] = Arg;
-        WalkState->Operands [Index] = NULL;
-
-        /* Move on to next argument, if any */
-
-        Arg = Arg->Common.Next;
-        ArgCount++;
-        Index++;
-    }
-
-    Index--;
-
-    /* It is the appropriate order to get objects from the Result stack */
-
-    for (i = 0; i < ArgCount; i++)
-    {
-        Arg = Arguments[Index];
-
-        /* Force the filling of the operand stack in inverse order */
-
-        WalkState->OperandIndex = (UINT8) Index;
-
-        Status = AcpiDsCreateOperand (WalkState, Arg, Index);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        Index--;
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Arg #%d (%p) done, Arg1=%p\n",
-            Index, Arg, FirstArg));
-    }
-
-    return_ACPI_STATUS (Status);
-
-
-Cleanup:
-    /*
-     * We must undo everything done above; meaning that we must
-     * pop everything off of the operand stack and delete those
-     * objects
-     */
-    AcpiDsObjStackPopAndDelete (ArgCount, WalkState);
-
-    ACPI_EXCEPTION ((AE_INFO, Status, "While creating Arg %d", Index));
-    return_ACPI_STATUS (Status);
-}
-
-
-/*****************************************************************************
- *
- * FUNCTION:    AcpiDsEvaluateNamePath
- *
- * PARAMETERS:  WalkState       - Current state of the parse tree walk,
- *                                the opcode of current operation should be
- *                                AML_INT_NAMEPATH_OP
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Translate the -NamePath- parse tree object to the equivalent
- *              interpreter object, convert it to value, if needed, duplicate
- *              it, if needed, and push it onto the current result stack.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvaluateNamePath (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_PARSE_OBJECT       *Op = WalkState->Op;
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *NewObjDesc;
-    UINT8                   Type;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsEvaluateNamePath, WalkState);
-
-
-    if (!Op->Common.Parent)
-    {
-        /* This happens after certain exception processing */
-
-        goto Exit;
-    }
-
-    if ((Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
-        (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP) ||
-        (Op->Common.Parent->Common.AmlOpcode == AML_REF_OF_OP))
-    {
-        /* TBD: Should we specify this feature as a bit of OpInfo->Flags of these opcodes? */
-
-        goto Exit;
-    }
-
-    Status = AcpiDsCreateOperand (WalkState, Op, 0);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Exit;
-    }
-
-    if (Op->Common.Flags & ACPI_PARSEOP_TARGET)
-    {
-        NewObjDesc = *Operand;
-        goto PushResult;
-    }
-
-    Type = (*Operand)->Common.Type;
-
-    Status = AcpiExResolveToValue (Operand, WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Exit;
-    }
-
-    if (Type == ACPI_TYPE_INTEGER)
-    {
-        /* It was incremented by AcpiExResolveToValue */
-
-        AcpiUtRemoveReference (*Operand);
-
-        Status = AcpiUtCopyIobjectToIobject (*Operand, &NewObjDesc, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Exit;
-        }
-    }
-    else
-    {
-        /*
-         * The object either was anew created or is
-         * a Namespace node - don't decrement it.
-         */
-        NewObjDesc = *Operand;
-    }
-
-    /* Cleanup for name-path operand */
-
-    Status = AcpiDsObjStackPop (1, WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        WalkState->ResultObj = NewObjDesc;
-        goto Exit;
-    }
-
-PushResult:
-
-    WalkState->ResultObj = NewObjDesc;
-
-    Status = AcpiDsResultPush (WalkState->ResultObj, WalkState);
-    if (ACPI_SUCCESS (Status))
-    {
-        /* Force to take it from stack */
-
-        Op->Common.Flags |= ACPI_PARSEOP_IN_STACK;
-    }
-
-Exit:
-
-    return_ACPI_STATUS (Status);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswexec.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswexec.c
deleted file mode 100644 (file)
index 9485c62..0000000
+++ /dev/null
@@ -1,853 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dswexec - Dispatcher method execution callbacks;
- *                        dispatch to interpreter.
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSWEXEC_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-#include "acdebug.h"
-
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dswexec")
-
-/*
- * Dispatch table for opcode classes
- */
-static ACPI_EXECUTE_OP      AcpiGbl_OpTypeDispatch [] =
-{
-    AcpiExOpcode_0A_0T_1R,
-    AcpiExOpcode_1A_0T_0R,
-    AcpiExOpcode_1A_0T_1R,
-    AcpiExOpcode_1A_1T_0R,
-    AcpiExOpcode_1A_1T_1R,
-    AcpiExOpcode_2A_0T_0R,
-    AcpiExOpcode_2A_0T_1R,
-    AcpiExOpcode_2A_1T_1R,
-    AcpiExOpcode_2A_2T_1R,
-    AcpiExOpcode_3A_0T_0R,
-    AcpiExOpcode_3A_1T_1R,
-    AcpiExOpcode_6A_0T_1R
-};
-
-
-/*****************************************************************************
- *
- * FUNCTION:    AcpiDsGetPredicateValue
- *
- * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *              ResultObj       - if non-zero, pop result from result stack
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get the result of a predicate evaluation
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetPredicateValue (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_OPERAND_OBJECT     *ResultObj)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *LocalObjDesc = NULL;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsGetPredicateValue, WalkState);
-
-
-    WalkState->ControlState->Common.State = 0;
-
-    if (ResultObj)
-    {
-        Status = AcpiDsResultPop (&ObjDesc, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "Could not get result from predicate evaluation"));
-
-            return_ACPI_STATUS (Status);
-        }
-    }
-    else
-    {
-        Status = AcpiDsCreateOperand (WalkState, WalkState->Op, 0);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        Status = AcpiExResolveToValue (&WalkState->Operands [0], WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        ObjDesc = WalkState->Operands [0];
-    }
-
-    if (!ObjDesc)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "No predicate ObjDesc=%p State=%p",
-            ObjDesc, WalkState));
-
-        return_ACPI_STATUS (AE_AML_NO_OPERAND);
-    }
-
-    /*
-     * Result of predicate evaluation must be an Integer
-     * object. Implicitly convert the argument if necessary.
-     */
-    Status = AcpiExConvertToInteger (ObjDesc, &LocalObjDesc, 16);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    if (LocalObjDesc->Common.Type != ACPI_TYPE_INTEGER)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Bad predicate (not an integer) ObjDesc=%p State=%p Type=%X",
-            ObjDesc, WalkState, ObjDesc->Common.Type));
-
-        Status = AE_AML_OPERAND_TYPE;
-        goto Cleanup;
-    }
-
-    /* Truncate the predicate to 32-bits if necessary */
-
-    AcpiExTruncateFor32bitTable (LocalObjDesc);
-
-    /*
-     * Save the result of the predicate evaluation on
-     * the control stack
-     */
-    if (LocalObjDesc->Integer.Value)
-    {
-        WalkState->ControlState->Common.Value = TRUE;
-    }
-    else
-    {
-        /*
-         * Predicate is FALSE, we will just toss the
-         * rest of the package
-         */
-        WalkState->ControlState->Common.Value = FALSE;
-        Status = AE_CTRL_FALSE;
-    }
-
-    /* Predicate can be used for an implicit return value */
-
-    (void) AcpiDsDoImplicitReturn (LocalObjDesc, WalkState, TRUE);
-
-
-Cleanup:
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Completed a predicate eval=%X Op=%p\n",
-        WalkState->ControlState->Common.Value, WalkState->Op));
-
-     /* Break to debugger to display result */
-
-    ACPI_DEBUGGER_EXEC (AcpiDbDisplayResultObject (LocalObjDesc, WalkState));
-
-    /*
-     * Delete the predicate result object (we know that
-     * we don't need it anymore)
-     */
-    if (LocalObjDesc != ObjDesc)
-    {
-        AcpiUtRemoveReference (LocalObjDesc);
-    }
-    AcpiUtRemoveReference (ObjDesc);
-
-    WalkState->ControlState->Common.State = ACPI_CONTROL_NORMAL;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*****************************************************************************
- *
- * FUNCTION:    AcpiDsExecBeginOp
- *
- * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *              OutOp           - Where to return op if a new one is created
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Descending callback used during the execution of control
- *              methods.  This is where most operators and operands are
- *              dispatched to the interpreter.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsExecBeginOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       **OutOp)
-{
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  OpcodeClass;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsExecBeginOp, WalkState);
-
-
-    Op = WalkState->Op;
-    if (!Op)
-    {
-        Status = AcpiDsLoad2BeginOp (WalkState, OutOp);
-        if (ACPI_FAILURE (Status))
-        {
-            goto ErrorExit;
-        }
-
-        Op = *OutOp;
-        WalkState->Op = Op;
-        WalkState->Opcode = Op->Common.AmlOpcode;
-        WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
-        if (AcpiNsOpensScope (WalkState->OpInfo->ObjectType))
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-                "(%s) Popping scope for Op %p\n",
-                AcpiUtGetTypeName (WalkState->OpInfo->ObjectType), Op));
-
-            Status = AcpiDsScopeStackPop (WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                goto ErrorExit;
-            }
-        }
-    }
-
-    if (Op == WalkState->Origin)
-    {
-        if (OutOp)
-        {
-            *OutOp = Op;
-        }
-
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * If the previous opcode was a conditional, this opcode
-     * must be the beginning of the associated predicate.
-     * Save this knowledge in the current scope descriptor
-     */
-    if ((WalkState->ControlState) &&
-        (WalkState->ControlState->Common.State ==
-            ACPI_CONTROL_CONDITIONAL_EXECUTING))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Exec predicate Op=%p State=%p\n",
-                        Op, WalkState));
-
-        WalkState->ControlState->Common.State = ACPI_CONTROL_PREDICATE_EXECUTING;
-
-        /* Save start of predicate */
-
-        WalkState->ControlState->Control.PredicateOp = Op;
-    }
-
-
-    OpcodeClass = WalkState->OpInfo->Class;
-
-    /* We want to send namepaths to the load code */
-
-    if (Op->Common.AmlOpcode == AML_INT_NAMEPATH_OP)
-    {
-        OpcodeClass = AML_CLASS_NAMED_OBJECT;
-    }
-
-    /*
-     * Handle the opcode based upon the opcode type
-     */
-    switch (OpcodeClass)
-    {
-    case AML_CLASS_CONTROL:
-
-        Status = AcpiDsExecBeginControlOp (WalkState, Op);
-        break;
-
-
-    case AML_CLASS_NAMED_OBJECT:
-
-        if (WalkState->WalkType & ACPI_WALK_METHOD)
-        {
-            /*
-             * Found a named object declaration during method execution;
-             * we must enter this object into the namespace.  The created
-             * object is temporary and will be deleted upon completion of
-             * the execution of this method.
-             */
-            Status = AcpiDsLoad2BeginOp (WalkState, NULL);
-        }
-
-        break;
-
-
-    case AML_CLASS_EXECUTE:
-    case AML_CLASS_CREATE:
-
-        break;
-
-
-    default:
-        break;
-    }
-
-    /* Nothing to do here during method execution */
-
-    return_ACPI_STATUS (Status);
-
-
-ErrorExit:
-    Status = AcpiDsMethodError (Status, WalkState);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*****************************************************************************
- *
- * FUNCTION:    AcpiDsExecEndOp
- *
- * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Ascending callback used during the execution of control
- *              methods.  The only thing we really need to do here is to
- *              notice the beginning of IF, ELSE, and WHILE blocks.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsExecEndOp (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  OpType;
-    UINT32                  OpClass;
-    ACPI_PARSE_OBJECT       *NextOp;
-    ACPI_PARSE_OBJECT       *FirstArg;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsExecEndOp, WalkState);
-
-
-    Op      = WalkState->Op;
-    OpType  = WalkState->OpInfo->Type;
-    OpClass = WalkState->OpInfo->Class;
-
-    if (OpClass == AML_CLASS_UNKNOWN)
-    {
-        ACPI_ERROR ((AE_INFO, "Unknown opcode %X", Op->Common.AmlOpcode));
-        return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
-    }
-
-    FirstArg = Op->Common.Value.Arg;
-
-    /* Init the walk state */
-
-    WalkState->NumOperands = 0;
-    WalkState->OperandIndex = 0;
-    WalkState->ReturnDesc = NULL;
-    WalkState->ResultObj = NULL;
-
-    /* Call debugger for single step support (DEBUG build only) */
-
-    ACPI_DEBUGGER_EXEC (Status = AcpiDbSingleStep (WalkState, Op, OpClass));
-    ACPI_DEBUGGER_EXEC (if (ACPI_FAILURE (Status)) {return_ACPI_STATUS (Status);});
-
-    /* Decode the Opcode Class */
-
-    switch (OpClass)
-    {
-    case AML_CLASS_ARGUMENT:    /* Constants, literals, etc. */
-
-        if (WalkState->Opcode == AML_INT_NAMEPATH_OP)
-        {
-            Status = AcpiDsEvaluateNamePath (WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                goto Cleanup;
-            }
-        }
-        break;
-
-
-    case AML_CLASS_EXECUTE:     /* Most operators with arguments */
-
-        /* Build resolved operand stack */
-
-        Status = AcpiDsCreateOperands (WalkState, FirstArg);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        /*
-         * All opcodes require operand resolution, with the only exceptions
-         * being the ObjectType and SizeOf operators.
-         */
-        if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE))
-        {
-            /* Resolve all operands */
-
-            Status = AcpiExResolveOperands (WalkState->Opcode,
-                        &(WalkState->Operands [WalkState->NumOperands -1]),
-                        WalkState);
-        }
-
-        if (ACPI_SUCCESS (Status))
-        {
-            /*
-             * Dispatch the request to the appropriate interpreter handler
-             * routine.  There is one routine per opcode "type" based upon the
-             * number of opcode arguments and return type.
-             */
-            Status = AcpiGbl_OpTypeDispatch[OpType] (WalkState);
-        }
-        else
-        {
-            /*
-             * Treat constructs of the form "Store(LocalX,LocalX)" as noops when the
-             * Local is uninitialized.
-             */
-            if  ((Status == AE_AML_UNINITIALIZED_LOCAL) &&
-                (WalkState->Opcode == AML_STORE_OP) &&
-                (WalkState->Operands[0]->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&
-                (WalkState->Operands[1]->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&
-                (WalkState->Operands[0]->Reference.Class ==
-                 WalkState->Operands[1]->Reference.Class) &&
-                (WalkState->Operands[0]->Reference.Value ==
-                 WalkState->Operands[1]->Reference.Value))
-            {
-                Status = AE_OK;
-            }
-            else
-            {
-                ACPI_EXCEPTION ((AE_INFO, Status,
-                    "While resolving operands for [%s]",
-                    AcpiPsGetOpcodeName (WalkState->Opcode)));
-            }
-        }
-
-        /* Always delete the argument objects and clear the operand stack */
-
-        AcpiDsClearOperands (WalkState);
-
-        /*
-         * If a result object was returned from above, push it on the
-         * current result stack
-         */
-        if (ACPI_SUCCESS (Status) &&
-            WalkState->ResultObj)
-        {
-            Status = AcpiDsResultPush (WalkState->ResultObj, WalkState);
-        }
-        break;
-
-
-    default:
-
-        switch (OpType)
-        {
-        case AML_TYPE_CONTROL:    /* Type 1 opcode, IF/ELSE/WHILE/NOOP */
-
-            /* 1 Operand, 0 ExternalResult, 0 InternalResult */
-
-            Status = AcpiDsExecEndControlOp (WalkState, Op);
-
-            break;
-
-
-        case AML_TYPE_METHOD_CALL:
-
-            /*
-             * If the method is referenced from within a package
-             * declaration, it is not a invocation of the method, just
-             * a reference to it.
-             */
-            if ((Op->Asl.Parent) &&
-               ((Op->Asl.Parent->Asl.AmlOpcode == AML_PACKAGE_OP) ||
-                (Op->Asl.Parent->Asl.AmlOpcode == AML_VAR_PACKAGE_OP)))
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-                    "Method Reference in a Package, Op=%p\n", Op));
-
-                Op->Common.Node = (ACPI_NAMESPACE_NODE *) Op->Asl.Value.Arg->Asl.Node;
-                AcpiUtAddReference (Op->Asl.Value.Arg->Asl.Node->Object);
-                return_ACPI_STATUS (AE_OK);
-            }
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Method invocation, Op=%p\n", Op));
-
-            /*
-             * (AML_METHODCALL) Op->Asl.Value.Arg->Asl.Node contains
-             * the method Node pointer
-             */
-            /* NextOp points to the op that holds the method name */
-
-            NextOp = FirstArg;
-
-            /* NextOp points to first argument op */
-
-            NextOp = NextOp->Common.Next;
-
-            /*
-             * Get the method's arguments and put them on the operand stack
-             */
-            Status = AcpiDsCreateOperands (WalkState, NextOp);
-            if (ACPI_FAILURE (Status))
-            {
-                break;
-            }
-
-            /*
-             * Since the operands will be passed to another control method,
-             * we must resolve all local references here (Local variables,
-             * arguments to *this* method, etc.)
-             */
-            Status = AcpiDsResolveOperands (WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                /* On error, clear all resolved operands */
-
-                AcpiDsClearOperands (WalkState);
-                break;
-            }
-
-            /*
-             * Tell the walk loop to preempt this running method and
-             * execute the new method
-             */
-            Status = AE_CTRL_TRANSFER;
-
-            /*
-             * Return now; we don't want to disturb anything,
-             * especially the operand count!
-             */
-            return_ACPI_STATUS (Status);
-
-
-        case AML_TYPE_CREATE_FIELD:
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                "Executing CreateField Buffer/Index Op=%p\n", Op));
-
-            Status = AcpiDsLoad2EndOp (WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                break;
-            }
-
-            Status = AcpiDsEvalBufferFieldOperands (WalkState, Op);
-            break;
-
-
-        case AML_TYPE_CREATE_OBJECT:
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                "Executing CreateObject (Buffer/Package) Op=%p\n", Op));
-
-            switch (Op->Common.Parent->Common.AmlOpcode)
-            {
-            case AML_NAME_OP:
-
-                /*
-                 * Put the Node on the object stack (Contains the ACPI Name
-                 * of this object)
-                 */
-                WalkState->Operands[0] = (void *) Op->Common.Parent->Common.Node;
-                WalkState->NumOperands = 1;
-
-                Status = AcpiDsCreateNode (WalkState,
-                            Op->Common.Parent->Common.Node,
-                            Op->Common.Parent);
-                if (ACPI_FAILURE (Status))
-                {
-                    break;
-                }
-
-                /* Fall through */
-                /*lint -fallthrough */
-
-            case AML_INT_EVAL_SUBTREE_OP:
-
-                Status = AcpiDsEvalDataObjectOperands (WalkState, Op,
-                            AcpiNsGetAttachedObject (Op->Common.Parent->Common.Node));
-                break;
-
-            default:
-
-                Status = AcpiDsEvalDataObjectOperands (WalkState, Op, NULL);
-                break;
-            }
-
-            /*
-             * If a result object was returned from above, push it on the
-             * current result stack
-             */
-            if (WalkState->ResultObj)
-            {
-                Status = AcpiDsResultPush (WalkState->ResultObj, WalkState);
-            }
-            break;
-
-
-        case AML_TYPE_NAMED_FIELD:
-        case AML_TYPE_NAMED_COMPLEX:
-        case AML_TYPE_NAMED_SIMPLE:
-        case AML_TYPE_NAMED_NO_OBJ:
-
-            Status = AcpiDsLoad2EndOp (WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                break;
-            }
-
-            if (Op->Common.AmlOpcode == AML_REGION_OP)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                    "Executing OpRegion Address/Length Op=%p\n", Op));
-
-                Status = AcpiDsEvalRegionOperands (WalkState, Op);
-                if (ACPI_FAILURE (Status))
-                {
-                    break;
-                }
-            }
-            else if (Op->Common.AmlOpcode == AML_DATA_REGION_OP)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                    "Executing DataTableRegion Strings Op=%p\n", Op));
-
-                Status = AcpiDsEvalTableRegionOperands (WalkState, Op);
-                if (ACPI_FAILURE (Status))
-                {
-                    break;
-                }
-            }
-            else if (Op->Common.AmlOpcode == AML_BANK_FIELD_OP)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                    "Executing BankField Op=%p\n", Op));
-
-                Status = AcpiDsEvalBankFieldOperands (WalkState, Op);
-                if (ACPI_FAILURE (Status))
-                {
-                    break;
-                }
-            }
-            break;
-
-
-        case AML_TYPE_UNDEFINED:
-
-            ACPI_ERROR ((AE_INFO,
-                "Undefined opcode type Op=%p", Op));
-            return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
-
-
-        case AML_TYPE_BOGUS:
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-                "Internal opcode=%X type Op=%p\n",
-                WalkState->Opcode, Op));
-            break;
-
-
-        default:
-
-            ACPI_ERROR ((AE_INFO,
-                "Unimplemented opcode, class=%X type=%X Opcode=%X Op=%p",
-                OpClass, OpType, Op->Common.AmlOpcode, Op));
-
-            Status = AE_NOT_IMPLEMENTED;
-            break;
-        }
-    }
-
-    /*
-     * ACPI 2.0 support for 64-bit integers: Truncate numeric
-     * result value if we are executing from a 32-bit ACPI table
-     */
-    AcpiExTruncateFor32bitTable (WalkState->ResultObj);
-
-    /*
-     * Check if we just completed the evaluation of a
-     * conditional predicate
-     */
-    if ((ACPI_SUCCESS (Status)) &&
-        (WalkState->ControlState) &&
-        (WalkState->ControlState->Common.State ==
-            ACPI_CONTROL_PREDICATE_EXECUTING) &&
-        (WalkState->ControlState->Control.PredicateOp == Op))
-    {
-        Status = AcpiDsGetPredicateValue (WalkState, WalkState->ResultObj);
-        WalkState->ResultObj = NULL;
-    }
-
-
-Cleanup:
-
-    if (WalkState->ResultObj)
-    {
-        /* Break to debugger to display result */
-
-        ACPI_DEBUGGER_EXEC (AcpiDbDisplayResultObject (WalkState->ResultObj,
-                                WalkState));
-
-        /*
-         * Delete the result op if and only if:
-         * Parent will not use the result -- such as any
-         * non-nested type2 op in a method (parent will be method)
-         */
-        AcpiDsDeleteResultIfNotUsed (Op, WalkState->ResultObj, WalkState);
-    }
-
-#ifdef _UNDER_DEVELOPMENT
-
-    if (WalkState->ParserState.Aml == WalkState->ParserState.AmlEnd)
-    {
-        AcpiDbMethodEnd (WalkState);
-    }
-#endif
-
-    /* Invoke exception handler on error */
-
-    if (ACPI_FAILURE (Status))
-    {
-        Status = AcpiDsMethodError (Status, WalkState);
-    }
-
-    /* Always clear the object stack */
-
-    WalkState->NumOperands = 0;
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswload.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswload.c
deleted file mode 100644 (file)
index 48c4ae6..0000000
+++ /dev/null
@@ -1,1316 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dswload - Dispatcher namespace load callbacks
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSWLOAD_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-#include "acevents.h"
-
-#ifdef ACPI_ASL_COMPILER
-#include "acdisasm.h"
-#endif
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dswload")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsInitCallbacks
- *
- * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *              PassNumber      - 1, 2, or 3
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Init walk state callbacks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitCallbacks (
-    ACPI_WALK_STATE         *WalkState,
-    UINT32                  PassNumber)
-{
-
-    switch (PassNumber)
-    {
-    case 1:
-        WalkState->ParseFlags         = ACPI_PARSE_LOAD_PASS1 |
-                                        ACPI_PARSE_DELETE_TREE;
-        WalkState->DescendingCallback = AcpiDsLoad1BeginOp;
-        WalkState->AscendingCallback  = AcpiDsLoad1EndOp;
-        break;
-
-    case 2:
-        WalkState->ParseFlags         = ACPI_PARSE_LOAD_PASS1 |
-                                        ACPI_PARSE_DELETE_TREE;
-        WalkState->DescendingCallback = AcpiDsLoad2BeginOp;
-        WalkState->AscendingCallback  = AcpiDsLoad2EndOp;
-        break;
-
-    case 3:
-#ifndef ACPI_NO_METHOD_EXECUTION
-        WalkState->ParseFlags        |= ACPI_PARSE_EXECUTE  |
-                                        ACPI_PARSE_DELETE_TREE;
-        WalkState->DescendingCallback = AcpiDsExecBeginOp;
-        WalkState->AscendingCallback  = AcpiDsExecEndOp;
-#endif
-        break;
-
-    default:
-        return (AE_BAD_PARAMETER);
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsLoad1BeginOp
- *
- * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *              OutOp           - Where to return op if a new one is created
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Descending callback used during the loading of ACPI tables.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsLoad1BeginOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       **OutOp)
-{
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-    ACPI_OBJECT_TYPE        ObjectType;
-    char                    *Path;
-    UINT32                  Flags;
-
-
-    ACPI_FUNCTION_TRACE (DsLoad1BeginOp);
-
-
-    Op = WalkState->Op;
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
-
-    /* We are only interested in opcodes that have an associated name */
-
-    if (Op)
-    {
-        if (!(WalkState->OpInfo->Flags & AML_NAMED))
-        {
-            *OutOp = Op;
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        /* Check if this object has already been installed in the namespace */
-
-        if (Op->Common.Node)
-        {
-            *OutOp = Op;
-            return_ACPI_STATUS (AE_OK);
-        }
-    }
-
-    Path = AcpiPsGetNextNamestring (&WalkState->ParserState);
-
-    /* Map the raw opcode into an internal object type */
-
-    ObjectType = WalkState->OpInfo->ObjectType;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "State=%p Op=%p [%s]\n", WalkState, Op, AcpiUtGetTypeName (ObjectType)));
-
-    switch (WalkState->Opcode)
-    {
-    case AML_SCOPE_OP:
-
-        /*
-         * The target name of the Scope() operator must exist at this point so
-         * that we can actually open the scope to enter new names underneath it.
-         * Allow search-to-root for single namesegs.
-         */
-        Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
-                        ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, &(Node));
-#ifdef ACPI_ASL_COMPILER
-        if (Status == AE_NOT_FOUND)
-        {
-            /*
-             * Table disassembly:
-             * Target of Scope() not found. Generate an External for it, and
-             * insert the name into the namespace.
-             */
-            AcpiDmAddToExternalList (Op, Path, ACPI_TYPE_DEVICE, 0);
-            Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
-                       ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT,
-                       WalkState, &Node);
-        }
-#endif
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_ERROR_NAMESPACE (Path, Status);
-            return_ACPI_STATUS (Status);
-        }
-
-        /*
-         * Check to make sure that the target is
-         * one of the opcodes that actually opens a scope
-         */
-        switch (Node->Type)
-        {
-        case ACPI_TYPE_ANY:
-        case ACPI_TYPE_LOCAL_SCOPE:         /* Scope  */
-        case ACPI_TYPE_DEVICE:
-        case ACPI_TYPE_POWER:
-        case ACPI_TYPE_PROCESSOR:
-        case ACPI_TYPE_THERMAL:
-
-            /* These are acceptable types */
-            break;
-
-        case ACPI_TYPE_INTEGER:
-        case ACPI_TYPE_STRING:
-        case ACPI_TYPE_BUFFER:
-
-            /*
-             * These types we will allow, but we will change the type.
-             * This enables some existing code of the form:
-             *
-             *  Name (DEB, 0)
-             *  Scope (DEB) { ... }
-             *
-             * Note: silently change the type here. On the second pass,
-             * we will report a warning
-             */
-            ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                "Type override - [%4.4s] had invalid type (%s) "
-                "for Scope operator, changed to type ANY\n",
-                AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Node->Type)));
-
-            Node->Type = ACPI_TYPE_ANY;
-            WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
-            break;
-
-        default:
-
-            /* All other types are an error */
-
-            ACPI_ERROR ((AE_INFO,
-                "Invalid type (%s) for target of "
-                "Scope operator [%4.4s] (Cannot override)",
-                AcpiUtGetTypeName (Node->Type), AcpiUtGetNodeName (Node)));
-
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-        break;
-
-
-    default:
-        /*
-         * For all other named opcodes, we will enter the name into
-         * the namespace.
-         *
-         * Setup the search flags.
-         * Since we are entering a name into the namespace, we do not want to
-         * enable the search-to-root upsearch.
-         *
-         * There are only two conditions where it is acceptable that the name
-         * already exists:
-         *    1) the Scope() operator can reopen a scoping object that was
-         *       previously defined (Scope, Method, Device, etc.)
-         *    2) Whenever we are parsing a deferred opcode (OpRegion, Buffer,
-         *       BufferField, or Package), the name of the object is already
-         *       in the namespace.
-         */
-        if (WalkState->DeferredNode)
-        {
-            /* This name is already in the namespace, get the node */
-
-            Node = WalkState->DeferredNode;
-            Status = AE_OK;
-            break;
-        }
-
-        /*
-         * If we are executing a method, do not create any namespace objects
-         * during the load phase, only during execution.
-         */
-        if (WalkState->MethodNode)
-        {
-            Node = NULL;
-            Status = AE_OK;
-            break;
-        }
-
-        Flags = ACPI_NS_NO_UPSEARCH;
-        if ((WalkState->Opcode != AML_SCOPE_OP) &&
-            (!(WalkState->ParseFlags & ACPI_PARSE_DEFERRED_OP)))
-        {
-            Flags |= ACPI_NS_ERROR_IF_FOUND;
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Cannot already exist\n",
-                    AcpiUtGetTypeName (ObjectType)));
-        }
-        else
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-                "[%s] Both Find or Create allowed\n",
-                    AcpiUtGetTypeName (ObjectType)));
-        }
-
-        /*
-         * Enter the named type into the internal namespace. We enter the name
-         * as we go downward in the parse tree. Any necessary subobjects that
-         * involve arguments to the opcode must be created as we go back up the
-         * parse tree later.
-         */
-        Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
-                        ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node);
-        if (ACPI_FAILURE (Status))
-        {
-            if (Status == AE_ALREADY_EXISTS)
-            {
-                /* The name already exists in this scope */
-
-                if (Node->Flags & ANOBJ_IS_EXTERNAL)
-                {
-                    /*
-                     * Allow one create on an object or segment that was
-                     * previously declared External
-                     */
-                    Node->Flags &= ~ANOBJ_IS_EXTERNAL;
-                    Node->Type = (UINT8) ObjectType;
-
-                    /* Just retyped a node, probably will need to open a scope */
-
-                    if (AcpiNsOpensScope (ObjectType))
-                    {
-                        Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
-                        if (ACPI_FAILURE (Status))
-                        {
-                            return_ACPI_STATUS (Status);
-                        }
-                    }
-
-                    Status = AE_OK;
-                }
-            }
-
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_ERROR_NAMESPACE (Path, Status);
-                return_ACPI_STATUS (Status);
-            }
-        }
-        break;
-    }
-
-    /* Common exit */
-
-    if (!Op)
-    {
-        /* Create a new op */
-
-        Op = AcpiPsAllocOp (WalkState->Opcode);
-        if (!Op)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-    }
-
-    /* Initialize the op */
-
-#if (defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY))
-    Op->Named.Path = ACPI_CAST_PTR (UINT8, Path);
-#endif
-
-    if (Node)
-    {
-        /*
-         * Put the Node in the "op" object that the parser uses, so we
-         * can get it again quickly when this scope is closed
-         */
-        Op->Common.Node = Node;
-        Op->Named.Name = Node->Name.Integer;
-    }
-
-    AcpiPsAppendArg (AcpiPsGetParentScope (&WalkState->ParserState), Op);
-    *OutOp = Op;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsLoad1EndOp
- *
- * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Ascending callback used during the loading of the namespace,
- *              both control methods and everything else.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsLoad1EndOp (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_OBJECT_TYPE        ObjectType;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (DsLoad1EndOp);
-
-
-    Op = WalkState->Op;
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
-
-    /* We are only interested in opcodes that have an associated name */
-
-    if (!(WalkState->OpInfo->Flags & (AML_NAMED | AML_FIELD)))
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Get the object type to determine if we should pop the scope */
-
-    ObjectType = WalkState->OpInfo->ObjectType;
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-    if (WalkState->OpInfo->Flags & AML_FIELD)
-    {
-        /*
-         * If we are executing a method, do not create any namespace objects
-         * during the load phase, only during execution.
-         */
-        if (!WalkState->MethodNode)
-        {
-            if (WalkState->Opcode == AML_FIELD_OP          ||
-                WalkState->Opcode == AML_BANK_FIELD_OP     ||
-                WalkState->Opcode == AML_INDEX_FIELD_OP)
-            {
-                Status = AcpiDsInitFieldObjects (Op, WalkState);
-            }
-        }
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * If we are executing a method, do not create any namespace objects
-     * during the load phase, only during execution.
-     */
-    if (!WalkState->MethodNode)
-    {
-        if (Op->Common.AmlOpcode == AML_REGION_OP)
-        {
-            Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length,
-                        (ACPI_ADR_SPACE_TYPE) ((Op->Common.Value.Arg)->Common.Value.Integer),
-                        WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-        else if (Op->Common.AmlOpcode == AML_DATA_REGION_OP)
-        {
-            Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length,
-                        REGION_DATA_TABLE, WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-    }
-#endif
-
-    if (Op->Common.AmlOpcode == AML_NAME_OP)
-    {
-        /* For Name opcode, get the object type from the argument */
-
-        if (Op->Common.Value.Arg)
-        {
-            ObjectType = (AcpiPsGetOpcodeInfo (
-                (Op->Common.Value.Arg)->Common.AmlOpcode))->ObjectType;
-
-            /* Set node type if we have a namespace node */
-
-            if (Op->Common.Node)
-            {
-                Op->Common.Node->Type = (UINT8) ObjectType;
-            }
-        }
-    }
-
-    /*
-     * If we are executing a method, do not create any namespace objects
-     * during the load phase, only during execution.
-     */
-    if (!WalkState->MethodNode)
-    {
-        if (Op->Common.AmlOpcode == AML_METHOD_OP)
-        {
-            /*
-             * MethodOp PkgLength NameString MethodFlags TermList
-             *
-             * Note: We must create the method node/object pair as soon as we
-             * see the method declaration. This allows later pass1 parsing
-             * of invocations of the method (need to know the number of
-             * arguments.)
-             */
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-                "LOADING-Method: State=%p Op=%p NamedObj=%p\n",
-                WalkState, Op, Op->Named.Node));
-
-            if (!AcpiNsGetAttachedObject (Op->Named.Node))
-            {
-                WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node);
-                WalkState->NumOperands = 1;
-
-                Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg);
-                if (ACPI_SUCCESS (Status))
-                {
-                    Status = AcpiExCreateMethod (Op->Named.Data,
-                                        Op->Named.Length, WalkState);
-                }
-
-                WalkState->Operands[0] = NULL;
-                WalkState->NumOperands = 0;
-
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-            }
-        }
-    }
-
-    /* Pop the scope stack (only if loading a table) */
-
-    if (!WalkState->MethodNode &&
-        AcpiNsOpensScope (ObjectType))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "(%s): Popping scope for Op %p\n",
-            AcpiUtGetTypeName (ObjectType), Op));
-
-        Status = AcpiDsScopeStackPop (WalkState);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsLoad2BeginOp
- *
- * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *              OutOp           - Wher to return op if a new one is created
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Descending callback used during the loading of ACPI tables.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsLoad2BeginOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       **OutOp)
-{
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-    ACPI_OBJECT_TYPE        ObjectType;
-    char                    *BufferPtr;
-    UINT32                  Flags;
-
-
-    ACPI_FUNCTION_TRACE (DsLoad2BeginOp);
-
-
-    Op = WalkState->Op;
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
-
-    if (Op)
-    {
-        if ((WalkState->ControlState) &&
-            (WalkState->ControlState->Common.State ==
-                ACPI_CONTROL_CONDITIONAL_EXECUTING))
-        {
-            /* We are executing a while loop outside of a method */
-
-            Status = AcpiDsExecBeginOp (WalkState, OutOp);
-            return_ACPI_STATUS (Status);
-        }
-
-        /* We only care about Namespace opcodes here */
-
-        if ((!(WalkState->OpInfo->Flags & AML_NSOPCODE)   &&
-              (WalkState->Opcode != AML_INT_NAMEPATH_OP)) ||
-            (!(WalkState->OpInfo->Flags & AML_NAMED)))
-        {
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        /* Get the name we are going to enter or lookup in the namespace */
-
-        if (WalkState->Opcode == AML_INT_NAMEPATH_OP)
-        {
-            /* For Namepath op, get the path string */
-
-            BufferPtr = Op->Common.Value.String;
-            if (!BufferPtr)
-            {
-                /* No name, just exit */
-
-                return_ACPI_STATUS (AE_OK);
-            }
-        }
-        else
-        {
-            /* Get name from the op */
-
-            BufferPtr = ACPI_CAST_PTR (char, &Op->Named.Name);
-        }
-    }
-    else
-    {
-        /* Get the namestring from the raw AML */
-
-        BufferPtr = AcpiPsGetNextNamestring (&WalkState->ParserState);
-    }
-
-    /* Map the opcode into an internal object type */
-
-    ObjectType = WalkState->OpInfo->ObjectType;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "State=%p Op=%p Type=%X\n", WalkState, Op, ObjectType));
-
-    switch (WalkState->Opcode)
-    {
-    case AML_FIELD_OP:
-    case AML_BANK_FIELD_OP:
-    case AML_INDEX_FIELD_OP:
-
-        Node = NULL;
-        Status = AE_OK;
-        break;
-
-    case AML_INT_NAMEPATH_OP:
-        /*
-         * The NamePath is an object reference to an existing object.
-         * Don't enter the name into the namespace, but look it up
-         * for use later.
-         */
-        Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
-                        ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
-                        WalkState, &(Node));
-        break;
-
-    case AML_SCOPE_OP:
-
-        /* Special case for Scope(\) -> refers to the Root node */
-
-        if (Op && (Op->Named.Node == AcpiGbl_RootNode))
-        {
-            Node = Op->Named.Node;
-
-            Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-        else
-        {
-            /*
-             * The Path is an object reference to an existing object.
-             * Don't enter the name into the namespace, but look it up
-             * for use later.
-             */
-            Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
-                        ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
-                        WalkState, &(Node));
-            if (ACPI_FAILURE (Status))
-            {
-#ifdef ACPI_ASL_COMPILER
-                if (Status == AE_NOT_FOUND)
-                {
-                    Status = AE_OK;
-                }
-                else
-                {
-                    ACPI_ERROR_NAMESPACE (BufferPtr, Status);
-                }
-#else
-                ACPI_ERROR_NAMESPACE (BufferPtr, Status);
-#endif
-                return_ACPI_STATUS (Status);
-            }
-        }
-
-        /*
-         * We must check to make sure that the target is
-         * one of the opcodes that actually opens a scope
-         */
-        switch (Node->Type)
-        {
-        case ACPI_TYPE_ANY:
-        case ACPI_TYPE_LOCAL_SCOPE:         /* Scope */
-        case ACPI_TYPE_DEVICE:
-        case ACPI_TYPE_POWER:
-        case ACPI_TYPE_PROCESSOR:
-        case ACPI_TYPE_THERMAL:
-
-            /* These are acceptable types */
-            break;
-
-        case ACPI_TYPE_INTEGER:
-        case ACPI_TYPE_STRING:
-        case ACPI_TYPE_BUFFER:
-
-            /*
-             * These types we will allow, but we will change the type.
-             * This enables some existing code of the form:
-             *
-             *  Name (DEB, 0)
-             *  Scope (DEB) { ... }
-             */
-            ACPI_WARNING ((AE_INFO,
-                "Type override - [%4.4s] had invalid type (%s) "
-                "for Scope operator, changed to type ANY\n",
-                AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Node->Type)));
-
-            Node->Type = ACPI_TYPE_ANY;
-            WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
-            break;
-
-        default:
-
-            /* All other types are an error */
-
-            ACPI_ERROR ((AE_INFO,
-                "Invalid type (%s) for target of "
-                "Scope operator [%4.4s] (Cannot override)",
-                AcpiUtGetTypeName (Node->Type), AcpiUtGetNodeName (Node)));
-
-            return (AE_AML_OPERAND_TYPE);
-        }
-        break;
-
-    default:
-
-        /* All other opcodes */
-
-        if (Op && Op->Common.Node)
-        {
-            /* This op/node was previously entered into the namespace */
-
-            Node = Op->Common.Node;
-
-            if (AcpiNsOpensScope (ObjectType))
-            {
-                Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-            }
-
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        /*
-         * Enter the named type into the internal namespace. We enter the name
-         * as we go downward in the parse tree. Any necessary subobjects that
-         * involve arguments to the opcode must be created as we go back up the
-         * parse tree later.
-         *
-         * Note: Name may already exist if we are executing a deferred opcode.
-         */
-        if (WalkState->DeferredNode)
-        {
-            /* This name is already in the namespace, get the node */
-
-            Node = WalkState->DeferredNode;
-            Status = AE_OK;
-            break;
-        }
-
-        Flags = ACPI_NS_NO_UPSEARCH;
-        if (WalkState->PassNumber == ACPI_IMODE_EXECUTE)
-        {
-            /* Execution mode, node cannot already exist, node is temporary */
-
-            Flags |= ACPI_NS_ERROR_IF_FOUND;
-
-            if (!(WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL))
-            {
-                Flags |= ACPI_NS_TEMPORARY;
-            }
-        }
-
-        /* Add new entry or lookup existing entry */
-
-        Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
-                    ACPI_IMODE_LOAD_PASS2, Flags, WalkState, &Node);
-
-        if (ACPI_SUCCESS (Status) && (Flags & ACPI_NS_TEMPORARY))
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-                "***New Node [%4.4s] %p is temporary\n",
-                AcpiUtGetNodeName (Node), Node));
-        }
-        break;
-    }
-
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_ERROR_NAMESPACE (BufferPtr, Status);
-        return_ACPI_STATUS (Status);
-    }
-
-    if (!Op)
-    {
-        /* Create a new op */
-
-        Op = AcpiPsAllocOp (WalkState->Opcode);
-        if (!Op)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /* Initialize the new op */
-
-        if (Node)
-        {
-            Op->Named.Name = Node->Name.Integer;
-        }
-        *OutOp = Op;
-    }
-
-    /*
-     * Put the Node in the "op" object that the parser uses, so we
-     * can get it again quickly when this scope is closed
-     */
-    Op->Common.Node = Node;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsLoad2EndOp
- *
- * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Ascending callback used during the loading of the namespace,
- *              both control methods and everything else.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsLoad2EndOp (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OBJECT_TYPE        ObjectType;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_PARSE_OBJECT       *Arg;
-    ACPI_NAMESPACE_NODE     *NewNode;
-#ifndef ACPI_NO_METHOD_EXECUTION
-    UINT32                  i;
-    UINT8                   RegionSpace;
-#endif
-
-
-    ACPI_FUNCTION_TRACE (DsLoad2EndOp);
-
-    Op = WalkState->Op;
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n",
-            WalkState->OpInfo->Name, Op, WalkState));
-
-    /* Check if opcode had an associated namespace object */
-
-    if (!(WalkState->OpInfo->Flags & AML_NSOBJECT))
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    if (Op->Common.AmlOpcode == AML_SCOPE_OP)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-            "Ending scope Op=%p State=%p\n", Op, WalkState));
-    }
-
-    ObjectType = WalkState->OpInfo->ObjectType;
-
-    /*
-     * Get the Node/name from the earlier lookup
-     * (It was saved in the *op structure)
-     */
-    Node = Op->Common.Node;
-
-    /*
-     * Put the Node on the object stack (Contains the ACPI Name of
-     * this object)
-     */
-    WalkState->Operands[0] = (void *) Node;
-    WalkState->NumOperands = 1;
-
-    /* Pop the scope stack */
-
-    if (AcpiNsOpensScope (ObjectType) &&
-       (Op->Common.AmlOpcode != AML_INT_METHODCALL_OP))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "(%s) Popping scope for Op %p\n",
-            AcpiUtGetTypeName (ObjectType), Op));
-
-        Status = AcpiDsScopeStackPop (WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-    }
-
-    /*
-     * Named operations are as follows:
-     *
-     * AML_ALIAS
-     * AML_BANKFIELD
-     * AML_CREATEBITFIELD
-     * AML_CREATEBYTEFIELD
-     * AML_CREATEDWORDFIELD
-     * AML_CREATEFIELD
-     * AML_CREATEQWORDFIELD
-     * AML_CREATEWORDFIELD
-     * AML_DATA_REGION
-     * AML_DEVICE
-     * AML_EVENT
-     * AML_FIELD
-     * AML_INDEXFIELD
-     * AML_METHOD
-     * AML_METHODCALL
-     * AML_MUTEX
-     * AML_NAME
-     * AML_NAMEDFIELD
-     * AML_OPREGION
-     * AML_POWERRES
-     * AML_PROCESSOR
-     * AML_SCOPE
-     * AML_THERMALZONE
-     */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "Create-Load [%s] State=%p Op=%p NamedObj=%p\n",
-        AcpiPsGetOpcodeName (Op->Common.AmlOpcode), WalkState, Op, Node));
-
-    /* Decode the opcode */
-
-    Arg = Op->Common.Value.Arg;
-
-    switch (WalkState->OpInfo->Type)
-    {
-#ifndef ACPI_NO_METHOD_EXECUTION
-
-    case AML_TYPE_CREATE_FIELD:
-        /*
-         * Create the field object, but the field buffer and index must
-         * be evaluated later during the execution phase
-         */
-        Status = AcpiDsCreateBufferField (Op, WalkState);
-        break;
-
-
-     case AML_TYPE_NAMED_FIELD:
-        /*
-         * If we are executing a method, initialize the field
-         */
-        if (WalkState->MethodNode)
-        {
-            Status = AcpiDsInitFieldObjects (Op, WalkState);
-        }
-
-        switch (Op->Common.AmlOpcode)
-        {
-        case AML_INDEX_FIELD_OP:
-
-            Status = AcpiDsCreateIndexField (Op, (ACPI_HANDLE) Arg->Common.Node,
-                        WalkState);
-            break;
-
-        case AML_BANK_FIELD_OP:
-
-            Status = AcpiDsCreateBankField (Op, Arg->Common.Node, WalkState);
-            break;
-
-        case AML_FIELD_OP:
-
-            Status = AcpiDsCreateField (Op, Arg->Common.Node, WalkState);
-            break;
-
-        default:
-            /* All NAMED_FIELD opcodes must be handled above */
-            break;
-        }
-        break;
-
-
-     case AML_TYPE_NAMED_SIMPLE:
-
-        Status = AcpiDsCreateOperands (WalkState, Arg);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        switch (Op->Common.AmlOpcode)
-        {
-        case AML_PROCESSOR_OP:
-
-            Status = AcpiExCreateProcessor (WalkState);
-            break;
-
-        case AML_POWER_RES_OP:
-
-            Status = AcpiExCreatePowerResource (WalkState);
-            break;
-
-        case AML_MUTEX_OP:
-
-            Status = AcpiExCreateMutex (WalkState);
-            break;
-
-        case AML_EVENT_OP:
-
-            Status = AcpiExCreateEvent (WalkState);
-            break;
-
-
-        case AML_ALIAS_OP:
-
-            Status = AcpiExCreateAlias (WalkState);
-            break;
-
-        default:
-            /* Unknown opcode */
-
-            Status = AE_OK;
-            goto Cleanup;
-        }
-
-        /* Delete operands */
-
-        for (i = 1; i < WalkState->NumOperands; i++)
-        {
-            AcpiUtRemoveReference (WalkState->Operands[i]);
-            WalkState->Operands[i] = NULL;
-        }
-
-        break;
-#endif /* ACPI_NO_METHOD_EXECUTION */
-
-    case AML_TYPE_NAMED_COMPLEX:
-
-        switch (Op->Common.AmlOpcode)
-        {
-#ifndef ACPI_NO_METHOD_EXECUTION
-        case AML_REGION_OP:
-        case AML_DATA_REGION_OP:
-
-            if (Op->Common.AmlOpcode == AML_REGION_OP)
-            {
-                RegionSpace = (ACPI_ADR_SPACE_TYPE)
-                      ((Op->Common.Value.Arg)->Common.Value.Integer);
-            }
-            else
-            {
-                RegionSpace = REGION_DATA_TABLE;
-            }
-
-            /*
-             * The OpRegion is not fully parsed at this time. The only valid
-             * argument is the SpaceId. (We must save the address of the
-             * AML of the address and length operands)
-             *
-             * If we have a valid region, initialize it. The namespace is
-             * unlocked at this point.
-             *
-             * Need to unlock interpreter if it is locked (if we are running
-             * a control method), in order to allow _REG methods to be run
-             * during AcpiEvInitializeRegion.
-             */
-            if (WalkState->MethodNode)
-            {
-                /*
-                 * Executing a method: initialize the region and unlock
-                 * the interpreter
-                 */
-                Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length,
-                            RegionSpace, WalkState);
-                if (ACPI_FAILURE (Status))
-                {
-                    return (Status);
-                }
-
-                AcpiExExitInterpreter ();
-            }
-
-            Status = AcpiEvInitializeRegion (AcpiNsGetAttachedObject (Node),
-                        FALSE);
-            if (WalkState->MethodNode)
-            {
-                AcpiExEnterInterpreter ();
-            }
-
-            if (ACPI_FAILURE (Status))
-            {
-                /*
-                 *  If AE_NOT_EXIST is returned, it is not fatal
-                 *  because many regions get created before a handler
-                 *  is installed for said region.
-                 */
-                if (AE_NOT_EXIST == Status)
-                {
-                    Status = AE_OK;
-                }
-            }
-            break;
-
-
-        case AML_NAME_OP:
-
-            Status = AcpiDsCreateNode (WalkState, Node, Op);
-            break;
-
-
-        case AML_METHOD_OP:
-            /*
-             * MethodOp PkgLength NameString MethodFlags TermList
-             *
-             * Note: We must create the method node/object pair as soon as we
-             * see the method declaration. This allows later pass1 parsing
-             * of invocations of the method (need to know the number of
-             * arguments.)
-             */
-            ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-                "LOADING-Method: State=%p Op=%p NamedObj=%p\n",
-                WalkState, Op, Op->Named.Node));
-
-            if (!AcpiNsGetAttachedObject (Op->Named.Node))
-            {
-                WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node);
-                WalkState->NumOperands = 1;
-
-                Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg);
-                if (ACPI_SUCCESS (Status))
-                {
-                    Status = AcpiExCreateMethod (Op->Named.Data,
-                                        Op->Named.Length, WalkState);
-                }
-                WalkState->Operands[0] = NULL;
-                WalkState->NumOperands = 0;
-
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-            }
-            break;
-
-#endif /* ACPI_NO_METHOD_EXECUTION */
-
-        default:
-            /* All NAMED_COMPLEX opcodes must be handled above */
-            break;
-        }
-        break;
-
-
-    case AML_CLASS_INTERNAL:
-
-        /* case AML_INT_NAMEPATH_OP: */
-        break;
-
-
-    case AML_CLASS_METHOD_CALL:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-            "RESOLVING-MethodCall: State=%p Op=%p NamedObj=%p\n",
-            WalkState, Op, Node));
-
-        /*
-         * Lookup the method name and save the Node
-         */
-        Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
-                        ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS2,
-                        ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
-                        WalkState, &(NewNode));
-        if (ACPI_SUCCESS (Status))
-        {
-            /*
-             * Make sure that what we found is indeed a method
-             * We didn't search for a method on purpose, to see if the name
-             * would resolve
-             */
-            if (NewNode->Type != ACPI_TYPE_METHOD)
-            {
-                Status = AE_AML_OPERAND_TYPE;
-            }
-
-            /* We could put the returned object (Node) on the object stack for
-             * later, but for now, we will put it in the "op" object that the
-             * parser uses, so we can get it again at the end of this scope
-             */
-            Op->Common.Node = NewNode;
-        }
-        else
-        {
-            ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
-        }
-        break;
-
-
-    default:
-        break;
-    }
-
-Cleanup:
-
-    /* Remove the Node pushed at the very beginning */
-
-    WalkState->Operands[0] = NULL;
-    WalkState->NumOperands = 0;
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswscope.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswscope.c
deleted file mode 100644 (file)
index 023f9ef..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dswscope - Scope stack manipulation
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __DSWSCOPE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdispat.h"
-
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dswscope")
-
-
-/****************************************************************************
- *
- * FUNCTION:    AcpiDsScopeStackClear
- *
- * PARAMETERS:  WalkState       - Current state
- *
- * RETURN:      None
- *
- * DESCRIPTION: Pop (and free) everything on the scope stack except the
- *              root scope object (which remains at the stack top.)
- *
- ***************************************************************************/
-
-void
-AcpiDsScopeStackClear (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_GENERIC_STATE      *ScopeInfo;
-
-    ACPI_FUNCTION_NAME (DsScopeStackClear);
-
-
-    while (WalkState->ScopeInfo)
-    {
-        /* Pop a scope off the stack */
-
-        ScopeInfo = WalkState->ScopeInfo;
-        WalkState->ScopeInfo = ScopeInfo->Scope.Next;
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "Popped object type (%s)\n",
-            AcpiUtGetTypeName (ScopeInfo->Common.Value)));
-        AcpiUtDeleteGenericState (ScopeInfo);
-    }
-}
-
-
-/****************************************************************************
- *
- * FUNCTION:    AcpiDsScopeStackPush
- *
- * PARAMETERS:  Node            - Name to be made current
- *              Type            - Type of frame being pushed
- *              WalkState       - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Push the current scope on the scope stack, and make the
- *              passed Node current.
- *
- ***************************************************************************/
-
-ACPI_STATUS
-AcpiDsScopeStackPush (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_OBJECT_TYPE        Type,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_GENERIC_STATE      *ScopeInfo;
-    ACPI_GENERIC_STATE      *OldScopeInfo;
-
-
-    ACPI_FUNCTION_TRACE (DsScopeStackPush);
-
-
-    if (!Node)
-    {
-        /* Invalid scope   */
-
-        ACPI_ERROR ((AE_INFO, "Null scope parameter"));
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Make sure object type is valid */
-
-    if (!AcpiUtValidObjectType (Type))
-    {
-        ACPI_WARNING ((AE_INFO,
-            "Invalid object type: 0x%X", Type));
-    }
-
-    /* Allocate a new scope object */
-
-    ScopeInfo = AcpiUtCreateGenericState ();
-    if (!ScopeInfo)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Init new scope object */
-
-    ScopeInfo->Common.DescriptorType = ACPI_DESC_TYPE_STATE_WSCOPE;
-    ScopeInfo->Scope.Node = Node;
-    ScopeInfo->Common.Value = (UINT16) Type;
-
-    WalkState->ScopeDepth++;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "[%.2d] Pushed scope ", (UINT32) WalkState->ScopeDepth));
-
-    OldScopeInfo = WalkState->ScopeInfo;
-    if (OldScopeInfo)
-    {
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
-            "[%4.4s] (%s)",
-            AcpiUtGetNodeName (OldScopeInfo->Scope.Node),
-            AcpiUtGetTypeName (OldScopeInfo->Common.Value)));
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
-            "[\\___] (%s)", "ROOT"));
-    }
-
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
-        ", New scope -> [%4.4s] (%s)\n",
-        AcpiUtGetNodeName (ScopeInfo->Scope.Node),
-        AcpiUtGetTypeName (ScopeInfo->Common.Value)));
-
-    /* Push new scope object onto stack */
-
-    AcpiUtPushGenericState (&WalkState->ScopeInfo, ScopeInfo);
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/****************************************************************************
- *
- * FUNCTION:    AcpiDsScopeStackPop
- *
- * PARAMETERS:  WalkState       - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Pop the scope stack once.
- *
- ***************************************************************************/
-
-ACPI_STATUS
-AcpiDsScopeStackPop (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_GENERIC_STATE      *ScopeInfo;
-    ACPI_GENERIC_STATE      *NewScopeInfo;
-
-
-    ACPI_FUNCTION_TRACE (DsScopeStackPop);
-
-
-    /*
-     * Pop scope info object off the stack.
-     */
-    ScopeInfo = AcpiUtPopGenericState (&WalkState->ScopeInfo);
-    if (!ScopeInfo)
-    {
-        return_ACPI_STATUS (AE_STACK_UNDERFLOW);
-    }
-
-    WalkState->ScopeDepth--;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "[%.2d] Popped scope [%4.4s] (%s), New scope -> ",
-        (UINT32) WalkState->ScopeDepth,
-        AcpiUtGetNodeName (ScopeInfo->Scope.Node),
-        AcpiUtGetTypeName (ScopeInfo->Common.Value)));
-
-    NewScopeInfo = WalkState->ScopeInfo;
-    if (NewScopeInfo)
-    {
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
-            "[%4.4s] (%s)\n",
-            AcpiUtGetNodeName (NewScopeInfo->Scope.Node),
-            AcpiUtGetTypeName (NewScopeInfo->Common.Value)));
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
-            "[\\___] (ROOT)\n"));
-    }
-
-    AcpiUtDeleteGenericState (ScopeInfo);
-    return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswstate.c b/l4/pkg/acpica/lib-acpi/src/acpica/dispatcher/dswstate.c
deleted file mode 100644 (file)
index f0962bf..0000000
+++ /dev/null
@@ -1,918 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dswstate - Dispatcher parse tree walk management routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __DSWSTATE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "acdispat.h"
-#include "acnamesp.h"
-
-#define _COMPONENT          ACPI_DISPATCHER
-        ACPI_MODULE_NAME    ("dswstate")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsResultStackPush (
-    ACPI_WALK_STATE         *WalkState);
-
-static ACPI_STATUS
-AcpiDsResultStackPop (
-    ACPI_WALK_STATE         *WalkState);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsResultPop
- *
- * PARAMETERS:  Object              - Where to return the popped object
- *              WalkState           - Current Walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Pop an object off the top of this walk's result stack
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsResultPop (
-    ACPI_OPERAND_OBJECT     **Object,
-    ACPI_WALK_STATE         *WalkState)
-{
-    UINT32                  Index;
-    ACPI_GENERIC_STATE      *State;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_NAME (DsResultPop);
-
-
-    State = WalkState->Results;
-
-    /* Incorrect state of result stack */
-
-    if (State && !WalkState->ResultCount)
-    {
-        ACPI_ERROR ((AE_INFO, "No results on result stack"));
-        return (AE_AML_INTERNAL);
-    }
-
-    if (!State && WalkState->ResultCount)
-    {
-        ACPI_ERROR ((AE_INFO, "No result state for result stack"));
-        return (AE_AML_INTERNAL);
-    }
-
-    /* Empty result stack */
-
-    if (!State)
-    {
-        ACPI_ERROR ((AE_INFO, "Result stack is empty! State=%p", WalkState));
-        return (AE_AML_NO_RETURN_VALUE);
-    }
-
-    /* Return object of the top element and clean that top element result stack */
-
-    WalkState->ResultCount--;
-    Index = (UINT32) WalkState->ResultCount % ACPI_RESULTS_FRAME_OBJ_NUM;
-
-    *Object = State->Results.ObjDesc [Index];
-    if (!*Object)
-    {
-        ACPI_ERROR ((AE_INFO, "No result objects on result stack, State=%p",
-            WalkState));
-        return (AE_AML_NO_RETURN_VALUE);
-    }
-
-    State->Results.ObjDesc [Index] = NULL;
-    if (Index == 0)
-    {
-        Status = AcpiDsResultStackPop (WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "Obj=%p [%s] Index=%X State=%p Num=%X\n", *Object,
-        AcpiUtGetObjectTypeName (*Object),
-        Index, WalkState, WalkState->ResultCount));
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsResultPush
- *
- * PARAMETERS:  Object              - Where to return the popped object
- *              WalkState           - Current Walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Push an object onto the current result stack
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsResultPush (
-    ACPI_OPERAND_OBJECT     *Object,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_GENERIC_STATE      *State;
-    ACPI_STATUS             Status;
-    UINT32                  Index;
-
-
-    ACPI_FUNCTION_NAME (DsResultPush);
-
-
-    if (WalkState->ResultCount > WalkState->ResultSize)
-    {
-        ACPI_ERROR ((AE_INFO, "Result stack is full"));
-        return (AE_AML_INTERNAL);
-    }
-    else if (WalkState->ResultCount == WalkState->ResultSize)
-    {
-        /* Extend the result stack */
-
-        Status = AcpiDsResultStackPush (WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_ERROR ((AE_INFO, "Failed to extend the result stack"));
-            return (Status);
-        }
-    }
-
-    if (!(WalkState->ResultCount < WalkState->ResultSize))
-    {
-        ACPI_ERROR ((AE_INFO, "No free elements in result stack"));
-        return (AE_AML_INTERNAL);
-    }
-
-    State = WalkState->Results;
-    if (!State)
-    {
-        ACPI_ERROR ((AE_INFO, "No result stack frame during push"));
-        return (AE_AML_INTERNAL);
-    }
-
-    if (!Object)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Null Object! Obj=%p State=%p Num=%X",
-            Object, WalkState, WalkState->ResultCount));
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Assign the address of object to the top free element of result stack */
-
-    Index = (UINT32) WalkState->ResultCount % ACPI_RESULTS_FRAME_OBJ_NUM;
-    State->Results.ObjDesc [Index] = Object;
-    WalkState->ResultCount++;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p Num=%X Cur=%X\n",
-        Object, AcpiUtGetObjectTypeName ((ACPI_OPERAND_OBJECT *) Object),
-        WalkState, WalkState->ResultCount, WalkState->CurrentResult));
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsResultStackPush
- *
- * PARAMETERS:  WalkState           - Current Walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Push an object onto the WalkState result stack
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsResultStackPush (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_GENERIC_STATE      *State;
-
-
-    ACPI_FUNCTION_NAME (DsResultStackPush);
-
-
-    /* Check for stack overflow */
-
-    if (((UINT32) WalkState->ResultSize + ACPI_RESULTS_FRAME_OBJ_NUM) >
-        ACPI_RESULTS_OBJ_NUM_MAX)
-    {
-        ACPI_ERROR ((AE_INFO, "Result stack overflow: State=%p Num=%X",
-            WalkState, WalkState->ResultSize));
-        return (AE_STACK_OVERFLOW);
-    }
-
-    State = AcpiUtCreateGenericState ();
-    if (!State)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_RESULT;
-    AcpiUtPushGenericState (&WalkState->Results, State);
-
-    /* Increase the length of the result stack by the length of frame */
-
-    WalkState->ResultSize += ACPI_RESULTS_FRAME_OBJ_NUM;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Results=%p State=%p\n",
-        State, WalkState));
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsResultStackPop
- *
- * PARAMETERS:  WalkState           - Current Walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Pop an object off of the WalkState result stack
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsResultStackPop (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_GENERIC_STATE      *State;
-
-
-    ACPI_FUNCTION_NAME (DsResultStackPop);
-
-
-    /* Check for stack underflow */
-
-    if (WalkState->Results == NULL)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Result stack underflow - State=%p\n",
-            WalkState));
-        return (AE_AML_NO_OPERAND);
-    }
-
-    if (WalkState->ResultSize < ACPI_RESULTS_FRAME_OBJ_NUM)
-    {
-        ACPI_ERROR ((AE_INFO, "Insufficient result stack size"));
-        return (AE_AML_INTERNAL);
-    }
-
-    State = AcpiUtPopGenericState (&WalkState->Results);
-    AcpiUtDeleteGenericState (State);
-
-    /* Decrease the length of result stack by the length of frame */
-
-    WalkState->ResultSize -= ACPI_RESULTS_FRAME_OBJ_NUM;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "Result=%p RemainingResults=%X State=%p\n",
-        State, WalkState->ResultCount, WalkState));
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsObjStackPush
- *
- * PARAMETERS:  Object              - Object to push
- *              WalkState           - Current Walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Push an object onto this walk's object/operand stack
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsObjStackPush (
-    void                    *Object,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_FUNCTION_NAME (DsObjStackPush);
-
-
-    /* Check for stack overflow */
-
-    if (WalkState->NumOperands >= ACPI_OBJ_NUM_OPERANDS)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Object stack overflow! Obj=%p State=%p #Ops=%X",
-            Object, WalkState, WalkState->NumOperands));
-        return (AE_STACK_OVERFLOW);
-    }
-
-    /* Put the object onto the stack */
-
-    WalkState->Operands [WalkState->OperandIndex] = Object;
-    WalkState->NumOperands++;
-
-    /* For the usual order of filling the operand stack */
-
-    WalkState->OperandIndex++;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p #Ops=%X\n",
-        Object, AcpiUtGetObjectTypeName ((ACPI_OPERAND_OBJECT *) Object),
-        WalkState, WalkState->NumOperands));
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsObjStackPop
- *
- * PARAMETERS:  PopCount            - Number of objects/entries to pop
- *              WalkState           - Current Walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Pop this walk's object stack.  Objects on the stack are NOT
- *              deleted by this routine.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsObjStackPop (
-    UINT32                  PopCount,
-    ACPI_WALK_STATE         *WalkState)
-{
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_NAME (DsObjStackPop);
-
-
-    for (i = 0; i < PopCount; i++)
-    {
-        /* Check for stack underflow */
-
-        if (WalkState->NumOperands == 0)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Object stack underflow! Count=%X State=%p #Ops=%X",
-                PopCount, WalkState, WalkState->NumOperands));
-            return (AE_STACK_UNDERFLOW);
-        }
-
-        /* Just set the stack entry to null */
-
-        WalkState->NumOperands--;
-        WalkState->Operands [WalkState->NumOperands] = NULL;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Count=%X State=%p #Ops=%X\n",
-        PopCount, WalkState, WalkState->NumOperands));
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsObjStackPopAndDelete
- *
- * PARAMETERS:  PopCount            - Number of objects/entries to pop
- *              WalkState           - Current Walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Pop this walk's object stack and delete each object that is
- *              popped off.
- *
- ******************************************************************************/
-
-void
-AcpiDsObjStackPopAndDelete (
-    UINT32                  PopCount,
-    ACPI_WALK_STATE         *WalkState)
-{
-    INT32                   i;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_NAME (DsObjStackPopAndDelete);
-
-
-    if (PopCount == 0)
-    {
-        return;
-    }
-
-    for (i = (INT32) PopCount - 1; i >= 0; i--)
-    {
-        if (WalkState->NumOperands == 0)
-        {
-            return;
-        }
-
-        /* Pop the stack and delete an object if present in this stack entry */
-
-        WalkState->NumOperands--;
-        ObjDesc = WalkState->Operands [i];
-        if (ObjDesc)
-        {
-            AcpiUtRemoveReference (WalkState->Operands [i]);
-            WalkState->Operands [i] = NULL;
-        }
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Count=%X State=%p #Ops=%X\n",
-        PopCount, WalkState, WalkState->NumOperands));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsGetCurrentWalkState
- *
- * PARAMETERS:  Thread          - Get current active state for this Thread
- *
- * RETURN:      Pointer to the current walk state
- *
- * DESCRIPTION: Get the walk state that is at the head of the list (the "current"
- *              walk state.)
- *
- ******************************************************************************/
-
-ACPI_WALK_STATE *
-AcpiDsGetCurrentWalkState (
-    ACPI_THREAD_STATE       *Thread)
-{
-    ACPI_FUNCTION_NAME (DsGetCurrentWalkState);
-
-
-    if (!Thread)
-    {
-        return (NULL);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Current WalkState %p\n",
-        Thread->WalkStateList));
-
-    return (Thread->WalkStateList);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsPushWalkState
- *
- * PARAMETERS:  WalkState       - State to push
- *              Thread          - Thread state object
- *
- * RETURN:      None
- *
- * DESCRIPTION: Place the Thread state at the head of the state list
- *
- ******************************************************************************/
-
-void
-AcpiDsPushWalkState (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_THREAD_STATE       *Thread)
-{
-    ACPI_FUNCTION_TRACE (DsPushWalkState);
-
-
-    WalkState->Next = Thread->WalkStateList;
-    Thread->WalkStateList = WalkState;
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsPopWalkState
- *
- * PARAMETERS:  Thread      - Current thread state
- *
- * RETURN:      A WalkState object popped from the thread's stack
- *
- * DESCRIPTION: Remove and return the walkstate object that is at the head of
- *              the walk stack for the given walk list.  NULL indicates that
- *              the list is empty.
- *
- ******************************************************************************/
-
-ACPI_WALK_STATE *
-AcpiDsPopWalkState (
-    ACPI_THREAD_STATE       *Thread)
-{
-    ACPI_WALK_STATE         *WalkState;
-
-
-    ACPI_FUNCTION_TRACE (DsPopWalkState);
-
-
-    WalkState = Thread->WalkStateList;
-
-    if (WalkState)
-    {
-        /* Next walk state becomes the current walk state */
-
-        Thread->WalkStateList = WalkState->Next;
-
-        /*
-         * Don't clear the NEXT field, this serves as an indicator
-         * that there is a parent WALK STATE
-         * Do Not: WalkState->Next = NULL;
-         */
-    }
-
-    return_PTR (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsCreateWalkState
- *
- * PARAMETERS:  OwnerId         - ID for object creation
- *              Origin          - Starting point for this walk
- *              MethodDesc      - Method object
- *              Thread          - Current thread state
- *
- * RETURN:      Pointer to the new walk state.
- *
- * DESCRIPTION: Allocate and initialize a new walk state.  The current walk
- *              state is set to this new state.
- *
- ******************************************************************************/
-
-ACPI_WALK_STATE *
-AcpiDsCreateWalkState (
-    ACPI_OWNER_ID           OwnerId,
-    ACPI_PARSE_OBJECT       *Origin,
-    ACPI_OPERAND_OBJECT     *MethodDesc,
-    ACPI_THREAD_STATE       *Thread)
-{
-    ACPI_WALK_STATE         *WalkState;
-
-
-    ACPI_FUNCTION_TRACE (DsCreateWalkState);
-
-
-    WalkState = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_WALK_STATE));
-    if (!WalkState)
-    {
-        return_PTR (NULL);
-    }
-
-    WalkState->DescriptorType = ACPI_DESC_TYPE_WALK;
-    WalkState->MethodDesc = MethodDesc;
-    WalkState->OwnerId = OwnerId;
-    WalkState->Origin = Origin;
-    WalkState->Thread = Thread;
-
-    WalkState->ParserState.StartOp = Origin;
-
-    /* Init the method args/local */
-
-#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
-    AcpiDsMethodDataInit (WalkState);
-#endif
-
-    /* Put the new state at the head of the walk list */
-
-    if (Thread)
-    {
-        AcpiDsPushWalkState (WalkState, Thread);
-    }
-
-    return_PTR (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsInitAmlWalk
- *
- * PARAMETERS:  WalkState       - New state to be initialized
- *              Op              - Current parse op
- *              MethodNode      - Control method NS node, if any
- *              AmlStart        - Start of AML
- *              AmlLength       - Length of AML
- *              Info            - Method info block (params, etc.)
- *              PassNumber      - 1, 2, or 3
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initialize a walk state for a pass 1 or 2 parse tree walk
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitAmlWalk (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_NAMESPACE_NODE     *MethodNode,
-    UINT8                   *AmlStart,
-    UINT32                  AmlLength,
-    ACPI_EVALUATE_INFO      *Info,
-    UINT8                   PassNumber)
-{
-    ACPI_STATUS             Status;
-    ACPI_PARSE_STATE        *ParserState = &WalkState->ParserState;
-    ACPI_PARSE_OBJECT       *ExtraOp;
-
-
-    ACPI_FUNCTION_TRACE (DsInitAmlWalk);
-
-
-    WalkState->ParserState.Aml =
-    WalkState->ParserState.AmlStart = AmlStart;
-    WalkState->ParserState.AmlEnd =
-    WalkState->ParserState.PkgEnd = AmlStart + AmlLength;
-
-    /* The NextOp of the NextWalk will be the beginning of the method */
-
-    WalkState->NextOp = NULL;
-    WalkState->PassNumber = PassNumber;
-
-    if (Info)
-    {
-        WalkState->Params = Info->Parameters;
-        WalkState->CallerReturnDesc = &Info->ReturnObject;
-    }
-
-    Status = AcpiPsInitScope (&WalkState->ParserState, Op);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (MethodNode)
-    {
-        WalkState->ParserState.StartNode = MethodNode;
-        WalkState->WalkType = ACPI_WALK_METHOD;
-        WalkState->MethodNode = MethodNode;
-        WalkState->MethodDesc = AcpiNsGetAttachedObject (MethodNode);
-
-        /* Push start scope on scope stack and make it current  */
-
-        Status = AcpiDsScopeStackPush (MethodNode, ACPI_TYPE_METHOD, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Init the method arguments */
-
-        Status = AcpiDsMethodDataInitArgs (WalkState->Params,
-                    ACPI_METHOD_NUM_ARGS, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-    else
-    {
-        /*
-         * Setup the current scope.
-         * Find a Named Op that has a namespace node associated with it.
-         * search upwards from this Op.  Current scope is the first
-         * Op with a namespace node.
-         */
-        ExtraOp = ParserState->StartOp;
-        while (ExtraOp && !ExtraOp->Common.Node)
-        {
-            ExtraOp = ExtraOp->Common.Parent;
-        }
-
-        if (!ExtraOp)
-        {
-            ParserState->StartNode = NULL;
-        }
-        else
-        {
-            ParserState->StartNode = ExtraOp->Common.Node;
-        }
-
-        if (ParserState->StartNode)
-        {
-            /* Push start scope on scope stack and make it current  */
-
-            Status = AcpiDsScopeStackPush (ParserState->StartNode,
-                            ParserState->StartNode->Type, WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-    }
-
-    Status = AcpiDsInitCallbacks (WalkState, PassNumber);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDsDeleteWalkState
- *
- * PARAMETERS:  WalkState       - State to delete
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Delete a walk state including all internal data structures
- *
- ******************************************************************************/
-
-void
-AcpiDsDeleteWalkState (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_GENERIC_STATE      *State;
-
-
-    ACPI_FUNCTION_TRACE_PTR (DsDeleteWalkState, WalkState);
-
-
-    if (!WalkState)
-    {
-        return;
-    }
-
-    if (WalkState->DescriptorType != ACPI_DESC_TYPE_WALK)
-    {
-        ACPI_ERROR ((AE_INFO, "%p is not a valid walk state",
-            WalkState));
-        return;
-    }
-
-    /* There should not be any open scopes */
-
-    if (WalkState->ParserState.Scope)
-    {
-        ACPI_ERROR ((AE_INFO, "%p walk still has a scope list",
-            WalkState));
-        AcpiPsCleanupScope (&WalkState->ParserState);
-    }
-
-    /* Always must free any linked control states */
-
-    while (WalkState->ControlState)
-    {
-        State = WalkState->ControlState;
-        WalkState->ControlState = State->Common.Next;
-
-        AcpiUtDeleteGenericState (State);
-    }
-
-    /* Always must free any linked parse states */
-
-    while (WalkState->ScopeInfo)
-    {
-        State = WalkState->ScopeInfo;
-        WalkState->ScopeInfo = State->Common.Next;
-
-        AcpiUtDeleteGenericState (State);
-    }
-
-    /* Always must free any stacked result states */
-
-    while (WalkState->Results)
-    {
-        State = WalkState->Results;
-        WalkState->Results = State->Common.Next;
-
-        AcpiUtDeleteGenericState (State);
-    }
-
-    ACPI_FREE (WalkState);
-    return_VOID;
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evevent.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evevent.c
deleted file mode 100644 (file)
index 16f4027..0000000
+++ /dev/null
@@ -1,430 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evevent - Fixed Event handling and dispatch
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evevent")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiEvFixedEventInitialize (
-    void);
-
-static UINT32
-AcpiEvFixedEventDispatch (
-    UINT32                  Event);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInitializeEvents
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initialize global data structures for ACPI events (Fixed, GPE)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitializeEvents (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvInitializeEvents);
-
-
-    /*
-     * Initialize the Fixed and General Purpose Events. This is done prior to
-     * enabling SCIs to prevent interrupts from occurring before the handlers
-     * are installed.
-     */
-    Status = AcpiEvFixedEventInitialize ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Unable to initialize fixed events"));
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiEvGpeInitialize ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Unable to initialize general purpose events"));
-        return_ACPI_STATUS (Status);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInstallFadtGpes
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Completes initialization of the FADT-defined GPE blocks
- *              (0 and 1). This causes the _PRW methods to be run, so the HW
- *              must be fully initialized at this point, including global lock
- *              support.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInstallFadtGpes (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvInstallFadtGpes);
-
-
-    /* Namespace must be locked */
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* FADT GPE Block 0 */
-
-    (void) AcpiEvInitializeGpeBlock (
-                AcpiGbl_FadtGpeDevice, AcpiGbl_GpeFadtBlocks[0]);
-
-    /* FADT GPE Block 1 */
-
-    (void) AcpiEvInitializeGpeBlock (
-                AcpiGbl_FadtGpeDevice, AcpiGbl_GpeFadtBlocks[1]);
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInstallXruptHandlers
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install interrupt handlers for the SCI and Global Lock
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInstallXruptHandlers (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvInstallXruptHandlers);
-
-
-    /* Install the SCI handler */
-
-    Status = AcpiEvInstallSciHandler ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Unable to install System Control Interrupt handler"));
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Install the handler for the Global Lock */
-
-    Status = AcpiEvInitGlobalLockHandler ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Unable to initialize Global Lock handler"));
-        return_ACPI_STATUS (Status);
-    }
-
-    AcpiGbl_EventsInitialized = TRUE;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvFixedEventInitialize
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install the fixed event handlers and disable all fixed events.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvFixedEventInitialize (
-    void)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status;
-
-
-    /*
-     * Initialize the structure that keeps track of fixed event handlers and
-     * enable the fixed events.
-     */
-    for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)
-    {
-        AcpiGbl_FixedEventHandlers[i].Handler = NULL;
-        AcpiGbl_FixedEventHandlers[i].Context = NULL;
-
-        /* Disable the fixed event */
-
-        if (AcpiGbl_FixedEventInfo[i].EnableRegisterId != 0xFF)
-        {
-            Status = AcpiWriteBitRegister (
-                        AcpiGbl_FixedEventInfo[i].EnableRegisterId,
-                        ACPI_DISABLE_EVENT);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-        }
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvFixedEventDetect
- *
- * PARAMETERS:  None
- *
- * RETURN:      INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
- *
- * DESCRIPTION: Checks the PM status register for active fixed events
- *
- ******************************************************************************/
-
-UINT32
-AcpiEvFixedEventDetect (
-    void)
-{
-    UINT32                  IntStatus = ACPI_INTERRUPT_NOT_HANDLED;
-    UINT32                  FixedStatus;
-    UINT32                  FixedEnable;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_NAME (EvFixedEventDetect);
-
-
-    /*
-     * Read the fixed feature status and enable registers, as all the cases
-     * depend on their values. Ignore errors here.
-     */
-    (void) AcpiHwRegisterRead (ACPI_REGISTER_PM1_STATUS, &FixedStatus);
-    (void) AcpiHwRegisterRead (ACPI_REGISTER_PM1_ENABLE, &FixedEnable);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS,
-        "Fixed Event Block: Enable %08X Status %08X\n",
-        FixedEnable, FixedStatus));
-
-    /*
-     * Check for all possible Fixed Events and dispatch those that are active
-     */
-    for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)
-    {
-        /* Both the status and enable bits must be on for this event */
-
-        if ((FixedStatus & AcpiGbl_FixedEventInfo[i].StatusBitMask) &&
-            (FixedEnable & AcpiGbl_FixedEventInfo[i].EnableBitMask))
-        {
-            /* Found an active (signalled) event */
-
-            AcpiFixedEventCount[i]++;
-            IntStatus |= AcpiEvFixedEventDispatch (i);
-        }
-    }
-
-    return (IntStatus);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvFixedEventDispatch
- *
- * PARAMETERS:  Event               - Event type
- *
- * RETURN:      INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
- *
- * DESCRIPTION: Clears the status bit for the requested event, calls the
- *              handler that previously registered for the event.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiEvFixedEventDispatch (
-    UINT32                  Event)
-{
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Clear the status bit */
-
-    (void) AcpiWriteBitRegister (
-            AcpiGbl_FixedEventInfo[Event].StatusRegisterId,
-            ACPI_CLEAR_STATUS);
-
-    /*
-     * Make sure we've got a handler. If not, report an error. The event is
-     * disabled to prevent further interrupts.
-     */
-    if (NULL == AcpiGbl_FixedEventHandlers[Event].Handler)
-    {
-        (void) AcpiWriteBitRegister (
-                AcpiGbl_FixedEventInfo[Event].EnableRegisterId,
-                ACPI_DISABLE_EVENT);
-
-        ACPI_ERROR ((AE_INFO,
-            "No installed handler for fixed event [%08X]",
-            Event));
-
-        return (ACPI_INTERRUPT_NOT_HANDLED);
-    }
-
-    /* Invoke the Fixed Event handler */
-
-    return ((AcpiGbl_FixedEventHandlers[Event].Handler)(
-                AcpiGbl_FixedEventHandlers[Event].Context));
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evgpe.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evgpe.c
deleted file mode 100644 (file)
index 17738b3..0000000
+++ /dev/null
@@ -1,897 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evgpe - General Purpose Event handling and dispatch
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-#include "acnamesp.h"
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evgpe")
-
-/* Local prototypes */
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvAsynchExecuteGpeMethod (
-    void                    *Context);
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvAsynchEnableGpe (
-    void                    *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvSetGpeType
- *
- * PARAMETERS:  GpeEventInfo            - GPE to set
- *              Type                    - New type
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Sets the new type for the GPE (wake, run, or wake/run)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvSetGpeType (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo,
-    UINT8                   Type)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvSetGpeType);
-
-
-    /* Validate type and update register enable masks */
-
-    switch (Type)
-    {
-    case ACPI_GPE_TYPE_WAKE:
-    case ACPI_GPE_TYPE_RUNTIME:
-    case ACPI_GPE_TYPE_WAKE_RUN:
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Disable the GPE if currently enabled */
-
-    Status = AcpiEvDisableGpe (GpeEventInfo);
-
-    /* Clear the type bits and insert the new Type */
-
-    GpeEventInfo->Flags &= ~ACPI_GPE_TYPE_MASK;
-    GpeEventInfo->Flags |= Type;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvUpdateGpeEnableMasks
- *
- * PARAMETERS:  GpeEventInfo            - GPE to update
- *              Type                    - What to do: ACPI_GPE_DISABLE or
- *                                        ACPI_GPE_ENABLE
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Updates GPE register enable masks based on the GPE type
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvUpdateGpeEnableMasks (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo,
-    UINT8                   Type)
-{
-    ACPI_GPE_REGISTER_INFO  *GpeRegisterInfo;
-    UINT8                   RegisterBit;
-
-
-    ACPI_FUNCTION_TRACE (EvUpdateGpeEnableMasks);
-
-
-    GpeRegisterInfo = GpeEventInfo->RegisterInfo;
-    if (!GpeRegisterInfo)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    RegisterBit = (UINT8)
-        (1 << (GpeEventInfo->GpeNumber - GpeRegisterInfo->BaseGpeNumber));
-
-    /* 1) Disable case. Simply clear all enable bits */
-
-    if (Type == ACPI_GPE_DISABLE)
-    {
-        ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForWake, RegisterBit);
-        ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForRun, RegisterBit);
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* 2) Enable case. Set/Clear the appropriate enable bits */
-
-    switch (GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK)
-    {
-    case ACPI_GPE_TYPE_WAKE:
-        ACPI_SET_BIT   (GpeRegisterInfo->EnableForWake, RegisterBit);
-        ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForRun, RegisterBit);
-        break;
-
-    case ACPI_GPE_TYPE_RUNTIME:
-        ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForWake, RegisterBit);
-        ACPI_SET_BIT   (GpeRegisterInfo->EnableForRun, RegisterBit);
-        break;
-
-    case ACPI_GPE_TYPE_WAKE_RUN:
-        ACPI_SET_BIT   (GpeRegisterInfo->EnableForWake, RegisterBit);
-        ACPI_SET_BIT   (GpeRegisterInfo->EnableForRun, RegisterBit);
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvEnableGpe
- *
- * PARAMETERS:  GpeEventInfo            - GPE to enable
- *              WriteToHardware         - Enable now, or just mark data structs
- *                                        (WAKE GPEs should be deferred)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enable a GPE based on the GPE type
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvEnableGpe (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo,
-    BOOLEAN                 WriteToHardware)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvEnableGpe);
-
-
-    /* Make sure HW enable masks are updated */
-
-    Status = AcpiEvUpdateGpeEnableMasks (GpeEventInfo, ACPI_GPE_ENABLE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Mark wake-enabled or HW enable, or both */
-
-    switch (GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK)
-    {
-    case ACPI_GPE_TYPE_WAKE:
-
-        ACPI_SET_BIT (GpeEventInfo->Flags, ACPI_GPE_WAKE_ENABLED);
-        break;
-
-    case ACPI_GPE_TYPE_WAKE_RUN:
-
-        ACPI_SET_BIT (GpeEventInfo->Flags, ACPI_GPE_WAKE_ENABLED);
-
-        /*lint -fallthrough */
-
-    case ACPI_GPE_TYPE_RUNTIME:
-
-        ACPI_SET_BIT (GpeEventInfo->Flags, ACPI_GPE_RUN_ENABLED);
-
-        if (WriteToHardware)
-        {
-            /* Clear the GPE (of stale events), then enable it */
-
-            Status = AcpiHwClearGpe (GpeEventInfo);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-
-            /* Enable the requested runtime GPE */
-
-            Status = AcpiHwWriteGpeEnableReg (GpeEventInfo);
-        }
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvDisableGpe
- *
- * PARAMETERS:  GpeEventInfo            - GPE to disable
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Disable a GPE based on the GPE type
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvDisableGpe (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvDisableGpe);
-
-
-    /*
-     * Note: Always disable the GPE, even if we think that that it is already
-     * disabled. It is possible that the AML or some other code has enabled
-     * the GPE behind our back.
-     */
-
-    /* Make sure HW enable masks are updated */
-
-    Status = AcpiEvUpdateGpeEnableMasks (GpeEventInfo, ACPI_GPE_DISABLE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Clear the appropriate enabled flags for this GPE */
-
-    switch (GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK)
-    {
-    case ACPI_GPE_TYPE_WAKE:
-
-        ACPI_CLEAR_BIT (GpeEventInfo->Flags, ACPI_GPE_WAKE_ENABLED);
-        break;
-
-    case ACPI_GPE_TYPE_WAKE_RUN:
-
-        ACPI_CLEAR_BIT (GpeEventInfo->Flags, ACPI_GPE_WAKE_ENABLED);
-
-        /*lint -fallthrough */
-
-    case ACPI_GPE_TYPE_RUNTIME:
-
-        /* Disable the requested runtime GPE */
-
-        ACPI_CLEAR_BIT (GpeEventInfo->Flags, ACPI_GPE_RUN_ENABLED);
-        break;
-
-    default:
-        break;
-    }
-
-    /*
-     * Always H/W disable this GPE, even if we don't know the GPE type.
-     * Simply clear the enable bit for this particular GPE, but do not
-     * write out the current GPE enable mask since this may inadvertently
-     * enable GPEs too early. An example is a rogue GPE that has arrived
-     * during ACPICA initialization - possibly because AML or other code
-     * has enabled the GPE.
-     */
-    Status = AcpiHwLowDisableGpe (GpeEventInfo);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvGetGpeEventInfo
- *
- * PARAMETERS:  GpeDevice           - Device node. NULL for GPE0/GPE1
- *              GpeNumber           - Raw GPE number
- *
- * RETURN:      A GPE EventInfo struct. NULL if not a valid GPE
- *
- * DESCRIPTION: Returns the EventInfo struct associated with this GPE.
- *              Validates the GpeBlock and the GpeNumber
- *
- *              Should be called only when the GPE lists are semaphore locked
- *              and not subject to change.
- *
- ******************************************************************************/
-
-ACPI_GPE_EVENT_INFO *
-AcpiEvGetGpeEventInfo (
-    ACPI_HANDLE             GpeDevice,
-    UINT32                  GpeNumber)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_GPE_BLOCK_INFO     *GpeBlock;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* A NULL GpeBlock means use the FADT-defined GPE block(s) */
-
-    if (!GpeDevice)
-    {
-        /* Examine GPE Block 0 and 1 (These blocks are permanent) */
-
-        for (i = 0; i < ACPI_MAX_GPE_BLOCKS; i++)
-        {
-            GpeBlock = AcpiGbl_GpeFadtBlocks[i];
-            if (GpeBlock)
-            {
-                if ((GpeNumber >= GpeBlock->BlockBaseNumber) &&
-                    (GpeNumber < GpeBlock->BlockBaseNumber +
-                        (GpeBlock->RegisterCount * 8)))
-                {
-                    return (&GpeBlock->EventInfo[GpeNumber -
-                        GpeBlock->BlockBaseNumber]);
-                }
-            }
-        }
-
-        /* The GpeNumber was not in the range of either FADT GPE block */
-
-        return (NULL);
-    }
-
-    /* A Non-NULL GpeDevice means this is a GPE Block Device */
-
-    ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) GpeDevice);
-    if (!ObjDesc ||
-        !ObjDesc->Device.GpeBlock)
-    {
-        return (NULL);
-    }
-
-    GpeBlock = ObjDesc->Device.GpeBlock;
-
-    if ((GpeNumber >= GpeBlock->BlockBaseNumber) &&
-        (GpeNumber < GpeBlock->BlockBaseNumber + (GpeBlock->RegisterCount * 8)))
-    {
-        return (&GpeBlock->EventInfo[GpeNumber - GpeBlock->BlockBaseNumber]);
-    }
-
-    return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvGpeDetect
- *
- * PARAMETERS:  GpeXruptList        - Interrupt block for this interrupt.
- *                                    Can have multiple GPE blocks attached.
- *
- * RETURN:      INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
- *
- * DESCRIPTION: Detect if any GP events have occurred. This function is
- *              executed at interrupt level.
- *
- ******************************************************************************/
-
-UINT32
-AcpiEvGpeDetect (
-    ACPI_GPE_XRUPT_INFO     *GpeXruptList)
-{
-    ACPI_STATUS             Status;
-    ACPI_GPE_BLOCK_INFO     *GpeBlock;
-    ACPI_GPE_REGISTER_INFO  *GpeRegisterInfo;
-    UINT32                  IntStatus = ACPI_INTERRUPT_NOT_HANDLED;
-    UINT8                   EnabledStatusByte;
-    UINT32                  StatusReg;
-    UINT32                  EnableReg;
-    ACPI_CPU_FLAGS          Flags;
-    UINT32                  i;
-    UINT32                  j;
-
-
-    ACPI_FUNCTION_NAME (EvGpeDetect);
-
-    /* Check for the case where there are no GPEs */
-
-    if (!GpeXruptList)
-    {
-        return (IntStatus);
-    }
-
-    /*
-     * We need to obtain the GPE lock for both the data structs and registers
-     * Note: Not necessary to obtain the hardware lock, since the GPE
-     * registers are owned by the GpeLock.
-     */
-    Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-
-    /* Examine all GPE blocks attached to this interrupt level */
-
-    GpeBlock = GpeXruptList->GpeBlockListHead;
-    while (GpeBlock)
-    {
-        /*
-         * Read all of the 8-bit GPE status and enable registers in this GPE
-         * block, saving all of them. Find all currently active GP events.
-         */
-        for (i = 0; i < GpeBlock->RegisterCount; i++)
-        {
-            /* Get the next status/enable pair */
-
-            GpeRegisterInfo = &GpeBlock->RegisterInfo[i];
-
-            /* Read the Status Register */
-
-            Status = AcpiHwRead (&StatusReg, &GpeRegisterInfo->StatusAddress);
-            if (ACPI_FAILURE (Status))
-            {
-                goto UnlockAndExit;
-            }
-
-            /* Read the Enable Register */
-
-            Status = AcpiHwRead (&EnableReg, &GpeRegisterInfo->EnableAddress);
-            if (ACPI_FAILURE (Status))
-            {
-                goto UnlockAndExit;
-            }
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS,
-                "Read GPE Register at GPE%X: Status=%02X, Enable=%02X\n",
-                GpeRegisterInfo->BaseGpeNumber, StatusReg, EnableReg));
-
-            /* Check if there is anything active at all in this register */
-
-            EnabledStatusByte = (UINT8) (StatusReg & EnableReg);
-            if (!EnabledStatusByte)
-            {
-                /* No active GPEs in this register, move on */
-
-                continue;
-            }
-
-            /* Now look at the individual GPEs in this byte register */
-
-            for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++)
-            {
-                /* Examine one GPE bit */
-
-                if (EnabledStatusByte & (1 << j))
-                {
-                    /*
-                     * Found an active GPE. Dispatch the event to a handler
-                     * or method.
-                     */
-                    IntStatus |= AcpiEvGpeDispatch (
-                        &GpeBlock->EventInfo[((ACPI_SIZE) i *
-                            ACPI_GPE_REGISTER_WIDTH) + j],
-                        j + GpeRegisterInfo->BaseGpeNumber);
-                }
-            }
-        }
-
-        GpeBlock = GpeBlock->Next;
-    }
-
-UnlockAndExit:
-
-    AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-    return (IntStatus);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvAsynchExecuteGpeMethod
- *
- * PARAMETERS:  Context (GpeEventInfo) - Info for this GPE
- *
- * RETURN:      None
- *
- * DESCRIPTION: Perform the actual execution of a GPE control method. This
- *              function is called from an invocation of AcpiOsExecute and
- *              therefore does NOT execute at interrupt level - so that
- *              the control method itself is not executed in the context of
- *              an interrupt handler.
- *
- ******************************************************************************/
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvAsynchExecuteGpeMethod (
-    void                    *Context)
-{
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo = Context;
-    ACPI_STATUS             Status;
-    ACPI_GPE_EVENT_INFO     *LocalGpeEventInfo;
-    ACPI_EVALUATE_INFO      *Info;
-
-
-    ACPI_FUNCTION_TRACE (EvAsynchExecuteGpeMethod);
-
-
-    /* Allocate a local GPE block */
-
-    LocalGpeEventInfo = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_GPE_EVENT_INFO));
-    if (!LocalGpeEventInfo)
-    {
-        ACPI_EXCEPTION ((AE_INFO, AE_NO_MEMORY,
-            "while handling a GPE"));
-        return_VOID;
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_VOID;
-    }
-
-    /* Must revalidate the GpeNumber/GpeBlock */
-
-    if (!AcpiEvValidGpeEvent (GpeEventInfo))
-    {
-        Status = AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-        return_VOID;
-    }
-
-    /* Set the GPE flags for return to enabled state */
-
-    (void) AcpiEvEnableGpe (GpeEventInfo, FALSE);
-
-    /*
-     * Take a snapshot of the GPE info for this level - we copy the info to
-     * prevent a race condition with RemoveHandler/RemoveBlock.
-     */
-    ACPI_MEMCPY (LocalGpeEventInfo, GpeEventInfo,
-        sizeof (ACPI_GPE_EVENT_INFO));
-
-    Status = AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_VOID;
-    }
-
-    /*
-     * Must check for control method type dispatch one more time to avoid a
-     * race with EvGpeInstallHandler
-     */
-    if ((LocalGpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) ==
-            ACPI_GPE_DISPATCH_METHOD)
-    {
-        /* Allocate the evaluation information block */
-
-        Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
-        if (!Info)
-        {
-            Status = AE_NO_MEMORY;
-        }
-        else
-        {
-            /*
-             * Invoke the GPE Method (_Lxx, _Exx) i.e., evaluate the _Lxx/_Exx
-             * control method that corresponds to this GPE
-             */
-            Info->PrefixNode = LocalGpeEventInfo->Dispatch.MethodNode;
-            Info->Flags = ACPI_IGNORE_RETURN_VALUE;
-
-            Status = AcpiNsEvaluate (Info);
-            ACPI_FREE (Info);
-        }
-
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "while evaluating GPE method [%4.4s]",
-                AcpiUtGetNodeName (LocalGpeEventInfo->Dispatch.MethodNode)));
-        }
-    }
-
-    /* Defer enabling of GPE until all notify handlers are done */
-
-    Status = AcpiOsExecute (OSL_NOTIFY_HANDLER,
-                AcpiEvAsynchEnableGpe, LocalGpeEventInfo);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_FREE (LocalGpeEventInfo);
-    }
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvAsynchEnableGpe
- *
- * PARAMETERS:  Context (GpeEventInfo) - Info for this GPE
- *
- * RETURN:      None
- *
- * DESCRIPTION: Asynchronous clear/enable for GPE. This allows the GPE to
- *              complete (i.e., finish execution of Notify)
- *
- ******************************************************************************/
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvAsynchEnableGpe (
-    void                    *Context)
-{
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo = Context;
-    ACPI_STATUS             Status;
-
-
-    if ((GpeEventInfo->Flags & ACPI_GPE_XRUPT_TYPE_MASK) ==
-            ACPI_GPE_LEVEL_TRIGGERED)
-    {
-        /*
-         * GPE is level-triggered, we clear the GPE status bit after handling
-         * the event.
-         */
-        Status = AcpiHwClearGpe (GpeEventInfo);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Exit;
-        }
-    }
-
-    /* Enable this GPE */
-
-    (void) AcpiHwWriteGpeEnableReg (GpeEventInfo);
-
-Exit:
-    ACPI_FREE (GpeEventInfo);
-    return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvGpeDispatch
- *
- * PARAMETERS:  GpeEventInfo    - Info for this GPE
- *              GpeNumber       - Number relative to the parent GPE block
- *
- * RETURN:      INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
- *
- * DESCRIPTION: Dispatch a General Purpose Event to either a function (e.g. EC)
- *              or method (e.g. _Lxx/_Exx) handler.
- *
- *              This function executes at interrupt level.
- *
- ******************************************************************************/
-
-UINT32
-AcpiEvGpeDispatch (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo,
-    UINT32                  GpeNumber)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvGpeDispatch);
-
-
-    AcpiGpeCount++;
-
-    /*
-     * If edge-triggered, clear the GPE status bit now. Note that
-     * level-triggered events are cleared after the GPE is serviced.
-     */
-    if ((GpeEventInfo->Flags & ACPI_GPE_XRUPT_TYPE_MASK) ==
-            ACPI_GPE_EDGE_TRIGGERED)
-    {
-        Status = AcpiHwClearGpe (GpeEventInfo);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "Unable to clear GPE[%2X]", GpeNumber));
-            return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED);
-        }
-    }
-
-    /*
-     * Dispatch the GPE to either an installed handler, or the control method
-     * associated with this GPE (_Lxx or _Exx). If a handler exists, we invoke
-     * it and do not attempt to run the method. If there is neither a handler
-     * nor a method, we disable this GPE to prevent further such pointless
-     * events from firing.
-     */
-    switch (GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK)
-    {
-    case ACPI_GPE_DISPATCH_HANDLER:
-
-        /*
-         * Invoke the installed handler (at interrupt level)
-         * Ignore return status for now.
-         * TBD: leave GPE disabled on error?
-         */
-        (void) GpeEventInfo->Dispatch.Handler->Address (
-                        GpeEventInfo->Dispatch.Handler->Context);
-
-        /* It is now safe to clear level-triggered events. */
-
-        if ((GpeEventInfo->Flags & ACPI_GPE_XRUPT_TYPE_MASK) ==
-                ACPI_GPE_LEVEL_TRIGGERED)
-        {
-            Status = AcpiHwClearGpe (GpeEventInfo);
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_EXCEPTION ((AE_INFO, Status,
-                    "Unable to clear GPE[%2X]", GpeNumber));
-                return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED);
-            }
-        }
-        break;
-
-    case ACPI_GPE_DISPATCH_METHOD:
-
-        /*
-         * Disable the GPE, so it doesn't keep firing before the method has a
-         * chance to run (it runs asynchronously with interrupts enabled).
-         */
-        Status = AcpiEvDisableGpe (GpeEventInfo);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "Unable to disable GPE[%2X]", GpeNumber));
-            return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED);
-        }
-
-        /*
-         * Execute the method associated with the GPE
-         * NOTE: Level-triggered GPEs are cleared after the method completes.
-         */
-        Status = AcpiOsExecute (OSL_GPE_HANDLER,
-                    AcpiEvAsynchExecuteGpeMethod, GpeEventInfo);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "Unable to queue handler for GPE[%2X] - event disabled",
-                GpeNumber));
-        }
-        break;
-
-    default:
-
-        /* No handler or method to run! */
-
-        ACPI_ERROR ((AE_INFO,
-            "No handler or method for GPE[%2X], disabling event",
-            GpeNumber));
-
-        /*
-         * Disable the GPE. The GPE will remain disabled until the ACPICA
-         * Core Subsystem is restarted, or a handler is installed.
-         */
-        Status = AcpiEvDisableGpe (GpeEventInfo);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "Unable to disable GPE[%2X]", GpeNumber));
-            return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED);
-        }
-        break;
-    }
-
-    return_UINT32 (ACPI_INTERRUPT_HANDLED);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evgpeblk.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evgpeblk.c
deleted file mode 100644 (file)
index c86f80a..0000000
+++ /dev/null
@@ -1,1402 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evgpeblk - GPE block creation and initialization.
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-#include "acnamesp.h"
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evgpeblk")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiEvSaveMethodInfo (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *ObjDesc,
-    void                    **ReturnValue);
-
-static ACPI_STATUS
-AcpiEvMatchPrwAndGpe (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Info,
-    void                    **ReturnValue);
-
-static ACPI_GPE_XRUPT_INFO *
-AcpiEvGetGpeXruptBlock (
-    UINT32                  InterruptNumber);
-
-static ACPI_STATUS
-AcpiEvDeleteGpeXrupt (
-    ACPI_GPE_XRUPT_INFO     *GpeXrupt);
-
-static ACPI_STATUS
-AcpiEvInstallGpeBlock (
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    UINT32                  InterruptNumber);
-
-static ACPI_STATUS
-AcpiEvCreateGpeInfoBlocks (
-    ACPI_GPE_BLOCK_INFO     *GpeBlock);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvValidGpeEvent
- *
- * PARAMETERS:  GpeEventInfo                - Info for this GPE
- *
- * RETURN:      TRUE if the GpeEvent is valid
- *
- * DESCRIPTION: Validate a GPE event. DO NOT CALL FROM INTERRUPT LEVEL.
- *              Should be called only when the GPE lists are semaphore locked
- *              and not subject to change.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiEvValidGpeEvent (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo)
-{
-    ACPI_GPE_XRUPT_INFO     *GpeXruptBlock;
-    ACPI_GPE_BLOCK_INFO     *GpeBlock;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* No need for spin lock since we are not changing any list elements */
-
-    /* Walk the GPE interrupt levels */
-
-    GpeXruptBlock = AcpiGbl_GpeXruptListHead;
-    while (GpeXruptBlock)
-    {
-        GpeBlock = GpeXruptBlock->GpeBlockListHead;
-
-        /* Walk the GPE blocks on this interrupt level */
-
-        while (GpeBlock)
-        {
-            if ((&GpeBlock->EventInfo[0] <= GpeEventInfo) &&
-                (&GpeBlock->EventInfo[((ACPI_SIZE)
-                    GpeBlock->RegisterCount) * 8] > GpeEventInfo))
-            {
-                return (TRUE);
-            }
-
-            GpeBlock = GpeBlock->Next;
-        }
-
-        GpeXruptBlock = GpeXruptBlock->Next;
-    }
-
-    return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvWalkGpeList
- *
- * PARAMETERS:  GpeWalkCallback     - Routine called for each GPE block
- *              Context             - Value passed to callback
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Walk the GPE lists.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvWalkGpeList (
-    ACPI_GPE_CALLBACK       GpeWalkCallback,
-    void                    *Context)
-{
-    ACPI_GPE_BLOCK_INFO     *GpeBlock;
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo;
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_CPU_FLAGS          Flags;
-
-
-    ACPI_FUNCTION_TRACE (EvWalkGpeList);
-
-
-    Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-
-    /* Walk the interrupt level descriptor list */
-
-    GpeXruptInfo = AcpiGbl_GpeXruptListHead;
-    while (GpeXruptInfo)
-    {
-        /* Walk all Gpe Blocks attached to this interrupt level */
-
-        GpeBlock = GpeXruptInfo->GpeBlockListHead;
-        while (GpeBlock)
-        {
-            /* One callback per GPE block */
-
-            Status = GpeWalkCallback (GpeXruptInfo, GpeBlock, Context);
-            if (ACPI_FAILURE (Status))
-            {
-                if (Status == AE_CTRL_END) /* Callback abort */
-                {
-                    Status = AE_OK;
-                }
-                goto UnlockAndExit;
-            }
-
-            GpeBlock = GpeBlock->Next;
-        }
-
-        GpeXruptInfo = GpeXruptInfo->Next;
-    }
-
-UnlockAndExit:
-    AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvDeleteGpeHandlers
- *
- * PARAMETERS:  GpeXruptInfo        - GPE Interrupt info
- *              GpeBlock            - Gpe Block info
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Delete all Handler objects found in the GPE data structs.
- *              Used only prior to termination.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvDeleteGpeHandlers (
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    void                    *Context)
-{
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-    UINT32                  i;
-    UINT32                  j;
-
-
-    ACPI_FUNCTION_TRACE (EvDeleteGpeHandlers);
-
-
-    /* Examine each GPE Register within the block */
-
-    for (i = 0; i < GpeBlock->RegisterCount; i++)
-    {
-        /* Now look at the individual GPEs in this byte register */
-
-        for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++)
-        {
-            GpeEventInfo = &GpeBlock->EventInfo[((ACPI_SIZE) i *
-                ACPI_GPE_REGISTER_WIDTH) + j];
-
-            if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) ==
-                    ACPI_GPE_DISPATCH_HANDLER)
-            {
-                ACPI_FREE (GpeEventInfo->Dispatch.Handler);
-                GpeEventInfo->Dispatch.Handler = NULL;
-                GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK;
-            }
-        }
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvSaveMethodInfo
- *
- * PARAMETERS:  Callback from WalkNamespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Called from AcpiWalkNamespace. Expects each object to be a
- *              control method under the _GPE portion of the namespace.
- *              Extract the name and GPE type from the object, saving this
- *              information for quick lookup during GPE dispatch
- *
- *              The name of each GPE control method is of the form:
- *              "_Lxx" or "_Exx"
- *              Where:
- *                  L      - means that the GPE is level triggered
- *                  E      - means that the GPE is edge triggered
- *                  xx     - is the GPE number [in HEX]
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvSaveMethodInfo (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *ObjDesc,
-    void                    **ReturnValue)
-{
-    ACPI_GPE_BLOCK_INFO     *GpeBlock = (void *) ObjDesc;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-    UINT32                  GpeNumber;
-    char                    Name[ACPI_NAME_SIZE + 1];
-    UINT8                   Type;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvSaveMethodInfo);
-
-
-    /*
-     * _Lxx and _Exx GPE method support
-     *
-     * 1) Extract the name from the object and convert to a string
-     */
-    ACPI_MOVE_32_TO_32 (
-        Name, &((ACPI_NAMESPACE_NODE *) ObjHandle)->Name.Integer);
-    Name[ACPI_NAME_SIZE] = 0;
-
-    /*
-     * 2) Edge/Level determination is based on the 2nd character
-     *    of the method name
-     *
-     * NOTE: Default GPE type is RUNTIME. May be changed later to WAKE
-     * if a _PRW object is found that points to this GPE.
-     */
-    switch (Name[1])
-    {
-    case 'L':
-        Type = ACPI_GPE_LEVEL_TRIGGERED;
-        break;
-
-    case 'E':
-        Type = ACPI_GPE_EDGE_TRIGGERED;
-        break;
-
-    default:
-        /* Unknown method type, just ignore it! */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_LOAD,
-            "Ignoring unknown GPE method type: %s "
-            "(name not of form _Lxx or _Exx)",
-            Name));
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Convert the last two characters of the name to the GPE Number */
-
-    GpeNumber = ACPI_STRTOUL (&Name[2], NULL, 16);
-    if (GpeNumber == ACPI_UINT32_MAX)
-    {
-        /* Conversion failed; invalid method, just ignore it */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_LOAD,
-            "Could not extract GPE number from name: %s "
-            "(name is not of form _Lxx or _Exx)",
-            Name));
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Ensure that we have a valid GPE number for this GPE block */
-
-    if ((GpeNumber < GpeBlock->BlockBaseNumber) ||
-        (GpeNumber >= (GpeBlock->BlockBaseNumber +
-            (GpeBlock->RegisterCount * 8))))
-    {
-        /*
-         * Not valid for this GPE block, just ignore it. However, it may be
-         * valid for a different GPE block, since GPE0 and GPE1 methods both
-         * appear under \_GPE.
-         */
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * Now we can add this information to the GpeEventInfo block for use
-     * during dispatch of this GPE. Default type is RUNTIME, although this may
-     * change when the _PRW methods are executed later.
-     */
-    GpeEventInfo = &GpeBlock->EventInfo[GpeNumber - GpeBlock->BlockBaseNumber];
-
-    GpeEventInfo->Flags = (UINT8)
-        (Type | ACPI_GPE_DISPATCH_METHOD | ACPI_GPE_TYPE_RUNTIME);
-
-    GpeEventInfo->Dispatch.MethodNode = (ACPI_NAMESPACE_NODE *) ObjHandle;
-
-    /* Update enable mask, but don't enable the HW GPE as of yet */
-
-    Status = AcpiEvEnableGpe (GpeEventInfo, FALSE);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_LOAD,
-        "Registered GPE method %s as GPE number 0x%.2X\n",
-        Name, GpeNumber));
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvMatchPrwAndGpe
- *
- * PARAMETERS:  Callback from WalkNamespace
- *
- * RETURN:      Status. NOTE: We ignore errors so that the _PRW walk is
- *              not aborted on a single _PRW failure.
- *
- * DESCRIPTION: Called from AcpiWalkNamespace. Expects each object to be a
- *              Device. Run the _PRW method. If present, extract the GPE
- *              number and mark the GPE as a WAKE GPE.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvMatchPrwAndGpe (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Info,
-    void                    **ReturnValue)
-{
-    ACPI_GPE_WALK_INFO      *GpeInfo = (void *) Info;
-    ACPI_NAMESPACE_NODE     *GpeDevice;
-    ACPI_GPE_BLOCK_INFO     *GpeBlock;
-    ACPI_NAMESPACE_NODE     *TargetGpeDevice;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-    ACPI_OPERAND_OBJECT     *PkgDesc;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    UINT32                  GpeNumber;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvMatchPrwAndGpe);
-
-
-    /* Check for a _PRW method under this device */
-
-    Status = AcpiUtEvaluateObject (ObjHandle, METHOD_NAME__PRW,
-                ACPI_BTYPE_PACKAGE, &PkgDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        /* Ignore all errors from _PRW, we don't want to abort the subsystem */
-
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* The returned _PRW package must have at least two elements */
-
-    if (PkgDesc->Package.Count < 2)
-    {
-        goto Cleanup;
-    }
-
-    /* Extract pointers from the input context */
-
-    GpeDevice = GpeInfo->GpeDevice;
-    GpeBlock = GpeInfo->GpeBlock;
-
-    /*
-     * The _PRW object must return a package, we are only interested in the
-     * first element
-     */
-    ObjDesc = PkgDesc->Package.Elements[0];
-
-    if (ObjDesc->Common.Type == ACPI_TYPE_INTEGER)
-    {
-        /* Use FADT-defined GPE device (from definition of _PRW) */
-
-        TargetGpeDevice = AcpiGbl_FadtGpeDevice;
-
-        /* Integer is the GPE number in the FADT described GPE blocks */
-
-        GpeNumber = (UINT32) ObjDesc->Integer.Value;
-    }
-    else if (ObjDesc->Common.Type == ACPI_TYPE_PACKAGE)
-    {
-        /* Package contains a GPE reference and GPE number within a GPE block */
-
-        if ((ObjDesc->Package.Count < 2) ||
-            ((ObjDesc->Package.Elements[0])->Common.Type !=
-                ACPI_TYPE_LOCAL_REFERENCE) ||
-            ((ObjDesc->Package.Elements[1])->Common.Type !=
-                ACPI_TYPE_INTEGER))
-        {
-            goto Cleanup;
-        }
-
-        /* Get GPE block reference and decode */
-
-        TargetGpeDevice = ObjDesc->Package.Elements[0]->Reference.Node;
-        GpeNumber = (UINT32) ObjDesc->Package.Elements[1]->Integer.Value;
-    }
-    else
-    {
-        /* Unknown type, just ignore it */
-
-        goto Cleanup;
-    }
-
-    /*
-     * Is this GPE within this block?
-     *
-     * TRUE if and only if these conditions are true:
-     *     1) The GPE devices match.
-     *     2) The GPE index(number) is within the range of the Gpe Block
-     *          associated with the GPE device.
-     */
-    if ((GpeDevice == TargetGpeDevice) &&
-        (GpeNumber >= GpeBlock->BlockBaseNumber) &&
-        (GpeNumber < GpeBlock->BlockBaseNumber +
-            (GpeBlock->RegisterCount * 8)))
-    {
-        GpeEventInfo = &GpeBlock->EventInfo[GpeNumber -
-            GpeBlock->BlockBaseNumber];
-
-        /* Mark GPE for WAKE-ONLY but WAKE_DISABLED */
-
-        GpeEventInfo->Flags &= ~(ACPI_GPE_WAKE_ENABLED | ACPI_GPE_RUN_ENABLED);
-
-        Status = AcpiEvSetGpeType (GpeEventInfo, ACPI_GPE_TYPE_WAKE);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        Status = AcpiEvUpdateGpeEnableMasks (GpeEventInfo, ACPI_GPE_DISABLE);
-    }
-
-Cleanup:
-    AcpiUtRemoveReference (PkgDesc);
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvGetGpeXruptBlock
- *
- * PARAMETERS:  InterruptNumber      - Interrupt for a GPE block
- *
- * RETURN:      A GPE interrupt block
- *
- * DESCRIPTION: Get or Create a GPE interrupt block. There is one interrupt
- *              block per unique interrupt level used for GPEs. Should be
- *              called only when the GPE lists are semaphore locked and not
- *              subject to change.
- *
- ******************************************************************************/
-
-static ACPI_GPE_XRUPT_INFO *
-AcpiEvGetGpeXruptBlock (
-    UINT32                  InterruptNumber)
-{
-    ACPI_GPE_XRUPT_INFO     *NextGpeXrupt;
-    ACPI_GPE_XRUPT_INFO     *GpeXrupt;
-    ACPI_STATUS             Status;
-    ACPI_CPU_FLAGS          Flags;
-
-
-    ACPI_FUNCTION_TRACE (EvGetGpeXruptBlock);
-
-
-    /* No need for lock since we are not changing any list elements here */
-
-    NextGpeXrupt = AcpiGbl_GpeXruptListHead;
-    while (NextGpeXrupt)
-    {
-        if (NextGpeXrupt->InterruptNumber == InterruptNumber)
-        {
-            return_PTR (NextGpeXrupt);
-        }
-
-        NextGpeXrupt = NextGpeXrupt->Next;
-    }
-
-    /* Not found, must allocate a new xrupt descriptor */
-
-    GpeXrupt = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_GPE_XRUPT_INFO));
-    if (!GpeXrupt)
-    {
-        return_PTR (NULL);
-    }
-
-    GpeXrupt->InterruptNumber = InterruptNumber;
-
-    /* Install new interrupt descriptor with spin lock */
-
-    Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-    if (AcpiGbl_GpeXruptListHead)
-    {
-        NextGpeXrupt = AcpiGbl_GpeXruptListHead;
-        while (NextGpeXrupt->Next)
-        {
-            NextGpeXrupt = NextGpeXrupt->Next;
-        }
-
-        NextGpeXrupt->Next = GpeXrupt;
-        GpeXrupt->Previous = NextGpeXrupt;
-    }
-    else
-    {
-        AcpiGbl_GpeXruptListHead = GpeXrupt;
-    }
-    AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
-    /* Install new interrupt handler if not SCI_INT */
-
-    if (InterruptNumber != AcpiGbl_FADT.SciInterrupt)
-    {
-        Status = AcpiOsInstallInterruptHandler (InterruptNumber,
-                    AcpiEvGpeXruptHandler, GpeXrupt);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Could not install GPE interrupt handler at level 0x%X",
-                InterruptNumber));
-            return_PTR (NULL);
-        }
-    }
-
-    return_PTR (GpeXrupt);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvDeleteGpeXrupt
- *
- * PARAMETERS:  GpeXrupt        - A GPE interrupt info block
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Remove and free a GpeXrupt block. Remove an associated
- *              interrupt handler if not the SCI interrupt.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvDeleteGpeXrupt (
-    ACPI_GPE_XRUPT_INFO     *GpeXrupt)
-{
-    ACPI_STATUS             Status;
-    ACPI_CPU_FLAGS          Flags;
-
-
-    ACPI_FUNCTION_TRACE (EvDeleteGpeXrupt);
-
-
-    /* We never want to remove the SCI interrupt handler */
-
-    if (GpeXrupt->InterruptNumber == AcpiGbl_FADT.SciInterrupt)
-    {
-        GpeXrupt->GpeBlockListHead = NULL;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Disable this interrupt */
-
-    Status = AcpiOsRemoveInterruptHandler (
-                GpeXrupt->InterruptNumber, AcpiEvGpeXruptHandler);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Unlink the interrupt block with lock */
-
-    Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-    if (GpeXrupt->Previous)
-    {
-        GpeXrupt->Previous->Next = GpeXrupt->Next;
-    }
-    else
-    {
-        /* No previous, update list head */
-
-        AcpiGbl_GpeXruptListHead = GpeXrupt->Next;
-    }
-
-    if (GpeXrupt->Next)
-    {
-        GpeXrupt->Next->Previous = GpeXrupt->Previous;
-    }
-    AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
-    /* Free the block */
-
-    ACPI_FREE (GpeXrupt);
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInstallGpeBlock
- *
- * PARAMETERS:  GpeBlock                - New GPE block
- *              InterruptNumber         - Xrupt to be associated with this
- *                                        GPE block
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install new GPE block with mutex support
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvInstallGpeBlock (
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    UINT32                  InterruptNumber)
-{
-    ACPI_GPE_BLOCK_INFO     *NextGpeBlock;
-    ACPI_GPE_XRUPT_INFO     *GpeXruptBlock;
-    ACPI_STATUS             Status;
-    ACPI_CPU_FLAGS          Flags;
-
-
-    ACPI_FUNCTION_TRACE (EvInstallGpeBlock);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    GpeXruptBlock = AcpiEvGetGpeXruptBlock (InterruptNumber);
-    if (!GpeXruptBlock)
-    {
-        Status = AE_NO_MEMORY;
-        goto UnlockAndExit;
-    }
-
-    /* Install the new block at the end of the list with lock */
-
-    Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-    if (GpeXruptBlock->GpeBlockListHead)
-    {
-        NextGpeBlock = GpeXruptBlock->GpeBlockListHead;
-        while (NextGpeBlock->Next)
-        {
-            NextGpeBlock = NextGpeBlock->Next;
-        }
-
-        NextGpeBlock->Next = GpeBlock;
-        GpeBlock->Previous = NextGpeBlock;
-    }
-    else
-    {
-        GpeXruptBlock->GpeBlockListHead = GpeBlock;
-    }
-
-    GpeBlock->XruptBlock = GpeXruptBlock;
-    AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
-
-UnlockAndExit:
-    Status = AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvDeleteGpeBlock
- *
- * PARAMETERS:  GpeBlock            - Existing GPE block
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Remove a GPE block
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvDeleteGpeBlock (
-    ACPI_GPE_BLOCK_INFO     *GpeBlock)
-{
-    ACPI_STATUS             Status;
-    ACPI_CPU_FLAGS          Flags;
-
-
-    ACPI_FUNCTION_TRACE (EvInstallGpeBlock);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Disable all GPEs in this block */
-
-    Status = AcpiHwDisableGpeBlock (GpeBlock->XruptBlock, GpeBlock, NULL);
-
-    if (!GpeBlock->Previous && !GpeBlock->Next)
-    {
-        /* This is the last GpeBlock on this interrupt */
-
-        Status = AcpiEvDeleteGpeXrupt (GpeBlock->XruptBlock);
-        if (ACPI_FAILURE (Status))
-        {
-            goto UnlockAndExit;
-        }
-    }
-    else
-    {
-        /* Remove the block on this interrupt with lock */
-
-        Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-        if (GpeBlock->Previous)
-        {
-            GpeBlock->Previous->Next = GpeBlock->Next;
-        }
-        else
-        {
-            GpeBlock->XruptBlock->GpeBlockListHead = GpeBlock->Next;
-        }
-
-        if (GpeBlock->Next)
-        {
-            GpeBlock->Next->Previous = GpeBlock->Previous;
-        }
-        AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-    }
-
-    AcpiCurrentGpeCount -= GpeBlock->RegisterCount * ACPI_GPE_REGISTER_WIDTH;
-
-    /* Free the GpeBlock */
-
-    ACPI_FREE (GpeBlock->RegisterInfo);
-    ACPI_FREE (GpeBlock->EventInfo);
-    ACPI_FREE (GpeBlock);
-
-UnlockAndExit:
-    Status = AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvCreateGpeInfoBlocks
- *
- * PARAMETERS:  GpeBlock    - New GPE block
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create the RegisterInfo and EventInfo blocks for this GPE block
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvCreateGpeInfoBlocks (
-    ACPI_GPE_BLOCK_INFO     *GpeBlock)
-{
-    ACPI_GPE_REGISTER_INFO  *GpeRegisterInfo = NULL;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo = NULL;
-    ACPI_GPE_EVENT_INFO     *ThisEvent;
-    ACPI_GPE_REGISTER_INFO  *ThisRegister;
-    UINT32                  i;
-    UINT32                  j;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvCreateGpeInfoBlocks);
-
-
-    /* Allocate the GPE register information block */
-
-    GpeRegisterInfo = ACPI_ALLOCATE_ZEROED (
-                            (ACPI_SIZE) GpeBlock->RegisterCount *
-                            sizeof (ACPI_GPE_REGISTER_INFO));
-    if (!GpeRegisterInfo)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Could not allocate the GpeRegisterInfo table"));
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /*
-     * Allocate the GPE EventInfo block. There are eight distinct GPEs
-     * per register. Initialization to zeros is sufficient.
-     */
-    GpeEventInfo = ACPI_ALLOCATE_ZEROED (
-                        ((ACPI_SIZE) GpeBlock->RegisterCount *
-                        ACPI_GPE_REGISTER_WIDTH) *
-                        sizeof (ACPI_GPE_EVENT_INFO));
-    if (!GpeEventInfo)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Could not allocate the GpeEventInfo table"));
-        Status = AE_NO_MEMORY;
-        goto ErrorExit;
-    }
-
-    /* Save the new Info arrays in the GPE block */
-
-    GpeBlock->RegisterInfo = GpeRegisterInfo;
-    GpeBlock->EventInfo    = GpeEventInfo;
-
-    /*
-     * Initialize the GPE Register and Event structures. A goal of these
-     * tables is to hide the fact that there are two separate GPE register
-     * sets in a given GPE hardware block, the status registers occupy the
-     * first half, and the enable registers occupy the second half.
-     */
-    ThisRegister = GpeRegisterInfo;
-    ThisEvent    = GpeEventInfo;
-
-    for (i = 0; i < GpeBlock->RegisterCount; i++)
-    {
-        /* Init the RegisterInfo for this GPE register (8 GPEs) */
-
-        ThisRegister->BaseGpeNumber = (UINT8) (GpeBlock->BlockBaseNumber +
-                                             (i * ACPI_GPE_REGISTER_WIDTH));
-
-        ThisRegister->StatusAddress.Address =
-            GpeBlock->BlockAddress.Address + i;
-
-        ThisRegister->EnableAddress.Address =
-            GpeBlock->BlockAddress.Address + i + GpeBlock->RegisterCount;
-
-        ThisRegister->StatusAddress.SpaceId   = GpeBlock->BlockAddress.SpaceId;
-        ThisRegister->EnableAddress.SpaceId   = GpeBlock->BlockAddress.SpaceId;
-        ThisRegister->StatusAddress.BitWidth  = ACPI_GPE_REGISTER_WIDTH;
-        ThisRegister->EnableAddress.BitWidth  = ACPI_GPE_REGISTER_WIDTH;
-        ThisRegister->StatusAddress.BitOffset = 0;
-        ThisRegister->EnableAddress.BitOffset = 0;
-
-        /* Init the EventInfo for each GPE within this register */
-
-        for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++)
-        {
-            ThisEvent->GpeNumber = (UINT8) (ThisRegister->BaseGpeNumber + j);
-            ThisEvent->RegisterInfo = ThisRegister;
-            ThisEvent++;
-        }
-
-        /* Disable all GPEs within this register */
-
-        Status = AcpiHwWrite (0x00, &ThisRegister->EnableAddress);
-        if (ACPI_FAILURE (Status))
-        {
-            goto ErrorExit;
-        }
-
-        /* Clear any pending GPE events within this register */
-
-        Status = AcpiHwWrite (0xFF, &ThisRegister->StatusAddress);
-        if (ACPI_FAILURE (Status))
-        {
-            goto ErrorExit;
-        }
-
-        ThisRegister++;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-
-
-ErrorExit:
-    if (GpeRegisterInfo)
-    {
-        ACPI_FREE (GpeRegisterInfo);
-    }
-    if (GpeEventInfo)
-    {
-        ACPI_FREE (GpeEventInfo);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvCreateGpeBlock
- *
- * PARAMETERS:  GpeDevice           - Handle to the parent GPE block
- *              GpeBlockAddress     - Address and SpaceID
- *              RegisterCount       - Number of GPE register pairs in the block
- *              GpeBlockBaseNumber  - Starting GPE number for the block
- *              InterruptNumber     - H/W interrupt for the block
- *              ReturnGpeBlock      - Where the new block descriptor is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create and Install a block of GPE registers. All GPEs within
- *              the block are disabled at exit.
- *              Note: Assumes namespace is locked.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvCreateGpeBlock (
-    ACPI_NAMESPACE_NODE     *GpeDevice,
-    ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
-    UINT32                  RegisterCount,
-    UINT8                   GpeBlockBaseNumber,
-    UINT32                  InterruptNumber,
-    ACPI_GPE_BLOCK_INFO     **ReturnGpeBlock)
-{
-    ACPI_STATUS             Status;
-    ACPI_GPE_BLOCK_INFO     *GpeBlock;
-
-
-    ACPI_FUNCTION_TRACE (EvCreateGpeBlock);
-
-
-    if (!RegisterCount)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Allocate a new GPE block */
-
-    GpeBlock = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_GPE_BLOCK_INFO));
-    if (!GpeBlock)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Initialize the new GPE block */
-
-    GpeBlock->Node = GpeDevice;
-    GpeBlock->RegisterCount = RegisterCount;
-    GpeBlock->BlockBaseNumber = GpeBlockBaseNumber;
-
-    ACPI_MEMCPY (&GpeBlock->BlockAddress, GpeBlockAddress,
-        sizeof (ACPI_GENERIC_ADDRESS));
-
-    /*
-     * Create the RegisterInfo and EventInfo sub-structures
-     * Note: disables and clears all GPEs in the block
-     */
-    Status = AcpiEvCreateGpeInfoBlocks (GpeBlock);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_FREE (GpeBlock);
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Install the new block in the global lists */
-
-    Status = AcpiEvInstallGpeBlock (GpeBlock, InterruptNumber);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_FREE (GpeBlock);
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Find all GPE methods (_Lxx, _Exx) for this block */
-
-    Status = AcpiNsWalkNamespace (ACPI_TYPE_METHOD, GpeDevice,
-                ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
-                AcpiEvSaveMethodInfo, NULL, GpeBlock, NULL);
-
-    /* Return the new block */
-
-    if (ReturnGpeBlock)
-    {
-        (*ReturnGpeBlock) = GpeBlock;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
-        "GPE %02X to %02X [%4.4s] %u regs on int 0x%X\n",
-        (UINT32) GpeBlock->BlockBaseNumber,
-        (UINT32) (GpeBlock->BlockBaseNumber +
-                ((GpeBlock->RegisterCount * ACPI_GPE_REGISTER_WIDTH) -1)),
-        GpeDevice->Name.Ascii,
-        GpeBlock->RegisterCount,
-        InterruptNumber));
-
-    /* Update global count of currently available GPEs */
-
-    AcpiCurrentGpeCount += RegisterCount * ACPI_GPE_REGISTER_WIDTH;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInitializeGpeBlock
- *
- * PARAMETERS:  GpeDevice           - Handle to the parent GPE block
- *              GpeBlock            - Gpe Block info
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initialize and enable a GPE block. First find and run any
- *              _PRT methods associated with the block, then enable the
- *              appropriate GPEs.
- *              Note: Assumes namespace is locked.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitializeGpeBlock (
-    ACPI_NAMESPACE_NODE     *GpeDevice,
-    ACPI_GPE_BLOCK_INFO     *GpeBlock)
-{
-    ACPI_STATUS             Status;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-    ACPI_GPE_WALK_INFO      GpeInfo;
-    UINT32                  WakeGpeCount;
-    UINT32                  GpeEnabledCount;
-    UINT32                  i;
-    UINT32                  j;
-
-
-    ACPI_FUNCTION_TRACE (EvInitializeGpeBlock);
-
-
-    /* Ignore a null GPE block (e.g., if no GPE block 1 exists) */
-
-    if (!GpeBlock)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * Runtime option: Should wake GPEs be enabled at runtime?  The default
-     * is no, they should only be enabled just as the machine goes to sleep.
-     */
-    if (AcpiGbl_LeaveWakeGpesDisabled)
-    {
-        /*
-         * Differentiate runtime vs wake GPEs, via the _PRW control methods.
-         * Each GPE that has one or more _PRWs that reference it is by
-         * definition a wake GPE and will not be enabled while the machine
-         * is running.
-         */
-        GpeInfo.GpeBlock = GpeBlock;
-        GpeInfo.GpeDevice = GpeDevice;
-
-        Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
-                    ACPI_UINT32_MAX, ACPI_NS_WALK_UNLOCK,
-                    AcpiEvMatchPrwAndGpe, NULL, &GpeInfo, NULL);
-    }
-
-    /*
-     * Enable all GPEs in this block that have these attributes:
-     * 1) are "runtime" or "run/wake" GPEs, and
-     * 2) have a corresponding _Lxx or _Exx method
-     *
-     * Any other GPEs within this block must be enabled via the
-     * AcpiEnableGpe() external interface.
-     */
-    WakeGpeCount = 0;
-    GpeEnabledCount = 0;
-
-    for (i = 0; i < GpeBlock->RegisterCount; i++)
-    {
-        for (j = 0; j < 8; j++)
-        {
-            /* Get the info block for this particular GPE */
-
-            GpeEventInfo = &GpeBlock->EventInfo[((ACPI_SIZE) i *
-                ACPI_GPE_REGISTER_WIDTH) + j];
-
-            if (((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) ==
-                    ACPI_GPE_DISPATCH_METHOD) &&
-                 (GpeEventInfo->Flags & ACPI_GPE_TYPE_RUNTIME))
-            {
-                GpeEnabledCount++;
-            }
-
-            if (GpeEventInfo->Flags & ACPI_GPE_TYPE_WAKE)
-            {
-                WakeGpeCount++;
-            }
-        }
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
-        "Found %u Wake, Enabled %u Runtime GPEs in this block\n",
-        WakeGpeCount, GpeEnabledCount));
-
-    /* Enable all valid runtime GPEs found above */
-
-    Status = AcpiHwEnableRuntimeGpeBlock (NULL, GpeBlock, NULL);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_ERROR ((AE_INFO, "Could not enable GPEs in GpeBlock %p",
-            GpeBlock));
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvGpeInitialize
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initialize the GPE data structures
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvGpeInitialize (
-    void)
-{
-    UINT32                  RegisterCount0 = 0;
-    UINT32                  RegisterCount1 = 0;
-    UINT32                  GpeNumberMax = 0;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvGpeInitialize);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Initialize the GPE Block(s) defined in the FADT
-     *
-     * Why the GPE register block lengths are divided by 2:  From the ACPI
-     * Spec, section "General-Purpose Event Registers", we have:
-     *
-     * "Each register block contains two registers of equal length
-     *  GPEx_STS and GPEx_EN (where x is 0 or 1). The length of the
-     *  GPE0_STS and GPE0_EN registers is equal to half the GPE0_LEN
-     *  The length of the GPE1_STS and GPE1_EN registers is equal to
-     *  half the GPE1_LEN. If a generic register block is not supported
-     *  then its respective block pointer and block length values in the
-     *  FADT table contain zeros. The GPE0_LEN and GPE1_LEN do not need
-     *  to be the same size."
-     */
-
-    /*
-     * Determine the maximum GPE number for this machine.
-     *
-     * Note: both GPE0 and GPE1 are optional, and either can exist without
-     * the other.
-     *
-     * If EITHER the register length OR the block address are zero, then that
-     * particular block is not supported.
-     */
-    if (AcpiGbl_FADT.Gpe0BlockLength &&
-        AcpiGbl_FADT.XGpe0Block.Address)
-    {
-        /* GPE block 0 exists (has both length and address > 0) */
-
-        RegisterCount0 = (UINT16) (AcpiGbl_FADT.Gpe0BlockLength / 2);
-
-        GpeNumberMax = (RegisterCount0 * ACPI_GPE_REGISTER_WIDTH) - 1;
-
-        /* Install GPE Block 0 */
-
-        Status = AcpiEvCreateGpeBlock (AcpiGbl_FadtGpeDevice,
-                    &AcpiGbl_FADT.XGpe0Block, RegisterCount0, 0,
-                    AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[0]);
-
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "Could not create GPE Block 0"));
-        }
-    }
-
-    if (AcpiGbl_FADT.Gpe1BlockLength &&
-        AcpiGbl_FADT.XGpe1Block.Address)
-    {
-        /* GPE block 1 exists (has both length and address > 0) */
-
-        RegisterCount1 = (UINT16) (AcpiGbl_FADT.Gpe1BlockLength / 2);
-
-        /* Check for GPE0/GPE1 overlap (if both banks exist) */
-
-        if ((RegisterCount0) &&
-            (GpeNumberMax >= AcpiGbl_FADT.Gpe1Base))
-        {
-            ACPI_ERROR ((AE_INFO,
-                "GPE0 block (GPE 0 to %d) overlaps the GPE1 block "
-                "(GPE %d to %d) - Ignoring GPE1",
-                GpeNumberMax, AcpiGbl_FADT.Gpe1Base,
-                AcpiGbl_FADT.Gpe1Base +
-                ((RegisterCount1 * ACPI_GPE_REGISTER_WIDTH) - 1)));
-
-            /* Ignore GPE1 block by setting the register count to zero */
-
-            RegisterCount1 = 0;
-        }
-        else
-        {
-            /* Install GPE Block 1 */
-
-            Status = AcpiEvCreateGpeBlock (AcpiGbl_FadtGpeDevice,
-                        &AcpiGbl_FADT.XGpe1Block, RegisterCount1,
-                        AcpiGbl_FADT.Gpe1Base,
-                        AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[1]);
-
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_EXCEPTION ((AE_INFO, Status,
-                    "Could not create GPE Block 1"));
-            }
-
-            /*
-             * GPE0 and GPE1 do not have to be contiguous in the GPE number
-             * space. However, GPE0 always starts at GPE number zero.
-             */
-            GpeNumberMax = AcpiGbl_FADT.Gpe1Base +
-                            ((RegisterCount1 * ACPI_GPE_REGISTER_WIDTH) - 1);
-        }
-    }
-
-    /* Exit if there are no GPE registers */
-
-    if ((RegisterCount0 + RegisterCount1) == 0)
-    {
-        /* GPEs are not required by ACPI, this is OK */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
-            "There are no GPE blocks defined in the FADT\n"));
-        Status = AE_OK;
-        goto Cleanup;
-    }
-
-    /* Check for Max GPE number out-of-range */
-
-    if (GpeNumberMax > ACPI_GPE_MAX)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Maximum GPE number from FADT is too large: 0x%X",
-            GpeNumberMax));
-        Status = AE_BAD_VALUE;
-        goto Cleanup;
-    }
-
-Cleanup:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evmisc.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evmisc.c
deleted file mode 100644 (file)
index 1e7f9e1..0000000
+++ /dev/null
@@ -1,740 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evmisc - Miscellaneous event manager support functions
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-#include "acnamesp.h"
-#include "acinterp.h"
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evmisc")
-
-
-/* Local prototypes */
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvNotifyDispatch (
-    void                    *Context);
-
-static UINT32
-AcpiEvGlobalLockHandler (
-    void                    *Context);
-
-static ACPI_STATUS
-AcpiEvRemoveGlobalLockHandler (
-    void);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvIsNotifyObject
- *
- * PARAMETERS:  Node            - Node to check
- *
- * RETURN:      TRUE if notifies allowed on this object
- *
- * DESCRIPTION: Check type of node for a object that supports notifies.
- *
- *              TBD: This could be replaced by a flag bit in the node.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiEvIsNotifyObject (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    switch (Node->Type)
-    {
-    case ACPI_TYPE_DEVICE:
-    case ACPI_TYPE_PROCESSOR:
-    case ACPI_TYPE_THERMAL:
-        /*
-         * These are the ONLY objects that can receive ACPI notifications
-         */
-        return (TRUE);
-
-    default:
-        return (FALSE);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvQueueNotifyRequest
- *
- * PARAMETERS:  Node            - NS node for the notified object
- *              NotifyValue     - Value from the Notify() request
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Dispatch a device notification event to a previously
- *              installed handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvQueueNotifyRequest (
-    ACPI_NAMESPACE_NODE     *Node,
-    UINT32                  NotifyValue)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *HandlerObj = NULL;
-    ACPI_GENERIC_STATE      *NotifyInfo;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_NAME (EvQueueNotifyRequest);
-
-
-    /*
-     * For value 3 (Ejection Request), some device method may need to be run.
-     * For value 2 (Device Wake) if _PRW exists, the _PS0 method may need
-     *   to be run.
-     * For value 0x80 (Status Change) on the power button or sleep button,
-     *   initiate soft-off or sleep operation?
-     */
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-        "Dispatching Notify on [%4.4s] Node %p Value 0x%2.2X (%s)\n",
-        AcpiUtGetNodeName (Node), Node, NotifyValue,
-        AcpiUtGetNotifyName (NotifyValue)));
-
-    /* Get the notify object attached to the NS Node */
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (ObjDesc)
-    {
-        /* We have the notify object, Get the right handler */
-
-        switch (Node->Type)
-        {
-        /* Notify allowed only on these types */
-
-        case ACPI_TYPE_DEVICE:
-        case ACPI_TYPE_THERMAL:
-        case ACPI_TYPE_PROCESSOR:
-
-            if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
-            {
-                HandlerObj = ObjDesc->CommonNotify.SystemNotify;
-            }
-            else
-            {
-                HandlerObj = ObjDesc->CommonNotify.DeviceNotify;
-            }
-            break;
-
-        default:
-
-            /* All other types are not supported */
-
-            return (AE_TYPE);
-        }
-    }
-
-    /*
-     * If there is any handler to run, schedule the dispatcher.
-     * Check for:
-     * 1) Global system notify handler
-     * 2) Global device notify handler
-     * 3) Per-device notify handler
-     */
-    if ((AcpiGbl_SystemNotify.Handler &&
-            (NotifyValue <= ACPI_MAX_SYS_NOTIFY)) ||
-        (AcpiGbl_DeviceNotify.Handler &&
-            (NotifyValue > ACPI_MAX_SYS_NOTIFY))  ||
-        HandlerObj)
-    {
-        NotifyInfo = AcpiUtCreateGenericState ();
-        if (!NotifyInfo)
-        {
-            return (AE_NO_MEMORY);
-        }
-
-        if (!HandlerObj)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                "Executing system notify handler for Notify (%4.4s, %X) "
-                "node %p\n",
-                AcpiUtGetNodeName (Node), NotifyValue, Node));
-        }
-
-        NotifyInfo->Common.DescriptorType = ACPI_DESC_TYPE_STATE_NOTIFY;
-        NotifyInfo->Notify.Node = Node;
-        NotifyInfo->Notify.Value = (UINT16) NotifyValue;
-        NotifyInfo->Notify.HandlerObj = HandlerObj;
-
-        Status = AcpiOsExecute (
-                    OSL_NOTIFY_HANDLER, AcpiEvNotifyDispatch, NotifyInfo);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiUtDeleteGenericState (NotifyInfo);
-        }
-    }
-    else
-    {
-        /* There is no notify handler (per-device or system) for this device */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-            "No notify handler for Notify (%4.4s, %X) node %p\n",
-            AcpiUtGetNodeName (Node), NotifyValue, Node));
-    }
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvNotifyDispatch
- *
- * PARAMETERS:  Context         - To be passed to the notify handler
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Dispatch a device notification event to a previously
- *              installed handler.
- *
- ******************************************************************************/
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvNotifyDispatch (
-    void                    *Context)
-{
-    ACPI_GENERIC_STATE      *NotifyInfo = (ACPI_GENERIC_STATE *) Context;
-    ACPI_NOTIFY_HANDLER     GlobalHandler = NULL;
-    void                    *GlobalContext = NULL;
-    ACPI_OPERAND_OBJECT     *HandlerObj;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * We will invoke a global notify handler if installed. This is done
-     * _before_ we invoke the per-device handler attached to the device.
-     */
-    if (NotifyInfo->Notify.Value <= ACPI_MAX_SYS_NOTIFY)
-    {
-        /* Global system notification handler */
-
-        if (AcpiGbl_SystemNotify.Handler)
-        {
-            GlobalHandler = AcpiGbl_SystemNotify.Handler;
-            GlobalContext = AcpiGbl_SystemNotify.Context;
-        }
-    }
-    else
-    {
-        /* Global driver notification handler */
-
-        if (AcpiGbl_DeviceNotify.Handler)
-        {
-            GlobalHandler = AcpiGbl_DeviceNotify.Handler;
-            GlobalContext = AcpiGbl_DeviceNotify.Context;
-        }
-    }
-
-    /* Invoke the system handler first, if present */
-
-    if (GlobalHandler)
-    {
-        GlobalHandler (NotifyInfo->Notify.Node, NotifyInfo->Notify.Value,
-            GlobalContext);
-    }
-
-    /* Now invoke the per-device handler, if present */
-
-    HandlerObj = NotifyInfo->Notify.HandlerObj;
-    if (HandlerObj)
-    {
-        HandlerObj->Notify.Handler (NotifyInfo->Notify.Node,
-            NotifyInfo->Notify.Value,
-            HandlerObj->Notify.Context);
-    }
-
-    /* All done with the info object */
-
-    AcpiUtDeleteGenericState (NotifyInfo);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvGlobalLockHandler
- *
- * PARAMETERS:  Context         - From thread interface, not used
- *
- * RETURN:      ACPI_INTERRUPT_HANDLED
- *
- * DESCRIPTION: Invoked directly from the SCI handler when a global lock
- *              release interrupt occurs. Attempt to acquire the global lock,
- *              if successful, signal the thread waiting for the lock.
- *
- * NOTE: Assumes that the semaphore can be signaled from interrupt level. If
- * this is not possible for some reason, a separate thread will have to be
- * scheduled to do this.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiEvGlobalLockHandler (
-    void                    *Context)
-{
-    BOOLEAN                 Acquired = FALSE;
-    ACPI_STATUS             Status;
-
-
-    /*
-     * Attempt to get the lock.
-     *
-     * If we don't get it now, it will be marked pending and we will
-     * take another interrupt when it becomes free.
-     */
-    ACPI_ACQUIRE_GLOBAL_LOCK (AcpiGbl_FACS, Acquired);
-    if (Acquired)
-    {
-        /* Got the lock, now wake the thread waiting for it */
-
-        AcpiGbl_GlobalLockAcquired = TRUE;
-
-        /* Send a unit to the semaphore */
-
-        Status = AcpiOsSignalSemaphore (AcpiGbl_GlobalLockSemaphore, 1);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_ERROR ((AE_INFO, "Could not signal Global Lock semaphore"));
-        }
-    }
-
-    return (ACPI_INTERRUPT_HANDLED);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInitGlobalLockHandler
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install a handler for the global lock release event
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitGlobalLockHandler (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvInitGlobalLockHandler);
-
-
-    /* Attempt installation of the global lock handler */
-
-    Status = AcpiInstallFixedEventHandler (ACPI_EVENT_GLOBAL,
-                AcpiEvGlobalLockHandler, NULL);
-
-    /*
-     * If the global lock does not exist on this platform, the attempt to
-     * enable GBL_STATUS will fail (the GBL_ENABLE bit will not stick).
-     * Map to AE_OK, but mark global lock as not present. Any attempt to
-     * actually use the global lock will be flagged with an error.
-     */
-    if (Status == AE_NO_HARDWARE_RESPONSE)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "No response from Global Lock hardware, disabling lock"));
-
-        AcpiGbl_GlobalLockPresent = FALSE;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    AcpiGbl_GlobalLockPresent = TRUE;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvRemoveGlobalLockHandler
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Remove the handler for the Global Lock
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvRemoveGlobalLockHandler (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvRemoveGlobalLockHandler);
-
-    AcpiGbl_GlobalLockPresent = FALSE;
-    Status = AcpiRemoveFixedEventHandler (ACPI_EVENT_GLOBAL,
-                AcpiEvGlobalLockHandler);
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiEvAcquireGlobalLock
- *
- * PARAMETERS:  Timeout         - Max time to wait for the lock, in millisec.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Attempt to gain ownership of the Global Lock.
- *
- * MUTEX:       Interpreter must be locked
- *
- * Note: The original implementation allowed multiple threads to "acquire" the
- * Global Lock, and the OS would hold the lock until the last thread had
- * released it. However, this could potentially starve the BIOS out of the
- * lock, especially in the case where there is a tight handshake between the
- * Embedded Controller driver and the BIOS. Therefore, this implementation
- * allows only one thread to acquire the HW Global Lock at a time, and makes
- * the global lock appear as a standard mutex on the OS side.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiEvAcquireGlobalLock (
-    UINT16                  Timeout)
-{
-    ACPI_STATUS             Status = AE_OK;
-    BOOLEAN                 Acquired = FALSE;
-
-
-    ACPI_FUNCTION_TRACE (EvAcquireGlobalLock);
-
-
-    /*
-     * Only one thread can acquire the GL at a time, the GlobalLockMutex
-     * enforces this. This interface releases the interpreter if we must wait.
-     */
-    Status = AcpiExSystemWaitMutex (AcpiGbl_GlobalLockMutex->Mutex.OsMutex,
-                Timeout);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Update the global lock handle and check for wraparound. The handle is
-     * only used for the external global lock interfaces, but it is updated
-     * here to properly handle the case where a single thread may acquire the
-     * lock via both the AML and the AcpiAcquireGlobalLock interfaces. The
-     * handle is therefore updated on the first acquire from a given thread
-     * regardless of where the acquisition request originated.
-     */
-    AcpiGbl_GlobalLockHandle++;
-    if (AcpiGbl_GlobalLockHandle == 0)
-    {
-        AcpiGbl_GlobalLockHandle = 1;
-    }
-
-    /*
-     * Make sure that a global lock actually exists. If not, just treat the
-     * lock as a standard mutex.
-     */
-    if (!AcpiGbl_GlobalLockPresent)
-    {
-        AcpiGbl_GlobalLockAcquired = TRUE;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Attempt to acquire the actual hardware lock */
-
-    ACPI_ACQUIRE_GLOBAL_LOCK (AcpiGbl_FACS, Acquired);
-    if (Acquired)
-    {
-       /* We got the lock */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Acquired hardware Global Lock\n"));
-
-        AcpiGbl_GlobalLockAcquired = TRUE;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * Did not get the lock. The pending bit was set above, and we must now
-     * wait until we get the global lock released interrupt.
-     */
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Waiting for hardware Global Lock\n"));
-
-    /*
-     * Wait for handshake with the global lock interrupt handler.
-     * This interface releases the interpreter if we must wait.
-     */
-    Status = AcpiExSystemWaitSemaphore (AcpiGbl_GlobalLockSemaphore,
-                ACPI_WAIT_FOREVER);
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvReleaseGlobalLock
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Releases ownership of the Global Lock.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvReleaseGlobalLock (
-    void)
-{
-    BOOLEAN                 Pending = FALSE;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (EvReleaseGlobalLock);
-
-
-    /* Lock must be already acquired */
-
-    if (!AcpiGbl_GlobalLockAcquired)
-    {
-        ACPI_WARNING ((AE_INFO,
-            "Cannot release the ACPI Global Lock, it has not been acquired"));
-        return_ACPI_STATUS (AE_NOT_ACQUIRED);
-    }
-
-    if (AcpiGbl_GlobalLockPresent)
-    {
-        /* Allow any thread to release the lock */
-
-        ACPI_RELEASE_GLOBAL_LOCK (AcpiGbl_FACS, Pending);
-
-        /*
-         * If the pending bit was set, we must write GBL_RLS to the control
-         * register
-         */
-        if (Pending)
-        {
-            Status = AcpiWriteBitRegister (
-                        ACPI_BITREG_GLOBAL_LOCK_RELEASE, ACPI_ENABLE_EVENT);
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Released hardware Global Lock\n"));
-    }
-
-    AcpiGbl_GlobalLockAcquired = FALSE;
-
-    /* Release the local GL mutex */
-
-    AcpiOsReleaseMutex (AcpiGbl_GlobalLockMutex->Mutex.OsMutex);
-    return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiEvTerminate
- *
- * PARAMETERS:  none
- *
- * RETURN:      none
- *
- * DESCRIPTION: Disable events and free memory allocated for table storage.
- *
- ******************************************************************************/
-
-void
-AcpiEvTerminate (
-    void)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvTerminate);
-
-
-    if (AcpiGbl_EventsInitialized)
-    {
-        /*
-         * Disable all event-related functionality. In all cases, on error,
-         * print a message but obviously we don't abort.
-         */
-
-        /* Disable all fixed events */
-
-        for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)
-        {
-            Status = AcpiDisableEvent (i, 0);
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_ERROR ((AE_INFO,
-                    "Could not disable fixed event %d", (UINT32) i));
-            }
-        }
-
-        /* Disable all GPEs in all GPE blocks */
-
-        Status = AcpiEvWalkGpeList (AcpiHwDisableGpeBlock, NULL);
-
-        /* Remove SCI handler */
-
-        Status = AcpiEvRemoveSciHandler ();
-        if (ACPI_FAILURE(Status))
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Could not remove SCI handler"));
-        }
-
-        Status = AcpiEvRemoveGlobalLockHandler ();
-        if (ACPI_FAILURE(Status))
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Could not remove Global Lock handler"));
-        }
-    }
-
-    /* Deallocate all handler objects installed within GPE info structs */
-
-    Status = AcpiEvWalkGpeList (AcpiEvDeleteGpeHandlers, NULL);
-
-    /* Return to original mode if necessary */
-
-    if (AcpiGbl_OriginalMode == ACPI_SYS_MODE_LEGACY)
-    {
-        Status = AcpiDisable ();
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_WARNING ((AE_INFO, "AcpiDisable failed"));
-        }
-    }
-    return_VOID;
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evregion.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evregion.c
deleted file mode 100644 (file)
index 2bdfb87..0000000
+++ /dev/null
@@ -1,1284 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evregion - ACPI AddressSpace (OpRegion) handler dispatch
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __EVREGION_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-#include "acnamesp.h"
-#include "acinterp.h"
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evregion")
-
-
-/* Local prototypes */
-
-static BOOLEAN
-AcpiEvHasDefaultHandler (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_ADR_SPACE_TYPE     SpaceId);
-
-static ACPI_STATUS
-AcpiEvRegRun (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue);
-
-static ACPI_STATUS
-AcpiEvInstallHandler (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue);
-
-/* These are the address spaces that will get default handlers */
-
-#define ACPI_NUM_DEFAULT_SPACES     4
-
-static UINT8        AcpiGbl_DefaultAddressSpaces[ACPI_NUM_DEFAULT_SPACES] =
-{
-    ACPI_ADR_SPACE_SYSTEM_MEMORY,
-    ACPI_ADR_SPACE_SYSTEM_IO,
-    ACPI_ADR_SPACE_PCI_CONFIG,
-    ACPI_ADR_SPACE_DATA_TABLE
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInstallRegionHandlers
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Installs the core subsystem default address space handlers.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInstallRegionHandlers (
-    void)
-{
-    ACPI_STATUS             Status;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (EvInstallRegionHandlers);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * All address spaces (PCI Config, EC, SMBus) are scope dependent and
-     * registration must occur for a specific device.
-     *
-     * In the case of the system memory and IO address spaces there is
-     * currently no device associated with the address space. For these we
-     * use the root.
-     *
-     * We install the default PCI config space handler at the root so that
-     * this space is immediately available even though the we have not
-     * enumerated all the PCI Root Buses yet. This is to conform to the ACPI
-     * specification which states that the PCI config space must be always
-     * available -- even though we are nowhere near ready to find the PCI root
-     * buses at this point.
-     *
-     * NOTE: We ignore AE_ALREADY_EXISTS because this means that a handler
-     * has already been installed (via AcpiInstallAddressSpaceHandler).
-     * Similar for AE_SAME_HANDLER.
-     */
-    for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++)
-    {
-        Status = AcpiEvInstallSpaceHandler (AcpiGbl_RootNode,
-                    AcpiGbl_DefaultAddressSpaces[i],
-                    ACPI_DEFAULT_HANDLER, NULL, NULL);
-        switch (Status)
-        {
-        case AE_OK:
-        case AE_SAME_HANDLER:
-        case AE_ALREADY_EXISTS:
-
-            /* These exceptions are all OK */
-
-            Status = AE_OK;
-            break;
-
-        default:
-
-            goto UnlockAndExit;
-        }
-    }
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvHasDefaultHandler
- *
- * PARAMETERS:  Node                - Namespace node for the device
- *              SpaceId             - The address space ID
- *
- * RETURN:      TRUE if default handler is installed, FALSE otherwise
- *
- * DESCRIPTION: Check if the default handler is installed for the requested
- *              space ID.
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiEvHasDefaultHandler (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_ADR_SPACE_TYPE     SpaceId)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *HandlerObj;
-
-
-    /* Must have an existing internal object */
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (ObjDesc)
-    {
-        HandlerObj = ObjDesc->Device.Handler;
-
-        /* Walk the linked list of handlers for this object */
-
-        while (HandlerObj)
-        {
-            if (HandlerObj->AddressSpace.SpaceId == SpaceId)
-            {
-                if (HandlerObj->AddressSpace.HandlerFlags &
-                        ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)
-                {
-                    return (TRUE);
-                }
-            }
-
-            HandlerObj = HandlerObj->AddressSpace.Next;
-        }
-    }
-
-    return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInitializeOpRegions
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute _REG methods for all Operation Regions that have
- *              an installed default region handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitializeOpRegions (
-    void)
-{
-    ACPI_STATUS             Status;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (EvInitializeOpRegions);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Run the _REG methods for OpRegions in each default address space */
-
-    for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++)
-    {
-        /*
-         * Make sure the installed handler is the DEFAULT handler. If not the
-         * default, the _REG methods will have already been run (when the
-         * handler was installed)
-         */
-        if (AcpiEvHasDefaultHandler (AcpiGbl_RootNode,
-               AcpiGbl_DefaultAddressSpaces[i]))
-        {
-            Status = AcpiEvExecuteRegMethods (AcpiGbl_RootNode,
-                        AcpiGbl_DefaultAddressSpaces[i]);
-        }
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvExecuteRegMethod
- *
- * PARAMETERS:  RegionObj           - Region object
- *              Function            - Passed to _REG: On (1) or Off (0)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute _REG method for a region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvExecuteRegMethod (
-    ACPI_OPERAND_OBJECT     *RegionObj,
-    UINT32                  Function)
-{
-    ACPI_EVALUATE_INFO      *Info;
-    ACPI_OPERAND_OBJECT     *Args[3];
-    ACPI_OPERAND_OBJECT     *RegionObj2;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvExecuteRegMethod);
-
-
-    RegionObj2 = AcpiNsGetSecondaryObject (RegionObj);
-    if (!RegionObj2)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    if (RegionObj2->Extra.Method_REG == NULL)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Allocate and initialize the evaluation information block */
-
-    Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
-    if (!Info)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Info->PrefixNode = RegionObj2->Extra.Method_REG;
-    Info->Pathname = NULL;
-    Info->Parameters = Args;
-    Info->Flags = ACPI_IGNORE_RETURN_VALUE;
-
-    /*
-     * The _REG method has two arguments:
-     *
-     * Arg0 - Integer:
-     *  Operation region space ID Same value as RegionObj->Region.SpaceId
-     *
-     * Arg1 - Integer:
-     *  connection status 1 for connecting the handler, 0 for disconnecting
-     *  the handler (Passed as a parameter)
-     */
-    Args[0] = AcpiUtCreateIntegerObject ((UINT64) RegionObj->Region.SpaceId);
-    if (!Args[0])
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup1;
-    }
-
-    Args[1] = AcpiUtCreateIntegerObject ((UINT64) Function);
-    if (!Args[1])
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup2;
-    }
-
-    Args[2] = NULL; /* Terminate list */
-
-    /* Execute the method, no return value */
-
-    ACPI_DEBUG_EXEC (
-        AcpiUtDisplayInitPathname (ACPI_TYPE_METHOD, Info->PrefixNode, NULL));
-
-    Status = AcpiNsEvaluate (Info);
-    AcpiUtRemoveReference (Args[1]);
-
-Cleanup2:
-    AcpiUtRemoveReference (Args[0]);
-
-Cleanup1:
-    ACPI_FREE (Info);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvAddressSpaceDispatch
- *
- * PARAMETERS:  RegionObj           - Internal region object
- *              Function            - Read or Write operation
- *              RegionOffset        - Where in the region to read or write
- *              BitWidth            - Field width in bits (8, 16, 32, or 64)
- *              Value               - Pointer to in or out value, must be
- *                                    full 64-bit ACPI_INTEGER
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Dispatch an address space or operation region access to
- *              a previously installed handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvAddressSpaceDispatch (
-    ACPI_OPERAND_OBJECT     *RegionObj,
-    UINT32                  Function,
-    UINT32                  RegionOffset,
-    UINT32                  BitWidth,
-    ACPI_INTEGER            *Value)
-{
-    ACPI_STATUS             Status;
-    ACPI_ADR_SPACE_HANDLER  Handler;
-    ACPI_ADR_SPACE_SETUP    RegionSetup;
-    ACPI_OPERAND_OBJECT     *HandlerDesc;
-    ACPI_OPERAND_OBJECT     *RegionObj2;
-    void                    *RegionContext = NULL;
-
-
-    ACPI_FUNCTION_TRACE (EvAddressSpaceDispatch);
-
-
-    RegionObj2 = AcpiNsGetSecondaryObject (RegionObj);
-    if (!RegionObj2)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    /* Ensure that there is a handler associated with this region */
-
-    HandlerDesc = RegionObj->Region.Handler;
-    if (!HandlerDesc)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "No handler for Region [%4.4s] (%p) [%s]",
-            AcpiUtGetNodeName (RegionObj->Region.Node),
-            RegionObj, AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    /*
-     * It may be the case that the region has never been initialized.
-     * Some types of regions require special init code
-     */
-    if (!(RegionObj->Region.Flags & AOPOBJ_SETUP_COMPLETE))
-    {
-        /* This region has not been initialized yet, do it */
-
-        RegionSetup = HandlerDesc->AddressSpace.Setup;
-        if (!RegionSetup)
-        {
-            /* No initialization routine, exit with error */
-
-            ACPI_ERROR ((AE_INFO,
-                "No init routine for region(%p) [%s]",
-                RegionObj, AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-            return_ACPI_STATUS (AE_NOT_EXIST);
-        }
-
-        /*
-         * We must exit the interpreter because the region setup will
-         * potentially execute control methods (for example, the _REG method
-         * for this region)
-         */
-        AcpiExExitInterpreter ();
-
-        Status = RegionSetup (RegionObj, ACPI_REGION_ACTIVATE,
-                    HandlerDesc->AddressSpace.Context, &RegionContext);
-
-        /* Re-enter the interpreter */
-
-        AcpiExEnterInterpreter ();
-
-        /* Check for failure of the Region Setup */
-
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "During region initialization: [%s]",
-                AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Region initialization may have been completed by RegionSetup */
-
-        if (!(RegionObj->Region.Flags & AOPOBJ_SETUP_COMPLETE))
-        {
-            RegionObj->Region.Flags |= AOPOBJ_SETUP_COMPLETE;
-
-            if (RegionObj2->Extra.RegionContext)
-            {
-                /* The handler for this region was already installed */
-
-                ACPI_FREE (RegionContext);
-            }
-            else
-            {
-                /*
-                 * Save the returned context for use in all accesses to
-                 * this particular region
-                 */
-                RegionObj2->Extra.RegionContext = RegionContext;
-            }
-        }
-    }
-
-    /* We have everything we need, we can invoke the address space handler */
-
-    Handler = HandlerDesc->AddressSpace.Handler;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-        "Handler %p (@%p) Address %8.8X%8.8X [%s]\n",
-        &RegionObj->Region.Handler->AddressSpace, Handler,
-        ACPI_FORMAT_NATIVE_UINT (RegionObj->Region.Address + RegionOffset),
-        AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-
-    if (!(HandlerDesc->AddressSpace.HandlerFlags &
-            ACPI_ADDR_HANDLER_DEFAULT_INSTALLED))
-    {
-        /*
-         * For handlers other than the default (supplied) handlers, we must
-         * exit the interpreter because the handler *might* block -- we don't
-         * know what it will do, so we can't hold the lock on the intepreter.
-         */
-        AcpiExExitInterpreter();
-    }
-
-    /* Call the handler */
-
-    Status = Handler (Function,
-        (RegionObj->Region.Address + RegionOffset), BitWidth, Value,
-        HandlerDesc->AddressSpace.Context, RegionObj2->Extra.RegionContext);
-
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "Returned by Handler for [%s]",
-            AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-    }
-
-    if (!(HandlerDesc->AddressSpace.HandlerFlags &
-            ACPI_ADDR_HANDLER_DEFAULT_INSTALLED))
-    {
-        /*
-         * We just returned from a non-default handler, we must re-enter the
-         * interpreter
-         */
-       AcpiExEnterInterpreter ();
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvDetachRegion
- *
- * PARAMETERS:  RegionObj           - Region Object
- *              AcpiNsIsLocked      - Namespace Region Already Locked?
- *
- * RETURN:      None
- *
- * DESCRIPTION: Break the association between the handler and the region
- *              this is a two way association.
- *
- ******************************************************************************/
-
-void
-AcpiEvDetachRegion(
-    ACPI_OPERAND_OBJECT     *RegionObj,
-    BOOLEAN                 AcpiNsIsLocked)
-{
-    ACPI_OPERAND_OBJECT     *HandlerObj;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     **LastObjPtr;
-    ACPI_ADR_SPACE_SETUP    RegionSetup;
-    void                    **RegionContext;
-    ACPI_OPERAND_OBJECT     *RegionObj2;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvDetachRegion);
-
-
-    RegionObj2 = AcpiNsGetSecondaryObject (RegionObj);
-    if (!RegionObj2)
-    {
-        return_VOID;
-    }
-    RegionContext = &RegionObj2->Extra.RegionContext;
-
-    /* Get the address handler from the region object */
-
-    HandlerObj = RegionObj->Region.Handler;
-    if (!HandlerObj)
-    {
-        /* This region has no handler, all done */
-
-        return_VOID;
-    }
-
-    /* Find this region in the handler's list */
-
-    ObjDesc = HandlerObj->AddressSpace.RegionList;
-    LastObjPtr = &HandlerObj->AddressSpace.RegionList;
-
-    while (ObjDesc)
-    {
-        /* Is this the correct Region? */
-
-        if (ObjDesc == RegionObj)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-                "Removing Region %p from address handler %p\n",
-                RegionObj, HandlerObj));
-
-            /* This is it, remove it from the handler's list */
-
-            *LastObjPtr = ObjDesc->Region.Next;
-            ObjDesc->Region.Next = NULL;        /* Must clear field */
-
-            if (AcpiNsIsLocked)
-            {
-                Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_VOID;
-                }
-            }
-
-            /* Now stop region accesses by executing the _REG method */
-
-            Status = AcpiEvExecuteRegMethod (RegionObj, 0);
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_EXCEPTION ((AE_INFO, Status, "from region _REG, [%s]",
-                    AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-            }
-
-            if (AcpiNsIsLocked)
-            {
-                Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_VOID;
-                }
-            }
-
-            /*
-             * If the region has been activated, call the setup handler with
-             * the deactivate notification
-             */
-            if (RegionObj->Region.Flags & AOPOBJ_SETUP_COMPLETE)
-            {
-                RegionSetup = HandlerObj->AddressSpace.Setup;
-                Status = RegionSetup (RegionObj, ACPI_REGION_DEACTIVATE,
-                    HandlerObj->AddressSpace.Context, RegionContext);
-
-                /* Init routine may fail, Just ignore errors */
-
-                if (ACPI_FAILURE (Status))
-                {
-                    ACPI_EXCEPTION ((AE_INFO, Status,
-                        "from region handler - deactivate, [%s]",
-                        AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-                }
-
-                RegionObj->Region.Flags &= ~(AOPOBJ_SETUP_COMPLETE);
-            }
-
-            /*
-             * Remove handler reference in the region
-             *
-             * NOTE: this doesn't mean that the region goes away, the region
-             * is just inaccessible as indicated to the _REG method
-             *
-             * If the region is on the handler's list, this must be the
-             * region's handler
-             */
-            RegionObj->Region.Handler = NULL;
-            AcpiUtRemoveReference (HandlerObj);
-
-            return_VOID;
-        }
-
-        /* Walk the linked list of handlers */
-
-        LastObjPtr = &ObjDesc->Region.Next;
-        ObjDesc = ObjDesc->Region.Next;
-    }
-
-    /* If we get here, the region was not in the handler's region list */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-        "Cannot remove region %p from address handler %p\n",
-        RegionObj, HandlerObj));
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvAttachRegion
- *
- * PARAMETERS:  HandlerObj          - Handler Object
- *              RegionObj           - Region Object
- *              AcpiNsIsLocked      - Namespace Region Already Locked?
- *
- * RETURN:      None
- *
- * DESCRIPTION: Create the association between the handler and the region
- *              this is a two way association.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvAttachRegion (
-    ACPI_OPERAND_OBJECT     *HandlerObj,
-    ACPI_OPERAND_OBJECT     *RegionObj,
-    BOOLEAN                 AcpiNsIsLocked)
-{
-
-    ACPI_FUNCTION_TRACE (EvAttachRegion);
-
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-        "Adding Region [%4.4s] %p to address handler %p [%s]\n",
-        AcpiUtGetNodeName (RegionObj->Region.Node),
-        RegionObj, HandlerObj,
-        AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-
-    /* Link this region to the front of the handler's list */
-
-    RegionObj->Region.Next = HandlerObj->AddressSpace.RegionList;
-    HandlerObj->AddressSpace.RegionList = RegionObj;
-
-    /* Install the region's handler */
-
-    if (RegionObj->Region.Handler)
-    {
-        return_ACPI_STATUS (AE_ALREADY_EXISTS);
-    }
-
-    RegionObj->Region.Handler = HandlerObj;
-    AcpiUtAddReference (HandlerObj);
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInstallHandler
- *
- * PARAMETERS:  WalkNamespace callback
- *
- * DESCRIPTION: This routine installs an address handler into objects that are
- *              of type Region or Device.
- *
- *              If the Object is a Device, and the device has a handler of
- *              the same type then the search is terminated in that branch.
- *
- *              This is because the existing handler is closer in proximity
- *              to any more regions than the one we are trying to install.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvInstallHandler (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_OPERAND_OBJECT     *HandlerObj;
-    ACPI_OPERAND_OBJECT     *NextHandlerObj;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_NAME (EvInstallHandler);
-
-
-    HandlerObj = (ACPI_OPERAND_OBJECT  *) Context;
-
-    /* Parameter validation */
-
-    if (!HandlerObj)
-    {
-        return (AE_OK);
-    }
-
-    /* Convert and validate the device handle */
-
-    Node = AcpiNsValidateHandle (ObjHandle);
-    if (!Node)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * We only care about regions and objects that are allowed to have
-     * address space handlers
-     */
-    if ((Node->Type != ACPI_TYPE_DEVICE) &&
-        (Node->Type != ACPI_TYPE_REGION) &&
-        (Node != AcpiGbl_RootNode))
-    {
-        return (AE_OK);
-    }
-
-    /* Check for an existing internal object */
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (!ObjDesc)
-    {
-        /* No object, just exit */
-
-        return (AE_OK);
-    }
-
-    /* Devices are handled different than regions */
-
-    if (ObjDesc->Common.Type == ACPI_TYPE_DEVICE)
-    {
-        /* Check if this Device already has a handler for this address space */
-
-        NextHandlerObj = ObjDesc->Device.Handler;
-        while (NextHandlerObj)
-        {
-            /* Found a handler, is it for the same address space? */
-
-            if (NextHandlerObj->AddressSpace.SpaceId ==
-                    HandlerObj->AddressSpace.SpaceId)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-                    "Found handler for region [%s] in device %p(%p) "
-                    "handler %p\n",
-                    AcpiUtGetRegionName (HandlerObj->AddressSpace.SpaceId),
-                    ObjDesc, NextHandlerObj, HandlerObj));
-
-                /*
-                 * Since the object we found it on was a device, then it
-                 * means that someone has already installed a handler for
-                 * the branch of the namespace from this device on. Just
-                 * bail out telling the walk routine to not traverse this
-                 * branch. This preserves the scoping rule for handlers.
-                 */
-                return (AE_CTRL_DEPTH);
-            }
-
-            /* Walk the linked list of handlers attached to this device */
-
-            NextHandlerObj = NextHandlerObj->AddressSpace.Next;
-        }
-
-        /*
-         * As long as the device didn't have a handler for this space we
-         * don't care about it. We just ignore it and proceed.
-         */
-        return (AE_OK);
-    }
-
-    /* Object is a Region */
-
-    if (ObjDesc->Region.SpaceId != HandlerObj->AddressSpace.SpaceId)
-    {
-        /* This region is for a different address space, just ignore it */
-
-        return (AE_OK);
-    }
-
-    /*
-     * Now we have a region and it is for the handler's address space type.
-     *
-     * First disconnect region for any previous handler (if any)
-     */
-    AcpiEvDetachRegion (ObjDesc, FALSE);
-
-    /* Connect the region to the new handler */
-
-    Status = AcpiEvAttachRegion (HandlerObj, ObjDesc, FALSE);
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInstallSpaceHandler
- *
- * PARAMETERS:  Node            - Namespace node for the device
- *              SpaceId         - The address space ID
- *              Handler         - Address of the handler
- *              Setup           - Address of the setup function
- *              Context         - Value passed to the handler on each access
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install a handler for all OpRegions of a given SpaceId.
- *              Assumes namespace is locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInstallSpaceHandler (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_ADR_SPACE_TYPE     SpaceId,
-    ACPI_ADR_SPACE_HANDLER  Handler,
-    ACPI_ADR_SPACE_SETUP    Setup,
-    void                    *Context)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *HandlerObj;
-    ACPI_STATUS             Status;
-    ACPI_OBJECT_TYPE        Type;
-    UINT8                  Flags = 0;
-
-
-    ACPI_FUNCTION_TRACE (EvInstallSpaceHandler);
-
-
-    /*
-     * This registration is valid for only the types below and the root. This
-     * is where the default handlers get placed.
-     */
-    if ((Node->Type != ACPI_TYPE_DEVICE)     &&
-        (Node->Type != ACPI_TYPE_PROCESSOR)  &&
-        (Node->Type != ACPI_TYPE_THERMAL)    &&
-        (Node != AcpiGbl_RootNode))
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    if (Handler == ACPI_DEFAULT_HANDLER)
-    {
-        Flags = ACPI_ADDR_HANDLER_DEFAULT_INSTALLED;
-
-        switch (SpaceId)
-        {
-        case ACPI_ADR_SPACE_SYSTEM_MEMORY:
-            Handler = AcpiExSystemMemorySpaceHandler;
-            Setup   = AcpiEvSystemMemoryRegionSetup;
-            break;
-
-        case ACPI_ADR_SPACE_SYSTEM_IO:
-            Handler = AcpiExSystemIoSpaceHandler;
-            Setup   = AcpiEvIoSpaceRegionSetup;
-            break;
-
-        case ACPI_ADR_SPACE_PCI_CONFIG:
-            Handler = AcpiExPciConfigSpaceHandler;
-            Setup   = AcpiEvPciConfigRegionSetup;
-            break;
-
-        case ACPI_ADR_SPACE_CMOS:
-            Handler = AcpiExCmosSpaceHandler;
-            Setup   = AcpiEvCmosRegionSetup;
-            break;
-
-        case ACPI_ADR_SPACE_PCI_BAR_TARGET:
-            Handler = AcpiExPciBarSpaceHandler;
-            Setup   = AcpiEvPciBarRegionSetup;
-            break;
-
-        case ACPI_ADR_SPACE_DATA_TABLE:
-            Handler = AcpiExDataTableSpaceHandler;
-            Setup   = NULL;
-            break;
-
-        default:
-            Status = AE_BAD_PARAMETER;
-            goto UnlockAndExit;
-        }
-    }
-
-    /* If the caller hasn't specified a setup routine, use the default */
-
-    if (!Setup)
-    {
-        Setup = AcpiEvDefaultRegionSetup;
-    }
-
-    /* Check for an existing internal object */
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (ObjDesc)
-    {
-        /*
-         * The attached device object already exists. Make sure the handler
-         * is not already installed.
-         */
-        HandlerObj = ObjDesc->Device.Handler;
-
-        /* Walk the handler list for this device */
-
-        while (HandlerObj)
-        {
-            /* Same SpaceId indicates a handler already installed */
-
-            if (HandlerObj->AddressSpace.SpaceId == SpaceId)
-            {
-                if (HandlerObj->AddressSpace.Handler == Handler)
-                {
-                    /*
-                     * It is (relatively) OK to attempt to install the SAME
-                     * handler twice. This can easily happen with the
-                     * PCI_Config space.
-                     */
-                    Status = AE_SAME_HANDLER;
-                    goto UnlockAndExit;
-                }
-                else
-                {
-                    /* A handler is already installed */
-
-                    Status = AE_ALREADY_EXISTS;
-                }
-                goto UnlockAndExit;
-            }
-
-            /* Walk the linked list of handlers */
-
-            HandlerObj = HandlerObj->AddressSpace.Next;
-        }
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-            "Creating object on Device %p while installing handler\n", Node));
-
-        /* ObjDesc does not exist, create one */
-
-        if (Node->Type == ACPI_TYPE_ANY)
-        {
-            Type = ACPI_TYPE_DEVICE;
-        }
-        else
-        {
-            Type = Node->Type;
-        }
-
-        ObjDesc = AcpiUtCreateInternalObject (Type);
-        if (!ObjDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto UnlockAndExit;
-        }
-
-        /* Init new descriptor */
-
-        ObjDesc->Common.Type = (UINT8) Type;
-
-        /* Attach the new object to the Node */
-
-        Status = AcpiNsAttachObject (Node, ObjDesc, Type);
-
-        /* Remove local reference to the object */
-
-        AcpiUtRemoveReference (ObjDesc);
-
-        if (ACPI_FAILURE (Status))
-        {
-            goto UnlockAndExit;
-        }
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-        "Installing address handler for region %s(%X) on Device %4.4s %p(%p)\n",
-        AcpiUtGetRegionName (SpaceId), SpaceId,
-        AcpiUtGetNodeName (Node), Node, ObjDesc));
-
-    /*
-     * Install the handler
-     *
-     * At this point there is no existing handler. Just allocate the object
-     * for the handler and link it into the list.
-     */
-    HandlerObj = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_ADDRESS_HANDLER);
-    if (!HandlerObj)
-    {
-        Status = AE_NO_MEMORY;
-        goto UnlockAndExit;
-    }
-
-    /* Init handler obj */
-
-    HandlerObj->AddressSpace.SpaceId = (UINT8) SpaceId;
-    HandlerObj->AddressSpace.HandlerFlags = Flags;
-    HandlerObj->AddressSpace.RegionList = NULL;
-    HandlerObj->AddressSpace.Node = Node;
-    HandlerObj->AddressSpace.Handler = Handler;
-    HandlerObj->AddressSpace.Context = Context;
-    HandlerObj->AddressSpace.Setup  = Setup;
-
-    /* Install at head of Device.AddressSpace list */
-
-    HandlerObj->AddressSpace.Next = ObjDesc->Device.Handler;
-
-    /*
-     * The Device object is the first reference on the HandlerObj.
-     * Each region that uses the handler adds a reference.
-     */
-    ObjDesc->Device.Handler = HandlerObj;
-
-    /*
-     * Walk the namespace finding all of the regions this
-     * handler will manage.
-     *
-     * Start at the device and search the branch toward
-     * the leaf nodes until either the leaf is encountered or
-     * a device is detected that has an address handler of the
-     * same type.
-     *
-     * In either case, back up and search down the remainder
-     * of the branch
-     */
-    Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, Node, ACPI_UINT32_MAX,
-                ACPI_NS_WALK_UNLOCK, AcpiEvInstallHandler, NULL,
-                HandlerObj, NULL);
-
-UnlockAndExit:
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvExecuteRegMethods
- *
- * PARAMETERS:  Node            - Namespace node for the device
- *              SpaceId         - The address space ID
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Run all _REG methods for the input Space ID;
- *              Note: assumes namespace is locked, or system init time.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvExecuteRegMethods (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_ADR_SPACE_TYPE     SpaceId)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvExecuteRegMethods);
-
-
-    /*
-     * Run all _REG methods for all Operation Regions for this space ID. This
-     * is a separate walk in order to handle any interdependencies between
-     * regions and _REG methods. (i.e. handlers must be installed for all
-     * regions of this Space ID before we can run any _REG methods)
-     */
-    Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, Node, ACPI_UINT32_MAX,
-                ACPI_NS_WALK_UNLOCK, AcpiEvRegRun, NULL,
-                &SpaceId, NULL);
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvRegRun
- *
- * PARAMETERS:  WalkNamespace callback
- *
- * DESCRIPTION: Run _REG method for region objects of the requested spaceID
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvRegRun (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_ADR_SPACE_TYPE     SpaceId;
-    ACPI_STATUS             Status;
-
-
-    SpaceId = *ACPI_CAST_PTR (ACPI_ADR_SPACE_TYPE, Context);
-
-    /* Convert and validate the device handle */
-
-    Node = AcpiNsValidateHandle (ObjHandle);
-    if (!Node)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * We only care about regions.and objects that are allowed to have address
-     * space handlers
-     */
-    if ((Node->Type != ACPI_TYPE_REGION) &&
-        (Node != AcpiGbl_RootNode))
-    {
-        return (AE_OK);
-    }
-
-    /* Check for an existing internal object */
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (!ObjDesc)
-    {
-        /* No object, just exit */
-
-        return (AE_OK);
-    }
-
-    /* Object is a Region */
-
-    if (ObjDesc->Region.SpaceId != SpaceId)
-    {
-        /* This region is for a different address space, just ignore it */
-
-        return (AE_OK);
-    }
-
-    Status = AcpiEvExecuteRegMethod (ObjDesc, 1);
-    return (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evrgnini.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evrgnini.c
deleted file mode 100644 (file)
index 67f6cdd..0000000
+++ /dev/null
@@ -1,799 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evrgnini- ACPI AddressSpace (OpRegion) init
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __EVRGNINI_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-#include "acnamesp.h"
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evrgnini")
-
-/* Local prototypes */
-
-static BOOLEAN
-AcpiEvIsPciRootBridge (
-    ACPI_NAMESPACE_NODE     *Node);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvSystemMemoryRegionSetup
- *
- * PARAMETERS:  Handle              - Region we are interested in
- *              Function            - Start or stop
- *              HandlerContext      - Address space handler context
- *              RegionContext       - Region specific context
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Setup a SystemMemory operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvSystemMemoryRegionSetup (
-    ACPI_HANDLE             Handle,
-    UINT32                  Function,
-    void                    *HandlerContext,
-    void                    **RegionContext)
-{
-    ACPI_OPERAND_OBJECT     *RegionDesc = (ACPI_OPERAND_OBJECT *) Handle;
-    ACPI_MEM_SPACE_CONTEXT  *LocalRegionContext;
-
-
-    ACPI_FUNCTION_TRACE (EvSystemMemoryRegionSetup);
-
-
-    if (Function == ACPI_REGION_DEACTIVATE)
-    {
-        if (*RegionContext)
-        {
-            LocalRegionContext = (ACPI_MEM_SPACE_CONTEXT *) *RegionContext;
-
-            /* Delete a cached mapping if present */
-
-            if (LocalRegionContext->MappedLength)
-            {
-                AcpiOsUnmapMemory (LocalRegionContext->MappedLogicalAddress,
-                    LocalRegionContext->MappedLength);
-            }
-            ACPI_FREE (LocalRegionContext);
-            *RegionContext = NULL;
-        }
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Create a new context */
-
-    LocalRegionContext = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_MEM_SPACE_CONTEXT));
-    if (!(LocalRegionContext))
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Save the region length and address for use in the handler */
-
-    LocalRegionContext->Length  = RegionDesc->Region.Length;
-    LocalRegionContext->Address = RegionDesc->Region.Address;
-
-    *RegionContext = LocalRegionContext;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvIoSpaceRegionSetup
- *
- * PARAMETERS:  Handle              - Region we are interested in
- *              Function            - Start or stop
- *              HandlerContext      - Address space handler context
- *              RegionContext       - Region specific context
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Setup a IO operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvIoSpaceRegionSetup (
-    ACPI_HANDLE             Handle,
-    UINT32                  Function,
-    void                    *HandlerContext,
-    void                    **RegionContext)
-{
-    ACPI_FUNCTION_TRACE (EvIoSpaceRegionSetup);
-
-
-    if (Function == ACPI_REGION_DEACTIVATE)
-    {
-        *RegionContext = NULL;
-    }
-    else
-    {
-        *RegionContext = HandlerContext;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvPciConfigRegionSetup
- *
- * PARAMETERS:  Handle              - Region we are interested in
- *              Function            - Start or stop
- *              HandlerContext      - Address space handler context
- *              RegionContext       - Region specific context
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Setup a PCI_Config operation region
- *
- * MUTEX:       Assumes namespace is not locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvPciConfigRegionSetup (
-    ACPI_HANDLE             Handle,
-    UINT32                  Function,
-    void                    *HandlerContext,
-    void                    **RegionContext)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_INTEGER            PciValue;
-    ACPI_PCI_ID             *PciId = *RegionContext;
-    ACPI_OPERAND_OBJECT     *HandlerObj;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-    ACPI_NAMESPACE_NODE     *PciRootNode;
-    ACPI_NAMESPACE_NODE     *PciDeviceNode;
-    ACPI_OPERAND_OBJECT     *RegionObj = (ACPI_OPERAND_OBJECT  *) Handle;
-
-
-    ACPI_FUNCTION_TRACE (EvPciConfigRegionSetup);
-
-
-    HandlerObj = RegionObj->Region.Handler;
-    if (!HandlerObj)
-    {
-        /*
-         * No installed handler. This shouldn't happen because the dispatch
-         * routine checks before we get here, but we check again just in case.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-            "Attempting to init a region %p, with no handler\n", RegionObj));
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    *RegionContext = NULL;
-    if (Function == ACPI_REGION_DEACTIVATE)
-    {
-        if (PciId)
-        {
-            ACPI_FREE (PciId);
-        }
-        return_ACPI_STATUS (Status);
-    }
-
-    ParentNode = AcpiNsGetParentNode (RegionObj->Region.Node);
-
-    /*
-     * Get the _SEG and _BBN values from the device upon which the handler
-     * is installed.
-     *
-     * We need to get the _SEG and _BBN objects relative to the PCI BUS device.
-     * This is the device the handler has been registered to handle.
-     */
-
-    /*
-     * If the AddressSpace.Node is still pointing to the root, we need
-     * to scan upward for a PCI Root bridge and re-associate the OpRegion
-     * handlers with that device.
-     */
-    if (HandlerObj->AddressSpace.Node == AcpiGbl_RootNode)
-    {
-        /* Start search from the parent object */
-
-        PciRootNode = ParentNode;
-        while (PciRootNode != AcpiGbl_RootNode)
-        {
-            /* Get the _HID/_CID in order to detect a RootBridge */
-
-            if (AcpiEvIsPciRootBridge (PciRootNode))
-            {
-                /* Install a handler for this PCI root bridge */
-
-                Status = AcpiInstallAddressSpaceHandler (
-                            (ACPI_HANDLE) PciRootNode,
-                            ACPI_ADR_SPACE_PCI_CONFIG,
-                            ACPI_DEFAULT_HANDLER, NULL, NULL);
-                if (ACPI_FAILURE (Status))
-                {
-                    if (Status == AE_SAME_HANDLER)
-                    {
-                        /*
-                         * It is OK if the handler is already installed on the
-                         * root bridge. Still need to return a context object
-                         * for the new PCI_Config operation region, however.
-                         */
-                        Status = AE_OK;
-                    }
-                    else
-                    {
-                        ACPI_EXCEPTION ((AE_INFO, Status,
-                            "Could not install PciConfig handler "
-                            "for Root Bridge %4.4s",
-                            AcpiUtGetNodeName (PciRootNode)));
-                    }
-                }
-                break;
-            }
-
-            PciRootNode = AcpiNsGetParentNode (PciRootNode);
-        }
-
-        /* PCI root bridge not found, use namespace root node */
-    }
-    else
-    {
-        PciRootNode = HandlerObj->AddressSpace.Node;
-    }
-
-    /*
-     * If this region is now initialized, we are done.
-     * (InstallAddressSpaceHandler could have initialized it)
-     */
-    if (RegionObj->Region.Flags & AOPOBJ_SETUP_COMPLETE)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Region is still not initialized. Create a new context */
-
-    PciId = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PCI_ID));
-    if (!PciId)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /*
-     * For PCI_Config space access, we need the segment, bus, device and
-     * function numbers. Acquire them here.
-     *
-     * Find the parent device object. (This allows the operation region to be
-     * within a subscope under the device, such as a control method.)
-     */
-    PciDeviceNode = RegionObj->Region.Node;
-    while (PciDeviceNode && (PciDeviceNode->Type != ACPI_TYPE_DEVICE))
-    {
-        PciDeviceNode = AcpiNsGetParentNode (PciDeviceNode);
-    }
-
-    if (!PciDeviceNode)
-    {
-        ACPI_FREE (PciId);
-        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-    }
-
-    /*
-     * Get the PCI device and function numbers from the _ADR object contained
-     * in the parent's scope.
-     */
-    Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR,
-                PciDeviceNode, &PciValue);
-
-    /*
-     * The default is zero, and since the allocation above zeroed the data,
-     * just do nothing on failure.
-     */
-    if (ACPI_SUCCESS (Status))
-    {
-        PciId->Device   = ACPI_HIWORD (ACPI_LODWORD (PciValue));
-        PciId->Function = ACPI_LOWORD (ACPI_LODWORD (PciValue));
-    }
-
-    /* The PCI segment number comes from the _SEG method */
-
-    Status = AcpiUtEvaluateNumericObject (METHOD_NAME__SEG,
-                PciRootNode, &PciValue);
-    if (ACPI_SUCCESS (Status))
-    {
-        PciId->Segment = ACPI_LOWORD (PciValue);
-    }
-
-    /* The PCI bus number comes from the _BBN method */
-
-    Status = AcpiUtEvaluateNumericObject (METHOD_NAME__BBN,
-                PciRootNode, &PciValue);
-    if (ACPI_SUCCESS (Status))
-    {
-        PciId->Bus = ACPI_LOWORD (PciValue);
-    }
-
-    /* Complete this device's PciId */
-
-    AcpiOsDerivePciId (PciRootNode, RegionObj->Region.Node, &PciId);
-
-    *RegionContext = PciId;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvIsPciRootBridge
- *
- * PARAMETERS:  Node            - Device node being examined
- *
- * RETURN:      TRUE if device is a PCI/PCI-Express Root Bridge
- *
- * DESCRIPTION: Determine if the input device represents a PCI Root Bridge by
- *              examining the _HID and _CID for the device.
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiEvIsPciRootBridge (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_STATUS             Status;
-    ACPI_DEVICE_ID          *Hid;
-    ACPI_DEVICE_ID_LIST     *Cid;
-    UINT32                  i;
-    BOOLEAN                 Match;
-
-
-    /* Get the _HID and check for a PCI Root Bridge */
-
-    Status = AcpiUtExecute_HID (Node, &Hid);
-    if (ACPI_FAILURE (Status))
-    {
-        return (FALSE);
-    }
-
-    Match = AcpiUtIsPciRootBridge (Hid->String);
-    ACPI_FREE (Hid);
-
-    if (Match)
-    {
-        return (TRUE);
-    }
-
-    /* The _HID did not match. Get the _CID and check for a PCI Root Bridge */
-
-    Status = AcpiUtExecute_CID (Node, &Cid);
-    if (ACPI_FAILURE (Status))
-    {
-        return (FALSE);
-    }
-
-    /* Check all _CIDs in the returned list */
-
-    for (i = 0; i < Cid->Count; i++)
-    {
-        if (AcpiUtIsPciRootBridge (Cid->Ids[i].String))
-        {
-            ACPI_FREE (Cid);
-            return (TRUE);
-        }
-    }
-
-    ACPI_FREE (Cid);
-    return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvPciBarRegionSetup
- *
- * PARAMETERS:  Handle              - Region we are interested in
- *              Function            - Start or stop
- *              HandlerContext      - Address space handler context
- *              RegionContext       - Region specific context
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Setup a PciBAR operation region
- *
- * MUTEX:       Assumes namespace is not locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvPciBarRegionSetup (
-    ACPI_HANDLE             Handle,
-    UINT32                  Function,
-    void                    *HandlerContext,
-    void                    **RegionContext)
-{
-    ACPI_FUNCTION_TRACE (EvPciBarRegionSetup);
-
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvCmosRegionSetup
- *
- * PARAMETERS:  Handle              - Region we are interested in
- *              Function            - Start or stop
- *              HandlerContext      - Address space handler context
- *              RegionContext       - Region specific context
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Setup a CMOS operation region
- *
- * MUTEX:       Assumes namespace is not locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvCmosRegionSetup (
-    ACPI_HANDLE             Handle,
-    UINT32                  Function,
-    void                    *HandlerContext,
-    void                    **RegionContext)
-{
-    ACPI_FUNCTION_TRACE (EvCmosRegionSetup);
-
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvDefaultRegionSetup
- *
- * PARAMETERS:  Handle              - Region we are interested in
- *              Function            - Start or stop
- *              HandlerContext      - Address space handler context
- *              RegionContext       - Region specific context
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Default region initialization
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvDefaultRegionSetup (
-    ACPI_HANDLE             Handle,
-    UINT32                  Function,
-    void                    *HandlerContext,
-    void                    **RegionContext)
-{
-    ACPI_FUNCTION_TRACE (EvDefaultRegionSetup);
-
-
-    if (Function == ACPI_REGION_DEACTIVATE)
-    {
-        *RegionContext = NULL;
-    }
-    else
-    {
-        *RegionContext = HandlerContext;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvInitializeRegion
- *
- * PARAMETERS:  RegionObj       - Region we are initializing
- *              AcpiNsLocked    - Is namespace locked?
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initializes the region, finds any _REG methods and saves them
- *              for execution at a later time
- *
- *              Get the appropriate address space handler for a newly
- *              created region.
- *
- *              This also performs address space specific initialization. For
- *              example, PCI regions must have an _ADR object that contains
- *              a PCI address in the scope of the definition. This address is
- *              required to perform an access to PCI config space.
- *
- * MUTEX:       Interpreter should be unlocked, because we may run the _REG
- *              method for this region.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitializeRegion (
-    ACPI_OPERAND_OBJECT     *RegionObj,
-    BOOLEAN                 AcpiNsLocked)
-{
-    ACPI_OPERAND_OBJECT     *HandlerObj;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_ADR_SPACE_TYPE     SpaceId;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *MethodNode;
-    ACPI_NAME               *RegNamePtr = (ACPI_NAME *) METHOD_NAME__REG;
-    ACPI_OPERAND_OBJECT     *RegionObj2;
-
-
-    ACPI_FUNCTION_TRACE_U32 (EvInitializeRegion, AcpiNsLocked);
-
-
-    if (!RegionObj)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (RegionObj->Common.Flags & AOPOBJ_OBJECT_INITIALIZED)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    RegionObj2 = AcpiNsGetSecondaryObject (RegionObj);
-    if (!RegionObj2)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    Node = AcpiNsGetParentNode (RegionObj->Region.Node);
-    SpaceId = RegionObj->Region.SpaceId;
-
-    /* Setup defaults */
-
-    RegionObj->Region.Handler = NULL;
-    RegionObj2->Extra.Method_REG = NULL;
-    RegionObj->Common.Flags &= ~(AOPOBJ_SETUP_COMPLETE);
-    RegionObj->Common.Flags |= AOPOBJ_OBJECT_INITIALIZED;
-
-    /* Find any "_REG" method associated with this region definition */
-
-    Status = AcpiNsSearchOneScope (
-                *RegNamePtr, Node, ACPI_TYPE_METHOD, &MethodNode);
-    if (ACPI_SUCCESS (Status))
-    {
-        /*
-         * The _REG method is optional and there can be only one per region
-         * definition. This will be executed when the handler is attached
-         * or removed
-         */
-        RegionObj2->Extra.Method_REG = MethodNode;
-    }
-
-    /*
-     * The following loop depends upon the root Node having no parent
-     * ie: AcpiGbl_RootNode->ParentEntry being set to NULL
-     */
-    while (Node)
-    {
-        /* Check to see if a handler exists */
-
-        HandlerObj = NULL;
-        ObjDesc = AcpiNsGetAttachedObject (Node);
-        if (ObjDesc)
-        {
-            /* Can only be a handler if the object exists */
-
-            switch (Node->Type)
-            {
-            case ACPI_TYPE_DEVICE:
-
-                HandlerObj = ObjDesc->Device.Handler;
-                break;
-
-            case ACPI_TYPE_PROCESSOR:
-
-                HandlerObj = ObjDesc->Processor.Handler;
-                break;
-
-            case ACPI_TYPE_THERMAL:
-
-                HandlerObj = ObjDesc->ThermalZone.Handler;
-                break;
-
-            case ACPI_TYPE_METHOD:
-                /*
-                 * If we are executing module level code, the original
-                 * Node's object was replaced by this Method object and we
-                 * saved the handler in the method object.
-                 *
-                 * See AcpiNsExecModuleCode
-                 */
-                if (ObjDesc->Method.Flags & AOPOBJ_MODULE_LEVEL)
-                {
-                    HandlerObj = ObjDesc->Method.Extra.Handler;
-                }
-                break;
-
-            default:
-                /* Ignore other objects */
-                break;
-            }
-
-            while (HandlerObj)
-            {
-                /* Is this handler of the correct type? */
-
-                if (HandlerObj->AddressSpace.SpaceId == SpaceId)
-                {
-                    /* Found correct handler */
-
-                    ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-                        "Found handler %p for region %p in obj %p\n",
-                        HandlerObj, RegionObj, ObjDesc));
-
-                    Status = AcpiEvAttachRegion (HandlerObj, RegionObj,
-                                AcpiNsLocked);
-
-                    /*
-                     * Tell all users that this region is usable by
-                     * running the _REG method
-                     */
-                    if (AcpiNsLocked)
-                    {
-                        Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-                        if (ACPI_FAILURE (Status))
-                        {
-                            return_ACPI_STATUS (Status);
-                        }
-                    }
-
-                    Status = AcpiEvExecuteRegMethod (RegionObj, 1);
-
-                    if (AcpiNsLocked)
-                    {
-                        Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-                        if (ACPI_FAILURE (Status))
-                        {
-                            return_ACPI_STATUS (Status);
-                        }
-                    }
-
-                    return_ACPI_STATUS (AE_OK);
-                }
-
-                /* Try next handler in the list */
-
-                HandlerObj = HandlerObj->AddressSpace.Next;
-            }
-        }
-
-        /* This node does not have the handler we need; Pop up one level */
-
-        Node = AcpiNsGetParentNode (Node);
-    }
-
-    /* If we get here, there is no handler for this region */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-        "No handler for RegionType %s(%X) (RegionObj %p)\n",
-        AcpiUtGetRegionName (SpaceId), SpaceId, RegionObj));
-
-    return_ACPI_STATUS (AE_NOT_EXIST);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evsci.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evsci.c
deleted file mode 100644 (file)
index cde433c..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: evsci - System Control Interrupt configuration and
- *                      legacy to ACPI mode state transition functions
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
-
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evsci")
-
-/* Local prototypes */
-
-static UINT32 ACPI_SYSTEM_XFACE
-AcpiEvSciXruptHandler (
-    void                    *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvSciXruptHandler
- *
- * PARAMETERS:  Context   - Calling Context
- *
- * RETURN:      Status code indicates whether interrupt was handled.
- *
- * DESCRIPTION: Interrupt handler that will figure out what function or
- *              control method to call to deal with a SCI.
- *
- ******************************************************************************/
-
-static UINT32 ACPI_SYSTEM_XFACE
-AcpiEvSciXruptHandler (
-    void                    *Context)
-{
-    ACPI_GPE_XRUPT_INFO     *GpeXruptList = Context;
-    UINT32                  InterruptHandled = ACPI_INTERRUPT_NOT_HANDLED;
-
-
-    ACPI_FUNCTION_TRACE (EvSciXruptHandler);
-
-
-    /*
-     * We are guaranteed by the ACPI CA initialization/shutdown code that
-     * if this interrupt handler is installed, ACPI is enabled.
-     */
-
-    /*
-     * Fixed Events:
-     * Check for and dispatch any Fixed Events that have occurred
-     */
-    InterruptHandled |= AcpiEvFixedEventDetect ();
-
-    /*
-     * General Purpose Events:
-     * Check for and dispatch any GPEs that have occurred
-     */
-    InterruptHandled |= AcpiEvGpeDetect (GpeXruptList);
-
-    AcpiSciCount++;
-    return_UINT32 (InterruptHandled);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvGpeXruptHandler
- *
- * PARAMETERS:  Context   - Calling Context
- *
- * RETURN:      Status code indicates whether interrupt was handled.
- *
- * DESCRIPTION: Handler for GPE Block Device interrupts
- *
- ******************************************************************************/
-
-UINT32 ACPI_SYSTEM_XFACE
-AcpiEvGpeXruptHandler (
-    void                    *Context)
-{
-    ACPI_GPE_XRUPT_INFO     *GpeXruptList = Context;
-    UINT32                  InterruptHandled = ACPI_INTERRUPT_NOT_HANDLED;
-
-
-    ACPI_FUNCTION_TRACE (EvGpeXruptHandler);
-
-
-    /*
-     * We are guaranteed by the ACPI CA initialization/shutdown code that
-     * if this interrupt handler is installed, ACPI is enabled.
-     */
-
-    /* GPEs: Check for and dispatch any GPEs that have occurred */
-
-    InterruptHandled |= AcpiEvGpeDetect (GpeXruptList);
-
-    return_UINT32 (InterruptHandled);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiEvInstallSciHandler
- *
- * PARAMETERS:  none
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Installs SCI handler.
- *
- ******************************************************************************/
-
-UINT32
-AcpiEvInstallSciHandler (
-    void)
-{
-    UINT32                  Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (EvInstallSciHandler);
-
-
-    Status = AcpiOsInstallInterruptHandler ((UINT32) AcpiGbl_FADT.SciInterrupt,
-                AcpiEvSciXruptHandler, AcpiGbl_GpeXruptListHead);
-    return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiEvRemoveSciHandler
- *
- * PARAMETERS:  none
- *
- * RETURN:      E_OK if handler uninstalled OK, E_ERROR if handler was not
- *              installed to begin with
- *
- * DESCRIPTION: Remove the SCI interrupt handler. No further SCIs will be
- *              taken.
- *
- * Note:  It doesn't seem important to disable all events or set the event
- *        enable registers to their original values. The OS should disable
- *        the SCI interrupt level when the handler is removed, so no more
- *        events will come in.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvRemoveSciHandler (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (EvRemoveSciHandler);
-
-
-    /* Just let the OS remove the handler and disable the level */
-
-    Status = AcpiOsRemoveInterruptHandler ((UINT32) AcpiGbl_FADT.SciInterrupt,
-                AcpiEvSciXruptHandler);
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evxface.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evxface.c
deleted file mode 100644 (file)
index 6eb5a14..0000000
+++ /dev/null
@@ -1,967 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evxface - External interfaces for ACPI events
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __EVXFACE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acevents.h"
-#include "acinterp.h"
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evxface")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInstallExceptionHandler
- *
- * PARAMETERS:  Handler         - Pointer to the handler function for the
- *                                event
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Saves the pointer to the handler function
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallExceptionHandler (
-    ACPI_EXCEPTION_HANDLER  Handler)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInstallExceptionHandler);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Don't allow two handlers. */
-
-    if (AcpiGbl_ExceptionHandler)
-    {
-        Status = AE_ALREADY_EXISTS;
-        goto Cleanup;
-    }
-
-    /* Install the handler */
-
-    AcpiGbl_ExceptionHandler = Handler;
-
-Cleanup:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallExceptionHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInstallFixedEventHandler
- *
- * PARAMETERS:  Event           - Event type to enable.
- *              Handler         - Pointer to the handler function for the
- *                                event
- *              Context         - Value passed to the handler on each GPE
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Saves the pointer to the handler function and then enables the
- *              event.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallFixedEventHandler (
-    UINT32                  Event,
-    ACPI_EVENT_HANDLER      Handler,
-    void                    *Context)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInstallFixedEventHandler);
-
-
-    /* Parameter validation */
-
-    if (Event > ACPI_EVENT_MAX)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Don't allow two handlers. */
-
-    if (NULL != AcpiGbl_FixedEventHandlers[Event].Handler)
-    {
-        Status = AE_ALREADY_EXISTS;
-        goto Cleanup;
-    }
-
-    /* Install the handler before enabling the event */
-
-    AcpiGbl_FixedEventHandlers[Event].Handler = Handler;
-    AcpiGbl_FixedEventHandlers[Event].Context = Context;
-
-    Status = AcpiEnableEvent (Event, 0);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_WARNING ((AE_INFO, "Could not enable fixed event %X", Event));
-
-        /* Remove the handler */
-
-        AcpiGbl_FixedEventHandlers[Event].Handler = NULL;
-        AcpiGbl_FixedEventHandlers[Event].Context = NULL;
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-            "Enabled fixed event %X, Handler=%p\n", Event, Handler));
-    }
-
-
-Cleanup:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallFixedEventHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRemoveFixedEventHandler
- *
- * PARAMETERS:  Event           - Event type to disable.
- *              Handler         - Address of the handler
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Disables the event and unregisters the event handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveFixedEventHandler (
-    UINT32                  Event,
-    ACPI_EVENT_HANDLER      Handler)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (AcpiRemoveFixedEventHandler);
-
-
-    /* Parameter validation */
-
-    if (Event > ACPI_EVENT_MAX)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Disable the event before removing the handler */
-
-    Status = AcpiDisableEvent (Event, 0);
-
-    /* Always Remove the handler */
-
-    AcpiGbl_FixedEventHandlers[Event].Handler = NULL;
-    AcpiGbl_FixedEventHandlers[Event].Context = NULL;
-
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_WARNING ((AE_INFO,
-            "Could not write to fixed event enable register %X", Event));
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Disabled fixed event %X\n", Event));
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveFixedEventHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInstallNotifyHandler
- *
- * PARAMETERS:  Device          - The device for which notifies will be handled
- *              HandlerType     - The type of handler:
- *                                  ACPI_SYSTEM_NOTIFY: SystemHandler (00-7f)
- *                                  ACPI_DEVICE_NOTIFY: DriverHandler (80-ff)
- *                                  ACPI_ALL_NOTIFY:  both system and device
- *              Handler         - Address of the handler
- *              Context         - Value passed to the handler on each GPE
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install a handler for notifies on an ACPI device
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallNotifyHandler (
-    ACPI_HANDLE             Device,
-    UINT32                  HandlerType,
-    ACPI_NOTIFY_HANDLER     Handler,
-    void                    *Context)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *NotifyObj;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInstallNotifyHandler);
-
-
-    /* Parameter validation */
-
-    if ((!Device)  ||
-        (!Handler) ||
-        (HandlerType > ACPI_MAX_NOTIFY_HANDLER_TYPE))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Convert and validate the device handle */
-
-    Node = AcpiNsValidateHandle (Device);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /*
-     * Root Object:
-     * Registering a notify handler on the root object indicates that the
-     * caller wishes to receive notifications for all objects. Note that
-     * only one <external> global handler can be regsitered (per notify type).
-     */
-    if (Device == ACPI_ROOT_OBJECT)
-    {
-        /* Make sure the handler is not already installed */
-
-        if (((HandlerType & ACPI_SYSTEM_NOTIFY) &&
-                AcpiGbl_SystemNotify.Handler)       ||
-            ((HandlerType & ACPI_DEVICE_NOTIFY) &&
-                AcpiGbl_DeviceNotify.Handler))
-        {
-            Status = AE_ALREADY_EXISTS;
-            goto UnlockAndExit;
-        }
-
-        if (HandlerType & ACPI_SYSTEM_NOTIFY)
-        {
-            AcpiGbl_SystemNotify.Node    = Node;
-            AcpiGbl_SystemNotify.Handler = Handler;
-            AcpiGbl_SystemNotify.Context = Context;
-        }
-
-        if (HandlerType & ACPI_DEVICE_NOTIFY)
-        {
-            AcpiGbl_DeviceNotify.Node    = Node;
-            AcpiGbl_DeviceNotify.Handler = Handler;
-            AcpiGbl_DeviceNotify.Context = Context;
-        }
-
-        /* Global notify handler installed */
-    }
-
-    /*
-     * All Other Objects:
-     * Caller will only receive notifications specific to the target object.
-     * Note that only certain object types can receive notifications.
-     */
-    else
-    {
-        /* Notifies allowed on this object? */
-
-        if (!AcpiEvIsNotifyObject (Node))
-        {
-            Status = AE_TYPE;
-            goto UnlockAndExit;
-        }
-
-        /* Check for an existing internal object */
-
-        ObjDesc = AcpiNsGetAttachedObject (Node);
-        if (ObjDesc)
-        {
-            /* Object exists - make sure there's no handler */
-
-            if (((HandlerType & ACPI_SYSTEM_NOTIFY) &&
-                    ObjDesc->CommonNotify.SystemNotify)   ||
-                ((HandlerType & ACPI_DEVICE_NOTIFY) &&
-                    ObjDesc->CommonNotify.DeviceNotify))
-            {
-                Status = AE_ALREADY_EXISTS;
-                goto UnlockAndExit;
-            }
-        }
-        else
-        {
-            /* Create a new object */
-
-            ObjDesc = AcpiUtCreateInternalObject (Node->Type);
-            if (!ObjDesc)
-            {
-                Status = AE_NO_MEMORY;
-                goto UnlockAndExit;
-            }
-
-            /* Attach new object to the Node */
-
-            Status = AcpiNsAttachObject (Device, ObjDesc, Node->Type);
-
-            /* Remove local reference to the object */
-
-            AcpiUtRemoveReference (ObjDesc);
-            if (ACPI_FAILURE (Status))
-            {
-                goto UnlockAndExit;
-            }
-        }
-
-        /* Install the handler */
-
-        NotifyObj = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_NOTIFY);
-        if (!NotifyObj)
-        {
-            Status = AE_NO_MEMORY;
-            goto UnlockAndExit;
-        }
-
-        NotifyObj->Notify.Node    = Node;
-        NotifyObj->Notify.Handler = Handler;
-        NotifyObj->Notify.Context = Context;
-
-        if (HandlerType & ACPI_SYSTEM_NOTIFY)
-        {
-            ObjDesc->CommonNotify.SystemNotify = NotifyObj;
-        }
-
-        if (HandlerType & ACPI_DEVICE_NOTIFY)
-        {
-            ObjDesc->CommonNotify.DeviceNotify = NotifyObj;
-        }
-
-        if (HandlerType == ACPI_ALL_NOTIFY)
-        {
-            /* Extra ref if installed in both */
-
-            AcpiUtAddReference (NotifyObj);
-        }
-    }
-
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallNotifyHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRemoveNotifyHandler
- *
- * PARAMETERS:  Device          - The device for which notifies will be handled
- *              HandlerType     - The type of handler:
- *                                  ACPI_SYSTEM_NOTIFY: SystemHandler (00-7f)
- *                                  ACPI_DEVICE_NOTIFY: DriverHandler (80-ff)
- *                                  ACPI_ALL_NOTIFY:  both system and device
- *              Handler         - Address of the handler
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Remove a handler for notifies on an ACPI device
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveNotifyHandler (
-    ACPI_HANDLE             Device,
-    UINT32                  HandlerType,
-    ACPI_NOTIFY_HANDLER     Handler)
-{
-    ACPI_OPERAND_OBJECT     *NotifyObj;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiRemoveNotifyHandler);
-
-
-    /* Parameter validation */
-
-    if ((!Device)  ||
-        (!Handler) ||
-        (HandlerType > ACPI_MAX_NOTIFY_HANDLER_TYPE))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Convert and validate the device handle */
-
-    Node = AcpiNsValidateHandle (Device);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Root Object */
-
-    if (Device == ACPI_ROOT_OBJECT)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-            "Removing notify handler for namespace root object\n"));
-
-        if (((HandlerType & ACPI_SYSTEM_NOTIFY) &&
-              !AcpiGbl_SystemNotify.Handler)        ||
-            ((HandlerType & ACPI_DEVICE_NOTIFY) &&
-              !AcpiGbl_DeviceNotify.Handler))
-        {
-            Status = AE_NOT_EXIST;
-            goto UnlockAndExit;
-        }
-
-        if (HandlerType & ACPI_SYSTEM_NOTIFY)
-        {
-            AcpiGbl_SystemNotify.Node    = NULL;
-            AcpiGbl_SystemNotify.Handler = NULL;
-            AcpiGbl_SystemNotify.Context = NULL;
-        }
-
-        if (HandlerType & ACPI_DEVICE_NOTIFY)
-        {
-            AcpiGbl_DeviceNotify.Node    = NULL;
-            AcpiGbl_DeviceNotify.Handler = NULL;
-            AcpiGbl_DeviceNotify.Context = NULL;
-        }
-    }
-
-    /* All Other Objects */
-
-    else
-    {
-        /* Notifies allowed on this object? */
-
-        if (!AcpiEvIsNotifyObject (Node))
-        {
-            Status = AE_TYPE;
-            goto UnlockAndExit;
-        }
-
-        /* Check for an existing internal object */
-
-        ObjDesc = AcpiNsGetAttachedObject (Node);
-        if (!ObjDesc)
-        {
-            Status = AE_NOT_EXIST;
-            goto UnlockAndExit;
-        }
-
-        /* Object exists - make sure there's an existing handler */
-
-        if (HandlerType & ACPI_SYSTEM_NOTIFY)
-        {
-            NotifyObj = ObjDesc->CommonNotify.SystemNotify;
-            if (!NotifyObj)
-            {
-                Status = AE_NOT_EXIST;
-                goto UnlockAndExit;
-            }
-
-            if (NotifyObj->Notify.Handler != Handler)
-            {
-                Status = AE_BAD_PARAMETER;
-                goto UnlockAndExit;
-            }
-
-            /* Remove the handler */
-
-            ObjDesc->CommonNotify.SystemNotify = NULL;
-            AcpiUtRemoveReference (NotifyObj);
-        }
-
-        if (HandlerType & ACPI_DEVICE_NOTIFY)
-        {
-            NotifyObj = ObjDesc->CommonNotify.DeviceNotify;
-            if (!NotifyObj)
-            {
-                Status = AE_NOT_EXIST;
-                goto UnlockAndExit;
-            }
-
-            if (NotifyObj->Notify.Handler != Handler)
-            {
-                Status = AE_BAD_PARAMETER;
-                goto UnlockAndExit;
-            }
-
-            /* Remove the handler */
-
-            ObjDesc->CommonNotify.DeviceNotify = NULL;
-            AcpiUtRemoveReference (NotifyObj);
-        }
-    }
-
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveNotifyHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInstallGpeHandler
- *
- * PARAMETERS:  GpeDevice       - Namespace node for the GPE (NULL for FADT
- *                                defined GPEs)
- *              GpeNumber       - The GPE number within the GPE block
- *              Type            - Whether this GPE should be treated as an
- *                                edge- or level-triggered interrupt.
- *              Address         - Address of the handler
- *              Context         - Value passed to the handler on each GPE
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install a handler for a General Purpose Event.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallGpeHandler (
-    ACPI_HANDLE             GpeDevice,
-    UINT32                  GpeNumber,
-    UINT32                  Type,
-    ACPI_EVENT_HANDLER      Address,
-    void                    *Context)
-{
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-    ACPI_HANDLER_INFO       *Handler;
-    ACPI_STATUS             Status;
-    ACPI_CPU_FLAGS          Flags;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInstallGpeHandler);
-
-
-    /* Parameter validation */
-
-    if ((!Address) || (Type > ACPI_GPE_XRUPT_TYPE_MASK))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Ensure that we have a valid GPE number */
-
-    GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
-    if (!GpeEventInfo)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Make sure that there isn't a handler there already */
-
-    if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) ==
-            ACPI_GPE_DISPATCH_HANDLER)
-    {
-        Status = AE_ALREADY_EXISTS;
-        goto UnlockAndExit;
-    }
-
-    /* Allocate and init handler object */
-
-    Handler = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_HANDLER_INFO));
-    if (!Handler)
-    {
-        Status = AE_NO_MEMORY;
-        goto UnlockAndExit;
-    }
-
-    Handler->Address    = Address;
-    Handler->Context    = Context;
-    Handler->MethodNode = GpeEventInfo->Dispatch.MethodNode;
-
-    /* Disable the GPE before installing the handler */
-
-    Status = AcpiEvDisableGpe (GpeEventInfo);
-    if (ACPI_FAILURE (Status))
-    {
-        goto UnlockAndExit;
-    }
-
-    /* Install the handler */
-
-    Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-    GpeEventInfo->Dispatch.Handler = Handler;
-
-    /* Setup up dispatch flags to indicate handler (vs. method) */
-
-    GpeEventInfo->Flags &= ~(ACPI_GPE_XRUPT_TYPE_MASK | ACPI_GPE_DISPATCH_MASK);
-    GpeEventInfo->Flags |= (UINT8) (Type | ACPI_GPE_DISPATCH_HANDLER);
-
-    AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallGpeHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRemoveGpeHandler
- *
- * PARAMETERS:  GpeDevice       - Namespace node for the GPE (NULL for FADT
- *                                defined GPEs)
- *              GpeNumber       - The event to remove a handler
- *              Address         - Address of the handler
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Remove a handler for a General Purpose AcpiEvent.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveGpeHandler (
-    ACPI_HANDLE             GpeDevice,
-    UINT32                  GpeNumber,
-    ACPI_EVENT_HANDLER      Address)
-{
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-    ACPI_HANDLER_INFO       *Handler;
-    ACPI_STATUS             Status;
-    ACPI_CPU_FLAGS          Flags;
-
-
-    ACPI_FUNCTION_TRACE (AcpiRemoveGpeHandler);
-
-
-    /* Parameter validation */
-
-    if (!Address)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Ensure that we have a valid GPE number */
-
-    GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
-    if (!GpeEventInfo)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Make sure that a handler is indeed installed */
-
-    if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) !=
-            ACPI_GPE_DISPATCH_HANDLER)
-    {
-        Status = AE_NOT_EXIST;
-        goto UnlockAndExit;
-    }
-
-    /* Make sure that the installed handler is the same */
-
-    if (GpeEventInfo->Dispatch.Handler->Address != Address)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Disable the GPE before removing the handler */
-
-    Status = AcpiEvDisableGpe (GpeEventInfo);
-    if (ACPI_FAILURE (Status))
-    {
-        goto UnlockAndExit;
-    }
-
-    /* Remove the handler */
-
-    Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-    Handler = GpeEventInfo->Dispatch.Handler;
-
-    /* Restore Method node (if any), set dispatch flags */
-
-    GpeEventInfo->Dispatch.MethodNode = Handler->MethodNode;
-    GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK;  /* Clear bits */
-    if (Handler->MethodNode)
-    {
-        GpeEventInfo->Flags |= ACPI_GPE_DISPATCH_METHOD;
-    }
-    AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
-    /* Now we can free the handler object */
-
-    ACPI_FREE (Handler);
-
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveGpeHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiAcquireGlobalLock
- *
- * PARAMETERS:  Timeout         - How long the caller is willing to wait
- *              Handle          - Where the handle to the lock is returned
- *                                (if acquired)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Acquire the ACPI Global Lock
- *
- * Note: Allows callers with the same thread ID to acquire the global lock
- * multiple times. In other words, externally, the behavior of the global lock
- * is identical to an AML mutex. On the first acquire, a new handle is
- * returned. On any subsequent calls to acquire by the same thread, the same
- * handle is returned.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiAcquireGlobalLock (
-    UINT16                  Timeout,
-    UINT32                  *Handle)
-{
-    ACPI_STATUS             Status;
-
-
-    if (!Handle)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Must lock interpreter to prevent race conditions */
-
-    AcpiExEnterInterpreter ();
-
-    Status = AcpiExAcquireMutexObject (Timeout,
-                AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ());
-
-    if (ACPI_SUCCESS (Status))
-    {
-        /* Return the global lock handle (updated in AcpiEvAcquireGlobalLock) */
-
-        *Handle = AcpiGbl_GlobalLockHandle;
-    }
-
-    AcpiExExitInterpreter ();
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiAcquireGlobalLock)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiReleaseGlobalLock
- *
- * PARAMETERS:  Handle      - Returned from AcpiAcquireGlobalLock
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Release the ACPI Global Lock. The handle must be valid.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiReleaseGlobalLock (
-    UINT32                  Handle)
-{
-    ACPI_STATUS             Status;
-
-
-    if (!Handle || (Handle != AcpiGbl_GlobalLockHandle))
-    {
-        return (AE_NOT_ACQUIRED);
-    }
-
-    Status = AcpiExReleaseMutexObject (AcpiGbl_GlobalLockMutex);
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiReleaseGlobalLock)
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evxfevnt.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evxfevnt.c
deleted file mode 100644 (file)
index 27066a3..0000000
+++ /dev/null
@@ -1,1112 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evxfevnt - External Interfaces, ACPI event disable/enable
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __EVXFEVNT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-#include "acnamesp.h"
-#include "actables.h"
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evxfevnt")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiEvGetGpeDevice (
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    void                    *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEnable
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Transfers the system into ACPI mode.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnable (
-    void)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEnable);
-
-
-    /* ACPI tables must be present */
-
-    if (!AcpiTbTablesLoaded ())
-    {
-        return_ACPI_STATUS (AE_NO_ACPI_TABLES);
-    }
-
-    /* Check current mode */
-
-    if (AcpiHwGetMode() == ACPI_SYS_MODE_ACPI)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "System is already in ACPI mode\n"));
-    }
-    else
-    {
-        /* Transition to ACPI mode */
-
-        Status = AcpiHwSetMode (ACPI_SYS_MODE_ACPI);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_ERROR ((AE_INFO, "Could not transition to ACPI mode"));
-            return_ACPI_STATUS (Status);
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
-            "Transition to ACPI mode successful\n"));
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnable)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDisable
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Transfers the system into LEGACY (non-ACPI) mode.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDisable (
-    void)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (AcpiDisable);
-
-
-    if (AcpiHwGetMode() == ACPI_SYS_MODE_LEGACY)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
-            "System is already in legacy (non-ACPI) mode\n"));
-    }
-    else
-    {
-        /* Transition to LEGACY mode */
-
-        Status = AcpiHwSetMode (ACPI_SYS_MODE_LEGACY);
-
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Could not exit ACPI mode to legacy mode"));
-            return_ACPI_STATUS (Status);
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI mode disabled\n"));
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDisable)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEnableEvent
- *
- * PARAMETERS:  Event           - The fixed eventto be enabled
- *              Flags           - Reserved
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enable an ACPI event (fixed)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnableEvent (
-    UINT32                  Event,
-    UINT32                  Flags)
-{
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  Value;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEnableEvent);
-
-
-    /* Decode the Fixed Event */
-
-    if (Event > ACPI_EVENT_MAX)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Enable the requested fixed event (by writing a one to the enable
-     * register bit)
-     */
-    Status = AcpiWriteBitRegister (
-                AcpiGbl_FixedEventInfo[Event].EnableRegisterId,
-                ACPI_ENABLE_EVENT);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Make sure that the hardware responded */
-
-    Status = AcpiReadBitRegister (
-                AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (Value != 1)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Could not enable %s event", AcpiUtGetEventName (Event)));
-        return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnableEvent)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiSetGpeType
- *
- * PARAMETERS:  GpeDevice       - Parent GPE Device
- *              GpeNumber       - GPE level within the GPE block
- *              Type            - New GPE type
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Set the type of an individual GPE
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSetGpeType (
-    ACPI_HANDLE             GpeDevice,
-    UINT32                  GpeNumber,
-    UINT8                   Type)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-
-
-    ACPI_FUNCTION_TRACE (AcpiSetGpeType);
-
-
-    /* Ensure that we have a valid GPE number */
-
-    GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
-    if (!GpeEventInfo)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    if ((GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK) == Type)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Set the new type (will disable GPE if currently enabled) */
-
-    Status = AcpiEvSetGpeType (GpeEventInfo, Type);
-
-UnlockAndExit:
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSetGpeType)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEnableGpe
- *
- * PARAMETERS:  GpeDevice       - Parent GPE Device
- *              GpeNumber       - GPE level within the GPE block
- *              Flags           - Just enable, or also wake enable?
- *                                Called from ISR or not
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enable an ACPI event (general purpose)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnableGpe (
-    ACPI_HANDLE             GpeDevice,
-    UINT32                  GpeNumber,
-    UINT32                  Flags)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEnableGpe);
-
-
-    /* Use semaphore lock if not executing at interrupt level */
-
-    if (Flags & ACPI_NOT_ISR)
-    {
-        Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Ensure that we have a valid GPE number */
-
-    GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
-    if (!GpeEventInfo)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Perform the enable */
-
-    Status = AcpiEvEnableGpe (GpeEventInfo, TRUE);
-
-UnlockAndExit:
-    if (Flags & ACPI_NOT_ISR)
-    {
-        (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    }
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnableGpe)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDisableGpe
- *
- * PARAMETERS:  GpeDevice       - Parent GPE Device
- *              GpeNumber       - GPE level within the GPE block
- *              Flags           - Just disable, or also wake disable?
- *                                Called from ISR or not
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Disable an ACPI event (general purpose)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDisableGpe (
-    ACPI_HANDLE             GpeDevice,
-    UINT32                  GpeNumber,
-    UINT32                  Flags)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-
-
-    ACPI_FUNCTION_TRACE (AcpiDisableGpe);
-
-
-    /* Use semaphore lock if not executing at interrupt level */
-
-    if (Flags & ACPI_NOT_ISR)
-    {
-        Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Ensure that we have a valid GPE number */
-
-    GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
-    if (!GpeEventInfo)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    Status = AcpiEvDisableGpe (GpeEventInfo);
-
-UnlockAndExit:
-    if (Flags & ACPI_NOT_ISR)
-    {
-        (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    }
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDisableGpe)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDisableEvent
- *
- * PARAMETERS:  Event           - The fixed eventto be enabled
- *              Flags           - Reserved
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Disable an ACPI event (fixed)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDisableEvent (
-    UINT32                  Event,
-    UINT32                  Flags)
-{
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  Value;
-
-
-    ACPI_FUNCTION_TRACE (AcpiDisableEvent);
-
-
-    /* Decode the Fixed Event */
-
-    if (Event > ACPI_EVENT_MAX)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Disable the requested fixed event (by writing a zero to the enable
-     * register bit)
-     */
-    Status = AcpiWriteBitRegister (
-                AcpiGbl_FixedEventInfo[Event].EnableRegisterId,
-                ACPI_DISABLE_EVENT);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiReadBitRegister (
-                AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (Value != 0)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Could not disable %s events", AcpiUtGetEventName (Event)));
-        return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDisableEvent)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiClearEvent
- *
- * PARAMETERS:  Event           - The fixed event to be cleared
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Clear an ACPI event (fixed)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiClearEvent (
-    UINT32                  Event)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (AcpiClearEvent);
-
-
-    /* Decode the Fixed Event */
-
-    if (Event > ACPI_EVENT_MAX)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Clear the requested fixed event (By writing a one to the status
-     * register bit)
-     */
-    Status = AcpiWriteBitRegister (
-                AcpiGbl_FixedEventInfo[Event].StatusRegisterId,
-                ACPI_CLEAR_STATUS);
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiClearEvent)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiClearGpe
- *
- * PARAMETERS:  GpeDevice       - Parent GPE Device
- *              GpeNumber       - GPE level within the GPE block
- *              Flags           - Called from an ISR or not
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Clear an ACPI event (general purpose)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiClearGpe (
-    ACPI_HANDLE             GpeDevice,
-    UINT32                  GpeNumber,
-    UINT32                  Flags)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-
-
-    ACPI_FUNCTION_TRACE (AcpiClearGpe);
-
-
-    /* Use semaphore lock if not executing at interrupt level */
-
-    if (Flags & ACPI_NOT_ISR)
-    {
-        Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Ensure that we have a valid GPE number */
-
-    GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
-    if (!GpeEventInfo)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    Status = AcpiHwClearGpe (GpeEventInfo);
-
-UnlockAndExit:
-    if (Flags & ACPI_NOT_ISR)
-    {
-        (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    }
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiClearGpe)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetEventStatus
- *
- * PARAMETERS:  Event           - The fixed event
- *              EventStatus     - Where the current status of the event will
- *                                be returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Obtains and returns the current status of the event
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetEventStatus (
-    UINT32                  Event,
-    ACPI_EVENT_STATUS       *EventStatus)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetEventStatus);
-
-
-    if (!EventStatus)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Decode the Fixed Event */
-
-    if (Event > ACPI_EVENT_MAX)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Get the status of the requested fixed event */
-
-    Status = AcpiReadBitRegister (
-                AcpiGbl_FixedEventInfo[Event].StatusRegisterId, EventStatus);
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetEventStatus)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetGpeStatus
- *
- * PARAMETERS:  GpeDevice       - Parent GPE Device
- *              GpeNumber       - GPE level within the GPE block
- *              Flags           - Called from an ISR or not
- *              EventStatus     - Where the current status of the event will
- *                                be returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get status of an event (general purpose)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetGpeStatus (
-    ACPI_HANDLE             GpeDevice,
-    UINT32                  GpeNumber,
-    UINT32                  Flags,
-    ACPI_EVENT_STATUS       *EventStatus)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetGpeStatus);
-
-
-    /* Use semaphore lock if not executing at interrupt level */
-
-    if (Flags & ACPI_NOT_ISR)
-    {
-        Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Ensure that we have a valid GPE number */
-
-    GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
-    if (!GpeEventInfo)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Obtain status on the requested GPE number */
-
-    Status = AcpiHwGetGpeStatus (GpeEventInfo, EventStatus);
-
-UnlockAndExit:
-    if (Flags & ACPI_NOT_ISR)
-    {
-        (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    }
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetGpeStatus)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInstallGpeBlock
- *
- * PARAMETERS:  GpeDevice           - Handle to the parent GPE Block Device
- *              GpeBlockAddress     - Address and SpaceID
- *              RegisterCount       - Number of GPE register pairs in the block
- *              InterruptNumber     - H/W interrupt for the block
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create and Install a block of GPE registers
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallGpeBlock (
-    ACPI_HANDLE             GpeDevice,
-    ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
-    UINT32                  RegisterCount,
-    UINT32                  InterruptNumber)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_GPE_BLOCK_INFO     *GpeBlock;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInstallGpeBlock);
-
-
-    if ((!GpeDevice)       ||
-        (!GpeBlockAddress) ||
-        (!RegisterCount))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Node = AcpiNsValidateHandle (GpeDevice);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /*
-     * For user-installed GPE Block Devices, the GpeBlockBaseNumber
-     * is always zero
-     */
-    Status = AcpiEvCreateGpeBlock (Node, GpeBlockAddress, RegisterCount,
-                0, InterruptNumber, &GpeBlock);
-    if (ACPI_FAILURE (Status))
-    {
-        goto UnlockAndExit;
-    }
-
-    /* Run the _PRW methods and enable the GPEs */
-
-    Status = AcpiEvInitializeGpeBlock (Node, GpeBlock);
-    if (ACPI_FAILURE (Status))
-    {
-        goto UnlockAndExit;
-    }
-
-    /* Get the DeviceObject attached to the node */
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (!ObjDesc)
-    {
-        /* No object, create a new one */
-
-        ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_DEVICE);
-        if (!ObjDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto UnlockAndExit;
-        }
-
-        Status = AcpiNsAttachObject (Node, ObjDesc, ACPI_TYPE_DEVICE);
-
-        /* Remove local reference to the object */
-
-        AcpiUtRemoveReference (ObjDesc);
-
-        if (ACPI_FAILURE (Status))
-        {
-            goto UnlockAndExit;
-        }
-    }
-
-    /* Install the GPE block in the DeviceObject */
-
-    ObjDesc->Device.GpeBlock = GpeBlock;
-
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallGpeBlock)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRemoveGpeBlock
- *
- * PARAMETERS:  GpeDevice           - Handle to the parent GPE Block Device
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Remove a previously installed block of GPE registers
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveGpeBlock (
-    ACPI_HANDLE             GpeDevice)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ACPI_FUNCTION_TRACE (AcpiRemoveGpeBlock);
-
-
-    if (!GpeDevice)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Node = AcpiNsValidateHandle (GpeDevice);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Get the DeviceObject attached to the node */
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (!ObjDesc ||
-        !ObjDesc->Device.GpeBlock)
-    {
-        return_ACPI_STATUS (AE_NULL_OBJECT);
-    }
-
-    /* Delete the GPE block (but not the DeviceObject) */
-
-    Status = AcpiEvDeleteGpeBlock (ObjDesc->Device.GpeBlock);
-    if (ACPI_SUCCESS (Status))
-    {
-        ObjDesc->Device.GpeBlock = NULL;
-    }
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveGpeBlock)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetGpeDevice
- *
- * PARAMETERS:  Index               - System GPE index (0-CurrentGpeCount)
- *              GpeDevice           - Where the parent GPE Device is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Obtain the GPE device associated with the input index. A NULL
- *              gpe device indicates that the gpe number is contained in one of
- *              the FADT-defined gpe blocks. Otherwise, the GPE block device.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetGpeDevice (
-    UINT32                  Index,
-    ACPI_HANDLE             *GpeDevice)
-{
-    ACPI_GPE_DEVICE_INFO    Info;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetGpeDevice);
-
-
-    if (!GpeDevice)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (Index >= AcpiCurrentGpeCount)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    /* Setup and walk the GPE list */
-
-    Info.Index = Index;
-    Info.Status = AE_NOT_EXIST;
-    Info.GpeDevice = NULL;
-    Info.NextBlockBaseIndex = 0;
-
-    Status = AcpiEvWalkGpeList (AcpiEvGetGpeDevice, &Info);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    *GpeDevice = ACPI_CAST_PTR (ACPI_HANDLE, Info.GpeDevice);
-    return_ACPI_STATUS (Info.Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetGpeDevice)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvGetGpeDevice
- *
- * PARAMETERS:  GPE_WALK_CALLBACK
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Matches the input GPE index (0-CurrentGpeCount) with a GPE
- *              block device. NULL if the GPE is one of the FADT-defined GPEs.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvGetGpeDevice (
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    void                    *Context)
-{
-    ACPI_GPE_DEVICE_INFO    *Info = Context;
-
-
-    /* Increment Index by the number of GPEs in this block */
-
-    Info->NextBlockBaseIndex +=
-        (GpeBlock->RegisterCount * ACPI_GPE_REGISTER_WIDTH);
-
-    if (Info->Index < Info->NextBlockBaseIndex)
-    {
-        /*
-         * The GPE index is within this block, get the node. Leave the node
-         * NULL for the FADT-defined GPEs
-         */
-        if ((GpeBlock->Node)->Type == ACPI_TYPE_DEVICE)
-        {
-            Info->GpeDevice = GpeBlock->Node;
-        }
-
-        Info->Status = AE_OK;
-        return (AE_CTRL_END);
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiDisableAllGpes
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Disable and clear all GPEs in all GPE blocks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDisableAllGpes (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiDisableAllGpes);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiHwDisableAllGpes ();
-    (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiEnableAllRuntimeGpes
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enable all "runtime" GPEs, in all GPE blocks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnableAllRuntimeGpes (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEnableAllRuntimeGpes);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiHwEnableAllRuntimeGpes ();
-    (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/events/evxfregn.c b/l4/pkg/acpica/lib-acpi/src/acpica/events/evxfregn.c
deleted file mode 100644 (file)
index 3b60589..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evxfregn - External Interfaces, ACPI Operation Regions and
- *                         Address Spaces.
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EVXFREGN_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acevents.h"
-
-#define _COMPONENT          ACPI_EVENTS
-        ACPI_MODULE_NAME    ("evxfregn")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInstallAddressSpaceHandler
- *
- * PARAMETERS:  Device          - Handle for the device
- *              SpaceId         - The address space ID
- *              Handler         - Address of the handler
- *              Setup           - Address of the setup function
- *              Context         - Value passed to the handler on each access
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install a handler for all OpRegions of a given SpaceId.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallAddressSpaceHandler (
-    ACPI_HANDLE             Device,
-    ACPI_ADR_SPACE_TYPE     SpaceId,
-    ACPI_ADR_SPACE_HANDLER  Handler,
-    ACPI_ADR_SPACE_SETUP    Setup,
-    void                    *Context)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInstallAddressSpaceHandler);
-
-
-    /* Parameter validation */
-
-    if (!Device)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Convert and validate the device handle */
-
-    Node = AcpiNsValidateHandle (Device);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Install the handler for all Regions for this Space ID */
-
-    Status = AcpiEvInstallSpaceHandler (Node, SpaceId, Handler, Setup, Context);
-    if (ACPI_FAILURE (Status))
-    {
-        goto UnlockAndExit;
-    }
-
-    /* Run all _REG methods for this address space */
-
-    Status = AcpiEvExecuteRegMethods (Node, SpaceId);
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallAddressSpaceHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRemoveAddressSpaceHandler
- *
- * PARAMETERS:  Device          - Handle for the device
- *              SpaceId         - The address space ID
- *              Handler         - Address of the handler
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Remove a previously installed handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveAddressSpaceHandler (
-    ACPI_HANDLE             Device,
-    ACPI_ADR_SPACE_TYPE     SpaceId,
-    ACPI_ADR_SPACE_HANDLER  Handler)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *HandlerObj;
-    ACPI_OPERAND_OBJECT     *RegionObj;
-    ACPI_OPERAND_OBJECT     **LastObjPtr;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiRemoveAddressSpaceHandler);
-
-
-    /* Parameter validation */
-
-    if (!Device)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Convert and validate the device handle */
-
-    Node = AcpiNsValidateHandle (Device);
-    if (!Node ||
-        ((Node->Type != ACPI_TYPE_DEVICE)    &&
-         (Node->Type != ACPI_TYPE_PROCESSOR) &&
-         (Node->Type != ACPI_TYPE_THERMAL)   &&
-         (Node != AcpiGbl_RootNode)))
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Make sure the internal object exists */
-
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (!ObjDesc)
-    {
-        Status = AE_NOT_EXIST;
-        goto UnlockAndExit;
-    }
-
-    /* Find the address handler the user requested */
-
-    HandlerObj = ObjDesc->Device.Handler;
-    LastObjPtr = &ObjDesc->Device.Handler;
-    while (HandlerObj)
-    {
-        /* We have a handler, see if user requested this one */
-
-        if (HandlerObj->AddressSpace.SpaceId == SpaceId)
-        {
-            /* Handler must be the same as the installed handler */
-
-            if (HandlerObj->AddressSpace.Handler != Handler)
-            {
-                Status = AE_BAD_PARAMETER;
-                goto UnlockAndExit;
-            }
-
-            /* Matched SpaceId, first dereference this in the Regions */
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-                "Removing address handler %p(%p) for region %s "
-                "on Device %p(%p)\n",
-                HandlerObj, Handler, AcpiUtGetRegionName (SpaceId),
-                Node, ObjDesc));
-
-            RegionObj = HandlerObj->AddressSpace.RegionList;
-
-            /* Walk the handler's region list */
-
-            while (RegionObj)
-            {
-                /*
-                 * First disassociate the handler from the region.
-                 *
-                 * NOTE: this doesn't mean that the region goes away
-                 * The region is just inaccessible as indicated to
-                 * the _REG method
-                 */
-                AcpiEvDetachRegion (RegionObj, TRUE);
-
-                /*
-                 * Walk the list: Just grab the head because the
-                 * DetachRegion removed the previous head.
-                 */
-                RegionObj = HandlerObj->AddressSpace.RegionList;
-
-            }
-
-            /* Remove this Handler object from the list */
-
-            *LastObjPtr = HandlerObj->AddressSpace.Next;
-
-            /* Now we can delete the handler object */
-
-            AcpiUtRemoveReference (HandlerObj);
-            goto UnlockAndExit;
-        }
-
-        /* Walk the linked list of handlers */
-
-        LastObjPtr = &HandlerObj->AddressSpace.Next;
-        HandlerObj = HandlerObj->AddressSpace.Next;
-    }
-
-    /* The handler does not exist */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
-        "Unable to remove address handler %p for %s(%X), DevNode %p, obj %p\n",
-        Handler, AcpiUtGetRegionName (SpaceId), SpaceId, Node, ObjDesc));
-
-    Status = AE_NOT_EXIST;
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveAddressSpaceHandler)
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exconfig.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exconfig.c
deleted file mode 100644 (file)
index d0acdd5..0000000
+++ /dev/null
@@ -1,751 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exconfig - Namespace reconfiguration (Load/Unload opcodes)
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
-
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXCONFIG_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-#include "actables.h"
-#include "acdispat.h"
-#include "acevents.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exconfig")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiExAddTable (
-    UINT32                  TableIndex,
-    ACPI_NAMESPACE_NODE     *ParentNode,
-    ACPI_OPERAND_OBJECT     **DdbHandle);
-
-static ACPI_STATUS
-AcpiExRegionRead (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  Length,
-    UINT8                   *Buffer);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExAddTable
- *
- * PARAMETERS:  Table               - Pointer to raw table
- *              ParentNode          - Where to load the table (scope)
- *              DdbHandle           - Where to return the table handle.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Common function to Install and Load an ACPI table with a
- *              returned table handle.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExAddTable (
-    UINT32                  TableIndex,
-    ACPI_NAMESPACE_NODE     *ParentNode,
-    ACPI_OPERAND_OBJECT     **DdbHandle)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_TRACE (ExAddTable);
-
-
-    /* Create an object to be the table handle */
-
-    ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_REFERENCE);
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Init the table handle */
-
-    ObjDesc->Common.Flags |= AOPOBJ_DATA_VALID;
-    ObjDesc->Reference.Class = ACPI_REFCLASS_TABLE;
-    *DdbHandle = ObjDesc;
-
-    /* Install the new table into the local data structures */
-
-    ObjDesc->Reference.Value = TableIndex;
-
-    /* Add the table to the namespace */
-
-    Status = AcpiNsLoadTable (TableIndex, ParentNode);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtRemoveReference (ObjDesc);
-        *DdbHandle = NULL;
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Execute any module-level code that was found in the table */
-
-    AcpiExExitInterpreter ();
-    AcpiNsExecModuleCodeList ();
-    AcpiExEnterInterpreter ();
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExLoadTableOp
- *
- * PARAMETERS:  WalkState           - Current state with operands
- *              ReturnDesc          - Where to store the return object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load an ACPI table from the RSDT/XSDT
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExLoadTableOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_OPERAND_OBJECT     **ReturnDesc)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_NAMESPACE_NODE     *ParentNode;
-    ACPI_NAMESPACE_NODE     *StartNode;
-    ACPI_NAMESPACE_NODE     *ParameterNode = NULL;
-    ACPI_OPERAND_OBJECT     *DdbHandle;
-    ACPI_TABLE_HEADER       *Table;
-    UINT32                  TableIndex;
-
-
-    ACPI_FUNCTION_TRACE (ExLoadTableOp);
-
-
-    /* Validate lengths for the SignatureString, OEMIDString, OEMTableID */
-
-    if ((Operand[0]->String.Length > ACPI_NAME_SIZE) ||
-        (Operand[1]->String.Length > ACPI_OEM_ID_SIZE) ||
-        (Operand[2]->String.Length > ACPI_OEM_TABLE_ID_SIZE))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Find the ACPI table in the RSDT/XSDT */
-
-    Status = AcpiTbFindTable (Operand[0]->String.Pointer,
-                              Operand[1]->String.Pointer,
-                              Operand[2]->String.Pointer, &TableIndex);
-    if (ACPI_FAILURE (Status))
-    {
-        if (Status != AE_NOT_FOUND)
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Table not found, return an Integer=0 and AE_OK */
-
-        DdbHandle = AcpiUtCreateIntegerObject ((UINT64) 0);
-        if (!DdbHandle)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        *ReturnDesc = DdbHandle;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Default nodes */
-
-    StartNode = WalkState->ScopeInfo->Scope.Node;
-    ParentNode = AcpiGbl_RootNode;
-
-    /* RootPath (optional parameter) */
-
-    if (Operand[3]->String.Length > 0)
-    {
-        /*
-         * Find the node referenced by the RootPathString.  This is the
-         * location within the namespace where the table will be loaded.
-         */
-        Status = AcpiNsGetNode (StartNode, Operand[3]->String.Pointer,
-                    ACPI_NS_SEARCH_PARENT, &ParentNode);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* ParameterPath (optional parameter) */
-
-    if (Operand[4]->String.Length > 0)
-    {
-        if ((Operand[4]->String.Pointer[0] != '\\') &&
-            (Operand[4]->String.Pointer[0] != '^'))
-        {
-            /*
-             * Path is not absolute, so it will be relative to the node
-             * referenced by the RootPathString (or the NS root if omitted)
-             */
-            StartNode = ParentNode;
-        }
-
-        /* Find the node referenced by the ParameterPathString */
-
-        Status = AcpiNsGetNode (StartNode, Operand[4]->String.Pointer,
-                    ACPI_NS_SEARCH_PARENT, &ParameterNode);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Load the table into the namespace */
-
-    Status = AcpiExAddTable (TableIndex, ParentNode, &DdbHandle);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Parameter Data (optional) */
-
-    if (ParameterNode)
-    {
-        /* Store the parameter data into the optional parameter object */
-
-        Status = AcpiExStore (Operand[5],
-                    ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParameterNode),
-                    WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            (void) AcpiExUnloadTable (DdbHandle);
-
-            AcpiUtRemoveReference (DdbHandle);
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    Status = AcpiGetTableByIndex (TableIndex, &Table);
-    if (ACPI_SUCCESS (Status))
-    {
-        ACPI_INFO ((AE_INFO,
-            "Dynamic OEM Table Load - [%.4s] OemId [%.6s] OemTableId [%.8s]",
-            Table->Signature, Table->OemId, Table->OemTableId));
-    }
-
-    /* Invoke table handler if present */
-
-    if (AcpiGbl_TableHandler)
-    {
-        (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_LOAD, Table,
-                    AcpiGbl_TableHandlerContext);
-    }
-
-    *ReturnDesc = DdbHandle;
-    return_ACPI_STATUS  (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExRegionRead
- *
- * PARAMETERS:  ObjDesc         - Region descriptor
- *              Length          - Number of bytes to read
- *              Buffer          - Pointer to where to put the data
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Read data from an operation region. The read starts from the
- *              beginning of the region.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExRegionRead (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  Length,
-    UINT8                   *Buffer)
-{
-    ACPI_STATUS             Status;
-    ACPI_INTEGER            Value;
-    UINT32                  RegionOffset = 0;
-    UINT32                  i;
-
-
-    /* Bytewise reads */
-
-    for (i = 0; i < Length; i++)
-    {
-        Status = AcpiEvAddressSpaceDispatch (ObjDesc, ACPI_READ,
-                    RegionOffset, 8, &Value);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-
-        *Buffer = (UINT8) Value;
-        Buffer++;
-        RegionOffset++;
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExLoadOp
- *
- * PARAMETERS:  ObjDesc         - Region or Buffer/Field where the table will be
- *                                obtained
- *              Target          - Where a handle to the table will be stored
- *              WalkState       - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load an ACPI table from a field or operation region
- *
- * NOTE: Region Fields (Field, BankField, IndexFields) are resolved to buffer
- *       objects before this code is reached.
- *
- *       If source is an operation region, it must refer to SystemMemory, as
- *       per the ACPI specification.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExLoadOp (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_OPERAND_OBJECT     *Target,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     *DdbHandle;
-    ACPI_TABLE_HEADER       *Table;
-    ACPI_TABLE_DESC         TableDesc;
-    UINT32                  TableIndex;
-    ACPI_STATUS             Status;
-    UINT32                  Length;
-
-
-    ACPI_FUNCTION_TRACE (ExLoadOp);
-
-
-    ACPI_MEMSET (&TableDesc, 0, sizeof (ACPI_TABLE_DESC));
-
-    /* Source Object can be either an OpRegion or a Buffer/Field */
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_REGION:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "Load table from Region %p\n", ObjDesc));
-
-        /* Region must be SystemMemory (from ACPI spec) */
-
-        if (ObjDesc->Region.SpaceId != ACPI_ADR_SPACE_SYSTEM_MEMORY)
-        {
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        /*
-         * If the Region Address and Length have not been previously evaluated,
-         * evaluate them now and save the results.
-         */
-        if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
-        {
-            Status = AcpiDsGetRegionArguments (ObjDesc);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-
-        /* Get the table header first so we can get the table length */
-
-        Table = ACPI_ALLOCATE (sizeof (ACPI_TABLE_HEADER));
-        if (!Table)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        Status = AcpiExRegionRead (ObjDesc, sizeof (ACPI_TABLE_HEADER),
-                    ACPI_CAST_PTR (UINT8, Table));
-        Length = Table->Length;
-        ACPI_FREE (Table);
-
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Must have at least an ACPI table header */
-
-        if (Length < sizeof (ACPI_TABLE_HEADER))
-        {
-            return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH);
-        }
-
-        /*
-         * The original implementation simply mapped the table, with no copy.
-         * However, the memory region is not guaranteed to remain stable and
-         * we must copy the table to a local buffer. For example, the memory
-         * region is corrupted after suspend on some machines. Dynamically
-         * loaded tables are usually small, so this overhead is minimal.
-         *
-         * The latest implementation (5/2009) does not use a mapping at all.
-         * We use the low-level operation region interface to read the table
-         * instead of the obvious optimization of using a direct mapping.
-         * This maintains a consistent use of operation regions across the
-         * entire subsystem. This is important if additional processing must
-         * be performed in the (possibly user-installed) operation region
-         * handler. For example, AcpiExec and ASLTS depend on this.
-         */
-
-        /* Allocate a buffer for the table */
-
-        TableDesc.Pointer = ACPI_ALLOCATE (Length);
-        if (!TableDesc.Pointer)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /* Read the entire table */
-
-        Status = AcpiExRegionRead (ObjDesc, Length,
-                    ACPI_CAST_PTR (UINT8, TableDesc.Pointer));
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_FREE (TableDesc.Pointer);
-            return_ACPI_STATUS (Status);
-        }
-
-        TableDesc.Address = ObjDesc->Region.Address;
-        break;
-
-
-    case ACPI_TYPE_BUFFER: /* Buffer or resolved RegionField */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "Load table from Buffer or Field %p\n", ObjDesc));
-
-        /* Must have at least an ACPI table header */
-
-        if (ObjDesc->Buffer.Length < sizeof (ACPI_TABLE_HEADER))
-        {
-            return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH);
-        }
-
-        /* Get the actual table length from the table header */
-
-        Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ObjDesc->Buffer.Pointer);
-        Length = Table->Length;
-
-        /* Table cannot extend beyond the buffer */
-
-        if (Length > ObjDesc->Buffer.Length)
-        {
-            return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
-        }
-        if (Length < sizeof (ACPI_TABLE_HEADER))
-        {
-            return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH);
-        }
-
-        /*
-         * Copy the table from the buffer because the buffer could be modified
-         * or even deleted in the future
-         */
-        TableDesc.Pointer = ACPI_ALLOCATE (Length);
-        if (!TableDesc.Pointer)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        ACPI_MEMCPY (TableDesc.Pointer, Table, Length);
-        TableDesc.Address = ACPI_TO_INTEGER (TableDesc.Pointer);
-        break;
-
-
-    default:
-        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-    }
-
-    /* Validate table checksum (will not get validated in TbAddTable) */
-
-    Status = AcpiTbVerifyChecksum (TableDesc.Pointer, Length);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_FREE (TableDesc.Pointer);
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Complete the table descriptor */
-
-    TableDesc.Length = Length;
-    TableDesc.Flags = ACPI_TABLE_ORIGIN_ALLOCATED;
-
-    /* Install the new table into the local data structures */
-
-    Status = AcpiTbAddTable (&TableDesc, &TableIndex);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    /*
-     * Add the table to the namespace.
-     *
-     * Note: Load the table objects relative to the root of the namespace.
-     * This appears to go against the ACPI specification, but we do it for
-     * compatibility with other ACPI implementations.
-     */
-    Status = AcpiExAddTable (TableIndex, AcpiGbl_RootNode, &DdbHandle);
-    if (ACPI_FAILURE (Status))
-    {
-        /* On error, TablePtr was deallocated above */
-
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Store the DdbHandle into the Target operand */
-
-    Status = AcpiExStore (DdbHandle, Target, WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        (void) AcpiExUnloadTable (DdbHandle);
-
-        /* TablePtr was deallocated above */
-
-        AcpiUtRemoveReference (DdbHandle);
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Remove the reference by added by AcpiExStore above */
-
-    AcpiUtRemoveReference (DdbHandle);
-
-    /* Invoke table handler if present */
-
-    if (AcpiGbl_TableHandler)
-    {
-        (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_LOAD, TableDesc.Pointer,
-                    AcpiGbl_TableHandlerContext);
-    }
-
-Cleanup:
-    if (ACPI_FAILURE (Status))
-    {
-        /* Delete allocated table buffer */
-
-        AcpiTbDeleteTable (&TableDesc);
-    }
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExUnloadTable
- *
- * PARAMETERS:  DdbHandle           - Handle to a previously loaded table
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Unload an ACPI table
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExUnloadTable (
-    ACPI_OPERAND_OBJECT     *DdbHandle)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *TableDesc = DdbHandle;
-    UINT32                  TableIndex;
-    ACPI_TABLE_HEADER       *Table;
-
-
-    ACPI_FUNCTION_TRACE (ExUnloadTable);
-
-
-    /*
-     * Validate the handle
-     * Although the handle is partially validated in AcpiExReconfiguration()
-     * when it calls AcpiExResolveOperands(), the handle is more completely
-     * validated here.
-     *
-     * Handle must be a valid operand object of type reference. Also, the
-     * DdbHandle must still be marked valid (table has not been previously
-     * unloaded)
-     */
-    if ((!DdbHandle) ||
-        (ACPI_GET_DESCRIPTOR_TYPE (DdbHandle) != ACPI_DESC_TYPE_OPERAND) ||
-        (DdbHandle->Common.Type != ACPI_TYPE_LOCAL_REFERENCE) ||
-        (!(DdbHandle->Common.Flags & AOPOBJ_DATA_VALID)))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Get the table index from the DdbHandle */
-
-    TableIndex = TableDesc->Reference.Value;
-
-    /* Ensure the table is still loaded */
-
-    if (!AcpiTbIsTableLoaded (TableIndex))
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    /* Invoke table handler if present */
-
-    if (AcpiGbl_TableHandler)
-    {
-        Status = AcpiGetTableByIndex (TableIndex, &Table);
-        if (ACPI_SUCCESS (Status))
-        {
-            (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_UNLOAD, Table,
-                        AcpiGbl_TableHandlerContext);
-        }
-    }
-
-    /* Delete the portion of the namespace owned by this table */
-
-    Status = AcpiTbDeleteNamespaceByOwner (TableIndex);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    (void) AcpiTbReleaseOwnerId (TableIndex);
-    AcpiTbSetTableLoadedFlag (TableIndex, FALSE);
-
-    /*
-     * Invalidate the handle. We do this because the handle may be stored
-     * in a named object and may not be actually deleted until much later.
-     */
-    DdbHandle->Common.Flags &= ~AOPOBJ_DATA_VALID;
-    return_ACPI_STATUS (AE_OK);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exconvrt.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exconvrt.c
deleted file mode 100644 (file)
index fd8fec1..0000000
+++ /dev/null
@@ -1,826 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exconvrt - Object conversion routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __EXCONVRT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "amlcode.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exconvrt")
-
-/* Local prototypes */
-
-static UINT32
-AcpiExConvertToAscii (
-    ACPI_INTEGER            Integer,
-    UINT16                  Base,
-    UINT8                   *String,
-    UINT8                   MaxLength);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExConvertToInteger
- *
- * PARAMETERS:  ObjDesc         - Object to be converted. Must be an
- *                                Integer, Buffer, or String
- *              ResultDesc      - Where the new Integer object is returned
- *              Flags           - Used for string conversion
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert an ACPI Object to an integer.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConvertToInteger (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_OPERAND_OBJECT     **ResultDesc,
-    UINT32                  Flags)
-{
-    ACPI_OPERAND_OBJECT     *ReturnDesc;
-    UINT8                   *Pointer;
-    ACPI_INTEGER            Result;
-    UINT32                  i;
-    UINT32                  Count;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExConvertToInteger, ObjDesc);
-
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-
-        /* No conversion necessary */
-
-        *ResultDesc = ObjDesc;
-        return_ACPI_STATUS (AE_OK);
-
-    case ACPI_TYPE_BUFFER:
-    case ACPI_TYPE_STRING:
-
-        /* Note: Takes advantage of common buffer/string fields */
-
-        Pointer = ObjDesc->Buffer.Pointer;
-        Count   = ObjDesc->Buffer.Length;
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_TYPE);
-    }
-
-    /*
-     * Convert the buffer/string to an integer. Note that both buffers and
-     * strings are treated as raw data - we don't convert ascii to hex for
-     * strings.
-     *
-     * There are two terminating conditions for the loop:
-     * 1) The size of an integer has been reached, or
-     * 2) The end of the buffer or string has been reached
-     */
-    Result = 0;
-
-    /* String conversion is different than Buffer conversion */
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_STRING:
-
-        /*
-         * Convert string to an integer - for most cases, the string must be
-         * hexadecimal as per the ACPI specification. The only exception (as
-         * of ACPI 3.0) is that the ToInteger() operator allows both decimal
-         * and hexadecimal strings (hex prefixed with "0x").
-         */
-        Status = AcpiUtStrtoul64 ((char *) Pointer, Flags, &Result);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        /* Check for zero-length buffer */
-
-        if (!Count)
-        {
-            return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
-        }
-
-        /* Transfer no more than an integer's worth of data */
-
-        if (Count > AcpiGbl_IntegerByteWidth)
-        {
-            Count = AcpiGbl_IntegerByteWidth;
-        }
-
-        /*
-         * Convert buffer to an integer - we simply grab enough raw data
-         * from the buffer to fill an integer
-         */
-        for (i = 0; i < Count; i++)
-        {
-            /*
-             * Get next byte and shift it into the Result.
-             * Little endian is used, meaning that the first byte of the buffer
-             * is the LSB of the integer
-             */
-            Result |= (((ACPI_INTEGER) Pointer[i]) << (i * 8));
-        }
-        break;
-
-
-    default:
-
-        /* No other types can get here */
-        break;
-    }
-
-    /* Create a new integer */
-
-    ReturnDesc = AcpiUtCreateIntegerObject (Result);
-    if (!ReturnDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Converted value: %8.8X%8.8X\n",
-        ACPI_FORMAT_UINT64 (Result)));
-
-    /* Save the Result */
-
-    AcpiExTruncateFor32bitTable (ReturnDesc);
-    *ResultDesc = ReturnDesc;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExConvertToBuffer
- *
- * PARAMETERS:  ObjDesc         - Object to be converted. Must be an
- *                                Integer, Buffer, or String
- *              ResultDesc      - Where the new buffer object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert an ACPI Object to a Buffer
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConvertToBuffer (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_OPERAND_OBJECT     **ResultDesc)
-{
-    ACPI_OPERAND_OBJECT     *ReturnDesc;
-    UINT8                   *NewBuf;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExConvertToBuffer, ObjDesc);
-
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_BUFFER:
-
-        /* No conversion necessary */
-
-        *ResultDesc = ObjDesc;
-        return_ACPI_STATUS (AE_OK);
-
-
-    case ACPI_TYPE_INTEGER:
-
-        /*
-         * Create a new Buffer object.
-         * Need enough space for one integer
-         */
-        ReturnDesc = AcpiUtCreateBufferObject (AcpiGbl_IntegerByteWidth);
-        if (!ReturnDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /* Copy the integer to the buffer, LSB first */
-
-        NewBuf = ReturnDesc->Buffer.Pointer;
-        ACPI_MEMCPY (NewBuf,
-                        &ObjDesc->Integer.Value,
-                        AcpiGbl_IntegerByteWidth);
-        break;
-
-
-    case ACPI_TYPE_STRING:
-
-        /*
-         * Create a new Buffer object
-         * Size will be the string length
-         *
-         * NOTE: Add one to the string length to include the null terminator.
-         * The ACPI spec is unclear on this subject, but there is existing
-         * ASL/AML code that depends on the null being transferred to the new
-         * buffer.
-         */
-        ReturnDesc = AcpiUtCreateBufferObject (
-                        (ACPI_SIZE) ObjDesc->String.Length + 1);
-        if (!ReturnDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /* Copy the string to the buffer */
-
-        NewBuf = ReturnDesc->Buffer.Pointer;
-        ACPI_STRNCPY ((char *) NewBuf, (char *) ObjDesc->String.Pointer,
-            ObjDesc->String.Length);
-        break;
-
-
-    default:
-        return_ACPI_STATUS (AE_TYPE);
-    }
-
-    /* Mark buffer initialized */
-
-    ReturnDesc->Common.Flags |= AOPOBJ_DATA_VALID;
-    *ResultDesc = ReturnDesc;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExConvertToAscii
- *
- * PARAMETERS:  Integer         - Value to be converted
- *              Base            - ACPI_STRING_DECIMAL or ACPI_STRING_HEX
- *              String          - Where the string is returned
- *              DataWidth       - Size of data item to be converted, in bytes
- *
- * RETURN:      Actual string length
- *
- * DESCRIPTION: Convert an ACPI Integer to a hex or decimal string
- *
- ******************************************************************************/
-
-static UINT32
-AcpiExConvertToAscii (
-    ACPI_INTEGER            Integer,
-    UINT16                  Base,
-    UINT8                   *String,
-    UINT8                   DataWidth)
-{
-    ACPI_INTEGER            Digit;
-    UINT32                  i;
-    UINT32                  j;
-    UINT32                  k = 0;
-    UINT32                  HexLength;
-    UINT32                  DecimalLength;
-    UINT32                  Remainder;
-    BOOLEAN                 SupressZeros;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    switch (Base)
-    {
-    case 10:
-
-        /* Setup max length for the decimal number */
-
-        switch (DataWidth)
-        {
-        case 1:
-            DecimalLength = ACPI_MAX8_DECIMAL_DIGITS;
-            break;
-
-        case 4:
-            DecimalLength = ACPI_MAX32_DECIMAL_DIGITS;
-            break;
-
-        case 8:
-        default:
-            DecimalLength = ACPI_MAX64_DECIMAL_DIGITS;
-            break;
-        }
-
-        SupressZeros = TRUE;     /* No leading zeros */
-        Remainder = 0;
-
-        for (i = DecimalLength; i > 0; i--)
-        {
-            /* Divide by nth factor of 10 */
-
-            Digit = Integer;
-            for (j = 0; j < i; j++)
-            {
-                (void) AcpiUtShortDivide (Digit, 10, &Digit, &Remainder);
-            }
-
-            /* Handle leading zeros */
-
-            if (Remainder != 0)
-            {
-                SupressZeros = FALSE;
-            }
-
-            if (!SupressZeros)
-            {
-                String[k] = (UINT8) (ACPI_ASCII_ZERO + Remainder);
-                k++;
-            }
-        }
-        break;
-
-    case 16:
-
-        /* HexLength: 2 ascii hex chars per data byte */
-
-        HexLength = ACPI_MUL_2 (DataWidth);
-        for (i = 0, j = (HexLength-1); i < HexLength; i++, j--)
-        {
-            /* Get one hex digit, most significant digits first */
-
-            String[k] = (UINT8) AcpiUtHexToAsciiChar (Integer, ACPI_MUL_4 (j));
-            k++;
-        }
-        break;
-
-    default:
-        return (0);
-    }
-
-    /*
-     * Since leading zeros are suppressed, we must check for the case where
-     * the integer equals 0
-     *
-     * Finally, null terminate the string and return the length
-     */
-    if (!k)
-    {
-        String [0] = ACPI_ASCII_ZERO;
-        k = 1;
-    }
-
-    String [k] = 0;
-    return ((UINT32) k);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExConvertToString
- *
- * PARAMETERS:  ObjDesc         - Object to be converted. Must be an
- *                                Integer, Buffer, or String
- *              ResultDesc      - Where the string object is returned
- *              Type            - String flags (base and conversion type)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert an ACPI Object to a string
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConvertToString (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_OPERAND_OBJECT     **ResultDesc,
-    UINT32                  Type)
-{
-    ACPI_OPERAND_OBJECT     *ReturnDesc;
-    UINT8                   *NewBuf;
-    UINT32                  i;
-    UINT32                  StringLength = 0;
-    UINT16                  Base = 16;
-    UINT8                   Separator = ',';
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExConvertToString, ObjDesc);
-
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_STRING:
-
-        /* No conversion necessary */
-
-        *ResultDesc = ObjDesc;
-        return_ACPI_STATUS (AE_OK);
-
-
-    case ACPI_TYPE_INTEGER:
-
-        switch (Type)
-        {
-        case ACPI_EXPLICIT_CONVERT_DECIMAL:
-
-            /* Make room for maximum decimal number */
-
-            StringLength = ACPI_MAX_DECIMAL_DIGITS;
-            Base = 10;
-            break;
-
-        default:
-
-            /* Two hex string characters for each integer byte */
-
-            StringLength = ACPI_MUL_2 (AcpiGbl_IntegerByteWidth);
-            break;
-        }
-
-        /*
-         * Create a new String
-         * Need enough space for one ASCII integer (plus null terminator)
-         */
-        ReturnDesc = AcpiUtCreateStringObject ((ACPI_SIZE) StringLength);
-        if (!ReturnDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        NewBuf = ReturnDesc->Buffer.Pointer;
-
-        /* Convert integer to string */
-
-        StringLength = AcpiExConvertToAscii (ObjDesc->Integer.Value, Base,
-                            NewBuf, AcpiGbl_IntegerByteWidth);
-
-        /* Null terminate at the correct place */
-
-        ReturnDesc->String.Length = StringLength;
-        NewBuf [StringLength] = 0;
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        /* Setup string length, base, and separator */
-
-        switch (Type)
-        {
-        case ACPI_EXPLICIT_CONVERT_DECIMAL: /* Used by ToDecimalString */
-            /*
-             * From ACPI: "If Data is a buffer, it is converted to a string of
-             * decimal values separated by commas."
-             */
-            Base = 10;
-
-            /*
-             * Calculate the final string length. Individual string values
-             * are variable length (include separator for each)
-             */
-            for (i = 0; i < ObjDesc->Buffer.Length; i++)
-            {
-                if (ObjDesc->Buffer.Pointer[i] >= 100)
-                {
-                    StringLength += 4;
-                }
-                else if (ObjDesc->Buffer.Pointer[i] >= 10)
-                {
-                    StringLength += 3;
-                }
-                else
-                {
-                    StringLength += 2;
-                }
-            }
-            break;
-
-        case ACPI_IMPLICIT_CONVERT_HEX:
-            /*
-             * From the ACPI spec:
-             *"The entire contents of the buffer are converted to a string of
-             * two-character hexadecimal numbers, each separated by a space."
-             */
-            Separator = ' ';
-            StringLength = (ObjDesc->Buffer.Length * 3);
-            break;
-
-        case ACPI_EXPLICIT_CONVERT_HEX:     /* Used by ToHexString */
-            /*
-             * From ACPI: "If Data is a buffer, it is converted to a string of
-             * hexadecimal values separated by commas."
-             */
-            StringLength = (ObjDesc->Buffer.Length * 3);
-            break;
-
-        default:
-            return_ACPI_STATUS (AE_BAD_PARAMETER);
-        }
-
-        /*
-         * Create a new string object and string buffer
-         * (-1 because of extra separator included in StringLength from above)
-         * Allow creation of zero-length strings from zero-length buffers.
-         */
-        if (StringLength)
-        {
-            StringLength--;
-        }
-
-        ReturnDesc = AcpiUtCreateStringObject ((ACPI_SIZE) StringLength);
-        if (!ReturnDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        NewBuf = ReturnDesc->Buffer.Pointer;
-
-        /*
-         * Convert buffer bytes to hex or decimal values
-         * (separated by commas or spaces)
-         */
-        for (i = 0; i < ObjDesc->Buffer.Length; i++)
-        {
-            NewBuf += AcpiExConvertToAscii (
-                        (ACPI_INTEGER) ObjDesc->Buffer.Pointer[i], Base,
-                        NewBuf, 1);
-            *NewBuf++ = Separator; /* each separated by a comma or space */
-        }
-
-        /*
-         * Null terminate the string
-         * (overwrites final comma/space from above)
-         */
-        if (ObjDesc->Buffer.Length)
-        {
-            NewBuf--;
-        }
-        *NewBuf = 0;
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_TYPE);
-    }
-
-    *ResultDesc = ReturnDesc;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExConvertToTargetType
- *
- * PARAMETERS:  DestinationType     - Current type of the destination
- *              SourceDesc          - Source object to be converted.
- *              ResultDesc          - Where the converted object is returned
- *              WalkState           - Current method state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Implements "implicit conversion" rules for storing an object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConvertToTargetType (
-    ACPI_OBJECT_TYPE        DestinationType,
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     **ResultDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (ExConvertToTargetType);
-
-
-    /* Default behavior */
-
-    *ResultDesc = SourceDesc;
-
-    /*
-     * If required by the target,
-     * perform implicit conversion on the source before we store it.
-     */
-    switch (GET_CURRENT_ARG_TYPE (WalkState->OpInfo->RuntimeArgs))
-    {
-    case ARGI_SIMPLE_TARGET:
-    case ARGI_FIXED_TARGET:
-    case ARGI_INTEGER_REF:      /* Handles Increment, Decrement cases */
-
-        switch (DestinationType)
-        {
-        case ACPI_TYPE_LOCAL_REGION_FIELD:
-            /*
-             * Named field can always handle conversions
-             */
-            break;
-
-        default:
-            /* No conversion allowed for these types */
-
-            if (DestinationType != SourceDesc->Common.Type)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                    "Explicit operator, will store (%s) over existing type (%s)\n",
-                    AcpiUtGetObjectTypeName (SourceDesc),
-                    AcpiUtGetTypeName (DestinationType)));
-                Status = AE_TYPE;
-            }
-        }
-        break;
-
-
-    case ARGI_TARGETREF:
-
-        switch (DestinationType)
-        {
-        case ACPI_TYPE_INTEGER:
-        case ACPI_TYPE_BUFFER_FIELD:
-        case ACPI_TYPE_LOCAL_BANK_FIELD:
-        case ACPI_TYPE_LOCAL_INDEX_FIELD:
-            /*
-             * These types require an Integer operand. We can convert
-             * a Buffer or a String to an Integer if necessary.
-             */
-            Status = AcpiExConvertToInteger (SourceDesc, ResultDesc,
-                        16);
-            break;
-
-
-        case ACPI_TYPE_STRING:
-            /*
-             * The operand must be a String. We can convert an
-             * Integer or Buffer if necessary
-             */
-            Status = AcpiExConvertToString (SourceDesc, ResultDesc,
-                        ACPI_IMPLICIT_CONVERT_HEX);
-            break;
-
-
-        case ACPI_TYPE_BUFFER:
-            /*
-             * The operand must be a Buffer. We can convert an
-             * Integer or String if necessary
-             */
-            Status = AcpiExConvertToBuffer (SourceDesc, ResultDesc);
-            break;
-
-
-        default:
-            ACPI_ERROR ((AE_INFO, "Bad destination type during conversion: %X",
-                DestinationType));
-            Status = AE_AML_INTERNAL;
-            break;
-        }
-        break;
-
-
-    case ARGI_REFERENCE:
-        /*
-         * CreateXxxxField cases - we are storing the field object into the name
-         */
-        break;
-
-
-    default:
-        ACPI_ERROR ((AE_INFO,
-            "Unknown Target type ID 0x%X AmlOpcode %X DestType %s",
-            GET_CURRENT_ARG_TYPE (WalkState->OpInfo->RuntimeArgs),
-            WalkState->Opcode, AcpiUtGetTypeName (DestinationType)));
-        Status = AE_AML_INTERNAL;
-    }
-
-    /*
-     * Source-to-Target conversion semantics:
-     *
-     * If conversion to the target type cannot be performed, then simply
-     * overwrite the target with the new object and type.
-     */
-    if (Status == AE_TYPE)
-    {
-        Status = AE_OK;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/excreate.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/excreate.c
deleted file mode 100644 (file)
index e546318..0000000
+++ /dev/null
@@ -1,636 +0,0 @@
-/******************************************************************************
- *
- * Module Name: excreate - Named object creation
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
-
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXCREATE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("excreate")
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExCreateAlias
- *
- * PARAMETERS:  WalkState            - Current state, contains operands
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new named alias
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateAlias (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_NAMESPACE_NODE     *TargetNode;
-    ACPI_NAMESPACE_NODE     *AliasNode;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (ExCreateAlias);
-
-
-    /* Get the source/alias operands (both namespace nodes) */
-
-    AliasNode =  (ACPI_NAMESPACE_NODE *) WalkState->Operands[0];
-    TargetNode = (ACPI_NAMESPACE_NODE *) WalkState->Operands[1];
-
-    if ((TargetNode->Type == ACPI_TYPE_LOCAL_ALIAS)  ||
-        (TargetNode->Type == ACPI_TYPE_LOCAL_METHOD_ALIAS))
-    {
-        /*
-         * Dereference an existing alias so that we don't create a chain
-         * of aliases.  With this code, we guarantee that an alias is
-         * always exactly one level of indirection away from the
-         * actual aliased name.
-         */
-        TargetNode = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, TargetNode->Object);
-    }
-
-    /*
-     * For objects that can never change (i.e., the NS node will
-     * permanently point to the same object), we can simply attach
-     * the object to the new NS node.  For other objects (such as
-     * Integers, buffers, etc.), we have to point the Alias node
-     * to the original Node.
-     */
-    switch (TargetNode->Type)
-    {
-
-    /* For these types, the sub-object can change dynamically via a Store */
-
-    case ACPI_TYPE_INTEGER:
-    case ACPI_TYPE_STRING:
-    case ACPI_TYPE_BUFFER:
-    case ACPI_TYPE_PACKAGE:
-    case ACPI_TYPE_BUFFER_FIELD:
-
-    /*
-     * These types open a new scope, so we need the NS node in order to access
-     * any children.
-     */
-    case ACPI_TYPE_DEVICE:
-    case ACPI_TYPE_POWER:
-    case ACPI_TYPE_PROCESSOR:
-    case ACPI_TYPE_THERMAL:
-    case ACPI_TYPE_LOCAL_SCOPE:
-
-        /*
-         * The new alias has the type ALIAS and points to the original
-         * NS node, not the object itself.
-         */
-        AliasNode->Type = ACPI_TYPE_LOCAL_ALIAS;
-        AliasNode->Object = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, TargetNode);
-        break;
-
-    case ACPI_TYPE_METHOD:
-
-        /*
-         * Control method aliases need to be differentiated
-         */
-        AliasNode->Type = ACPI_TYPE_LOCAL_METHOD_ALIAS;
-        AliasNode->Object = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, TargetNode);
-        break;
-
-    default:
-
-        /* Attach the original source object to the new Alias Node */
-
-        /*
-         * The new alias assumes the type of the target, and it points
-         * to the same object.  The reference count of the object has an
-         * additional reference to prevent deletion out from under either the
-         * target node or the alias Node
-         */
-        Status = AcpiNsAttachObject (AliasNode,
-                    AcpiNsGetAttachedObject (TargetNode), TargetNode->Type);
-        break;
-    }
-
-    /* Since both operands are Nodes, we don't need to delete them */
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExCreateEvent
- *
- * PARAMETERS:  WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new event object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateEvent (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_TRACE (ExCreateEvent);
-
-
-    ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_EVENT);
-    if (!ObjDesc)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /*
-     * Create the actual OS semaphore, with zero initial units -- meaning
-     * that the event is created in an unsignalled state
-     */
-    Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0,
-                &ObjDesc->Event.OsSemaphore);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    /* Attach object to the Node */
-
-    Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) WalkState->Operands[0],
-                ObjDesc, ACPI_TYPE_EVENT);
-
-Cleanup:
-    /*
-     * Remove local reference to the object (on error, will cause deletion
-     * of both object and semaphore if present.)
-     */
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExCreateMutex
- *
- * PARAMETERS:  WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new mutex object
- *
- *              Mutex (Name[0], SyncLevel[1])
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateMutex (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExCreateMutex, ACPI_WALK_OPERANDS);
-
-
-    /* Create the new mutex object */
-
-    ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_MUTEX);
-    if (!ObjDesc)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /* Create the actual OS Mutex */
-
-    Status = AcpiOsCreateMutex (&ObjDesc->Mutex.OsMutex);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    /* Init object and attach to NS node */
-
-    ObjDesc->Mutex.SyncLevel = (UINT8) WalkState->Operands[1]->Integer.Value;
-    ObjDesc->Mutex.Node = (ACPI_NAMESPACE_NODE *) WalkState->Operands[0];
-
-    Status = AcpiNsAttachObject (ObjDesc->Mutex.Node, ObjDesc, ACPI_TYPE_MUTEX);
-
-
-Cleanup:
-    /*
-     * Remove local reference to the object (on error, will cause deletion
-     * of both object and semaphore if present.)
-     */
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExCreateRegion
- *
- * PARAMETERS:  AmlStart            - Pointer to the region declaration AML
- *              AmlLength           - Max length of the declaration AML
- *              RegionSpace         - SpaceID for the region
- *              WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new operation region object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateRegion (
-    UINT8                   *AmlStart,
-    UINT32                  AmlLength,
-    UINT8                   RegionSpace,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OPERAND_OBJECT     *RegionObj2;
-
-
-    ACPI_FUNCTION_TRACE (ExCreateRegion);
-
-
-    /* Get the Namespace Node */
-
-    Node = WalkState->Op->Common.Node;
-
-    /*
-     * If the region object is already attached to this node,
-     * just return
-     */
-    if (AcpiNsGetAttachedObject (Node))
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * Space ID must be one of the predefined IDs, or in the user-defined
-     * range
-     */
-    if ((RegionSpace >= ACPI_NUM_PREDEFINED_REGIONS) &&
-        (RegionSpace < ACPI_USER_REGION_BEGIN))
-    {
-        ACPI_ERROR ((AE_INFO, "Invalid AddressSpace type %X", RegionSpace));
-        return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "Region Type - %s (%X)\n",
-        AcpiUtGetRegionName (RegionSpace), RegionSpace));
-
-    /* Create the region descriptor */
-
-    ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_REGION);
-    if (!ObjDesc)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /*
-     * Remember location in AML stream of address & length
-     * operands since they need to be evaluated at run time.
-     */
-    RegionObj2 = ObjDesc->Common.NextObject;
-    RegionObj2->Extra.AmlStart = AmlStart;
-    RegionObj2->Extra.AmlLength = AmlLength;
-
-    /* Init the region from the operands */
-
-    ObjDesc->Region.SpaceId = RegionSpace;
-    ObjDesc->Region.Address = 0;
-    ObjDesc->Region.Length = 0;
-    ObjDesc->Region.Node = Node;
-
-    /* Install the new region object in the parent Node */
-
-    Status = AcpiNsAttachObject (Node, ObjDesc, ACPI_TYPE_REGION);
-
-
-Cleanup:
-
-    /* Remove local reference to the object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExCreateProcessor
- *
- * PARAMETERS:  WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new processor object and populate the fields
- *
- *              Processor (Name[0], CpuID[1], PblockAddr[2], PblockLength[3])
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateProcessor (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExCreateProcessor, WalkState);
-
-
-    /* Create the processor object */
-
-    ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_PROCESSOR);
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Initialize the processor object from the operands */
-
-    ObjDesc->Processor.ProcId = (UINT8) Operand[1]->Integer.Value;
-    ObjDesc->Processor.Length = (UINT8) Operand[3]->Integer.Value;
-    ObjDesc->Processor.Address = (ACPI_IO_ADDRESS) Operand[2]->Integer.Value;
-
-    /* Install the processor object in the parent Node */
-
-    Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0],
-                    ObjDesc, ACPI_TYPE_PROCESSOR);
-
-    /* Remove local reference to the object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExCreatePowerResource
- *
- * PARAMETERS:  WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new PowerResource object and populate the fields
- *
- *              PowerResource (Name[0], SystemLevel[1], ResourceOrder[2])
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreatePowerResource (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExCreatePowerResource, WalkState);
-
-
-    /* Create the power resource object */
-
-    ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_POWER);
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Initialize the power object from the operands */
-
-    ObjDesc->PowerResource.SystemLevel = (UINT8) Operand[1]->Integer.Value;
-    ObjDesc->PowerResource.ResourceOrder = (UINT16) Operand[2]->Integer.Value;
-
-    /* Install the  power resource object in the parent Node */
-
-    Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0],
-                    ObjDesc, ACPI_TYPE_POWER);
-
-    /* Remove local reference to the object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExCreateMethod
- *
- * PARAMETERS:  AmlStart        - First byte of the method's AML
- *              AmlLength       - AML byte count for this method
- *              WalkState       - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new method object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateMethod (
-    UINT8                   *AmlStart,
-    UINT32                  AmlLength,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-    UINT8                   MethodFlags;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExCreateMethod, WalkState);
-
-
-    /* Create a new method object */
-
-    ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
-    if (!ObjDesc)
-    {
-       Status = AE_NO_MEMORY;
-       goto Exit;
-    }
-
-    /* Save the method's AML pointer and length  */
-
-    ObjDesc->Method.AmlStart = AmlStart;
-    ObjDesc->Method.AmlLength = AmlLength;
-
-    /*
-     * Disassemble the method flags. Split off the Arg Count
-     * for efficiency
-     */
-    MethodFlags = (UINT8) Operand[1]->Integer.Value;
-
-    ObjDesc->Method.MethodFlags = (UINT8) (MethodFlags & ~AML_METHOD_ARG_COUNT);
-    ObjDesc->Method.ParamCount = (UINT8) (MethodFlags & AML_METHOD_ARG_COUNT);
-
-    /*
-     * Get the SyncLevel. If method is serialized, a mutex will be
-     * created for this method when it is parsed.
-     */
-    if (MethodFlags & AML_METHOD_SERIALIZED)
-    {
-        /*
-         * ACPI 1.0: SyncLevel = 0
-         * ACPI 2.0: SyncLevel = SyncLevel in method declaration
-         */
-        ObjDesc->Method.SyncLevel = (UINT8)
-            ((MethodFlags & AML_METHOD_SYNC_LEVEL) >> 4);
-    }
-
-    /* Attach the new object to the method Node */
-
-    Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0],
-                    ObjDesc, ACPI_TYPE_METHOD);
-
-    /* Remove local reference to the object */
-
-    AcpiUtRemoveReference (ObjDesc);
-
-Exit:
-    /* Remove a reference to the operand */
-
-    AcpiUtRemoveReference (Operand[1]);
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exdump.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exdump.c
deleted file mode 100644 (file)
index 5de5a6f..0000000
+++ /dev/null
@@ -1,1194 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exdump - Interpreter debug output routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXDUMP_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exdump")
-
-/*
- * The following routines are used for debug output only
- */
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-
-/* Local prototypes */
-
-static void
-AcpiExOutString (
-    char                    *Title,
-    char                    *Value);
-
-static void
-AcpiExOutPointer (
-    char                    *Title,
-    void                    *Value);
-
-static void
-AcpiExDumpObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_EXDUMP_INFO        *Info);
-
-static void
-AcpiExDumpReferenceObj (
-    ACPI_OPERAND_OBJECT     *ObjDesc);
-
-static void
-AcpiExDumpPackageObj (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  Level,
-    UINT32                  Index);
-
-
-/*******************************************************************************
- *
- * Object Descriptor info tables
- *
- * Note: The first table entry must be an INIT opcode and must contain
- * the table length (number of table entries)
- *
- ******************************************************************************/
-
-static ACPI_EXDUMP_INFO     AcpiExDumpInteger[2] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpInteger),        NULL},
-    {ACPI_EXD_UINT64,   ACPI_EXD_OFFSET (Integer.Value),                "Value"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpString[4] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpString),         NULL},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (String.Length),                "Length"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (String.Pointer),               "Pointer"},
-    {ACPI_EXD_STRING,   0,                                              NULL}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpBuffer[5] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpBuffer),         NULL},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (Buffer.Length),                "Length"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Buffer.Pointer),               "Pointer"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Buffer.Node),                  "Parent Node"},
-    {ACPI_EXD_BUFFER,   0,                                              NULL}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpPackage[5] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpPackage),        NULL},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Package.Flags),                "Flags"},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (Package.Count),                "Elements"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Package.Elements),             "Element List"},
-    {ACPI_EXD_PACKAGE,  0,                                              NULL}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpDevice[4] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpDevice),         NULL},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Device.Handler),               "Handler"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Device.SystemNotify),          "System Notify"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Device.DeviceNotify),          "Device Notify"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpEvent[2] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpEvent),          NULL},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Event.OsSemaphore),            "OsSemaphore"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpMethod[9] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpMethod),         NULL},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Method.MethodFlags),           "Method Flags"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Method.ParamCount),            "Parameter Count"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Method.SyncLevel),             "Sync Level"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Method.Mutex),                 "Mutex"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Method.OwnerId),               "Owner Id"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Method.ThreadCount),           "Thread Count"},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (Method.AmlLength),             "Aml Length"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Method.AmlStart),              "Aml Start"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpMutex[5] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpMutex),          NULL},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Mutex.SyncLevel),              "Sync Level"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Mutex.OwnerThread),            "Owner Thread"},
-    {ACPI_EXD_UINT16,   ACPI_EXD_OFFSET (Mutex.AcquisitionDepth),       "Acquire Depth"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Mutex.OsMutex),                "OsMutex"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpRegion[7] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpRegion),         NULL},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Region.SpaceId),               "Space Id"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Region.Flags),                 "Flags"},
-    {ACPI_EXD_ADDRESS,  ACPI_EXD_OFFSET (Region.Address),               "Address"},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (Region.Length),                "Length"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Region.Handler),               "Handler"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Region.Next),                  "Next"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpPower[5] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpPower),          NULL},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (PowerResource.SystemLevel),    "System Level"},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (PowerResource.ResourceOrder),  "Resource Order"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (PowerResource.SystemNotify),   "System Notify"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (PowerResource.DeviceNotify),   "Device Notify"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpProcessor[7] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpProcessor),      NULL},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Processor.ProcId),             "Processor ID"},
-    {ACPI_EXD_UINT8 ,   ACPI_EXD_OFFSET (Processor.Length),             "Length"},
-    {ACPI_EXD_ADDRESS,  ACPI_EXD_OFFSET (Processor.Address),            "Address"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Processor.SystemNotify),       "System Notify"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Processor.DeviceNotify),       "Device Notify"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Processor.Handler),            "Handler"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpThermal[4] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpThermal),        NULL},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (ThermalZone.SystemNotify),     "System Notify"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (ThermalZone.DeviceNotify),     "Device Notify"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (ThermalZone.Handler),          "Handler"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpBufferField[3] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpBufferField),    NULL},
-    {ACPI_EXD_FIELD,    0,                                              NULL},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (BufferField.BufferObj),        "Buffer Object"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpRegionField[3] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpRegionField),    NULL},
-    {ACPI_EXD_FIELD,    0,                                              NULL},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Field.RegionObj),              "Region Object"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpBankField[5] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpBankField),      NULL},
-    {ACPI_EXD_FIELD,    0,                                              NULL},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (BankField.Value),              "Value"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (BankField.RegionObj),          "Region Object"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (BankField.BankObj),            "Bank Object"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpIndexField[5] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpBankField),      NULL},
-    {ACPI_EXD_FIELD,    0,                                              NULL},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (IndexField.Value),             "Value"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (IndexField.IndexObj),          "Index Object"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (IndexField.DataObj),           "Data Object"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpReference[8] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpReference),       NULL},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Reference.Class),              "Class"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Reference.TargetType),         "Target Type"},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (Reference.Value),              "Value"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Reference.Object),             "Object Desc"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Reference.Node),               "Node"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Reference.Where),              "Where"},
-    {ACPI_EXD_REFERENCE,0,                                              NULL}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpAddressHandler[6] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpAddressHandler), NULL},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (AddressSpace.SpaceId),         "Space Id"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (AddressSpace.Next),            "Next"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (AddressSpace.RegionList),      "Region List"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (AddressSpace.Node),            "Node"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (AddressSpace.Context),         "Context"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpNotify[3] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpNotify),         NULL},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Notify.Node),                  "Node"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (Notify.Context),               "Context"}
-};
-
-
-/* Miscellaneous tables */
-
-static ACPI_EXDUMP_INFO     AcpiExDumpCommon[4] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpCommon),         NULL},
-    {ACPI_EXD_TYPE ,    0,                                              NULL},
-    {ACPI_EXD_UINT16,   ACPI_EXD_OFFSET (Common.ReferenceCount),        "Reference Count"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (Common.Flags),                 "Flags"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpFieldCommon[7] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpFieldCommon),    NULL},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (CommonField.FieldFlags),       "Field Flags"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (CommonField.AccessByteWidth),  "Access Byte Width"},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (CommonField.BitLength),        "Bit Length"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_OFFSET (CommonField.StartFieldBitOffset),"Field Bit Offset"},
-    {ACPI_EXD_UINT32,   ACPI_EXD_OFFSET (CommonField.BaseByteOffset),   "Base Byte Offset"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_OFFSET (CommonField.Node),             "Parent Node"}
-};
-
-static ACPI_EXDUMP_INFO     AcpiExDumpNode[5] =
-{
-    {ACPI_EXD_INIT,     ACPI_EXD_TABLE_SIZE (AcpiExDumpNode),           NULL},
-    {ACPI_EXD_UINT8,    ACPI_EXD_NSOFFSET (Flags),                      "Flags"},
-    {ACPI_EXD_UINT8,    ACPI_EXD_NSOFFSET (OwnerId),                    "Owner Id"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_NSOFFSET (Child),                      "Child List"},
-    {ACPI_EXD_POINTER,  ACPI_EXD_NSOFFSET (Peer),                       "Next Peer"}
-};
-
-
-/* Dispatch table, indexed by object type */
-
-static ACPI_EXDUMP_INFO     *AcpiExDumpInfo[] =
-{
-    NULL,
-    AcpiExDumpInteger,
-    AcpiExDumpString,
-    AcpiExDumpBuffer,
-    AcpiExDumpPackage,
-    NULL,
-    AcpiExDumpDevice,
-    AcpiExDumpEvent,
-    AcpiExDumpMethod,
-    AcpiExDumpMutex,
-    AcpiExDumpRegion,
-    AcpiExDumpPower,
-    AcpiExDumpProcessor,
-    AcpiExDumpThermal,
-    AcpiExDumpBufferField,
-    NULL,
-    NULL,
-    AcpiExDumpRegionField,
-    AcpiExDumpBankField,
-    AcpiExDumpIndexField,
-    AcpiExDumpReference,
-    NULL,
-    NULL,
-    AcpiExDumpNotify,
-    AcpiExDumpAddressHandler,
-    NULL,
-    NULL,
-    NULL
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDumpObject
- *
- * PARAMETERS:  ObjDesc             - Descriptor to dump
- *              Info                - Info table corresponding to this object
- *                                    type
- *
- * RETURN:      None
- *
- * DESCRIPTION: Walk the info table for this object
- *
- ******************************************************************************/
-
-static void
-AcpiExDumpObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_EXDUMP_INFO        *Info)
-{
-    UINT8                   *Target;
-    char                    *Name;
-    UINT8                   Count;
-
-
-    if (!Info)
-    {
-        AcpiOsPrintf (
-            "ExDumpObject: Display not implemented for object type %s\n",
-            AcpiUtGetObjectTypeName (ObjDesc));
-        return;
-    }
-
-    /* First table entry must contain the table length (# of table entries) */
-
-    Count = Info->Offset;
-
-    while (Count)
-    {
-        Target = ACPI_ADD_PTR (UINT8, ObjDesc, Info->Offset);
-        Name = Info->Name;
-
-        switch (Info->Opcode)
-        {
-        case ACPI_EXD_INIT:
-            break;
-
-        case ACPI_EXD_TYPE:
-
-            AcpiExOutString  ("Type", AcpiUtGetObjectTypeName (ObjDesc));
-            break;
-
-        case ACPI_EXD_UINT8:
-
-            AcpiOsPrintf ("%20s : %2.2X\n", Name, *Target);
-            break;
-
-        case ACPI_EXD_UINT16:
-
-            AcpiOsPrintf ("%20s : %4.4X\n", Name, ACPI_GET16 (Target));
-            break;
-
-        case ACPI_EXD_UINT32:
-
-            AcpiOsPrintf ("%20s : %8.8X\n", Name, ACPI_GET32 (Target));
-            break;
-
-        case ACPI_EXD_UINT64:
-
-            AcpiOsPrintf ("%20s : %8.8X%8.8X\n", "Value",
-                ACPI_FORMAT_UINT64 (ACPI_GET64 (Target)));
-            break;
-
-        case ACPI_EXD_POINTER:
-        case ACPI_EXD_ADDRESS:
-
-            AcpiExOutPointer (Name, *ACPI_CAST_PTR (void *, Target));
-            break;
-
-        case ACPI_EXD_STRING:
-
-            AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
-            AcpiOsPrintf ("\n");
-            break;
-
-        case ACPI_EXD_BUFFER:
-
-            ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, ObjDesc->Buffer.Length);
-            break;
-
-        case ACPI_EXD_PACKAGE:
-
-            /* Dump the package contents */
-
-            AcpiOsPrintf ("\nPackage Contents:\n");
-            AcpiExDumpPackageObj (ObjDesc, 0, 0);
-            break;
-
-        case ACPI_EXD_FIELD:
-
-            AcpiExDumpObject (ObjDesc, AcpiExDumpFieldCommon);
-            break;
-
-        case ACPI_EXD_REFERENCE:
-
-            AcpiExOutString ("Class Name",
-                ACPI_CAST_PTR (char, AcpiUtGetReferenceName (ObjDesc)));
-            AcpiExDumpReferenceObj (ObjDesc);
-            break;
-
-        default:
-
-            AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n",
-                Info->Opcode);
-            return;
-        }
-
-        Info++;
-        Count--;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDumpOperand
- *
- * PARAMETERS:  *ObjDesc        - Pointer to entry to be dumped
- *              Depth           - Current nesting depth
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump an operand object
- *
- ******************************************************************************/
-
-void
-AcpiExDumpOperand (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  Depth)
-{
-    UINT32                  Length;
-    UINT32                  Index;
-
-
-    ACPI_FUNCTION_NAME (ExDumpOperand)
-
-
-    if (!((ACPI_LV_EXEC & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer)))
-    {
-        return;
-    }
-
-    if (!ObjDesc)
-    {
-        /* This could be a null element of a package */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Null Object Descriptor\n"));
-        return;
-    }
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p Namespace Node: ", ObjDesc));
-        ACPI_DUMP_ENTRY (ObjDesc, ACPI_LV_EXEC);
-        return;
-    }
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "%p is not a node or operand object: [%s]\n",
-            ObjDesc, AcpiUtGetDescriptorName (ObjDesc)));
-        ACPI_DUMP_BUFFER (ObjDesc, sizeof (ACPI_OPERAND_OBJECT));
-        return;
-    }
-
-    /* ObjDesc is a valid object */
-
-    if (Depth > 0)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%*s[%u] %p ",
-            Depth, " ", Depth, ObjDesc));
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p ", ObjDesc));
-    }
-
-    /* Decode object type */
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        AcpiOsPrintf ("Reference: [%s] ", AcpiUtGetReferenceName (ObjDesc));
-
-        switch (ObjDesc->Reference.Class)
-        {
-        case ACPI_REFCLASS_DEBUG:
-
-            AcpiOsPrintf ("\n");
-            break;
-
-
-        case ACPI_REFCLASS_INDEX:
-
-            AcpiOsPrintf ("%p\n", ObjDesc->Reference.Object);
-            break;
-
-
-        case ACPI_REFCLASS_TABLE:
-
-            AcpiOsPrintf ("Table Index %X\n", ObjDesc->Reference.Value);
-            break;
-
-
-        case ACPI_REFCLASS_REFOF:
-
-            AcpiOsPrintf ("%p [%s]\n", ObjDesc->Reference.Object,
-                AcpiUtGetTypeName (((ACPI_OPERAND_OBJECT *)
-                    ObjDesc->Reference.Object)->Common.Type));
-            break;
-
-
-        case ACPI_REFCLASS_NAME:
-
-            AcpiOsPrintf ("- [%4.4s]\n", ObjDesc->Reference.Node->Name.Ascii);
-            break;
-
-
-        case ACPI_REFCLASS_ARG:
-        case ACPI_REFCLASS_LOCAL:
-
-            AcpiOsPrintf ("%X\n", ObjDesc->Reference.Value);
-            break;
-
-
-        default:    /* Unknown reference class */
-
-            AcpiOsPrintf ("%2.2X\n", ObjDesc->Reference.Class);
-            break;
-        }
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        AcpiOsPrintf ("Buffer length %.2X @ %p\n",
-            ObjDesc->Buffer.Length, ObjDesc->Buffer.Pointer);
-
-        /* Debug only -- dump the buffer contents */
-
-        if (ObjDesc->Buffer.Pointer)
-        {
-            Length = ObjDesc->Buffer.Length;
-            if (Length > 128)
-            {
-                Length = 128;
-            }
-
-            AcpiOsPrintf ("Buffer Contents: (displaying length 0x%.2X)\n",
-                Length);
-            ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, Length);
-        }
-        break;
-
-
-    case ACPI_TYPE_INTEGER:
-
-        AcpiOsPrintf ("Integer %8.8X%8.8X\n",
-            ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
-        break;
-
-
-    case ACPI_TYPE_PACKAGE:
-
-        AcpiOsPrintf ("Package [Len %X] ElementArray %p\n",
-            ObjDesc->Package.Count, ObjDesc->Package.Elements);
-
-        /*
-         * If elements exist, package element pointer is valid,
-         * and debug_level exceeds 1, dump package's elements.
-         */
-        if (ObjDesc->Package.Count &&
-            ObjDesc->Package.Elements &&
-            AcpiDbgLevel > 1)
-        {
-            for (Index = 0; Index < ObjDesc->Package.Count; Index++)
-            {
-                AcpiExDumpOperand (ObjDesc->Package.Elements[Index], Depth+1);
-            }
-        }
-        break;
-
-
-    case ACPI_TYPE_REGION:
-
-        AcpiOsPrintf ("Region %s (%X)",
-            AcpiUtGetRegionName (ObjDesc->Region.SpaceId),
-            ObjDesc->Region.SpaceId);
-
-        /*
-         * If the address and length have not been evaluated,
-         * don't print them.
-         */
-        if (!(ObjDesc->Region.Flags & AOPOBJ_DATA_VALID))
-        {
-            AcpiOsPrintf ("\n");
-        }
-        else
-        {
-            AcpiOsPrintf (" base %8.8X%8.8X Length %X\n",
-                ACPI_FORMAT_NATIVE_UINT (ObjDesc->Region.Address),
-                ObjDesc->Region.Length);
-        }
-        break;
-
-
-    case ACPI_TYPE_STRING:
-
-        AcpiOsPrintf ("String length %X @ %p ",
-            ObjDesc->String.Length,
-            ObjDesc->String.Pointer);
-
-        AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
-        AcpiOsPrintf ("\n");
-        break;
-
-
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-
-        AcpiOsPrintf ("BankField\n");
-        break;
-
-
-    case ACPI_TYPE_LOCAL_REGION_FIELD:
-
-        AcpiOsPrintf ("RegionField: Bits=%X AccWidth=%X Lock=%X Update=%X at "
-            "byte=%X bit=%X of below:\n",
-            ObjDesc->Field.BitLength,
-            ObjDesc->Field.AccessByteWidth,
-            ObjDesc->Field.FieldFlags & AML_FIELD_LOCK_RULE_MASK,
-            ObjDesc->Field.FieldFlags & AML_FIELD_UPDATE_RULE_MASK,
-            ObjDesc->Field.BaseByteOffset,
-            ObjDesc->Field.StartFieldBitOffset);
-
-        AcpiExDumpOperand (ObjDesc->Field.RegionObj, Depth+1);
-        break;
-
-
-    case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-        AcpiOsPrintf ("IndexField\n");
-        break;
-
-
-    case ACPI_TYPE_BUFFER_FIELD:
-
-        AcpiOsPrintf ("BufferField: %X bits at byte %X bit %X of\n",
-            ObjDesc->BufferField.BitLength,
-            ObjDesc->BufferField.BaseByteOffset,
-            ObjDesc->BufferField.StartFieldBitOffset);
-
-        if (!ObjDesc->BufferField.BufferObj)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "*NULL*\n"));
-        }
-        else if ((ObjDesc->BufferField.BufferObj)->Common.Type !=
-                    ACPI_TYPE_BUFFER)
-        {
-            AcpiOsPrintf ("*not a Buffer*\n");
-        }
-        else
-        {
-            AcpiExDumpOperand (ObjDesc->BufferField.BufferObj, Depth+1);
-        }
-        break;
-
-
-    case ACPI_TYPE_EVENT:
-
-        AcpiOsPrintf ("Event\n");
-        break;
-
-
-    case ACPI_TYPE_METHOD:
-
-        AcpiOsPrintf ("Method(%X) @ %p:%X\n",
-            ObjDesc->Method.ParamCount,
-            ObjDesc->Method.AmlStart,
-            ObjDesc->Method.AmlLength);
-        break;
-
-
-    case ACPI_TYPE_MUTEX:
-
-        AcpiOsPrintf ("Mutex\n");
-        break;
-
-
-    case ACPI_TYPE_DEVICE:
-
-        AcpiOsPrintf ("Device\n");
-        break;
-
-
-    case ACPI_TYPE_POWER:
-
-        AcpiOsPrintf ("Power\n");
-        break;
-
-
-    case ACPI_TYPE_PROCESSOR:
-
-        AcpiOsPrintf ("Processor\n");
-        break;
-
-
-    case ACPI_TYPE_THERMAL:
-
-        AcpiOsPrintf ("Thermal\n");
-        break;
-
-
-    default:
-        /* Unknown Type */
-
-        AcpiOsPrintf ("Unknown Type %X\n", ObjDesc->Common.Type);
-        break;
-    }
-
-    return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDumpOperands
- *
- * PARAMETERS:  Operands            - A list of Operand objects
- *              OpcodeName          - AML opcode name
- *              NumOperands         - Operand count for this opcode
- *
- * DESCRIPTION: Dump the operands associated with the opcode
- *
- ******************************************************************************/
-
-void
-AcpiExDumpOperands (
-    ACPI_OPERAND_OBJECT     **Operands,
-    const char              *OpcodeName,
-    UINT32                  NumOperands)
-{
-    ACPI_FUNCTION_NAME (ExDumpOperands);
-
-
-    if (!OpcodeName)
-    {
-        OpcodeName = "UNKNOWN";
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "**** Start operand dump for opcode [%s], %d operands\n",
-        OpcodeName, NumOperands));
-
-    if (NumOperands == 0)
-    {
-        NumOperands = 1;
-    }
-
-    /* Dump the individual operands */
-
-    while (NumOperands)
-    {
-        AcpiExDumpOperand (*Operands, 0);
-        Operands++;
-        NumOperands--;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "**** End operand dump for [%s]\n", OpcodeName));
-    return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOut* functions
- *
- * PARAMETERS:  Title               - Descriptive text
- *              Value               - Value to be displayed
- *
- * DESCRIPTION: Object dump output formatting functions.  These functions
- *              reduce the number of format strings required and keeps them
- *              all in one place for easy modification.
- *
- ******************************************************************************/
-
-static void
-AcpiExOutString (
-    char                    *Title,
-    char                    *Value)
-{
-    AcpiOsPrintf ("%20s : %s\n", Title, Value);
-}
-
-static void
-AcpiExOutPointer (
-    char                    *Title,
-    void                    *Value)
-{
-    AcpiOsPrintf ("%20s : %p\n", Title, Value);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDumpNamespaceNode
- *
- * PARAMETERS:  Node                - Descriptor to dump
- *              Flags               - Force display if TRUE
- *
- * DESCRIPTION: Dumps the members of the given.Node
- *
- ******************************************************************************/
-
-void
-AcpiExDumpNamespaceNode (
-    ACPI_NAMESPACE_NODE     *Node,
-    UINT32                  Flags)
-{
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!Flags)
-    {
-        if (!((ACPI_LV_OBJECTS & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer)))
-        {
-            return;
-        }
-    }
-
-    AcpiOsPrintf ("%20s : %4.4s\n", "Name", AcpiUtGetNodeName (Node));
-    AcpiExOutString  ("Type", AcpiUtGetTypeName (Node->Type));
-    AcpiExOutPointer ("Attached Object", AcpiNsGetAttachedObject (Node));
-    AcpiExOutPointer ("Parent", AcpiNsGetParentNode (Node));
-
-    AcpiExDumpObject (ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Node),
-        AcpiExDumpNode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDumpReferenceObj
- *
- * PARAMETERS:  Object              - Descriptor to dump
- *
- * DESCRIPTION: Dumps a reference object
- *
- ******************************************************************************/
-
-static void
-AcpiExDumpReferenceObj (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_BUFFER             RetBuf;
-    ACPI_STATUS             Status;
-
-
-    RetBuf.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-
-    if (ObjDesc->Reference.Class == ACPI_REFCLASS_NAME)
-    {
-        AcpiOsPrintf (" %p ", ObjDesc->Reference.Node);
-
-        Status = AcpiNsHandleToPathname (ObjDesc->Reference.Node, &RetBuf);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf (" Could not convert name to pathname\n");
-        }
-        else
-        {
-           AcpiOsPrintf ("%s\n", (char *) RetBuf.Pointer);
-           ACPI_FREE (RetBuf.Pointer);
-        }
-    }
-    else if (ObjDesc->Reference.Object)
-    {
-        if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND)
-        {
-            AcpiOsPrintf (" Target: %p", ObjDesc->Reference.Object);
-            if (ObjDesc->Reference.Class == ACPI_REFCLASS_TABLE)
-            {
-                AcpiOsPrintf (" Table Index: %X\n", ObjDesc->Reference.Value);
-            }
-            else
-            {
-                AcpiOsPrintf (" Target: %p [%s]\n", ObjDesc->Reference.Object,
-                    AcpiUtGetTypeName (((ACPI_OPERAND_OBJECT *)
-                        ObjDesc->Reference.Object)->Common.Type));
-            }
-        }
-        else
-        {
-            AcpiOsPrintf (" Target: %p\n", ObjDesc->Reference.Object);
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDumpPackageObj
- *
- * PARAMETERS:  ObjDesc             - Descriptor to dump
- *              Level               - Indentation Level
- *              Index               - Package index for this object
- *
- * DESCRIPTION: Dumps the elements of the package
- *
- ******************************************************************************/
-
-static void
-AcpiExDumpPackageObj (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  Level,
-    UINT32                  Index)
-{
-    UINT32                  i;
-
-
-    /* Indentation and index output */
-
-    if (Level > 0)
-    {
-        for (i = 0; i < Level; i++)
-        {
-            AcpiOsPrintf ("  ");
-        }
-
-        AcpiOsPrintf ("[%.2d] ", Index);
-    }
-
-    AcpiOsPrintf ("%p ", ObjDesc);
-
-    /* Null package elements are allowed */
-
-    if (!ObjDesc)
-    {
-        AcpiOsPrintf ("[Null Object]\n");
-        return;
-    }
-
-    /* Packages may only contain a few object types */
-
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-
-        AcpiOsPrintf ("[Integer] = %8.8X%8.8X\n",
-            ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
-        break;
-
-
-    case ACPI_TYPE_STRING:
-
-        AcpiOsPrintf ("[String]  Value: ");
-        for (i = 0; i < ObjDesc->String.Length; i++)
-        {
-            AcpiOsPrintf ("%c", ObjDesc->String.Pointer[i]);
-        }
-        AcpiOsPrintf ("\n");
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length);
-        if (ObjDesc->Buffer.Length)
-        {
-            AcpiUtDumpBuffer (ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer),
-                ObjDesc->Buffer.Length, DB_DWORD_DISPLAY, _COMPONENT);
-        }
-        else
-        {
-            AcpiOsPrintf ("\n");
-        }
-        break;
-
-
-    case ACPI_TYPE_PACKAGE:
-
-        AcpiOsPrintf ("[Package] Contains %d Elements:\n",
-            ObjDesc->Package.Count);
-
-        for (i = 0; i < ObjDesc->Package.Count; i++)
-        {
-            AcpiExDumpPackageObj (ObjDesc->Package.Elements[i], Level+1, i);
-        }
-        break;
-
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        AcpiOsPrintf ("[Object Reference] Type [%s] %2.2X",
-            AcpiUtGetReferenceName (ObjDesc),
-            ObjDesc->Reference.Class);
-        AcpiExDumpReferenceObj (ObjDesc);
-        break;
-
-
-    default:
-
-        AcpiOsPrintf ("[Unknown Type] %X\n", ObjDesc->Common.Type);
-        break;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDumpObjectDescriptor
- *
- * PARAMETERS:  ObjDesc             - Descriptor to dump
- *              Flags               - Force display if TRUE
- *
- * DESCRIPTION: Dumps the members of the object descriptor given.
- *
- ******************************************************************************/
-
-void
-AcpiExDumpObjectDescriptor (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  Flags)
-{
-    ACPI_FUNCTION_TRACE (ExDumpObjectDescriptor);
-
-
-    if (!ObjDesc)
-    {
-        return_VOID;
-    }
-
-    if (!Flags)
-    {
-        if (!((ACPI_LV_OBJECTS & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer)))
-        {
-            return_VOID;
-        }
-    }
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED)
-    {
-        AcpiExDumpNamespaceNode ((ACPI_NAMESPACE_NODE *) ObjDesc, Flags);
-
-        AcpiOsPrintf ("\nAttached Object (%p):\n",
-            ((ACPI_NAMESPACE_NODE *) ObjDesc)->Object);
-
-        AcpiExDumpObjectDescriptor (
-            ((ACPI_NAMESPACE_NODE *) ObjDesc)->Object, Flags);
-        return_VOID;
-    }
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
-    {
-        AcpiOsPrintf (
-            "ExDumpObjectDescriptor: %p is not an ACPI operand object: [%s]\n",
-            ObjDesc, AcpiUtGetDescriptorName (ObjDesc));
-        return_VOID;
-    }
-
-    if (ObjDesc->Common.Type > ACPI_TYPE_NS_NODE_MAX)
-    {
-        return_VOID;
-    }
-
-    /* Common Fields */
-
-    AcpiExDumpObject (ObjDesc, AcpiExDumpCommon);
-
-    /* Object-specific fields */
-
-    AcpiExDumpObject (ObjDesc, AcpiExDumpInfo[ObjDesc->Common.Type]);
-    return_VOID;
-}
-
-#endif
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exfield.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exfield.c
deleted file mode 100644 (file)
index 503e8e6..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exfield - ACPI AML (p-code) execution - field manipulation
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __EXFIELD_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdispat.h"
-#include "acinterp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exfield")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExReadDataFromField
- *
- * PARAMETERS:  WalkState           - Current execution state
- *              ObjDesc             - The named field
- *              RetBufferDesc       - Where the return data object is stored
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Read from a named field.  Returns either an Integer or a
- *              Buffer, depending on the size of the field.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExReadDataFromField (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_OPERAND_OBJECT     **RetBufferDesc)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *BufferDesc;
-    ACPI_SIZE               Length;
-    void                    *Buffer;
-    UINT32                  Function;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExReadDataFromField, ObjDesc);
-
-
-    /* Parameter validation */
-
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_AML_NO_OPERAND);
-    }
-    if (!RetBufferDesc)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (ObjDesc->Common.Type == ACPI_TYPE_BUFFER_FIELD)
-    {
-        /*
-         * If the BufferField arguments have not been previously evaluated,
-         * evaluate them now and save the results.
-         */
-        if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
-        {
-            Status = AcpiDsGetBufferFieldArguments (ObjDesc);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-    }
-    else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
-             (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS ||
-              ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI))
-    {
-        /*
-         * This is an SMBus or IPMI read. We must create a buffer to hold
-         * the data and then directly access the region handler.
-         *
-         * Note: Smbus protocol value is passed in upper 16-bits of Function
-         */
-        if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS)
-        {
-            Length = ACPI_SMBUS_BUFFER_SIZE;
-            Function = ACPI_READ | (ObjDesc->Field.Attribute << 16);
-        }
-        else /* IPMI */
-        {
-            Length = ACPI_IPMI_BUFFER_SIZE;
-            Function = ACPI_READ;
-        }
-
-        BufferDesc = AcpiUtCreateBufferObject (Length);
-        if (!BufferDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /* Lock entire transaction if requested */
-
-        AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-        /* Call the region handler for the read */
-
-        Status = AcpiExAccessRegion (ObjDesc, 0,
-                    ACPI_CAST_PTR (ACPI_INTEGER, BufferDesc->Buffer.Pointer),
-                    Function);
-        AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-        goto Exit;
-    }
-
-    /*
-     * Allocate a buffer for the contents of the field.
-     *
-     * If the field is larger than the size of an ACPI_INTEGER, create
-     * a BUFFER to hold it.  Otherwise, use an INTEGER.  This allows
-     * the use of arithmetic operators on the returned value if the
-     * field size is equal or smaller than an Integer.
-     *
-     * Note: Field.length is in bits.
-     */
-    Length = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (ObjDesc->Field.BitLength);
-    if (Length > AcpiGbl_IntegerByteWidth)
-    {
-        /* Field is too large for an Integer, create a Buffer instead */
-
-        BufferDesc = AcpiUtCreateBufferObject (Length);
-        if (!BufferDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-        Buffer = BufferDesc->Buffer.Pointer;
-    }
-    else
-    {
-        /* Field will fit within an Integer (normal case) */
-
-        BufferDesc = AcpiUtCreateIntegerObject ((UINT64) 0);
-        if (!BufferDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        Length = AcpiGbl_IntegerByteWidth;
-        Buffer = &BufferDesc->Integer.Value;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-        "FieldRead [TO]:   Obj %p, Type %X, Buf %p, ByteLen %X\n",
-        ObjDesc, ObjDesc->Common.Type, Buffer, (UINT32) Length));
-    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-        "FieldRead [FROM]: BitLen %X, BitOff %X, ByteOff %X\n",
-        ObjDesc->CommonField.BitLength,
-        ObjDesc->CommonField.StartFieldBitOffset,
-        ObjDesc->CommonField.BaseByteOffset));
-
-    /* Lock entire transaction if requested */
-
-    AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-    /* Read from the field */
-
-    Status = AcpiExExtractFromField (ObjDesc, Buffer, (UINT32) Length);
-    AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-
-Exit:
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtRemoveReference (BufferDesc);
-    }
-    else
-    {
-        *RetBufferDesc = BufferDesc;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExWriteDataToField
- *
- * PARAMETERS:  SourceDesc          - Contains data to write
- *              ObjDesc             - The named field
- *              ResultDesc          - Where the return value is returned, if any
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Write to a named field
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExWriteDataToField (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_OPERAND_OBJECT     **ResultDesc)
-{
-    ACPI_STATUS             Status;
-    UINT32                  Length;
-    void                    *Buffer;
-    ACPI_OPERAND_OBJECT     *BufferDesc;
-    UINT32                  Function;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExWriteDataToField, ObjDesc);
-
-
-    /* Parameter validation */
-
-    if (!SourceDesc || !ObjDesc)
-    {
-        return_ACPI_STATUS (AE_AML_NO_OPERAND);
-    }
-
-    if (ObjDesc->Common.Type == ACPI_TYPE_BUFFER_FIELD)
-    {
-        /*
-         * If the BufferField arguments have not been previously evaluated,
-         * evaluate them now and save the results.
-         */
-        if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
-        {
-            Status = AcpiDsGetBufferFieldArguments (ObjDesc);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-    }
-    else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
-             (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS ||
-              ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI))
-    {
-        /*
-         * This is an SMBus or IPMI write. We will bypass the entire field
-         * mechanism and handoff the buffer directly to the handler. For
-         * these address spaces, the buffer is bi-directional; on a write,
-         * return data is returned in the same buffer.
-         *
-         * Source must be a buffer of sufficient size:
-         * ACPI_SMBUS_BUFFER_SIZE or ACPI_IPMI_BUFFER_SIZE.
-         *
-         * Note: SMBus protocol type is passed in upper 16-bits of Function
-         */
-        if (SourceDesc->Common.Type != ACPI_TYPE_BUFFER)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "SMBus or IPMI write requires Buffer, found type %s",
-                AcpiUtGetObjectTypeName (SourceDesc)));
-
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS)
-        {
-            Length = ACPI_SMBUS_BUFFER_SIZE;
-            Function = ACPI_WRITE | (ObjDesc->Field.Attribute << 16);
-        }
-        else /* IPMI */
-        {
-            Length = ACPI_IPMI_BUFFER_SIZE;
-            Function = ACPI_WRITE;
-        }
-
-        if (SourceDesc->Buffer.Length < Length)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "SMBus or IPMI write requires Buffer of length %X, found length %X",
-                Length, SourceDesc->Buffer.Length));
-
-            return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
-        }
-
-        /* Create the bi-directional buffer */
-
-        BufferDesc = AcpiUtCreateBufferObject (Length);
-        if (!BufferDesc)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        Buffer = BufferDesc->Buffer.Pointer;
-        ACPI_MEMCPY (Buffer, SourceDesc->Buffer.Pointer, Length);
-
-        /* Lock entire transaction if requested */
-
-        AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-        /*
-         * Perform the write (returns status and perhaps data in the
-         * same buffer)
-         */
-        Status = AcpiExAccessRegion (ObjDesc, 0,
-                    (ACPI_INTEGER *) Buffer, Function);
-        AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-        *ResultDesc = BufferDesc;
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Get a pointer to the data to be written */
-
-    switch (SourceDesc->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-        Buffer = &SourceDesc->Integer.Value;
-        Length = sizeof (SourceDesc->Integer.Value);
-        break;
-
-    case ACPI_TYPE_BUFFER:
-        Buffer = SourceDesc->Buffer.Pointer;
-        Length = SourceDesc->Buffer.Length;
-        break;
-
-    case ACPI_TYPE_STRING:
-        Buffer = SourceDesc->String.Pointer;
-        Length = SourceDesc->String.Length;
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-        "FieldWrite [FROM]: Obj %p (%s:%X), Buf %p, ByteLen %X\n",
-        SourceDesc, AcpiUtGetTypeName (SourceDesc->Common.Type),
-        SourceDesc->Common.Type, Buffer, Length));
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-        "FieldWrite [TO]:   Obj %p (%s:%X), BitLen %X, BitOff %X, ByteOff %X\n",
-        ObjDesc, AcpiUtGetTypeName (ObjDesc->Common.Type),
-        ObjDesc->Common.Type,
-        ObjDesc->CommonField.BitLength,
-        ObjDesc->CommonField.StartFieldBitOffset,
-        ObjDesc->CommonField.BaseByteOffset));
-
-    /* Lock entire transaction if requested */
-
-    AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-    /* Write to the field */
-
-    Status = AcpiExInsertIntoField (ObjDesc, Buffer, Length);
-    AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exfldio.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exfldio.c
deleted file mode 100644 (file)
index 37a6786..0000000
+++ /dev/null
@@ -1,1081 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exfldio - Aml Field I/O
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __EXFLDIO_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "amlcode.h"
-#include "acevents.h"
-#include "acdispat.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exfldio")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiExFieldDatumIo (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  FieldDatumByteOffset,
-    ACPI_INTEGER            *Value,
-    UINT32                  ReadWrite);
-
-static BOOLEAN
-AcpiExRegisterOverflow (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_INTEGER            Value);
-
-static ACPI_STATUS
-AcpiExSetupRegion (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  FieldDatumByteOffset);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSetupRegion
- *
- * PARAMETERS:  ObjDesc                 - Field to be read or written
- *              FieldDatumByteOffset    - Byte offset of this datum within the
- *                                        parent field
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Common processing for AcpiExExtractFromField and
- *              AcpiExInsertIntoField.  Initialize the Region if necessary and
- *              validate the request.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExSetupRegion (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  FieldDatumByteOffset)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *RgnDesc;
-
-
-    ACPI_FUNCTION_TRACE_U32 (ExSetupRegion, FieldDatumByteOffset);
-
-
-    RgnDesc = ObjDesc->CommonField.RegionObj;
-
-    /* We must have a valid region */
-
-    if (RgnDesc->Common.Type != ACPI_TYPE_REGION)
-    {
-        ACPI_ERROR ((AE_INFO, "Needed Region, found type %X (%s)",
-            RgnDesc->Common.Type,
-            AcpiUtGetObjectTypeName (RgnDesc)));
-
-        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-    }
-
-    /*
-     * If the Region Address and Length have not been previously evaluated,
-     * evaluate them now and save the results.
-     */
-    if (!(RgnDesc->Common.Flags & AOPOBJ_DATA_VALID))
-    {
-        Status = AcpiDsGetRegionArguments (RgnDesc);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * Exit now for SMBus or IPMI address space, it has a non-linear address space
-     * and the request cannot be directly validated
-     */
-    if (RgnDesc->Region.SpaceId == ACPI_ADR_SPACE_SMBUS ||
-        RgnDesc->Region.SpaceId == ACPI_ADR_SPACE_IPMI)
-    {
-        /* SMBus or IPMI has a non-linear address space */
-
-        return_ACPI_STATUS (AE_OK);
-    }
-
-#ifdef ACPI_UNDER_DEVELOPMENT
-    /*
-     * If the Field access is AnyAcc, we can now compute the optimal
-     * access (because we know know the length of the parent region)
-     */
-    if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
-    {
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-#endif
-
-    /*
-     * Validate the request.  The entire request from the byte offset for a
-     * length of one field datum (access width) must fit within the region.
-     * (Region length is specified in bytes)
-     */
-    if (RgnDesc->Region.Length <
-            (ObjDesc->CommonField.BaseByteOffset +
-            FieldDatumByteOffset +
-            ObjDesc->CommonField.AccessByteWidth))
-    {
-        if (AcpiGbl_EnableInterpreterSlack)
-        {
-            /*
-             * Slack mode only:  We will go ahead and allow access to this
-             * field if it is within the region length rounded up to the next
-             * access width boundary. ACPI_SIZE cast for 64-bit compile.
-             */
-            if (ACPI_ROUND_UP (RgnDesc->Region.Length,
-                    ObjDesc->CommonField.AccessByteWidth) >=
-                ((ACPI_SIZE) ObjDesc->CommonField.BaseByteOffset +
-                    ObjDesc->CommonField.AccessByteWidth +
-                    FieldDatumByteOffset))
-            {
-                return_ACPI_STATUS (AE_OK);
-            }
-        }
-
-        if (RgnDesc->Region.Length < ObjDesc->CommonField.AccessByteWidth)
-        {
-            /*
-             * This is the case where the AccessType (AccWord, etc.) is wider
-             * than the region itself.  For example, a region of length one
-             * byte, and a field with Dword access specified.
-             */
-            ACPI_ERROR ((AE_INFO,
-                "Field [%4.4s] access width (%d bytes) too large for region [%4.4s] (length %X)",
-                AcpiUtGetNodeName (ObjDesc->CommonField.Node),
-                ObjDesc->CommonField.AccessByteWidth,
-                AcpiUtGetNodeName (RgnDesc->Region.Node),
-                RgnDesc->Region.Length));
-        }
-
-        /*
-         * Offset rounded up to next multiple of field width
-         * exceeds region length, indicate an error
-         */
-        ACPI_ERROR ((AE_INFO,
-            "Field [%4.4s] Base+Offset+Width %X+%X+%X is beyond end of region [%4.4s] (length %X)",
-            AcpiUtGetNodeName (ObjDesc->CommonField.Node),
-            ObjDesc->CommonField.BaseByteOffset,
-            FieldDatumByteOffset, ObjDesc->CommonField.AccessByteWidth,
-            AcpiUtGetNodeName (RgnDesc->Region.Node),
-            RgnDesc->Region.Length));
-
-        return_ACPI_STATUS (AE_AML_REGION_LIMIT);
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExAccessRegion
- *
- * PARAMETERS:  ObjDesc                 - Field to be read
- *              FieldDatumByteOffset    - Byte offset of this datum within the
- *                                        parent field
- *              Value                   - Where to store value (must at least
- *                                        the size of ACPI_INTEGER)
- *              Function                - Read or Write flag plus other region-
- *                                        dependent flags
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Read or Write a single field datum to an Operation Region.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExAccessRegion (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  FieldDatumByteOffset,
-    ACPI_INTEGER            *Value,
-    UINT32                  Function)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *RgnDesc;
-    UINT32                  RegionOffset;
-
-
-    ACPI_FUNCTION_TRACE (ExAccessRegion);
-
-
-    /*
-     * Ensure that the region operands are fully evaluated and verify
-     * the validity of the request
-     */
-    Status = AcpiExSetupRegion (ObjDesc, FieldDatumByteOffset);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * The physical address of this field datum is:
-     *
-     * 1) The base of the region, plus
-     * 2) The base offset of the field, plus
-     * 3) The current offset into the field
-     */
-    RgnDesc = ObjDesc->CommonField.RegionObj;
-    RegionOffset =
-        ObjDesc->CommonField.BaseByteOffset +
-        FieldDatumByteOffset;
-
-    if ((Function & ACPI_IO_MASK) == ACPI_READ)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "[READ]"));
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "[WRITE]"));
-    }
-
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_BFIELD,
-        " Region [%s:%X], Width %X, ByteBase %X, Offset %X at %p\n",
-        AcpiUtGetRegionName (RgnDesc->Region.SpaceId),
-        RgnDesc->Region.SpaceId,
-        ObjDesc->CommonField.AccessByteWidth,
-        ObjDesc->CommonField.BaseByteOffset,
-        FieldDatumByteOffset,
-        ACPI_CAST_PTR (void, (RgnDesc->Region.Address + RegionOffset))));
-
-    /* Invoke the appropriate AddressSpace/OpRegion handler */
-
-    Status = AcpiEvAddressSpaceDispatch (RgnDesc, Function, RegionOffset,
-                ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth), Value);
-
-    if (ACPI_FAILURE (Status))
-    {
-        if (Status == AE_NOT_IMPLEMENTED)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Region %s(%X) not implemented",
-                AcpiUtGetRegionName (RgnDesc->Region.SpaceId),
-                RgnDesc->Region.SpaceId));
-        }
-        else if (Status == AE_NOT_EXIST)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Region %s(%X) has no handler",
-                AcpiUtGetRegionName (RgnDesc->Region.SpaceId),
-                RgnDesc->Region.SpaceId));
-        }
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExRegisterOverflow
- *
- * PARAMETERS:  ObjDesc                 - Register(Field) to be written
- *              Value                   - Value to be stored
- *
- * RETURN:      TRUE if value overflows the field, FALSE otherwise
- *
- * DESCRIPTION: Check if a value is out of range of the field being written.
- *              Used to check if the values written to Index and Bank registers
- *              are out of range.  Normally, the value is simply truncated
- *              to fit the field, but this case is most likely a serious
- *              coding error in the ASL.
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiExRegisterOverflow (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_INTEGER            Value)
-{
-
-    if (ObjDesc->CommonField.BitLength >= ACPI_INTEGER_BIT_SIZE)
-    {
-        /*
-         * The field is large enough to hold the maximum integer, so we can
-         * never overflow it.
-         */
-        return (FALSE);
-    }
-
-    if (Value >= ((ACPI_INTEGER) 1 << ObjDesc->CommonField.BitLength))
-    {
-        /*
-         * The Value is larger than the maximum value that can fit into
-         * the register.
-         */
-        return (TRUE);
-    }
-
-    /* The Value will fit into the field with no truncation */
-
-    return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExFieldDatumIo
- *
- * PARAMETERS:  ObjDesc                 - Field to be read
- *              FieldDatumByteOffset    - Byte offset of this datum within the
- *                                        parent field
- *              Value                   - Where to store value (must be 64 bits)
- *              ReadWrite               - Read or Write flag
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Read or Write a single datum of a field.  The FieldType is
- *              demultiplexed here to handle the different types of fields
- *              (BufferField, RegionField, IndexField, BankField)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExFieldDatumIo (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT32                  FieldDatumByteOffset,
-    ACPI_INTEGER            *Value,
-    UINT32                  ReadWrite)
-{
-    ACPI_STATUS             Status;
-    ACPI_INTEGER            LocalValue;
-
-
-    ACPI_FUNCTION_TRACE_U32 (ExFieldDatumIo, FieldDatumByteOffset);
-
-
-    if (ReadWrite == ACPI_READ)
-    {
-        if (!Value)
-        {
-            LocalValue = 0;
-
-            /* To support reads without saving return value */
-            Value = &LocalValue;
-        }
-
-        /* Clear the entire return buffer first, [Very Important!] */
-
-        *Value = 0;
-    }
-
-    /*
-     * The four types of fields are:
-     *
-     * BufferField - Read/write from/to a Buffer
-     * RegionField - Read/write from/to a Operation Region.
-     * BankField   - Write to a Bank Register, then read/write from/to an
-     *               OperationRegion
-     * IndexField  - Write to an Index Register, then read/write from/to a
-     *               Data Register
-     */
-    switch (ObjDesc->Common.Type)
-    {
-    case ACPI_TYPE_BUFFER_FIELD:
-        /*
-         * If the BufferField arguments have not been previously evaluated,
-         * evaluate them now and save the results.
-         */
-        if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
-        {
-            Status = AcpiDsGetBufferFieldArguments (ObjDesc);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-
-        if (ReadWrite == ACPI_READ)
-        {
-            /*
-             * Copy the data from the source buffer.
-             * Length is the field width in bytes.
-             */
-            ACPI_MEMCPY (Value,
-                (ObjDesc->BufferField.BufferObj)->Buffer.Pointer +
-                    ObjDesc->BufferField.BaseByteOffset +
-                    FieldDatumByteOffset,
-                ObjDesc->CommonField.AccessByteWidth);
-        }
-        else
-        {
-            /*
-             * Copy the data to the target buffer.
-             * Length is the field width in bytes.
-             */
-            ACPI_MEMCPY ((ObjDesc->BufferField.BufferObj)->Buffer.Pointer +
-                ObjDesc->BufferField.BaseByteOffset +
-                FieldDatumByteOffset,
-                Value, ObjDesc->CommonField.AccessByteWidth);
-        }
-
-        Status = AE_OK;
-        break;
-
-
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-
-        /*
-         * Ensure that the BankValue is not beyond the capacity of
-         * the register
-         */
-        if (AcpiExRegisterOverflow (ObjDesc->BankField.BankObj,
-                (ACPI_INTEGER) ObjDesc->BankField.Value))
-        {
-            return_ACPI_STATUS (AE_AML_REGISTER_LIMIT);
-        }
-
-        /*
-         * For BankFields, we must write the BankValue to the BankRegister
-         * (itself a RegionField) before we can access the data.
-         */
-        Status = AcpiExInsertIntoField (ObjDesc->BankField.BankObj,
-                    &ObjDesc->BankField.Value,
-                    sizeof (ObjDesc->BankField.Value));
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /*
-         * Now that the Bank has been selected, fall through to the
-         * RegionField case and write the datum to the Operation Region
-         */
-
-        /*lint -fallthrough */
-
-
-    case ACPI_TYPE_LOCAL_REGION_FIELD:
-        /*
-         * For simple RegionFields, we just directly access the owning
-         * Operation Region.
-         */
-        Status = AcpiExAccessRegion (ObjDesc, FieldDatumByteOffset, Value,
-                    ReadWrite);
-        break;
-
-
-    case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-
-        /*
-         * Ensure that the IndexValue is not beyond the capacity of
-         * the register
-         */
-        if (AcpiExRegisterOverflow (ObjDesc->IndexField.IndexObj,
-                (ACPI_INTEGER) ObjDesc->IndexField.Value))
-        {
-            return_ACPI_STATUS (AE_AML_REGISTER_LIMIT);
-        }
-
-        /* Write the index value to the IndexRegister (itself a RegionField) */
-
-        FieldDatumByteOffset += ObjDesc->IndexField.Value;
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-            "Write to Index Register: Value %8.8X\n",
-            FieldDatumByteOffset));
-
-        Status = AcpiExInsertIntoField (ObjDesc->IndexField.IndexObj,
-                    &FieldDatumByteOffset,
-                    sizeof (FieldDatumByteOffset));
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        if (ReadWrite == ACPI_READ)
-        {
-            /* Read the datum from the DataRegister */
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                "Read from Data Register\n"));
-
-            Status = AcpiExExtractFromField (ObjDesc->IndexField.DataObj,
-                        Value, sizeof (ACPI_INTEGER));
-        }
-        else
-        {
-            /* Write the datum to the DataRegister */
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                "Write to Data Register: Value %8.8X%8.8X\n",
-                ACPI_FORMAT_UINT64 (*Value)));
-
-            Status = AcpiExInsertIntoField (ObjDesc->IndexField.DataObj,
-                        Value, sizeof (ACPI_INTEGER));
-        }
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Wrong object type in field I/O %X",
-            ObjDesc->Common.Type));
-        Status = AE_AML_INTERNAL;
-        break;
-    }
-
-    if (ACPI_SUCCESS (Status))
-    {
-        if (ReadWrite == ACPI_READ)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                "Value Read %8.8X%8.8X, Width %d\n",
-                ACPI_FORMAT_UINT64 (*Value),
-                ObjDesc->CommonField.AccessByteWidth));
-        }
-        else
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                "Value Written %8.8X%8.8X, Width %d\n",
-                ACPI_FORMAT_UINT64 (*Value),
-                ObjDesc->CommonField.AccessByteWidth));
-        }
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExWriteWithUpdateRule
- *
- * PARAMETERS:  ObjDesc                 - Field to be written
- *              Mask                    - bitmask within field datum
- *              FieldValue              - Value to write
- *              FieldDatumByteOffset    - Offset of datum within field
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Apply the field update rule to a field write
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExWriteWithUpdateRule (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_INTEGER            Mask,
-    ACPI_INTEGER            FieldValue,
-    UINT32                  FieldDatumByteOffset)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_INTEGER            MergedValue;
-    ACPI_INTEGER            CurrentValue;
-
-
-    ACPI_FUNCTION_TRACE_U32 (ExWriteWithUpdateRule, Mask);
-
-
-    /* Start with the new bits  */
-
-    MergedValue = FieldValue;
-
-    /* If the mask is all ones, we don't need to worry about the update rule */
-
-    if (Mask != ACPI_INTEGER_MAX)
-    {
-        /* Decode the update rule */
-
-        switch (ObjDesc->CommonField.FieldFlags & AML_FIELD_UPDATE_RULE_MASK)
-        {
-        case AML_FIELD_UPDATE_PRESERVE:
-            /*
-             * Check if update rule needs to be applied (not if mask is all
-             * ones)  The left shift drops the bits we want to ignore.
-             */
-            if ((~Mask << (ACPI_MUL_8 (sizeof (Mask)) -
-                           ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth))) != 0)
-            {
-                /*
-                 * Read the current contents of the byte/word/dword containing
-                 * the field, and merge with the new field value.
-                 */
-                Status = AcpiExFieldDatumIo (ObjDesc, FieldDatumByteOffset,
-                            &CurrentValue, ACPI_READ);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-
-                MergedValue |= (CurrentValue & ~Mask);
-            }
-            break;
-
-        case AML_FIELD_UPDATE_WRITE_AS_ONES:
-
-            /* Set positions outside the field to all ones */
-
-            MergedValue |= ~Mask;
-            break;
-
-        case AML_FIELD_UPDATE_WRITE_AS_ZEROS:
-
-            /* Set positions outside the field to all zeros */
-
-            MergedValue &= Mask;
-            break;
-
-        default:
-
-            ACPI_ERROR ((AE_INFO,
-                "Unknown UpdateRule value: %X",
-                (ObjDesc->CommonField.FieldFlags & AML_FIELD_UPDATE_RULE_MASK)));
-            return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
-        }
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-        "Mask %8.8X%8.8X, DatumOffset %X, Width %X, Value %8.8X%8.8X, MergedValue %8.8X%8.8X\n",
-        ACPI_FORMAT_UINT64 (Mask),
-        FieldDatumByteOffset,
-        ObjDesc->CommonField.AccessByteWidth,
-        ACPI_FORMAT_UINT64 (FieldValue),
-        ACPI_FORMAT_UINT64 (MergedValue)));
-
-    /* Write the merged value */
-
-    Status = AcpiExFieldDatumIo (ObjDesc, FieldDatumByteOffset,
-                &MergedValue, ACPI_WRITE);
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExExtractFromField
- *
- * PARAMETERS:  ObjDesc             - Field to be read
- *              Buffer              - Where to store the field data
- *              BufferLength        - Length of Buffer
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Retrieve the current value of the given field
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExExtractFromField (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    void                    *Buffer,
-    UINT32                  BufferLength)
-{
-    ACPI_STATUS             Status;
-    ACPI_INTEGER            RawDatum;
-    ACPI_INTEGER            MergedDatum;
-    UINT32                  FieldOffset = 0;
-    UINT32                  BufferOffset = 0;
-    UINT32                  BufferTailBits;
-    UINT32                  DatumCount;
-    UINT32                  FieldDatumCount;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (ExExtractFromField);
-
-
-    /* Validate target buffer and clear it */
-
-    if (BufferLength <
-            ACPI_ROUND_BITS_UP_TO_BYTES (ObjDesc->CommonField.BitLength))
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Field size %X (bits) is too large for buffer (%X)",
-            ObjDesc->CommonField.BitLength, BufferLength));
-
-        return_ACPI_STATUS (AE_BUFFER_OVERFLOW);
-    }
-    ACPI_MEMSET (Buffer, 0, BufferLength);
-
-    /* Compute the number of datums (access width data items) */
-
-    DatumCount = ACPI_ROUND_UP_TO (
-                        ObjDesc->CommonField.BitLength,
-                        ObjDesc->CommonField.AccessBitWidth);
-    FieldDatumCount = ACPI_ROUND_UP_TO (
-                        ObjDesc->CommonField.BitLength +
-                        ObjDesc->CommonField.StartFieldBitOffset,
-                        ObjDesc->CommonField.AccessBitWidth);
-
-    /* Priming read from the field */
-
-    Status = AcpiExFieldDatumIo (ObjDesc, FieldOffset, &RawDatum, ACPI_READ);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-    MergedDatum = RawDatum >> ObjDesc->CommonField.StartFieldBitOffset;
-
-    /* Read the rest of the field */
-
-    for (i = 1; i < FieldDatumCount; i++)
-    {
-        /* Get next input datum from the field */
-
-        FieldOffset += ObjDesc->CommonField.AccessByteWidth;
-        Status = AcpiExFieldDatumIo (ObjDesc, FieldOffset,
-                    &RawDatum, ACPI_READ);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /*
-         * Merge with previous datum if necessary.
-         *
-         * Note: Before the shift, check if the shift value will be larger than
-         * the integer size. If so, there is no need to perform the operation.
-         * This avoids the differences in behavior between different compilers
-         * concerning shift values larger than the target data width.
-         */
-        if ((ObjDesc->CommonField.AccessBitWidth -
-            ObjDesc->CommonField.StartFieldBitOffset) < ACPI_INTEGER_BIT_SIZE)
-        {
-            MergedDatum |= RawDatum <<
-                (ObjDesc->CommonField.AccessBitWidth -
-                    ObjDesc->CommonField.StartFieldBitOffset);
-        }
-
-        if (i == DatumCount)
-        {
-            break;
-        }
-
-        /* Write merged datum to target buffer */
-
-        ACPI_MEMCPY (((char *) Buffer) + BufferOffset, &MergedDatum,
-            ACPI_MIN(ObjDesc->CommonField.AccessByteWidth,
-                BufferLength - BufferOffset));
-
-        BufferOffset += ObjDesc->CommonField.AccessByteWidth;
-        MergedDatum = RawDatum >> ObjDesc->CommonField.StartFieldBitOffset;
-    }
-
-    /* Mask off any extra bits in the last datum */
-
-    BufferTailBits = ObjDesc->CommonField.BitLength %
-                        ObjDesc->CommonField.AccessBitWidth;
-    if (BufferTailBits)
-    {
-        MergedDatum &= ACPI_MASK_BITS_ABOVE (BufferTailBits);
-    }
-
-    /* Write the last datum to the buffer */
-
-    ACPI_MEMCPY (((char *) Buffer) + BufferOffset, &MergedDatum,
-        ACPI_MIN(ObjDesc->CommonField.AccessByteWidth,
-            BufferLength - BufferOffset));
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExInsertIntoField
- *
- * PARAMETERS:  ObjDesc             - Field to be written
- *              Buffer              - Data to be written
- *              BufferLength        - Length of Buffer
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Store the Buffer contents into the given field
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExInsertIntoField (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    void                    *Buffer,
-    UINT32                  BufferLength)
-{
-    ACPI_STATUS             Status;
-    ACPI_INTEGER            Mask;
-    ACPI_INTEGER            WidthMask;
-    ACPI_INTEGER            MergedDatum;
-    ACPI_INTEGER            RawDatum = 0;
-    UINT32                  FieldOffset = 0;
-    UINT32                  BufferOffset = 0;
-    UINT32                  BufferTailBits;
-    UINT32                  DatumCount;
-    UINT32                  FieldDatumCount;
-    UINT32                  i;
-    UINT32                  RequiredLength;
-    void                    *NewBuffer;
-
-
-    ACPI_FUNCTION_TRACE (ExInsertIntoField);
-
-
-    /* Validate input buffer */
-
-    NewBuffer = NULL;
-    RequiredLength = ACPI_ROUND_BITS_UP_TO_BYTES (
-                        ObjDesc->CommonField.BitLength);
-    /*
-     * We must have a buffer that is at least as long as the field
-     * we are writing to.  This is because individual fields are
-     * indivisible and partial writes are not supported -- as per
-     * the ACPI specification.
-     */
-    if (BufferLength < RequiredLength)
-    {
-        /* We need to create a new buffer */
-
-        NewBuffer = ACPI_ALLOCATE_ZEROED (RequiredLength);
-        if (!NewBuffer)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /*
-         * Copy the original data to the new buffer, starting
-         * at Byte zero.  All unused (upper) bytes of the
-         * buffer will be 0.
-         */
-        ACPI_MEMCPY ((char *) NewBuffer, (char *) Buffer, BufferLength);
-        Buffer = NewBuffer;
-        BufferLength = RequiredLength;
-    }
-
-    /*
-     * Create the bitmasks used for bit insertion.
-     * Note: This if/else is used to bypass compiler differences with the
-     * shift operator
-     */
-    if (ObjDesc->CommonField.AccessBitWidth == ACPI_INTEGER_BIT_SIZE)
-    {
-        WidthMask = ACPI_INTEGER_MAX;
-    }
-    else
-    {
-        WidthMask = ACPI_MASK_BITS_ABOVE (ObjDesc->CommonField.AccessBitWidth);
-    }
-
-    Mask = WidthMask &
-            ACPI_MASK_BITS_BELOW (ObjDesc->CommonField.StartFieldBitOffset);
-
-    /* Compute the number of datums (access width data items) */
-
-    DatumCount = ACPI_ROUND_UP_TO (ObjDesc->CommonField.BitLength,
-                    ObjDesc->CommonField.AccessBitWidth);
-
-    FieldDatumCount = ACPI_ROUND_UP_TO (ObjDesc->CommonField.BitLength +
-                        ObjDesc->CommonField.StartFieldBitOffset,
-                        ObjDesc->CommonField.AccessBitWidth);
-
-    /* Get initial Datum from the input buffer */
-
-    ACPI_MEMCPY (&RawDatum, Buffer,
-        ACPI_MIN(ObjDesc->CommonField.AccessByteWidth,
-            BufferLength - BufferOffset));
-
-    MergedDatum = RawDatum << ObjDesc->CommonField.StartFieldBitOffset;
-
-    /* Write the entire field */
-
-    for (i = 1; i < FieldDatumCount; i++)
-    {
-        /* Write merged datum to the target field */
-
-        MergedDatum &= Mask;
-        Status = AcpiExWriteWithUpdateRule (ObjDesc, Mask,
-                    MergedDatum, FieldOffset);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Exit;
-        }
-
-        FieldOffset += ObjDesc->CommonField.AccessByteWidth;
-
-        /*
-         * Start new output datum by merging with previous input datum
-         * if necessary.
-         *
-         * Note: Before the shift, check if the shift value will be larger than
-         * the integer size. If so, there is no need to perform the operation.
-         * This avoids the differences in behavior between different compilers
-         * concerning shift values larger than the target data width.
-         */
-        if ((ObjDesc->CommonField.AccessBitWidth -
-            ObjDesc->CommonField.StartFieldBitOffset) < ACPI_INTEGER_BIT_SIZE)
-        {
-            MergedDatum = RawDatum >>
-                (ObjDesc->CommonField.AccessBitWidth -
-                    ObjDesc->CommonField.StartFieldBitOffset);
-        }
-        else
-        {
-            MergedDatum = 0;
-        }
-
-        Mask = WidthMask;
-
-        if (i == DatumCount)
-        {
-            break;
-        }
-
-        /* Get the next input datum from the buffer */
-
-        BufferOffset += ObjDesc->CommonField.AccessByteWidth;
-        ACPI_MEMCPY (&RawDatum, ((char *) Buffer) + BufferOffset,
-            ACPI_MIN(ObjDesc->CommonField.AccessByteWidth,
-                     BufferLength - BufferOffset));
-        MergedDatum |= RawDatum << ObjDesc->CommonField.StartFieldBitOffset;
-    }
-
-    /* Mask off any extra bits in the last datum */
-
-    BufferTailBits = (ObjDesc->CommonField.BitLength +
-            ObjDesc->CommonField.StartFieldBitOffset) %
-                ObjDesc->CommonField.AccessBitWidth;
-    if (BufferTailBits)
-    {
-        Mask &= ACPI_MASK_BITS_ABOVE (BufferTailBits);
-    }
-
-    /* Write the last datum to the field */
-
-    MergedDatum &= Mask;
-    Status = AcpiExWriteWithUpdateRule (ObjDesc,
-                Mask, MergedDatum, FieldOffset);
-
-Exit:
-    /* Free temporary buffer if we used one */
-
-    if (NewBuffer)
-    {
-        ACPI_FREE (NewBuffer);
-    }
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exmisc.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exmisc.c
deleted file mode 100644 (file)
index 41e4a97..0000000
+++ /dev/null
@@ -1,873 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
-
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXMISC_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "amlcode.h"
-#include "amlresrc.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exmisc")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExGetObjectReference
- *
- * PARAMETERS:  ObjDesc             - Create a reference to this object
- *              ReturnDesc          - Where to store the reference
- *              WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Obtain and return a "reference" to the target object
- *              Common code for the RefOfOp and the CondRefOfOp.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExGetObjectReference (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_OPERAND_OBJECT     **ReturnDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     *ReferenceObj;
-    ACPI_OPERAND_OBJECT     *ReferencedObj;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExGetObjectReference, ObjDesc);
-
-
-    *ReturnDesc = NULL;
-
-    switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
-    {
-    case ACPI_DESC_TYPE_OPERAND:
-
-        if (ObjDesc->Common.Type != ACPI_TYPE_LOCAL_REFERENCE)
-        {
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        /*
-         * Must be a reference to a Local or Arg
-         */
-        switch (ObjDesc->Reference.Class)
-        {
-        case ACPI_REFCLASS_LOCAL:
-        case ACPI_REFCLASS_ARG:
-        case ACPI_REFCLASS_DEBUG:
-
-            /* The referenced object is the pseudo-node for the local/arg */
-
-            ReferencedObj = ObjDesc->Reference.Object;
-            break;
-
-        default:
-
-            ACPI_ERROR ((AE_INFO, "Unknown Reference Class %2.2X",
-                ObjDesc->Reference.Class));
-            return_ACPI_STATUS (AE_AML_INTERNAL);
-        }
-        break;
-
-
-    case ACPI_DESC_TYPE_NAMED:
-
-        /*
-         * A named reference that has already been resolved to a Node
-         */
-        ReferencedObj = ObjDesc;
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Invalid descriptor type %X",
-            ACPI_GET_DESCRIPTOR_TYPE (ObjDesc)));
-        return_ACPI_STATUS (AE_TYPE);
-    }
-
-
-    /* Create a new reference object */
-
-    ReferenceObj = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_REFERENCE);
-    if (!ReferenceObj)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    ReferenceObj->Reference.Class = ACPI_REFCLASS_REFOF;
-    ReferenceObj->Reference.Object = ReferencedObj;
-    *ReturnDesc = ReferenceObj;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "Object %p Type [%s], returning Reference %p\n",
-        ObjDesc, AcpiUtGetObjectTypeName (ObjDesc), *ReturnDesc));
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExConcatTemplate
- *
- * PARAMETERS:  Operand0            - First source object
- *              Operand1            - Second source object
- *              ActualReturnDesc    - Where to place the return object
- *              WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Concatenate two resource templates
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConcatTemplate (
-    ACPI_OPERAND_OBJECT     *Operand0,
-    ACPI_OPERAND_OBJECT     *Operand1,
-    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *ReturnDesc;
-    UINT8                   *NewBuf;
-    UINT8                   *EndTag;
-    ACPI_SIZE               Length0;
-    ACPI_SIZE               Length1;
-    ACPI_SIZE               NewLength;
-
-
-    ACPI_FUNCTION_TRACE (ExConcatTemplate);
-
-
-    /*
-     * Find the EndTag descriptor in each resource template.
-     * Note1: returned pointers point TO the EndTag, not past it.
-     * Note2: zero-length buffers are allowed; treated like one EndTag
-     */
-
-    /* Get the length of the first resource template */
-
-    Status = AcpiUtGetResourceEndTag (Operand0, &EndTag);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Length0 = ACPI_PTR_DIFF (EndTag, Operand0->Buffer.Pointer);
-
-    /* Get the length of the second resource template */
-
-    Status = AcpiUtGetResourceEndTag (Operand1, &EndTag);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Length1 = ACPI_PTR_DIFF (EndTag, Operand1->Buffer.Pointer);
-
-    /* Combine both lengths, minimum size will be 2 for EndTag */
-
-    NewLength = Length0 + Length1 + sizeof (AML_RESOURCE_END_TAG);
-
-    /* Create a new buffer object for the result (with one EndTag) */
-
-    ReturnDesc = AcpiUtCreateBufferObject (NewLength);
-    if (!ReturnDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /*
-     * Copy the templates to the new buffer, 0 first, then 1 follows. One
-     * EndTag descriptor is copied from Operand1.
-     */
-    NewBuf = ReturnDesc->Buffer.Pointer;
-    ACPI_MEMCPY (NewBuf, Operand0->Buffer.Pointer, Length0);
-    ACPI_MEMCPY (NewBuf + Length0, Operand1->Buffer.Pointer, Length1);
-
-    /* Insert EndTag and set the checksum to zero, means "ignore checksum" */
-
-    NewBuf[NewLength - 1] = 0;
-    NewBuf[NewLength - 2] = ACPI_RESOURCE_NAME_END_TAG | 1;
-
-    /* Return the completed resource template */
-
-    *ActualReturnDesc = ReturnDesc;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDoConcatenate
- *
- * PARAMETERS:  Operand0            - First source object
- *              Operand1            - Second source object
- *              ActualReturnDesc    - Where to place the return object
- *              WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Concatenate two objects OF THE SAME TYPE.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExDoConcatenate (
-    ACPI_OPERAND_OBJECT     *Operand0,
-    ACPI_OPERAND_OBJECT     *Operand1,
-    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     *LocalOperand1 = Operand1;
-    ACPI_OPERAND_OBJECT     *ReturnDesc;
-    char                    *NewBuf;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (ExDoConcatenate);
-
-
-    /*
-     * Convert the second operand if necessary.  The first operand
-     * determines the type of the second operand, (See the Data Types
-     * section of the ACPI specification.)  Both object types are
-     * guaranteed to be either Integer/String/Buffer by the operand
-     * resolution mechanism.
-     */
-    switch (Operand0->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-        Status = AcpiExConvertToInteger (Operand1, &LocalOperand1, 16);
-        break;
-
-    case ACPI_TYPE_STRING:
-        Status = AcpiExConvertToString (Operand1, &LocalOperand1,
-                    ACPI_IMPLICIT_CONVERT_HEX);
-        break;
-
-    case ACPI_TYPE_BUFFER:
-        Status = AcpiExConvertToBuffer (Operand1, &LocalOperand1);
-        break;
-
-    default:
-        ACPI_ERROR ((AE_INFO, "Invalid object type: %X",
-            Operand0->Common.Type));
-        Status = AE_AML_INTERNAL;
-    }
-
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    /*
-     * Both operands are now known to be the same object type
-     * (Both are Integer, String, or Buffer), and we can now perform the
-     * concatenation.
-     */
-
-    /*
-     * There are three cases to handle:
-     *
-     * 1) Two Integers concatenated to produce a new Buffer
-     * 2) Two Strings concatenated to produce a new String
-     * 3) Two Buffers concatenated to produce a new Buffer
-     */
-    switch (Operand0->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-
-        /* Result of two Integers is a Buffer */
-        /* Need enough buffer space for two integers */
-
-        ReturnDesc = AcpiUtCreateBufferObject ((ACPI_SIZE)
-                            ACPI_MUL_2 (AcpiGbl_IntegerByteWidth));
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        NewBuf = (char *) ReturnDesc->Buffer.Pointer;
-
-        /* Copy the first integer, LSB first */
-
-        ACPI_MEMCPY (NewBuf, &Operand0->Integer.Value,
-                        AcpiGbl_IntegerByteWidth);
-
-        /* Copy the second integer (LSB first) after the first */
-
-        ACPI_MEMCPY (NewBuf + AcpiGbl_IntegerByteWidth,
-                        &LocalOperand1->Integer.Value,
-                        AcpiGbl_IntegerByteWidth);
-        break;
-
-    case ACPI_TYPE_STRING:
-
-        /* Result of two Strings is a String */
-
-        ReturnDesc = AcpiUtCreateStringObject (
-                        ((ACPI_SIZE) Operand0->String.Length +
-                        LocalOperand1->String.Length));
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        NewBuf = ReturnDesc->String.Pointer;
-
-        /* Concatenate the strings */
-
-        ACPI_STRCPY (NewBuf, Operand0->String.Pointer);
-        ACPI_STRCPY (NewBuf + Operand0->String.Length,
-                        LocalOperand1->String.Pointer);
-        break;
-
-    case ACPI_TYPE_BUFFER:
-
-        /* Result of two Buffers is a Buffer */
-
-        ReturnDesc = AcpiUtCreateBufferObject (
-                        ((ACPI_SIZE) Operand0->Buffer.Length +
-                        LocalOperand1->Buffer.Length));
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        NewBuf = (char *) ReturnDesc->Buffer.Pointer;
-
-        /* Concatenate the buffers */
-
-        ACPI_MEMCPY (NewBuf, Operand0->Buffer.Pointer,
-                        Operand0->Buffer.Length);
-        ACPI_MEMCPY (NewBuf + Operand0->Buffer.Length,
-                        LocalOperand1->Buffer.Pointer,
-                        LocalOperand1->Buffer.Length);
-        break;
-
-    default:
-
-        /* Invalid object type, should not happen here */
-
-        ACPI_ERROR ((AE_INFO, "Invalid object type: %X",
-            Operand0->Common.Type));
-        Status =AE_AML_INTERNAL;
-        goto Cleanup;
-    }
-
-    *ActualReturnDesc = ReturnDesc;
-
-Cleanup:
-    if (LocalOperand1 != Operand1)
-    {
-        AcpiUtRemoveReference (LocalOperand1);
-    }
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDoMathOp
- *
- * PARAMETERS:  Opcode              - AML opcode
- *              Integer0            - Integer operand #0
- *              Integer1            - Integer operand #1
- *
- * RETURN:      Integer result of the operation
- *
- * DESCRIPTION: Execute a math AML opcode. The purpose of having all of the
- *              math functions here is to prevent a lot of pointer dereferencing
- *              to obtain the operands.
- *
- ******************************************************************************/
-
-ACPI_INTEGER
-AcpiExDoMathOp (
-    UINT16                  Opcode,
-    ACPI_INTEGER            Integer0,
-    ACPI_INTEGER            Integer1)
-{
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    switch (Opcode)
-    {
-    case AML_ADD_OP:                /* Add (Integer0, Integer1, Result) */
-
-        return (Integer0 + Integer1);
-
-
-    case AML_BIT_AND_OP:            /* And (Integer0, Integer1, Result) */
-
-        return (Integer0 & Integer1);
-
-
-    case AML_BIT_NAND_OP:           /* NAnd (Integer0, Integer1, Result) */
-
-        return (~(Integer0 & Integer1));
-
-
-    case AML_BIT_OR_OP:             /* Or (Integer0, Integer1, Result) */
-
-        return (Integer0 | Integer1);
-
-
-    case AML_BIT_NOR_OP:            /* NOr (Integer0, Integer1, Result) */
-
-        return (~(Integer0 | Integer1));
-
-
-    case AML_BIT_XOR_OP:            /* XOr (Integer0, Integer1, Result) */
-
-        return (Integer0 ^ Integer1);
-
-
-    case AML_MULTIPLY_OP:           /* Multiply (Integer0, Integer1, Result) */
-
-        return (Integer0 * Integer1);
-
-
-    case AML_SHIFT_LEFT_OP:         /* ShiftLeft (Operand, ShiftCount, Result)*/
-
-        /*
-         * We need to check if the shiftcount is larger than the integer bit
-         * width since the behavior of this is not well-defined in the C language.
-         */
-        if (Integer1 >= AcpiGbl_IntegerBitWidth)
-        {
-            return (0);
-        }
-        return (Integer0 << Integer1);
-
-
-    case AML_SHIFT_RIGHT_OP:        /* ShiftRight (Operand, ShiftCount, Result) */
-
-        /*
-         * We need to check if the shiftcount is larger than the integer bit
-         * width since the behavior of this is not well-defined in the C language.
-         */
-        if (Integer1 >= AcpiGbl_IntegerBitWidth)
-        {
-            return (0);
-        }
-        return (Integer0 >> Integer1);
-
-
-    case AML_SUBTRACT_OP:           /* Subtract (Integer0, Integer1, Result) */
-
-        return (Integer0 - Integer1);
-
-    default:
-
-        return (0);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDoLogicalNumericOp
- *
- * PARAMETERS:  Opcode              - AML opcode
- *              Integer0            - Integer operand #0
- *              Integer1            - Integer operand #1
- *              LogicalResult       - TRUE/FALSE result of the operation
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute a logical "Numeric" AML opcode. For these Numeric
- *              operators (LAnd and LOr), both operands must be integers.
- *
- *              Note: cleanest machine code seems to be produced by the code
- *              below, rather than using statements of the form:
- *                  Result = (Integer0 && Integer1);
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExDoLogicalNumericOp (
-    UINT16                  Opcode,
-    ACPI_INTEGER            Integer0,
-    ACPI_INTEGER            Integer1,
-    BOOLEAN                 *LogicalResult)
-{
-    ACPI_STATUS             Status = AE_OK;
-    BOOLEAN                 LocalResult = FALSE;
-
-
-    ACPI_FUNCTION_TRACE (ExDoLogicalNumericOp);
-
-
-    switch (Opcode)
-    {
-    case AML_LAND_OP:               /* LAnd (Integer0, Integer1) */
-
-        if (Integer0 && Integer1)
-        {
-            LocalResult = TRUE;
-        }
-        break;
-
-    case AML_LOR_OP:                /* LOr (Integer0, Integer1) */
-
-        if (Integer0 || Integer1)
-        {
-            LocalResult = TRUE;
-        }
-        break;
-
-    default:
-        Status = AE_AML_INTERNAL;
-        break;
-    }
-
-    /* Return the logical result and status */
-
-    *LogicalResult = LocalResult;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDoLogicalOp
- *
- * PARAMETERS:  Opcode              - AML opcode
- *              Operand0            - operand #0
- *              Operand1            - operand #1
- *              LogicalResult       - TRUE/FALSE result of the operation
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute a logical AML opcode. The purpose of having all of the
- *              functions here is to prevent a lot of pointer dereferencing
- *              to obtain the operands and to simplify the generation of the
- *              logical value. For the Numeric operators (LAnd and LOr), both
- *              operands must be integers. For the other logical operators,
- *              operands can be any combination of Integer/String/Buffer. The
- *              first operand determines the type to which the second operand
- *              will be converted.
- *
- *              Note: cleanest machine code seems to be produced by the code
- *              below, rather than using statements of the form:
- *                  Result = (Operand0 == Operand1);
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExDoLogicalOp (
-    UINT16                  Opcode,
-    ACPI_OPERAND_OBJECT     *Operand0,
-    ACPI_OPERAND_OBJECT     *Operand1,
-    BOOLEAN                 *LogicalResult)
-{
-    ACPI_OPERAND_OBJECT     *LocalOperand1 = Operand1;
-    ACPI_INTEGER            Integer0;
-    ACPI_INTEGER            Integer1;
-    UINT32                  Length0;
-    UINT32                  Length1;
-    ACPI_STATUS             Status = AE_OK;
-    BOOLEAN                 LocalResult = FALSE;
-    int                     Compare;
-
-
-    ACPI_FUNCTION_TRACE (ExDoLogicalOp);
-
-
-    /*
-     * Convert the second operand if necessary.  The first operand
-     * determines the type of the second operand, (See the Data Types
-     * section of the ACPI 3.0+ specification.)  Both object types are
-     * guaranteed to be either Integer/String/Buffer by the operand
-     * resolution mechanism.
-     */
-    switch (Operand0->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-        Status = AcpiExConvertToInteger (Operand1, &LocalOperand1, 16);
-        break;
-
-    case ACPI_TYPE_STRING:
-        Status = AcpiExConvertToString (Operand1, &LocalOperand1,
-                    ACPI_IMPLICIT_CONVERT_HEX);
-        break;
-
-    case ACPI_TYPE_BUFFER:
-        Status = AcpiExConvertToBuffer (Operand1, &LocalOperand1);
-        break;
-
-    default:
-        Status = AE_AML_INTERNAL;
-        break;
-    }
-
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    /*
-     * Two cases: 1) Both Integers, 2) Both Strings or Buffers
-     */
-    if (Operand0->Common.Type == ACPI_TYPE_INTEGER)
-    {
-        /*
-         * 1) Both operands are of type integer
-         *    Note: LocalOperand1 may have changed above
-         */
-        Integer0 = Operand0->Integer.Value;
-        Integer1 = LocalOperand1->Integer.Value;
-
-        switch (Opcode)
-        {
-        case AML_LEQUAL_OP:             /* LEqual (Operand0, Operand1) */
-
-            if (Integer0 == Integer1)
-            {
-                LocalResult = TRUE;
-            }
-            break;
-
-        case AML_LGREATER_OP:           /* LGreater (Operand0, Operand1) */
-
-            if (Integer0 > Integer1)
-            {
-                LocalResult = TRUE;
-            }
-            break;
-
-        case AML_LLESS_OP:              /* LLess (Operand0, Operand1) */
-
-            if (Integer0 < Integer1)
-            {
-                LocalResult = TRUE;
-            }
-            break;
-
-        default:
-            Status = AE_AML_INTERNAL;
-            break;
-        }
-    }
-    else
-    {
-        /*
-         * 2) Both operands are Strings or both are Buffers
-         *    Note: Code below takes advantage of common Buffer/String
-         *          object fields. LocalOperand1 may have changed above. Use
-         *          memcmp to handle nulls in buffers.
-         */
-        Length0 = Operand0->Buffer.Length;
-        Length1 = LocalOperand1->Buffer.Length;
-
-        /* Lexicographic compare: compare the data bytes */
-
-        Compare = ACPI_MEMCMP (Operand0->Buffer.Pointer,
-                    LocalOperand1->Buffer.Pointer,
-                    (Length0 > Length1) ? Length1 : Length0);
-
-        switch (Opcode)
-        {
-        case AML_LEQUAL_OP:             /* LEqual (Operand0, Operand1) */
-
-            /* Length and all bytes must be equal */
-
-            if ((Length0 == Length1) &&
-                (Compare == 0))
-            {
-                /* Length and all bytes match ==> TRUE */
-
-                LocalResult = TRUE;
-            }
-            break;
-
-        case AML_LGREATER_OP:           /* LGreater (Operand0, Operand1) */
-
-            if (Compare > 0)
-            {
-                LocalResult = TRUE;
-                goto Cleanup;   /* TRUE */
-            }
-            if (Compare < 0)
-            {
-                goto Cleanup;   /* FALSE */
-            }
-
-            /* Bytes match (to shortest length), compare lengths */
-
-            if (Length0 > Length1)
-            {
-                LocalResult = TRUE;
-            }
-            break;
-
-        case AML_LLESS_OP:              /* LLess (Operand0, Operand1) */
-
-            if (Compare > 0)
-            {
-                goto Cleanup;   /* FALSE */
-            }
-            if (Compare < 0)
-            {
-                LocalResult = TRUE;
-                goto Cleanup;   /* TRUE */
-            }
-
-            /* Bytes match (to shortest length), compare lengths */
-
-            if (Length0 < Length1)
-            {
-                LocalResult = TRUE;
-            }
-            break;
-
-        default:
-            Status = AE_AML_INTERNAL;
-            break;
-        }
-    }
-
-Cleanup:
-
-    /* New object was created if implicit conversion performed - delete */
-
-    if (LocalOperand1 != Operand1)
-    {
-        AcpiUtRemoveReference (LocalOperand1);
-    }
-
-    /* Return the logical result and status */
-
-    *LogicalResult = LocalResult;
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exmutex.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exmutex.c
deleted file mode 100644 (file)
index 8b1bebf..0000000
+++ /dev/null
@@ -1,621 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exmutex - ASL Mutex Acquire/Release functions
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXMUTEX_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "acevents.h"
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exmutex")
-
-/* Local prototypes */
-
-static void
-AcpiExLinkMutex (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_THREAD_STATE       *Thread);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExUnlinkMutex
- *
- * PARAMETERS:  ObjDesc             - The mutex to be unlinked
- *
- * RETURN:      None
- *
- * DESCRIPTION: Remove a mutex from the "AcquiredMutex" list
- *
- ******************************************************************************/
-
-void
-AcpiExUnlinkMutex (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_THREAD_STATE       *Thread = ObjDesc->Mutex.OwnerThread;
-
-
-    if (!Thread)
-    {
-        return;
-    }
-
-    /* Doubly linked list */
-
-    if (ObjDesc->Mutex.Next)
-    {
-        (ObjDesc->Mutex.Next)->Mutex.Prev = ObjDesc->Mutex.Prev;
-    }
-
-    if (ObjDesc->Mutex.Prev)
-    {
-        (ObjDesc->Mutex.Prev)->Mutex.Next = ObjDesc->Mutex.Next;
-
-        /*
-         * Migrate the previous sync level associated with this mutex to the
-         * previous mutex on the list so that it may be preserved. This handles
-         * the case where several mutexes have been acquired at the same level,
-         * but are not released in opposite order.
-         */
-        (ObjDesc->Mutex.Prev)->Mutex.OriginalSyncLevel =
-            ObjDesc->Mutex.OriginalSyncLevel;
-    }
-    else
-    {
-        Thread->AcquiredMutexList = ObjDesc->Mutex.Next;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExLinkMutex
- *
- * PARAMETERS:  ObjDesc         - The mutex to be linked
- *              Thread          - Current executing thread object
- *
- * RETURN:      None
- *
- * DESCRIPTION: Add a mutex to the "AcquiredMutex" list for this walk
- *
- ******************************************************************************/
-
-static void
-AcpiExLinkMutex (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_THREAD_STATE       *Thread)
-{
-    ACPI_OPERAND_OBJECT     *ListHead;
-
-
-    ListHead = Thread->AcquiredMutexList;
-
-    /* This object will be the first object in the list */
-
-    ObjDesc->Mutex.Prev = NULL;
-    ObjDesc->Mutex.Next = ListHead;
-
-    /* Update old first object to point back to this object */
-
-    if (ListHead)
-    {
-        ListHead->Mutex.Prev = ObjDesc;
-    }
-
-    /* Update list head */
-
-    Thread->AcquiredMutexList = ObjDesc;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExAcquireMutexObject
- *
- * PARAMETERS:  TimeDesc            - Timeout in milliseconds
- *              ObjDesc             - Mutex object
- *              Thread              - Current thread state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Acquire an AML mutex, low-level interface. Provides a common
- *              path that supports multiple acquires by the same thread.
- *
- * MUTEX:       Interpreter must be locked
- *
- * NOTE: This interface is called from three places:
- * 1) From AcpiExAcquireMutex, via an AML Acquire() operator
- * 2) From AcpiExAcquireGlobalLock when an AML Field access requires the
- *    global lock
- * 3) From the external interface, AcpiAcquireGlobalLock
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExAcquireMutexObject (
-    UINT16                  Timeout,
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_THREAD_ID          ThreadId)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExAcquireMutexObject, ObjDesc);
-
-
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Support for multiple acquires by the owning thread */
-
-    if (ObjDesc->Mutex.ThreadId == ThreadId)
-    {
-        /*
-         * The mutex is already owned by this thread, just increment the
-         * acquisition depth
-         */
-        ObjDesc->Mutex.AcquisitionDepth++;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Acquire the mutex, wait if necessary. Special case for Global Lock */
-
-    if (ObjDesc == AcpiGbl_GlobalLockMutex)
-    {
-        Status = AcpiEvAcquireGlobalLock (Timeout);
-    }
-    else
-    {
-        Status = AcpiExSystemWaitMutex (ObjDesc->Mutex.OsMutex,
-                    Timeout);
-    }
-
-    if (ACPI_FAILURE (Status))
-    {
-        /* Includes failure from a timeout on TimeDesc */
-
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Acquired the mutex: update mutex object */
-
-    ObjDesc->Mutex.ThreadId = ThreadId;
-    ObjDesc->Mutex.AcquisitionDepth = 1;
-    ObjDesc->Mutex.OriginalSyncLevel = 0;
-    ObjDesc->Mutex.OwnerThread = NULL;      /* Used only for AML Acquire() */
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExAcquireMutex
- *
- * PARAMETERS:  TimeDesc            - Timeout integer
- *              ObjDesc             - Mutex object
- *              WalkState           - Current method execution state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Acquire an AML mutex
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExAcquireMutex (
-    ACPI_OPERAND_OBJECT     *TimeDesc,
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExAcquireMutex, ObjDesc);
-
-
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Must have a valid thread ID */
-
-    if (!WalkState->Thread)
-    {
-        ACPI_ERROR ((AE_INFO, "Cannot acquire Mutex [%4.4s], null thread info",
-            AcpiUtGetNodeName (ObjDesc->Mutex.Node)));
-        return_ACPI_STATUS (AE_AML_INTERNAL);
-    }
-
-    /*
-     * Current sync level must be less than or equal to the sync level of the
-     * mutex. This mechanism provides some deadlock prevention
-     */
-    if (WalkState->Thread->CurrentSyncLevel > ObjDesc->Mutex.SyncLevel)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Cannot acquire Mutex [%4.4s], current SyncLevel is too large (%d)",
-            AcpiUtGetNodeName (ObjDesc->Mutex.Node),
-            WalkState->Thread->CurrentSyncLevel));
-        return_ACPI_STATUS (AE_AML_MUTEX_ORDER);
-    }
-
-    Status = AcpiExAcquireMutexObject ((UINT16) TimeDesc->Integer.Value,
-                ObjDesc, WalkState->Thread->ThreadId);
-    if (ACPI_SUCCESS (Status) && ObjDesc->Mutex.AcquisitionDepth == 1)
-    {
-        /* Save Thread object, original/current sync levels */
-
-        ObjDesc->Mutex.OwnerThread = WalkState->Thread;
-        ObjDesc->Mutex.OriginalSyncLevel = WalkState->Thread->CurrentSyncLevel;
-        WalkState->Thread->CurrentSyncLevel = ObjDesc->Mutex.SyncLevel;
-
-        /* Link the mutex to the current thread for force-unlock at method exit */
-
-        AcpiExLinkMutex (ObjDesc, WalkState->Thread);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExReleaseMutexObject
- *
- * PARAMETERS:  ObjDesc             - The object descriptor for this op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Release a previously acquired Mutex, low level interface.
- *              Provides a common path that supports multiple releases (after
- *              previous multiple acquires) by the same thread.
- *
- * MUTEX:       Interpreter must be locked
- *
- * NOTE: This interface is called from three places:
- * 1) From AcpiExReleaseMutex, via an AML Acquire() operator
- * 2) From AcpiExReleaseGlobalLock when an AML Field access requires the
- *    global lock
- * 3) From the external interface, AcpiReleaseGlobalLock
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExReleaseMutexObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (ExReleaseMutexObject);
-
-
-    if (ObjDesc->Mutex.AcquisitionDepth == 0)
-    {
-        return (AE_NOT_ACQUIRED);
-    }
-
-    /* Match multiple Acquires with multiple Releases */
-
-    ObjDesc->Mutex.AcquisitionDepth--;
-    if (ObjDesc->Mutex.AcquisitionDepth != 0)
-    {
-        /* Just decrement the depth and return */
-
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    if (ObjDesc->Mutex.OwnerThread)
-    {
-        /* Unlink the mutex from the owner's list */
-
-        AcpiExUnlinkMutex (ObjDesc);
-        ObjDesc->Mutex.OwnerThread = NULL;
-    }
-
-    /* Release the mutex, special case for Global Lock */
-
-    if (ObjDesc == AcpiGbl_GlobalLockMutex)
-    {
-        Status = AcpiEvReleaseGlobalLock ();
-    }
-    else
-    {
-        AcpiOsReleaseMutex (ObjDesc->Mutex.OsMutex);
-    }
-
-    /* Clear mutex info */
-
-    ObjDesc->Mutex.ThreadId = 0;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExReleaseMutex
- *
- * PARAMETERS:  ObjDesc             - The object descriptor for this op
- *              WalkState           - Current method execution state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Release a previously acquired Mutex.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExReleaseMutex (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    UINT8                   PreviousSyncLevel;
-
-
-    ACPI_FUNCTION_TRACE (ExReleaseMutex);
-
-
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* The mutex must have been previously acquired in order to release it */
-
-    if (!ObjDesc->Mutex.OwnerThread)
-    {
-        ACPI_ERROR ((AE_INFO, "Cannot release Mutex [%4.4s], not acquired",
-            AcpiUtGetNodeName (ObjDesc->Mutex.Node)));
-        return_ACPI_STATUS (AE_AML_MUTEX_NOT_ACQUIRED);
-    }
-
-    /* Must have a valid thread ID */
-
-    if (!WalkState->Thread)
-    {
-        ACPI_ERROR ((AE_INFO, "Cannot release Mutex [%4.4s], null thread info",
-            AcpiUtGetNodeName (ObjDesc->Mutex.Node)));
-        return_ACPI_STATUS (AE_AML_INTERNAL);
-    }
-
-    /*
-     * The Mutex is owned, but this thread must be the owner.
-     * Special case for Global Lock, any thread can release
-     */
-    if ((ObjDesc->Mutex.OwnerThread->ThreadId != WalkState->Thread->ThreadId) &&
-        (ObjDesc != AcpiGbl_GlobalLockMutex))
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Thread %p cannot release Mutex [%4.4s] acquired by thread %p",
-            ACPI_CAST_PTR (void, WalkState->Thread->ThreadId),
-            AcpiUtGetNodeName (ObjDesc->Mutex.Node),
-            ACPI_CAST_PTR (void, ObjDesc->Mutex.OwnerThread->ThreadId)));
-        return_ACPI_STATUS (AE_AML_NOT_OWNER);
-    }
-
-    /*
-     * The sync level of the mutex must be equal to the current sync level. In
-     * other words, the current level means that at least one mutex at that
-     * level is currently being held. Attempting to release a mutex of a
-     * different level can only mean that the mutex ordering rule is being
-     * violated. This behavior is clarified in ACPI 4.0 specification.
-     */
-    if (ObjDesc->Mutex.SyncLevel != WalkState->Thread->CurrentSyncLevel)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Cannot release Mutex [%4.4s], SyncLevel mismatch: mutex %d current %d",
-            AcpiUtGetNodeName (ObjDesc->Mutex.Node),
-            ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel));
-        return_ACPI_STATUS (AE_AML_MUTEX_ORDER);
-    }
-
-    /*
-     * Get the previous SyncLevel from the head of the acquired mutex list.
-     * This handles the case where several mutexes at the same level have been
-     * acquired, but are not released in reverse order.
-     */
-    PreviousSyncLevel =
-        WalkState->Thread->AcquiredMutexList->Mutex.OriginalSyncLevel;
-
-    Status = AcpiExReleaseMutexObject (ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (ObjDesc->Mutex.AcquisitionDepth == 0)
-    {
-        /* Restore the previous SyncLevel */
-
-        WalkState->Thread->CurrentSyncLevel = PreviousSyncLevel;
-    }
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExReleaseAllMutexes
- *
- * PARAMETERS:  Thread          - Current executing thread object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Release all mutexes held by this thread
- *
- * NOTE: This function is called as the thread is exiting the interpreter.
- * Mutexes are not released when an individual control method is exited, but
- * only when the parent thread actually exits the interpreter. This allows one
- * method to acquire a mutex, and a different method to release it, as long as
- * this is performed underneath a single parent control method.
- *
- ******************************************************************************/
-
-void
-AcpiExReleaseAllMutexes (
-    ACPI_THREAD_STATE       *Thread)
-{
-    ACPI_OPERAND_OBJECT     *Next = Thread->AcquiredMutexList;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Traverse the list of owned mutexes, releasing each one */
-
-    while (Next)
-    {
-        ObjDesc = Next;
-        Next = ObjDesc->Mutex.Next;
-
-        ObjDesc->Mutex.Prev = NULL;
-        ObjDesc->Mutex.Next = NULL;
-        ObjDesc->Mutex.AcquisitionDepth = 0;
-
-        /* Release the mutex, special case for Global Lock */
-
-        if (ObjDesc == AcpiGbl_GlobalLockMutex)
-        {
-            /* Ignore errors */
-
-            (void) AcpiEvReleaseGlobalLock ();
-        }
-        else
-        {
-            AcpiOsReleaseMutex (ObjDesc->Mutex.OsMutex);
-        }
-
-        /* Mark mutex unowned */
-
-        ObjDesc->Mutex.OwnerThread = NULL;
-        ObjDesc->Mutex.ThreadId = 0;
-
-        /* Update Thread SyncLevel (Last mutex is the important one) */
-
-        Thread->CurrentSyncLevel = ObjDesc->Mutex.OriginalSyncLevel;
-    }
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exnames.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exnames.c
deleted file mode 100644 (file)
index 89fa2d4..0000000
+++ /dev/null
@@ -1,560 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exnames - interpreter/scanner name load/execute
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXNAMES_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "amlcode.h"
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exnames")
-
-/* Local prototypes */
-
-static char *
-AcpiExAllocateNameString (
-    UINT32                  PrefixCount,
-    UINT32                  NumNameSegs);
-
-static ACPI_STATUS
-AcpiExNameSegment (
-    UINT8                   **InAmlAddress,
-    char                    *NameString);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExAllocateNameString
- *
- * PARAMETERS:  PrefixCount         - Count of parent levels. Special cases:
- *                                    (-1)==root,  0==none
- *              NumNameSegs         - count of 4-character name segments
- *
- * RETURN:      A pointer to the allocated string segment.  This segment must
- *              be deleted by the caller.
- *
- * DESCRIPTION: Allocate a buffer for a name string. Ensure allocated name
- *              string is long enough, and set up prefix if any.
- *
- ******************************************************************************/
-
-static char *
-AcpiExAllocateNameString (
-    UINT32                  PrefixCount,
-    UINT32                  NumNameSegs)
-{
-    char                    *TempPtr;
-    char                    *NameString;
-    UINT32                   SizeNeeded;
-
-    ACPI_FUNCTION_TRACE (ExAllocateNameString);
-
-
-    /*
-     * Allow room for all \ and ^ prefixes, all segments and a MultiNamePrefix.
-     * Also, one byte for the null terminator.
-     * This may actually be somewhat longer than needed.
-     */
-    if (PrefixCount == ACPI_UINT32_MAX)
-    {
-        /* Special case for root */
-
-        SizeNeeded = 1 + (ACPI_NAME_SIZE * NumNameSegs) + 2 + 1;
-    }
-    else
-    {
-        SizeNeeded = PrefixCount + (ACPI_NAME_SIZE * NumNameSegs) + 2 + 1;
-    }
-
-    /*
-     * Allocate a buffer for the name.
-     * This buffer must be deleted by the caller!
-     */
-    NameString = ACPI_ALLOCATE (SizeNeeded);
-    if (!NameString)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Could not allocate size %d", SizeNeeded));
-        return_PTR (NULL);
-    }
-
-    TempPtr = NameString;
-
-    /* Set up Root or Parent prefixes if needed */
-
-    if (PrefixCount == ACPI_UINT32_MAX)
-    {
-        *TempPtr++ = AML_ROOT_PREFIX;
-    }
-    else
-    {
-        while (PrefixCount--)
-        {
-            *TempPtr++ = AML_PARENT_PREFIX;
-        }
-    }
-
-
-    /* Set up Dual or Multi prefixes if needed */
-
-    if (NumNameSegs > 2)
-    {
-        /* Set up multi prefixes   */
-
-        *TempPtr++ = AML_MULTI_NAME_PREFIX_OP;
-        *TempPtr++ = (char) NumNameSegs;
-    }
-    else if (2 == NumNameSegs)
-    {
-        /* Set up dual prefixes */
-
-        *TempPtr++ = AML_DUAL_NAME_PREFIX;
-    }
-
-    /*
-     * Terminate string following prefixes. AcpiExNameSegment() will
-     * append the segment(s)
-     */
-    *TempPtr = 0;
-
-    return_PTR (NameString);
-}
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExNameSegment
- *
- * PARAMETERS:  InAmlAddress    - Pointer to the name in the AML code
- *              NameString      - Where to return the name. The name is appended
- *                                to any existing string to form a namepath
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Extract an ACPI name (4 bytes) from the AML byte stream
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExNameSegment (
-    UINT8                   **InAmlAddress,
-    char                    *NameString)
-{
-    char                    *AmlAddress = (void *) *InAmlAddress;
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  Index;
-    char                    CharBuf[5];
-
-
-    ACPI_FUNCTION_TRACE (ExNameSegment);
-
-
-    /*
-     * If first character is a digit, then we know that we aren't looking at a
-     * valid name segment
-     */
-    CharBuf[0] = *AmlAddress;
-
-    if ('0' <= CharBuf[0] && CharBuf[0] <= '9')
-    {
-        ACPI_ERROR ((AE_INFO, "Invalid leading digit: %c", CharBuf[0]));
-        return_ACPI_STATUS (AE_CTRL_PENDING);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "Bytes from stream:\n"));
-
-    for (Index = 0;
-        (Index < ACPI_NAME_SIZE) && (AcpiUtValidAcpiChar (*AmlAddress, 0));
-        Index++)
-    {
-        CharBuf[Index] = *AmlAddress++;
-        ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "%c\n", CharBuf[Index]));
-    }
-
-
-    /* Valid name segment  */
-
-    if (Index == 4)
-    {
-        /* Found 4 valid characters */
-
-        CharBuf[4] = '\0';
-
-        if (NameString)
-        {
-            ACPI_STRCAT (NameString, CharBuf);
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "Appended to - %s\n", NameString));
-        }
-        else
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "No Name string - %s\n", CharBuf));
-        }
-    }
-    else if (Index == 0)
-    {
-        /*
-         * First character was not a valid name character,
-         * so we are looking at something other than a name.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-            "Leading character is not alpha: %02Xh (not a name)\n",
-            CharBuf[0]));
-        Status = AE_CTRL_PENDING;
-    }
-    else
-    {
-        /*
-         * Segment started with one or more valid characters, but fewer than
-         * the required 4
-         */
-        Status = AE_AML_BAD_NAME;
-        ACPI_ERROR ((AE_INFO,
-            "Bad character %02x in name, at %p",
-            *AmlAddress, AmlAddress));
-    }
-
-    *InAmlAddress = ACPI_CAST_PTR (UINT8, AmlAddress);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExGetNameString
- *
- * PARAMETERS:  DataType            - Object type to be associated with this
- *                                    name
- *              InAmlAddress        - Pointer to the namestring in the AML code
- *              OutNameString       - Where the namestring is returned
- *              OutNameLength       - Length of the returned string
- *
- * RETURN:      Status, namestring and length
- *
- * DESCRIPTION: Extract a full namepath from the AML byte stream,
- *              including any prefixes.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExGetNameString (
-    ACPI_OBJECT_TYPE        DataType,
-    UINT8                   *InAmlAddress,
-    char                    **OutNameString,
-    UINT32                  *OutNameLength)
-{
-    ACPI_STATUS             Status = AE_OK;
-    UINT8                   *AmlAddress = InAmlAddress;
-    char                    *NameString = NULL;
-    UINT32                  NumSegments;
-    UINT32                  PrefixCount = 0;
-    BOOLEAN                 HasPrefix = FALSE;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExGetNameString, AmlAddress);
-
-
-    if (ACPI_TYPE_LOCAL_REGION_FIELD == DataType   ||
-        ACPI_TYPE_LOCAL_BANK_FIELD == DataType     ||
-        ACPI_TYPE_LOCAL_INDEX_FIELD == DataType)
-    {
-        /* Disallow prefixes for types associated with FieldUnit names */
-
-        NameString = AcpiExAllocateNameString (0, 1);
-        if (!NameString)
-        {
-            Status = AE_NO_MEMORY;
-        }
-        else
-        {
-            Status = AcpiExNameSegment (&AmlAddress, NameString);
-        }
-    }
-    else
-    {
-        /*
-         * DataType is not a field name.
-         * Examine first character of name for root or parent prefix operators
-         */
-        switch (*AmlAddress)
-        {
-        case AML_ROOT_PREFIX:
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "RootPrefix(\\) at %p\n",
-                AmlAddress));
-
-            /*
-             * Remember that we have a RootPrefix --
-             * see comment in AcpiExAllocateNameString()
-             */
-            AmlAddress++;
-            PrefixCount = ACPI_UINT32_MAX;
-            HasPrefix = TRUE;
-            break;
-
-
-        case AML_PARENT_PREFIX:
-
-            /* Increment past possibly multiple parent prefixes */
-
-            do
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "ParentPrefix (^) at %p\n",
-                    AmlAddress));
-
-                AmlAddress++;
-                PrefixCount++;
-
-            } while (*AmlAddress == AML_PARENT_PREFIX);
-
-            HasPrefix = TRUE;
-            break;
-
-
-        default:
-
-            /* Not a prefix character */
-
-            break;
-        }
-
-        /* Examine first character of name for name segment prefix operator */
-
-        switch (*AmlAddress)
-        {
-        case AML_DUAL_NAME_PREFIX:
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "DualNamePrefix at %p\n",
-                AmlAddress));
-
-            AmlAddress++;
-            NameString = AcpiExAllocateNameString (PrefixCount, 2);
-            if (!NameString)
-            {
-                Status = AE_NO_MEMORY;
-                break;
-            }
-
-            /* Indicate that we processed a prefix */
-
-            HasPrefix = TRUE;
-
-            Status = AcpiExNameSegment (&AmlAddress, NameString);
-            if (ACPI_SUCCESS (Status))
-            {
-                Status = AcpiExNameSegment (&AmlAddress, NameString);
-            }
-            break;
-
-
-        case AML_MULTI_NAME_PREFIX_OP:
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "MultiNamePrefix at %p\n",
-                AmlAddress));
-
-            /* Fetch count of segments remaining in name path */
-
-            AmlAddress++;
-            NumSegments = *AmlAddress;
-
-            NameString = AcpiExAllocateNameString (PrefixCount, NumSegments);
-            if (!NameString)
-            {
-                Status = AE_NO_MEMORY;
-                break;
-            }
-
-            /* Indicate that we processed a prefix */
-
-            AmlAddress++;
-            HasPrefix = TRUE;
-
-            while (NumSegments &&
-                    (Status = AcpiExNameSegment (&AmlAddress, NameString)) ==
-                        AE_OK)
-            {
-                NumSegments--;
-            }
-
-            break;
-
-
-        case 0:
-
-            /* NullName valid as of 8-12-98 ASL/AML Grammar Update */
-
-            if (PrefixCount == ACPI_UINT32_MAX)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                    "NameSeg is \"\\\" followed by NULL\n"));
-            }
-
-            /* Consume the NULL byte */
-
-            AmlAddress++;
-            NameString = AcpiExAllocateNameString (PrefixCount, 0);
-            if (!NameString)
-            {
-                Status = AE_NO_MEMORY;
-                break;
-            }
-
-            break;
-
-
-        default:
-
-            /* Name segment string */
-
-            NameString = AcpiExAllocateNameString (PrefixCount, 1);
-            if (!NameString)
-            {
-                Status = AE_NO_MEMORY;
-                break;
-            }
-
-            Status = AcpiExNameSegment (&AmlAddress, NameString);
-            break;
-        }
-    }
-
-    if (AE_CTRL_PENDING == Status && HasPrefix)
-    {
-        /* Ran out of segments after processing a prefix */
-
-        ACPI_ERROR ((AE_INFO,
-            "Malformed Name at %p", NameString));
-        Status = AE_AML_BAD_NAME;
-    }
-
-    if (ACPI_FAILURE (Status))
-    {
-        if (NameString)
-        {
-            ACPI_FREE (NameString);
-        }
-        return_ACPI_STATUS (Status);
-    }
-
-    *OutNameString = NameString;
-    *OutNameLength = (UINT32) (AmlAddress - InAmlAddress);
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg1.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg1.c
deleted file mode 100644 (file)
index 4a90b9c..0000000
+++ /dev/null
@@ -1,1183 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exoparg1 - AML execution - opcodes with 1 argument
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXOPARG1_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exoparg1")
-
-
-/*!
- * Naming convention for AML interpreter execution routines.
- *
- * The routines that begin execution of AML opcodes are named with a common
- * convention based upon the number of arguments, the number of target operands,
- * and whether or not a value is returned:
- *
- *      AcpiExOpcode_xA_yT_zR
- *
- * Where:
- *
- * xA - ARGUMENTS:    The number of arguments (input operands) that are
- *                    required for this opcode type (0 through 6 args).
- * yT - TARGETS:      The number of targets (output operands) that are required
- *                    for this opcode type (0, 1, or 2 targets).
- * zR - RETURN VALUE: Indicates whether this opcode type returns a value
- *                    as the function return (0 or 1).
- *
- * The AcpiExOpcode* functions are called via the Dispatcher component with
- * fully resolved operands.
-!*/
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_0A_0T_1R
- *
- * PARAMETERS:  WalkState           - Current state (contains AML opcode)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute operator with no operands, one return value
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_0A_0T_1R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *ReturnDesc = NULL;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_0A_0T_1R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    /* Examine the AML opcode */
-
-    switch (WalkState->Opcode)
-    {
-    case AML_TIMER_OP:      /*  Timer () */
-
-        /* Create a return object of type Integer */
-
-        ReturnDesc = AcpiUtCreateIntegerObject (AcpiOsGetTimer ());
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-        break;
-
-    default:                /*  Unknown opcode  */
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        break;
-    }
-
-Cleanup:
-
-    /* Delete return object on error */
-
-    if ((ACPI_FAILURE (Status)) || WalkState->ResultObj)
-    {
-        AcpiUtRemoveReference (ReturnDesc);
-        WalkState->ResultObj = NULL;
-    }
-    else
-    {
-        /* Save the return value */
-
-        WalkState->ResultObj = ReturnDesc;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_1A_0T_0R
- *
- * PARAMETERS:  WalkState           - Current state (contains AML opcode)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute Type 1 monadic operator with numeric operand on
- *              object stack
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_1A_0T_0R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_1A_0T_0R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    /* Examine the AML opcode */
-
-    switch (WalkState->Opcode)
-    {
-    case AML_RELEASE_OP:    /*  Release (MutexObject) */
-
-        Status = AcpiExReleaseMutex (Operand[0], WalkState);
-        break;
-
-
-    case AML_RESET_OP:      /*  Reset (EventObject) */
-
-        Status = AcpiExSystemResetEvent (Operand[0]);
-        break;
-
-
-    case AML_SIGNAL_OP:     /*  Signal (EventObject) */
-
-        Status = AcpiExSystemSignalEvent (Operand[0]);
-        break;
-
-
-    case AML_SLEEP_OP:      /*  Sleep (MsecTime) */
-
-        Status = AcpiExSystemDoSuspend (Operand[0]->Integer.Value);
-        break;
-
-
-    case AML_STALL_OP:      /*  Stall (UsecTime) */
-
-        Status = AcpiExSystemDoStall ((UINT32) Operand[0]->Integer.Value);
-        break;
-
-
-    case AML_UNLOAD_OP:     /*  Unload (Handle) */
-
-        Status = AcpiExUnloadTable (Operand[0]);
-        break;
-
-
-    default:                /*  Unknown opcode  */
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_1A_1T_0R
- *
- * PARAMETERS:  WalkState           - Current state (contains AML opcode)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute opcode with one argument, one target, and no
- *              return value.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_1A_1T_0R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_1A_1T_0R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    /* Examine the AML opcode */
-
-    switch (WalkState->Opcode)
-    {
-    case AML_LOAD_OP:
-
-        Status = AcpiExLoadOp (Operand[0], Operand[1], WalkState);
-        break;
-
-    default:                        /* Unknown opcode */
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        goto Cleanup;
-    }
-
-
-Cleanup:
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_1A_1T_1R
- *
- * PARAMETERS:  WalkState           - Current state (contains AML opcode)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute opcode with one argument, one target, and a
- *              return value.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_1A_1T_1R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *ReturnDesc = NULL;
-    ACPI_OPERAND_OBJECT     *ReturnDesc2 = NULL;
-    UINT32                  Temp32;
-    UINT32                  i;
-    ACPI_INTEGER            PowerOfTen;
-    ACPI_INTEGER            Digit;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_1A_1T_1R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    /* Examine the AML opcode */
-
-    switch (WalkState->Opcode)
-    {
-    case AML_BIT_NOT_OP:
-    case AML_FIND_SET_LEFT_BIT_OP:
-    case AML_FIND_SET_RIGHT_BIT_OP:
-    case AML_FROM_BCD_OP:
-    case AML_TO_BCD_OP:
-    case AML_COND_REF_OF_OP:
-
-        /* Create a return object of type Integer for these opcodes */
-
-        ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        switch (WalkState->Opcode)
-        {
-        case AML_BIT_NOT_OP:            /* Not (Operand, Result)  */
-
-            ReturnDesc->Integer.Value = ~Operand[0]->Integer.Value;
-            break;
-
-
-        case AML_FIND_SET_LEFT_BIT_OP:  /* FindSetLeftBit (Operand, Result) */
-
-            ReturnDesc->Integer.Value = Operand[0]->Integer.Value;
-
-            /*
-             * Acpi specification describes Integer type as a little
-             * endian unsigned value, so this boundary condition is valid.
-             */
-            for (Temp32 = 0; ReturnDesc->Integer.Value &&
-                             Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32)
-            {
-                ReturnDesc->Integer.Value >>= 1;
-            }
-
-            ReturnDesc->Integer.Value = Temp32;
-            break;
-
-
-        case AML_FIND_SET_RIGHT_BIT_OP: /* FindSetRightBit (Operand, Result) */
-
-            ReturnDesc->Integer.Value = Operand[0]->Integer.Value;
-
-            /*
-             * The Acpi specification describes Integer type as a little
-             * endian unsigned value, so this boundary condition is valid.
-             */
-            for (Temp32 = 0; ReturnDesc->Integer.Value &&
-                             Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32)
-            {
-                ReturnDesc->Integer.Value <<= 1;
-            }
-
-            /* Since the bit position is one-based, subtract from 33 (65) */
-
-            ReturnDesc->Integer.Value =
-                Temp32 == 0 ? 0 : (ACPI_INTEGER_BIT_SIZE + 1) - Temp32;
-            break;
-
-
-        case AML_FROM_BCD_OP:           /* FromBcd (BCDValue, Result)  */
-
-            /*
-             * The 64-bit ACPI integer can hold 16 4-bit BCD characters
-             * (if table is 32-bit, integer can hold 8 BCD characters)
-             * Convert each 4-bit BCD value
-             */
-            PowerOfTen = 1;
-            ReturnDesc->Integer.Value = 0;
-            Digit = Operand[0]->Integer.Value;
-
-            /* Convert each BCD digit (each is one nybble wide) */
-
-            for (i = 0; (i < AcpiGbl_IntegerNybbleWidth) && (Digit > 0); i++)
-            {
-                /* Get the least significant 4-bit BCD digit */
-
-                Temp32 = ((UINT32) Digit) & 0xF;
-
-                /* Check the range of the digit */
-
-                if (Temp32 > 9)
-                {
-                    ACPI_ERROR ((AE_INFO,
-                        "BCD digit too large (not decimal): 0x%X",
-                        Temp32));
-
-                    Status = AE_AML_NUMERIC_OVERFLOW;
-                    goto Cleanup;
-                }
-
-                /* Sum the digit into the result with the current power of 10 */
-
-                ReturnDesc->Integer.Value +=
-                    (((ACPI_INTEGER) Temp32) * PowerOfTen);
-
-                /* Shift to next BCD digit */
-
-                Digit >>= 4;
-
-                /* Next power of 10 */
-
-                PowerOfTen *= 10;
-            }
-            break;
-
-
-        case AML_TO_BCD_OP:             /* ToBcd (Operand, Result)  */
-
-            ReturnDesc->Integer.Value = 0;
-            Digit = Operand[0]->Integer.Value;
-
-            /* Each BCD digit is one nybble wide */
-
-            for (i = 0; (i < AcpiGbl_IntegerNybbleWidth) && (Digit > 0); i++)
-            {
-                (void) AcpiUtShortDivide (Digit, 10, &Digit, &Temp32);
-
-                /*
-                 * Insert the BCD digit that resides in the
-                 * remainder from above
-                 */
-                ReturnDesc->Integer.Value |=
-                    (((ACPI_INTEGER) Temp32) << ACPI_MUL_4 (i));
-            }
-
-            /* Overflow if there is any data left in Digit */
-
-            if (Digit > 0)
-            {
-                ACPI_ERROR ((AE_INFO,
-                    "Integer too large to convert to BCD: %8.8X%8.8X",
-                    ACPI_FORMAT_UINT64 (Operand[0]->Integer.Value)));
-                Status = AE_AML_NUMERIC_OVERFLOW;
-                goto Cleanup;
-            }
-            break;
-
-
-        case AML_COND_REF_OF_OP:        /* CondRefOf (SourceObject, Result)  */
-
-            /*
-             * This op is a little strange because the internal return value is
-             * different than the return value stored in the result descriptor
-             * (There are really two return values)
-             */
-            if ((ACPI_NAMESPACE_NODE *) Operand[0] == AcpiGbl_RootNode)
-            {
-                /*
-                 * This means that the object does not exist in the namespace,
-                 * return FALSE
-                 */
-                ReturnDesc->Integer.Value = 0;
-                goto Cleanup;
-            }
-
-            /* Get the object reference, store it, and remove our reference */
-
-            Status = AcpiExGetObjectReference (Operand[0],
-                        &ReturnDesc2, WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                goto Cleanup;
-            }
-
-            Status = AcpiExStore (ReturnDesc2, Operand[1], WalkState);
-            AcpiUtRemoveReference (ReturnDesc2);
-
-            /* The object exists in the namespace, return TRUE */
-
-            ReturnDesc->Integer.Value = ACPI_INTEGER_MAX;
-            goto Cleanup;
-
-
-        default:
-            /* No other opcodes get here */
-            break;
-        }
-        break;
-
-
-    case AML_STORE_OP:              /* Store (Source, Target) */
-
-        /*
-         * A store operand is typically a number, string, buffer or lvalue
-         * Be careful about deleting the source object,
-         * since the object itself may have been stored.
-         */
-        Status = AcpiExStore (Operand[0], Operand[1], WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* It is possible that the Store already produced a return object */
-
-        if (!WalkState->ResultObj)
-        {
-            /*
-             * Normally, we would remove a reference on the Operand[0]
-             * parameter; But since it is being used as the internal return
-             * object (meaning we would normally increment it), the two
-             * cancel out, and we simply don't do anything.
-             */
-            WalkState->ResultObj = Operand[0];
-            WalkState->Operands[0] = NULL;  /* Prevent deletion */
-        }
-        return_ACPI_STATUS (Status);
-
-
-    /*
-     * ACPI 2.0 Opcodes
-     */
-    case AML_COPY_OP:               /* Copy (Source, Target) */
-
-        Status = AcpiUtCopyIobjectToIobject (Operand[0], &ReturnDesc,
-                    WalkState);
-        break;
-
-
-    case AML_TO_DECSTRING_OP:       /* ToDecimalString (Data, Result) */
-
-        Status = AcpiExConvertToString (Operand[0], &ReturnDesc,
-                    ACPI_EXPLICIT_CONVERT_DECIMAL);
-        if (ReturnDesc == Operand[0])
-        {
-            /* No conversion performed, add ref to handle return value */
-            AcpiUtAddReference (ReturnDesc);
-        }
-        break;
-
-
-    case AML_TO_HEXSTRING_OP:       /* ToHexString (Data, Result) */
-
-        Status = AcpiExConvertToString (Operand[0], &ReturnDesc,
-                    ACPI_EXPLICIT_CONVERT_HEX);
-        if (ReturnDesc == Operand[0])
-        {
-            /* No conversion performed, add ref to handle return value */
-            AcpiUtAddReference (ReturnDesc);
-        }
-        break;
-
-
-    case AML_TO_BUFFER_OP:          /* ToBuffer (Data, Result) */
-
-        Status = AcpiExConvertToBuffer (Operand[0], &ReturnDesc);
-        if (ReturnDesc == Operand[0])
-        {
-            /* No conversion performed, add ref to handle return value */
-            AcpiUtAddReference (ReturnDesc);
-        }
-        break;
-
-
-    case AML_TO_INTEGER_OP:         /* ToInteger (Data, Result) */
-
-        Status = AcpiExConvertToInteger (Operand[0], &ReturnDesc,
-                    ACPI_ANY_BASE);
-        if (ReturnDesc == Operand[0])
-        {
-            /* No conversion performed, add ref to handle return value */
-            AcpiUtAddReference (ReturnDesc);
-        }
-        break;
-
-
-    case AML_SHIFT_LEFT_BIT_OP:     /* ShiftLeftBit (Source, BitNum)  */
-    case AML_SHIFT_RIGHT_BIT_OP:    /* ShiftRightBit (Source, BitNum) */
-
-        /* These are two obsolete opcodes */
-
-        ACPI_ERROR ((AE_INFO,
-            "%s is obsolete and not implemented",
-            AcpiPsGetOpcodeName (WalkState->Opcode)));
-        Status = AE_SUPPORT;
-        goto Cleanup;
-
-
-    default:                        /* Unknown opcode */
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        goto Cleanup;
-    }
-
-    if (ACPI_SUCCESS (Status))
-    {
-        /* Store the return value computed above into the target object */
-
-        Status = AcpiExStore (ReturnDesc, Operand[1], WalkState);
-    }
-
-
-Cleanup:
-
-    /* Delete return object on error */
-
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtRemoveReference (ReturnDesc);
-    }
-
-    /* Save return object on success */
-
-    else if (!WalkState->ResultObj)
-    {
-        WalkState->ResultObj = ReturnDesc;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_1A_0T_1R
- *
- * PARAMETERS:  WalkState           - Current state (contains AML opcode)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute opcode with one argument, no target, and a return value
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_1A_0T_1R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *TempDesc;
-    ACPI_OPERAND_OBJECT     *ReturnDesc = NULL;
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  Type;
-    ACPI_INTEGER            Value;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_1A_0T_1R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    /* Examine the AML opcode */
-
-    switch (WalkState->Opcode)
-    {
-    case AML_LNOT_OP:               /* LNot (Operand) */
-
-        ReturnDesc = AcpiUtCreateIntegerObject ((UINT64) 0);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        /*
-         * Set result to ONES (TRUE) if Value == 0.  Note:
-         * ReturnDesc->Integer.Value is initially == 0 (FALSE) from above.
-         */
-        if (!Operand[0]->Integer.Value)
-        {
-            ReturnDesc->Integer.Value = ACPI_INTEGER_MAX;
-        }
-        break;
-
-
-    case AML_DECREMENT_OP:          /* Decrement (Operand)  */
-    case AML_INCREMENT_OP:          /* Increment (Operand)  */
-
-        /*
-         * Create a new integer.  Can't just get the base integer and
-         * increment it because it may be an Arg or Field.
-         */
-        ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        /*
-         * Since we are expecting a Reference operand, it can be either a
-         * NS Node or an internal object.
-         */
-        TempDesc = Operand[0];
-        if (ACPI_GET_DESCRIPTOR_TYPE (TempDesc) == ACPI_DESC_TYPE_OPERAND)
-        {
-            /* Internal reference object - prevent deletion */
-
-            AcpiUtAddReference (TempDesc);
-        }
-
-        /*
-         * Convert the Reference operand to an Integer (This removes a
-         * reference on the Operand[0] object)
-         *
-         * NOTE:  We use LNOT_OP here in order to force resolution of the
-         * reference operand to an actual integer.
-         */
-        Status = AcpiExResolveOperands (AML_LNOT_OP, &TempDesc, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "While resolving operands for [%s]",
-                AcpiPsGetOpcodeName (WalkState->Opcode)));
-
-            goto Cleanup;
-        }
-
-        /*
-         * TempDesc is now guaranteed to be an Integer object --
-         * Perform the actual increment or decrement
-         */
-        if (WalkState->Opcode == AML_INCREMENT_OP)
-        {
-            ReturnDesc->Integer.Value = TempDesc->Integer.Value +1;
-        }
-        else
-        {
-            ReturnDesc->Integer.Value = TempDesc->Integer.Value -1;
-        }
-
-        /* Finished with this Integer object */
-
-        AcpiUtRemoveReference (TempDesc);
-
-        /*
-         * Store the result back (indirectly) through the original
-         * Reference object
-         */
-        Status = AcpiExStore (ReturnDesc, Operand[0], WalkState);
-        break;
-
-
-    case AML_TYPE_OP:               /* ObjectType (SourceObject) */
-
-        /*
-         * Note: The operand is not resolved at this point because we want to
-         * get the associated object, not its value.  For example, we don't
-         * want to resolve a FieldUnit to its value, we want the actual
-         * FieldUnit object.
-         */
-
-        /* Get the type of the base object */
-
-        Status = AcpiExResolveMultiple (WalkState, Operand[0], &Type, NULL);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        /* Allocate a descriptor to hold the type. */
-
-        ReturnDesc = AcpiUtCreateIntegerObject ((UINT64) Type);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-        break;
-
-
-    case AML_SIZE_OF_OP:            /* SizeOf (SourceObject)  */
-
-        /*
-         * Note: The operand is not resolved at this point because we want to
-         * get the associated object, not its value.
-         */
-
-        /* Get the base object */
-
-        Status = AcpiExResolveMultiple (WalkState,
-                    Operand[0], &Type, &TempDesc);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        /*
-         * The type of the base object must be integer, buffer, string, or
-         * package.  All others are not supported.
-         *
-         * NOTE: Integer is not specifically supported by the ACPI spec,
-         * but is supported implicitly via implicit operand conversion.
-         * rather than bother with conversion, we just use the byte width
-         * global (4 or 8 bytes).
-         */
-        switch (Type)
-        {
-        case ACPI_TYPE_INTEGER:
-            Value = AcpiGbl_IntegerByteWidth;
-            break;
-
-        case ACPI_TYPE_STRING:
-            Value = TempDesc->String.Length;
-            break;
-
-        case ACPI_TYPE_BUFFER:
-
-            /* Buffer arguments may not be evaluated at this point */
-
-            Status = AcpiDsGetBufferArguments (TempDesc);
-            Value = TempDesc->Buffer.Length;
-            break;
-
-        case ACPI_TYPE_PACKAGE:
-
-            /* Package arguments may not be evaluated at this point */
-
-            Status = AcpiDsGetPackageArguments (TempDesc);
-            Value = TempDesc->Package.Count;
-            break;
-
-        default:
-            ACPI_ERROR ((AE_INFO,
-                "Operand must be Buffer/Integer/String/Package - found type %s",
-                AcpiUtGetTypeName (Type)));
-            Status = AE_AML_OPERAND_TYPE;
-            goto Cleanup;
-        }
-
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        /*
-         * Now that we have the size of the object, create a result
-         * object to hold the value
-         */
-        ReturnDesc = AcpiUtCreateIntegerObject (Value);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-        break;
-
-
-    case AML_REF_OF_OP:             /* RefOf (SourceObject) */
-
-        Status = AcpiExGetObjectReference (Operand[0], &ReturnDesc, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-        break;
-
-
-    case AML_DEREF_OF_OP:           /* DerefOf (ObjReference | String) */
-
-        /* Check for a method local or argument, or standalone String */
-
-        if (ACPI_GET_DESCRIPTOR_TYPE (Operand[0]) == ACPI_DESC_TYPE_NAMED)
-        {
-            TempDesc = AcpiNsGetAttachedObject (
-                           (ACPI_NAMESPACE_NODE *) Operand[0]);
-            if (TempDesc &&
-                 ((TempDesc->Common.Type == ACPI_TYPE_STRING) ||
-                  (TempDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE)))
-            {
-                Operand[0] = TempDesc;
-                AcpiUtAddReference (TempDesc);
-            }
-            else
-            {
-                Status = AE_AML_OPERAND_TYPE;
-                goto Cleanup;
-            }
-        }
-        else
-        {
-            switch ((Operand[0])->Common.Type)
-            {
-            case ACPI_TYPE_LOCAL_REFERENCE:
-                /*
-                 * This is a DerefOf (LocalX | ArgX)
-                 *
-                 * Must resolve/dereference the local/arg reference first
-                 */
-                switch (Operand[0]->Reference.Class)
-                {
-                case ACPI_REFCLASS_LOCAL:
-                case ACPI_REFCLASS_ARG:
-
-                    /* Set Operand[0] to the value of the local/arg */
-
-                    Status = AcpiDsMethodDataGetValue (
-                                Operand[0]->Reference.Class,
-                                Operand[0]->Reference.Value,
-                                WalkState, &TempDesc);
-                    if (ACPI_FAILURE (Status))
-                    {
-                        goto Cleanup;
-                    }
-
-                    /*
-                     * Delete our reference to the input object and
-                     * point to the object just retrieved
-                     */
-                    AcpiUtRemoveReference (Operand[0]);
-                    Operand[0] = TempDesc;
-                    break;
-
-                case ACPI_REFCLASS_REFOF:
-
-                    /* Get the object to which the reference refers */
-
-                    TempDesc = Operand[0]->Reference.Object;
-                    AcpiUtRemoveReference (Operand[0]);
-                    Operand[0] = TempDesc;
-                    break;
-
-                default:
-
-                    /* Must be an Index op - handled below */
-                    break;
-                }
-                break;
-
-            case ACPI_TYPE_STRING:
-                break;
-
-            default:
-                Status = AE_AML_OPERAND_TYPE;
-                goto Cleanup;
-            }
-        }
-
-        if (ACPI_GET_DESCRIPTOR_TYPE (Operand[0]) != ACPI_DESC_TYPE_NAMED)
-        {
-            if ((Operand[0])->Common.Type == ACPI_TYPE_STRING)
-            {
-                /*
-                 * This is a DerefOf (String). The string is a reference
-                 * to a named ACPI object.
-                 *
-                 * 1) Find the owning Node
-                 * 2) Dereference the node to an actual object. Could be a
-                 *    Field, so we need to resolve the node to a value.
-                 */
-                Status = AcpiNsGetNode (WalkState->ScopeInfo->Scope.Node,
-                            Operand[0]->String.Pointer,
-                            ACPI_NS_SEARCH_PARENT,
-                            ACPI_CAST_INDIRECT_PTR (
-                                ACPI_NAMESPACE_NODE, &ReturnDesc));
-                if (ACPI_FAILURE (Status))
-                {
-                    goto Cleanup;
-                }
-
-                Status = AcpiExResolveNodeToValue (
-                            ACPI_CAST_INDIRECT_PTR (
-                                ACPI_NAMESPACE_NODE, &ReturnDesc),
-                            WalkState);
-                goto Cleanup;
-            }
-        }
-
-        /* Operand[0] may have changed from the code above */
-
-        if (ACPI_GET_DESCRIPTOR_TYPE (Operand[0]) == ACPI_DESC_TYPE_NAMED)
-        {
-            /*
-             * This is a DerefOf (ObjectReference)
-             * Get the actual object from the Node (This is the dereference).
-             * This case may only happen when a LocalX or ArgX is
-             * dereferenced above.
-             */
-            ReturnDesc = AcpiNsGetAttachedObject (
-                            (ACPI_NAMESPACE_NODE *) Operand[0]);
-            AcpiUtAddReference (ReturnDesc);
-        }
-        else
-        {
-            /*
-             * This must be a reference object produced by either the
-             * Index() or RefOf() operator
-             */
-            switch (Operand[0]->Reference.Class)
-            {
-            case ACPI_REFCLASS_INDEX:
-
-                /*
-                 * The target type for the Index operator must be
-                 * either a Buffer or a Package
-                 */
-                switch (Operand[0]->Reference.TargetType)
-                {
-                case ACPI_TYPE_BUFFER_FIELD:
-
-                    TempDesc = Operand[0]->Reference.Object;
-
-                    /*
-                     * Create a new object that contains one element of the
-                     * buffer -- the element pointed to by the index.
-                     *
-                     * NOTE: index into a buffer is NOT a pointer to a
-                     * sub-buffer of the main buffer, it is only a pointer to a
-                     * single element (byte) of the buffer!
-                     *
-                     * Since we are returning the value of the buffer at the
-                     * indexed location, we don't need to add an additional
-                     * reference to the buffer itself.
-                     */
-                    ReturnDesc = AcpiUtCreateIntegerObject ((UINT64)
-                        TempDesc->Buffer.Pointer[Operand[0]->Reference.Value]);
-                    if (!ReturnDesc)
-                    {
-                        Status = AE_NO_MEMORY;
-                        goto Cleanup;
-                    }
-                    break;
-
-
-                case ACPI_TYPE_PACKAGE:
-
-                    /*
-                     * Return the referenced element of the package.  We must
-                     * add another reference to the referenced object, however.
-                     */
-                    ReturnDesc = *(Operand[0]->Reference.Where);
-                    if (ReturnDesc)
-                    {
-                        AcpiUtAddReference (ReturnDesc);
-                    }
-                    break;
-
-
-                default:
-
-                    ACPI_ERROR ((AE_INFO,
-                        "Unknown Index TargetType %X in reference object %p",
-                        Operand[0]->Reference.TargetType, Operand[0]));
-                    Status = AE_AML_OPERAND_TYPE;
-                    goto Cleanup;
-                }
-                break;
-
-
-            case ACPI_REFCLASS_REFOF:
-
-                ReturnDesc = Operand[0]->Reference.Object;
-
-                if (ACPI_GET_DESCRIPTOR_TYPE (ReturnDesc) ==
-                        ACPI_DESC_TYPE_NAMED)
-                {
-                    ReturnDesc = AcpiNsGetAttachedObject (
-                                    (ACPI_NAMESPACE_NODE *) ReturnDesc);
-                }
-
-                /* Add another reference to the object! */
-
-                AcpiUtAddReference (ReturnDesc);
-                break;
-
-
-            default:
-                ACPI_ERROR ((AE_INFO,
-                    "Unknown class in reference(%p) - %2.2X",
-                    Operand[0], Operand[0]->Reference.Class));
-
-                Status = AE_TYPE;
-                goto Cleanup;
-            }
-        }
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        goto Cleanup;
-    }
-
-
-Cleanup:
-
-    /* Delete return object on error */
-
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtRemoveReference (ReturnDesc);
-    }
-
-    /* Save return object on success */
-
-    else
-    {
-        WalkState->ResultObj = ReturnDesc;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg2.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg2.c
deleted file mode 100644 (file)
index 7c42652..0000000
+++ /dev/null
@@ -1,741 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exoparg2 - AML execution - opcodes with 2 arguments
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __EXOPARG2_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "acinterp.h"
-#include "acevents.h"
-#include "amlcode.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exoparg2")
-
-
-/*!
- * Naming convention for AML interpreter execution routines.
- *
- * The routines that begin execution of AML opcodes are named with a common
- * convention based upon the number of arguments, the number of target operands,
- * and whether or not a value is returned:
- *
- *      AcpiExOpcode_xA_yT_zR
- *
- * Where:
- *
- * xA - ARGUMENTS:    The number of arguments (input operands) that are
- *                    required for this opcode type (1 through 6 args).
- * yT - TARGETS:      The number of targets (output operands) that are required
- *                    for this opcode type (0, 1, or 2 targets).
- * zR - RETURN VALUE: Indicates whether this opcode type returns a value
- *                    as the function return (0 or 1).
- *
- * The AcpiExOpcode* functions are called via the Dispatcher component with
- * fully resolved operands.
-!*/
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_2A_0T_0R
- *
- * PARAMETERS:  WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute opcode with two arguments, no target, and no return
- *              value.
- *
- * ALLOCATION:  Deletes both operands
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_2A_0T_0R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_NAMESPACE_NODE     *Node;
-    UINT32                  Value;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_2A_0T_0R,
-            AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    /* Examine the opcode */
-
-    switch (WalkState->Opcode)
-    {
-    case AML_NOTIFY_OP:         /* Notify (NotifyObject, NotifyValue) */
-
-        /* The first operand is a namespace node */
-
-        Node = (ACPI_NAMESPACE_NODE *) Operand[0];
-
-        /* Second value is the notify value */
-
-        Value = (UINT32) Operand[1]->Integer.Value;
-
-        /* Are notifies allowed on this object? */
-
-        if (!AcpiEvIsNotifyObject (Node))
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Unexpected notify object type [%s]",
-                AcpiUtGetTypeName (Node->Type)));
-
-            Status = AE_AML_OPERAND_TYPE;
-            break;
-        }
-
-#ifdef ACPI_GPE_NOTIFY_CHECK
-        /*
-         * GPE method wake/notify check.  Here, we want to ensure that we
-         * don't receive any "DeviceWake" Notifies from a GPE _Lxx or _Exx
-         * GPE method during system runtime.  If we do, the GPE is marked
-         * as "wake-only" and disabled.
-         *
-         * 1) Is the Notify() value == DeviceWake?
-         * 2) Is this a GPE deferred method?  (An _Lxx or _Exx method)
-         * 3) Did the original GPE happen at system runtime?
-         *    (versus during wake)
-         *
-         * If all three cases are true, this is a wake-only GPE that should
-         * be disabled at runtime.
-         */
-        if (Value == 2)     /* DeviceWake */
-        {
-            Status = AcpiEvCheckForWakeOnlyGpe (WalkState->GpeEventInfo);
-            if (ACPI_FAILURE (Status))
-            {
-                /* AE_WAKE_ONLY_GPE only error, means ignore this notify */
-
-                return_ACPI_STATUS (AE_OK)
-            }
-        }
-#endif
-
-        /*
-         * Dispatch the notify to the appropriate handler
-         * NOTE: the request is queued for execution after this method
-         * completes.  The notify handlers are NOT invoked synchronously
-         * from this thread -- because handlers may in turn run other
-         * control methods.
-         */
-        Status = AcpiEvQueueNotifyRequest (Node, Value);
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_2A_2T_1R
- *
- * PARAMETERS:  WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute a dyadic operator (2 operands) with 2 output targets
- *              and one implicit return value.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_2A_2T_1R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *ReturnDesc1 = NULL;
-    ACPI_OPERAND_OBJECT     *ReturnDesc2 = NULL;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_2A_2T_1R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    /* Execute the opcode */
-
-    switch (WalkState->Opcode)
-    {
-    case AML_DIVIDE_OP:
-
-        /* Divide (Dividend, Divisor, RemainderResult QuotientResult) */
-
-        ReturnDesc1 = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
-        if (!ReturnDesc1)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        ReturnDesc2 = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
-        if (!ReturnDesc2)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        /* Quotient to ReturnDesc1, remainder to ReturnDesc2 */
-
-        Status = AcpiUtDivide (Operand[0]->Integer.Value,
-                               Operand[1]->Integer.Value,
-                               &ReturnDesc1->Integer.Value,
-                               &ReturnDesc2->Integer.Value);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        goto Cleanup;
-    }
-
-    /* Store the results to the target reference operands */
-
-    Status = AcpiExStore (ReturnDesc2, Operand[2], WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    Status = AcpiExStore (ReturnDesc1, Operand[3], WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-Cleanup:
-    /*
-     * Since the remainder is not returned indirectly, remove a reference to
-     * it. Only the quotient is returned indirectly.
-     */
-    AcpiUtRemoveReference (ReturnDesc2);
-
-    if (ACPI_FAILURE (Status))
-    {
-        /* Delete the return object */
-
-        AcpiUtRemoveReference (ReturnDesc1);
-    }
-
-    /* Save return object (the remainder) on success */
-
-    else
-    {
-        WalkState->ResultObj = ReturnDesc1;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_2A_1T_1R
- *
- * PARAMETERS:  WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute opcode with two arguments, one target, and a return
- *              value.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_2A_1T_1R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *ReturnDesc = NULL;
-    ACPI_INTEGER            Index;
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_SIZE               Length;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_2A_1T_1R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    /* Execute the opcode */
-
-    if (WalkState->OpInfo->Flags & AML_MATH)
-    {
-        /* All simple math opcodes (add, etc.) */
-
-        ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        ReturnDesc->Integer.Value = AcpiExDoMathOp (WalkState->Opcode,
-                                                Operand[0]->Integer.Value,
-                                                Operand[1]->Integer.Value);
-        goto StoreResultToTarget;
-    }
-
-    switch (WalkState->Opcode)
-    {
-    case AML_MOD_OP: /* Mod (Dividend, Divisor, RemainderResult (ACPI 2.0) */
-
-        ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        /* ReturnDesc will contain the remainder */
-
-        Status = AcpiUtDivide (Operand[0]->Integer.Value,
-                               Operand[1]->Integer.Value,
-                               NULL,
-                               &ReturnDesc->Integer.Value);
-        break;
-
-
-    case AML_CONCAT_OP: /* Concatenate (Data1, Data2, Result) */
-
-        Status = AcpiExDoConcatenate (Operand[0], Operand[1],
-                    &ReturnDesc, WalkState);
-        break;
-
-
-    case AML_TO_STRING_OP: /* ToString (Buffer, Length, Result) (ACPI 2.0) */
-
-        /*
-         * Input object is guaranteed to be a buffer at this point (it may have
-         * been converted.)  Copy the raw buffer data to a new object of
-         * type String.
-         */
-
-        /*
-         * Get the length of the new string. It is the smallest of:
-         * 1) Length of the input buffer
-         * 2) Max length as specified in the ToString operator
-         * 3) Length of input buffer up to a zero byte (null terminator)
-         *
-         * NOTE: A length of zero is ok, and will create a zero-length, null
-         *       terminated string.
-         */
-        Length = 0;
-        while ((Length < Operand[0]->Buffer.Length) &&
-               (Length < Operand[1]->Integer.Value) &&
-               (Operand[0]->Buffer.Pointer[Length]))
-        {
-            Length++;
-        }
-
-        /* Allocate a new string object */
-
-        ReturnDesc = AcpiUtCreateStringObject (Length);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        /*
-         * Copy the raw buffer data with no transform.
-         * (NULL terminated already)
-         */
-        ACPI_MEMCPY (ReturnDesc->String.Pointer,
-            Operand[0]->Buffer.Pointer, Length);
-        break;
-
-
-    case AML_CONCAT_RES_OP:
-
-        /* ConcatenateResTemplate (Buffer, Buffer, Result) (ACPI 2.0) */
-
-        Status = AcpiExConcatTemplate (Operand[0], Operand[1],
-                    &ReturnDesc, WalkState);
-        break;
-
-
-    case AML_INDEX_OP:              /* Index (Source Index Result) */
-
-        /* Create the internal return object */
-
-        ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_REFERENCE);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        /* Initialize the Index reference object */
-
-        Index = Operand[1]->Integer.Value;
-        ReturnDesc->Reference.Value = (UINT32) Index;
-        ReturnDesc->Reference.Class = ACPI_REFCLASS_INDEX;
-
-        /*
-         * At this point, the Source operand is a String, Buffer, or Package.
-         * Verify that the index is within range.
-         */
-        switch ((Operand[0])->Common.Type)
-        {
-        case ACPI_TYPE_STRING:
-
-            if (Index >= Operand[0]->String.Length)
-            {
-                Status = AE_AML_STRING_LIMIT;
-            }
-
-            ReturnDesc->Reference.TargetType = ACPI_TYPE_BUFFER_FIELD;
-            break;
-
-        case ACPI_TYPE_BUFFER:
-
-            if (Index >= Operand[0]->Buffer.Length)
-            {
-                Status = AE_AML_BUFFER_LIMIT;
-            }
-
-            ReturnDesc->Reference.TargetType = ACPI_TYPE_BUFFER_FIELD;
-            break;
-
-        case ACPI_TYPE_PACKAGE:
-
-            if (Index >= Operand[0]->Package.Count)
-            {
-                Status = AE_AML_PACKAGE_LIMIT;
-            }
-
-            ReturnDesc->Reference.TargetType = ACPI_TYPE_PACKAGE;
-            ReturnDesc->Reference.Where = &Operand[0]->Package.Elements [Index];
-            break;
-
-        default:
-
-            Status = AE_AML_INTERNAL;
-            goto Cleanup;
-        }
-
-        /* Failure means that the Index was beyond the end of the object */
-
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "Index (%X%8.8X) is beyond end of object",
-                ACPI_FORMAT_UINT64 (Index)));
-            goto Cleanup;
-        }
-
-        /*
-         * Save the target object and add a reference to it for the life
-         * of the index
-         */
-        ReturnDesc->Reference.Object = Operand[0];
-        AcpiUtAddReference (Operand[0]);
-
-        /* Store the reference to the Target */
-
-        Status = AcpiExStore (ReturnDesc, Operand[2], WalkState);
-
-        /* Return the reference */
-
-        WalkState->ResultObj = ReturnDesc;
-        goto Cleanup;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        break;
-    }
-
-
-StoreResultToTarget:
-
-    if (ACPI_SUCCESS (Status))
-    {
-        /*
-         * Store the result of the operation (which is now in ReturnDesc) into
-         * the Target descriptor.
-         */
-        Status = AcpiExStore (ReturnDesc, Operand[2], WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Cleanup;
-        }
-
-        if (!WalkState->ResultObj)
-        {
-            WalkState->ResultObj = ReturnDesc;
-        }
-    }
-
-
-Cleanup:
-
-    /* Delete return object on error */
-
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtRemoveReference (ReturnDesc);
-        WalkState->ResultObj = NULL;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_2A_0T_1R
- *
- * PARAMETERS:  WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute opcode with 2 arguments, no target, and a return value
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_2A_0T_1R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *ReturnDesc = NULL;
-    ACPI_STATUS             Status = AE_OK;
-    BOOLEAN                 LogicalResult = FALSE;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_2A_0T_1R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    /* Create the internal return object */
-
-    ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
-    if (!ReturnDesc)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /* Execute the Opcode */
-
-    if (WalkState->OpInfo->Flags & AML_LOGICAL_NUMERIC)
-    {
-        /* LogicalOp  (Operand0, Operand1) */
-
-        Status = AcpiExDoLogicalNumericOp (WalkState->Opcode,
-                        Operand[0]->Integer.Value, Operand[1]->Integer.Value,
-                        &LogicalResult);
-        goto StoreLogicalResult;
-    }
-    else if (WalkState->OpInfo->Flags & AML_LOGICAL)
-    {
-        /* LogicalOp  (Operand0, Operand1) */
-
-        Status = AcpiExDoLogicalOp (WalkState->Opcode, Operand[0],
-                    Operand[1], &LogicalResult);
-        goto StoreLogicalResult;
-    }
-
-    switch (WalkState->Opcode)
-    {
-    case AML_ACQUIRE_OP:            /* Acquire (MutexObject, Timeout) */
-
-        Status = AcpiExAcquireMutex (Operand[1], Operand[0], WalkState);
-        if (Status == AE_TIME)
-        {
-            LogicalResult = TRUE;       /* TRUE = Acquire timed out */
-            Status = AE_OK;
-        }
-        break;
-
-
-    case AML_WAIT_OP:               /* Wait (EventObject, Timeout) */
-
-        Status = AcpiExSystemWaitEvent (Operand[1], Operand[0]);
-        if (Status == AE_TIME)
-        {
-            LogicalResult = TRUE;       /* TRUE, Wait timed out */
-            Status = AE_OK;
-        }
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        goto Cleanup;
-    }
-
-
-StoreLogicalResult:
-    /*
-     * Set return value to according to LogicalResult. logical TRUE (all ones)
-     * Default is FALSE (zero)
-     */
-    if (LogicalResult)
-    {
-        ReturnDesc->Integer.Value = ACPI_INTEGER_MAX;
-    }
-
-Cleanup:
-
-    /* Delete return object on error */
-
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtRemoveReference (ReturnDesc);
-    }
-
-    /* Save return object on success */
-
-    else
-    {
-        WalkState->ResultObj = ReturnDesc;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg3.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg3.c
deleted file mode 100644 (file)
index 591d6ac..0000000
+++ /dev/null
@@ -1,377 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exoparg3 - AML execution - opcodes with 3 arguments
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
-
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXOPARG3_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "acparser.h"
-#include "amlcode.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exoparg3")
-
-
-/*!
- * Naming convention for AML interpreter execution routines.
- *
- * The routines that begin execution of AML opcodes are named with a common
- * convention based upon the number of arguments, the number of target operands,
- * and whether or not a value is returned:
- *
- *      AcpiExOpcode_xA_yT_zR
- *
- * Where:
- *
- * xA - ARGUMENTS:    The number of arguments (input operands) that are
- *                    required for this opcode type (1 through 6 args).
- * yT - TARGETS:      The number of targets (output operands) that are required
- *                    for this opcode type (0, 1, or 2 targets).
- * zR - RETURN VALUE: Indicates whether this opcode type returns a value
- *                    as the function return (0 or 1).
- *
- * The AcpiExOpcode* functions are called via the Dispatcher component with
- * fully resolved operands.
-!*/
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_3A_0T_0R
- *
- * PARAMETERS:  WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute Triadic operator (3 operands)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_3A_0T_0R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_SIGNAL_FATAL_INFO  *Fatal;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_3A_0T_0R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    switch (WalkState->Opcode)
-    {
-    case AML_FATAL_OP:          /* Fatal (FatalType  FatalCode  FatalArg) */
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-            "FatalOp: Type %X Code %X Arg %X <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n",
-            (UINT32) Operand[0]->Integer.Value,
-            (UINT32) Operand[1]->Integer.Value,
-            (UINT32) Operand[2]->Integer.Value));
-
-        Fatal = ACPI_ALLOCATE (sizeof (ACPI_SIGNAL_FATAL_INFO));
-        if (Fatal)
-        {
-            Fatal->Type     = (UINT32) Operand[0]->Integer.Value;
-            Fatal->Code     = (UINT32) Operand[1]->Integer.Value;
-            Fatal->Argument = (UINT32) Operand[2]->Integer.Value;
-        }
-
-        /* Always signal the OS! */
-
-        Status = AcpiOsSignal (ACPI_SIGNAL_FATAL, Fatal);
-
-        /* Might return while OS is shutting down, just continue */
-
-        ACPI_FREE (Fatal);
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        goto Cleanup;
-    }
-
-
-Cleanup:
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_3A_1T_1R
- *
- * PARAMETERS:  WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute Triadic operator (3 operands)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_3A_1T_1R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *ReturnDesc = NULL;
-    char                    *Buffer = NULL;
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_INTEGER            Index;
-    ACPI_SIZE               Length;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_3A_1T_1R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    switch (WalkState->Opcode)
-    {
-    case AML_MID_OP:    /* Mid (Source[0], Index[1], Length[2], Result[3]) */
-
-        /*
-         * Create the return object.  The Source operand is guaranteed to be
-         * either a String or a Buffer, so just use its type.
-         */
-        ReturnDesc = AcpiUtCreateInternalObject (
-                        (Operand[0])->Common.Type);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        /* Get the Integer values from the objects */
-
-        Index = Operand[1]->Integer.Value;
-        Length = (ACPI_SIZE) Operand[2]->Integer.Value;
-
-        /*
-         * If the index is beyond the length of the String/Buffer, or if the
-         * requested length is zero, return a zero-length String/Buffer
-         */
-        if (Index >= Operand[0]->String.Length)
-        {
-            Length = 0;
-        }
-
-        /* Truncate request if larger than the actual String/Buffer */
-
-        else if ((Index + Length) > Operand[0]->String.Length)
-        {
-            Length = (ACPI_SIZE) Operand[0]->String.Length -
-                        (ACPI_SIZE) Index;
-        }
-
-        /* Strings always have a sub-pointer, not so for buffers */
-
-        switch ((Operand[0])->Common.Type)
-        {
-        case ACPI_TYPE_STRING:
-
-            /* Always allocate a new buffer for the String */
-
-            Buffer = ACPI_ALLOCATE_ZEROED ((ACPI_SIZE) Length + 1);
-            if (!Buffer)
-            {
-                Status = AE_NO_MEMORY;
-                goto Cleanup;
-            }
-            break;
-
-        case ACPI_TYPE_BUFFER:
-
-            /* If the requested length is zero, don't allocate a buffer */
-
-            if (Length > 0)
-            {
-                /* Allocate a new buffer for the Buffer */
-
-                Buffer = ACPI_ALLOCATE_ZEROED (Length);
-                if (!Buffer)
-                {
-                    Status = AE_NO_MEMORY;
-                    goto Cleanup;
-                }
-            }
-            break;
-
-        default:                        /* Should not happen */
-
-            Status = AE_AML_OPERAND_TYPE;
-            goto Cleanup;
-        }
-
-        if (Buffer)
-        {
-            /* We have a buffer, copy the portion requested */
-
-            ACPI_MEMCPY (Buffer, Operand[0]->String.Pointer + Index,
-                         Length);
-        }
-
-        /* Set the length of the new String/Buffer */
-
-        ReturnDesc->String.Pointer = Buffer;
-        ReturnDesc->String.Length = (UINT32) Length;
-
-        /* Mark buffer initialized */
-
-        ReturnDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        goto Cleanup;
-    }
-
-    /* Store the result in the target */
-
-    Status = AcpiExStore (ReturnDesc, Operand[3], WalkState);
-
-Cleanup:
-
-    /* Delete return object on error */
-
-    if (ACPI_FAILURE (Status) || WalkState->ResultObj)
-    {
-        AcpiUtRemoveReference (ReturnDesc);
-        WalkState->ResultObj = NULL;
-    }
-
-    /* Set the return object and exit */
-
-    else
-    {
-        WalkState->ResultObj = ReturnDesc;
-    }
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg6.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exoparg6.c
deleted file mode 100644 (file)
index c260947..0000000
+++ /dev/null
@@ -1,438 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exoparg6 - AML execution - opcodes with 6 arguments
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
-
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXOPARG6_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "acparser.h"
-#include "amlcode.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exoparg6")
-
-
-/*!
- * Naming convention for AML interpreter execution routines.
- *
- * The routines that begin execution of AML opcodes are named with a common
- * convention based upon the number of arguments, the number of target operands,
- * and whether or not a value is returned:
- *
- *      AcpiExOpcode_xA_yT_zR
- *
- * Where:
- *
- * xA - ARGUMENTS:    The number of arguments (input operands) that are
- *                    required for this opcode type (1 through 6 args).
- * yT - TARGETS:      The number of targets (output operands) that are required
- *                    for this opcode type (0, 1, or 2 targets).
- * zR - RETURN VALUE: Indicates whether this opcode type returns a value
- *                    as the function return (0 or 1).
- *
- * The AcpiExOpcode* functions are called via the Dispatcher component with
- * fully resolved operands.
-!*/
-
-/* Local prototypes */
-
-static BOOLEAN
-AcpiExDoMatch (
-    UINT32                  MatchOp,
-    ACPI_OPERAND_OBJECT     *PackageObj,
-    ACPI_OPERAND_OBJECT     *MatchObj);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDoMatch
- *
- * PARAMETERS:  MatchOp         - The AML match operand
- *              PackageObj      - Object from the target package
- *              MatchObj        - Object to be matched
- *
- * RETURN:      TRUE if the match is successful, FALSE otherwise
- *
- * DESCRIPTION: Implements the low-level match for the ASL Match operator.
- *              Package elements will be implicitly converted to the type of
- *              the match object (Integer/Buffer/String).
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiExDoMatch (
-    UINT32                  MatchOp,
-    ACPI_OPERAND_OBJECT     *PackageObj,
-    ACPI_OPERAND_OBJECT     *MatchObj)
-{
-    BOOLEAN                 LogicalResult = TRUE;
-    ACPI_STATUS             Status;
-
-
-    /*
-     * Note: Since the PackageObj/MatchObj ordering is opposite to that of
-     * the standard logical operators, we have to reverse them when we call
-     * DoLogicalOp in order to make the implicit conversion rules work
-     * correctly. However, this means we have to flip the entire equation
-     * also. A bit ugly perhaps, but overall, better than fussing the
-     * parameters around at runtime, over and over again.
-     *
-     * Below, P[i] refers to the package element, M refers to the Match object.
-     */
-    switch (MatchOp)
-    {
-    case MATCH_MTR:
-
-        /* Always true */
-
-        break;
-
-    case MATCH_MEQ:
-
-        /*
-         * True if equal: (P[i] == M)
-         * Change to:     (M == P[i])
-         */
-        Status = AcpiExDoLogicalOp (AML_LEQUAL_OP, MatchObj, PackageObj,
-                    &LogicalResult);
-        if (ACPI_FAILURE (Status))
-        {
-            return (FALSE);
-        }
-        break;
-
-    case MATCH_MLE:
-
-        /*
-         * True if less than or equal: (P[i] <= M) (P[i] NotGreater than M)
-         * Change to:                  (M >= P[i]) (M NotLess than P[i])
-         */
-        Status = AcpiExDoLogicalOp (AML_LLESS_OP, MatchObj, PackageObj,
-                    &LogicalResult);
-        if (ACPI_FAILURE (Status))
-        {
-            return (FALSE);
-        }
-        LogicalResult = (BOOLEAN) !LogicalResult;
-        break;
-
-    case MATCH_MLT:
-
-        /*
-         * True if less than: (P[i] < M)
-         * Change to:         (M > P[i])
-         */
-        Status = AcpiExDoLogicalOp (AML_LGREATER_OP, MatchObj, PackageObj,
-                    &LogicalResult);
-        if (ACPI_FAILURE (Status))
-        {
-            return (FALSE);
-        }
-        break;
-
-    case MATCH_MGE:
-
-        /*
-         * True if greater than or equal: (P[i] >= M) (P[i] NotLess than M)
-         * Change to:                     (M <= P[i]) (M NotGreater than P[i])
-         */
-        Status = AcpiExDoLogicalOp (AML_LGREATER_OP, MatchObj, PackageObj,
-                    &LogicalResult);
-        if (ACPI_FAILURE (Status))
-        {
-            return (FALSE);
-        }
-        LogicalResult = (BOOLEAN)!LogicalResult;
-        break;
-
-    case MATCH_MGT:
-
-        /*
-         * True if greater than: (P[i] > M)
-         * Change to:            (M < P[i])
-         */
-        Status = AcpiExDoLogicalOp (AML_LLESS_OP, MatchObj, PackageObj,
-                    &LogicalResult);
-        if (ACPI_FAILURE (Status))
-        {
-            return (FALSE);
-        }
-        break;
-
-    default:
-
-        /* Undefined */
-
-        return (FALSE);
-    }
-
-    return LogicalResult;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExOpcode_6A_0T_1R
- *
- * PARAMETERS:  WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute opcode with 6 arguments, no target, and a return value
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_6A_0T_1R (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     **Operand = &WalkState->Operands[0];
-    ACPI_OPERAND_OBJECT     *ReturnDesc = NULL;
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_INTEGER            Index;
-    ACPI_OPERAND_OBJECT     *ThisElement;
-
-
-    ACPI_FUNCTION_TRACE_STR (ExOpcode_6A_0T_1R,
-        AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
-    switch (WalkState->Opcode)
-    {
-    case AML_MATCH_OP:
-        /*
-         * Match (SearchPkg[0], MatchOp1[1], MatchObj1[2],
-         *                      MatchOp2[3], MatchObj2[4], StartIndex[5])
-         */
-
-        /* Validate both Match Term Operators (MTR, MEQ, etc.) */
-
-        if ((Operand[1]->Integer.Value > MAX_MATCH_OPERATOR) ||
-            (Operand[3]->Integer.Value > MAX_MATCH_OPERATOR))
-        {
-            ACPI_ERROR ((AE_INFO, "Match operator out of range"));
-            Status = AE_AML_OPERAND_VALUE;
-            goto Cleanup;
-        }
-
-        /* Get the package StartIndex, validate against the package length */
-
-        Index = Operand[5]->Integer.Value;
-        if (Index >= Operand[0]->Package.Count)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Index (%X%8.8X) beyond package end (%X)",
-                ACPI_FORMAT_UINT64 (Index), Operand[0]->Package.Count));
-            Status = AE_AML_PACKAGE_LIMIT;
-            goto Cleanup;
-        }
-
-        /* Create an integer for the return value */
-        /* Default return value is ACPI_INTEGER_MAX if no match found */
-
-        ReturnDesc = AcpiUtCreateIntegerObject (ACPI_INTEGER_MAX);
-        if (!ReturnDesc)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-
-        }
-
-        /*
-         * Examine each element until a match is found. Both match conditions
-         * must be satisfied for a match to occur. Within the loop,
-         * "continue" signifies that the current element does not match
-         * and the next should be examined.
-         *
-         * Upon finding a match, the loop will terminate via "break" at
-         * the bottom.  If it terminates "normally", MatchValue will be
-         * ACPI_INTEGER_MAX (Ones) (its initial value) indicating that no
-         * match was found.
-         */
-        for ( ; Index < Operand[0]->Package.Count; Index++)
-        {
-            /* Get the current package element */
-
-            ThisElement = Operand[0]->Package.Elements[Index];
-
-            /* Treat any uninitialized (NULL) elements as non-matching */
-
-            if (!ThisElement)
-            {
-                continue;
-            }
-
-            /*
-             * Both match conditions must be satisfied. Execution of a continue
-             * (proceed to next iteration of enclosing for loop) signifies a
-             * non-match.
-             */
-            if (!AcpiExDoMatch ((UINT32) Operand[1]->Integer.Value,
-                                ThisElement, Operand[2]))
-            {
-                continue;
-            }
-
-            if (!AcpiExDoMatch ((UINT32) Operand[3]->Integer.Value,
-                                ThisElement, Operand[4]))
-            {
-                continue;
-            }
-
-            /* Match found: Index is the return value */
-
-            ReturnDesc->Integer.Value = Index;
-            break;
-        }
-        break;
-
-
-    case AML_LOAD_TABLE_OP:
-
-        Status = AcpiExLoadTableOp (WalkState, &ReturnDesc);
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            WalkState->Opcode));
-        Status = AE_AML_BAD_OPCODE;
-        goto Cleanup;
-    }
-
-
-Cleanup:
-
-    /* Delete return object on error */
-
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtRemoveReference (ReturnDesc);
-    }
-
-    /* Save return object on success */
-
-    else
-    {
-        WalkState->ResultObj = ReturnDesc;
-    }
-
-    return_ACPI_STATUS (Status);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exprep.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exprep.c
deleted file mode 100644 (file)
index c915361..0000000
+++ /dev/null
@@ -1,686 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exprep - ACPI AML (p-code) execution - field prep utilities
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXPREP_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exprep")
-
-/* Local prototypes */
-
-static UINT32
-AcpiExDecodeFieldAccess (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT8                   FieldFlags,
-    UINT32                  *ReturnByteAlignment);
-
-
-#ifdef ACPI_UNDER_DEVELOPMENT
-
-static UINT32
-AcpiExGenerateAccess (
-    UINT32                  FieldBitOffset,
-    UINT32                  FieldBitLength,
-    UINT32                  RegionLength);
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExGenerateAccess
- *
- * PARAMETERS:  FieldBitOffset      - Start of field within parent region/buffer
- *              FieldBitLength      - Length of field in bits
- *              RegionLength        - Length of parent in bytes
- *
- * RETURN:      Field granularity (8, 16, 32 or 64) and
- *              ByteAlignment (1, 2, 3, or 4)
- *
- * DESCRIPTION: Generate an optimal access width for fields defined with the
- *              AnyAcc keyword.
- *
- * NOTE: Need to have the RegionLength in order to check for boundary
- *       conditions (end-of-region).  However, the RegionLength is a deferred
- *       operation.  Therefore, to complete this implementation, the generation
- *       of this access width must be deferred until the region length has
- *       been evaluated.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiExGenerateAccess (
-    UINT32                  FieldBitOffset,
-    UINT32                  FieldBitLength,
-    UINT32                  RegionLength)
-{
-    UINT32                  FieldByteLength;
-    UINT32                  FieldByteOffset;
-    UINT32                  FieldByteEndOffset;
-    UINT32                  AccessByteWidth;
-    UINT32                  FieldStartOffset;
-    UINT32                  FieldEndOffset;
-    UINT32                  MinimumAccessWidth = 0xFFFFFFFF;
-    UINT32                  MinimumAccesses = 0xFFFFFFFF;
-    UINT32                  Accesses;
-
-
-    ACPI_FUNCTION_TRACE (ExGenerateAccess);
-
-
-    /* Round Field start offset and length to "minimal" byte boundaries */
-
-    FieldByteOffset    = ACPI_DIV_8 (ACPI_ROUND_DOWN (FieldBitOffset, 8));
-    FieldByteEndOffset = ACPI_DIV_8 (ACPI_ROUND_UP   (FieldBitLength +
-                                                      FieldBitOffset, 8));
-    FieldByteLength    = FieldByteEndOffset - FieldByteOffset;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-            "Bit length %d, Bit offset %d\n",
-            FieldBitLength, FieldBitOffset));
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-            "Byte Length %d, Byte Offset %d, End Offset %d\n",
-            FieldByteLength, FieldByteOffset, FieldByteEndOffset));
-
-    /*
-     * Iterative search for the maximum access width that is both aligned
-     * and does not go beyond the end of the region
-     *
-     * Start at ByteAcc and work upwards to QwordAcc max. (1,2,4,8 bytes)
-     */
-    for (AccessByteWidth = 1; AccessByteWidth <= 8; AccessByteWidth <<= 1)
-    {
-        /*
-         * 1) Round end offset up to next access boundary and make sure that
-         *    this does not go beyond the end of the parent region.
-         * 2) When the Access width is greater than the FieldByteLength, we
-         *    are done. (This does not optimize for the perfectly aligned
-         *    case yet).
-         */
-        if (ACPI_ROUND_UP (FieldByteEndOffset, AccessByteWidth) <= RegionLength)
-        {
-            FieldStartOffset =
-                ACPI_ROUND_DOWN (FieldByteOffset, AccessByteWidth) /
-                AccessByteWidth;
-
-            FieldEndOffset =
-                ACPI_ROUND_UP ((FieldByteLength + FieldByteOffset),
-                    AccessByteWidth) / AccessByteWidth;
-
-            Accesses = FieldEndOffset - FieldStartOffset;
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                    "AccessWidth %d end is within region\n", AccessByteWidth));
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                    "Field Start %d, Field End %d -- requires %d accesses\n",
-                    FieldStartOffset, FieldEndOffset, Accesses));
-
-            /* Single access is optimal */
-
-            if (Accesses <= 1)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                    "Entire field can be accessed with one operation of size %d\n",
-                    AccessByteWidth));
-                return_VALUE (AccessByteWidth);
-            }
-
-            /*
-             * Fits in the region, but requires more than one read/write.
-             * try the next wider access on next iteration
-             */
-            if (Accesses < MinimumAccesses)
-            {
-                MinimumAccesses    = Accesses;
-                MinimumAccessWidth = AccessByteWidth;
-            }
-        }
-        else
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                "AccessWidth %d end is NOT within region\n", AccessByteWidth));
-            if (AccessByteWidth == 1)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                        "Field goes beyond end-of-region!\n"));
-
-                /* Field does not fit in the region at all */
-
-                return_VALUE (0);
-            }
-
-            /*
-             * This width goes beyond the end-of-region, back off to
-             * previous access
-             */
-            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-                    "Backing off to previous optimal access width of %d\n",
-                    MinimumAccessWidth));
-            return_VALUE (MinimumAccessWidth);
-        }
-    }
-
-    /*
-     * Could not read/write field with one operation,
-     * just use max access width
-     */
-    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-            "Cannot access field in one operation, using width 8\n"));
-    return_VALUE (8);
-}
-#endif /* ACPI_UNDER_DEVELOPMENT */
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDecodeFieldAccess
- *
- * PARAMETERS:  ObjDesc             - Field object
- *              FieldFlags          - Encoded fieldflags (contains access bits)
- *              ReturnByteAlignment - Where the byte alignment is returned
- *
- * RETURN:      Field granularity (8, 16, 32 or 64) and
- *              ByteAlignment (1, 2, 3, or 4)
- *
- * DESCRIPTION: Decode the AccessType bits of a field definition.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiExDecodeFieldAccess (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT8                   FieldFlags,
-    UINT32                  *ReturnByteAlignment)
-{
-    UINT32                  Access;
-    UINT32                  ByteAlignment;
-    UINT32                  BitLength;
-
-
-    ACPI_FUNCTION_TRACE (ExDecodeFieldAccess);
-
-
-    Access = (FieldFlags & AML_FIELD_ACCESS_TYPE_MASK);
-
-    switch (Access)
-    {
-    case AML_FIELD_ACCESS_ANY:
-
-#ifdef ACPI_UNDER_DEVELOPMENT
-        ByteAlignment =
-            AcpiExGenerateAccess (ObjDesc->CommonField.StartFieldBitOffset,
-                ObjDesc->CommonField.BitLength,
-                0xFFFFFFFF /* Temp until we pass RegionLength as parameter */);
-        BitLength = ByteAlignment * 8;
-#endif
-
-        ByteAlignment = 1;
-        BitLength = 8;
-        break;
-
-    case AML_FIELD_ACCESS_BYTE:
-    case AML_FIELD_ACCESS_BUFFER:   /* ACPI 2.0 (SMBus Buffer) */
-        ByteAlignment = 1;
-        BitLength     = 8;
-        break;
-
-    case AML_FIELD_ACCESS_WORD:
-        ByteAlignment = 2;
-        BitLength     = 16;
-        break;
-
-    case AML_FIELD_ACCESS_DWORD:
-        ByteAlignment = 4;
-        BitLength     = 32;
-        break;
-
-    case AML_FIELD_ACCESS_QWORD:    /* ACPI 2.0 */
-        ByteAlignment = 8;
-        BitLength     = 64;
-        break;
-
-    default:
-        /* Invalid field access type */
-
-        ACPI_ERROR ((AE_INFO,
-            "Unknown field access type %X",
-            Access));
-        return_UINT32 (0);
-    }
-
-    if (ObjDesc->Common.Type == ACPI_TYPE_BUFFER_FIELD)
-    {
-        /*
-         * BufferField access can be on any byte boundary, so the
-         * ByteAlignment is always 1 byte -- regardless of any ByteAlignment
-         * implied by the field access type.
-         */
-        ByteAlignment = 1;
-    }
-
-    *ReturnByteAlignment = ByteAlignment;
-    return_UINT32 (BitLength);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExPrepCommonFieldObject
- *
- * PARAMETERS:  ObjDesc             - The field object
- *              FieldFlags          - Access, LockRule, and UpdateRule.
- *                                    The format of a FieldFlag is described
- *                                    in the ACPI specification
- *              FieldAttribute      - Special attributes (not used)
- *              FieldBitPosition    - Field start position
- *              FieldBitLength      - Field length in number of bits
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initialize the areas of the field object that are common
- *              to the various types of fields.  Note: This is very "sensitive"
- *              code because we are solving the general case for field
- *              alignment.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExPrepCommonFieldObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT8                   FieldFlags,
-    UINT8                   FieldAttribute,
-    UINT32                  FieldBitPosition,
-    UINT32                  FieldBitLength)
-{
-    UINT32                  AccessBitWidth;
-    UINT32                  ByteAlignment;
-    UINT32                  NearestByteAddress;
-
-
-    ACPI_FUNCTION_TRACE (ExPrepCommonFieldObject);
-
-
-    /*
-     * Note: the structure being initialized is the
-     * ACPI_COMMON_FIELD_INFO;  No structure fields outside of the common
-     * area are initialized by this procedure.
-     */
-    ObjDesc->CommonField.FieldFlags = FieldFlags;
-    ObjDesc->CommonField.Attribute  = FieldAttribute;
-    ObjDesc->CommonField.BitLength  = FieldBitLength;
-
-    /*
-     * Decode the access type so we can compute offsets.  The access type gives
-     * two pieces of information - the width of each field access and the
-     * necessary ByteAlignment (address granularity) of the access.
-     *
-     * For AnyAcc, the AccessBitWidth is the largest width that is both
-     * necessary and possible in an attempt to access the whole field in one
-     * I/O operation.  However, for AnyAcc, the ByteAlignment is always one
-     * byte.
-     *
-     * For all Buffer Fields, the ByteAlignment is always one byte.
-     *
-     * For all other access types (Byte, Word, Dword, Qword), the Bitwidth is
-     * the same (equivalent) as the ByteAlignment.
-     */
-    AccessBitWidth = AcpiExDecodeFieldAccess (ObjDesc, FieldFlags,
-                                &ByteAlignment);
-    if (!AccessBitWidth)
-    {
-        return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
-    }
-
-    /* Setup width (access granularity) fields */
-
-    ObjDesc->CommonField.AccessByteWidth = (UINT8)
-            ACPI_DIV_8 (AccessBitWidth);            /* 1,  2,  4,  8 */
-
-    ObjDesc->CommonField.AccessBitWidth = (UINT8) AccessBitWidth;
-
-    /*
-     * BaseByteOffset is the address of the start of the field within the
-     * region.  It is the byte address of the first *datum* (field-width data
-     * unit) of the field. (i.e., the first datum that contains at least the
-     * first *bit* of the field.)
-     *
-     * Note: ByteAlignment is always either equal to the AccessBitWidth or 8
-     * (Byte access), and it defines the addressing granularity of the parent
-     * region or buffer.
-     */
-    NearestByteAddress =
-            ACPI_ROUND_BITS_DOWN_TO_BYTES (FieldBitPosition);
-    ObjDesc->CommonField.BaseByteOffset = (UINT32)
-            ACPI_ROUND_DOWN (NearestByteAddress, ByteAlignment);
-
-    /*
-     * StartFieldBitOffset is the offset of the first bit of the field within
-     * a field datum.
-     */
-    ObjDesc->CommonField.StartFieldBitOffset = (UINT8)
-        (FieldBitPosition - ACPI_MUL_8 (ObjDesc->CommonField.BaseByteOffset));
-
-    /*
-     * Does the entire field fit within a single field access element? (datum)
-     * (i.e., without crossing a datum boundary)
-     */
-    if ((ObjDesc->CommonField.StartFieldBitOffset + FieldBitLength) <=
-            (UINT16) AccessBitWidth)
-    {
-        ObjDesc->Common.Flags |= AOPOBJ_SINGLE_DATUM;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExPrepFieldValue
- *
- * PARAMETERS:  Info    - Contains all field creation info
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Construct an ACPI_OPERAND_OBJECT of type DefField and
- *              connect it to the parent Node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExPrepFieldValue (
-    ACPI_CREATE_FIELD_INFO  *Info)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *SecondDesc = NULL;
-    UINT32                  Type;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (ExPrepFieldValue);
-
-
-    /* Parameter validation */
-
-    if (Info->FieldType != ACPI_TYPE_LOCAL_INDEX_FIELD)
-    {
-        if (!Info->RegionNode)
-        {
-            ACPI_ERROR ((AE_INFO, "Null RegionNode"));
-            return_ACPI_STATUS (AE_AML_NO_OPERAND);
-        }
-
-        Type = AcpiNsGetType (Info->RegionNode);
-        if (Type != ACPI_TYPE_REGION)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Needed Region, found type %X (%s)",
-                Type, AcpiUtGetTypeName (Type)));
-
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-    }
-
-    /* Allocate a new field object */
-
-    ObjDesc = AcpiUtCreateInternalObject (Info->FieldType);
-    if (!ObjDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Initialize areas of the object that are common to all fields */
-
-    ObjDesc->CommonField.Node = Info->FieldNode;
-    Status = AcpiExPrepCommonFieldObject (ObjDesc, Info->FieldFlags,
-                Info->Attribute, Info->FieldBitPosition, Info->FieldBitLength);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiUtDeleteObjectDesc (ObjDesc);
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Initialize areas of the object that are specific to the field type */
-
-    switch (Info->FieldType)
-    {
-    case ACPI_TYPE_LOCAL_REGION_FIELD:
-
-        ObjDesc->Field.RegionObj = AcpiNsGetAttachedObject (Info->RegionNode);
-
-        /* An additional reference for the container */
-
-        AcpiUtAddReference (ObjDesc->Field.RegionObj);
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-            "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
-            ObjDesc->Field.StartFieldBitOffset, ObjDesc->Field.BaseByteOffset,
-            ObjDesc->Field.AccessByteWidth, ObjDesc->Field.RegionObj));
-        break;
-
-
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-
-        ObjDesc->BankField.Value     = Info->BankValue;
-        ObjDesc->BankField.RegionObj = AcpiNsGetAttachedObject (
-                                            Info->RegionNode);
-        ObjDesc->BankField.BankObj   = AcpiNsGetAttachedObject (
-                                            Info->RegisterNode);
-
-        /* An additional reference for the attached objects */
-
-        AcpiUtAddReference (ObjDesc->BankField.RegionObj);
-        AcpiUtAddReference (ObjDesc->BankField.BankObj);
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-            "Bank Field: BitOff %X, Off %X, Gran %X, Region %p, BankReg %p\n",
-            ObjDesc->BankField.StartFieldBitOffset,
-            ObjDesc->BankField.BaseByteOffset,
-            ObjDesc->Field.AccessByteWidth,
-            ObjDesc->BankField.RegionObj,
-            ObjDesc->BankField.BankObj));
-
-        /*
-         * Remember location in AML stream of the field unit
-         * opcode and operands -- since the BankValue
-         * operands must be evaluated.
-         */
-        SecondDesc                  = ObjDesc->Common.NextObject;
-        SecondDesc->Extra.AmlStart  = ACPI_CAST_PTR (ACPI_PARSE_OBJECT, Info->DataRegisterNode)->Named.Data;
-        SecondDesc->Extra.AmlLength = ACPI_CAST_PTR (ACPI_PARSE_OBJECT, Info->DataRegisterNode)->Named.Length;
-
-        break;
-
-
-    case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-        /* Get the Index and Data registers */
-
-        ObjDesc->IndexField.IndexObj = AcpiNsGetAttachedObject (
-                                            Info->RegisterNode);
-        ObjDesc->IndexField.DataObj  = AcpiNsGetAttachedObject (
-                                            Info->DataRegisterNode);
-
-        if (!ObjDesc->IndexField.DataObj || !ObjDesc->IndexField.IndexObj)
-        {
-            ACPI_ERROR ((AE_INFO, "Null Index Object during field prep"));
-            AcpiUtDeleteObjectDesc (ObjDesc);
-            return_ACPI_STATUS (AE_AML_INTERNAL);
-        }
-
-        /* An additional reference for the attached objects */
-
-        AcpiUtAddReference (ObjDesc->IndexField.DataObj);
-        AcpiUtAddReference (ObjDesc->IndexField.IndexObj);
-
-        /*
-         * April 2006: Changed to match MS behavior
-         *
-         * The value written to the Index register is the byte offset of the
-         * target field in units of the granularity of the IndexField
-         *
-         * Previously, the value was calculated as an index in terms of the
-         * width of the Data register, as below:
-         *
-         *      ObjDesc->IndexField.Value = (UINT32)
-         *          (Info->FieldBitPosition / ACPI_MUL_8 (
-         *              ObjDesc->Field.AccessByteWidth));
-         *
-         * February 2006: Tried value as a byte offset:
-         *      ObjDesc->IndexField.Value = (UINT32)
-         *          ACPI_DIV_8 (Info->FieldBitPosition);
-         */
-        ObjDesc->IndexField.Value = (UINT32) ACPI_ROUND_DOWN (
-            ACPI_DIV_8 (Info->FieldBitPosition),
-            ObjDesc->IndexField.AccessByteWidth);
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
-            "IndexField: BitOff %X, Off %X, Value %X, Gran %X, Index %p, Data %p\n",
-            ObjDesc->IndexField.StartFieldBitOffset,
-            ObjDesc->IndexField.BaseByteOffset,
-            ObjDesc->IndexField.Value,
-            ObjDesc->Field.AccessByteWidth,
-            ObjDesc->IndexField.IndexObj,
-            ObjDesc->IndexField.DataObj));
-        break;
-
-    default:
-        /* No other types should get here */
-        break;
-    }
-
-    /*
-     * Store the constructed descriptor (ObjDesc) into the parent Node,
-     * preserving the current type of that NamedObj.
-     */
-    Status = AcpiNsAttachObject (Info->FieldNode, ObjDesc,
-                    AcpiNsGetType (Info->FieldNode));
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Set NamedObj %p [%4.4s], ObjDesc %p\n",
-            Info->FieldNode, AcpiUtGetNodeName (Info->FieldNode), ObjDesc));
-
-    /* Remove local reference to the object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exregion.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exregion.c
deleted file mode 100644 (file)
index 5a37be2..0000000
+++ /dev/null
@@ -1,630 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exregion - ACPI default OpRegion (address space) handlers
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __EXREGION_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exregion")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSystemMemorySpaceHandler
- *
- * PARAMETERS:  Function            - Read or Write operation
- *              Address             - Where in the space to read or write
- *              BitWidth            - Field width in bits (8, 16, or 32)
- *              Value               - Pointer to in or out value
- *              HandlerContext      - Pointer to Handler's context
- *              RegionContext       - Pointer to context specific to the
- *                                    accessed region
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Handler for the System Memory address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemMemorySpaceHandler (
-    UINT32                  Function,
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  BitWidth,
-    ACPI_INTEGER            *Value,
-    void                    *HandlerContext,
-    void                    *RegionContext)
-{
-    ACPI_STATUS             Status = AE_OK;
-    void                    *LogicalAddrPtr = NULL;
-    ACPI_MEM_SPACE_CONTEXT  *MemInfo = RegionContext;
-    UINT32                  Length;
-    ACPI_SIZE               MapLength;
-    ACPI_SIZE               PageBoundaryMapLength;
-#ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED
-    UINT32                  Remainder;
-#endif
-
-
-    ACPI_FUNCTION_TRACE (ExSystemMemorySpaceHandler);
-
-
-    /* Validate and translate the bit width */
-
-    switch (BitWidth)
-    {
-    case 8:
-        Length = 1;
-        break;
-
-    case 16:
-        Length = 2;
-        break;
-
-    case 32:
-        Length = 4;
-        break;
-
-    case 64:
-        Length = 8;
-        break;
-
-    default:
-        ACPI_ERROR ((AE_INFO, "Invalid SystemMemory width %d",
-            BitWidth));
-        return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
-    }
-
-#ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED
-    /*
-     * Hardware does not support non-aligned data transfers, we must verify
-     * the request.
-     */
-    (void) AcpiUtShortDivide ((ACPI_INTEGER) Address, Length, NULL, &Remainder);
-    if (Remainder != 0)
-    {
-        return_ACPI_STATUS (AE_AML_ALIGNMENT);
-    }
-#endif
-
-    /*
-     * Does the request fit into the cached memory mapping?
-     * Is 1) Address below the current mapping? OR
-     *    2) Address beyond the current mapping?
-     */
-    if ((Address < MemInfo->MappedPhysicalAddress) ||
-        (((ACPI_INTEGER) Address + Length) >
-            ((ACPI_INTEGER)
-            MemInfo->MappedPhysicalAddress + MemInfo->MappedLength)))
-    {
-        /*
-         * The request cannot be resolved by the current memory mapping;
-         * Delete the existing mapping and create a new one.
-         */
-        if (MemInfo->MappedLength)
-        {
-            /* Valid mapping, delete it */
-
-            AcpiOsUnmapMemory (MemInfo->MappedLogicalAddress,
-                MemInfo->MappedLength);
-        }
-
-        /*
-         * October 2009: Attempt to map from the requested address to the
-         * end of the region. However, we will never map more than one
-         * page, nor will we cross a page boundary.
-         */
-        MapLength = (ACPI_SIZE)
-            ((MemInfo->Address + MemInfo->Length) - Address);
-
-        /*
-         * If mapping the entire remaining portion of the region will cross
-         * a page boundary, just map up to the page boundary, do not cross.
-         * On some systems, crossing a page boundary while mapping regions
-         * can cause warnings if the pages have different attributes
-         * due to resource management.
-         *
-         * This has the added benefit of constraining a single mapping to
-         * one page, which is similar to the original code that used a 4k
-         * maximum window.
-         */
-        PageBoundaryMapLength =
-            ACPI_ROUND_UP (Address, ACPI_DEFAULT_PAGE_SIZE) - Address;
-        if (PageBoundaryMapLength == 0)
-        {
-            PageBoundaryMapLength = ACPI_DEFAULT_PAGE_SIZE;
-        }
-
-        if (MapLength > PageBoundaryMapLength)
-        {
-            MapLength = PageBoundaryMapLength;
-        }
-
-        /* Create a new mapping starting at the address given */
-
-        MemInfo->MappedLogicalAddress = AcpiOsMapMemory (
-            (ACPI_PHYSICAL_ADDRESS) Address, MapLength);
-        if (!MemInfo->MappedLogicalAddress)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Could not map memory at %8.8X%8.8X, size %X",
-                ACPI_FORMAT_NATIVE_UINT (Address), (UINT32) MapLength));
-            MemInfo->MappedLength = 0;
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /* Save the physical address and mapping size */
-
-        MemInfo->MappedPhysicalAddress = Address;
-        MemInfo->MappedLength = MapLength;
-    }
-
-    /*
-     * Generate a logical pointer corresponding to the address we want to
-     * access
-     */
-    LogicalAddrPtr = MemInfo->MappedLogicalAddress +
-        ((ACPI_INTEGER) Address - (ACPI_INTEGER) MemInfo->MappedPhysicalAddress);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-        "System-Memory (width %d) R/W %d Address=%8.8X%8.8X\n",
-        BitWidth, Function, ACPI_FORMAT_NATIVE_UINT (Address)));
-
-    /*
-     * Perform the memory read or write
-     *
-     * Note: For machines that do not support non-aligned transfers, the target
-     * address was checked for alignment above.  We do not attempt to break the
-     * transfer up into smaller (byte-size) chunks because the AML specifically
-     * asked for a transfer width that the hardware may require.
-     */
-    switch (Function)
-    {
-    case ACPI_READ:
-
-        *Value = 0;
-        switch (BitWidth)
-        {
-        case 8:
-            *Value = (ACPI_INTEGER) ACPI_GET8 (LogicalAddrPtr);
-            break;
-
-        case 16:
-            *Value = (ACPI_INTEGER) ACPI_GET16 (LogicalAddrPtr);
-            break;
-
-        case 32:
-            *Value = (ACPI_INTEGER) ACPI_GET32 (LogicalAddrPtr);
-            break;
-
-        case 64:
-            *Value = (ACPI_INTEGER) ACPI_GET64 (LogicalAddrPtr);
-            break;
-
-        default:
-            /* BitWidth was already validated */
-            break;
-        }
-        break;
-
-    case ACPI_WRITE:
-
-        switch (BitWidth)
-        {
-        case 8:
-            ACPI_SET8 (LogicalAddrPtr) = (UINT8) *Value;
-            break;
-
-        case 16:
-            ACPI_SET16 (LogicalAddrPtr) = (UINT16) *Value;
-            break;
-
-        case 32:
-            ACPI_SET32 ( LogicalAddrPtr) = (UINT32) *Value;
-            break;
-
-        case 64:
-            ACPI_SET64 (LogicalAddrPtr) = (UINT64) *Value;
-            break;
-
-        default:
-            /* BitWidth was already validated */
-            break;
-        }
-        break;
-
-    default:
-        Status = AE_BAD_PARAMETER;
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSystemIoSpaceHandler
- *
- * PARAMETERS:  Function            - Read or Write operation
- *              Address             - Where in the space to read or write
- *              BitWidth            - Field width in bits (8, 16, or 32)
- *              Value               - Pointer to in or out value
- *              HandlerContext      - Pointer to Handler's context
- *              RegionContext       - Pointer to context specific to the
- *                                    accessed region
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Handler for the System IO address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemIoSpaceHandler (
-    UINT32                  Function,
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  BitWidth,
-    ACPI_INTEGER            *Value,
-    void                    *HandlerContext,
-    void                    *RegionContext)
-{
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  Value32;
-
-
-    ACPI_FUNCTION_TRACE (ExSystemIoSpaceHandler);
-
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-        "System-IO (width %d) R/W %d Address=%8.8X%8.8X\n",
-        BitWidth, Function, ACPI_FORMAT_NATIVE_UINT (Address)));
-
-    /* Decode the function parameter */
-
-    switch (Function)
-    {
-    case ACPI_READ:
-
-        Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) Address,
-                    &Value32, BitWidth);
-        *Value = Value32;
-        break;
-
-    case ACPI_WRITE:
-
-        Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) Address,
-                    (UINT32) *Value, BitWidth);
-        break;
-
-    default:
-        Status = AE_BAD_PARAMETER;
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExPciConfigSpaceHandler
- *
- * PARAMETERS:  Function            - Read or Write operation
- *              Address             - Where in the space to read or write
- *              BitWidth            - Field width in bits (8, 16, or 32)
- *              Value               - Pointer to in or out value
- *              HandlerContext      - Pointer to Handler's context
- *              RegionContext       - Pointer to context specific to the
- *                                    accessed region
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Handler for the PCI Config address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExPciConfigSpaceHandler (
-    UINT32                  Function,
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  BitWidth,
-    ACPI_INTEGER            *Value,
-    void                    *HandlerContext,
-    void                    *RegionContext)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_PCI_ID             *PciId;
-    UINT16                  PciRegister;
-
-
-    ACPI_FUNCTION_TRACE (ExPciConfigSpaceHandler);
-
-
-    /*
-     *  The arguments to AcpiOs(Read|Write)PciConfiguration are:
-     *
-     *  PciSegment  is the PCI bus segment range 0-31
-     *  PciBus      is the PCI bus number range 0-255
-     *  PciDevice   is the PCI device number range 0-31
-     *  PciFunction is the PCI device function number
-     *  PciRegister is the Config space register range 0-255 bytes
-     *
-     *  Value - input value for write, output address for read
-     *
-     */
-    PciId       = (ACPI_PCI_ID *) RegionContext;
-    PciRegister = (UINT16) (UINT32) Address;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-        "Pci-Config %d (%d) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n",
-        Function, BitWidth, PciId->Segment, PciId->Bus, PciId->Device,
-        PciId->Function, PciRegister));
-
-    switch (Function)
-    {
-    case ACPI_READ:
-
-        *Value = 0;
-        Status = AcpiOsReadPciConfiguration (PciId, PciRegister,
-                    Value, BitWidth);
-        break;
-
-    case ACPI_WRITE:
-
-        Status = AcpiOsWritePciConfiguration (PciId, PciRegister,
-                    *Value, BitWidth);
-        break;
-
-    default:
-
-        Status = AE_BAD_PARAMETER;
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExCmosSpaceHandler
- *
- * PARAMETERS:  Function            - Read or Write operation
- *              Address             - Where in the space to read or write
- *              BitWidth            - Field width in bits (8, 16, or 32)
- *              Value               - Pointer to in or out value
- *              HandlerContext      - Pointer to Handler's context
- *              RegionContext       - Pointer to context specific to the
- *                                    accessed region
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Handler for the CMOS address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCmosSpaceHandler (
-    UINT32                  Function,
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  BitWidth,
-    ACPI_INTEGER            *Value,
-    void                    *HandlerContext,
-    void                    *RegionContext)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (ExCmosSpaceHandler);
-
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExPciBarSpaceHandler
- *
- * PARAMETERS:  Function            - Read or Write operation
- *              Address             - Where in the space to read or write
- *              BitWidth            - Field width in bits (8, 16, or 32)
- *              Value               - Pointer to in or out value
- *              HandlerContext      - Pointer to Handler's context
- *              RegionContext       - Pointer to context specific to the
- *                                    accessed region
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Handler for the PCI BarTarget address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExPciBarSpaceHandler (
-    UINT32                  Function,
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  BitWidth,
-    ACPI_INTEGER            *Value,
-    void                    *HandlerContext,
-    void                    *RegionContext)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (ExPciBarSpaceHandler);
-
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDataTableSpaceHandler
- *
- * PARAMETERS:  Function            - Read or Write operation
- *              Address             - Where in the space to read or write
- *              BitWidth            - Field width in bits (8, 16, or 32)
- *              Value               - Pointer to in or out value
- *              HandlerContext      - Pointer to Handler's context
- *              RegionContext       - Pointer to context specific to the
- *                                    accessed region
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Handler for the Data Table address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExDataTableSpaceHandler (
-    UINT32                  Function,
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  BitWidth,
-    ACPI_INTEGER            *Value,
-    void                    *HandlerContext,
-    void                    *RegionContext)
-{
-    ACPI_FUNCTION_TRACE (ExDataTableSpaceHandler);
-
-
-    /* Perform the memory read or write */
-
-    switch (Function)
-    {
-    case ACPI_READ:
-
-        ACPI_MEMCPY (ACPI_CAST_PTR (char, Value), ACPI_PHYSADDR_TO_PTR (Address),
-            ACPI_DIV_8 (BitWidth));
-        break;
-
-    case ACPI_WRITE:
-    default:
-
-        return_ACPI_STATUS (AE_SUPPORT);
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exresnte.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exresnte.c
deleted file mode 100644 (file)
index 5481bc8..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exresnte - AML Interpreter object resolution
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXRESNTE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exresnte")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExResolveNodeToValue
- *
- * PARAMETERS:  ObjectPtr       - Pointer to a location that contains
- *                                a pointer to a NS node, and will receive a
- *                                pointer to the resolved object.
- *              WalkState       - Current state.  Valid only if executing AML
- *                                code.  NULL if simply resolving an object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Resolve a Namespace node to a valued object
- *
- * Note: for some of the data types, the pointer attached to the Node
- * can be either a pointer to an actual internal object or a pointer into the
- * AML stream itself.  These types are currently:
- *
- *      ACPI_TYPE_INTEGER
- *      ACPI_TYPE_STRING
- *      ACPI_TYPE_BUFFER
- *      ACPI_TYPE_MUTEX
- *      ACPI_TYPE_PACKAGE
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveNodeToValue (
-    ACPI_NAMESPACE_NODE     **ObjectPtr,
-    ACPI_WALK_STATE         *WalkState)
-
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *SourceDesc;
-    ACPI_OPERAND_OBJECT     *ObjDesc = NULL;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OBJECT_TYPE        EntryType;
-
-
-    ACPI_FUNCTION_TRACE (ExResolveNodeToValue);
-
-
-    /*
-     * The stack pointer points to a ACPI_NAMESPACE_NODE (Node).  Get the
-     * object that is attached to the Node.
-     */
-    Node       = *ObjectPtr;
-    SourceDesc = AcpiNsGetAttachedObject (Node);
-    EntryType  = AcpiNsGetType ((ACPI_HANDLE) Node);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Entry=%p SourceDesc=%p [%s]\n",
-         Node, SourceDesc, AcpiUtGetTypeName (EntryType)));
-
-    if ((EntryType == ACPI_TYPE_LOCAL_ALIAS) ||
-        (EntryType == ACPI_TYPE_LOCAL_METHOD_ALIAS))
-    {
-        /* There is always exactly one level of indirection */
-
-        Node       = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Node->Object);
-        SourceDesc = AcpiNsGetAttachedObject (Node);
-        EntryType  = AcpiNsGetType ((ACPI_HANDLE) Node);
-        *ObjectPtr = Node;
-    }
-
-    /*
-     * Several object types require no further processing:
-     * 1) Device/Thermal objects don't have a "real" subobject, return the Node
-     * 2) Method locals and arguments have a pseudo-Node
-     * 3) 10/2007: Added method type to assist with Package construction.
-     */
-    if ((EntryType == ACPI_TYPE_DEVICE)  ||
-        (EntryType == ACPI_TYPE_THERMAL) ||
-        (EntryType == ACPI_TYPE_METHOD)  ||
-        (Node->Flags & (ANOBJ_METHOD_ARG | ANOBJ_METHOD_LOCAL)))
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    if (!SourceDesc)
-    {
-        ACPI_ERROR ((AE_INFO, "No object attached to node %p",
-            Node));
-        return_ACPI_STATUS (AE_AML_NO_OPERAND);
-    }
-
-    /*
-     * Action is based on the type of the Node, which indicates the type
-     * of the attached object or pointer
-     */
-    switch (EntryType)
-    {
-    case ACPI_TYPE_PACKAGE:
-
-        if (SourceDesc->Common.Type != ACPI_TYPE_PACKAGE)
-        {
-            ACPI_ERROR ((AE_INFO, "Object not a Package, type %s",
-                AcpiUtGetObjectTypeName (SourceDesc)));
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        Status = AcpiDsGetPackageArguments (SourceDesc);
-        if (ACPI_SUCCESS (Status))
-        {
-            /* Return an additional reference to the object */
-
-            ObjDesc = SourceDesc;
-            AcpiUtAddReference (ObjDesc);
-        }
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        if (SourceDesc->Common.Type != ACPI_TYPE_BUFFER)
-        {
-            ACPI_ERROR ((AE_INFO, "Object not a Buffer, type %s",
-                AcpiUtGetObjectTypeName (SourceDesc)));
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        Status = AcpiDsGetBufferArguments (SourceDesc);
-        if (ACPI_SUCCESS (Status))
-        {
-            /* Return an additional reference to the object */
-
-            ObjDesc = SourceDesc;
-            AcpiUtAddReference (ObjDesc);
-        }
-        break;
-
-
-    case ACPI_TYPE_STRING:
-
-        if (SourceDesc->Common.Type != ACPI_TYPE_STRING)
-        {
-            ACPI_ERROR ((AE_INFO, "Object not a String, type %s",
-                AcpiUtGetObjectTypeName (SourceDesc)));
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        /* Return an additional reference to the object */
-
-        ObjDesc = SourceDesc;
-        AcpiUtAddReference (ObjDesc);
-        break;
-
-
-    case ACPI_TYPE_INTEGER:
-
-        if (SourceDesc->Common.Type != ACPI_TYPE_INTEGER)
-        {
-            ACPI_ERROR ((AE_INFO, "Object not a Integer, type %s",
-                AcpiUtGetObjectTypeName (SourceDesc)));
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        /* Return an additional reference to the object */
-
-        ObjDesc = SourceDesc;
-        AcpiUtAddReference (ObjDesc);
-        break;
-
-
-    case ACPI_TYPE_BUFFER_FIELD:
-    case ACPI_TYPE_LOCAL_REGION_FIELD:
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-    case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "FieldRead Node=%p SourceDesc=%p Type=%X\n",
-            Node, SourceDesc, EntryType));
-
-        Status = AcpiExReadDataFromField (WalkState, SourceDesc, &ObjDesc);
-        break;
-
-    /* For these objects, just return the object attached to the Node */
-
-    case ACPI_TYPE_MUTEX:
-    case ACPI_TYPE_POWER:
-    case ACPI_TYPE_PROCESSOR:
-    case ACPI_TYPE_EVENT:
-    case ACPI_TYPE_REGION:
-
-        /* Return an additional reference to the object */
-
-        ObjDesc = SourceDesc;
-        AcpiUtAddReference (ObjDesc);
-        break;
-
-    /* TYPE_ANY is untyped, and thus there is no object associated with it */
-
-    case ACPI_TYPE_ANY:
-
-        ACPI_ERROR ((AE_INFO,
-            "Untyped entry %p, no attached object!", Node));
-
-        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);  /* Cannot be AE_TYPE */
-
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        switch (SourceDesc->Reference.Class)
-        {
-        case ACPI_REFCLASS_TABLE:   /* This is a DdbHandle */
-        case ACPI_REFCLASS_REFOF:
-        case ACPI_REFCLASS_INDEX:
-
-            /* Return an additional reference to the object */
-
-            ObjDesc = SourceDesc;
-            AcpiUtAddReference (ObjDesc);
-            break;
-
-        default:
-            /* No named references are allowed here */
-
-            ACPI_ERROR ((AE_INFO,
-                "Unsupported Reference type %X",
-                SourceDesc->Reference.Class));
-
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-        break;
-
-
-    default:
-
-        /* Default case is for unknown types */
-
-        ACPI_ERROR ((AE_INFO,
-            "Node %p - Unknown object type %X",
-            Node, EntryType));
-
-        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-
-    } /* switch (EntryType) */
-
-
-    /* Return the object descriptor */
-
-    *ObjectPtr = (void *) ObjDesc;
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exresolv.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exresolv.c
deleted file mode 100644 (file)
index a3c8ab9..0000000
+++ /dev/null
@@ -1,652 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exresolv - AML Interpreter object resolution
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXRESOLV_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exresolv")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiExResolveObjectToValue (
-    ACPI_OPERAND_OBJECT     **StackPtr,
-    ACPI_WALK_STATE         *WalkState);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExResolveToValue
- *
- * PARAMETERS:  **StackPtr          - Points to entry on ObjStack, which can
- *                                    be either an (ACPI_OPERAND_OBJECT *)
- *                                    or an ACPI_HANDLE.
- *              WalkState           - Current method state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert Reference objects to values
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveToValue (
-    ACPI_OPERAND_OBJECT     **StackPtr,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExResolveToValue, StackPtr);
-
-
-    if (!StackPtr || !*StackPtr)
-    {
-        ACPI_ERROR ((AE_INFO, "Internal - null pointer"));
-        return_ACPI_STATUS (AE_AML_NO_OPERAND);
-    }
-
-    /*
-     * The entity pointed to by the StackPtr can be either
-     * 1) A valid ACPI_OPERAND_OBJECT, or
-     * 2) A ACPI_NAMESPACE_NODE (NamedObj)
-     */
-    if (ACPI_GET_DESCRIPTOR_TYPE (*StackPtr) == ACPI_DESC_TYPE_OPERAND)
-    {
-        Status = AcpiExResolveObjectToValue (StackPtr, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        if (!*StackPtr)
-        {
-            ACPI_ERROR ((AE_INFO, "Internal - null pointer"));
-            return_ACPI_STATUS (AE_AML_NO_OPERAND);
-        }
-    }
-
-    /*
-     * Object on the stack may have changed if AcpiExResolveObjectToValue()
-     * was called (i.e., we can't use an _else_ here.)
-     */
-    if (ACPI_GET_DESCRIPTOR_TYPE (*StackPtr) == ACPI_DESC_TYPE_NAMED)
-    {
-        Status = AcpiExResolveNodeToValue (
-                        ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, StackPtr),
-                        WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Resolved object %p\n", *StackPtr));
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExResolveObjectToValue
- *
- * PARAMETERS:  StackPtr        - Pointer to an internal object
- *              WalkState       - Current method state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Retrieve the value from an internal object. The Reference type
- *              uses the associated AML opcode to determine the value.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExResolveObjectToValue (
-    ACPI_OPERAND_OBJECT     **StackPtr,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *StackDesc;
-    ACPI_OPERAND_OBJECT     *ObjDesc = NULL;
-    UINT8                   RefType;
-
-
-    ACPI_FUNCTION_TRACE (ExResolveObjectToValue);
-
-
-    StackDesc = *StackPtr;
-
-    /* This is an ACPI_OPERAND_OBJECT  */
-
-    switch (StackDesc->Common.Type)
-    {
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        RefType = StackDesc->Reference.Class;
-
-        switch (RefType)
-        {
-        case ACPI_REFCLASS_LOCAL:
-        case ACPI_REFCLASS_ARG:
-
-            /*
-             * Get the local from the method's state info
-             * Note: this increments the local's object reference count
-             */
-            Status = AcpiDsMethodDataGetValue (RefType,
-                            StackDesc->Reference.Value, WalkState, &ObjDesc);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Arg/Local %X] ValueObj is %p\n",
-                StackDesc->Reference.Value, ObjDesc));
-
-            /*
-             * Now we can delete the original Reference Object and
-             * replace it with the resolved value
-             */
-            AcpiUtRemoveReference (StackDesc);
-            *StackPtr = ObjDesc;
-            break;
-
-
-        case ACPI_REFCLASS_INDEX:
-
-            switch (StackDesc->Reference.TargetType)
-            {
-            case ACPI_TYPE_BUFFER_FIELD:
-
-                /* Just return - do not dereference */
-                break;
-
-
-            case ACPI_TYPE_PACKAGE:
-
-                /* If method call or CopyObject - do not dereference */
-
-                if ((WalkState->Opcode == AML_INT_METHODCALL_OP) ||
-                    (WalkState->Opcode == AML_COPY_OP))
-                {
-                    break;
-                }
-
-                /* Otherwise, dereference the PackageIndex to a package element */
-
-                ObjDesc = *StackDesc->Reference.Where;
-                if (ObjDesc)
-                {
-                    /*
-                     * Valid object descriptor, copy pointer to return value
-                     * (i.e., dereference the package index)
-                     * Delete the ref object, increment the returned object
-                     */
-                    AcpiUtRemoveReference (StackDesc);
-                    AcpiUtAddReference (ObjDesc);
-                    *StackPtr = ObjDesc;
-                }
-                else
-                {
-                    /*
-                     * A NULL object descriptor means an uninitialized element of
-                     * the package, can't dereference it
-                     */
-                    ACPI_ERROR ((AE_INFO,
-                        "Attempt to dereference an Index to NULL package element Idx=%p",
-                        StackDesc));
-                    Status = AE_AML_UNINITIALIZED_ELEMENT;
-                }
-                break;
-
-
-            default:
-
-                /* Invalid reference object */
-
-                ACPI_ERROR ((AE_INFO,
-                    "Unknown TargetType %X in Index/Reference object %p",
-                    StackDesc->Reference.TargetType, StackDesc));
-                Status = AE_AML_INTERNAL;
-                break;
-            }
-            break;
-
-
-        case ACPI_REFCLASS_REFOF:
-        case ACPI_REFCLASS_DEBUG:
-        case ACPI_REFCLASS_TABLE:
-
-            /* Just leave the object as-is, do not dereference */
-
-            break;
-
-        case ACPI_REFCLASS_NAME:   /* Reference to a named object */
-
-            /* Dereference the name */
-
-            if ((StackDesc->Reference.Node->Type == ACPI_TYPE_DEVICE) ||
-                (StackDesc->Reference.Node->Type == ACPI_TYPE_THERMAL))
-            {
-                /* These node types do not have 'real' subobjects */
-
-                *StackPtr = (void *) StackDesc->Reference.Node;
-            }
-            else
-            {
-                /* Get the object pointed to by the namespace node */
-
-                *StackPtr = (StackDesc->Reference.Node)->Object;
-                AcpiUtAddReference (*StackPtr);
-            }
-
-            AcpiUtRemoveReference (StackDesc);
-            break;
-
-        default:
-
-            ACPI_ERROR ((AE_INFO,
-                "Unknown Reference type %X in %p", RefType, StackDesc));
-            Status = AE_AML_INTERNAL;
-            break;
-        }
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        Status = AcpiDsGetBufferArguments (StackDesc);
-        break;
-
-
-    case ACPI_TYPE_PACKAGE:
-
-        Status = AcpiDsGetPackageArguments (StackDesc);
-        break;
-
-
-    case ACPI_TYPE_BUFFER_FIELD:
-    case ACPI_TYPE_LOCAL_REGION_FIELD:
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-    case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "FieldRead SourceDesc=%p Type=%X\n",
-            StackDesc, StackDesc->Common.Type));
-
-        Status = AcpiExReadDataFromField (WalkState, StackDesc, &ObjDesc);
-
-        /* Remove a reference to the original operand, then override */
-
-        AcpiUtRemoveReference (*StackPtr);
-        *StackPtr = (void *) ObjDesc;
-        break;
-
-    default:
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExResolveMultiple
- *
- * PARAMETERS:  WalkState           - Current state (contains AML opcode)
- *              Operand             - Starting point for resolution
- *              ReturnType          - Where the object type is returned
- *              ReturnDesc          - Where the resolved object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Return the base object and type.  Traverse a reference list if
- *              necessary to get to the base object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveMultiple (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_OPERAND_OBJECT     *Operand,
-    ACPI_OBJECT_TYPE        *ReturnType,
-    ACPI_OPERAND_OBJECT     **ReturnDesc)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc = (void *) Operand;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OBJECT_TYPE        Type;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiExResolveMultiple);
-
-
-    /* Operand can be either a namespace node or an operand descriptor */
-
-    switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
-    {
-    case ACPI_DESC_TYPE_OPERAND:
-        Type = ObjDesc->Common.Type;
-        break;
-
-    case ACPI_DESC_TYPE_NAMED:
-        Type = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
-        ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc);
-
-        /* If we had an Alias node, use the attached object for type info */
-
-        if (Type == ACPI_TYPE_LOCAL_ALIAS)
-        {
-            Type = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
-            ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc);
-        }
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-    }
-
-    /* If type is anything other than a reference, we are done */
-
-    if (Type != ACPI_TYPE_LOCAL_REFERENCE)
-    {
-        goto Exit;
-    }
-
-    /*
-     * For reference objects created via the RefOf, Index, or Load/LoadTable
-     * operators, we need to get to the base object (as per the ACPI
-     * specification of the ObjectType and SizeOf operators). This means
-     * traversing the list of possibly many nested references.
-     */
-    while (ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE)
-    {
-        switch (ObjDesc->Reference.Class)
-        {
-        case ACPI_REFCLASS_REFOF:
-        case ACPI_REFCLASS_NAME:
-
-            /* Dereference the reference pointer */
-
-            if (ObjDesc->Reference.Class == ACPI_REFCLASS_REFOF)
-            {
-                Node = ObjDesc->Reference.Object;
-            }
-            else /* AML_INT_NAMEPATH_OP */
-            {
-                Node = ObjDesc->Reference.Node;
-            }
-
-            /* All "References" point to a NS node */
-
-            if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
-            {
-                ACPI_ERROR ((AE_INFO,
-                    "Not a NS node %p [%s]",
-                    Node, AcpiUtGetDescriptorName (Node)));
-                return_ACPI_STATUS (AE_AML_INTERNAL);
-            }
-
-            /* Get the attached object */
-
-            ObjDesc = AcpiNsGetAttachedObject (Node);
-            if (!ObjDesc)
-            {
-                /* No object, use the NS node type */
-
-                Type = AcpiNsGetType (Node);
-                goto Exit;
-            }
-
-            /* Check for circular references */
-
-            if (ObjDesc == Operand)
-            {
-                return_ACPI_STATUS (AE_AML_CIRCULAR_REFERENCE);
-            }
-            break;
-
-
-        case ACPI_REFCLASS_INDEX:
-
-            /* Get the type of this reference (index into another object) */
-
-            Type = ObjDesc->Reference.TargetType;
-            if (Type != ACPI_TYPE_PACKAGE)
-            {
-                goto Exit;
-            }
-
-            /*
-             * The main object is a package, we want to get the type
-             * of the individual package element that is referenced by
-             * the index.
-             *
-             * This could of course in turn be another reference object.
-             */
-            ObjDesc = *(ObjDesc->Reference.Where);
-            if (!ObjDesc)
-            {
-                /* NULL package elements are allowed */
-
-                Type = 0; /* Uninitialized */
-                goto Exit;
-            }
-            break;
-
-
-        case ACPI_REFCLASS_TABLE:
-
-            Type = ACPI_TYPE_DDB_HANDLE;
-            goto Exit;
-
-
-        case ACPI_REFCLASS_LOCAL:
-        case ACPI_REFCLASS_ARG:
-
-            if (ReturnDesc)
-            {
-                Status = AcpiDsMethodDataGetValue (ObjDesc->Reference.Class,
-                            ObjDesc->Reference.Value, WalkState, &ObjDesc);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-                AcpiUtRemoveReference (ObjDesc);
-            }
-            else
-            {
-                Status = AcpiDsMethodDataGetNode (ObjDesc->Reference.Class,
-                            ObjDesc->Reference.Value, WalkState, &Node);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-
-                ObjDesc = AcpiNsGetAttachedObject (Node);
-                if (!ObjDesc)
-                {
-                    Type = ACPI_TYPE_ANY;
-                    goto Exit;
-                }
-            }
-            break;
-
-
-        case ACPI_REFCLASS_DEBUG:
-
-            /* The Debug Object is of type "DebugObject" */
-
-            Type = ACPI_TYPE_DEBUG_OBJECT;
-            goto Exit;
-
-
-        default:
-
-            ACPI_ERROR ((AE_INFO,
-                "Unknown Reference Class %2.2X", ObjDesc->Reference.Class));
-            return_ACPI_STATUS (AE_AML_INTERNAL);
-        }
-    }
-
-    /*
-     * Now we are guaranteed to have an object that has not been created
-     * via the RefOf or Index operators.
-     */
-    Type = ObjDesc->Common.Type;
-
-
-Exit:
-    /* Convert internal types to external types */
-
-    switch (Type)
-    {
-    case ACPI_TYPE_LOCAL_REGION_FIELD:
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-    case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-        Type = ACPI_TYPE_FIELD_UNIT;
-        break;
-
-    case ACPI_TYPE_LOCAL_SCOPE:
-
-        /* Per ACPI Specification, Scope is untyped */
-
-        Type = ACPI_TYPE_ANY;
-        break;
-
-    default:
-        /* No change to Type required */
-        break;
-    }
-
-    *ReturnType = Type;
-    if (ReturnDesc)
-    {
-        *ReturnDesc = ObjDesc;
-    }
-    return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exresop.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exresop.c
deleted file mode 100644 (file)
index ecc63f6..0000000
+++ /dev/null
@@ -1,810 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exresop - AML Interpreter operand/object resolution
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXRESOP_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acparser.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exresop")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiExCheckObjectType (
-    ACPI_OBJECT_TYPE        TypeNeeded,
-    ACPI_OBJECT_TYPE        ThisType,
-    void                    *Object);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExCheckObjectType
- *
- * PARAMETERS:  TypeNeeded          Object type needed
- *              ThisType            Actual object type
- *              Object              Object pointer
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Check required type against actual type
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExCheckObjectType (
-    ACPI_OBJECT_TYPE        TypeNeeded,
-    ACPI_OBJECT_TYPE        ThisType,
-    void                    *Object)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (TypeNeeded == ACPI_TYPE_ANY)
-    {
-        /* All types OK, so we don't perform any typechecks */
-
-        return (AE_OK);
-    }
-
-    if (TypeNeeded == ACPI_TYPE_LOCAL_REFERENCE)
-    {
-        /*
-         * Allow the AML "Constant" opcodes (Zero, One, etc.) to be reference
-         * objects and thus allow them to be targets.  (As per the ACPI
-         * specification, a store to a constant is a noop.)
-         */
-        if ((ThisType == ACPI_TYPE_INTEGER) &&
-            (((ACPI_OPERAND_OBJECT *) Object)->Common.Flags & AOPOBJ_AML_CONSTANT))
-        {
-            return (AE_OK);
-        }
-    }
-
-    if (TypeNeeded != ThisType)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Needed type [%s], found [%s] %p",
-            AcpiUtGetTypeName (TypeNeeded),
-            AcpiUtGetTypeName (ThisType), Object));
-
-        return (AE_AML_OPERAND_TYPE);
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExResolveOperands
- *
- * PARAMETERS:  Opcode              - Opcode being interpreted
- *              StackPtr            - Pointer to the operand stack to be
- *                                    resolved
- *              WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert multiple input operands to the types required by the
- *              target operator.
- *
- *      Each 5-bit group in ArgTypes represents one required
- *      operand and indicates the required Type. The corresponding operand
- *      will be converted to the required type if possible, otherwise we
- *      abort with an exception.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveOperands (
-    UINT16                  Opcode,
-    ACPI_OPERAND_OBJECT     **StackPtr,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status = AE_OK;
-    UINT8                   ObjectType;
-    UINT32                  ArgTypes;
-    const ACPI_OPCODE_INFO  *OpInfo;
-    UINT32                  ThisArgType;
-    ACPI_OBJECT_TYPE        TypeNeeded;
-    UINT16                  TargetOp = 0;
-
-
-    ACPI_FUNCTION_TRACE_U32 (ExResolveOperands, Opcode);
-
-
-    OpInfo = AcpiPsGetOpcodeInfo (Opcode);
-    if (OpInfo->Class == AML_CLASS_UNKNOWN)
-    {
-        return_ACPI_STATUS (AE_AML_BAD_OPCODE);
-    }
-
-    ArgTypes = OpInfo->RuntimeArgs;
-    if (ArgTypes == ARGI_INVALID_OPCODE)
-    {
-        ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
-            Opcode));
-
-        return_ACPI_STATUS (AE_AML_INTERNAL);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "Opcode %X [%s] RequiredOperandTypes=%8.8X\n",
-        Opcode, OpInfo->Name, ArgTypes));
-
-    /*
-     * Normal exit is with (ArgTypes == 0) at end of argument list.
-     * Function will return an exception from within the loop upon
-     * finding an entry which is not (or cannot be converted
-     * to) the required type; if stack underflows; or upon
-     * finding a NULL stack entry (which should not happen).
-     */
-    while (GET_CURRENT_ARG_TYPE (ArgTypes))
-    {
-        if (!StackPtr || !*StackPtr)
-        {
-            ACPI_ERROR ((AE_INFO, "Null stack entry at %p",
-                StackPtr));
-
-            return_ACPI_STATUS (AE_AML_INTERNAL);
-        }
-
-        /* Extract useful items */
-
-        ObjDesc = *StackPtr;
-
-        /* Decode the descriptor type */
-
-        switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
-        {
-        case ACPI_DESC_TYPE_NAMED:
-
-            /* Namespace Node */
-
-            ObjectType = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
-
-            /*
-             * Resolve an alias object. The construction of these objects
-             * guarantees that there is only one level of alias indirection;
-             * thus, the attached object is always the aliased namespace node
-             */
-            if (ObjectType == ACPI_TYPE_LOCAL_ALIAS)
-            {
-                ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc);
-                *StackPtr = ObjDesc;
-                ObjectType = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
-            }
-            break;
-
-
-        case ACPI_DESC_TYPE_OPERAND:
-
-            /* ACPI internal object */
-
-            ObjectType = ObjDesc->Common.Type;
-
-            /* Check for bad ACPI_OBJECT_TYPE */
-
-            if (!AcpiUtValidObjectType (ObjectType))
-            {
-                ACPI_ERROR ((AE_INFO,
-                    "Bad operand object type [%X]", ObjectType));
-
-                return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-            }
-
-            if (ObjectType == (UINT8) ACPI_TYPE_LOCAL_REFERENCE)
-            {
-                /* Validate the Reference */
-
-                switch (ObjDesc->Reference.Class)
-                {
-                case ACPI_REFCLASS_DEBUG:
-
-                    TargetOp = AML_DEBUG_OP;
-
-                    /*lint -fallthrough */
-
-                case ACPI_REFCLASS_ARG:
-                case ACPI_REFCLASS_LOCAL:
-                case ACPI_REFCLASS_INDEX:
-                case ACPI_REFCLASS_REFOF:
-                case ACPI_REFCLASS_TABLE:    /* DdbHandle from LOAD_OP or LOAD_TABLE_OP */
-                case ACPI_REFCLASS_NAME:     /* Reference to a named object */
-
-                    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                        "Operand is a Reference, Class [%s] %2.2X\n",
-                        AcpiUtGetReferenceName (ObjDesc),
-                        ObjDesc->Reference.Class));
-                    break;
-
-                default:
-
-                    ACPI_ERROR ((AE_INFO,
-                        "Unknown Reference Class %2.2X in %p",
-                        ObjDesc->Reference.Class, ObjDesc));
-
-                    return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-                }
-            }
-            break;
-
-
-        default:
-
-            /* Invalid descriptor */
-
-            ACPI_ERROR ((AE_INFO, "Invalid descriptor %p [%s]",
-                ObjDesc, AcpiUtGetDescriptorName (ObjDesc)));
-
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        /* Get one argument type, point to the next */
-
-        ThisArgType = GET_CURRENT_ARG_TYPE (ArgTypes);
-        INCREMENT_ARG_LIST (ArgTypes);
-
-        /*
-         * Handle cases where the object does not need to be
-         * resolved to a value
-         */
-        switch (ThisArgType)
-        {
-        case ARGI_REF_OR_STRING:        /* Can be a String or Reference */
-
-            if ((ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND) &&
-                (ObjDesc->Common.Type == ACPI_TYPE_STRING))
-            {
-                /*
-                 * String found - the string references a named object and
-                 * must be resolved to a node
-                 */
-                goto NextOperand;
-            }
-
-            /*
-             * Else not a string - fall through to the normal Reference
-             * case below
-             */
-            /*lint -fallthrough */
-
-        case ARGI_REFERENCE:            /* References: */
-        case ARGI_INTEGER_REF:
-        case ARGI_OBJECT_REF:
-        case ARGI_DEVICE_REF:
-        case ARGI_TARGETREF:     /* Allows implicit conversion rules before store */
-        case ARGI_FIXED_TARGET:  /* No implicit conversion before store to target */
-        case ARGI_SIMPLE_TARGET: /* Name, Local, or Arg - no implicit conversion  */
-
-            /*
-             * Need an operand of type ACPI_TYPE_LOCAL_REFERENCE
-             * A Namespace Node is OK as-is
-             */
-            if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED)
-            {
-                goto NextOperand;
-            }
-
-            Status = AcpiExCheckObjectType (ACPI_TYPE_LOCAL_REFERENCE,
-                            ObjectType, ObjDesc);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-            goto NextOperand;
-
-
-        case ARGI_DATAREFOBJ:  /* Store operator only */
-
-            /*
-             * We don't want to resolve IndexOp reference objects during
-             * a store because this would be an implicit DeRefOf operation.
-             * Instead, we just want to store the reference object.
-             * -- All others must be resolved below.
-             */
-            if ((Opcode == AML_STORE_OP) &&
-                ((*StackPtr)->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&
-                ((*StackPtr)->Reference.Class == ACPI_REFCLASS_INDEX))
-            {
-                goto NextOperand;
-            }
-            break;
-
-        default:
-            /* All cases covered above */
-            break;
-        }
-
-        /*
-         * Resolve this object to a value
-         */
-        Status = AcpiExResolveToValue (StackPtr, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Get the resolved object */
-
-        ObjDesc = *StackPtr;
-
-        /*
-         * Check the resulting object (value) type
-         */
-        switch (ThisArgType)
-        {
-        /*
-         * For the simple cases, only one type of resolved object
-         * is allowed
-         */
-        case ARGI_MUTEX:
-
-            /* Need an operand of type ACPI_TYPE_MUTEX */
-
-            TypeNeeded = ACPI_TYPE_MUTEX;
-            break;
-
-        case ARGI_EVENT:
-
-            /* Need an operand of type ACPI_TYPE_EVENT */
-
-            TypeNeeded = ACPI_TYPE_EVENT;
-            break;
-
-        case ARGI_PACKAGE:   /* Package */
-
-            /* Need an operand of type ACPI_TYPE_PACKAGE */
-
-            TypeNeeded = ACPI_TYPE_PACKAGE;
-            break;
-
-        case ARGI_ANYTYPE:
-
-            /* Any operand type will do */
-
-            TypeNeeded = ACPI_TYPE_ANY;
-            break;
-
-        case ARGI_DDBHANDLE:
-
-            /* Need an operand of type ACPI_TYPE_DDB_HANDLE */
-
-            TypeNeeded = ACPI_TYPE_LOCAL_REFERENCE;
-            break;
-
-
-        /*
-         * The more complex cases allow multiple resolved object types
-         */
-        case ARGI_INTEGER:
-
-            /*
-             * Need an operand of type ACPI_TYPE_INTEGER,
-             * But we can implicitly convert from a STRING or BUFFER
-             * Aka - "Implicit Source Operand Conversion"
-             */
-            Status = AcpiExConvertToInteger (ObjDesc, StackPtr, 16);
-            if (ACPI_FAILURE (Status))
-            {
-                if (Status == AE_TYPE)
-                {
-                    ACPI_ERROR ((AE_INFO,
-                        "Needed [Integer/String/Buffer], found [%s] %p",
-                        AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
-                    return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-                }
-
-                return_ACPI_STATUS (Status);
-            }
-
-            if (ObjDesc != *StackPtr)
-            {
-                AcpiUtRemoveReference (ObjDesc);
-            }
-            goto NextOperand;
-
-
-        case ARGI_BUFFER:
-
-            /*
-             * Need an operand of type ACPI_TYPE_BUFFER,
-             * But we can implicitly convert from a STRING or INTEGER
-             * Aka - "Implicit Source Operand Conversion"
-             */
-            Status = AcpiExConvertToBuffer (ObjDesc, StackPtr);
-            if (ACPI_FAILURE (Status))
-            {
-                if (Status == AE_TYPE)
-                {
-                    ACPI_ERROR ((AE_INFO,
-                        "Needed [Integer/String/Buffer], found [%s] %p",
-                        AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
-                    return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-                }
-
-                return_ACPI_STATUS (Status);
-            }
-
-            if (ObjDesc != *StackPtr)
-            {
-                AcpiUtRemoveReference (ObjDesc);
-            }
-            goto NextOperand;
-
-
-        case ARGI_STRING:
-
-            /*
-             * Need an operand of type ACPI_TYPE_STRING,
-             * But we can implicitly convert from a BUFFER or INTEGER
-             * Aka - "Implicit Source Operand Conversion"
-             */
-            Status = AcpiExConvertToString (ObjDesc, StackPtr,
-                        ACPI_IMPLICIT_CONVERT_HEX);
-            if (ACPI_FAILURE (Status))
-            {
-                if (Status == AE_TYPE)
-                {
-                    ACPI_ERROR ((AE_INFO,
-                        "Needed [Integer/String/Buffer], found [%s] %p",
-                        AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
-                    return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-                }
-
-                return_ACPI_STATUS (Status);
-            }
-
-            if (ObjDesc != *StackPtr)
-            {
-                AcpiUtRemoveReference (ObjDesc);
-            }
-            goto NextOperand;
-
-
-        case ARGI_COMPUTEDATA:
-
-            /* Need an operand of type INTEGER, STRING or BUFFER */
-
-            switch (ObjDesc->Common.Type)
-            {
-            case ACPI_TYPE_INTEGER:
-            case ACPI_TYPE_STRING:
-            case ACPI_TYPE_BUFFER:
-
-                /* Valid operand */
-               break;
-
-            default:
-                ACPI_ERROR ((AE_INFO,
-                    "Needed [Integer/String/Buffer], found [%s] %p",
-                    AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
-                return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-            }
-            goto NextOperand;
-
-
-        case ARGI_BUFFER_OR_STRING:
-
-            /* Need an operand of type STRING or BUFFER */
-
-            switch (ObjDesc->Common.Type)
-            {
-            case ACPI_TYPE_STRING:
-            case ACPI_TYPE_BUFFER:
-
-                /* Valid operand */
-               break;
-
-            case ACPI_TYPE_INTEGER:
-
-                /* Highest priority conversion is to type Buffer */
-
-                Status = AcpiExConvertToBuffer (ObjDesc, StackPtr);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-
-                if (ObjDesc != *StackPtr)
-                {
-                    AcpiUtRemoveReference (ObjDesc);
-                }
-                break;
-
-            default:
-                ACPI_ERROR ((AE_INFO,
-                    "Needed [Integer/String/Buffer], found [%s] %p",
-                    AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
-                return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-            }
-            goto NextOperand;
-
-
-        case ARGI_DATAOBJECT:
-            /*
-             * ARGI_DATAOBJECT is only used by the SizeOf operator.
-             * Need a buffer, string, package, or RefOf reference.
-             *
-             * The only reference allowed here is a direct reference to
-             * a namespace node.
-             */
-            switch (ObjDesc->Common.Type)
-            {
-            case ACPI_TYPE_PACKAGE:
-            case ACPI_TYPE_STRING:
-            case ACPI_TYPE_BUFFER:
-            case ACPI_TYPE_LOCAL_REFERENCE:
-
-                /* Valid operand */
-                break;
-
-            default:
-                ACPI_ERROR ((AE_INFO,
-                    "Needed [Buffer/String/Package/Reference], found [%s] %p",
-                    AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
-                return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-            }
-            goto NextOperand;
-
-
-        case ARGI_COMPLEXOBJ:
-
-            /* Need a buffer or package or (ACPI 2.0) String */
-
-            switch (ObjDesc->Common.Type)
-            {
-            case ACPI_TYPE_PACKAGE:
-            case ACPI_TYPE_STRING:
-            case ACPI_TYPE_BUFFER:
-
-                /* Valid operand */
-                break;
-
-            default:
-                ACPI_ERROR ((AE_INFO,
-                    "Needed [Buffer/String/Package], found [%s] %p",
-                    AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
-                return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-            }
-            goto NextOperand;
-
-
-        case ARGI_REGION_OR_BUFFER: /* Used by Load() only */
-
-            /* Need an operand of type REGION or a BUFFER (which could be a resolved region field) */
-
-            switch (ObjDesc->Common.Type)
-            {
-            case ACPI_TYPE_BUFFER:
-            case ACPI_TYPE_REGION:
-
-                /* Valid operand */
-                break;
-
-            default:
-                ACPI_ERROR ((AE_INFO,
-                    "Needed [Region/Buffer], found [%s] %p",
-                    AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
-                return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-            }
-            goto NextOperand;
-
-
-        case ARGI_DATAREFOBJ:
-
-            /* Used by the Store() operator only */
-
-            switch (ObjDesc->Common.Type)
-            {
-            case ACPI_TYPE_INTEGER:
-            case ACPI_TYPE_PACKAGE:
-            case ACPI_TYPE_STRING:
-            case ACPI_TYPE_BUFFER:
-            case ACPI_TYPE_BUFFER_FIELD:
-            case ACPI_TYPE_LOCAL_REFERENCE:
-            case ACPI_TYPE_LOCAL_REGION_FIELD:
-            case ACPI_TYPE_LOCAL_BANK_FIELD:
-            case ACPI_TYPE_LOCAL_INDEX_FIELD:
-            case ACPI_TYPE_DDB_HANDLE:
-
-                /* Valid operand */
-                break;
-
-            default:
-
-                if (AcpiGbl_EnableInterpreterSlack)
-                {
-                    /*
-                     * Enable original behavior of Store(), allowing any and all
-                     * objects as the source operand.  The ACPI spec does not
-                     * allow this, however.
-                     */
-                    break;
-                }
-
-                if (TargetOp == AML_DEBUG_OP)
-                {
-                    /* Allow store of any object to the Debug object */
-
-                    break;
-                }
-
-                ACPI_ERROR ((AE_INFO,
-                    "Needed Integer/Buffer/String/Package/Ref/Ddb], found [%s] %p",
-                    AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
-                return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-            }
-            goto NextOperand;
-
-
-        default:
-
-            /* Unknown type */
-
-            ACPI_ERROR ((AE_INFO,
-                "Internal - Unknown ARGI (required operand) type %X",
-                ThisArgType));
-
-            return_ACPI_STATUS (AE_BAD_PARAMETER);
-        }
-
-        /*
-         * Make sure that the original object was resolved to the
-         * required object type (Simple cases only).
-         */
-        Status = AcpiExCheckObjectType (TypeNeeded,
-                        (*StackPtr)->Common.Type, *StackPtr);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-NextOperand:
-        /*
-         * If more operands needed, decrement StackPtr to point
-         * to next operand on stack
-         */
-        if (GET_CURRENT_ARG_TYPE (ArgTypes))
-        {
-            StackPtr--;
-        }
-    }
-
-    ACPI_DUMP_OPERANDS (WalkState->Operands,
-        AcpiPsGetOpcodeName (Opcode), WalkState->NumOperands);
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exstore.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exstore.c
deleted file mode 100644 (file)
index 8ec8a23..0000000
+++ /dev/null
@@ -1,822 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exstore - AML Interpreter object store support
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXSTORE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exstore")
-
-/* Local prototypes */
-
-static void
-AcpiExDoDebugObject (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    UINT32                  Level,
-    UINT32                  Index);
-
-static ACPI_STATUS
-AcpiExStoreObjectToIndex (
-    ACPI_OPERAND_OBJECT     *ValDesc,
-    ACPI_OPERAND_OBJECT     *DestDesc,
-    ACPI_WALK_STATE         *WalkState);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDoDebugObject
- *
- * PARAMETERS:  SourceDesc          - Value to be stored
- *              Level               - Indentation level (used for packages)
- *              Index               - Current package element, zero if not pkg
- *
- * RETURN:      None
- *
- * DESCRIPTION: Handles stores to the Debug Object.
- *
- ******************************************************************************/
-
-static void
-AcpiExDoDebugObject (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    UINT32                  Level,
-    UINT32                  Index)
-{
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExDoDebugObject, SourceDesc);
-
-
-    /* Print line header as long as we are not in the middle of an object display */
-
-    if (!((Level > 0) && Index == 0))
-    {
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[ACPI Debug] %*s",
-            Level, " "));
-    }
-
-    /* Display index for package output only */
-
-    if (Index > 0)
-    {
-       ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT,
-           "(%.2u) ", Index -1));
-    }
-
-    if (!SourceDesc)
-    {
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[Null Object]\n"));
-        return_VOID;
-    }
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc) == ACPI_DESC_TYPE_OPERAND)
-    {
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "%s ",
-            AcpiUtGetObjectTypeName (SourceDesc)));
-
-        if (!AcpiUtValidInternalObject (SourceDesc))
-        {
-           ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT,
-               "%p, Invalid Internal Object!\n", SourceDesc));
-           return_VOID;
-        }
-    }
-    else if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc) == ACPI_DESC_TYPE_NAMED)
-    {
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "%s: %p\n",
-            AcpiUtGetTypeName (((ACPI_NAMESPACE_NODE *) SourceDesc)->Type),
-            SourceDesc));
-        return_VOID;
-    }
-    else
-    {
-        return_VOID;
-    }
-
-    /* SourceDesc is of type ACPI_DESC_TYPE_OPERAND */
-
-    switch (SourceDesc->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-
-        /* Output correct integer width */
-
-        if (AcpiGbl_IntegerByteWidth == 4)
-        {
-            ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "0x%8.8X\n",
-                (UINT32) SourceDesc->Integer.Value));
-        }
-        else
-        {
-            ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "0x%8.8X%8.8X\n",
-                ACPI_FORMAT_UINT64 (SourceDesc->Integer.Value)));
-        }
-        break;
-
-    case ACPI_TYPE_BUFFER:
-
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[0x%.2X]\n",
-            (UINT32) SourceDesc->Buffer.Length));
-        ACPI_DUMP_BUFFER (SourceDesc->Buffer.Pointer,
-            (SourceDesc->Buffer.Length < 256) ? SourceDesc->Buffer.Length : 256);
-        break;
-
-    case ACPI_TYPE_STRING:
-
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[0x%.2X] \"%s\"\n",
-            SourceDesc->String.Length, SourceDesc->String.Pointer));
-        break;
-
-    case ACPI_TYPE_PACKAGE:
-
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[Contains 0x%.2X Elements]\n",
-            SourceDesc->Package.Count));
-
-        /* Output the entire contents of the package */
-
-        for (i = 0; i < SourceDesc->Package.Count; i++)
-        {
-            AcpiExDoDebugObject (SourceDesc->Package.Elements[i],
-                Level+4, i+1);
-        }
-        break;
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[%s] ",
-            AcpiUtGetReferenceName (SourceDesc)));
-
-        /* Decode the reference */
-
-        switch (SourceDesc->Reference.Class)
-        {
-        case ACPI_REFCLASS_INDEX:
-
-            ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "0x%X\n",
-                SourceDesc->Reference.Value));
-            break;
-
-        case ACPI_REFCLASS_TABLE:
-
-            /* Case for DdbHandle */
-
-            ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "Table Index 0x%X\n",
-                SourceDesc->Reference.Value));
-            return;
-
-        default:
-            break;
-        }
-
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "  "));
-
-        /* Check for valid node first, then valid object */
-
-        if (SourceDesc->Reference.Node)
-        {
-            if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc->Reference.Node) !=
-                    ACPI_DESC_TYPE_NAMED)
-            {
-                ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT,
-                    " %p - Not a valid namespace node\n",
-                    SourceDesc->Reference.Node));
-            }
-            else
-            {
-                ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "Node %p [%4.4s] ",
-                    SourceDesc->Reference.Node, (SourceDesc->Reference.Node)->Name.Ascii));
-
-                switch ((SourceDesc->Reference.Node)->Type)
-                {
-                /* These types have no attached object */
-
-                case ACPI_TYPE_DEVICE:
-                    AcpiOsPrintf ("Device\n");
-                    break;
-
-                case ACPI_TYPE_THERMAL:
-                    AcpiOsPrintf ("Thermal Zone\n");
-                    break;
-
-                default:
-                    AcpiExDoDebugObject ((SourceDesc->Reference.Node)->Object,
-                        Level+4, 0);
-                    break;
-                }
-            }
-        }
-        else if (SourceDesc->Reference.Object)
-        {
-            if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc->Reference.Object) ==
-                    ACPI_DESC_TYPE_NAMED)
-            {
-                AcpiExDoDebugObject (((ACPI_NAMESPACE_NODE *)
-                    SourceDesc->Reference.Object)->Object,
-                    Level+4, 0);
-            }
-            else
-            {
-                AcpiExDoDebugObject (SourceDesc->Reference.Object, Level+4, 0);
-            }
-        }
-        break;
-
-    default:
-
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "%p\n",
-            SourceDesc));
-        break;
-    }
-
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC, "\n"));
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExStore
- *
- * PARAMETERS:  *SourceDesc         - Value to be stored
- *              *DestDesc           - Where to store it.  Must be an NS node
- *                                    or an ACPI_OPERAND_OBJECT of type
- *                                    Reference;
- *              WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Store the value described by SourceDesc into the location
- *              described by DestDesc.  Called by various interpreter
- *              functions to store the result of an operation into
- *              the destination operand -- not just simply the actual "Store"
- *              ASL operator.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStore (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     *DestDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *RefDesc = DestDesc;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExStore, DestDesc);
-
-
-    /* Validate parameters */
-
-    if (!SourceDesc || !DestDesc)
-    {
-        ACPI_ERROR ((AE_INFO, "Null parameter"));
-        return_ACPI_STATUS (AE_AML_NO_OPERAND);
-    }
-
-    /* DestDesc can be either a namespace node or an ACPI object */
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (DestDesc) == ACPI_DESC_TYPE_NAMED)
-    {
-        /*
-         * Dest is a namespace node,
-         * Storing an object into a Named node.
-         */
-        Status = AcpiExStoreObjectToNode (SourceDesc,
-                    (ACPI_NAMESPACE_NODE *) DestDesc, WalkState,
-                    ACPI_IMPLICIT_CONVERSION);
-
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Destination object must be a Reference or a Constant object */
-
-    switch (DestDesc->Common.Type)
-    {
-    case ACPI_TYPE_LOCAL_REFERENCE:
-        break;
-
-    case ACPI_TYPE_INTEGER:
-
-        /* Allow stores to Constants -- a Noop as per ACPI spec */
-
-        if (DestDesc->Common.Flags & AOPOBJ_AML_CONSTANT)
-        {
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        /*lint -fallthrough */
-
-    default:
-
-        /* Destination is not a Reference object */
-
-        ACPI_ERROR ((AE_INFO,
-            "Target is not a Reference or Constant object - %s [%p]",
-            AcpiUtGetObjectTypeName (DestDesc), DestDesc));
-
-        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-    }
-
-    /*
-     * Examine the Reference class. These cases are handled:
-     *
-     * 1) Store to Name (Change the object associated with a name)
-     * 2) Store to an indexed area of a Buffer or Package
-     * 3) Store to a Method Local or Arg
-     * 4) Store to the debug object
-     */
-    switch (RefDesc->Reference.Class)
-    {
-    case ACPI_REFCLASS_REFOF:
-
-        /* Storing an object into a Name "container" */
-
-        Status = AcpiExStoreObjectToNode (SourceDesc,
-                    RefDesc->Reference.Object,
-                    WalkState, ACPI_IMPLICIT_CONVERSION);
-        break;
-
-
-    case ACPI_REFCLASS_INDEX:
-
-        /* Storing to an Index (pointer into a packager or buffer) */
-
-        Status = AcpiExStoreObjectToIndex (SourceDesc, RefDesc, WalkState);
-        break;
-
-
-    case ACPI_REFCLASS_LOCAL:
-    case ACPI_REFCLASS_ARG:
-
-        /* Store to a method local/arg  */
-
-        Status = AcpiDsStoreObjectToLocal (RefDesc->Reference.Class,
-                    RefDesc->Reference.Value, SourceDesc, WalkState);
-        break;
-
-
-    case ACPI_REFCLASS_DEBUG:
-
-        /*
-         * Storing to the Debug object causes the value stored to be
-         * displayed and otherwise has no effect -- see ACPI Specification
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "**** Write to Debug Object: Object %p %s ****:\n\n",
-            SourceDesc, AcpiUtGetObjectTypeName (SourceDesc)));
-
-        AcpiExDoDebugObject (SourceDesc, 0, 0);
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown Reference Class %2.2X",
-            RefDesc->Reference.Class));
-        ACPI_DUMP_ENTRY (RefDesc, ACPI_LV_INFO);
-
-        Status = AE_AML_INTERNAL;
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExStoreObjectToIndex
- *
- * PARAMETERS:  *SourceDesc             - Value to be stored
- *              *DestDesc               - Named object to receive the value
- *              WalkState               - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Store the object to indexed Buffer or Package element
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExStoreObjectToIndex (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     *IndexDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *NewDesc;
-    UINT8                   Value = 0;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (ExStoreObjectToIndex);
-
-
-    /*
-     * Destination must be a reference pointer, and
-     * must point to either a buffer or a package
-     */
-    switch (IndexDesc->Reference.TargetType)
-    {
-    case ACPI_TYPE_PACKAGE:
-        /*
-         * Storing to a package element. Copy the object and replace
-         * any existing object with the new object. No implicit
-         * conversion is performed.
-         *
-         * The object at *(IndexDesc->Reference.Where) is the
-         * element within the package that is to be modified.
-         * The parent package object is at IndexDesc->Reference.Object
-         */
-        ObjDesc = *(IndexDesc->Reference.Where);
-
-        if (SourceDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE &&
-            SourceDesc->Reference.Class == ACPI_REFCLASS_TABLE)
-        {
-            /* This is a DDBHandle, just add a reference to it */
-
-            AcpiUtAddReference (SourceDesc);
-            NewDesc = SourceDesc;
-        }
-        else
-        {
-            /* Normal object, copy it */
-
-            Status = AcpiUtCopyIobjectToIobject (SourceDesc, &NewDesc, WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-
-        if (ObjDesc)
-        {
-            /* Decrement reference count by the ref count of the parent package */
-
-            for (i = 0;
-                 i < ((ACPI_OPERAND_OBJECT *)
-                        IndexDesc->Reference.Object)->Common.ReferenceCount;
-                 i++)
-            {
-                AcpiUtRemoveReference (ObjDesc);
-            }
-        }
-
-        *(IndexDesc->Reference.Where) = NewDesc;
-
-        /* Increment ref count by the ref count of the parent package-1 */
-
-        for (i = 1;
-             i < ((ACPI_OPERAND_OBJECT *)
-                    IndexDesc->Reference.Object)->Common.ReferenceCount;
-             i++)
-        {
-            AcpiUtAddReference (NewDesc);
-        }
-
-        break;
-
-
-    case ACPI_TYPE_BUFFER_FIELD:
-
-        /*
-         * Store into a Buffer or String (not actually a real BufferField)
-         * at a location defined by an Index.
-         *
-         * The first 8-bit element of the source object is written to the
-         * 8-bit Buffer location defined by the Index destination object,
-         * according to the ACPI 2.0 specification.
-         */
-
-        /*
-         * Make sure the target is a Buffer or String. An error should
-         * not happen here, since the ReferenceObject was constructed
-         * by the INDEX_OP code.
-         */
-        ObjDesc = IndexDesc->Reference.Object;
-        if ((ObjDesc->Common.Type != ACPI_TYPE_BUFFER) &&
-            (ObjDesc->Common.Type != ACPI_TYPE_STRING))
-        {
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        /*
-         * The assignment of the individual elements will be slightly
-         * different for each source type.
-         */
-        switch (SourceDesc->Common.Type)
-        {
-        case ACPI_TYPE_INTEGER:
-
-            /* Use the least-significant byte of the integer */
-
-            Value = (UINT8) (SourceDesc->Integer.Value);
-            break;
-
-        case ACPI_TYPE_BUFFER:
-        case ACPI_TYPE_STRING:
-
-            /* Note: Takes advantage of common string/buffer fields */
-
-            Value = SourceDesc->Buffer.Pointer[0];
-            break;
-
-        default:
-
-            /* All other types are invalid */
-
-            ACPI_ERROR ((AE_INFO,
-                "Source must be Integer/Buffer/String type, not %s",
-                AcpiUtGetObjectTypeName (SourceDesc)));
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        /* Store the source value into the target buffer byte */
-
-        ObjDesc->Buffer.Pointer[IndexDesc->Reference.Value] = Value;
-        break;
-
-
-    default:
-        ACPI_ERROR ((AE_INFO,
-            "Target is not a Package or BufferField"));
-        Status = AE_AML_OPERAND_TYPE;
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExStoreObjectToNode
- *
- * PARAMETERS:  SourceDesc              - Value to be stored
- *              Node                    - Named object to receive the value
- *              WalkState               - Current walk state
- *              ImplicitConversion      - Perform implicit conversion (yes/no)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Store the object to the named object.
- *
- *              The Assignment of an object to a named object is handled here
- *              The value passed in will replace the current value (if any)
- *              with the input value.
- *
- *              When storing into an object the data is converted to the
- *              target object type then stored in the object.  This means
- *              that the target object type (for an initialized target) will
- *              not be changed by a store operation.
- *
- *              Assumes parameters are already validated.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStoreObjectToNode (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_WALK_STATE         *WalkState,
-    UINT8                   ImplicitConversion)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *TargetDesc;
-    ACPI_OPERAND_OBJECT     *NewDesc;
-    ACPI_OBJECT_TYPE        TargetType;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExStoreObjectToNode, SourceDesc);
-
-
-    /* Get current type of the node, and object attached to Node */
-
-    TargetType = AcpiNsGetType (Node);
-    TargetDesc = AcpiNsGetAttachedObject (Node);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Storing %p(%s) into node %p(%s)\n",
-        SourceDesc, AcpiUtGetObjectTypeName (SourceDesc),
-              Node, AcpiUtGetTypeName (TargetType)));
-
-    /*
-     * Resolve the source object to an actual value
-     * (If it is a reference object)
-     */
-    Status = AcpiExResolveObject (&SourceDesc, TargetType, WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* If no implicit conversion, drop into the default case below */
-
-    if ((!ImplicitConversion) ||
-          ((WalkState->Opcode == AML_COPY_OP) &&
-           (TargetType != ACPI_TYPE_LOCAL_REGION_FIELD) &&
-           (TargetType != ACPI_TYPE_LOCAL_BANK_FIELD) &&
-           (TargetType != ACPI_TYPE_LOCAL_INDEX_FIELD)))
-    {
-        /*
-         * Force execution of default (no implicit conversion). Note:
-         * CopyObject does not perform an implicit conversion, as per the ACPI
-         * spec -- except in case of region/bank/index fields -- because these
-         * objects must retain their original type permanently.
-         */
-        TargetType = ACPI_TYPE_ANY;
-    }
-
-    /* Do the actual store operation */
-
-    switch (TargetType)
-    {
-    case ACPI_TYPE_BUFFER_FIELD:
-    case ACPI_TYPE_LOCAL_REGION_FIELD:
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-    case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-        /* For fields, copy the source data to the target field. */
-
-        Status = AcpiExWriteDataToField (SourceDesc, TargetDesc,
-                    &WalkState->ResultObj);
-        break;
-
-
-    case ACPI_TYPE_INTEGER:
-    case ACPI_TYPE_STRING:
-    case ACPI_TYPE_BUFFER:
-
-        /*
-         * These target types are all of type Integer/String/Buffer, and
-         * therefore support implicit conversion before the store.
-         *
-         * Copy and/or convert the source object to a new target object
-         */
-        Status = AcpiExStoreObjectToObject (SourceDesc, TargetDesc,
-                    &NewDesc, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        if (NewDesc != TargetDesc)
-        {
-            /*
-             * Store the new NewDesc as the new value of the Name, and set
-             * the Name's type to that of the value being stored in it.
-             * SourceDesc reference count is incremented by AttachObject.
-             *
-             * Note: This may change the type of the node if an explicit store
-             * has been performed such that the node/object type has been
-             * changed.
-             */
-            Status = AcpiNsAttachObject (Node, NewDesc, NewDesc->Common.Type);
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                "Store %s into %s via Convert/Attach\n",
-                AcpiUtGetObjectTypeName (SourceDesc),
-                AcpiUtGetObjectTypeName (NewDesc)));
-        }
-        break;
-
-
-    default:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "Storing %s (%p) directly into node (%p) with no implicit conversion\n",
-            AcpiUtGetObjectTypeName (SourceDesc), SourceDesc, Node));
-
-        /* No conversions for all other types.  Just attach the source object */
-
-        Status = AcpiNsAttachObject (Node, SourceDesc,
-                    SourceDesc->Common.Type);
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exstoren.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exstoren.c
deleted file mode 100644 (file)
index 0810560..0000000
+++ /dev/null
@@ -1,386 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exstoren - AML Interpreter object store support,
- *                        Store to Node (namespace object)
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXSTOREN_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "amlcode.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exstoren")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExResolveObject
- *
- * PARAMETERS:  SourceDescPtr       - Pointer to the source object
- *              TargetType          - Current type of the target
- *              WalkState           - Current walk state
- *
- * RETURN:      Status, resolved object in SourceDescPtr.
- *
- * DESCRIPTION: Resolve an object.  If the object is a reference, dereference
- *              it and return the actual object in the SourceDescPtr.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveObject (
-    ACPI_OPERAND_OBJECT     **SourceDescPtr,
-    ACPI_OBJECT_TYPE        TargetType,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     *SourceDesc = *SourceDescPtr;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (ExResolveObject);
-
-
-    /* Ensure we have a Target that can be stored to */
-
-    switch (TargetType)
-    {
-    case ACPI_TYPE_BUFFER_FIELD:
-    case ACPI_TYPE_LOCAL_REGION_FIELD:
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-    case ACPI_TYPE_LOCAL_INDEX_FIELD:
-        /*
-         * These cases all require only Integers or values that
-         * can be converted to Integers (Strings or Buffers)
-         */
-
-    case ACPI_TYPE_INTEGER:
-    case ACPI_TYPE_STRING:
-    case ACPI_TYPE_BUFFER:
-
-        /*
-         * Stores into a Field/Region or into a Integer/Buffer/String
-         * are all essentially the same.  This case handles the
-         * "interchangeable" types Integer, String, and Buffer.
-         */
-        if (SourceDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE)
-        {
-            /* Resolve a reference object first */
-
-            Status = AcpiExResolveToValue (SourceDescPtr, WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                break;
-            }
-        }
-
-        /* For CopyObject, no further validation necessary */
-
-        if (WalkState->Opcode == AML_COPY_OP)
-        {
-            break;
-        }
-
-        /* Must have a Integer, Buffer, or String */
-
-        if ((SourceDesc->Common.Type != ACPI_TYPE_INTEGER)    &&
-            (SourceDesc->Common.Type != ACPI_TYPE_BUFFER)     &&
-            (SourceDesc->Common.Type != ACPI_TYPE_STRING)     &&
-            !((SourceDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&
-                    (SourceDesc->Reference.Class== ACPI_REFCLASS_TABLE)))
-        {
-            /* Conversion successful but still not a valid type */
-
-            ACPI_ERROR ((AE_INFO,
-                "Cannot assign type %s to %s (must be type Int/Str/Buf)",
-                AcpiUtGetObjectTypeName (SourceDesc),
-                AcpiUtGetTypeName (TargetType)));
-            Status = AE_AML_OPERAND_TYPE;
-        }
-        break;
-
-
-    case ACPI_TYPE_LOCAL_ALIAS:
-    case ACPI_TYPE_LOCAL_METHOD_ALIAS:
-
-        /*
-         * All aliases should have been resolved earlier, during the
-         * operand resolution phase.
-         */
-        ACPI_ERROR ((AE_INFO, "Store into an unresolved Alias object"));
-        Status = AE_AML_INTERNAL;
-        break;
-
-
-    case ACPI_TYPE_PACKAGE:
-    default:
-
-        /*
-         * All other types than Alias and the various Fields come here,
-         * including the untyped case - ACPI_TYPE_ANY.
-         */
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExStoreObjectToObject
- *
- * PARAMETERS:  SourceDesc          - Object to store
- *              DestDesc            - Object to receive a copy of the source
- *              NewDesc             - New object if DestDesc is obsoleted
- *              WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: "Store" an object to another object.  This may include
- *              converting the source type to the target type (implicit
- *              conversion), and a copy of the value of the source to
- *              the target.
- *
- *              The Assignment of an object to another (not named) object
- *              is handled here.
- *              The Source passed in will replace the current value (if any)
- *              with the input value.
- *
- *              When storing into an object the data is converted to the
- *              target object type then stored in the object.  This means
- *              that the target object type (for an initialized target) will
- *              not be changed by a store operation.
- *
- *              This module allows destination types of Number, String,
- *              Buffer, and Package.
- *
- *              Assumes parameters are already validated.  NOTE: SourceDesc
- *              resolution (from a reference object) must be performed by
- *              the caller if necessary.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStoreObjectToObject (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     *DestDesc,
-    ACPI_OPERAND_OBJECT     **NewDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_OPERAND_OBJECT     *ActualSrcDesc;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExStoreObjectToObject, SourceDesc);
-
-
-    ActualSrcDesc = SourceDesc;
-    if (!DestDesc)
-    {
-        /*
-         * There is no destination object (An uninitialized node or
-         * package element), so we can simply copy the source object
-         * creating a new destination object
-         */
-        Status = AcpiUtCopyIobjectToIobject (ActualSrcDesc, NewDesc, WalkState);
-        return_ACPI_STATUS (Status);
-    }
-
-    if (SourceDesc->Common.Type != DestDesc->Common.Type)
-    {
-        /*
-         * The source type does not match the type of the destination.
-         * Perform the "implicit conversion" of the source to the current type
-         * of the target as per the ACPI specification.
-         *
-         * If no conversion performed, ActualSrcDesc = SourceDesc.
-         * Otherwise, ActualSrcDesc is a temporary object to hold the
-         * converted object.
-         */
-        Status = AcpiExConvertToTargetType (DestDesc->Common.Type,
-                        SourceDesc, &ActualSrcDesc, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        if (SourceDesc == ActualSrcDesc)
-        {
-            /*
-             * No conversion was performed. Return the SourceDesc as the
-             * new object.
-             */
-            *NewDesc = SourceDesc;
-            return_ACPI_STATUS (AE_OK);
-        }
-    }
-
-    /*
-     * We now have two objects of identical types, and we can perform a
-     * copy of the *value* of the source object.
-     */
-    switch (DestDesc->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-
-        DestDesc->Integer.Value = ActualSrcDesc->Integer.Value;
-
-        /* Truncate value if we are executing from a 32-bit ACPI table */
-
-        AcpiExTruncateFor32bitTable (DestDesc);
-        break;
-
-    case ACPI_TYPE_STRING:
-
-        Status = AcpiExStoreStringToString (ActualSrcDesc, DestDesc);
-        break;
-
-    case ACPI_TYPE_BUFFER:
-
-        Status = AcpiExStoreBufferToBuffer (ActualSrcDesc, DestDesc);
-        break;
-
-    case ACPI_TYPE_PACKAGE:
-
-        Status = AcpiUtCopyIobjectToIobject (ActualSrcDesc, &DestDesc,
-                    WalkState);
-        break;
-
-    default:
-        /*
-         * All other types come here.
-         */
-        ACPI_WARNING ((AE_INFO, "Store into type %s not implemented",
-            AcpiUtGetObjectTypeName (DestDesc)));
-
-        Status = AE_NOT_IMPLEMENTED;
-        break;
-    }
-
-    if (ActualSrcDesc != SourceDesc)
-    {
-        /* Delete the intermediate (temporary) source object */
-
-        AcpiUtRemoveReference (ActualSrcDesc);
-    }
-
-    *NewDesc = DestDesc;
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exstorob.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exstorob.c
deleted file mode 100644 (file)
index b2f125d..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exstorob - AML Interpreter object store support, store to object
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXSTOROB_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exstorob")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExStoreBufferToBuffer
- *
- * PARAMETERS:  SourceDesc          - Source object to copy
- *              TargetDesc          - Destination object of the copy
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Copy a buffer object to another buffer object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStoreBufferToBuffer (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     *TargetDesc)
-{
-    UINT32                  Length;
-    UINT8                   *Buffer;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExStoreBufferToBuffer, SourceDesc);
-
-
-    /* If Source and Target are the same, just return */
-
-    if (SourceDesc == TargetDesc)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* We know that SourceDesc is a buffer by now */
-
-    Buffer = ACPI_CAST_PTR (UINT8, SourceDesc->Buffer.Pointer);
-    Length = SourceDesc->Buffer.Length;
-
-    /*
-     * If target is a buffer of length zero or is a static buffer,
-     * allocate a new buffer of the proper length
-     */
-    if ((TargetDesc->Buffer.Length == 0) ||
-        (TargetDesc->Common.Flags & AOPOBJ_STATIC_POINTER))
-    {
-        TargetDesc->Buffer.Pointer = ACPI_ALLOCATE (Length);
-        if (!TargetDesc->Buffer.Pointer)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        TargetDesc->Buffer.Length = Length;
-    }
-
-    /* Copy source buffer to target buffer */
-
-    if (Length <= TargetDesc->Buffer.Length)
-    {
-        /* Clear existing buffer and copy in the new one */
-
-        ACPI_MEMSET (TargetDesc->Buffer.Pointer, 0, TargetDesc->Buffer.Length);
-        ACPI_MEMCPY (TargetDesc->Buffer.Pointer, Buffer, Length);
-
-#ifdef ACPI_OBSOLETE_BEHAVIOR
-        /*
-         * NOTE: ACPI versions up to 3.0 specified that the buffer must be
-         * truncated if the string is smaller than the buffer.  However, "other"
-         * implementations of ACPI never did this and thus became the defacto
-         * standard. ACPI 3.0A changes this behavior such that the buffer
-         * is no longer truncated.
-         */
-
-        /*
-         * OBSOLETE BEHAVIOR:
-         * If the original source was a string, we must truncate the buffer,
-         * according to the ACPI spec.  Integer-to-Buffer and Buffer-to-Buffer
-         * copy must not truncate the original buffer.
-         */
-        if (OriginalSrcType == ACPI_TYPE_STRING)
-        {
-            /* Set the new length of the target */
-
-            TargetDesc->Buffer.Length = Length;
-        }
-#endif
-    }
-    else
-    {
-        /* Truncate the source, copy only what will fit */
-
-        ACPI_MEMCPY (TargetDesc->Buffer.Pointer, Buffer,
-            TargetDesc->Buffer.Length);
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-            "Truncating source buffer from %X to %X\n",
-            Length, TargetDesc->Buffer.Length));
-    }
-
-    /* Copy flags */
-
-    TargetDesc->Buffer.Flags = SourceDesc->Buffer.Flags;
-    TargetDesc->Common.Flags &= ~AOPOBJ_STATIC_POINTER;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExStoreStringToString
- *
- * PARAMETERS:  SourceDesc          - Source object to copy
- *              TargetDesc          - Destination object of the copy
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Copy a String object to another String object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStoreStringToString (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     *TargetDesc)
-{
-    UINT32                  Length;
-    UINT8                   *Buffer;
-
-
-    ACPI_FUNCTION_TRACE_PTR (ExStoreStringToString, SourceDesc);
-
-
-    /* If Source and Target are the same, just return */
-
-    if (SourceDesc == TargetDesc)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* We know that SourceDesc is a string by now */
-
-    Buffer = ACPI_CAST_PTR (UINT8, SourceDesc->String.Pointer);
-    Length = SourceDesc->String.Length;
-
-    /*
-     * Replace existing string value if it will fit and the string
-     * pointer is not a static pointer (part of an ACPI table)
-     */
-    if ((Length < TargetDesc->String.Length) &&
-       (!(TargetDesc->Common.Flags & AOPOBJ_STATIC_POINTER)))
-    {
-        /*
-         * String will fit in existing non-static buffer.
-         * Clear old string and copy in the new one
-         */
-        ACPI_MEMSET (TargetDesc->String.Pointer, 0,
-            (ACPI_SIZE) TargetDesc->String.Length + 1);
-        ACPI_MEMCPY (TargetDesc->String.Pointer, Buffer, Length);
-    }
-    else
-    {
-        /*
-         * Free the current buffer, then allocate a new buffer
-         * large enough to hold the value
-         */
-        if (TargetDesc->String.Pointer &&
-           (!(TargetDesc->Common.Flags & AOPOBJ_STATIC_POINTER)))
-        {
-            /* Only free if not a pointer into the DSDT */
-
-            ACPI_FREE (TargetDesc->String.Pointer);
-        }
-
-        TargetDesc->String.Pointer = ACPI_ALLOCATE_ZEROED (
-                                        (ACPI_SIZE) Length + 1);
-        if (!TargetDesc->String.Pointer)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        TargetDesc->Common.Flags &= ~AOPOBJ_STATIC_POINTER;
-        ACPI_MEMCPY (TargetDesc->String.Pointer, Buffer, Length);
-    }
-
-    /* Set the new target length */
-
-    TargetDesc->String.Length = Length;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exsystem.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exsystem.c
deleted file mode 100644 (file)
index 1967460..0000000
+++ /dev/null
@@ -1,418 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exsystem - Interface to OS services
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXSYSTEM_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exsystem")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSystemWaitSemaphore
- *
- * PARAMETERS:  Semaphore       - Semaphore to wait on
- *              Timeout         - Max time to wait
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Implements a semaphore wait with a check to see if the
- *              semaphore is available immediately.  If it is not, the
- *              interpreter is released before waiting.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemWaitSemaphore (
-    ACPI_SEMAPHORE          Semaphore,
-    UINT16                  Timeout)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (ExSystemWaitSemaphore);
-
-
-    Status = AcpiOsWaitSemaphore (Semaphore, 1, ACPI_DO_NOT_WAIT);
-    if (ACPI_SUCCESS (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (Status == AE_TIME)
-    {
-        /* We must wait, so unlock the interpreter */
-
-        AcpiExRelinquishInterpreter ();
-
-        Status = AcpiOsWaitSemaphore (Semaphore, 1, Timeout);
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "*** Thread awake after blocking, %s\n",
-            AcpiFormatException (Status)));
-
-        /* Reacquire the interpreter */
-
-       AcpiExReacquireInterpreter ();
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSystemWaitMutex
- *
- * PARAMETERS:  Mutex           - Mutex to wait on
- *              Timeout         - Max time to wait
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Implements a mutex wait with a check to see if the
- *              mutex is available immediately.  If it is not, the
- *              interpreter is released before waiting.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemWaitMutex (
-    ACPI_MUTEX              Mutex,
-    UINT16                  Timeout)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (ExSystemWaitMutex);
-
-
-    Status = AcpiOsAcquireMutex (Mutex, ACPI_DO_NOT_WAIT);
-    if (ACPI_SUCCESS (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (Status == AE_TIME)
-    {
-        /* We must wait, so unlock the interpreter */
-
-        AcpiExRelinquishInterpreter ();
-
-        Status = AcpiOsAcquireMutex (Mutex, Timeout);
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "*** Thread awake after blocking, %s\n",
-            AcpiFormatException (Status)));
-
-        /* Reacquire the interpreter */
-
-        AcpiExReacquireInterpreter ();
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSystemDoStall
- *
- * PARAMETERS:  HowLong         - The amount of time to stall,
- *                                in microseconds
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Suspend running thread for specified amount of time.
- *              Note: ACPI specification requires that Stall() does not
- *              relinquish the processor, and delays longer than 100 usec
- *              should use Sleep() instead.  We allow stalls up to 255 usec
- *              for compatibility with other interpreters and existing BIOSs.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemDoStall (
-    UINT32                  HowLong)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (HowLong > 255) /* 255 microseconds */
-    {
-        /*
-         * Longer than 255 usec, this is an error
-         *
-         * (ACPI specifies 100 usec as max, but this gives some slack in
-         * order to support existing BIOSs)
-         */
-        ACPI_ERROR ((AE_INFO, "Time parameter is too large (%d)",
-            HowLong));
-        Status = AE_AML_OPERAND_VALUE;
-    }
-    else
-    {
-        AcpiOsStall (HowLong);
-    }
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSystemDoSuspend
- *
- * PARAMETERS:  HowLong         - The amount of time to suspend,
- *                                in milliseconds
- *
- * RETURN:      None
- *
- * DESCRIPTION: Suspend running thread for specified amount of time.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemDoSuspend (
-    ACPI_INTEGER            HowLong)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Since this thread will sleep, we must release the interpreter */
-
-    AcpiExRelinquishInterpreter ();
-
-    AcpiOsSleep (HowLong);
-
-    /* And now we must get the interpreter again */
-
-    AcpiExReacquireInterpreter ();
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSystemSignalEvent
- *
- * PARAMETERS:  ObjDesc         - The object descriptor for this op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Provides an access point to perform synchronization operations
- *              within the AML.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemSignalEvent (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (ExSystemSignalEvent);
-
-
-    if (ObjDesc)
-    {
-        Status = AcpiOsSignalSemaphore (ObjDesc->Event.OsSemaphore, 1);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSystemWaitEvent
- *
- * PARAMETERS:  TimeDesc        - The 'time to delay' object descriptor
- *              ObjDesc         - The object descriptor for this op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Provides an access point to perform synchronization operations
- *              within the AML.  This operation is a request to wait for an
- *              event.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemWaitEvent (
-    ACPI_OPERAND_OBJECT     *TimeDesc,
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (ExSystemWaitEvent);
-
-
-    if (ObjDesc)
-    {
-        Status = AcpiExSystemWaitSemaphore (ObjDesc->Event.OsSemaphore,
-                    (UINT16) TimeDesc->Integer.Value);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExSystemResetEvent
- *
- * PARAMETERS:  ObjDesc         - The object descriptor for this op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Reset an event to a known state.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemResetEvent (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_SEMAPHORE          TempSemaphore;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * We are going to simply delete the existing semaphore and
-     * create a new one!
-     */
-    Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0, &TempSemaphore);
-    if (ACPI_SUCCESS (Status))
-    {
-        (void) AcpiOsDeleteSemaphore (ObjDesc->Event.OsSemaphore);
-        ObjDesc->Event.OsSemaphore = TempSemaphore;
-    }
-
-    return (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/executer/exutils.c b/l4/pkg/acpica/lib-acpi/src/acpica/executer/exutils.c
deleted file mode 100644 (file)
index 1f5e861..0000000
+++ /dev/null
@@ -1,574 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exutils - interpreter/scanner utilities
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __EXUTILS_C__
-
-/*
- * DEFINE_AML_GLOBALS is tested in amlcode.h
- * to determine whether certain global names should be "defined" or only
- * "declared" in the current compilation.  This enhances maintainability
- * by enabling a single header file to embody all knowledge of the names
- * in question.
- *
- * Exactly one module of any executable should #define DEFINE_GLOBALS
- * before #including the header files which use this convention.  The
- * names in question will be defined and initialized in that module,
- * and declared as extern in all other modules which #include those
- * header files.
- */
-
-#define DEFINE_AML_GLOBALS
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "amlcode.h"
-
-#define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exutils")
-
-/* Local prototypes */
-
-static UINT32
-AcpiExDigitsNeeded (
-    ACPI_INTEGER            Value,
-    UINT32                  Base);
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExEnterInterpreter
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Enter the interpreter execution region. Failure to enter
- *              the interpreter region is a fatal system error. Used in
- *              conjunction with ExitInterpreter.
- *
- ******************************************************************************/
-
-void
-AcpiExEnterInterpreter (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (ExEnterInterpreter);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_INTERPRETER);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_ERROR ((AE_INFO, "Could not acquire AML Interpreter mutex"));
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExReacquireInterpreter
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Reacquire the interpreter execution region from within the
- *              interpreter code. Failure to enter the interpreter region is a
- *              fatal system error. Used in  conjuction with
- *              RelinquishInterpreter
- *
- ******************************************************************************/
-
-void
-AcpiExReacquireInterpreter (
-    void)
-{
-    ACPI_FUNCTION_TRACE (ExReacquireInterpreter);
-
-
-    /*
-     * If the global serialized flag is set, do not release the interpreter,
-     * since it was not actually released by AcpiExRelinquishInterpreter.
-     * This forces the interpreter to be single threaded.
-     */
-    if (!AcpiGbl_AllMethodsSerialized)
-    {
-        AcpiExEnterInterpreter ();
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExExitInterpreter
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Exit the interpreter execution region. This is the top level
- *              routine used to exit the interpreter when all processing has
- *              been completed.
- *
- ******************************************************************************/
-
-void
-AcpiExExitInterpreter (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (ExExitInterpreter);
-
-
-    Status = AcpiUtReleaseMutex (ACPI_MTX_INTERPRETER);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_ERROR ((AE_INFO, "Could not release AML Interpreter mutex"));
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExRelinquishInterpreter
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Exit the interpreter execution region, from within the
- *              interpreter - before attempting an operation that will possibly
- *              block the running thread.
- *
- * Cases where the interpreter is unlocked internally
- *      1) Method to be blocked on a Sleep() AML opcode
- *      2) Method to be blocked on an Acquire() AML opcode
- *      3) Method to be blocked on a Wait() AML opcode
- *      4) Method to be blocked to acquire the global lock
- *      5) Method to be blocked waiting to execute a serialized control method
- *          that is currently executing
- *      6) About to invoke a user-installed opregion handler
- *
- ******************************************************************************/
-
-void
-AcpiExRelinquishInterpreter (
-    void)
-{
-    ACPI_FUNCTION_TRACE (ExRelinquishInterpreter);
-
-
-    /*
-     * If the global serialized flag is set, do not release the interpreter.
-     * This forces the interpreter to be single threaded.
-     */
-    if (!AcpiGbl_AllMethodsSerialized)
-    {
-        AcpiExExitInterpreter ();
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExTruncateFor32bitTable
- *
- * PARAMETERS:  ObjDesc         - Object to be truncated
- *
- * RETURN:      none
- *
- * DESCRIPTION: Truncate an ACPI Integer to 32 bits if the execution mode is
- *              32-bit, as determined by the revision of the DSDT.
- *
- ******************************************************************************/
-
-void
-AcpiExTruncateFor32bitTable (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * Object must be a valid number and we must be executing
-     * a control method. NS node could be there for AML_INT_NAMEPATH_OP.
-     */
-    if ((!ObjDesc) ||
-        (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND) ||
-        (ObjDesc->Common.Type != ACPI_TYPE_INTEGER))
-    {
-        return;
-    }
-
-    if (AcpiGbl_IntegerByteWidth == 4)
-    {
-        /*
-         * We are running a method that exists in a 32-bit ACPI table.
-         * Truncate the value to 32 bits by zeroing out the upper 32-bit field
-         */
-        ObjDesc->Integer.Value &= (ACPI_INTEGER) ACPI_UINT32_MAX;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExAcquireGlobalLock
- *
- * PARAMETERS:  FieldFlags            - Flags with Lock rule:
- *                                      AlwaysLock or NeverLock
- *
- * RETURN:      None
- *
- * DESCRIPTION: Obtain the ACPI hardware Global Lock, only if the field
- *              flags specifiy that it is to be obtained before field access.
- *
- ******************************************************************************/
-
-void
-AcpiExAcquireGlobalLock (
-    UINT32                  FieldFlags)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (ExAcquireGlobalLock);
-
-
-    /* Only use the lock if the AlwaysLock bit is set */
-
-    if (!(FieldFlags & AML_FIELD_LOCK_RULE_MASK))
-    {
-        return_VOID;
-    }
-
-    /* Attempt to get the global lock, wait forever */
-
-    Status = AcpiExAcquireMutexObject (ACPI_WAIT_FOREVER,
-                AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ());
-
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Could not acquire Global Lock"));
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExReleaseGlobalLock
- *
- * PARAMETERS:  FieldFlags            - Flags with Lock rule:
- *                                      AlwaysLock or NeverLock
- *
- * RETURN:      None
- *
- * DESCRIPTION: Release the ACPI hardware Global Lock
- *
- ******************************************************************************/
-
-void
-AcpiExReleaseGlobalLock (
-    UINT32                  FieldFlags)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (ExReleaseGlobalLock);
-
-
-    /* Only use the lock if the AlwaysLock bit is set */
-
-    if (!(FieldFlags & AML_FIELD_LOCK_RULE_MASK))
-    {
-        return_VOID;
-    }
-
-    /* Release the global lock */
-
-    Status = AcpiExReleaseMutexObject (AcpiGbl_GlobalLockMutex);
-    if (ACPI_FAILURE (Status))
-    {
-        /* Report the error, but there isn't much else we can do */
-
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Could not release Global Lock"));
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExDigitsNeeded
- *
- * PARAMETERS:  Value           - Value to be represented
- *              Base            - Base of representation
- *
- * RETURN:      The number of digits.
- *
- * DESCRIPTION: Calculate the number of digits needed to represent the Value
- *              in the given Base (Radix)
- *
- ******************************************************************************/
-
-static UINT32
-AcpiExDigitsNeeded (
-    ACPI_INTEGER            Value,
-    UINT32                  Base)
-{
-    UINT32                  NumDigits;
-    ACPI_INTEGER            CurrentValue;
-
-
-    ACPI_FUNCTION_TRACE (ExDigitsNeeded);
-
-
-    /* ACPI_INTEGER is unsigned, so we don't worry about a '-' prefix */
-
-    if (Value == 0)
-    {
-        return_UINT32 (1);
-    }
-
-    CurrentValue = Value;
-    NumDigits = 0;
-
-    /* Count the digits in the requested base */
-
-    while (CurrentValue)
-    {
-        (void) AcpiUtShortDivide (CurrentValue, Base, &CurrentValue, NULL);
-        NumDigits++;
-    }
-
-    return_UINT32 (NumDigits);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExEisaIdToString
- *
- * PARAMETERS:  CompressedId    - EISAID to be converted
- *              OutString       - Where to put the converted string (8 bytes)
- *
- * RETURN:      None
- *
- * DESCRIPTION: Convert a numeric EISAID to string representation. Return
- *              buffer must be large enough to hold the string. The string
- *              returned is always exactly of length ACPI_EISAID_STRING_SIZE
- *              (includes null terminator). The EISAID is always 32 bits.
- *
- ******************************************************************************/
-
-void
-AcpiExEisaIdToString (
-    char                    *OutString,
-    ACPI_INTEGER            CompressedId)
-{
-    UINT32                  SwappedId;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* The EISAID should be a 32-bit integer */
-
-    if (CompressedId > ACPI_UINT32_MAX)
-    {
-        ACPI_WARNING ((AE_INFO,
-            "Expected EISAID is larger than 32 bits: 0x%8.8X%8.8X, truncating",
-            ACPI_FORMAT_UINT64 (CompressedId)));
-    }
-
-    /* Swap ID to big-endian to get contiguous bits */
-
-    SwappedId = AcpiUtDwordByteSwap ((UINT32) CompressedId);
-
-    /* First 3 bytes are uppercase letters. Next 4 bytes are hexadecimal */
-
-    OutString[0] = (char) (0x40 + (((unsigned long) SwappedId >> 26) & 0x1F));
-    OutString[1] = (char) (0x40 + ((SwappedId >> 21) & 0x1F));
-    OutString[2] = (char) (0x40 + ((SwappedId >> 16) & 0x1F));
-    OutString[3] = AcpiUtHexToAsciiChar ((ACPI_INTEGER) SwappedId, 12);
-    OutString[4] = AcpiUtHexToAsciiChar ((ACPI_INTEGER) SwappedId, 8);
-    OutString[5] = AcpiUtHexToAsciiChar ((ACPI_INTEGER) SwappedId, 4);
-    OutString[6] = AcpiUtHexToAsciiChar ((ACPI_INTEGER) SwappedId, 0);
-    OutString[7] = 0;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiExIntegerToString
- *
- * PARAMETERS:  OutString       - Where to put the converted string. At least
- *                                21 bytes are needed to hold the largest
- *                                possible 64-bit integer.
- *              Value           - Value to be converted
- *
- * RETURN:      None, string
- *
- * DESCRIPTION: Convert a 64-bit integer to decimal string representation.
- *              Assumes string buffer is large enough to hold the string. The
- *              largest string is (ACPI_MAX64_DECIMAL_DIGITS + 1).
- *
- ******************************************************************************/
-
-void
-AcpiExIntegerToString (
-    char                    *OutString,
-    ACPI_INTEGER            Value)
-{
-    UINT32                  Count;
-    UINT32                  DigitsNeeded;
-    UINT32                  Remainder;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    DigitsNeeded = AcpiExDigitsNeeded (Value, 10);
-    OutString[DigitsNeeded] = 0;
-
-    for (Count = DigitsNeeded; Count > 0; Count--)
-    {
-        (void) AcpiUtShortDivide (Value, 10, &Value, &Remainder);
-        OutString[Count-1] = (char) ('0' + Remainder);\
-    }
-}
-
-#endif
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/files.lnt b/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/files.lnt
deleted file mode 100644 (file)
index ac0a36e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// Basic ACPICA components
-//
-..\..\source\components\debugger\*.c
-..\..\source\components\disassembler\*.c
-..\..\source\components\dispatcher\*.c
-..\..\source\components\events\*.c
-..\..\source\components\executer\*.c
-..\..\source\components\hardware\*.c
-..\..\source\components\namespace\*.c
-..\..\source\components\parser\*.c
-..\..\source\components\resources\*.c
-..\..\source\components\tables\*.c
-..\..\source\components\utilities\*.c
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/lint.bat b/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/lint.bat
deleted file mode 100644 (file)
index 18fde83..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-del LintOut.txt
-echo Begin 64-bit lint >> LintOut.txt
-
-"C:\Program Files\Lint\Lint-nt" +v std64.lnt +os(LintOut.txt) files.lnt
-
-echo 64-bit lint completed >> LintOut.txt
-echo -------------------------------------------- >> LintOut.txt
-echo Begin 32-bit lint >> LintOut.txt
-
-"C:\Program Files\Lint\Lint-nt" +v std32.lnt +os(LintOut.txt) files.lnt
-
-echo 32-bit lint completed >> LintOut.txt
-@echo off
-echo ---
-echo  Output placed in LintOut.txt
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/lset.bat b/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/lset.bat
deleted file mode 100644 (file)
index 9f7de30..0000000
+++ /dev/null
@@ -1 +0,0 @@
-set path=%PATH%;$G
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/options.lnt b/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/options.lnt
deleted file mode 100644 (file)
index 1dfd97b..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-// Please note -- this is a representative set of error suppression
-//                options.  Please adjust to suit your own policies
-//                See  manual (chapter LIVING WITH LINT)
-//                for further details.
-
--i"..\..\source\include"
--i"..\..\source\include\platform"
-
-/* Global options */
-
--A              // ANSI C only
-+fie            // Enum is integer
--dACPI_USE_DO_WHILE_0
--dACPI_DEBUG_OUTPUT
-//-dACPI_APPLICATION
--dACPI_DEBUGGER
--dACPI_DISASSEMBLER
--dACPI_ENABLE_OBJECT_CACHE
--dACPI_DBG_TRACK_ALLOCATIONS
--dACPI_USE_LOCAL_CACHE
--dACPI_CACHE_T=ACPI_MEMORY_LIST
--d_LINT=1
-
--printf(4, AcpiUtDebugPrint, AcpiUtDebugPrintRaw)
--printf(1, AcpiOsPrintf, AcpiOsVprintf)
-
-/* Macro exceptions */
-
--emacro( (413), ACPI_OFFSET )               // use of NULL pointer creates a stir
--emacro( (413), ACPI_TO_INTEGER )           // use of NULL pointer creates a stir
--emacro( (413), ACPI_TO_POINTER )           // use of NULL pointer creates a stir
--emacro( (413), ACPI_ADD_PTR )              // use of NULL pointer creates a stir
--emacro( (413), ACPI_PTR_DIFF )             // use of NULL pointer creates a stir
--emacro( (413), ACPI_FADT_OFFSET )          // use of NULL pointer creates a stir
--emacro( (413), ASL_RESDESC_OFFSET )        // use of NULL pointer creates a stir
--emacro( (662), ACPI_ADD_PTR )              // allow pointer overrun for dynamic structs
--emacro( (797), ACPI_ADD_PTR )              // allow pointer overrun for dynamic structs
-
--emacro( 826, ACPI_NEXT_RESOURCE)           // Pointer cast
--emacro( 826, ACPI_MOVE_UNALIGNED16_TO_16)  // Pointer cast
--emacro( 826, ACPI_MOVE_UNALIGNED16_TO_32)  // Pointer cast
--emacro( 826, ACPI_MOVE_UNALIGNED32_TO_32)  // Pointer cast
--emacro( 826, ACPI_MOVE_32_TO_32)           // Pointer cast
--emacro( 950, ACPI_INTERNAL_VAR_XFACE)      // Uses non-ANSI
--emacro( 950, ACPI_SYSTEM_XFACE)            // Uses non-ANSI
--emacro( 826, ACPI_CAST_PTR)                // Pointer cast
--emacro( 826, ACPI_ADD_PTR)                 // Pointer cast
--emacro( 826, ACPI_LODWORD)                                    // Pointer cast
--emacro( 826, ACPI_HIDWORD)                                    // Pointer cast
-
-/* Symbol exceptions */
-
--esym( 528, _AcpiModuleName)                // Symbol not always used, but always present
--esym( 550, CurrentSp)                      // Used to track stack use
--esym( 789, CurrentSp)                      // Used to track stack use
--esym( 534, AcpiDmDumpName)                 // Return value not always used
--esym( 534, AcpiDmCommaIfListMember)        // Return value not always used
-
-// Suppress warning about redefinition during lint of multiple modules
--esym(767,_COMPONENT)
-
-
-/* Symbol exceptions for generation of iASL compiler */
-
--esym( 534, TrWalkParseTree)                // Return value not always used
--esym( 534, AslCompilerparse)               // Return value not always used
--esym( 534, OpcSetOptimalIntegerSize)       // Return value not always used
--esym( 534, AslCompilererror)               // Return value not always used
-
-/* Global exceptions */
-
--e716   // Allow while(1)
--e717   // Allow do..while(0)
--e801   // Allow judicious use of goto without incurring complaint
--e818   // Don't make suggestions about const to avoid "const" pollution
--e715   // Ignore non-referenced formal parameters
--e750   // Ignore non-referenced local macros (_MODULE_NAME, _COMPONENT, etc.)
--e834   // - followed by + is "confusing" NOT.
--e820   // Allow Boolean test of a parenthesized assignment
--e778   // Allow constant expressions to evaluate to zero
--e662   // Allow "pointer overrun" for dynamic structures
--e831
\ No newline at end of file
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/readme.txt b/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/readme.txt
deleted file mode 100644 (file)
index 3f427ad..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Lint files for PC-Lint (FlexLint) by Gimpel Software, Inc.
-
-These are the configuration and option files used to lint the 
-ACPI-CA software.
-
-lset.bat    - adds lint directory to the command line search path
-lint.bat    - lint batch file for 32 and 64 bit lint
-std16.lnt   - 16-bit options
-std32.lnt   - 32-bit options
-std64.lnt   - 64-bit options
-options.lnt - common options
-others      - windows/dos compiler option files
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/std16.lnt b/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/std16.lnt
deleted file mode 100644 (file)
index c3a116a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-//  Microsoft C and Visual C++ 4.x, -mL -si2 -spN2 -spF4, lib-win.lnt
-//  Standard lint options
-
-
-c:\acpi\generate\lint\co-msc40.lnt
-//c:\acpi\generate\lint\lib-win.lnt
-
--dMSDOS
--dACPI_MACHINE_WIDTH=16
-//-d_MSC_VER
-
--e747  // Compiler supports parameter conversions
-
-
-options.lnt  -mL -si2 -spN2 -spF4 -sl4
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/std32.lnt b/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/std32.lnt
deleted file mode 100644 (file)
index 37e5c36..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-//  Generic Compilers, -si4 -sp4
-//  Standard lint options
-
--dACPI_MACHINE_WIDTH=32
--dWIN32=1
--d_MSC_VER=1
-+fll            // enable long long
-+rw(__asm)      // enable in-line assembly
--esym( 950, __asm) 
-                     // Used to track stack use
--si4 -sp4
-
-co.lnt
-options.lnt
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/std64.lnt b/l4/pkg/acpica/lib-acpi/src/acpica/generate/lint/std64.lnt
deleted file mode 100644 (file)
index 441c975..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-//  Generic Compilers, -si4 -sl4 -sp8
-//  Standard lint options
-
--dACPI_MACHINE_WIDTH=64
-
--e747  // Compiler supports parameter conversions
--e46    // Compiler supports bitfields other than int
--d_IA64
--dWIN64
--d_WIN64
--d_MAC
-+fll            // enable long long
-
--si4 -sl4 -sp8 -sll8
-
-co.lnt
-options.lnt  
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwacpi.c b/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwacpi.c
deleted file mode 100644 (file)
index 6b6d90e..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: hwacpi - ACPI Hardware Initialization/Mode Interface
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __HWACPI_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-
-#define _COMPONENT          ACPI_HARDWARE
-        ACPI_MODULE_NAME    ("hwacpi")
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwSetMode
- *
- * PARAMETERS:  Mode            - SYS_MODE_ACPI or SYS_MODE_LEGACY
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Transitions the system into the requested mode.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwSetMode (
-    UINT32                  Mode)
-{
-
-    ACPI_STATUS             Status;
-    UINT32                  Retry;
-
-
-    ACPI_FUNCTION_TRACE (HwSetMode);
-
-    /*
-     * ACPI 2.0 clarified that if SMI_CMD in FADT is zero,
-     * system does not support mode transition.
-     */
-    if (!AcpiGbl_FADT.SmiCommand)
-    {
-        ACPI_ERROR ((AE_INFO, "No SMI_CMD in FADT, mode transition failed"));
-        return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE);
-    }
-
-    /*
-     * ACPI 2.0 clarified the meaning of ACPI_ENABLE and ACPI_DISABLE
-     * in FADT: If it is zero, enabling or disabling is not supported.
-     * As old systems may have used zero for mode transition,
-     * we make sure both the numbers are zero to determine these
-     * transitions are not supported.
-     */
-    if (!AcpiGbl_FADT.AcpiEnable && !AcpiGbl_FADT.AcpiDisable)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "No ACPI mode transition supported in this system "
-            "(enable/disable both zero)"));
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    switch (Mode)
-    {
-    case ACPI_SYS_MODE_ACPI:
-
-        /* BIOS should have disabled ALL fixed and GP events */
-
-        Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand,
-                        (UINT32) AcpiGbl_FADT.AcpiEnable, 8);
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Attempting to enable ACPI mode\n"));
-        break;
-
-    case ACPI_SYS_MODE_LEGACY:
-
-        /*
-         * BIOS should clear all fixed status bits and restore fixed event
-         * enable bits to default
-         */
-        Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand,
-                    (UINT32) AcpiGbl_FADT.AcpiDisable, 8);
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                    "Attempting to enable Legacy (non-ACPI) mode\n"));
-        break;
-
-    default:
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Could not write ACPI mode change"));
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Some hardware takes a LONG time to switch modes. Give them 3 sec to
-     * do so, but allow faster systems to proceed more quickly.
-     */
-    Retry = 3000;
-    while (Retry)
-    {
-        if (AcpiHwGetMode() == Mode)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Mode %X successfully enabled\n",
-                Mode));
-            return_ACPI_STATUS (AE_OK);
-        }
-        AcpiOsStall(1000);
-        Retry--;
-    }
-
-    ACPI_ERROR ((AE_INFO, "Hardware did not change modes"));
-    return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiHwGetMode
- *
- * PARAMETERS:  none
- *
- * RETURN:      SYS_MODE_ACPI or SYS_MODE_LEGACY
- *
- * DESCRIPTION: Return current operating state of system.  Determined by
- *              querying the SCI_EN bit.
- *
- ******************************************************************************/
-
-UINT32
-AcpiHwGetMode (
-    void)
-{
-    ACPI_STATUS             Status;
-    UINT32                  Value;
-
-
-    ACPI_FUNCTION_TRACE (HwGetMode);
-
-
-    /*
-     * ACPI 2.0 clarified that if SMI_CMD in FADT is zero,
-     * system does not support mode transition.
-     */
-    if (!AcpiGbl_FADT.SmiCommand)
-    {
-        return_UINT32 (ACPI_SYS_MODE_ACPI);
-    }
-
-    Status = AcpiReadBitRegister (ACPI_BITREG_SCI_ENABLE, &Value);
-    if (ACPI_FAILURE (Status))
-    {
-        return_UINT32 (ACPI_SYS_MODE_LEGACY);
-    }
-
-    if (Value)
-    {
-        return_UINT32 (ACPI_SYS_MODE_ACPI);
-    }
-    else
-    {
-        return_UINT32 (ACPI_SYS_MODE_LEGACY);
-    }
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwgpe.c b/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwgpe.c
deleted file mode 100644 (file)
index a45603d..0000000
+++ /dev/null
@@ -1,597 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: hwgpe - Low level GPE enable/disable/clear functions
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-
-#define _COMPONENT          ACPI_HARDWARE
-        ACPI_MODULE_NAME    ("hwgpe")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiHwEnableWakeupGpeBlock (
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    void                    *Context);
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwLowDisableGpe
- *
- * PARAMETERS:  GpeEventInfo        - Info block for the GPE to be disabled
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Disable a single GPE in the enable register.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwLowDisableGpe (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo)
-{
-    ACPI_GPE_REGISTER_INFO  *GpeRegisterInfo;
-    ACPI_STATUS             Status;
-    UINT32                  EnableMask;
-
-
-    /* Get the info block for the entire GPE register */
-
-    GpeRegisterInfo = GpeEventInfo->RegisterInfo;
-    if (!GpeRegisterInfo)
-    {
-        return (AE_NOT_EXIST);
-    }
-
-    /* Get current value of the enable register that contains this GPE */
-
-    Status = AcpiHwRead (&EnableMask, &GpeRegisterInfo->EnableAddress);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Clear just the bit that corresponds to this GPE */
-
-    ACPI_CLEAR_BIT (EnableMask, ((UINT32) 1 <<
-        (GpeEventInfo->GpeNumber - GpeRegisterInfo->BaseGpeNumber)));
-
-
-    /* Write the updated enable mask */
-
-    Status = AcpiHwWrite (EnableMask, &GpeRegisterInfo->EnableAddress);
-    return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwWriteGpeEnableReg
- *
- * PARAMETERS:  GpeEventInfo        - Info block for the GPE to be enabled
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Write a GPE enable register.  Note: The bit for this GPE must
- *              already be cleared or set in the parent register
- *              EnableForRun mask.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwWriteGpeEnableReg (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo)
-{
-    ACPI_GPE_REGISTER_INFO  *GpeRegisterInfo;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Get the info block for the entire GPE register */
-
-    GpeRegisterInfo = GpeEventInfo->RegisterInfo;
-    if (!GpeRegisterInfo)
-    {
-        return (AE_NOT_EXIST);
-    }
-
-    /* Write the entire GPE (runtime) enable register */
-
-    Status = AcpiHwWrite (GpeRegisterInfo->EnableForRun,
-                    &GpeRegisterInfo->EnableAddress);
-
-    return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwClearGpe
- *
- * PARAMETERS:  GpeEventInfo        - Info block for the GPE to be cleared
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Clear the status bit for a single GPE.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwClearGpe (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo)
-{
-    ACPI_STATUS             Status;
-    UINT8                   RegisterBit;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    RegisterBit = (UINT8) (1 <<
-        (GpeEventInfo->GpeNumber - GpeEventInfo->RegisterInfo->BaseGpeNumber));
-
-    /*
-     * Write a one to the appropriate bit in the status register to
-     * clear this GPE.
-     */
-    Status = AcpiHwWrite (RegisterBit,
-                    &GpeEventInfo->RegisterInfo->StatusAddress);
-
-    return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwGetGpeStatus
- *
- * PARAMETERS:  GpeEventInfo        - Info block for the GPE to queried
- *              EventStatus         - Where the GPE status is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Return the status of a single GPE.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwGetGpeStatus (
-    ACPI_GPE_EVENT_INFO     *GpeEventInfo,
-    ACPI_EVENT_STATUS       *EventStatus)
-{
-    UINT32                  InByte;
-    UINT8                   RegisterBit;
-    ACPI_GPE_REGISTER_INFO  *GpeRegisterInfo;
-    ACPI_STATUS             Status;
-    ACPI_EVENT_STATUS       LocalEventStatus = 0;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!EventStatus)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Get the info block for the entire GPE register */
-
-    GpeRegisterInfo = GpeEventInfo->RegisterInfo;
-
-    /* Get the register bitmask for this GPE */
-
-    RegisterBit = (UINT8) (1 <<
-        (GpeEventInfo->GpeNumber - GpeEventInfo->RegisterInfo->BaseGpeNumber));
-
-    /* GPE currently enabled? (enabled for runtime?) */
-
-    if (RegisterBit & GpeRegisterInfo->EnableForRun)
-    {
-        LocalEventStatus |= ACPI_EVENT_FLAG_ENABLED;
-    }
-
-    /* GPE enabled for wake? */
-
-    if (RegisterBit & GpeRegisterInfo->EnableForWake)
-    {
-        LocalEventStatus |= ACPI_EVENT_FLAG_WAKE_ENABLED;
-    }
-
-    /* GPE currently active (status bit == 1)? */
-
-    Status = AcpiHwRead (&InByte, &GpeRegisterInfo->StatusAddress);
-    if (ACPI_FAILURE (Status))
-    {
-        goto UnlockAndExit;
-    }
-
-    if (RegisterBit & InByte)
-    {
-        LocalEventStatus |= ACPI_EVENT_FLAG_SET;
-    }
-
-    /* Set return value */
-
-    (*EventStatus) = LocalEventStatus;
-
-
-UnlockAndExit:
-    return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwDisableGpeBlock
- *
- * PARAMETERS:  GpeXruptInfo        - GPE Interrupt info
- *              GpeBlock            - Gpe Block info
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Disable all GPEs within a single GPE block
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwDisableGpeBlock (
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    void                    *Context)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status;
-
-
-    /* Examine each GPE Register within the block */
-
-    for (i = 0; i < GpeBlock->RegisterCount; i++)
-    {
-        /* Disable all GPEs in this register */
-
-        Status = AcpiHwWrite (0x00, &GpeBlock->RegisterInfo[i].EnableAddress);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwClearGpeBlock
- *
- * PARAMETERS:  GpeXruptInfo        - GPE Interrupt info
- *              GpeBlock            - Gpe Block info
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Clear status bits for all GPEs within a single GPE block
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwClearGpeBlock (
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    void                    *Context)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status;
-
-
-    /* Examine each GPE Register within the block */
-
-    for (i = 0; i < GpeBlock->RegisterCount; i++)
-    {
-        /* Clear status on all GPEs in this register */
-
-        Status = AcpiHwWrite (0xFF, &GpeBlock->RegisterInfo[i].StatusAddress);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwEnableRuntimeGpeBlock
- *
- * PARAMETERS:  GpeXruptInfo        - GPE Interrupt info
- *              GpeBlock            - Gpe Block info
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enable all "runtime" GPEs within a single GPE block. Includes
- *              combination wake/run GPEs.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwEnableRuntimeGpeBlock (
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    void                    *Context)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status;
-
-
-    /* NOTE: assumes that all GPEs are currently disabled */
-
-    /* Examine each GPE Register within the block */
-
-    for (i = 0; i < GpeBlock->RegisterCount; i++)
-    {
-        if (!GpeBlock->RegisterInfo[i].EnableForRun)
-        {
-            continue;
-        }
-
-        /* Enable all "runtime" GPEs in this register */
-
-        Status = AcpiHwWrite (GpeBlock->RegisterInfo[i].EnableForRun,
-                    &GpeBlock->RegisterInfo[i].EnableAddress);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwEnableWakeupGpeBlock
- *
- * PARAMETERS:  GpeXruptInfo        - GPE Interrupt info
- *              GpeBlock            - Gpe Block info
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enable all "wake" GPEs within a single GPE block. Includes
- *              combination wake/run GPEs.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiHwEnableWakeupGpeBlock (
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
-    ACPI_GPE_BLOCK_INFO     *GpeBlock,
-    void                    *Context)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status;
-
-
-    /* Examine each GPE Register within the block */
-
-    for (i = 0; i < GpeBlock->RegisterCount; i++)
-    {
-        if (!GpeBlock->RegisterInfo[i].EnableForWake)
-        {
-            continue;
-        }
-
-        /* Enable all "wake" GPEs in this register */
-
-        Status = AcpiHwWrite (GpeBlock->RegisterInfo[i].EnableForWake,
-                    &GpeBlock->RegisterInfo[i].EnableAddress);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwDisableAllGpes
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Disable and clear all GPEs in all GPE blocks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwDisableAllGpes (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (HwDisableAllGpes);
-
-
-    Status = AcpiEvWalkGpeList (AcpiHwDisableGpeBlock, NULL);
-    Status = AcpiEvWalkGpeList (AcpiHwClearGpeBlock, NULL);
-    return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwEnableAllRuntimeGpes
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enable all "runtime" GPEs, in all GPE blocks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwEnableAllRuntimeGpes (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (HwEnableAllRuntimeGpes);
-
-
-    Status = AcpiEvWalkGpeList (AcpiHwEnableRuntimeGpeBlock, NULL);
-    return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwEnableAllWakeupGpes
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enable all "wakeup" GPEs, in all GPE blocks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwEnableAllWakeupGpes (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (HwEnableAllWakeupGpes);
-
-
-    Status = AcpiEvWalkGpeList (AcpiHwEnableWakeupGpeBlock, NULL);
-    return_ACPI_STATUS (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwregs.c b/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwregs.c
deleted file mode 100644 (file)
index 163840d..0000000
+++ /dev/null
@@ -1,805 +0,0 @@
-
-/*******************************************************************************
- *
- * Module Name: hwregs - Read/write access functions for the various ACPI
- *                       control and status registers.
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __HWREGS_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-
-#define _COMPONENT          ACPI_HARDWARE
-        ACPI_MODULE_NAME    ("hwregs")
-
-
-/* Local Prototypes */
-
-static ACPI_STATUS
-AcpiHwReadMultiple (
-    UINT32                  *Value,
-    ACPI_GENERIC_ADDRESS    *RegisterA,
-    ACPI_GENERIC_ADDRESS    *RegisterB);
-
-static ACPI_STATUS
-AcpiHwWriteMultiple (
-    UINT32                  Value,
-    ACPI_GENERIC_ADDRESS    *RegisterA,
-    ACPI_GENERIC_ADDRESS    *RegisterB);
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwValidateRegister
- *
- * PARAMETERS:  Reg                 - GAS register structure
- *              MaxBitWidth         - Max BitWidth supported (32 or 64)
- *              Address             - Pointer to where the gas->address
- *                                    is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Validate the contents of a GAS register. Checks the GAS
- *              pointer, Address, SpaceId, BitWidth, and BitOffset.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwValidateRegister (
-    ACPI_GENERIC_ADDRESS    *Reg,
-    UINT8                   MaxBitWidth,
-    UINT64                  *Address)
-{
-
-    /* Must have a valid pointer to a GAS structure */
-
-    if (!Reg)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Copy the target address. This handles possible alignment issues.
-     * Address must not be null. A null address also indicates an optional
-     * ACPI register that is not supported, so no error message.
-     */
-    ACPI_MOVE_64_TO_64 (Address, &Reg->Address);
-    if (!(*Address))
-    {
-        return (AE_BAD_ADDRESS);
-    }
-
-    /* Validate the SpaceID */
-
-    if ((Reg->SpaceId != ACPI_ADR_SPACE_SYSTEM_MEMORY) &&
-        (Reg->SpaceId != ACPI_ADR_SPACE_SYSTEM_IO))
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Unsupported address space: 0x%X", Reg->SpaceId));
-        return (AE_SUPPORT);
-    }
-
-    /* Validate the BitWidth */
-
-    if ((Reg->BitWidth != 8) &&
-        (Reg->BitWidth != 16) &&
-        (Reg->BitWidth != 32) &&
-        (Reg->BitWidth != MaxBitWidth))
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Unsupported register bit width: 0x%X", Reg->BitWidth));
-        return (AE_SUPPORT);
-    }
-
-    /* Validate the BitOffset. Just a warning for now. */
-
-    if (Reg->BitOffset != 0)
-    {
-        ACPI_WARNING ((AE_INFO,
-            "Unsupported register bit offset: 0x%X", Reg->BitOffset));
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwRead
- *
- * PARAMETERS:  Value               - Where the value is returned
- *              Reg                 - GAS register structure
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Read from either memory or IO space. This is a 32-bit max
- *              version of AcpiRead, used internally since the overhead of
- *              64-bit values is not needed.
- *
- * LIMITATIONS: <These limitations also apply to AcpiHwWrite>
- *      BitWidth must be exactly 8, 16, or 32.
- *      SpaceID must be SystemMemory or SystemIO.
- *      BitOffset and AccessWidth are currently ignored, as there has
- *          not been a need to implement these.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwRead (
-    UINT32                  *Value,
-    ACPI_GENERIC_ADDRESS    *Reg)
-{
-    UINT64                  Address;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_NAME (HwRead);
-
-
-    /* Validate contents of the GAS register */
-
-    Status = AcpiHwValidateRegister (Reg, 32, &Address);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Initialize entire 32-bit return value to zero */
-
-    *Value = 0;
-
-    /*
-     * Two address spaces supported: Memory or IO. PCI_Config is
-     * not supported here because the GAS structure is insufficient
-     */
-    if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)
-    {
-        Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS)
-                    Address, Value, Reg->BitWidth);
-    }
-    else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */
-    {
-        Status = AcpiHwReadPort ((ACPI_IO_ADDRESS)
-                    Address, Value, Reg->BitWidth);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_IO,
-        "Read:  %8.8X width %2d from %8.8X%8.8X (%s)\n",
-        *Value, Reg->BitWidth, ACPI_FORMAT_UINT64 (Address),
-        AcpiUtGetRegionName (Reg->SpaceId)));
-
-    return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwWrite
- *
- * PARAMETERS:  Value               - Value to be written
- *              Reg                 - GAS register structure
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Write to either memory or IO space. This is a 32-bit max
- *              version of AcpiWrite, used internally since the overhead of
- *              64-bit values is not needed.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwWrite (
-    UINT32                  Value,
-    ACPI_GENERIC_ADDRESS    *Reg)
-{
-    UINT64                  Address;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_NAME (HwWrite);
-
-
-    /* Validate contents of the GAS register */
-
-    Status = AcpiHwValidateRegister (Reg, 32, &Address);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /*
-     * Two address spaces supported: Memory or IO. PCI_Config is
-     * not supported here because the GAS structure is insufficient
-     */
-    if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)
-    {
-        Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS)
-                    Address, Value, Reg->BitWidth);
-    }
-    else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */
-    {
-        Status = AcpiHwWritePort ((ACPI_IO_ADDRESS)
-                    Address, Value, Reg->BitWidth);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_IO,
-        "Wrote: %8.8X width %2d   to %8.8X%8.8X (%s)\n",
-        Value, Reg->BitWidth, ACPI_FORMAT_UINT64 (Address),
-        AcpiUtGetRegionName (Reg->SpaceId)));
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiHwClearAcpiStatus
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Clears all fixed and general purpose status bits
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwClearAcpiStatus (
-    void)
-{
-    ACPI_STATUS             Status;
-    ACPI_CPU_FLAGS          LockFlags = 0;
-
-
-    ACPI_FUNCTION_TRACE (HwClearAcpiStatus);
-
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_IO, "About to write %04X to %8.8X%8.8X\n",
-        ACPI_BITMASK_ALL_FIXED_STATUS,
-        ACPI_FORMAT_UINT64 (AcpiGbl_XPm1aStatus.Address)));
-
-    LockFlags = AcpiOsAcquireLock (AcpiGbl_HardwareLock);
-
-    /* Clear the fixed events in PM1 A/B */
-
-    Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_STATUS,
-                ACPI_BITMASK_ALL_FIXED_STATUS);
-    if (ACPI_FAILURE (Status))
-    {
-        goto UnlockAndExit;
-    }
-
-    /* Clear the GPE Bits in all GPE registers in all GPE blocks */
-
-    Status = AcpiEvWalkGpeList (AcpiHwClearGpeBlock, NULL);
-
-UnlockAndExit:
-    AcpiOsReleaseLock (AcpiGbl_HardwareLock, LockFlags);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiHwGetRegisterBitMask
- *
- * PARAMETERS:  RegisterId          - Index of ACPI Register to access
- *
- * RETURN:      The bitmask to be used when accessing the register
- *
- * DESCRIPTION: Map RegisterId into a register bitmask.
- *
- ******************************************************************************/
-
-ACPI_BIT_REGISTER_INFO *
-AcpiHwGetBitRegisterInfo (
-    UINT32                  RegisterId)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (RegisterId > ACPI_BITREG_MAX)
-    {
-        ACPI_ERROR ((AE_INFO, "Invalid BitRegister ID: %X", RegisterId));
-        return (NULL);
-    }
-
-    return (&AcpiGbl_BitRegisterInfo[RegisterId]);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwWritePm1Control
- *
- * PARAMETERS:  Pm1aControl         - Value to be written to PM1A control
- *              Pm1bControl         - Value to be written to PM1B control
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Write the PM1 A/B control registers. These registers are
- *              different than than the PM1 A/B status and enable registers
- *              in that different values can be written to the A/B registers.
- *              Most notably, the SLP_TYP bits can be different, as per the
- *              values returned from the _Sx predefined methods.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwWritePm1Control (
-    UINT32                  Pm1aControl,
-    UINT32                  Pm1bControl)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (HwWritePm1Control);
-
-
-    Status = AcpiHwWrite (Pm1aControl, &AcpiGbl_FADT.XPm1aControlBlock);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (AcpiGbl_FADT.XPm1bControlBlock.Address)
-    {
-        Status = AcpiHwWrite (Pm1bControl, &AcpiGbl_FADT.XPm1bControlBlock);
-    }
-    return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwRegisterRead
- *
- * PARAMETERS:  RegisterId          - ACPI Register ID
- *              ReturnValue         - Where the register value is returned
- *
- * RETURN:      Status and the value read.
- *
- * DESCRIPTION: Read from the specified ACPI register
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwRegisterRead (
-    UINT32                  RegisterId,
-    UINT32                  *ReturnValue)
-{
-    UINT32                  Value = 0;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (HwRegisterRead);
-
-
-    switch (RegisterId)
-    {
-    case ACPI_REGISTER_PM1_STATUS:           /* PM1 A/B: 16-bit access each */
-
-        Status = AcpiHwReadMultiple (&Value,
-                    &AcpiGbl_XPm1aStatus,
-                    &AcpiGbl_XPm1bStatus);
-        break;
-
-
-    case ACPI_REGISTER_PM1_ENABLE:           /* PM1 A/B: 16-bit access each */
-
-        Status = AcpiHwReadMultiple (&Value,
-                    &AcpiGbl_XPm1aEnable,
-                    &AcpiGbl_XPm1bEnable);
-        break;
-
-
-    case ACPI_REGISTER_PM1_CONTROL:          /* PM1 A/B: 16-bit access each */
-
-        Status = AcpiHwReadMultiple (&Value,
-                    &AcpiGbl_FADT.XPm1aControlBlock,
-                    &AcpiGbl_FADT.XPm1bControlBlock);
-
-        /*
-         * Zero the write-only bits. From the ACPI specification, "Hardware
-         * Write-Only Bits": "Upon reads to registers with write-only bits,
-         * software masks out all write-only bits."
-         */
-        Value &= ~ACPI_PM1_CONTROL_WRITEONLY_BITS;
-        break;
-
-
-    case ACPI_REGISTER_PM2_CONTROL:          /* 8-bit access */
-
-        Status = AcpiHwRead (&Value, &AcpiGbl_FADT.XPm2ControlBlock);
-        break;
-
-
-    case ACPI_REGISTER_PM_TIMER:             /* 32-bit access */
-
-        Status = AcpiHwRead (&Value, &AcpiGbl_FADT.XPmTimerBlock);
-        break;
-
-
-    case ACPI_REGISTER_SMI_COMMAND_BLOCK:    /* 8-bit access */
-
-        Status = AcpiHwReadPort (AcpiGbl_FADT.SmiCommand, &Value, 8);
-        break;
-
-
-    default:
-        ACPI_ERROR ((AE_INFO, "Unknown Register ID: %X",
-            RegisterId));
-        Status = AE_BAD_PARAMETER;
-        break;
-    }
-
-    if (ACPI_SUCCESS (Status))
-    {
-        *ReturnValue = Value;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwRegisterWrite
- *
- * PARAMETERS:  RegisterId          - ACPI Register ID
- *              Value               - The value to write
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Write to the specified ACPI register
- *
- * NOTE: In accordance with the ACPI specification, this function automatically
- * preserves the value of the following bits, meaning that these bits cannot be
- * changed via this interface:
- *
- * PM1_CONTROL[0] = SCI_EN
- * PM1_CONTROL[9]
- * PM1_STATUS[11]
- *
- * ACPI References:
- * 1) Hardware Ignored Bits: When software writes to a register with ignored
- *      bit fields, it preserves the ignored bit fields
- * 2) SCI_EN: OSPM always preserves this bit position
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwRegisterWrite (
-    UINT32                  RegisterId,
-    UINT32                  Value)
-{
-    ACPI_STATUS             Status;
-    UINT32                  ReadValue;
-
-
-    ACPI_FUNCTION_TRACE (HwRegisterWrite);
-
-
-    switch (RegisterId)
-    {
-    case ACPI_REGISTER_PM1_STATUS:           /* PM1 A/B: 16-bit access each */
-        /*
-         * Handle the "ignored" bit in PM1 Status. According to the ACPI
-         * specification, ignored bits are to be preserved when writing.
-         * Normally, this would mean a read/modify/write sequence. However,
-         * preserving a bit in the status register is different. Writing a
-         * one clears the status, and writing a zero preserves the status.
-         * Therefore, we must always write zero to the ignored bit.
-         *
-         * This behavior is clarified in the ACPI 4.0 specification.
-         */
-        Value &= ~ACPI_PM1_STATUS_PRESERVED_BITS;
-
-        Status = AcpiHwWriteMultiple (Value,
-                    &AcpiGbl_XPm1aStatus,
-                    &AcpiGbl_XPm1bStatus);
-        break;
-
-
-    case ACPI_REGISTER_PM1_ENABLE:           /* PM1 A/B: 16-bit access each */
-
-        Status = AcpiHwWriteMultiple (Value,
-                    &AcpiGbl_XPm1aEnable,
-                    &AcpiGbl_XPm1bEnable);
-        break;
-
-
-    case ACPI_REGISTER_PM1_CONTROL:          /* PM1 A/B: 16-bit access each */
-
-        /*
-         * Perform a read first to preserve certain bits (per ACPI spec)
-         * Note: This includes SCI_EN, we never want to change this bit
-         */
-        Status = AcpiHwReadMultiple (&ReadValue,
-                    &AcpiGbl_FADT.XPm1aControlBlock,
-                    &AcpiGbl_FADT.XPm1bControlBlock);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Exit;
-        }
-
-        /* Insert the bits to be preserved */
-
-        ACPI_INSERT_BITS (Value, ACPI_PM1_CONTROL_PRESERVED_BITS, ReadValue);
-
-        /* Now we can write the data */
-
-        Status = AcpiHwWriteMultiple (Value,
-                    &AcpiGbl_FADT.XPm1aControlBlock,
-                    &AcpiGbl_FADT.XPm1bControlBlock);
-        break;
-
-
-    case ACPI_REGISTER_PM2_CONTROL:          /* 8-bit access */
-
-        /*
-         * For control registers, all reserved bits must be preserved,
-         * as per the ACPI spec.
-         */
-        Status = AcpiHwRead (&ReadValue, &AcpiGbl_FADT.XPm2ControlBlock);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Exit;
-        }
-
-        /* Insert the bits to be preserved */
-
-        ACPI_INSERT_BITS (Value, ACPI_PM2_CONTROL_PRESERVED_BITS, ReadValue);
-
-        Status = AcpiHwWrite (Value, &AcpiGbl_FADT.XPm2ControlBlock);
-        break;
-
-
-    case ACPI_REGISTER_PM_TIMER:             /* 32-bit access */
-
-        Status = AcpiHwWrite (Value, &AcpiGbl_FADT.XPmTimerBlock);
-        break;
-
-
-    case ACPI_REGISTER_SMI_COMMAND_BLOCK:    /* 8-bit access */
-
-        /* SMI_CMD is currently always in IO space */
-
-        Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, Value, 8);
-        break;
-
-
-    default:
-        ACPI_ERROR ((AE_INFO, "Unknown Register ID: %X",
-            RegisterId));
-        Status = AE_BAD_PARAMETER;
-        break;
-    }
-
-Exit:
-    return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwReadMultiple
- *
- * PARAMETERS:  Value               - Where the register value is returned
- *              RegisterA           - First ACPI register (required)
- *              RegisterB           - Second ACPI register (optional)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Read from the specified two-part ACPI register (such as PM1 A/B)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiHwReadMultiple (
-    UINT32                  *Value,
-    ACPI_GENERIC_ADDRESS    *RegisterA,
-    ACPI_GENERIC_ADDRESS    *RegisterB)
-{
-    UINT32                  ValueA = 0;
-    UINT32                  ValueB = 0;
-    ACPI_STATUS             Status;
-
-
-    /* The first register is always required */
-
-    Status = AcpiHwRead (&ValueA, RegisterA);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Second register is optional */
-
-    if (RegisterB->Address)
-    {
-        Status = AcpiHwRead (&ValueB, RegisterB);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-    }
-
-    /*
-     * OR the two return values together. No shifting or masking is necessary,
-     * because of how the PM1 registers are defined in the ACPI specification:
-     *
-     * "Although the bits can be split between the two register blocks (each
-     * register block has a unique pointer within the FADT), the bit positions
-     * are maintained. The register block with unimplemented bits (that is,
-     * those implemented in the other register block) always returns zeros,
-     * and writes have no side effects"
-     */
-    *Value = (ValueA | ValueB);
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwWriteMultiple
- *
- * PARAMETERS:  Value               - The value to write
- *              RegisterA           - First ACPI register (required)
- *              RegisterB           - Second ACPI register (optional)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Write to the specified two-part ACPI register (such as PM1 A/B)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiHwWriteMultiple (
-    UINT32                  Value,
-    ACPI_GENERIC_ADDRESS    *RegisterA,
-    ACPI_GENERIC_ADDRESS    *RegisterB)
-{
-    ACPI_STATUS             Status;
-
-
-    /* The first register is always required */
-
-    Status = AcpiHwWrite (Value, RegisterA);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /*
-     * Second register is optional
-     *
-     * No bit shifting or clearing is necessary, because of how the PM1
-     * registers are defined in the ACPI specification:
-     *
-     * "Although the bits can be split between the two register blocks (each
-     * register block has a unique pointer within the FADT), the bit positions
-     * are maintained. The register block with unimplemented bits (that is,
-     * those implemented in the other register block) always returns zeros,
-     * and writes have no side effects"
-     */
-    if (RegisterB->Address)
-    {
-        Status = AcpiHwWrite (Value, RegisterB);
-    }
-
-    return (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwsleep.c b/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwsleep.c
deleted file mode 100644 (file)
index fed4f1d..0000000
+++ /dev/null
@@ -1,711 +0,0 @@
-
-/******************************************************************************
- *
- * Name: hwsleep.c - ACPI Hardware Sleep/Wake Interface
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-
-#define _COMPONENT          ACPI_HARDWARE
-        ACPI_MODULE_NAME    ("hwsleep")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiSetFirmwareWakingVector
- *
- * PARAMETERS:  PhysicalAddress     - 32-bit physical address of ACPI real mode
- *                                    entry point.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Sets the 32-bit FirmwareWakingVector field of the FACS
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSetFirmwareWakingVector (
-    UINT32                  PhysicalAddress)
-{
-    ACPI_FUNCTION_TRACE (AcpiSetFirmwareWakingVector);
-
-
-    /* Set the 32-bit vector */
-
-    AcpiGbl_FACS->FirmwareWakingVector = PhysicalAddress;
-
-    /* Clear the 64-bit vector if it exists */
-
-    if ((AcpiGbl_FACS->Length > 32) && (AcpiGbl_FACS->Version >= 1))
-    {
-        AcpiGbl_FACS->XFirmwareWakingVector = 0;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSetFirmwareWakingVector)
-
-
-#if ACPI_MACHINE_WIDTH == 64
-/*******************************************************************************
- *
- * FUNCTION:    AcpiSetFirmwareWakingVector64
- *
- * PARAMETERS:  PhysicalAddress     - 64-bit physical address of ACPI protected
- *                                    mode entry point.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Sets the 64-bit X_FirmwareWakingVector field of the FACS, if
- *              it exists in the table. This function is intended for use with
- *              64-bit host operating systems.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSetFirmwareWakingVector64 (
-    UINT64                  PhysicalAddress)
-{
-    ACPI_FUNCTION_TRACE (AcpiSetFirmwareWakingVector64);
-
-
-    /* Determine if the 64-bit vector actually exists */
-
-    if ((AcpiGbl_FACS->Length <= 32) || (AcpiGbl_FACS->Version < 1))
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    /* Clear 32-bit vector, set the 64-bit X_ vector */
-
-    AcpiGbl_FACS->FirmwareWakingVector = 0;
-    AcpiGbl_FACS->XFirmwareWakingVector = PhysicalAddress;
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSetFirmwareWakingVector64)
-#endif
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEnterSleepStatePrep
- *
- * PARAMETERS:  SleepState          - Which sleep state to enter
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Prepare to enter a system sleep state (see ACPI 2.0 spec p 231)
- *              This function must execute with interrupts enabled.
- *              We break sleeping into 2 stages so that OSPM can handle
- *              various OS-specific tasks between the two steps.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnterSleepStatePrep (
-    UINT8                   SleepState)
-{
-    ACPI_STATUS             Status;
-    ACPI_OBJECT_LIST        ArgList;
-    ACPI_OBJECT             Arg;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEnterSleepStatePrep);
-
-
-    /* _PSW methods could be run here to enable wake-on keyboard, LAN, etc. */
-
-    Status = AcpiGetSleepTypeData (SleepState,
-                    &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Execute the _PTS method (Prepare To Sleep) */
-
-    ArgList.Count = 1;
-    ArgList.Pointer = &Arg;
-    Arg.Type = ACPI_TYPE_INTEGER;
-    Arg.Integer.Value = SleepState;
-
-    Status = AcpiEvaluateObject (NULL, METHOD_NAME__PTS, &ArgList, NULL);
-    if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Setup the argument to the _SST method (System STatus) */
-
-    switch (SleepState)
-    {
-    case ACPI_STATE_S0:
-        Arg.Integer.Value = ACPI_SST_WORKING;
-        break;
-
-    case ACPI_STATE_S1:
-    case ACPI_STATE_S2:
-    case ACPI_STATE_S3:
-        Arg.Integer.Value = ACPI_SST_SLEEPING;
-        break;
-
-    case ACPI_STATE_S4:
-        Arg.Integer.Value = ACPI_SST_SLEEP_CONTEXT;
-        break;
-
-    default:
-        Arg.Integer.Value = ACPI_SST_INDICATOR_OFF; /* Default is off */
-        break;
-    }
-
-    /*
-     * Set the system indicators to show the desired sleep state.
-     * _SST is an optional method (return no error if not found)
-     */
-    Status = AcpiEvaluateObject (NULL, METHOD_NAME__SST, &ArgList, NULL);
-    if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "While executing method _SST"));
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnterSleepStatePrep)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEnterSleepState
- *
- * PARAMETERS:  SleepState          - Which sleep state to enter
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Enter a system sleep state
- *              THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnterSleepState (
-    UINT8                   SleepState)
-{
-    UINT32                  Pm1aControl;
-    UINT32                  Pm1bControl;
-    ACPI_BIT_REGISTER_INFO  *SleepTypeRegInfo;
-    ACPI_BIT_REGISTER_INFO  *SleepEnableRegInfo;
-    UINT32                  InValue;
-    ACPI_OBJECT_LIST        ArgList;
-    ACPI_OBJECT             Arg;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEnterSleepState);
-
-
-    if ((AcpiGbl_SleepTypeA > ACPI_SLEEP_TYPE_MAX) ||
-        (AcpiGbl_SleepTypeB > ACPI_SLEEP_TYPE_MAX))
-    {
-        ACPI_ERROR ((AE_INFO, "Sleep values out of range: A=%X B=%X",
-            AcpiGbl_SleepTypeA, AcpiGbl_SleepTypeB));
-        return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
-    }
-
-    SleepTypeRegInfo   = AcpiHwGetBitRegisterInfo (ACPI_BITREG_SLEEP_TYPE);
-    SleepEnableRegInfo = AcpiHwGetBitRegisterInfo (ACPI_BITREG_SLEEP_ENABLE);
-
-    /* Clear wake status */
-
-    Status = AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, ACPI_CLEAR_STATUS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Clear all fixed and general purpose status bits */
-
-    Status = AcpiHwClearAcpiStatus ();
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (SleepState != ACPI_STATE_S5)
-    {
-        /*
-         * Disable BM arbitration. This feature is contained within an
-         * optional register (PM2 Control), so ignore a BAD_ADDRESS
-         * exception.
-         */
-        Status = AcpiWriteBitRegister (ACPI_BITREG_ARB_DISABLE, 1);
-        if (ACPI_FAILURE (Status) && (Status != AE_BAD_ADDRESS))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * 1) Disable/Clear all GPEs
-     * 2) Enable all wakeup GPEs
-     */
-    Status = AcpiHwDisableAllGpes ();
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-    AcpiGbl_SystemAwakeAndRunning = FALSE;
-
-    Status = AcpiHwEnableAllWakeupGpes ();
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Execute the _GTS method (Going To Sleep) */
-
-    ArgList.Count = 1;
-    ArgList.Pointer = &Arg;
-    Arg.Type = ACPI_TYPE_INTEGER;
-    Arg.Integer.Value = SleepState;
-
-    Status = AcpiEvaluateObject (NULL, METHOD_NAME__GTS, &ArgList, NULL);
-    if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Get current value of PM1A control */
-
-    Status = AcpiHwRegisterRead (ACPI_REGISTER_PM1_CONTROL,
-                &Pm1aControl);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-    ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
-        "Entering sleep state [S%d]\n", SleepState));
-
-    /* Clear the SLP_EN and SLP_TYP fields */
-
-    Pm1aControl &= ~(SleepTypeRegInfo->AccessBitMask |
-                     SleepEnableRegInfo->AccessBitMask);
-    Pm1bControl = Pm1aControl;
-
-    /* Insert the SLP_TYP bits */
-
-    Pm1aControl |= (AcpiGbl_SleepTypeA << SleepTypeRegInfo->BitPosition);
-    Pm1bControl |= (AcpiGbl_SleepTypeB << SleepTypeRegInfo->BitPosition);
-
-    /*
-     * We split the writes of SLP_TYP and SLP_EN to workaround
-     * poorly implemented hardware.
-     */
-
-    /* Write #1: write the SLP_TYP data to the PM1 Control registers */
-
-    Status = AcpiHwWritePm1Control (Pm1aControl, Pm1bControl);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Insert the sleep enable (SLP_EN) bit */
-
-    Pm1aControl |= SleepEnableRegInfo->AccessBitMask;
-    Pm1bControl |= SleepEnableRegInfo->AccessBitMask;
-
-    /* Flush caches, as per ACPI specification */
-
-    ACPI_FLUSH_CPU_CACHE ();
-
-    /* Write #2: Write both SLP_TYP + SLP_EN */
-
-    Status = AcpiHwWritePm1Control (Pm1aControl, Pm1bControl);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (SleepState > ACPI_STATE_S3)
-    {
-        /*
-         * We wanted to sleep > S3, but it didn't happen (by virtue of the
-         * fact that we are still executing!)
-         *
-         * Wait ten seconds, then try again. This is to get S4/S5 to work on
-         * all machines.
-         *
-         * We wait so long to allow chipsets that poll this reg very slowly
-         * to still read the right value. Ideally, this block would go
-         * away entirely.
-         */
-        AcpiOsStall (10000000);
-
-        Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_CONTROL,
-                    SleepEnableRegInfo->AccessBitMask);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Wait until we enter sleep state */
-
-    do
-    {
-        Status = AcpiReadBitRegister (ACPI_BITREG_WAKE_STATUS, &InValue);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Spin until we wake */
-
-    } while (!InValue);
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnterSleepState)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEnterSleepStateS4bios
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Perform a S4 bios request.
- *              THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnterSleepStateS4bios (
-    void)
-{
-    UINT32                  InValue;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEnterSleepStateS4bios);
-
-
-    /* Clear the wake status bit (PM1) */
-
-    Status = AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, ACPI_CLEAR_STATUS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiHwClearAcpiStatus ();
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * 1) Disable/Clear all GPEs
-     * 2) Enable all wakeup GPEs
-     */
-    Status = AcpiHwDisableAllGpes ();
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-    AcpiGbl_SystemAwakeAndRunning = FALSE;
-
-    Status = AcpiHwEnableAllWakeupGpes ();
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ACPI_FLUSH_CPU_CACHE ();
-
-    Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand,
-                (UINT32) AcpiGbl_FADT.S4BiosRequest, 8);
-
-    do {
-        AcpiOsStall(1000);
-        Status = AcpiReadBitRegister (ACPI_BITREG_WAKE_STATUS, &InValue);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    } while (!InValue);
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnterSleepStateS4bios)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiLeaveSleepState
- *
- * PARAMETERS:  SleepState          - Which sleep state we just exited
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Perform OS-independent ACPI cleanup after a sleep
- *              Called with interrupts ENABLED.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiLeaveSleepState (
-    UINT8                   SleepState)
-{
-    ACPI_OBJECT_LIST        ArgList;
-    ACPI_OBJECT             Arg;
-    ACPI_STATUS             Status;
-    ACPI_BIT_REGISTER_INFO  *SleepTypeRegInfo;
-    ACPI_BIT_REGISTER_INFO  *SleepEnableRegInfo;
-    UINT32                  Pm1aControl;
-    UINT32                  Pm1bControl;
-
-
-    ACPI_FUNCTION_TRACE (AcpiLeaveSleepState);
-
-
-    /*
-     * Set SLP_TYPE and SLP_EN to state S0.
-     * This is unclear from the ACPI Spec, but it is required
-     * by some machines.
-     */
-    Status = AcpiGetSleepTypeData (ACPI_STATE_S0,
-                    &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB);
-    if (ACPI_SUCCESS (Status))
-    {
-        SleepTypeRegInfo =
-            AcpiHwGetBitRegisterInfo (ACPI_BITREG_SLEEP_TYPE);
-        SleepEnableRegInfo =
-            AcpiHwGetBitRegisterInfo (ACPI_BITREG_SLEEP_ENABLE);
-
-        /* Get current value of PM1A control */
-
-        Status = AcpiHwRegisterRead (ACPI_REGISTER_PM1_CONTROL,
-                    &Pm1aControl);
-        if (ACPI_SUCCESS (Status))
-        {
-            /* Clear the SLP_EN and SLP_TYP fields */
-
-            Pm1aControl &= ~(SleepTypeRegInfo->AccessBitMask |
-                SleepEnableRegInfo->AccessBitMask);
-            Pm1bControl = Pm1aControl;
-
-            /* Insert the SLP_TYP bits */
-
-            Pm1aControl |= (AcpiGbl_SleepTypeA <<
-                SleepTypeRegInfo->BitPosition);
-            Pm1bControl |= (AcpiGbl_SleepTypeB <<
-                SleepTypeRegInfo->BitPosition);
-
-            /* Write the control registers and ignore any errors */
-
-            (void) AcpiHwWritePm1Control (Pm1aControl, Pm1bControl);
-        }
-    }
-
-    /* Ensure EnterSleepStatePrep -> EnterSleepState ordering */
-
-    AcpiGbl_SleepTypeA = ACPI_SLEEP_TYPE_INVALID;
-
-    /* Setup parameter object */
-
-    ArgList.Count = 1;
-    ArgList.Pointer = &Arg;
-    Arg.Type = ACPI_TYPE_INTEGER;
-
-    /* Ignore any errors from these methods */
-
-    Arg.Integer.Value = ACPI_SST_WAKING;
-    Status = AcpiEvaluateObject (NULL, METHOD_NAME__SST, &ArgList, NULL);
-    if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During Method _SST"));
-    }
-
-    Arg.Integer.Value = SleepState;
-    Status = AcpiEvaluateObject (NULL, METHOD_NAME__BFS, &ArgList, NULL);
-    if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During Method _BFS"));
-    }
-
-    Status = AcpiEvaluateObject (NULL, METHOD_NAME__WAK, &ArgList, NULL);
-    if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During Method _WAK"));
-    }
-    /* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */
-
-    /*
-     * Restore the GPEs:
-     * 1) Disable/Clear all GPEs
-     * 2) Enable all runtime GPEs
-     */
-    Status = AcpiHwDisableAllGpes ();
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-    AcpiGbl_SystemAwakeAndRunning = TRUE;
-
-    Status = AcpiHwEnableAllRuntimeGpes ();
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Enable power button */
-
-    (void) AcpiWriteBitRegister(
-            AcpiGbl_FixedEventInfo[ACPI_EVENT_POWER_BUTTON].EnableRegisterId,
-            ACPI_ENABLE_EVENT);
-
-    (void) AcpiWriteBitRegister(
-            AcpiGbl_FixedEventInfo[ACPI_EVENT_POWER_BUTTON].StatusRegisterId,
-            ACPI_CLEAR_STATUS);
-
-    /*
-     * Enable BM arbitration. This feature is contained within an
-     * optional register (PM2 Control), so ignore a BAD_ADDRESS
-     * exception.
-     */
-    Status = AcpiWriteBitRegister (ACPI_BITREG_ARB_DISABLE, 0);
-    if (ACPI_FAILURE (Status) && (Status != AE_BAD_ADDRESS))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Arg.Integer.Value = ACPI_SST_WORKING;
-    Status = AcpiEvaluateObject (NULL, METHOD_NAME__SST, &ArgList, NULL);
-    if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During Method _SST"));
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiLeaveSleepState)
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwtimer.c b/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwtimer.c
deleted file mode 100644 (file)
index f86fb7f..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-
-/******************************************************************************
- *
- * Name: hwtimer.c - ACPI Power Management Timer Interface
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-
-#define _COMPONENT          ACPI_HARDWARE
-        ACPI_MODULE_NAME    ("hwtimer")
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiGetTimerResolution
- *
- * PARAMETERS:  Resolution          - Where the resolution is returned
- *
- * RETURN:      Status and timer resolution
- *
- * DESCRIPTION: Obtains resolution of the ACPI PM Timer (24 or 32 bits).
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTimerResolution (
-    UINT32                  *Resolution)
-{
-    ACPI_FUNCTION_TRACE (AcpiGetTimerResolution);
-
-
-    if (!Resolution)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if ((AcpiGbl_FADT.Flags & ACPI_FADT_32BIT_TIMER) == 0)
-    {
-        *Resolution = 24;
-    }
-    else
-    {
-        *Resolution = 32;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTimerResolution)
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiGetTimer
- *
- * PARAMETERS:  Ticks               - Where the timer value is returned
- *
- * RETURN:      Status and current timer value (ticks)
- *
- * DESCRIPTION: Obtains current value of ACPI PM Timer (in ticks).
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTimer (
-    UINT32                  *Ticks)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetTimer);
-
-
-    if (!Ticks)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiHwRead (Ticks, &AcpiGbl_FADT.XPmTimerBlock);
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTimer)
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiGetTimerDuration
- *
- * PARAMETERS:  StartTicks          - Starting timestamp
- *              EndTicks            - End timestamp
- *              TimeElapsed         - Where the elapsed time is returned
- *
- * RETURN:      Status and TimeElapsed
- *
- * DESCRIPTION: Computes the time elapsed (in microseconds) between two
- *              PM Timer time stamps, taking into account the possibility of
- *              rollovers, the timer resolution, and timer frequency.
- *
- *              The PM Timer's clock ticks at roughly 3.6 times per
- *              _microsecond_, and its clock continues through Cx state
- *              transitions (unlike many CPU timestamp counters) -- making it
- *              a versatile and accurate timer.
- *
- *              Note that this function accommodates only a single timer
- *              rollover.  Thus for 24-bit timers, this function should only
- *              be used for calculating durations less than ~4.6 seconds
- *              (~20 minutes for 32-bit timers) -- calculations below:
- *
- *              2**24 Ticks / 3,600,000 Ticks/Sec = 4.66 sec
- *              2**32 Ticks / 3,600,000 Ticks/Sec = 1193 sec or 19.88 minutes
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTimerDuration (
-    UINT32                  StartTicks,
-    UINT32                  EndTicks,
-    UINT32                  *TimeElapsed)
-{
-    ACPI_STATUS             Status;
-    UINT32                  DeltaTicks;
-    ACPI_INTEGER            Quotient;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetTimerDuration);
-
-
-    if (!TimeElapsed)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Compute Tick Delta:
-     * Handle (max one) timer rollovers on 24-bit versus 32-bit timers.
-     */
-    if (StartTicks < EndTicks)
-    {
-        DeltaTicks = EndTicks - StartTicks;
-    }
-    else if (StartTicks > EndTicks)
-    {
-        if ((AcpiGbl_FADT.Flags & ACPI_FADT_32BIT_TIMER) == 0)
-        {
-            /* 24-bit Timer */
-
-            DeltaTicks = (((0x00FFFFFF - StartTicks) + EndTicks) & 0x00FFFFFF);
-        }
-        else
-        {
-            /* 32-bit Timer */
-
-            DeltaTicks = (0xFFFFFFFF - StartTicks) + EndTicks;
-        }
-    }
-    else /* StartTicks == EndTicks */
-    {
-        *TimeElapsed = 0;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * Compute Duration (Requires a 64-bit multiply and divide):
-     *
-     * TimeElapsed = (DeltaTicks * 1000000) / PM_TIMER_FREQUENCY;
-     */
-    Status = AcpiUtShortDivide (((UINT64) DeltaTicks) * 1000000,
-                PM_TIMER_FREQUENCY, &Quotient, NULL);
-
-    *TimeElapsed = (UINT32) Quotient;
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTimerDuration)
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwvalid.c b/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwvalid.c
deleted file mode 100644 (file)
index 650b695..0000000
+++ /dev/null
@@ -1,424 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: hwvalid - I/O request validation
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __HWVALID_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-#define _COMPONENT          ACPI_HARDWARE
-        ACPI_MODULE_NAME    ("hwvalid")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiHwValidateIoRequest (
-    ACPI_IO_ADDRESS         Address,
-    UINT32                  BitWidth);
-
-
-/*
- * Protected I/O ports. Some ports are always illegal, and some are
- * conditionally illegal. This table must remain ordered by port address.
- *
- * The table is used to implement the Microsoft port access rules that
- * first appeared in Windows XP. Some ports are always illegal, and some
- * ports are only illegal if the BIOS calls _OSI with a WinXP string or
- * later (meaning that the BIOS itelf is post-XP.)
- *
- * This provides ACPICA with the desired port protections and
- * Microsoft compatibility.
- *
- * Description of port entries:
- *  DMA:   DMA controller
- *  PIC0:  Programmable Interrupt Controller (8259A)
- *  PIT1:  System Timer 1
- *  PIT2:  System Timer 2 failsafe
- *  RTC:   Real-time clock
- *  CMOS:  Extended CMOS
- *  DMA1:  DMA 1 page registers
- *  DMA1L: DMA 1 Ch 0 low page
- *  DMA2:  DMA 2 page registers
- *  DMA2L: DMA 2 low page refresh
- *  ARBC:  Arbitration control
- *  SETUP: Reserved system board setup
- *  POS:   POS channel select
- *  PIC1:  Cascaded PIC
- *  IDMA:  ISA DMA
- *  ELCR:  PIC edge/level registers
- *  PCI:   PCI configuration space
- */
-static const ACPI_PORT_INFO     AcpiProtectedPorts[] =
-{
-    {"DMA",     0x0000, 0x000F, ACPI_OSI_WIN_XP},
-    {"PIC0",    0x0020, 0x0021, ACPI_ALWAYS_ILLEGAL},
-    {"PIT1",    0x0040, 0x0043, ACPI_OSI_WIN_XP},
-    {"PIT2",    0x0048, 0x004B, ACPI_OSI_WIN_XP},
-    {"RTC",     0x0070, 0x0071, ACPI_OSI_WIN_XP},
-    {"CMOS",    0x0074, 0x0076, ACPI_OSI_WIN_XP},
-    {"DMA1",    0x0081, 0x0083, ACPI_OSI_WIN_XP},
-    {"DMA1L",   0x0087, 0x0087, ACPI_OSI_WIN_XP},
-    {"DMA2",    0x0089, 0x008B, ACPI_OSI_WIN_XP},
-    {"DMA2L",   0x008F, 0x008F, ACPI_OSI_WIN_XP},
-    {"ARBC",    0x0090, 0x0091, ACPI_OSI_WIN_XP},
-    {"SETUP",   0x0093, 0x0094, ACPI_OSI_WIN_XP},
-    {"POS",     0x0096, 0x0097, ACPI_OSI_WIN_XP},
-    {"PIC1",    0x00A0, 0x00A1, ACPI_ALWAYS_ILLEGAL},
-    {"IDMA",    0x00C0, 0x00DF, ACPI_OSI_WIN_XP},
-    {"ELCR",    0x04D0, 0x04D1, ACPI_ALWAYS_ILLEGAL},
-    {"PCI",     0x0CF8, 0x0CFF, ACPI_OSI_WIN_XP}
-};
-
-#define ACPI_PORT_INFO_ENTRIES  ACPI_ARRAY_LENGTH (AcpiProtectedPorts)
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwValidateIoRequest
- *
- * PARAMETERS:  Address             Address of I/O port/register
- *              BitWidth            Number of bits (8,16,32)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Validates an I/O request (address/length). Certain ports are
- *              always illegal and some ports are only illegal depending on
- *              the requests the BIOS AML code makes to the predefined
- *              _OSI method.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiHwValidateIoRequest (
-    ACPI_IO_ADDRESS         Address,
-    UINT32                  BitWidth)
-{
-    UINT32                  i;
-    UINT32                  ByteWidth;
-    ACPI_IO_ADDRESS         LastAddress;
-    const ACPI_PORT_INFO    *PortInfo;
-
-
-    ACPI_FUNCTION_TRACE (HwValidateIoRequest);
-
-
-    /* Supported widths are 8/16/32 */
-
-    if ((BitWidth != 8) &&
-        (BitWidth != 16) &&
-        (BitWidth != 32))
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    PortInfo = AcpiProtectedPorts;
-    ByteWidth = ACPI_DIV_8 (BitWidth);
-    LastAddress = Address + ByteWidth - 1;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_IO, "Address %p LastAddress %p Length %X",
-        ACPI_CAST_PTR (void, Address), ACPI_CAST_PTR (void, LastAddress),
-        ByteWidth));
-
-    /* Maximum 16-bit address in I/O space */
-
-    if (LastAddress > ACPI_UINT16_MAX)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Illegal I/O port address/length above 64K: 0x%p/%X",
-            ACPI_CAST_PTR (void, Address), ByteWidth));
-        return_ACPI_STATUS (AE_LIMIT);
-    }
-
-    /* Exit if requested address is not within the protected port table */
-
-    if (Address > AcpiProtectedPorts[ACPI_PORT_INFO_ENTRIES - 1].End)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Check request against the list of protected I/O ports */
-
-    for (i = 0; i < ACPI_PORT_INFO_ENTRIES; i++, PortInfo++)
-    {
-        /*
-         * Check if the requested address range will write to a reserved
-         * port. Four cases to consider:
-         *
-         * 1) Address range is contained completely in the port address range
-         * 2) Address range overlaps port range at the port range start
-         * 3) Address range overlaps port range at the port range end
-         * 4) Address range completely encompasses the port range
-         */
-        if ((Address <= PortInfo->End) && (LastAddress >= PortInfo->Start))
-        {
-            /* Port illegality may depend on the _OSI calls made by the BIOS */
-
-            if (AcpiGbl_OsiData >= PortInfo->OsiDependency)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_IO,
-                    "Denied AML access to port 0x%p/%X (%s 0x%.4X-0x%.4X)",
-                    ACPI_CAST_PTR (void, Address), ByteWidth, PortInfo->Name,
-                    PortInfo->Start, PortInfo->End));
-
-                return_ACPI_STATUS (AE_AML_ILLEGAL_ADDRESS);
-            }
-        }
-
-        /* Finished if address range ends before the end of this port */
-
-        if (LastAddress <= PortInfo->End)
-        {
-            break;
-        }
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwReadPort
- *
- * PARAMETERS:  Address             Address of I/O port/register to read
- *              Value               Where value is placed
- *              Width               Number of bits
- *
- * RETURN:      Status and value read from port
- *
- * DESCRIPTION: Read data from an I/O port or register. This is a front-end
- *              to AcpiOsReadPort that performs validation on both the port
- *              address and the length.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiHwReadPort (
-    ACPI_IO_ADDRESS         Address,
-    UINT32                  *Value,
-    UINT32                  Width)
-{
-    ACPI_STATUS             Status;
-    UINT32                  OneByte;
-    UINT32                  i;
-
-
-    /* Validate the entire request and perform the I/O */
-
-    Status = AcpiHwValidateIoRequest (Address, Width);
-    if (ACPI_SUCCESS (Status))
-    {
-        Status = AcpiOsReadPort (Address, Value, Width);
-        return (Status);
-    }
-
-    if (Status != AE_AML_ILLEGAL_ADDRESS)
-    {
-        return (Status);
-    }
-
-    /*
-     * There has been a protection violation within the request. Fall
-     * back to byte granularity port I/O and ignore the failing bytes.
-     * This provides Windows compatibility.
-     */
-    for (i = 0, *Value = 0; i < Width; i += 8)
-    {
-        /* Validate and read one byte */
-
-        if (AcpiHwValidateIoRequest (Address, 8) == AE_OK)
-        {
-            Status = AcpiOsReadPort (Address, &OneByte, 8);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-
-            *Value |= (OneByte << i);
-        }
-
-        Address++;
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiHwWritePort
- *
- * PARAMETERS:  Address             Address of I/O port/register to write
- *              Value               Value to write
- *              Width               Number of bits
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Write data to an I/O port or register. This is a front-end
- *              to AcpiOsWritePort that performs validation on both the port
- *              address and the length.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiHwWritePort (
-    ACPI_IO_ADDRESS         Address,
-    UINT32                  Value,
-    UINT32                  Width)
-{
-    ACPI_STATUS             Status;
-    UINT32                  i;
-
-
-    /* Validate the entire request and perform the I/O */
-
-    Status = AcpiHwValidateIoRequest (Address, Width);
-    if (ACPI_SUCCESS (Status))
-    {
-        Status = AcpiOsWritePort (Address, Value, Width);
-        return (Status);
-    }
-
-    if (Status != AE_AML_ILLEGAL_ADDRESS)
-    {
-        return (Status);
-    }
-
-    /*
-     * There has been a protection violation within the request. Fall
-     * back to byte granularity port I/O and ignore the failing bytes.
-     * This provides Windows compatibility.
-     */
-    for (i = 0; i < Width; i += 8)
-    {
-        /* Validate and write one byte */
-
-        if (AcpiHwValidateIoRequest (Address, 8) == AE_OK)
-        {
-            Status = AcpiOsWritePort (Address, (Value >> i) & 0xFF, 8);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-        }
-
-        Address++;
-    }
-
-    return (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwxface.c b/l4/pkg/acpica/lib-acpi/src/acpica/hardware/hwxface.c
deleted file mode 100644 (file)
index 6c345a5..0000000
+++ /dev/null
@@ -1,710 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: hwxface - Public ACPICA hardware interfaces
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-#define _COMPONENT          ACPI_HARDWARE
-        ACPI_MODULE_NAME    ("hwxface")
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiReset
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Set reset register in memory or IO space. Note: Does not
- *              support reset register in PCI config space, this must be
- *              handled separately.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiReset (
-    void)
-{
-    ACPI_GENERIC_ADDRESS    *ResetReg;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiReset);
-
-
-    ResetReg = &AcpiGbl_FADT.ResetRegister;
-
-    /* Check if the reset register is supported */
-
-    if (!(AcpiGbl_FADT.Flags & ACPI_FADT_RESET_REGISTER) ||
-        !ResetReg->Address)
-    {
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    if (ResetReg->SpaceId == ACPI_ADR_SPACE_SYSTEM_IO)
-    {
-        /*
-         * For I/O space, write directly to the OSL. This bypasses the port
-         * validation mechanism, which may block a valid write to the reset
-         * register.
-         */
-        Status = AcpiOsWritePort ((ACPI_IO_ADDRESS) ResetReg->Address,
-                    AcpiGbl_FADT.ResetValue, ResetReg->BitWidth);
-    }
-    else
-    {
-        /* Write the reset value to the reset register */
-
-        Status = AcpiHwWrite (AcpiGbl_FADT.ResetValue, ResetReg);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiReset)
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiRead
- *
- * PARAMETERS:  Value               - Where the value is returned
- *              Reg                 - GAS register structure
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Read from either memory or IO space.
- *
- * LIMITATIONS: <These limitations also apply to AcpiWrite>
- *      BitWidth must be exactly 8, 16, 32, or 64.
- *      SpaceID must be SystemMemory or SystemIO.
- *      BitOffset and AccessWidth are currently ignored, as there has
- *          not been a need to implement these.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRead (
-    UINT64                  *ReturnValue,
-    ACPI_GENERIC_ADDRESS    *Reg)
-{
-    UINT32                  Value;
-    UINT32                  Width;
-    UINT64                  Address;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_NAME (AcpiRead);
-
-
-    if (!ReturnValue)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Validate contents of the GAS register. Allow 64-bit transfers */
-
-    Status = AcpiHwValidateRegister (Reg, 64, &Address);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Width = Reg->BitWidth;
-    if (Width == 64)
-    {
-        Width = 32; /* Break into two 32-bit transfers */
-    }
-
-    /* Initialize entire 64-bit return value to zero */
-
-    *ReturnValue = 0;
-    Value = 0;
-
-    /*
-     * Two address spaces supported: Memory or IO. PCI_Config is
-     * not supported here because the GAS structure is insufficient
-     */
-    if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)
-    {
-        Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS)
-                    Address, &Value, Width);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-        *ReturnValue = Value;
-
-        if (Reg->BitWidth == 64)
-        {
-            /* Read the top 32 bits */
-
-            Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS)
-                        (Address + 4), &Value, 32);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-            *ReturnValue |= ((UINT64) Value << 32);
-        }
-    }
-    else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */
-    {
-        Status = AcpiHwReadPort ((ACPI_IO_ADDRESS)
-                    Address, &Value, Width);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-        *ReturnValue = Value;
-
-        if (Reg->BitWidth == 64)
-        {
-            /* Read the top 32 bits */
-
-            Status = AcpiHwReadPort ((ACPI_IO_ADDRESS)
-                        (Address + 4), &Value, 32);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-            *ReturnValue |= ((UINT64) Value << 32);
-        }
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_IO,
-        "Read:  %8.8X%8.8X width %2d from %8.8X%8.8X (%s)\n",
-        ACPI_FORMAT_UINT64 (*ReturnValue), Reg->BitWidth,
-        ACPI_FORMAT_UINT64 (Address),
-        AcpiUtGetRegionName (Reg->SpaceId)));
-
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRead)
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiWrite
- *
- * PARAMETERS:  Value               - Value to be written
- *              Reg                 - GAS register structure
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Write to either memory or IO space.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiWrite (
-    UINT64                  Value,
-    ACPI_GENERIC_ADDRESS    *Reg)
-{
-    UINT32                  Width;
-    UINT64                  Address;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_NAME (AcpiWrite);
-
-
-    /* Validate contents of the GAS register. Allow 64-bit transfers */
-
-    Status = AcpiHwValidateRegister (Reg, 64, &Address);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Width = Reg->BitWidth;
-    if (Width == 64)
-    {
-        Width = 32; /* Break into two 32-bit transfers */
-    }
-
-    /*
-     * Two address spaces supported: Memory or IO. PCI_Config is
-     * not supported here because the GAS structure is insufficient
-     */
-    if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)
-    {
-        Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS)
-                    Address, ACPI_LODWORD (Value), Width);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-
-        if (Reg->BitWidth == 64)
-        {
-            Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS)
-                        (Address + 4), ACPI_HIDWORD (Value), 32);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-        }
-    }
-    else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */
-    {
-        Status = AcpiHwWritePort ((ACPI_IO_ADDRESS)
-                    Address, ACPI_LODWORD (Value), Width);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-
-        if (Reg->BitWidth == 64)
-        {
-            Status = AcpiHwWritePort ((ACPI_IO_ADDRESS)
-                        (Address + 4), ACPI_HIDWORD (Value), 32);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-        }
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_IO,
-        "Wrote: %8.8X%8.8X width %2d   to %8.8X%8.8X (%s)\n",
-        ACPI_FORMAT_UINT64 (Value), Reg->BitWidth,
-        ACPI_FORMAT_UINT64 (Address),
-        AcpiUtGetRegionName (Reg->SpaceId)));
-
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiWrite)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiReadBitRegister
- *
- * PARAMETERS:  RegisterId      - ID of ACPI Bit Register to access
- *              ReturnValue     - Value that was read from the register,
- *                                normalized to bit position zero.
- *
- * RETURN:      Status and the value read from the specified Register. Value
- *              returned is normalized to bit0 (is shifted all the way right)
- *
- * DESCRIPTION: ACPI BitRegister read function. Does not acquire the HW lock.
- *
- * SUPPORTS:    Bit fields in PM1 Status, PM1 Enable, PM1 Control, and
- *              PM2 Control.
- *
- * Note: The hardware lock is not required when reading the ACPI bit registers
- *       since almost all of them are single bit and it does not matter that
- *       the parent hardware register can be split across two physical
- *       registers. The only multi-bit field is SLP_TYP in the PM1 control
- *       register, but this field does not cross an 8-bit boundary (nor does
- *       it make much sense to actually read this field.)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiReadBitRegister (
-    UINT32                  RegisterId,
-    UINT32                  *ReturnValue)
-{
-    ACPI_BIT_REGISTER_INFO  *BitRegInfo;
-    UINT32                  RegisterValue;
-    UINT32                  Value;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_U32 (AcpiReadBitRegister, RegisterId);
-
-
-    /* Get the info structure corresponding to the requested ACPI Register */
-
-    BitRegInfo = AcpiHwGetBitRegisterInfo (RegisterId);
-    if (!BitRegInfo)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Read the entire parent register */
-
-    Status = AcpiHwRegisterRead (BitRegInfo->ParentRegister,
-                &RegisterValue);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Normalize the value that was read, mask off other bits */
-
-    Value = ((RegisterValue & BitRegInfo->AccessBitMask)
-                >> BitRegInfo->BitPosition);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_IO,
-        "BitReg %X, ParentReg %X, Actual %8.8X, ReturnValue %8.8X\n",
-        RegisterId, BitRegInfo->ParentRegister, RegisterValue, Value));
-
-    *ReturnValue = Value;
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiReadBitRegister)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiWriteBitRegister
- *
- * PARAMETERS:  RegisterId      - ID of ACPI Bit Register to access
- *              Value           - Value to write to the register, in bit
- *                                position zero. The bit is automaticallly
- *                                shifted to the correct position.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: ACPI Bit Register write function. Acquires the hardware lock
- *              since most operations require a read/modify/write sequence.
- *
- * SUPPORTS:    Bit fields in PM1 Status, PM1 Enable, PM1 Control, and
- *              PM2 Control.
- *
- * Note that at this level, the fact that there may be actually two
- * hardware registers (A and B - and B may not exist) is abstracted.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiWriteBitRegister (
-    UINT32                  RegisterId,
-    UINT32                  Value)
-{
-    ACPI_BIT_REGISTER_INFO  *BitRegInfo;
-    ACPI_CPU_FLAGS          LockFlags;
-    UINT32                  RegisterValue;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_U32 (AcpiWriteBitRegister, RegisterId);
-
-
-    /* Get the info structure corresponding to the requested ACPI Register */
-
-    BitRegInfo = AcpiHwGetBitRegisterInfo (RegisterId);
-    if (!BitRegInfo)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    LockFlags = AcpiOsAcquireLock (AcpiGbl_HardwareLock);
-
-    /*
-     * At this point, we know that the parent register is one of the
-     * following: PM1 Status, PM1 Enable, PM1 Control, or PM2 Control
-     */
-    if (BitRegInfo->ParentRegister != ACPI_REGISTER_PM1_STATUS)
-    {
-        /*
-         * 1) Case for PM1 Enable, PM1 Control, and PM2 Control
-         *
-         * Perform a register read to preserve the bits that we are not
-         * interested in
-         */
-        Status = AcpiHwRegisterRead (BitRegInfo->ParentRegister,
-                    &RegisterValue);
-        if (ACPI_FAILURE (Status))
-        {
-            goto UnlockAndExit;
-        }
-
-        /*
-         * Insert the input bit into the value that was just read
-         * and write the register
-         */
-        ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
-            BitRegInfo->AccessBitMask, Value);
-
-        Status = AcpiHwRegisterWrite (BitRegInfo->ParentRegister,
-                    RegisterValue);
-    }
-    else
-    {
-        /*
-         * 2) Case for PM1 Status
-         *
-         * The Status register is different from the rest. Clear an event
-         * by writing 1, writing 0 has no effect. So, the only relevant
-         * information is the single bit we're interested in, all others
-         * should be written as 0 so they will be left unchanged.
-         */
-        RegisterValue = ACPI_REGISTER_PREPARE_BITS (Value,
-            BitRegInfo->BitPosition, BitRegInfo->AccessBitMask);
-
-        /* No need to write the register if value is all zeros */
-
-        if (RegisterValue)
-        {
-            Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_STATUS,
-                        RegisterValue);
-        }
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_IO,
-        "BitReg %X, ParentReg %X, Value %8.8X, Actual %8.8X\n",
-        RegisterId, BitRegInfo->ParentRegister, Value, RegisterValue));
-
-
-UnlockAndExit:
-
-    AcpiOsReleaseLock (AcpiGbl_HardwareLock, LockFlags);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiWriteBitRegister)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetSleepTypeData
- *
- * PARAMETERS:  SleepState          - Numeric sleep state
- *              *SleepTypeA         - Where SLP_TYPa is returned
- *              *SleepTypeB         - Where SLP_TYPb is returned
- *
- * RETURN:      Status - ACPI status
- *
- * DESCRIPTION: Obtain the SLP_TYPa and SLP_TYPb values for the requested sleep
- *              state.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetSleepTypeData (
-    UINT8                   SleepState,
-    UINT8                   *SleepTypeA,
-    UINT8                   *SleepTypeB)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_EVALUATE_INFO      *Info;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetSleepTypeData);
-
-
-    /* Validate parameters */
-
-    if ((SleepState > ACPI_S_STATES_MAX) ||
-        !SleepTypeA ||
-        !SleepTypeB)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Allocate the evaluation information block */
-
-    Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
-    if (!Info)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Info->Pathname = ACPI_CAST_PTR (char, AcpiGbl_SleepStateNames[SleepState]);
-
-    /* Evaluate the namespace object containing the values for this state */
-
-    Status = AcpiNsEvaluate (Info);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "%s while evaluating SleepState [%s]\n",
-            AcpiFormatException (Status), Info->Pathname));
-
-        goto Cleanup;
-    }
-
-    /* Must have a return object */
-
-    if (!Info->ReturnObject)
-    {
-        ACPI_ERROR ((AE_INFO, "No Sleep State object returned from [%s]",
-            Info->Pathname));
-        Status = AE_NOT_EXIST;
-    }
-
-    /* It must be of type Package */
-
-    else if (Info->ReturnObject->Common.Type != ACPI_TYPE_PACKAGE)
-    {
-        ACPI_ERROR ((AE_INFO, "Sleep State return object is not a Package"));
-        Status = AE_AML_OPERAND_TYPE;
-    }
-
-    /*
-     * The package must have at least two elements. NOTE (March 2005): This
-     * goes against the current ACPI spec which defines this object as a
-     * package with one encoded DWORD element. However, existing practice
-     * by BIOS vendors seems to be to have 2 or more elements, at least
-     * one per sleep type (A/B).
-     */
-    else if (Info->ReturnObject->Package.Count < 2)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Sleep State return package does not have at least two elements"));
-        Status = AE_AML_NO_OPERAND;
-    }
-
-    /* The first two elements must both be of type Integer */
-
-    else if (((Info->ReturnObject->Package.Elements[0])->Common.Type
-                != ACPI_TYPE_INTEGER) ||
-             ((Info->ReturnObject->Package.Elements[1])->Common.Type
-                != ACPI_TYPE_INTEGER))
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Sleep State return package elements are not both Integers "
-            "(%s, %s)",
-            AcpiUtGetObjectTypeName (Info->ReturnObject->Package.Elements[0]),
-            AcpiUtGetObjectTypeName (Info->ReturnObject->Package.Elements[1])));
-        Status = AE_AML_OPERAND_TYPE;
-    }
-    else
-    {
-        /* Valid _Sx_ package size, type, and value */
-
-        *SleepTypeA = (UINT8)
-            (Info->ReturnObject->Package.Elements[0])->Integer.Value;
-        *SleepTypeB = (UINT8)
-            (Info->ReturnObject->Package.Elements[1])->Integer.Value;
-    }
-
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "While evaluating SleepState [%s], bad Sleep object %p type %s",
-            Info->Pathname, Info->ReturnObject,
-            AcpiUtGetObjectTypeName (Info->ReturnObject)));
-    }
-
-    AcpiUtRemoveReference (Info->ReturnObject);
-
-Cleanup:
-    ACPI_FREE (Info);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetSleepTypeData)
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsaccess.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsaccess.c
deleted file mode 100644 (file)
index 2bc7d8d..0000000
+++ /dev/null
@@ -1,772 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsaccess - Top-level functions for accessing ACPI namespace
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSACCESS_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-#include "acdispat.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsaccess")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsRootInitialize
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Allocate and initialize the default root named objects
- *
- * MUTEX:       Locks namespace for entire execution
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsRootInitialize (
-    void)
-{
-    ACPI_STATUS                 Status;
-    const ACPI_PREDEFINED_NAMES *InitVal = NULL;
-    ACPI_NAMESPACE_NODE         *NewNode;
-    ACPI_OPERAND_OBJECT         *ObjDesc;
-    ACPI_STRING                 Val = NULL;
-
-
-    ACPI_FUNCTION_TRACE (NsRootInitialize);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * The global root ptr is initially NULL, so a non-NULL value indicates
-     * that AcpiNsRootInitialize() has already been called; just return.
-     */
-    if (AcpiGbl_RootNode)
-    {
-        Status = AE_OK;
-        goto UnlockAndExit;
-    }
-
-    /*
-     * Tell the rest of the subsystem that the root is initialized
-     * (This is OK because the namespace is locked)
-     */
-    AcpiGbl_RootNode = &AcpiGbl_RootNodeStruct;
-
-    /* Enter the pre-defined names in the name table */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-        "Entering predefined entries into namespace\n"));
-
-    for (InitVal = AcpiGbl_PreDefinedNames; InitVal->Name; InitVal++)
-    {
-        /* _OSI is optional for now, will be permanent later */
-
-        if (!ACPI_STRCMP (InitVal->Name, "_OSI") && !AcpiGbl_CreateOsiMethod)
-        {
-            continue;
-        }
-
-        Status = AcpiNsLookup (NULL, InitVal->Name, InitVal->Type,
-                        ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH,
-                        NULL, &NewNode);
-
-        if (ACPI_FAILURE (Status) || (!NewNode)) /* Must be on same line for code converter */
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "Could not create predefined name %s",
-                InitVal->Name));
-        }
-
-        /*
-         * Name entered successfully. If entry in PreDefinedNames[] specifies
-         * an initial value, create the initial value.
-         */
-        if (InitVal->Val)
-        {
-            Status = AcpiOsPredefinedOverride (InitVal, &Val);
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_ERROR ((AE_INFO,
-                    "Could not override predefined %s",
-                    InitVal->Name));
-            }
-
-            if (!Val)
-            {
-                Val = InitVal->Val;
-            }
-
-            /*
-             * Entry requests an initial value, allocate a
-             * descriptor for it.
-             */
-            ObjDesc = AcpiUtCreateInternalObject (InitVal->Type);
-            if (!ObjDesc)
-            {
-                Status = AE_NO_MEMORY;
-                goto UnlockAndExit;
-            }
-
-            /*
-             * Convert value string from table entry to
-             * internal representation. Only types actually
-             * used for initial values are implemented here.
-             */
-            switch (InitVal->Type)
-            {
-            case ACPI_TYPE_METHOD:
-                ObjDesc->Method.ParamCount = (UINT8) ACPI_TO_INTEGER (Val);
-                ObjDesc->Common.Flags |= AOPOBJ_DATA_VALID;
-
-#if defined (ACPI_ASL_COMPILER)
-
-                /* Save the parameter count for the iASL compiler */
-
-                NewNode->Value = ObjDesc->Method.ParamCount;
-#else
-                /* Mark this as a very SPECIAL method */
-
-                ObjDesc->Method.MethodFlags = AML_METHOD_INTERNAL_ONLY;
-                ObjDesc->Method.Extra.Implementation = AcpiUtOsiImplementation;
-#endif
-                break;
-
-            case ACPI_TYPE_INTEGER:
-
-                ObjDesc->Integer.Value = ACPI_TO_INTEGER (Val);
-                break;
-
-
-            case ACPI_TYPE_STRING:
-
-                /* Build an object around the static string */
-
-                ObjDesc->String.Length = (UINT32) ACPI_STRLEN (Val);
-                ObjDesc->String.Pointer = Val;
-                ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;
-                break;
-
-
-            case ACPI_TYPE_MUTEX:
-
-                ObjDesc->Mutex.Node = NewNode;
-                ObjDesc->Mutex.SyncLevel = (UINT8) (ACPI_TO_INTEGER (Val) - 1);
-
-                /* Create a mutex */
-
-                Status = AcpiOsCreateMutex (&ObjDesc->Mutex.OsMutex);
-                if (ACPI_FAILURE (Status))
-                {
-                    AcpiUtRemoveReference (ObjDesc);
-                    goto UnlockAndExit;
-                }
-
-                /* Special case for ACPI Global Lock */
-
-                if (ACPI_STRCMP (InitVal->Name, "_GL_") == 0)
-                {
-                    AcpiGbl_GlobalLockMutex = ObjDesc;
-
-                    /* Create additional counting semaphore for global lock */
-
-                    Status = AcpiOsCreateSemaphore (
-                                1, 0, &AcpiGbl_GlobalLockSemaphore);
-                    if (ACPI_FAILURE (Status))
-                    {
-                        AcpiUtRemoveReference (ObjDesc);
-                        goto UnlockAndExit;
-                    }
-                }
-                break;
-
-
-            default:
-
-                ACPI_ERROR ((AE_INFO, "Unsupported initial type value %X",
-                    InitVal->Type));
-                AcpiUtRemoveReference (ObjDesc);
-                ObjDesc = NULL;
-                continue;
-            }
-
-            /* Store pointer to value descriptor in the Node */
-
-            Status = AcpiNsAttachObject (NewNode, ObjDesc,
-                        ObjDesc->Common.Type);
-
-            /* Remove local reference to the object */
-
-            AcpiUtRemoveReference (ObjDesc);
-        }
-    }
-
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
-    /* Save a handle to "_GPE", it is always present */
-
-    if (ACPI_SUCCESS (Status))
-    {
-        Status = AcpiNsGetNode (NULL, "\\_GPE", ACPI_NS_NO_UPSEARCH,
-                    &AcpiGbl_FadtGpeDevice);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsLookup
- *
- * PARAMETERS:  ScopeInfo       - Current scope info block
- *              Pathname        - Search pathname, in internal format
- *                                (as represented in the AML stream)
- *              Type            - Type associated with name
- *              InterpreterMode - IMODE_LOAD_PASS2 => add name if not found
- *              Flags           - Flags describing the search restrictions
- *              WalkState       - Current state of the walk
- *              ReturnNode      - Where the Node is placed (if found
- *                                or created successfully)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Find or enter the passed name in the name space.
- *              Log an error if name not found in Exec mode.
- *
- * MUTEX:       Assumes namespace is locked.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsLookup (
-    ACPI_GENERIC_STATE      *ScopeInfo,
-    char                    *Pathname,
-    ACPI_OBJECT_TYPE        Type,
-    ACPI_INTERPRETER_MODE   InterpreterMode,
-    UINT32                  Flags,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_NAMESPACE_NODE     **ReturnNode)
-{
-    ACPI_STATUS             Status;
-    char                    *Path = Pathname;
-    ACPI_NAMESPACE_NODE     *PrefixNode;
-    ACPI_NAMESPACE_NODE     *CurrentNode = NULL;
-    ACPI_NAMESPACE_NODE     *ThisNode = NULL;
-    UINT32                  NumSegments;
-    UINT32                  NumCarats;
-    ACPI_NAME               SimpleName;
-    ACPI_OBJECT_TYPE        TypeToCheckFor;
-    ACPI_OBJECT_TYPE        ThisSearchType;
-    UINT32                  SearchParentFlag = ACPI_NS_SEARCH_PARENT;
-    UINT32                  LocalFlags;
-
-
-    ACPI_FUNCTION_TRACE (NsLookup);
-
-
-    if (!ReturnNode)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    LocalFlags = Flags & ~(ACPI_NS_ERROR_IF_FOUND | ACPI_NS_SEARCH_PARENT);
-    *ReturnNode = ACPI_ENTRY_NOT_FOUND;
-    AcpiGbl_NsLookupCount++;
-
-    if (!AcpiGbl_RootNode)
-    {
-        return_ACPI_STATUS (AE_NO_NAMESPACE);
-    }
-
-    /* Get the prefix scope. A null scope means use the root scope */
-
-    if ((!ScopeInfo) ||
-        (!ScopeInfo->Scope.Node))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-            "Null scope prefix, using root node (%p)\n",
-            AcpiGbl_RootNode));
-
-        PrefixNode = AcpiGbl_RootNode;
-    }
-    else
-    {
-        PrefixNode = ScopeInfo->Scope.Node;
-        if (ACPI_GET_DESCRIPTOR_TYPE (PrefixNode) != ACPI_DESC_TYPE_NAMED)
-        {
-            ACPI_ERROR ((AE_INFO, "%p is not a namespace node [%s]",
-                PrefixNode, AcpiUtGetDescriptorName (PrefixNode)));
-            return_ACPI_STATUS (AE_AML_INTERNAL);
-        }
-
-        if (!(Flags & ACPI_NS_PREFIX_IS_SCOPE))
-        {
-            /*
-             * This node might not be a actual "scope" node (such as a
-             * Device/Method, etc.)  It could be a Package or other object
-             * node. Backup up the tree to find the containing scope node.
-             */
-            while (!AcpiNsOpensScope (PrefixNode->Type) &&
-                    PrefixNode->Type != ACPI_TYPE_ANY)
-            {
-                PrefixNode = AcpiNsGetParentNode (PrefixNode);
-            }
-        }
-    }
-
-    /* Save type. TBD: may be no longer necessary */
-
-    TypeToCheckFor = Type;
-
-    /*
-     * Begin examination of the actual pathname
-     */
-    if (!Pathname)
-    {
-        /* A Null NamePath is allowed and refers to the root */
-
-        NumSegments = 0;
-        ThisNode = AcpiGbl_RootNode;
-        Path = "";
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-            "Null Pathname (Zero segments), Flags=%X\n", Flags));
-    }
-    else
-    {
-        /*
-         * Name pointer is valid (and must be in internal name format)
-         *
-         * Check for scope prefixes:
-         *
-         * As represented in the AML stream, a namepath consists of an
-         * optional scope prefix followed by a name segment part.
-         *
-         * If present, the scope prefix is either a Root Prefix (in
-         * which case the name is fully qualified), or one or more
-         * Parent Prefixes (in which case the name's scope is relative
-         * to the current scope).
-         */
-        if (*Path == (UINT8) AML_ROOT_PREFIX)
-        {
-            /* Pathname is fully qualified, start from the root */
-
-            ThisNode = AcpiGbl_RootNode;
-            SearchParentFlag = ACPI_NS_NO_UPSEARCH;
-
-            /* Point to name segment part */
-
-            Path++;
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "Path is absolute from root [%p]\n", ThisNode));
-        }
-        else
-        {
-            /* Pathname is relative to current scope, start there */
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "Searching relative to prefix scope [%4.4s] (%p)\n",
-                AcpiUtGetNodeName (PrefixNode), PrefixNode));
-
-            /*
-             * Handle multiple Parent Prefixes (carat) by just getting
-             * the parent node for each prefix instance.
-             */
-            ThisNode = PrefixNode;
-            NumCarats = 0;
-            while (*Path == (UINT8) AML_PARENT_PREFIX)
-            {
-                /* Name is fully qualified, no search rules apply */
-
-                SearchParentFlag = ACPI_NS_NO_UPSEARCH;
-
-                /*
-                 * Point past this prefix to the name segment
-                 * part or the next Parent Prefix
-                 */
-                Path++;
-
-                /* Backup to the parent node */
-
-                NumCarats++;
-                ThisNode = AcpiNsGetParentNode (ThisNode);
-                if (!ThisNode)
-                {
-                    /* Current scope has no parent scope */
-
-                    ACPI_ERROR ((AE_INFO,
-                        "ACPI path has too many parent prefixes (^) "
-                        "- reached beyond root node"));
-                    return_ACPI_STATUS (AE_NOT_FOUND);
-                }
-            }
-
-            if (SearchParentFlag == ACPI_NS_NO_UPSEARCH)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                    "Search scope is [%4.4s], path has %d carat(s)\n",
-                    AcpiUtGetNodeName (ThisNode), NumCarats));
-            }
-        }
-
-        /*
-         * Determine the number of ACPI name segments in this pathname.
-         *
-         * The segment part consists of either:
-         *  - A Null name segment (0)
-         *  - A DualNamePrefix followed by two 4-byte name segments
-         *  - A MultiNamePrefix followed by a byte indicating the
-         *      number of segments and the segments themselves.
-         *  - A single 4-byte name segment
-         *
-         * Examine the name prefix opcode, if any, to determine the number of
-         * segments.
-         */
-        switch (*Path)
-        {
-        case 0:
-            /*
-             * Null name after a root or parent prefixes. We already
-             * have the correct target node and there are no name segments.
-             */
-            NumSegments  = 0;
-            Type = ThisNode->Type;
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "Prefix-only Pathname (Zero name segments), Flags=%X\n",
-                Flags));
-            break;
-
-        case AML_DUAL_NAME_PREFIX:
-
-            /* More than one NameSeg, search rules do not apply */
-
-            SearchParentFlag = ACPI_NS_NO_UPSEARCH;
-
-            /* Two segments, point to first name segment */
-
-            NumSegments = 2;
-            Path++;
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "Dual Pathname (2 segments, Flags=%X)\n", Flags));
-            break;
-
-        case AML_MULTI_NAME_PREFIX_OP:
-
-            /* More than one NameSeg, search rules do not apply */
-
-            SearchParentFlag = ACPI_NS_NO_UPSEARCH;
-
-            /* Extract segment count, point to first name segment */
-
-            Path++;
-            NumSegments = (UINT32) (UINT8) *Path;
-            Path++;
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "Multi Pathname (%d Segments, Flags=%X)\n",
-                NumSegments, Flags));
-            break;
-
-        default:
-            /*
-             * Not a Null name, no Dual or Multi prefix, hence there is
-             * only one name segment and Pathname is already pointing to it.
-             */
-            NumSegments = 1;
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "Simple Pathname (1 segment, Flags=%X)\n", Flags));
-            break;
-        }
-
-        ACPI_DEBUG_EXEC (AcpiNsPrintPathname (NumSegments, Path));
-    }
-
-
-    /*
-     * Search namespace for each segment of the name. Loop through and
-     * verify (or add to the namespace) each name segment.
-     *
-     * The object type is significant only at the last name
-     * segment. (We don't care about the types along the path, only
-     * the type of the final target object.)
-     */
-    ThisSearchType = ACPI_TYPE_ANY;
-    CurrentNode = ThisNode;
-    while (NumSegments && CurrentNode)
-    {
-        NumSegments--;
-        if (!NumSegments)
-        {
-            /* This is the last segment, enable typechecking */
-
-            ThisSearchType = Type;
-
-            /*
-             * Only allow automatic parent search (search rules) if the caller
-             * requested it AND we have a single, non-fully-qualified NameSeg
-             */
-            if ((SearchParentFlag != ACPI_NS_NO_UPSEARCH) &&
-                (Flags & ACPI_NS_SEARCH_PARENT))
-            {
-                LocalFlags |= ACPI_NS_SEARCH_PARENT;
-            }
-
-            /* Set error flag according to caller */
-
-            if (Flags & ACPI_NS_ERROR_IF_FOUND)
-            {
-                LocalFlags |= ACPI_NS_ERROR_IF_FOUND;
-            }
-        }
-
-        /* Extract one ACPI name from the front of the pathname */
-
-        ACPI_MOVE_32_TO_32 (&SimpleName, Path);
-
-        /* Try to find the single (4 character) ACPI name */
-
-        Status = AcpiNsSearchAndEnter (SimpleName, WalkState, CurrentNode,
-                    InterpreterMode, ThisSearchType, LocalFlags, &ThisNode);
-        if (ACPI_FAILURE (Status))
-        {
-            if (Status == AE_NOT_FOUND)
-            {
-                /* Name not found in ACPI namespace */
-
-                ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                    "Name [%4.4s] not found in scope [%4.4s] %p\n",
-                    (char *) &SimpleName, (char *) &CurrentNode->Name,
-                    CurrentNode));
-            }
-
-            *ReturnNode = ThisNode;
-            return_ACPI_STATUS (Status);
-        }
-
-        /* More segments to follow? */
-
-        if (NumSegments > 0)
-        {
-            /*
-             * If we have an alias to an object that opens a scope (such as a
-             * device or processor), we need to dereference the alias here so
-             * that we can access any children of the original node (via the
-             * remaining segments).
-             */
-            if (ThisNode->Type == ACPI_TYPE_LOCAL_ALIAS)
-            {
-                if (!ThisNode->Object)
-                {
-                    return_ACPI_STATUS (AE_NOT_EXIST);
-                }
-
-                if (AcpiNsOpensScope (((ACPI_NAMESPACE_NODE *)
-                        ThisNode->Object)->Type))
-                {
-                    ThisNode = (ACPI_NAMESPACE_NODE *) ThisNode->Object;
-                }
-            }
-        }
-
-        /* Special handling for the last segment (NumSegments == 0) */
-
-        else
-        {
-            /*
-             * Sanity typecheck of the target object:
-             *
-             * If 1) This is the last segment (NumSegments == 0)
-             *    2) And we are looking for a specific type
-             *       (Not checking for TYPE_ANY)
-             *    3) Which is not an alias
-             *    4) Which is not a local type (TYPE_SCOPE)
-             *    5) And the type of target object is known (not TYPE_ANY)
-             *    6) And target object does not match what we are looking for
-             *
-             * Then we have a type mismatch. Just warn and ignore it.
-             */
-            if ((TypeToCheckFor != ACPI_TYPE_ANY)                   &&
-                (TypeToCheckFor != ACPI_TYPE_LOCAL_ALIAS)           &&
-                (TypeToCheckFor != ACPI_TYPE_LOCAL_METHOD_ALIAS)    &&
-                (TypeToCheckFor != ACPI_TYPE_LOCAL_SCOPE)           &&
-                (ThisNode->Type != ACPI_TYPE_ANY)                   &&
-                (ThisNode->Type != TypeToCheckFor))
-            {
-                /* Complain about a type mismatch */
-
-                ACPI_WARNING ((AE_INFO,
-                    "NsLookup: Type mismatch on %4.4s (%s), searching for (%s)",
-                    ACPI_CAST_PTR (char, &SimpleName),
-                    AcpiUtGetTypeName (ThisNode->Type),
-                    AcpiUtGetTypeName (TypeToCheckFor)));
-            }
-
-            /*
-             * If this is the last name segment and we are not looking for a
-             * specific type, but the type of found object is known, use that
-             * type to (later) see if it opens a scope.
-             */
-            if (Type == ACPI_TYPE_ANY)
-            {
-                Type = ThisNode->Type;
-            }
-        }
-
-        /* Point to next name segment and make this node current */
-
-        Path += ACPI_NAME_SIZE;
-        CurrentNode = ThisNode;
-    }
-
-    /* Always check if we need to open a new scope */
-
-    if (!(Flags & ACPI_NS_DONT_OPEN_SCOPE) && (WalkState))
-    {
-        /*
-         * If entry is a type which opens a scope, push the new scope on the
-         * scope stack.
-         */
-        if (AcpiNsOpensScope (Type))
-        {
-            Status = AcpiDsScopeStackPush (ThisNode, Type, WalkState);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-    }
-
-    *ReturnNode = ThisNode;
-    return_ACPI_STATUS (AE_OK);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsalloc.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsalloc.c
deleted file mode 100644 (file)
index 9693cb7..0000000
+++ /dev/null
@@ -1,666 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsalloc - Namespace allocation and deletion utilities
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __NSALLOC_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsalloc")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsCreateNode
- *
- * PARAMETERS:  Name            - Name of the new node (4 char ACPI name)
- *
- * RETURN:      New namespace node (Null on failure)
- *
- * DESCRIPTION: Create a namespace node
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsCreateNode (
-    UINT32                  Name)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-    UINT32                  Temp;
-#endif
-
-
-    ACPI_FUNCTION_TRACE (NsCreateNode);
-
-
-    Node = AcpiOsAcquireObject (AcpiGbl_NamespaceCache);
-    if (!Node)
-    {
-        return_PTR (NULL);
-    }
-
-    ACPI_MEM_TRACKING (AcpiGbl_NsNodeList->TotalAllocated++);
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-        Temp = AcpiGbl_NsNodeList->TotalAllocated -
-                AcpiGbl_NsNodeList->TotalFreed;
-        if (Temp > AcpiGbl_NsNodeList->MaxOccupied)
-        {
-            AcpiGbl_NsNodeList->MaxOccupied = Temp;
-        }
-#endif
-
-    Node->Name.Integer = Name;
-    ACPI_SET_DESCRIPTOR_TYPE (Node, ACPI_DESC_TYPE_NAMED);
-    return_PTR (Node);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDeleteNode
- *
- * PARAMETERS:  Node            - Node to be deleted
- *
- * RETURN:      None
- *
- * DESCRIPTION: Delete a namespace node. All node deletions must come through
- *              here. Detaches any attached objects, including any attached
- *              data. If a handler is associated with attached data, it is
- *              invoked before the node is deleted.
- *
- ******************************************************************************/
-
-void
-AcpiNsDeleteNode (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_NAME (NsDeleteNode);
-
-
-    /* Detach an object if there is one */
-
-    AcpiNsDetachObject (Node);
-
-    /*
-     * Delete an attached data object if present (an object that was created
-     * and attached via AcpiAttachData). Note: After any normal object is
-     * detached above, the only possible remaining object is a data object.
-     */
-    ObjDesc = Node->Object;
-    if (ObjDesc &&
-        (ObjDesc->Common.Type == ACPI_TYPE_LOCAL_DATA))
-    {
-        /* Invoke the attached data deletion handler if present */
-
-        if (ObjDesc->Data.Handler)
-        {
-            ObjDesc->Data.Handler (Node, ObjDesc->Data.Pointer);
-        }
-
-        AcpiUtRemoveReference (ObjDesc);
-    }
-
-    /* Now we can delete the node */
-
-    (void) AcpiOsReleaseObject (AcpiGbl_NamespaceCache, Node);
-
-    ACPI_MEM_TRACKING (AcpiGbl_NsNodeList->TotalFreed++);
-    ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Node %p, Remaining %X\n",
-        Node, AcpiGbl_CurrentNodeCount));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsRemoveNode
- *
- * PARAMETERS:  Node            - Node to be removed/deleted
- *
- * RETURN:      None
- *
- * DESCRIPTION: Remove (unlink) and delete a namespace node
- *
- ******************************************************************************/
-
-void
-AcpiNsRemoveNode (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_NAMESPACE_NODE     *ParentNode;
-    ACPI_NAMESPACE_NODE     *PrevNode;
-    ACPI_NAMESPACE_NODE     *NextNode;
-
-
-    ACPI_FUNCTION_TRACE_PTR (NsRemoveNode, Node);
-
-
-    ParentNode = AcpiNsGetParentNode (Node);
-
-    PrevNode = NULL;
-    NextNode = ParentNode->Child;
-
-    /* Find the node that is the previous peer in the parent's child list */
-
-    while (NextNode != Node)
-    {
-        PrevNode = NextNode;
-        NextNode = PrevNode->Peer;
-    }
-
-    if (PrevNode)
-    {
-        /* Node is not first child, unlink it */
-
-        PrevNode->Peer = NextNode->Peer;
-        if (NextNode->Flags & ANOBJ_END_OF_PEER_LIST)
-        {
-            PrevNode->Flags |= ANOBJ_END_OF_PEER_LIST;
-        }
-    }
-    else
-    {
-        /* Node is first child (has no previous peer) */
-
-        if (NextNode->Flags & ANOBJ_END_OF_PEER_LIST)
-        {
-            /* No peers at all */
-
-            ParentNode->Child = NULL;
-        }
-        else
-        {   /* Link peer list to parent */
-
-            ParentNode->Child = NextNode->Peer;
-        }
-    }
-
-    /* Delete the node and any attached objects */
-
-    AcpiNsDeleteNode (Node);
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsInstallNode
- *
- * PARAMETERS:  WalkState       - Current state of the walk
- *              ParentNode      - The parent of the new Node
- *              Node            - The new Node to install
- *              Type            - ACPI object type of the new Node
- *
- * RETURN:      None
- *
- * DESCRIPTION: Initialize a new namespace node and install it amongst
- *              its peers.
- *
- *              Note: Current namespace lookup is linear search. This appears
- *              to be sufficient as namespace searches consume only a small
- *              fraction of the execution time of the ACPI subsystem.
- *
- ******************************************************************************/
-
-void
-AcpiNsInstallNode (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_NAMESPACE_NODE     *ParentNode,    /* Parent */
-    ACPI_NAMESPACE_NODE     *Node,          /* New Child*/
-    ACPI_OBJECT_TYPE        Type)
-{
-    ACPI_OWNER_ID           OwnerId = 0;
-    ACPI_NAMESPACE_NODE     *ChildNode;
-
-
-    ACPI_FUNCTION_TRACE (NsInstallNode);
-
-
-    /*
-     * Get the owner ID from the Walk state. The owner ID is used to track
-     * table deletion and deletion of objects created by methods.
-     */
-    if (WalkState)
-    {
-        OwnerId = WalkState->OwnerId;
-    }
-
-    /* Link the new entry into the parent and existing children */
-
-    ChildNode = ParentNode->Child;
-    if (!ChildNode)
-    {
-        ParentNode->Child = Node;
-        Node->Flags |= ANOBJ_END_OF_PEER_LIST;
-        Node->Peer = ParentNode;
-    }
-    else
-    {
-        while (!(ChildNode->Flags & ANOBJ_END_OF_PEER_LIST))
-        {
-            ChildNode = ChildNode->Peer;
-        }
-
-        ChildNode->Peer = Node;
-
-        /* Clear end-of-list flag */
-
-        ChildNode->Flags &= ~ANOBJ_END_OF_PEER_LIST;
-        Node->Flags |= ANOBJ_END_OF_PEER_LIST;
-        Node->Peer = ParentNode;
-    }
-
-    /* Init the new entry */
-
-    Node->OwnerId = OwnerId;
-    Node->Type = (UINT8) Type;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-        "%4.4s (%s) [Node %p Owner %X] added to %4.4s (%s) [Node %p]\n",
-        AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Node->Type), Node, OwnerId,
-        AcpiUtGetNodeName (ParentNode), AcpiUtGetTypeName (ParentNode->Type),
-        ParentNode));
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDeleteChildren
- *
- * PARAMETERS:  ParentNode      - Delete this objects children
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Delete all children of the parent object. In other words,
- *              deletes a "scope".
- *
- ******************************************************************************/
-
-void
-AcpiNsDeleteChildren (
-    ACPI_NAMESPACE_NODE     *ParentNode)
-{
-    ACPI_NAMESPACE_NODE     *ChildNode;
-    ACPI_NAMESPACE_NODE     *NextNode;
-    UINT8                   Flags;
-
-
-    ACPI_FUNCTION_TRACE_PTR (NsDeleteChildren, ParentNode);
-
-
-    if (!ParentNode)
-    {
-        return_VOID;
-    }
-
-    /* If no children, all done! */
-
-    ChildNode = ParentNode->Child;
-    if (!ChildNode)
-    {
-        return_VOID;
-    }
-
-    /* Deallocate all children at this level */
-
-    do
-    {
-        /* Get the things we need */
-
-        NextNode = ChildNode->Peer;
-        Flags = ChildNode->Flags;
-
-        /* Grandchildren should have all been deleted already */
-
-        if (ChildNode->Child)
-        {
-            ACPI_ERROR ((AE_INFO, "Found a grandchild! P=%p C=%p",
-                ParentNode, ChildNode));
-        }
-
-        /*
-         * Delete this child node and move on to the next child in the list.
-         * No need to unlink the node since we are deleting the entire branch.
-         */
-        AcpiNsDeleteNode (ChildNode);
-        ChildNode = NextNode;
-
-    } while (!(Flags & ANOBJ_END_OF_PEER_LIST));
-
-    /* Clear the parent's child pointer */
-
-    ParentNode->Child = NULL;
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDeleteNamespaceSubtree
- *
- * PARAMETERS:  ParentNode      - Root of the subtree to be deleted
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Delete a subtree of the namespace.  This includes all objects
- *              stored within the subtree.
- *
- ******************************************************************************/
-
-void
-AcpiNsDeleteNamespaceSubtree (
-    ACPI_NAMESPACE_NODE     *ParentNode)
-{
-    ACPI_NAMESPACE_NODE     *ChildNode = NULL;
-    UINT32                  Level = 1;
-
-
-    ACPI_FUNCTION_TRACE (NsDeleteNamespaceSubtree);
-
-
-    if (!ParentNode)
-    {
-        return_VOID;
-    }
-
-    /*
-     * Traverse the tree of objects until we bubble back up
-     * to where we started.
-     */
-    while (Level > 0)
-    {
-        /* Get the next node in this scope (NULL if none) */
-
-        ChildNode = AcpiNsGetNextNode (ParentNode, ChildNode);
-        if (ChildNode)
-        {
-            /* Found a child node - detach any attached object */
-
-            AcpiNsDetachObject (ChildNode);
-
-            /* Check if this node has any children */
-
-            if (ChildNode->Child)
-            {
-                /*
-                 * There is at least one child of this node,
-                 * visit the node
-                 */
-                Level++;
-                ParentNode = ChildNode;
-                ChildNode  = NULL;
-            }
-        }
-        else
-        {
-            /*
-             * No more children of this parent node.
-             * Move up to the grandparent.
-             */
-            Level--;
-
-            /*
-             * Now delete all of the children of this parent
-             * all at the same time.
-             */
-            AcpiNsDeleteChildren (ParentNode);
-
-            /* New "last child" is this parent node */
-
-            ChildNode = ParentNode;
-
-            /* Move up the tree to the grandparent */
-
-            ParentNode = AcpiNsGetParentNode (ParentNode);
-        }
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDeleteNamespaceByOwner
- *
- * PARAMETERS:  OwnerId     - All nodes with this owner will be deleted
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Delete entries within the namespace that are owned by a
- *              specific ID.  Used to delete entire ACPI tables.  All
- *              reference counts are updated.
- *
- * MUTEX:       Locks namespace during deletion walk.
- *
- ******************************************************************************/
-
-void
-AcpiNsDeleteNamespaceByOwner (
-    ACPI_OWNER_ID            OwnerId)
-{
-    ACPI_NAMESPACE_NODE     *ChildNode;
-    ACPI_NAMESPACE_NODE     *DeletionNode;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-    UINT32                  Level;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_U32 (NsDeleteNamespaceByOwner, OwnerId);
-
-
-    if (OwnerId == 0)
-    {
-        return_VOID;
-    }
-
-    /* Lock namespace for possible update */
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_VOID;
-    }
-
-    DeletionNode = NULL;
-    ParentNode = AcpiGbl_RootNode;
-    ChildNode = NULL;
-    Level = 1;
-
-    /*
-     * Traverse the tree of nodes until we bubble back up
-     * to where we started.
-     */
-    while (Level > 0)
-    {
-        /*
-         * Get the next child of this parent node. When ChildNode is NULL,
-         * the first child of the parent is returned
-         */
-        ChildNode = AcpiNsGetNextNode (ParentNode, ChildNode);
-
-        if (DeletionNode)
-        {
-            AcpiNsDeleteChildren (DeletionNode);
-            AcpiNsRemoveNode (DeletionNode);
-            DeletionNode = NULL;
-        }
-
-        if (ChildNode)
-        {
-            if (ChildNode->OwnerId == OwnerId)
-            {
-                /* Found a matching child node - detach any attached object */
-
-                AcpiNsDetachObject (ChildNode);
-            }
-
-            /* Check if this node has any children */
-
-            if (ChildNode->Child)
-            {
-                /*
-                 * There is at least one child of this node,
-                 * visit the node
-                 */
-                Level++;
-                ParentNode = ChildNode;
-                ChildNode  = NULL;
-            }
-            else if (ChildNode->OwnerId == OwnerId)
-            {
-                DeletionNode = ChildNode;
-            }
-        }
-        else
-        {
-            /*
-             * No more children of this parent node.
-             * Move up to the grandparent.
-             */
-            Level--;
-            if (Level != 0)
-            {
-                if (ParentNode->OwnerId == OwnerId)
-                {
-                    DeletionNode = ParentNode;
-                }
-            }
-
-            /* New "last child" is this parent node */
-
-            ChildNode = ParentNode;
-
-            /* Move up the tree to the grandparent */
-
-            ParentNode = AcpiNsGetParentNode (ParentNode);
-        }
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_VOID;
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsdump.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsdump.c
deleted file mode 100644 (file)
index d799f7c..0000000
+++ /dev/null
@@ -1,826 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsdump - table dumping routines for debug
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
-
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSDUMP_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsdump")
-
-/* Local prototypes */
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-void
-AcpiNsDumpRootDevices (
-    void);
-
-static ACPI_STATUS
-AcpiNsDumpOneDevice (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue);
-#endif
-
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsPrintPathname
- *
- * PARAMETERS:  NumSegments         - Number of ACPI name segments
- *              Pathname            - The compressed (internal) path
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print an object's full namespace pathname
- *
- ******************************************************************************/
-
-void
-AcpiNsPrintPathname (
-    UINT32                  NumSegments,
-    char                    *Pathname)
-{
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_NAME (NsPrintPathname);
-
-
-    if (!(AcpiDbgLevel & ACPI_LV_NAMES) || !(AcpiDbgLayer & ACPI_NAMESPACE))
-    {
-        return;
-    }
-
-    /* Print the entire name */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "["));
-
-    while (NumSegments)
-    {
-        for (i = 0; i < 4; i++)
-        {
-            ACPI_IS_PRINT (Pathname[i]) ?
-                AcpiOsPrintf ("%c", Pathname[i]) :
-                AcpiOsPrintf ("?");
-        }
-
-        Pathname += ACPI_NAME_SIZE;
-        NumSegments--;
-        if (NumSegments)
-        {
-            AcpiOsPrintf (".");
-        }
-    }
-
-    AcpiOsPrintf ("]\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDumpPathname
- *
- * PARAMETERS:  Handle              - Object
- *              Msg                 - Prefix message
- *              Level               - Desired debug level
- *              Component           - Caller's component ID
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print an object's full namespace pathname
- *              Manages allocation/freeing of a pathname buffer
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpPathname (
-    ACPI_HANDLE             Handle,
-    char                    *Msg,
-    UINT32                  Level,
-    UINT32                  Component)
-{
-
-    ACPI_FUNCTION_TRACE (NsDumpPathname);
-
-
-    /* Do this only if the requested debug level and component are enabled */
-
-    if (!(AcpiDbgLevel & Level) || !(AcpiDbgLayer & Component))
-    {
-        return_VOID;
-    }
-
-    /* Convert handle to a full pathname and print it (with supplied message) */
-
-    AcpiNsPrintNodePathname (Handle, Msg);
-    AcpiOsPrintf ("\n");
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDumpOneObject
- *
- * PARAMETERS:  ObjHandle           - Node to be dumped
- *              Level               - Nesting level of the handle
- *              Context             - Passed into WalkNamespace
- *              ReturnValue         - Not used
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Dump a single Node
- *              This procedure is a UserFunction called by AcpiNsWalkNamespace.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsDumpOneObject (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_WALK_INFO          *Info = (ACPI_WALK_INFO *) Context;
-    ACPI_NAMESPACE_NODE     *ThisNode;
-    ACPI_OPERAND_OBJECT     *ObjDesc = NULL;
-    ACPI_OBJECT_TYPE        ObjType;
-    ACPI_OBJECT_TYPE        Type;
-    UINT32                  BytesToDump;
-    UINT32                  DbgLevel;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_NAME (NsDumpOneObject);
-
-
-    /* Is output enabled? */
-
-    if (!(AcpiDbgLevel & Info->DebugLevel))
-    {
-        return (AE_OK);
-    }
-
-    if (!ObjHandle)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Null object handle\n"));
-        return (AE_OK);
-    }
-
-    ThisNode = AcpiNsValidateHandle (ObjHandle);
-    if (!ThisNode)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Invalid object handle %p\n",
-            ObjHandle));
-        return (AE_OK);
-    }
-
-    Type = ThisNode->Type;
-
-    /* Check if the owner matches */
-
-    if ((Info->OwnerId != ACPI_OWNER_ID_MAX) &&
-        (Info->OwnerId != ThisNode->OwnerId))
-    {
-        return (AE_OK);
-    }
-
-    if (!(Info->DisplayType & ACPI_DISPLAY_SHORT))
-    {
-        /* Indent the object according to the level */
-
-        AcpiOsPrintf ("%2d%*s", (UINT32) Level - 1, (int) Level * 2, " ");
-
-        /* Check the node type and name */
-
-        if (Type > ACPI_TYPE_LOCAL_MAX)
-        {
-            ACPI_WARNING ((AE_INFO, "Invalid ACPI Object Type %08X", Type));
-        }
-
-        AcpiOsPrintf ("%4.4s", AcpiUtGetNodeName (ThisNode));
-    }
-
-    /* Now we can print out the pertinent information */
-
-    AcpiOsPrintf (" %-12s %p %2.2X ",
-            AcpiUtGetTypeName (Type), ThisNode, ThisNode->OwnerId);
-
-    DbgLevel = AcpiDbgLevel;
-    AcpiDbgLevel = 0;
-    ObjDesc = AcpiNsGetAttachedObject (ThisNode);
-    AcpiDbgLevel = DbgLevel;
-
-    /* Temp nodes are those nodes created by a control method */
-
-    if (ThisNode->Flags & ANOBJ_TEMPORARY)
-    {
-        AcpiOsPrintf ("(T) ");
-    }
-
-    switch (Info->DisplayType & ACPI_DISPLAY_MASK)
-    {
-    case ACPI_DISPLAY_SUMMARY:
-
-        if (!ObjDesc)
-        {
-            /* No attached object, we are done */
-
-            AcpiOsPrintf ("\n");
-            return (AE_OK);
-        }
-
-        switch (Type)
-        {
-        case ACPI_TYPE_PROCESSOR:
-
-            AcpiOsPrintf ("ID %X Len %.4X Addr %p\n",
-                ObjDesc->Processor.ProcId, ObjDesc->Processor.Length,
-                ACPI_CAST_PTR (void, ObjDesc->Processor.Address));
-            break;
-
-
-        case ACPI_TYPE_DEVICE:
-
-            AcpiOsPrintf ("Notify Object: %p\n", ObjDesc);
-            break;
-
-
-        case ACPI_TYPE_METHOD:
-
-            AcpiOsPrintf ("Args %X Len %.4X Aml %p\n",
-                (UINT32) ObjDesc->Method.ParamCount,
-                ObjDesc->Method.AmlLength, ObjDesc->Method.AmlStart);
-            break;
-
-
-        case ACPI_TYPE_INTEGER:
-
-            AcpiOsPrintf ("= %8.8X%8.8X\n",
-                ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
-            break;
-
-
-        case ACPI_TYPE_PACKAGE:
-
-            if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
-            {
-                AcpiOsPrintf ("Elements %.2X\n",
-                    ObjDesc->Package.Count);
-            }
-            else
-            {
-                AcpiOsPrintf ("[Length not yet evaluated]\n");
-            }
-            break;
-
-
-        case ACPI_TYPE_BUFFER:
-
-            if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
-            {
-                AcpiOsPrintf ("Len %.2X",
-                            ObjDesc->Buffer.Length);
-
-                /* Dump some of the buffer */
-
-                if (ObjDesc->Buffer.Length > 0)
-                {
-                    AcpiOsPrintf (" =");
-                    for (i = 0; (i < ObjDesc->Buffer.Length && i < 12); i++)
-                    {
-                        AcpiOsPrintf (" %.2hX", ObjDesc->Buffer.Pointer[i]);
-                    }
-                }
-                AcpiOsPrintf ("\n");
-            }
-            else
-            {
-                AcpiOsPrintf ("[Length not yet evaluated]\n");
-            }
-            break;
-
-
-        case ACPI_TYPE_STRING:
-
-            AcpiOsPrintf ("Len %.2X ", ObjDesc->String.Length);
-            AcpiUtPrintString (ObjDesc->String.Pointer, 32);
-            AcpiOsPrintf ("\n");
-            break;
-
-
-        case ACPI_TYPE_REGION:
-
-            AcpiOsPrintf ("[%s]",
-                AcpiUtGetRegionName (ObjDesc->Region.SpaceId));
-            if (ObjDesc->Region.Flags & AOPOBJ_DATA_VALID)
-            {
-                AcpiOsPrintf (" Addr %8.8X%8.8X Len %.4X\n",
-                    ACPI_FORMAT_NATIVE_UINT (ObjDesc->Region.Address),
-                    ObjDesc->Region.Length);
-            }
-            else
-            {
-                AcpiOsPrintf (" [Address/Length not yet evaluated]\n");
-            }
-            break;
-
-
-        case ACPI_TYPE_LOCAL_REFERENCE:
-
-            AcpiOsPrintf ("[%s]\n", AcpiUtGetReferenceName (ObjDesc));
-            break;
-
-
-        case ACPI_TYPE_BUFFER_FIELD:
-
-            if (ObjDesc->BufferField.BufferObj &&
-                ObjDesc->BufferField.BufferObj->Buffer.Node)
-            {
-                AcpiOsPrintf ("Buf [%4.4s]",
-                    AcpiUtGetNodeName (
-                        ObjDesc->BufferField.BufferObj->Buffer.Node));
-            }
-            break;
-
-
-        case ACPI_TYPE_LOCAL_REGION_FIELD:
-
-            AcpiOsPrintf ("Rgn [%4.4s]",
-                AcpiUtGetNodeName (
-                    ObjDesc->CommonField.RegionObj->Region.Node));
-            break;
-
-
-        case ACPI_TYPE_LOCAL_BANK_FIELD:
-
-            AcpiOsPrintf ("Rgn [%4.4s] Bnk [%4.4s]",
-                AcpiUtGetNodeName (
-                    ObjDesc->CommonField.RegionObj->Region.Node),
-                AcpiUtGetNodeName (
-                    ObjDesc->BankField.BankObj->CommonField.Node));
-            break;
-
-
-        case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-            AcpiOsPrintf ("Idx [%4.4s] Dat [%4.4s]",
-                AcpiUtGetNodeName (
-                    ObjDesc->IndexField.IndexObj->CommonField.Node),
-                AcpiUtGetNodeName (
-                    ObjDesc->IndexField.DataObj->CommonField.Node));
-            break;
-
-
-        case ACPI_TYPE_LOCAL_ALIAS:
-        case ACPI_TYPE_LOCAL_METHOD_ALIAS:
-
-            AcpiOsPrintf ("Target %4.4s (%p)\n",
-                AcpiUtGetNodeName (ObjDesc), ObjDesc);
-            break;
-
-        default:
-
-            AcpiOsPrintf ("Object %p\n", ObjDesc);
-            break;
-        }
-
-        /* Common field handling */
-
-        switch (Type)
-        {
-        case ACPI_TYPE_BUFFER_FIELD:
-        case ACPI_TYPE_LOCAL_REGION_FIELD:
-        case ACPI_TYPE_LOCAL_BANK_FIELD:
-        case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-            AcpiOsPrintf (" Off %.3X Len %.2X Acc %.2hd\n",
-                (ObjDesc->CommonField.BaseByteOffset * 8)
-                    + ObjDesc->CommonField.StartFieldBitOffset,
-                ObjDesc->CommonField.BitLength,
-                ObjDesc->CommonField.AccessByteWidth);
-            break;
-
-        default:
-            break;
-        }
-        break;
-
-
-    case ACPI_DISPLAY_OBJECTS:
-
-        AcpiOsPrintf ("O:%p", ObjDesc);
-        if (!ObjDesc)
-        {
-            /* No attached object, we are done */
-
-            AcpiOsPrintf ("\n");
-            return (AE_OK);
-        }
-
-        AcpiOsPrintf ("(R%d)", ObjDesc->Common.ReferenceCount);
-
-        switch (Type)
-        {
-        case ACPI_TYPE_METHOD:
-
-            /* Name is a Method and its AML offset/length are set */
-
-            AcpiOsPrintf (" M:%p-%X\n", ObjDesc->Method.AmlStart,
-                ObjDesc->Method.AmlLength);
-            break;
-
-        case ACPI_TYPE_INTEGER:
-
-            AcpiOsPrintf (" I:%8.8X8.8%X\n",
-                ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
-            break;
-
-        case ACPI_TYPE_STRING:
-
-            AcpiOsPrintf (" S:%p-%X\n", ObjDesc->String.Pointer,
-                ObjDesc->String.Length);
-            break;
-
-        case ACPI_TYPE_BUFFER:
-
-            AcpiOsPrintf (" B:%p-%X\n", ObjDesc->Buffer.Pointer,
-                ObjDesc->Buffer.Length);
-            break;
-
-        default:
-
-            AcpiOsPrintf ("\n");
-            break;
-        }
-        break;
-
-
-    default:
-        AcpiOsPrintf ("\n");
-        break;
-    }
-
-    /* If debug turned off, done */
-
-    if (!(AcpiDbgLevel & ACPI_LV_VALUES))
-    {
-        return (AE_OK);
-    }
-
-    /* If there is an attached object, display it */
-
-    DbgLevel     = AcpiDbgLevel;
-    AcpiDbgLevel = 0;
-    ObjDesc      = AcpiNsGetAttachedObject (ThisNode);
-    AcpiDbgLevel = DbgLevel;
-
-    /* Dump attached objects */
-
-    while (ObjDesc)
-    {
-        ObjType = ACPI_TYPE_INVALID;
-        AcpiOsPrintf ("Attached Object %p: ", ObjDesc);
-
-        /* Decode the type of attached object and dump the contents */
-
-        switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
-        {
-        case ACPI_DESC_TYPE_NAMED:
-
-            AcpiOsPrintf ("(Ptr to Node)\n");
-            BytesToDump = sizeof (ACPI_NAMESPACE_NODE);
-            ACPI_DUMP_BUFFER (ObjDesc, BytesToDump);
-            break;
-
-        case ACPI_DESC_TYPE_OPERAND:
-
-            ObjType = ObjDesc->Common.Type;
-
-            if (ObjType > ACPI_TYPE_LOCAL_MAX)
-            {
-                AcpiOsPrintf ("(Pointer to ACPI Object type %.2X [UNKNOWN])\n",
-                    ObjType);
-                BytesToDump = 32;
-            }
-            else
-            {
-                AcpiOsPrintf ("(Pointer to ACPI Object type %.2X [%s])\n",
-                    ObjType, AcpiUtGetTypeName (ObjType));
-                BytesToDump = sizeof (ACPI_OPERAND_OBJECT);
-            }
-
-            ACPI_DUMP_BUFFER (ObjDesc, BytesToDump);
-            break;
-
-        default:
-
-            break;
-        }
-
-        /* If value is NOT an internal object, we are done */
-
-        if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
-        {
-            goto Cleanup;
-        }
-
-        /* Valid object, get the pointer to next level, if any */
-
-        switch (ObjType)
-        {
-        case ACPI_TYPE_BUFFER:
-        case ACPI_TYPE_STRING:
-            /*
-             * NOTE: takes advantage of common fields between string/buffer
-             */
-            BytesToDump = ObjDesc->String.Length;
-            ObjDesc = (void *) ObjDesc->String.Pointer;
-            AcpiOsPrintf ( "(Buffer/String pointer %p length %X)\n",
-                ObjDesc, BytesToDump);
-            ACPI_DUMP_BUFFER (ObjDesc, BytesToDump);
-            goto Cleanup;
-
-        case ACPI_TYPE_BUFFER_FIELD:
-            ObjDesc = (ACPI_OPERAND_OBJECT *) ObjDesc->BufferField.BufferObj;
-            break;
-
-        case ACPI_TYPE_PACKAGE:
-            ObjDesc = (void *) ObjDesc->Package.Elements;
-            break;
-
-        case ACPI_TYPE_METHOD:
-            ObjDesc = (void *) ObjDesc->Method.AmlStart;
-            break;
-
-        case ACPI_TYPE_LOCAL_REGION_FIELD:
-            ObjDesc = (void *) ObjDesc->Field.RegionObj;
-            break;
-
-        case ACPI_TYPE_LOCAL_BANK_FIELD:
-            ObjDesc = (void *) ObjDesc->BankField.RegionObj;
-            break;
-
-        case ACPI_TYPE_LOCAL_INDEX_FIELD:
-            ObjDesc = (void *) ObjDesc->IndexField.IndexObj;
-            break;
-
-        default:
-            goto Cleanup;
-        }
-
-        ObjType = ACPI_TYPE_INVALID;   /* Terminate loop after next pass */
-    }
-
-Cleanup:
-    AcpiOsPrintf ("\n");
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDumpObjects
- *
- * PARAMETERS:  Type                - Object type to be dumped
- *              DisplayType         - 0 or ACPI_DISPLAY_SUMMARY
- *              MaxDepth            - Maximum depth of dump. Use ACPI_UINT32_MAX
- *                                    for an effectively unlimited depth.
- *              OwnerId             - Dump only objects owned by this ID. Use
- *                                    ACPI_UINT32_MAX to match all owners.
- *              StartHandle         - Where in namespace to start/end search
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump typed objects within the loaded namespace. Uses
- *              AcpiNsWalkNamespace in conjunction with AcpiNsDumpOneObject.
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpObjects (
-    ACPI_OBJECT_TYPE        Type,
-    UINT8                   DisplayType,
-    UINT32                  MaxDepth,
-    ACPI_OWNER_ID           OwnerId,
-    ACPI_HANDLE             StartHandle)
-{
-    ACPI_WALK_INFO          Info;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    Info.DebugLevel = ACPI_LV_TABLES;
-    Info.OwnerId = OwnerId;
-    Info.DisplayType = DisplayType;
-
-    (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth,
-                ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES,
-                AcpiNsDumpOneObject, NULL, (void *) &Info, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDumpEntry
- *
- * PARAMETERS:  Handle              - Node to be dumped
- *              DebugLevel          - Output level
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump a single Node
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpEntry (
-    ACPI_HANDLE             Handle,
-    UINT32                  DebugLevel)
-{
-    ACPI_WALK_INFO          Info;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    Info.DebugLevel = DebugLevel;
-    Info.OwnerId = ACPI_OWNER_ID_MAX;
-    Info.DisplayType = ACPI_DISPLAY_SUMMARY;
-
-    (void) AcpiNsDumpOneObject (Handle, 1, &Info, NULL);
-}
-
-
-#ifdef ACPI_ASL_COMPILER
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDumpTables
- *
- * PARAMETERS:  SearchBase          - Root of subtree to be dumped, or
- *                                    NS_ALL to dump the entire namespace
- *              MaxDepth            - Maximum depth of dump.  Use INT_MAX
- *                                    for an effectively unlimited depth.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump the name space, or a portion of it.
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpTables (
-    ACPI_HANDLE             SearchBase,
-    UINT32                  MaxDepth)
-{
-    ACPI_HANDLE             SearchHandle = SearchBase;
-
-
-    ACPI_FUNCTION_TRACE (NsDumpTables);
-
-
-    if (!AcpiGbl_RootNode)
-    {
-        /*
-         * If the name space has not been initialized,
-         * there is nothing to dump.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "namespace not initialized!\n"));
-        return_VOID;
-    }
-
-    if (ACPI_NS_ALL == SearchBase)
-    {
-        /* Entire namespace */
-
-        SearchHandle = AcpiGbl_RootNode;
-        ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "\\\n"));
-    }
-
-    AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_OBJECTS, MaxDepth,
-            ACPI_OWNER_ID_MAX, SearchHandle);
-    return_VOID;
-}
-#endif
-#endif
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsdumpdv.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsdumpdv.c
deleted file mode 100644 (file)
index fbb66a6..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsdump - table dumping routines for debug
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
-
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSDUMPDV_C__
-
-#include "acpi.h"
-
-
-/* TBD: This entire module is apparently obsolete and should be removed */
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsdumpdv")
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-
-#include "acnamesp.h"
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDumpOneDevice
- *
- * PARAMETERS:  Handle              - Node to be dumped
- *              Level               - Nesting level of the handle
- *              Context             - Passed into WalkNamespace
- *              ReturnValue         - Not used
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Dump a single Node that represents a device
- *              This procedure is a UserFunction called by AcpiNsWalkNamespace.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsDumpOneDevice (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_BUFFER             Buffer;
-    ACPI_DEVICE_INFO        *Info;
-    ACPI_STATUS             Status;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_NAME (NsDumpOneDevice);
-
-
-    Status = AcpiNsDumpOneObject (ObjHandle, Level, Context, ReturnValue);
-
-    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    Status = AcpiGetObjectInfo (ObjHandle, &Buffer);
-    if (ACPI_SUCCESS (Status))
-    {
-        Info = Buffer.Pointer;
-        for (i = 0; i < Level; i++)
-        {
-            ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " "));
-        }
-
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES,
-            "    HID: %s, ADR: %8.8X%8.8X, Status: %X\n",
-            Info->HardwareId.Value, ACPI_FORMAT_UINT64 (Info->Address),
-            Info->CurrentStatus));
-        ACPI_FREE (Info);
-    }
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDumpRootDevices
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump all objects of type "device"
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpRootDevices (
-    void)
-{
-    ACPI_HANDLE             SysBusHandle;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_NAME (NsDumpRootDevices);
-
-
-    /* Only dump the table if tracing is enabled */
-
-    if (!(ACPI_LV_TABLES & AcpiDbgLevel))
-    {
-        return;
-    }
-
-    Status = AcpiGetHandle (NULL, ACPI_NS_SYSTEM_BUS, &SysBusHandle);
-    if (ACPI_FAILURE (Status))
-    {
-        return;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_TABLES,
-        "Display of all devices in the namespace:\n"));
-
-    Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, SysBusHandle,
-                ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
-                AcpiNsDumpOneDevice, NULL, NULL, NULL);
-}
-
-#endif
-#endif
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nseval.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nseval.c
deleted file mode 100644 (file)
index 07af96e..0000000
+++ /dev/null
@@ -1,558 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nseval - Object evaluation, includes control method execution
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
-
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSEVAL_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nseval")
-
-/* Local prototypes */
-
-static void
-AcpiNsExecModuleCode (
-    ACPI_OPERAND_OBJECT     *MethodObj,
-    ACPI_EVALUATE_INFO      *Info);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsEvaluate
- *
- * PARAMETERS:  Info            - Evaluation info block, contains:
- *                  PrefixNode      - Prefix or Method/Object Node to execute
- *                  Pathname        - Name of method to execute, If NULL, the
- *                                    Node is the object to execute
- *                  Parameters      - List of parameters to pass to the method,
- *                                    terminated by NULL. Params itself may be
- *                                    NULL if no parameters are being passed.
- *                  ReturnObject    - Where to put method's return value (if
- *                                    any). If NULL, no value is returned.
- *                  ParameterType   - Type of Parameter list
- *                  ReturnObject    - Where to put method's return value (if
- *                                    any). If NULL, no value is returned.
- *                  Flags           - ACPI_IGNORE_RETURN_VALUE to delete return
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute a control method or return the current value of an
- *              ACPI namespace object.
- *
- * MUTEX:       Locks interpreter
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsEvaluate (
-    ACPI_EVALUATE_INFO      *Info)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ACPI_FUNCTION_TRACE (NsEvaluate);
-
-
-    if (!Info)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Initialize the return value to an invalid object */
-
-    Info->ReturnObject = NULL;
-    Info->ParamCount = 0;
-
-    /*
-     * Get the actual namespace node for the target object. Handles these cases:
-     *
-     * 1) Null node, Pathname (absolute path)
-     * 2) Node, Pathname (path relative to Node)
-     * 3) Node, Null Pathname
-     */
-    Status = AcpiNsGetNode (Info->PrefixNode, Info->Pathname,
-                ACPI_NS_NO_UPSEARCH, &Info->ResolvedNode);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * For a method alias, we must grab the actual method node so that proper
-     * scoping context will be established before execution.
-     */
-    if (AcpiNsGetType (Info->ResolvedNode) == ACPI_TYPE_LOCAL_METHOD_ALIAS)
-    {
-        Info->ResolvedNode =
-            ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Info->ResolvedNode->Object);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "%s [%p] Value %p\n", Info->Pathname,
-        Info->ResolvedNode, AcpiNsGetAttachedObject (Info->ResolvedNode)));
-
-    Node = Info->ResolvedNode;
-
-    /*
-     * Two major cases here:
-     *
-     * 1) The object is a control method -- execute it
-     * 2) The object is not a method -- just return it's current value
-     */
-    if (AcpiNsGetType (Info->ResolvedNode) == ACPI_TYPE_METHOD)
-    {
-        /*
-         * 1) Object is a control method - execute it
-         */
-
-        /* Verify that there is a method object associated with this node */
-
-        Info->ObjDesc = AcpiNsGetAttachedObject (Info->ResolvedNode);
-        if (!Info->ObjDesc)
-        {
-            ACPI_ERROR ((AE_INFO, "Control method has no attached sub-object"));
-            return_ACPI_STATUS (AE_NULL_OBJECT);
-        }
-
-        /* Count the number of arguments being passed to the method */
-
-        if (Info->Parameters)
-        {
-            while (Info->Parameters[Info->ParamCount])
-            {
-                if (Info->ParamCount > ACPI_METHOD_MAX_ARG)
-                {
-                    return_ACPI_STATUS (AE_LIMIT);
-                }
-                Info->ParamCount++;
-            }
-        }
-
-        ACPI_DUMP_PATHNAME (Info->ResolvedNode, "ACPI: Execute Method",
-            ACPI_LV_INFO, _COMPONENT);
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "Method at AML address %p Length %X\n",
-            Info->ObjDesc->Method.AmlStart + 1,
-            Info->ObjDesc->Method.AmlLength - 1));
-
-        /*
-         * Any namespace deletion must acquire both the namespace and
-         * interpreter locks to ensure that no thread is using the portion of
-         * the namespace that is being deleted.
-         *
-         * Execute the method via the interpreter. The interpreter is locked
-         * here before calling into the AML parser
-         */
-        AcpiExEnterInterpreter ();
-        Status = AcpiPsExecuteMethod (Info);
-        AcpiExExitInterpreter ();
-    }
-    else
-    {
-        /*
-         * 2) Object is not a method, return its current value
-         *
-         * Disallow certain object types. For these, "evaluation" is undefined.
-         */
-        switch (Info->ResolvedNode->Type)
-        {
-        case ACPI_TYPE_DEVICE:
-        case ACPI_TYPE_EVENT:
-        case ACPI_TYPE_MUTEX:
-        case ACPI_TYPE_REGION:
-        case ACPI_TYPE_THERMAL:
-        case ACPI_TYPE_LOCAL_SCOPE:
-
-            ACPI_ERROR ((AE_INFO,
-                "[%4.4s] Evaluation of object type [%s] is not supported",
-                Info->ResolvedNode->Name.Ascii,
-                AcpiUtGetTypeName (Info->ResolvedNode->Type)));
-
-            return_ACPI_STATUS (AE_TYPE);
-
-        default:
-            break;
-        }
-
-        /*
-         * Objects require additional resolution steps (e.g., the Node may be
-         * a field that must be read, etc.) -- we can't just grab the object
-         * out of the node.
-         *
-         * Use ResolveNodeToValue() to get the associated value.
-         *
-         * NOTE: we can get away with passing in NULL for a walk state because
-         * ResolvedNode is guaranteed to not be a reference to either a method
-         * local or a method argument (because this interface is never called
-         * from a running method.)
-         *
-         * Even though we do not directly invoke the interpreter for object
-         * resolution, we must lock it because we could access an opregion.
-         * The opregion access code assumes that the interpreter is locked.
-         */
-        AcpiExEnterInterpreter ();
-
-        /* Function has a strange interface */
-
-        Status = AcpiExResolveNodeToValue (&Info->ResolvedNode, NULL);
-        AcpiExExitInterpreter ();
-
-        /*
-         * If AcpiExResolveNodeToValue() succeeded, the return value was placed
-         * in ResolvedNode.
-         */
-        if (ACPI_SUCCESS (Status))
-        {
-            Status = AE_CTRL_RETURN_VALUE;
-            Info->ReturnObject =
-                ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Info->ResolvedNode);
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Returning object %p [%s]\n",
-                Info->ReturnObject,
-                AcpiUtGetObjectTypeName (Info->ReturnObject)));
-        }
-    }
-
-    /*
-     * Check input argument count against the ASL-defined count for a method.
-     * Also check predefined names: argument count and return value against
-     * the ACPI specification. Some incorrect return value types are repaired.
-     */
-    (void) AcpiNsCheckPredefinedNames (Node, Info->ParamCount,
-                Status, &Info->ReturnObject);
-
-    /* Check if there is a return value that must be dealt with */
-
-    if (Status == AE_CTRL_RETURN_VALUE)
-    {
-        /* If caller does not want the return value, delete it */
-
-        if (Info->Flags & ACPI_IGNORE_RETURN_VALUE)
-        {
-            AcpiUtRemoveReference (Info->ReturnObject);
-            Info->ReturnObject = NULL;
-        }
-
-        /* Map AE_CTRL_RETURN_VALUE to AE_OK, we are done with it */
-
-        Status = AE_OK;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-        "*** Completed evaluation of object %s ***\n", Info->Pathname));
-
-    /*
-     * Namespace was unlocked by the handling AcpiNs* function, so we
-     * just return
-     */
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsExecModuleCodeList
- *
- * PARAMETERS:  None
- *
- * RETURN:      None. Exceptions during method execution are ignored, since
- *              we cannot abort a table load.
- *
- * DESCRIPTION: Execute all elements of the global module-level code list.
- *              Each element is executed as a single control method.
- *
- ******************************************************************************/
-
-void
-AcpiNsExecModuleCodeList (
-    void)
-{
-    ACPI_OPERAND_OBJECT     *Prev;
-    ACPI_OPERAND_OBJECT     *Next;
-    ACPI_EVALUATE_INFO      *Info;
-    UINT32                  MethodCount = 0;
-
-
-    ACPI_FUNCTION_TRACE (NsExecModuleCodeList);
-
-
-    /* Exit now if the list is empty */
-
-    Next = AcpiGbl_ModuleCodeList;
-    if (!Next)
-    {
-        return_VOID;
-    }
-
-    /* Allocate the evaluation information block */
-
-    Info = ACPI_ALLOCATE (sizeof (ACPI_EVALUATE_INFO));
-    if (!Info)
-    {
-        return_VOID;
-    }
-
-    /* Walk the list, executing each "method" */
-
-    while (Next)
-    {
-        Prev = Next;
-        Next = Next->Method.Mutex;
-
-        /* Clear the link field and execute the method */
-
-        Prev->Method.Mutex = NULL;
-        AcpiNsExecModuleCode (Prev, Info);
-        MethodCount++;
-
-        /* Delete the (temporary) method object */
-
-        AcpiUtRemoveReference (Prev);
-    }
-
-    ACPI_INFO ((AE_INFO,
-        "Executed %u blocks of module-level executable AML code",
-        MethodCount));
-
-    ACPI_FREE (Info);
-    AcpiGbl_ModuleCodeList = NULL;
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsExecModuleCode
- *
- * PARAMETERS:  MethodObj           - Object container for the module-level code
- *              Info                - Info block for method evaluation
- *
- * RETURN:      None. Exceptions during method execution are ignored, since
- *              we cannot abort a table load.
- *
- * DESCRIPTION: Execute a control method containing a block of module-level
- *              executable AML code. The control method is temporarily
- *              installed to the root node, then evaluated.
- *
- ******************************************************************************/
-
-static void
-AcpiNsExecModuleCode (
-    ACPI_OPERAND_OBJECT     *MethodObj,
-    ACPI_EVALUATE_INFO      *Info)
-{
-    ACPI_OPERAND_OBJECT     *ParentObj;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-    ACPI_OBJECT_TYPE        Type;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (NsExecModuleCode);
-
-
-    /*
-     * Get the parent node. We cheat by using the NextObject field
-     * of the method object descriptor.
-     */
-    ParentNode = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE,
-                    MethodObj->Method.NextObject);
-    Type = AcpiNsGetType (ParentNode);
-
-    /*
-     * Get the region handler and save it in the method object. We may need
-     * this if an operation region declaration causes a _REG method to be run.
-     *
-     * We can't do this in AcpiPsLinkModuleCode because
-     * AcpiGbl_RootNode->Object is NULL at PASS1.
-     */
-    if ((Type == ACPI_TYPE_DEVICE) && ParentNode->Object)
-    {
-        MethodObj->Method.Extra.Handler =
-            ParentNode->Object->Device.Handler;
-    }
-
-    /* Must clear NextObject (AcpiNsAttachObject needs the field) */
-
-    MethodObj->Method.NextObject = NULL;
-
-    /* Initialize the evaluation information block */
-
-    ACPI_MEMSET (Info, 0, sizeof (ACPI_EVALUATE_INFO));
-    Info->PrefixNode = ParentNode;
-
-    /*
-     * Get the currently attached parent object. Add a reference, because the
-     * ref count will be decreased when the method object is installed to
-     * the parent node.
-     */
-    ParentObj = AcpiNsGetAttachedObject (ParentNode);
-    if (ParentObj)
-    {
-        AcpiUtAddReference (ParentObj);
-    }
-
-    /* Install the method (module-level code) in the parent node */
-
-    Status = AcpiNsAttachObject (ParentNode, MethodObj,
-                ACPI_TYPE_METHOD);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Exit;
-    }
-
-    /* Execute the parent node as a control method */
-
-    Status = AcpiNsEvaluate (Info);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "Executed module-level code at %p\n",
-        MethodObj->Method.AmlStart));
-
-    /* Delete a possible implicit return value (in slack mode) */
-
-    if (Info->ReturnObject)
-    {
-        AcpiUtRemoveReference (Info->ReturnObject);
-    }
-
-    /* Detach the temporary method object */
-
-    AcpiNsDetachObject (ParentNode);
-
-    /* Restore the original parent object */
-
-    if (ParentObj)
-    {
-        Status = AcpiNsAttachObject (ParentNode, ParentObj, Type);
-    }
-    else
-    {
-        ParentNode->Type = (UINT8) Type;
-    }
-
-Exit:
-    if (ParentObj)
-    {
-        AcpiUtRemoveReference (ParentObj);
-    }
-    return_VOID;
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsinit.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsinit.c
deleted file mode 100644 (file)
index b36fa6c..0000000
+++ /dev/null
@@ -1,727 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsinit - namespace initialization
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __NSXFINIT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acdispat.h"
-#include "acinterp.h"
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsinit")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiNsInitOneObject (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue);
-
-static ACPI_STATUS
-AcpiNsInitOneDevice (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue);
-
-static ACPI_STATUS
-AcpiNsFindIniMethods (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsInitializeObjects
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Walk the entire namespace and perform any necessary
- *              initialization on the objects found therein
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsInitializeObjects (
-    void)
-{
-    ACPI_STATUS             Status;
-    ACPI_INIT_WALK_INFO     Info;
-
-
-    ACPI_FUNCTION_TRACE (NsInitializeObjects);
-
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "**** Starting initialization of namespace objects ****\n"));
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
-        "Completing Region/Field/Buffer/Package initialization:"));
-
-    /* Set all init info to zero */
-
-    ACPI_MEMSET (&Info, 0, sizeof (ACPI_INIT_WALK_INFO));
-
-    /* Walk entire namespace from the supplied root */
-
-    Status = AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
-                                ACPI_UINT32_MAX, AcpiNsInitOneObject, NULL,
-                                &Info, NULL);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace"));
-    }
-
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
-        "\nInitialized %hd/%hd Regions %hd/%hd Fields %hd/%hd "
-        "Buffers %hd/%hd Packages (%hd nodes)\n",
-        Info.OpRegionInit,  Info.OpRegionCount,
-        Info.FieldInit,     Info.FieldCount,
-        Info.BufferInit,    Info.BufferCount,
-        Info.PackageInit,   Info.PackageCount, Info.ObjectCount));
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "%hd Control Methods found\n", Info.MethodCount));
-    ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
-        "%hd Op Regions found\n", Info.OpRegionCount));
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsInitializeDevices
- *
- * PARAMETERS:  None
- *
- * RETURN:      ACPI_STATUS
- *
- * DESCRIPTION: Walk the entire namespace and initialize all ACPI devices.
- *              This means running _INI on all present devices.
- *
- *              Note: We install PCI config space handler on region access,
- *              not here.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsInitializeDevices (
-    void)
-{
-    ACPI_STATUS             Status;
-    ACPI_DEVICE_WALK_INFO   Info;
-
-
-    ACPI_FUNCTION_TRACE (NsInitializeDevices);
-
-
-    /* Init counters */
-
-    Info.DeviceCount = 0;
-    Info.Num_STA = 0;
-    Info.Num_INI = 0;
-
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
-        "Initializing Device/Processor/Thermal objects "
-        "by executing _INI methods:"));
-
-    /* Tree analysis: find all subtrees that contain _INI methods */
-
-    Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
-                ACPI_UINT32_MAX, FALSE, AcpiNsFindIniMethods, NULL, &Info, NULL);
-    if (ACPI_FAILURE (Status))
-    {
-        goto ErrorExit;
-    }
-
-    /* Allocate the evaluation information block */
-
-    Info.EvaluateInfo = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
-    if (!Info.EvaluateInfo)
-    {
-        Status = AE_NO_MEMORY;
-        goto ErrorExit;
-    }
-
-    /*
-     * Execute the "global" _INI method that may appear at the root. This
-     * support is provided for Windows compatibility (Vista+) and is not
-     * part of the ACPI specification.
-     */
-    Info.EvaluateInfo->PrefixNode = AcpiGbl_RootNode;
-    Info.EvaluateInfo->Pathname = METHOD_NAME__INI;
-    Info.EvaluateInfo->Parameters = NULL;
-    Info.EvaluateInfo->Flags = ACPI_IGNORE_RETURN_VALUE;
-
-    Status = AcpiNsEvaluate (Info.EvaluateInfo);
-    if (ACPI_SUCCESS (Status))
-    {
-        Info.Num_INI++;
-    }
-
-    /* Walk namespace to execute all _INIs on present devices */
-
-    Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
-                ACPI_UINT32_MAX, FALSE, AcpiNsInitOneDevice, NULL, &Info, NULL);
-
-    ACPI_FREE (Info.EvaluateInfo);
-    if (ACPI_FAILURE (Status))
-    {
-        goto ErrorExit;
-    }
-
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
-        "\nExecuted %hd _INI methods requiring %hd _STA executions "
-        "(examined %hd objects)\n",
-        Info.Num_INI, Info.Num_STA, Info.DeviceCount));
-
-    return_ACPI_STATUS (Status);
-
-
-ErrorExit:
-    ACPI_EXCEPTION ((AE_INFO, Status, "During device initialization"));
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsInitOneObject
- *
- * PARAMETERS:  ObjHandle       - Node
- *              Level           - Current nesting level
- *              Context         - Points to a init info struct
- *              ReturnValue     - Not used
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Callback from AcpiWalkNamespace.  Invoked for every object
- *              within the  namespace.
- *
- *              Currently, the only objects that require initialization are:
- *              1) Methods
- *              2) Op Regions
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsInitOneObject (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  Level,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_OBJECT_TYPE        Type;
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_INIT_WALK_INFO     *Info = (ACPI_INIT_WALK_INFO *) Context;
-    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_NAME (NsInitOneObject);
-
-
-    Info->ObjectCount++;
-
-    /* And even then, we are only interested in a few object types */
-
-    Type = AcpiNsGetType (ObjHandle);
-    ObjDesc = AcpiNsGetAttachedObject (Node);
-    if (!ObjDesc)
-    {
-        return (AE_OK);
-    }
-
-    /* Increment counters for object types we are looking for */
-
-    switch (Type)
-    {
-    case ACPI_TYPE_REGION:
-        Info->OpRegionCount++;
-        break;
-
-    case ACPI_TYPE_BUFFER_FIELD:
-        Info->FieldCount++;
-        break;
-
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-        Info->FieldCount++;
-        break;
-
-    case ACPI_TYPE_BUFFER:
-        Info->BufferCount++;
-        break;
-
-    case ACPI_TYPE_PACKAGE:
-        Info->PackageCount++;
-        break;
-
-    default:
-
-        /* No init required, just exit now */
-        return (AE_OK);
-    }
-
-    /* If the object is already initialized, nothing else to do */
-
-    if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
-    {
-        return (AE_OK);
-    }
-
-    /* Must lock the interpreter before executing AML code */
-
-    AcpiExEnterInterpreter ();
-
-    /*
-     * Each of these types can contain executable AML code within the
-     * declaration.
-     */
-    switch (Type)
-    {
-    case ACPI_TYPE_REGION:
-
-        Info->OpRegionInit++;
-        Status = AcpiDsGetRegionArguments (ObjDesc);
-        break;
-
-    case ACPI_TYPE_BUFFER_FIELD:
-
-        Info->FieldInit++;
-        Status = AcpiDsGetBufferFieldArguments (ObjDesc);
-        break;
-
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-
-        Info->FieldInit++;
-        Status = AcpiDsGetBankFieldArguments (ObjDesc);
-        break;
-
-    case ACPI_TYPE_BUFFER:
-
-        Info->BufferInit++;
-        Status = AcpiDsGetBufferArguments (ObjDesc);
-        break;
-
-    case ACPI_TYPE_PACKAGE:
-
-        Info->PackageInit++;
-        Status = AcpiDsGetPackageArguments (ObjDesc);
-        break;
-
-    default:
-        /* No other types can get here */
-        break;
-    }
-
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Could not execute arguments for [%4.4s] (%s)",
-            AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Type)));
-    }
-
-    /*
-     * Print a dot for each object unless we are going to print the entire
-     * pathname
-     */
-    if (!(AcpiDbgLevel & ACPI_LV_INIT_NAMES))
-    {
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "."));
-    }
-
-    /*
-     * We ignore errors from above, and always return OK, since we don't want
-     * to abort the walk on any single error.
-     */
-    AcpiExExitInterpreter ();
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsFindIniMethods
- *
- * PARAMETERS:  ACPI_WALK_CALLBACK
- *
- * RETURN:      ACPI_STATUS
- *
- * DESCRIPTION: Called during namespace walk. Finds objects named _INI under
- *              device/processor/thermal objects, and marks the entire subtree
- *              with a SUBTREE_HAS_INI flag. This flag is used during the
- *              subsequent device initialization walk to avoid entire subtrees
- *              that do not contain an _INI.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsFindIniMethods (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_DEVICE_WALK_INFO   *Info = ACPI_CAST_PTR (ACPI_DEVICE_WALK_INFO, Context);
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-
-
-    /* Keep count of device/processor/thermal objects */
-
-    Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjHandle);
-    if ((Node->Type == ACPI_TYPE_DEVICE)    ||
-        (Node->Type == ACPI_TYPE_PROCESSOR) ||
-        (Node->Type == ACPI_TYPE_THERMAL))
-    {
-        Info->DeviceCount++;
-        return (AE_OK);
-    }
-
-    /* We are only looking for methods named _INI */
-
-    if (!ACPI_COMPARE_NAME (Node->Name.Ascii, METHOD_NAME__INI))
-    {
-        return (AE_OK);
-    }
-
-    /*
-     * The only _INI methods that we care about are those that are
-     * present under Device, Processor, and Thermal objects.
-     */
-    ParentNode = AcpiNsGetParentNode (Node);
-    switch (ParentNode->Type)
-    {
-    case ACPI_TYPE_DEVICE:
-    case ACPI_TYPE_PROCESSOR:
-    case ACPI_TYPE_THERMAL:
-
-        /* Mark parent and bubble up the INI present flag to the root */
-
-        while (ParentNode)
-        {
-            ParentNode->Flags |= ANOBJ_SUBTREE_HAS_INI;
-            ParentNode = AcpiNsGetParentNode (ParentNode);
-        }
-        break;
-
-    default:
-        break;
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsInitOneDevice
- *
- * PARAMETERS:  ACPI_WALK_CALLBACK
- *
- * RETURN:      ACPI_STATUS
- *
- * DESCRIPTION: This is called once per device soon after ACPI is enabled
- *              to initialize each device. It determines if the device is
- *              present, and if so, calls _INI.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsInitOneDevice (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_DEVICE_WALK_INFO   *WalkInfo = ACPI_CAST_PTR (ACPI_DEVICE_WALK_INFO, Context);
-    ACPI_EVALUATE_INFO      *Info = WalkInfo->EvaluateInfo;
-    UINT32                  Flags;
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *DeviceNode;
-
-
-    ACPI_FUNCTION_TRACE (NsInitOneDevice);
-
-
-    /* We are interested in Devices, Processors and ThermalZones only */
-
-    DeviceNode = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjHandle);
-    if ((DeviceNode->Type != ACPI_TYPE_DEVICE)    &&
-        (DeviceNode->Type != ACPI_TYPE_PROCESSOR) &&
-        (DeviceNode->Type != ACPI_TYPE_THERMAL))
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * Because of an earlier namespace analysis, all subtrees that contain an
-     * _INI method are tagged.
-     *
-     * If this device subtree does not contain any _INI methods, we
-     * can exit now and stop traversing this entire subtree.
-     */
-    if (!(DeviceNode->Flags & ANOBJ_SUBTREE_HAS_INI))
-    {
-        return_ACPI_STATUS (AE_CTRL_DEPTH);
-    }
-
-    /*
-     * Run _STA to determine if this device is present and functioning. We
-     * must know this information for two important reasons (from ACPI spec):
-     *
-     * 1) We can only run _INI if the device is present.
-     * 2) We must abort the device tree walk on this subtree if the device is
-     *    not present and is not functional (we will not examine the children)
-     *
-     * The _STA method is not required to be present under the device, we
-     * assume the device is present if _STA does not exist.
-     */
-    ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (
-        ACPI_TYPE_METHOD, DeviceNode, METHOD_NAME__STA));
-
-    Status = AcpiUtExecute_STA (DeviceNode, &Flags);
-    if (ACPI_FAILURE (Status))
-    {
-        /* Ignore error and move on to next device */
-
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * Flags == -1 means that _STA was not found. In this case, we assume that
-     * the device is both present and functional.
-     *
-     * From the ACPI spec, description of _STA:
-     *
-     * "If a device object (including the processor object) does not have an
-     * _STA object, then OSPM assumes that all of the above bits are set (in
-     * other words, the device is present, ..., and functioning)"
-     */
-    if (Flags != ACPI_UINT32_MAX)
-    {
-        WalkInfo->Num_STA++;
-    }
-
-    /*
-     * Examine the PRESENT and FUNCTIONING status bits
-     *
-     * Note: ACPI spec does not seem to specify behavior for the present but
-     * not functioning case, so we assume functioning if present.
-     */
-    if (!(Flags & ACPI_STA_DEVICE_PRESENT))
-    {
-        /* Device is not present, we must examine the Functioning bit */
-
-        if (Flags & ACPI_STA_DEVICE_FUNCTIONING)
-        {
-            /*
-             * Device is not present but is "functioning". In this case,
-             * we will not run _INI, but we continue to examine the children
-             * of this device.
-             *
-             * From the ACPI spec, description of _STA: (Note - no mention
-             * of whether to run _INI or not on the device in question)
-             *
-             * "_STA may return bit 0 clear (not present) with bit 3 set
-             * (device is functional). This case is used to indicate a valid
-             * device for which no device driver should be loaded (for example,
-             * a bridge device.) Children of this device may be present and
-             * valid. OSPM should continue enumeration below a device whose
-             * _STA returns this bit combination"
-             */
-            return_ACPI_STATUS (AE_OK);
-        }
-        else
-        {
-            /*
-             * Device is not present and is not functioning. We must abort the
-             * walk of this subtree immediately -- don't look at the children
-             * of such a device.
-             *
-             * From the ACPI spec, description of _INI:
-             *
-             * "If the _STA method indicates that the device is not present,
-             * OSPM will not run the _INI and will not examine the children
-             * of the device for _INI methods"
-             */
-            return_ACPI_STATUS (AE_CTRL_DEPTH);
-        }
-    }
-
-    /*
-     * The device is present or is assumed present if no _STA exists.
-     * Run the _INI if it exists (not required to exist)
-     *
-     * Note: We know there is an _INI within this subtree, but it may not be
-     * under this particular device, it may be lower in the branch.
-     */
-    ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (
-        ACPI_TYPE_METHOD, DeviceNode, METHOD_NAME__INI));
-
-    Info->PrefixNode = DeviceNode;
-    Info->Pathname = METHOD_NAME__INI;
-    Info->Parameters = NULL;
-    Info->Flags = ACPI_IGNORE_RETURN_VALUE;
-
-    Status = AcpiNsEvaluate (Info);
-    if (ACPI_SUCCESS (Status))
-    {
-        WalkInfo->Num_INI++;
-
-        if ((AcpiDbgLevel <= ACPI_LV_ALL_EXCEPTIONS) &&
-            (!(AcpiDbgLevel & ACPI_LV_INFO)))
-        {
-            ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "."));
-        }
-    }
-
-#ifdef ACPI_DEBUG_OUTPUT
-    else if (Status != AE_NOT_FOUND)
-    {
-        /* Ignore error and move on to next device */
-
-        char *ScopeName = AcpiNsGetExternalPathname (Info->ResolvedNode);
-
-        ACPI_EXCEPTION ((AE_INFO, Status, "during %s._INI execution",
-            ScopeName));
-        ACPI_FREE (ScopeName);
-    }
-#endif
-
-    /* Ignore errors from above */
-
-    Status = AE_OK;
-
-    /*
-     * The _INI method has been run if present; call the Global Initialization
-     * Handler for this device.
-     */
-    if (AcpiGbl_InitHandler)
-    {
-        Status = AcpiGbl_InitHandler (DeviceNode, ACPI_INIT_DEVICE_INI);
-    }
-
-    return_ACPI_STATUS (Status);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsload.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsload.c
deleted file mode 100644 (file)
index a9f3824..0000000
+++ /dev/null
@@ -1,428 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsload - namespace loading/expanding/contracting procedures
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSLOAD_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acdispat.h"
-#include "actables.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsload")
-
-/* Local prototypes */
-
-#ifdef ACPI_FUTURE_IMPLEMENTATION
-ACPI_STATUS
-AcpiNsUnloadNamespace (
-    ACPI_HANDLE             Handle);
-
-static ACPI_STATUS
-AcpiNsDeleteSubtree (
-    ACPI_HANDLE             StartHandle);
-#endif
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsLoadTable
- *
- * PARAMETERS:  TableIndex      - Index for table to be loaded
- *              Node            - Owning NS node
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load one ACPI table into the namespace
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsLoadTable (
-    UINT32                  TableIndex,
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (NsLoadTable);
-
-
-    /*
-     * Parse the table and load the namespace with all named
-     * objects found within.  Control methods are NOT parsed
-     * at this time.  In fact, the control methods cannot be
-     * parsed until the entire namespace is loaded, because
-     * if a control method makes a forward reference (call)
-     * to another control method, we can't continue parsing
-     * because we don't know how many arguments to parse next!
-     */
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* If table already loaded into namespace, just return */
-
-    if (AcpiTbIsTableLoaded (TableIndex))
-    {
-        Status = AE_ALREADY_EXISTS;
-        goto Unlock;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-        "**** Loading table into namespace ****\n"));
-
-    Status = AcpiTbAllocateOwnerId (TableIndex);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Unlock;
-    }
-
-    Status = AcpiNsParseTable (TableIndex, Node);
-    if (ACPI_SUCCESS (Status))
-    {
-        AcpiTbSetTableLoadedFlag (TableIndex, TRUE);
-    }
-    else
-    {
-        (void) AcpiTbReleaseOwnerId (TableIndex);
-    }
-
-Unlock:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Now we can parse the control methods.  We always parse
-     * them here for a sanity check, and if configured for
-     * just-in-time parsing, we delete the control method
-     * parse trees.
-     */
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-        "**** Begin Table Method Parsing and Object Initialization\n"));
-
-    Status = AcpiDsInitializeObjects (TableIndex, Node);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-        "**** Completed Table Method Parsing and Object Initialization\n"));
-
-    return_ACPI_STATUS (Status);
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION:    AcpiLoadNamespace
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load the name space from what ever is pointed to by DSDT.
- *              (DSDT points to either the BIOS or a buffer.)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsLoadNamespace (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiLoadNameSpace);
-
-
-    /* There must be at least a DSDT installed */
-
-    if (AcpiGbl_DSDT == NULL)
-    {
-        ACPI_ERROR ((AE_INFO, "DSDT is not in memory"));
-        return_ACPI_STATUS (AE_NO_ACPI_TABLES);
-    }
-
-    /*
-     * Load the namespace.  The DSDT is required,
-     * but the SSDT and PSDT tables are optional.
-     */
-    Status = AcpiNsLoadTableByType (ACPI_TABLE_ID_DSDT);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Ignore exceptions from these */
-
-    (void) AcpiNsLoadTableByType (ACPI_TABLE_ID_SSDT);
-    (void) AcpiNsLoadTableByType (ACPI_TABLE_ID_PSDT);
-
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
-        "ACPI Namespace successfully loaded at root %p\n",
-        AcpiGbl_RootNode));
-
-    return_ACPI_STATUS (Status);
-}
-#endif
-
-#ifdef ACPI_FUTURE_IMPLEMENTATION
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDeleteSubtree
- *
- * PARAMETERS:  StartHandle         - Handle in namespace where search begins
- *
- * RETURNS      Status
- *
- * DESCRIPTION: Walks the namespace starting at the given handle and deletes
- *              all objects, entries, and scopes in the entire subtree.
- *
- *              Namespace/Interpreter should be locked or the subsystem should
- *              be in shutdown before this routine is called.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsDeleteSubtree (
-    ACPI_HANDLE             StartHandle)
-{
-    ACPI_STATUS             Status;
-    ACPI_HANDLE             ChildHandle;
-    ACPI_HANDLE             ParentHandle;
-    ACPI_HANDLE             NextChildHandle;
-    ACPI_HANDLE             Dummy;
-    UINT32                  Level;
-
-
-    ACPI_FUNCTION_TRACE (NsDeleteSubtree);
-
-
-    ParentHandle = StartHandle;
-    ChildHandle  = NULL;
-    Level        = 1;
-
-    /*
-     * Traverse the tree of objects until we bubble back up
-     * to where we started.
-     */
-    while (Level > 0)
-    {
-        /* Attempt to get the next object in this scope */
-
-        Status = AcpiGetNextObject (ACPI_TYPE_ANY, ParentHandle,
-                                    ChildHandle, &NextChildHandle);
-
-        ChildHandle = NextChildHandle;
-
-        /* Did we get a new object? */
-
-        if (ACPI_SUCCESS (Status))
-        {
-            /* Check if this object has any children */
-
-            if (ACPI_SUCCESS (AcpiGetNextObject (ACPI_TYPE_ANY, ChildHandle,
-                                    NULL, &Dummy)))
-            {
-                /*
-                 * There is at least one child of this object,
-                 * visit the object
-                 */
-                Level++;
-                ParentHandle = ChildHandle;
-                ChildHandle  = NULL;
-            }
-        }
-        else
-        {
-            /*
-             * No more children in this object, go back up to
-             * the object's parent
-             */
-            Level--;
-
-            /* Delete all children now */
-
-            AcpiNsDeleteChildren (ChildHandle);
-
-            ChildHandle = ParentHandle;
-            Status = AcpiGetParent (ParentHandle, &ParentHandle);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-        }
-    }
-
-    /* Now delete the starting object, and we are done */
-
-    AcpiNsRemoveNode (ChildHandle);
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- *  FUNCTION:       AcpiNsUnloadNameSpace
- *
- *  PARAMETERS:     Handle          - Root of namespace subtree to be deleted
- *
- *  RETURN:         Status
- *
- *  DESCRIPTION:    Shrinks the namespace, typically in response to an undocking
- *                  event.  Deletes an entire subtree starting from (and
- *                  including) the given handle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsUnloadNamespace (
-    ACPI_HANDLE             Handle)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (NsUnloadNameSpace);
-
-
-    /* Parameter validation */
-
-    if (!AcpiGbl_RootNode)
-    {
-        return_ACPI_STATUS (AE_NO_NAMESPACE);
-    }
-
-    if (!Handle)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* This function does the real work */
-
-    Status = AcpiNsDeleteSubtree (Handle);
-
-    return_ACPI_STATUS (Status);
-}
-#endif
-#endif
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsnames.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsnames.c
deleted file mode 100644 (file)
index c00a445..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsnames - Name manipulation and search
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSNAMES_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsnames")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsBuildExternalPath
- *
- * PARAMETERS:  Node            - NS node whose pathname is needed
- *              Size            - Size of the pathname
- *              *NameBuffer     - Where to return the pathname
- *
- * RETURN:      Status
- *              Places the pathname into the NameBuffer, in external format
- *              (name segments separated by path separators)
- *
- * DESCRIPTION: Generate a full pathaname
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsBuildExternalPath (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_SIZE               Size,
-    char                    *NameBuffer)
-{
-    ACPI_SIZE               Index;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Special case for root */
-
-    Index = Size - 1;
-    if (Index < ACPI_NAME_SIZE)
-    {
-        NameBuffer[0] = AML_ROOT_PREFIX;
-        NameBuffer[1] = 0;
-        return (AE_OK);
-    }
-
-    /* Store terminator byte, then build name backwards */
-
-    ParentNode = Node;
-    NameBuffer[Index] = 0;
-
-    while ((Index > ACPI_NAME_SIZE) && (ParentNode != AcpiGbl_RootNode))
-    {
-        Index -= ACPI_NAME_SIZE;
-
-        /* Put the name into the buffer */
-
-        ACPI_MOVE_32_TO_32 ((NameBuffer + Index), &ParentNode->Name);
-        ParentNode = AcpiNsGetParentNode (ParentNode);
-
-        /* Prefix name with the path separator */
-
-        Index--;
-        NameBuffer[Index] = ACPI_PATH_SEPARATOR;
-    }
-
-    /* Overwrite final separator with the root prefix character */
-
-    NameBuffer[Index] = AML_ROOT_PREFIX;
-
-    if (Index != 0)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Could not construct external pathname; index=%X, size=%X, Path=%s",
-            (UINT32) Index, (UINT32) Size, &NameBuffer[Size]));
-
-        return (AE_BAD_PARAMETER);
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetExternalPathname
- *
- * PARAMETERS:  Node            - Namespace node whose pathname is needed
- *
- * RETURN:      Pointer to storage containing the fully qualified name of
- *              the node, In external format (name segments separated by path
- *              separators.)
- *
- * DESCRIPTION: Used to obtain the full pathname to a namespace node, usually
- *              for error and debug statements.
- *
- ******************************************************************************/
-
-char *
-AcpiNsGetExternalPathname (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_STATUS             Status;
-    char                    *NameBuffer;
-    ACPI_SIZE               Size;
-
-
-    ACPI_FUNCTION_TRACE_PTR (NsGetExternalPathname, Node);
-
-
-    /* Calculate required buffer size based on depth below root */
-
-    Size = AcpiNsGetPathnameLength (Node);
-    if (!Size)
-    {
-        return_PTR (NULL);
-    }
-
-    /* Allocate a buffer to be returned to caller */
-
-    NameBuffer = ACPI_ALLOCATE_ZEROED (Size);
-    if (!NameBuffer)
-    {
-        ACPI_ERROR ((AE_INFO, "Could not allocate %u bytes", (UINT32) Size));
-        return_PTR (NULL);
-    }
-
-    /* Build the path in the allocated buffer */
-
-    Status = AcpiNsBuildExternalPath (Node, Size, NameBuffer);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_FREE (NameBuffer);
-        return_PTR (NULL);
-    }
-
-    return_PTR (NameBuffer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetPathnameLength
- *
- * PARAMETERS:  Node        - Namespace node
- *
- * RETURN:      Length of path, including prefix
- *
- * DESCRIPTION: Get the length of the pathname string for this node
- *
- ******************************************************************************/
-
-ACPI_SIZE
-AcpiNsGetPathnameLength (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_SIZE               Size;
-    ACPI_NAMESPACE_NODE     *NextNode;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * Compute length of pathname as 5 * number of name segments.
-     * Go back up the parent tree to the root
-     */
-    Size = 0;
-    NextNode = Node;
-
-    while (NextNode && (NextNode != AcpiGbl_RootNode))
-    {
-        if (ACPI_GET_DESCRIPTOR_TYPE (NextNode) != ACPI_DESC_TYPE_NAMED)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Invalid Namespace Node (%p) while traversing namespace",
-                NextNode));
-            return 0;
-        }
-        Size += ACPI_PATH_SEGMENT_LENGTH;
-        NextNode = AcpiNsGetParentNode (NextNode);
-    }
-
-    if (!Size)
-    {
-        Size = 1; /* Root node case */
-    }
-
-    return (Size + 1);  /* +1 for null string terminator */
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsHandleToPathname
- *
- * PARAMETERS:  TargetHandle            - Handle of named object whose name is
- *                                        to be found
- *              Buffer                  - Where the pathname is returned
- *
- * RETURN:      Status, Buffer is filled with pathname if status is AE_OK
- *
- * DESCRIPTION: Build and return a full namespace pathname
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsHandleToPathname (
-    ACPI_HANDLE             TargetHandle,
-    ACPI_BUFFER             *Buffer)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_SIZE               RequiredSize;
-
-
-    ACPI_FUNCTION_TRACE_PTR (NsHandleToPathname, TargetHandle);
-
-
-    Node = AcpiNsValidateHandle (TargetHandle);
-    if (!Node)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Determine size required for the caller buffer */
-
-    RequiredSize = AcpiNsGetPathnameLength (Node);
-    if (!RequiredSize)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Validate/Allocate/Clear caller buffer */
-
-    Status = AcpiUtInitializeBuffer (Buffer, RequiredSize);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Build the path in the caller buffer */
-
-    Status = AcpiNsBuildExternalPath (Node, RequiredSize, Buffer->Pointer);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%s [%X]\n",
-        (char *) Buffer->Pointer, (UINT32) RequiredSize));
-    return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsobject.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsobject.c
deleted file mode 100644 (file)
index c0163f4..0000000
+++ /dev/null
@@ -1,577 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsobject - Utilities for objects attached to namespace
- *                         table entries
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __NSOBJECT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsobject")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsAttachObject
- *
- * PARAMETERS:  Node                - Parent Node
- *              Object              - Object to be attached
- *              Type                - Type of object, or ACPI_TYPE_ANY if not
- *                                    known
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Record the given object as the value associated with the
- *              name whose ACPI_HANDLE is passed.  If Object is NULL
- *              and Type is ACPI_TYPE_ANY, set the name as having no value.
- *              Note: Future may require that the Node->Flags field be passed
- *              as a parameter.
- *
- * MUTEX:       Assumes namespace is locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsAttachObject (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_OPERAND_OBJECT     *Object,
-    ACPI_OBJECT_TYPE        Type)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *LastObjDesc;
-    ACPI_OBJECT_TYPE        ObjectType = ACPI_TYPE_ANY;
-
-
-    ACPI_FUNCTION_TRACE (NsAttachObject);
-
-
-    /*
-     * Parameter validation
-     */
-    if (!Node)
-    {
-        /* Invalid handle */
-
-        ACPI_ERROR ((AE_INFO, "Null NamedObj handle"));
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (!Object && (ACPI_TYPE_ANY != Type))
-    {
-        /* Null object */
-
-        ACPI_ERROR ((AE_INFO,
-            "Null object, but type not ACPI_TYPE_ANY"));
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
-    {
-        /* Not a name handle */
-
-        ACPI_ERROR ((AE_INFO, "Invalid handle %p [%s]",
-            Node, AcpiUtGetDescriptorName (Node)));
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Check if this object is already attached */
-
-    if (Node->Object == Object)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "Obj %p already installed in NameObj %p\n",
-            Object, Node));
-
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* If null object, we will just install it */
-
-    if (!Object)
-    {
-        ObjDesc    = NULL;
-        ObjectType = ACPI_TYPE_ANY;
-    }
-
-    /*
-     * If the source object is a namespace Node with an attached object,
-     * we will use that (attached) object
-     */
-    else if ((ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_NAMED) &&
-            ((ACPI_NAMESPACE_NODE *) Object)->Object)
-    {
-        /*
-         * Value passed is a name handle and that name has a
-         * non-null value.  Use that name's value and type.
-         */
-        ObjDesc    = ((ACPI_NAMESPACE_NODE *) Object)->Object;
-        ObjectType = ((ACPI_NAMESPACE_NODE *) Object)->Type;
-    }
-
-    /*
-     * Otherwise, we will use the parameter object, but we must type
-     * it first
-     */
-    else
-    {
-        ObjDesc = (ACPI_OPERAND_OBJECT  *) Object;
-
-        /* Use the given type */
-
-        ObjectType = Type;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Installing %p into Node %p [%4.4s]\n",
-        ObjDesc, Node, AcpiUtGetNodeName (Node)));
-
-    /* Detach an existing attached object if present */
-
-    if (Node->Object)
-    {
-        AcpiNsDetachObject (Node);
-    }
-
-    if (ObjDesc)
-    {
-        /*
-         * Must increment the new value's reference count
-         * (if it is an internal object)
-         */
-        AcpiUtAddReference (ObjDesc);
-
-        /*
-         * Handle objects with multiple descriptors - walk
-         * to the end of the descriptor list
-         */
-        LastObjDesc = ObjDesc;
-        while (LastObjDesc->Common.NextObject)
-        {
-            LastObjDesc = LastObjDesc->Common.NextObject;
-        }
-
-        /* Install the object at the front of the object list */
-
-        LastObjDesc->Common.NextObject = Node->Object;
-    }
-
-    Node->Type     = (UINT8) ObjectType;
-    Node->Object   = ObjDesc;
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDetachObject
- *
- * PARAMETERS:  Node           - A Namespace node whose object will be detached
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Detach/delete an object associated with a namespace node.
- *              if the object is an allocated object, it is freed.
- *              Otherwise, the field is simply cleared.
- *
- ******************************************************************************/
-
-void
-AcpiNsDetachObject (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_TRACE (NsDetachObject);
-
-
-    ObjDesc = Node->Object;
-
-    if (!ObjDesc ||
-        (ObjDesc->Common.Type == ACPI_TYPE_LOCAL_DATA))
-    {
-        return_VOID;
-    }
-
-    if (Node->Flags & ANOBJ_ALLOCATED_BUFFER)
-    {
-        /* Free the dynamic aml buffer */
-
-        if (ObjDesc->Common.Type == ACPI_TYPE_METHOD)
-        {
-            ACPI_FREE (ObjDesc->Method.AmlStart);
-        }
-    }
-
-    /* Clear the entry in all cases */
-
-    Node->Object = NULL;
-    if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND)
-    {
-        Node->Object = ObjDesc->Common.NextObject;
-        if (Node->Object &&
-           ((Node->Object)->Common.Type != ACPI_TYPE_LOCAL_DATA))
-        {
-            Node->Object = Node->Object->Common.NextObject;
-        }
-    }
-
-    /* Reset the node type to untyped */
-
-    Node->Type = ACPI_TYPE_ANY;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Node %p [%4.4s] Object %p\n",
-        Node, AcpiUtGetNodeName (Node), ObjDesc));
-
-    /* Remove one reference on the object (and all subobjects) */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetAttachedObject
- *
- * PARAMETERS:  Node             - Namespace node
- *
- * RETURN:      Current value of the object field from the Node whose
- *              handle is passed
- *
- * DESCRIPTION: Obtain the object attached to a namespace node.
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiNsGetAttachedObject (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_FUNCTION_TRACE_PTR (NsGetAttachedObject, Node);
-
-
-    if (!Node)
-    {
-        ACPI_WARNING ((AE_INFO, "Null Node ptr"));
-        return_PTR (NULL);
-    }
-
-    if (!Node->Object ||
-            ((ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_OPERAND) &&
-             (ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_NAMED))  ||
-        ((Node->Object)->Common.Type == ACPI_TYPE_LOCAL_DATA))
-    {
-        return_PTR (NULL);
-    }
-
-    return_PTR (Node->Object);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetSecondaryObject
- *
- * PARAMETERS:  Node             - Namespace node
- *
- * RETURN:      Current value of the object field from the Node whose
- *              handle is passed.
- *
- * DESCRIPTION: Obtain a secondary object associated with a namespace node.
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiNsGetSecondaryObject (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_FUNCTION_TRACE_PTR (NsGetSecondaryObject, ObjDesc);
-
-
-    if ((!ObjDesc)                                     ||
-        (ObjDesc->Common.Type== ACPI_TYPE_LOCAL_DATA)  ||
-        (!ObjDesc->Common.NextObject)                  ||
-        ((ObjDesc->Common.NextObject)->Common.Type == ACPI_TYPE_LOCAL_DATA))
-    {
-        return_PTR (NULL);
-    }
-
-    return_PTR (ObjDesc->Common.NextObject);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsAttachData
- *
- * PARAMETERS:  Node            - Namespace node
- *              Handler         - Handler to be associated with the data
- *              Data            - Data to be attached
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Low-level attach data.  Create and attach a Data object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsAttachData (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_OBJECT_HANDLER     Handler,
-    void                    *Data)
-{
-    ACPI_OPERAND_OBJECT     *PrevObjDesc;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *DataDesc;
-
-
-    /* We only allow one attachment per handler */
-
-    PrevObjDesc = NULL;
-    ObjDesc = Node->Object;
-    while (ObjDesc)
-    {
-        if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_DATA) &&
-            (ObjDesc->Data.Handler == Handler))
-        {
-            return (AE_ALREADY_EXISTS);
-        }
-
-        PrevObjDesc = ObjDesc;
-        ObjDesc = ObjDesc->Common.NextObject;
-    }
-
-    /* Create an internal object for the data */
-
-    DataDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_DATA);
-    if (!DataDesc)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    DataDesc->Data.Handler = Handler;
-    DataDesc->Data.Pointer = Data;
-
-    /* Install the data object */
-
-    if (PrevObjDesc)
-    {
-        PrevObjDesc->Common.NextObject = DataDesc;
-    }
-    else
-    {
-        Node->Object = DataDesc;
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsDetachData
- *
- * PARAMETERS:  Node            - Namespace node
- *              Handler         - Handler associated with the data
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Low-level detach data.  Delete the data node, but the caller
- *              is responsible for the actual data.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsDetachData (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_OBJECT_HANDLER     Handler)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_OPERAND_OBJECT     *PrevObjDesc;
-
-
-    PrevObjDesc = NULL;
-    ObjDesc = Node->Object;
-    while (ObjDesc)
-    {
-        if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_DATA) &&
-            (ObjDesc->Data.Handler == Handler))
-        {
-            if (PrevObjDesc)
-            {
-                PrevObjDesc->Common.NextObject = ObjDesc->Common.NextObject;
-            }
-            else
-            {
-                Node->Object = ObjDesc->Common.NextObject;
-            }
-
-            AcpiUtRemoveReference (ObjDesc);
-            return (AE_OK);
-        }
-
-        PrevObjDesc = ObjDesc;
-        ObjDesc = ObjDesc->Common.NextObject;
-    }
-
-    return (AE_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetAttachedData
- *
- * PARAMETERS:  Node            - Namespace node
- *              Handler         - Handler associated with the data
- *              Data            - Where the data is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Low level interface to obtain data previously associated with
- *              a namespace node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsGetAttachedData (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_OBJECT_HANDLER     Handler,
-    void                    **Data)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ObjDesc = Node->Object;
-    while (ObjDesc)
-    {
-        if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_DATA) &&
-            (ObjDesc->Data.Handler == Handler))
-        {
-            *Data = ObjDesc->Data.Pointer;
-            return (AE_OK);
-        }
-
-        ObjDesc = ObjDesc->Common.NextObject;
-    }
-
-    return (AE_NOT_FOUND);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsparse.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsparse.c
deleted file mode 100644 (file)
index 5830156..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsparse - namespace interface to AML parser
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSPARSE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acparser.h"
-#include "acdispat.h"
-#include "actables.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsparse")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    NsOneCompleteParse
- *
- * PARAMETERS:  PassNumber              - 1 or 2
- *              TableDesc               - The table to be parsed.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Perform one complete parse of an ACPI/AML table.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsOneCompleteParse (
-    UINT32                  PassNumber,
-    UINT32                  TableIndex,
-    ACPI_NAMESPACE_NODE     *StartNode)
-{
-    ACPI_PARSE_OBJECT       *ParseRoot;
-    ACPI_STATUS             Status;
-    UINT32                  AmlLength;
-    UINT8                   *AmlStart;
-    ACPI_WALK_STATE         *WalkState;
-    ACPI_TABLE_HEADER       *Table;
-    ACPI_OWNER_ID           OwnerId;
-
-
-    ACPI_FUNCTION_TRACE (NsOneCompleteParse);
-
-
-    Status = AcpiTbGetOwnerId (TableIndex, &OwnerId);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Create and init a Root Node */
-
-    ParseRoot = AcpiPsCreateScopeOp ();
-    if (!ParseRoot)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Create and initialize a new walk state */
-
-    WalkState = AcpiDsCreateWalkState (OwnerId, NULL, NULL, NULL);
-    if (!WalkState)
-    {
-        AcpiPsFreeOp (ParseRoot);
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Status = AcpiGetTableByIndex (TableIndex, &Table);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiDsDeleteWalkState (WalkState);
-        AcpiPsFreeOp (ParseRoot);
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Table must consist of at least a complete header */
-
-    if (Table->Length < sizeof (ACPI_TABLE_HEADER))
-    {
-        Status = AE_BAD_HEADER;
-    }
-    else
-    {
-        AmlStart = (UINT8 *) Table + sizeof (ACPI_TABLE_HEADER);
-        AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
-        Status = AcpiDsInitAmlWalk (WalkState, ParseRoot, NULL,
-                    AmlStart, AmlLength, NULL, (UINT8) PassNumber);
-    }
-
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiDsDeleteWalkState (WalkState);
-        goto Cleanup;
-    }
-
-    /* StartNode is the default location to load the table  */
-
-    if (StartNode && StartNode != AcpiGbl_RootNode)
-    {
-        Status = AcpiDsScopeStackPush (StartNode, ACPI_TYPE_METHOD, WalkState);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiDsDeleteWalkState (WalkState);
-            goto Cleanup;
-        }
-    }
-
-    /* Parse the AML */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "*PARSE* pass %d parse\n", PassNumber));
-    Status = AcpiPsParseAml (WalkState);
-
-Cleanup:
-    AcpiPsDeleteParseTree (ParseRoot);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsParseTable
- *
- * PARAMETERS:  TableDesc       - An ACPI table descriptor for table to parse
- *              StartNode       - Where to enter the table into the namespace
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Parse AML within an ACPI table and return a tree of ops
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsParseTable (
-    UINT32                  TableIndex,
-    ACPI_NAMESPACE_NODE     *StartNode)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (NsParseTable);
-
-
-    /*
-     * AML Parse, pass 1
-     *
-     * In this pass, we load most of the namespace.  Control methods
-     * are not parsed until later.  A parse tree is not created.  Instead,
-     * each Parser Op subtree is deleted when it is finished.  This saves
-     * a great deal of memory, and allows a small cache of parse objects
-     * to service the entire parse.  The second pass of the parse then
-     * performs another complete parse of the AML.
-     */
-    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 1\n"));
-    Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS1,
-                TableIndex, StartNode);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * AML Parse, pass 2
-     *
-     * In this pass, we resolve forward references and other things
-     * that could not be completed during the first pass.
-     * Another complete parse of the AML is performed, but the
-     * overhead of this is compensated for by the fact that the
-     * parse objects are all cached.
-     */
-    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 2\n"));
-    Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2,
-                TableIndex, StartNode);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nspredef.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nspredef.c
deleted file mode 100644 (file)
index d979c43..0000000
+++ /dev/null
@@ -1,1263 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nspredef - Validation of ACPI predefined methods and objects
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define ACPI_CREATE_PREDEFINED_TABLE
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acpredef.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nspredef")
-
-
-/*******************************************************************************
- *
- * This module validates predefined ACPI objects that appear in the namespace,
- * at the time they are evaluated (via AcpiEvaluateObject). The purpose of this
- * validation is to detect problems with BIOS-exposed predefined ACPI objects
- * before the results are returned to the ACPI-related drivers.
- *
- * There are several areas that are validated:
- *
- *  1) The number of input arguments as defined by the method/object in the
- *      ASL is validated against the ACPI specification.
- *  2) The type of the return object (if any) is validated against the ACPI
- *      specification.
- *  3) For returned package objects, the count of package elements is
- *      validated, as well as the type of each package element. Nested
- *      packages are supported.
- *
- * For any problems found, a warning message is issued.
- *
- ******************************************************************************/
-
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiNsCheckPackage (
-    ACPI_PREDEFINED_DATA        *Data,
-    ACPI_OPERAND_OBJECT         **ReturnObjectPtr);
-
-static ACPI_STATUS
-AcpiNsCheckPackageList (
-    ACPI_PREDEFINED_DATA        *Data,
-    const ACPI_PREDEFINED_INFO  *Package,
-    ACPI_OPERAND_OBJECT         **Elements,
-    UINT32                      Count);
-
-static ACPI_STATUS
-AcpiNsCheckPackageElements (
-    ACPI_PREDEFINED_DATA        *Data,
-    ACPI_OPERAND_OBJECT         **Elements,
-    UINT8                       Type1,
-    UINT32                      Count1,
-    UINT8                       Type2,
-    UINT32                      Count2,
-    UINT32                      StartIndex);
-
-static ACPI_STATUS
-AcpiNsCheckObjectType (
-    ACPI_PREDEFINED_DATA        *Data,
-    ACPI_OPERAND_OBJECT         **ReturnObjectPtr,
-    UINT32                      ExpectedBtypes,
-    UINT32                      PackageIndex);
-
-static ACPI_STATUS
-AcpiNsCheckReference (
-    ACPI_PREDEFINED_DATA        *Data,
-    ACPI_OPERAND_OBJECT         *ReturnObject);
-
-static void
-AcpiNsGetExpectedTypes (
-    char                        *Buffer,
-    UINT32                      ExpectedBtypes);
-
-/*
- * Names for the types that can be returned by the predefined objects.
- * Used for warning messages. Must be in the same order as the ACPI_RTYPEs
- */
-static const char   *AcpiRtypeNames[] =
-{
-    "/Integer",
-    "/String",
-    "/Buffer",
-    "/Package",
-    "/Reference",
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsCheckPredefinedNames
- *
- * PARAMETERS:  Node            - Namespace node for the method/object
- *              UserParamCount  - Number of parameters actually passed
- *              ReturnStatus    - Status from the object evaluation
- *              ReturnObjectPtr - Pointer to the object returned from the
- *                                evaluation of a method or object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Check an ACPI name for a match in the predefined name list.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsCheckPredefinedNames (
-    ACPI_NAMESPACE_NODE         *Node,
-    UINT32                      UserParamCount,
-    ACPI_STATUS                 ReturnStatus,
-    ACPI_OPERAND_OBJECT         **ReturnObjectPtr)
-{
-    ACPI_OPERAND_OBJECT         *ReturnObject = *ReturnObjectPtr;
-    ACPI_STATUS                 Status = AE_OK;
-    const ACPI_PREDEFINED_INFO  *Predefined;
-    char                        *Pathname;
-    ACPI_PREDEFINED_DATA        *Data;
-
-
-    /* Match the name for this method/object against the predefined list */
-
-    Predefined = AcpiNsCheckForPredefinedName (Node);
-
-    /* Get the full pathname to the object, for use in warning messages */
-
-    Pathname = AcpiNsGetExternalPathname (Node);
-    if (!Pathname)
-    {
-        return (AE_OK); /* Could not get pathname, ignore */
-    }
-
-    /*
-     * Check that the parameter count for this method matches the ASL
-     * definition. For predefined names, ensure that both the caller and
-     * the method itself are in accordance with the ACPI specification.
-     */
-    AcpiNsCheckParameterCount (Pathname, Node, UserParamCount, Predefined);
-
-    /* If not a predefined name, we cannot validate the return object */
-
-    if (!Predefined)
-    {
-        goto Cleanup;
-    }
-
-    /*
-     * If the method failed or did not actually return an object, we cannot
-     * validate the return object
-     */
-    if ((ReturnStatus != AE_OK) && (ReturnStatus != AE_CTRL_RETURN_VALUE))
-    {
-        goto Cleanup;
-    }
-
-    /*
-     * If there is no return value, check if we require a return value for
-     * this predefined name. Either one return value is expected, or none,
-     * for both methods and other objects.
-     *
-     * Exit now if there is no return object. Warning if one was expected.
-     */
-    if (!ReturnObject)
-    {
-        if ((Predefined->Info.ExpectedBtypes) &&
-            (!(Predefined->Info.ExpectedBtypes & ACPI_RTYPE_NONE)))
-        {
-            ACPI_WARN_PREDEFINED ((AE_INFO, Pathname, ACPI_WARN_ALWAYS,
-                "Missing expected return value"));
-
-            Status = AE_AML_NO_RETURN_VALUE;
-        }
-        goto Cleanup;
-    }
-
-    /*
-     * 1) We have a return value, but if one wasn't expected, just exit, this is
-     * not a problem. For example, if the "Implicit Return" feature is
-     * enabled, methods will always return a value.
-     *
-     * 2) If the return value can be of any type, then we cannot perform any
-     * validation, exit.
-     */
-    if ((!Predefined->Info.ExpectedBtypes) ||
-        (Predefined->Info.ExpectedBtypes == ACPI_RTYPE_ALL))
-    {
-        goto Cleanup;
-    }
-
-    /* Create the parameter data block for object validation */
-
-    Data = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PREDEFINED_DATA));
-    if (!Data)
-    {
-        goto Cleanup;
-    }
-    Data->Predefined = Predefined;
-    Data->NodeFlags = Node->Flags;
-    Data->Pathname = Pathname;
-
-    /*
-     * Check that the type of the main return object is what is expected
-     * for this predefined name
-     */
-    Status = AcpiNsCheckObjectType (Data, ReturnObjectPtr,
-                Predefined->Info.ExpectedBtypes, ACPI_NOT_PACKAGE_ELEMENT);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Exit;
-    }
-
-    /*
-     * For returned Package objects, check the type of all sub-objects.
-     * Note: Package may have been newly created by call above.
-     */
-    if ((*ReturnObjectPtr)->Common.Type == ACPI_TYPE_PACKAGE)
-    {
-        Status = AcpiNsCheckPackage (Data, ReturnObjectPtr);
-        if (ACPI_FAILURE (Status))
-        {
-            goto Exit;
-        }
-    }
-
-    /*
-     * The return object was OK, or it was successfully repaired above.
-     * Now make some additional checks such as verifying that package
-     * objects are sorted correctly (if required) or buffer objects have
-     * the correct data width (bytes vs. dwords). These repairs are
-     * performed on a per-name basis, i.e., the code is specific to
-     * particular predefined names.
-     */
-    Status = AcpiNsComplexRepairs (Data, Node, Status, ReturnObjectPtr);
-
-Exit:
-    /*
-     * If the object validation failed or if we successfully repaired one
-     * or more objects, mark the parent node to suppress further warning
-     * messages during the next evaluation of the same method/object.
-     */
-    if (ACPI_FAILURE (Status) || (Data->Flags & ACPI_OBJECT_REPAIRED))
-    {
-        Node->Flags |= ANOBJ_EVALUATED;
-    }
-    ACPI_FREE (Data);
-
-Cleanup:
-    ACPI_FREE (Pathname);
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsCheckParameterCount
- *
- * PARAMETERS:  Pathname        - Full pathname to the node (for error msgs)
- *              Node            - Namespace node for the method/object
- *              UserParamCount  - Number of args passed in by the caller
- *              Predefined      - Pointer to entry in predefined name table
- *
- * RETURN:      None
- *
- * DESCRIPTION: Check that the declared (in ASL/AML) parameter count for a
- *              predefined name is what is expected (i.e., what is defined in
- *              the ACPI specification for this predefined name.)
- *
- ******************************************************************************/
-
-void
-AcpiNsCheckParameterCount (
-    char                        *Pathname,
-    ACPI_NAMESPACE_NODE         *Node,
-    UINT32                      UserParamCount,
-    const ACPI_PREDEFINED_INFO  *Predefined)
-{
-    UINT32                      ParamCount;
-    UINT32                      RequiredParamsCurrent;
-    UINT32                      RequiredParamsOld;
-
-
-    /* Methods have 0-7 parameters. All other types have zero. */
-
-    ParamCount = 0;
-    if (Node->Type == ACPI_TYPE_METHOD)
-    {
-        ParamCount = Node->Object->Method.ParamCount;
-    }
-
-    if (!Predefined)
-    {
-        /*
-         * Check the parameter count for non-predefined methods/objects.
-         *
-         * Warning if too few or too many arguments have been passed by the
-         * caller. An incorrect number of arguments may not cause the method
-         * to fail. However, the method will fail if there are too few
-         * arguments and the method attempts to use one of the missing ones.
-         */
-        if (UserParamCount < ParamCount)
-        {
-            ACPI_WARN_PREDEFINED ((AE_INFO, Pathname, ACPI_WARN_ALWAYS,
-                "Insufficient arguments - needs %u, found %u",
-                ParamCount, UserParamCount));
-        }
-        else if (UserParamCount > ParamCount)
-        {
-            ACPI_WARN_PREDEFINED ((AE_INFO, Pathname, ACPI_WARN_ALWAYS,
-                "Excess arguments - needs %u, found %u",
-                ParamCount, UserParamCount));
-        }
-        return;
-    }
-
-    /*
-     * Validate the user-supplied parameter count.
-     * Allow two different legal argument counts (_SCP, etc.)
-     */
-    RequiredParamsCurrent = Predefined->Info.ParamCount & 0x0F;
-    RequiredParamsOld = Predefined->Info.ParamCount >> 4;
-
-    if (UserParamCount != ACPI_UINT32_MAX)
-    {
-        if ((UserParamCount != RequiredParamsCurrent) &&
-            (UserParamCount != RequiredParamsOld))
-        {
-            ACPI_WARN_PREDEFINED ((AE_INFO, Pathname, ACPI_WARN_ALWAYS,
-                "Parameter count mismatch - "
-                "caller passed %u, ACPI requires %u",
-                UserParamCount, RequiredParamsCurrent));
-        }
-    }
-
-    /*
-     * Check that the ASL-defined parameter count is what is expected for
-     * this predefined name (parameter count as defined by the ACPI
-     * specification)
-     */
-    if ((ParamCount != RequiredParamsCurrent) &&
-        (ParamCount != RequiredParamsOld))
-    {
-        ACPI_WARN_PREDEFINED ((AE_INFO, Pathname, Node->Flags,
-            "Parameter count mismatch - ASL declared %u, ACPI requires %u",
-            ParamCount, RequiredParamsCurrent));
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsCheckForPredefinedName
- *
- * PARAMETERS:  Node            - Namespace node for the method/object
- *
- * RETURN:      Pointer to entry in predefined table. NULL indicates not found.
- *
- * DESCRIPTION: Check an object name against the predefined object list.
- *
- ******************************************************************************/
-
-const ACPI_PREDEFINED_INFO *
-AcpiNsCheckForPredefinedName (
-    ACPI_NAMESPACE_NODE         *Node)
-{
-    const ACPI_PREDEFINED_INFO  *ThisName;
-
-
-    /* Quick check for a predefined name, first character must be underscore */
-
-    if (Node->Name.Ascii[0] != '_')
-    {
-        return (NULL);
-    }
-
-    /* Search info table for a predefined method/object name */
-
-    ThisName = PredefinedNames;
-    while (ThisName->Info.Name[0])
-    {
-        if (ACPI_COMPARE_NAME (Node->Name.Ascii, ThisName->Info.Name))
-        {
-            return (ThisName);
-        }
-
-        /*
-         * Skip next entry in the table if this name returns a Package
-         * (next entry contains the package info)
-         */
-        if (ThisName->Info.ExpectedBtypes & ACPI_RTYPE_PACKAGE)
-        {
-            ThisName++;
-        }
-
-        ThisName++;
-    }
-
-    return (NULL); /* Not found */
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsCheckPackage
- *
- * PARAMETERS:  Data            - Pointer to validation data structure
- *              ReturnObjectPtr - Pointer to the object returned from the
- *                                evaluation of a method or object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Check a returned package object for the correct count and
- *              correct type of all sub-objects.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsCheckPackage (
-    ACPI_PREDEFINED_DATA        *Data,
-    ACPI_OPERAND_OBJECT         **ReturnObjectPtr)
-{
-    ACPI_OPERAND_OBJECT         *ReturnObject = *ReturnObjectPtr;
-    const ACPI_PREDEFINED_INFO  *Package;
-    ACPI_OPERAND_OBJECT         **Elements;
-    ACPI_STATUS                 Status = AE_OK;
-    UINT32                      ExpectedCount;
-    UINT32                      Count;
-    UINT32                      i;
-
-
-    ACPI_FUNCTION_NAME (NsCheckPackage);
-
-
-    /* The package info for this name is in the next table entry */
-
-    Package = Data->Predefined + 1;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-        "%s Validating return Package of Type %X, Count %X\n",
-        Data->Pathname, Package->RetInfo.Type, ReturnObject->Package.Count));
-
-    /*
-     * For variable-length Packages, we can safely remove all embedded
-     * and trailing NULL package elements
-     */
-    AcpiNsRemoveNullElements (Data, Package->RetInfo.Type, ReturnObject);
-
-    /* Extract package count and elements array */
-
-    Elements = ReturnObject->Package.Elements;
-    Count = ReturnObject->Package.Count;
-
-    /* The package must have at least one element, else invalid */
-
-    if (!Count)
-    {
-        ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-            "Return Package has no elements (empty)"));
-
-        return (AE_AML_OPERAND_VALUE);
-    }
-
-    /*
-     * Decode the type of the expected package contents
-     *
-     * PTYPE1 packages contain no subpackages
-     * PTYPE2 packages contain sub-packages
-     */
-    switch (Package->RetInfo.Type)
-    {
-    case ACPI_PTYPE1_FIXED:
-
-        /*
-         * The package count is fixed and there are no sub-packages
-         *
-         * If package is too small, exit.
-         * If package is larger than expected, issue warning but continue
-         */
-        ExpectedCount = Package->RetInfo.Count1 + Package->RetInfo.Count2;
-        if (Count < ExpectedCount)
-        {
-            goto PackageTooSmall;
-        }
-        else if (Count > ExpectedCount)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR,
-                "%s: Return Package is larger than needed - "
-                "found %u, expected %u\n",
-                Data->Pathname, Count, ExpectedCount));
-        }
-
-        /* Validate all elements of the returned package */
-
-        Status = AcpiNsCheckPackageElements (Data, Elements,
-                    Package->RetInfo.ObjectType1, Package->RetInfo.Count1,
-                    Package->RetInfo.ObjectType2, Package->RetInfo.Count2, 0);
-        break;
-
-
-    case ACPI_PTYPE1_VAR:
-
-        /*
-         * The package count is variable, there are no sub-packages, and all
-         * elements must be of the same type
-         */
-        for (i = 0; i < Count; i++)
-        {
-            Status = AcpiNsCheckObjectType (Data, Elements,
-                        Package->RetInfo.ObjectType1, i);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-            Elements++;
-        }
-        break;
-
-
-    case ACPI_PTYPE1_OPTION:
-
-        /*
-         * The package count is variable, there are no sub-packages. There are
-         * a fixed number of required elements, and a variable number of
-         * optional elements.
-         *
-         * Check if package is at least as large as the minimum required
-         */
-        ExpectedCount = Package->RetInfo3.Count;
-        if (Count < ExpectedCount)
-        {
-            goto PackageTooSmall;
-        }
-
-        /* Variable number of sub-objects */
-
-        for (i = 0; i < Count; i++)
-        {
-            if (i < Package->RetInfo3.Count)
-            {
-                /* These are the required package elements (0, 1, or 2) */
-
-                Status = AcpiNsCheckObjectType (Data, Elements,
-                            Package->RetInfo3.ObjectType[i], i);
-                if (ACPI_FAILURE (Status))
-                {
-                    return (Status);
-                }
-            }
-            else
-            {
-                /* These are the optional package elements */
-
-                Status = AcpiNsCheckObjectType (Data, Elements,
-                            Package->RetInfo3.TailObjectType, i);
-                if (ACPI_FAILURE (Status))
-                {
-                    return (Status);
-                }
-            }
-            Elements++;
-        }
-        break;
-
-
-    case ACPI_PTYPE2_REV_FIXED:
-
-        /* First element is the (Integer) revision */
-
-        Status = AcpiNsCheckObjectType (Data, Elements,
-                    ACPI_RTYPE_INTEGER, 0);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-
-        Elements++;
-        Count--;
-
-        /* Examine the sub-packages */
-
-        Status = AcpiNsCheckPackageList (Data, Package, Elements, Count);
-        break;
-
-
-    case ACPI_PTYPE2_PKG_COUNT:
-
-        /* First element is the (Integer) count of sub-packages to follow */
-
-        Status = AcpiNsCheckObjectType (Data, Elements,
-                    ACPI_RTYPE_INTEGER, 0);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-
-        /*
-         * Count cannot be larger than the parent package length, but allow it
-         * to be smaller. The >= accounts for the Integer above.
-         */
-        ExpectedCount = (UINT32) (*Elements)->Integer.Value;
-        if (ExpectedCount >= Count)
-        {
-            goto PackageTooSmall;
-        }
-
-        Count = ExpectedCount;
-        Elements++;
-
-        /* Examine the sub-packages */
-
-        Status = AcpiNsCheckPackageList (Data, Package, Elements, Count);
-        break;
-
-
-    case ACPI_PTYPE2:
-    case ACPI_PTYPE2_FIXED:
-    case ACPI_PTYPE2_MIN:
-    case ACPI_PTYPE2_COUNT:
-
-        /*
-         * These types all return a single Package that consists of a
-         * variable number of sub-Packages.
-         *
-         * First, ensure that the first element is a sub-Package. If not,
-         * the BIOS may have incorrectly returned the object as a single
-         * package instead of a Package of Packages (a common error if
-         * there is only one entry). We may be able to repair this by
-         * wrapping the returned Package with a new outer Package.
-         */
-        if (*Elements && ((*Elements)->Common.Type != ACPI_TYPE_PACKAGE))
-        {
-            /* Create the new outer package and populate it */
-
-            Status = AcpiNsRepairPackageList (Data, ReturnObjectPtr);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-
-            /* Update locals to point to the new package (of 1 element) */
-
-            ReturnObject = *ReturnObjectPtr;
-            Elements = ReturnObject->Package.Elements;
-            Count = 1;
-        }
-
-        /* Examine the sub-packages */
-
-        Status = AcpiNsCheckPackageList (Data, Package, Elements, Count);
-        break;
-
-
-    default:
-
-        /* Should not get here if predefined info table is correct */
-
-        ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-            "Invalid internal return type in table entry: %X",
-            Package->RetInfo.Type));
-
-        return (AE_AML_INTERNAL);
-    }
-
-    return (Status);
-
-
-PackageTooSmall:
-
-    /* Error exit for the case with an incorrect package count */
-
-    ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-        "Return Package is too small - found %u elements, expected %u",
-        Count, ExpectedCount));
-
-    return (AE_AML_OPERAND_VALUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsCheckPackageList
- *
- * PARAMETERS:  Data            - Pointer to validation data structure
- *              Package         - Pointer to package-specific info for method
- *              Elements        - Element list of parent package. All elements
- *                                of this list should be of type Package.
- *              Count           - Count of subpackages
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Examine a list of subpackages
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsCheckPackageList (
-    ACPI_PREDEFINED_DATA        *Data,
-    const ACPI_PREDEFINED_INFO  *Package,
-    ACPI_OPERAND_OBJECT         **Elements,
-    UINT32                      Count)
-{
-    ACPI_OPERAND_OBJECT         *SubPackage;
-    ACPI_OPERAND_OBJECT         **SubElements;
-    ACPI_STATUS                 Status;
-    UINT32                      ExpectedCount;
-    UINT32                      i;
-    UINT32                      j;
-
-
-    /*
-     * Validate each sub-Package in the parent Package
-     *
-     * NOTE: assumes list of sub-packages contains no NULL elements.
-     * Any NULL elements should have been removed by earlier call
-     * to AcpiNsRemoveNullElements.
-     */
-    for (i = 0; i < Count; i++)
-    {
-        SubPackage = *Elements;
-        SubElements = SubPackage->Package.Elements;
-
-        /* Each sub-object must be of type Package */
-
-        Status = AcpiNsCheckObjectType (Data, &SubPackage,
-                    ACPI_RTYPE_PACKAGE, i);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-
-        /* Examine the different types of expected sub-packages */
-
-        switch (Package->RetInfo.Type)
-        {
-        case ACPI_PTYPE2:
-        case ACPI_PTYPE2_PKG_COUNT:
-        case ACPI_PTYPE2_REV_FIXED:
-
-            /* Each subpackage has a fixed number of elements */
-
-            ExpectedCount = Package->RetInfo.Count1 + Package->RetInfo.Count2;
-            if (SubPackage->Package.Count < ExpectedCount)
-            {
-                goto PackageTooSmall;
-            }
-
-            Status = AcpiNsCheckPackageElements (Data, SubElements,
-                        Package->RetInfo.ObjectType1,
-                        Package->RetInfo.Count1,
-                        Package->RetInfo.ObjectType2,
-                        Package->RetInfo.Count2, 0);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-            break;
-
-
-        case ACPI_PTYPE2_FIXED:
-
-            /* Each sub-package has a fixed length */
-
-            ExpectedCount = Package->RetInfo2.Count;
-            if (SubPackage->Package.Count < ExpectedCount)
-            {
-                goto PackageTooSmall;
-            }
-
-            /* Check the type of each sub-package element */
-
-            for (j = 0; j < ExpectedCount; j++)
-            {
-                Status = AcpiNsCheckObjectType (Data, &SubElements[j],
-                            Package->RetInfo2.ObjectType[j], j);
-                if (ACPI_FAILURE (Status))
-                {
-                    return (Status);
-                }
-            }
-            break;
-
-
-        case ACPI_PTYPE2_MIN:
-
-            /* Each sub-package has a variable but minimum length */
-
-            ExpectedCount = Package->RetInfo.Count1;
-            if (SubPackage->Package.Count < ExpectedCount)
-            {
-                goto PackageTooSmall;
-            }
-
-            /* Check the type of each sub-package element */
-
-            Status = AcpiNsCheckPackageElements (Data, SubElements,
-                        Package->RetInfo.ObjectType1,
-                        SubPackage->Package.Count, 0, 0, 0);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-            break;
-
-
-        case ACPI_PTYPE2_COUNT:
-
-            /*
-             * First element is the (Integer) count of elements, including
-             * the count field.
-             */
-            Status = AcpiNsCheckObjectType (Data, SubElements,
-                        ACPI_RTYPE_INTEGER, 0);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-
-            /*
-             * Make sure package is large enough for the Count and is
-             * is as large as the minimum size
-             */
-            ExpectedCount = (UINT32) (*SubElements)->Integer.Value;
-            if (SubPackage->Package.Count < ExpectedCount)
-            {
-                goto PackageTooSmall;
-            }
-            if (SubPackage->Package.Count < Package->RetInfo.Count1)
-            {
-                ExpectedCount = Package->RetInfo.Count1;
-                goto PackageTooSmall;
-            }
-
-            /* Check the type of each sub-package element */
-
-            Status = AcpiNsCheckPackageElements (Data, (SubElements + 1),
-                        Package->RetInfo.ObjectType1,
-                        (ExpectedCount - 1), 0, 0, 1);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-            break;
-
-
-        default: /* Should not get here, type was validated by caller */
-
-            return (AE_AML_INTERNAL);
-        }
-
-        Elements++;
-    }
-
-    return (AE_OK);
-
-
-PackageTooSmall:
-
-    /* The sub-package count was smaller than required */
-
-    ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-        "Return Sub-Package[%u] is too small - found %u elements, expected %u",
-        i, SubPackage->Package.Count, ExpectedCount));
-
-    return (AE_AML_OPERAND_VALUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsCheckPackageElements
- *
- * PARAMETERS:  Data            - Pointer to validation data structure
- *              Elements        - Pointer to the package elements array
- *              Type1           - Object type for first group
- *              Count1          - Count for first group
- *              Type2           - Object type for second group
- *              Count2          - Count for second group
- *              StartIndex      - Start of the first group of elements
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Check that all elements of a package are of the correct object
- *              type. Supports up to two groups of different object types.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsCheckPackageElements (
-    ACPI_PREDEFINED_DATA        *Data,
-    ACPI_OPERAND_OBJECT         **Elements,
-    UINT8                       Type1,
-    UINT32                      Count1,
-    UINT8                       Type2,
-    UINT32                      Count2,
-    UINT32                      StartIndex)
-{
-    ACPI_OPERAND_OBJECT         **ThisElement = Elements;
-    ACPI_STATUS                 Status;
-    UINT32                      i;
-
-
-    /*
-     * Up to two groups of package elements are supported by the data
-     * structure. All elements in each group must be of the same type.
-     * The second group can have a count of zero.
-     */
-    for (i = 0; i < Count1; i++)
-    {
-        Status = AcpiNsCheckObjectType (Data, ThisElement,
-                    Type1, i + StartIndex);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-        ThisElement++;
-    }
-
-    for (i = 0; i < Count2; i++)
-    {
-        Status = AcpiNsCheckObjectType (Data, ThisElement,
-                    Type2, (i + Count1 + StartIndex));
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-        ThisElement++;
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsCheckObjectType
- *
- * PARAMETERS:  Data            - Pointer to validation data structure
- *              ReturnObjectPtr - Pointer to the object returned from the
- *                                evaluation of a method or object
- *              ExpectedBtypes  - Bitmap of expected return type(s)
- *              PackageIndex    - Index of object within parent package (if
- *                                applicable - ACPI_NOT_PACKAGE_ELEMENT
- *                                otherwise)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Check the type of the return object against the expected object
- *              type(s). Use of Btype allows multiple expected object types.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsCheckObjectType (
-    ACPI_PREDEFINED_DATA        *Data,
-    ACPI_OPERAND_OBJECT         **ReturnObjectPtr,
-    UINT32                      ExpectedBtypes,
-    UINT32                      PackageIndex)
-{
-    ACPI_OPERAND_OBJECT         *ReturnObject = *ReturnObjectPtr;
-    ACPI_STATUS                 Status = AE_OK;
-    UINT32                      ReturnBtype;
-    char                        TypeBuffer[48]; /* Room for 5 types */
-
-
-    /*
-     * If we get a NULL ReturnObject here, it is a NULL package element,
-     * and this is always an error.
-     */
-    if (!ReturnObject)
-    {
-        goto TypeErrorExit;
-    }
-
-    /* A Namespace node should not get here, but make sure */
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (ReturnObject) == ACPI_DESC_TYPE_NAMED)
-    {
-        ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-            "Invalid return type - Found a Namespace node [%4.4s] type %s",
-            ReturnObject->Node.Name.Ascii,
-            AcpiUtGetTypeName (ReturnObject->Node.Type)));
-        return (AE_AML_OPERAND_TYPE);
-    }
-
-    /*
-     * Convert the object type (ACPI_TYPE_xxx) to a bitmapped object type.
-     * The bitmapped type allows multiple possible return types.
-     *
-     * Note, the cases below must handle all of the possible types returned
-     * from all of the predefined names (including elements of returned
-     * packages)
-     */
-    switch (ReturnObject->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-        ReturnBtype = ACPI_RTYPE_INTEGER;
-        break;
-
-    case ACPI_TYPE_BUFFER:
-        ReturnBtype = ACPI_RTYPE_BUFFER;
-        break;
-
-    case ACPI_TYPE_STRING:
-        ReturnBtype = ACPI_RTYPE_STRING;
-        break;
-
-    case ACPI_TYPE_PACKAGE:
-        ReturnBtype = ACPI_RTYPE_PACKAGE;
-        break;
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-        ReturnBtype = ACPI_RTYPE_REFERENCE;
-        break;
-
-    default:
-        /* Not one of the supported objects, must be incorrect */
-
-        goto TypeErrorExit;
-    }
-
-    /* Is the object one of the expected types? */
-
-    if (!(ReturnBtype & ExpectedBtypes))
-    {
-        /* Type mismatch -- attempt repair of the returned object */
-
-        Status = AcpiNsRepairObject (Data, ExpectedBtypes,
-                    PackageIndex, ReturnObjectPtr);
-        if (ACPI_SUCCESS (Status))
-        {
-            return (AE_OK); /* Repair was successful */
-        }
-        goto TypeErrorExit;
-    }
-
-    /* For reference objects, check that the reference type is correct */
-
-    if (ReturnObject->Common.Type == ACPI_TYPE_LOCAL_REFERENCE)
-    {
-        Status = AcpiNsCheckReference (Data, ReturnObject);
-    }
-
-    return (Status);
-
-
-TypeErrorExit:
-
-    /* Create a string with all expected types for this predefined object */
-
-    AcpiNsGetExpectedTypes (TypeBuffer, ExpectedBtypes);
-
-    if (PackageIndex == ACPI_NOT_PACKAGE_ELEMENT)
-    {
-        ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-            "Return type mismatch - found %s, expected %s",
-            AcpiUtGetObjectTypeName (ReturnObject), TypeBuffer));
-    }
-    else
-    {
-        ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-            "Return Package type mismatch at index %u - "
-            "found %s, expected %s", PackageIndex,
-            AcpiUtGetObjectTypeName (ReturnObject), TypeBuffer));
-    }
-
-    return (AE_AML_OPERAND_TYPE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsCheckReference
- *
- * PARAMETERS:  Data            - Pointer to validation data structure
- *              ReturnObject    - Object returned from the evaluation of a
- *                                method or object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Check a returned reference object for the correct reference
- *              type. The only reference type that can be returned from a
- *              predefined method is a named reference. All others are invalid.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsCheckReference (
-    ACPI_PREDEFINED_DATA        *Data,
-    ACPI_OPERAND_OBJECT         *ReturnObject)
-{
-
-    /*
-     * Check the reference object for the correct reference type (opcode).
-     * The only type of reference that can be converted to an ACPI_OBJECT is
-     * a reference to a named object (reference class: NAME)
-     */
-    if (ReturnObject->Reference.Class == ACPI_REFCLASS_NAME)
-    {
-        return (AE_OK);
-    }
-
-    ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-        "Return type mismatch - unexpected reference object type [%s] %2.2X",
-        AcpiUtGetReferenceName (ReturnObject),
-        ReturnObject->Reference.Class));
-
-    return (AE_AML_OPERAND_TYPE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetExpectedTypes
- *
- * PARAMETERS:  Buffer          - Pointer to where the string is returned
- *              ExpectedBtypes  - Bitmap of expected return type(s)
- *
- * RETURN:      Buffer is populated with type names.
- *
- * DESCRIPTION: Translate the expected types bitmap into a string of ascii
- *              names of expected types, for use in warning messages.
- *
- ******************************************************************************/
-
-static void
-AcpiNsGetExpectedTypes (
-    char                        *Buffer,
-    UINT32                      ExpectedBtypes)
-{
-    UINT32                      ThisRtype;
-    UINT32                      i;
-    UINT32                      j;
-
-
-    j = 1;
-    Buffer[0] = 0;
-    ThisRtype = ACPI_RTYPE_INTEGER;
-
-    for (i = 0; i < ACPI_NUM_RTYPES; i++)
-    {
-        /* If one of the expected types, concatenate the name of this type */
-
-        if (ExpectedBtypes & ThisRtype)
-        {
-            ACPI_STRCAT (Buffer, &AcpiRtypeNames[i][j]);
-            j = 0;              /* Use name separator from now on */
-        }
-        ThisRtype <<= 1;    /* Next Rtype */
-    }
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsrepair.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsrepair.c
deleted file mode 100644 (file)
index 5c402df..0000000
+++ /dev/null
@@ -1,686 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsrepair - Repair for objects returned by predefined methods
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSREPAIR_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acinterp.h"
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsrepair")
-
-
-/*******************************************************************************
- *
- * This module attempts to repair or convert objects returned by the
- * predefined methods to an object type that is expected, as per the ACPI
- * specification. The need for this code is dictated by the many machines that
- * return incorrect types for the standard predefined methods. Performing these
- * conversions here, in one place, eliminates the need for individual ACPI
- * device drivers to do the same. Note: Most of these conversions are different
- * than the internal object conversion routines used for implicit object
- * conversion.
- *
- * The following conversions can be performed as necessary:
- *
- * Integer -> String
- * Integer -> Buffer
- * String  -> Integer
- * String  -> Buffer
- * Buffer  -> Integer
- * Buffer  -> String
- * Buffer  -> Package of Integers
- * Package -> Package of one Package
- *
- ******************************************************************************/
-
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiNsConvertToInteger (
-    ACPI_OPERAND_OBJECT     *OriginalObject,
-    ACPI_OPERAND_OBJECT     **ReturnObject);
-
-static ACPI_STATUS
-AcpiNsConvertToString (
-    ACPI_OPERAND_OBJECT     *OriginalObject,
-    ACPI_OPERAND_OBJECT     **ReturnObject);
-
-static ACPI_STATUS
-AcpiNsConvertToBuffer (
-    ACPI_OPERAND_OBJECT     *OriginalObject,
-    ACPI_OPERAND_OBJECT     **ReturnObject);
-
-static ACPI_STATUS
-AcpiNsConvertToPackage (
-    ACPI_OPERAND_OBJECT     *OriginalObject,
-    ACPI_OPERAND_OBJECT     **ReturnObject);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsRepairObject
- *
- * PARAMETERS:  Data                - Pointer to validation data structure
- *              ExpectedBtypes      - Object types expected
- *              PackageIndex        - Index of object within parent package (if
- *                                    applicable - ACPI_NOT_PACKAGE_ELEMENT
- *                                    otherwise)
- *              ReturnObjectPtr     - Pointer to the object returned from the
- *                                    evaluation of a method or object
- *
- * RETURN:      Status. AE_OK if repair was successful.
- *
- * DESCRIPTION: Attempt to repair/convert a return object of a type that was
- *              not expected.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsRepairObject (
-    ACPI_PREDEFINED_DATA    *Data,
-    UINT32                  ExpectedBtypes,
-    UINT32                  PackageIndex,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr)
-{
-    ACPI_OPERAND_OBJECT     *ReturnObject = *ReturnObjectPtr;
-    ACPI_OPERAND_OBJECT     *NewObject;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_NAME (NsRepairObject);
-
-
-    /*
-     * At this point, we know that the type of the returned object was not
-     * one of the expected types for this predefined name. Attempt to
-     * repair the object by converting it to one of the expected object
-     * types for this predefined name.
-     */
-    if (ExpectedBtypes & ACPI_RTYPE_INTEGER)
-    {
-        Status = AcpiNsConvertToInteger (ReturnObject, &NewObject);
-        if (ACPI_SUCCESS (Status))
-        {
-            goto ObjectRepaired;
-        }
-    }
-    if (ExpectedBtypes & ACPI_RTYPE_STRING)
-    {
-        Status = AcpiNsConvertToString (ReturnObject, &NewObject);
-        if (ACPI_SUCCESS (Status))
-        {
-            goto ObjectRepaired;
-        }
-    }
-    if (ExpectedBtypes & ACPI_RTYPE_BUFFER)
-    {
-        Status = AcpiNsConvertToBuffer (ReturnObject, &NewObject);
-        if (ACPI_SUCCESS (Status))
-        {
-            goto ObjectRepaired;
-        }
-    }
-    if (ExpectedBtypes & ACPI_RTYPE_PACKAGE)
-    {
-        Status = AcpiNsConvertToPackage (ReturnObject, &NewObject);
-        if (ACPI_SUCCESS (Status))
-        {
-            goto ObjectRepaired;
-        }
-    }
-
-    /* We cannot repair this object */
-
-    return (AE_AML_OPERAND_TYPE);
-
-
-ObjectRepaired:
-
-    /* Object was successfully repaired */
-
-    /*
-     * If the original object is a package element, we need to:
-     * 1. Set the reference count of the new object to match the
-     *    reference count of the old object.
-     * 2. Decrement the reference count of the original object.
-     */
-    if (PackageIndex != ACPI_NOT_PACKAGE_ELEMENT)
-    {
-        NewObject->Common.ReferenceCount =
-            ReturnObject->Common.ReferenceCount;
-
-        if (ReturnObject->Common.ReferenceCount > 1)
-        {
-            ReturnObject->Common.ReferenceCount--;
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR,
-            "%s: Converted %s to expected %s at index %u\n",
-            Data->Pathname, AcpiUtGetObjectTypeName (ReturnObject),
-            AcpiUtGetObjectTypeName (NewObject), PackageIndex));
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR,
-            "%s: Converted %s to expected %s\n",
-            Data->Pathname, AcpiUtGetObjectTypeName (ReturnObject),
-            AcpiUtGetObjectTypeName (NewObject)));
-    }
-
-    /* Delete old object, install the new return object */
-
-    AcpiUtRemoveReference (ReturnObject);
-    *ReturnObjectPtr = NewObject;
-    Data->Flags |= ACPI_OBJECT_REPAIRED;
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsConvertToInteger
- *
- * PARAMETERS:  OriginalObject      - Object to be converted
- *              ReturnObject        - Where the new converted object is returned
- *
- * RETURN:      Status. AE_OK if conversion was successful.
- *
- * DESCRIPTION: Attempt to convert a String/Buffer object to an Integer.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsConvertToInteger (
-    ACPI_OPERAND_OBJECT     *OriginalObject,
-    ACPI_OPERAND_OBJECT     **ReturnObject)
-{
-    ACPI_OPERAND_OBJECT     *NewObject;
-    ACPI_STATUS             Status;
-    UINT64                  Value = 0;
-    UINT32                  i;
-
-
-    switch (OriginalObject->Common.Type)
-    {
-    case ACPI_TYPE_STRING:
-
-        /* String-to-Integer conversion */
-
-        Status = AcpiUtStrtoul64 (OriginalObject->String.Pointer,
-                    ACPI_ANY_BASE, &Value);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-        break;
-
-    case ACPI_TYPE_BUFFER:
-
-        /* Buffer-to-Integer conversion. Max buffer size is 64 bits. */
-
-        if (OriginalObject->Buffer.Length > 8)
-        {
-            return (AE_AML_OPERAND_TYPE);
-        }
-
-        /* Extract each buffer byte to create the integer */
-
-        for (i = 0; i < OriginalObject->Buffer.Length; i++)
-        {
-            Value |= ((UINT64) OriginalObject->Buffer.Pointer[i] << (i * 8));
-        }
-        break;
-
-    default:
-        return (AE_AML_OPERAND_TYPE);
-    }
-
-    NewObject = AcpiUtCreateIntegerObject (Value);
-    if (!NewObject)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    *ReturnObject = NewObject;
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsConvertToString
- *
- * PARAMETERS:  OriginalObject      - Object to be converted
- *              ReturnObject        - Where the new converted object is returned
- *
- * RETURN:      Status. AE_OK if conversion was successful.
- *
- * DESCRIPTION: Attempt to convert a Integer/Buffer object to a String.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsConvertToString (
-    ACPI_OPERAND_OBJECT     *OriginalObject,
-    ACPI_OPERAND_OBJECT     **ReturnObject)
-{
-    ACPI_OPERAND_OBJECT     *NewObject;
-    ACPI_SIZE               Length;
-    ACPI_STATUS             Status;
-
-
-    switch (OriginalObject->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-        /*
-         * Integer-to-String conversion. Commonly, convert
-         * an integer of value 0 to a NULL string. The last element of
-         * _BIF and _BIX packages occasionally need this fix.
-         */
-        if (OriginalObject->Integer.Value == 0)
-        {
-            /* Allocate a new NULL string object */
-
-            NewObject = AcpiUtCreateStringObject (0);
-            if (!NewObject)
-            {
-                return (AE_NO_MEMORY);
-            }
-        }
-        else
-        {
-            Status = AcpiExConvertToString (OriginalObject, &NewObject,
-                        ACPI_IMPLICIT_CONVERT_HEX);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-        }
-        break;
-
-    case ACPI_TYPE_BUFFER:
-        /*
-         * Buffer-to-String conversion. Use a ToString
-         * conversion, no transform performed on the buffer data. The best
-         * example of this is the _BIF method, where the string data from
-         * the battery is often (incorrectly) returned as buffer object(s).
-         */
-        Length = 0;
-        while ((Length < OriginalObject->Buffer.Length) &&
-                (OriginalObject->Buffer.Pointer[Length]))
-        {
-            Length++;
-        }
-
-        /* Allocate a new string object */
-
-        NewObject = AcpiUtCreateStringObject (Length);
-        if (!NewObject)
-        {
-            return (AE_NO_MEMORY);
-        }
-
-        /*
-         * Copy the raw buffer data with no transform. String is already NULL
-         * terminated at Length+1.
-         */
-        ACPI_MEMCPY (NewObject->String.Pointer,
-            OriginalObject->Buffer.Pointer, Length);
-        break;
-
-    default:
-        return (AE_AML_OPERAND_TYPE);
-    }
-
-    *ReturnObject = NewObject;
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsConvertToBuffer
- *
- * PARAMETERS:  OriginalObject      - Object to be converted
- *              ReturnObject        - Where the new converted object is returned
- *
- * RETURN:      Status. AE_OK if conversion was successful.
- *
- * DESCRIPTION: Attempt to convert a Integer/String/Package object to a Buffer.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsConvertToBuffer (
-    ACPI_OPERAND_OBJECT     *OriginalObject,
-    ACPI_OPERAND_OBJECT     **ReturnObject)
-{
-    ACPI_OPERAND_OBJECT     *NewObject;
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     **Elements;
-    UINT32                  *DwordBuffer;
-    UINT32                  Count;
-    UINT32                  i;
-
-
-    switch (OriginalObject->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-        /*
-         * Integer-to-Buffer conversion.
-         * Convert the Integer to a packed-byte buffer. _MAT and other
-         * objects need this sometimes, if a read has been performed on a
-         * Field object that is less than or equal to the global integer
-         * size (32 or 64 bits).
-         */
-        Status = AcpiExConvertToBuffer (OriginalObject, &NewObject);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-        break;
-
-    case ACPI_TYPE_STRING:
-
-        /* String-to-Buffer conversion. Simple data copy */
-
-        NewObject = AcpiUtCreateBufferObject (OriginalObject->String.Length);
-        if (!NewObject)
-        {
-            return (AE_NO_MEMORY);
-        }
-
-        ACPI_MEMCPY (NewObject->Buffer.Pointer,
-            OriginalObject->String.Pointer, OriginalObject->String.Length);
-        break;
-
-    case ACPI_TYPE_PACKAGE:
-        /*
-         * This case is often seen for predefined names that must return a
-         * Buffer object with multiple DWORD integers within. For example,
-         * _FDE and _GTM. The Package can be converted to a Buffer.
-         */
-
-        /* All elements of the Package must be integers */
-
-        Elements = OriginalObject->Package.Elements;
-        Count = OriginalObject->Package.Count;
-
-        for (i = 0; i < Count; i++)
-        {
-            if ((!*Elements) ||
-                ((*Elements)->Common.Type != ACPI_TYPE_INTEGER))
-            {
-                return (AE_AML_OPERAND_TYPE);
-            }
-            Elements++;
-        }
-
-        /* Create the new buffer object to replace the Package */
-
-        NewObject = AcpiUtCreateBufferObject (ACPI_MUL_4 (Count));
-        if (!NewObject)
-        {
-            return (AE_NO_MEMORY);
-        }
-
-        /* Copy the package elements (integers) to the buffer as DWORDs */
-
-        Elements = OriginalObject->Package.Elements;
-        DwordBuffer = ACPI_CAST_PTR (UINT32, NewObject->Buffer.Pointer);
-
-        for (i = 0; i < Count; i++)
-        {
-            *DwordBuffer = (UINT32) (*Elements)->Integer.Value;
-            DwordBuffer++;
-            Elements++;
-        }
-        break;
-
-    default:
-        return (AE_AML_OPERAND_TYPE);
-    }
-
-    *ReturnObject = NewObject;
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsConvertToPackage
- *
- * PARAMETERS:  OriginalObject      - Object to be converted
- *              ReturnObject        - Where the new converted object is returned
- *
- * RETURN:      Status. AE_OK if conversion was successful.
- *
- * DESCRIPTION: Attempt to convert a Buffer object to a Package. Each byte of
- *              the buffer is converted to a single integer package element.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsConvertToPackage (
-    ACPI_OPERAND_OBJECT     *OriginalObject,
-    ACPI_OPERAND_OBJECT     **ReturnObject)
-{
-    ACPI_OPERAND_OBJECT     *NewObject;
-    ACPI_OPERAND_OBJECT     **Elements;
-    UINT32                  Length;
-    UINT8                   *Buffer;
-
-
-    switch (OriginalObject->Common.Type)
-    {
-    case ACPI_TYPE_BUFFER:
-
-        /* Buffer-to-Package conversion */
-
-        Length = OriginalObject->Buffer.Length;
-        NewObject = AcpiUtCreatePackageObject (Length);
-        if (!NewObject)
-        {
-            return (AE_NO_MEMORY);
-        }
-
-        /* Convert each buffer byte to an integer package element */
-
-        Elements = NewObject->Package.Elements;
-        Buffer = OriginalObject->Buffer.Pointer;
-
-        while (Length--)
-        {
-            *Elements = AcpiUtCreateIntegerObject ((UINT64) *Buffer);
-            if (!*Elements)
-            {
-                AcpiUtRemoveReference (NewObject);
-                return (AE_NO_MEMORY);
-            }
-            Elements++;
-            Buffer++;
-        }
-        break;
-
-    default:
-        return (AE_AML_OPERAND_TYPE);
-    }
-
-    *ReturnObject = NewObject;
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsRepairPackageList
- *
- * PARAMETERS:  Data                - Pointer to validation data structure
- *              ObjDescPtr          - Pointer to the object to repair. The new
- *                                    package object is returned here,
- *                                    overwriting the old object.
- *
- * RETURN:      Status, new object in *ObjDescPtr
- *
- * DESCRIPTION: Repair a common problem with objects that are defined to return
- *              a variable-length Package of Packages. If the variable-length
- *              is one, some BIOS code mistakenly simply declares a single
- *              Package instead of a Package with one sub-Package. This
- *              function attempts to repair this error by wrapping a Package
- *              object around the original Package, creating the correct
- *              Package with one sub-Package.
- *
- *              Names that can be repaired in this manner include:
- *              _ALR, _CSD, _HPX, _MLS, _PRT, _PSS, _TRT, TSS
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsRepairPackageList (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ObjDescPtr)
-{
-    ACPI_OPERAND_OBJECT     *PkgObjDesc;
-
-
-    ACPI_FUNCTION_NAME (NsRepairPackageList);
-
-
-    /*
-     * Create the new outer package and populate it. The new package will
-     * have a single element, the lone subpackage.
-     */
-    PkgObjDesc = AcpiUtCreatePackageObject (1);
-    if (!PkgObjDesc)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    PkgObjDesc->Package.Elements[0] = *ObjDescPtr;
-
-    /* Return the new object in the object pointer */
-
-    *ObjDescPtr = PkgObjDesc;
-    Data->Flags |= ACPI_OBJECT_REPAIRED;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR,
-        "%s: Repaired incorrectly formed Package\n", Data->Pathname));
-
-    return (AE_OK);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsrepair2.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsrepair2.c
deleted file mode 100644 (file)
index c080284..0000000
+++ /dev/null
@@ -1,796 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsrepair2 - Repair for objects returned by specific
- *                          predefined methods
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSREPAIR2_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acpredef.h"
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsrepair2")
-
-
-/*
- * Information structure and handler for ACPI predefined names that can
- * be repaired on a per-name basis.
- */
-typedef
-ACPI_STATUS (*ACPI_REPAIR_FUNCTION) (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
-
-typedef struct acpi_repair_info
-{
-    char                    Name[ACPI_NAME_SIZE];
-    ACPI_REPAIR_FUNCTION    RepairFunction;
-
-} ACPI_REPAIR_INFO;
-
-
-/* Local prototypes */
-
-static const ACPI_REPAIR_INFO *
-AcpiNsMatchRepairableName (
-    ACPI_NAMESPACE_NODE     *Node);
-
-static ACPI_STATUS
-AcpiNsRepair_ALR (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
-
-static ACPI_STATUS
-AcpiNsRepair_FDE (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
-
-static ACPI_STATUS
-AcpiNsRepair_PSS (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
-
-static ACPI_STATUS
-AcpiNsRepair_TSS (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
-
-static ACPI_STATUS
-AcpiNsCheckSortedList (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     *ReturnObject,
-    UINT32                  ExpectedCount,
-    UINT32                  SortIndex,
-    UINT8                   SortDirection,
-    char                    *SortKeyName);
-
-static ACPI_STATUS
-AcpiNsSortList (
-    ACPI_OPERAND_OBJECT     **Elements,
-    UINT32                  Count,
-    UINT32                  Index,
-    UINT8                   SortDirection);
-
-/* Values for SortDirection above */
-
-#define ACPI_SORT_ASCENDING     0
-#define ACPI_SORT_DESCENDING    1
-
-
-/*
- * This table contains the names of the predefined methods for which we can
- * perform more complex repairs.
- *
- * As necessary:
- *
- * _ALR: Sort the list ascending by AmbientIlluminance
- * _FDE: Convert Buffer of BYTEs to a Buffer of DWORDs
- * _GTM: Convert Buffer of BYTEs to a Buffer of DWORDs
- * _PSS: Sort the list descending by Power
- * _TSS: Sort the list descending by Power
- */
-static const ACPI_REPAIR_INFO       AcpiNsRepairableNames[] =
-{
-    {"_ALR", AcpiNsRepair_ALR},
-    {"_FDE", AcpiNsRepair_FDE},
-    {"_GTM", AcpiNsRepair_FDE},     /* _GTM has same repair as _FDE */
-    {"_PSS", AcpiNsRepair_PSS},
-    {"_TSS", AcpiNsRepair_TSS},
-    {{0,0,0,0}, NULL}               /* Table terminator */
-};
-
-
-#define ACPI_FDE_FIELD_COUNT        5
-#define ACPI_FDE_BYTE_BUFFER_SIZE   5
-#define ACPI_FDE_DWORD_BUFFER_SIZE  (ACPI_FDE_FIELD_COUNT * sizeof (UINT32))
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsComplexRepairs
- *
- * PARAMETERS:  Data                - Pointer to validation data structure
- *              Node                - Namespace node for the method/object
- *              ValidateStatus      - Original status of earlier validation
- *              ReturnObjectPtr     - Pointer to the object returned from the
- *                                    evaluation of a method or object
- *
- * RETURN:      Status. AE_OK if repair was successful. If name is not
- *              matched, ValidateStatus is returned.
- *
- * DESCRIPTION: Attempt to repair/convert a return object of a type that was
- *              not expected.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiNsComplexRepairs (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_STATUS             ValidateStatus,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr)
-{
-    const ACPI_REPAIR_INFO  *Predefined;
-    ACPI_STATUS             Status;
-
-
-    /* Check if this name is in the list of repairable names */
-
-    Predefined = AcpiNsMatchRepairableName (Node);
-    if (!Predefined)
-    {
-        return (ValidateStatus);
-    }
-
-    Status = Predefined->RepairFunction (Data, ReturnObjectPtr);
-    return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsMatchRepairableName
- *
- * PARAMETERS:  Node                - Namespace node for the method/object
- *
- * RETURN:      Pointer to entry in repair table. NULL indicates not found.
- *
- * DESCRIPTION: Check an object name against the repairable object list.
- *
- *****************************************************************************/
-
-static const ACPI_REPAIR_INFO *
-AcpiNsMatchRepairableName (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    const ACPI_REPAIR_INFO  *ThisName;
-
-
-    /* Search info table for a repairable predefined method/object name */
-
-    ThisName = AcpiNsRepairableNames;
-    while (ThisName->RepairFunction)
-    {
-        if (ACPI_COMPARE_NAME (Node->Name.Ascii, ThisName->Name))
-        {
-            return (ThisName);
-        }
-        ThisName++;
-    }
-
-    return (NULL); /* Not found */
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsRepair_ALR
- *
- * PARAMETERS:  Data                - Pointer to validation data structure
- *              ReturnObjectPtr     - Pointer to the object returned from the
- *                                    evaluation of a method or object
- *
- * RETURN:      Status. AE_OK if object is OK or was repaired successfully
- *
- * DESCRIPTION: Repair for the _ALR object. If necessary, sort the object list
- *              ascending by the ambient illuminance values.
- *
- *****************************************************************************/
-
-static ACPI_STATUS
-AcpiNsRepair_ALR (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr)
-{
-    ACPI_OPERAND_OBJECT     *ReturnObject = *ReturnObjectPtr;
-    ACPI_STATUS             Status;
-
-
-    Status = AcpiNsCheckSortedList (Data, ReturnObject, 2, 1,
-                ACPI_SORT_ASCENDING, "AmbientIlluminance");
-
-    return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsRepair_FDE
- *
- * PARAMETERS:  Data                - Pointer to validation data structure
- *              ReturnObjectPtr     - Pointer to the object returned from the
- *                                    evaluation of a method or object
- *
- * RETURN:      Status. AE_OK if object is OK or was repaired successfully
- *
- * DESCRIPTION: Repair for the _FDE and _GTM objects. The expected return
- *              value is a Buffer of 5 DWORDs. This function repairs a common
- *              problem where the return value is a Buffer of BYTEs, not
- *              DWORDs.
- *
- *****************************************************************************/
-
-static ACPI_STATUS
-AcpiNsRepair_FDE (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr)
-{
-    ACPI_OPERAND_OBJECT     *ReturnObject = *ReturnObjectPtr;
-    ACPI_OPERAND_OBJECT     *BufferObject;
-    UINT8                   *ByteBuffer;
-    UINT32                  *DwordBuffer;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_NAME (NsRepair_FDE);
-
-
-    switch (ReturnObject->Common.Type)
-    {
-    case ACPI_TYPE_BUFFER:
-
-        /* This is the expected type. Length should be (at least) 5 DWORDs */
-
-        if (ReturnObject->Buffer.Length >= ACPI_FDE_DWORD_BUFFER_SIZE)
-        {
-            return (AE_OK);
-        }
-
-        /* We can only repair if we have exactly 5 BYTEs */
-
-        if (ReturnObject->Buffer.Length != ACPI_FDE_BYTE_BUFFER_SIZE)
-        {
-            ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-                "Incorrect return buffer length %u, expected %u",
-                ReturnObject->Buffer.Length, ACPI_FDE_DWORD_BUFFER_SIZE));
-
-            return (AE_AML_OPERAND_TYPE);
-        }
-
-        /* Create the new (larger) buffer object */
-
-        BufferObject = AcpiUtCreateBufferObject (ACPI_FDE_DWORD_BUFFER_SIZE);
-        if (!BufferObject)
-        {
-            return (AE_NO_MEMORY);
-        }
-
-        /* Expand each byte to a DWORD */
-
-        ByteBuffer = ReturnObject->Buffer.Pointer;
-        DwordBuffer = ACPI_CAST_PTR (UINT32, BufferObject->Buffer.Pointer);
-
-        for (i = 0; i < ACPI_FDE_FIELD_COUNT; i++)
-        {
-            *DwordBuffer = (UINT32) *ByteBuffer;
-            DwordBuffer++;
-            ByteBuffer++;
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR,
-            "%s Expanded Byte Buffer to expected DWord Buffer\n",
-            Data->Pathname));
-        break;
-
-    default:
-        return (AE_AML_OPERAND_TYPE);
-    }
-
-    /* Delete the original return object, return the new buffer object */
-
-    AcpiUtRemoveReference (ReturnObject);
-    *ReturnObjectPtr = BufferObject;
-
-    Data->Flags |= ACPI_OBJECT_REPAIRED;
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsRepair_TSS
- *
- * PARAMETERS:  Data                - Pointer to validation data structure
- *              ReturnObjectPtr     - Pointer to the object returned from the
- *                                    evaluation of a method or object
- *
- * RETURN:      Status. AE_OK if object is OK or was repaired successfully
- *
- * DESCRIPTION: Repair for the _TSS object. If necessary, sort the object list
- *              descending by the power dissipation values.
- *
- *****************************************************************************/
-
-static ACPI_STATUS
-AcpiNsRepair_TSS (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr)
-{
-    ACPI_OPERAND_OBJECT     *ReturnObject = *ReturnObjectPtr;
-    ACPI_STATUS             Status;
-
-
-    Status = AcpiNsCheckSortedList (Data, ReturnObject, 5, 1,
-                ACPI_SORT_DESCENDING, "PowerDissipation");
-
-    return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsRepair_PSS
- *
- * PARAMETERS:  Data                - Pointer to validation data structure
- *              ReturnObjectPtr     - Pointer to the object returned from the
- *                                    evaluation of a method or object
- *
- * RETURN:      Status. AE_OK if object is OK or was repaired successfully
- *
- * DESCRIPTION: Repair for the _PSS object. If necessary, sort the object list
- *              by the CPU frequencies. Check that the power dissipation values
- *              are all proportional to CPU frequency (i.e., sorting by
- *              frequency should be the same as sorting by power.)
- *
- *****************************************************************************/
-
-static ACPI_STATUS
-AcpiNsRepair_PSS (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     **ReturnObjectPtr)
-{
-    ACPI_OPERAND_OBJECT     *ReturnObject = *ReturnObjectPtr;
-    ACPI_OPERAND_OBJECT     **OuterElements;
-    UINT32                  OuterElementCount;
-    ACPI_OPERAND_OBJECT     **Elements;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    UINT32                  PreviousValue;
-    ACPI_STATUS             Status;
-    UINT32                  i;
-
-
-    /*
-     * Entries (sub-packages) in the _PSS Package must be sorted by power
-     * dissipation, in descending order. If it appears that the list is
-     * incorrectly sorted, sort it. We sort by CpuFrequency, since this
-     * should be proportional to the power.
-     */
-    Status =AcpiNsCheckSortedList (Data, ReturnObject, 6, 0,
-                ACPI_SORT_DESCENDING, "CpuFrequency");
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /*
-     * We now know the list is correctly sorted by CPU frequency. Check if
-     * the power dissipation values are proportional.
-     */
-    PreviousValue = ACPI_UINT32_MAX;
-    OuterElements = ReturnObject->Package.Elements;
-    OuterElementCount = ReturnObject->Package.Count;
-
-    for (i = 0; i < OuterElementCount; i++)
-    {
-        Elements = (*OuterElements)->Package.Elements;
-        ObjDesc = Elements[1]; /* Index1 = PowerDissipation */
-
-        if ((UINT32) ObjDesc->Integer.Value > PreviousValue)
-        {
-            ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags,
-                "SubPackage[%u,%u] - suspicious power dissipation values",
-                i-1, i));
-        }
-
-        PreviousValue = (UINT32) ObjDesc->Integer.Value;
-        OuterElements++;
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsCheckSortedList
- *
- * PARAMETERS:  Data                - Pointer to validation data structure
- *              ReturnObject        - Pointer to the top-level returned object
- *              ExpectedCount       - Minimum length of each sub-package
- *              SortIndex           - Sub-package entry to sort on
- *              SortDirection       - Ascending or descending
- *              SortKeyName         - Name of the SortIndex field
- *
- * RETURN:      Status. AE_OK if the list is valid and is sorted correctly or
- *              has been repaired by sorting the list.
- *
- * DESCRIPTION: Check if the package list is valid and sorted correctly by the
- *              SortIndex. If not, then sort the list.
- *
- *****************************************************************************/
-
-static ACPI_STATUS
-AcpiNsCheckSortedList (
-    ACPI_PREDEFINED_DATA    *Data,
-    ACPI_OPERAND_OBJECT     *ReturnObject,
-    UINT32                  ExpectedCount,
-    UINT32                  SortIndex,
-    UINT8                   SortDirection,
-    char                    *SortKeyName)
-{
-    UINT32                  OuterElementCount;
-    ACPI_OPERAND_OBJECT     **OuterElements;
-    ACPI_OPERAND_OBJECT     **Elements;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    UINT32                  i;
-    UINT32                  PreviousValue;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_NAME (NsCheckSortedList);
-
-
-    /* The top-level object must be a package */
-
-    if (ReturnObject->Common.Type != ACPI_TYPE_PACKAGE)
-    {
-        return (AE_AML_OPERAND_TYPE);
-    }
-
-    /*
-     * NOTE: assumes list of sub-packages contains no NULL elements.
-     * Any NULL elements should have been removed by earlier call
-     * to AcpiNsRemoveNullElements.
-     */
-    OuterElements = ReturnObject->Package.Elements;
-    OuterElementCount = ReturnObject->Package.Count;
-    if (!OuterElementCount)
-    {
-        return (AE_AML_PACKAGE_LIMIT);
-    }
-
-    PreviousValue = 0;
-    if (SortDirection == ACPI_SORT_DESCENDING)
-    {
-        PreviousValue = ACPI_UINT32_MAX;
-    }
-
-    /* Examine each subpackage */
-
-    for (i = 0; i < OuterElementCount; i++)
-    {
-        /* Each element of the top-level package must also be a package */
-
-        if ((*OuterElements)->Common.Type != ACPI_TYPE_PACKAGE)
-        {
-            return (AE_AML_OPERAND_TYPE);
-        }
-
-        /* Each sub-package must have the minimum length */
-
-        if ((*OuterElements)->Package.Count < ExpectedCount)
-        {
-            return (AE_AML_PACKAGE_LIMIT);
-        }
-
-        Elements = (*OuterElements)->Package.Elements;
-        ObjDesc = Elements[SortIndex];
-
-        if (ObjDesc->Common.Type != ACPI_TYPE_INTEGER)
-        {
-            return (AE_AML_OPERAND_TYPE);
-        }
-
-        /*
-         * The list must be sorted in the specified order. If we detect a
-         * discrepancy, issue a warning and sort the entire list
-         */
-        if (((SortDirection == ACPI_SORT_ASCENDING) &&
-                (ObjDesc->Integer.Value < PreviousValue)) ||
-            ((SortDirection == ACPI_SORT_DESCENDING) &&
-                (ObjDesc->Integer.Value > PreviousValue)))
-        {
-            Status = AcpiNsSortList (ReturnObject->Package.Elements,
-                        OuterElementCount, SortIndex, SortDirection);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-
-            Data->Flags |= ACPI_OBJECT_REPAIRED;
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR,
-                "%s: Repaired unsorted list - now sorted by %s\n",
-                Data->Pathname, SortKeyName));
-            return (AE_OK);
-        }
-
-        PreviousValue = (UINT32) ObjDesc->Integer.Value;
-        OuterElements++;
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsRemoveNullElements
- *
- * PARAMETERS:  Data                - Pointer to validation data structure
- *              PackageType         - An AcpiReturnPackageTypes value
- *              ObjDesc             - A Package object
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Remove all NULL package elements from packages that contain
- *              a variable number of sub-packages.
- *
- *****************************************************************************/
-
-void
-AcpiNsRemoveNullElements (
-    ACPI_PREDEFINED_DATA    *Data,
-    UINT8                   PackageType,
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-    ACPI_OPERAND_OBJECT     **Source;
-    ACPI_OPERAND_OBJECT     **Dest;
-    UINT32                  Count;
-    UINT32                  NewCount;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_NAME (NsRemoveNullElements);
-
-
-    /*
-     * PTYPE1 packages contain no subpackages.
-     * PTYPE2 packages contain a variable number of sub-packages. We can
-     * safely remove all NULL elements from the PTYPE2 packages.
-     */
-    switch (PackageType)
-    {
-    case ACPI_PTYPE1_FIXED:
-    case ACPI_PTYPE1_VAR:
-    case ACPI_PTYPE1_OPTION:
-        return;
-
-    case ACPI_PTYPE2:
-    case ACPI_PTYPE2_COUNT:
-    case ACPI_PTYPE2_PKG_COUNT:
-    case ACPI_PTYPE2_FIXED:
-    case ACPI_PTYPE2_MIN:
-    case ACPI_PTYPE2_REV_FIXED:
-        break;
-
-    default:
-        return;
-    }
-
-    Count = ObjDesc->Package.Count;
-    NewCount = Count;
-
-    Source = ObjDesc->Package.Elements;
-    Dest = Source;
-
-    /* Examine all elements of the package object, remove nulls */
-
-    for (i = 0; i < Count; i++)
-    {
-        if (!*Source)
-        {
-            NewCount--;
-        }
-        else
-        {
-            *Dest = *Source;
-            Dest++;
-        }
-        Source++;
-    }
-
-    /* Update parent package if any null elements were removed */
-
-    if (NewCount < Count)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR,
-            "%s: Found and removed %u NULL elements\n",
-            Data->Pathname, (Count - NewCount)));
-
-        /* NULL terminate list and update the package count */
-
-        *Dest = NULL;
-        ObjDesc->Package.Count = NewCount;
-    }
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsSortList
- *
- * PARAMETERS:  Elements            - Package object element list
- *              Count               - Element count for above
- *              Index               - Sort by which package element
- *              SortDirection       - Ascending or Descending sort
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Sort the objects that are in a package element list.
- *
- * NOTE: Assumes that all NULL elements have been removed from the package.
- *
- *****************************************************************************/
-
-static ACPI_STATUS
-AcpiNsSortList (
-    ACPI_OPERAND_OBJECT     **Elements,
-    UINT32                  Count,
-    UINT32                  Index,
-    UINT8                   SortDirection)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc1;
-    ACPI_OPERAND_OBJECT     *ObjDesc2;
-    ACPI_OPERAND_OBJECT     *TempObj;
-    UINT32                  i;
-    UINT32                  j;
-
-
-    /* Simple bubble sort */
-
-    for (i = 1; i < Count; i++)
-    {
-        for (j = (Count - 1); j >= i; j--)
-        {
-            ObjDesc1 = Elements[j-1]->Package.Elements[Index];
-            ObjDesc2 = Elements[j]->Package.Elements[Index];
-
-            if (((SortDirection == ACPI_SORT_ASCENDING) &&
-                    (ObjDesc1->Integer.Value > ObjDesc2->Integer.Value)) ||
-
-                ((SortDirection == ACPI_SORT_DESCENDING) &&
-                    (ObjDesc1->Integer.Value < ObjDesc2->Integer.Value)))
-            {
-                TempObj = Elements[j-1];
-                Elements[j-1] = Elements[j];
-                Elements[j] = TempObj;
-            }
-        }
-    }
-
-    return (AE_OK);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nssearch.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nssearch.c
deleted file mode 100644 (file)
index fce7c5a..0000000
+++ /dev/null
@@ -1,507 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nssearch - Namespace search
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSSEARCH_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-#ifdef ACPI_ASL_COMPILER
-#include "amlcode.h"
-#endif
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nssearch")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiNsSearchParentTree (
-    UINT32                  TargetName,
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_OBJECT_TYPE        Type,
-    ACPI_NAMESPACE_NODE     **ReturnNode);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsSearchOneScope
- *
- * PARAMETERS:  TargetName      - Ascii ACPI name to search for
- *              ParentNode      - Starting node where search will begin
- *              Type            - Object type to match
- *              ReturnNode      - Where the matched Named obj is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Search a single level of the namespace. Performs a
- *              simple search of the specified level, and does not add
- *              entries or search parents.
- *
- *
- *      Named object lists are built (and subsequently dumped) in the
- *      order in which the names are encountered during the namespace load;
- *
- *      All namespace searching is linear in this implementation, but
- *      could be easily modified to support any improved search
- *      algorithm. However, the linear search was chosen for simplicity
- *      and because the trees are small and the other interpreter
- *      execution overhead is relatively high.
- *
- *      Note: CPU execution analysis has shown that the AML interpreter spends
- *      a very small percentage of its time searching the namespace. Therefore,
- *      the linear search seems to be sufficient, as there would seem to be
- *      little value in improving the search.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsSearchOneScope (
-    UINT32                  TargetName,
-    ACPI_NAMESPACE_NODE     *ParentNode,
-    ACPI_OBJECT_TYPE        Type,
-    ACPI_NAMESPACE_NODE     **ReturnNode)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ACPI_FUNCTION_TRACE (NsSearchOneScope);
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-    if (ACPI_LV_NAMES & AcpiDbgLevel)
-    {
-        char                *ScopeName;
-
-        ScopeName = AcpiNsGetExternalPathname (ParentNode);
-        if (ScopeName)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "Searching %s (%p) For [%4.4s] (%s)\n",
-                ScopeName, ParentNode, ACPI_CAST_PTR (char, &TargetName),
-                AcpiUtGetTypeName (Type)));
-
-            ACPI_FREE (ScopeName);
-        }
-    }
-#endif
-
-    /*
-     * Search for name at this namespace level, which is to say that we
-     * must search for the name among the children of this object
-     */
-    Node = ParentNode->Child;
-    while (Node)
-    {
-        /* Check for match against the name */
-
-        if (Node->Name.Integer == TargetName)
-        {
-            /* Resolve a control method alias if any */
-
-            if (AcpiNsGetType (Node) == ACPI_TYPE_LOCAL_METHOD_ALIAS)
-            {
-                Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Node->Object);
-            }
-
-            /* Found matching entry */
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-                "Name [%4.4s] (%s) %p found in scope [%4.4s] %p\n",
-                ACPI_CAST_PTR (char, &TargetName),
-                AcpiUtGetTypeName (Node->Type),
-                Node, AcpiUtGetNodeName (ParentNode), ParentNode));
-
-            *ReturnNode = Node;
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        /*
-         * The last entry in the list points back to the parent,
-         * so a flag is used to indicate the end-of-list
-         */
-        if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
-        {
-            /* Searched entire list, we are done */
-
-            break;
-        }
-
-        /* Didn't match name, move on to the next peer object */
-
-        Node = Node->Peer;
-    }
-
-    /* Searched entire namespace level, not found */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-        "Name [%4.4s] (%s) not found in search in scope [%4.4s] "
-        "%p first child %p\n",
-        ACPI_CAST_PTR (char, &TargetName), AcpiUtGetTypeName (Type),
-        AcpiUtGetNodeName (ParentNode), ParentNode, ParentNode->Child));
-
-    return_ACPI_STATUS (AE_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsSearchParentTree
- *
- * PARAMETERS:  TargetName      - Ascii ACPI name to search for
- *              Node            - Starting node where search will begin
- *              Type            - Object type to match
- *              ReturnNode      - Where the matched Node is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Called when a name has not been found in the current namespace
- *              level. Before adding it or giving up, ACPI scope rules require
- *              searching enclosing scopes in cases identified by AcpiNsLocal().
- *
- *              "A name is located by finding the matching name in the current
- *              name space, and then in the parent name space. If the parent
- *              name space does not contain the name, the search continues
- *              recursively until either the name is found or the name space
- *              does not have a parent (the root of the name space). This
- *              indicates that the name is not found" (From ACPI Specification,
- *              section 5.3)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsSearchParentTree (
-    UINT32                  TargetName,
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_OBJECT_TYPE        Type,
-    ACPI_NAMESPACE_NODE     **ReturnNode)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-
-
-    ACPI_FUNCTION_TRACE (NsSearchParentTree);
-
-
-    ParentNode = AcpiNsGetParentNode (Node);
-
-    /*
-     * If there is no parent (i.e., we are at the root) or type is "local",
-     * we won't be searching the parent tree.
-     */
-    if (!ParentNode)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] has no parent\n",
-            ACPI_CAST_PTR (char, &TargetName)));
-        return_ACPI_STATUS (AE_NOT_FOUND);
-    }
-
-    if (AcpiNsLocal (Type))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-            "[%4.4s] type [%s] must be local to this scope (no parent search)\n",
-            ACPI_CAST_PTR (char, &TargetName), AcpiUtGetTypeName (Type)));
-        return_ACPI_STATUS (AE_NOT_FOUND);
-    }
-
-    /* Search the parent tree */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-        "Searching parent [%4.4s] for [%4.4s]\n",
-        AcpiUtGetNodeName (ParentNode), ACPI_CAST_PTR (char, &TargetName)));
-
-    /* Search parents until target is found or we have backed up to the root */
-
-    while (ParentNode)
-    {
-        /*
-         * Search parent scope. Use TYPE_ANY because we don't care about the
-         * object type at this point, we only care about the existence of
-         * the actual name we are searching for. Typechecking comes later.
-         */
-        Status = AcpiNsSearchOneScope (
-                    TargetName, ParentNode, ACPI_TYPE_ANY, ReturnNode);
-        if (ACPI_SUCCESS (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Not found here, go up another level (until we reach the root) */
-
-        ParentNode = AcpiNsGetParentNode (ParentNode);
-    }
-
-    /* Not found in parent tree */
-
-    return_ACPI_STATUS (AE_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsSearchAndEnter
- *
- * PARAMETERS:  TargetName          - Ascii ACPI name to search for (4 chars)
- *              WalkState           - Current state of the walk
- *              Node                - Starting node where search will begin
- *              InterpreterMode     - Add names only in ACPI_MODE_LOAD_PASS_x.
- *                                    Otherwise,search only.
- *              Type                - Object type to match
- *              Flags               - Flags describing the search restrictions
- *              ReturnNode          - Where the Node is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Search for a name segment in a single namespace level,
- *              optionally adding it if it is not found. If the passed
- *              Type is not Any and the type previously stored in the
- *              entry was Any (i.e. unknown), update the stored type.
- *
- *              In ACPI_IMODE_EXECUTE, search only.
- *              In other modes, search and add if not found.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsSearchAndEnter (
-    UINT32                  TargetName,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_INTERPRETER_MODE   InterpreterMode,
-    ACPI_OBJECT_TYPE        Type,
-    UINT32                  Flags,
-    ACPI_NAMESPACE_NODE     **ReturnNode)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *NewNode;
-
-
-    ACPI_FUNCTION_TRACE (NsSearchAndEnter);
-
-
-    /* Parameter validation */
-
-    if (!Node || !TargetName || !ReturnNode)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Null parameter: Node %p Name %X ReturnNode %p",
-            Node, TargetName, ReturnNode));
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Name must consist of valid ACPI characters. We will repair the name if
-     * necessary because we don't want to abort because of this, but we want
-     * all namespace names to be printable. A warning message is appropriate.
-     *
-     * This issue came up because there are in fact machines that exhibit
-     * this problem, and we want to be able to enable ACPI support for them,
-     * even though there are a few bad names.
-     */
-    AcpiUtRepairName (ACPI_CAST_PTR (char, &TargetName));
-
-    /* Try to find the name in the namespace level specified by the caller */
-
-    *ReturnNode = ACPI_ENTRY_NOT_FOUND;
-    Status = AcpiNsSearchOneScope (TargetName, Node, Type, ReturnNode);
-    if (Status != AE_NOT_FOUND)
-    {
-        /*
-         * If we found it AND the request specifies that a find is an error,
-         * return the error
-         */
-        if ((Status == AE_OK) &&
-            (Flags & ACPI_NS_ERROR_IF_FOUND))
-        {
-            Status = AE_ALREADY_EXISTS;
-        }
-
-#ifdef ACPI_ASL_COMPILER
-        if (*ReturnNode && (*ReturnNode)->Type == ACPI_TYPE_ANY)
-        {
-            (*ReturnNode)->Flags |= ANOBJ_IS_EXTERNAL;
-        }
-#endif
-
-        /* Either found it or there was an error: finished either way */
-
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * The name was not found. If we are NOT performing the first pass
-     * (name entry) of loading the namespace, search the parent tree (all the
-     * way to the root if necessary.) We don't want to perform the parent
-     * search when the namespace is actually being loaded. We want to perform
-     * the search when namespace references are being resolved (load pass 2)
-     * and during the execution phase.
-     */
-    if ((InterpreterMode != ACPI_IMODE_LOAD_PASS1) &&
-        (Flags & ACPI_NS_SEARCH_PARENT))
-    {
-        /*
-         * Not found at this level - search parent tree according to the
-         * ACPI specification
-         */
-        Status = AcpiNsSearchParentTree (TargetName, Node, Type, ReturnNode);
-        if (ACPI_SUCCESS (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* In execute mode, just search, never add names. Exit now */
-
-    if (InterpreterMode == ACPI_IMODE_EXECUTE)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
-            "%4.4s Not found in %p [Not adding]\n",
-            ACPI_CAST_PTR (char, &TargetName), Node));
-
-        return_ACPI_STATUS (AE_NOT_FOUND);
-    }
-
-    /* Create the new named object */
-
-    NewNode = AcpiNsCreateNode (TargetName);
-    if (!NewNode)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-#ifdef ACPI_ASL_COMPILER
-
-    /* Node is an object defined by an External() statement */
-
-    if (Flags & ACPI_NS_EXTERNAL ||
-        (WalkState && WalkState->Opcode == AML_SCOPE_OP))
-    {
-        NewNode->Flags |= ANOBJ_IS_EXTERNAL;
-    }
-#endif
-
-    if (Flags & ACPI_NS_TEMPORARY)
-    {
-        NewNode->Flags |= ANOBJ_TEMPORARY;
-    }
-
-    /* Install the new object into the parent's list of children */
-
-    AcpiNsInstallNode (WalkState, Node, NewNode, Type);
-    *ReturnNode = NewNode;
-    return_ACPI_STATUS (AE_OK);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsutils.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsutils.c
deleted file mode 100644 (file)
index ed0c3f7..0000000
+++ /dev/null
@@ -1,1184 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsutils - Utilities for accessing ACPI namespace, accessing
- *                        parents and siblings and Scope manipulation
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSUTILS_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "amlcode.h"
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsutils")
-
-/* Local prototypes */
-
-static BOOLEAN
-AcpiNsValidPathSeparator (
-    char                    Sep);
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-ACPI_NAME
-AcpiNsFindParentName (
-    ACPI_NAMESPACE_NODE     *NodeToSearch);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsReportError
- *
- * PARAMETERS:  ModuleName          - Caller's module name (for error output)
- *              LineNumber          - Caller's line number (for error output)
- *              InternalName        - Name or path of the namespace node
- *              LookupStatus        - Exception code from NS lookup
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print warning message with full pathname
- *
- ******************************************************************************/
-
-void
-AcpiNsReportError (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    const char              *InternalName,
-    ACPI_STATUS             LookupStatus)
-{
-    ACPI_STATUS             Status;
-    UINT32                  BadName;
-    char                    *Name = NULL;
-
-
-    AcpiOsPrintf ("ACPI Error (%s-%04d): ", ModuleName, LineNumber);
-
-    if (LookupStatus == AE_BAD_CHARACTER)
-    {
-        /* There is a non-ascii character in the name */
-
-        ACPI_MOVE_32_TO_32 (&BadName, ACPI_CAST_PTR (UINT32, InternalName));
-        AcpiOsPrintf ("[0x%4.4X] (NON-ASCII)", BadName);
-    }
-    else
-    {
-        /* Convert path to external format */
-
-        Status = AcpiNsExternalizeName (ACPI_UINT32_MAX,
-                    InternalName, NULL, &Name);
-
-        /* Print target name */
-
-        if (ACPI_SUCCESS (Status))
-        {
-            AcpiOsPrintf ("[%s]", Name);
-        }
-        else
-        {
-            AcpiOsPrintf ("[COULD NOT EXTERNALIZE NAME]");
-        }
-
-        if (Name)
-        {
-            ACPI_FREE (Name);
-        }
-    }
-
-    AcpiOsPrintf (" Namespace lookup failure, %s\n",
-        AcpiFormatException (LookupStatus));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsReportMethodError
- *
- * PARAMETERS:  ModuleName          - Caller's module name (for error output)
- *              LineNumber          - Caller's line number (for error output)
- *              Message             - Error message to use on failure
- *              PrefixNode          - Prefix relative to the path
- *              Path                - Path to the node (optional)
- *              MethodStatus        - Execution status
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print warning message with full pathname
- *
- ******************************************************************************/
-
-void
-AcpiNsReportMethodError (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    const char              *Message,
-    ACPI_NAMESPACE_NODE     *PrefixNode,
-    const char              *Path,
-    ACPI_STATUS             MethodStatus)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node = PrefixNode;
-
-
-    AcpiOsPrintf ("ACPI Error (%s-%04d): ", ModuleName, LineNumber);
-
-    if (Path)
-    {
-        Status = AcpiNsGetNode (PrefixNode, Path, ACPI_NS_NO_UPSEARCH,
-                    &Node);
-        if (ACPI_FAILURE (Status))
-        {
-            AcpiOsPrintf ("[Could not get node by pathname]");
-        }
-    }
-
-    AcpiNsPrintNodePathname (Node, Message);
-    AcpiOsPrintf (", %s\n", AcpiFormatException (MethodStatus));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsPrintNodePathname
- *
- * PARAMETERS:  Node            - Object
- *              Message         - Prefix message
- *
- * DESCRIPTION: Print an object's full namespace pathname
- *              Manages allocation/freeing of a pathname buffer
- *
- ******************************************************************************/
-
-void
-AcpiNsPrintNodePathname (
-    ACPI_NAMESPACE_NODE     *Node,
-    const char              *Message)
-{
-    ACPI_BUFFER             Buffer;
-    ACPI_STATUS             Status;
-
-
-    if (!Node)
-    {
-        AcpiOsPrintf ("[NULL NAME]");
-        return;
-    }
-
-    /* Convert handle to full pathname and print it (with supplied message) */
-
-    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-
-    Status = AcpiNsHandleToPathname (Node, &Buffer);
-    if (ACPI_SUCCESS (Status))
-    {
-        if (Message)
-        {
-            AcpiOsPrintf ("%s ", Message);
-        }
-
-        AcpiOsPrintf ("[%s] (Node %p)", (char *) Buffer.Pointer, Node);
-        ACPI_FREE (Buffer.Pointer);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsValidRootPrefix
- *
- * PARAMETERS:  Prefix          - Character to be checked
- *
- * RETURN:      TRUE if a valid prefix
- *
- * DESCRIPTION: Check if a character is a valid ACPI Root prefix
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiNsValidRootPrefix (
-    char                    Prefix)
-{
-
-    return ((BOOLEAN) (Prefix == '\\'));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsValidPathSeparator
- *
- * PARAMETERS:  Sep         - Character to be checked
- *
- * RETURN:      TRUE if a valid path separator
- *
- * DESCRIPTION: Check if a character is a valid ACPI path separator
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiNsValidPathSeparator (
-    char                    Sep)
-{
-
-    return ((BOOLEAN) (Sep == '.'));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetType
- *
- * PARAMETERS:  Node        - Parent Node to be examined
- *
- * RETURN:      Type field from Node whose handle is passed
- *
- * DESCRIPTION: Return the type of a Namespace node
- *
- ******************************************************************************/
-
-ACPI_OBJECT_TYPE
-AcpiNsGetType (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_FUNCTION_TRACE (NsGetType);
-
-
-    if (!Node)
-    {
-        ACPI_WARNING ((AE_INFO, "Null Node parameter"));
-        return_UINT32 (ACPI_TYPE_ANY);
-    }
-
-    return_UINT32 ((ACPI_OBJECT_TYPE) Node->Type);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsLocal
- *
- * PARAMETERS:  Type        - A namespace object type
- *
- * RETURN:      LOCAL if names must be found locally in objects of the
- *              passed type, 0 if enclosing scopes should be searched
- *
- * DESCRIPTION: Returns scope rule for the given object type.
- *
- ******************************************************************************/
-
-UINT32
-AcpiNsLocal (
-    ACPI_OBJECT_TYPE        Type)
-{
-    ACPI_FUNCTION_TRACE (NsLocal);
-
-
-    if (!AcpiUtValidObjectType (Type))
-    {
-        /* Type code out of range  */
-
-        ACPI_WARNING ((AE_INFO, "Invalid Object Type %X", Type));
-        return_UINT32 (ACPI_NS_NORMAL);
-    }
-
-    return_UINT32 ((UINT32) AcpiGbl_NsProperties[Type] & ACPI_NS_LOCAL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetInternalNameLength
- *
- * PARAMETERS:  Info            - Info struct initialized with the
- *                                external name pointer.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Calculate the length of the internal (AML) namestring
- *              corresponding to the external (ASL) namestring.
- *
- ******************************************************************************/
-
-void
-AcpiNsGetInternalNameLength (
-    ACPI_NAMESTRING_INFO    *Info)
-{
-    const char              *NextExternalChar;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    NextExternalChar = Info->ExternalName;
-    Info->NumCarats = 0;
-    Info->NumSegments = 0;
-    Info->FullyQualified = FALSE;
-
-    /*
-     * For the internal name, the required length is 4 bytes per segment, plus
-     * 1 each for RootPrefix, MultiNamePrefixOp, segment count, trailing null
-     * (which is not really needed, but no there's harm in putting it there)
-     *
-     * strlen() + 1 covers the first NameSeg, which has no path separator
-     */
-    if (AcpiNsValidRootPrefix (*NextExternalChar))
-    {
-        Info->FullyQualified = TRUE;
-        NextExternalChar++;
-
-        /* Skip redundant RootPrefix, like \\_SB.PCI0.SBRG.EC0 */
-
-        while (AcpiNsValidRootPrefix (*NextExternalChar))
-        {
-            NextExternalChar++;
-        }
-    }
-    else
-    {
-        /* Handle Carat prefixes */
-
-        while (*NextExternalChar == '^')
-        {
-            Info->NumCarats++;
-            NextExternalChar++;
-        }
-    }
-
-    /*
-     * Determine the number of ACPI name "segments" by counting the number of
-     * path separators within the string. Start with one segment since the
-     * segment count is [(# separators) + 1], and zero separators is ok.
-     */
-    if (*NextExternalChar)
-    {
-        Info->NumSegments = 1;
-        for (i = 0; NextExternalChar[i]; i++)
-        {
-            if (AcpiNsValidPathSeparator (NextExternalChar[i]))
-            {
-                Info->NumSegments++;
-            }
-        }
-    }
-
-    Info->Length = (ACPI_NAME_SIZE * Info->NumSegments) +
-                    4 + Info->NumCarats;
-
-    Info->NextExternalChar = NextExternalChar;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsBuildInternalName
- *
- * PARAMETERS:  Info            - Info struct fully initialized
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Construct the internal (AML) namestring
- *              corresponding to the external (ASL) namestring.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsBuildInternalName (
-    ACPI_NAMESTRING_INFO    *Info)
-{
-    UINT32                  NumSegments = Info->NumSegments;
-    char                    *InternalName = Info->InternalName;
-    const char              *ExternalName = Info->NextExternalChar;
-    char                    *Result = NULL;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (NsBuildInternalName);
-
-
-    /* Setup the correct prefixes, counts, and pointers */
-
-    if (Info->FullyQualified)
-    {
-        InternalName[0] = '\\';
-
-        if (NumSegments <= 1)
-        {
-            Result = &InternalName[1];
-        }
-        else if (NumSegments == 2)
-        {
-            InternalName[1] = AML_DUAL_NAME_PREFIX;
-            Result = &InternalName[2];
-        }
-        else
-        {
-            InternalName[1] = AML_MULTI_NAME_PREFIX_OP;
-            InternalName[2] = (char) NumSegments;
-            Result = &InternalName[3];
-        }
-    }
-    else
-    {
-        /*
-         * Not fully qualified.
-         * Handle Carats first, then append the name segments
-         */
-        i = 0;
-        if (Info->NumCarats)
-        {
-            for (i = 0; i < Info->NumCarats; i++)
-            {
-                InternalName[i] = '^';
-            }
-        }
-
-        if (NumSegments <= 1)
-        {
-            Result = &InternalName[i];
-        }
-        else if (NumSegments == 2)
-        {
-            InternalName[i] = AML_DUAL_NAME_PREFIX;
-            Result = &InternalName[(ACPI_SIZE) i+1];
-        }
-        else
-        {
-            InternalName[i] = AML_MULTI_NAME_PREFIX_OP;
-            InternalName[(ACPI_SIZE) i+1] = (char) NumSegments;
-            Result = &InternalName[(ACPI_SIZE) i+2];
-        }
-    }
-
-    /* Build the name (minus path separators) */
-
-    for (; NumSegments; NumSegments--)
-    {
-        for (i = 0; i < ACPI_NAME_SIZE; i++)
-        {
-            if (AcpiNsValidPathSeparator (*ExternalName) ||
-               (*ExternalName == 0))
-            {
-                /* Pad the segment with underscore(s) if segment is short */
-
-                Result[i] = '_';
-            }
-            else
-            {
-                /* Convert the character to uppercase and save it */
-
-                Result[i] = (char) ACPI_TOUPPER ((int) *ExternalName);
-                ExternalName++;
-            }
-        }
-
-        /* Now we must have a path separator, or the pathname is bad */
-
-        if (!AcpiNsValidPathSeparator (*ExternalName) &&
-            (*ExternalName != 0))
-        {
-            return_ACPI_STATUS (AE_BAD_PARAMETER);
-        }
-
-        /* Move on the next segment */
-
-        ExternalName++;
-        Result += ACPI_NAME_SIZE;
-    }
-
-    /* Terminate the string */
-
-    *Result = 0;
-
-    if (Info->FullyQualified)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Returning [%p] (abs) \"\\%s\"\n",
-            InternalName, InternalName));
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Returning [%p] (rel) \"%s\"\n",
-            InternalName, InternalName));
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsInternalizeName
- *
- * PARAMETERS:  *ExternalName           - External representation of name
- *              **Converted Name        - Where to return the resulting
- *                                        internal represention of the name
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert an external representation (e.g. "\_PR_.CPU0")
- *              to internal form (e.g. 5c 2f 02 5f 50 52 5f 43 50 55 30)
- *
- *******************************************************************************/
-
-ACPI_STATUS
-AcpiNsInternalizeName (
-    const char              *ExternalName,
-    char                    **ConvertedName)
-{
-    char                    *InternalName;
-    ACPI_NAMESTRING_INFO    Info;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (NsInternalizeName);
-
-
-    if ((!ExternalName)      ||
-        (*ExternalName == 0) ||
-        (!ConvertedName))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Get the length of the new internal name */
-
-    Info.ExternalName = ExternalName;
-    AcpiNsGetInternalNameLength (&Info);
-
-    /* We need a segment to store the internal  name */
-
-    InternalName = ACPI_ALLOCATE_ZEROED (Info.Length);
-    if (!InternalName)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Build the name */
-
-    Info.InternalName = InternalName;
-    Status = AcpiNsBuildInternalName (&Info);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_FREE (InternalName);
-        return_ACPI_STATUS (Status);
-    }
-
-    *ConvertedName = InternalName;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsExternalizeName
- *
- * PARAMETERS:  InternalNameLength  - Lenth of the internal name below
- *              InternalName        - Internal representation of name
- *              ConvertedNameLength - Where the length is returned
- *              ConvertedName       - Where the resulting external name
- *                                    is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert internal name (e.g. 5c 2f 02 5f 50 52 5f 43 50 55 30)
- *              to its external (printable) form (e.g. "\_PR_.CPU0")
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsExternalizeName (
-    UINT32                  InternalNameLength,
-    const char              *InternalName,
-    UINT32                  *ConvertedNameLength,
-    char                    **ConvertedName)
-{
-    UINT32                  NamesIndex = 0;
-    UINT32                  NumSegments = 0;
-    UINT32                  RequiredLength;
-    UINT32                  PrefixLength = 0;
-    UINT32                  i = 0;
-    UINT32                  j = 0;
-
-
-    ACPI_FUNCTION_TRACE (NsExternalizeName);
-
-
-    if (!InternalNameLength     ||
-        !InternalName           ||
-        !ConvertedName)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Check for a prefix (one '\' | one or more '^') */
-
-    switch (InternalName[0])
-    {
-    case '\\':
-        PrefixLength = 1;
-        break;
-
-    case '^':
-        for (i = 0; i < InternalNameLength; i++)
-        {
-            if (InternalName[i] == '^')
-            {
-                PrefixLength = i + 1;
-            }
-            else
-            {
-                break;
-            }
-        }
-
-        if (i == InternalNameLength)
-        {
-            PrefixLength = i;
-        }
-
-        break;
-
-    default:
-        break;
-    }
-
-    /*
-     * Check for object names. Note that there could be 0-255 of these
-     * 4-byte elements.
-     */
-    if (PrefixLength < InternalNameLength)
-    {
-        switch (InternalName[PrefixLength])
-        {
-        case AML_MULTI_NAME_PREFIX_OP:
-
-            /* <count> 4-byte names */
-
-            NamesIndex = PrefixLength + 2;
-            NumSegments = (UINT8)
-                InternalName[(ACPI_SIZE) PrefixLength + 1];
-            break;
-
-        case AML_DUAL_NAME_PREFIX:
-
-            /* Two 4-byte names */
-
-            NamesIndex = PrefixLength + 1;
-            NumSegments = 2;
-            break;
-
-        case 0:
-
-            /* NullName */
-
-            NamesIndex = 0;
-            NumSegments = 0;
-            break;
-
-        default:
-
-            /* one 4-byte name */
-
-            NamesIndex = PrefixLength;
-            NumSegments = 1;
-            break;
-        }
-    }
-
-    /*
-     * Calculate the length of ConvertedName, which equals the length
-     * of the prefix, length of all object names, length of any required
-     * punctuation ('.') between object names, plus the NULL terminator.
-     */
-    RequiredLength = PrefixLength + (4 * NumSegments) +
-                        ((NumSegments > 0) ? (NumSegments - 1) : 0) + 1;
-
-    /*
-     * Check to see if we're still in bounds.  If not, there's a problem
-     * with InternalName (invalid format).
-     */
-    if (RequiredLength > InternalNameLength)
-    {
-        ACPI_ERROR ((AE_INFO, "Invalid internal name"));
-        return_ACPI_STATUS (AE_BAD_PATHNAME);
-    }
-
-    /* Build the ConvertedName */
-
-    *ConvertedName = ACPI_ALLOCATE_ZEROED (RequiredLength);
-    if (!(*ConvertedName))
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    j = 0;
-
-    for (i = 0; i < PrefixLength; i++)
-    {
-        (*ConvertedName)[j++] = InternalName[i];
-    }
-
-    if (NumSegments > 0)
-    {
-        for (i = 0; i < NumSegments; i++)
-        {
-            if (i > 0)
-            {
-                (*ConvertedName)[j++] = '.';
-            }
-
-            (*ConvertedName)[j++] = InternalName[NamesIndex++];
-            (*ConvertedName)[j++] = InternalName[NamesIndex++];
-            (*ConvertedName)[j++] = InternalName[NamesIndex++];
-            (*ConvertedName)[j++] = InternalName[NamesIndex++];
-        }
-    }
-
-    if (ConvertedNameLength)
-    {
-        *ConvertedNameLength = (UINT32) RequiredLength;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsValidateHandle
- *
- * PARAMETERS:  Handle          - Handle to be validated and typecast to a
- *                                namespace node.
- *
- * RETURN:      A pointer to a namespace node
- *
- * DESCRIPTION: Convert a namespace handle to a namespace node. Handles special
- *              cases for the root node.
- *
- * NOTE: Real integer handles would allow for more verification
- *       and keep all pointers within this subsystem - however this introduces
- *       more overhead and has not been necessary to this point. Drivers
- *       holding handles are typically notified before a node becomes invalid
- *       due to a table unload.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsValidateHandle (
-    ACPI_HANDLE             Handle)
-{
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Parameter validation */
-
-    if ((!Handle) || (Handle == ACPI_ROOT_OBJECT))
-    {
-        return (AcpiGbl_RootNode);
-    }
-
-    /* We can at least attempt to verify the handle */
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (Handle) != ACPI_DESC_TYPE_NAMED)
-    {
-        return (NULL);
-    }
-
-    return (ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Handle));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsTerminate
- *
- * PARAMETERS:  none
- *
- * RETURN:      none
- *
- * DESCRIPTION: free memory allocated for namespace and ACPI table storage.
- *
- ******************************************************************************/
-
-void
-AcpiNsTerminate (
-    void)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-
-
-    ACPI_FUNCTION_TRACE (NsTerminate);
-
-
-    /*
-     * 1) Free the entire namespace -- all nodes and objects
-     *
-     * Delete all object descriptors attached to namepsace nodes
-     */
-    AcpiNsDeleteNamespaceSubtree (AcpiGbl_RootNode);
-
-    /* Detach any objects attached to the root */
-
-    ObjDesc = AcpiNsGetAttachedObject (AcpiGbl_RootNode);
-    if (ObjDesc)
-    {
-        AcpiNsDetachObject (AcpiGbl_RootNode);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Namespace freed\n"));
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsOpensScope
- *
- * PARAMETERS:  Type        - A valid namespace type
- *
- * RETURN:      NEWSCOPE if the passed type "opens a name scope" according
- *              to the ACPI specification, else 0
- *
- ******************************************************************************/
-
-UINT32
-AcpiNsOpensScope (
-    ACPI_OBJECT_TYPE        Type)
-{
-    ACPI_FUNCTION_TRACE_STR (NsOpensScope, AcpiUtGetTypeName (Type));
-
-
-    if (!AcpiUtValidObjectType (Type))
-    {
-        /* type code out of range  */
-
-        ACPI_WARNING ((AE_INFO, "Invalid Object Type %X", Type));
-        return_UINT32 (ACPI_NS_NORMAL);
-    }
-
-    return_UINT32 (((UINT32) AcpiGbl_NsProperties[Type]) & ACPI_NS_NEWSCOPE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetNode
- *
- * PARAMETERS:  *Pathname   - Name to be found, in external (ASL) format. The
- *                            \ (backslash) and ^ (carat) prefixes, and the
- *                            . (period) to separate segments are supported.
- *              PrefixNode   - Root of subtree to be searched, or NS_ALL for the
- *                            root of the name space.  If Name is fully
- *                            qualified (first INT8 is '\'), the passed value
- *                            of Scope will not be accessed.
- *              Flags       - Used to indicate whether to perform upsearch or
- *                            not.
- *              ReturnNode  - Where the Node is returned
- *
- * DESCRIPTION: Look up a name relative to a given scope and return the
- *              corresponding Node.  NOTE: Scope can be null.
- *
- * MUTEX:       Locks namespace
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsGetNode (
-    ACPI_NAMESPACE_NODE     *PrefixNode,
-    const char              *Pathname,
-    UINT32                  Flags,
-    ACPI_NAMESPACE_NODE     **ReturnNode)
-{
-    ACPI_GENERIC_STATE      ScopeInfo;
-    ACPI_STATUS             Status;
-    char                    *InternalPath;
-
-
-    ACPI_FUNCTION_TRACE_PTR (NsGetNode, ACPI_CAST_PTR (char, Pathname));
-
-
-    if (!Pathname)
-    {
-        *ReturnNode = PrefixNode;
-        if (!PrefixNode)
-        {
-            *ReturnNode = AcpiGbl_RootNode;
-        }
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Convert path to internal representation */
-
-    Status = AcpiNsInternalizeName (Pathname, &InternalPath);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Must lock namespace during lookup */
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    /* Setup lookup scope (search starting point) */
-
-    ScopeInfo.Scope.Node = PrefixNode;
-
-    /* Lookup the name in the namespace */
-
-    Status = AcpiNsLookup (&ScopeInfo, InternalPath, ACPI_TYPE_ANY,
-                ACPI_IMODE_EXECUTE, (Flags | ACPI_NS_DONT_OPEN_SCOPE),
-                NULL, ReturnNode);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%s, %s\n",
-                Pathname, AcpiFormatException (Status)));
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
-Cleanup:
-    ACPI_FREE (InternalPath);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetParentNode
- *
- * PARAMETERS:  Node       - Current table entry
- *
- * RETURN:      Parent entry of the given entry
- *
- * DESCRIPTION: Obtain the parent entry for a given entry in the namespace.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetParentNode (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!Node)
-    {
-        return (NULL);
-    }
-
-    /*
-     * Walk to the end of this peer list. The last entry is marked with a flag
-     * and the peer pointer is really a pointer back to the parent. This saves
-     * putting a parent back pointer in each and every named object!
-     */
-    while (!(Node->Flags & ANOBJ_END_OF_PEER_LIST))
-    {
-        Node = Node->Peer;
-    }
-
-    return (Node->Peer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetNextValidNode
- *
- * PARAMETERS:  Node       - Current table entry
- *
- * RETURN:      Next valid Node in the linked node list. NULL if no more valid
- *              nodes.
- *
- * DESCRIPTION: Find the next valid node within a name table.
- *              Useful for implementing NULL-end-of-list loops.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetNextValidNode (
-    ACPI_NAMESPACE_NODE     *Node)
-{
-
-    /* If we are at the end of this peer list, return NULL */
-
-    if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
-    {
-        return NULL;
-    }
-
-    /* Otherwise just return the next peer */
-
-    return (Node->Peer);
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsFindParentName
- *
- * PARAMETERS:  *ChildNode             - Named Obj whose name is to be found
- *
- * RETURN:      The ACPI name
- *
- * DESCRIPTION: Search for the given obj in its parent scope and return the
- *              name segment, or "????" if the parent name can't be found
- *              (which "should not happen").
- *
- ******************************************************************************/
-
-ACPI_NAME
-AcpiNsFindParentName (
-    ACPI_NAMESPACE_NODE     *ChildNode)
-{
-    ACPI_NAMESPACE_NODE     *ParentNode;
-
-
-    ACPI_FUNCTION_TRACE (NsFindParentName);
-
-
-    if (ChildNode)
-    {
-        /* Valid entry.  Get the parent Node */
-
-        ParentNode = AcpiNsGetParentNode (ChildNode);
-        if (ParentNode)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                "Parent of %p [%4.4s] is %p [%4.4s]\n",
-                ChildNode,  AcpiUtGetNodeName (ChildNode),
-                ParentNode, AcpiUtGetNodeName (ParentNode)));
-
-            if (ParentNode->Name.Integer)
-            {
-                return_VALUE ((ACPI_NAME) ParentNode->Name.Integer);
-            }
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "Unable to find parent of %p (%4.4s)\n",
-            ChildNode, AcpiUtGetNodeName (ChildNode)));
-    }
-
-    return_VALUE (ACPI_UNKNOWN_NAME);
-}
-#endif
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nswalk.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nswalk.c
deleted file mode 100644 (file)
index 7711e9a..0000000
+++ /dev/null
@@ -1,468 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nswalk - Functions for walking the ACPI namespace
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __NSWALK_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nswalk")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetNextNode
- *
- * PARAMETERS:  ParentNode          - Parent node whose children we are
- *                                    getting
- *              ChildNode           - Previous child that was found.
- *                                    The NEXT child will be returned
- *
- * RETURN:      ACPI_NAMESPACE_NODE - Pointer to the NEXT child or NULL if
- *                                    none is found.
- *
- * DESCRIPTION: Return the next peer node within the namespace.  If Handle
- *              is valid, Scope is ignored.  Otherwise, the first node
- *              within Scope is returned.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetNextNode (
-    ACPI_NAMESPACE_NODE     *ParentNode,
-    ACPI_NAMESPACE_NODE     *ChildNode)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!ChildNode)
-    {
-        /* It's really the parent's _scope_ that we want */
-
-        return (ParentNode->Child);
-    }
-
-    /*
-     * Get the next node.
-     *
-     * If we are at the end of this peer list, return NULL
-     */
-    if (ChildNode->Flags & ANOBJ_END_OF_PEER_LIST)
-    {
-        return NULL;
-    }
-
-    /* Otherwise just return the next peer */
-
-    return (ChildNode->Peer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetNextNodeTyped
- *
- * PARAMETERS:  Type                - Type of node to be searched for
- *              ParentNode          - Parent node whose children we are
- *                                    getting
- *              ChildNode           - Previous child that was found.
- *                                    The NEXT child will be returned
- *
- * RETURN:      ACPI_NAMESPACE_NODE - Pointer to the NEXT child or NULL if
- *                                    none is found.
- *
- * DESCRIPTION: Return the next peer node within the namespace.  If Handle
- *              is valid, Scope is ignored.  Otherwise, the first node
- *              within Scope is returned.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetNextNodeTyped (
-    ACPI_OBJECT_TYPE        Type,
-    ACPI_NAMESPACE_NODE     *ParentNode,
-    ACPI_NAMESPACE_NODE     *ChildNode)
-{
-    ACPI_NAMESPACE_NODE     *NextNode = NULL;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    NextNode = AcpiNsGetNextNode (ParentNode, ChildNode);
-
-    /* If any type is OK, we are done */
-
-    if (Type == ACPI_TYPE_ANY)
-    {
-        /* NextNode is NULL if we are at the end-of-list */
-
-        return (NextNode);
-    }
-
-    /* Must search for the node -- but within this scope only */
-
-    while (NextNode)
-    {
-        /* If type matches, we are done */
-
-        if (NextNode->Type == Type)
-        {
-            return (NextNode);
-        }
-
-        /* Otherwise, move on to the next node */
-
-        NextNode = AcpiNsGetNextValidNode (NextNode);
-    }
-
-    /* Not found */
-
-    return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsWalkNamespace
- *
- * PARAMETERS:  Type                - ACPI_OBJECT_TYPE to search for
- *              StartNode           - Handle in namespace where search begins
- *              MaxDepth            - Depth to which search is to reach
- *              Flags               - Whether to unlock the NS before invoking
- *                                    the callback routine
- *              PreOrderVisit       - Called during tree pre-order visit
- *                                    when an object of "Type" is found
- *              PostOrderVisit      - Called during tree post-order visit
- *                                    when an object of "Type" is found
- *              Context             - Passed to user function(s) above
- *              ReturnValue         - from the UserFunction if terminated
- *                                    early. Otherwise, returns NULL.
- * RETURNS:     Status
- *
- * DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
- *              starting (and ending) at the node specified by StartHandle.
- *              The callback function is called whenever a node that matches
- *              the type parameter is found. If the callback function returns
- *              a non-zero value, the search is terminated immediately and
- *              this value is returned to the caller.
- *
- *              The point of this procedure is to provide a generic namespace
- *              walk routine that can be called from multiple places to
- *              provide multiple services; the callback function(s) can be
- *              tailored to each task, whether it is a print function,
- *              a compare function, etc.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsWalkNamespace (
-    ACPI_OBJECT_TYPE        Type,
-    ACPI_HANDLE             StartNode,
-    UINT32                  MaxDepth,
-    UINT32                  Flags,
-    ACPI_WALK_CALLBACK      PreOrderVisit,
-    ACPI_WALK_CALLBACK      PostOrderVisit,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_STATUS             Status;
-    ACPI_STATUS             MutexStatus;
-    ACPI_NAMESPACE_NODE     *ChildNode;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-    ACPI_OBJECT_TYPE        ChildType;
-    UINT32                  Level;
-    BOOLEAN                 NodePreviouslyVisited = FALSE;
-
-
-    ACPI_FUNCTION_TRACE (NsWalkNamespace);
-
-
-    /* Special case for the namespace Root Node */
-
-    if (StartNode == ACPI_ROOT_OBJECT)
-    {
-        StartNode = AcpiGbl_RootNode;
-    }
-
-    /* Null child means "get first node" */
-
-    ParentNode  = StartNode;
-    ChildNode   = AcpiNsGetNextNode (ParentNode, NULL);
-    ChildType   = ACPI_TYPE_ANY;
-    Level       = 1;
-
-    /*
-     * Traverse the tree of nodes until we bubble back up to where we
-     * started. When Level is zero, the loop is done because we have
-     * bubbled up to (and passed) the original parent handle (StartEntry)
-     */
-    while (Level > 0 && ChildNode)
-    {
-        Status = AE_OK;
-
-        /* Found next child, get the type if we are not searching for ANY */
-
-        if (Type != ACPI_TYPE_ANY)
-        {
-            ChildType = ChildNode->Type;
-        }
-
-        /*
-         * Ignore all temporary namespace nodes (created during control
-         * method execution) unless told otherwise. These temporary nodes
-         * can cause a race condition because they can be deleted during
-         * the execution of the user function (if the namespace is
-         * unlocked before invocation of the user function.) Only the
-         * debugger namespace dump will examine the temporary nodes.
-         */
-        if ((ChildNode->Flags & ANOBJ_TEMPORARY) &&
-            !(Flags & ACPI_NS_WALK_TEMP_NODES))
-        {
-            Status = AE_CTRL_DEPTH;
-        }
-
-        /* Type must match requested type */
-
-        else if (ChildType == Type)
-        {
-            /*
-             * Found a matching node, invoke the user callback function.
-             * Unlock the namespace if flag is set.
-             */
-            if (Flags & ACPI_NS_WALK_UNLOCK)
-            {
-                MutexStatus = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-                if (ACPI_FAILURE (MutexStatus))
-                {
-                    return_ACPI_STATUS (MutexStatus);
-                }
-            }
-
-            /*
-             * Invoke the user function, either pre-order or post-order
-             * or both.
-             */
-            if (!NodePreviouslyVisited)
-            {
-                if (PreOrderVisit)
-                {
-                    Status = PreOrderVisit (ChildNode, Level,
-                                Context, ReturnValue);
-                }
-            }
-            else
-            {
-                if (PostOrderVisit)
-                {
-                    Status = PostOrderVisit (ChildNode, Level,
-                                Context, ReturnValue);
-                }
-            }
-
-            if (Flags & ACPI_NS_WALK_UNLOCK)
-            {
-                MutexStatus = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-                if (ACPI_FAILURE (MutexStatus))
-                {
-                    return_ACPI_STATUS (MutexStatus);
-                }
-            }
-
-            switch (Status)
-            {
-            case AE_OK:
-            case AE_CTRL_DEPTH:
-
-                /* Just keep going */
-                break;
-
-            case AE_CTRL_TERMINATE:
-
-                /* Exit now, with OK status */
-
-                return_ACPI_STATUS (AE_OK);
-
-            default:
-
-                /* All others are valid exceptions */
-
-                return_ACPI_STATUS (Status);
-            }
-        }
-
-        /*
-         * Depth first search: Attempt to go down another level in the
-         * namespace if we are allowed to.  Don't go any further if we have
-         * reached the caller specified maximum depth or if the user
-         * function has specified that the maximum depth has been reached.
-         */
-        if (!NodePreviouslyVisited &&
-            (Level < MaxDepth) &&
-            (Status != AE_CTRL_DEPTH))
-        {
-            if (ChildNode->Child)
-            {
-                /* There is at least one child of this node, visit it */
-
-                Level++;
-                ParentNode = ChildNode;
-                ChildNode = AcpiNsGetNextNode (ParentNode, NULL);
-                continue;
-            }
-        }
-
-        /* No more children, re-visit this node */
-
-        if (!NodePreviouslyVisited)
-        {
-            NodePreviouslyVisited = TRUE;
-            continue;
-        }
-
-        /* No more children, visit peers */
-
-        ChildNode = AcpiNsGetNextNode (ParentNode, ChildNode);
-        if (ChildNode)
-        {
-            NodePreviouslyVisited = FALSE;
-        }
-
-        /* No peers, re-visit parent */
-
-        else
-        {
-            /*
-             * No more children of this node (AcpiNsGetNextNode failed), go
-             * back upwards in the namespace tree to the node's parent.
-             */
-            Level--;
-            ChildNode = ParentNode;
-            ParentNode = AcpiNsGetParentNode (ParentNode);
-
-            NodePreviouslyVisited = TRUE;
-        }
-    }
-
-    /* Complete walk, not terminated by user function */
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsxfeval.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsxfeval.c
deleted file mode 100644 (file)
index a0f96a0..0000000
+++ /dev/null
@@ -1,1020 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsxfeval - Public interfaces to the ACPI subsystem
- *                         ACPI Object evaluation interfaces
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __NSXFEVAL_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acinterp.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsxfeval")
-
-/* Local prototypes */
-
-static void
-AcpiNsResolveReferences (
-    ACPI_EVALUATE_INFO      *Info);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvaluateObjectTyped
- *
- * PARAMETERS:  Handle              - Object handle (optional)
- *              Pathname            - Object pathname (optional)
- *              ExternalParams      - List of parameters to pass to method,
- *                                    terminated by NULL.  May be NULL
- *                                    if no parameters are being passed.
- *              ReturnBuffer        - Where to put method's return value (if
- *                                    any).  If NULL, no value is returned.
- *              ReturnType          - Expected type of return object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Find and evaluate the given object, passing the given
- *              parameters if necessary.  One of "Handle" or "Pathname" must
- *              be valid (non-null)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvaluateObjectTyped (
-    ACPI_HANDLE             Handle,
-    ACPI_STRING             Pathname,
-    ACPI_OBJECT_LIST        *ExternalParams,
-    ACPI_BUFFER             *ReturnBuffer,
-    ACPI_OBJECT_TYPE        ReturnType)
-{
-    ACPI_STATUS             Status;
-    BOOLEAN                 MustFree = FALSE;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEvaluateObjectTyped);
-
-
-    /* Return buffer must be valid */
-
-    if (!ReturnBuffer)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (ReturnBuffer->Length == ACPI_ALLOCATE_BUFFER)
-    {
-        MustFree = TRUE;
-    }
-
-    /* Evaluate the object */
-
-    Status = AcpiEvaluateObject (Handle, Pathname, ExternalParams, ReturnBuffer);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Type ANY means "don't care" */
-
-    if (ReturnType == ACPI_TYPE_ANY)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    if (ReturnBuffer->Length == 0)
-    {
-        /* Error because caller specifically asked for a return value */
-
-        ACPI_ERROR ((AE_INFO, "No return value"));
-        return_ACPI_STATUS (AE_NULL_OBJECT);
-    }
-
-    /* Examine the object type returned from EvaluateObject */
-
-    if (((ACPI_OBJECT *) ReturnBuffer->Pointer)->Type == ReturnType)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Return object type does not match requested type */
-
-    ACPI_ERROR ((AE_INFO,
-        "Incorrect return type [%s] requested [%s]",
-        AcpiUtGetTypeName (((ACPI_OBJECT *) ReturnBuffer->Pointer)->Type),
-        AcpiUtGetTypeName (ReturnType)));
-
-    if (MustFree)
-    {
-        /* Caller used ACPI_ALLOCATE_BUFFER, free the return buffer */
-
-        AcpiOsFree (ReturnBuffer->Pointer);
-        ReturnBuffer->Pointer = NULL;
-    }
-
-    ReturnBuffer->Length = 0;
-    return_ACPI_STATUS (AE_TYPE);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEvaluateObjectTyped)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEvaluateObject
- *
- * PARAMETERS:  Handle              - Object handle (optional)
- *              Pathname            - Object pathname (optional)
- *              ExternalParams      - List of parameters to pass to method,
- *                                    terminated by NULL.  May be NULL
- *                                    if no parameters are being passed.
- *              ReturnBuffer        - Where to put method's return value (if
- *                                    any).  If NULL, no value is returned.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Find and evaluate the given object, passing the given
- *              parameters if necessary.  One of "Handle" or "Pathname" must
- *              be valid (non-null)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvaluateObject (
-    ACPI_HANDLE             Handle,
-    ACPI_STRING             Pathname,
-    ACPI_OBJECT_LIST        *ExternalParams,
-    ACPI_BUFFER             *ReturnBuffer)
-{
-    ACPI_STATUS             Status;
-    ACPI_EVALUATE_INFO      *Info;
-    ACPI_SIZE               BufferSpaceNeeded;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEvaluateObject);
-
-
-    /* Allocate and initialize the evaluation information block */
-
-    Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
-    if (!Info)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Info->Pathname = Pathname;
-
-    /* Convert and validate the device handle */
-
-    Info->PrefixNode = AcpiNsValidateHandle (Handle);
-    if (!Info->PrefixNode)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto Cleanup;
-    }
-
-    /*
-     * If there are parameters to be passed to a control method, the external
-     * objects must all be converted to internal objects
-     */
-    if (ExternalParams && ExternalParams->Count)
-    {
-        /*
-         * Allocate a new parameter block for the internal objects
-         * Add 1 to count to allow for null terminated internal list
-         */
-        Info->Parameters = ACPI_ALLOCATE_ZEROED (
-            ((ACPI_SIZE) ExternalParams->Count + 1) * sizeof (void *));
-        if (!Info->Parameters)
-        {
-            Status = AE_NO_MEMORY;
-            goto Cleanup;
-        }
-
-        /* Convert each external object in the list to an internal object */
-
-        for (i = 0; i < ExternalParams->Count; i++)
-        {
-            Status = AcpiUtCopyEobjectToIobject (
-                        &ExternalParams->Pointer[i], &Info->Parameters[i]);
-            if (ACPI_FAILURE (Status))
-            {
-                goto Cleanup;
-            }
-        }
-        Info->Parameters[ExternalParams->Count] = NULL;
-    }
-
-    /*
-     * Three major cases:
-     * 1) Fully qualified pathname
-     * 2) No handle, not fully qualified pathname (error)
-     * 3) Valid handle
-     */
-    if ((Pathname) &&
-        (AcpiNsValidRootPrefix (Pathname[0])))
-    {
-        /* The path is fully qualified, just evaluate by name */
-
-        Info->PrefixNode = NULL;
-        Status = AcpiNsEvaluate (Info);
-    }
-    else if (!Handle)
-    {
-        /*
-         * A handle is optional iff a fully qualified pathname is specified.
-         * Since we've already handled fully qualified names above, this is
-         * an error
-         */
-        if (!Pathname)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                "Both Handle and Pathname are NULL"));
-        }
-        else
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                "Null Handle with relative pathname [%s]", Pathname));
-        }
-
-        Status = AE_BAD_PARAMETER;
-    }
-    else
-    {
-        /* We have a namespace a node and a possible relative path */
-
-        Status = AcpiNsEvaluate (Info);
-    }
-
-    /*
-     * If we are expecting a return value, and all went well above,
-     * copy the return value to an external object.
-     */
-    if (ReturnBuffer)
-    {
-        if (!Info->ReturnObject)
-        {
-            ReturnBuffer->Length = 0;
-        }
-        else
-        {
-            if (ACPI_GET_DESCRIPTOR_TYPE (Info->ReturnObject) ==
-                ACPI_DESC_TYPE_NAMED)
-            {
-                /*
-                 * If we received a NS Node as a return object, this means that
-                 * the object we are evaluating has nothing interesting to
-                 * return (such as a mutex, etc.)  We return an error because
-                 * these types are essentially unsupported by this interface.
-                 * We don't check up front because this makes it easier to add
-                 * support for various types at a later date if necessary.
-                 */
-                Status = AE_TYPE;
-                Info->ReturnObject = NULL;   /* No need to delete a NS Node */
-                ReturnBuffer->Length = 0;
-            }
-
-            if (ACPI_SUCCESS (Status))
-            {
-                /* Dereference Index and RefOf references */
-
-                AcpiNsResolveReferences (Info);
-
-                /* Get the size of the returned object */
-
-                Status = AcpiUtGetObjectSize (Info->ReturnObject,
-                            &BufferSpaceNeeded);
-                if (ACPI_SUCCESS (Status))
-                {
-                    /* Validate/Allocate/Clear caller buffer */
-
-                    Status = AcpiUtInitializeBuffer (ReturnBuffer,
-                                BufferSpaceNeeded);
-                    if (ACPI_FAILURE (Status))
-                    {
-                        /*
-                         * Caller's buffer is too small or a new one can't
-                         * be allocated
-                         */
-                        ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                            "Needed buffer size %X, %s\n",
-                            (UINT32) BufferSpaceNeeded,
-                            AcpiFormatException (Status)));
-                    }
-                    else
-                    {
-                        /* We have enough space for the object, build it */
-
-                        Status = AcpiUtCopyIobjectToEobject (Info->ReturnObject,
-                                    ReturnBuffer);
-                    }
-                }
-            }
-        }
-    }
-
-    if (Info->ReturnObject)
-    {
-        /*
-         * Delete the internal return object. NOTE: Interpreter must be
-         * locked to avoid race condition.
-         */
-        AcpiExEnterInterpreter ();
-
-        /* Remove one reference on the return object (should delete it) */
-
-        AcpiUtRemoveReference (Info->ReturnObject);
-        AcpiExExitInterpreter ();
-    }
-
-
-Cleanup:
-
-    /* Free the input parameter list (if we created one) */
-
-    if (Info->Parameters)
-    {
-        /* Free the allocated parameter block */
-
-        AcpiUtDeleteInternalObjectList (Info->Parameters);
-    }
-
-    ACPI_FREE (Info);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEvaluateObject)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsResolveReferences
- *
- * PARAMETERS:  Info                    - Evaluation info block
- *
- * RETURN:      Info->ReturnObject is replaced with the dereferenced object
- *
- * DESCRIPTION: Dereference certain reference objects. Called before an
- *              internal return object is converted to an external ACPI_OBJECT.
- *
- * Performs an automatic dereference of Index and RefOf reference objects.
- * These reference objects are not supported by the ACPI_OBJECT, so this is a
- * last resort effort to return something useful. Also, provides compatibility
- * with other ACPI implementations.
- *
- * NOTE: does not handle references within returned package objects or nested
- * references, but this support could be added later if found to be necessary.
- *
- ******************************************************************************/
-
-static void
-AcpiNsResolveReferences (
-    ACPI_EVALUATE_INFO      *Info)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc = NULL;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    /* We are interested in reference objects only */
-
-    if ((Info->ReturnObject)->Common.Type != ACPI_TYPE_LOCAL_REFERENCE)
-    {
-        return;
-    }
-
-    /*
-     * Two types of references are supported - those created by Index and
-     * RefOf operators. A name reference (AML_NAMEPATH_OP) can be converted
-     * to an ACPI_OBJECT, so it is not dereferenced here. A DdbHandle
-     * (AML_LOAD_OP) cannot be dereferenced, nor can it be converted to
-     * an ACPI_OBJECT.
-     */
-    switch (Info->ReturnObject->Reference.Class)
-    {
-    case ACPI_REFCLASS_INDEX:
-
-        ObjDesc = *(Info->ReturnObject->Reference.Where);
-        break;
-
-    case ACPI_REFCLASS_REFOF:
-
-        Node = Info->ReturnObject->Reference.Object;
-        if (Node)
-        {
-            ObjDesc = Node->Object;
-        }
-        break;
-
-    default:
-        return;
-    }
-
-    /* Replace the existing reference object */
-
-    if (ObjDesc)
-    {
-        AcpiUtAddReference (ObjDesc);
-        AcpiUtRemoveReference (Info->ReturnObject);
-        Info->ReturnObject = ObjDesc;
-    }
-
-    return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiWalkNamespace
- *
- * PARAMETERS:  Type                - ACPI_OBJECT_TYPE to search for
- *              StartObject         - Handle in namespace where search begins
- *              MaxDepth            - Depth to which search is to reach
- *              PreOrderVisit       - Called during tree pre-order visit
- *                                    when an object of "Type" is found
- *              PostOrderVisit      - Called during tree post-order visit
- *                                    when an object of "Type" is found
- *              Context             - Passed to user function(s) above
- *              ReturnValue         - Location where return value of
- *                                    UserFunction is put if terminated early
- *
- * RETURNS      Return value from the UserFunction if terminated early.
- *              Otherwise, returns NULL.
- *
- * DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
- *              starting (and ending) at the object specified by StartHandle.
- *              The callback function is called whenever an object that matches
- *              the type parameter is found. If the callback function returns
- *              a non-zero value, the search is terminated immediately and this
- *              value is returned to the caller.
- *
- *              The point of this procedure is to provide a generic namespace
- *              walk routine that can be called from multiple places to
- *              provide multiple services; the callback function(s) can be
- *              tailored to each task, whether it is a print function,
- *              a compare function, etc.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiWalkNamespace (
-    ACPI_OBJECT_TYPE        Type,
-    ACPI_HANDLE             StartObject,
-    UINT32                  MaxDepth,
-    ACPI_WALK_CALLBACK      PreOrderVisit,
-    ACPI_WALK_CALLBACK      PostOrderVisit,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiWalkNamespace);
-
-
-    /* Parameter validation */
-
-    if ((Type > ACPI_TYPE_LOCAL_MAX) ||
-        (!MaxDepth)                  ||
-        (!PreOrderVisit && !PostOrderVisit))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Need to acquire the namespace reader lock to prevent interference
-     * with any concurrent table unloads (which causes the deletion of
-     * namespace objects). We cannot allow the deletion of a namespace node
-     * while the user function is using it. The exception to this are the
-     * nodes created and deleted during control method execution -- these
-     * nodes are marked as temporary nodes and are ignored by the namespace
-     * walk. Thus, control methods can be executed while holding the
-     * namespace deletion lock (and the user function can execute control
-     * methods.)
-     */
-    Status = AcpiUtAcquireReadLock (&AcpiGbl_NamespaceRwLock);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /*
-     * Lock the namespace around the walk. The namespace will be
-     * unlocked/locked around each call to the user function - since the user
-     * function must be allowed to make ACPICA calls itself (for example, it
-     * will typically execute control methods during device enumeration.)
-     */
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        goto UnlockAndExit;
-    }
-
-    Status = AcpiNsWalkNamespace (Type, StartObject, MaxDepth,
-                ACPI_NS_WALK_UNLOCK, PreOrderVisit,
-                PostOrderVisit, Context, ReturnValue);
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
-UnlockAndExit:
-    (void) AcpiUtReleaseReadLock (&AcpiGbl_NamespaceRwLock);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiWalkNamespace)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiNsGetDeviceCallback
- *
- * PARAMETERS:  Callback from AcpiGetDevice
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Takes callbacks from WalkNamespace and filters out all non-
- *              present devices, or if they specified a HID, it filters based
- *              on that.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsGetDeviceCallback (
-    ACPI_HANDLE             ObjHandle,
-    UINT32                  NestingLevel,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_GET_DEVICES_INFO   *Info = Context;
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-    UINT32                  Flags;
-    ACPI_DEVICE_ID          *Hid;
-    ACPI_DEVICE_ID_LIST     *Cid;
-    UINT32                  i;
-    BOOLEAN                 Found;
-    int                     NoMatch;
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Node = AcpiNsValidateHandle (ObjHandle);
-    Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    if (!Node)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Run _STA to determine if device is present */
-
-    Status = AcpiUtExecute_STA (Node, &Flags);
-    if (ACPI_FAILURE (Status))
-    {
-        return (AE_CTRL_DEPTH);
-    }
-
-    if (!(Flags & ACPI_STA_DEVICE_PRESENT) &&
-        !(Flags & ACPI_STA_DEVICE_FUNCTIONING))
-    {
-        /*
-         * Don't examine the children of the device only when the
-         * device is neither present nor functional. See ACPI spec,
-         * description of _STA for more information.
-         */
-        return (AE_CTRL_DEPTH);
-    }
-
-    /* Filter based on device HID & CID */
-
-    if (Info->Hid != NULL)
-    {
-        Status = AcpiUtExecute_HID (Node, &Hid);
-        if (Status == AE_NOT_FOUND)
-        {
-            return (AE_OK);
-        }
-        else if (ACPI_FAILURE (Status))
-        {
-            return (AE_CTRL_DEPTH);
-        }
-
-        NoMatch = ACPI_STRCMP (Hid->String, Info->Hid);
-        ACPI_FREE (Hid);
-
-        if (NoMatch)
-        {
-            /*
-             * HID does not match, attempt match within the
-             * list of Compatible IDs (CIDs)
-             */
-            Status = AcpiUtExecute_CID (Node, &Cid);
-            if (Status == AE_NOT_FOUND)
-            {
-                return (AE_OK);
-            }
-            else if (ACPI_FAILURE (Status))
-            {
-                return (AE_CTRL_DEPTH);
-            }
-
-            /* Walk the CID list */
-
-            Found = FALSE;
-            for (i = 0; i < Cid->Count; i++)
-            {
-                if (ACPI_STRCMP (Cid->Ids[i].String, Info->Hid) == 0)
-                {
-                    /* Found a matching CID */
-
-                    Found = TRUE;
-                    break;
-                }
-            }
-
-            ACPI_FREE (Cid);
-            if (!Found)
-            {
-                return (AE_OK);
-            }
-        }
-    }
-
-    /* We have a valid device, invoke the user function */
-
-    Status = Info->UserFunction (ObjHandle, NestingLevel, Info->Context,
-                ReturnValue);
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetDevices
- *
- * PARAMETERS:  HID                 - HID to search for. Can be NULL.
- *              UserFunction        - Called when a matching object is found
- *              Context             - Passed to user function
- *              ReturnValue         - Location where return value of
- *                                    UserFunction is put if terminated early
- *
- * RETURNS      Return value from the UserFunction if terminated early.
- *              Otherwise, returns NULL.
- *
- * DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
- *              starting (and ending) at the object specified by StartHandle.
- *              The UserFunction is called whenever an object of type
- *              Device is found.  If the user function returns
- *              a non-zero value, the search is terminated immediately and this
- *              value is returned to the caller.
- *
- *              This is a wrapper for WalkNamespace, but the callback performs
- *              additional filtering. Please see AcpiNsGetDeviceCallback.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetDevices (
-    char                    *HID,
-    ACPI_WALK_CALLBACK      UserFunction,
-    void                    *Context,
-    void                    **ReturnValue)
-{
-    ACPI_STATUS             Status;
-    ACPI_GET_DEVICES_INFO   Info;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetDevices);
-
-
-    /* Parameter validation */
-
-    if (!UserFunction)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * We're going to call their callback from OUR callback, so we need
-     * to know what it is, and their context parameter.
-     */
-    Info.Hid          = HID;
-    Info.Context      = Context;
-    Info.UserFunction = UserFunction;
-
-    /*
-     * Lock the namespace around the walk.
-     * The namespace will be unlocked/locked around each call
-     * to the user function - since this function
-     * must be allowed to make Acpi calls itself.
-     */
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
-                ACPI_UINT32_MAX, ACPI_NS_WALK_UNLOCK,
-                AcpiNsGetDeviceCallback, NULL, &Info, ReturnValue);
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetDevices)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiAttachData
- *
- * PARAMETERS:  ObjHandle           - Namespace node
- *              Handler             - Handler for this attachment
- *              Data                - Pointer to data to be attached
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Attach arbitrary data and handler to a namespace node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiAttachData (
-    ACPI_HANDLE             ObjHandle,
-    ACPI_OBJECT_HANDLER     Handler,
-    void                    *Data)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    /* Parameter validation */
-
-    if (!ObjHandle  ||
-        !Handler    ||
-        !Data)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Convert and validate the handle */
-
-    Node = AcpiNsValidateHandle (ObjHandle);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    Status = AcpiNsAttachData (Node, Handler, Data);
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiAttachData)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDetachData
- *
- * PARAMETERS:  ObjHandle           - Namespace node handle
- *              Handler             - Handler used in call to AcpiAttachData
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Remove data that was previously attached to a node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDetachData (
-    ACPI_HANDLE             ObjHandle,
-    ACPI_OBJECT_HANDLER     Handler)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    /* Parameter validation */
-
-    if (!ObjHandle  ||
-        !Handler)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Convert and validate the handle */
-
-    Node = AcpiNsValidateHandle (ObjHandle);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    Status = AcpiNsDetachData (Node, Handler);
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDetachData)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetData
- *
- * PARAMETERS:  ObjHandle           - Namespace node
- *              Handler             - Handler used in call to AttachData
- *              Data                - Where the data is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Retrieve data that was previously attached to a namespace node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetData (
-    ACPI_HANDLE             ObjHandle,
-    ACPI_OBJECT_HANDLER     Handler,
-    void                    **Data)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    /* Parameter validation */
-
-    if (!ObjHandle  ||
-        !Handler    ||
-        !Data)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Convert and validate the handle */
-
-    Node = AcpiNsValidateHandle (ObjHandle);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    Status = AcpiNsGetAttachedData (Node, Handler, Data);
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetData)
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsxfname.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsxfname.c
deleted file mode 100644 (file)
index cb7aaa6..0000000
+++ /dev/null
@@ -1,776 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsxfname - Public interfaces to the ACPI subsystem
- *                         ACPI Namespace oriented interfaces
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __NSXFNAME_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acparser.h"
-#include "amlcode.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsxfname")
-
-/* Local prototypes */
-
-static char *
-AcpiNsCopyDeviceId (
-    ACPI_DEVICE_ID          *Dest,
-    ACPI_DEVICE_ID          *Source,
-    char                    *StringArea);
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiGetHandle
- *
- * PARAMETERS:  Parent          - Object to search under (search scope).
- *              Pathname        - Pointer to an asciiz string containing the
- *                                name
- *              RetHandle       - Where the return handle is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This routine will search for a caller specified name in the
- *              name space.  The caller can restrict the search region by
- *              specifying a non NULL parent.  The parent value is itself a
- *              namespace handle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetHandle (
-    ACPI_HANDLE             Parent,
-    ACPI_STRING             Pathname,
-    ACPI_HANDLE             *RetHandle)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node = NULL;
-    ACPI_NAMESPACE_NODE     *PrefixNode = NULL;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Parameter Validation */
-
-    if (!RetHandle || !Pathname)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Convert a parent handle to a prefix node */
-
-    if (Parent)
-    {
-        PrefixNode = AcpiNsValidateHandle (Parent);
-        if (!PrefixNode)
-        {
-            return (AE_BAD_PARAMETER);
-        }
-    }
-
-    /*
-     * Valid cases are:
-     * 1) Fully qualified pathname
-     * 2) Parent + Relative pathname
-     *
-     * Error for <null Parent + relative path>
-     */
-    if (AcpiNsValidRootPrefix (Pathname[0]))
-    {
-        /* Pathname is fully qualified (starts with '\') */
-
-        /* Special case for root-only, since we can't search for it */
-
-        if (!ACPI_STRCMP (Pathname, ACPI_NS_ROOT_PATH))
-        {
-            *RetHandle = ACPI_CAST_PTR (ACPI_HANDLE, AcpiGbl_RootNode);
-            return (AE_OK);
-        }
-    }
-    else if (!PrefixNode)
-    {
-        /* Relative path with null prefix is disallowed */
-
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Find the Node and convert to a handle */
-
-    Status = AcpiNsGetNode (PrefixNode, Pathname, ACPI_NS_NO_UPSEARCH, &Node);
-    if (ACPI_SUCCESS (Status))
-    {
-        *RetHandle = ACPI_CAST_PTR (ACPI_HANDLE, Node);
-    }
-
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetHandle)
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiGetName
- *
- * PARAMETERS:  Handle          - Handle to be converted to a pathname
- *              NameType        - Full pathname or single segment
- *              Buffer          - Buffer for returned path
- *
- * RETURN:      Pointer to a string containing the fully qualified Name.
- *
- * DESCRIPTION: This routine returns the fully qualified name associated with
- *              the Handle parameter.  This and the AcpiPathnameToHandle are
- *              complementary functions.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetName (
-    ACPI_HANDLE             Handle,
-    UINT32                  NameType,
-    ACPI_BUFFER             *Buffer)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    /* Parameter validation */
-
-    if (NameType > ACPI_NAME_TYPE_MAX)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtValidateBuffer (Buffer);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    if (NameType == ACPI_FULL_PATHNAME)
-    {
-        /* Get the full pathname (From the namespace root) */
-
-        Status = AcpiNsHandleToPathname (Handle, Buffer);
-        return (Status);
-    }
-
-    /*
-     * Wants the single segment ACPI name.
-     * Validate handle and convert to a namespace Node
-     */
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Node = AcpiNsValidateHandle (Handle);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Validate/Allocate/Clear caller buffer */
-
-    Status = AcpiUtInitializeBuffer (Buffer, ACPI_PATH_SEGMENT_LENGTH);
-    if (ACPI_FAILURE (Status))
-    {
-        goto UnlockAndExit;
-    }
-
-    /* Just copy the ACPI name from the Node and zero terminate it */
-
-    ACPI_STRNCPY (Buffer->Pointer, AcpiUtGetNodeName (Node),
-                ACPI_NAME_SIZE);
-    ((char *) Buffer->Pointer) [ACPI_NAME_SIZE] = 0;
-    Status = AE_OK;
-
-
-UnlockAndExit:
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetName)
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiNsCopyDeviceId
- *
- * PARAMETERS:  Dest                - Pointer to the destination DEVICE_ID
- *              Source              - Pointer to the source DEVICE_ID
- *              StringArea          - Pointer to where to copy the dest string
- *
- * RETURN:      Pointer to the next string area
- *
- * DESCRIPTION: Copy a single DEVICE_ID, including the string data.
- *
- ******************************************************************************/
-
-static char *
-AcpiNsCopyDeviceId (
-    ACPI_DEVICE_ID          *Dest,
-    ACPI_DEVICE_ID          *Source,
-    char                    *StringArea)
-{
-    /* Create the destination DEVICE_ID */
-
-    Dest->String = StringArea;
-    Dest->Length = Source->Length;
-
-    /* Copy actual string and return a pointer to the next string area */
-
-    ACPI_MEMCPY (StringArea, Source->String, Source->Length);
-    return (StringArea + Source->Length);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiGetObjectInfo
- *
- * PARAMETERS:  Handle              - Object Handle
- *              ReturnBuffer        - Where the info is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Returns information about an object as gleaned from the
- *              namespace node and possibly by running several standard
- *              control methods (Such as in the case of a device.)
- *
- * For Device and Processor objects, run the Device _HID, _UID, _CID, _STA,
- * _ADR, _SxW, and _SxD methods.
- *
- * Note: Allocates the return buffer, must be freed by the caller.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetObjectInfo (
-    ACPI_HANDLE             Handle,
-    ACPI_DEVICE_INFO        **ReturnBuffer)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_DEVICE_INFO        *Info;
-    ACPI_DEVICE_ID_LIST     *CidList = NULL;
-    ACPI_DEVICE_ID          *Hid = NULL;
-    ACPI_DEVICE_ID          *Uid = NULL;
-    char                    *NextIdString;
-    ACPI_OBJECT_TYPE        Type;
-    ACPI_NAME               Name;
-    UINT8                   ParamCount= 0;
-    UINT8                   Valid = 0;
-    UINT32                  InfoSize;
-    UINT32                  i;
-    ACPI_STATUS             Status;
-
-
-    /* Parameter validation */
-
-    if (!Handle || !ReturnBuffer)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    Node = AcpiNsValidateHandle (Handle);
-    if (!Node)
-    {
-        (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Get the namespace node data while the namespace is locked */
-
-    InfoSize = sizeof (ACPI_DEVICE_INFO);
-    Type = Node->Type;
-    Name = Node->Name.Integer;
-
-    if (Node->Type == ACPI_TYPE_METHOD)
-    {
-        ParamCount = Node->Object->Method.ParamCount;
-    }
-
-    Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    if ((Type == ACPI_TYPE_DEVICE) ||
-        (Type == ACPI_TYPE_PROCESSOR))
-    {
-        /*
-         * Get extra info for ACPI Device/Processor objects only:
-         * Run the Device _HID, _UID, and _CID methods.
-         *
-         * Note: none of these methods are required, so they may or may
-         * not be present for this device. The Info->Valid bitfield is used
-         * to indicate which methods were found and run successfully.
-         */
-
-        /* Execute the Device._HID method */
-
-        Status = AcpiUtExecute_HID (Node, &Hid);
-        if (ACPI_SUCCESS (Status))
-        {
-            InfoSize += Hid->Length;
-            Valid |= ACPI_VALID_HID;
-        }
-
-        /* Execute the Device._UID method */
-
-        Status = AcpiUtExecute_UID (Node, &Uid);
-        if (ACPI_SUCCESS (Status))
-        {
-            InfoSize += Uid->Length;
-            Valid |= ACPI_VALID_UID;
-        }
-
-        /* Execute the Device._CID method */
-
-        Status = AcpiUtExecute_CID (Node, &CidList);
-        if (ACPI_SUCCESS (Status))
-        {
-            /* Add size of CID strings and CID pointer array */
-
-            InfoSize += (CidList->ListSize - sizeof (ACPI_DEVICE_ID_LIST));
-            Valid |= ACPI_VALID_CID;
-        }
-    }
-
-    /*
-     * Now that we have the variable-length data, we can allocate the
-     * return buffer
-     */
-    Info = ACPI_ALLOCATE_ZEROED (InfoSize);
-    if (!Info)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /* Get the fixed-length data */
-
-    if ((Type == ACPI_TYPE_DEVICE) ||
-        (Type == ACPI_TYPE_PROCESSOR))
-    {
-        /*
-         * Get extra info for ACPI Device/Processor objects only:
-         * Run the _STA, _ADR and, SxW, and _SxD methods.
-         *
-         * Note: none of these methods are required, so they may or may
-         * not be present for this device. The Info->Valid bitfield is used
-         * to indicate which methods were found and run successfully.
-         */
-
-        /* Execute the Device._STA method */
-
-        Status = AcpiUtExecute_STA (Node, &Info->CurrentStatus);
-        if (ACPI_SUCCESS (Status))
-        {
-            Valid |= ACPI_VALID_STA;
-        }
-
-        /* Execute the Device._ADR method */
-
-        Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, Node,
-                    &Info->Address);
-        if (ACPI_SUCCESS (Status))
-        {
-            Valid |= ACPI_VALID_ADR;
-        }
-
-        /* Execute the Device._SxW methods */
-
-        Status = AcpiUtExecutePowerMethods (Node,
-                    AcpiGbl_LowestDstateNames, ACPI_NUM_SxW_METHODS,
-                    Info->LowestDstates);
-        if (ACPI_SUCCESS (Status))
-        {
-            Valid |= ACPI_VALID_SXWS;
-        }
-
-        /* Execute the Device._SxD methods */
-
-        Status = AcpiUtExecutePowerMethods (Node,
-                    AcpiGbl_HighestDstateNames, ACPI_NUM_SxD_METHODS,
-                    Info->HighestDstates);
-        if (ACPI_SUCCESS (Status))
-        {
-            Valid |= ACPI_VALID_SXDS;
-        }
-    }
-
-    /*
-     * Create a pointer to the string area of the return buffer.
-     * Point to the end of the base ACPI_DEVICE_INFO structure.
-     */
-    NextIdString = ACPI_CAST_PTR (char, Info->CompatibleIdList.Ids);
-    if (CidList)
-    {
-        /* Point past the CID DEVICE_ID array */
-
-        NextIdString += ((ACPI_SIZE) CidList->Count * sizeof (ACPI_DEVICE_ID));
-    }
-
-    /*
-     * Copy the HID, UID, and CIDs to the return buffer. The variable-length
-     * strings are copied to the reserved area at the end of the buffer.
-     *
-     * For HID and CID, check if the ID is a PCI Root Bridge.
-     */
-    if (Hid)
-    {
-        NextIdString = AcpiNsCopyDeviceId (&Info->HardwareId,
-            Hid, NextIdString);
-
-        if (AcpiUtIsPciRootBridge (Hid->String))
-        {
-            Info->Flags |= ACPI_PCI_ROOT_BRIDGE;
-        }
-    }
-
-    if (Uid)
-    {
-        NextIdString = AcpiNsCopyDeviceId (&Info->UniqueId,
-            Uid, NextIdString);
-    }
-
-    if (CidList)
-    {
-        Info->CompatibleIdList.Count = CidList->Count;
-        Info->CompatibleIdList.ListSize = CidList->ListSize;
-
-        /* Copy each CID */
-
-        for (i = 0; i < CidList->Count; i++)
-        {
-            NextIdString = AcpiNsCopyDeviceId (&Info->CompatibleIdList.Ids[i],
-                &CidList->Ids[i], NextIdString);
-
-            if (AcpiUtIsPciRootBridge (CidList->Ids[i].String))
-            {
-                Info->Flags |= ACPI_PCI_ROOT_BRIDGE;
-            }
-        }
-    }
-
-    /* Copy the fixed-length data */
-
-    Info->InfoSize = InfoSize;
-    Info->Type = Type;
-    Info->Name = Name;
-    Info->ParamCount = ParamCount;
-    Info->Valid = Valid;
-
-    *ReturnBuffer = Info;
-    Status = AE_OK;
-
-
-Cleanup:
-    if (Hid)
-    {
-        ACPI_FREE (Hid);
-    }
-    if (Uid)
-    {
-        ACPI_FREE (Uid);
-    }
-    if (CidList)
-    {
-        ACPI_FREE (CidList);
-    }
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetObjectInfo)
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiInstallMethod
- *
- * PARAMETERS:  Buffer         - An ACPI table containing one control method
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install a control method into the namespace. If the method
- *              name already exists in the namespace, it is overwritten. The
- *              input buffer must contain a valid DSDT or SSDT containing a
- *              single control method.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallMethod (
-    UINT8                   *Buffer)
-{
-    ACPI_TABLE_HEADER       *Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, Buffer);
-    UINT8                   *AmlBuffer;
-    UINT8                   *AmlStart;
-    char                    *Path;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_OPERAND_OBJECT     *MethodObj;
-    ACPI_PARSE_STATE        ParserState;
-    UINT32                  AmlLength;
-    UINT16                  Opcode;
-    UINT8                   MethodFlags;
-    ACPI_STATUS             Status;
-
-
-    /* Parameter validation */
-
-    if (!Buffer)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Table must be a DSDT or SSDT */
-
-    if (!ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT) &&
-        !ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_SSDT))
-    {
-        return (AE_BAD_HEADER);
-    }
-
-    /* First AML opcode in the table must be a control method */
-
-    ParserState.Aml = Buffer + sizeof (ACPI_TABLE_HEADER);
-    Opcode = AcpiPsPeekOpcode (&ParserState);
-    if (Opcode != AML_METHOD_OP)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Extract method information from the raw AML */
-
-    ParserState.Aml += AcpiPsGetOpcodeSize (Opcode);
-    ParserState.PkgEnd = AcpiPsGetNextPackageEnd (&ParserState);
-    Path = AcpiPsGetNextNamestring (&ParserState);
-    MethodFlags = *ParserState.Aml++;
-    AmlStart = ParserState.Aml;
-    AmlLength = ACPI_PTR_DIFF (ParserState.PkgEnd, AmlStart);
-
-    /*
-     * Allocate resources up-front. We don't want to have to delete a new
-     * node from the namespace if we cannot allocate memory.
-     */
-    AmlBuffer = ACPI_ALLOCATE (AmlLength);
-    if (!AmlBuffer)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    MethodObj = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
-    if (!MethodObj)
-    {
-        ACPI_FREE (AmlBuffer);
-        return (AE_NO_MEMORY);
-    }
-
-    /* Lock namespace for AcpiNsLookup, we may be creating a new node */
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        goto ErrorExit;
-    }
-
-    /* The lookup either returns an existing node or creates a new one */
-
-    Status = AcpiNsLookup (NULL, Path, ACPI_TYPE_METHOD, ACPI_IMODE_LOAD_PASS1,
-                ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_ERROR_IF_FOUND, NULL, &Node);
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
-    if (ACPI_FAILURE (Status)) /* NsLookup */
-    {
-        if (Status != AE_ALREADY_EXISTS)
-        {
-            goto ErrorExit;
-        }
-
-        /* Node existed previously, make sure it is a method node */
-
-        if (Node->Type != ACPI_TYPE_METHOD)
-        {
-            Status = AE_TYPE;
-            goto ErrorExit;
-        }
-    }
-
-    /* Copy the method AML to the local buffer */
-
-    ACPI_MEMCPY (AmlBuffer, AmlStart, AmlLength);
-
-    /* Initialize the method object with the new method's information */
-
-    MethodObj->Method.AmlStart = AmlBuffer;
-    MethodObj->Method.AmlLength = AmlLength;
-
-    MethodObj->Method.ParamCount = (UINT8)
-        (MethodFlags & AML_METHOD_ARG_COUNT);
-
-    MethodObj->Method.MethodFlags = (UINT8)
-        (MethodFlags & ~AML_METHOD_ARG_COUNT);
-
-    if (MethodFlags & AML_METHOD_SERIALIZED)
-    {
-        MethodObj->Method.SyncLevel = (UINT8)
-            ((MethodFlags & AML_METHOD_SYNC_LEVEL) >> 4);
-    }
-
-    /*
-     * Now that it is complete, we can attach the new method object to
-     * the method Node (detaches/deletes any existing object)
-     */
-    Status = AcpiNsAttachObject (Node, MethodObj,
-                ACPI_TYPE_METHOD);
-
-    /*
-     * Flag indicates AML buffer is dynamic, must be deleted later.
-     * Must be set only after attach above.
-     */
-    Node->Flags |= ANOBJ_ALLOCATED_BUFFER;
-
-    /* Remove local reference to the method object */
-
-    AcpiUtRemoveReference (MethodObj);
-    return (Status);
-
-
-ErrorExit:
-
-    ACPI_FREE (AmlBuffer);
-    ACPI_FREE (MethodObj);
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallMethod)
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsxfobj.c b/l4/pkg/acpica/lib-acpi/src/acpica/namespace/nsxfobj.c
deleted file mode 100644 (file)
index 9c42a33..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsxfobj - Public interfaces to the ACPI subsystem
- *                         ACPI Object oriented interfaces
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __NSXFOBJ_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_NAMESPACE
-        ACPI_MODULE_NAME    ("nsxfobj")
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetType
- *
- * PARAMETERS:  Handle          - Handle of object whose type is desired
- *              RetType         - Where the type will be placed
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This routine returns the type associatd with a particular handle
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetType (
-    ACPI_HANDLE             Handle,
-    ACPI_OBJECT_TYPE        *RetType)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-
-
-    /* Parameter Validation */
-
-    if (!RetType)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Special case for the predefined Root Node
-     * (return type ANY)
-     */
-    if (Handle == ACPI_ROOT_OBJECT)
-    {
-        *RetType = ACPI_TYPE_ANY;
-        return (AE_OK);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Convert and validate the handle */
-
-    Node = AcpiNsValidateHandle (Handle);
-    if (!Node)
-    {
-        (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-        return (AE_BAD_PARAMETER);
-    }
-
-    *RetType = Node->Type;
-
-
-    Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetType)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetParent
- *
- * PARAMETERS:  Handle          - Handle of object whose parent is desired
- *              RetHandle       - Where the parent handle will be placed
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Returns a handle to the parent of the object represented by
- *              Handle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetParent (
-    ACPI_HANDLE             Handle,
-    ACPI_HANDLE             *RetHandle)
-{
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-    ACPI_STATUS             Status;
-
-
-    if (!RetHandle)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Special case for the predefined Root Node (no parent) */
-
-    if (Handle == ACPI_ROOT_OBJECT)
-    {
-        return (AE_NULL_ENTRY);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Convert and validate the handle */
-
-    Node = AcpiNsValidateHandle (Handle);
-    if (!Node)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto UnlockAndExit;
-    }
-
-    /* Get the parent entry */
-
-    ParentNode = AcpiNsGetParentNode (Node);
-    *RetHandle = ACPI_CAST_PTR (ACPI_HANDLE, ParentNode);
-
-    /* Return exception if parent is null */
-
-    if (!ParentNode)
-    {
-        Status = AE_NULL_ENTRY;
-    }
-
-
-UnlockAndExit:
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetParent)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetNextObject
- *
- * PARAMETERS:  Type            - Type of object to be searched for
- *              Parent          - Parent object whose children we are getting
- *              LastChild       - Previous child that was found.
- *                                The NEXT child will be returned
- *              RetHandle       - Where handle to the next object is placed
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Return the next peer object within the namespace.  If Handle is
- *              valid, Scope is ignored.  Otherwise, the first object within
- *              Scope is returned.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetNextObject (
-    ACPI_OBJECT_TYPE        Type,
-    ACPI_HANDLE             Parent,
-    ACPI_HANDLE             Child,
-    ACPI_HANDLE             *RetHandle)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_NAMESPACE_NODE     *ParentNode = NULL;
-    ACPI_NAMESPACE_NODE     *ChildNode = NULL;
-
-
-    /* Parameter validation */
-
-    if (Type > ACPI_TYPE_EXTERNAL_MAX)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* If null handle, use the parent */
-
-    if (!Child)
-    {
-        /* Start search at the beginning of the specified scope */
-
-        ParentNode = AcpiNsValidateHandle (Parent);
-        if (!ParentNode)
-        {
-            Status = AE_BAD_PARAMETER;
-            goto UnlockAndExit;
-        }
-    }
-    else
-    {
-        /* Non-null handle, ignore the parent */
-        /* Convert and validate the handle */
-
-        ChildNode = AcpiNsValidateHandle (Child);
-        if (!ChildNode)
-        {
-            Status = AE_BAD_PARAMETER;
-            goto UnlockAndExit;
-        }
-    }
-
-    /* Internal function does the real work */
-
-    Node = AcpiNsGetNextNodeTyped (Type, ParentNode, ChildNode);
-    if (!Node)
-    {
-        Status = AE_NOT_FOUND;
-        goto UnlockAndExit;
-    }
-
-    if (RetHandle)
-    {
-        *RetHandle = ACPI_CAST_PTR (ACPI_HANDLE, Node);
-    }
-
-
-UnlockAndExit:
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetNextObject)
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/osunixxf.c b/l4/pkg/acpica/lib-acpi/src/acpica/osunixxf.c
deleted file mode 100644 (file)
index b430e83..0000000
+++ /dev/null
@@ -1,1229 +0,0 @@
-/******************************************************************************
- *
- * Module Name: osunixxf - UNIX OSL interfaces
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-/*
- * These interfaces are required in order to compile the ASL compiler under
- * Linux or other Unix-like system.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <semaphore.h>
-#include <pthread.h>
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlcode.h"
-#include "acparser.h"
-#include "acdebug.h"
-
-#define _COMPONENT          ACPI_OS_SERVICES
-        ACPI_MODULE_NAME    ("osunixxf")
-
-
-extern FILE                    *AcpiGbl_DebugFile;
-FILE                           *AcpiGbl_OutputFile;
-
-
-/* Upcalls to AcpiExec */
-
-ACPI_PHYSICAL_ADDRESS
-AeLocalGetRootPointer (
-    void);
-
-void
-AeTableOverride (
-    ACPI_TABLE_HEADER       *ExistingTable,
-    ACPI_TABLE_HEADER       **NewTable);
-
-typedef void* (*PTHREAD_CALLBACK) (void *);
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsInitialize, AcpiOsTerminate
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Init and terminate.  Nothing to do.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsInitialize (void)
-{
-
-    AcpiGbl_OutputFile = stdout;
-    return (AE_OK);
-}
-
-
-ACPI_STATUS
-AcpiOsTerminate (void)
-{
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsGetRootPointer
- *
- * PARAMETERS:  None
- *
- * RETURN:      RSDP physical address
- *
- * DESCRIPTION: Gets the root pointer (RSDP)
- *
- *****************************************************************************/
-
-ACPI_PHYSICAL_ADDRESS
-AcpiOsGetRootPointer (
-    void)
-{
-
-    return (AeLocalGetRootPointer ());
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsPredefinedOverride
- *
- * PARAMETERS:  InitVal     - Initial value of the predefined object
- *              NewVal      - The new value for the object
- *
- * RETURN:      Status, pointer to value.  Null pointer returned if not
- *              overriding.
- *
- * DESCRIPTION: Allow the OS to override predefined names
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsPredefinedOverride (
-    const ACPI_PREDEFINED_NAMES *InitVal,
-    ACPI_STRING                 *NewVal)
-{
-
-    if (!InitVal || !NewVal)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    *NewVal = NULL;
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsTableOverride
- *
- * PARAMETERS:  ExistingTable   - Header of current table (probably firmware)
- *              NewTable        - Where an entire new table is returned.
- *
- * RETURN:      Status, pointer to new table.  Null pointer returned if no
- *              table is available to override
- *
- * DESCRIPTION: Return a different version of a table if one is available
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsTableOverride (
-    ACPI_TABLE_HEADER       *ExistingTable,
-    ACPI_TABLE_HEADER       **NewTable)
-{
-
-    if (!ExistingTable || !NewTable)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    *NewTable = NULL;
-
-#ifdef ACPI_EXEC_APP
-
-    AeTableOverride (ExistingTable, NewTable);
-    return (AE_OK);
-#else
-
-    return (AE_NO_ACPI_TABLES);
-#endif
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsRedirectOutput
- *
- * PARAMETERS:  Destination         - An open file handle/pointer
- *
- * RETURN:      None
- *
- * DESCRIPTION: Causes redirect of AcpiOsPrintf and AcpiOsVprintf
- *
- *****************************************************************************/
-
-void
-AcpiOsRedirectOutput (
-    void                    *Destination)
-{
-
-    AcpiGbl_OutputFile = Destination;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsPrintf
- *
- * PARAMETERS:  fmt, ...            Standard printf format
- *
- * RETURN:      None
- *
- * DESCRIPTION: Formatted output
- *
- *****************************************************************************/
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiOsPrintf (
-    const char              *Fmt,
-    ...)
-{
-    va_list                 Args;
-
-
-    va_start (Args, Fmt);
-    AcpiOsVprintf (Fmt, Args);
-    va_end (Args);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsVprintf
- *
- * PARAMETERS:  fmt                 Standard printf format
- *              args                Argument list
- *
- * RETURN:      None
- *
- * DESCRIPTION: Formatted output with argument list pointer
- *
- *****************************************************************************/
-
-void
-AcpiOsVprintf (
-    const char              *Fmt,
-    va_list                 Args)
-{
-    INT32                   Count = 0;
-    UINT8                   Flags;
-
-
-    Flags = AcpiGbl_DbOutputFlags;
-    if (Flags & ACPI_DB_REDIRECTABLE_OUTPUT)
-    {
-        /* Output is directable to either a file (if open) or the console */
-
-        if (AcpiGbl_DebugFile)
-        {
-            /* Output file is open, send the output there */
-
-            Count = vfprintf (AcpiGbl_DebugFile, Fmt, Args);
-        }
-        else
-        {
-            /* No redirection, send output to console (once only!) */
-
-            Flags |= ACPI_DB_CONSOLE_OUTPUT;
-        }
-    }
-
-    if (Flags & ACPI_DB_CONSOLE_OUTPUT)
-    {
-        Count = vfprintf (AcpiGbl_OutputFile, Fmt, Args);
-    }
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsGetLine
- *
- * PARAMETERS:  fmt                 Standard printf format
- *              args                Argument list
- *
- * RETURN:      Actual bytes read
- *
- * DESCRIPTION: Formatted input with argument list pointer
- *
- *****************************************************************************/
-
-UINT32
-AcpiOsGetLine (
-    char                    *Buffer)
-{
-    UINT8                   Temp;
-    UINT32                  i;
-
-
-    for (i = 0; ; i++)
-    {
-        scanf ("%1c", &Temp);
-        if (!Temp || Temp == '\n')
-        {
-            break;
-        }
-
-        Buffer [i] = Temp;
-    }
-
-    /* Null terminate the buffer */
-
-    Buffer [i] = 0;
-
-    /* Return the number of bytes in the string */
-
-    return (i);
-}
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsMapMemory
- *
- * PARAMETERS:  where               Physical address of memory to be mapped
- *              length              How much memory to map
- *
- * RETURN:      Pointer to mapped memory.  Null on error.
- *
- * DESCRIPTION: Map physical memory into caller's address space
- *
- *****************************************************************************/
-
-void *
-AcpiOsMapMemory (
-    ACPI_PHYSICAL_ADDRESS   where,
-    ACPI_SIZE               length)
-{
-
-    return (ACPI_TO_POINTER ((ACPI_SIZE) where));
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsUnmapMemory
- *
- * PARAMETERS:  where               Logical address of memory to be unmapped
- *              length              How much memory to unmap
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Delete a previously created mapping.  Where and Length must
- *              correspond to a previous mapping exactly.
- *
- *****************************************************************************/
-
-void
-AcpiOsUnmapMemory (
-    void                    *where,
-    ACPI_SIZE               length)
-{
-
-    return;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsAllocate
- *
- * PARAMETERS:  Size                Amount to allocate, in bytes
- *
- * RETURN:      Pointer to the new allocation.  Null on error.
- *
- * DESCRIPTION: Allocate memory.  Algorithm is dependent on the OS.
- *
- *****************************************************************************/
-
-void *
-AcpiOsAllocate (
-    ACPI_SIZE               size)
-{
-    void                    *Mem;
-
-
-    Mem = (void *) malloc ((size_t) size);
-    return (Mem);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsFree
- *
- * PARAMETERS:  mem                 Pointer to previously allocated memory
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Free memory allocated via AcpiOsAllocate
- *
- *****************************************************************************/
-
-void
-AcpiOsFree (
-    void                    *mem)
-{
-
-    free (mem);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsCreateSemaphore
- *
- * PARAMETERS:  InitialUnits        - Units to be assigned to the new semaphore
- *              OutHandle           - Where a handle will be returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create an OS semaphore
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsCreateSemaphore (
-    UINT32              MaxUnits,
-    UINT32              InitialUnits,
-    ACPI_HANDLE         *OutHandle)
-{
-    sem_t               *Sem;
-
-
-    if (!OutHandle)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    Sem = AcpiOsAllocate (sizeof (sem_t));
-
-    if (!Sem)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    if (sem_init (Sem, 0, InitialUnits) == -1)
-    {
-        AcpiOsFree (Sem);
-        return (AE_BAD_PARAMETER);
-    }
-
-    *OutHandle = (ACPI_HANDLE) Sem;
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsDeleteSemaphore
- *
- * PARAMETERS:  Handle              - Handle returned by AcpiOsCreateSemaphore
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Delete an OS semaphore
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsDeleteSemaphore (
-    ACPI_HANDLE         Handle)
-{
-    sem_t               *Sem = (sem_t *) Handle;
-
-
-    if (!Sem)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    if (sem_destroy (Sem) == -1)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsWaitSemaphore
- *
- * PARAMETERS:  Handle              - Handle returned by AcpiOsCreateSemaphore
- *              Units               - How many units to wait for
- *              Timeout             - How long to wait
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Wait for units
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsWaitSemaphore (
-    ACPI_HANDLE         Handle,
-    UINT32              Units,
-    UINT16              Timeout)
-{
-    ACPI_STATUS         Status = AE_OK;
-    sem_t               *Sem = (sem_t *) Handle;
-    struct timespec     T;
-
-
-    if (!Sem)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    switch (Timeout)
-    {
-    /*
-     * No Wait:
-     * --------
-     * A zero timeout value indicates that we shouldn't wait - just
-     * acquire the semaphore if available otherwise return AE_TIME
-     * (a.k.a. 'would block').
-     */
-    case 0:
-
-        if (sem_trywait(Sem) == -1)
-        {
-            Status = (AE_TIME);
-        }
-        break;
-
-    /* Wait Indefinitely */
-
-    case ACPI_WAIT_FOREVER:
-
-        if (sem_wait (Sem))
-        {
-            Status = (AE_TIME);
-        }
-        break;
-
-    /* Wait with Timeout */
-
-    default:
-
-        T.tv_sec = Timeout / 1000;
-        T.tv_nsec = (Timeout - (T.tv_sec * 1000)) * 1000000;
-
-#ifdef ACPI_USE_ALTERNATE_TIMEOUT
-        /*
-         * Alternate timeout mechanism for environments where
-         * sem_timedwait is not available or does not work properly.
-         */
-        while (Timeout)
-        {
-            if (sem_trywait (Sem) == 0)
-            {
-                /* Got the semaphore */
-                return (AE_OK);
-            }
-            usleep (1000);  /* one millisecond */
-            Timeout--;
-        }
-        Status = (AE_TIME);
-#else
-
-        if (sem_timedwait (Sem, &T))
-        {
-            Status = (AE_TIME);
-        }
-#endif
-
-        break;
-    }
-
-    return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsSignalSemaphore
- *
- * PARAMETERS:  Handle              - Handle returned by AcpiOsCreateSemaphore
- *              Units               - Number of units to send
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Send units
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsSignalSemaphore (
-    ACPI_HANDLE         Handle,
-    UINT32              Units)
-{
-    sem_t               *Sem = (sem_t *)Handle;
-
-
-    if (!Sem)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    if (sem_post (Sem) == -1)
-    {
-        return (AE_LIMIT);
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    Spinlock interfaces
- *
- * DESCRIPTION: Map these interfaces to semaphore interfaces
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsCreateLock (
-    ACPI_SPINLOCK           *OutHandle)
-{
-
-    return (AcpiOsCreateSemaphore (1, 1, OutHandle));
-}
-
-
-void
-AcpiOsDeleteLock (
-    ACPI_SPINLOCK           Handle)
-{
-    AcpiOsDeleteSemaphore (Handle);
-}
-
-
-ACPI_CPU_FLAGS
-AcpiOsAcquireLock (
-    ACPI_HANDLE             Handle)
-{
-    AcpiOsWaitSemaphore (Handle, 1, 0xFFFF);
-    return (0);
-}
-
-
-void
-AcpiOsReleaseLock (
-    ACPI_SPINLOCK           Handle,
-    ACPI_CPU_FLAGS          Flags)
-{
-    AcpiOsSignalSemaphore (Handle, 1);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsInstallInterruptHandler
- *
- * PARAMETERS:  InterruptNumber     Level handler should respond to.
- *              Isr                 Address of the ACPI interrupt handler
- *              ExceptPtr           Where status is returned
- *
- * RETURN:      Handle to the newly installed handler.
- *
- * DESCRIPTION: Install an interrupt handler.  Used to install the ACPI
- *              OS-independent handler.
- *
- *****************************************************************************/
-
-UINT32
-AcpiOsInstallInterruptHandler (
-    UINT32                  InterruptNumber,
-    ACPI_OSD_HANDLER        ServiceRoutine,
-    void                    *Context)
-{
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsRemoveInterruptHandler
- *
- * PARAMETERS:  Handle              Returned when handler was installed
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Uninstalls an interrupt handler.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsRemoveInterruptHandler (
-    UINT32                  InterruptNumber,
-    ACPI_OSD_HANDLER        ServiceRoutine)
-{
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsExecute
- *
- * PARAMETERS:  Type            - Type of execution
- *              Function        - Address of the function to execute
- *              Context         - Passed as a parameter to the function
- *
- * RETURN:      Status.
- *
- * DESCRIPTION: Execute a new thread
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsExecute (
-    ACPI_EXECUTE_TYPE       Type,
-    ACPI_OSD_EXEC_CALLBACK  Function,
-    void                    *Context)
-{
-    pthread_t               thread;
-    int                     ret;
-
-
-    ret = pthread_create (&thread, NULL, (PTHREAD_CALLBACK) Function, Context);
-    if (ret)
-    {
-        AcpiOsPrintf("Create thread failed");
-    }
-    return (0);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsStall
- *
- * PARAMETERS:  microseconds        To sleep
- *
- * RETURN:      Blocks until sleep is completed.
- *
- * DESCRIPTION: Sleep at microsecond granularity
- *
- *****************************************************************************/
-
-void
-AcpiOsStall (
-    UINT32                  microseconds)
-{
-
-    if (microseconds)
-    {
-        usleep (microseconds);
-    }
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsSleep
- *
- * PARAMETERS:  milliseconds        To sleep
- *
- * RETURN:      Blocks until sleep is completed.
- *
- * DESCRIPTION: Sleep at millisecond granularity
- *
- *****************************************************************************/
-
-void
-AcpiOsSleep (
-    ACPI_INTEGER            milliseconds)
-{
-
-    sleep (milliseconds / 1000);    /* Sleep for whole seconds */
-
-    /*
-     * Arg to usleep() must be less than 1,000,000 (1 second)
-     */
-    usleep ((milliseconds % 1000) * 1000);      /* Sleep for remaining usecs */
-}
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsGetTimer
- *
- * PARAMETERS:  None
- *
- * RETURN:      Current time in 100 nanosecond units
- *
- * DESCRIPTION: Get the current system time
- *
- *****************************************************************************/
-
-UINT64
-AcpiOsGetTimer (void)
-{
-    struct timeval          time;
-
-
-    gettimeofday (&time, NULL);
-
-    /* Seconds * 10^7 = 100ns(10^-7), Microseconds(10^-6) * 10^1 = 100ns */
-
-    return (((UINT64) time.tv_sec * 10000000) + ((UINT64) time.tv_usec * 10));
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsValidateInterface
- *
- * PARAMETERS:  Interface           - Requested interface to be validated
- *
- * RETURN:      AE_OK if interface is supported, AE_SUPPORT otherwise
- *
- * DESCRIPTION: Match an interface string to the interfaces supported by the
- *              host. Strings originate from an AML call to the _OSI method.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsValidateInterface (
-    char                    *Interface)
-{
-
-    return (AE_SUPPORT);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsReadPciConfiguration
- *
- * PARAMETERS:  PciId               Seg/Bus/Dev
- *              Register            Device Register
- *              Value               Buffer where value is placed
- *              Width               Number of bits
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Read data from PCI configuration space
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsReadPciConfiguration (
-    ACPI_PCI_ID             *PciId,
-    UINT32                  Register,
-    void                    *Value,
-    UINT32                  Width)
-{
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsWritePciConfiguration
- *
- * PARAMETERS:  PciId               Seg/Bus/Dev
- *              Register            Device Register
- *              Value               Value to be written
- *              Width               Number of bits
- *
- * RETURN:      Status.
- *
- * DESCRIPTION: Write data to PCI configuration space
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsWritePciConfiguration (
-    ACPI_PCI_ID             *PciId,
-    UINT32                  Register,
-    ACPI_INTEGER            Value,
-    UINT32                  Width)
-{
-
-    return (AE_OK);
-}
-
-/* TEMPORARY STUB FUNCTION */
-void
-AcpiOsDerivePciId(
-    ACPI_HANDLE             rhandle,
-    ACPI_HANDLE             chandle,
-    ACPI_PCI_ID             **PciId)
-{
-
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsReadPort
- *
- * PARAMETERS:  Address             Address of I/O port/register to read
- *              Value               Where value is placed
- *              Width               Number of bits
- *
- * RETURN:      Value read from port
- *
- * DESCRIPTION: Read data from an I/O port or register
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsReadPort (
-    ACPI_IO_ADDRESS         Address,
-    UINT32                  *Value,
-    UINT32                  Width)
-{
-
-    switch (Width)
-    {
-    case 8:
-        *Value = 0xFF;
-        break;
-
-    case 16:
-        *Value = 0xFFFF;
-        break;
-
-    case 32:
-        *Value = 0xFFFFFFFF;
-        break;
-
-    default:
-        return (AE_BAD_PARAMETER);
-    }
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsWritePort
- *
- * PARAMETERS:  Address             Address of I/O port/register to write
- *              Value               Value to write
- *              Width               Number of bits
- *
- * RETURN:      None
- *
- * DESCRIPTION: Write data to an I/O port or register
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsWritePort (
-    ACPI_IO_ADDRESS         Address,
-    UINT32                  Value,
-    UINT32                  Width)
-{
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsReadMemory
- *
- * PARAMETERS:  Address             Physical Memory Address to read
- *              Value               Where value is placed
- *              Width               Number of bits
- *
- * RETURN:      Value read from physical memory address
- *
- * DESCRIPTION: Read data from a physical memory address
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsReadMemory (
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  *Value,
-    UINT32                  Width)
-{
-
-    switch (Width)
-    {
-    case 8:
-    case 16:
-    case 32:
-        *Value = 0;
-        break;
-
-    default:
-        return (AE_BAD_PARAMETER);
-    }
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsWriteMemory
- *
- * PARAMETERS:  Address             Physical Memory Address to write
- *              Value               Value to write
- *              Width               Number of bits
- *
- * RETURN:      None
- *
- * DESCRIPTION: Write data to a physical memory address
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsWriteMemory (
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  Value,
-    UINT32                  Width)
-{
-
-    return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsReadable
- *
- * PARAMETERS:  Pointer             - Area to be verified
- *              Length              - Size of area
- *
- * RETURN:      TRUE if readable for entire length
- *
- * DESCRIPTION: Verify that a pointer is valid for reading
- *
- *****************************************************************************/
-
-BOOLEAN
-AcpiOsReadable (
-    void                    *Pointer,
-    ACPI_SIZE               Length)
-{
-
-    return (TRUE);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsWritable
- *
- * PARAMETERS:  Pointer             - Area to be verified
- *              Length              - Size of area
- *
- * RETURN:      TRUE if writable for entire length
- *
- * DESCRIPTION: Verify that a pointer is valid for writing
- *
- *****************************************************************************/
-
-BOOLEAN
-AcpiOsWritable (
-    void                    *Pointer,
-    ACPI_SIZE               Length)
-{
-
-    return (TRUE);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsGetThreadId
- *
- * PARAMETERS:  None
- *
- * RETURN:      Id of the running thread
- *
- * DESCRIPTION: Get the Id of the current (running) thread
- *
- * NOTE:        The environment header should contain this line:
- *                  #define ACPI_THREAD_ID pthread_t
- *
- *****************************************************************************/
-
-ACPI_THREAD_ID
-AcpiOsGetThreadId (void)
-{
-
-    return (pthread_self ());
-}
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiOsSignal
- *
- * PARAMETERS:  Function            ACPI CA signal function code
- *              Info                Pointer to function-dependent structure
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Miscellaneous functions. Example implementation only.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsSignal (
-    UINT32                  Function,
-    void                    *Info)
-{
-
-    switch (Function)
-    {
-    case ACPI_SIGNAL_FATAL:
-        break;
-
-    case ACPI_SIGNAL_BREAKPOINT:
-        break;
-
-    default:
-        break;
-    }
-
-    return (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/parser/psargs.c b/l4/pkg/acpica/lib-acpi/src/acpica/parser/psargs.c
deleted file mode 100644 (file)
index 60d4a83..0000000
+++ /dev/null
@@ -1,893 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psargs - Parse AML opcode arguments
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __PSARGS_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-#include "acdispat.h"
-
-#define _COMPONENT          ACPI_PARSER
-        ACPI_MODULE_NAME    ("psargs")
-
-/* Local prototypes */
-
-static UINT32
-AcpiPsGetNextPackageLength (
-    ACPI_PARSE_STATE        *ParserState);
-
-static ACPI_PARSE_OBJECT *
-AcpiPsGetNextField (
-    ACPI_PARSE_STATE        *ParserState);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetNextPackageLength
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *
- * RETURN:      Decoded package length. On completion, the AML pointer points
- *              past the length byte or bytes.
- *
- * DESCRIPTION: Decode and return a package length field.
- *              Note: Largest package length is 28 bits, from ACPI specification
- *
- ******************************************************************************/
-
-static UINT32
-AcpiPsGetNextPackageLength (
-    ACPI_PARSE_STATE        *ParserState)
-{
-    UINT8                   *Aml = ParserState->Aml;
-    UINT32                  PackageLength = 0;
-    UINT32                  ByteCount;
-    UINT8                   ByteZeroMask = 0x3F; /* Default [0:5] */
-
-
-    ACPI_FUNCTION_TRACE (PsGetNextPackageLength);
-
-
-    /*
-     * Byte 0 bits [6:7] contain the number of additional bytes
-     * used to encode the package length, either 0,1,2, or 3
-     */
-    ByteCount = (Aml[0] >> 6);
-    ParserState->Aml += ((ACPI_SIZE) ByteCount + 1);
-
-    /* Get bytes 3, 2, 1 as needed */
-
-    while (ByteCount)
-    {
-        /*
-         * Final bit positions for the package length bytes:
-         *      Byte3->[20:27]
-         *      Byte2->[12:19]
-         *      Byte1->[04:11]
-         *      Byte0->[00:03]
-         */
-        PackageLength |= (Aml[ByteCount] << ((ByteCount << 3) - 4));
-
-        ByteZeroMask = 0x0F; /* Use bits [0:3] of byte 0 */
-        ByteCount--;
-    }
-
-    /* Byte 0 is a special case, either bits [0:3] or [0:5] are used */
-
-    PackageLength |= (Aml[0] & ByteZeroMask);
-    return_UINT32 (PackageLength);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetNextPackageEnd
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *
- * RETURN:      Pointer to end-of-package +1
- *
- * DESCRIPTION: Get next package length and return a pointer past the end of
- *              the package.  Consumes the package length field
- *
- ******************************************************************************/
-
-UINT8 *
-AcpiPsGetNextPackageEnd (
-    ACPI_PARSE_STATE        *ParserState)
-{
-    UINT8                   *Start = ParserState->Aml;
-    UINT32                  PackageLength;
-
-
-    ACPI_FUNCTION_TRACE (PsGetNextPackageEnd);
-
-
-    /* Function below updates ParserState->Aml */
-
-    PackageLength = AcpiPsGetNextPackageLength (ParserState);
-
-    return_PTR (Start + PackageLength); /* end of package */
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetNextNamestring
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *
- * RETURN:      Pointer to the start of the name string (pointer points into
- *              the AML.
- *
- * DESCRIPTION: Get next raw namestring within the AML stream.  Handles all name
- *              prefix characters.  Set parser state to point past the string.
- *              (Name is consumed from the AML.)
- *
- ******************************************************************************/
-
-char *
-AcpiPsGetNextNamestring (
-    ACPI_PARSE_STATE        *ParserState)
-{
-    UINT8                   *Start = ParserState->Aml;
-    UINT8                   *End = ParserState->Aml;
-
-
-    ACPI_FUNCTION_TRACE (PsGetNextNamestring);
-
-
-    /* Point past any namestring prefix characters (backslash or carat) */
-
-    while (AcpiPsIsPrefixChar (*End))
-    {
-        End++;
-    }
-
-    /* Decode the path prefix character */
-
-    switch (*End)
-    {
-    case 0:
-
-        /* NullName */
-
-        if (End == Start)
-        {
-            Start = NULL;
-        }
-        End++;
-        break;
-
-    case AML_DUAL_NAME_PREFIX:
-
-        /* Two name segments */
-
-        End += 1 + (2 * ACPI_NAME_SIZE);
-        break;
-
-    case AML_MULTI_NAME_PREFIX_OP:
-
-        /* Multiple name segments, 4 chars each, count in next byte */
-
-        End += 2 + (*(End + 1) * ACPI_NAME_SIZE);
-        break;
-
-    default:
-
-        /* Single name segment */
-
-        End += ACPI_NAME_SIZE;
-        break;
-    }
-
-    ParserState->Aml = End;
-    return_PTR ((char *) Start);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetNextNamepath
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *              Arg                 - Where the namepath will be stored
- *              ArgCount            - If the namepath points to a control method
- *                                    the method's argument is returned here.
- *              PossibleMethodCall  - Whether the namepath can possibly be the
- *                                    start of a method call
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get next name (if method call, return # of required args).
- *              Names are looked up in the internal namespace to determine
- *              if the name represents a control method.  If a method
- *              is found, the number of arguments to the method is returned.
- *              This information is critical for parsing to continue correctly.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsGetNextNamepath (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_STATE        *ParserState,
-    ACPI_PARSE_OBJECT       *Arg,
-    BOOLEAN                 PossibleMethodCall)
-{
-    ACPI_STATUS             Status;
-    char                    *Path;
-    ACPI_PARSE_OBJECT       *NameOp;
-    ACPI_OPERAND_OBJECT     *MethodDesc;
-    ACPI_NAMESPACE_NODE     *Node;
-    UINT8                   *Start = ParserState->Aml;
-
-
-    ACPI_FUNCTION_TRACE (PsGetNextNamepath);
-
-
-    Path = AcpiPsGetNextNamestring (ParserState);
-    AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP);
-
-    /* Null path case is allowed, just exit */
-
-    if (!Path)
-    {
-        Arg->Common.Value.Name = Path;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * Lookup the name in the internal namespace, starting with the current
-     * scope. We don't want to add anything new to the namespace here,
-     * however, so we use MODE_EXECUTE.
-     * Allow searching of the parent tree, but don't open a new scope -
-     * we just want to lookup the object (must be mode EXECUTE to perform
-     * the upsearch)
-     */
-    Status = AcpiNsLookup (WalkState->ScopeInfo, Path,
-                ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
-                ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node);
-
-    /*
-     * If this name is a control method invocation, we must
-     * setup the method call
-     */
-    if (ACPI_SUCCESS (Status) &&
-        PossibleMethodCall &&
-        (Node->Type == ACPI_TYPE_METHOD))
-    {
-        if (WalkState->Opcode == AML_UNLOAD_OP)
-        {
-            /*
-             * AcpiPsGetNextNamestring has increased the AML pointer,
-             * so we need to restore the saved AML pointer for method call.
-             */
-            WalkState->ParserState.Aml = Start;
-            WalkState->ArgCount = 1;
-            AcpiPsInitOp (Arg, AML_INT_METHODCALL_OP);
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        /* This name is actually a control method invocation */
-
-        MethodDesc = AcpiNsGetAttachedObject (Node);
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-            "Control Method - %p Desc %p Path=%p\n", Node, MethodDesc, Path));
-
-        NameOp = AcpiPsAllocOp (AML_INT_NAMEPATH_OP);
-        if (!NameOp)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        /* Change Arg into a METHOD CALL and attach name to it */
-
-        AcpiPsInitOp (Arg, AML_INT_METHODCALL_OP);
-        NameOp->Common.Value.Name = Path;
-
-        /* Point METHODCALL/NAME to the METHOD Node */
-
-        NameOp->Common.Node = Node;
-        AcpiPsAppendArg (Arg, NameOp);
-
-        if (!MethodDesc)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Control Method %p has no attached object",
-                Node));
-            return_ACPI_STATUS (AE_AML_INTERNAL);
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-            "Control Method - %p Args %X\n",
-            Node, MethodDesc->Method.ParamCount));
-
-        /* Get the number of arguments to expect */
-
-        WalkState->ArgCount = MethodDesc->Method.ParamCount;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /*
-     * Special handling if the name was not found during the lookup -
-     * some NotFound cases are allowed
-     */
-    if (Status == AE_NOT_FOUND)
-    {
-        /* 1) NotFound is ok during load pass 1/2 (allow forward references) */
-
-        if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) !=
-                ACPI_PARSE_EXECUTE)
-        {
-            Status = AE_OK;
-        }
-
-        /* 2) NotFound during a CondRefOf(x) is ok by definition */
-
-        else if (WalkState->Op->Common.AmlOpcode == AML_COND_REF_OF_OP)
-        {
-            Status = AE_OK;
-        }
-
-        /*
-         * 3) NotFound while building a Package is ok at this point, we
-         * may flag as an error later if slack mode is not enabled.
-         * (Some ASL code depends on allowing this behavior)
-         */
-        else if ((Arg->Common.Parent) &&
-            ((Arg->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
-             (Arg->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP)))
-        {
-            Status = AE_OK;
-        }
-    }
-
-    /* Final exception check (may have been changed from code above) */
-
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_ERROR_NAMESPACE (Path, Status);
-
-        if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) ==
-                ACPI_PARSE_EXECUTE)
-        {
-            /* Report a control method execution error */
-
-            Status = AcpiDsMethodError (Status, WalkState);
-        }
-    }
-
-    /* Save the namepath */
-
-    Arg->Common.Value.Name = Path;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetNextSimpleArg
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *              ArgType             - The argument type (AML_*_ARG)
- *              Arg                 - Where the argument is returned
- *
- * RETURN:      None
- *
- * DESCRIPTION: Get the next simple argument (constant, string, or namestring)
- *
- ******************************************************************************/
-
-void
-AcpiPsGetNextSimpleArg (
-    ACPI_PARSE_STATE        *ParserState,
-    UINT32                  ArgType,
-    ACPI_PARSE_OBJECT       *Arg)
-{
-    UINT32                  Length;
-    UINT16                  Opcode;
-    UINT8                   *Aml = ParserState->Aml;
-
-
-    ACPI_FUNCTION_TRACE_U32 (PsGetNextSimpleArg, ArgType);
-
-
-    switch (ArgType)
-    {
-    case ARGP_BYTEDATA:
-
-        /* Get 1 byte from the AML stream */
-
-        Opcode = AML_BYTE_OP;
-        Arg->Common.Value.Integer = (ACPI_INTEGER) *Aml;
-        Length = 1;
-        break;
-
-
-    case ARGP_WORDDATA:
-
-        /* Get 2 bytes from the AML stream */
-
-        Opcode = AML_WORD_OP;
-        ACPI_MOVE_16_TO_64 (&Arg->Common.Value.Integer, Aml);
-        Length = 2;
-        break;
-
-
-    case ARGP_DWORDDATA:
-
-        /* Get 4 bytes from the AML stream */
-
-        Opcode = AML_DWORD_OP;
-        ACPI_MOVE_32_TO_64 (&Arg->Common.Value.Integer, Aml);
-        Length = 4;
-        break;
-
-
-    case ARGP_QWORDDATA:
-
-        /* Get 8 bytes from the AML stream */
-
-        Opcode = AML_QWORD_OP;
-        ACPI_MOVE_64_TO_64 (&Arg->Common.Value.Integer, Aml);
-        Length = 8;
-        break;
-
-
-    case ARGP_CHARLIST:
-
-        /* Get a pointer to the string, point past the string */
-
-        Opcode = AML_STRING_OP;
-        Arg->Common.Value.String = ACPI_CAST_PTR (char, Aml);
-
-        /* Find the null terminator */
-
-        Length = 0;
-        while (Aml[Length])
-        {
-            Length++;
-        }
-        Length++;
-        break;
-
-
-    case ARGP_NAME:
-    case ARGP_NAMESTRING:
-
-        AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP);
-        Arg->Common.Value.Name = AcpiPsGetNextNamestring (ParserState);
-        return_VOID;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Invalid ArgType %X", ArgType));
-        return_VOID;
-    }
-
-    AcpiPsInitOp (Arg, Opcode);
-    ParserState->Aml += Length;
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetNextField
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *
- * RETURN:      A newly allocated FIELD op
- *
- * DESCRIPTION: Get next field (NamedField, ReservedField, or AccessField)
- *
- ******************************************************************************/
-
-static ACPI_PARSE_OBJECT *
-AcpiPsGetNextField (
-    ACPI_PARSE_STATE        *ParserState)
-{
-    UINT32                  AmlOffset = (UINT32)
-                                ACPI_PTR_DIFF (ParserState->Aml,
-                                               ParserState->AmlStart);
-    ACPI_PARSE_OBJECT       *Field;
-    UINT16                  Opcode;
-    UINT32                  Name;
-
-
-    ACPI_FUNCTION_TRACE (PsGetNextField);
-
-
-    /* Determine field type */
-
-    switch (ACPI_GET8 (ParserState->Aml))
-    {
-    default:
-
-        Opcode = AML_INT_NAMEDFIELD_OP;
-        break;
-
-    case 0x00:
-
-        Opcode = AML_INT_RESERVEDFIELD_OP;
-        ParserState->Aml++;
-        break;
-
-    case 0x01:
-
-        Opcode = AML_INT_ACCESSFIELD_OP;
-        ParserState->Aml++;
-        break;
-    }
-
-    /* Allocate a new field op */
-
-    Field = AcpiPsAllocOp (Opcode);
-    if (!Field)
-    {
-        return_PTR (NULL);
-    }
-
-    Field->Common.AmlOffset = AmlOffset;
-
-    /* Decode the field type */
-
-    switch (Opcode)
-    {
-    case AML_INT_NAMEDFIELD_OP:
-
-        /* Get the 4-character name */
-
-        ACPI_MOVE_32_TO_32 (&Name, ParserState->Aml);
-        AcpiPsSetName (Field, Name);
-        ParserState->Aml += ACPI_NAME_SIZE;
-
-        /* Get the length which is encoded as a package length */
-
-        Field->Common.Value.Size = AcpiPsGetNextPackageLength (ParserState);
-        break;
-
-
-    case AML_INT_RESERVEDFIELD_OP:
-
-        /* Get the length which is encoded as a package length */
-
-        Field->Common.Value.Size = AcpiPsGetNextPackageLength (ParserState);
-        break;
-
-
-    case AML_INT_ACCESSFIELD_OP:
-
-        /*
-         * Get AccessType and AccessAttrib and merge into the field Op
-         * AccessType is first operand, AccessAttribute is second
-         */
-        Field->Common.Value.Integer = (((UINT32) ACPI_GET8 (ParserState->Aml) << 8));
-        ParserState->Aml++;
-        Field->Common.Value.Integer |= ACPI_GET8 (ParserState->Aml);
-        ParserState->Aml++;
-        break;
-
-    default:
-
-        /* Opcode was set in previous switch */
-        break;
-    }
-
-    return_PTR (Field);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetNextArg
- *
- * PARAMETERS:  WalkState           - Current state
- *              ParserState         - Current parser state object
- *              ArgType             - The argument type (AML_*_ARG)
- *              ReturnArg           - Where the next arg is returned
- *
- * RETURN:      Status, and an op object containing the next argument.
- *
- * DESCRIPTION: Get next argument (including complex list arguments that require
- *              pushing the parser stack)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsGetNextArg (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_STATE        *ParserState,
-    UINT32                  ArgType,
-    ACPI_PARSE_OBJECT       **ReturnArg)
-{
-    ACPI_PARSE_OBJECT       *Arg = NULL;
-    ACPI_PARSE_OBJECT       *Prev = NULL;
-    ACPI_PARSE_OBJECT       *Field;
-    UINT32                  Subop;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsGetNextArg, ParserState);
-
-
-    switch (ArgType)
-    {
-    case ARGP_BYTEDATA:
-    case ARGP_WORDDATA:
-    case ARGP_DWORDDATA:
-    case ARGP_CHARLIST:
-    case ARGP_NAME:
-    case ARGP_NAMESTRING:
-
-        /* Constants, strings, and namestrings are all the same size */
-
-        Arg = AcpiPsAllocOp (AML_BYTE_OP);
-        if (!Arg)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-        AcpiPsGetNextSimpleArg (ParserState, ArgType, Arg);
-        break;
-
-
-    case ARGP_PKGLENGTH:
-
-        /* Package length, nothing returned */
-
-        ParserState->PkgEnd = AcpiPsGetNextPackageEnd (ParserState);
-        break;
-
-
-    case ARGP_FIELDLIST:
-
-        if (ParserState->Aml < ParserState->PkgEnd)
-        {
-            /* Non-empty list */
-
-            while (ParserState->Aml < ParserState->PkgEnd)
-            {
-                Field = AcpiPsGetNextField (ParserState);
-                if (!Field)
-                {
-                    return_ACPI_STATUS (AE_NO_MEMORY);
-                }
-
-                if (Prev)
-                {
-                    Prev->Common.Next = Field;
-                }
-                else
-                {
-                    Arg = Field;
-                }
-                Prev = Field;
-            }
-
-            /* Skip to End of byte data */
-
-            ParserState->Aml = ParserState->PkgEnd;
-        }
-        break;
-
-
-    case ARGP_BYTELIST:
-
-        if (ParserState->Aml < ParserState->PkgEnd)
-        {
-            /* Non-empty list */
-
-            Arg = AcpiPsAllocOp (AML_INT_BYTELIST_OP);
-            if (!Arg)
-            {
-                return_ACPI_STATUS (AE_NO_MEMORY);
-            }
-
-            /* Fill in bytelist data */
-
-            Arg->Common.Value.Size = (UINT32)
-                ACPI_PTR_DIFF (ParserState->PkgEnd, ParserState->Aml);
-            Arg->Named.Data = ParserState->Aml;
-
-            /* Skip to End of byte data */
-
-            ParserState->Aml = ParserState->PkgEnd;
-        }
-        break;
-
-
-    case ARGP_TARGET:
-    case ARGP_SUPERNAME:
-    case ARGP_SIMPLENAME:
-
-        Subop = AcpiPsPeekOpcode (ParserState);
-        if (Subop == 0                  ||
-            AcpiPsIsLeadingChar (Subop) ||
-            AcpiPsIsPrefixChar (Subop))
-        {
-            /* NullName or NameString */
-
-            Arg = AcpiPsAllocOp (AML_INT_NAMEPATH_OP);
-            if (!Arg)
-            {
-                return_ACPI_STATUS (AE_NO_MEMORY);
-            }
-
-            /* To support SuperName arg of Unload */
-
-            if (WalkState->Opcode == AML_UNLOAD_OP)
-            {
-                Status = AcpiPsGetNextNamepath (WalkState, ParserState, Arg, 1);
-
-                /*
-                 * If the SuperName arg of Unload is a method call,
-                 * we have restored the AML pointer, just free this Arg
-                 */
-                if (Arg->Common.AmlOpcode == AML_INT_METHODCALL_OP)
-                {
-                    AcpiPsFreeOp (Arg);
-                    Arg = NULL;
-                }
-            }
-            else
-            {
-                Status = AcpiPsGetNextNamepath (WalkState, ParserState, Arg, 0);
-            }
-        }
-        else
-        {
-            /* Single complex argument, nothing returned */
-
-            WalkState->ArgCount = 1;
-        }
-        break;
-
-
-    case ARGP_DATAOBJ:
-    case ARGP_TERMARG:
-
-        /* Single complex argument, nothing returned */
-
-        WalkState->ArgCount = 1;
-        break;
-
-
-    case ARGP_DATAOBJLIST:
-    case ARGP_TERMLIST:
-    case ARGP_OBJLIST:
-
-        if (ParserState->Aml < ParserState->PkgEnd)
-        {
-            /* Non-empty list of variable arguments, nothing returned */
-
-            WalkState->ArgCount = ACPI_VAR_ARGS;
-        }
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Invalid ArgType: %X", ArgType));
-        Status = AE_AML_OPERAND_TYPE;
-        break;
-    }
-
-    *ReturnArg = Arg;
-    return_ACPI_STATUS (Status);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/parser/psloop.c b/l4/pkg/acpica/lib-acpi/src/acpica/parser/psloop.c
deleted file mode 100644 (file)
index 4171e0d..0000000
+++ /dev/null
@@ -1,1341 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psloop - Main AML parse loop
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-/*
- * Parse the AML and build an operation tree as most interpreters, (such as
- * Perl) do. Parsing is done by hand rather than with a YACC generated parser
- * to tightly constrain stack and dynamic memory usage. Parsing is kept
- * flexible and the code fairly compact by parsing based on a list of AML
- * opcode templates in AmlOpInfo[].
- */
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "acdispat.h"
-#include "amlcode.h"
-
-#define _COMPONENT          ACPI_PARSER
-        ACPI_MODULE_NAME    ("psloop")
-
-static UINT32               AcpiGbl_Depth = 0;
-
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiPsGetAmlOpcode (
-    ACPI_WALK_STATE         *WalkState);
-
-static ACPI_STATUS
-AcpiPsBuildNamedOp (
-    ACPI_WALK_STATE         *WalkState,
-    UINT8                   *AmlOpStart,
-    ACPI_PARSE_OBJECT       *UnnamedOp,
-    ACPI_PARSE_OBJECT       **Op);
-
-static ACPI_STATUS
-AcpiPsCreateOp (
-    ACPI_WALK_STATE         *WalkState,
-    UINT8                   *AmlOpStart,
-    ACPI_PARSE_OBJECT       **NewOp);
-
-static ACPI_STATUS
-AcpiPsGetArguments (
-    ACPI_WALK_STATE         *WalkState,
-    UINT8                   *AmlOpStart,
-    ACPI_PARSE_OBJECT       *Op);
-
-static ACPI_STATUS
-AcpiPsCompleteOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       **Op,
-    ACPI_STATUS             Status);
-
-static ACPI_STATUS
-AcpiPsCompleteFinalOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_STATUS             Status);
-
-static void
-AcpiPsLinkModuleCode (
-    ACPI_PARSE_OBJECT       *ParentOp,
-    UINT8                   *AmlStart,
-    UINT32                  AmlLength,
-    ACPI_OWNER_ID           OwnerId);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetAmlOpcode
- *
- * PARAMETERS:  WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Extract the next AML opcode from the input stream.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsGetAmlOpcode (
-    ACPI_WALK_STATE         *WalkState)
-{
-
-    ACPI_FUNCTION_TRACE_PTR (PsGetAmlOpcode, WalkState);
-
-
-    WalkState->AmlOffset = (UINT32) ACPI_PTR_DIFF (WalkState->ParserState.Aml,
-                                WalkState->ParserState.AmlStart);
-    WalkState->Opcode = AcpiPsPeekOpcode (&(WalkState->ParserState));
-
-    /*
-     * First cut to determine what we have found:
-     * 1) A valid AML opcode
-     * 2) A name string
-     * 3) An unknown/invalid opcode
-     */
-    WalkState->OpInfo = AcpiPsGetOpcodeInfo (WalkState->Opcode);
-
-    switch (WalkState->OpInfo->Class)
-    {
-    case AML_CLASS_ASCII:
-    case AML_CLASS_PREFIX:
-        /*
-         * Starts with a valid prefix or ASCII char, this is a name
-         * string. Convert the bare name string to a namepath.
-         */
-        WalkState->Opcode = AML_INT_NAMEPATH_OP;
-        WalkState->ArgTypes = ARGP_NAMESTRING;
-        break;
-
-    case AML_CLASS_UNKNOWN:
-
-        /* The opcode is unrecognized. Just skip unknown opcodes */
-
-        ACPI_ERROR ((AE_INFO,
-             "Found unknown opcode %X at AML address %p offset %X, ignoring",
-              WalkState->Opcode, WalkState->ParserState.Aml, WalkState->AmlOffset));
-
-        ACPI_DUMP_BUFFER (WalkState->ParserState.Aml, 128);
-
-        /* Assume one-byte bad opcode */
-
-        WalkState->ParserState.Aml++;
-        return_ACPI_STATUS (AE_CTRL_PARSE_CONTINUE);
-
-    default:
-
-        /* Found opcode info, this is a normal opcode */
-
-        WalkState->ParserState.Aml += AcpiPsGetOpcodeSize (WalkState->Opcode);
-        WalkState->ArgTypes = WalkState->OpInfo->ParseArgs;
-        break;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsBuildNamedOp
- *
- * PARAMETERS:  WalkState           - Current state
- *              AmlOpStart          - Begin of named Op in AML
- *              UnnamedOp           - Early Op (not a named Op)
- *              Op                  - Returned Op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Parse a named Op
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsBuildNamedOp (
-    ACPI_WALK_STATE         *WalkState,
-    UINT8                   *AmlOpStart,
-    ACPI_PARSE_OBJECT       *UnnamedOp,
-    ACPI_PARSE_OBJECT       **Op)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_PARSE_OBJECT       *Arg = NULL;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsBuildNamedOp, WalkState);
-
-
-    UnnamedOp->Common.Value.Arg = NULL;
-    UnnamedOp->Common.ArgListLength = 0;
-    UnnamedOp->Common.AmlOpcode = WalkState->Opcode;
-
-    /*
-     * Get and append arguments until we find the node that contains
-     * the name (the type ARGP_NAME).
-     */
-    while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) &&
-          (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) != ARGP_NAME))
-    {
-        Status = AcpiPsGetNextArg (WalkState, &(WalkState->ParserState),
-                    GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        AcpiPsAppendArg (UnnamedOp, Arg);
-        INCREMENT_ARG_LIST (WalkState->ArgTypes);
-    }
-
-    /*
-     * Make sure that we found a NAME and didn't run out of arguments
-     */
-    if (!GET_CURRENT_ARG_TYPE (WalkState->ArgTypes))
-    {
-        return_ACPI_STATUS (AE_AML_NO_OPERAND);
-    }
-
-    /* We know that this arg is a name, move to next arg */
-
-    INCREMENT_ARG_LIST (WalkState->ArgTypes);
-
-    /*
-     * Find the object. This will either insert the object into
-     * the namespace or simply look it up
-     */
-    WalkState->Op = NULL;
-
-    Status = WalkState->DescendingCallback (WalkState, Op);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During name lookup/catalog"));
-        return_ACPI_STATUS (Status);
-    }
-
-    if (!*Op)
-    {
-        return_ACPI_STATUS (AE_CTRL_PARSE_CONTINUE);
-    }
-
-    Status = AcpiPsNextParseState (WalkState, *Op, Status);
-    if (ACPI_FAILURE (Status))
-    {
-        if (Status == AE_CTRL_PENDING)
-        {
-            return_ACPI_STATUS (AE_CTRL_PARSE_PENDING);
-        }
-        return_ACPI_STATUS (Status);
-    }
-
-    AcpiPsAppendArg (*Op, UnnamedOp->Common.Value.Arg);
-    AcpiGbl_Depth++;
-
-    if ((*Op)->Common.AmlOpcode == AML_REGION_OP ||
-        (*Op)->Common.AmlOpcode == AML_DATA_REGION_OP)
-    {
-        /*
-         * Defer final parsing of an OperationRegion body, because we don't
-         * have enough info in the first pass to parse it correctly (i.e.,
-         * there may be method calls within the TermArg elements of the body.)
-         *
-         * However, we must continue parsing because the opregion is not a
-         * standalone package -- we don't know where the end is at this point.
-         *
-         * (Length is unknown until parse of the body complete)
-         */
-        (*Op)->Named.Data = AmlOpStart;
-        (*Op)->Named.Length = 0;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsCreateOp
- *
- * PARAMETERS:  WalkState           - Current state
- *              AmlOpStart          - Op start in AML
- *              NewOp               - Returned Op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get Op from AML
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsCreateOp (
-    ACPI_WALK_STATE         *WalkState,
-    UINT8                   *AmlOpStart,
-    ACPI_PARSE_OBJECT       **NewOp)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_PARSE_OBJECT       *NamedOp = NULL;
-    ACPI_PARSE_OBJECT       *ParentScope;
-    UINT8                   ArgumentCount;
-    const ACPI_OPCODE_INFO  *OpInfo;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsCreateOp, WalkState);
-
-
-    Status = AcpiPsGetAmlOpcode (WalkState);
-    if (Status == AE_CTRL_PARSE_CONTINUE)
-    {
-        return_ACPI_STATUS (AE_CTRL_PARSE_CONTINUE);
-    }
-
-    /* Create Op structure and append to parent's argument list */
-
-    WalkState->OpInfo = AcpiPsGetOpcodeInfo (WalkState->Opcode);
-    Op = AcpiPsAllocOp (WalkState->Opcode);
-    if (!Op)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    if (WalkState->OpInfo->Flags & AML_NAMED)
-    {
-        Status = AcpiPsBuildNamedOp (WalkState, AmlOpStart, Op, &NamedOp);
-        AcpiPsFreeOp (Op);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        *NewOp = NamedOp;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Not a named opcode, just allocate Op and append to parent */
-
-    if (WalkState->OpInfo->Flags & AML_CREATE)
-    {
-        /*
-         * Backup to beginning of CreateXXXfield declaration
-         * BodyLength is unknown until we parse the body
-         */
-        Op->Named.Data = AmlOpStart;
-        Op->Named.Length = 0;
-    }
-
-    if (WalkState->Opcode == AML_BANK_FIELD_OP)
-    {
-        /*
-         * Backup to beginning of BankField declaration
-         * BodyLength is unknown until we parse the body
-         */
-        Op->Named.Data = AmlOpStart;
-        Op->Named.Length = 0;
-    }
-
-    ParentScope = AcpiPsGetParentScope (&(WalkState->ParserState));
-    AcpiPsAppendArg (ParentScope, Op);
-
-    if (ParentScope)
-    {
-        OpInfo = AcpiPsGetOpcodeInfo (ParentScope->Common.AmlOpcode);
-        if (OpInfo->Flags & AML_HAS_TARGET)
-        {
-            ArgumentCount = AcpiPsGetArgumentCount (OpInfo->Type);
-            if (ParentScope->Common.ArgListLength > ArgumentCount)
-            {
-                Op->Common.Flags |= ACPI_PARSEOP_TARGET;
-            }
-        }
-        else if (ParentScope->Common.AmlOpcode == AML_INCREMENT_OP)
-        {
-            Op->Common.Flags |= ACPI_PARSEOP_TARGET;
-        }
-    }
-
-    if (WalkState->DescendingCallback != NULL)
-    {
-        /*
-         * Find the object. This will either insert the object into
-         * the namespace or simply look it up
-         */
-        WalkState->Op = *NewOp = Op;
-
-        Status = WalkState->DescendingCallback (WalkState, &Op);
-        Status = AcpiPsNextParseState (WalkState, Op, Status);
-        if (Status == AE_CTRL_PENDING)
-        {
-            Status = AE_CTRL_PARSE_PENDING;
-        }
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetArguments
- *
- * PARAMETERS:  WalkState           - Current state
- *              AmlOpStart          - Op start in AML
- *              Op                  - Current Op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get arguments for passed Op.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsGetArguments (
-    ACPI_WALK_STATE         *WalkState,
-    UINT8                   *AmlOpStart,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_PARSE_OBJECT       *Arg = NULL;
-    const ACPI_OPCODE_INFO  *OpInfo;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsGetArguments, WalkState);
-
-
-    switch (Op->Common.AmlOpcode)
-    {
-    case AML_BYTE_OP:       /* AML_BYTEDATA_ARG */
-    case AML_WORD_OP:       /* AML_WORDDATA_ARG */
-    case AML_DWORD_OP:      /* AML_DWORDATA_ARG */
-    case AML_QWORD_OP:      /* AML_QWORDATA_ARG */
-    case AML_STRING_OP:     /* AML_ASCIICHARLIST_ARG */
-
-        /* Fill in constant or string argument directly */
-
-        AcpiPsGetNextSimpleArg (&(WalkState->ParserState),
-            GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), Op);
-        break;
-
-    case AML_INT_NAMEPATH_OP:   /* AML_NAMESTRING_ARG */
-
-        Status = AcpiPsGetNextNamepath (WalkState, &(WalkState->ParserState), Op, 1);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        WalkState->ArgTypes = 0;
-        break;
-
-    default:
-        /*
-         * Op is not a constant or string, append each argument to the Op
-         */
-        while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) && !WalkState->ArgCount)
-        {
-            WalkState->AmlOffset = (UINT32) ACPI_PTR_DIFF (WalkState->ParserState.Aml,
-                WalkState->ParserState.AmlStart);
-
-            Status = AcpiPsGetNextArg (WalkState, &(WalkState->ParserState),
-                        GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-
-            if (Arg)
-            {
-                Arg->Common.AmlOffset = WalkState->AmlOffset;
-                AcpiPsAppendArg (Op, Arg);
-            }
-
-            INCREMENT_ARG_LIST (WalkState->ArgTypes);
-        }
-
-
-        /*
-         * Handle executable code at "module-level". This refers to
-         * executable opcodes that appear outside of any control method.
-         */
-        if ((WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS2) &&
-            ((WalkState->ParseFlags & ACPI_PARSE_DISASSEMBLE) == 0))
-        {
-            /*
-             * We want to skip If/Else/While constructs during Pass1 because we
-             * want to actually conditionally execute the code during Pass2.
-             *
-             * Except for disassembly, where we always want to walk the
-             * If/Else/While packages
-             */
-            switch (Op->Common.AmlOpcode)
-            {
-            case AML_IF_OP:
-            case AML_ELSE_OP:
-            case AML_WHILE_OP:
-
-                /*
-                 * Currently supported module-level opcodes are:
-                 * IF/ELSE/WHILE. These appear to be the most common,
-                 * and easiest to support since they open an AML
-                 * package.
-                 */
-                if (WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1)
-                {
-                    AcpiPsLinkModuleCode (Op->Common.Parent, AmlOpStart,
-                        (UINT32) (WalkState->ParserState.PkgEnd - AmlOpStart),
-                        WalkState->OwnerId);
-                }
-
-                ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-                    "Pass1: Skipping an If/Else/While body\n"));
-
-                /* Skip body of if/else/while in pass 1 */
-
-                WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
-                WalkState->ArgCount = 0;
-                break;
-
-            default:
-                /*
-                 * Check for an unsupported executable opcode at module
-                 * level. We must be in PASS1, the parent must be a SCOPE,
-                 * The opcode class must be EXECUTE, and the opcode must
-                 * not be an argument to another opcode.
-                 */
-                if ((WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1) &&
-                    (Op->Common.Parent->Common.AmlOpcode == AML_SCOPE_OP))
-                {
-                    OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-                    if ((OpInfo->Class == AML_CLASS_EXECUTE) &&
-                        (!Arg))
-                    {
-                        ACPI_WARNING ((AE_INFO,
-                            "Detected an unsupported executable opcode "
-                            "at module-level: [0x%.4X] at table offset 0x%.4X",
-                            Op->Common.AmlOpcode,
-                            (UINT32) (ACPI_PTR_DIFF (AmlOpStart,
-                                WalkState->ParserState.AmlStart) +
-                                sizeof (ACPI_TABLE_HEADER))));
-                    }
-                }
-                break;
-            }
-        }
-
-        /* Special processing for certain opcodes */
-
-        switch (Op->Common.AmlOpcode)
-        {
-        case AML_METHOD_OP:
-            /*
-             * Skip parsing of control method because we don't have enough
-             * info in the first pass to parse it correctly.
-             *
-             * Save the length and address of the body
-             */
-            Op->Named.Data = WalkState->ParserState.Aml;
-            Op->Named.Length = (UINT32)
-                (WalkState->ParserState.PkgEnd - WalkState->ParserState.Aml);
-
-            /* Skip body of method */
-
-            WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
-            WalkState->ArgCount = 0;
-            break;
-
-        case AML_BUFFER_OP:
-        case AML_PACKAGE_OP:
-        case AML_VAR_PACKAGE_OP:
-
-            if ((Op->Common.Parent) &&
-                (Op->Common.Parent->Common.AmlOpcode == AML_NAME_OP) &&
-                (WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS2))
-            {
-                /*
-                 * Skip parsing of Buffers and Packages because we don't have
-                 * enough info in the first pass to parse them correctly.
-                 */
-                Op->Named.Data = AmlOpStart;
-                Op->Named.Length = (UINT32)
-                    (WalkState->ParserState.PkgEnd - AmlOpStart);
-
-                /* Skip body */
-
-                WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
-                WalkState->ArgCount = 0;
-            }
-            break;
-
-        case AML_WHILE_OP:
-
-            if (WalkState->ControlState)
-            {
-                WalkState->ControlState->Control.PackageEnd =
-                    WalkState->ParserState.PkgEnd;
-            }
-            break;
-
-        default:
-
-            /* No action for all other opcodes */
-            break;
-        }
-
-        break;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsLinkModuleCode
- *
- * PARAMETERS:  ParentOp            - Parent parser op
- *              AmlStart            - Pointer to the AML
- *              AmlLength           - Length of executable AML
- *              OwnerId             - OwnerId of module level code
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Wrap the module-level code with a method object and link the
- *              object to the global list. Note, the mutex field of the method
- *              object is used to link multiple module-level code objects.
- *
- ******************************************************************************/
-
-static void
-AcpiPsLinkModuleCode (
-    ACPI_PARSE_OBJECT       *ParentOp,
-    UINT8                   *AmlStart,
-    UINT32                  AmlLength,
-    ACPI_OWNER_ID           OwnerId)
-{
-    ACPI_OPERAND_OBJECT     *Prev;
-    ACPI_OPERAND_OBJECT     *Next;
-    ACPI_OPERAND_OBJECT     *MethodObj;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-
-
-    /* Get the tail of the list */
-
-    Prev = Next = AcpiGbl_ModuleCodeList;
-    while (Next)
-    {
-        Prev = Next;
-        Next = Next->Method.Mutex;
-    }
-
-    /*
-     * Insert the module level code into the list. Merge it if it is
-     * adjacent to the previous element.
-     */
-    if (!Prev ||
-       ((Prev->Method.AmlStart + Prev->Method.AmlLength) != AmlStart))
-    {
-        /* Create, initialize, and link a new temporary method object */
-
-        MethodObj = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
-        if (!MethodObj)
-        {
-            return;
-        }
-
-        if (ParentOp->Common.Node)
-        {
-            ParentNode = ParentOp->Common.Node;
-        }
-        else
-        {
-            ParentNode = AcpiGbl_RootNode;
-        }
-
-        MethodObj->Method.AmlStart = AmlStart;
-        MethodObj->Method.AmlLength = AmlLength;
-        MethodObj->Method.OwnerId = OwnerId;
-        MethodObj->Method.Flags |= AOPOBJ_MODULE_LEVEL;
-
-        /*
-         * Save the parent node in NextObject. This is cheating, but we
-         * don't want to expand the method object.
-         */
-        MethodObj->Method.NextObject =
-            ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParentNode);
-
-        if (!Prev)
-        {
-            AcpiGbl_ModuleCodeList = MethodObj;
-        }
-        else
-        {
-            Prev->Method.Mutex = MethodObj;
-        }
-    }
-    else
-    {
-        Prev->Method.AmlLength += AmlLength;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsCompleteOp
- *
- * PARAMETERS:  WalkState           - Current state
- *              Op                  - Returned Op
- *              Status              - Parse status before complete Op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Complete Op
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsCompleteOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       **Op,
-    ACPI_STATUS             Status)
-{
-    ACPI_STATUS             Status2;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsCompleteOp, WalkState);
-
-
-    /*
-     * Finished one argument of the containing scope
-     */
-    WalkState->ParserState.Scope->ParseScope.ArgCount--;
-
-    /* Close this Op (will result in parse subtree deletion) */
-
-    Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
-    if (ACPI_FAILURE (Status2))
-    {
-        return_ACPI_STATUS (Status2);
-    }
-
-    *Op = NULL;
-
-    switch (Status)
-    {
-    case AE_OK:
-        break;
-
-
-    case AE_CTRL_TRANSFER:
-
-        /* We are about to transfer to a called method */
-
-        WalkState->PrevOp = NULL;
-        WalkState->PrevArgTypes = WalkState->ArgTypes;
-        return_ACPI_STATUS (Status);
-
-
-    case AE_CTRL_END:
-
-        AcpiPsPopScope (&(WalkState->ParserState), Op,
-            &WalkState->ArgTypes, &WalkState->ArgCount);
-
-        if (*Op)
-        {
-            WalkState->Op = *Op;
-            WalkState->OpInfo = AcpiPsGetOpcodeInfo ((*Op)->Common.AmlOpcode);
-            WalkState->Opcode = (*Op)->Common.AmlOpcode;
-
-            Status = WalkState->AscendingCallback (WalkState);
-            Status = AcpiPsNextParseState (WalkState, *Op, Status);
-
-            Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
-            if (ACPI_FAILURE (Status2))
-            {
-                return_ACPI_STATUS (Status2);
-            }
-        }
-
-        Status = AE_OK;
-        break;
-
-
-    case AE_CTRL_BREAK:
-    case AE_CTRL_CONTINUE:
-
-        /* Pop off scopes until we find the While */
-
-        while (!(*Op) || ((*Op)->Common.AmlOpcode != AML_WHILE_OP))
-        {
-            AcpiPsPopScope (&(WalkState->ParserState), Op,
-                &WalkState->ArgTypes, &WalkState->ArgCount);
-        }
-
-        /* Close this iteration of the While loop */
-
-        WalkState->Op = *Op;
-        WalkState->OpInfo = AcpiPsGetOpcodeInfo ((*Op)->Common.AmlOpcode);
-        WalkState->Opcode = (*Op)->Common.AmlOpcode;
-
-        Status = WalkState->AscendingCallback (WalkState);
-        Status = AcpiPsNextParseState (WalkState, *Op, Status);
-
-        Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
-        if (ACPI_FAILURE (Status2))
-        {
-            return_ACPI_STATUS (Status2);
-        }
-
-        Status = AE_OK;
-        break;
-
-
-    case AE_CTRL_TERMINATE:
-
-        /* Clean up */
-        do
-        {
-            if (*Op)
-            {
-                Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
-                if (ACPI_FAILURE (Status2))
-                {
-                    return_ACPI_STATUS (Status2);
-                }
-
-                AcpiUtDeleteGenericState (
-                    AcpiUtPopGenericState (&WalkState->ControlState));
-            }
-
-            AcpiPsPopScope (&(WalkState->ParserState), Op,
-                &WalkState->ArgTypes, &WalkState->ArgCount);
-
-        } while (*Op);
-
-        return_ACPI_STATUS (AE_OK);
-
-
-    default:  /* All other non-AE_OK status */
-
-        do
-        {
-            if (*Op)
-            {
-                Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
-                if (ACPI_FAILURE (Status2))
-                {
-                    return_ACPI_STATUS (Status2);
-                }
-            }
-
-            AcpiPsPopScope (&(WalkState->ParserState), Op,
-                &WalkState->ArgTypes, &WalkState->ArgCount);
-
-        } while (*Op);
-
-
-#if 0
-        /*
-         * TBD: Cleanup parse ops on error
-         */
-        if (*Op == NULL)
-        {
-            AcpiPsPopScope (ParserState, Op,
-                &WalkState->ArgTypes, &WalkState->ArgCount);
-        }
-#endif
-        WalkState->PrevOp = NULL;
-        WalkState->PrevArgTypes = WalkState->ArgTypes;
-        return_ACPI_STATUS (Status);
-    }
-
-    /* This scope complete? */
-
-    if (AcpiPsHasCompletedScope (&(WalkState->ParserState)))
-    {
-        AcpiPsPopScope (&(WalkState->ParserState), Op,
-            &WalkState->ArgTypes, &WalkState->ArgCount);
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Popped scope, Op=%p\n", *Op));
-    }
-    else
-    {
-        *Op = NULL;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsCompleteFinalOp
- *
- * PARAMETERS:  WalkState           - Current state
- *              Op                  - Current Op
- *              Status              - Current parse status before complete last
- *                                    Op
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Complete last Op.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsCompleteFinalOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_STATUS             Status)
-{
-    ACPI_STATUS             Status2;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsCompleteFinalOp, WalkState);
-
-
-    /*
-     * Complete the last Op (if not completed), and clear the scope stack.
-     * It is easily possible to end an AML "package" with an unbounded number
-     * of open scopes (such as when several ASL blocks are closed with
-     * sequential closing braces). We want to terminate each one cleanly.
-     */
-    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "AML package complete at Op %p\n", Op));
-    do
-    {
-        if (Op)
-        {
-            if (WalkState->AscendingCallback != NULL)
-            {
-                WalkState->Op = Op;
-                WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-                WalkState->Opcode = Op->Common.AmlOpcode;
-
-                Status = WalkState->AscendingCallback (WalkState);
-                Status = AcpiPsNextParseState (WalkState, Op, Status);
-                if (Status == AE_CTRL_PENDING)
-                {
-                    Status = AcpiPsCompleteOp (WalkState, &Op, AE_OK);
-                    if (ACPI_FAILURE (Status))
-                    {
-                        return_ACPI_STATUS (Status);
-                    }
-                }
-
-                if (Status == AE_CTRL_TERMINATE)
-                {
-                    Status = AE_OK;
-
-                    /* Clean up */
-                    do
-                    {
-                        if (Op)
-                        {
-                            Status2 = AcpiPsCompleteThisOp (WalkState, Op);
-                            if (ACPI_FAILURE (Status2))
-                            {
-                                return_ACPI_STATUS (Status2);
-                            }
-                        }
-
-                        AcpiPsPopScope (&(WalkState->ParserState), &Op,
-                            &WalkState->ArgTypes, &WalkState->ArgCount);
-
-                    } while (Op);
-
-                    return_ACPI_STATUS (Status);
-                }
-
-                else if (ACPI_FAILURE (Status))
-                {
-                    /* First error is most important */
-
-                    (void) AcpiPsCompleteThisOp (WalkState, Op);
-                    return_ACPI_STATUS (Status);
-                }
-            }
-
-            Status2 = AcpiPsCompleteThisOp (WalkState, Op);
-            if (ACPI_FAILURE (Status2))
-            {
-                return_ACPI_STATUS (Status2);
-            }
-        }
-
-        AcpiPsPopScope (&(WalkState->ParserState), &Op, &WalkState->ArgTypes,
-            &WalkState->ArgCount);
-
-    } while (Op);
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsParseLoop
- *
- * PARAMETERS:  WalkState           - Current state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Parse AML (pointed to by the current parser state) and return
- *              a tree of ops.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsParseLoop (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_PARSE_OBJECT       *Op = NULL;     /* current op */
-    ACPI_PARSE_STATE        *ParserState;
-    UINT8                   *AmlOpStart = NULL;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsParseLoop, WalkState);
-
-
-    if (WalkState->DescendingCallback == NULL)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    ParserState = &WalkState->ParserState;
-    WalkState->ArgTypes = 0;
-
-#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
-
-    if (WalkState->WalkType & ACPI_WALK_METHOD_RESTART)
-    {
-        /* We are restarting a preempted control method */
-
-        if (AcpiPsHasCompletedScope (ParserState))
-        {
-            /*
-             * We must check if a predicate to an IF or WHILE statement
-             * was just completed
-             */
-            if ((ParserState->Scope->ParseScope.Op) &&
-               ((ParserState->Scope->ParseScope.Op->Common.AmlOpcode == AML_IF_OP) ||
-                (ParserState->Scope->ParseScope.Op->Common.AmlOpcode == AML_WHILE_OP)) &&
-                (WalkState->ControlState) &&
-                (WalkState->ControlState->Common.State ==
-                    ACPI_CONTROL_PREDICATE_EXECUTING))
-            {
-                /*
-                 * A predicate was just completed, get the value of the
-                 * predicate and branch based on that value
-                 */
-                WalkState->Op = NULL;
-                Status = AcpiDsGetPredicateValue (WalkState, ACPI_TO_POINTER (TRUE));
-                if (ACPI_FAILURE (Status) &&
-                    ((Status & AE_CODE_MASK) != AE_CODE_CONTROL))
-                {
-                    if (Status == AE_AML_NO_RETURN_VALUE)
-                    {
-                        ACPI_EXCEPTION ((AE_INFO, Status,
-                            "Invoked method did not return a value"));
-
-                    }
-
-                    ACPI_EXCEPTION ((AE_INFO, Status, "GetPredicate Failed"));
-                    return_ACPI_STATUS (Status);
-                }
-
-                Status = AcpiPsNextParseState (WalkState, Op, Status);
-            }
-
-            AcpiPsPopScope (ParserState, &Op,
-                &WalkState->ArgTypes, &WalkState->ArgCount);
-            ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Popped scope, Op=%p\n", Op));
-        }
-        else if (WalkState->PrevOp)
-        {
-            /* We were in the middle of an op */
-
-            Op = WalkState->PrevOp;
-            WalkState->ArgTypes = WalkState->PrevArgTypes;
-        }
-    }
-#endif
-
-    /* Iterative parsing loop, while there is more AML to process: */
-
-    while ((ParserState->Aml < ParserState->AmlEnd) || (Op))
-    {
-        AmlOpStart = ParserState->Aml;
-        if (!Op)
-        {
-            Status = AcpiPsCreateOp (WalkState, AmlOpStart, &Op);
-            if (ACPI_FAILURE (Status))
-            {
-                if (Status == AE_CTRL_PARSE_CONTINUE)
-                {
-                    continue;
-                }
-
-                if (Status == AE_CTRL_PARSE_PENDING)
-                {
-                    Status = AE_OK;
-                }
-
-                Status = AcpiPsCompleteOp (WalkState, &Op, Status);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-
-                continue;
-            }
-
-            Op->Common.AmlOffset = WalkState->AmlOffset;
-
-            if (WalkState->OpInfo)
-            {
-                ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-                    "Opcode %4.4X [%s] Op %p Aml %p AmlOffset %5.5X\n",
-                     (UINT32) Op->Common.AmlOpcode, WalkState->OpInfo->Name,
-                     Op, ParserState->Aml, Op->Common.AmlOffset));
-            }
-        }
-
-
-        /*
-         * Start ArgCount at zero because we don't know if there are
-         * any args yet
-         */
-        WalkState->ArgCount  = 0;
-
-        /* Are there any arguments that must be processed? */
-
-        if (WalkState->ArgTypes)
-        {
-            /* Get arguments */
-
-            Status = AcpiPsGetArguments (WalkState, AmlOpStart, Op);
-            if (ACPI_FAILURE (Status))
-            {
-                Status = AcpiPsCompleteOp (WalkState, &Op, Status);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-
-                continue;
-            }
-        }
-
-        /* Check for arguments that need to be processed */
-
-        if (WalkState->ArgCount)
-        {
-            /*
-             * There are arguments (complex ones), push Op and
-             * prepare for argument
-             */
-            Status = AcpiPsPushScope (ParserState, Op,
-                        WalkState->ArgTypes, WalkState->ArgCount);
-            if (ACPI_FAILURE (Status))
-            {
-                Status = AcpiPsCompleteOp (WalkState, &Op, Status);
-                if (ACPI_FAILURE (Status))
-                {
-                    return_ACPI_STATUS (Status);
-                }
-
-                continue;
-            }
-
-            Op = NULL;
-            continue;
-        }
-
-        /*
-         * All arguments have been processed -- Op is complete,
-         * prepare for next
-         */
-        WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-        if (WalkState->OpInfo->Flags & AML_NAMED)
-        {
-            if (AcpiGbl_Depth)
-            {
-                AcpiGbl_Depth--;
-            }
-
-            if (Op->Common.AmlOpcode == AML_REGION_OP ||
-                Op->Common.AmlOpcode == AML_DATA_REGION_OP)
-            {
-                /*
-                 * Skip parsing of control method or opregion body,
-                 * because we don't have enough info in the first pass
-                 * to parse them correctly.
-                 *
-                 * Completed parsing an OpRegion declaration, we now
-                 * know the length.
-                 */
-                Op->Named.Length = (UINT32) (ParserState->Aml - Op->Named.Data);
-            }
-        }
-
-        if (WalkState->OpInfo->Flags & AML_CREATE)
-        {
-            /*
-             * Backup to beginning of CreateXXXfield declaration (1 for
-             * Opcode)
-             *
-             * BodyLength is unknown until we parse the body
-             */
-            Op->Named.Length = (UINT32) (ParserState->Aml - Op->Named.Data);
-        }
-
-        if (Op->Common.AmlOpcode == AML_BANK_FIELD_OP)
-        {
-            /*
-             * Backup to beginning of BankField declaration
-             *
-             * BodyLength is unknown until we parse the body
-             */
-            Op->Named.Length = (UINT32) (ParserState->Aml - Op->Named.Data);
-        }
-
-        /* This op complete, notify the dispatcher */
-
-        if (WalkState->AscendingCallback != NULL)
-        {
-            WalkState->Op = Op;
-            WalkState->Opcode = Op->Common.AmlOpcode;
-
-            Status = WalkState->AscendingCallback (WalkState);
-            Status = AcpiPsNextParseState (WalkState, Op, Status);
-            if (Status == AE_CTRL_PENDING)
-            {
-                Status = AE_OK;
-            }
-        }
-
-        Status = AcpiPsCompleteOp (WalkState, &Op, Status);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-    } /* while ParserState->Aml */
-
-    Status = AcpiPsCompleteFinalOp (WalkState, Op, Status);
-    return_ACPI_STATUS (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/parser/psopcode.c b/l4/pkg/acpica/lib-acpi/src/acpica/parser/psopcode.c
deleted file mode 100644 (file)
index d107c52..0000000
+++ /dev/null
@@ -1,589 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psopcode - Parser/Interpreter opcode information table
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "acopcode.h"
-#include "amlcode.h"
-
-
-#define _COMPONENT          ACPI_PARSER
-        ACPI_MODULE_NAME    ("psopcode")
-
-
-static const UINT8          AcpiGbl_ArgumentCount[] = {0,1,1,1,1,2,2,2,2,3,3,6};
-
-
-/*******************************************************************************
- *
- * NAME:        AcpiGbl_AmlOpInfo
- *
- * DESCRIPTION: Opcode table. Each entry contains <opcode, type, name, operands>
- *              The name is a simple ascii string, the operand specifier is an
- *              ascii string with one letter per operand.  The letter specifies
- *              the operand type.
- *
- ******************************************************************************/
-
-/*
- * Summary of opcode types/flags
- *
-
- Opcodes that have associated namespace objects (AML_NSOBJECT flag)
-
-    AML_SCOPE_OP
-    AML_DEVICE_OP
-    AML_THERMAL_ZONE_OP
-    AML_METHOD_OP
-    AML_POWER_RES_OP
-    AML_PROCESSOR_OP
-    AML_FIELD_OP
-    AML_INDEX_FIELD_OP
-    AML_BANK_FIELD_OP
-    AML_NAME_OP
-    AML_ALIAS_OP
-    AML_MUTEX_OP
-    AML_EVENT_OP
-    AML_REGION_OP
-    AML_CREATE_FIELD_OP
-    AML_CREATE_BIT_FIELD_OP
-    AML_CREATE_BYTE_FIELD_OP
-    AML_CREATE_WORD_FIELD_OP
-    AML_CREATE_DWORD_FIELD_OP
-    AML_CREATE_QWORD_FIELD_OP
-    AML_INT_NAMEDFIELD_OP
-    AML_INT_METHODCALL_OP
-    AML_INT_NAMEPATH_OP
-
-  Opcodes that are "namespace" opcodes (AML_NSOPCODE flag)
-
-    AML_SCOPE_OP
-    AML_DEVICE_OP
-    AML_THERMAL_ZONE_OP
-    AML_METHOD_OP
-    AML_POWER_RES_OP
-    AML_PROCESSOR_OP
-    AML_FIELD_OP
-    AML_INDEX_FIELD_OP
-    AML_BANK_FIELD_OP
-    AML_NAME_OP
-    AML_ALIAS_OP
-    AML_MUTEX_OP
-    AML_EVENT_OP
-    AML_REGION_OP
-    AML_INT_NAMEDFIELD_OP
-
-  Opcodes that have an associated namespace node (AML_NSNODE flag)
-
-    AML_SCOPE_OP
-    AML_DEVICE_OP
-    AML_THERMAL_ZONE_OP
-    AML_METHOD_OP
-    AML_POWER_RES_OP
-    AML_PROCESSOR_OP
-    AML_NAME_OP
-    AML_ALIAS_OP
-    AML_MUTEX_OP
-    AML_EVENT_OP
-    AML_REGION_OP
-    AML_CREATE_FIELD_OP
-    AML_CREATE_BIT_FIELD_OP
-    AML_CREATE_BYTE_FIELD_OP
-    AML_CREATE_WORD_FIELD_OP
-    AML_CREATE_DWORD_FIELD_OP
-    AML_CREATE_QWORD_FIELD_OP
-    AML_INT_NAMEDFIELD_OP
-    AML_INT_METHODCALL_OP
-    AML_INT_NAMEPATH_OP
-
-  Opcodes that define named ACPI objects (AML_NAMED flag)
-
-    AML_SCOPE_OP
-    AML_DEVICE_OP
-    AML_THERMAL_ZONE_OP
-    AML_METHOD_OP
-    AML_POWER_RES_OP
-    AML_PROCESSOR_OP
-    AML_NAME_OP
-    AML_ALIAS_OP
-    AML_MUTEX_OP
-    AML_EVENT_OP
-    AML_REGION_OP
-    AML_INT_NAMEDFIELD_OP
-
-  Opcodes that contain executable AML as part of the definition that
-  must be deferred until needed
-
-    AML_METHOD_OP
-    AML_VAR_PACKAGE_OP
-    AML_CREATE_FIELD_OP
-    AML_CREATE_BIT_FIELD_OP
-    AML_CREATE_BYTE_FIELD_OP
-    AML_CREATE_WORD_FIELD_OP
-    AML_CREATE_DWORD_FIELD_OP
-    AML_CREATE_QWORD_FIELD_OP
-    AML_REGION_OP
-    AML_BUFFER_OP
-
-  Field opcodes
-
-    AML_CREATE_FIELD_OP
-    AML_FIELD_OP
-    AML_INDEX_FIELD_OP
-    AML_BANK_FIELD_OP
-
-  Field "Create" opcodes
-
-    AML_CREATE_FIELD_OP
-    AML_CREATE_BIT_FIELD_OP
-    AML_CREATE_BYTE_FIELD_OP
-    AML_CREATE_WORD_FIELD_OP
-    AML_CREATE_DWORD_FIELD_OP
-    AML_CREATE_QWORD_FIELD_OP
-
- ******************************************************************************/
-
-
-/*
- * Master Opcode information table.  A summary of everything we know about each
- * opcode, all in one place.
- */
-const ACPI_OPCODE_INFO    AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] =
-{
-/*! [Begin] no source code translation */
-/* Index           Name                 Parser Args               Interpreter Args                ObjectType                    Class                      Type                  Flags */
-
-/* 00 */ ACPI_OP ("Zero",               ARGP_ZERO_OP,              ARGI_ZERO_OP,               ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        AML_CONSTANT),
-/* 01 */ ACPI_OP ("One",                ARGP_ONE_OP,               ARGI_ONE_OP,                ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        AML_CONSTANT),
-/* 02 */ ACPI_OP ("Alias",              ARGP_ALIAS_OP,             ARGI_ALIAS_OP,              ACPI_TYPE_LOCAL_ALIAS,       AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 03 */ ACPI_OP ("Name",               ARGP_NAME_OP,              ARGI_NAME_OP,               ACPI_TYPE_ANY,               AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_COMPLEX,   AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 04 */ ACPI_OP ("ByteConst",          ARGP_BYTE_OP,              ARGI_BYTE_OP,               ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
-/* 05 */ ACPI_OP ("WordConst",          ARGP_WORD_OP,              ARGI_WORD_OP,               ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
-/* 06 */ ACPI_OP ("DwordConst",         ARGP_DWORD_OP,             ARGI_DWORD_OP,              ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
-/* 07 */ ACPI_OP ("String",             ARGP_STRING_OP,            ARGI_STRING_OP,             ACPI_TYPE_STRING,            AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
-/* 08 */ ACPI_OP ("Scope",              ARGP_SCOPE_OP,             ARGI_SCOPE_OP,              ACPI_TYPE_LOCAL_SCOPE,       AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_NO_OBJ,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 09 */ ACPI_OP ("Buffer",             ARGP_BUFFER_OP,            ARGI_BUFFER_OP,             ACPI_TYPE_BUFFER,            AML_CLASS_CREATE,          AML_TYPE_CREATE_OBJECT,   AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
-/* 0A */ ACPI_OP ("Package",            ARGP_PACKAGE_OP,           ARGI_PACKAGE_OP,            ACPI_TYPE_PACKAGE,           AML_CLASS_CREATE,          AML_TYPE_CREATE_OBJECT,   AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
-/* 0B */ ACPI_OP ("Method",             ARGP_METHOD_OP,            ARGI_METHOD_OP,             ACPI_TYPE_METHOD,            AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_COMPLEX,   AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
-/* 0C */ ACPI_OP ("Local0",             ARGP_LOCAL0,               ARGI_LOCAL0,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
-/* 0D */ ACPI_OP ("Local1",             ARGP_LOCAL1,               ARGI_LOCAL1,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
-/* 0E */ ACPI_OP ("Local2",             ARGP_LOCAL2,               ARGI_LOCAL2,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
-/* 0F */ ACPI_OP ("Local3",             ARGP_LOCAL3,               ARGI_LOCAL3,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
-/* 10 */ ACPI_OP ("Local4",             ARGP_LOCAL4,               ARGI_LOCAL4,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
-/* 11 */ ACPI_OP ("Local5",             ARGP_LOCAL5,               ARGI_LOCAL5,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
-/* 12 */ ACPI_OP ("Local6",             ARGP_LOCAL6,               ARGI_LOCAL6,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
-/* 13 */ ACPI_OP ("Local7",             ARGP_LOCAL7,               ARGI_LOCAL7,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
-/* 14 */ ACPI_OP ("Arg0",               ARGP_ARG0,                 ARGI_ARG0,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
-/* 15 */ ACPI_OP ("Arg1",               ARGP_ARG1,                 ARGI_ARG1,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
-/* 16 */ ACPI_OP ("Arg2",               ARGP_ARG2,                 ARGI_ARG2,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
-/* 17 */ ACPI_OP ("Arg3",               ARGP_ARG3,                 ARGI_ARG3,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
-/* 18 */ ACPI_OP ("Arg4",               ARGP_ARG4,                 ARGI_ARG4,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
-/* 19 */ ACPI_OP ("Arg5",               ARGP_ARG5,                 ARGI_ARG5,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
-/* 1A */ ACPI_OP ("Arg6",               ARGP_ARG6,                 ARGI_ARG6,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
-/* 1B */ ACPI_OP ("Store",              ARGP_STORE_OP,             ARGI_STORE_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R),
-/* 1C */ ACPI_OP ("RefOf",              ARGP_REF_OF_OP,            ARGI_REF_OF_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R),
-/* 1D */ ACPI_OP ("Add",                ARGP_ADD_OP,               ARGI_ADD_OP,                ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 1E */ ACPI_OP ("Concatenate",        ARGP_CONCAT_OP,            ARGI_CONCAT_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
-/* 1F */ ACPI_OP ("Subtract",           ARGP_SUBTRACT_OP,          ARGI_SUBTRACT_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 20 */ ACPI_OP ("Increment",          ARGP_INCREMENT_OP,         ARGI_INCREMENT_OP,          ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
-/* 21 */ ACPI_OP ("Decrement",          ARGP_DECREMENT_OP,         ARGI_DECREMENT_OP,          ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
-/* 22 */ ACPI_OP ("Multiply",           ARGP_MULTIPLY_OP,          ARGI_MULTIPLY_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 23 */ ACPI_OP ("Divide",             ARGP_DIVIDE_OP,            ARGI_DIVIDE_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_2T_1R,   AML_FLAGS_EXEC_2A_2T_1R | AML_CONSTANT),
-/* 24 */ ACPI_OP ("ShiftLeft",          ARGP_SHIFT_LEFT_OP,        ARGI_SHIFT_LEFT_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 25 */ ACPI_OP ("ShiftRight",         ARGP_SHIFT_RIGHT_OP,       ARGI_SHIFT_RIGHT_OP,        ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 26 */ ACPI_OP ("And",                ARGP_BIT_AND_OP,           ARGI_BIT_AND_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 27 */ ACPI_OP ("NAnd",               ARGP_BIT_NAND_OP,          ARGI_BIT_NAND_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 28 */ ACPI_OP ("Or",                 ARGP_BIT_OR_OP,            ARGI_BIT_OR_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 29 */ ACPI_OP ("NOr",                ARGP_BIT_NOR_OP,           ARGI_BIT_NOR_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 2A */ ACPI_OP ("XOr",                ARGP_BIT_XOR_OP,           ARGI_BIT_XOR_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 2B */ ACPI_OP ("Not",                ARGP_BIT_NOT_OP,           ARGI_BIT_NOT_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 2C */ ACPI_OP ("FindSetLeftBit",     ARGP_FIND_SET_LEFT_BIT_OP, ARGI_FIND_SET_LEFT_BIT_OP,  ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 2D */ ACPI_OP ("FindSetRightBit",    ARGP_FIND_SET_RIGHT_BIT_OP,ARGI_FIND_SET_RIGHT_BIT_OP, ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 2E */ ACPI_OP ("DerefOf",            ARGP_DEREF_OF_OP,          ARGI_DEREF_OF_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R),
-/* 2F */ ACPI_OP ("Notify",             ARGP_NOTIFY_OP,            ARGI_NOTIFY_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_0R,   AML_FLAGS_EXEC_2A_0T_0R),
-/* 30 */ ACPI_OP ("SizeOf",             ARGP_SIZE_OF_OP,           ARGI_SIZE_OF_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_NO_OPERAND_RESOLVE),
-/* 31 */ ACPI_OP ("Index",              ARGP_INDEX_OP,             ARGI_INDEX_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R),
-/* 32 */ ACPI_OP ("Match",              ARGP_MATCH_OP,             ARGI_MATCH_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_6A_0T_1R,   AML_FLAGS_EXEC_6A_0T_1R | AML_CONSTANT),
-/* 33 */ ACPI_OP ("CreateDWordField",   ARGP_CREATE_DWORD_FIELD_OP,ARGI_CREATE_DWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 34 */ ACPI_OP ("CreateWordField",    ARGP_CREATE_WORD_FIELD_OP, ARGI_CREATE_WORD_FIELD_OP,  ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 35 */ ACPI_OP ("CreateByteField",    ARGP_CREATE_BYTE_FIELD_OP, ARGI_CREATE_BYTE_FIELD_OP,  ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 36 */ ACPI_OP ("CreateBitField",     ARGP_CREATE_BIT_FIELD_OP,  ARGI_CREATE_BIT_FIELD_OP,   ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 37 */ ACPI_OP ("ObjectType",         ARGP_TYPE_OP,              ARGI_TYPE_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_NO_OPERAND_RESOLVE),
-/* 38 */ ACPI_OP ("LAnd",               ARGP_LAND_OP,              ARGI_LAND_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL_NUMERIC | AML_CONSTANT),
-/* 39 */ ACPI_OP ("LOr",                ARGP_LOR_OP,               ARGI_LOR_OP,                ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL_NUMERIC | AML_CONSTANT),
-/* 3A */ ACPI_OP ("LNot",               ARGP_LNOT_OP,              ARGI_LNOT_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
-/* 3B */ ACPI_OP ("LEqual",             ARGP_LEQUAL_OP,            ARGI_LEQUAL_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
-/* 3C */ ACPI_OP ("LGreater",           ARGP_LGREATER_OP,          ARGI_LGREATER_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
-/* 3D */ ACPI_OP ("LLess",              ARGP_LLESS_OP,             ARGI_LLESS_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
-/* 3E */ ACPI_OP ("If",                 ARGP_IF_OP,                ARGI_IF_OP,                 ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         AML_HAS_ARGS),
-/* 3F */ ACPI_OP ("Else",               ARGP_ELSE_OP,              ARGI_ELSE_OP,               ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         AML_HAS_ARGS),
-/* 40 */ ACPI_OP ("While",              ARGP_WHILE_OP,             ARGI_WHILE_OP,              ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         AML_HAS_ARGS),
-/* 41 */ ACPI_OP ("Noop",               ARGP_NOOP_OP,              ARGI_NOOP_OP,               ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         0),
-/* 42 */ ACPI_OP ("Return",             ARGP_RETURN_OP,            ARGI_RETURN_OP,             ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         AML_HAS_ARGS),
-/* 43 */ ACPI_OP ("Break",              ARGP_BREAK_OP,             ARGI_BREAK_OP,              ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         0),
-/* 44 */ ACPI_OP ("BreakPoint",         ARGP_BREAK_POINT_OP,       ARGI_BREAK_POINT_OP,        ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         0),
-/* 45 */ ACPI_OP ("Ones",               ARGP_ONES_OP,              ARGI_ONES_OP,               ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        AML_CONSTANT),
-
-/* Prefixed opcodes (Two-byte opcodes with a prefix op) */
-
-/* 46 */ ACPI_OP ("Mutex",              ARGP_MUTEX_OP,             ARGI_MUTEX_OP,              ACPI_TYPE_MUTEX,             AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 47 */ ACPI_OP ("Event",              ARGP_EVENT_OP,             ARGI_EVENT_OP,              ACPI_TYPE_EVENT,             AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
-/* 48 */ ACPI_OP ("CondRefOf",          ARGP_COND_REF_OF_OP,       ARGI_COND_REF_OF_OP,        ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R),
-/* 49 */ ACPI_OP ("CreateField",        ARGP_CREATE_FIELD_OP,      ARGI_CREATE_FIELD_OP,       ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_FIELD | AML_CREATE),
-/* 4A */ ACPI_OP ("Load",               ARGP_LOAD_OP,              ARGI_LOAD_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_0R,   AML_FLAGS_EXEC_1A_1T_0R),
-/* 4B */ ACPI_OP ("Stall",              ARGP_STALL_OP,             ARGI_STALL_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
-/* 4C */ ACPI_OP ("Sleep",              ARGP_SLEEP_OP,             ARGI_SLEEP_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
-/* 4D */ ACPI_OP ("Acquire",            ARGP_ACQUIRE_OP,           ARGI_ACQUIRE_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R),
-/* 4E */ ACPI_OP ("Signal",             ARGP_SIGNAL_OP,            ARGI_SIGNAL_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
-/* 4F */ ACPI_OP ("Wait",               ARGP_WAIT_OP,              ARGI_WAIT_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R),
-/* 50 */ ACPI_OP ("Reset",              ARGP_RESET_OP,             ARGI_RESET_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
-/* 51 */ ACPI_OP ("Release",            ARGP_RELEASE_OP,           ARGI_RELEASE_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
-/* 52 */ ACPI_OP ("FromBCD",            ARGP_FROM_BCD_OP,          ARGI_FROM_BCD_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 53 */ ACPI_OP ("ToBCD",              ARGP_TO_BCD_OP,            ARGI_TO_BCD_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 54 */ ACPI_OP ("Unload",             ARGP_UNLOAD_OP,            ARGI_UNLOAD_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
-/* 55 */ ACPI_OP ("Revision",           ARGP_REVISION_OP,          ARGI_REVISION_OP,           ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        0),
-/* 56 */ ACPI_OP ("Debug",              ARGP_DEBUG_OP,             ARGI_DEBUG_OP,              ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        0),
-/* 57 */ ACPI_OP ("Fatal",              ARGP_FATAL_OP,             ARGI_FATAL_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_3A_0T_0R,   AML_FLAGS_EXEC_3A_0T_0R),
-/* 58 */ ACPI_OP ("OperationRegion",    ARGP_REGION_OP,            ARGI_REGION_OP,             ACPI_TYPE_REGION,            AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_COMPLEX,   AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
-/* 59 */ ACPI_OP ("Field",              ARGP_FIELD_OP,             ARGI_FIELD_OP,              ACPI_TYPE_ANY,               AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_FIELD,     AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
-/* 5A */ ACPI_OP ("Device",             ARGP_DEVICE_OP,            ARGI_DEVICE_OP,             ACPI_TYPE_DEVICE,            AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_NO_OBJ,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 5B */ ACPI_OP ("Processor",          ARGP_PROCESSOR_OP,         ARGI_PROCESSOR_OP,          ACPI_TYPE_PROCESSOR,         AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 5C */ ACPI_OP ("PowerResource",      ARGP_POWER_RES_OP,         ARGI_POWER_RES_OP,          ACPI_TYPE_POWER,             AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 5D */ ACPI_OP ("ThermalZone",        ARGP_THERMAL_ZONE_OP,      ARGI_THERMAL_ZONE_OP,       ACPI_TYPE_THERMAL,           AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_NO_OBJ,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 5E */ ACPI_OP ("IndexField",         ARGP_INDEX_FIELD_OP,       ARGI_INDEX_FIELD_OP,        ACPI_TYPE_ANY,               AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_FIELD,     AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
-/* 5F */ ACPI_OP ("BankField",          ARGP_BANK_FIELD_OP,        ARGI_BANK_FIELD_OP,         ACPI_TYPE_LOCAL_BANK_FIELD,  AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_FIELD,     AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD | AML_DEFER),
-
-/* Internal opcodes that map to invalid AML opcodes */
-
-/* 60 */ ACPI_OP ("LNotEqual",          ARGP_LNOTEQUAL_OP,         ARGI_LNOTEQUAL_OP,          ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           AML_HAS_ARGS | AML_CONSTANT),
-/* 61 */ ACPI_OP ("LLessEqual",         ARGP_LLESSEQUAL_OP,        ARGI_LLESSEQUAL_OP,         ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           AML_HAS_ARGS | AML_CONSTANT),
-/* 62 */ ACPI_OP ("LGreaterEqual",      ARGP_LGREATEREQUAL_OP,     ARGI_LGREATEREQUAL_OP,      ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           AML_HAS_ARGS | AML_CONSTANT),
-/* 63 */ ACPI_OP ("-NamePath-",         ARGP_NAMEPATH_OP,          ARGI_NAMEPATH_OP,           ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_NSOBJECT | AML_NSNODE ),
-/* 64 */ ACPI_OP ("-MethodCall-",       ARGP_METHODCALL_OP,        ARGI_METHODCALL_OP,         ACPI_TYPE_METHOD,            AML_CLASS_METHOD_CALL,     AML_TYPE_METHOD_CALL,     AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE),
-/* 65 */ ACPI_OP ("-ByteList-",         ARGP_BYTELIST_OP,          ARGI_BYTELIST_OP,           ACPI_TYPE_ANY,               AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         0),
-/* 66 */ ACPI_OP ("-ReservedField-",    ARGP_RESERVEDFIELD_OP,     ARGI_RESERVEDFIELD_OP,      ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           0),
-/* 67 */ ACPI_OP ("-NamedField-",       ARGP_NAMEDFIELD_OP,        ARGI_NAMEDFIELD_OP,         ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
-/* 68 */ ACPI_OP ("-AccessField-",      ARGP_ACCESSFIELD_OP,       ARGI_ACCESSFIELD_OP,        ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           0),
-/* 69 */ ACPI_OP ("-StaticString",      ARGP_STATICSTRING_OP,      ARGI_STATICSTRING_OP,       ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           0),
-/* 6A */ ACPI_OP ("-Return Value-",     ARG_NONE,                  ARG_NONE,                   ACPI_TYPE_ANY,               AML_CLASS_RETURN_VALUE,    AML_TYPE_RETURN,          AML_HAS_ARGS | AML_HAS_RETVAL),
-/* 6B */ ACPI_OP ("-UNKNOWN_OP-",       ARG_NONE,                  ARG_NONE,                   ACPI_TYPE_INVALID,           AML_CLASS_UNKNOWN,         AML_TYPE_BOGUS,           AML_HAS_ARGS),
-/* 6C */ ACPI_OP ("-ASCII_ONLY-",       ARG_NONE,                  ARG_NONE,                   ACPI_TYPE_ANY,               AML_CLASS_ASCII,           AML_TYPE_BOGUS,           AML_HAS_ARGS),
-/* 6D */ ACPI_OP ("-PREFIX_ONLY-",      ARG_NONE,                  ARG_NONE,                   ACPI_TYPE_ANY,               AML_CLASS_PREFIX,          AML_TYPE_BOGUS,           AML_HAS_ARGS),
-
-/* ACPI 2.0 opcodes */
-
-/* 6E */ ACPI_OP ("QwordConst",         ARGP_QWORD_OP,             ARGI_QWORD_OP,              ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
-/* 6F */ ACPI_OP ("Package", /* Var */  ARGP_VAR_PACKAGE_OP,       ARGI_VAR_PACKAGE_OP,        ACPI_TYPE_PACKAGE,           AML_CLASS_CREATE,          AML_TYPE_CREATE_OBJECT,   AML_HAS_ARGS | AML_DEFER),
-/* 70 */ ACPI_OP ("ConcatenateResTemplate", ARGP_CONCAT_RES_OP,    ARGI_CONCAT_RES_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
-/* 71 */ ACPI_OP ("Mod",                ARGP_MOD_OP,               ARGI_MOD_OP,                ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
-/* 72 */ ACPI_OP ("CreateQWordField",   ARGP_CREATE_QWORD_FIELD_OP,ARGI_CREATE_QWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 73 */ ACPI_OP ("ToBuffer",           ARGP_TO_BUFFER_OP,         ARGI_TO_BUFFER_OP,          ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 74 */ ACPI_OP ("ToDecimalString",    ARGP_TO_DEC_STR_OP,        ARGI_TO_DEC_STR_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 75 */ ACPI_OP ("ToHexString",        ARGP_TO_HEX_STR_OP,        ARGI_TO_HEX_STR_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 76 */ ACPI_OP ("ToInteger",          ARGP_TO_INTEGER_OP,        ARGI_TO_INTEGER_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 77 */ ACPI_OP ("ToString",           ARGP_TO_STRING_OP,         ARGI_TO_STRING_OP,          ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
-/* 78 */ ACPI_OP ("CopyObject",         ARGP_COPY_OP,              ARGI_COPY_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R),
-/* 79 */ ACPI_OP ("Mid",                ARGP_MID_OP,               ARGI_MID_OP,                ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_3A_1T_1R,   AML_FLAGS_EXEC_3A_1T_1R | AML_CONSTANT),
-/* 7A */ ACPI_OP ("Continue",           ARGP_CONTINUE_OP,          ARGI_CONTINUE_OP,           ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         0),
-/* 7B */ ACPI_OP ("LoadTable",          ARGP_LOAD_TABLE_OP,        ARGI_LOAD_TABLE_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_6A_0T_1R,   AML_FLAGS_EXEC_6A_0T_1R),
-/* 7C */ ACPI_OP ("DataTableRegion",    ARGP_DATA_REGION_OP,       ARGI_DATA_REGION_OP,        ACPI_TYPE_REGION,            AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_COMPLEX,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
-/* 7D */ ACPI_OP ("[EvalSubTree]",      ARGP_SCOPE_OP,             ARGI_SCOPE_OP,              ACPI_TYPE_ANY,               AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_NO_OBJ,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE),
-
-/* ACPI 3.0 opcodes */
-
-/* 7E */ ACPI_OP ("Timer",              ARGP_TIMER_OP,             ARGI_TIMER_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_0A_0T_1R,   AML_FLAGS_EXEC_0A_0T_1R)
-
-/*! [End] no source code translation !*/
-};
-
-/*
- * This table is directly indexed by the opcodes, and returns an
- * index into the table above
- */
-static const UINT8 AcpiGbl_ShortOpIndex[256] =
-{
-/*              0     1     2     3     4     5     6     7  */
-/*              8     9     A     B     C     D     E     F  */
-/* 0x00 */    0x00, 0x01, _UNK, _UNK, _UNK, _UNK, 0x02, _UNK,
-/* 0x08 */    0x03, _UNK, 0x04, 0x05, 0x06, 0x07, 0x6E, _UNK,
-/* 0x10 */    0x08, 0x09, 0x0a, 0x6F, 0x0b, _UNK, _UNK, _UNK,
-/* 0x18 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x20 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x28 */    _UNK, _UNK, _UNK, _UNK, _UNK, 0x63, _PFX, _PFX,
-/* 0x30 */    0x67, 0x66, 0x68, 0x65, 0x69, 0x64, 0x6A, 0x7D,
-/* 0x38 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x40 */    _UNK, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
-/* 0x48 */    _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
-/* 0x50 */    _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
-/* 0x58 */    _ASC, _ASC, _ASC, _UNK, _PFX, _UNK, _PFX, _ASC,
-/* 0x60 */    0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
-/* 0x68 */    0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, _UNK,
-/* 0x70 */    0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22,
-/* 0x78 */    0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a,
-/* 0x80 */    0x2b, 0x2c, 0x2d, 0x2e, 0x70, 0x71, 0x2f, 0x30,
-/* 0x88 */    0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x72,
-/* 0x90 */    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x73, 0x74,
-/* 0x98 */    0x75, 0x76, _UNK, _UNK, 0x77, 0x78, 0x79, 0x7A,
-/* 0xA0 */    0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x60, 0x61,
-/* 0xA8 */    0x62, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xB0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xB8 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xC0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xC8 */    _UNK, _UNK, _UNK, _UNK, 0x44, _UNK, _UNK, _UNK,
-/* 0xD0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xD8 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xE0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xE8 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xF0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xF8 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, 0x45,
-};
-
-/*
- * This table is indexed by the second opcode of the extended opcode
- * pair.  It returns an index into the opcode table (AcpiGbl_AmlOpInfo)
- */
-static const UINT8 AcpiGbl_LongOpIndex[NUM_EXTENDED_OPCODE] =
-{
-/*              0     1     2     3     4     5     6     7  */
-/*              8     9     A     B     C     D     E     F  */
-/* 0x00 */    _UNK, 0x46, 0x47, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x08 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x10 */    _UNK, _UNK, 0x48, 0x49, _UNK, _UNK, _UNK, _UNK,
-/* 0x18 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, 0x7B,
-/* 0x20 */    0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51,
-/* 0x28 */    0x52, 0x53, 0x54, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x30 */    0x55, 0x56, 0x57, 0x7e, _UNK, _UNK, _UNK, _UNK,
-/* 0x38 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x40 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x48 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x50 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x58 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x60 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x68 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x70 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x78 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x80 */    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
-/* 0x88 */    0x7C,
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetOpcodeInfo
- *
- * PARAMETERS:  Opcode              - The AML opcode
- *
- * RETURN:      A pointer to the info about the opcode.
- *
- * DESCRIPTION: Find AML opcode description based on the opcode.
- *              NOTE: This procedure must ALWAYS return a valid pointer!
- *
- ******************************************************************************/
-
-const ACPI_OPCODE_INFO *
-AcpiPsGetOpcodeInfo (
-    UINT16                  Opcode)
-{
-    ACPI_FUNCTION_NAME (PsGetOpcodeInfo);
-
-
-    /*
-     * Detect normal 8-bit opcode or extended 16-bit opcode
-     */
-    if (!(Opcode & 0xFF00))
-    {
-        /* Simple (8-bit) opcode: 0-255, can't index beyond table  */
-
-        return (&AcpiGbl_AmlOpInfo [AcpiGbl_ShortOpIndex [(UINT8) Opcode]]);
-    }
-
-    if (((Opcode & 0xFF00) == AML_EXTENDED_OPCODE) &&
-        (((UINT8) Opcode) <= MAX_EXTENDED_OPCODE))
-    {
-        /* Valid extended (16-bit) opcode */
-
-        return (&AcpiGbl_AmlOpInfo [AcpiGbl_LongOpIndex [(UINT8) Opcode]]);
-    }
-
-    /* Unknown AML opcode */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-        "Unknown AML opcode [%4.4X]\n", Opcode));
-
-    return (&AcpiGbl_AmlOpInfo [_UNK]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetOpcodeName
- *
- * PARAMETERS:  Opcode              - The AML opcode
- *
- * RETURN:      A pointer to the name of the opcode (ASCII String)
- *              Note: Never returns NULL.
- *
- * DESCRIPTION: Translate an opcode into a human-readable string
- *
- ******************************************************************************/
-
-char *
-AcpiPsGetOpcodeName (
-    UINT16                  Opcode)
-{
-#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
-
-    const ACPI_OPCODE_INFO  *Op;
-
-
-    Op = AcpiPsGetOpcodeInfo (Opcode);
-
-    /* Always guaranteed to return a valid pointer */
-
-    return (Op->Name);
-
-#else
-    return ("OpcodeName unavailable");
-
-#endif
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetArgumentCount
- *
- * PARAMETERS:  OpType              - Type associated with the AML opcode
- *
- * RETURN:      Argument count
- *
- * DESCRIPTION: Obtain the number of expected arguments for an AML opcode
- *
- ******************************************************************************/
-
-UINT8
-AcpiPsGetArgumentCount (
-    UINT32                  OpType)
-{
-
-    if (OpType <= AML_TYPE_EXEC_6A_0T_1R)
-    {
-        return (AcpiGbl_ArgumentCount[OpType]);
-    }
-
-    return (0);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/parser/psparse.c b/l4/pkg/acpica/lib-acpi/src/acpica/parser/psparse.c
deleted file mode 100644 (file)
index 820f54b..0000000
+++ /dev/null
@@ -1,791 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psparse - Parser top level AML parse routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-/*
- * Parse the AML and build an operation tree as most interpreters,
- * like Perl, do.  Parsing is done by hand rather than with a YACC
- * generated parser to tightly constrain stack and dynamic memory
- * usage.  At the same time, parsing is kept flexible and the code
- * fairly compact by parsing based on a list of AML opcode
- * templates in AmlOpInfo[]
- */
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "acdispat.h"
-#include "amlcode.h"
-#include "acnamesp.h"
-#include "acinterp.h"
-
-#define _COMPONENT          ACPI_PARSER
-        ACPI_MODULE_NAME    ("psparse")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetOpcodeSize
- *
- * PARAMETERS:  Opcode          - An AML opcode
- *
- * RETURN:      Size of the opcode, in bytes (1 or 2)
- *
- * DESCRIPTION: Get the size of the current opcode.
- *
- ******************************************************************************/
-
-UINT32
-AcpiPsGetOpcodeSize (
-    UINT32                  Opcode)
-{
-
-    /* Extended (2-byte) opcode if > 255 */
-
-    if (Opcode > 0x00FF)
-    {
-        return (2);
-    }
-
-    /* Otherwise, just a single byte opcode */
-
-    return (1);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsPeekOpcode
- *
- * PARAMETERS:  ParserState         - A parser state object
- *
- * RETURN:      Next AML opcode
- *
- * DESCRIPTION: Get next AML opcode (without incrementing AML pointer)
- *
- ******************************************************************************/
-
-UINT16
-AcpiPsPeekOpcode (
-    ACPI_PARSE_STATE        *ParserState)
-{
-    UINT8                   *Aml;
-    UINT16                  Opcode;
-
-
-    Aml = ParserState->Aml;
-    Opcode = (UINT16) ACPI_GET8 (Aml);
-
-    if (Opcode == AML_EXTENDED_OP_PREFIX)
-    {
-        /* Extended opcode, get the second opcode byte */
-
-        Aml++;
-        Opcode = (UINT16) ((Opcode << 8) | ACPI_GET8 (Aml));
-    }
-
-    return (Opcode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsCompleteThisOp
- *
- * PARAMETERS:  WalkState       - Current State
- *              Op              - Op to complete
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Perform any cleanup at the completion of an Op.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsCompleteThisOp (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_PARSE_OBJECT       *Prev;
-    ACPI_PARSE_OBJECT       *Next;
-    const ACPI_OPCODE_INFO  *ParentInfo;
-    ACPI_PARSE_OBJECT       *ReplacementOp = NULL;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsCompleteThisOp, Op);
-
-
-    /* Check for null Op, can happen if AML code is corrupt */
-
-    if (!Op)
-    {
-        return_ACPI_STATUS (AE_OK);  /* OK for now */
-    }
-
-    /* Delete this op and the subtree below it if asked to */
-
-    if (((WalkState->ParseFlags & ACPI_PARSE_TREE_MASK) != ACPI_PARSE_DELETE_TREE) ||
-         (WalkState->OpInfo->Class == AML_CLASS_ARGUMENT))
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Make sure that we only delete this subtree */
-
-    if (Op->Common.Parent)
-    {
-        Prev = Op->Common.Parent->Common.Value.Arg;
-        if (!Prev)
-        {
-            /* Nothing more to do */
-
-            goto Cleanup;
-        }
-
-        /*
-         * Check if we need to replace the operator and its subtree
-         * with a return value op (placeholder op)
-         */
-        ParentInfo = AcpiPsGetOpcodeInfo (Op->Common.Parent->Common.AmlOpcode);
-
-        switch (ParentInfo->Class)
-        {
-        case AML_CLASS_CONTROL:
-            break;
-
-        case AML_CLASS_CREATE:
-
-            /*
-             * These opcodes contain TermArg operands.  The current
-             * op must be replaced by a placeholder return op
-             */
-            ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP);
-            if (!ReplacementOp)
-            {
-                Status = AE_NO_MEMORY;
-            }
-            break;
-
-        case AML_CLASS_NAMED_OBJECT:
-
-            /*
-             * These opcodes contain TermArg operands.  The current
-             * op must be replaced by a placeholder return op
-             */
-            if ((Op->Common.Parent->Common.AmlOpcode == AML_REGION_OP)       ||
-                (Op->Common.Parent->Common.AmlOpcode == AML_DATA_REGION_OP)  ||
-                (Op->Common.Parent->Common.AmlOpcode == AML_BUFFER_OP)       ||
-                (Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP)      ||
-                (Op->Common.Parent->Common.AmlOpcode == AML_BANK_FIELD_OP)   ||
-                (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP))
-            {
-                ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP);
-                if (!ReplacementOp)
-                {
-                    Status = AE_NO_MEMORY;
-                }
-            }
-            else if ((Op->Common.Parent->Common.AmlOpcode == AML_NAME_OP) &&
-                     (WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS2))
-            {
-                if ((Op->Common.AmlOpcode == AML_BUFFER_OP) ||
-                    (Op->Common.AmlOpcode == AML_PACKAGE_OP) ||
-                    (Op->Common.AmlOpcode == AML_VAR_PACKAGE_OP))
-                {
-                    ReplacementOp = AcpiPsAllocOp (Op->Common.AmlOpcode);
-                    if (!ReplacementOp)
-                    {
-                        Status = AE_NO_MEMORY;
-                    }
-                    else
-                    {
-                        ReplacementOp->Named.Data = Op->Named.Data;
-                        ReplacementOp->Named.Length = Op->Named.Length;
-                    }
-                }
-            }
-            break;
-
-        default:
-
-            ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP);
-            if (!ReplacementOp)
-            {
-                Status = AE_NO_MEMORY;
-            }
-        }
-
-        /* We must unlink this op from the parent tree */
-
-        if (Prev == Op)
-        {
-            /* This op is the first in the list */
-
-            if (ReplacementOp)
-            {
-                ReplacementOp->Common.Parent        = Op->Common.Parent;
-                ReplacementOp->Common.Value.Arg     = NULL;
-                ReplacementOp->Common.Node          = Op->Common.Node;
-                Op->Common.Parent->Common.Value.Arg = ReplacementOp;
-                ReplacementOp->Common.Next          = Op->Common.Next;
-            }
-            else
-            {
-                Op->Common.Parent->Common.Value.Arg = Op->Common.Next;
-            }
-        }
-
-        /* Search the parent list */
-
-        else while (Prev)
-        {
-            /* Traverse all siblings in the parent's argument list */
-
-            Next = Prev->Common.Next;
-            if (Next == Op)
-            {
-                if (ReplacementOp)
-                {
-                    ReplacementOp->Common.Parent    = Op->Common.Parent;
-                    ReplacementOp->Common.Value.Arg = NULL;
-                    ReplacementOp->Common.Node      = Op->Common.Node;
-                    Prev->Common.Next               = ReplacementOp;
-                    ReplacementOp->Common.Next      = Op->Common.Next;
-                    Next = NULL;
-                }
-                else
-                {
-                    Prev->Common.Next = Op->Common.Next;
-                    Next = NULL;
-                }
-            }
-            Prev = Next;
-        }
-    }
-
-
-Cleanup:
-
-    /* Now we can actually delete the subtree rooted at Op */
-
-    AcpiPsDeleteParseTree (Op);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsNextParseState
- *
- * PARAMETERS:  WalkState           - Current state
- *              Op                  - Current parse op
- *              CallbackStatus      - Status from previous operation
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Update the parser state based upon the return exception from
- *              the parser callback.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsNextParseState (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_STATUS             CallbackStatus)
-{
-    ACPI_PARSE_STATE        *ParserState = &WalkState->ParserState;
-    ACPI_STATUS             Status = AE_CTRL_PENDING;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsNextParseState, Op);
-
-
-    switch (CallbackStatus)
-    {
-    case AE_CTRL_TERMINATE:
-        /*
-         * A control method was terminated via a RETURN statement.
-         * The walk of this method is complete.
-         */
-        ParserState->Aml = ParserState->AmlEnd;
-        Status = AE_CTRL_TERMINATE;
-        break;
-
-
-    case AE_CTRL_BREAK:
-
-        ParserState->Aml = WalkState->AmlLastWhile;
-        WalkState->ControlState->Common.Value = FALSE;
-        Status = AE_CTRL_BREAK;
-        break;
-
-
-    case AE_CTRL_CONTINUE:
-
-        ParserState->Aml = WalkState->AmlLastWhile;
-        Status = AE_CTRL_CONTINUE;
-        break;
-
-
-    case AE_CTRL_PENDING:
-
-        ParserState->Aml = WalkState->AmlLastWhile;
-        break;
-
-#if 0
-    case AE_CTRL_SKIP:
-
-        ParserState->Aml = ParserState->Scope->ParseScope.PkgEnd;
-        Status = AE_OK;
-        break;
-#endif
-
-    case AE_CTRL_TRUE:
-        /*
-         * Predicate of an IF was true, and we are at the matching ELSE.
-         * Just close out this package
-         */
-        ParserState->Aml = AcpiPsGetNextPackageEnd (ParserState);
-        Status = AE_CTRL_PENDING;
-        break;
-
-
-    case AE_CTRL_FALSE:
-        /*
-         * Either an IF/WHILE Predicate was false or we encountered a BREAK
-         * opcode.  In both cases, we do not execute the rest of the
-         * package;  We simply close out the parent (finishing the walk of
-         * this branch of the tree) and continue execution at the parent
-         * level.
-         */
-        ParserState->Aml = ParserState->Scope->ParseScope.PkgEnd;
-
-        /* In the case of a BREAK, just force a predicate (if any) to FALSE */
-
-        WalkState->ControlState->Common.Value = FALSE;
-        Status = AE_CTRL_END;
-        break;
-
-
-    case AE_CTRL_TRANSFER:
-
-        /* A method call (invocation) -- transfer control */
-
-        Status = AE_CTRL_TRANSFER;
-        WalkState->PrevOp = Op;
-        WalkState->MethodCallOp = Op;
-        WalkState->MethodCallNode = (Op->Common.Value.Arg)->Common.Node;
-
-        /* Will return value (if any) be used by the caller? */
-
-        WalkState->ReturnUsed = AcpiDsIsResultUsed (Op, WalkState);
-        break;
-
-
-    default:
-
-        Status = CallbackStatus;
-        if ((CallbackStatus & AE_CODE_MASK) == AE_CODE_CONTROL)
-        {
-            Status = AE_OK;
-        }
-        break;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsParseAml
- *
- * PARAMETERS:  WalkState       - Current state
- *
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Parse raw AML and return a tree of ops
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsParseAml (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_THREAD_STATE       *Thread;
-    ACPI_THREAD_STATE       *PrevWalkList = AcpiGbl_CurrentWalkList;
-    ACPI_WALK_STATE         *PreviousWalkState;
-
-
-    ACPI_FUNCTION_TRACE (PsParseAml);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-        "Entered with WalkState=%p Aml=%p size=%X\n",
-        WalkState, WalkState->ParserState.Aml,
-        WalkState->ParserState.AmlSize));
-
-    if (!WalkState->ParserState.Aml)
-    {
-        return_ACPI_STATUS (AE_NULL_OBJECT);
-    }
-
-    /* Create and initialize a new thread state */
-
-    Thread = AcpiUtCreateThreadState ();
-    if (!Thread)
-    {
-        if (WalkState->MethodDesc)
-        {
-            /* Executing a control method - additional cleanup */
-
-            AcpiDsTerminateControlMethod (WalkState->MethodDesc, WalkState);
-        }
-
-        AcpiDsDeleteWalkState (WalkState);
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    WalkState->Thread = Thread;
-
-    /*
-     * If executing a method, the starting SyncLevel is this method's
-     * SyncLevel
-     */
-    if (WalkState->MethodDesc)
-    {
-        WalkState->Thread->CurrentSyncLevel = WalkState->MethodDesc->Method.SyncLevel;
-    }
-
-    AcpiDsPushWalkState (WalkState, Thread);
-
-    /*
-     * This global allows the AML debugger to get a handle to the currently
-     * executing control method.
-     */
-    AcpiGbl_CurrentWalkList = Thread;
-
-    /*
-     * Execute the walk loop as long as there is a valid Walk State.  This
-     * handles nested control method invocations without recursion.
-     */
-    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "State=%p\n", WalkState));
-
-    Status = AE_OK;
-    while (WalkState)
-    {
-        if (ACPI_SUCCESS (Status))
-        {
-            /*
-             * The ParseLoop executes AML until the method terminates
-             * or calls another method.
-             */
-            Status = AcpiPsParseLoop (WalkState);
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-            "Completed one call to walk loop, %s State=%p\n",
-            AcpiFormatException (Status), WalkState));
-
-        if (Status == AE_CTRL_TRANSFER)
-        {
-            /*
-             * A method call was detected.
-             * Transfer control to the called control method
-             */
-            Status = AcpiDsCallControlMethod (Thread, WalkState, NULL);
-            if (ACPI_FAILURE (Status))
-            {
-                Status = AcpiDsMethodError (Status, WalkState);
-            }
-
-            /*
-             * If the transfer to the new method method call worked, a new walk
-             * state was created -- get it
-             */
-            WalkState = AcpiDsGetCurrentWalkState (Thread);
-            continue;
-        }
-        else if (Status == AE_CTRL_TERMINATE)
-        {
-            Status = AE_OK;
-        }
-        else if ((Status != AE_OK) && (WalkState->MethodDesc))
-        {
-            /* Either the method parse or actual execution failed */
-
-            ACPI_ERROR_METHOD ("Method parse/execution failed",
-                WalkState->MethodNode, NULL, Status);
-
-            /* Check for possible multi-thread reentrancy problem */
-
-            if ((Status == AE_ALREADY_EXISTS) &&
-                (!WalkState->MethodDesc->Method.Mutex))
-            {
-                ACPI_INFO ((AE_INFO,
-                    "Marking method %4.4s as Serialized because of AE_ALREADY_EXISTS error",
-                    WalkState->MethodNode->Name.Ascii));
-
-                /*
-                 * Method tried to create an object twice. The probable cause is
-                 * that the method cannot handle reentrancy.
-                 *
-                 * The method is marked NotSerialized, but it tried to create
-                 * a named object, causing the second thread entrance to fail.
-                 * Workaround this problem by marking the method permanently
-                 * as Serialized.
-                 */
-                WalkState->MethodDesc->Method.MethodFlags |= AML_METHOD_SERIALIZED;
-                WalkState->MethodDesc->Method.SyncLevel = 0;
-            }
-        }
-
-        /* We are done with this walk, move on to the parent if any */
-
-        WalkState = AcpiDsPopWalkState (Thread);
-
-        /* Reset the current scope to the beginning of scope stack */
-
-        AcpiDsScopeStackClear (WalkState);
-
-        /*
-         * If we just returned from the execution of a control method or if we
-         * encountered an error during the method parse phase, there's lots of
-         * cleanup to do
-         */
-        if (((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE) ||
-            (ACPI_FAILURE (Status)))
-        {
-            AcpiDsTerminateControlMethod (WalkState->MethodDesc, WalkState);
-        }
-
-        /* Delete this walk state and all linked control states */
-
-        AcpiPsCleanupScope (&WalkState->ParserState);
-        PreviousWalkState = WalkState;
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-            "ReturnValue=%p, ImplicitValue=%p State=%p\n",
-            WalkState->ReturnDesc, WalkState->ImplicitReturnObj, WalkState));
-
-        /* Check if we have restarted a preempted walk */
-
-        WalkState = AcpiDsGetCurrentWalkState (Thread);
-        if (WalkState)
-        {
-            if (ACPI_SUCCESS (Status))
-            {
-                /*
-                 * There is another walk state, restart it.
-                 * If the method return value is not used by the parent,
-                 * The object is deleted
-                 */
-                if (!PreviousWalkState->ReturnDesc)
-                {
-                    /*
-                     * In slack mode execution, if there is no return value
-                     * we should implicitly return zero (0) as a default value.
-                     */
-                    if (AcpiGbl_EnableInterpreterSlack &&
-                        !PreviousWalkState->ImplicitReturnObj)
-                    {
-                        PreviousWalkState->ImplicitReturnObj =
-                            AcpiUtCreateIntegerObject ((UINT64) 0);
-                        if (!PreviousWalkState->ImplicitReturnObj)
-                        {
-                            return_ACPI_STATUS (AE_NO_MEMORY);
-                        }
-                    }
-
-                    /* Restart the calling control method */
-
-                    Status = AcpiDsRestartControlMethod (WalkState,
-                                PreviousWalkState->ImplicitReturnObj);
-                }
-                else
-                {
-                    /*
-                     * We have a valid return value, delete any implicit
-                     * return value.
-                     */
-                    AcpiDsClearImplicitReturn (PreviousWalkState);
-
-                    Status = AcpiDsRestartControlMethod (WalkState,
-                                PreviousWalkState->ReturnDesc);
-                }
-                if (ACPI_SUCCESS (Status))
-                {
-                    WalkState->WalkType |= ACPI_WALK_METHOD_RESTART;
-                }
-            }
-            else
-            {
-                /* On error, delete any return object or implicit return */
-
-                AcpiUtRemoveReference (PreviousWalkState->ReturnDesc);
-                AcpiDsClearImplicitReturn (PreviousWalkState);
-            }
-        }
-
-        /*
-         * Just completed a 1st-level method, save the final internal return
-         * value (if any)
-         */
-        else if (PreviousWalkState->CallerReturnDesc)
-        {
-            if (PreviousWalkState->ImplicitReturnObj)
-            {
-                *(PreviousWalkState->CallerReturnDesc) =
-                    PreviousWalkState->ImplicitReturnObj;
-            }
-            else
-            {
-                 /* NULL if no return value */
-
-                *(PreviousWalkState->CallerReturnDesc) =
-                    PreviousWalkState->ReturnDesc;
-            }
-        }
-        else
-        {
-            if (PreviousWalkState->ReturnDesc)
-            {
-                /* Caller doesn't want it, must delete it */
-
-                AcpiUtRemoveReference (PreviousWalkState->ReturnDesc);
-            }
-            if (PreviousWalkState->ImplicitReturnObj)
-            {
-                /* Caller doesn't want it, must delete it */
-
-                AcpiUtRemoveReference (PreviousWalkState->ImplicitReturnObj);
-            }
-        }
-
-        AcpiDsDeleteWalkState (PreviousWalkState);
-    }
-
-    /* Normal exit */
-
-    AcpiExReleaseAllMutexes (Thread);
-    AcpiUtDeleteGenericState (ACPI_CAST_PTR (ACPI_GENERIC_STATE, Thread));
-    AcpiGbl_CurrentWalkList = PrevWalkList;
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/parser/psscope.c b/l4/pkg/acpica/lib-acpi/src/acpica/parser/psscope.c
deleted file mode 100644 (file)
index 979dbb1..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psscope - Parser scope stack management routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-
-#define _COMPONENT          ACPI_PARSER
-        ACPI_MODULE_NAME    ("psscope")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetParentScope
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *
- * RETURN:      Pointer to an Op object
- *
- * DESCRIPTION: Get parent of current op being parsed
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetParentScope (
-    ACPI_PARSE_STATE        *ParserState)
-{
-
-    return (ParserState->Scope->ParseScope.Op);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsHasCompletedScope
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *
- * RETURN:      Boolean, TRUE = scope completed.
- *
- * DESCRIPTION: Is parsing of current argument complete?  Determined by
- *              1) AML pointer is at or beyond the end of the scope
- *              2) The scope argument count has reached zero.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiPsHasCompletedScope (
-    ACPI_PARSE_STATE        *ParserState)
-{
-
-    return ((BOOLEAN)
-            ((ParserState->Aml >= ParserState->Scope->ParseScope.ArgEnd ||
-             !ParserState->Scope->ParseScope.ArgCount)));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsInitScope
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *              Root                - the Root Node of this new scope
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Allocate and init a new scope object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsInitScope (
-    ACPI_PARSE_STATE        *ParserState,
-    ACPI_PARSE_OBJECT       *RootOp)
-{
-    ACPI_GENERIC_STATE      *Scope;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsInitScope, RootOp);
-
-
-    Scope = AcpiUtCreateGenericState ();
-    if (!Scope)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Scope->Common.DescriptorType = ACPI_DESC_TYPE_STATE_RPSCOPE;
-    Scope->ParseScope.Op = RootOp;
-    Scope->ParseScope.ArgCount = ACPI_VAR_ARGS;
-    Scope->ParseScope.ArgEnd = ParserState->AmlEnd;
-    Scope->ParseScope.PkgEnd = ParserState->AmlEnd;
-
-    ParserState->Scope = Scope;
-    ParserState->StartOp = RootOp;
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsPushScope
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *              Op                  - Current op to be pushed
- *              RemainingArgs       - List of args remaining
- *              ArgCount            - Fixed or variable number of args
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Push current op to begin parsing its argument
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsPushScope (
-    ACPI_PARSE_STATE        *ParserState,
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  RemainingArgs,
-    UINT32                  ArgCount)
-{
-    ACPI_GENERIC_STATE      *Scope;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsPushScope, Op);
-
-
-    Scope = AcpiUtCreateGenericState ();
-    if (!Scope)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Scope->Common.DescriptorType = ACPI_DESC_TYPE_STATE_PSCOPE;
-    Scope->ParseScope.Op = Op;
-    Scope->ParseScope.ArgList = RemainingArgs;
-    Scope->ParseScope.ArgCount = ArgCount;
-    Scope->ParseScope.PkgEnd = ParserState->PkgEnd;
-
-    /* Push onto scope stack */
-
-    AcpiUtPushGenericState (&ParserState->Scope, Scope);
-
-    if (ArgCount == ACPI_VAR_ARGS)
-    {
-        /* Multiple arguments */
-
-        Scope->ParseScope.ArgEnd = ParserState->PkgEnd;
-    }
-    else
-    {
-        /* Single argument */
-
-        Scope->ParseScope.ArgEnd = ACPI_TO_POINTER (ACPI_MAX_PTR);
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsPopScope
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *              Op                  - Where the popped op is returned
- *              ArgList             - Where the popped "next argument" is
- *                                    returned
- *              ArgCount            - Count of objects in ArgList
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Return to parsing a previous op
- *
- ******************************************************************************/
-
-void
-AcpiPsPopScope (
-    ACPI_PARSE_STATE        *ParserState,
-    ACPI_PARSE_OBJECT       **Op,
-    UINT32                  *ArgList,
-    UINT32                  *ArgCount)
-{
-    ACPI_GENERIC_STATE      *Scope = ParserState->Scope;
-
-
-    ACPI_FUNCTION_TRACE (PsPopScope);
-
-
-    /* Only pop the scope if there is in fact a next scope */
-
-    if (Scope->Common.Next)
-    {
-        Scope = AcpiUtPopGenericState (&ParserState->Scope);
-
-        /* Return to parsing previous op */
-
-        *Op                 = Scope->ParseScope.Op;
-        *ArgList            = Scope->ParseScope.ArgList;
-        *ArgCount           = Scope->ParseScope.ArgCount;
-        ParserState->PkgEnd = Scope->ParseScope.PkgEnd;
-
-        /* All done with this scope state structure */
-
-        AcpiUtDeleteGenericState (Scope);
-    }
-    else
-    {
-        /* Empty parse stack, prepare to fetch next opcode */
-
-        *Op       = NULL;
-        *ArgList  = 0;
-        *ArgCount = 0;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-        "Popped Op %p Args %X\n", *Op, *ArgCount));
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsCleanupScope
- *
- * PARAMETERS:  ParserState         - Current parser state object
- *
- * RETURN:      None
- *
- * DESCRIPTION: Destroy available list, remaining stack levels, and return
- *              root scope
- *
- ******************************************************************************/
-
-void
-AcpiPsCleanupScope (
-    ACPI_PARSE_STATE        *ParserState)
-{
-    ACPI_GENERIC_STATE      *Scope;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsCleanupScope, ParserState);
-
-
-    if (!ParserState)
-    {
-        return_VOID;
-    }
-
-    /* Delete anything on the scope stack */
-
-    while (ParserState->Scope)
-    {
-        Scope = AcpiUtPopGenericState (&ParserState->Scope);
-        AcpiUtDeleteGenericState (Scope);
-    }
-
-    return_VOID;
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/parser/pstree.c b/l4/pkg/acpica/lib-acpi/src/acpica/parser/pstree.c
deleted file mode 100644 (file)
index 20ac405..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-/******************************************************************************
- *
- * Module Name: pstree - Parser op tree manipulation/traversal/search
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __PSTREE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-
-#define _COMPONENT          ACPI_PARSER
-        ACPI_MODULE_NAME    ("pstree")
-
-/* Local prototypes */
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-ACPI_PARSE_OBJECT *
-AcpiPsGetChild (
-    ACPI_PARSE_OBJECT       *op);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetArg
- *
- * PARAMETERS:  Op              - Get an argument for this op
- *              Argn            - Nth argument to get
- *
- * RETURN:      The argument (as an Op object). NULL if argument does not exist
- *
- * DESCRIPTION: Get the specified op's argument.
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetArg (
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  Argn)
-{
-    ACPI_PARSE_OBJECT       *Arg = NULL;
-    const ACPI_OPCODE_INFO  *OpInfo;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Get the info structure for this opcode */
-
-    OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-    if (OpInfo->Class == AML_CLASS_UNKNOWN)
-    {
-        /* Invalid opcode or ASCII character */
-
-        return (NULL);
-    }
-
-    /* Check if this opcode requires argument sub-objects */
-
-    if (!(OpInfo->Flags & AML_HAS_ARGS))
-    {
-        /* Has no linked argument objects */
-
-        return (NULL);
-    }
-
-    /* Get the requested argument object */
-
-    Arg = Op->Common.Value.Arg;
-    while (Arg && Argn)
-    {
-        Argn--;
-        Arg = Arg->Common.Next;
-    }
-
-    return (Arg);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsAppendArg
- *
- * PARAMETERS:  Op              - Append an argument to this Op.
- *              Arg             - Argument Op to append
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Append an argument to an op's argument list (a NULL arg is OK)
- *
- ******************************************************************************/
-
-void
-AcpiPsAppendArg (
-    ACPI_PARSE_OBJECT       *Op,
-    ACPI_PARSE_OBJECT       *Arg)
-{
-    ACPI_PARSE_OBJECT       *PrevArg;
-    const ACPI_OPCODE_INFO  *OpInfo;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!Op)
-    {
-        return;
-    }
-
-    /* Get the info structure for this opcode */
-
-    OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-    if (OpInfo->Class == AML_CLASS_UNKNOWN)
-    {
-        /* Invalid opcode */
-
-        ACPI_ERROR ((AE_INFO, "Invalid AML Opcode: 0x%2.2X",
-            Op->Common.AmlOpcode));
-        return;
-    }
-
-    /* Check if this opcode requires argument sub-objects */
-
-    if (!(OpInfo->Flags & AML_HAS_ARGS))
-    {
-        /* Has no linked argument objects */
-
-        return;
-    }
-
-    /* Append the argument to the linked argument list */
-
-    if (Op->Common.Value.Arg)
-    {
-        /* Append to existing argument list */
-
-        PrevArg = Op->Common.Value.Arg;
-        while (PrevArg->Common.Next)
-        {
-            PrevArg = PrevArg->Common.Next;
-        }
-        PrevArg->Common.Next = Arg;
-    }
-    else
-    {
-        /* No argument list, this will be the first argument */
-
-        Op->Common.Value.Arg = Arg;
-    }
-
-    /* Set the parent in this arg and any args linked after it */
-
-    while (Arg)
-    {
-        Arg->Common.Parent = Op;
-        Arg = Arg->Common.Next;
-
-        Op->Common.ArgListLength++;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetDepthNext
- *
- * PARAMETERS:  Origin          - Root of subtree to search
- *              Op              - Last (previous) Op that was found
- *
- * RETURN:      Next Op found in the search.
- *
- * DESCRIPTION: Get next op in tree (walking the tree in depth-first order)
- *              Return NULL when reaching "origin" or when walking up from root
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetDepthNext (
-    ACPI_PARSE_OBJECT       *Origin,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_PARSE_OBJECT       *Next = NULL;
-    ACPI_PARSE_OBJECT       *Parent;
-    ACPI_PARSE_OBJECT       *Arg;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!Op)
-    {
-        return (NULL);
-    }
-
-    /* Look for an argument or child */
-
-    Next = AcpiPsGetArg (Op, 0);
-    if (Next)
-    {
-        return (Next);
-    }
-
-    /* Look for a sibling */
-
-    Next = Op->Common.Next;
-    if (Next)
-    {
-        return (Next);
-    }
-
-    /* Look for a sibling of parent */
-
-    Parent = Op->Common.Parent;
-
-    while (Parent)
-    {
-        Arg = AcpiPsGetArg (Parent, 0);
-        while (Arg && (Arg != Origin) && (Arg != Op))
-        {
-            Arg = Arg->Common.Next;
-        }
-
-        if (Arg == Origin)
-        {
-            /* Reached parent of origin, end search */
-
-            return (NULL);
-        }
-
-        if (Parent->Common.Next)
-        {
-            /* Found sibling of parent */
-
-            return (Parent->Common.Next);
-        }
-
-        Op = Parent;
-        Parent = Parent->Common.Parent;
-    }
-
-    return (Next);
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsGetChild
- *
- * PARAMETERS:  Op              - Get the child of this Op
- *
- * RETURN:      Child Op, Null if none is found.
- *
- * DESCRIPTION: Get op's children or NULL if none
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetChild (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_PARSE_OBJECT       *Child = NULL;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    switch (Op->Common.AmlOpcode)
-    {
-    case AML_SCOPE_OP:
-    case AML_ELSE_OP:
-    case AML_DEVICE_OP:
-    case AML_THERMAL_ZONE_OP:
-    case AML_INT_METHODCALL_OP:
-
-        Child = AcpiPsGetArg (Op, 0);
-        break;
-
-
-    case AML_BUFFER_OP:
-    case AML_PACKAGE_OP:
-    case AML_METHOD_OP:
-    case AML_IF_OP:
-    case AML_WHILE_OP:
-    case AML_FIELD_OP:
-
-        Child = AcpiPsGetArg (Op, 1);
-        break;
-
-
-    case AML_POWER_RES_OP:
-    case AML_INDEX_FIELD_OP:
-
-        Child = AcpiPsGetArg (Op, 2);
-        break;
-
-
-    case AML_PROCESSOR_OP:
-    case AML_BANK_FIELD_OP:
-
-        Child = AcpiPsGetArg (Op, 3);
-        break;
-
-
-    default:
-        /* All others have no children */
-        break;
-    }
-
-    return (Child);
-}
-#endif
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/parser/psutils.c b/l4/pkg/acpica/lib-acpi/src/acpica/parser/psutils.c
deleted file mode 100644 (file)
index 42f2b01..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psutils - Parser miscellaneous utilities (Parser only)
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "amlcode.h"
-
-#define _COMPONENT          ACPI_PARSER
-        ACPI_MODULE_NAME    ("psutils")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsCreateScopeOp
- *
- * PARAMETERS:  None
- *
- * RETURN:      A new Scope object, null on failure
- *
- * DESCRIPTION: Create a Scope and associated namepath op with the root name
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsCreateScopeOp (
-    void)
-{
-    ACPI_PARSE_OBJECT       *ScopeOp;
-
-
-    ScopeOp = AcpiPsAllocOp (AML_SCOPE_OP);
-    if (!ScopeOp)
-    {
-        return (NULL);
-    }
-
-    ScopeOp->Named.Name = ACPI_ROOT_NAME;
-    return (ScopeOp);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsInitOp
- *
- * PARAMETERS:  Op              - A newly allocated Op object
- *              Opcode          - Opcode to store in the Op
- *
- * RETURN:      None
- *
- * DESCRIPTION: Initialize a parse (Op) object
- *
- ******************************************************************************/
-
-void
-AcpiPsInitOp (
-    ACPI_PARSE_OBJECT       *Op,
-    UINT16                  Opcode)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    Op->Common.DescriptorType = ACPI_DESC_TYPE_PARSER;
-    Op->Common.AmlOpcode = Opcode;
-
-    ACPI_DISASM_ONLY_MEMBERS (ACPI_STRNCPY (Op->Common.AmlOpName,
-            (AcpiPsGetOpcodeInfo (Opcode))->Name,
-                sizeof (Op->Common.AmlOpName)));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsAllocOp
- *
- * PARAMETERS:  Opcode          - Opcode that will be stored in the new Op
- *
- * RETURN:      Pointer to the new Op, null on failure
- *
- * DESCRIPTION: Allocate an acpi_op, choose op type (and thus size) based on
- *              opcode.  A cache of opcodes is available for the pure
- *              GENERIC_OP, since this is by far the most commonly used.
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT*
-AcpiPsAllocOp (
-    UINT16                  Opcode)
-{
-    ACPI_PARSE_OBJECT       *Op;
-    const ACPI_OPCODE_INFO  *OpInfo;
-    UINT8                   Flags = ACPI_PARSEOP_GENERIC;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    OpInfo = AcpiPsGetOpcodeInfo (Opcode);
-
-    /* Determine type of ParseOp required */
-
-    if (OpInfo->Flags & AML_DEFER)
-    {
-        Flags = ACPI_PARSEOP_DEFERRED;
-    }
-    else if (OpInfo->Flags & AML_NAMED)
-    {
-        Flags = ACPI_PARSEOP_NAMED;
-    }
-    else if (Opcode == AML_INT_BYTELIST_OP)
-    {
-        Flags = ACPI_PARSEOP_BYTELIST;
-    }
-
-    /* Allocate the minimum required size object */
-
-    if (Flags == ACPI_PARSEOP_GENERIC)
-    {
-        /* The generic op (default) is by far the most common (16 to 1) */
-
-        Op = AcpiOsAcquireObject (AcpiGbl_PsNodeCache);
-    }
-    else
-    {
-        /* Extended parseop */
-
-        Op = AcpiOsAcquireObject (AcpiGbl_PsNodeExtCache);
-    }
-
-    /* Initialize the Op */
-
-    if (Op)
-    {
-        AcpiPsInitOp (Op, Opcode);
-        Op->Common.Flags = Flags;
-    }
-
-    return (Op);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsFreeOp
- *
- * PARAMETERS:  Op              - Op to be freed
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Free an Op object.  Either put it on the GENERIC_OP cache list
- *              or actually free it.
- *
- ******************************************************************************/
-
-void
-AcpiPsFreeOp (
-    ACPI_PARSE_OBJECT       *Op)
-{
-    ACPI_FUNCTION_NAME (PsFreeOp);
-
-
-    if (Op->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Free retval op: %p\n", Op));
-    }
-
-    if (Op->Common.Flags & ACPI_PARSEOP_GENERIC)
-    {
-        (void) AcpiOsReleaseObject (AcpiGbl_PsNodeCache, Op);
-    }
-    else
-    {
-        (void) AcpiOsReleaseObject (AcpiGbl_PsNodeExtCache, Op);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    Utility functions
- *
- * DESCRIPTION: Low level character and object functions
- *
- ******************************************************************************/
-
-
-/*
- * Is "c" a namestring lead character?
- */
-BOOLEAN
-AcpiPsIsLeadingChar (
-    UINT32                  c)
-{
-    return ((BOOLEAN) (c == '_' || (c >= 'A' && c <= 'Z')));
-}
-
-
-/*
- * Is "c" a namestring prefix character?
- */
-BOOLEAN
-AcpiPsIsPrefixChar (
-    UINT32                  c)
-{
-    return ((BOOLEAN) (c == '\\' || c == '^'));
-}
-
-
-/*
- * Get op's name (4-byte name segment) or 0 if unnamed
- */
-UINT32
-AcpiPsGetName (
-    ACPI_PARSE_OBJECT       *Op)
-{
-
-    /* The "generic" object has no name associated with it */
-
-    if (Op->Common.Flags & ACPI_PARSEOP_GENERIC)
-    {
-        return (0);
-    }
-
-    /* Only the "Extended" parse objects have a name */
-
-    return (Op->Named.Name);
-}
-
-
-/*
- * Set op's name
- */
-void
-AcpiPsSetName (
-    ACPI_PARSE_OBJECT       *Op,
-    UINT32                  name)
-{
-
-    /* The "generic" object has no name associated with it */
-
-    if (Op->Common.Flags & ACPI_PARSEOP_GENERIC)
-    {
-        return;
-    }
-
-    Op->Named.Name = name;
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/parser/pswalk.c b/l4/pkg/acpica/lib-acpi/src/acpica/parser/pswalk.c
deleted file mode 100644 (file)
index d8d5f5e..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/******************************************************************************
- *
- * Module Name: pswalk - Parser routines to walk parsed op tree(s)
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-
-#define _COMPONENT          ACPI_PARSER
-        ACPI_MODULE_NAME    ("pswalk")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsDeleteParseTree
- *
- * PARAMETERS:  SubtreeRoot         - Root of tree (or subtree) to delete
- *
- * RETURN:      None
- *
- * DESCRIPTION: Delete a portion of or an entire parse tree.
- *
- ******************************************************************************/
-
-void
-AcpiPsDeleteParseTree (
-    ACPI_PARSE_OBJECT       *SubtreeRoot)
-{
-    ACPI_PARSE_OBJECT       *Op = SubtreeRoot;
-    ACPI_PARSE_OBJECT       *Next = NULL;
-    ACPI_PARSE_OBJECT       *Parent = NULL;
-
-
-    ACPI_FUNCTION_TRACE_PTR (PsDeleteParseTree, SubtreeRoot);
-
-
-    /* Visit all nodes in the subtree */
-
-    while (Op)
-    {
-        /* Check if we are not ascending */
-
-        if (Op != Parent)
-        {
-            /* Look for an argument or child of the current op */
-
-            Next = AcpiPsGetArg (Op, 0);
-            if (Next)
-            {
-                /* Still going downward in tree (Op is not completed yet) */
-
-                Op = Next;
-                continue;
-            }
-        }
-
-        /* No more children, this Op is complete. */
-
-        Next = Op->Common.Next;
-        Parent = Op->Common.Parent;
-
-        AcpiPsFreeOp (Op);
-
-        /* If we are back to the starting point, the walk is complete. */
-
-        if (Op == SubtreeRoot)
-        {
-            return_VOID;
-        }
-        if (Next)
-        {
-            Op = Next;
-        }
-        else
-        {
-            Op = Parent;
-        }
-    }
-
-    return_VOID;
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/parser/psxface.c b/l4/pkg/acpica/lib-acpi/src/acpica/parser/psxface.c
deleted file mode 100644 (file)
index 1bf36e0..0000000
+++ /dev/null
@@ -1,510 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psxface - Parser external interfaces
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __PSXFACE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acparser.h"
-#include "acdispat.h"
-#include "acinterp.h"
-#include "amlcode.h"
-
-
-#define _COMPONENT          ACPI_PARSER
-        ACPI_MODULE_NAME    ("psxface")
-
-/* Local Prototypes */
-
-static void
-AcpiPsStartTrace (
-    ACPI_EVALUATE_INFO      *Info);
-
-static void
-AcpiPsStopTrace (
-    ACPI_EVALUATE_INFO      *Info);
-
-static void
-AcpiPsUpdateParameterList (
-    ACPI_EVALUATE_INFO      *Info,
-    UINT16                  Action);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDebugTrace
- *
- * PARAMETERS:  MethodName      - Valid ACPI name string
- *              DebugLevel      - Optional level mask. 0 to use default
- *              DebugLayer      - Optional layer mask. 0 to use default
- *              Flags           - bit 1: one shot(1) or persistent(0)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: External interface to enable debug tracing during control
- *              method execution
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDebugTrace (
-    char                    *Name,
-    UINT32                  DebugLevel,
-    UINT32                  DebugLayer,
-    UINT32                  Flags)
-{
-    ACPI_STATUS             Status;
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* TBDs: Validate name, allow full path or just nameseg */
-
-    AcpiGbl_TraceMethodName = *ACPI_CAST_PTR (UINT32, Name);
-    AcpiGbl_TraceFlags = Flags;
-
-    if (DebugLevel)
-    {
-        AcpiGbl_TraceDbgLevel = DebugLevel;
-    }
-    if (DebugLayer)
-    {
-        AcpiGbl_TraceDbgLayer = DebugLayer;
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsStartTrace
- *
- * PARAMETERS:  Info        - Method info struct
- *
- * RETURN:      None
- *
- * DESCRIPTION: Start control method execution trace
- *
- ******************************************************************************/
-
-static void
-AcpiPsStartTrace (
-    ACPI_EVALUATE_INFO      *Info)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return;
-    }
-
-    if ((!AcpiGbl_TraceMethodName) ||
-        (AcpiGbl_TraceMethodName != Info->ResolvedNode->Name.Integer))
-    {
-        goto Exit;
-    }
-
-    AcpiGbl_OriginalDbgLevel = AcpiDbgLevel;
-    AcpiGbl_OriginalDbgLayer = AcpiDbgLayer;
-
-    AcpiDbgLevel = 0x00FFFFFF;
-    AcpiDbgLayer = ACPI_UINT32_MAX;
-
-    if (AcpiGbl_TraceDbgLevel)
-    {
-        AcpiDbgLevel = AcpiGbl_TraceDbgLevel;
-    }
-    if (AcpiGbl_TraceDbgLayer)
-    {
-        AcpiDbgLayer = AcpiGbl_TraceDbgLayer;
-    }
-
-
-Exit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsStopTrace
- *
- * PARAMETERS:  Info        - Method info struct
- *
- * RETURN:      None
- *
- * DESCRIPTION: Stop control method execution trace
- *
- ******************************************************************************/
-
-static void
-AcpiPsStopTrace (
-    ACPI_EVALUATE_INFO      *Info)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
-    if (ACPI_FAILURE (Status))
-    {
-        return;
-    }
-
-    if ((!AcpiGbl_TraceMethodName) ||
-        (AcpiGbl_TraceMethodName != Info->ResolvedNode->Name.Integer))
-    {
-        goto Exit;
-    }
-
-    /* Disable further tracing if type is one-shot */
-
-    if (AcpiGbl_TraceFlags & 1)
-    {
-        AcpiGbl_TraceMethodName = 0;
-        AcpiGbl_TraceDbgLevel = 0;
-        AcpiGbl_TraceDbgLayer = 0;
-    }
-
-    AcpiDbgLevel = AcpiGbl_OriginalDbgLevel;
-    AcpiDbgLayer = AcpiGbl_OriginalDbgLayer;
-
-Exit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsExecuteMethod
- *
- * PARAMETERS:  Info            - Method info block, contains:
- *                  Node            - Method Node to execute
- *                  ObjDesc         - Method object
- *                  Parameters      - List of parameters to pass to the method,
- *                                    terminated by NULL. Params itself may be
- *                                    NULL if no parameters are being passed.
- *                  ReturnObject    - Where to put method's return value (if
- *                                    any). If NULL, no value is returned.
- *                  ParameterType   - Type of Parameter list
- *                  ReturnObject    - Where to put method's return value (if
- *                                    any). If NULL, no value is returned.
- *                  PassNumber      - Parse or execute pass
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Execute a control method
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsExecuteMethod (
-    ACPI_EVALUATE_INFO      *Info)
-{
-    ACPI_STATUS             Status;
-    ACPI_PARSE_OBJECT       *Op;
-    ACPI_WALK_STATE         *WalkState;
-
-
-    ACPI_FUNCTION_TRACE (PsExecuteMethod);
-
-
-    /* Validate the Info and method Node */
-
-    if (!Info || !Info->ResolvedNode)
-    {
-        return_ACPI_STATUS (AE_NULL_ENTRY);
-    }
-
-    /* Init for new method, wait on concurrency semaphore */
-
-    Status = AcpiDsBeginMethodExecution (Info->ResolvedNode, Info->ObjDesc, NULL);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * The caller "owns" the parameters, so give each one an extra reference
-     */
-    AcpiPsUpdateParameterList (Info, REF_INCREMENT);
-
-    /* Begin tracing if requested */
-
-    AcpiPsStartTrace (Info);
-
-    /*
-     * Execute the method. Performs parse simultaneously
-     */
-    ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-        "**** Begin Method Parse/Execute [%4.4s] **** Node=%p Obj=%p\n",
-        Info->ResolvedNode->Name.Ascii, Info->ResolvedNode, Info->ObjDesc));
-
-    /* Create and init a Root Node */
-
-    Op = AcpiPsCreateScopeOp ();
-    if (!Op)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /* Create and initialize a new walk state */
-
-    Info->PassNumber = ACPI_IMODE_EXECUTE;
-    WalkState = AcpiDsCreateWalkState (
-                    Info->ObjDesc->Method.OwnerId, NULL, NULL, NULL);
-    if (!WalkState)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    Status = AcpiDsInitAmlWalk (WalkState, Op, Info->ResolvedNode,
-                Info->ObjDesc->Method.AmlStart,
-                Info->ObjDesc->Method.AmlLength, Info, Info->PassNumber);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiDsDeleteWalkState (WalkState);
-        goto Cleanup;
-    }
-
-    if (Info->ObjDesc->Method.Flags & AOPOBJ_MODULE_LEVEL)
-    {
-        WalkState->ParseFlags |= ACPI_PARSE_MODULE_LEVEL;
-    }
-
-    /* Invoke an internal method if necessary */
-
-    if (Info->ObjDesc->Method.MethodFlags & AML_METHOD_INTERNAL_ONLY)
-    {
-        Status = Info->ObjDesc->Method.Extra.Implementation (WalkState);
-        Info->ReturnObject = WalkState->ReturnDesc;
-
-        /* Cleanup states */
-
-        AcpiDsScopeStackClear (WalkState);
-        AcpiPsCleanupScope (&WalkState->ParserState);
-        AcpiDsTerminateControlMethod (WalkState->MethodDesc, WalkState);
-        AcpiDsDeleteWalkState (WalkState);
-        goto Cleanup;
-    }
-
-    /*
-     * Start method evaluation with an implicit return of zero. This is done
-     * for Windows compatibility.
-     */
-    if (AcpiGbl_EnableInterpreterSlack)
-    {
-        WalkState->ImplicitReturnObj =
-            AcpiUtCreateIntegerObject ((UINT64) 0);
-        if (!WalkState->ImplicitReturnObj)
-        {
-            Status = AE_NO_MEMORY;
-            AcpiDsDeleteWalkState (WalkState);
-            goto Cleanup;
-        }
-    }
-
-    /* Parse the AML */
-
-    Status = AcpiPsParseAml (WalkState);
-
-    /* WalkState was deleted by ParseAml */
-
-Cleanup:
-    AcpiPsDeleteParseTree (Op);
-
-    /* End optional tracing */
-
-    AcpiPsStopTrace (Info);
-
-    /* Take away the extra reference that we gave the parameters above */
-
-    AcpiPsUpdateParameterList (Info, REF_DECREMENT);
-
-    /* Exit now if error above */
-
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * If the method has returned an object, signal this to the caller with
-     * a control exception code
-     */
-    if (Info->ReturnObject)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Method returned ObjDesc=%p\n",
-            Info->ReturnObject));
-        ACPI_DUMP_STACK_ENTRY (Info->ReturnObject);
-
-        Status = AE_CTRL_RETURN_VALUE;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsUpdateParameterList
- *
- * PARAMETERS:  Info            - See ACPI_EVALUATE_INFO
- *                                (Used: ParameterType and Parameters)
- *              Action          - Add or Remove reference
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Update reference count on all method parameter objects
- *
- ******************************************************************************/
-
-static void
-AcpiPsUpdateParameterList (
-    ACPI_EVALUATE_INFO      *Info,
-    UINT16                  Action)
-{
-    UINT32                  i;
-
-
-    if (Info->Parameters)
-    {
-        /* Update reference count for each parameter */
-
-        for (i = 0; Info->Parameters[i]; i++)
-        {
-            /* Ignore errors, just do them all */
-
-            (void) AcpiUtUpdateObjectReference (Info->Parameters[i], Action);
-        }
-    }
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsaddr.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsaddr.c
deleted file mode 100644 (file)
index f2f3c44..0000000
+++ /dev/null
@@ -1,479 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsaddr - Address resource descriptors (16/32/64)
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __RSADDR_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rsaddr")
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertAddress16 - All WORD (16-bit) address resources
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertAddress16[5] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_ADDRESS16,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS16),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertAddress16)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_ADDRESS16,
-                        sizeof (AML_RESOURCE_ADDRESS16),
-                        0},
-
-    /* Resource Type, General Flags, and Type-Specific Flags */
-
-    {ACPI_RSC_ADDRESS,  0, 0, 0},
-
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Address Granularity
-     * Address Range Minimum
-     * Address Range Maximum
-     * Address Translation Offset
-     * Address Length
-     */
-    {ACPI_RSC_MOVE16,   ACPI_RS_OFFSET (Data.Address16.Granularity),
-                        AML_OFFSET (Address16.Granularity),
-                        5},
-
-    /* Optional ResourceSource (Index and String) */
-
-    {ACPI_RSC_SOURCE,   ACPI_RS_OFFSET (Data.Address16.ResourceSource),
-                        0,
-                        sizeof (AML_RESOURCE_ADDRESS16)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertAddress32 - All DWORD (32-bit) address resources
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertAddress32[5] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_ADDRESS32,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS32),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertAddress32)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_ADDRESS32,
-                        sizeof (AML_RESOURCE_ADDRESS32),
-                        0},
-
-    /* Resource Type, General Flags, and Type-Specific Flags */
-
-    {ACPI_RSC_ADDRESS,  0, 0, 0},
-
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Address Granularity
-     * Address Range Minimum
-     * Address Range Maximum
-     * Address Translation Offset
-     * Address Length
-     */
-    {ACPI_RSC_MOVE32,   ACPI_RS_OFFSET (Data.Address32.Granularity),
-                        AML_OFFSET (Address32.Granularity),
-                        5},
-
-    /* Optional ResourceSource (Index and String) */
-
-    {ACPI_RSC_SOURCE,   ACPI_RS_OFFSET (Data.Address32.ResourceSource),
-                        0,
-                        sizeof (AML_RESOURCE_ADDRESS32)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertAddress64 - All QWORD (64-bit) address resources
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertAddress64[5] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_ADDRESS64,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS64),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertAddress64)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_ADDRESS64,
-                        sizeof (AML_RESOURCE_ADDRESS64),
-                        0},
-
-    /* Resource Type, General Flags, and Type-Specific Flags */
-
-    {ACPI_RSC_ADDRESS,  0, 0, 0},
-
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Address Granularity
-     * Address Range Minimum
-     * Address Range Maximum
-     * Address Translation Offset
-     * Address Length
-     */
-    {ACPI_RSC_MOVE64,   ACPI_RS_OFFSET (Data.Address64.Granularity),
-                        AML_OFFSET (Address64.Granularity),
-                        5},
-
-    /* Optional ResourceSource (Index and String) */
-
-    {ACPI_RSC_SOURCE,   ACPI_RS_OFFSET (Data.Address64.ResourceSource),
-                        0,
-                        sizeof (AML_RESOURCE_ADDRESS64)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertExtAddress64 - All Extended (64-bit) address resources
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertExtAddress64[5] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_EXTENDED_ADDRESS64),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertExtAddress64)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64,
-                        sizeof (AML_RESOURCE_EXTENDED_ADDRESS64),
-                        0},
-
-    /* Resource Type, General Flags, and Type-Specific Flags */
-
-    {ACPI_RSC_ADDRESS,  0, 0, 0},
-
-    /* Revision ID */
-
-    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.ExtAddress64.RevisionID),
-                        AML_OFFSET (ExtAddress64.RevisionID),
-                        1},
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Address Granularity
-     * Address Range Minimum
-     * Address Range Maximum
-     * Address Translation Offset
-     * Address Length
-     * Type-Specific Attribute
-     */
-    {ACPI_RSC_MOVE64,   ACPI_RS_OFFSET (Data.ExtAddress64.Granularity),
-                        AML_OFFSET (ExtAddress64.Granularity),
-                        6}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertGeneralFlags - Flags common to all address descriptors
- *
- ******************************************************************************/
-
-static ACPI_RSCONVERT_INFO  AcpiRsConvertGeneralFlags[6] =
-{
-    {ACPI_RSC_FLAGINIT, 0, AML_OFFSET (Address.Flags),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertGeneralFlags)},
-
-    /* Resource Type (Memory, Io, BusNumber, etc.) */
-
-    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.Address.ResourceType),
-                        AML_OFFSET (Address.ResourceType),
-                        1},
-
-    /* General Flags - Consume, Decode, MinFixed, MaxFixed */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.ProducerConsumer),
-                        AML_OFFSET (Address.Flags),
-                        0},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Decode),
-                        AML_OFFSET (Address.Flags),
-                        1},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.MinAddressFixed),
-                        AML_OFFSET (Address.Flags),
-                        2},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.MaxAddressFixed),
-                        AML_OFFSET (Address.Flags),
-                        3}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertMemFlags - Flags common to Memory address descriptors
- *
- ******************************************************************************/
-
-static ACPI_RSCONVERT_INFO  AcpiRsConvertMemFlags[5] =
-{
-    {ACPI_RSC_FLAGINIT, 0, AML_OFFSET (Address.SpecificFlags),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertMemFlags)},
-
-    /* Memory-specific flags */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.WriteProtect),
-                        AML_OFFSET (Address.SpecificFlags),
-                        0},
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.Caching),
-                        AML_OFFSET (Address.SpecificFlags),
-                        1},
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.RangeType),
-                        AML_OFFSET (Address.SpecificFlags),
-                        3},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.Translation),
-                        AML_OFFSET (Address.SpecificFlags),
-                        5}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertIoFlags - Flags common to I/O address descriptors
- *
- ******************************************************************************/
-
-static ACPI_RSCONVERT_INFO  AcpiRsConvertIoFlags[4] =
-{
-    {ACPI_RSC_FLAGINIT, 0, AML_OFFSET (Address.SpecificFlags),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertIoFlags)},
-
-    /* I/O-specific flags */
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Io.RangeType),
-                        AML_OFFSET (Address.SpecificFlags),
-                        0},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Io.Translation),
-                        AML_OFFSET (Address.SpecificFlags),
-                        4},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Io.TranslationType),
-                        AML_OFFSET (Address.SpecificFlags),
-                        5}
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsGetAddressCommon
- *
- * PARAMETERS:  Resource            - Pointer to the internal resource struct
- *              Aml                 - Pointer to the AML resource descriptor
- *
- * RETURN:      TRUE if the ResourceType field is OK, FALSE otherwise
- *
- * DESCRIPTION: Convert common flag fields from a raw AML resource descriptor
- *              to an internal resource descriptor
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiRsGetAddressCommon (
-    ACPI_RESOURCE           *Resource,
-    AML_RESOURCE            *Aml)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Validate the Resource Type */
-
-    if ((Aml->Address.ResourceType > 2) && (Aml->Address.ResourceType < 0xC0))
-    {
-        return (FALSE);
-    }
-
-    /* Get the Resource Type and General Flags */
-
-    (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertGeneralFlags);
-
-    /* Get the Type-Specific Flags (Memory and I/O descriptors only) */
-
-    if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE)
-    {
-        (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertMemFlags);
-    }
-    else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE)
-    {
-        (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertIoFlags);
-    }
-    else
-    {
-        /* Generic resource type, just grab the TypeSpecific byte */
-
-        Resource->Data.Address.Info.TypeSpecific = Aml->Address.SpecificFlags;
-    }
-
-    return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsSetAddressCommon
- *
- * PARAMETERS:  Aml                 - Pointer to the AML resource descriptor
- *              Resource            - Pointer to the internal resource struct
- *
- * RETURN:      None
- *
- * DESCRIPTION: Convert common flag fields from a resource descriptor to an
- *              AML descriptor
- *
- ******************************************************************************/
-
-void
-AcpiRsSetAddressCommon (
-    AML_RESOURCE            *Aml,
-    ACPI_RESOURCE           *Resource)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Set the Resource Type and General Flags */
-
-    (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertGeneralFlags);
-
-    /* Set the Type-Specific Flags (Memory and I/O descriptors only) */
-
-    if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE)
-    {
-        (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertMemFlags);
-    }
-    else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE)
-    {
-        (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertIoFlags);
-    }
-    else
-    {
-        /* Generic resource type, just copy the TypeSpecific byte */
-
-        Aml->Address.SpecificFlags = Resource->Data.Address.Info.TypeSpecific;
-    }
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rscalc.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rscalc.c
deleted file mode 100644 (file)
index 76aa44f..0000000
+++ /dev/null
@@ -1,745 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rscalc - Calculate stream and list lengths
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __RSCALC_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rscalc")
-
-
-/* Local prototypes */
-
-static UINT8
-AcpiRsCountSetBits (
-    UINT16                  BitField);
-
-static ACPI_RS_LENGTH
-AcpiRsStructOptionLength (
-    ACPI_RESOURCE_SOURCE    *ResourceSource);
-
-static UINT32
-AcpiRsStreamOptionLength (
-    UINT32                  ResourceLength,
-    UINT32                  MinimumTotalLength);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsCountSetBits
- *
- * PARAMETERS:  BitField        - Field in which to count bits
- *
- * RETURN:      Number of bits set within the field
- *
- * DESCRIPTION: Count the number of bits set in a resource field. Used for
- *              (Short descriptor) interrupt and DMA lists.
- *
- ******************************************************************************/
-
-static UINT8
-AcpiRsCountSetBits (
-    UINT16                  BitField)
-{
-    UINT8                   BitsSet;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    for (BitsSet = 0; BitField; BitsSet++)
-    {
-        /* Zero the least significant bit that is set */
-
-        BitField &= (UINT16) (BitField - 1);
-    }
-
-    return (BitsSet);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsStructOptionLength
- *
- * PARAMETERS:  ResourceSource      - Pointer to optional descriptor field
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Common code to handle optional ResourceSourceIndex and
- *              ResourceSource fields in some Large descriptors. Used during
- *              list-to-stream conversion
- *
- ******************************************************************************/
-
-static ACPI_RS_LENGTH
-AcpiRsStructOptionLength (
-    ACPI_RESOURCE_SOURCE    *ResourceSource)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * If the ResourceSource string is valid, return the size of the string
-     * (StringLength includes the NULL terminator) plus the size of the
-     * ResourceSourceIndex (1).
-     */
-    if (ResourceSource->StringPtr)
-    {
-        return ((ACPI_RS_LENGTH) (ResourceSource->StringLength + 1));
-    }
-
-    return (0);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsStreamOptionLength
- *
- * PARAMETERS:  ResourceLength      - Length from the resource header
- *              MinimumTotalLength  - Minimum length of this resource, before
- *                                    any optional fields. Includes header size
- *
- * RETURN:      Length of optional string (0 if no string present)
- *
- * DESCRIPTION: Common code to handle optional ResourceSourceIndex and
- *              ResourceSource fields in some Large descriptors. Used during
- *              stream-to-list conversion
- *
- ******************************************************************************/
-
-static UINT32
-AcpiRsStreamOptionLength (
-    UINT32                  ResourceLength,
-    UINT32                  MinimumAmlResourceLength)
-{
-    UINT32                  StringLength = 0;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * The ResourceSourceIndex and ResourceSource are optional elements of some
-     * Large-type resource descriptors.
-     */
-
-    /*
-     * If the length of the actual resource descriptor is greater than the ACPI
-     * spec-defined minimum length, it means that a ResourceSourceIndex exists
-     * and is followed by a (required) null terminated string. The string length
-     * (including the null terminator) is the resource length minus the minimum
-     * length, minus one byte for the ResourceSourceIndex itself.
-     */
-    if (ResourceLength > MinimumAmlResourceLength)
-    {
-        /* Compute the length of the optional string */
-
-        StringLength = ResourceLength - MinimumAmlResourceLength - 1;
-    }
-
-    /*
-     * Round the length up to a multiple of the native word in order to
-     * guarantee that the entire resource descriptor is native word aligned
-     */
-    return ((UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (StringLength));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsGetAmlLength
- *
- * PARAMETERS:  Resource            - Pointer to the resource linked list
- *              SizeNeeded          - Where the required size is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Takes a linked list of internal resource descriptors and
- *              calculates the size buffer needed to hold the corresponding
- *              external resource byte stream.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetAmlLength (
-    ACPI_RESOURCE           *Resource,
-    ACPI_SIZE               *SizeNeeded)
-{
-    ACPI_SIZE               AmlSizeNeeded = 0;
-    ACPI_RS_LENGTH          TotalSize;
-
-
-    ACPI_FUNCTION_TRACE (RsGetAmlLength);
-
-
-    /* Traverse entire list of internal resource descriptors */
-
-    while (Resource)
-    {
-        /* Validate the descriptor type */
-
-        if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
-        {
-            return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE);
-        }
-
-        /* Get the base size of the (external stream) resource descriptor */
-
-        TotalSize = AcpiGbl_AmlResourceSizes [Resource->Type];
-
-        /*
-         * Augment the base size for descriptors with optional and/or
-         * variable-length fields
-         */
-        switch (Resource->Type)
-        {
-        case ACPI_RESOURCE_TYPE_IRQ:
-
-            /* Length can be 3 or 2 */
-
-            if (Resource->Data.Irq.DescriptorLength == 2)
-            {
-                TotalSize--;
-            }
-            break;
-
-
-        case ACPI_RESOURCE_TYPE_START_DEPENDENT:
-
-            /* Length can be 1 or 0 */
-
-            if (Resource->Data.Irq.DescriptorLength == 0)
-            {
-                TotalSize--;
-            }
-            break;
-
-
-        case ACPI_RESOURCE_TYPE_VENDOR:
-            /*
-             * Vendor Defined Resource:
-             * For a Vendor Specific resource, if the Length is between 1 and 7
-             * it will be created as a Small Resource data type, otherwise it
-             * is a Large Resource data type.
-             */
-            if (Resource->Data.Vendor.ByteLength > 7)
-            {
-                /* Base size of a Large resource descriptor */
-
-                TotalSize = sizeof (AML_RESOURCE_LARGE_HEADER);
-            }
-
-            /* Add the size of the vendor-specific data */
-
-            TotalSize = (ACPI_RS_LENGTH)
-                (TotalSize + Resource->Data.Vendor.ByteLength);
-            break;
-
-
-        case ACPI_RESOURCE_TYPE_END_TAG:
-            /*
-             * End Tag:
-             * We are done -- return the accumulated total size.
-             */
-            *SizeNeeded = AmlSizeNeeded + TotalSize;
-
-            /* Normal exit */
-
-            return_ACPI_STATUS (AE_OK);
-
-
-        case ACPI_RESOURCE_TYPE_ADDRESS16:
-            /*
-             * 16-Bit Address Resource:
-             * Add the size of the optional ResourceSource info
-             */
-            TotalSize = (ACPI_RS_LENGTH)
-                (TotalSize + AcpiRsStructOptionLength (
-                                &Resource->Data.Address16.ResourceSource));
-            break;
-
-
-        case ACPI_RESOURCE_TYPE_ADDRESS32:
-            /*
-             * 32-Bit Address Resource:
-             * Add the size of the optional ResourceSource info
-             */
-            TotalSize = (ACPI_RS_LENGTH)
-                (TotalSize + AcpiRsStructOptionLength (
-                                &Resource->Data.Address32.ResourceSource));
-            break;
-
-
-        case ACPI_RESOURCE_TYPE_ADDRESS64:
-            /*
-             * 64-Bit Address Resource:
-             * Add the size of the optional ResourceSource info
-             */
-            TotalSize = (ACPI_RS_LENGTH)
-                (TotalSize + AcpiRsStructOptionLength (
-                                &Resource->Data.Address64.ResourceSource));
-            break;
-
-
-        case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
-            /*
-             * Extended IRQ Resource:
-             * Add the size of each additional optional interrupt beyond the
-             * required 1 (4 bytes for each UINT32 interrupt number)
-             */
-            TotalSize = (ACPI_RS_LENGTH)
-                (TotalSize +
-                ((Resource->Data.ExtendedIrq.InterruptCount - 1) * 4) +
-
-                /* Add the size of the optional ResourceSource info */
-
-                AcpiRsStructOptionLength (
-                    &Resource->Data.ExtendedIrq.ResourceSource));
-            break;
-
-
-        default:
-            break;
-        }
-
-        /* Update the total */
-
-        AmlSizeNeeded += TotalSize;
-
-        /* Point to the next object */
-
-        Resource = ACPI_ADD_PTR (ACPI_RESOURCE, Resource, Resource->Length);
-    }
-
-    /* Did not find an EndTag resource descriptor */
-
-    return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsGetListLength
- *
- * PARAMETERS:  AmlBuffer           - Pointer to the resource byte stream
- *              AmlBufferLength     - Size of AmlBuffer
- *              SizeNeeded          - Where the size needed is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Takes an external resource byte stream and calculates the size
- *              buffer needed to hold the corresponding internal resource
- *              descriptor linked list.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetListLength (
-    UINT8                   *AmlBuffer,
-    UINT32                  AmlBufferLength,
-    ACPI_SIZE               *SizeNeeded)
-{
-    ACPI_STATUS             Status;
-    UINT8                   *EndAml;
-    UINT8                   *Buffer;
-    UINT32                  BufferSize;
-    UINT16                  Temp16;
-    UINT16                  ResourceLength;
-    UINT32                  ExtraStructBytes;
-    UINT8                   ResourceIndex;
-    UINT8                   MinimumAmlResourceLength;
-
-
-    ACPI_FUNCTION_TRACE (RsGetListLength);
-
-
-    *SizeNeeded = 0;
-    EndAml = AmlBuffer + AmlBufferLength;
-
-    /* Walk the list of AML resource descriptors */
-
-    while (AmlBuffer < EndAml)
-    {
-        /* Validate the Resource Type and Resource Length */
-
-        Status = AcpiUtValidateResource (AmlBuffer, &ResourceIndex);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Get the resource length and base (minimum) AML size */
-
-        ResourceLength = AcpiUtGetResourceLength (AmlBuffer);
-        MinimumAmlResourceLength = AcpiGbl_ResourceAmlSizes[ResourceIndex];
-
-        /*
-         * Augment the size for descriptors with optional
-         * and/or variable length fields
-         */
-        ExtraStructBytes = 0;
-        Buffer = AmlBuffer + AcpiUtGetResourceHeaderLength (AmlBuffer);
-
-        switch (AcpiUtGetResourceType (AmlBuffer))
-        {
-        case ACPI_RESOURCE_NAME_IRQ:
-            /*
-             * IRQ Resource:
-             * Get the number of bits set in the 16-bit IRQ mask
-             */
-            ACPI_MOVE_16_TO_16 (&Temp16, Buffer);
-            ExtraStructBytes = AcpiRsCountSetBits (Temp16);
-            break;
-
-
-        case ACPI_RESOURCE_NAME_DMA:
-            /*
-             * DMA Resource:
-             * Get the number of bits set in the 8-bit DMA mask
-             */
-            ExtraStructBytes = AcpiRsCountSetBits (*Buffer);
-            break;
-
-
-        case ACPI_RESOURCE_NAME_VENDOR_SMALL:
-        case ACPI_RESOURCE_NAME_VENDOR_LARGE:
-            /*
-             * Vendor Resource:
-             * Get the number of vendor data bytes
-             */
-            ExtraStructBytes = ResourceLength;
-            break;
-
-
-        case ACPI_RESOURCE_NAME_END_TAG:
-            /*
-             * End Tag:
-             * This is the normal exit, add size of EndTag
-             */
-            *SizeNeeded += ACPI_RS_SIZE_MIN;
-            return_ACPI_STATUS (AE_OK);
-
-
-        case ACPI_RESOURCE_NAME_ADDRESS32:
-        case ACPI_RESOURCE_NAME_ADDRESS16:
-        case ACPI_RESOURCE_NAME_ADDRESS64:
-            /*
-             * Address Resource:
-             * Add the size of the optional ResourceSource
-             */
-            ExtraStructBytes = AcpiRsStreamOptionLength (
-                ResourceLength, MinimumAmlResourceLength);
-            break;
-
-
-        case ACPI_RESOURCE_NAME_EXTENDED_IRQ:
-            /*
-             * Extended IRQ Resource:
-             * Using the InterruptTableLength, add 4 bytes for each additional
-             * interrupt. Note: at least one interrupt is required and is
-             * included in the minimum descriptor size (reason for the -1)
-             */
-            ExtraStructBytes = (Buffer[1] - 1) * sizeof (UINT32);
-
-            /* Add the size of the optional ResourceSource */
-
-            ExtraStructBytes += AcpiRsStreamOptionLength (
-                ResourceLength - ExtraStructBytes, MinimumAmlResourceLength);
-            break;
-
-
-        default:
-            break;
-        }
-
-        /*
-         * Update the required buffer size for the internal descriptor structs
-         *
-         * Important: Round the size up for the appropriate alignment. This
-         * is a requirement on IA64.
-         */
-        BufferSize = AcpiGbl_ResourceStructSizes[ResourceIndex] +
-                        ExtraStructBytes;
-        BufferSize = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (BufferSize);
-
-        *SizeNeeded += BufferSize;
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_RESOURCES,
-            "Type %.2X, AmlLength %.2X InternalLength %.2X\n",
-            AcpiUtGetResourceType (AmlBuffer),
-            AcpiUtGetDescriptorLength (AmlBuffer), BufferSize));
-
-        /*
-         * Point to the next resource within the AML stream using the length
-         * contained in the resource descriptor header
-         */
-        AmlBuffer += AcpiUtGetDescriptorLength (AmlBuffer);
-    }
-
-    /* Did not find an EndTag resource descriptor */
-
-    return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsGetPciRoutingTableLength
- *
- * PARAMETERS:  PackageObject           - Pointer to the package object
- *              BufferSizeNeeded        - UINT32 pointer of the size buffer
- *                                        needed to properly return the
- *                                        parsed data
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Given a package representing a PCI routing table, this
- *              calculates the size of the corresponding linked list of
- *              descriptions.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetPciRoutingTableLength (
-    ACPI_OPERAND_OBJECT     *PackageObject,
-    ACPI_SIZE               *BufferSizeNeeded)
-{
-    UINT32                  NumberOfElements;
-    ACPI_SIZE               TempSizeNeeded = 0;
-    ACPI_OPERAND_OBJECT     **TopObjectList;
-    UINT32                  Index;
-    ACPI_OPERAND_OBJECT     *PackageElement;
-    ACPI_OPERAND_OBJECT     **SubObjectList;
-    BOOLEAN                 NameFound;
-    UINT32                  TableIndex;
-
-
-    ACPI_FUNCTION_TRACE (RsGetPciRoutingTableLength);
-
-
-    NumberOfElements = PackageObject->Package.Count;
-
-    /*
-     * Calculate the size of the return buffer.
-     * The base size is the number of elements * the sizes of the
-     * structures.  Additional space for the strings is added below.
-     * The minus one is to subtract the size of the UINT8 Source[1]
-     * member because it is added below.
-     *
-     * But each PRT_ENTRY structure has a pointer to a string and
-     * the size of that string must be found.
-     */
-    TopObjectList = PackageObject->Package.Elements;
-
-    for (Index = 0; Index < NumberOfElements; Index++)
-    {
-        /* Dereference the sub-package */
-
-        PackageElement = *TopObjectList;
-
-        /* We must have a valid Package object */
-
-        if (!PackageElement ||
-            (PackageElement->Common.Type != ACPI_TYPE_PACKAGE))
-        {
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        /*
-         * The SubObjectList will now point to an array of the
-         * four IRQ elements: Address, Pin, Source and SourceIndex
-         */
-        SubObjectList = PackageElement->Package.Elements;
-
-        /* Scan the IrqTableElements for the Source Name String */
-
-        NameFound = FALSE;
-
-        for (TableIndex = 0; TableIndex < 4 && !NameFound; TableIndex++)
-        {
-            if (*SubObjectList && /* Null object allowed */
-
-                ((ACPI_TYPE_STRING ==
-                    (*SubObjectList)->Common.Type) ||
-
-                ((ACPI_TYPE_LOCAL_REFERENCE ==
-                    (*SubObjectList)->Common.Type) &&
-
-                    ((*SubObjectList)->Reference.Class ==
-                        ACPI_REFCLASS_NAME))))
-            {
-                NameFound = TRUE;
-            }
-            else
-            {
-                /* Look at the next element */
-
-                SubObjectList++;
-            }
-        }
-
-        TempSizeNeeded += (sizeof (ACPI_PCI_ROUTING_TABLE) - 4);
-
-        /* Was a String type found? */
-
-        if (NameFound)
-        {
-            if ((*SubObjectList)->Common.Type == ACPI_TYPE_STRING)
-            {
-                /*
-                 * The length String.Length field does not include the
-                 * terminating NULL, add 1
-                 */
-                TempSizeNeeded += ((ACPI_SIZE)
-                    (*SubObjectList)->String.Length + 1);
-            }
-            else
-            {
-                TempSizeNeeded += AcpiNsGetPathnameLength (
-                                    (*SubObjectList)->Reference.Node);
-            }
-        }
-        else
-        {
-            /*
-             * If no name was found, then this is a NULL, which is
-             * translated as a UINT32 zero.
-             */
-            TempSizeNeeded += sizeof (UINT32);
-        }
-
-        /* Round up the size since each element must be aligned */
-
-        TempSizeNeeded = ACPI_ROUND_UP_TO_64BIT (TempSizeNeeded);
-
-        /* Point to the next ACPI_OPERAND_OBJECT */
-
-        TopObjectList++;
-    }
-
-    /*
-     * Add an extra element to the end of the list, essentially a
-     * NULL terminator
-     */
-    *BufferSizeNeeded = TempSizeNeeded + sizeof (ACPI_PCI_ROUTING_TABLE);
-    return_ACPI_STATUS (AE_OK);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rscreate.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rscreate.c
deleted file mode 100644 (file)
index e9c840b..0000000
+++ /dev/null
@@ -1,533 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rscreate - Create resource lists/tables
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __RSCREATE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-#include "acnamesp.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rscreate")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsCreateResourceList
- *
- * PARAMETERS:  AmlBuffer           - Pointer to the resource byte stream
- *              OutputBuffer        - Pointer to the user's buffer
- *
- * RETURN:      Status: AE_OK if okay, else a valid ACPI_STATUS code
- *              If OutputBuffer is not large enough, OutputBufferLength
- *              indicates how large OutputBuffer should be, else it
- *              indicates how may UINT8 elements of OutputBuffer are valid.
- *
- * DESCRIPTION: Takes the byte stream returned from a _CRS, _PRS control method
- *              execution and parses the stream to create a linked list
- *              of device resources.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsCreateResourceList (
-    ACPI_OPERAND_OBJECT     *AmlBuffer,
-    ACPI_BUFFER             *OutputBuffer)
-{
-
-    ACPI_STATUS             Status;
-    UINT8                   *AmlStart;
-    ACPI_SIZE               ListSizeNeeded = 0;
-    UINT32                  AmlBufferLength;
-    void                    *Resource;
-
-
-    ACPI_FUNCTION_TRACE (RsCreateResourceList);
-
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "AmlBuffer = %p\n",
-        AmlBuffer));
-
-    /* Params already validated, so we don't re-validate here */
-
-    AmlBufferLength = AmlBuffer->Buffer.Length;
-    AmlStart = AmlBuffer->Buffer.Pointer;
-
-    /*
-     * Pass the AmlBuffer into a module that can calculate
-     * the buffer size needed for the linked list
-     */
-    Status = AcpiRsGetListLength (AmlStart, AmlBufferLength,
-                &ListSizeNeeded);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Status=%X ListSizeNeeded=%X\n",
-        Status, (UINT32) ListSizeNeeded));
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Validate/Allocate/Clear caller buffer */
-
-    Status = AcpiUtInitializeBuffer (OutputBuffer, ListSizeNeeded);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Do the conversion */
-
-    Resource = OutputBuffer->Pointer;
-    Status = AcpiUtWalkAmlResources (AmlStart, AmlBufferLength,
-                AcpiRsConvertAmlToResources, &Resource);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
-            OutputBuffer->Pointer, (UINT32) OutputBuffer->Length));
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsCreatePciRoutingTable
- *
- * PARAMETERS:  PackageObject           - Pointer to an ACPI_OPERAND_OBJECT
- *                                        package
- *              OutputBuffer            - Pointer to the user's buffer
- *
- * RETURN:      Status  AE_OK if okay, else a valid ACPI_STATUS code.
- *              If the OutputBuffer is too small, the error will be
- *              AE_BUFFER_OVERFLOW and OutputBuffer->Length will point
- *              to the size buffer needed.
- *
- * DESCRIPTION: Takes the ACPI_OPERAND_OBJECT  package and creates a
- *              linked list of PCI interrupt descriptions
- *
- * NOTE: It is the caller's responsibility to ensure that the start of the
- * output buffer is aligned properly (if necessary).
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsCreatePciRoutingTable (
-    ACPI_OPERAND_OBJECT     *PackageObject,
-    ACPI_BUFFER             *OutputBuffer)
-{
-    UINT8                   *Buffer;
-    ACPI_OPERAND_OBJECT     **TopObjectList;
-    ACPI_OPERAND_OBJECT     **SubObjectList;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_SIZE               BufferSizeNeeded = 0;
-    UINT32                  NumberOfElements;
-    UINT32                  Index;
-    ACPI_PCI_ROUTING_TABLE  *UserPrt;
-    ACPI_NAMESPACE_NODE     *Node;
-    ACPI_STATUS             Status;
-    ACPI_BUFFER             PathBuffer;
-
-
-    ACPI_FUNCTION_TRACE (RsCreatePciRoutingTable);
-
-
-    /* Params already validated, so we don't re-validate here */
-
-    /* Get the required buffer length */
-
-    Status = AcpiRsGetPciRoutingTableLength (PackageObject,
-                &BufferSizeNeeded);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "BufferSizeNeeded = %X\n",
-        (UINT32) BufferSizeNeeded));
-
-    /* Validate/Allocate/Clear caller buffer */
-
-    Status = AcpiUtInitializeBuffer (OutputBuffer, BufferSizeNeeded);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Loop through the ACPI_INTERNAL_OBJECTS - Each object should be a
-     * package that in turn contains an ACPI_INTEGER Address, a UINT8 Pin,
-     * a Name, and a UINT8 SourceIndex.
-     */
-    TopObjectList    = PackageObject->Package.Elements;
-    NumberOfElements = PackageObject->Package.Count;
-    Buffer           = OutputBuffer->Pointer;
-    UserPrt          = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer);
-
-    for (Index = 0; Index < NumberOfElements; Index++)
-    {
-        /*
-         * Point UserPrt past this current structure
-         *
-         * NOTE: On the first iteration, UserPrt->Length will
-         * be zero because we cleared the return buffer earlier
-         */
-        Buffer += UserPrt->Length;
-        UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer);
-
-        /*
-         * Fill in the Length field with the information we have at this point.
-         * The minus four is to subtract the size of the UINT8 Source[4] member
-         * because it is added below.
-         */
-        UserPrt->Length = (sizeof (ACPI_PCI_ROUTING_TABLE) - 4);
-
-        /* Each element of the top-level package must also be a package */
-
-        if ((*TopObjectList)->Common.Type != ACPI_TYPE_PACKAGE)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "(PRT[%X]) Need sub-package, found %s",
-                Index, AcpiUtGetObjectTypeName (*TopObjectList)));
-            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-        }
-
-        /* Each sub-package must be of length 4 */
-
-        if ((*TopObjectList)->Package.Count != 4)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "(PRT[%X]) Need package of length 4, found length %d",
-                Index, (*TopObjectList)->Package.Count));
-            return_ACPI_STATUS (AE_AML_PACKAGE_LIMIT);
-        }
-
-        /*
-         * Dereference the sub-package.
-         * The SubObjectList will now point to an array of the four IRQ
-         * elements: [Address, Pin, Source, SourceIndex]
-         */
-        SubObjectList = (*TopObjectList)->Package.Elements;
-
-        /* 1) First subobject: Dereference the PRT.Address */
-
-        ObjDesc = SubObjectList[0];
-        if (ObjDesc->Common.Type != ACPI_TYPE_INTEGER)
-        {
-            ACPI_ERROR ((AE_INFO, "(PRT[%X].Address) Need Integer, found %s",
-                Index, AcpiUtGetObjectTypeName (ObjDesc)));
-            return_ACPI_STATUS (AE_BAD_DATA);
-        }
-
-        UserPrt->Address = ObjDesc->Integer.Value;
-
-        /* 2) Second subobject: Dereference the PRT.Pin */
-
-        ObjDesc = SubObjectList[1];
-        if (ObjDesc->Common.Type != ACPI_TYPE_INTEGER)
-        {
-            ACPI_ERROR ((AE_INFO, "(PRT[%X].Pin) Need Integer, found %s",
-                Index, AcpiUtGetObjectTypeName (ObjDesc)));
-            return_ACPI_STATUS (AE_BAD_DATA);
-        }
-
-        UserPrt->Pin = (UINT32) ObjDesc->Integer.Value;
-
-        /*
-         * If the BIOS has erroneously reversed the _PRT SourceName (index 2)
-         * and the SourceIndex (index 3), fix it. _PRT is important enough to
-         * workaround this BIOS error. This also provides compatibility with
-         * other ACPI implementations.
-         */
-        ObjDesc = SubObjectList[3];
-        if (!ObjDesc || (ObjDesc->Common.Type != ACPI_TYPE_INTEGER))
-        {
-            SubObjectList[3] = SubObjectList[2];
-            SubObjectList[2] = ObjDesc;
-
-            ACPI_WARNING ((AE_INFO,
-                "(PRT[%X].Source) SourceName and SourceIndex are reversed, fixed",
-                Index));
-        }
-
-        /*
-         * 3) Third subobject: Dereference the PRT.SourceName
-         * The name may be unresolved (slack mode), so allow a null object
-         */
-        ObjDesc = SubObjectList[2];
-        if (ObjDesc)
-        {
-            switch (ObjDesc->Common.Type)
-            {
-            case ACPI_TYPE_LOCAL_REFERENCE:
-
-                if (ObjDesc->Reference.Class != ACPI_REFCLASS_NAME)
-                {
-                    ACPI_ERROR ((AE_INFO,
-                        "(PRT[%X].Source) Need name, found Reference Class %X",
-                        Index, ObjDesc->Reference.Class));
-                    return_ACPI_STATUS (AE_BAD_DATA);
-                }
-
-                Node = ObjDesc->Reference.Node;
-
-                /* Use *remaining* length of the buffer as max for pathname */
-
-                PathBuffer.Length = OutputBuffer->Length -
-                                    (UINT32) ((UINT8 *) UserPrt->Source -
-                                    (UINT8 *) OutputBuffer->Pointer);
-                PathBuffer.Pointer = UserPrt->Source;
-
-                Status = AcpiNsHandleToPathname ((ACPI_HANDLE) Node, &PathBuffer);
-
-                /* +1 to include null terminator */
-
-                UserPrt->Length += (UINT32) ACPI_STRLEN (UserPrt->Source) + 1;
-                break;
-
-
-            case ACPI_TYPE_STRING:
-
-                ACPI_STRCPY (UserPrt->Source, ObjDesc->String.Pointer);
-
-                /*
-                 * Add to the Length field the length of the string
-                 * (add 1 for terminator)
-                 */
-                UserPrt->Length += ObjDesc->String.Length + 1;
-                break;
-
-
-            case ACPI_TYPE_INTEGER:
-                /*
-                 * If this is a number, then the Source Name is NULL, since the
-                 * entire buffer was zeroed out, we can leave this alone.
-                 *
-                 * Add to the Length field the length of the UINT32 NULL
-                 */
-                UserPrt->Length += sizeof (UINT32);
-                break;
-
-
-            default:
-
-               ACPI_ERROR ((AE_INFO,
-                   "(PRT[%X].Source) Need Ref/String/Integer, found %s",
-                   Index, AcpiUtGetObjectTypeName (ObjDesc)));
-               return_ACPI_STATUS (AE_BAD_DATA);
-            }
-        }
-
-        /* Now align the current length */
-
-        UserPrt->Length = (UINT32) ACPI_ROUND_UP_TO_64BIT (UserPrt->Length);
-
-        /* 4) Fourth subobject: Dereference the PRT.SourceIndex */
-
-        ObjDesc = SubObjectList[3];
-        if (ObjDesc->Common.Type != ACPI_TYPE_INTEGER)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "(PRT[%X].SourceIndex) Need Integer, found %s",
-                Index, AcpiUtGetObjectTypeName (ObjDesc)));
-            return_ACPI_STATUS (AE_BAD_DATA);
-        }
-
-        UserPrt->SourceIndex = (UINT32) ObjDesc->Integer.Value;
-
-        /* Point to the next ACPI_OPERAND_OBJECT in the top level package */
-
-        TopObjectList++;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
-            OutputBuffer->Pointer, (UINT32) OutputBuffer->Length));
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsCreateAmlResources
- *
- * PARAMETERS:  LinkedListBuffer        - Pointer to the resource linked list
- *              OutputBuffer            - Pointer to the user's buffer
- *
- * RETURN:      Status  AE_OK if okay, else a valid ACPI_STATUS code.
- *              If the OutputBuffer is too small, the error will be
- *              AE_BUFFER_OVERFLOW and OutputBuffer->Length will point
- *              to the size buffer needed.
- *
- * DESCRIPTION: Takes the linked list of device resources and
- *              creates a bytestream to be used as input for the
- *              _SRS control method.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsCreateAmlResources (
-    ACPI_RESOURCE           *LinkedListBuffer,
-    ACPI_BUFFER             *OutputBuffer)
-{
-    ACPI_STATUS             Status;
-    ACPI_SIZE               AmlSizeNeeded = 0;
-
-
-    ACPI_FUNCTION_TRACE (RsCreateAmlResources);
-
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "LinkedListBuffer = %p\n",
-        LinkedListBuffer));
-
-    /*
-     * Params already validated, so we don't re-validate here
-     *
-     * Pass the LinkedListBuffer into a module that calculates
-     * the buffer size needed for the byte stream.
-     */
-    Status = AcpiRsGetAmlLength (LinkedListBuffer,
-                &AmlSizeNeeded);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "AmlSizeNeeded=%X, %s\n",
-        (UINT32) AmlSizeNeeded, AcpiFormatException (Status)));
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Validate/Allocate/Clear caller buffer */
-
-    Status = AcpiUtInitializeBuffer (OutputBuffer, AmlSizeNeeded);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Do the conversion */
-
-    Status = AcpiRsConvertResourcesToAml (LinkedListBuffer, AmlSizeNeeded,
-                    OutputBuffer->Pointer);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
-            OutputBuffer->Pointer, (UINT32) OutputBuffer->Length));
-    return_ACPI_STATUS (AE_OK);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsdump.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsdump.c
deleted file mode 100644 (file)
index 62db284..0000000
+++ /dev/null
@@ -1,872 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsdump - Functions to display the resource structures.
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __RSDUMP_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rsdump")
-
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-
-/* Local prototypes */
-
-static void
-AcpiRsOutString (
-    char                    *Title,
-    char                    *Value);
-
-static void
-AcpiRsOutInteger8 (
-    char                    *Title,
-    UINT8                   Value);
-
-static void
-AcpiRsOutInteger16 (
-    char                    *Title,
-    UINT16                  Value);
-
-static void
-AcpiRsOutInteger32 (
-    char                    *Title,
-    UINT32                  Value);
-
-static void
-AcpiRsOutInteger64 (
-    char                    *Title,
-    UINT64                  Value);
-
-static void
-AcpiRsOutTitle (
-    char                    *Title);
-
-static void
-AcpiRsDumpByteList (
-    UINT16                  Length,
-    UINT8                   *Data);
-
-static void
-AcpiRsDumpDwordList (
-    UINT8                   Length,
-    UINT32                  *Data);
-
-static void
-AcpiRsDumpShortByteList (
-    UINT8                  Length,
-    UINT8                  *Data);
-
-static void
-AcpiRsDumpResourceSource (
-    ACPI_RESOURCE_SOURCE    *ResourceSource);
-
-static void
-AcpiRsDumpAddressCommon (
-    ACPI_RESOURCE_DATA      *Resource);
-
-static void
-AcpiRsDumpDescriptor (
-    void                    *Resource,
-    ACPI_RSDUMP_INFO *Table);
-
-
-#define ACPI_RSD_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_RESOURCE_DATA,f)
-#define ACPI_PRT_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_PCI_ROUTING_TABLE,f)
-#define ACPI_RSD_TABLE_SIZE(name)   (sizeof(name) / sizeof (ACPI_RSDUMP_INFO))
-
-
-/*******************************************************************************
- *
- * Resource Descriptor info tables
- *
- * Note: The first table entry must be a Title or Literal and must contain
- * the table length (number of table entries)
- *
- ******************************************************************************/
-
-ACPI_RSDUMP_INFO        AcpiRsDumpIrq[7] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpIrq),                "IRQ",                      NULL},
-    {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (Irq.DescriptorLength),             "Descriptor Length",        NULL},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Triggering),                   "Triggering",               AcpiGbl_HeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity),                     "Polarity",                 AcpiGbl_LlDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Sharable),                     "Sharing",                  AcpiGbl_ShrDecode},
-    {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (Irq.InterruptCount),               "Interrupt Count",          NULL},
-    {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]),                "Interrupt List",           NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpDma[6] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpDma),                "DMA",                      NULL},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Type),                         "Speed",                    AcpiGbl_TypDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Dma.BusMaster),                    "Mastering",                AcpiGbl_BmDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Transfer),                     "Transfer Type",            AcpiGbl_SizDecode},
-    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Dma.ChannelCount),                 "Channel Count",            NULL},
-    {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.Channels[0]),                  "Channel List",             NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpStartDpf[4] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpStartDpf),           "Start-Dependent-Functions",NULL},
-    {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (StartDpf.DescriptorLength),        "Descriptor Length",        NULL},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (StartDpf.CompatibilityPriority),   "Compatibility Priority",   AcpiGbl_ConfigDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (StartDpf.PerformanceRobustness),   "Performance/Robustness",   AcpiGbl_ConfigDecode}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpEndDpf[1] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpEndDpf),             "End-Dependent-Functions",  NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpIo[6] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpIo),                 "I/O",                      NULL},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Io.IoDecode),                      "Address Decoding",         AcpiGbl_IoDecode},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Io.Minimum),                       "Address Minimum",          NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Io.Maximum),                       "Address Maximum",          NULL},
-    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Io.Alignment),                     "Alignment",                NULL},
-    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Io.AddressLength),                 "Address Length",           NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpFixedIo[3] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpFixedIo),            "Fixed I/O",                NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (FixedIo.Address),                  "Address",                  NULL},
-    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (FixedIo.AddressLength),            "Address Length",           NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpVendor[3] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpVendor),             "Vendor Specific",          NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Vendor.ByteLength),                "Length",                   NULL},
-    {ACPI_RSD_LONGLIST, ACPI_RSD_OFFSET (Vendor.ByteData[0]),               "Vendor Data",              NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpEndTag[1] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpEndTag),             "EndTag",                   NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpMemory24[6] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemory24),           "24-Bit Memory Range",      NULL},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Memory24.WriteProtect),            "Write Protect",            AcpiGbl_RwDecode},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Memory24.Minimum),                 "Address Minimum",          NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Memory24.Maximum),                 "Address Maximum",          NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Memory24.Alignment),               "Alignment",                NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Memory24.AddressLength),           "Address Length",           NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpMemory32[6] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemory32),           "32-Bit Memory Range",      NULL},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Memory32.WriteProtect),            "Write Protect",            AcpiGbl_RwDecode},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Memory32.Minimum),                 "Address Minimum",          NULL},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Memory32.Maximum),                 "Address Maximum",          NULL},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Memory32.Alignment),               "Alignment",                NULL},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Memory32.AddressLength),           "Address Length",           NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpFixedMemory32[4] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpFixedMemory32),      "32-Bit Fixed Memory Range",NULL},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (FixedMemory32.WriteProtect),       "Write Protect",            AcpiGbl_RwDecode},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (FixedMemory32.Address),            "Address",                  NULL},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (FixedMemory32.AddressLength),      "Address Length",           NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpAddress16[8] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress16),          "16-Bit WORD Address Space",NULL},
-    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.Granularity),            "Granularity",              NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.Minimum),                "Address Minimum",          NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.Maximum),                "Address Maximum",          NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.TranslationOffset),      "Translation Offset",       NULL},
-    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.AddressLength),          "Address Length",           NULL},
-    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (Address16.ResourceSource),         NULL,                       NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpAddress32[8] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress32),         "32-Bit DWORD Address Space", NULL},
-    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.Granularity),            "Granularity",              NULL},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.Minimum),                "Address Minimum",          NULL},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.Maximum),                "Address Maximum",          NULL},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.TranslationOffset),      "Translation Offset",       NULL},
-    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.AddressLength),          "Address Length",           NULL},
-    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (Address32.ResourceSource),         NULL,                       NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpAddress64[8] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress64),          "64-Bit QWORD Address Space", NULL},
-    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.Granularity),            "Granularity",              NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.Minimum),                "Address Minimum",          NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.Maximum),                "Address Maximum",          NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.TranslationOffset),      "Translation Offset",       NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.AddressLength),          "Address Length",           NULL},
-    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (Address64.ResourceSource),         NULL,                       NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpExtAddress64[8] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpExtAddress64),       "64-Bit Extended Address Space", NULL},
-    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.Granularity),         "Granularity",              NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.Minimum),             "Address Minimum",          NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.Maximum),             "Address Maximum",          NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.TranslationOffset),   "Translation Offset",       NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.AddressLength),       "Address Length",           NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.TypeSpecific),        "Type-Specific Attribute",  NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpExtIrq[8] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpExtIrq),             "Extended IRQ",             NULL},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.ProducerConsumer),     "Type",                     AcpiGbl_ConsumeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Triggering),           "Triggering",               AcpiGbl_HeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Polarity),             "Polarity",                 AcpiGbl_LlDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Sharable),             "Sharing",                  AcpiGbl_ShrDecode},
-    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource),       NULL,                       NULL},
-    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount),       "Interrupt Count",          NULL},
-    {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]),        "Interrupt List",           NULL}
-};
-
-ACPI_RSDUMP_INFO        AcpiRsDumpGenericReg[6] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpGenericReg),         "Generic Register",         NULL},
-    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.SpaceId),               "Space ID",                 NULL},
-    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.BitWidth),              "Bit Width",                NULL},
-    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.BitOffset),             "Bit Offset",               NULL},
-    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.AccessSize),            "Access Size",              NULL},
-    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (GenericReg.Address),               "Address",                  NULL}
-};
-
-
-/*
- * Tables used for common address descriptor flag fields
- */
-static ACPI_RSDUMP_INFO AcpiRsDumpGeneralFlags[5] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpGeneralFlags),       NULL,                       NULL},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.ProducerConsumer),         "Consumer/Producer",        AcpiGbl_ConsumeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Decode),                   "Address Decode",           AcpiGbl_DecDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.MinAddressFixed),          "Min Relocatability",       AcpiGbl_MinDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.MaxAddressFixed),          "Max Relocatability",       AcpiGbl_MaxDecode}
-};
-
-static ACPI_RSDUMP_INFO AcpiRsDumpMemoryFlags[5] =
-{
-    {ACPI_RSD_LITERAL,  ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemoryFlags),        "Resource Type",            (void *) "Memory Range"},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.WriteProtect),    "Write Protect",            AcpiGbl_RwDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Caching),         "Caching",                  AcpiGbl_MemDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.RangeType),       "Range Type",               AcpiGbl_MtpDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Translation),     "Translation",              AcpiGbl_TtpDecode}
-};
-
-static ACPI_RSDUMP_INFO AcpiRsDumpIoFlags[4] =
-{
-    {ACPI_RSD_LITERAL,  ACPI_RSD_TABLE_SIZE (AcpiRsDumpIoFlags),            "Resource Type",            (void *) "I/O Range"},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.RangeType),        "Range Type",               AcpiGbl_RngDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.Translation),      "Translation",              AcpiGbl_TtpDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.TranslationType),  "Translation Type",         AcpiGbl_TrsDecode}
-};
-
-
-/*
- * Table used to dump _PRT contents
- */
-static ACPI_RSDUMP_INFO   AcpiRsDumpPrt[5] =
-{
-    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPrt),                NULL,                       NULL},
-    {ACPI_RSD_UINT64,   ACPI_PRT_OFFSET (Address),                          "Address",                  NULL},
-    {ACPI_RSD_UINT32,   ACPI_PRT_OFFSET (Pin),                              "Pin",                      NULL},
-    {ACPI_RSD_STRING,   ACPI_PRT_OFFSET (Source[0]),                        "Source",                   NULL},
-    {ACPI_RSD_UINT32,   ACPI_PRT_OFFSET (SourceIndex),                      "Source Index",             NULL}
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsDumpDescriptor
- *
- * PARAMETERS:  Resource
- *
- * RETURN:      None
- *
- * DESCRIPTION:
- *
- ******************************************************************************/
-
-static void
-AcpiRsDumpDescriptor (
-    void                    *Resource,
-    ACPI_RSDUMP_INFO        *Table)
-{
-    UINT8                   *Target = NULL;
-    UINT8                   *PreviousTarget;
-    char                    *Name;
-    UINT8                    Count;
-
-
-    /* First table entry must contain the table length (# of table entries) */
-
-    Count = Table->Offset;
-
-    while (Count)
-    {
-        PreviousTarget = Target;
-        Target = ACPI_ADD_PTR (UINT8, Resource, Table->Offset);
-        Name = Table->Name;
-
-        switch (Table->Opcode)
-        {
-        case ACPI_RSD_TITLE:
-            /*
-             * Optional resource title
-             */
-            if (Table->Name)
-            {
-                AcpiOsPrintf ("%s Resource\n", Name);
-            }
-            break;
-
-        /* Strings */
-
-        case ACPI_RSD_LITERAL:
-            AcpiRsOutString (Name, ACPI_CAST_PTR (char, Table->Pointer));
-            break;
-
-        case ACPI_RSD_STRING:
-            AcpiRsOutString (Name, ACPI_CAST_PTR (char, Target));
-            break;
-
-        /* Data items, 8/16/32/64 bit */
-
-        case ACPI_RSD_UINT8:
-            AcpiRsOutInteger8 (Name, ACPI_GET8 (Target));
-            break;
-
-        case ACPI_RSD_UINT16:
-            AcpiRsOutInteger16 (Name, ACPI_GET16 (Target));
-            break;
-
-        case ACPI_RSD_UINT32:
-            AcpiRsOutInteger32 (Name, ACPI_GET32 (Target));
-            break;
-
-        case ACPI_RSD_UINT64:
-            AcpiRsOutInteger64 (Name, ACPI_GET64 (Target));
-            break;
-
-        /* Flags: 1-bit and 2-bit flags supported */
-
-        case ACPI_RSD_1BITFLAG:
-            AcpiRsOutString (Name, ACPI_CAST_PTR (char,
-                Table->Pointer [*Target & 0x01]));
-            break;
-
-        case ACPI_RSD_2BITFLAG:
-            AcpiRsOutString (Name, ACPI_CAST_PTR (char,
-                Table->Pointer [*Target & 0x03]));
-            break;
-
-        case ACPI_RSD_SHORTLIST:
-            /*
-             * Short byte list (single line output) for DMA and IRQ resources
-             * Note: The list length is obtained from the previous table entry
-             */
-            if (PreviousTarget)
-            {
-                AcpiRsOutTitle (Name);
-                AcpiRsDumpShortByteList (*PreviousTarget, Target);
-            }
-            break;
-
-        case ACPI_RSD_LONGLIST:
-            /*
-             * Long byte list for Vendor resource data
-             * Note: The list length is obtained from the previous table entry
-             */
-            if (PreviousTarget)
-            {
-                AcpiRsDumpByteList (ACPI_GET16 (PreviousTarget), Target);
-            }
-            break;
-
-        case ACPI_RSD_DWORDLIST:
-            /*
-             * Dword list for Extended Interrupt resources
-             * Note: The list length is obtained from the previous table entry
-             */
-            if (PreviousTarget)
-            {
-                AcpiRsDumpDwordList (*PreviousTarget,
-                    ACPI_CAST_PTR (UINT32, Target));
-            }
-            break;
-
-        case ACPI_RSD_ADDRESS:
-            /*
-             * Common flags for all Address resources
-             */
-            AcpiRsDumpAddressCommon (ACPI_CAST_PTR (ACPI_RESOURCE_DATA, Target));
-            break;
-
-        case ACPI_RSD_SOURCE:
-            /*
-             * Optional ResourceSource for Address resources
-             */
-            AcpiRsDumpResourceSource (ACPI_CAST_PTR (ACPI_RESOURCE_SOURCE, Target));
-            break;
-
-        default:
-            AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n",
-                Table->Opcode);
-            return;
-        }
-
-        Table++;
-        Count--;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsDumpResourceSource
- *
- * PARAMETERS:  ResourceSource      - Pointer to a Resource Source struct
- *
- * RETURN:      None
- *
- * DESCRIPTION: Common routine for dumping the optional ResourceSource and the
- *              corresponding ResourceSourceIndex.
- *
- ******************************************************************************/
-
-static void
-AcpiRsDumpResourceSource (
-    ACPI_RESOURCE_SOURCE    *ResourceSource)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (ResourceSource->Index == 0xFF)
-    {
-        return;
-    }
-
-    AcpiRsOutInteger8 ("Resource Source Index",
-        ResourceSource->Index);
-
-    AcpiRsOutString ("Resource Source",
-        ResourceSource->StringPtr ?
-            ResourceSource->StringPtr : "[Not Specified]");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsDumpAddressCommon
- *
- * PARAMETERS:  Resource        - Pointer to an internal resource descriptor
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump the fields that are common to all Address resource
- *              descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiRsDumpAddressCommon (
-    ACPI_RESOURCE_DATA      *Resource)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-   /* Decode the type-specific flags */
-
-    switch (Resource->Address.ResourceType)
-    {
-    case ACPI_MEMORY_RANGE:
-
-        AcpiRsDumpDescriptor (Resource, AcpiRsDumpMemoryFlags);
-        break;
-
-    case ACPI_IO_RANGE:
-
-        AcpiRsDumpDescriptor (Resource, AcpiRsDumpIoFlags);
-        break;
-
-    case ACPI_BUS_NUMBER_RANGE:
-
-        AcpiRsOutString ("Resource Type", "Bus Number Range");
-        break;
-
-    default:
-
-        AcpiRsOutInteger8 ("Resource Type",
-            (UINT8) Resource->Address.ResourceType);
-        break;
-    }
-
-    /* Decode the general flags */
-
-    AcpiRsDumpDescriptor (Resource, AcpiRsDumpGeneralFlags);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsDumpResourceList
- *
- * PARAMETERS:  ResourceList        - Pointer to a resource descriptor list
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dispatches the structure to the correct dump routine.
- *
- ******************************************************************************/
-
-void
-AcpiRsDumpResourceList (
-    ACPI_RESOURCE           *ResourceList)
-{
-    UINT32                  Count = 0;
-    UINT32                  Type;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!(AcpiDbgLevel & ACPI_LV_RESOURCES) || !( _COMPONENT & AcpiDbgLayer))
-    {
-        return;
-    }
-
-    /* Walk list and dump all resource descriptors (END_TAG terminates) */
-
-    do
-    {
-        AcpiOsPrintf ("\n[%02X] ", Count);
-        Count++;
-
-        /* Validate Type before dispatch */
-
-        Type = ResourceList->Type;
-        if (Type > ACPI_RESOURCE_TYPE_MAX)
-        {
-            AcpiOsPrintf (
-                "Invalid descriptor type (%X) in resource list\n",
-                ResourceList->Type);
-            return;
-        }
-
-        /* Dump the resource descriptor */
-
-        AcpiRsDumpDescriptor (&ResourceList->Data,
-            AcpiGbl_DumpResourceDispatch[Type]);
-
-        /* Point to the next resource structure */
-
-        ResourceList = ACPI_ADD_PTR (ACPI_RESOURCE, ResourceList,
-                            ResourceList->Length);
-
-        /* Exit when END_TAG descriptor is reached */
-
-    } while (Type != ACPI_RESOURCE_TYPE_END_TAG);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsDumpIrqList
- *
- * PARAMETERS:  RouteTable      - Pointer to the routing table to dump.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print IRQ routing table
- *
- ******************************************************************************/
-
-void
-AcpiRsDumpIrqList (
-    UINT8                   *RouteTable)
-{
-    ACPI_PCI_ROUTING_TABLE  *PrtElement;
-    UINT8                   Count;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!(AcpiDbgLevel & ACPI_LV_RESOURCES) || !( _COMPONENT & AcpiDbgLayer))
-    {
-        return;
-    }
-
-    PrtElement = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, RouteTable);
-
-    /* Dump all table elements, Exit on zero length element */
-
-    for (Count = 0; PrtElement->Length; Count++)
-    {
-        AcpiOsPrintf ("\n[%02X] PCI IRQ Routing Table Package\n", Count);
-        AcpiRsDumpDescriptor (PrtElement, AcpiRsDumpPrt);
-
-        PrtElement = ACPI_ADD_PTR (ACPI_PCI_ROUTING_TABLE,
-                        PrtElement, PrtElement->Length);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsOut*
- *
- * PARAMETERS:  Title       - Name of the resource field
- *              Value       - Value of the resource field
- *
- * RETURN:      None
- *
- * DESCRIPTION: Miscellaneous helper functions to consistently format the
- *              output of the resource dump routines
- *
- ******************************************************************************/
-
-static void
-AcpiRsOutString (
-    char                    *Title,
-    char                    *Value)
-{
-    AcpiOsPrintf ("%27s : %s", Title, Value);
-    if (!*Value)
-    {
-        AcpiOsPrintf ("[NULL NAMESTRING]");
-    }
-    AcpiOsPrintf ("\n");
-}
-
-static void
-AcpiRsOutInteger8 (
-    char                    *Title,
-    UINT8                   Value)
-{
-    AcpiOsPrintf ("%27s : %2.2X\n", Title, Value);
-}
-
-static void
-AcpiRsOutInteger16 (
-    char                    *Title,
-    UINT16                  Value)
-{
-    AcpiOsPrintf ("%27s : %4.4X\n", Title, Value);
-}
-
-static void
-AcpiRsOutInteger32 (
-    char                    *Title,
-    UINT32                  Value)
-{
-    AcpiOsPrintf ("%27s : %8.8X\n", Title, Value);
-}
-
-static void
-AcpiRsOutInteger64 (
-    char                    *Title,
-    UINT64                  Value)
-{
-    AcpiOsPrintf ("%27s : %8.8X%8.8X\n", Title,
-        ACPI_FORMAT_UINT64 (Value));
-}
-
-static void
-AcpiRsOutTitle (
-    char                    *Title)
-{
-    AcpiOsPrintf ("%27s : ", Title);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsDump*List
- *
- * PARAMETERS:  Length      - Number of elements in the list
- *              Data        - Start of the list
- *
- * RETURN:      None
- *
- * DESCRIPTION: Miscellaneous functions to dump lists of raw data
- *
- ******************************************************************************/
-
-static void
-AcpiRsDumpByteList (
-    UINT16                  Length,
-    UINT8                   *Data)
-{
-    UINT8                   i;
-
-
-    for (i = 0; i < Length; i++)
-    {
-        AcpiOsPrintf ("%25s%2.2X : %2.2X\n",
-            "Byte", i, Data[i]);
-    }
-}
-
-static void
-AcpiRsDumpShortByteList (
-    UINT8                  Length,
-    UINT8                  *Data)
-{
-    UINT8                   i;
-
-
-    for (i = 0; i < Length; i++)
-    {
-        AcpiOsPrintf ("%X ", Data[i]);
-    }
-    AcpiOsPrintf ("\n");
-}
-
-static void
-AcpiRsDumpDwordList (
-    UINT8                   Length,
-    UINT32                  *Data)
-{
-    UINT8                   i;
-
-
-    for (i = 0; i < Length; i++)
-    {
-        AcpiOsPrintf ("%25s%2.2X : %8.8X\n",
-            "Dword", i, Data[i]);
-    }
-}
-
-#endif
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsinfo.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsinfo.c
deleted file mode 100644 (file)
index abf7994..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsinfo - Dispatch and Info tables
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __RSINFO_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rsinfo")
-
-/*
- * Resource dispatch and information tables. Any new resource types (either
- * Large or Small) must be reflected in each of these tables, so they are here
- * in one place.
- *
- * The tables for Large descriptors are indexed by bits 6:0 of the AML
- * descriptor type byte. The tables for Small descriptors are indexed by
- * bits 6:3 of the descriptor byte. The tables for internal resource
- * descriptors are indexed by the ACPI_RESOURCE_TYPE field.
- */
-
-
-/* Dispatch table for resource-to-AML (Set Resource) conversion functions */
-
-ACPI_RSCONVERT_INFO         *AcpiGbl_SetResourceDispatch[] =
-{
-    AcpiRsSetIrq,                   /* 0x00, ACPI_RESOURCE_TYPE_IRQ */
-    AcpiRsConvertDma,               /* 0x01, ACPI_RESOURCE_TYPE_DMA */
-    AcpiRsSetStartDpf,              /* 0x02, ACPI_RESOURCE_TYPE_START_DEPENDENT */
-    AcpiRsConvertEndDpf,            /* 0x03, ACPI_RESOURCE_TYPE_END_DEPENDENT */
-    AcpiRsConvertIo,                /* 0x04, ACPI_RESOURCE_TYPE_IO */
-    AcpiRsConvertFixedIo,           /* 0x05, ACPI_RESOURCE_TYPE_FIXED_IO */
-    AcpiRsSetVendor,                /* 0x06, ACPI_RESOURCE_TYPE_VENDOR */
-    AcpiRsConvertEndTag,            /* 0x07, ACPI_RESOURCE_TYPE_END_TAG */
-    AcpiRsConvertMemory24,          /* 0x08, ACPI_RESOURCE_TYPE_MEMORY24 */
-    AcpiRsConvertMemory32,          /* 0x09, ACPI_RESOURCE_TYPE_MEMORY32 */
-    AcpiRsConvertFixedMemory32,     /* 0x0A, ACPI_RESOURCE_TYPE_FIXED_MEMORY32 */
-    AcpiRsConvertAddress16,         /* 0x0B, ACPI_RESOURCE_TYPE_ADDRESS16 */
-    AcpiRsConvertAddress32,         /* 0x0C, ACPI_RESOURCE_TYPE_ADDRESS32 */
-    AcpiRsConvertAddress64,         /* 0x0D, ACPI_RESOURCE_TYPE_ADDRESS64 */
-    AcpiRsConvertExtAddress64,      /* 0x0E, ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 */
-    AcpiRsConvertExtIrq,            /* 0x0F, ACPI_RESOURCE_TYPE_EXTENDED_IRQ */
-    AcpiRsConvertGenericReg         /* 0x10, ACPI_RESOURCE_TYPE_GENERIC_REGISTER */
-};
-
-/* Dispatch tables for AML-to-resource (Get Resource) conversion functions */
-
-ACPI_RSCONVERT_INFO         *AcpiGbl_GetResourceDispatch[] =
-{
-    /* Small descriptors */
-
-    NULL,                           /* 0x00, Reserved */
-    NULL,                           /* 0x01, Reserved */
-    NULL,                           /* 0x02, Reserved */
-    NULL,                           /* 0x03, Reserved */
-    AcpiRsGetIrq,                   /* 0x04, ACPI_RESOURCE_NAME_IRQ */
-    AcpiRsConvertDma,               /* 0x05, ACPI_RESOURCE_NAME_DMA */
-    AcpiRsGetStartDpf,              /* 0x06, ACPI_RESOURCE_NAME_START_DEPENDENT */
-    AcpiRsConvertEndDpf,            /* 0x07, ACPI_RESOURCE_NAME_END_DEPENDENT */
-    AcpiRsConvertIo,                /* 0x08, ACPI_RESOURCE_NAME_IO */
-    AcpiRsConvertFixedIo,           /* 0x09, ACPI_RESOURCE_NAME_FIXED_IO */
-    NULL,                           /* 0x0A, Reserved */
-    NULL,                           /* 0x0B, Reserved */
-    NULL,                           /* 0x0C, Reserved */
-    NULL,                           /* 0x0D, Reserved */
-    AcpiRsGetVendorSmall,           /* 0x0E, ACPI_RESOURCE_NAME_VENDOR_SMALL */
-    AcpiRsConvertEndTag,            /* 0x0F, ACPI_RESOURCE_NAME_END_TAG */
-
-    /* Large descriptors */
-
-    NULL,                           /* 0x00, Reserved */
-    AcpiRsConvertMemory24,          /* 0x01, ACPI_RESOURCE_NAME_MEMORY24 */
-    AcpiRsConvertGenericReg,        /* 0x02, ACPI_RESOURCE_NAME_GENERIC_REGISTER */
-    NULL,                           /* 0x03, Reserved */
-    AcpiRsGetVendorLarge,           /* 0x04, ACPI_RESOURCE_NAME_VENDOR_LARGE */
-    AcpiRsConvertMemory32,          /* 0x05, ACPI_RESOURCE_NAME_MEMORY32 */
-    AcpiRsConvertFixedMemory32,     /* 0x06, ACPI_RESOURCE_NAME_FIXED_MEMORY32 */
-    AcpiRsConvertAddress32,         /* 0x07, ACPI_RESOURCE_NAME_ADDRESS32 */
-    AcpiRsConvertAddress16,         /* 0x08, ACPI_RESOURCE_NAME_ADDRESS16 */
-    AcpiRsConvertExtIrq,            /* 0x09, ACPI_RESOURCE_NAME_EXTENDED_IRQ */
-    AcpiRsConvertAddress64,         /* 0x0A, ACPI_RESOURCE_NAME_ADDRESS64 */
-    AcpiRsConvertExtAddress64       /* 0x0B, ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 */
-};
-
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-
-/* Dispatch table for resource dump functions */
-
-ACPI_RSDUMP_INFO            *AcpiGbl_DumpResourceDispatch[] =
-{
-    AcpiRsDumpIrq,                  /* ACPI_RESOURCE_TYPE_IRQ */
-    AcpiRsDumpDma,                  /* ACPI_RESOURCE_TYPE_DMA */
-    AcpiRsDumpStartDpf,             /* ACPI_RESOURCE_TYPE_START_DEPENDENT */
-    AcpiRsDumpEndDpf,               /* ACPI_RESOURCE_TYPE_END_DEPENDENT */
-    AcpiRsDumpIo,                   /* ACPI_RESOURCE_TYPE_IO */
-    AcpiRsDumpFixedIo,              /* ACPI_RESOURCE_TYPE_FIXED_IO */
-    AcpiRsDumpVendor,               /* ACPI_RESOURCE_TYPE_VENDOR */
-    AcpiRsDumpEndTag,               /* ACPI_RESOURCE_TYPE_END_TAG */
-    AcpiRsDumpMemory24,             /* ACPI_RESOURCE_TYPE_MEMORY24 */
-    AcpiRsDumpMemory32,             /* ACPI_RESOURCE_TYPE_MEMORY32 */
-    AcpiRsDumpFixedMemory32,        /* ACPI_RESOURCE_TYPE_FIXED_MEMORY32 */
-    AcpiRsDumpAddress16,            /* ACPI_RESOURCE_TYPE_ADDRESS16 */
-    AcpiRsDumpAddress32,            /* ACPI_RESOURCE_TYPE_ADDRESS32 */
-    AcpiRsDumpAddress64,            /* ACPI_RESOURCE_TYPE_ADDRESS64 */
-    AcpiRsDumpExtAddress64,         /* ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 */
-    AcpiRsDumpExtIrq,               /* ACPI_RESOURCE_TYPE_EXTENDED_IRQ */
-    AcpiRsDumpGenericReg,           /* ACPI_RESOURCE_TYPE_GENERIC_REGISTER */
-};
-#endif
-
-
-/*
- * Base sizes for external AML resource descriptors, indexed by internal type.
- * Includes size of the descriptor header (1 byte for small descriptors,
- * 3 bytes for large descriptors)
- */
-const UINT8                 AcpiGbl_AmlResourceSizes[] =
-{
-    sizeof (AML_RESOURCE_IRQ),              /* ACPI_RESOURCE_TYPE_IRQ (optional Byte 3 always created) */
-    sizeof (AML_RESOURCE_DMA),              /* ACPI_RESOURCE_TYPE_DMA */
-    sizeof (AML_RESOURCE_START_DEPENDENT),  /* ACPI_RESOURCE_TYPE_START_DEPENDENT (optional Byte 1 always created) */
-    sizeof (AML_RESOURCE_END_DEPENDENT),    /* ACPI_RESOURCE_TYPE_END_DEPENDENT */
-    sizeof (AML_RESOURCE_IO),               /* ACPI_RESOURCE_TYPE_IO */
-    sizeof (AML_RESOURCE_FIXED_IO),         /* ACPI_RESOURCE_TYPE_FIXED_IO */
-    sizeof (AML_RESOURCE_VENDOR_SMALL),     /* ACPI_RESOURCE_TYPE_VENDOR */
-    sizeof (AML_RESOURCE_END_TAG),          /* ACPI_RESOURCE_TYPE_END_TAG */
-    sizeof (AML_RESOURCE_MEMORY24),         /* ACPI_RESOURCE_TYPE_MEMORY24 */
-    sizeof (AML_RESOURCE_MEMORY32),         /* ACPI_RESOURCE_TYPE_MEMORY32 */
-    sizeof (AML_RESOURCE_FIXED_MEMORY32),   /* ACPI_RESOURCE_TYPE_FIXED_MEMORY32 */
-    sizeof (AML_RESOURCE_ADDRESS16),        /* ACPI_RESOURCE_TYPE_ADDRESS16 */
-    sizeof (AML_RESOURCE_ADDRESS32),        /* ACPI_RESOURCE_TYPE_ADDRESS32 */
-    sizeof (AML_RESOURCE_ADDRESS64),        /* ACPI_RESOURCE_TYPE_ADDRESS64 */
-    sizeof (AML_RESOURCE_EXTENDED_ADDRESS64),/*ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 */
-    sizeof (AML_RESOURCE_EXTENDED_IRQ),     /* ACPI_RESOURCE_TYPE_EXTENDED_IRQ */
-    sizeof (AML_RESOURCE_GENERIC_REGISTER)  /* ACPI_RESOURCE_TYPE_GENERIC_REGISTER */
-};
-
-
-const UINT8                 AcpiGbl_ResourceStructSizes[] =
-{
-    /* Small descriptors */
-
-    0,
-    0,
-    0,
-    0,
-    ACPI_RS_SIZE (ACPI_RESOURCE_IRQ),
-    ACPI_RS_SIZE (ACPI_RESOURCE_DMA),
-    ACPI_RS_SIZE (ACPI_RESOURCE_START_DEPENDENT),
-    ACPI_RS_SIZE_MIN,
-    ACPI_RS_SIZE (ACPI_RESOURCE_IO),
-    ACPI_RS_SIZE (ACPI_RESOURCE_FIXED_IO),
-    0,
-    0,
-    0,
-    0,
-    ACPI_RS_SIZE (ACPI_RESOURCE_VENDOR),
-    ACPI_RS_SIZE_MIN,
-
-    /* Large descriptors */
-
-    0,
-    ACPI_RS_SIZE (ACPI_RESOURCE_MEMORY24),
-    ACPI_RS_SIZE (ACPI_RESOURCE_GENERIC_REGISTER),
-    0,
-    ACPI_RS_SIZE (ACPI_RESOURCE_VENDOR),
-    ACPI_RS_SIZE (ACPI_RESOURCE_MEMORY32),
-    ACPI_RS_SIZE (ACPI_RESOURCE_FIXED_MEMORY32),
-    ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS32),
-    ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS16),
-    ACPI_RS_SIZE (ACPI_RESOURCE_EXTENDED_IRQ),
-    ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS64),
-    ACPI_RS_SIZE (ACPI_RESOURCE_EXTENDED_ADDRESS64)
-};
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsio.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsio.c
deleted file mode 100644 (file)
index fb9213d..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsio - IO and DMA resource descriptors
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __RSIO_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rsio")
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertIo
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertIo[5] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_IO,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_IO),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertIo)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_IO,
-                        sizeof (AML_RESOURCE_IO),
-                        0},
-
-    /* Decode flag */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Io.IoDecode),
-                        AML_OFFSET (Io.Flags),
-                        0},
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Address Alignment
-     * Length
-     * Minimum Base Address
-     * Maximum Base Address
-     */
-    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.Io.Alignment),
-                        AML_OFFSET (Io.Alignment),
-                        2},
-
-    {ACPI_RSC_MOVE16,   ACPI_RS_OFFSET (Data.Io.Minimum),
-                        AML_OFFSET (Io.Minimum),
-                        2}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertFixedIo
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertFixedIo[4] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_FIXED_IO,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_FIXED_IO),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertFixedIo)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_FIXED_IO,
-                        sizeof (AML_RESOURCE_FIXED_IO),
-                        0},
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Base Address
-     * Length
-     */
-    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.FixedIo.AddressLength),
-                        AML_OFFSET (FixedIo.AddressLength),
-                        1},
-
-    {ACPI_RSC_MOVE16,   ACPI_RS_OFFSET (Data.FixedIo.Address),
-                        AML_OFFSET (FixedIo.Address),
-                        1}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertGenericReg
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertGenericReg[4] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_GENERIC_REGISTER,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_GENERIC_REGISTER),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertGenericReg)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_GENERIC_REGISTER,
-                        sizeof (AML_RESOURCE_GENERIC_REGISTER),
-                        0},
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Address Space ID
-     * Register Bit Width
-     * Register Bit Offset
-     * Access Size
-     */
-    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.GenericReg.SpaceId),
-                        AML_OFFSET (GenericReg.AddressSpaceId),
-                        4},
-
-    /* Get the Register Address */
-
-    {ACPI_RSC_MOVE64,   ACPI_RS_OFFSET (Data.GenericReg.Address),
-                        AML_OFFSET (GenericReg.Address),
-                        1}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertEndDpf
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO   AcpiRsConvertEndDpf[2] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_END_DEPENDENT,
-                        ACPI_RS_SIZE_MIN,
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertEndDpf)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_END_DEPENDENT,
-                        sizeof (AML_RESOURCE_END_DEPENDENT),
-                        0}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertEndTag
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO   AcpiRsConvertEndTag[2] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_END_TAG,
-                        ACPI_RS_SIZE_MIN,
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertEndTag)},
-
-    /*
-     * Note: The checksum field is set to zero, meaning that the resource
-     * data is treated as if the checksum operation succeeded.
-     * (ACPI Spec 1.0b Section 6.4.2.8)
-     */
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_END_TAG,
-                        sizeof (AML_RESOURCE_END_TAG),
-                        0}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsGetStartDpf
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO   AcpiRsGetStartDpf[6] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_START_DEPENDENT,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_START_DEPENDENT),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsGetStartDpf)},
-
-    /* Defaults for Compatibility and Performance priorities */
-
-    {ACPI_RSC_SET8,     ACPI_RS_OFFSET (Data.StartDpf.CompatibilityPriority),
-                        ACPI_ACCEPTABLE_CONFIGURATION,
-                        2},
-
-    /* Get the descriptor length (0 or 1 for Start Dpf descriptor) */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.DescriptorLength),
-                        AML_OFFSET (StartDpf.DescriptorType),
-                        0},
-
-    /* All done if there is no flag byte present in the descriptor */
-
-    {ACPI_RSC_EXIT_NE,  ACPI_RSC_COMPARE_AML_LENGTH, 0, 1},
-
-    /* Flag byte is present, get the flags */
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.CompatibilityPriority),
-                        AML_OFFSET (StartDpf.Flags),
-                        0},
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.PerformanceRobustness),
-                        AML_OFFSET (StartDpf.Flags),
-                        2}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsSetStartDpf
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO   AcpiRsSetStartDpf[10] =
-{
-    /* Start with a default descriptor of length 1 */
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_START_DEPENDENT,
-                        sizeof (AML_RESOURCE_START_DEPENDENT),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsSetStartDpf)},
-
-    /* Set the default flag values */
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.CompatibilityPriority),
-                        AML_OFFSET (StartDpf.Flags),
-                        0},
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.PerformanceRobustness),
-                        AML_OFFSET (StartDpf.Flags),
-                        2},
-    /*
-     * All done if the output descriptor length is required to be 1
-     * (i.e., optimization to 0 bytes cannot be attempted)
-     */
-    {ACPI_RSC_EXIT_EQ,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET(Data.StartDpf.DescriptorLength),
-                        1},
-
-    /* Set length to 0 bytes (no flags byte) */
-
-    {ACPI_RSC_LENGTH,   0, 0, sizeof (AML_RESOURCE_START_DEPENDENT_NOPRIO)},
-
-    /*
-     * All done if the output descriptor length is required to be 0.
-     *
-     * TBD: Perhaps we should check for error if input flags are not
-     * compatible with a 0-byte descriptor.
-     */
-    {ACPI_RSC_EXIT_EQ,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET(Data.StartDpf.DescriptorLength),
-                        0},
-
-    /* Reset length to 1 byte (descriptor with flags byte) */
-
-    {ACPI_RSC_LENGTH,   0, 0, sizeof (AML_RESOURCE_START_DEPENDENT)},
-
-
-    /*
-     * All done if flags byte is necessary -- if either priority value
-     * is not ACPI_ACCEPTABLE_CONFIGURATION
-     */
-    {ACPI_RSC_EXIT_NE,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET (Data.StartDpf.CompatibilityPriority),
-                        ACPI_ACCEPTABLE_CONFIGURATION},
-
-    {ACPI_RSC_EXIT_NE,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET (Data.StartDpf.PerformanceRobustness),
-                        ACPI_ACCEPTABLE_CONFIGURATION},
-
-    /* Flag byte is not necessary */
-
-    {ACPI_RSC_LENGTH,   0, 0, sizeof (AML_RESOURCE_START_DEPENDENT_NOPRIO)}
-};
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsirq.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsirq.c
deleted file mode 100644 (file)
index 7eab435..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsirq - IRQ resource descriptors
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __RSIRQ_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rsirq")
-
-
-/*******************************************************************************
- *
- * AcpiRsGetIrq
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsGetIrq[8] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_IRQ,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_IRQ),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsGetIrq)},
-
-    /* Get the IRQ mask (bytes 1:2) */
-
-    {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]),
-                        AML_OFFSET (Irq.IrqMask),
-                        ACPI_RS_OFFSET (Data.Irq.InterruptCount)},
-
-    /* Set default flags (others are zero) */
-
-    {ACPI_RSC_SET8,     ACPI_RS_OFFSET (Data.Irq.Triggering),
-                        ACPI_EDGE_SENSITIVE,
-                        1},
-
-    /* Get the descriptor length (2 or 3 for IRQ descriptor) */
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Irq.DescriptorLength),
-                        AML_OFFSET (Irq.DescriptorType),
-                        0},
-
-    /* All done if no flag byte present in descriptor */
-
-    {ACPI_RSC_EXIT_NE,  ACPI_RSC_COMPARE_AML_LENGTH, 0, 3},
-
-    /* Get flags: Triggering[0], Polarity[3], Sharing[4] */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Triggering),
-                        AML_OFFSET (Irq.Flags),
-                        0},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Polarity),
-                        AML_OFFSET (Irq.Flags),
-                        3},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
-                        AML_OFFSET (Irq.Flags),
-                        4}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsSetIrq
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsSetIrq[13] =
-{
-    /* Start with a default descriptor of length 3 */
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_IRQ,
-                        sizeof (AML_RESOURCE_IRQ),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsSetIrq)},
-
-    /* Convert interrupt list to 16-bit IRQ bitmask */
-
-    {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]),
-                        AML_OFFSET (Irq.IrqMask),
-                        ACPI_RS_OFFSET (Data.Irq.InterruptCount)},
-
-    /* Set the flags byte */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Triggering),
-                        AML_OFFSET (Irq.Flags),
-                        0},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Polarity),
-                        AML_OFFSET (Irq.Flags),
-                        3},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
-                        AML_OFFSET (Irq.Flags),
-                        4},
-
-    /*
-     * All done if the output descriptor length is required to be 3
-     * (i.e., optimization to 2 bytes cannot be attempted)
-     */
-    {ACPI_RSC_EXIT_EQ,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET(Data.Irq.DescriptorLength),
-                        3},
-
-    /* Set length to 2 bytes (no flags byte) */
-
-    {ACPI_RSC_LENGTH,   0, 0, sizeof (AML_RESOURCE_IRQ_NOFLAGS)},
-
-    /*
-     * All done if the output descriptor length is required to be 2.
-     *
-     * TBD: Perhaps we should check for error if input flags are not
-     * compatible with a 2-byte descriptor.
-     */
-    {ACPI_RSC_EXIT_EQ,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET(Data.Irq.DescriptorLength),
-                        2},
-
-    /* Reset length to 3 bytes (descriptor with flags byte) */
-
-    {ACPI_RSC_LENGTH,   0, 0, sizeof (AML_RESOURCE_IRQ)},
-
-    /*
-     * Check if the flags byte is necessary. Not needed if the flags are:
-     * ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_HIGH, ACPI_EXCLUSIVE
-     */
-    {ACPI_RSC_EXIT_NE,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET (Data.Irq.Triggering),
-                        ACPI_EDGE_SENSITIVE},
-
-    {ACPI_RSC_EXIT_NE,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET (Data.Irq.Polarity),
-                        ACPI_ACTIVE_HIGH},
-
-    {ACPI_RSC_EXIT_NE,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET (Data.Irq.Sharable),
-                        ACPI_EXCLUSIVE},
-
-    /* We can optimize to a 2-byte IrqNoFlags() descriptor */
-
-    {ACPI_RSC_LENGTH,   0, 0, sizeof (AML_RESOURCE_IRQ_NOFLAGS)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertExtIrq
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertExtIrq[9] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_EXTENDED_IRQ,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_EXTENDED_IRQ),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertExtIrq)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_EXTENDED_IRQ,
-                        sizeof (AML_RESOURCE_EXTENDED_IRQ),
-                        0},
-
-    /* Flag bits */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.ProducerConsumer),
-                        AML_OFFSET (ExtendedIrq.Flags),
-                        0},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Triggering),
-                        AML_OFFSET (ExtendedIrq.Flags),
-                        1},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Polarity),
-                        AML_OFFSET (ExtendedIrq.Flags),
-                        2},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Sharable),
-                        AML_OFFSET (ExtendedIrq.Flags),
-                        3},
-
-    /* IRQ Table length (Byte4) */
-
-    {ACPI_RSC_COUNT,    ACPI_RS_OFFSET (Data.ExtendedIrq.InterruptCount),
-                        AML_OFFSET (ExtendedIrq.InterruptCount),
-                        sizeof (UINT32)},
-
-    /* Copy every IRQ in the table, each is 32 bits */
-
-    {ACPI_RSC_MOVE32,   ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]),
-                        AML_OFFSET (ExtendedIrq.Interrupts[0]),
-                        0},
-
-    /* Optional ResourceSource (Index and String) */
-
-    {ACPI_RSC_SOURCEX,  ACPI_RS_OFFSET (Data.ExtendedIrq.ResourceSource),
-                        ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]),
-                        sizeof (AML_RESOURCE_EXTENDED_IRQ)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertDma
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertDma[6] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_DMA,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_DMA),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertDma)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_DMA,
-                        sizeof (AML_RESOURCE_DMA),
-                        0},
-
-    /* Flags: transfer preference, bus mastering, channel speed */
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Dma.Transfer),
-                        AML_OFFSET (Dma.Flags),
-                        0},
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Dma.BusMaster),
-                        AML_OFFSET (Dma.Flags),
-                        2},
-
-    {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Dma.Type),
-                        AML_OFFSET (Dma.Flags),
-                        5},
-
-    /* DMA channel mask bits */
-
-    {ACPI_RSC_BITMASK,  ACPI_RS_OFFSET (Data.Dma.Channels[0]),
-                        AML_OFFSET (Dma.DmaChannelMask),
-                        ACPI_RS_OFFSET (Data.Dma.ChannelCount)}
-};
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rslist.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rslist.c
deleted file mode 100644 (file)
index 3adce2b..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rslist - Linked list utilities
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __RSLIST_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rslist")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsConvertAmlToResources
- *
- * PARAMETERS:  ACPI_WALK_AML_CALLBACK
- *              ResourcePtr             - Pointer to the buffer that will
- *                                        contain the output structures
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert an AML resource to an internal representation of the
- *              resource that is aligned and easier to access.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsConvertAmlToResources (
-    UINT8                   *Aml,
-    UINT32                  Length,
-    UINT32                  Offset,
-    UINT8                   ResourceIndex,
-    void                    *Context)
-{
-    ACPI_RESOURCE           **ResourcePtr = ACPI_CAST_INDIRECT_PTR (
-                                ACPI_RESOURCE, Context);
-    ACPI_RESOURCE           *Resource;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (RsConvertAmlToResources);
-
-
-    /*
-     * Check that the input buffer and all subsequent pointers into it
-     * are aligned on a native word boundary. Most important on IA64
-     */
-    Resource = *ResourcePtr;
-    if (ACPI_IS_MISALIGNED (Resource))
-    {
-        ACPI_WARNING ((AE_INFO,
-            "Misaligned resource pointer %p", Resource));
-    }
-
-    /* Convert the AML byte stream resource to a local resource struct */
-
-    Status = AcpiRsConvertAmlToResource (
-                Resource, ACPI_CAST_PTR (AML_RESOURCE, Aml),
-                AcpiGbl_GetResourceDispatch[ResourceIndex]);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Could not convert AML resource (Type %X)", *Aml));
-        return_ACPI_STATUS (Status);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_RESOURCES,
-        "Type %.2X, AmlLength %.2X InternalLength %.2X\n",
-        AcpiUtGetResourceType (Aml), Length,
-        Resource->Length));
-
-    /* Point to the next structure in the output buffer */
-
-    *ResourcePtr = ACPI_ADD_PTR (void, Resource, Resource->Length);
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsConvertResourcesToAml
- *
- * PARAMETERS:  Resource            - Pointer to the resource linked list
- *              AmlSizeNeeded       - Calculated size of the byte stream
- *                                    needed from calling AcpiRsGetAmlLength()
- *                                    The size of the OutputBuffer is
- *                                    guaranteed to be >= AmlSizeNeeded
- *              OutputBuffer        - Pointer to the buffer that will
- *                                    contain the byte stream
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Takes the resource linked list and parses it, creating a
- *              byte stream of resources in the caller's output buffer
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsConvertResourcesToAml (
-    ACPI_RESOURCE           *Resource,
-    ACPI_SIZE               AmlSizeNeeded,
-    UINT8                   *OutputBuffer)
-{
-    UINT8                   *Aml = OutputBuffer;
-    UINT8                   *EndAml = OutputBuffer + AmlSizeNeeded;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (RsConvertResourcesToAml);
-
-
-    /* Walk the resource descriptor list, convert each descriptor */
-
-    while (Aml < EndAml)
-    {
-        /* Validate the (internal) Resource Type */
-
-        if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Invalid descriptor type (%X) in resource list",
-                Resource->Type));
-            return_ACPI_STATUS (AE_BAD_DATA);
-        }
-
-        /* Perform the conversion */
-
-        Status = AcpiRsConvertResourceToAml (Resource,
-                    ACPI_CAST_PTR (AML_RESOURCE, Aml),
-                    AcpiGbl_SetResourceDispatch[Resource->Type]);
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_EXCEPTION ((AE_INFO, Status,
-                "Could not convert resource (type %X) to AML",
-                Resource->Type));
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Perform final sanity check on the new AML resource descriptor */
-
-        Status = AcpiUtValidateResource (
-                    ACPI_CAST_PTR (AML_RESOURCE, Aml), NULL);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Check for end-of-list, normal exit */
-
-        if (Resource->Type == ACPI_RESOURCE_TYPE_END_TAG)
-        {
-            /* An End Tag indicates the end of the input Resource Template */
-
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        /*
-         * Extract the total length of the new descriptor and set the
-         * Aml to point to the next (output) resource descriptor
-         */
-        Aml += AcpiUtGetDescriptorLength (Aml);
-
-        /* Point to the next input resource descriptor */
-
-        Resource = ACPI_ADD_PTR (ACPI_RESOURCE, Resource, Resource->Length);
-    }
-
-    /* Completed buffer, but did not find an EndTag resource descriptor */
-
-    return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsmemory.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsmemory.c
deleted file mode 100644 (file)
index a3d08c0..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsmem24 - Memory resource descriptors
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __RSMEMORY_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rsmemory")
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertMemory24
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertMemory24[4] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_MEMORY24,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_MEMORY24),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertMemory24)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_MEMORY24,
-                        sizeof (AML_RESOURCE_MEMORY24),
-                        0},
-
-    /* Read/Write bit */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Memory24.WriteProtect),
-                        AML_OFFSET (Memory24.Flags),
-                        0},
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Minimum Base Address
-     * Maximum Base Address
-     * Address Base Alignment
-     * Range Length
-     */
-    {ACPI_RSC_MOVE16,   ACPI_RS_OFFSET (Data.Memory24.Minimum),
-                        AML_OFFSET (Memory24.Minimum),
-                        4}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertMemory32
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertMemory32[4] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_MEMORY32,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_MEMORY32),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertMemory32)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_MEMORY32,
-                        sizeof (AML_RESOURCE_MEMORY32),
-                        0},
-
-    /* Read/Write bit */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Memory32.WriteProtect),
-                        AML_OFFSET (Memory32.Flags),
-                        0},
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Minimum Base Address
-     * Maximum Base Address
-     * Address Base Alignment
-     * Range Length
-     */
-    {ACPI_RSC_MOVE32,   ACPI_RS_OFFSET (Data.Memory32.Minimum),
-                        AML_OFFSET (Memory32.Minimum),
-                        4}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertFixedMemory32
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsConvertFixedMemory32[4] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_FIXED_MEMORY32,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_FIXED_MEMORY32),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsConvertFixedMemory32)},
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_FIXED_MEMORY32,
-                        sizeof (AML_RESOURCE_FIXED_MEMORY32),
-                        0},
-
-    /* Read/Write bit */
-
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.FixedMemory32.WriteProtect),
-                        AML_OFFSET (FixedMemory32.Flags),
-                        0},
-    /*
-     * These fields are contiguous in both the source and destination:
-     * Base Address
-     * Range Length
-     */
-    {ACPI_RSC_MOVE32,   ACPI_RS_OFFSET (Data.FixedMemory32.Address),
-                        AML_OFFSET (FixedMemory32.Address),
-                        2}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsGetVendorSmall
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsGetVendorSmall[3] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_VENDOR,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_VENDOR),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsGetVendorSmall)},
-
-    /* Length of the vendor data (byte count) */
-
-    {ACPI_RSC_COUNT16,  ACPI_RS_OFFSET (Data.Vendor.ByteLength),
-                        0,
-                        sizeof (UINT8)},
-
-    /* Vendor data */
-
-    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.Vendor.ByteData[0]),
-                        sizeof (AML_RESOURCE_SMALL_HEADER),
-                        0}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsGetVendorLarge
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsGetVendorLarge[3] =
-{
-    {ACPI_RSC_INITGET,  ACPI_RESOURCE_TYPE_VENDOR,
-                        ACPI_RS_SIZE (ACPI_RESOURCE_VENDOR),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsGetVendorLarge)},
-
-    /* Length of the vendor data (byte count) */
-
-    {ACPI_RSC_COUNT16,  ACPI_RS_OFFSET (Data.Vendor.ByteLength),
-                        0,
-                        sizeof (UINT8)},
-
-    /* Vendor data */
-
-    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.Vendor.ByteData[0]),
-                        sizeof (AML_RESOURCE_LARGE_HEADER),
-                        0}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsSetVendor
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO     AcpiRsSetVendor[7] =
-{
-    /* Default is a small vendor descriptor */
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_VENDOR_SMALL,
-                        sizeof (AML_RESOURCE_SMALL_HEADER),
-                        ACPI_RSC_TABLE_SIZE (AcpiRsSetVendor)},
-
-    /* Get the length and copy the data */
-
-    {ACPI_RSC_COUNT16,  ACPI_RS_OFFSET (Data.Vendor.ByteLength),
-                        0,
-                        0},
-
-    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.Vendor.ByteData[0]),
-                        sizeof (AML_RESOURCE_SMALL_HEADER),
-                        0},
-
-    /*
-     * All done if the Vendor byte length is 7 or less, meaning that it will
-     * fit within a small descriptor
-     */
-    {ACPI_RSC_EXIT_LE,  0, 0, 7},
-
-    /* Must create a large vendor descriptor */
-
-    {ACPI_RSC_INITSET,  ACPI_RESOURCE_NAME_VENDOR_LARGE,
-                        sizeof (AML_RESOURCE_LARGE_HEADER),
-                        0},
-
-    {ACPI_RSC_COUNT16,  ACPI_RS_OFFSET (Data.Vendor.ByteLength),
-                        0,
-                        0},
-
-    {ACPI_RSC_MOVE8,    ACPI_RS_OFFSET (Data.Vendor.ByteData[0]),
-                        sizeof (AML_RESOURCE_LARGE_HEADER),
-                        0}
-};
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsmisc.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsmisc.c
deleted file mode 100644 (file)
index 3565334..0000000
+++ /dev/null
@@ -1,683 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsmisc - Miscellaneous resource descriptors
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __RSMISC_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rsmisc")
-
-
-#define INIT_RESOURCE_TYPE(i)       i->ResourceOffset
-#define INIT_RESOURCE_LENGTH(i)     i->AmlOffset
-#define INIT_TABLE_LENGTH(i)        i->Value
-
-#define COMPARE_OPCODE(i)           i->ResourceOffset
-#define COMPARE_TARGET(i)           i->AmlOffset
-#define COMPARE_VALUE(i)            i->Value
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsConvertAmlToResource
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Aml                 - Where the AML descriptor is returned
- *              Info                - Pointer to appropriate conversion table
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert an external AML resource descriptor to the corresponding
- *              internal resource descriptor
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsConvertAmlToResource (
-    ACPI_RESOURCE           *Resource,
-    AML_RESOURCE            *Aml,
-    ACPI_RSCONVERT_INFO     *Info)
-{
-    ACPI_RS_LENGTH          AmlResourceLength;
-    void                    *Source;
-    void                    *Destination;
-    char                    *Target;
-    UINT8                   Count;
-    UINT8                   FlagsMode = FALSE;
-    UINT16                  ItemCount = 0;
-    UINT16                  Temp16 = 0;
-
-
-    ACPI_FUNCTION_TRACE (RsConvertAmlToResource);
-
-
-    if (((ACPI_SIZE) Resource) & 0x3)
-    {
-        /* Each internal resource struct is expected to be 32-bit aligned */
-
-        ACPI_WARNING ((AE_INFO,
-            "Misaligned resource pointer (get): %p Type %2.2X Len %X",
-            Resource, Resource->Type, Resource->Length));
-    }
-
-    /* Extract the resource Length field (does not include header length) */
-
-    AmlResourceLength = AcpiUtGetResourceLength (Aml);
-
-    /*
-     * First table entry must be ACPI_RSC_INITxxx and must contain the
-     * table length (# of table entries)
-     */
-    Count = INIT_TABLE_LENGTH (Info);
-
-    while (Count)
-    {
-        /*
-         * Source is the external AML byte stream buffer,
-         * destination is the internal resource descriptor
-         */
-        Source      = ACPI_ADD_PTR (void, Aml, Info->AmlOffset);
-        Destination = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset);
-
-        switch (Info->Opcode)
-        {
-        case ACPI_RSC_INITGET:
-            /*
-             * Get the resource type and the initial (minimum) length
-             */
-            ACPI_MEMSET (Resource, 0, INIT_RESOURCE_LENGTH (Info));
-            Resource->Type = INIT_RESOURCE_TYPE (Info);
-            Resource->Length = INIT_RESOURCE_LENGTH (Info);
-            break;
-
-
-        case ACPI_RSC_INITSET:
-            break;
-
-
-        case ACPI_RSC_FLAGINIT:
-
-            FlagsMode = TRUE;
-            break;
-
-
-        case ACPI_RSC_1BITFLAG:
-            /*
-             * Mask and shift the flag bit
-             */
-            ACPI_SET8 (Destination) = (UINT8)
-                ((ACPI_GET8 (Source) >> Info->Value) & 0x01);
-            break;
-
-
-        case ACPI_RSC_2BITFLAG:
-            /*
-             * Mask and shift the flag bits
-             */
-            ACPI_SET8 (Destination) = (UINT8)
-                ((ACPI_GET8 (Source) >> Info->Value) & 0x03);
-            break;
-
-
-        case ACPI_RSC_COUNT:
-
-            ItemCount = ACPI_GET8 (Source);
-            ACPI_SET8 (Destination) = (UINT8) ItemCount;
-
-            Resource->Length = Resource->Length +
-                (Info->Value * (ItemCount - 1));
-            break;
-
-
-        case ACPI_RSC_COUNT16:
-
-            ItemCount = AmlResourceLength;
-            ACPI_SET16 (Destination) = ItemCount;
-
-            Resource->Length = Resource->Length +
-                (Info->Value * (ItemCount - 1));
-            break;
-
-
-        case ACPI_RSC_LENGTH:
-
-            Resource->Length = Resource->Length + Info->Value;
-            break;
-
-
-        case ACPI_RSC_MOVE8:
-        case ACPI_RSC_MOVE16:
-        case ACPI_RSC_MOVE32:
-        case ACPI_RSC_MOVE64:
-            /*
-             * Raw data move. Use the Info value field unless ItemCount has
-             * been previously initialized via a COUNT opcode
-             */
-            if (Info->Value)
-            {
-                ItemCount = Info->Value;
-            }
-            AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
-            break;
-
-
-        case ACPI_RSC_SET8:
-
-            ACPI_MEMSET (Destination, Info->AmlOffset, Info->Value);
-            break;
-
-
-        case ACPI_RSC_DATA8:
-
-            Target = ACPI_ADD_PTR (char, Resource, Info->Value);
-            ACPI_MEMCPY (Destination, Source,  ACPI_GET16 (Target));
-            break;
-
-
-        case ACPI_RSC_ADDRESS:
-            /*
-             * Common handler for address descriptor flags
-             */
-            if (!AcpiRsGetAddressCommon (Resource, Aml))
-            {
-                return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE);
-            }
-            break;
-
-
-        case ACPI_RSC_SOURCE:
-            /*
-             * Optional ResourceSource (Index and String)
-             */
-            Resource->Length +=
-                AcpiRsGetResourceSource (AmlResourceLength, Info->Value,
-                    Destination, Aml, NULL);
-            break;
-
-
-        case ACPI_RSC_SOURCEX:
-            /*
-             * Optional ResourceSource (Index and String). This is the more
-             * complicated case used by the Interrupt() macro
-             */
-            Target = ACPI_ADD_PTR (char, Resource, Info->AmlOffset + (ItemCount * 4));
-
-            Resource->Length +=
-                AcpiRsGetResourceSource (AmlResourceLength,
-                    (ACPI_RS_LENGTH) (((ItemCount - 1) * sizeof (UINT32)) + Info->Value),
-                    Destination, Aml, Target);
-            break;
-
-
-        case ACPI_RSC_BITMASK:
-            /*
-             * 8-bit encoded bitmask (DMA macro)
-             */
-            ItemCount = AcpiRsDecodeBitmask (ACPI_GET8 (Source), Destination);
-            if (ItemCount)
-            {
-                Resource->Length += (ItemCount - 1);
-            }
-
-            Target = ACPI_ADD_PTR (char, Resource, Info->Value);
-            ACPI_SET8 (Target) = (UINT8) ItemCount;
-            break;
-
-
-        case ACPI_RSC_BITMASK16:
-            /*
-             * 16-bit encoded bitmask (IRQ macro)
-             */
-            ACPI_MOVE_16_TO_16 (&Temp16, Source);
-
-            ItemCount = AcpiRsDecodeBitmask (Temp16, Destination);
-            if (ItemCount)
-            {
-                Resource->Length += (ItemCount - 1);
-            }
-
-            Target = ACPI_ADD_PTR (char, Resource, Info->Value);
-            ACPI_SET8 (Target) = (UINT8) ItemCount;
-            break;
-
-
-        case ACPI_RSC_EXIT_NE:
-            /*
-             * Control - Exit conversion if not equal
-             */
-            switch (Info->ResourceOffset)
-            {
-            case ACPI_RSC_COMPARE_AML_LENGTH:
-                if (AmlResourceLength != Info->Value)
-                {
-                    goto Exit;
-                }
-                break;
-
-            case ACPI_RSC_COMPARE_VALUE:
-                if (ACPI_GET8 (Source) != Info->Value)
-                {
-                    goto Exit;
-                }
-                break;
-
-            default:
-
-                ACPI_ERROR ((AE_INFO, "Invalid conversion sub-opcode"));
-                return_ACPI_STATUS (AE_BAD_PARAMETER);
-            }
-            break;
-
-
-        default:
-
-            ACPI_ERROR ((AE_INFO, "Invalid conversion opcode"));
-            return_ACPI_STATUS (AE_BAD_PARAMETER);
-        }
-
-        Count--;
-        Info++;
-    }
-
-Exit:
-    if (!FlagsMode)
-    {
-        /* Round the resource struct length up to the next boundary (32 or 64) */
-
-        Resource->Length = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (Resource->Length);
-    }
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsConvertResourceToAml
- *
- * PARAMETERS:  Resource            - Pointer to the resource descriptor
- *              Aml                 - Where the AML descriptor is returned
- *              Info                - Pointer to appropriate conversion table
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Convert an internal resource descriptor to the corresponding
- *              external AML resource descriptor.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsConvertResourceToAml (
-    ACPI_RESOURCE           *Resource,
-    AML_RESOURCE            *Aml,
-    ACPI_RSCONVERT_INFO     *Info)
-{
-    void                    *Source = NULL;
-    void                    *Destination;
-    ACPI_RSDESC_SIZE        AmlLength = 0;
-    UINT8                   Count;
-    UINT16                  Temp16 = 0;
-    UINT16                  ItemCount = 0;
-
-
-    ACPI_FUNCTION_TRACE (RsConvertResourceToAml);
-
-
-    /*
-     * First table entry must be ACPI_RSC_INITxxx and must contain the
-     * table length (# of table entries)
-     */
-    Count = INIT_TABLE_LENGTH (Info);
-
-    while (Count)
-    {
-        /*
-         * Source is the internal resource descriptor,
-         * destination is the external AML byte stream buffer
-         */
-        Source      = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset);
-        Destination = ACPI_ADD_PTR (void, Aml, Info->AmlOffset);
-
-        switch (Info->Opcode)
-        {
-        case ACPI_RSC_INITSET:
-
-            ACPI_MEMSET (Aml, 0, INIT_RESOURCE_LENGTH (Info));
-            AmlLength = INIT_RESOURCE_LENGTH (Info);
-            AcpiRsSetResourceHeader (INIT_RESOURCE_TYPE (Info), AmlLength, Aml);
-            break;
-
-
-        case ACPI_RSC_INITGET:
-            break;
-
-
-        case ACPI_RSC_FLAGINIT:
-            /*
-             * Clear the flag byte
-             */
-            ACPI_SET8 (Destination) = 0;
-            break;
-
-
-        case ACPI_RSC_1BITFLAG:
-            /*
-             * Mask and shift the flag bit
-             */
-            ACPI_SET8 (Destination) |= (UINT8)
-                ((ACPI_GET8 (Source) & 0x01) << Info->Value);
-            break;
-
-
-        case ACPI_RSC_2BITFLAG:
-            /*
-             * Mask and shift the flag bits
-             */
-            ACPI_SET8 (Destination) |= (UINT8)
-                ((ACPI_GET8 (Source) & 0x03) << Info->Value);
-            break;
-
-
-        case ACPI_RSC_COUNT:
-
-            ItemCount = ACPI_GET8 (Source);
-            ACPI_SET8 (Destination) = (UINT8) ItemCount;
-
-            AmlLength = (UINT16) (AmlLength + (Info->Value * (ItemCount - 1)));
-            break;
-
-
-        case ACPI_RSC_COUNT16:
-
-            ItemCount = ACPI_GET16 (Source);
-            AmlLength = (UINT16) (AmlLength + ItemCount);
-            AcpiRsSetResourceLength (AmlLength, Aml);
-            break;
-
-
-        case ACPI_RSC_LENGTH:
-
-            AcpiRsSetResourceLength (Info->Value, Aml);
-            break;
-
-
-        case ACPI_RSC_MOVE8:
-        case ACPI_RSC_MOVE16:
-        case ACPI_RSC_MOVE32:
-        case ACPI_RSC_MOVE64:
-
-            if (Info->Value)
-            {
-                ItemCount = Info->Value;
-            }
-            AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
-            break;
-
-
-        case ACPI_RSC_ADDRESS:
-
-            /* Set the Resource Type, General Flags, and Type-Specific Flags */
-
-            AcpiRsSetAddressCommon (Aml, Resource);
-            break;
-
-
-        case ACPI_RSC_SOURCEX:
-            /*
-             * Optional ResourceSource (Index and String)
-             */
-            AmlLength = AcpiRsSetResourceSource (
-                            Aml, (ACPI_RS_LENGTH) AmlLength, Source);
-            AcpiRsSetResourceLength (AmlLength, Aml);
-            break;
-
-
-        case ACPI_RSC_SOURCE:
-            /*
-             * Optional ResourceSource (Index and String). This is the more
-             * complicated case used by the Interrupt() macro
-             */
-            AmlLength = AcpiRsSetResourceSource (Aml, Info->Value, Source);
-            AcpiRsSetResourceLength (AmlLength, Aml);
-            break;
-
-
-        case ACPI_RSC_BITMASK:
-            /*
-             * 8-bit encoded bitmask (DMA macro)
-             */
-            ACPI_SET8 (Destination) = (UINT8)
-                AcpiRsEncodeBitmask (Source,
-                    *ACPI_ADD_PTR (UINT8, Resource, Info->Value));
-            break;
-
-
-        case ACPI_RSC_BITMASK16:
-            /*
-             * 16-bit encoded bitmask (IRQ macro)
-             */
-            Temp16 = AcpiRsEncodeBitmask (Source,
-                        *ACPI_ADD_PTR (UINT8, Resource, Info->Value));
-            ACPI_MOVE_16_TO_16 (Destination, &Temp16);
-            break;
-
-
-        case ACPI_RSC_EXIT_LE:
-            /*
-             * Control - Exit conversion if less than or equal
-             */
-            if (ItemCount <= Info->Value)
-            {
-                goto Exit;
-            }
-            break;
-
-
-        case ACPI_RSC_EXIT_NE:
-            /*
-             * Control - Exit conversion if not equal
-             */
-            switch (COMPARE_OPCODE (Info))
-            {
-            case ACPI_RSC_COMPARE_VALUE:
-
-                if (*ACPI_ADD_PTR (UINT8, Resource,
-                        COMPARE_TARGET (Info)) != COMPARE_VALUE (Info))
-                {
-                    goto Exit;
-                }
-                break;
-
-            default:
-
-                ACPI_ERROR ((AE_INFO, "Invalid conversion sub-opcode"));
-                return_ACPI_STATUS (AE_BAD_PARAMETER);
-            }
-            break;
-
-
-        case ACPI_RSC_EXIT_EQ:
-            /*
-             * Control - Exit conversion if equal
-             */
-            if (*ACPI_ADD_PTR (UINT8, Resource,
-                    COMPARE_TARGET (Info)) == COMPARE_VALUE (Info))
-            {
-                goto Exit;
-            }
-            break;
-
-
-        default:
-
-            ACPI_ERROR ((AE_INFO, "Invalid conversion opcode"));
-            return_ACPI_STATUS (AE_BAD_PARAMETER);
-        }
-
-        Count--;
-        Info++;
-    }
-
-Exit:
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-#if 0
-/* Previous resource validations */
-
-    if (Aml->ExtAddress64.RevisionID != AML_RESOURCE_EXTENDED_ADDRESS_REVISION)
-    {
-        return_ACPI_STATUS (AE_SUPPORT);
-    }
-
-    if (Resource->Data.StartDpf.PerformanceRobustness >= 3)
-    {
-        return_ACPI_STATUS (AE_AML_BAD_RESOURCE_VALUE);
-    }
-
-    if (((Aml->Irq.Flags & 0x09) == 0x00) ||
-        ((Aml->Irq.Flags & 0x09) == 0x09))
-    {
-        /*
-         * Only [ActiveHigh, EdgeSensitive] or [ActiveLow, LevelSensitive]
-         * polarity/trigger interrupts are allowed (ACPI spec, section
-         * "IRQ Format"), so 0x00 and 0x09 are illegal.
-         */
-        ACPI_ERROR ((AE_INFO,
-            "Invalid interrupt polarity/trigger in resource list, %X",
-            Aml->Irq.Flags));
-        return_ACPI_STATUS (AE_BAD_DATA);
-    }
-
-    Resource->Data.ExtendedIrq.InterruptCount = Temp8;
-    if (Temp8 < 1)
-    {
-        /* Must have at least one IRQ */
-
-        return_ACPI_STATUS (AE_AML_BAD_RESOURCE_LENGTH);
-    }
-
-    if (Resource->Data.Dma.Transfer == 0x03)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Invalid DMA.Transfer preference (3)"));
-        return_ACPI_STATUS (AE_BAD_DATA);
-    }
-#endif
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsutils.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsutils.c
deleted file mode 100644 (file)
index 4e0f04c..0000000
+++ /dev/null
@@ -1,874 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsutils - Utilities for the resource manager
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __RSUTILS_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acresrc.h"
-
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rsutils")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsDecodeBitmask
- *
- * PARAMETERS:  Mask            - Bitmask to decode
- *              List            - Where the converted list is returned
- *
- * RETURN:      Count of bits set (length of list)
- *
- * DESCRIPTION: Convert a bit mask into a list of values
- *
- ******************************************************************************/
-
-UINT8
-AcpiRsDecodeBitmask (
-    UINT16                  Mask,
-    UINT8                   *List)
-{
-    UINT8                   i;
-    UINT8                   BitCount;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Decode the mask bits */
-
-    for (i = 0, BitCount = 0; Mask; i++)
-    {
-        if (Mask & 0x0001)
-        {
-            List[BitCount] = i;
-            BitCount++;
-        }
-
-        Mask >>= 1;
-    }
-
-    return (BitCount);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsEncodeBitmask
- *
- * PARAMETERS:  List            - List of values to encode
- *              Count           - Length of list
- *
- * RETURN:      Encoded bitmask
- *
- * DESCRIPTION: Convert a list of values to an encoded bitmask
- *
- ******************************************************************************/
-
-UINT16
-AcpiRsEncodeBitmask (
-    UINT8                   *List,
-    UINT8                   Count)
-{
-    UINT32                  i;
-    UINT16                  Mask;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Encode the list into a single bitmask */
-
-    for (i = 0, Mask = 0; i < Count; i++)
-    {
-        Mask |= (0x1 << List[i]);
-    }
-
-    return (Mask);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsMoveData
- *
- * PARAMETERS:  Destination         - Pointer to the destination descriptor
- *              Source              - Pointer to the source descriptor
- *              ItemCount           - How many items to move
- *              MoveType            - Byte width
- *
- * RETURN:      None
- *
- * DESCRIPTION: Move multiple data items from one descriptor to another. Handles
- *              alignment issues and endian issues if necessary, as configured
- *              via the ACPI_MOVE_* macros. (This is why a memcpy is not used)
- *
- ******************************************************************************/
-
-void
-AcpiRsMoveData (
-    void                    *Destination,
-    void                    *Source,
-    UINT16                  ItemCount,
-    UINT8                   MoveType)
-{
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* One move per item */
-
-    for (i = 0; i < ItemCount; i++)
-    {
-        switch (MoveType)
-        {
-        /*
-         * For the 8-bit case, we can perform the move all at once
-         * since there are no alignment or endian issues
-         */
-        case ACPI_RSC_MOVE8:
-            ACPI_MEMCPY (Destination, Source, ItemCount);
-            return;
-
-        /*
-         * 16-, 32-, and 64-bit cases must use the move macros that perform
-         * endian conversion and/or accomodate hardware that cannot perform
-         * misaligned memory transfers
-         */
-        case ACPI_RSC_MOVE16:
-            ACPI_MOVE_16_TO_16 (&ACPI_CAST_PTR (UINT16, Destination)[i],
-                                &ACPI_CAST_PTR (UINT16, Source)[i]);
-            break;
-
-        case ACPI_RSC_MOVE32:
-            ACPI_MOVE_32_TO_32 (&ACPI_CAST_PTR (UINT32, Destination)[i],
-                                &ACPI_CAST_PTR (UINT32, Source)[i]);
-            break;
-
-        case ACPI_RSC_MOVE64:
-            ACPI_MOVE_64_TO_64 (&ACPI_CAST_PTR (UINT64, Destination)[i],
-                                &ACPI_CAST_PTR (UINT64, Source)[i]);
-            break;
-
-        default:
-            return;
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsSetResourceLength
- *
- * PARAMETERS:  TotalLength         - Length of the AML descriptor, including
- *                                    the header and length fields.
- *              Aml                 - Pointer to the raw AML descriptor
- *
- * RETURN:      None
- *
- * DESCRIPTION: Set the ResourceLength field of an AML
- *              resource descriptor, both Large and Small descriptors are
- *              supported automatically. Note: Descriptor Type field must
- *              be valid.
- *
- ******************************************************************************/
-
-void
-AcpiRsSetResourceLength (
-    ACPI_RSDESC_SIZE        TotalLength,
-    AML_RESOURCE            *Aml)
-{
-    ACPI_RS_LENGTH          ResourceLength;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Length is the total descriptor length minus the header length */
-
-    ResourceLength = (ACPI_RS_LENGTH)
-        (TotalLength - AcpiUtGetResourceHeaderLength (Aml));
-
-    /* Length is stored differently for large and small descriptors */
-
-    if (Aml->SmallHeader.DescriptorType & ACPI_RESOURCE_NAME_LARGE)
-    {
-        /* Large descriptor -- bytes 1-2 contain the 16-bit length */
-
-        ACPI_MOVE_16_TO_16 (&Aml->LargeHeader.ResourceLength, &ResourceLength);
-    }
-    else
-    {
-        /* Small descriptor -- bits 2:0 of byte 0 contain the length */
-
-        Aml->SmallHeader.DescriptorType = (UINT8)
-
-            /* Clear any existing length, preserving descriptor type bits */
-
-            ((Aml->SmallHeader.DescriptorType & ~ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK)
-
-            | ResourceLength);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsSetResourceHeader
- *
- * PARAMETERS:  DescriptorType      - Byte to be inserted as the type
- *              TotalLength         - Length of the AML descriptor, including
- *                                    the header and length fields.
- *              Aml                 - Pointer to the raw AML descriptor
- *
- * RETURN:      None
- *
- * DESCRIPTION: Set the DescriptorType and ResourceLength fields of an AML
- *              resource descriptor, both Large and Small descriptors are
- *              supported automatically
- *
- ******************************************************************************/
-
-void
-AcpiRsSetResourceHeader (
-    UINT8                   DescriptorType,
-    ACPI_RSDESC_SIZE        TotalLength,
-    AML_RESOURCE            *Aml)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Set the Resource Type */
-
-    Aml->SmallHeader.DescriptorType = DescriptorType;
-
-    /* Set the Resource Length */
-
-    AcpiRsSetResourceLength (TotalLength, Aml);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsStrcpy
- *
- * PARAMETERS:  Destination         - Pointer to the destination string
- *              Source              - Pointer to the source string
- *
- * RETURN:      String length, including NULL terminator
- *
- * DESCRIPTION: Local string copy that returns the string length, saving a
- *              strcpy followed by a strlen.
- *
- ******************************************************************************/
-
-static UINT16
-AcpiRsStrcpy (
-    char                    *Destination,
-    char                    *Source)
-{
-    UINT16                  i;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    for (i = 0; Source[i]; i++)
-    {
-        Destination[i] = Source[i];
-    }
-
-    Destination[i] = 0;
-
-    /* Return string length including the NULL terminator */
-
-    return ((UINT16) (i + 1));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsGetResourceSource
- *
- * PARAMETERS:  ResourceLength      - Length field of the descriptor
- *              MinimumLength       - Minimum length of the descriptor (minus
- *                                    any optional fields)
- *              ResourceSource      - Where the ResourceSource is returned
- *              Aml                 - Pointer to the raw AML descriptor
- *              StringPtr           - (optional) where to store the actual
- *                                    ResourceSource string
- *
- * RETURN:      Length of the string plus NULL terminator, rounded up to native
- *              word boundary
- *
- * DESCRIPTION: Copy the optional ResourceSource data from a raw AML descriptor
- *              to an internal resource descriptor
- *
- ******************************************************************************/
-
-ACPI_RS_LENGTH
-AcpiRsGetResourceSource (
-    ACPI_RS_LENGTH          ResourceLength,
-    ACPI_RS_LENGTH          MinimumLength,
-    ACPI_RESOURCE_SOURCE    *ResourceSource,
-    AML_RESOURCE            *Aml,
-    char                    *StringPtr)
-{
-    ACPI_RSDESC_SIZE        TotalLength;
-    UINT8                   *AmlResourceSource;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    TotalLength = ResourceLength + sizeof (AML_RESOURCE_LARGE_HEADER);
-    AmlResourceSource = ACPI_ADD_PTR (UINT8, Aml, MinimumLength);
-
-    /*
-     * ResourceSource is present if the length of the descriptor is longer than
-     * the minimum length.
-     *
-     * Note: Some resource descriptors will have an additional null, so
-     * we add 1 to the minimum length.
-     */
-    if (TotalLength > (ACPI_RSDESC_SIZE) (MinimumLength + 1))
-    {
-        /* Get the ResourceSourceIndex */
-
-        ResourceSource->Index = AmlResourceSource[0];
-
-        ResourceSource->StringPtr = StringPtr;
-        if (!StringPtr)
-        {
-            /*
-             * String destination pointer is not specified; Set the String
-             * pointer to the end of the current ResourceSource structure.
-             */
-            ResourceSource->StringPtr = ACPI_ADD_PTR (char, ResourceSource,
-                sizeof (ACPI_RESOURCE_SOURCE));
-        }
-
-        /*
-         * In order for the Resource length to be a multiple of the native
-         * word, calculate the length of the string (+1 for NULL terminator)
-         * and expand to the next word multiple.
-         *
-         * Zero the entire area of the buffer.
-         */
-        TotalLength = (UINT32) ACPI_STRLEN (
-            ACPI_CAST_PTR (char, &AmlResourceSource[1])) + 1;
-        TotalLength = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (TotalLength);
-
-        ACPI_MEMSET (ResourceSource->StringPtr, 0, TotalLength);
-
-        /* Copy the ResourceSource string to the destination */
-
-        ResourceSource->StringLength = AcpiRsStrcpy (ResourceSource->StringPtr,
-            ACPI_CAST_PTR (char, &AmlResourceSource[1]));
-
-        return ((ACPI_RS_LENGTH) TotalLength);
-    }
-
-    /* ResourceSource is not present */
-
-    ResourceSource->Index = 0;
-    ResourceSource->StringLength = 0;
-    ResourceSource->StringPtr = NULL;
-    return (0);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsSetResourceSource
- *
- * PARAMETERS:  Aml                 - Pointer to the raw AML descriptor
- *              MinimumLength       - Minimum length of the descriptor (minus
- *                                    any optional fields)
- *              ResourceSource      - Internal ResourceSource
-
- *
- * RETURN:      Total length of the AML descriptor
- *
- * DESCRIPTION: Convert an optional ResourceSource from internal format to a
- *              raw AML resource descriptor
- *
- ******************************************************************************/
-
-ACPI_RSDESC_SIZE
-AcpiRsSetResourceSource (
-    AML_RESOURCE            *Aml,
-    ACPI_RS_LENGTH          MinimumLength,
-    ACPI_RESOURCE_SOURCE    *ResourceSource)
-{
-    UINT8                   *AmlResourceSource;
-    ACPI_RSDESC_SIZE        DescriptorLength;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    DescriptorLength = MinimumLength;
-
-    /* Non-zero string length indicates presence of a ResourceSource */
-
-    if (ResourceSource->StringLength)
-    {
-        /* Point to the end of the AML descriptor */
-
-        AmlResourceSource = ACPI_ADD_PTR (UINT8, Aml, MinimumLength);
-
-        /* Copy the ResourceSourceIndex */
-
-        AmlResourceSource[0] = (UINT8) ResourceSource->Index;
-
-        /* Copy the ResourceSource string */
-
-        ACPI_STRCPY (ACPI_CAST_PTR (char, &AmlResourceSource[1]),
-            ResourceSource->StringPtr);
-
-        /*
-         * Add the length of the string (+ 1 for null terminator) to the
-         * final descriptor length
-         */
-        DescriptorLength += ((ACPI_RSDESC_SIZE) ResourceSource->StringLength + 1);
-    }
-
-    /* Return the new total length of the AML descriptor */
-
-    return (DescriptorLength);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsGetPrtMethodData
- *
- * PARAMETERS:  Node            - Device node
- *              RetBuffer       - Pointer to a buffer structure for the
- *                                results
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to get the _PRT value of an object
- *              contained in an object specified by the handle passed in
- *
- *              If the function fails an appropriate status will be returned
- *              and the contents of the callers buffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetPrtMethodData (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_BUFFER             *RetBuffer)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (RsGetPrtMethodData);
-
-
-    /* Parameters guaranteed valid by caller */
-
-    /* Execute the method, no parameters */
-
-    Status = AcpiUtEvaluateObject (Node, METHOD_NAME__PRT,
-                ACPI_BTYPE_PACKAGE, &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Create a resource linked list from the byte stream buffer that comes
-     * back from the _CRS method execution.
-     */
-    Status = AcpiRsCreatePciRoutingTable (ObjDesc, RetBuffer);
-
-    /* On exit, we must delete the object returned by EvaluateObject */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsGetCrsMethodData
- *
- * PARAMETERS:  Node            - Device node
- *              RetBuffer       - Pointer to a buffer structure for the
- *                                results
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to get the _CRS value of an object
- *              contained in an object specified by the handle passed in
- *
- *              If the function fails an appropriate status will be returned
- *              and the contents of the callers buffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetCrsMethodData (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_BUFFER             *RetBuffer)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (RsGetCrsMethodData);
-
-
-    /* Parameters guaranteed valid by caller */
-
-    /* Execute the method, no parameters */
-
-    Status = AcpiUtEvaluateObject (Node, METHOD_NAME__CRS,
-                ACPI_BTYPE_BUFFER, &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Make the call to create a resource linked list from the
-     * byte stream buffer that comes back from the _CRS method
-     * execution.
-     */
-    Status = AcpiRsCreateResourceList (ObjDesc, RetBuffer);
-
-    /* On exit, we must delete the object returned by evaluateObject */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsGetPrsMethodData
- *
- * PARAMETERS:  Node            - Device node
- *              RetBuffer       - Pointer to a buffer structure for the
- *                                results
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to get the _PRS value of an object
- *              contained in an object specified by the handle passed in
- *
- *              If the function fails an appropriate status will be returned
- *              and the contents of the callers buffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetPrsMethodData (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_BUFFER             *RetBuffer)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (RsGetPrsMethodData);
-
-
-    /* Parameters guaranteed valid by caller */
-
-    /* Execute the method, no parameters */
-
-    Status = AcpiUtEvaluateObject (Node, METHOD_NAME__PRS,
-                ACPI_BTYPE_BUFFER, &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Make the call to create a resource linked list from the
-     * byte stream buffer that comes back from the _CRS method
-     * execution.
-     */
-    Status = AcpiRsCreateResourceList (ObjDesc, RetBuffer);
-
-    /* On exit, we must delete the object returned by evaluateObject */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsGetMethodData
- *
- * PARAMETERS:  Handle          - Handle to the containing object
- *              Path            - Path to method, relative to Handle
- *              RetBuffer       - Pointer to a buffer structure for the
- *                                results
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to get the _CRS or _PRS value of an
- *              object contained in an object specified by the handle passed in
- *
- *              If the function fails an appropriate status will be returned
- *              and the contents of the callers buffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetMethodData (
-    ACPI_HANDLE             Handle,
-    char                    *Path,
-    ACPI_BUFFER             *RetBuffer)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (RsGetMethodData);
-
-
-    /* Parameters guaranteed valid by caller */
-
-    /* Execute the method, no parameters */
-
-    Status = AcpiUtEvaluateObject (Handle, Path, ACPI_BTYPE_BUFFER, &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Make the call to create a resource linked list from the
-     * byte stream buffer that comes back from the method
-     * execution.
-     */
-    Status = AcpiRsCreateResourceList (ObjDesc, RetBuffer);
-
-    /* On exit, we must delete the object returned by EvaluateObject */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsSetSrsMethodData
- *
- * PARAMETERS:  Node            - Device node
- *              InBuffer        - Pointer to a buffer structure of the
- *                                parameter
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to set the _SRS of an object contained
- *              in an object specified by the handle passed in
- *
- *              If the function fails an appropriate status will be returned
- *              and the contents of the callers buffer is undefined.
- *
- * Note: Parameters guaranteed valid by caller
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsSetSrsMethodData (
-    ACPI_NAMESPACE_NODE     *Node,
-    ACPI_BUFFER             *InBuffer)
-{
-    ACPI_EVALUATE_INFO      *Info;
-    ACPI_OPERAND_OBJECT     *Args[2];
-    ACPI_STATUS             Status;
-    ACPI_BUFFER             Buffer;
-
-
-    ACPI_FUNCTION_TRACE (RsSetSrsMethodData);
-
-
-    /* Allocate and initialize the evaluation information block */
-
-    Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
-    if (!Info)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Info->PrefixNode = Node;
-    Info->Pathname = METHOD_NAME__SRS;
-    Info->Parameters = Args;
-    Info->Flags = ACPI_IGNORE_RETURN_VALUE;
-
-    /*
-     * The InBuffer parameter will point to a linked list of
-     * resource parameters. It needs to be formatted into a
-     * byte stream to be sent in as an input parameter to _SRS
-     *
-     * Convert the linked list into a byte stream
-     */
-    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    Status = AcpiRsCreateAmlResources (InBuffer->Pointer, &Buffer);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Cleanup;
-    }
-
-    /* Create and initialize the method parameter object */
-
-    Args[0] = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
-    if (!Args[0])
-    {
-        /*
-         * Must free the buffer allocated above (otherwise it is freed
-         * later)
-         */
-        ACPI_FREE (Buffer.Pointer);
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    Args[0]->Buffer.Length  = (UINT32) Buffer.Length;
-    Args[0]->Buffer.Pointer = Buffer.Pointer;
-    Args[0]->Common.Flags   = AOPOBJ_DATA_VALID;
-    Args[1] = NULL;
-
-    /* Execute the method, no return value is expected */
-
-    Status = AcpiNsEvaluate (Info);
-
-    /* Clean up and return the status from AcpiNsEvaluate */
-
-    AcpiUtRemoveReference (Args[0]);
-
-Cleanup:
-    ACPI_FREE (Info);
-    return_ACPI_STATUS (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsxface.c b/l4/pkg/acpica/lib-acpi/src/acpica/resources/rsxface.c
deleted file mode 100644 (file)
index a509c7a..0000000
+++ /dev/null
@@ -1,713 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsxface - Public interfaces to the resource manager
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __RSXFACE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acresrc.h"
-#include "acnamesp.h"
-
-#define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rsxface")
-
-/* Local macros for 16,32-bit to 64-bit conversion */
-
-#define ACPI_COPY_FIELD(Out, In, Field)  ((Out)->Field = (In)->Field)
-#define ACPI_COPY_ADDRESS(Out, In)                      \
-    ACPI_COPY_FIELD(Out, In, ResourceType);              \
-    ACPI_COPY_FIELD(Out, In, ProducerConsumer);          \
-    ACPI_COPY_FIELD(Out, In, Decode);                    \
-    ACPI_COPY_FIELD(Out, In, MinAddressFixed);           \
-    ACPI_COPY_FIELD(Out, In, MaxAddressFixed);           \
-    ACPI_COPY_FIELD(Out, In, Info);                      \
-    ACPI_COPY_FIELD(Out, In, Granularity);               \
-    ACPI_COPY_FIELD(Out, In, Minimum);                   \
-    ACPI_COPY_FIELD(Out, In, Maximum);                   \
-    ACPI_COPY_FIELD(Out, In, TranslationOffset);         \
-    ACPI_COPY_FIELD(Out, In, AddressLength);             \
-    ACPI_COPY_FIELD(Out, In, ResourceSource);
-
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiRsMatchVendorResource (
-    ACPI_RESOURCE           *Resource,
-    void                    *Context);
-
-static ACPI_STATUS
-AcpiRsValidateParameters (
-    ACPI_HANDLE             DeviceHandle,
-    ACPI_BUFFER             *Buffer,
-    ACPI_NAMESPACE_NODE     **ReturnNode);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsValidateParameters
- *
- * PARAMETERS:  DeviceHandle    - Handle to a device
- *              Buffer          - Pointer to a data buffer
- *              ReturnNode      - Pointer to where the device node is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Common parameter validation for resource interfaces
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiRsValidateParameters (
-    ACPI_HANDLE             DeviceHandle,
-    ACPI_BUFFER             *Buffer,
-    ACPI_NAMESPACE_NODE     **ReturnNode)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ACPI_FUNCTION_TRACE (RsValidateParameters);
-
-
-    /*
-     * Must have a valid handle to an ACPI device
-     */
-    if (!DeviceHandle)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Node = AcpiNsValidateHandle (DeviceHandle);
-    if (!Node)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (Node->Type != ACPI_TYPE_DEVICE)
-    {
-        return_ACPI_STATUS (AE_TYPE);
-    }
-
-    /*
-     * Validate the user buffer object
-     *
-     * if there is a non-zero buffer length we also need a valid pointer in
-     * the buffer. If it's a zero buffer length, we'll be returning the
-     * needed buffer size (later), so keep going.
-     */
-    Status = AcpiUtValidateBuffer (Buffer);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    *ReturnNode = Node;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetIrqRoutingTable
- *
- * PARAMETERS:  DeviceHandle    - Handle to the Bus device we are querying
- *              RetBuffer       - Pointer to a buffer to receive the
- *                                current resources for the device
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to get the IRQ routing table for a
- *              specific bus. The caller must first acquire a handle for the
- *              desired bus. The routine table is placed in the buffer pointed
- *              to by the RetBuffer variable parameter.
- *
- *              If the function fails an appropriate status will be returned
- *              and the value of RetBuffer is undefined.
- *
- *              This function attempts to execute the _PRT method contained in
- *              the object indicated by the passed DeviceHandle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetIrqRoutingTable  (
-    ACPI_HANDLE             DeviceHandle,
-    ACPI_BUFFER             *RetBuffer)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetIrqRoutingTable);
-
-
-    /* Validate parameters then dispatch to internal routine */
-
-    Status = AcpiRsValidateParameters (DeviceHandle, RetBuffer, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiRsGetPrtMethodData (Node, RetBuffer);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetIrqRoutingTable)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetCurrentResources
- *
- * PARAMETERS:  DeviceHandle    - Handle to the device object for the
- *                                device we are querying
- *              RetBuffer       - Pointer to a buffer to receive the
- *                                current resources for the device
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to get the current resources for a
- *              specific device. The caller must first acquire a handle for
- *              the desired device. The resource data is placed in the buffer
- *              pointed to by the RetBuffer variable parameter.
- *
- *              If the function fails an appropriate status will be returned
- *              and the value of RetBuffer is undefined.
- *
- *              This function attempts to execute the _CRS method contained in
- *              the object indicated by the passed DeviceHandle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetCurrentResources (
-    ACPI_HANDLE             DeviceHandle,
-    ACPI_BUFFER             *RetBuffer)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetCurrentResources);
-
-
-    /* Validate parameters then dispatch to internal routine */
-
-    Status = AcpiRsValidateParameters (DeviceHandle, RetBuffer, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiRsGetCrsMethodData (Node, RetBuffer);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetCurrentResources)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetPossibleResources
- *
- * PARAMETERS:  DeviceHandle    - Handle to the device object for the
- *                                device we are querying
- *              RetBuffer       - Pointer to a buffer to receive the
- *                                resources for the device
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to get a list of the possible resources
- *              for a specific device. The caller must first acquire a handle
- *              for the desired device. The resource data is placed in the
- *              buffer pointed to by the RetBuffer variable.
- *
- *              If the function fails an appropriate status will be returned
- *              and the value of RetBuffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetPossibleResources (
-    ACPI_HANDLE             DeviceHandle,
-    ACPI_BUFFER             *RetBuffer)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetPossibleResources);
-
-
-    /* Validate parameters then dispatch to internal routine */
-
-    Status = AcpiRsValidateParameters (DeviceHandle, RetBuffer, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiRsGetPrsMethodData (Node, RetBuffer);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetPossibleResources)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiSetCurrentResources
- *
- * PARAMETERS:  DeviceHandle    - Handle to the device object for the
- *                                device we are setting resources
- *              InBuffer        - Pointer to a buffer containing the
- *                                resources to be set for the device
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to set the current resources for a
- *              specific device. The caller must first acquire a handle for
- *              the desired device. The resource data is passed to the routine
- *              the buffer pointed to by the InBuffer variable.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSetCurrentResources (
-    ACPI_HANDLE             DeviceHandle,
-    ACPI_BUFFER             *InBuffer)
-{
-    ACPI_STATUS             Status;
-    ACPI_NAMESPACE_NODE     *Node;
-
-
-    ACPI_FUNCTION_TRACE (AcpiSetCurrentResources);
-
-
-    /* Validate the buffer, don't allow zero length */
-
-    if ((!InBuffer) ||
-        (!InBuffer->Pointer) ||
-        (!InBuffer->Length))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Validate parameters then dispatch to internal routine */
-
-    Status = AcpiRsValidateParameters (DeviceHandle, InBuffer, &Node);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiRsSetSrsMethodData (Node, InBuffer);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSetCurrentResources)
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiResourceToAddress64
- *
- * PARAMETERS:  Resource        - Pointer to a resource
- *              Out             - Pointer to the users's return buffer
- *                                (a struct acpi_resource_address64)
- *
- * RETURN:      Status
- *
- * DESCRIPTION: If the resource is an address16, address32, or address64,
- *              copy it to the address64 return buffer. This saves the
- *              caller from having to duplicate code for different-sized
- *              addresses.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiResourceToAddress64 (
-    ACPI_RESOURCE               *Resource,
-    ACPI_RESOURCE_ADDRESS64     *Out)
-{
-    ACPI_RESOURCE_ADDRESS16     *Address16;
-    ACPI_RESOURCE_ADDRESS32     *Address32;
-
-
-    if (!Resource || !Out)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Convert 16 or 32 address descriptor to 64 */
-
-    switch (Resource->Type)
-    {
-    case ACPI_RESOURCE_TYPE_ADDRESS16:
-
-        Address16 = ACPI_CAST_PTR (ACPI_RESOURCE_ADDRESS16, &Resource->Data);
-        ACPI_COPY_ADDRESS (Out, Address16);
-        break;
-
-    case ACPI_RESOURCE_TYPE_ADDRESS32:
-
-        Address32 = ACPI_CAST_PTR (ACPI_RESOURCE_ADDRESS32, &Resource->Data);
-        ACPI_COPY_ADDRESS (Out, Address32);
-        break;
-
-    case ACPI_RESOURCE_TYPE_ADDRESS64:
-
-        /* Simple copy for 64 bit source */
-
-        ACPI_MEMCPY (Out, &Resource->Data, sizeof (ACPI_RESOURCE_ADDRESS64));
-        break;
-
-    default:
-        return (AE_BAD_PARAMETER);
-    }
-
-    return (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiResourceToAddress64)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetVendorResource
- *
- * PARAMETERS:  DeviceHandle    - Handle for the parent device object
- *              Name            - Method name for the parent resource
- *                                (METHOD_NAME__CRS or METHOD_NAME__PRS)
- *              Uuid            - Pointer to the UUID to be matched.
- *                                includes both subtype and 16-byte UUID
- *              RetBuffer       - Where the vendor resource is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Walk a resource template for the specified evice to find a
- *              vendor-defined resource that matches the supplied UUID and
- *              UUID subtype. Returns a ACPI_RESOURCE of type Vendor.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetVendorResource (
-    ACPI_HANDLE             DeviceHandle,
-    char                    *Name,
-    ACPI_VENDOR_UUID        *Uuid,
-    ACPI_BUFFER             *RetBuffer)
-{
-    ACPI_VENDOR_WALK_INFO   Info;
-    ACPI_STATUS             Status;
-
-
-    /* Other parameters are validated by AcpiWalkResources */
-
-    if (!Uuid || !RetBuffer)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    Info.Uuid = Uuid;
-    Info.Buffer = RetBuffer;
-    Info.Status = AE_NOT_EXIST;
-
-    /* Walk the _CRS or _PRS resource list for this device */
-
-    Status = AcpiWalkResources (DeviceHandle, Name, AcpiRsMatchVendorResource,
-                &Info);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    return (Info.Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetVendorResource)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRsMatchVendorResource
- *
- * PARAMETERS:  ACPI_WALK_RESOURCE_CALLBACK
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Match a vendor resource via the ACPI 3.0 UUID
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiRsMatchVendorResource (
-    ACPI_RESOURCE           *Resource,
-    void                    *Context)
-{
-    ACPI_VENDOR_WALK_INFO       *Info = Context;
-    ACPI_RESOURCE_VENDOR_TYPED  *Vendor;
-    ACPI_BUFFER                 *Buffer;
-    ACPI_STATUS                 Status;
-
-
-    /* Ignore all descriptors except Vendor */
-
-    if (Resource->Type != ACPI_RESOURCE_TYPE_VENDOR)
-    {
-        return (AE_OK);
-    }
-
-    Vendor = &Resource->Data.VendorTyped;
-
-    /*
-     * For a valid match, these conditions must hold:
-     *
-     * 1) Length of descriptor data must be at least as long as a UUID struct
-     * 2) The UUID subtypes must match
-     * 3) The UUID data must match
-     */
-    if ((Vendor->ByteLength < (ACPI_UUID_LENGTH + 1)) ||
-        (Vendor->UuidSubtype != Info->Uuid->Subtype)  ||
-        (ACPI_MEMCMP (Vendor->Uuid, Info->Uuid->Data, ACPI_UUID_LENGTH)))
-    {
-        return (AE_OK);
-    }
-
-    /* Validate/Allocate/Clear caller buffer */
-
-    Buffer = Info->Buffer;
-    Status = AcpiUtInitializeBuffer (Buffer, Resource->Length);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Found the correct resource, copy and return it */
-
-    ACPI_MEMCPY (Buffer->Pointer, Resource, Resource->Length);
-    Buffer->Length = Resource->Length;
-
-    /* Found the desired descriptor, terminate resource walk */
-
-    Info->Status = AE_OK;
-    return (AE_CTRL_TERMINATE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiWalkResources
- *
- * PARAMETERS:  DeviceHandle    - Handle to the device object for the
- *                                device we are querying
- *              Name            - Method name of the resources we want
- *                                (METHOD_NAME__CRS or METHOD_NAME__PRS)
- *              UserFunction    - Called for each resource
- *              Context         - Passed to UserFunction
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Retrieves the current or possible resource list for the
- *              specified device. The UserFunction is called once for
- *              each resource in the list.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiWalkResources (
-    ACPI_HANDLE                 DeviceHandle,
-    char                        *Name,
-    ACPI_WALK_RESOURCE_CALLBACK UserFunction,
-    void                        *Context)
-{
-    ACPI_STATUS                 Status;
-    ACPI_BUFFER                 Buffer;
-    ACPI_RESOURCE               *Resource;
-    ACPI_RESOURCE               *ResourceEnd;
-
-
-    ACPI_FUNCTION_TRACE (AcpiWalkResources);
-
-
-    /* Parameter validation */
-
-    if (!DeviceHandle || !UserFunction || !Name ||
-        (!ACPI_COMPARE_NAME (Name, METHOD_NAME__CRS) &&
-         !ACPI_COMPARE_NAME (Name, METHOD_NAME__PRS)))
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Get the _CRS or _PRS resource list */
-
-    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    Status = AcpiRsGetMethodData (DeviceHandle, Name, &Buffer);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Buffer now contains the resource list */
-
-    Resource = ACPI_CAST_PTR (ACPI_RESOURCE, Buffer.Pointer);
-    ResourceEnd = ACPI_ADD_PTR (ACPI_RESOURCE, Buffer.Pointer, Buffer.Length);
-
-    /* Walk the resource list until the EndTag is found (or buffer end) */
-
-    while (Resource < ResourceEnd)
-    {
-        /* Sanity check the resource */
-
-        if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
-        {
-            Status = AE_AML_INVALID_RESOURCE_TYPE;
-            break;
-        }
-
-        /* Invoke the user function, abort on any error returned */
-
-        Status = UserFunction (Resource, Context);
-        if (ACPI_FAILURE (Status))
-        {
-            if (Status == AE_CTRL_TERMINATE)
-            {
-                /* This is an OK termination by the user function */
-
-                Status = AE_OK;
-            }
-            break;
-        }
-
-        /* EndTag indicates end-of-list */
-
-        if (Resource->Type == ACPI_RESOURCE_TYPE_END_TAG)
-        {
-            break;
-        }
-
-        /* Get the next resource descriptor */
-
-        Resource = ACPI_ADD_PTR (ACPI_RESOURCE, Resource, Resource->Length);
-    }
-
-    ACPI_FREE (Buffer.Pointer);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiWalkResources)
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbfadt.c b/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbfadt.c
deleted file mode 100644 (file)
index c657a0b..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbfadt   - FADT table utilities
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __TBFADT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "actables.h"
-
-#define _COMPONENT          ACPI_TABLES
-        ACPI_MODULE_NAME    ("tbfadt")
-
-/* Local prototypes */
-
-static inline void
-AcpiTbInitGenericAddress (
-    ACPI_GENERIC_ADDRESS    *GenericAddress,
-    UINT8                   SpaceId,
-    UINT8                   ByteWidth,
-    UINT64                  Address);
-
-static void
-AcpiTbConvertFadt (
-    void);
-
-static void
-AcpiTbValidateFadt (
-    void);
-
-static void
-AcpiTbSetupFadtRegisters (
-    void);
-
-
-/* Table for conversion of FADT to common internal format and FADT validation */
-
-typedef struct acpi_fadt_info
-{
-    char                    *Name;
-    UINT8                   Address64;
-    UINT8                   Address32;
-    UINT8                   Length;
-    UINT8                   DefaultLength;
-    UINT8                   Type;
-
-} ACPI_FADT_INFO;
-
-#define ACPI_FADT_REQUIRED          1
-#define ACPI_FADT_SEPARATE_LENGTH   2
-
-static ACPI_FADT_INFO     FadtInfoTable[] =
-{
-    {"Pm1aEventBlock",
-        ACPI_FADT_OFFSET (XPm1aEventBlock),
-        ACPI_FADT_OFFSET (Pm1aEventBlock),
-        ACPI_FADT_OFFSET (Pm1EventLength),
-        ACPI_PM1_REGISTER_WIDTH * 2,        /* Enable + Status register */
-        ACPI_FADT_REQUIRED},
-
-    {"Pm1bEventBlock",
-        ACPI_FADT_OFFSET (XPm1bEventBlock),
-        ACPI_FADT_OFFSET (Pm1bEventBlock),
-        ACPI_FADT_OFFSET (Pm1EventLength),
-        ACPI_PM1_REGISTER_WIDTH * 2,        /* Enable + Status register */
-        0},
-
-    {"Pm1aControlBlock",
-        ACPI_FADT_OFFSET (XPm1aControlBlock),
-        ACPI_FADT_OFFSET (Pm1aControlBlock),
-        ACPI_FADT_OFFSET (Pm1ControlLength),
-        ACPI_PM1_REGISTER_WIDTH,
-        ACPI_FADT_REQUIRED},
-
-    {"Pm1bControlBlock",
-        ACPI_FADT_OFFSET (XPm1bControlBlock),
-        ACPI_FADT_OFFSET (Pm1bControlBlock),
-        ACPI_FADT_OFFSET (Pm1ControlLength),
-        ACPI_PM1_REGISTER_WIDTH,
-        0},
-
-    {"Pm2ControlBlock",
-        ACPI_FADT_OFFSET (XPm2ControlBlock),
-        ACPI_FADT_OFFSET (Pm2ControlBlock),
-        ACPI_FADT_OFFSET (Pm2ControlLength),
-        ACPI_PM2_REGISTER_WIDTH,
-        ACPI_FADT_SEPARATE_LENGTH},
-
-    {"PmTimerBlock",
-        ACPI_FADT_OFFSET (XPmTimerBlock),
-        ACPI_FADT_OFFSET (PmTimerBlock),
-        ACPI_FADT_OFFSET (PmTimerLength),
-        ACPI_PM_TIMER_WIDTH,
-        ACPI_FADT_REQUIRED},
-
-    {"Gpe0Block",
-        ACPI_FADT_OFFSET (XGpe0Block),
-        ACPI_FADT_OFFSET (Gpe0Block),
-        ACPI_FADT_OFFSET (Gpe0BlockLength),
-        0,
-        ACPI_FADT_SEPARATE_LENGTH},
-
-    {"Gpe1Block",
-        ACPI_FADT_OFFSET (XGpe1Block),
-        ACPI_FADT_OFFSET (Gpe1Block),
-        ACPI_FADT_OFFSET (Gpe1BlockLength),
-        0,
-        ACPI_FADT_SEPARATE_LENGTH}
-};
-
-#define ACPI_FADT_INFO_ENTRIES \
-            (sizeof (FadtInfoTable) / sizeof (ACPI_FADT_INFO))
-
-
-/* Table used to split Event Blocks into separate status/enable registers */
-
-typedef struct acpi_fadt_pm_info
-{
-    ACPI_GENERIC_ADDRESS    *Target;
-    UINT8                   Source;
-    UINT8                   RegisterNum;
-
-} ACPI_FADT_PM_INFO;
-
-static ACPI_FADT_PM_INFO    FadtPmInfoTable[] =
-{
-    {&AcpiGbl_XPm1aStatus,
-        ACPI_FADT_OFFSET (XPm1aEventBlock),
-        0},
-
-    {&AcpiGbl_XPm1aEnable,
-        ACPI_FADT_OFFSET (XPm1aEventBlock),
-        1},
-
-    {&AcpiGbl_XPm1bStatus,
-        ACPI_FADT_OFFSET (XPm1bEventBlock),
-        0},
-
-    {&AcpiGbl_XPm1bEnable,
-        ACPI_FADT_OFFSET (XPm1bEventBlock),
-        1}
-};
-
-#define ACPI_FADT_PM_INFO_ENTRIES \
-            (sizeof (FadtPmInfoTable) / sizeof (ACPI_FADT_PM_INFO))
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbInitGenericAddress
- *
- * PARAMETERS:  GenericAddress      - GAS struct to be initialized
- *              SpaceId             - ACPI Space ID for this register
- *              ByteWidth           - Width of this register, in bytes
- *              Address             - Address of the register
- *
- * RETURN:      None
- *
- * DESCRIPTION: Initialize a Generic Address Structure (GAS)
- *              See the ACPI specification for a full description and
- *              definition of this structure.
- *
- ******************************************************************************/
-
-static inline void
-AcpiTbInitGenericAddress (
-    ACPI_GENERIC_ADDRESS    *GenericAddress,
-    UINT8                   SpaceId,
-    UINT8                   ByteWidth,
-    UINT64                  Address)
-{
-
-    /*
-     * The 64-bit Address field is non-aligned in the byte packed
-     * GAS struct.
-     */
-    ACPI_MOVE_64_TO_64 (&GenericAddress->Address, &Address);
-
-    /* All other fields are byte-wide */
-
-    GenericAddress->SpaceId = SpaceId;
-    GenericAddress->BitWidth = (UINT8) ACPI_MUL_8 (ByteWidth);
-    GenericAddress->BitOffset = 0;
-    GenericAddress->AccessWidth = 0; /* Access width ANY */
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbParseFadt
- *
- * PARAMETERS:  TableIndex          - Index for the FADT
- *
- * RETURN:      None
- *
- * DESCRIPTION: Initialize the FADT, DSDT and FACS tables
- *              (FADT contains the addresses of the DSDT and FACS)
- *
- ******************************************************************************/
-
-void
-AcpiTbParseFadt (
-    UINT32                  TableIndex)
-{
-    UINT32                  Length;
-    ACPI_TABLE_HEADER       *Table;
-
-
-    /*
-     * The FADT has multiple versions with different lengths,
-     * and it contains pointers to both the DSDT and FACS tables.
-     *
-     * Get a local copy of the FADT and convert it to a common format
-     * Map entire FADT, assumed to be smaller than one page.
-     */
-    Length = AcpiGbl_RootTableList.Tables[TableIndex].Length;
-
-    Table = AcpiOsMapMemory (
-                AcpiGbl_RootTableList.Tables[TableIndex].Address, Length);
-    if (!Table)
-    {
-        return;
-    }
-
-    /*
-     * Validate the FADT checksum before we copy the table. Ignore
-     * checksum error as we want to try to get the DSDT and FACS.
-     */
-    (void) AcpiTbVerifyChecksum (Table, Length);
-
-    /* Create a local copy of the FADT in common ACPI 2.0+ format */
-
-    AcpiTbCreateLocalFadt (Table, Length);
-
-    /* All done with the real FADT, unmap it */
-
-    AcpiOsUnmapMemory (Table, Length);
-
-    /* Obtain the DSDT and FACS tables via their addresses within the FADT */
-
-    AcpiTbInstallTable ((ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.XDsdt,
-        ACPI_SIG_DSDT, ACPI_TABLE_INDEX_DSDT);
-
-    AcpiTbInstallTable ((ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.XFacs,
-        ACPI_SIG_FACS, ACPI_TABLE_INDEX_FACS);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbCreateLocalFadt
- *
- * PARAMETERS:  Table               - Pointer to BIOS FADT
- *              Length              - Length of the table
- *
- * RETURN:      None
- *
- * DESCRIPTION: Get a local copy of the FADT and convert it to a common format.
- *              Performs validation on some important FADT fields.
- *
- * NOTE:        We create a local copy of the FADT regardless of the version.
- *
- ******************************************************************************/
-
-void
-AcpiTbCreateLocalFadt (
-    ACPI_TABLE_HEADER       *Table,
-    UINT32                  Length)
-{
-
-    /*
-     * Check if the FADT is larger than the largest table that we expect
-     * (the ACPI 2.0/3.0 version). If so, truncate the table, and issue
-     * a warning.
-     */
-    if (Length > sizeof (ACPI_TABLE_FADT))
-    {
-        ACPI_WARNING ((AE_INFO,
-            "FADT (revision %u) is longer than ACPI 2.0 version, "
-            "truncating length 0x%X to 0x%X",
-            Table->Revision, Length, (UINT32) sizeof (ACPI_TABLE_FADT)));
-    }
-
-    /* Clear the entire local FADT */
-
-    ACPI_MEMSET (&AcpiGbl_FADT, 0, sizeof (ACPI_TABLE_FADT));
-
-    /* Copy the original FADT, up to sizeof (ACPI_TABLE_FADT) */
-
-    ACPI_MEMCPY (&AcpiGbl_FADT, Table,
-        ACPI_MIN (Length, sizeof (ACPI_TABLE_FADT)));
-
-    /* Convert the local copy of the FADT to the common internal format */
-
-    AcpiTbConvertFadt ();
-
-    /* Validate FADT values now, before we make any changes */
-
-    AcpiTbValidateFadt ();
-
-    /* Initialize the global ACPI register structures */
-
-    AcpiTbSetupFadtRegisters ();
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbConvertFadt
- *
- * PARAMETERS:  None, uses AcpiGbl_FADT
- *
- * RETURN:      None
- *
- * DESCRIPTION: Converts all versions of the FADT to a common internal format.
- *              Expand 32-bit addresses to 64-bit as necessary.
- *
- * NOTE:        AcpiGbl_FADT must be of size (ACPI_TABLE_FADT),
- *              and must contain a copy of the actual FADT.
- *
- * Notes on 64-bit register addresses:
- *
- * After this FADT conversion, later ACPICA code will only use the 64-bit "X"
- * fields of the FADT for all ACPI register addresses.
- *
- * The 64-bit "X" fields are optional extensions to the original 32-bit FADT
- * V1.0 fields. Even if they are present in the FADT, they are optional and
- * are unused if the BIOS sets them to zero. Therefore, we must copy/expand
- * 32-bit V1.0 fields if the corresponding X field is zero.
- *
- * For ACPI 1.0 FADTs, all 32-bit address fields are expanded to the
- * corresponding "X" fields in the internal FADT.
- *
- * For ACPI 2.0+ FADTs, all valid (non-zero) 32-bit address fields are expanded
- * to the corresponding 64-bit X fields. For compatibility with other ACPI
- * implementations, we ignore the 64-bit field if the 32-bit field is valid,
- * regardless of whether the host OS is 32-bit or 64-bit.
- *
- ******************************************************************************/
-
-static void
-AcpiTbConvertFadt (
-    void)
-{
-    ACPI_GENERIC_ADDRESS    *Address64;
-    UINT32                  Address32;
-    UINT32                  i;
-
-
-    /* Update the local FADT table header length */
-
-    AcpiGbl_FADT.Header.Length = sizeof (ACPI_TABLE_FADT);
-
-    /*
-     * Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary.
-     * Later code will always use the X 64-bit field.
-     */
-    if (!AcpiGbl_FADT.XFacs)
-    {
-        AcpiGbl_FADT.XFacs = (UINT64) AcpiGbl_FADT.Facs;
-    }
-    if (!AcpiGbl_FADT.XDsdt)
-    {
-        AcpiGbl_FADT.XDsdt = (UINT64) AcpiGbl_FADT.Dsdt;
-    }
-
-    /*
-     * For ACPI 1.0 FADTs (revision 1 or 2), ensure that reserved fields which
-     * should be zero are indeed zero. This will workaround BIOSs that
-     * inadvertently place values in these fields.
-     *
-     * The ACPI 1.0 reserved fields that will be zeroed are the bytes located
-     * at offset 45, 55, 95, and the word located at offset 109, 110.
-     */
-    if (AcpiGbl_FADT.Header.Revision < 3)
-    {
-        AcpiGbl_FADT.PreferredProfile = 0;
-        AcpiGbl_FADT.PstateControl = 0;
-        AcpiGbl_FADT.CstControl = 0;
-        AcpiGbl_FADT.BootFlags = 0;
-    }
-
-    /*
-     * Expand the ACPI 1.0 32-bit addresses to the ACPI 2.0 64-bit "X"
-     * generic address structures as necessary. Later code will always use
-     * the 64-bit address structures.
-     *
-     * March 2009:
-     * We now always use the 32-bit address if it is valid (non-null). This
-     * is not in accordance with the ACPI specification which states that
-     * the 64-bit address supersedes the 32-bit version, but we do this for
-     * compatibility with other ACPI implementations. Most notably, in the
-     * case where both the 32 and 64 versions are non-null, we use the 32-bit
-     * version. This is the only address that is guaranteed to have been
-     * tested by the BIOS manufacturer.
-     */
-    for (i = 0; i < ACPI_FADT_INFO_ENTRIES; i++)
-    {
-        Address32 = *ACPI_ADD_PTR (UINT32,
-            &AcpiGbl_FADT, FadtInfoTable[i].Address32);
-
-        Address64 = ACPI_ADD_PTR (ACPI_GENERIC_ADDRESS,
-            &AcpiGbl_FADT, FadtInfoTable[i].Address64);
-
-        /*
-         * If both 32- and 64-bit addresses are valid (non-zero),
-         * they must match.
-         */
-        if (Address64->Address && Address32 &&
-           (Address64->Address != (UINT64) Address32))
-        {
-            ACPI_ERROR ((AE_INFO,
-                "32/64X address mismatch in %s: %8.8X/%8.8X%8.8X, using 32",
-                FadtInfoTable[i].Name, Address32,
-                ACPI_FORMAT_UINT64 (Address64->Address)));
-        }
-
-        /* Always use 32-bit address if it is valid (non-null) */
-
-        if (Address32)
-        {
-            /*
-             * Copy the 32-bit address to the 64-bit GAS structure. The
-             * Space ID is always I/O for 32-bit legacy address fields
-             */
-            AcpiTbInitGenericAddress (Address64, ACPI_ADR_SPACE_SYSTEM_IO,
-                *ACPI_ADD_PTR (UINT8, &AcpiGbl_FADT, FadtInfoTable[i].Length),
-                (UINT64) Address32);
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbValidateFadt
- *
- * PARAMETERS:  Table           - Pointer to the FADT to be validated
- *
- * RETURN:      None
- *
- * DESCRIPTION: Validate various important fields within the FADT. If a problem
- *              is found, issue a message, but no status is returned.
- *              Used by both the table manager and the disassembler.
- *
- * Possible additional checks:
- * (AcpiGbl_FADT.Pm1EventLength >= 4)
- * (AcpiGbl_FADT.Pm1ControlLength >= 2)
- * (AcpiGbl_FADT.PmTimerLength >= 4)
- * Gpe block lengths must be multiple of 2
- *
- ******************************************************************************/
-
-static void
-AcpiTbValidateFadt (
-    void)
-{
-    char                    *Name;
-    ACPI_GENERIC_ADDRESS    *Address64;
-    UINT8                   Length;
-    UINT32                  i;
-
-
-    /*
-     * Check for FACS and DSDT address mismatches. An address mismatch between
-     * the 32-bit and 64-bit address fields (FIRMWARE_CTRL/X_FIRMWARE_CTRL and
-     * DSDT/X_DSDT) would indicate the presence of two FACS or two DSDT tables.
-     */
-    if (AcpiGbl_FADT.Facs &&
-        (AcpiGbl_FADT.XFacs != (UINT64) AcpiGbl_FADT.Facs))
-    {
-        ACPI_WARNING ((AE_INFO,
-            "32/64X FACS address mismatch in FADT - "
-            "%8.8X/%8.8X%8.8X, using 32",
-            AcpiGbl_FADT.Facs, ACPI_FORMAT_UINT64 (AcpiGbl_FADT.XFacs)));
-
-        AcpiGbl_FADT.XFacs = (UINT64) AcpiGbl_FADT.Facs;
-    }
-
-    if (AcpiGbl_FADT.Dsdt &&
-        (AcpiGbl_FADT.XDsdt != (UINT64) AcpiGbl_FADT.Dsdt))
-    {
-        ACPI_WARNING ((AE_INFO,
-            "32/64X DSDT address mismatch in FADT - "
-            "%8.8X/%8.8X%8.8X, using 32",
-            AcpiGbl_FADT.Dsdt, ACPI_FORMAT_UINT64 (AcpiGbl_FADT.XDsdt)));
-
-        AcpiGbl_FADT.XDsdt = (UINT64) AcpiGbl_FADT.Dsdt;
-    }
-
-    /* Examine all of the 64-bit extended address fields (X fields) */
-
-    for (i = 0; i < ACPI_FADT_INFO_ENTRIES; i++)
-    {
-        /*
-         * Generate pointer to the 64-bit address, get the register
-         * length (width) and the register name
-         */
-        Address64 = ACPI_ADD_PTR (ACPI_GENERIC_ADDRESS,
-                        &AcpiGbl_FADT, FadtInfoTable[i].Address64);
-        Length = *ACPI_ADD_PTR (UINT8,
-                        &AcpiGbl_FADT, FadtInfoTable[i].Length);
-        Name = FadtInfoTable[i].Name;
-
-        /*
-         * For each extended field, check for length mismatch between the
-         * legacy length field and the corresponding 64-bit X length field.
-         */
-        if (Address64->Address &&
-           (Address64->BitWidth != ACPI_MUL_8 (Length)))
-        {
-            ACPI_WARNING ((AE_INFO,
-                "32/64X length mismatch in %s: %d/%d",
-                Name, ACPI_MUL_8 (Length), Address64->BitWidth));
-        }
-
-        if (FadtInfoTable[i].Type & ACPI_FADT_REQUIRED)
-        {
-            /*
-             * Field is required (PM1aEvent, PM1aControl, PmTimer).
-             * Both the address and length must be non-zero.
-             */
-            if (!Address64->Address || !Length)
-            {
-                ACPI_ERROR ((AE_INFO,
-                    "Required field %s has zero address and/or length:"
-                    " %8.8X%8.8X/%X",
-                    Name, ACPI_FORMAT_UINT64 (Address64->Address), Length));
-            }
-        }
-        else if (FadtInfoTable[i].Type & ACPI_FADT_SEPARATE_LENGTH)
-        {
-            /*
-             * Field is optional (PM2Control, GPE0, GPE1) AND has its own
-             * length field. If present, both the address and length must
-             * be valid.
-             */
-            if ((Address64->Address && !Length) ||
-                (!Address64->Address && Length))
-            {
-                ACPI_WARNING ((AE_INFO,
-                    "Optional field %s has zero address or length: "
-                    "%8.8X%8.8X/%X",
-                    Name, ACPI_FORMAT_UINT64 (Address64->Address), Length));
-            }
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbSetupFadtRegisters
- *
- * PARAMETERS:  None, uses AcpiGbl_FADT.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Initialize global ACPI PM1 register definitions. Optionally,
- *              force FADT register definitions to their default lengths.
- *
- ******************************************************************************/
-
-static void
-AcpiTbSetupFadtRegisters (
-    void)
-{
-    ACPI_GENERIC_ADDRESS    *Target64;
-    ACPI_GENERIC_ADDRESS    *Source64;
-    UINT8                   Pm1RegisterByteWidth;
-    UINT32                  i;
-
-
-    /*
-     * Optionally check all register lengths against the default values and
-     * update them if they are incorrect.
-     */
-    if (AcpiGbl_UseDefaultRegisterWidths)
-    {
-        for (i = 0; i < ACPI_FADT_INFO_ENTRIES; i++)
-        {
-            Target64 = ACPI_ADD_PTR (ACPI_GENERIC_ADDRESS, &AcpiGbl_FADT,
-                FadtInfoTable[i].Address64);
-
-            /*
-             * If a valid register (Address != 0) and the (DefaultLength > 0)
-             * (Not a GPE register), then check the width against the default.
-             */
-            if ((Target64->Address) &&
-                (FadtInfoTable[i].DefaultLength > 0) &&
-                (FadtInfoTable[i].DefaultLength != Target64->BitWidth))
-            {
-                ACPI_WARNING ((AE_INFO,
-                    "Invalid length for %s: %d, using default %d",
-                    FadtInfoTable[i].Name, Target64->BitWidth,
-                    FadtInfoTable[i].DefaultLength));
-
-                /* Incorrect size, set width to the default */
-
-                Target64->BitWidth = FadtInfoTable[i].DefaultLength;
-            }
-        }
-    }
-
-    /*
-     * Get the length of the individual PM1 registers (enable and status).
-     * Each register is defined to be (event block length / 2). Extra divide
-     * by 8 converts bits to bytes.
-     */
-    Pm1RegisterByteWidth = (UINT8)
-        ACPI_DIV_16 (AcpiGbl_FADT.XPm1aEventBlock.BitWidth);
-
-    /*
-     * Calculate separate GAS structs for the PM1x (A/B) Status and Enable
-     * registers. These addresses do not appear (directly) in the FADT, so it
-     * is useful to pre-calculate them from the PM1 Event Block definitions.
-     *
-     * The PM event blocks are split into two register blocks, first is the
-     * PM Status Register block, followed immediately by the PM Enable
-     * Register block. Each is of length (Pm1EventLength/2)
-     *
-     * Note: The PM1A event block is required by the ACPI specification.
-     * However, the PM1B event block is optional and is rarely, if ever,
-     * used.
-     */
-
-    for (i = 0; i < ACPI_FADT_PM_INFO_ENTRIES; i++)
-    {
-        Source64 = ACPI_ADD_PTR (ACPI_GENERIC_ADDRESS, &AcpiGbl_FADT,
-            FadtPmInfoTable[i].Source);
-
-        if (Source64->Address)
-        {
-            AcpiTbInitGenericAddress (FadtPmInfoTable[i].Target,
-                Source64->SpaceId, Pm1RegisterByteWidth,
-                Source64->Address +
-                    (FadtPmInfoTable[i].RegisterNum * Pm1RegisterByteWidth));
-        }
-    }
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbfind.c b/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbfind.c
deleted file mode 100644 (file)
index 1838b5e..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbfind   - find table
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __TBFIND_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "actables.h"
-
-#define _COMPONENT          ACPI_TABLES
-        ACPI_MODULE_NAME    ("tbfind")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbFindTable
- *
- * PARAMETERS:  Signature           - String with ACPI table signature
- *              OemId               - String with the table OEM ID
- *              OemTableId          - String with the OEM Table ID
- *              TableIndex          - Where the table index is returned
- *
- * RETURN:      Status and table index
- *
- * DESCRIPTION: Find an ACPI table (in the RSDT/XSDT) that matches the
- *              Signature, OEM ID and OEM Table ID. Returns an index that can
- *              be used to get the table header or entire table.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbFindTable (
-    char                    *Signature,
-    char                    *OemId,
-    char                    *OemTableId,
-    UINT32                  *TableIndex)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status;
-    ACPI_TABLE_HEADER       Header;
-
-
-    ACPI_FUNCTION_TRACE (TbFindTable);
-
-
-    /* Normalize the input strings */
-
-    ACPI_MEMSET (&Header, 0, sizeof (ACPI_TABLE_HEADER));
-    ACPI_STRNCPY (Header.Signature, Signature, ACPI_NAME_SIZE);
-    ACPI_STRNCPY (Header.OemId, OemId, ACPI_OEM_ID_SIZE);
-    ACPI_STRNCPY (Header.OemTableId, OemTableId, ACPI_OEM_TABLE_ID_SIZE);
-
-    /* Search for the table */
-
-    for (i = 0; i < AcpiGbl_RootTableList.Count; ++i)
-    {
-        if (ACPI_MEMCMP (&(AcpiGbl_RootTableList.Tables[i].Signature),
-                            Header.Signature, ACPI_NAME_SIZE))
-        {
-            /* Not the requested table */
-
-            continue;
-        }
-
-        /* Table with matching signature has been found */
-
-        if (!AcpiGbl_RootTableList.Tables[i].Pointer)
-        {
-            /* Table is not currently mapped, map it */
-
-            Status = AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[i]);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-
-            if (!AcpiGbl_RootTableList.Tables[i].Pointer)
-            {
-                continue;
-            }
-        }
-
-        /* Check for table match on all IDs */
-
-        if (!ACPI_MEMCMP (AcpiGbl_RootTableList.Tables[i].Pointer->Signature,
-                            Header.Signature, ACPI_NAME_SIZE) &&
-            (!OemId[0] ||
-             !ACPI_MEMCMP (AcpiGbl_RootTableList.Tables[i].Pointer->OemId,
-                             Header.OemId, ACPI_OEM_ID_SIZE)) &&
-            (!OemTableId[0] ||
-             !ACPI_MEMCMP (AcpiGbl_RootTableList.Tables[i].Pointer->OemTableId,
-                             Header.OemTableId, ACPI_OEM_TABLE_ID_SIZE)))
-        {
-            *TableIndex = i;
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "Found table [%4.4s]\n",
-                Header.Signature));
-            return_ACPI_STATUS (AE_OK);
-        }
-    }
-
-    return_ACPI_STATUS (AE_NOT_FOUND);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbinstal.c b/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbinstal.c
deleted file mode 100644 (file)
index c911f84..0000000
+++ /dev/null
@@ -1,785 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbinstal - ACPI table installation and removal
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __TBINSTAL_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "actables.h"
-
-
-#define _COMPONENT          ACPI_TABLES
-        ACPI_MODULE_NAME    ("tbinstal")
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiTbVerifyTable
- *
- * PARAMETERS:  TableDesc           - table
- *
- * RETURN:      Status
- *
- * DESCRIPTION: this function is called to verify and map table
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiTbVerifyTable (
-    ACPI_TABLE_DESC         *TableDesc)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (TbVerifyTable);
-
-
-    /* Map the table if necessary */
-
-    if (!TableDesc->Pointer)
-    {
-        if ((TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK) ==
-            ACPI_TABLE_ORIGIN_MAPPED)
-        {
-            TableDesc->Pointer = AcpiOsMapMemory (
-                TableDesc->Address, TableDesc->Length);
-        }
-
-        if (!TableDesc->Pointer)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-    }
-
-    /* FACS is the odd table, has no standard ACPI header and no checksum */
-
-    if (!ACPI_COMPARE_NAME (&TableDesc->Signature, ACPI_SIG_FACS))
-    {
-        /* Always calculate checksum, ignore bad checksum if requested */
-
-        Status = AcpiTbVerifyChecksum (TableDesc->Pointer, TableDesc->Length);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbAddTable
- *
- * PARAMETERS:  TableDesc           - Table descriptor
- *              TableIndex          - Where the table index is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to add an ACPI table. It is used to
- *              dynamically load tables via the Load and LoadTable AML
- *              operators.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbAddTable (
-    ACPI_TABLE_DESC         *TableDesc,
-    UINT32                  *TableIndex)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_TABLE_HEADER       *OverrideTable = NULL;
-
-
-    ACPI_FUNCTION_TRACE (TbAddTable);
-
-
-    if (!TableDesc->Pointer)
-    {
-        Status = AcpiTbVerifyTable (TableDesc);
-        if (ACPI_FAILURE (Status) || !TableDesc->Pointer)
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * Originally, we checked the table signature for "SSDT" or "PSDT" here.
-     * Next, we added support for OEMx tables, signature "OEM".
-     * Valid tables were encountered with a null signature, so we've just
-     * given up on validating the signature, since it seems to be a waste
-     * of code. The original code was removed (05/2008).
-     */
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-
-    /* Check if table is already registered */
-
-    for (i = 0; i < AcpiGbl_RootTableList.Count; ++i)
-    {
-        if (!AcpiGbl_RootTableList.Tables[i].Pointer)
-        {
-            Status = AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[i]);
-            if (ACPI_FAILURE (Status) ||
-                !AcpiGbl_RootTableList.Tables[i].Pointer)
-            {
-                continue;
-            }
-        }
-
-        /*
-         * Check for a table match on the entire table length,
-         * not just the header.
-         */
-        if (TableDesc->Length != AcpiGbl_RootTableList.Tables[i].Length)
-        {
-            continue;
-        }
-
-        if (ACPI_MEMCMP (TableDesc->Pointer,
-                AcpiGbl_RootTableList.Tables[i].Pointer,
-                AcpiGbl_RootTableList.Tables[i].Length))
-        {
-            continue;
-        }
-
-        /*
-         * Note: the current mechanism does not unregister a table if it is
-         * dynamically unloaded. The related namespace entries are deleted,
-         * but the table remains in the root table list.
-         *
-         * The assumption here is that the number of different tables that
-         * will be loaded is actually small, and there is minimal overhead
-         * in just keeping the table in case it is needed again.
-         *
-         * If this assumption changes in the future (perhaps on large
-         * machines with many table load/unload operations), tables will
-         * need to be unregistered when they are unloaded, and slots in the
-         * root table list should be reused when empty.
-         */
-
-        /*
-         * Table is already registered.
-         * We can delete the table that was passed as a parameter.
-         */
-        AcpiTbDeleteTable (TableDesc);
-        *TableIndex = i;
-
-        if (AcpiGbl_RootTableList.Tables[i].Flags & ACPI_TABLE_IS_LOADED)
-        {
-            /* Table is still loaded, this is an error */
-
-            Status = AE_ALREADY_EXISTS;
-            goto Release;
-        }
-        else
-        {
-            /* Table was unloaded, allow it to be reloaded */
-
-            TableDesc->Pointer = AcpiGbl_RootTableList.Tables[i].Pointer;
-            TableDesc->Address = AcpiGbl_RootTableList.Tables[i].Address;
-            Status = AE_OK;
-            goto PrintHeader;
-        }
-    }
-
-    /*
-     * ACPI Table Override:
-     * Allow the host to override dynamically loaded tables.
-     */
-    Status = AcpiOsTableOverride (TableDesc->Pointer, &OverrideTable);
-    if (ACPI_SUCCESS (Status) && OverrideTable)
-    {
-        ACPI_INFO ((AE_INFO,
-            "%4.4s @ 0x%p Table override, replaced with:",
-            TableDesc->Pointer->Signature,
-            ACPI_CAST_PTR (void, TableDesc->Address)));
-
-        /* We can delete the table that was passed as a parameter */
-
-        AcpiTbDeleteTable (TableDesc);
-
-        /* Setup descriptor for the new table */
-
-        TableDesc->Address = ACPI_PTR_TO_PHYSADDR (OverrideTable);
-        TableDesc->Pointer = OverrideTable;
-        TableDesc->Length = OverrideTable->Length;
-        TableDesc->Flags = ACPI_TABLE_ORIGIN_OVERRIDE;
-    }
-
-    /* Add the table to the global root table list */
-
-    Status = AcpiTbStoreTable (TableDesc->Address, TableDesc->Pointer,
-                TableDesc->Length, TableDesc->Flags, TableIndex);
-    if (ACPI_FAILURE (Status))
-    {
-        goto Release;
-    }
-
-PrintHeader:
-    AcpiTbPrintTableHeader (TableDesc->Address, TableDesc->Pointer);
-
-Release:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbResizeRootTableList
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Expand the size of global table array
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbResizeRootTableList (
-    void)
-{
-    ACPI_TABLE_DESC         *Tables;
-
-
-    ACPI_FUNCTION_TRACE (TbResizeRootTableList);
-
-
-    /* AllowResize flag is a parameter to AcpiInitializeTables */
-
-    if (!(AcpiGbl_RootTableList.Flags & ACPI_ROOT_ALLOW_RESIZE))
-    {
-        ACPI_ERROR ((AE_INFO, "Resize of Root Table Array is not allowed"));
-        return_ACPI_STATUS (AE_SUPPORT);
-    }
-
-    /* Increase the Table Array size */
-
-    Tables = ACPI_ALLOCATE_ZEROED (
-        ((ACPI_SIZE) AcpiGbl_RootTableList.Size +
-            ACPI_ROOT_TABLE_SIZE_INCREMENT) *
-        sizeof (ACPI_TABLE_DESC));
-    if (!Tables)
-    {
-        ACPI_ERROR ((AE_INFO, "Could not allocate new root table array"));
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Copy and free the previous table array */
-
-    if (AcpiGbl_RootTableList.Tables)
-    {
-        ACPI_MEMCPY (Tables, AcpiGbl_RootTableList.Tables,
-            (ACPI_SIZE) AcpiGbl_RootTableList.Size * sizeof (ACPI_TABLE_DESC));
-
-        if (AcpiGbl_RootTableList.Flags & ACPI_ROOT_ORIGIN_ALLOCATED)
-        {
-            ACPI_FREE (AcpiGbl_RootTableList.Tables);
-        }
-    }
-
-    AcpiGbl_RootTableList.Tables = Tables;
-    AcpiGbl_RootTableList.Size += ACPI_ROOT_TABLE_SIZE_INCREMENT;
-    AcpiGbl_RootTableList.Flags |= (UINT8) ACPI_ROOT_ORIGIN_ALLOCATED;
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbStoreTable
- *
- * PARAMETERS:  Address             - Table address
- *              Table               - Table header
- *              Length              - Table length
- *              Flags               - flags
- *
- * RETURN:      Status and table index.
- *
- * DESCRIPTION: Add an ACPI table to the global table list
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbStoreTable (
-    ACPI_PHYSICAL_ADDRESS   Address,
-    ACPI_TABLE_HEADER       *Table,
-    UINT32                  Length,
-    UINT8                   Flags,
-    UINT32                  *TableIndex)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    /* Ensure that there is room for the table in the Root Table List */
-
-    if (AcpiGbl_RootTableList.Count >= AcpiGbl_RootTableList.Size)
-    {
-        Status = AcpiTbResizeRootTableList();
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-    }
-
-    /* Initialize added table */
-
-    AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Address = Address;
-    AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Pointer = Table;
-    AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Length = Length;
-    AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].OwnerId = 0;
-    AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Flags = Flags;
-
-    ACPI_MOVE_32_TO_32 (
-        &(AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Signature),
-        Table->Signature);
-
-    *TableIndex = AcpiGbl_RootTableList.Count;
-    AcpiGbl_RootTableList.Count++;
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbDeleteTable
- *
- * PARAMETERS:  TableIndex          - Table index
- *
- * RETURN:      None
- *
- * DESCRIPTION: Delete one internal ACPI table
- *
- ******************************************************************************/
-
-void
-AcpiTbDeleteTable (
-    ACPI_TABLE_DESC         *TableDesc)
-{
-
-    /* Table must be mapped or allocated */
-
-    if (!TableDesc->Pointer)
-    {
-        return;
-    }
-
-    switch (TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK)
-    {
-    case ACPI_TABLE_ORIGIN_MAPPED:
-        AcpiOsUnmapMemory (TableDesc->Pointer, TableDesc->Length);
-        break;
-
-    case ACPI_TABLE_ORIGIN_ALLOCATED:
-        ACPI_FREE (TableDesc->Pointer);
-        break;
-
-    default:
-        break;
-    }
-
-    TableDesc->Pointer = NULL;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbTerminate
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Delete all internal ACPI tables
- *
- ******************************************************************************/
-
-void
-AcpiTbTerminate (
-    void)
-{
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (TbTerminate);
-
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-
-    /* Delete the individual tables */
-
-    for (i = 0; i < AcpiGbl_RootTableList.Count; i++)
-    {
-        AcpiTbDeleteTable (&AcpiGbl_RootTableList.Tables[i]);
-    }
-
-    /*
-     * Delete the root table array if allocated locally. Array cannot be
-     * mapped, so we don't need to check for that flag.
-     */
-    if (AcpiGbl_RootTableList.Flags & ACPI_ROOT_ORIGIN_ALLOCATED)
-    {
-        ACPI_FREE (AcpiGbl_RootTableList.Tables);
-    }
-
-    AcpiGbl_RootTableList.Tables = NULL;
-    AcpiGbl_RootTableList.Flags = 0;
-    AcpiGbl_RootTableList.Count = 0;
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "ACPI Tables freed\n"));
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbDeleteNamespaceByOwner
- *
- * PARAMETERS:  TableIndex          - Table index
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Delete all namespace objects created when this table was loaded.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbDeleteNamespaceByOwner (
-    UINT32                  TableIndex)
-{
-    ACPI_OWNER_ID           OwnerId;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (TbDeleteNamespaceByOwner);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    if (TableIndex >= AcpiGbl_RootTableList.Count)
-    {
-        /* The table index does not exist */
-
-        (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-        return_ACPI_STATUS (AE_NOT_EXIST);
-    }
-
-    /* Get the owner ID for this table, used to delete namespace nodes */
-
-    OwnerId = AcpiGbl_RootTableList.Tables[TableIndex].OwnerId;
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-
-    /*
-     * Need to acquire the namespace writer lock to prevent interference
-     * with any concurrent namespace walks. The interpreter must be
-     * released during the deletion since the acquisition of the deletion
-     * lock may block, and also since the execution of a namespace walk
-     * must be allowed to use the interpreter.
-     */
-    (void) AcpiUtReleaseMutex (ACPI_MTX_INTERPRETER);
-    Status = AcpiUtAcquireWriteLock (&AcpiGbl_NamespaceRwLock);
-
-    AcpiNsDeleteNamespaceByOwner (OwnerId);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    AcpiUtReleaseWriteLock (&AcpiGbl_NamespaceRwLock);
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_INTERPRETER);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbAllocateOwnerId
- *
- * PARAMETERS:  TableIndex          - Table index
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Allocates OwnerId in TableDesc
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbAllocateOwnerId (
-    UINT32                  TableIndex)
-{
-    ACPI_STATUS             Status = AE_BAD_PARAMETER;
-
-
-    ACPI_FUNCTION_TRACE (TbAllocateOwnerId);
-
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    if (TableIndex < AcpiGbl_RootTableList.Count)
-    {
-        Status = AcpiUtAllocateOwnerId
-                    (&(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId));
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbReleaseOwnerId
- *
- * PARAMETERS:  TableIndex          - Table index
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Releases OwnerId in TableDesc
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbReleaseOwnerId (
-    UINT32                  TableIndex)
-{
-    ACPI_STATUS             Status = AE_BAD_PARAMETER;
-
-
-    ACPI_FUNCTION_TRACE (TbReleaseOwnerId);
-
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    if (TableIndex < AcpiGbl_RootTableList.Count)
-    {
-        AcpiUtReleaseOwnerId (
-            &(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId));
-        Status = AE_OK;
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbGetOwnerId
- *
- * PARAMETERS:  TableIndex          - Table index
- *              OwnerId             - Where the table OwnerId is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: returns OwnerId for the ACPI table
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbGetOwnerId (
-    UINT32                  TableIndex,
-    ACPI_OWNER_ID           *OwnerId)
-{
-    ACPI_STATUS             Status = AE_BAD_PARAMETER;
-
-
-    ACPI_FUNCTION_TRACE (TbGetOwnerId);
-
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    if (TableIndex < AcpiGbl_RootTableList.Count)
-    {
-        *OwnerId = AcpiGbl_RootTableList.Tables[TableIndex].OwnerId;
-        Status = AE_OK;
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbIsTableLoaded
- *
- * PARAMETERS:  TableIndex          - Table index
- *
- * RETURN:      Table Loaded Flag
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiTbIsTableLoaded (
-    UINT32                  TableIndex)
-{
-    BOOLEAN                 IsLoaded = FALSE;
-
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    if (TableIndex < AcpiGbl_RootTableList.Count)
-    {
-        IsLoaded = (BOOLEAN)
-            (AcpiGbl_RootTableList.Tables[TableIndex].Flags &
-            ACPI_TABLE_IS_LOADED);
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-    return (IsLoaded);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbSetTableLoadedFlag
- *
- * PARAMETERS:  TableIndex          - Table index
- *              IsLoaded            - TRUE if table is loaded, FALSE otherwise
- *
- * RETURN:      None
- *
- * DESCRIPTION: Sets the table loaded flag to either TRUE or FALSE.
- *
- ******************************************************************************/
-
-void
-AcpiTbSetTableLoadedFlag (
-    UINT32                  TableIndex,
-    BOOLEAN                 IsLoaded)
-{
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    if (TableIndex < AcpiGbl_RootTableList.Count)
-    {
-        if (IsLoaded)
-        {
-            AcpiGbl_RootTableList.Tables[TableIndex].Flags |=
-                ACPI_TABLE_IS_LOADED;
-        }
-        else
-        {
-            AcpiGbl_RootTableList.Tables[TableIndex].Flags &=
-                ~ACPI_TABLE_IS_LOADED;
-        }
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbutils.c b/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbutils.c
deleted file mode 100644 (file)
index ec2a88e..0000000
+++ /dev/null
@@ -1,741 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbutils   - table utilities
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __TBUTILS_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "actables.h"
-
-#define _COMPONENT          ACPI_TABLES
-        ACPI_MODULE_NAME    ("tbutils")
-
-/* Local prototypes */
-
-static void
-AcpiTbFixString (
-    char                    *String,
-    ACPI_SIZE               Length);
-
-static void
-AcpiTbCleanupTableHeader (
-    ACPI_TABLE_HEADER       *OutHeader,
-    ACPI_TABLE_HEADER       *Header);
-
-static ACPI_PHYSICAL_ADDRESS
-AcpiTbGetRootTableEntry (
-    UINT8                   *TableEntry,
-    UINT32                  TableEntrySize);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbInitializeFacs
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a permanent mapping for the FADT and save it in a global
- *              for accessing the Global Lock and Firmware Waking Vector
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbInitializeFacs (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS,
-                ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &AcpiGbl_FACS));
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbTablesLoaded
- *
- * PARAMETERS:  None
- *
- * RETURN:      TRUE if required ACPI tables are loaded
- *
- * DESCRIPTION: Determine if the minimum required ACPI tables are present
- *              (FADT, FACS, DSDT)
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiTbTablesLoaded (
-    void)
-{
-
-    if (AcpiGbl_RootTableList.Count >= 3)
-    {
-        return (TRUE);
-    }
-
-    return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbFixString
- *
- * PARAMETERS:  String              - String to be repaired
- *              Length              - Maximum length
- *
- * RETURN:      None
- *
- * DESCRIPTION: Replace every non-printable or non-ascii byte in the string
- *              with a question mark '?'.
- *
- ******************************************************************************/
-
-static void
-AcpiTbFixString (
-    char                    *String,
-    ACPI_SIZE               Length)
-{
-
-    while (Length && *String)
-    {
-        if (!ACPI_IS_PRINT (*String))
-        {
-            *String = '?';
-        }
-        String++;
-        Length--;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbCleanupTableHeader
- *
- * PARAMETERS:  OutHeader           - Where the cleaned header is returned
- *              Header              - Input ACPI table header
- *
- * RETURN:      Returns the cleaned header in OutHeader
- *
- * DESCRIPTION: Copy the table header and ensure that all "string" fields in
- *              the header consist of printable characters.
- *
- ******************************************************************************/
-
-static void
-AcpiTbCleanupTableHeader (
-    ACPI_TABLE_HEADER       *OutHeader,
-    ACPI_TABLE_HEADER       *Header)
-{
-
-    ACPI_MEMCPY (OutHeader, Header, sizeof (ACPI_TABLE_HEADER));
-
-    AcpiTbFixString (OutHeader->Signature, ACPI_NAME_SIZE);
-    AcpiTbFixString (OutHeader->OemId, ACPI_OEM_ID_SIZE);
-    AcpiTbFixString (OutHeader->OemTableId, ACPI_OEM_TABLE_ID_SIZE);
-    AcpiTbFixString (OutHeader->AslCompilerId, ACPI_NAME_SIZE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbPrintTableHeader
- *
- * PARAMETERS:  Address             - Table physical address
- *              Header              - Table header
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print an ACPI table header. Special cases for FACS and RSDP.
- *
- ******************************************************************************/
-
-void
-AcpiTbPrintTableHeader (
-    ACPI_PHYSICAL_ADDRESS   Address,
-    ACPI_TABLE_HEADER       *Header)
-{
-    ACPI_TABLE_HEADER       LocalHeader;
-
-
-    /*
-     * The reason that the Address is cast to a void pointer is so that we
-     * can use %p which will work properly on both 32-bit and 64-bit hosts.
-     */
-    if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_FACS))
-    {
-        /* FACS only has signature and length fields */
-
-        ACPI_INFO ((AE_INFO, "%4.4s %p %05X",
-            Header->Signature, ACPI_CAST_PTR (void, Address),
-            Header->Length));
-    }
-    else if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_RSDP))
-    {
-        /* RSDP has no common fields */
-
-        ACPI_MEMCPY (LocalHeader.OemId,
-            ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->OemId, ACPI_OEM_ID_SIZE);
-        AcpiTbFixString (LocalHeader.OemId, ACPI_OEM_ID_SIZE);
-
-        ACPI_INFO ((AE_INFO, "RSDP %p %05X (v%.2d %6.6s)",
-            ACPI_CAST_PTR (void, Address),
-            (ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Revision > 0) ?
-                ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Length : 20,
-            ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Revision,
-            LocalHeader.OemId));
-    }
-    else
-    {
-        /* Standard ACPI table with full common header */
-
-        AcpiTbCleanupTableHeader (&LocalHeader, Header);
-
-        ACPI_INFO ((AE_INFO,
-            "%4.4s %p %05X (v%.2d %6.6s %8.8s %08X %4.4s %08X)",
-            LocalHeader.Signature, ACPI_CAST_PTR (void, Address),
-            LocalHeader.Length, LocalHeader.Revision, LocalHeader.OemId,
-            LocalHeader.OemTableId, LocalHeader.OemRevision,
-            LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision));
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbValidateChecksum
- *
- * PARAMETERS:  Table               - ACPI table to verify
- *              Length              - Length of entire table
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns
- *              exception on bad checksum.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbVerifyChecksum (
-    ACPI_TABLE_HEADER       *Table,
-    UINT32                  Length)
-{
-    UINT8                   Checksum;
-
-
-    /* Compute the checksum on the table */
-
-    Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Length);
-
-    /* Checksum ok? (should be zero) */
-
-    if (Checksum)
-    {
-        ACPI_WARNING ((AE_INFO,
-            "Incorrect checksum in table [%4.4s] - %2.2X, should be %2.2X",
-            Table->Signature, Table->Checksum,
-            (UINT8) (Table->Checksum - Checksum)));
-
-#if (ACPI_CHECKSUM_ABORT)
-        return (AE_BAD_CHECKSUM);
-#endif
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbChecksum
- *
- * PARAMETERS:  Buffer          - Pointer to memory region to be checked
- *              Length          - Length of this memory region
- *
- * RETURN:      Checksum (UINT8)
- *
- * DESCRIPTION: Calculates circular checksum of memory region.
- *
- ******************************************************************************/
-
-UINT8
-AcpiTbChecksum (
-    UINT8                   *Buffer,
-    UINT32                  Length)
-{
-    UINT8                   Sum = 0;
-    UINT8                   *End = Buffer + Length;
-
-
-    while (Buffer < End)
-    {
-        Sum = (UINT8) (Sum + *(Buffer++));
-    }
-
-    return Sum;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbInstallTable
- *
- * PARAMETERS:  Address                 - Physical address of DSDT or FACS
- *              Signature               - Table signature, NULL if no need to
- *                                        match
- *              TableIndex              - Index into root table array
- *
- * RETURN:      None
- *
- * DESCRIPTION: Install an ACPI table into the global data structure. The
- *              table override mechanism is implemented here to allow the host
- *              OS to replace any table before it is installed in the root
- *              table array.
- *
- ******************************************************************************/
-
-void
-AcpiTbInstallTable (
-    ACPI_PHYSICAL_ADDRESS   Address,
-    char                    *Signature,
-    UINT32                  TableIndex)
-{
-    UINT8                   Flags;
-    ACPI_STATUS             Status;
-    ACPI_TABLE_HEADER       *TableToInstall;
-    ACPI_TABLE_HEADER       *MappedTable;
-    ACPI_TABLE_HEADER       *OverrideTable = NULL;
-
-
-    if (!Address)
-    {
-        ACPI_ERROR ((AE_INFO, "Null physical address for ACPI table [%s]",
-            Signature));
-        return;
-    }
-
-    /* Map just the table header */
-
-    MappedTable = AcpiOsMapMemory (Address, sizeof (ACPI_TABLE_HEADER));
-    if (!MappedTable)
-    {
-        return;
-    }
-
-    /* If a particular signature is expected (DSDT/FACS), it must match */
-
-    if (Signature &&
-        !ACPI_COMPARE_NAME (MappedTable->Signature, Signature))
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Invalid signature 0x%X for ACPI table, expected [%s]",
-            *ACPI_CAST_PTR (UINT32, MappedTable->Signature), Signature));
-        goto UnmapAndExit;
-    }
-
-    /*
-     * ACPI Table Override:
-     *
-     * Before we install the table, let the host OS override it with a new
-     * one if desired. Any table within the RSDT/XSDT can be replaced,
-     * including the DSDT which is pointed to by the FADT.
-     */
-    Status = AcpiOsTableOverride (MappedTable, &OverrideTable);
-    if (ACPI_SUCCESS (Status) && OverrideTable)
-    {
-        ACPI_INFO ((AE_INFO,
-            "%4.4s @ 0x%p Table override, replaced with:",
-            MappedTable->Signature, ACPI_CAST_PTR (void, Address)));
-
-        AcpiGbl_RootTableList.Tables[TableIndex].Pointer = OverrideTable;
-        Address = ACPI_PTR_TO_PHYSADDR (OverrideTable);
-
-        TableToInstall = OverrideTable;
-        Flags = ACPI_TABLE_ORIGIN_OVERRIDE;
-    }
-    else
-    {
-        TableToInstall = MappedTable;
-        Flags = ACPI_TABLE_ORIGIN_MAPPED;
-    }
-
-    /* Initialize the table entry */
-
-    AcpiGbl_RootTableList.Tables[TableIndex].Address = Address;
-    AcpiGbl_RootTableList.Tables[TableIndex].Length = TableToInstall->Length;
-    AcpiGbl_RootTableList.Tables[TableIndex].Flags = Flags;
-
-    ACPI_MOVE_32_TO_32 (
-        &(AcpiGbl_RootTableList.Tables[TableIndex].Signature),
-        TableToInstall->Signature);
-
-    AcpiTbPrintTableHeader (Address, TableToInstall);
-
-    if (TableIndex == ACPI_TABLE_INDEX_DSDT)
-    {
-        /* Global integer width is based upon revision of the DSDT */
-
-        AcpiUtSetIntegerWidth (TableToInstall->Revision);
-    }
-
-UnmapAndExit:
-    AcpiOsUnmapMemory (MappedTable, sizeof (ACPI_TABLE_HEADER));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbGetRootTableEntry
- *
- * PARAMETERS:  TableEntry          - Pointer to the RSDT/XSDT table entry
- *              TableEntrySize      - sizeof 32 or 64 (RSDT or XSDT)
- *
- * RETURN:      Physical address extracted from the root table
- *
- * DESCRIPTION: Get one root table entry. Handles 32-bit and 64-bit cases on
- *              both 32-bit and 64-bit platforms
- *
- * NOTE:        ACPI_PHYSICAL_ADDRESS is 32-bit on 32-bit platforms, 64-bit on
- *              64-bit platforms.
- *
- ******************************************************************************/
-
-static ACPI_PHYSICAL_ADDRESS
-AcpiTbGetRootTableEntry (
-    UINT8                   *TableEntry,
-    UINT32                  TableEntrySize)
-{
-    UINT64                  Address64;
-
-
-    /*
-     * Get the table physical address (32-bit for RSDT, 64-bit for XSDT):
-     * Note: Addresses are 32-bit aligned (not 64) in both RSDT and XSDT
-     */
-    if (TableEntrySize == sizeof (UINT32))
-    {
-        /*
-         * 32-bit platform, RSDT: Return 32-bit table entry
-         * 64-bit platform, RSDT: Expand 32-bit to 64-bit and return
-         */
-        return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (UINT32, TableEntry)));
-    }
-    else
-    {
-        /*
-         * 32-bit platform, XSDT: Truncate 64-bit to 32-bit and return
-         * 64-bit platform, XSDT: Move (unaligned) 64-bit to local,
-         *  return 64-bit
-         */
-        ACPI_MOVE_64_TO_64 (&Address64, TableEntry);
-
-#if ACPI_MACHINE_WIDTH == 32
-        if (Address64 > ACPI_UINT32_MAX)
-        {
-            /* Will truncate 64-bit address to 32 bits, issue warning */
-
-            ACPI_WARNING ((AE_INFO,
-                "64-bit Physical Address in XSDT is too large (%8.8X%8.8X),"
-                " truncating",
-                ACPI_FORMAT_UINT64 (Address64)));
-        }
-#endif
-        return ((ACPI_PHYSICAL_ADDRESS) (Address64));
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbParseRootTable
- *
- * PARAMETERS:  Rsdp                    - Pointer to the RSDP
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to parse the Root System Description
- *              Table (RSDT or XSDT)
- *
- * NOTE:        Tables are mapped (not copied) for efficiency. The FACS must
- *              be mapped and cannot be copied because it contains the actual
- *              memory location of the ACPI Global Lock.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbParseRootTable (
-    ACPI_PHYSICAL_ADDRESS   RsdpAddress)
-{
-    ACPI_TABLE_RSDP         *Rsdp;
-    UINT32                  TableEntrySize;
-    UINT32                  i;
-    UINT32                  TableCount;
-    ACPI_TABLE_HEADER       *Table;
-    ACPI_PHYSICAL_ADDRESS   Address;
-    UINT32                  Length;
-    UINT8                   *TableEntry;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (TbParseRootTable);
-
-
-    /*
-     * Map the entire RSDP and extract the address of the RSDT or XSDT
-     */
-    Rsdp = AcpiOsMapMemory (RsdpAddress, sizeof (ACPI_TABLE_RSDP));
-    if (!Rsdp)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    AcpiTbPrintTableHeader (RsdpAddress,
-        ACPI_CAST_PTR (ACPI_TABLE_HEADER, Rsdp));
-
-    /* Differentiate between RSDT and XSDT root tables */
-
-    if (Rsdp->Revision > 1 && Rsdp->XsdtPhysicalAddress)
-    {
-        /*
-         * Root table is an XSDT (64-bit physical addresses). We must use the
-         * XSDT if the revision is > 1 and the XSDT pointer is present, as per
-         * the ACPI specification.
-         */
-        Address = (ACPI_PHYSICAL_ADDRESS) Rsdp->XsdtPhysicalAddress;
-        TableEntrySize = sizeof (UINT64);
-    }
-    else
-    {
-        /* Root table is an RSDT (32-bit physical addresses) */
-
-        Address = (ACPI_PHYSICAL_ADDRESS) Rsdp->RsdtPhysicalAddress;
-        TableEntrySize = sizeof (UINT32);
-    }
-
-    /*
-     * It is not possible to map more than one entry in some environments,
-     * so unmap the RSDP here before mapping other tables
-     */
-    AcpiOsUnmapMemory (Rsdp, sizeof (ACPI_TABLE_RSDP));
-
-
-    /* Map the RSDT/XSDT table header to get the full table length */
-
-    Table = AcpiOsMapMemory (Address, sizeof (ACPI_TABLE_HEADER));
-    if (!Table)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    AcpiTbPrintTableHeader (Address, Table);
-
-    /* Get the length of the full table, verify length and map entire table */
-
-    Length = Table->Length;
-    AcpiOsUnmapMemory (Table, sizeof (ACPI_TABLE_HEADER));
-
-    if (Length < sizeof (ACPI_TABLE_HEADER))
-    {
-        ACPI_ERROR ((AE_INFO, "Invalid length 0x%X in RSDT/XSDT", Length));
-        return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH);
-    }
-
-    Table = AcpiOsMapMemory (Address, Length);
-    if (!Table)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Validate the root table checksum */
-
-    Status = AcpiTbVerifyChecksum (Table, Length);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsUnmapMemory (Table, Length);
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Calculate the number of tables described in the root table */
-
-    TableCount = (UINT32) ((Table->Length - sizeof (ACPI_TABLE_HEADER)) /
-        TableEntrySize);
-
-    /*
-     * First two entries in the table array are reserved for the DSDT
-     * and FACS, which are not actually present in the RSDT/XSDT - they
-     * come from the FADT
-     */
-    TableEntry = ACPI_CAST_PTR (UINT8, Table) + sizeof (ACPI_TABLE_HEADER);
-    AcpiGbl_RootTableList.Count = 2;
-
-    /*
-     * Initialize the root table array from the RSDT/XSDT
-     */
-    for (i = 0; i < TableCount; i++)
-    {
-        if (AcpiGbl_RootTableList.Count >= AcpiGbl_RootTableList.Size)
-        {
-            /* There is no more room in the root table array, attempt resize */
-
-            Status = AcpiTbResizeRootTableList ();
-            if (ACPI_FAILURE (Status))
-            {
-                ACPI_WARNING ((AE_INFO, "Truncating %u table entries!",
-                    (unsigned) (TableCount -
-                    (AcpiGbl_RootTableList.Count - 2))));
-                break;
-            }
-        }
-
-        /* Get the table physical address (32-bit for RSDT, 64-bit for XSDT) */
-
-        AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Address =
-            AcpiTbGetRootTableEntry (TableEntry, TableEntrySize);
-
-        TableEntry += TableEntrySize;
-        AcpiGbl_RootTableList.Count++;
-    }
-
-    /*
-     * It is not possible to map more than one entry in some environments,
-     * so unmap the root table here before mapping other tables
-     */
-    AcpiOsUnmapMemory (Table, Length);
-
-    /*
-     * Complete the initialization of the root table array by examining
-     * the header of each table
-     */
-    for (i = 2; i < AcpiGbl_RootTableList.Count; i++)
-    {
-        AcpiTbInstallTable (AcpiGbl_RootTableList.Tables[i].Address,
-            NULL, i);
-
-        /* Special case for FADT - get the DSDT and FACS */
-
-        if (ACPI_COMPARE_NAME (
-                &AcpiGbl_RootTableList.Tables[i].Signature, ACPI_SIG_FADT))
-        {
-            AcpiTbParseFadt (i);
-        }
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbxface.c b/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbxface.c
deleted file mode 100644 (file)
index 4c12916..0000000
+++ /dev/null
@@ -1,750 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbxface - Public interfaces to the ACPI subsystem
- *                         ACPI table oriented interfaces
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __TBXFACE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "actables.h"
-
-#define _COMPONENT          ACPI_TABLES
-        ACPI_MODULE_NAME    ("tbxface")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiTbLoadNamespace (
-    void);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiAllocateRootTable
- *
- * PARAMETERS:  InitialTableCount   - Size of InitialTableArray, in number of
- *                                    ACPI_TABLE_DESC structures
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Allocate a root table array. Used by iASL compiler and
- *              AcpiInitializeTables.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiAllocateRootTable (
-    UINT32                  InitialTableCount)
-{
-
-    AcpiGbl_RootTableList.Size = InitialTableCount;
-    AcpiGbl_RootTableList.Flags = ACPI_ROOT_ALLOW_RESIZE;
-
-    return (AcpiTbResizeRootTableList ());
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInitializeTables
- *
- * PARAMETERS:  InitialTableArray   - Pointer to an array of pre-allocated
- *                                    ACPI_TABLE_DESC structures. If NULL, the
- *                                    array is dynamically allocated.
- *              InitialTableCount   - Size of InitialTableArray, in number of
- *                                    ACPI_TABLE_DESC structures
- *              AllowRealloc        - Flag to tell Table Manager if resize of
- *                                    pre-allocated array is allowed. Ignored
- *                                    if InitialTableArray is NULL.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initialize the table manager, get the RSDP and RSDT/XSDT.
- *
- * NOTE:        Allows static allocation of the initial table array in order
- *              to avoid the use of dynamic memory in confined environments
- *              such as the kernel boot sequence where it may not be available.
- *
- *              If the host OS memory managers are initialized, use NULL for
- *              InitialTableArray, and the table will be dynamically allocated.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInitializeTables (
-    ACPI_TABLE_DESC         *InitialTableArray,
-    UINT32                  InitialTableCount,
-    BOOLEAN                 AllowResize)
-{
-    ACPI_PHYSICAL_ADDRESS   RsdpAddress;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInitializeTables);
-
-
-    /*
-     * Set up the Root Table Array
-     * Allocate the table array if requested
-     */
-    if (!InitialTableArray)
-    {
-        Status = AcpiAllocateRootTable (InitialTableCount);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-    else
-    {
-        /* Root Table Array has been statically allocated by the host */
-
-        ACPI_MEMSET (InitialTableArray, 0,
-            (ACPI_SIZE) InitialTableCount * sizeof (ACPI_TABLE_DESC));
-
-        AcpiGbl_RootTableList.Tables = InitialTableArray;
-        AcpiGbl_RootTableList.Size = InitialTableCount;
-        AcpiGbl_RootTableList.Flags = ACPI_ROOT_ORIGIN_UNKNOWN;
-        if (AllowResize)
-        {
-            AcpiGbl_RootTableList.Flags |= ACPI_ROOT_ALLOW_RESIZE;
-        }
-    }
-
-    /* Get the address of the RSDP */
-
-    RsdpAddress = AcpiOsGetRootPointer ();
-    if (!RsdpAddress)
-    {
-        return_ACPI_STATUS (AE_NOT_FOUND);
-    }
-
-    /*
-     * Get the root table (RSDT or XSDT) and extract all entries to the local
-     * Root Table Array. This array contains the information of the RSDT/XSDT
-     * in a common, more useable format.
-     */
-    Status = AcpiTbParseRootTable (RsdpAddress);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInitializeTables)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiReallocateRootTable
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Reallocate Root Table List into dynamic memory. Copies the
- *              root list from the previously provided scratch area. Should
- *              be called once dynamic memory allocation is available in the
- *              kernel
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiReallocateRootTable (
-    void)
-{
-    ACPI_TABLE_DESC         *Tables;
-    ACPI_SIZE               NewSize;
-
-
-    ACPI_FUNCTION_TRACE (AcpiReallocateRootTable);
-
-
-    /*
-     * Only reallocate the root table if the host provided a static buffer
-     * for the table array in the call to AcpiInitializeTables.
-     */
-    if (AcpiGbl_RootTableList.Flags & ACPI_ROOT_ORIGIN_ALLOCATED)
-    {
-        return_ACPI_STATUS (AE_SUPPORT);
-    }
-
-    NewSize = ((ACPI_SIZE) AcpiGbl_RootTableList.Count +
-                    ACPI_ROOT_TABLE_SIZE_INCREMENT) *
-                sizeof (ACPI_TABLE_DESC);
-
-    /* Create new array and copy the old array */
-
-    Tables = ACPI_ALLOCATE_ZEROED (NewSize);
-    if (!Tables)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    ACPI_MEMCPY (Tables, AcpiGbl_RootTableList.Tables, NewSize);
-
-    AcpiGbl_RootTableList.Size = AcpiGbl_RootTableList.Count;
-    AcpiGbl_RootTableList.Tables = Tables;
-    AcpiGbl_RootTableList.Flags =
-        ACPI_ROOT_ORIGIN_ALLOCATED | ACPI_ROOT_ALLOW_RESIZE;
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiReallocateRootTable)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetTableHeader
- *
- * PARAMETERS:  Signature           - ACPI signature of needed table
- *              Instance            - Which instance (for SSDTs)
- *              OutTableHeader      - The pointer to the table header to fill
- *
- * RETURN:      Status and pointer to mapped table header
- *
- * DESCRIPTION: Finds an ACPI table header.
- *
- * NOTE:        Caller is responsible in unmapping the header with
- *              AcpiOsUnmapMemory
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTableHeader (
-    char                    *Signature,
-    UINT32                  Instance,
-    ACPI_TABLE_HEADER       *OutTableHeader)
-{
-    UINT32                  i;
-    UINT32                  j;
-    ACPI_TABLE_HEADER       *Header;
-
-
-    /* Parameter validation */
-
-    if (!Signature || !OutTableHeader)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Walk the root table list */
-
-    for (i = 0, j = 0; i < AcpiGbl_RootTableList.Count; i++)
-    {
-        if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
-                    Signature))
-        {
-            continue;
-        }
-
-        if (++j < Instance)
-        {
-            continue;
-        }
-
-        if (!AcpiGbl_RootTableList.Tables[i].Pointer)
-        {
-            if ((AcpiGbl_RootTableList.Tables[i].Flags &
-                    ACPI_TABLE_ORIGIN_MASK) ==
-                ACPI_TABLE_ORIGIN_MAPPED)
-            {
-                Header = AcpiOsMapMemory (
-                            AcpiGbl_RootTableList.Tables[i].Address,
-                            sizeof (ACPI_TABLE_HEADER));
-                if (!Header)
-                {
-                    return AE_NO_MEMORY;
-                }
-
-                ACPI_MEMCPY (OutTableHeader, Header, sizeof(ACPI_TABLE_HEADER));
-                AcpiOsUnmapMemory (Header, sizeof(ACPI_TABLE_HEADER));
-            }
-            else
-            {
-                return AE_NOT_FOUND;
-            }
-        }
-        else
-        {
-            ACPI_MEMCPY (OutTableHeader,
-                AcpiGbl_RootTableList.Tables[i].Pointer,
-                sizeof(ACPI_TABLE_HEADER));
-        }
-
-        return (AE_OK);
-    }
-
-    return (AE_NOT_FOUND);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTableHeader)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetTable
- *
- * PARAMETERS:  Signature           - ACPI signature of needed table
- *              Instance            - Which instance (for SSDTs)
- *              OutTable            - Where the pointer to the table is returned
- *
- * RETURN:      Status and pointer to table
- *
- * DESCRIPTION: Finds and verifies an ACPI table.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTable (
-    char                    *Signature,
-    UINT32                  Instance,
-    ACPI_TABLE_HEADER       **OutTable)
-{
-    UINT32                  i;
-    UINT32                  j;
-    ACPI_STATUS             Status;
-
-
-    /* Parameter validation */
-
-    if (!Signature || !OutTable)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Walk the root table list */
-
-    for (i = 0, j = 0; i < AcpiGbl_RootTableList.Count; i++)
-    {
-        if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
-                Signature))
-        {
-            continue;
-        }
-
-        if (++j < Instance)
-        {
-            continue;
-        }
-
-        Status = AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[i]);
-        if (ACPI_SUCCESS (Status))
-        {
-            *OutTable = AcpiGbl_RootTableList.Tables[i].Pointer;
-        }
-
-        return (Status);
-    }
-
-    return (AE_NOT_FOUND);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTable)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetTableByIndex
- *
- * PARAMETERS:  TableIndex          - Table index
- *              Table               - Where the pointer to the table is returned
- *
- * RETURN:      Status and pointer to the table
- *
- * DESCRIPTION: Obtain a table by an index into the global table list.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTableByIndex (
-    UINT32                  TableIndex,
-    ACPI_TABLE_HEADER       **Table)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetTableByIndex);
-
-
-    /* Parameter validation */
-
-    if (!Table)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-
-    /* Validate index */
-
-    if (TableIndex >= AcpiGbl_RootTableList.Count)
-    {
-        (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (!AcpiGbl_RootTableList.Tables[TableIndex].Pointer)
-    {
-        /* Table is not mapped, map it */
-
-        Status = AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[TableIndex]);
-        if (ACPI_FAILURE (Status))
-        {
-            (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    *Table = AcpiGbl_RootTableList.Tables[TableIndex].Pointer;
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTableByIndex)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbLoadNamespace
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load the namespace from the DSDT and all SSDTs/PSDTs found in
- *              the RSDT/XSDT.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiTbLoadNamespace (
-    void)
-{
-    ACPI_STATUS             Status;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (TbLoadNamespace);
-
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-
-    /*
-     * Load the namespace. The DSDT is required, but any SSDT and PSDT tables
-     * are optional.
-     */
-    if (!AcpiGbl_RootTableList.Count ||
-        !ACPI_COMPARE_NAME (
-            &(AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Signature),
-            ACPI_SIG_DSDT) ||
-        ACPI_FAILURE (AcpiTbVerifyTable (
-            &AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT])))
-    {
-        Status = AE_NO_ACPI_TABLES;
-        goto UnlockAndExit;
-    }
-
-    /* A valid DSDT is required */
-
-    Status = AcpiTbVerifyTable (
-        &AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT]);
-    if (ACPI_FAILURE (Status))
-    {
-        Status = AE_NO_ACPI_TABLES;
-        goto UnlockAndExit;
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-
-    /* Load and parse tables */
-
-    Status = AcpiNsLoadTable (ACPI_TABLE_INDEX_DSDT, AcpiGbl_RootNode);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Load any SSDT or PSDT tables. Note: Loop leaves tables locked */
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    for (i = 0; i < AcpiGbl_RootTableList.Count; ++i)
-    {
-        if ((!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
-                    ACPI_SIG_SSDT) &&
-             !ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
-                    ACPI_SIG_PSDT)) ||
-             ACPI_FAILURE (AcpiTbVerifyTable (
-                &AcpiGbl_RootTableList.Tables[i])))
-        {
-            continue;
-        }
-
-        /* Ignore errors while loading tables, get as many as possible */
-
-        (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-        (void) AcpiNsLoadTable (i, AcpiGbl_RootNode);
-        (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI Tables successfully acquired\n"));
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiLoadTables
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load the ACPI tables from the RSDT/XSDT
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiLoadTables (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiLoadTables);
-
-
-    /* Load the namespace from the tables */
-
-    Status = AcpiTbLoadNamespace ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "While loading namespace from ACPI tables"));
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiLoadTables)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInstallTableHandler
- *
- * PARAMETERS:  Handler         - Table event handler
- *              Context         - Value passed to the handler on each event
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install table event handler
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallTableHandler (
-    ACPI_TABLE_HANDLER      Handler,
-    void                    *Context)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInstallTableHandler);
-
-
-    if (!Handler)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Don't allow more than one handler */
-
-    if (AcpiGbl_TableHandler)
-    {
-        Status = AE_ALREADY_EXISTS;
-        goto Cleanup;
-    }
-
-    /* Install the handler */
-
-    AcpiGbl_TableHandler = Handler;
-    AcpiGbl_TableHandlerContext = Context;
-
-Cleanup:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallTableHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiRemoveTableHandler
- *
- * PARAMETERS:  Handler         - Table event handler that was installed
- *                                previously.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Remove table event handler
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveTableHandler (
-    ACPI_TABLE_HANDLER      Handler)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiRemoveTableHandler);
-
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Make sure that the installed handler is the same */
-
-    if (!Handler ||
-        Handler != AcpiGbl_TableHandler)
-    {
-        Status = AE_BAD_PARAMETER;
-        goto Cleanup;
-    }
-
-    /* Remove the handler */
-
-    AcpiGbl_TableHandler = NULL;
-
-Cleanup:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveTableHandler)
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbxfroot.c b/l4/pkg/acpica/lib-acpi/src/acpica/tables/tbxfroot.c
deleted file mode 100644 (file)
index e0a571f..0000000
+++ /dev/null
@@ -1,371 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbxfroot - Find the root ACPI table (RSDT)
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __TBXFROOT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "actables.h"
-
-
-#define _COMPONENT          ACPI_TABLES
-        ACPI_MODULE_NAME    ("tbxfroot")
-
-/* Local prototypes */
-
-static UINT8 *
-AcpiTbScanMemoryForRsdp (
-    UINT8                   *StartAddress,
-    UINT32                  Length);
-
-static ACPI_STATUS
-AcpiTbValidateRsdp (
-    ACPI_TABLE_RSDP         *Rsdp);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbValidateRsdp
- *
- * PARAMETERS:  Rsdp                - Pointer to unvalidated RSDP
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Validate the RSDP (ptr)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiTbValidateRsdp (
-    ACPI_TABLE_RSDP         *Rsdp)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * The signature and checksum must both be correct
-     *
-     * Note: Sometimes there exists more than one RSDP in memory; the valid
-     * RSDP has a valid checksum, all others have an invalid checksum.
-     */
-    if (ACPI_STRNCMP ((char *) Rsdp, ACPI_SIG_RSDP,
-            sizeof (ACPI_SIG_RSDP)-1) != 0)
-    {
-        /* Nope, BAD Signature */
-
-        return (AE_BAD_SIGNATURE);
-    }
-
-    /* Check the standard checksum */
-
-    if (AcpiTbChecksum ((UINT8 *) Rsdp, ACPI_RSDP_CHECKSUM_LENGTH) != 0)
-    {
-        return (AE_BAD_CHECKSUM);
-    }
-
-    /* Check extended checksum if table version >= 2 */
-
-    if ((Rsdp->Revision >= 2) &&
-        (AcpiTbChecksum ((UINT8 *) Rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0))
-    {
-        return (AE_BAD_CHECKSUM);
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiFindRootPointer
- *
- * PARAMETERS:  TableAddress            - Where the table pointer is returned
- *
- * RETURN:      Status, RSDP physical address
- *
- * DESCRIPTION: Search lower 1Mbyte of memory for the root system descriptor
- *              pointer structure.  If it is found, set *RSDP to point to it.
- *
- * NOTE1:       The RSDP must be either in the first 1K of the Extended
- *              BIOS Data Area or between E0000 and FFFFF (From ACPI Spec.)
- *              Only a 32-bit physical address is necessary.
- *
- * NOTE2:       This function is always available, regardless of the
- *              initialization state of the rest of ACPI.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiFindRootPointer (
-    ACPI_SIZE               *TableAddress)
-{
-    UINT8                   *TablePtr;
-    UINT8                   *MemRover;
-    UINT32                  PhysicalAddress;
-
-
-    ACPI_FUNCTION_TRACE (AcpiFindRootPointer);
-
-
-    /* 1a) Get the location of the Extended BIOS Data Area (EBDA) */
-
-    TablePtr = AcpiOsMapMemory (
-                (ACPI_PHYSICAL_ADDRESS) ACPI_EBDA_PTR_LOCATION,
-                ACPI_EBDA_PTR_LENGTH);
-    if (!TablePtr)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Could not map memory at %8.8X for length %X",
-            ACPI_EBDA_PTR_LOCATION, ACPI_EBDA_PTR_LENGTH));
-
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    ACPI_MOVE_16_TO_32 (&PhysicalAddress, TablePtr);
-
-    /* Convert segment part to physical address */
-
-    PhysicalAddress <<= 4;
-    AcpiOsUnmapMemory (TablePtr, ACPI_EBDA_PTR_LENGTH);
-
-    /* EBDA present? */
-
-    if (PhysicalAddress > 0x400)
-    {
-        /*
-         * 1b) Search EBDA paragraphs (EBDA is required to be a
-         *     minimum of 1K length)
-         */
-        TablePtr = AcpiOsMapMemory (
-                    (ACPI_PHYSICAL_ADDRESS) PhysicalAddress,
-                    ACPI_EBDA_WINDOW_SIZE);
-        if (!TablePtr)
-        {
-            ACPI_ERROR ((AE_INFO,
-                "Could not map memory at %8.8X for length %X",
-                PhysicalAddress, ACPI_EBDA_WINDOW_SIZE));
-
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-
-        MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_EBDA_WINDOW_SIZE);
-        AcpiOsUnmapMemory (TablePtr, ACPI_EBDA_WINDOW_SIZE);
-
-        if (MemRover)
-        {
-            /* Return the physical address */
-
-            PhysicalAddress += (UINT32) ACPI_PTR_DIFF (MemRover, TablePtr);
-
-            *TableAddress = PhysicalAddress;
-            return_ACPI_STATUS (AE_OK);
-        }
-    }
-
-    /*
-     * 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh
-     */
-    TablePtr = AcpiOsMapMemory (
-                (ACPI_PHYSICAL_ADDRESS) ACPI_HI_RSDP_WINDOW_BASE,
-                ACPI_HI_RSDP_WINDOW_SIZE);
-
-    if (!TablePtr)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Could not map memory at %8.8X for length %X",
-            ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE));
-
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE);
-    AcpiOsUnmapMemory (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE);
-
-    if (MemRover)
-    {
-        /* Return the physical address */
-
-        PhysicalAddress = (UINT32)
-            (ACPI_HI_RSDP_WINDOW_BASE + ACPI_PTR_DIFF (MemRover, TablePtr));
-
-        *TableAddress = PhysicalAddress;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* A valid RSDP was not found */
-
-    ACPI_ERROR ((AE_INFO, "A valid RSDP was not found"));
-    return_ACPI_STATUS (AE_NOT_FOUND);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiFindRootPointer)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTbScanMemoryForRsdp
- *
- * PARAMETERS:  StartAddress        - Starting pointer for search
- *              Length              - Maximum length to search
- *
- * RETURN:      Pointer to the RSDP if found, otherwise NULL.
- *
- * DESCRIPTION: Search a block of memory for the RSDP signature
- *
- ******************************************************************************/
-
-static UINT8 *
-AcpiTbScanMemoryForRsdp (
-    UINT8                   *StartAddress,
-    UINT32                  Length)
-{
-    ACPI_STATUS             Status;
-    UINT8                   *MemRover;
-    UINT8                   *EndAddress;
-
-
-    ACPI_FUNCTION_TRACE (TbScanMemoryForRsdp);
-
-
-    EndAddress = StartAddress + Length;
-
-    /* Search from given start address for the requested length */
-
-    for (MemRover = StartAddress; MemRover < EndAddress;
-         MemRover += ACPI_RSDP_SCAN_STEP)
-    {
-        /* The RSDP signature and checksum must both be correct */
-
-        Status = AcpiTbValidateRsdp (ACPI_CAST_PTR (ACPI_TABLE_RSDP, MemRover));
-        if (ACPI_SUCCESS (Status))
-        {
-            /* Sig and checksum valid, we have found a real RSDP */
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                "RSDP located at physical address %p\n", MemRover));
-            return_PTR (MemRover);
-        }
-
-        /* No sig match or bad checksum, keep searching */
-    }
-
-    /* Searched entire block, no RSDP was found */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-        "Searched entire block from %p, valid RSDP was not found\n",
-        StartAddress));
-    return_PTR (NULL);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpiexec/Makefile b/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpiexec/Makefile
deleted file mode 100644 (file)
index 2022bbb..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-PROG=  acpiexec
-SRCS=  aetables.c aehandlers.c aeexec.c aemain.c \
-       ../../common/getopt.c \
-       ../../debugger/dbcmds.c \
-       ../../debugger/dbdisply.c \
-       ../../debugger/dbexec.c \
-       ../../debugger/dbfileio.c \
-       ../../debugger/dbhistry.c \
-       ../../debugger/dbinput.c \
-       ../../debugger/dbstats.c \
-       ../../debugger/dbutils.c \
-       ../../debugger/dbxface.c \
-       ../../disassembler/dmbuffer.c \
-       ../../disassembler/dmnames.c \
-       ../../disassembler/dmobject.c \
-       ../../disassembler/dmopcode.c \
-       ../../disassembler/dmresrc.c \
-       ../../disassembler/dmresrcl.c \
-       ../../disassembler/dmresrcs.c \
-       ../../disassembler/dmutils.c \
-       ../../disassembler/dmwalk.c \
-       ../../events/evevent.c \
-       ../../events/evgpeblk.c \
-       ../../events/evgpe.c \
-       ../../events/evmisc.c \
-       ../../events/evregion.c \
-       ../../events/evrgnini.c \
-       ../../events/evsci.c \
-       ../../events/evxface.c \
-       ../../events/evxfevnt.c \
-       ../../events/evxfregn.c \
-       ../../hardware/hwacpi.c \
-       ../../hardware/hwgpe.c \
-       ../../hardware/hwregs.c \
-       ../../hardware/hwsleep.c \
-       ../../hardware/hwvalid.c \
-       ../../hardware/hwxface.c \
-       ../../dispatcher/dsfield.c \
-       ../../dispatcher/dsinit.c \
-       ../../dispatcher/dsmethod.c \
-       ../../dispatcher/dsmthdat.c \
-       ../../dispatcher/dsobject.c \
-       ../../dispatcher/dsopcode.c \
-       ../../dispatcher/dsutils.c \
-       ../../dispatcher/dswexec.c \
-       ../../dispatcher/dswload.c \
-       ../../dispatcher/dswscope.c \
-       ../../dispatcher/dswstate.c \
-       ../../executer/exconfig.c \
-       ../../executer/exconvrt.c \
-       ../../executer/excreate.c \
-       ../../executer/exdump.c \
-       ../../executer/exfield.c \
-       ../../executer/exfldio.c \
-       ../../executer/exmisc.c \
-       ../../executer/exmutex.c \
-       ../../executer/exnames.c \
-       ../../executer/exoparg1.c \
-       ../../executer/exoparg2.c \
-       ../../executer/exoparg3.c \
-       ../../executer/exoparg6.c \
-       ../../executer/exprep.c \
-       ../../executer/exregion.c \
-       ../../executer/exresnte.c \
-       ../../executer/exresolv.c \
-       ../../executer/exresop.c \
-       ../../executer/exstore.c \
-       ../../executer/exstoren.c \
-       ../../executer/exstorob.c \
-       ../../executer/exsystem.c \
-       ../../executer/exutils.c \
-       ../../parser/psargs.c \
-       ../../parser/psloop.c \
-       ../../parser/psopcode.c \
-       ../../parser/psparse.c \
-       ../../parser/psscope.c \
-       ../../parser/pstree.c \
-       ../../parser/psutils.c \
-       ../../parser/pswalk.c \
-       ../../parser/psxface.c \
-       ../../namespace/nsaccess.c \
-       ../../namespace/nsalloc.c \
-       ../../namespace/nsdump.c \
-       ../../namespace/nsdumpdv.c \
-       ../../namespace/nseval.c \
-       ../../namespace/nsinit.c \
-       ../../namespace/nsload.c \
-       ../../namespace/nsnames.c \
-       ../../namespace/nsobject.c \
-       ../../namespace/nsparse.c \
-       ../../namespace/nspredef.c \
-       ../../namespace/nsrepair.c \
-       ../../namespace/nsrepair2.c \
-       ../../namespace/nssearch.c \
-       ../../namespace/nsutils.c \
-       ../../namespace/nswalk.c \
-       ../../namespace/nsxfeval.c \
-       ../../namespace/nsxfname.c \
-       ../../namespace/nsxfobj.c \
-       ../../resources/rsaddr.c \
-       ../../resources/rscalc.c \
-       ../../resources/rscreate.c \
-       ../../resources/rsdump.c \
-       ../../resources/rsio.c \
-       ../../resources/rsinfo.c \
-       ../../resources/rsirq.c \
-       ../../resources/rslist.c \
-       ../../resources/rsmemory.c \
-       ../../resources/rsmisc.c \
-       ../../resources/rsutils.c \
-       ../../resources/rsxface.c \
-       ../../tables/tbfadt.c \
-       ../../tables/tbfind.c \
-       ../../tables/tbinstal.c \
-       ../../tables/tbutils.c \
-       ../../tables/tbxface.c \
-       ../../tables/tbxfroot.c \
-       ../../utilities/utalloc.c \
-       ../../utilities/utcache.c \
-       ../../utilities/utcopy.c \
-       ../../utilities/utdebug.c \
-       ../../utilities/utdelete.c \
-       ../../utilities/uteval.c \
-       ../../utilities/utglobal.c \
-       ../../utilities/utids.c \
-       ../../utilities/utinit.c \
-       ../../utilities/utlock.c \
-       ../../utilities/utmath.c \
-       ../../utilities/utmisc.c \
-       ../../utilities/utmutex.c \
-       ../../utilities/utobject.c \
-       ../../utilities/utresrc.c \
-       ../../utilities/utstate.c \
-       ../../utilities/uttrack.c \
-       ../../utilities/utxface.c \
-       ../../osunixxf.c
-
-
-CFLAGS+= -Wall -g -D_LINUX -DNDEBUG -D_CONSOLE -DACPI_EXEC_APP -D_MULTI_THREADED -Wstrict-prototypes -I../../include 
-
-
-acpiexec : $(patsubst %.c,%.o, $(SRCS))
-       $(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -lrt -lpthread -o $(PROG)
-
-CLEANFILES= $(PROG)
-
-clean : 
-       rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS))
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpiexec/osunixdir.c b/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpiexec/osunixdir.c
deleted file mode 100644 (file)
index d9c55a1..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: osunixdir - Unix directory access interfaces
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <dirent.h>
-#include <fnmatch.h>
-#include <ctype.h>
-#include <sys/stat.h>
-
-#include "acpisrc.h"
-
-typedef struct ExternalFindInfo
-{
-    char                        *DirPathname;
-    DIR                         *DirPtr;
-    char                        temp_buffer[128];
-    char                        *WildcardSpec;
-    char                        RequestedFileType;
-
-} EXTERNAL_FIND_INFO;
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsOpenDirectory
- *
- * PARAMETERS:  DirPathname         - Full pathname to the directory
- *              WildcardSpec        - string of the form "*.c", etc.
- *
- * RETURN:      A directory "handle" to be used in subsequent search operations.
- *              NULL returned on failure.
- *
- * DESCRIPTION: Open a directory in preparation for a wildcard search
- *
- ******************************************************************************/
-
-void *
-AcpiOsOpenDirectory (
-    char                    *DirPathname,
-    char                    *WildcardSpec,
-    char                    RequestedFileType)
-{
-    EXTERNAL_FIND_INFO      *ExternalInfo;
-    DIR                     *dir;
-
-
-    /* Allocate the info struct that will be returned to the caller */
-
-    ExternalInfo = calloc (sizeof (EXTERNAL_FIND_INFO), 1);
-    if (!ExternalInfo)
-    {
-        return (NULL);
-    }
-
-    /* Get the directory stream */
-
-    dir = opendir (DirPathname);
-    if (!dir)
-    {
-        free (ExternalInfo);
-        return (NULL);
-    }
-
-    /* Save the info in the return structure */
-
-    ExternalInfo->WildcardSpec = WildcardSpec;
-    ExternalInfo->RequestedFileType = RequestedFileType;
-    ExternalInfo->DirPathname = DirPathname;
-    ExternalInfo->DirPtr = dir;
-    return (ExternalInfo);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsGetNextFilename
- *
- * PARAMETERS:  DirHandle           - Created via AcpiOsOpenDirectory
- *
- * RETURN:      Next filename matched.  NULL if no more matches.
- *
- * DESCRIPTION: Get the next file in the directory that matches the wildcard
- *              specification.
- *
- ******************************************************************************/
-
-char *
-AcpiOsGetNextFilename (
-    void                    *DirHandle)
-{
-    EXTERNAL_FIND_INFO      *ExternalInfo = DirHandle;
-    struct dirent           *dir_entry;
-    char                    *temp_str;
-    int                     str_len;
-    struct stat             temp_stat;
-    int                     err;
-
-
-    while ((dir_entry = readdir (ExternalInfo->DirPtr)))
-    {
-        if (!fnmatch (ExternalInfo->WildcardSpec, dir_entry->d_name, 0))
-        {
-            if (dir_entry->d_name[0] == '.')
-                continue;
-
-            str_len = strlen (dir_entry->d_name) +
-                        strlen (ExternalInfo->DirPathname) + 2;
-
-            temp_str = calloc (str_len, 1);
-            if (!temp_str)
-            {
-                printf ("Could not allocate buffer for temporary string\n");
-                return NULL;
-            }
-
-            strcpy (temp_str, ExternalInfo->DirPathname);
-            strcat (temp_str, "/");
-            strcat (temp_str, dir_entry->d_name);
-
-            err = stat (temp_str, &temp_stat);
-            free (temp_str);
-            if (err == -1)
-            {
-                printf ("stat() error - should not happen\n");
-                return NULL;
-            }
-
-            if ((S_ISDIR (temp_stat.st_mode)
-                && (ExternalInfo->RequestedFileType == REQUEST_DIR_ONLY))
-               ||
-               ((!S_ISDIR (temp_stat.st_mode)
-                && ExternalInfo->RequestedFileType == REQUEST_FILE_ONLY)))
-            {
-                /* copy to a temp buffer because dir_entry struct is on the stack */
-
-                strcpy (ExternalInfo->temp_buffer, dir_entry->d_name);
-                return (ExternalInfo->temp_buffer);
-            }
-        }
-    }
-
-    return NULL;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsCloseDirectory
- *
- * PARAMETERS:  DirHandle           - Created via AcpiOsOpenDirectory
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Close the open directory and cleanup.
- *
- ******************************************************************************/
-
-void
-AcpiOsCloseDirectory (
-    void                    *DirHandle)
-{
-    EXTERNAL_FIND_INFO      *ExternalInfo = DirHandle;
-
-
-    /* Close the directory and free allocations */
-
-    closedir (ExternalInfo->DirPtr);
-    free (DirHandle);
-}
-
-/* Other functions acpisrc uses but that aren't standard on Unix */
-
-/* lowercase a string */
-char*
-strlwr  (
-   char         *str)
-{
-    int         length;
-    int         i;
-
-
-    length = strlen(str);
-
-    for (i = 0; i < length; i++)
-    {
-        str[i] = tolower(str[i]);
-    }
-
-    return (str);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpisrc/Makefile b/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpisrc/Makefile
deleted file mode 100644 (file)
index 96816ce..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-
-PROG=  acpisrc
-SRCS=  ascase.c asconvrt.c asfile.c asmain.c asremove.c astable.c \
-        asutils.c osunixdir.c ../../common/getopt.c
-
-CFLAGS+= -Wall -O2 -D_LINUX -DACPI_APPLICATION -Wstrict-prototypes -I../../include 
-
-
-aslmain : $(patsubst %.c,%.o, $(SRCS))
-       $(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -o $(PROG)
-
-CLEANFILES= $(PROG)
-
-clean : 
-       rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS))
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpisrc/osunixdir.c b/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpisrc/osunixdir.c
deleted file mode 100644 (file)
index d9c55a1..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: osunixdir - Unix directory access interfaces
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <dirent.h>
-#include <fnmatch.h>
-#include <ctype.h>
-#include <sys/stat.h>
-
-#include "acpisrc.h"
-
-typedef struct ExternalFindInfo
-{
-    char                        *DirPathname;
-    DIR                         *DirPtr;
-    char                        temp_buffer[128];
-    char                        *WildcardSpec;
-    char                        RequestedFileType;
-
-} EXTERNAL_FIND_INFO;
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsOpenDirectory
- *
- * PARAMETERS:  DirPathname         - Full pathname to the directory
- *              WildcardSpec        - string of the form "*.c", etc.
- *
- * RETURN:      A directory "handle" to be used in subsequent search operations.
- *              NULL returned on failure.
- *
- * DESCRIPTION: Open a directory in preparation for a wildcard search
- *
- ******************************************************************************/
-
-void *
-AcpiOsOpenDirectory (
-    char                    *DirPathname,
-    char                    *WildcardSpec,
-    char                    RequestedFileType)
-{
-    EXTERNAL_FIND_INFO      *ExternalInfo;
-    DIR                     *dir;
-
-
-    /* Allocate the info struct that will be returned to the caller */
-
-    ExternalInfo = calloc (sizeof (EXTERNAL_FIND_INFO), 1);
-    if (!ExternalInfo)
-    {
-        return (NULL);
-    }
-
-    /* Get the directory stream */
-
-    dir = opendir (DirPathname);
-    if (!dir)
-    {
-        free (ExternalInfo);
-        return (NULL);
-    }
-
-    /* Save the info in the return structure */
-
-    ExternalInfo->WildcardSpec = WildcardSpec;
-    ExternalInfo->RequestedFileType = RequestedFileType;
-    ExternalInfo->DirPathname = DirPathname;
-    ExternalInfo->DirPtr = dir;
-    return (ExternalInfo);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsGetNextFilename
- *
- * PARAMETERS:  DirHandle           - Created via AcpiOsOpenDirectory
- *
- * RETURN:      Next filename matched.  NULL if no more matches.
- *
- * DESCRIPTION: Get the next file in the directory that matches the wildcard
- *              specification.
- *
- ******************************************************************************/
-
-char *
-AcpiOsGetNextFilename (
-    void                    *DirHandle)
-{
-    EXTERNAL_FIND_INFO      *ExternalInfo = DirHandle;
-    struct dirent           *dir_entry;
-    char                    *temp_str;
-    int                     str_len;
-    struct stat             temp_stat;
-    int                     err;
-
-
-    while ((dir_entry = readdir (ExternalInfo->DirPtr)))
-    {
-        if (!fnmatch (ExternalInfo->WildcardSpec, dir_entry->d_name, 0))
-        {
-            if (dir_entry->d_name[0] == '.')
-                continue;
-
-            str_len = strlen (dir_entry->d_name) +
-                        strlen (ExternalInfo->DirPathname) + 2;
-
-            temp_str = calloc (str_len, 1);
-            if (!temp_str)
-            {
-                printf ("Could not allocate buffer for temporary string\n");
-                return NULL;
-            }
-
-            strcpy (temp_str, ExternalInfo->DirPathname);
-            strcat (temp_str, "/");
-            strcat (temp_str, dir_entry->d_name);
-
-            err = stat (temp_str, &temp_stat);
-            free (temp_str);
-            if (err == -1)
-            {
-                printf ("stat() error - should not happen\n");
-                return NULL;
-            }
-
-            if ((S_ISDIR (temp_stat.st_mode)
-                && (ExternalInfo->RequestedFileType == REQUEST_DIR_ONLY))
-               ||
-               ((!S_ISDIR (temp_stat.st_mode)
-                && ExternalInfo->RequestedFileType == REQUEST_FILE_ONLY)))
-            {
-                /* copy to a temp buffer because dir_entry struct is on the stack */
-
-                strcpy (ExternalInfo->temp_buffer, dir_entry->d_name);
-                return (ExternalInfo->temp_buffer);
-            }
-        }
-    }
-
-    return NULL;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsCloseDirectory
- *
- * PARAMETERS:  DirHandle           - Created via AcpiOsOpenDirectory
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Close the open directory and cleanup.
- *
- ******************************************************************************/
-
-void
-AcpiOsCloseDirectory (
-    void                    *DirHandle)
-{
-    EXTERNAL_FIND_INFO      *ExternalInfo = DirHandle;
-
-
-    /* Close the directory and free allocations */
-
-    closedir (ExternalInfo->DirPtr);
-    free (DirHandle);
-}
-
-/* Other functions acpisrc uses but that aren't standard on Unix */
-
-/* lowercase a string */
-char*
-strlwr  (
-   char         *str)
-{
-    int         length;
-    int         i;
-
-
-    length = strlen(str);
-
-    for (i = 0; i < length; i++)
-    {
-        str[i] = tolower(str[i]);
-    }
-
-    return (str);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpixtract/Makefile b/l4/pkg/acpica/lib-acpi/src/acpica/tools/acpixtract/Makefile
deleted file mode 100644 (file)
index be7a735..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-
-PROG=  acpixtract
-SRCS=  acpixtract.c
-
-CFLAGS+= -Wall -O2 -D_LINUX -DACPI_APPLICATION -Wstrict-prototypes -I../../include 
-
-
-acpixtract : $(patsubst %.c,%.o, $(SRCS))
-       $(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -o $(PROG)
-
-CLEANFILES= $(PROG)
-
-clean : 
-       rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS))
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utalloc.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utalloc.c
deleted file mode 100644 (file)
index a66b940..0000000
+++ /dev/null
@@ -1,488 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utalloc - local memory allocation routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTALLOC_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acdebug.h"
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utalloc")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateCaches
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create all local caches
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCreateCaches (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    /* Object Caches, for frequently used objects */
-
-    Status = AcpiOsCreateCache ("Acpi-Namespace", sizeof (ACPI_NAMESPACE_NODE),
-                ACPI_MAX_NAMESPACE_CACHE_DEPTH, &AcpiGbl_NamespaceCache);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Status = AcpiOsCreateCache ("Acpi-State", sizeof (ACPI_GENERIC_STATE),
-                ACPI_MAX_STATE_CACHE_DEPTH, &AcpiGbl_StateCache);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Status = AcpiOsCreateCache ("Acpi-Parse", sizeof (ACPI_PARSE_OBJ_COMMON),
-                ACPI_MAX_PARSE_CACHE_DEPTH, &AcpiGbl_PsNodeCache);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Status = AcpiOsCreateCache ("Acpi-ParseExt", sizeof (ACPI_PARSE_OBJ_NAMED),
-                ACPI_MAX_EXTPARSE_CACHE_DEPTH, &AcpiGbl_PsNodeExtCache);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Status = AcpiOsCreateCache ("Acpi-Operand", sizeof (ACPI_OPERAND_OBJECT),
-                ACPI_MAX_OBJECT_CACHE_DEPTH, &AcpiGbl_OperandCache);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
-    /* Memory allocation lists */
-
-    Status = AcpiUtCreateList ("Acpi-Global", 0,
-                &AcpiGbl_GlobalList);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Status = AcpiUtCreateList ("Acpi-Namespace", sizeof (ACPI_NAMESPACE_NODE),
-                &AcpiGbl_NsNodeList);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-#endif
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDeleteCaches
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Purge and delete all local caches
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtDeleteCaches (
-    void)
-{
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-    char                    Buffer[7];
-
-    if (AcpiGbl_DisplayFinalMemStats)
-    {
-        ACPI_STRCPY (Buffer, "MEMORY");
-        (void) AcpiDbDisplayStatistics (Buffer);
-    }
-#endif
-
-    (void) AcpiOsDeleteCache (AcpiGbl_NamespaceCache);
-    AcpiGbl_NamespaceCache = NULL;
-
-    (void) AcpiOsDeleteCache (AcpiGbl_StateCache);
-    AcpiGbl_StateCache = NULL;
-
-    (void) AcpiOsDeleteCache (AcpiGbl_OperandCache);
-    AcpiGbl_OperandCache = NULL;
-
-    (void) AcpiOsDeleteCache (AcpiGbl_PsNodeCache);
-    AcpiGbl_PsNodeCache = NULL;
-
-    (void) AcpiOsDeleteCache (AcpiGbl_PsNodeExtCache);
-    AcpiGbl_PsNodeExtCache = NULL;
-
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
-    /* Debug only - display leftover memory allocation, if any */
-
-    AcpiUtDumpAllocations (ACPI_UINT32_MAX, NULL);
-
-    /* Free memory lists */
-
-    AcpiOsFree (AcpiGbl_GlobalList);
-    AcpiGbl_GlobalList = NULL;
-
-    AcpiOsFree (AcpiGbl_NsNodeList);
-    AcpiGbl_NsNodeList = NULL;
-#endif
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtValidateBuffer
- *
- * PARAMETERS:  Buffer              - Buffer descriptor to be validated
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Perform parameter validation checks on an ACPI_BUFFER
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtValidateBuffer (
-    ACPI_BUFFER             *Buffer)
-{
-
-    /* Obviously, the structure pointer must be valid */
-
-    if (!Buffer)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Special semantics for the length */
-
-    if ((Buffer->Length == ACPI_NO_BUFFER)              ||
-        (Buffer->Length == ACPI_ALLOCATE_BUFFER)        ||
-        (Buffer->Length == ACPI_ALLOCATE_LOCAL_BUFFER))
-    {
-        return (AE_OK);
-    }
-
-    /* Length is valid, the buffer pointer must be also */
-
-    if (!Buffer->Pointer)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtInitializeBuffer
- *
- * PARAMETERS:  Buffer              - Buffer to be validated
- *              RequiredLength      - Length needed
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Validate that the buffer is of the required length or
- *              allocate a new buffer. Returned buffer is always zeroed.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtInitializeBuffer (
-    ACPI_BUFFER             *Buffer,
-    ACPI_SIZE               RequiredLength)
-{
-    ACPI_SIZE               InputBufferLength;
-
-
-    /* Parameter validation */
-
-    if (!Buffer || !RequiredLength)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Buffer->Length is used as both an input and output parameter. Get the
-     * input actual length and set the output required buffer length.
-     */
-    InputBufferLength = Buffer->Length;
-    Buffer->Length = RequiredLength;
-
-    /*
-     * The input buffer length contains the actual buffer length, or the type
-     * of buffer to be allocated by this routine.
-     */
-    switch (InputBufferLength)
-    {
-    case ACPI_NO_BUFFER:
-
-        /* Return the exception (and the required buffer length) */
-
-        return (AE_BUFFER_OVERFLOW);
-
-    case ACPI_ALLOCATE_BUFFER:
-
-        /* Allocate a new buffer */
-
-        Buffer->Pointer = AcpiOsAllocate (RequiredLength);
-        break;
-
-    case ACPI_ALLOCATE_LOCAL_BUFFER:
-
-        /* Allocate a new buffer with local interface to allow tracking */
-
-        Buffer->Pointer = ACPI_ALLOCATE (RequiredLength);
-        break;
-
-    default:
-
-        /* Existing buffer: Validate the size of the buffer */
-
-        if (InputBufferLength < RequiredLength)
-        {
-            return (AE_BUFFER_OVERFLOW);
-        }
-        break;
-    }
-
-    /* Validate allocation from above or input buffer pointer */
-
-    if (!Buffer->Pointer)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    /* Have a valid buffer, clear it */
-
-    ACPI_MEMSET (Buffer->Pointer, 0, RequiredLength);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAllocate
- *
- * PARAMETERS:  Size                - Size of the allocation
- *              Component           - Component type of caller
- *              Module              - Source file name of caller
- *              Line                - Line number of caller
- *
- * RETURN:      Address of the allocated memory on success, NULL on failure.
- *
- * DESCRIPTION: Subsystem equivalent of malloc.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocate (
-    ACPI_SIZE               Size,
-    UINT32                  Component,
-    const char              *Module,
-    UINT32                  Line)
-{
-    void                    *Allocation;
-
-
-    ACPI_FUNCTION_TRACE_U32 (UtAllocate, Size);
-
-
-    /* Check for an inadvertent size of zero bytes */
-
-    if (!Size)
-    {
-        ACPI_WARNING ((Module, Line,
-            "Attempt to allocate zero bytes, allocating 1 byte"));
-        Size = 1;
-    }
-
-    Allocation = AcpiOsAllocate (Size);
-    if (!Allocation)
-    {
-        /* Report allocation error */
-
-        ACPI_WARNING ((Module, Line,
-            "Could not allocate size %X", (UINT32) Size));
-
-        return_PTR (NULL);
-    }
-
-    return_PTR (Allocation);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAllocateZeroed
- *
- * PARAMETERS:  Size                - Size of the allocation
- *              Component           - Component type of caller
- *              Module              - Source file name of caller
- *              Line                - Line number of caller
- *
- * RETURN:      Address of the allocated memory on success, NULL on failure.
- *
- * DESCRIPTION: Subsystem equivalent of calloc. Allocate and zero memory.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocateZeroed (
-    ACPI_SIZE               Size,
-    UINT32                  Component,
-    const char              *Module,
-    UINT32                  Line)
-{
-    void                    *Allocation;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    Allocation = AcpiUtAllocate (Size, Component, Module, Line);
-    if (Allocation)
-    {
-        /* Clear the memory block */
-
-        ACPI_MEMSET (Allocation, 0, Size);
-    }
-
-    return (Allocation);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utcache.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utcache.c
deleted file mode 100644 (file)
index aabc0a2..0000000
+++ /dev/null
@@ -1,433 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utcache - local cache allocation routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTCACHE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utcache")
-
-
-#ifdef ACPI_USE_LOCAL_CACHE
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsCreateCache
- *
- * PARAMETERS:  CacheName       - Ascii name for the cache
- *              ObjectSize      - Size of each cached object
- *              MaxDepth        - Maximum depth of the cache (in objects)
- *              ReturnCache     - Where the new cache object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a cache object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiOsCreateCache (
-    char                    *CacheName,
-    UINT16                  ObjectSize,
-    UINT16                  MaxDepth,
-    ACPI_MEMORY_LIST        **ReturnCache)
-{
-    ACPI_MEMORY_LIST        *Cache;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!CacheName || !ReturnCache || (ObjectSize < 16))
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* Create the cache object */
-
-    Cache = AcpiOsAllocate (sizeof (ACPI_MEMORY_LIST));
-    if (!Cache)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    /* Populate the cache object and return it */
-
-    ACPI_MEMSET (Cache, 0, sizeof (ACPI_MEMORY_LIST));
-    Cache->LinkOffset = 8;
-    Cache->ListName   = CacheName;
-    Cache->ObjectSize = ObjectSize;
-    Cache->MaxDepth   = MaxDepth;
-
-    *ReturnCache = Cache;
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsPurgeCache
- *
- * PARAMETERS:  Cache           - Handle to cache object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Free all objects within the requested cache.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiOsPurgeCache (
-    ACPI_MEMORY_LIST        *Cache)
-{
-    char                    *Next;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!Cache)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_CACHES);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Walk the list of objects in this cache */
-
-    while (Cache->ListHead)
-    {
-        /* Delete and unlink one cached state object */
-
-        Next = *(ACPI_CAST_INDIRECT_PTR (char,
-                    &(((char *) Cache->ListHead)[Cache->LinkOffset])));
-        ACPI_FREE (Cache->ListHead);
-
-        Cache->ListHead = Next;
-        Cache->CurrentDepth--;
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsDeleteCache
- *
- * PARAMETERS:  Cache           - Handle to cache object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Free all objects within the requested cache and delete the
- *              cache object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiOsDeleteCache (
-    ACPI_MEMORY_LIST        *Cache)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-   /* Purge all objects in the cache */
-
-    Status = AcpiOsPurgeCache (Cache);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Now we can delete the cache object */
-
-    AcpiOsFree (Cache);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsReleaseObject
- *
- * PARAMETERS:  Cache       - Handle to cache object
- *              Object      - The object to be released
- *
- * RETURN:      None
- *
- * DESCRIPTION: Release an object to the specified cache.  If cache is full,
- *              the object is deleted.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiOsReleaseObject (
-    ACPI_MEMORY_LIST        *Cache,
-    void                    *Object)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!Cache || !Object)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /* If cache is full, just free this object */
-
-    if (Cache->CurrentDepth >= Cache->MaxDepth)
-    {
-        ACPI_FREE (Object);
-        ACPI_MEM_TRACKING (Cache->TotalFreed++);
-    }
-
-    /* Otherwise put this object back into the cache */
-
-    else
-    {
-        Status = AcpiUtAcquireMutex (ACPI_MTX_CACHES);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-
-        /* Mark the object as cached */
-
-        ACPI_MEMSET (Object, 0xCA, Cache->ObjectSize);
-        ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_CACHED);
-
-        /* Put the object at the head of the cache list */
-
-        * (ACPI_CAST_INDIRECT_PTR (char,
-            &(((char *) Object)[Cache->LinkOffset]))) = Cache->ListHead;
-        Cache->ListHead = Object;
-        Cache->CurrentDepth++;
-
-        (void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiOsAcquireObject
- *
- * PARAMETERS:  Cache           - Handle to cache object
- *
- * RETURN:      the acquired object.  NULL on error
- *
- * DESCRIPTION: Get an object from the specified cache.  If cache is empty,
- *              the object is allocated.
- *
- ******************************************************************************/
-
-void *
-AcpiOsAcquireObject (
-    ACPI_MEMORY_LIST        *Cache)
-{
-    ACPI_STATUS             Status;
-    void                    *Object;
-
-
-    ACPI_FUNCTION_NAME (OsAcquireObject);
-
-
-    if (!Cache)
-    {
-        return (NULL);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_CACHES);
-    if (ACPI_FAILURE (Status))
-    {
-        return (NULL);
-    }
-
-    ACPI_MEM_TRACKING (Cache->Requests++);
-
-    /* Check the cache first */
-
-    if (Cache->ListHead)
-    {
-        /* There is an object available, use it */
-
-        Object = Cache->ListHead;
-        Cache->ListHead = *(ACPI_CAST_INDIRECT_PTR (char,
-                                &(((char *) Object)[Cache->LinkOffset])));
-
-        Cache->CurrentDepth--;
-
-        ACPI_MEM_TRACKING (Cache->Hits++);
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "Object %p from %s cache\n", Object, Cache->ListName));
-
-        Status = AcpiUtReleaseMutex (ACPI_MTX_CACHES);
-        if (ACPI_FAILURE (Status))
-        {
-            return (NULL);
-        }
-
-        /* Clear (zero) the previously used Object */
-
-        ACPI_MEMSET (Object, 0, Cache->ObjectSize);
-    }
-    else
-    {
-        /* The cache is empty, create a new object */
-
-        ACPI_MEM_TRACKING (Cache->TotalAllocated++);
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-        if ((Cache->TotalAllocated - Cache->TotalFreed) > Cache->MaxOccupied)
-        {
-            Cache->MaxOccupied = Cache->TotalAllocated - Cache->TotalFreed;
-        }
-#endif
-
-        /* Avoid deadlock with ACPI_ALLOCATE_ZEROED */
-
-        Status = AcpiUtReleaseMutex (ACPI_MTX_CACHES);
-        if (ACPI_FAILURE (Status))
-        {
-            return (NULL);
-        }
-
-        Object = ACPI_ALLOCATE_ZEROED (Cache->ObjectSize);
-        if (!Object)
-        {
-            return (NULL);
-        }
-    }
-
-    return (Object);
-}
-#endif /* ACPI_USE_LOCAL_CACHE */
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utclib.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utclib.c
deleted file mode 100644 (file)
index a9b8122..0000000
+++ /dev/null
@@ -1,961 +0,0 @@
-/******************************************************************************
- *
- * Module Name: cmclib - Local implementation of C library functions
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __CMCLIB_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-/*
- * These implementations of standard C Library routines can optionally be
- * used if a C library is not available.  In general, they are less efficient
- * than an inline or assembly implementation
- */
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("cmclib")
-
-
-#ifndef ACPI_USE_SYSTEM_CLIBRARY
-
-#define NEGATIVE    1
-#define POSITIVE    0
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtMemcmp (memcmp)
- *
- * PARAMETERS:  Buffer1         - First Buffer
- *              Buffer2         - Second Buffer
- *              Count           - Maximum # of bytes to compare
- *
- * RETURN:      Index where Buffers mismatched, or 0 if Buffers matched
- *
- * DESCRIPTION: Compare two Buffers, with a maximum length
- *
- ******************************************************************************/
-
-int
-AcpiUtMemcmp (
-    const char              *Buffer1,
-    const char              *Buffer2,
-    ACPI_SIZE               Count)
-{
-
-    for ( ; Count-- && (*Buffer1 == *Buffer2); Buffer1++, Buffer2++)
-    {
-    }
-
-    return ((Count == ACPI_SIZE_MAX) ? 0 : ((unsigned char) *Buffer1 -
-        (unsigned char) *Buffer2));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtMemcpy (memcpy)
- *
- * PARAMETERS:  Dest        - Target of the copy
- *              Src         - Source buffer to copy
- *              Count       - Number of bytes to copy
- *
- * RETURN:      Dest
- *
- * DESCRIPTION: Copy arbitrary bytes of memory
- *
- ******************************************************************************/
-
-void *
-AcpiUtMemcpy (
-    void                    *Dest,
-    const void              *Src,
-    ACPI_SIZE               Count)
-{
-    char                    *New = (char *) Dest;
-    char                    *Old = (char *) Src;
-
-
-    while (Count)
-    {
-        *New = *Old;
-        New++;
-        Old++;
-        Count--;
-    }
-
-    return (Dest);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtMemset (memset)
- *
- * PARAMETERS:  Dest        - Buffer to set
- *              Value       - Value to set each byte of memory
- *              Count       - Number of bytes to set
- *
- * RETURN:      Dest
- *
- * DESCRIPTION: Initialize a buffer to a known value.
- *
- ******************************************************************************/
-
-void *
-AcpiUtMemset (
-    void                    *Dest,
-    UINT8                   Value,
-    ACPI_SIZE               Count)
-{
-    char                    *New = (char *) Dest;
-
-
-    while (Count)
-    {
-        *New = (char) Value;
-        New++;
-        Count--;
-    }
-
-    return (Dest);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrlen (strlen)
- *
- * PARAMETERS:  String              - Null terminated string
- *
- * RETURN:      Length
- *
- * DESCRIPTION: Returns the length of the input string
- *
- ******************************************************************************/
-
-
-ACPI_SIZE
-AcpiUtStrlen (
-    const char              *String)
-{
-    UINT32                  Length = 0;
-
-
-    /* Count the string until a null is encountered */
-
-    while (*String)
-    {
-        Length++;
-        String++;
-    }
-
-    return (Length);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrcpy (strcpy)
- *
- * PARAMETERS:  DstString       - Target of the copy
- *              SrcString       - The source string to copy
- *
- * RETURN:      DstString
- *
- * DESCRIPTION: Copy a null terminated string
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrcpy (
-    char                    *DstString,
-    const char              *SrcString)
-{
-    char                    *String = DstString;
-
-
-    /* Move bytes brute force */
-
-    while (*SrcString)
-    {
-        *String = *SrcString;
-
-        String++;
-        SrcString++;
-    }
-
-    /* Null terminate */
-
-    *String = 0;
-    return (DstString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrncpy (strncpy)
- *
- * PARAMETERS:  DstString       - Target of the copy
- *              SrcString       - The source string to copy
- *              Count           - Maximum # of bytes to copy
- *
- * RETURN:      DstString
- *
- * DESCRIPTION: Copy a null terminated string, with a maximum length
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrncpy (
-    char                    *DstString,
-    const char              *SrcString,
-    ACPI_SIZE               Count)
-{
-    char                    *String = DstString;
-
-
-    /* Copy the string */
-
-    for (String = DstString;
-        Count && (Count--, (*String++ = *SrcString++)); )
-    {;}
-
-    /* Pad with nulls if necessary */
-
-    while (Count--)
-    {
-        *String = 0;
-        String++;
-    }
-
-    /* Return original pointer */
-
-    return (DstString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrcmp (strcmp)
- *
- * PARAMETERS:  String1         - First string
- *              String2         - Second string
- *
- * RETURN:      Index where strings mismatched, or 0 if strings matched
- *
- * DESCRIPTION: Compare two null terminated strings
- *
- ******************************************************************************/
-
-int
-AcpiUtStrcmp (
-    const char              *String1,
-    const char              *String2)
-{
-
-
-    for ( ; (*String1 == *String2); String2++)
-    {
-        if (!*String1++)
-        {
-            return (0);
-        }
-    }
-
-    return ((unsigned char) *String1 - (unsigned char) *String2);
-}
-
-
-#ifdef ACPI_FUTURE_IMPLEMENTATION
-/* Not used at this time */
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrchr (strchr)
- *
- * PARAMETERS:  String          - Search string
- *              ch              - character to search for
- *
- * RETURN:      Ptr to char or NULL if not found
- *
- * DESCRIPTION: Search a string for a character
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrchr (
-    const char              *String,
-    int                     ch)
-{
-
-
-    for ( ; (*String); String++)
-    {
-        if ((*String) == (char) ch)
-        {
-            return ((char *) String);
-        }
-    }
-
-    return (NULL);
-}
-#endif
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrncmp (strncmp)
- *
- * PARAMETERS:  String1         - First string
- *              String2         - Second string
- *              Count           - Maximum # of bytes to compare
- *
- * RETURN:      Index where strings mismatched, or 0 if strings matched
- *
- * DESCRIPTION: Compare two null terminated strings, with a maximum length
- *
- ******************************************************************************/
-
-int
-AcpiUtStrncmp (
-    const char              *String1,
-    const char              *String2,
-    ACPI_SIZE               Count)
-{
-
-
-    for ( ; Count-- && (*String1 == *String2); String2++)
-    {
-        if (!*String1++)
-        {
-            return (0);
-        }
-    }
-
-    return ((Count == ACPI_SIZE_MAX) ? 0 : ((unsigned char) *String1 -
-        (unsigned char) *String2));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrcat (Strcat)
- *
- * PARAMETERS:  DstString       - Target of the copy
- *              SrcString       - The source string to copy
- *
- * RETURN:      DstString
- *
- * DESCRIPTION: Append a null terminated string to a null terminated string
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrcat (
-    char                    *DstString,
-    const char              *SrcString)
-{
-    char                    *String;
-
-
-    /* Find end of the destination string */
-
-    for (String = DstString; *String++; )
-    { ; }
-
-    /* Concatenate the string */
-
-    for (--String; (*String++ = *SrcString++); )
-    { ; }
-
-    return (DstString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrncat (strncat)
- *
- * PARAMETERS:  DstString       - Target of the copy
- *              SrcString       - The source string to copy
- *              Count           - Maximum # of bytes to copy
- *
- * RETURN:      DstString
- *
- * DESCRIPTION: Append a null terminated string to a null terminated string,
- *              with a maximum count.
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrncat (
-    char                    *DstString,
-    const char              *SrcString,
-    ACPI_SIZE               Count)
-{
-    char                    *String;
-
-
-    if (Count)
-    {
-        /* Find end of the destination string */
-
-        for (String = DstString; *String++; )
-        { ; }
-
-        /* Concatenate the string */
-
-        for (--String; (*String++ = *SrcString++) && --Count; )
-        { ; }
-
-        /* Null terminate if necessary */
-
-        if (!Count)
-        {
-            *String = 0;
-        }
-    }
-
-    return (DstString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrstr (strstr)
- *
- * PARAMETERS:  String1         - Target string
- *              String2         - Substring to search for
- *
- * RETURN:      Where substring match starts, Null if no match found
- *
- * DESCRIPTION: Checks if String2 occurs in String1. This is not really a
- *              full implementation of strstr, only sufficient for command
- *              matching
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrstr (
-    char                    *String1,
-    char                    *String2)
-{
-    char                    *String;
-
-
-    if (AcpiUtStrlen (String2) > AcpiUtStrlen (String1))
-    {
-        return (NULL);
-    }
-
-    /* Walk entire string, comparing the letters */
-
-    for (String = String1; *String2; )
-    {
-        if (*String2 != *String)
-        {
-            return (NULL);
-        }
-
-        String2++;
-        String++;
-    }
-
-    return (String1);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrtoul (strtoul)
- *
- * PARAMETERS:  String          - Null terminated string
- *              Terminater      - Where a pointer to the terminating byte is
- *                                returned
- *              Base            - Radix of the string
- *
- * RETURN:      Converted value
- *
- * DESCRIPTION: Convert a string into a 32-bit unsigned value.
- *              Note: use AcpiUtStrtoul64 for 64-bit integers.
- *
- ******************************************************************************/
-
-UINT32
-AcpiUtStrtoul (
-    const char              *String,
-    char                    **Terminator,
-    UINT32                  Base)
-{
-    UINT32                  converted = 0;
-    UINT32                  index;
-    UINT32                  sign;
-    const char              *StringStart;
-    UINT32                  ReturnValue = 0;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    /*
-     * Save the value of the pointer to the buffer's first
-     * character, save the current errno value, and then
-     * skip over any white space in the buffer:
-     */
-    StringStart = String;
-    while (ACPI_IS_SPACE (*String) || *String == '\t')
-    {
-        ++String;
-    }
-
-    /*
-     * The buffer may contain an optional plus or minus sign.
-     * If it does, then skip over it but remember what is was:
-     */
-    if (*String == '-')
-    {
-        sign = NEGATIVE;
-        ++String;
-    }
-    else if (*String == '+')
-    {
-        ++String;
-        sign = POSITIVE;
-    }
-    else
-    {
-        sign = POSITIVE;
-    }
-
-    /*
-     * If the input parameter Base is zero, then we need to
-     * determine if it is octal, decimal, or hexadecimal:
-     */
-    if (Base == 0)
-    {
-        if (*String == '0')
-        {
-            if (AcpiUtToLower (*(++String)) == 'x')
-            {
-                Base = 16;
-                ++String;
-            }
-            else
-            {
-                Base = 8;
-            }
-        }
-        else
-        {
-            Base = 10;
-        }
-    }
-    else if (Base < 2 || Base > 36)
-    {
-        /*
-         * The specified Base parameter is not in the domain of
-         * this function:
-         */
-        goto done;
-    }
-
-    /*
-     * For octal and hexadecimal bases, skip over the leading
-     * 0 or 0x, if they are present.
-     */
-    if (Base == 8 && *String == '0')
-    {
-        String++;
-    }
-
-    if (Base == 16 &&
-        *String == '0' &&
-        AcpiUtToLower (*(++String)) == 'x')
-    {
-        String++;
-    }
-
-    /*
-     * Main loop: convert the string to an unsigned long:
-     */
-    while (*String)
-    {
-        if (ACPI_IS_DIGIT (*String))
-        {
-            index = (UINT32) ((UINT8) *String - '0');
-        }
-        else
-        {
-            index = (UINT32) AcpiUtToUpper (*String);
-            if (ACPI_IS_UPPER (index))
-            {
-                index = index - 'A' + 10;
-            }
-            else
-            {
-                goto done;
-            }
-        }
-
-        if (index >= Base)
-        {
-            goto done;
-        }
-
-        /*
-         * Check to see if value is out of range:
-         */
-
-        if (ReturnValue > ((ACPI_UINT32_MAX - (UINT32) index) /
-                            (UINT32) Base))
-        {
-            Status = AE_ERROR;
-            ReturnValue = 0;           /* reset */
-        }
-        else
-        {
-            ReturnValue *= Base;
-            ReturnValue += index;
-            converted = 1;
-        }
-
-        ++String;
-    }
-
-done:
-    /*
-     * If appropriate, update the caller's pointer to the next
-     * unconverted character in the buffer.
-     */
-    if (Terminator)
-    {
-        if (converted == 0 && ReturnValue == 0 && String != NULL)
-        {
-            *Terminator = (char *) StringStart;
-        }
-        else
-        {
-            *Terminator = (char *) String;
-        }
-    }
-
-    if (Status == AE_ERROR)
-    {
-        ReturnValue = ACPI_UINT32_MAX;
-    }
-
-    /*
-     * If a minus sign was present, then "the conversion is negated":
-     */
-    if (sign == NEGATIVE)
-    {
-        ReturnValue = (ACPI_UINT32_MAX - ReturnValue) + 1;
-    }
-
-    return (ReturnValue);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtToUpper (TOUPPER)
- *
- * PARAMETERS:  c           - Character to convert
- *
- * RETURN:      Converted character as an int
- *
- * DESCRIPTION: Convert character to uppercase
- *
- ******************************************************************************/
-
-int
-AcpiUtToUpper (
-    int                     c)
-{
-
-    return (ACPI_IS_LOWER(c) ? ((c)-0x20) : (c));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtToLower (TOLOWER)
- *
- * PARAMETERS:  c           - Character to convert
- *
- * RETURN:      Converted character as an int
- *
- * DESCRIPTION: Convert character to lowercase
- *
- ******************************************************************************/
-
-int
-AcpiUtToLower (
-    int                     c)
-{
-
-    return (ACPI_IS_UPPER(c) ? ((c)+0x20) : (c));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    is* functions
- *
- * DESCRIPTION: is* functions use the ctype table below
- *
- ******************************************************************************/
-
-const UINT8 _acpi_ctype[257] = {
-    _ACPI_CN,            /* 0x0      0.     */
-    _ACPI_CN,            /* 0x1      1.     */
-    _ACPI_CN,            /* 0x2      2.     */
-    _ACPI_CN,            /* 0x3      3.     */
-    _ACPI_CN,            /* 0x4      4.     */
-    _ACPI_CN,            /* 0x5      5.     */
-    _ACPI_CN,            /* 0x6      6.     */
-    _ACPI_CN,            /* 0x7      7.     */
-    _ACPI_CN,            /* 0x8      8.     */
-    _ACPI_CN|_ACPI_SP,   /* 0x9      9.     */
-    _ACPI_CN|_ACPI_SP,   /* 0xA     10.     */
-    _ACPI_CN|_ACPI_SP,   /* 0xB     11.     */
-    _ACPI_CN|_ACPI_SP,   /* 0xC     12.     */
-    _ACPI_CN|_ACPI_SP,   /* 0xD     13.     */
-    _ACPI_CN,            /* 0xE     14.     */
-    _ACPI_CN,            /* 0xF     15.     */
-    _ACPI_CN,            /* 0x10    16.     */
-    _ACPI_CN,            /* 0x11    17.     */
-    _ACPI_CN,            /* 0x12    18.     */
-    _ACPI_CN,            /* 0x13    19.     */
-    _ACPI_CN,            /* 0x14    20.     */
-    _ACPI_CN,            /* 0x15    21.     */
-    _ACPI_CN,            /* 0x16    22.     */
-    _ACPI_CN,            /* 0x17    23.     */
-    _ACPI_CN,            /* 0x18    24.     */
-    _ACPI_CN,            /* 0x19    25.     */
-    _ACPI_CN,            /* 0x1A    26.     */
-    _ACPI_CN,            /* 0x1B    27.     */
-    _ACPI_CN,            /* 0x1C    28.     */
-    _ACPI_CN,            /* 0x1D    29.     */
-    _ACPI_CN,            /* 0x1E    30.     */
-    _ACPI_CN,            /* 0x1F    31.     */
-    _ACPI_XS|_ACPI_SP,   /* 0x20    32. ' ' */
-    _ACPI_PU,            /* 0x21    33. '!' */
-    _ACPI_PU,            /* 0x22    34. '"' */
-    _ACPI_PU,            /* 0x23    35. '#' */
-    _ACPI_PU,            /* 0x24    36. '$' */
-    _ACPI_PU,            /* 0x25    37. '%' */
-    _ACPI_PU,            /* 0x26    38. '&' */
-    _ACPI_PU,            /* 0x27    39. ''' */
-    _ACPI_PU,            /* 0x28    40. '(' */
-    _ACPI_PU,            /* 0x29    41. ')' */
-    _ACPI_PU,            /* 0x2A    42. '*' */
-    _ACPI_PU,            /* 0x2B    43. '+' */
-    _ACPI_PU,            /* 0x2C    44. ',' */
-    _ACPI_PU,            /* 0x2D    45. '-' */
-    _ACPI_PU,            /* 0x2E    46. '.' */
-    _ACPI_PU,            /* 0x2F    47. '/' */
-    _ACPI_XD|_ACPI_DI,   /* 0x30    48. '0' */
-    _ACPI_XD|_ACPI_DI,   /* 0x31    49. '1' */
-    _ACPI_XD|_ACPI_DI,   /* 0x32    50. '2' */
-    _ACPI_XD|_ACPI_DI,   /* 0x33    51. '3' */
-    _ACPI_XD|_ACPI_DI,   /* 0x34    52. '4' */
-    _ACPI_XD|_ACPI_DI,   /* 0x35    53. '5' */
-    _ACPI_XD|_ACPI_DI,   /* 0x36    54. '6' */
-    _ACPI_XD|_ACPI_DI,   /* 0x37    55. '7' */
-    _ACPI_XD|_ACPI_DI,   /* 0x38    56. '8' */
-    _ACPI_XD|_ACPI_DI,   /* 0x39    57. '9' */
-    _ACPI_PU,            /* 0x3A    58. ':' */
-    _ACPI_PU,            /* 0x3B    59. ';' */
-    _ACPI_PU,            /* 0x3C    60. '<' */
-    _ACPI_PU,            /* 0x3D    61. '=' */
-    _ACPI_PU,            /* 0x3E    62. '>' */
-    _ACPI_PU,            /* 0x3F    63. '?' */
-    _ACPI_PU,            /* 0x40    64. '@' */
-    _ACPI_XD|_ACPI_UP,   /* 0x41    65. 'A' */
-    _ACPI_XD|_ACPI_UP,   /* 0x42    66. 'B' */
-    _ACPI_XD|_ACPI_UP,   /* 0x43    67. 'C' */
-    _ACPI_XD|_ACPI_UP,   /* 0x44    68. 'D' */
-    _ACPI_XD|_ACPI_UP,   /* 0x45    69. 'E' */
-    _ACPI_XD|_ACPI_UP,   /* 0x46    70. 'F' */
-    _ACPI_UP,            /* 0x47    71. 'G' */
-    _ACPI_UP,            /* 0x48    72. 'H' */
-    _ACPI_UP,            /* 0x49    73. 'I' */
-    _ACPI_UP,            /* 0x4A    74. 'J' */
-    _ACPI_UP,            /* 0x4B    75. 'K' */
-    _ACPI_UP,            /* 0x4C    76. 'L' */
-    _ACPI_UP,            /* 0x4D    77. 'M' */
-    _ACPI_UP,            /* 0x4E    78. 'N' */
-    _ACPI_UP,            /* 0x4F    79. 'O' */
-    _ACPI_UP,            /* 0x50    80. 'P' */
-    _ACPI_UP,            /* 0x51    81. 'Q' */
-    _ACPI_UP,            /* 0x52    82. 'R' */
-    _ACPI_UP,            /* 0x53    83. 'S' */
-    _ACPI_UP,            /* 0x54    84. 'T' */
-    _ACPI_UP,            /* 0x55    85. 'U' */
-    _ACPI_UP,            /* 0x56    86. 'V' */
-    _ACPI_UP,            /* 0x57    87. 'W' */
-    _ACPI_UP,            /* 0x58    88. 'X' */
-    _ACPI_UP,            /* 0x59    89. 'Y' */
-    _ACPI_UP,            /* 0x5A    90. 'Z' */
-    _ACPI_PU,            /* 0x5B    91. '[' */
-    _ACPI_PU,            /* 0x5C    92. '\' */
-    _ACPI_PU,            /* 0x5D    93. ']' */
-    _ACPI_PU,            /* 0x5E    94. '^' */
-    _ACPI_PU,            /* 0x5F    95. '_' */
-    _ACPI_PU,            /* 0x60    96. '`' */
-    _ACPI_XD|_ACPI_LO,   /* 0x61    97. 'a' */
-    _ACPI_XD|_ACPI_LO,   /* 0x62    98. 'b' */
-    _ACPI_XD|_ACPI_LO,   /* 0x63    99. 'c' */
-    _ACPI_XD|_ACPI_LO,   /* 0x64   100. 'd' */
-    _ACPI_XD|_ACPI_LO,   /* 0x65   101. 'e' */
-    _ACPI_XD|_ACPI_LO,   /* 0x66   102. 'f' */
-    _ACPI_LO,            /* 0x67   103. 'g' */
-    _ACPI_LO,            /* 0x68   104. 'h' */
-    _ACPI_LO,            /* 0x69   105. 'i' */
-    _ACPI_LO,            /* 0x6A   106. 'j' */
-    _ACPI_LO,            /* 0x6B   107. 'k' */
-    _ACPI_LO,            /* 0x6C   108. 'l' */
-    _ACPI_LO,            /* 0x6D   109. 'm' */
-    _ACPI_LO,            /* 0x6E   110. 'n' */
-    _ACPI_LO,            /* 0x6F   111. 'o' */
-    _ACPI_LO,            /* 0x70   112. 'p' */
-    _ACPI_LO,            /* 0x71   113. 'q' */
-    _ACPI_LO,            /* 0x72   114. 'r' */
-    _ACPI_LO,            /* 0x73   115. 's' */
-    _ACPI_LO,            /* 0x74   116. 't' */
-    _ACPI_LO,            /* 0x75   117. 'u' */
-    _ACPI_LO,            /* 0x76   118. 'v' */
-    _ACPI_LO,            /* 0x77   119. 'w' */
-    _ACPI_LO,            /* 0x78   120. 'x' */
-    _ACPI_LO,            /* 0x79   121. 'y' */
-    _ACPI_LO,            /* 0x7A   122. 'z' */
-    _ACPI_PU,            /* 0x7B   123. '{' */
-    _ACPI_PU,            /* 0x7C   124. '|' */
-    _ACPI_PU,            /* 0x7D   125. '}' */
-    _ACPI_PU,            /* 0x7E   126. '~' */
-    _ACPI_CN,            /* 0x7F   127.     */
-
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x80 to 0x8F    */
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x90 to 0x9F    */
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0xA0 to 0xAF    */
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0xB0 to 0xBF    */
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0xC0 to 0xCF    */
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0xD0 to 0xDF    */
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0xE0 to 0xEF    */
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* 0xF0 to 0x100   */
-};
-
-
-#endif /* ACPI_USE_SYSTEM_CLIBRARY */
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utcopy.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utcopy.c
deleted file mode 100644 (file)
index 5423eff..0000000
+++ /dev/null
@@ -1,1142 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utcopy - Internal to external object translation utilities
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTCOPY_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utcopy")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiUtCopyIsimpleToEsimple (
-    ACPI_OPERAND_OBJECT     *InternalObject,
-    ACPI_OBJECT             *ExternalObject,
-    UINT8                   *DataSpace,
-    ACPI_SIZE               *BufferSpaceUsed);
-
-static ACPI_STATUS
-AcpiUtCopyIelementToIelement (
-    UINT8                   ObjectType,
-    ACPI_OPERAND_OBJECT     *SourceObject,
-    ACPI_GENERIC_STATE      *State,
-    void                    *Context);
-
-static ACPI_STATUS
-AcpiUtCopyIpackageToEpackage (
-    ACPI_OPERAND_OBJECT     *InternalObject,
-    UINT8                   *Buffer,
-    ACPI_SIZE               *SpaceUsed);
-
-static ACPI_STATUS
-AcpiUtCopyEsimpleToIsimple(
-    ACPI_OBJECT             *UserObj,
-    ACPI_OPERAND_OBJECT     **ReturnObj);
-
-static ACPI_STATUS
-AcpiUtCopyEpackageToIpackage (
-    ACPI_OBJECT             *ExternalObject,
-    ACPI_OPERAND_OBJECT     **InternalObject);
-
-static ACPI_STATUS
-AcpiUtCopySimpleObject (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     *DestDesc);
-
-static ACPI_STATUS
-AcpiUtCopyIelementToEelement (
-    UINT8                   ObjectType,
-    ACPI_OPERAND_OBJECT     *SourceObject,
-    ACPI_GENERIC_STATE      *State,
-    void                    *Context);
-
-static ACPI_STATUS
-AcpiUtCopyIpackageToIpackage (
-    ACPI_OPERAND_OBJECT     *SourceObj,
-    ACPI_OPERAND_OBJECT     *DestObj,
-    ACPI_WALK_STATE         *WalkState);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyIsimpleToEsimple
- *
- * PARAMETERS:  InternalObject      - Source object to be copied
- *              ExternalObject      - Where to return the copied object
- *              DataSpace           - Where object data is returned (such as
- *                                    buffer and string data)
- *              BufferSpaceUsed     - Length of DataSpace that was used
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to copy a simple internal object to
- *              an external object.
- *
- *              The DataSpace buffer is assumed to have sufficient space for
- *              the object.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIsimpleToEsimple (
-    ACPI_OPERAND_OBJECT     *InternalObject,
-    ACPI_OBJECT             *ExternalObject,
-    UINT8                   *DataSpace,
-    ACPI_SIZE               *BufferSpaceUsed)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (UtCopyIsimpleToEsimple);
-
-
-    *BufferSpaceUsed = 0;
-
-    /*
-     * Check for NULL object case (could be an uninitialized
-     * package element)
-     */
-    if (!InternalObject)
-    {
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Always clear the external object */
-
-    ACPI_MEMSET (ExternalObject, 0, sizeof (ACPI_OBJECT));
-
-    /*
-     * In general, the external object will be the same type as
-     * the internal object
-     */
-    ExternalObject->Type = InternalObject->Common.Type;
-
-    /* However, only a limited number of external types are supported */
-
-    switch (InternalObject->Common.Type)
-    {
-    case ACPI_TYPE_STRING:
-
-        ExternalObject->String.Pointer = (char *) DataSpace;
-        ExternalObject->String.Length  = InternalObject->String.Length;
-        *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (
-                            (ACPI_SIZE) InternalObject->String.Length + 1);
-
-        ACPI_MEMCPY ((void *) DataSpace,
-            (void *) InternalObject->String.Pointer,
-            (ACPI_SIZE) InternalObject->String.Length + 1);
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        ExternalObject->Buffer.Pointer = DataSpace;
-        ExternalObject->Buffer.Length  = InternalObject->Buffer.Length;
-        *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (
-                            InternalObject->String.Length);
-
-        ACPI_MEMCPY ((void *) DataSpace,
-            (void *) InternalObject->Buffer.Pointer,
-            InternalObject->Buffer.Length);
-        break;
-
-
-    case ACPI_TYPE_INTEGER:
-
-        ExternalObject->Integer.Value = InternalObject->Integer.Value;
-        break;
-
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        /* This is an object reference. */
-
-        switch (InternalObject->Reference.Class)
-        {
-        case ACPI_REFCLASS_NAME:
-
-            /*
-             * For namepath, return the object handle ("reference")
-             * We are referring to the namespace node
-             */
-            ExternalObject->Reference.Handle =
-                InternalObject->Reference.Node;
-            ExternalObject->Reference.ActualType =
-                AcpiNsGetType (InternalObject->Reference.Node);
-            break;
-
-        default:
-
-            /* All other reference types are unsupported */
-
-            return_ACPI_STATUS (AE_TYPE);
-        }
-        break;
-
-
-    case ACPI_TYPE_PROCESSOR:
-
-        ExternalObject->Processor.ProcId =
-            InternalObject->Processor.ProcId;
-        ExternalObject->Processor.PblkAddress =
-            InternalObject->Processor.Address;
-        ExternalObject->Processor.PblkLength =
-            InternalObject->Processor.Length;
-        break;
-
-
-    case ACPI_TYPE_POWER:
-
-        ExternalObject->PowerResource.SystemLevel =
-            InternalObject->PowerResource.SystemLevel;
-
-        ExternalObject->PowerResource.ResourceOrder =
-            InternalObject->PowerResource.ResourceOrder;
-        break;
-
-
-    default:
-        /*
-         * There is no corresponding external object type
-         */
-        ACPI_ERROR ((AE_INFO,
-            "Unsupported object type, cannot convert to external object: %s",
-            AcpiUtGetTypeName (InternalObject->Common.Type)));
-
-        return_ACPI_STATUS (AE_SUPPORT);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyIelementToEelement
- *
- * PARAMETERS:  ACPI_PKG_CALLBACK
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Copy one package element to another package element
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIelementToEelement (
-    UINT8                   ObjectType,
-    ACPI_OPERAND_OBJECT     *SourceObject,
-    ACPI_GENERIC_STATE      *State,
-    void                    *Context)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_PKG_INFO           *Info = (ACPI_PKG_INFO *) Context;
-    ACPI_SIZE               ObjectSpace;
-    UINT32                  ThisIndex;
-    ACPI_OBJECT             *TargetObject;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    ThisIndex    = State->Pkg.Index;
-    TargetObject = (ACPI_OBJECT *)
-        &((ACPI_OBJECT *)(State->Pkg.DestObject))->Package.Elements[ThisIndex];
-
-    switch (ObjectType)
-    {
-    case ACPI_COPY_TYPE_SIMPLE:
-
-        /*
-         * This is a simple or null object
-         */
-        Status = AcpiUtCopyIsimpleToEsimple (SourceObject,
-                        TargetObject, Info->FreeSpace, &ObjectSpace);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-        break;
-
-
-    case ACPI_COPY_TYPE_PACKAGE:
-
-        /*
-         * Build the package object
-         */
-        TargetObject->Type              = ACPI_TYPE_PACKAGE;
-        TargetObject->Package.Count     = SourceObject->Package.Count;
-        TargetObject->Package.Elements  =
-            ACPI_CAST_PTR (ACPI_OBJECT, Info->FreeSpace);
-
-        /*
-         * Pass the new package object back to the package walk routine
-         */
-        State->Pkg.ThisTargetObj = TargetObject;
-
-        /*
-         * Save space for the array of objects (Package elements)
-         * update the buffer length counter
-         */
-        ObjectSpace = ACPI_ROUND_UP_TO_NATIVE_WORD (
-                            (ACPI_SIZE) TargetObject->Package.Count *
-                            sizeof (ACPI_OBJECT));
-        break;
-
-
-    default:
-        return (AE_BAD_PARAMETER);
-    }
-
-    Info->FreeSpace   += ObjectSpace;
-    Info->Length      += ObjectSpace;
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyIpackageToEpackage
- *
- * PARAMETERS:  InternalObject      - Pointer to the object we are returning
- *              Buffer              - Where the object is returned
- *              SpaceUsed           - Where the object length is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to place a package object in a user
- *              buffer. A package object by definition contains other objects.
- *
- *              The buffer is assumed to have sufficient space for the object.
- *              The caller must have verified the buffer length needed using
- *              the AcpiUtGetObjectSize function before calling this function.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIpackageToEpackage (
-    ACPI_OPERAND_OBJECT     *InternalObject,
-    UINT8                   *Buffer,
-    ACPI_SIZE               *SpaceUsed)
-{
-    ACPI_OBJECT             *ExternalObject;
-    ACPI_STATUS             Status;
-    ACPI_PKG_INFO           Info;
-
-
-    ACPI_FUNCTION_TRACE (UtCopyIpackageToEpackage);
-
-
-    /*
-     * First package at head of the buffer
-     */
-    ExternalObject = ACPI_CAST_PTR (ACPI_OBJECT, Buffer);
-
-    /*
-     * Free space begins right after the first package
-     */
-    Info.Length      = ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
-    Info.FreeSpace   = Buffer + ACPI_ROUND_UP_TO_NATIVE_WORD (
-                                    sizeof (ACPI_OBJECT));
-    Info.ObjectSpace = 0;
-    Info.NumPackages = 1;
-
-    ExternalObject->Type             = InternalObject->Common.Type;
-    ExternalObject->Package.Count    = InternalObject->Package.Count;
-    ExternalObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT,
-                                            Info.FreeSpace);
-
-    /*
-     * Leave room for an array of ACPI_OBJECTS in the buffer
-     * and move the free space past it
-     */
-    Info.Length    += (ACPI_SIZE) ExternalObject->Package.Count *
-                            ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
-    Info.FreeSpace += ExternalObject->Package.Count *
-                            ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
-
-    Status = AcpiUtWalkPackageTree (InternalObject, ExternalObject,
-                AcpiUtCopyIelementToEelement, &Info);
-
-    *SpaceUsed = Info.Length;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyIobjectToEobject
- *
- * PARAMETERS:  InternalObject      - The internal object to be converted
- *              RetBuffer           - Where the object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to build an API object to be returned
- *              to the caller.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCopyIobjectToEobject (
-    ACPI_OPERAND_OBJECT     *InternalObject,
-    ACPI_BUFFER             *RetBuffer)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtCopyIobjectToEobject);
-
-
-    if (InternalObject->Common.Type == ACPI_TYPE_PACKAGE)
-    {
-        /*
-         * Package object:  Copy all subobjects (including
-         * nested packages)
-         */
-        Status = AcpiUtCopyIpackageToEpackage (InternalObject,
-                        RetBuffer->Pointer, &RetBuffer->Length);
-    }
-    else
-    {
-        /*
-         * Build a simple object (no nested objects)
-         */
-        Status = AcpiUtCopyIsimpleToEsimple (InternalObject,
-                    ACPI_CAST_PTR (ACPI_OBJECT, RetBuffer->Pointer),
-                    ACPI_ADD_PTR (UINT8, RetBuffer->Pointer,
-                        ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT))),
-                    &RetBuffer->Length);
-        /*
-         * build simple does not include the object size in the length
-         * so we add it in here
-         */
-        RetBuffer->Length += sizeof (ACPI_OBJECT);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyEsimpleToIsimple
- *
- * PARAMETERS:  ExternalObject      - The external object to be converted
- *              RetInternalObject   - Where the internal object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function copies an external object to an internal one.
- *              NOTE: Pointers can be copied, we don't need to copy data.
- *              (The pointers have to be valid in our address space no matter
- *              what we do with them!)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyEsimpleToIsimple (
-    ACPI_OBJECT             *ExternalObject,
-    ACPI_OPERAND_OBJECT     **RetInternalObject)
-{
-    ACPI_OPERAND_OBJECT     *InternalObject;
-
-
-    ACPI_FUNCTION_TRACE (UtCopyEsimpleToIsimple);
-
-
-    /*
-     * Simple types supported are: String, Buffer, Integer
-     */
-    switch (ExternalObject->Type)
-    {
-    case ACPI_TYPE_STRING:
-    case ACPI_TYPE_BUFFER:
-    case ACPI_TYPE_INTEGER:
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        InternalObject = AcpiUtCreateInternalObject (
-                            (UINT8) ExternalObject->Type);
-        if (!InternalObject)
-        {
-            return_ACPI_STATUS (AE_NO_MEMORY);
-        }
-        break;
-
-    case ACPI_TYPE_ANY: /* This is the case for a NULL object */
-
-        *RetInternalObject = NULL;
-        return_ACPI_STATUS (AE_OK);
-
-    default:
-        /* All other types are not supported */
-
-        ACPI_ERROR ((AE_INFO,
-            "Unsupported object type, cannot convert to internal object: %s",
-            AcpiUtGetTypeName (ExternalObject->Type)));
-
-        return_ACPI_STATUS (AE_SUPPORT);
-    }
-
-
-    /* Must COPY string and buffer contents */
-
-    switch (ExternalObject->Type)
-    {
-    case ACPI_TYPE_STRING:
-
-        InternalObject->String.Pointer =
-            ACPI_ALLOCATE_ZEROED ((ACPI_SIZE)
-                ExternalObject->String.Length + 1);
-
-        if (!InternalObject->String.Pointer)
-        {
-            goto ErrorExit;
-        }
-
-        ACPI_MEMCPY (InternalObject->String.Pointer,
-                     ExternalObject->String.Pointer,
-                     ExternalObject->String.Length);
-
-        InternalObject->String.Length  = ExternalObject->String.Length;
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        InternalObject->Buffer.Pointer =
-            ACPI_ALLOCATE_ZEROED (ExternalObject->Buffer.Length);
-        if (!InternalObject->Buffer.Pointer)
-        {
-            goto ErrorExit;
-        }
-
-        ACPI_MEMCPY (InternalObject->Buffer.Pointer,
-                     ExternalObject->Buffer.Pointer,
-                     ExternalObject->Buffer.Length);
-
-        InternalObject->Buffer.Length  = ExternalObject->Buffer.Length;
-
-        /* Mark buffer data valid */
-
-        InternalObject->Buffer.Flags |= AOPOBJ_DATA_VALID;
-        break;
-
-
-    case ACPI_TYPE_INTEGER:
-
-        InternalObject->Integer.Value   = ExternalObject->Integer.Value;
-        break;
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        /* TBD: should validate incoming handle */
-
-        InternalObject->Reference.Class = ACPI_REFCLASS_NAME;
-        InternalObject->Reference.Node = ExternalObject->Reference.Handle;
-        break;
-
-    default:
-        /* Other types can't get here */
-        break;
-    }
-
-    *RetInternalObject = InternalObject;
-    return_ACPI_STATUS (AE_OK);
-
-
-ErrorExit:
-    AcpiUtRemoveReference (InternalObject);
-    return_ACPI_STATUS (AE_NO_MEMORY);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyEpackageToIpackage
- *
- * PARAMETERS:  ExternalObject      - The external object to be converted
- *              InternalObject      - Where the internal object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Copy an external package object to an internal package.
- *              Handles nested packages.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyEpackageToIpackage (
-    ACPI_OBJECT             *ExternalObject,
-    ACPI_OPERAND_OBJECT     **InternalObject)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_OPERAND_OBJECT     *PackageObject;
-    ACPI_OPERAND_OBJECT     **PackageElements;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (UtCopyEpackageToIpackage);
-
-
-    /* Create the package object */
-
-    PackageObject = AcpiUtCreatePackageObject (ExternalObject->Package.Count);
-    if (!PackageObject)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    PackageElements = PackageObject->Package.Elements;
-
-    /*
-     * Recursive implementation. Probably ok, since nested external packages
-     * as parameters should be very rare.
-     */
-    for (i = 0; i < ExternalObject->Package.Count; i++)
-    {
-        Status = AcpiUtCopyEobjectToIobject (
-                    &ExternalObject->Package.Elements[i],
-                    &PackageElements[i]);
-        if (ACPI_FAILURE (Status))
-        {
-            /* Truncate package and delete it */
-
-            PackageObject->Package.Count = i;
-            PackageElements[i] = NULL;
-            AcpiUtRemoveReference (PackageObject);
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Mark package data valid */
-
-    PackageObject->Package.Flags |= AOPOBJ_DATA_VALID;
-
-    *InternalObject = PackageObject;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyEobjectToIobject
- *
- * PARAMETERS:  ExternalObject      - The external object to be converted
- *              InternalObject      - Where the internal object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Converts an external object to an internal object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCopyEobjectToIobject (
-    ACPI_OBJECT             *ExternalObject,
-    ACPI_OPERAND_OBJECT     **InternalObject)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtCopyEobjectToIobject);
-
-
-    if (ExternalObject->Type == ACPI_TYPE_PACKAGE)
-    {
-        Status = AcpiUtCopyEpackageToIpackage (ExternalObject, InternalObject);
-    }
-    else
-    {
-        /*
-         * Build a simple object (no nested objects)
-         */
-        Status = AcpiUtCopyEsimpleToIsimple (ExternalObject, InternalObject);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopySimpleObject
- *
- * PARAMETERS:  SourceDesc          - The internal object to be copied
- *              DestDesc            - New target object
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Simple copy of one internal object to another. Reference count
- *              of the destination object is preserved.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopySimpleObject (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     *DestDesc)
-{
-    UINT16                  ReferenceCount;
-    ACPI_OPERAND_OBJECT     *NextObject;
-    ACPI_STATUS             Status;
-
-
-    /* Save fields from destination that we don't want to overwrite */
-
-    ReferenceCount = DestDesc->Common.ReferenceCount;
-    NextObject = DestDesc->Common.NextObject;
-
-    /* Copy the entire source object over the destination object*/
-
-    ACPI_MEMCPY ((char *) DestDesc, (char *) SourceDesc,
-                    sizeof (ACPI_OPERAND_OBJECT));
-
-    /* Restore the saved fields */
-
-    DestDesc->Common.ReferenceCount = ReferenceCount;
-    DestDesc->Common.NextObject = NextObject;
-
-    /* New object is not static, regardless of source */
-
-    DestDesc->Common.Flags &= ~AOPOBJ_STATIC_POINTER;
-
-    /* Handle the objects with extra data */
-
-    switch (DestDesc->Common.Type)
-    {
-    case ACPI_TYPE_BUFFER:
-        /*
-         * Allocate and copy the actual buffer if and only if:
-         * 1) There is a valid buffer pointer
-         * 2) The buffer has a length > 0
-         */
-        if ((SourceDesc->Buffer.Pointer) &&
-            (SourceDesc->Buffer.Length))
-        {
-            DestDesc->Buffer.Pointer =
-                ACPI_ALLOCATE (SourceDesc->Buffer.Length);
-            if (!DestDesc->Buffer.Pointer)
-            {
-                return (AE_NO_MEMORY);
-            }
-
-            /* Copy the actual buffer data */
-
-            ACPI_MEMCPY (DestDesc->Buffer.Pointer,
-                    SourceDesc->Buffer.Pointer,
-                    SourceDesc->Buffer.Length);
-        }
-        break;
-
-    case ACPI_TYPE_STRING:
-        /*
-         * Allocate and copy the actual string if and only if:
-         * 1) There is a valid string pointer
-         * (Pointer to a NULL string is allowed)
-         */
-        if (SourceDesc->String.Pointer)
-        {
-            DestDesc->String.Pointer =
-                ACPI_ALLOCATE ((ACPI_SIZE) SourceDesc->String.Length + 1);
-            if (!DestDesc->String.Pointer)
-            {
-                return (AE_NO_MEMORY);
-            }
-
-            /* Copy the actual string data */
-
-            ACPI_MEMCPY (DestDesc->String.Pointer, SourceDesc->String.Pointer,
-                         (ACPI_SIZE) SourceDesc->String.Length + 1);
-        }
-        break;
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-        /*
-         * We copied the reference object, so we now must add a reference
-         * to the object pointed to by the reference
-         *
-         * DDBHandle reference (from Load/LoadTable) is a special reference,
-         * it does not have a Reference.Object, so does not need to
-         * increase the reference count
-         */
-        if (SourceDesc->Reference.Class == ACPI_REFCLASS_TABLE)
-        {
-            break;
-        }
-
-        AcpiUtAddReference (SourceDesc->Reference.Object);
-        break;
-
-    case ACPI_TYPE_REGION:
-        /*
-         * We copied the Region Handler, so we now must add a reference
-         */
-        if (DestDesc->Region.Handler)
-        {
-            AcpiUtAddReference (DestDesc->Region.Handler);
-        }
-        break;
-
-    /*
-     * For Mutex and Event objects, we cannot simply copy the underlying
-     * OS object. We must create a new one.
-     */
-    case ACPI_TYPE_MUTEX:
-
-        Status = AcpiOsCreateMutex (&DestDesc->Mutex.OsMutex);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-        break;
-
-    case ACPI_TYPE_EVENT:
-
-        Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0,
-                    &DestDesc->Event.OsSemaphore);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-        break;
-
-    default:
-        /* Nothing to do for other simple objects */
-        break;
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyIelementToIelement
- *
- * PARAMETERS:  ACPI_PKG_CALLBACK
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Copy one package element to another package element
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIelementToIelement (
-    UINT8                   ObjectType,
-    ACPI_OPERAND_OBJECT     *SourceObject,
-    ACPI_GENERIC_STATE      *State,
-    void                    *Context)
-{
-    ACPI_STATUS             Status = AE_OK;
-    UINT32                  ThisIndex;
-    ACPI_OPERAND_OBJECT     **ThisTargetPtr;
-    ACPI_OPERAND_OBJECT     *TargetObject;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    ThisIndex     = State->Pkg.Index;
-    ThisTargetPtr = (ACPI_OPERAND_OBJECT **)
-                        &State->Pkg.DestObject->Package.Elements[ThisIndex];
-
-    switch (ObjectType)
-    {
-    case ACPI_COPY_TYPE_SIMPLE:
-
-        /* A null source object indicates a (legal) null package element */
-
-        if (SourceObject)
-        {
-            /*
-             * This is a simple object, just copy it
-             */
-            TargetObject = AcpiUtCreateInternalObject (
-                                SourceObject->Common.Type);
-            if (!TargetObject)
-            {
-                return (AE_NO_MEMORY);
-            }
-
-            Status = AcpiUtCopySimpleObject (SourceObject, TargetObject);
-            if (ACPI_FAILURE (Status))
-            {
-                goto ErrorExit;
-            }
-
-            *ThisTargetPtr = TargetObject;
-        }
-        else
-        {
-            /* Pass through a null element */
-
-            *ThisTargetPtr = NULL;
-        }
-        break;
-
-
-    case ACPI_COPY_TYPE_PACKAGE:
-
-        /*
-         * This object is a package - go down another nesting level
-         * Create and build the package object
-         */
-        TargetObject = AcpiUtCreatePackageObject (SourceObject->Package.Count);
-        if (!TargetObject)
-        {
-            return (AE_NO_MEMORY);
-        }
-
-        TargetObject->Common.Flags = SourceObject->Common.Flags;
-
-        /* Pass the new package object back to the package walk routine */
-
-        State->Pkg.ThisTargetObj = TargetObject;
-
-        /* Store the object pointer in the parent package object */
-
-        *ThisTargetPtr = TargetObject;
-        break;
-
-
-    default:
-        return (AE_BAD_PARAMETER);
-    }
-
-    return (Status);
-
-ErrorExit:
-    AcpiUtRemoveReference (TargetObject);
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyIpackageToIpackage
- *
- * PARAMETERS:  SourceObj       - Pointer to the source package object
- *              DestObj         - Where the internal object is returned
- *              WalkState       - Current Walk state descriptor
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to copy an internal package object
- *              into another internal package object.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIpackageToIpackage (
-    ACPI_OPERAND_OBJECT     *SourceObj,
-    ACPI_OPERAND_OBJECT     *DestObj,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (UtCopyIpackageToIpackage);
-
-
-    DestObj->Common.Type    = SourceObj->Common.Type;
-    DestObj->Common.Flags   = SourceObj->Common.Flags;
-    DestObj->Package.Count  = SourceObj->Package.Count;
-
-    /*
-     * Create the object array and walk the source package tree
-     */
-    DestObj->Package.Elements = ACPI_ALLOCATE_ZEROED (
-                                    ((ACPI_SIZE) SourceObj->Package.Count + 1) *
-                                    sizeof (void *));
-    if (!DestObj->Package.Elements)
-    {
-        ACPI_ERROR ((AE_INFO, "Package allocation failure"));
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /*
-     * Copy the package element-by-element by walking the package "tree".
-     * This handles nested packages of arbitrary depth.
-     */
-    Status = AcpiUtWalkPackageTree (SourceObj, DestObj,
-                AcpiUtCopyIelementToIelement, WalkState);
-    if (ACPI_FAILURE (Status))
-    {
-        /* On failure, delete the destination package object */
-
-        AcpiUtRemoveReference (DestObj);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyIobjectToIobject
- *
- * PARAMETERS:  SourceDesc          - The internal object to be copied
- *              DestDesc            - Where the copied object is returned
- *              WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Copy an internal object to a new internal object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCopyIobjectToIobject (
-    ACPI_OPERAND_OBJECT     *SourceDesc,
-    ACPI_OPERAND_OBJECT     **DestDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (UtCopyIobjectToIobject);
-
-
-    /* Create the top level object */
-
-    *DestDesc = AcpiUtCreateInternalObject (SourceDesc->Common.Type);
-    if (!*DestDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Copy the object and possible subobjects */
-
-    if (SourceDesc->Common.Type == ACPI_TYPE_PACKAGE)
-    {
-        Status = AcpiUtCopyIpackageToIpackage (SourceDesc, *DestDesc,
-                        WalkState);
-    }
-    else
-    {
-        Status = AcpiUtCopySimpleObject (SourceDesc, *DestDesc);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utdebug.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utdebug.c
deleted file mode 100644 (file)
index 3901b07..0000000
+++ /dev/null
@@ -1,814 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utdebug - Debug print routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTDEBUG_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utdebug")
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-
-static ACPI_THREAD_ID       AcpiGbl_PrevThreadId = (ACPI_THREAD_ID) 0xFFFFFFFF;
-static char                 *AcpiGbl_FnEntryStr = "----Entry";
-static char                 *AcpiGbl_FnExitStr  = "----Exit-";
-
-/* Local prototypes */
-
-static const char *
-AcpiUtTrimFunctionName (
-    const char              *FunctionName);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtInitStackPtrTrace
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Save the current CPU stack pointer at subsystem startup
- *
- ******************************************************************************/
-
-void
-AcpiUtInitStackPtrTrace (
-    void)
-{
-    ACPI_SIZE               CurrentSp;
-
-
-    AcpiGbl_EntryStackPointer = &CurrentSp;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtTrackStackPtr
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Save the current CPU stack pointer
- *
- ******************************************************************************/
-
-void
-AcpiUtTrackStackPtr (
-    void)
-{
-    ACPI_SIZE               CurrentSp;
-
-
-    if (&CurrentSp < AcpiGbl_LowestStackPointer)
-    {
-        AcpiGbl_LowestStackPointer = &CurrentSp;
-    }
-
-    if (AcpiGbl_NestingLevel > AcpiGbl_DeepestNesting)
-    {
-        AcpiGbl_DeepestNesting = AcpiGbl_NestingLevel;
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtTrimFunctionName
- *
- * PARAMETERS:  FunctionName        - Ascii string containing a procedure name
- *
- * RETURN:      Updated pointer to the function name
- *
- * DESCRIPTION: Remove the "Acpi" prefix from the function name, if present.
- *              This allows compiler macros such as __FUNCTION__ to be used
- *              with no change to the debug output.
- *
- ******************************************************************************/
-
-static const char *
-AcpiUtTrimFunctionName (
-    const char              *FunctionName)
-{
-
-    /* All Function names are longer than 4 chars, check is safe */
-
-    if (*(ACPI_CAST_PTR (UINT32, FunctionName)) == ACPI_PREFIX_MIXED)
-    {
-        /* This is the case where the original source has not been modified */
-
-        return (FunctionName + 4);
-    }
-
-    if (*(ACPI_CAST_PTR (UINT32, FunctionName)) == ACPI_PREFIX_LOWER)
-    {
-        /* This is the case where the source has been 'linuxized' */
-
-        return (FunctionName + 5);
-    }
-
-    return (FunctionName);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDebugPrint
- *
- * PARAMETERS:  RequestedDebugLevel - Requested debug print level
- *              LineNumber          - Caller's line number (for error output)
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *              Format              - Printf format field
- *              ...                 - Optional printf arguments
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print error message with prefix consisting of the module name,
- *              line number, and component ID.
- *
- ******************************************************************************/
-
-void  ACPI_INTERNAL_VAR_XFACE
-AcpiDebugPrint (
-    UINT32                  RequestedDebugLevel,
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId,
-    const char              *Format,
-    ...)
-{
-    ACPI_THREAD_ID          ThreadId;
-    va_list                 args;
-
-
-    /*
-     * Stay silent if the debug level or component ID is disabled
-     */
-    if (!(RequestedDebugLevel & AcpiDbgLevel) ||
-        !(ComponentId & AcpiDbgLayer))
-    {
-        return;
-    }
-
-    /*
-     * Thread tracking and context switch notification
-     */
-    ThreadId = AcpiOsGetThreadId ();
-    if (ThreadId != AcpiGbl_PrevThreadId)
-    {
-        if (ACPI_LV_THREADS & AcpiDbgLevel)
-        {
-            AcpiOsPrintf (
-                "\n**** Context Switch from TID %p to TID %p ****\n\n",
-                ACPI_CAST_PTR (void, AcpiGbl_PrevThreadId),
-                ACPI_CAST_PTR (void, ThreadId));
-        }
-
-        AcpiGbl_PrevThreadId = ThreadId;
-    }
-
-    /*
-     * Display the module name, current line number, thread ID (if requested),
-     * current procedure nesting level, and the current procedure name
-     */
-    AcpiOsPrintf ("%8s-%04ld ", ModuleName, LineNumber);
-
-    if (ACPI_LV_THREADS & AcpiDbgLevel)
-    {
-        AcpiOsPrintf ("[%p] ", ACPI_CAST_PTR (void, ThreadId));
-    }
-
-    AcpiOsPrintf ("[%02ld] %-22.22s: ",
-        AcpiGbl_NestingLevel, AcpiUtTrimFunctionName (FunctionName));
-
-    va_start (args, Format);
-    AcpiOsVprintf (Format, args);
-    va_end (args);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDebugPrint)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiDebugPrintRaw
- *
- * PARAMETERS:  RequestedDebugLevel - Requested debug print level
- *              LineNumber          - Caller's line number
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *              Format              - Printf format field
- *              ...                 - Optional printf arguments
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print message with no headers.  Has same interface as
- *              DebugPrint so that the same macros can be used.
- *
- ******************************************************************************/
-
-void  ACPI_INTERNAL_VAR_XFACE
-AcpiDebugPrintRaw (
-    UINT32                  RequestedDebugLevel,
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId,
-    const char              *Format,
-    ...)
-{
-    va_list                 args;
-
-
-    if (!(RequestedDebugLevel & AcpiDbgLevel) ||
-        !(ComponentId & AcpiDbgLayer))
-    {
-        return;
-    }
-
-    va_start (args, Format);
-    AcpiOsVprintf (Format, args);
-    va_end (args);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDebugPrintRaw)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtTrace
- *
- * PARAMETERS:  LineNumber          - Caller's line number
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *
- * RETURN:      None
- *
- * DESCRIPTION: Function entry trace.  Prints only if TRACE_FUNCTIONS bit is
- *              set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtTrace (
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId)
-{
-
-    AcpiGbl_NestingLevel++;
-    AcpiUtTrackStackPtr ();
-
-    AcpiDebugPrint (ACPI_LV_FUNCTIONS,
-        LineNumber, FunctionName, ModuleName, ComponentId,
-        "%s\n", AcpiGbl_FnEntryStr);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtTrace)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtTracePtr
- *
- * PARAMETERS:  LineNumber          - Caller's line number
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *              Pointer             - Pointer to display
- *
- * RETURN:      None
- *
- * DESCRIPTION: Function entry trace.  Prints only if TRACE_FUNCTIONS bit is
- *              set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtTracePtr (
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId,
-    void                    *Pointer)
-{
-    AcpiGbl_NestingLevel++;
-    AcpiUtTrackStackPtr ();
-
-    AcpiDebugPrint (ACPI_LV_FUNCTIONS,
-        LineNumber, FunctionName, ModuleName, ComponentId,
-        "%s %p\n", AcpiGbl_FnEntryStr, Pointer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtTraceStr
- *
- * PARAMETERS:  LineNumber          - Caller's line number
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *              String              - Additional string to display
- *
- * RETURN:      None
- *
- * DESCRIPTION: Function entry trace.  Prints only if TRACE_FUNCTIONS bit is
- *              set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtTraceStr (
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId,
-    char                    *String)
-{
-
-    AcpiGbl_NestingLevel++;
-    AcpiUtTrackStackPtr ();
-
-    AcpiDebugPrint (ACPI_LV_FUNCTIONS,
-        LineNumber, FunctionName, ModuleName, ComponentId,
-        "%s %s\n", AcpiGbl_FnEntryStr, String);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtTraceU32
- *
- * PARAMETERS:  LineNumber          - Caller's line number
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *              Integer             - Integer to display
- *
- * RETURN:      None
- *
- * DESCRIPTION: Function entry trace.  Prints only if TRACE_FUNCTIONS bit is
- *              set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtTraceU32 (
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId,
-    UINT32                  Integer)
-{
-
-    AcpiGbl_NestingLevel++;
-    AcpiUtTrackStackPtr ();
-
-    AcpiDebugPrint (ACPI_LV_FUNCTIONS,
-        LineNumber, FunctionName, ModuleName, ComponentId,
-        "%s %08X\n", AcpiGbl_FnEntryStr, Integer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtExit
- *
- * PARAMETERS:  LineNumber          - Caller's line number
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *
- * RETURN:      None
- *
- * DESCRIPTION: Function exit trace.  Prints only if TRACE_FUNCTIONS bit is
- *              set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtExit (
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId)
-{
-
-    AcpiDebugPrint (ACPI_LV_FUNCTIONS,
-        LineNumber, FunctionName, ModuleName, ComponentId,
-        "%s\n", AcpiGbl_FnExitStr);
-
-    AcpiGbl_NestingLevel--;
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtExit)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStatusExit
- *
- * PARAMETERS:  LineNumber          - Caller's line number
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *              Status              - Exit status code
- *
- * RETURN:      None
- *
- * DESCRIPTION: Function exit trace.  Prints only if TRACE_FUNCTIONS bit is
- *              set in DebugLevel.  Prints exit status also.
- *
- ******************************************************************************/
-
-void
-AcpiUtStatusExit (
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId,
-    ACPI_STATUS             Status)
-{
-
-    if (ACPI_SUCCESS (Status))
-    {
-        AcpiDebugPrint (ACPI_LV_FUNCTIONS,
-            LineNumber, FunctionName, ModuleName, ComponentId,
-            "%s %s\n", AcpiGbl_FnExitStr,
-            AcpiFormatException (Status));
-    }
-    else
-    {
-        AcpiDebugPrint (ACPI_LV_FUNCTIONS,
-            LineNumber, FunctionName, ModuleName, ComponentId,
-            "%s ****Exception****: %s\n", AcpiGbl_FnExitStr,
-            AcpiFormatException (Status));
-    }
-
-    AcpiGbl_NestingLevel--;
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtStatusExit)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtValueExit
- *
- * PARAMETERS:  LineNumber          - Caller's line number
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *              Value               - Value to be printed with exit msg
- *
- * RETURN:      None
- *
- * DESCRIPTION: Function exit trace.  Prints only if TRACE_FUNCTIONS bit is
- *              set in DebugLevel.  Prints exit value also.
- *
- ******************************************************************************/
-
-void
-AcpiUtValueExit (
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId,
-    ACPI_INTEGER            Value)
-{
-
-    AcpiDebugPrint (ACPI_LV_FUNCTIONS,
-        LineNumber, FunctionName, ModuleName, ComponentId,
-        "%s %8.8X%8.8X\n", AcpiGbl_FnExitStr,
-        ACPI_FORMAT_UINT64 (Value));
-
-    AcpiGbl_NestingLevel--;
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtValueExit)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtPtrExit
- *
- * PARAMETERS:  LineNumber          - Caller's line number
- *              FunctionName        - Caller's procedure name
- *              ModuleName          - Caller's module name
- *              ComponentId         - Caller's component ID
- *              Ptr                 - Pointer to display
- *
- * RETURN:      None
- *
- * DESCRIPTION: Function exit trace.  Prints only if TRACE_FUNCTIONS bit is
- *              set in DebugLevel.  Prints exit value also.
- *
- ******************************************************************************/
-
-void
-AcpiUtPtrExit (
-    UINT32                  LineNumber,
-    const char              *FunctionName,
-    const char              *ModuleName,
-    UINT32                  ComponentId,
-    UINT8                   *Ptr)
-{
-
-    AcpiDebugPrint (ACPI_LV_FUNCTIONS,
-        LineNumber, FunctionName, ModuleName, ComponentId,
-        "%s %p\n", AcpiGbl_FnExitStr, Ptr);
-
-    AcpiGbl_NestingLevel--;
-}
-
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDumpBuffer
- *
- * PARAMETERS:  Buffer              - Buffer to dump
- *              Count               - Amount to dump, in bytes
- *              Display             - BYTE, WORD, DWORD, or QWORD display
- *              ComponentID         - Caller's component ID
- *
- * RETURN:      None
- *
- * DESCRIPTION: Generic dump buffer in both hex and ascii.
- *
- ******************************************************************************/
-
-void
-AcpiUtDumpBuffer2 (
-    UINT8                   *Buffer,
-    UINT32                  Count,
-    UINT32                  Display)
-{
-    UINT32                  i = 0;
-    UINT32                  j;
-    UINT32                  Temp32;
-    UINT8                   BufChar;
-
-
-    if (!Buffer)
-    {
-        AcpiOsPrintf ("Null Buffer Pointer in DumpBuffer!\n");
-        return;
-    }
-
-    if ((Count < 4) || (Count & 0x01))
-    {
-        Display = DB_BYTE_DISPLAY;
-    }
-
-    /* Nasty little dump buffer routine! */
-
-    while (i < Count)
-    {
-        /* Print current offset */
-
-        AcpiOsPrintf ("%6.4X: ", i);
-
-        /* Print 16 hex chars */
-
-        for (j = 0; j < 16;)
-        {
-            if (i + j >= Count)
-            {
-                /* Dump fill spaces */
-
-                AcpiOsPrintf ("%*s", ((Display * 2) + 1), " ");
-                j += Display;
-                continue;
-            }
-
-            switch (Display)
-            {
-            case DB_BYTE_DISPLAY:
-            default:    /* Default is BYTE display */
-
-                AcpiOsPrintf ("%02X ", Buffer[(ACPI_SIZE) i + j]);
-                break;
-
-
-            case DB_WORD_DISPLAY:
-
-                ACPI_MOVE_16_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
-                AcpiOsPrintf ("%04X ", Temp32);
-                break;
-
-
-            case DB_DWORD_DISPLAY:
-
-                ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
-                AcpiOsPrintf ("%08X ", Temp32);
-                break;
-
-
-            case DB_QWORD_DISPLAY:
-
-                ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
-                AcpiOsPrintf ("%08X", Temp32);
-
-                ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j + 4]);
-                AcpiOsPrintf ("%08X ", Temp32);
-                break;
-            }
-
-            j += Display;
-        }
-
-        /*
-         * Print the ASCII equivalent characters but watch out for the bad
-         * unprintable ones (printable chars are 0x20 through 0x7E)
-         */
-        AcpiOsPrintf (" ");
-        for (j = 0; j < 16; j++)
-        {
-            if (i + j >= Count)
-            {
-                AcpiOsPrintf ("\n");
-                return;
-            }
-
-            BufChar = Buffer[(ACPI_SIZE) i + j];
-            if (ACPI_IS_PRINT (BufChar))
-            {
-                AcpiOsPrintf ("%c", BufChar);
-            }
-            else
-            {
-                AcpiOsPrintf (".");
-            }
-        }
-
-        /* Done with that line. */
-
-        AcpiOsPrintf ("\n");
-        i += 16;
-    }
-
-    return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDumpBuffer
- *
- * PARAMETERS:  Buffer              - Buffer to dump
- *              Count               - Amount to dump, in bytes
- *              Display             - BYTE, WORD, DWORD, or QWORD display
- *              ComponentID         - Caller's component ID
- *
- * RETURN:      None
- *
- * DESCRIPTION: Generic dump buffer in both hex and ascii.
- *
- ******************************************************************************/
-
-void
-AcpiUtDumpBuffer (
-    UINT8                   *Buffer,
-    UINT32                  Count,
-    UINT32                  Display,
-    UINT32                  ComponentId)
-{
-
-    /* Only dump the buffer if tracing is enabled */
-
-    if (!((ACPI_LV_TABLES & AcpiDbgLevel) &&
-        (ComponentId & AcpiDbgLayer)))
-    {
-        return;
-    }
-
-    AcpiUtDumpBuffer2 (Buffer, Count, Display);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utdelete.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utdelete.c
deleted file mode 100644 (file)
index bf30aee..0000000
+++ /dev/null
@@ -1,828 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utdelete - object deletion and reference count utilities
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTDELETE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-#include "acnamesp.h"
-#include "acevents.h"
-
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utdelete")
-
-/* Local prototypes */
-
-static void
-AcpiUtDeleteInternalObj (
-    ACPI_OPERAND_OBJECT     *Object);
-
-static void
-AcpiUtUpdateRefCount (
-    ACPI_OPERAND_OBJECT     *Object,
-    UINT32                  Action);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDeleteInternalObj
- *
- * PARAMETERS:  Object         - Object to be deleted
- *
- * RETURN:      None
- *
- * DESCRIPTION: Low level object deletion, after reference counts have been
- *              updated (All reference counts, including sub-objects!)
- *
- ******************************************************************************/
-
-static void
-AcpiUtDeleteInternalObj (
-    ACPI_OPERAND_OBJECT     *Object)
-{
-    void                    *ObjPointer = NULL;
-    ACPI_OPERAND_OBJECT     *HandlerDesc;
-    ACPI_OPERAND_OBJECT     *SecondDesc;
-    ACPI_OPERAND_OBJECT     *NextDesc;
-    ACPI_OPERAND_OBJECT     **LastObjPtr;
-
-
-    ACPI_FUNCTION_TRACE_PTR (UtDeleteInternalObj, Object);
-
-
-    if (!Object)
-    {
-        return_VOID;
-    }
-
-    /*
-     * Must delete or free any pointers within the object that are not
-     * actual ACPI objects (for example, a raw buffer pointer).
-     */
-    switch (Object->Common.Type)
-    {
-    case ACPI_TYPE_STRING:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "**** String %p, ptr %p\n",
-            Object, Object->String.Pointer));
-
-        /* Free the actual string buffer */
-
-        if (!(Object->Common.Flags & AOPOBJ_STATIC_POINTER))
-        {
-            /* But only if it is NOT a pointer into an ACPI table */
-
-            ObjPointer = Object->String.Pointer;
-        }
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "**** Buffer %p, ptr %p\n",
-            Object, Object->Buffer.Pointer));
-
-        /* Free the actual buffer */
-
-        if (!(Object->Common.Flags & AOPOBJ_STATIC_POINTER))
-        {
-            /* But only if it is NOT a pointer into an ACPI table */
-
-            ObjPointer = Object->Buffer.Pointer;
-        }
-        break;
-
-
-    case ACPI_TYPE_PACKAGE:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, " **** Package of count %X\n",
-            Object->Package.Count));
-
-        /*
-         * Elements of the package are not handled here, they are deleted
-         * separately
-         */
-
-        /* Free the (variable length) element pointer array */
-
-        ObjPointer = Object->Package.Elements;
-        break;
-
-
-    /*
-     * These objects have a possible list of notify handlers.
-     * Device object also may have a GPE block.
-     */
-    case ACPI_TYPE_DEVICE:
-
-        if (Object->Device.GpeBlock)
-        {
-            (void) AcpiEvDeleteGpeBlock (Object->Device.GpeBlock);
-        }
-
-        /*lint -fallthrough */
-
-    case ACPI_TYPE_PROCESSOR:
-    case ACPI_TYPE_THERMAL:
-
-        /* Walk the notify handler list for this object */
-
-        HandlerDesc = Object->CommonNotify.Handler;
-        while (HandlerDesc)
-        {
-            NextDesc = HandlerDesc->AddressSpace.Next;
-            AcpiUtRemoveReference (HandlerDesc);
-            HandlerDesc = NextDesc;
-        }
-        break;
-
-
-    case ACPI_TYPE_MUTEX:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-            "***** Mutex %p, OS Mutex %p\n",
-            Object, Object->Mutex.OsMutex));
-
-        if (Object == AcpiGbl_GlobalLockMutex)
-        {
-            /* Global Lock has extra semaphore */
-
-            (void) AcpiOsDeleteSemaphore (AcpiGbl_GlobalLockSemaphore);
-            AcpiGbl_GlobalLockSemaphore = NULL;
-
-            AcpiOsDeleteMutex (Object->Mutex.OsMutex);
-            AcpiGbl_GlobalLockMutex = NULL;
-        }
-        else
-        {
-            AcpiExUnlinkMutex (Object);
-            AcpiOsDeleteMutex (Object->Mutex.OsMutex);
-        }
-        break;
-
-
-    case ACPI_TYPE_EVENT:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-            "***** Event %p, OS Semaphore %p\n",
-            Object, Object->Event.OsSemaphore));
-
-        (void) AcpiOsDeleteSemaphore (Object->Event.OsSemaphore);
-        Object->Event.OsSemaphore = NULL;
-        break;
-
-
-    case ACPI_TYPE_METHOD:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-            "***** Method %p\n", Object));
-
-        /* Delete the method mutex if it exists */
-
-        if (Object->Method.Mutex)
-        {
-            AcpiOsDeleteMutex (Object->Method.Mutex->Mutex.OsMutex);
-            AcpiUtDeleteObjectDesc (Object->Method.Mutex);
-            Object->Method.Mutex = NULL;
-        }
-        break;
-
-
-    case ACPI_TYPE_REGION:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-            "***** Region %p\n", Object));
-
-        SecondDesc = AcpiNsGetSecondaryObject (Object);
-        if (SecondDesc)
-        {
-            /*
-             * Free the RegionContext if and only if the handler is one of the
-             * default handlers -- and therefore, we created the context object
-             * locally, it was not created by an external caller.
-             */
-            HandlerDesc = Object->Region.Handler;
-            if (HandlerDesc)
-            {
-                NextDesc = HandlerDesc->AddressSpace.RegionList;
-                LastObjPtr = &HandlerDesc->AddressSpace.RegionList;
-
-                /* Remove the region object from the handler's list */
-
-                while (NextDesc)
-                {
-                    if (NextDesc == Object)
-                    {
-                        *LastObjPtr = NextDesc->Region.Next;
-                        break;
-                    }
-
-                    /* Walk the linked list of handler */
-
-                    LastObjPtr = &NextDesc->Region.Next;
-                    NextDesc = NextDesc->Region.Next;
-                }
-
-                if (HandlerDesc->AddressSpace.HandlerFlags &
-                    ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)
-                {
-                    /* Deactivate region and free region context */
-
-                    if (HandlerDesc->AddressSpace.Setup)
-                    {
-                        (void) HandlerDesc->AddressSpace.Setup (Object,
-                            ACPI_REGION_DEACTIVATE,
-                            HandlerDesc->AddressSpace.Context,
-                            &SecondDesc->Extra.RegionContext);
-                    }
-                }
-
-                AcpiUtRemoveReference (HandlerDesc);
-            }
-
-            /* Now we can free the Extra object */
-
-            AcpiUtDeleteObjectDesc (SecondDesc);
-        }
-        break;
-
-
-    case ACPI_TYPE_BUFFER_FIELD:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-            "***** Buffer Field %p\n", Object));
-
-        SecondDesc = AcpiNsGetSecondaryObject (Object);
-        if (SecondDesc)
-        {
-            AcpiUtDeleteObjectDesc (SecondDesc);
-        }
-        break;
-
-
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-            "***** Bank Field %p\n", Object));
-
-        SecondDesc = AcpiNsGetSecondaryObject (Object);
-        if (SecondDesc)
-        {
-            AcpiUtDeleteObjectDesc (SecondDesc);
-        }
-        break;
-
-
-    default:
-        break;
-    }
-
-    /* Free any allocated memory (pointer within the object) found above */
-
-    if (ObjPointer)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Deleting Object Subptr %p\n",
-            ObjPointer));
-        ACPI_FREE (ObjPointer);
-    }
-
-    /* Now the object can be safely deleted */
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Deleting Object %p [%s]\n",
-        Object, AcpiUtGetObjectTypeName (Object)));
-
-    AcpiUtDeleteObjectDesc (Object);
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDeleteInternalObjectList
- *
- * PARAMETERS:  ObjList         - Pointer to the list to be deleted
- *
- * RETURN:      None
- *
- * DESCRIPTION: This function deletes an internal object list, including both
- *              simple objects and package objects
- *
- ******************************************************************************/
-
-void
-AcpiUtDeleteInternalObjectList (
-    ACPI_OPERAND_OBJECT     **ObjList)
-{
-    ACPI_OPERAND_OBJECT     **InternalObj;
-
-
-    ACPI_FUNCTION_TRACE (UtDeleteInternalObjectList);
-
-
-    /* Walk the null-terminated internal list */
-
-    for (InternalObj = ObjList; *InternalObj; InternalObj++)
-    {
-        AcpiUtRemoveReference (*InternalObj);
-    }
-
-    /* Free the combined parameter pointer list and object array */
-
-    ACPI_FREE (ObjList);
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtUpdateRefCount
- *
- * PARAMETERS:  Object          - Object whose ref count is to be updated
- *              Action          - What to do
- *
- * RETURN:      New ref count
- *
- * DESCRIPTION: Modify the ref count and return it.
- *
- ******************************************************************************/
-
-static void
-AcpiUtUpdateRefCount (
-    ACPI_OPERAND_OBJECT     *Object,
-    UINT32                  Action)
-{
-    UINT16                  Count;
-    UINT16                  NewCount;
-
-
-    ACPI_FUNCTION_NAME (UtUpdateRefCount);
-
-
-    if (!Object)
-    {
-        return;
-    }
-
-    Count = Object->Common.ReferenceCount;
-    NewCount = Count;
-
-    /*
-     * Perform the reference count action (increment, decrement, force delete)
-     */
-    switch (Action)
-    {
-    case REF_INCREMENT:
-
-        NewCount++;
-        Object->Common.ReferenceCount = NewCount;
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-            "Obj %p Refs=%X, [Incremented]\n",
-            Object, NewCount));
-        break;
-
-    case REF_DECREMENT:
-
-        if (Count < 1)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-                "Obj %p Refs=%X, can't decrement! (Set to 0)\n",
-                Object, NewCount));
-
-            NewCount = 0;
-        }
-        else
-        {
-            NewCount--;
-
-            ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-                "Obj %p Refs=%X, [Decremented]\n",
-                Object, NewCount));
-        }
-
-        if (Object->Common.Type == ACPI_TYPE_METHOD)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-                "Method Obj %p Refs=%X, [Decremented]\n", Object, NewCount));
-        }
-
-        Object->Common.ReferenceCount = NewCount;
-        if (NewCount == 0)
-        {
-            AcpiUtDeleteInternalObj (Object);
-        }
-        break;
-
-    case REF_FORCE_DELETE:
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-            "Obj %p Refs=%X, Force delete! (Set to 0)\n", Object, Count));
-
-        NewCount = 0;
-        Object->Common.ReferenceCount = NewCount;
-        AcpiUtDeleteInternalObj (Object);
-        break;
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Unknown action (%X)", Action));
-        break;
-    }
-
-    /*
-     * Sanity check the reference count, for debug purposes only.
-     * (A deleted object will have a huge reference count)
-     */
-    if (Count > ACPI_MAX_REFERENCE_COUNT)
-    {
-        ACPI_WARNING ((AE_INFO,
-            "Large Reference Count (%X) in object %p", Count, Object));
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtUpdateObjectReference
- *
- * PARAMETERS:  Object              - Increment ref count for this object
- *                                    and all sub-objects
- *              Action              - Either REF_INCREMENT or REF_DECREMENT or
- *                                    REF_FORCE_DELETE
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Increment the object reference count
- *
- * Object references are incremented when:
- * 1) An object is attached to a Node (namespace object)
- * 2) An object is copied (all subobjects must be incremented)
- *
- * Object references are decremented when:
- * 1) An object is detached from an Node
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtUpdateObjectReference (
-    ACPI_OPERAND_OBJECT     *Object,
-    UINT16                  Action)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_GENERIC_STATE      *StateList = NULL;
-    ACPI_OPERAND_OBJECT     *NextObject = NULL;
-    ACPI_GENERIC_STATE      *State;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE_PTR (UtUpdateObjectReference, Object);
-
-
-    while (Object)
-    {
-        /* Make sure that this isn't a namespace handle */
-
-        if (ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_NAMED)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-                "Object %p is NS handle\n", Object));
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        /*
-         * All sub-objects must have their reference count incremented also.
-         * Different object types have different subobjects.
-         */
-        switch (Object->Common.Type)
-        {
-        case ACPI_TYPE_DEVICE:
-        case ACPI_TYPE_PROCESSOR:
-        case ACPI_TYPE_POWER:
-        case ACPI_TYPE_THERMAL:
-
-            /* Update the notify objects for these types (if present) */
-
-            AcpiUtUpdateRefCount (Object->CommonNotify.SystemNotify, Action);
-            AcpiUtUpdateRefCount (Object->CommonNotify.DeviceNotify, Action);
-            break;
-
-        case ACPI_TYPE_PACKAGE:
-            /*
-             * We must update all the sub-objects of the package,
-             * each of whom may have their own sub-objects.
-             */
-            for (i = 0; i < Object->Package.Count; i++)
-            {
-                /*
-                 * Push each element onto the stack for later processing.
-                 * Note: There can be null elements within the package,
-                 * these are simply ignored
-                 */
-                Status = AcpiUtCreateUpdateStateAndPush (
-                            Object->Package.Elements[i], Action, &StateList);
-                if (ACPI_FAILURE (Status))
-                {
-                    goto ErrorExit;
-                }
-            }
-            break;
-
-        case ACPI_TYPE_BUFFER_FIELD:
-
-            NextObject = Object->BufferField.BufferObj;
-            break;
-
-        case ACPI_TYPE_LOCAL_REGION_FIELD:
-
-            NextObject = Object->Field.RegionObj;
-            break;
-
-        case ACPI_TYPE_LOCAL_BANK_FIELD:
-
-            NextObject = Object->BankField.BankObj;
-            Status = AcpiUtCreateUpdateStateAndPush (
-                        Object->BankField.RegionObj, Action, &StateList);
-            if (ACPI_FAILURE (Status))
-            {
-                goto ErrorExit;
-            }
-            break;
-
-        case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-            NextObject = Object->IndexField.IndexObj;
-            Status = AcpiUtCreateUpdateStateAndPush (
-                        Object->IndexField.DataObj, Action, &StateList);
-            if (ACPI_FAILURE (Status))
-            {
-                goto ErrorExit;
-            }
-            break;
-
-        case ACPI_TYPE_LOCAL_REFERENCE:
-            /*
-             * The target of an Index (a package, string, or buffer) or a named
-             * reference must track changes to the ref count of the index or
-             * target object.
-             */
-            if ((Object->Reference.Class == ACPI_REFCLASS_INDEX) ||
-                (Object->Reference.Class== ACPI_REFCLASS_NAME))
-            {
-                NextObject = Object->Reference.Object;
-            }
-            break;
-
-        case ACPI_TYPE_REGION:
-        default:
-            break; /* No subobjects for all other types */
-        }
-
-        /*
-         * Now we can update the count in the main object. This can only
-         * happen after we update the sub-objects in case this causes the
-         * main object to be deleted.
-         */
-        AcpiUtUpdateRefCount (Object, Action);
-        Object = NULL;
-
-        /* Move on to the next object to be updated */
-
-        if (NextObject)
-        {
-            Object = NextObject;
-            NextObject = NULL;
-        }
-        else if (StateList)
-        {
-            State = AcpiUtPopGenericState (&StateList);
-            Object = State->Update.Object;
-            AcpiUtDeleteGenericState (State);
-        }
-    }
-
-    return_ACPI_STATUS (AE_OK);
-
-
-ErrorExit:
-
-    ACPI_EXCEPTION ((AE_INFO, Status,
-        "Could not update object reference count"));
-
-    /* Free any stacked Update State objects */
-
-    while (StateList)
-    {
-        State = AcpiUtPopGenericState (&StateList);
-        AcpiUtDeleteGenericState (State);
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAddReference
- *
- * PARAMETERS:  Object          - Object whose reference count is to be
- *                                incremented
- *
- * RETURN:      None
- *
- * DESCRIPTION: Add one reference to an ACPI object
- *
- ******************************************************************************/
-
-void
-AcpiUtAddReference (
-    ACPI_OPERAND_OBJECT     *Object)
-{
-
-    ACPI_FUNCTION_TRACE_PTR (UtAddReference, Object);
-
-
-    /* Ensure that we have a valid object */
-
-    if (!AcpiUtValidInternalObject (Object))
-    {
-        return_VOID;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-        "Obj %p Current Refs=%X [To Be Incremented]\n",
-        Object, Object->Common.ReferenceCount));
-
-    /* Increment the reference count */
-
-    (void) AcpiUtUpdateObjectReference (Object, REF_INCREMENT);
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtRemoveReference
- *
- * PARAMETERS:  Object         - Object whose ref count will be decremented
- *
- * RETURN:      None
- *
- * DESCRIPTION: Decrement the reference count of an ACPI internal object
- *
- ******************************************************************************/
-
-void
-AcpiUtRemoveReference (
-    ACPI_OPERAND_OBJECT     *Object)
-{
-
-    ACPI_FUNCTION_TRACE_PTR (UtRemoveReference, Object);
-
-
-    /*
-     * Allow a NULL pointer to be passed in, just ignore it. This saves
-     * each caller from having to check. Also, ignore NS nodes.
-     *
-     */
-    if (!Object ||
-        (ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_NAMED))
-
-    {
-        return_VOID;
-    }
-
-    /* Ensure that we have a valid object */
-
-    if (!AcpiUtValidInternalObject (Object))
-    {
-        return_VOID;
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
-        "Obj %p Current Refs=%X [To Be Decremented]\n",
-        Object, Object->Common.ReferenceCount));
-
-    /*
-     * Decrement the reference count, and only actually delete the object
-     * if the reference count becomes 0. (Must also decrement the ref count
-     * of all subobjects!)
-     */
-    (void) AcpiUtUpdateObjectReference (Object, REF_DECREMENT);
-    return_VOID;
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/uteval.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/uteval.c
deleted file mode 100644 (file)
index ecb0cf1..0000000
+++ /dev/null
@@ -1,575 +0,0 @@
-/******************************************************************************
- *
- * Module Name: uteval - Object evaluation
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTEVAL_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("uteval")
-
-
-/*
- * Strings supported by the _OSI predefined (internal) method.
- *
- * March 2009: Removed "Linux" as this host no longer wants to respond true
- * for this string. Basically, the only safe OS strings are windows-related
- * and in many or most cases represent the only test path within the
- * BIOS-provided ASL code.
- *
- * The second element of each entry is used to track the newest version of
- * Windows that the BIOS has requested.
- */
-static const ACPI_INTERFACE_INFO    AcpiInterfacesSupported[] =
-{
-    /* Operating System Vendor Strings */
-
-    {"Windows 2000",        ACPI_OSI_WIN_2000},         /* Windows 2000 */
-    {"Windows 2001",        ACPI_OSI_WIN_XP},           /* Windows XP */
-    {"Windows 2001 SP1",    ACPI_OSI_WIN_XP_SP1},       /* Windows XP SP1 */
-    {"Windows 2001.1",      ACPI_OSI_WINSRV_2003},      /* Windows Server 2003 */
-    {"Windows 2001 SP2",    ACPI_OSI_WIN_XP_SP2},       /* Windows XP SP2 */
-    {"Windows 2001.1 SP1",  ACPI_OSI_WINSRV_2003_SP1},  /* Windows Server 2003 SP1 - Added 03/2006 */
-    {"Windows 2006",        ACPI_OSI_WIN_VISTA},        /* Windows Vista - Added 03/2006 */
-    {"Windows 2006.1",      ACPI_OSI_WINSRV_2008},      /* Windows Server 2008 - Added 09/2009 */
-    {"Windows 2006 SP1",    ACPI_OSI_WIN_VISTA_SP1},    /* Windows Vista SP1 - Added 09/2009 */
-    {"Windows 2009",        ACPI_OSI_WIN_7},            /* Windows 7 and Server 2008 R2 - Added 09/2009 */
-
-    /* Feature Group Strings */
-
-    {"Extended Address Space Descriptor", 0}
-
-    /*
-     * All "optional" feature group strings (features that are implemented
-     * by the host) should be implemented in the host version of
-     * AcpiOsValidateInterface and should not be added here.
-     */
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtOsiImplementation
- *
- * PARAMETERS:  WalkState           - Current walk state
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Implementation of the _OSI predefined control method
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtOsiImplementation (
-    ACPI_WALK_STATE         *WalkState)
-{
-    ACPI_STATUS             Status;
-    ACPI_OPERAND_OBJECT     *StringDesc;
-    ACPI_OPERAND_OBJECT     *ReturnDesc;
-    UINT32                  ReturnValue;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (UtOsiImplementation);
-
-
-    /* Validate the string input argument */
-
-    StringDesc = WalkState->Arguments[0].Object;
-    if (!StringDesc || (StringDesc->Common.Type != ACPI_TYPE_STRING))
-    {
-        return_ACPI_STATUS (AE_TYPE);
-    }
-
-    /* Create a return object */
-
-    ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
-    if (!ReturnDesc)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    /* Default return value is 0, NOT SUPPORTED */
-
-    ReturnValue = 0;
-
-    /* Compare input string to static table of supported interfaces */
-
-    for (i = 0; i < ACPI_ARRAY_LENGTH (AcpiInterfacesSupported); i++)
-    {
-        if (!ACPI_STRCMP (StringDesc->String.Pointer,
-                AcpiInterfacesSupported[i].Name))
-        {
-            /*
-             * The interface is supported.
-             * Update the OsiData if necessary. We keep track of the latest
-             * version of Windows that has been requested by the BIOS.
-             */
-            if (AcpiInterfacesSupported[i].Value > AcpiGbl_OsiData)
-            {
-                AcpiGbl_OsiData = AcpiInterfacesSupported[i].Value;
-            }
-
-            ReturnValue = ACPI_UINT32_MAX;
-            goto Exit;
-        }
-    }
-
-    /*
-     * Did not match the string in the static table, call the host OSL to
-     * check for a match with one of the optional strings (such as
-     * "Module Device", "3.0 Thermal Model", etc.)
-     */
-    Status = AcpiOsValidateInterface (StringDesc->String.Pointer);
-    if (ACPI_SUCCESS (Status))
-    {
-        /* The interface is supported */
-
-        ReturnValue = ACPI_UINT32_MAX;
-    }
-
-
-Exit:
-    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INFO,
-        "ACPI: BIOS _OSI(%s) is %ssupported\n",
-        StringDesc->String.Pointer, ReturnValue == 0 ? "not " : ""));
-
-    /* Complete the return value */
-
-    ReturnDesc->Integer.Value = ReturnValue;
-    WalkState->ReturnDesc = ReturnDesc;
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtEvaluateObject
- *
- * PARAMETERS:  PrefixNode          - Starting node
- *              Path                - Path to object from starting node
- *              ExpectedReturnTypes - Bitmap of allowed return types
- *              ReturnDesc          - Where a return value is stored
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Evaluates a namespace object and verifies the type of the
- *              return object. Common code that simplifies accessing objects
- *              that have required return objects of fixed types.
- *
- *              NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtEvaluateObject (
-    ACPI_NAMESPACE_NODE     *PrefixNode,
-    char                    *Path,
-    UINT32                  ExpectedReturnBtypes,
-    ACPI_OPERAND_OBJECT     **ReturnDesc)
-{
-    ACPI_EVALUATE_INFO      *Info;
-    ACPI_STATUS             Status;
-    UINT32                  ReturnBtype;
-
-
-    ACPI_FUNCTION_TRACE (UtEvaluateObject);
-
-
-    /* Allocate the evaluation information block */
-
-    Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
-    if (!Info)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    Info->PrefixNode = PrefixNode;
-    Info->Pathname = Path;
-
-    /* Evaluate the object/method */
-
-    Status = AcpiNsEvaluate (Info);
-    if (ACPI_FAILURE (Status))
-    {
-        if (Status == AE_NOT_FOUND)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s.%s] was not found\n",
-                AcpiUtGetNodeName (PrefixNode), Path));
-        }
-        else
-        {
-            ACPI_ERROR_METHOD ("Method execution failed",
-                PrefixNode, Path, Status);
-        }
-
-        goto Cleanup;
-    }
-
-    /* Did we get a return object? */
-
-    if (!Info->ReturnObject)
-    {
-        if (ExpectedReturnBtypes)
-        {
-            ACPI_ERROR_METHOD ("No object was returned from",
-                PrefixNode, Path, AE_NOT_EXIST);
-
-            Status = AE_NOT_EXIST;
-        }
-
-        goto Cleanup;
-    }
-
-    /* Map the return object type to the bitmapped type */
-
-    switch ((Info->ReturnObject)->Common.Type)
-    {
-    case ACPI_TYPE_INTEGER:
-        ReturnBtype = ACPI_BTYPE_INTEGER;
-        break;
-
-    case ACPI_TYPE_BUFFER:
-        ReturnBtype = ACPI_BTYPE_BUFFER;
-        break;
-
-    case ACPI_TYPE_STRING:
-        ReturnBtype = ACPI_BTYPE_STRING;
-        break;
-
-    case ACPI_TYPE_PACKAGE:
-        ReturnBtype = ACPI_BTYPE_PACKAGE;
-        break;
-
-    default:
-        ReturnBtype = 0;
-        break;
-    }
-
-    if ((AcpiGbl_EnableInterpreterSlack) &&
-        (!ExpectedReturnBtypes))
-    {
-        /*
-         * We received a return object, but one was not expected. This can
-         * happen frequently if the "implicit return" feature is enabled.
-         * Just delete the return object and return AE_OK.
-         */
-        AcpiUtRemoveReference (Info->ReturnObject);
-        goto Cleanup;
-    }
-
-    /* Is the return object one of the expected types? */
-
-    if (!(ExpectedReturnBtypes & ReturnBtype))
-    {
-        ACPI_ERROR_METHOD ("Return object type is incorrect",
-            PrefixNode, Path, AE_TYPE);
-
-        ACPI_ERROR ((AE_INFO,
-            "Type returned from %s was incorrect: %s, expected Btypes: %X",
-            Path, AcpiUtGetObjectTypeName (Info->ReturnObject),
-            ExpectedReturnBtypes));
-
-        /* On error exit, we must delete the return object */
-
-        AcpiUtRemoveReference (Info->ReturnObject);
-        Status = AE_TYPE;
-        goto Cleanup;
-    }
-
-    /* Object type is OK, return it */
-
-    *ReturnDesc = Info->ReturnObject;
-
-Cleanup:
-    ACPI_FREE (Info);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtEvaluateNumericObject
- *
- * PARAMETERS:  ObjectName          - Object name to be evaluated
- *              DeviceNode          - Node for the device
- *              Value               - Where the value is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Evaluates a numeric namespace object for a selected device
- *              and stores result in *Value.
- *
- *              NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtEvaluateNumericObject (
-    char                    *ObjectName,
-    ACPI_NAMESPACE_NODE     *DeviceNode,
-    ACPI_INTEGER            *Value)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtEvaluateNumericObject);
-
-
-    Status = AcpiUtEvaluateObject (DeviceNode, ObjectName,
-                ACPI_BTYPE_INTEGER, &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Get the returned Integer */
-
-    *Value = ObjDesc->Integer.Value;
-
-    /* On exit, we must delete the return object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtExecute_STA
- *
- * PARAMETERS:  DeviceNode          - Node for the device
- *              Flags               - Where the status flags are returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Executes _STA for selected device and stores results in
- *              *Flags.
- *
- *              NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecute_STA (
-    ACPI_NAMESPACE_NODE     *DeviceNode,
-    UINT32                  *Flags)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtExecute_STA);
-
-
-    Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__STA,
-                ACPI_BTYPE_INTEGER, &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        if (AE_NOT_FOUND == Status)
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                "_STA on %4.4s was not found, assuming device is present\n",
-                AcpiUtGetNodeName (DeviceNode)));
-
-            *Flags = ACPI_UINT32_MAX;
-            Status = AE_OK;
-        }
-
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Extract the status flags */
-
-    *Flags = (UINT32) ObjDesc->Integer.Value;
-
-    /* On exit, we must delete the return object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtExecutePowerMethods
- *
- * PARAMETERS:  DeviceNode          - Node for the device
- *              MethodNames         - Array of power method names
- *              MethodCount         - Number of methods to execute
- *              OutValues           - Where the power method values are returned
- *
- * RETURN:      Status, OutValues
- *
- * DESCRIPTION: Executes the specified power methods for the device and returns
- *              the result(s).
- *
- *              NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecutePowerMethods (
-    ACPI_NAMESPACE_NODE     *DeviceNode,
-    const char              **MethodNames,
-    UINT8                   MethodCount,
-    UINT8                   *OutValues)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_STATUS             Status;
-    ACPI_STATUS             FinalStatus = AE_NOT_FOUND;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (UtExecutePowerMethods);
-
-
-    for (i = 0; i < MethodCount; i++)
-    {
-        /*
-         * Execute the power method (_SxD or _SxW). The only allowable
-         * return type is an Integer.
-         */
-        Status = AcpiUtEvaluateObject (DeviceNode,
-                    ACPI_CAST_PTR (char, MethodNames[i]),
-                    ACPI_BTYPE_INTEGER, &ObjDesc);
-        if (ACPI_SUCCESS (Status))
-        {
-            OutValues[i] = (UINT8) ObjDesc->Integer.Value;
-
-            /* Delete the return object */
-
-            AcpiUtRemoveReference (ObjDesc);
-            FinalStatus = AE_OK;            /* At least one value is valid */
-            continue;
-        }
-
-        OutValues[i] = ACPI_UINT8_MAX;
-        if (Status == AE_NOT_FOUND)
-        {
-            continue; /* Ignore if not found */
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Failed %s on Device %4.4s, %s\n",
-            ACPI_CAST_PTR (char, MethodNames[i]),
-            AcpiUtGetNodeName (DeviceNode), AcpiFormatException (Status)));
-    }
-
-    return_ACPI_STATUS (FinalStatus);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utglobal.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utglobal.c
deleted file mode 100644 (file)
index b49ce35..0000000
+++ /dev/null
@@ -1,975 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utglobal - Global variables for the ACPI subsystem
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTGLOBAL_C__
-#define DEFINE_ACPI_GLOBALS
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utglobal")
-
-
-/*******************************************************************************
- *
- * Static global variable initialization.
- *
- ******************************************************************************/
-
-/*
- * We want the debug switches statically initialized so they
- * are already set when the debugger is entered.
- */
-
-/* Debug switch - level and trace mask */
-
-#ifdef ACPI_DEBUG_OUTPUT
-UINT32                      AcpiDbgLevel = ACPI_DEBUG_DEFAULT;
-#else
-UINT32                      AcpiDbgLevel = ACPI_NORMAL_DEFAULT;
-#endif
-
-/* Debug switch - layer (component) mask */
-
-UINT32                      AcpiDbgLayer = ACPI_COMPONENT_DEFAULT;
-UINT32                      AcpiGbl_NestingLevel = 0;
-
-/* Debugger globals */
-
-BOOLEAN                     AcpiGbl_DbTerminateThreads = FALSE;
-BOOLEAN                     AcpiGbl_AbortMethod = FALSE;
-BOOLEAN                     AcpiGbl_MethodExecuting = FALSE;
-
-/* System flags */
-
-UINT32                      AcpiGbl_StartupFlags = 0;
-
-/* System starts uninitialized */
-
-BOOLEAN                     AcpiGbl_Shutdown = TRUE;
-
-const char                  *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT] =
-{
-    "\\_S0_",
-    "\\_S1_",
-    "\\_S2_",
-    "\\_S3_",
-    "\\_S4_",
-    "\\_S5_"
-};
-
-const char                  *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS] =
-{
-    "_S0W",
-    "_S1W",
-    "_S2W",
-    "_S3W",
-    "_S4W"
-};
-
-const char                  *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS] =
-{
-    "_S1D",
-    "_S2D",
-    "_S3D",
-    "_S4D"
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiFormatException
- *
- * PARAMETERS:  Status       - The ACPI_STATUS code to be formatted
- *
- * RETURN:      A string containing the exception text. A valid pointer is
- *              always returned.
- *
- * DESCRIPTION: This function translates an ACPI exception into an ASCII string
- *              It is here instead of utxface.c so it is always present.
- *
- ******************************************************************************/
-
-const char *
-AcpiFormatException (
-    ACPI_STATUS             Status)
-{
-    const char              *Exception = NULL;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    Exception = AcpiUtValidateException (Status);
-    if (!Exception)
-    {
-        /* Exception code was not recognized */
-
-        ACPI_ERROR ((AE_INFO,
-            "Unknown exception code: 0x%8.8X", Status));
-
-        Exception = "UNKNOWN_STATUS_CODE";
-    }
-
-    return (ACPI_CAST_PTR (const char, Exception));
-}
-
-ACPI_EXPORT_SYMBOL (AcpiFormatException)
-
-
-/*******************************************************************************
- *
- * Namespace globals
- *
- ******************************************************************************/
-
-/*
- * Predefined ACPI Names (Built-in to the Interpreter)
- *
- * NOTES:
- * 1) _SB_ is defined to be a device to allow \_SB_._INI to be run
- *    during the initialization sequence.
- * 2) _TZ_ is defined to be a thermal zone in order to allow ASL code to
- *    perform a Notify() operation on it.
- */
-const ACPI_PREDEFINED_NAMES     AcpiGbl_PreDefinedNames[] =
-{
-    {"_GPE",    ACPI_TYPE_LOCAL_SCOPE,      NULL},
-    {"_PR_",    ACPI_TYPE_LOCAL_SCOPE,      NULL},
-    {"_SB_",    ACPI_TYPE_DEVICE,           NULL},
-    {"_SI_",    ACPI_TYPE_LOCAL_SCOPE,      NULL},
-    {"_TZ_",    ACPI_TYPE_THERMAL,          NULL},
-    {"_REV",    ACPI_TYPE_INTEGER,          (char *) ACPI_CA_SUPPORT_LEVEL},
-    {"_OS_",    ACPI_TYPE_STRING,           ACPI_OS_NAME},
-    {"_GL_",    ACPI_TYPE_MUTEX,            (char *) 1},
-
-#if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
-    {"_OSI",    ACPI_TYPE_METHOD,           (char *) 1},
-#endif
-
-    /* Table terminator */
-
-    {NULL,      ACPI_TYPE_ANY,              NULL}
-};
-
-/*
- * Properties of the ACPI Object Types, both internal and external.
- * The table is indexed by values of ACPI_OBJECT_TYPE
- */
-const UINT8                     AcpiGbl_NsProperties[ACPI_NUM_NS_TYPES] =
-{
-    ACPI_NS_NORMAL,                     /* 00 Any              */
-    ACPI_NS_NORMAL,                     /* 01 Number           */
-    ACPI_NS_NORMAL,                     /* 02 String           */
-    ACPI_NS_NORMAL,                     /* 03 Buffer           */
-    ACPI_NS_NORMAL,                     /* 04 Package          */
-    ACPI_NS_NORMAL,                     /* 05 FieldUnit        */
-    ACPI_NS_NEWSCOPE,                   /* 06 Device           */
-    ACPI_NS_NORMAL,                     /* 07 Event            */
-    ACPI_NS_NEWSCOPE,                   /* 08 Method           */
-    ACPI_NS_NORMAL,                     /* 09 Mutex            */
-    ACPI_NS_NORMAL,                     /* 10 Region           */
-    ACPI_NS_NEWSCOPE,                   /* 11 Power            */
-    ACPI_NS_NEWSCOPE,                   /* 12 Processor        */
-    ACPI_NS_NEWSCOPE,                   /* 13 Thermal          */
-    ACPI_NS_NORMAL,                     /* 14 BufferField      */
-    ACPI_NS_NORMAL,                     /* 15 DdbHandle        */
-    ACPI_NS_NORMAL,                     /* 16 Debug Object     */
-    ACPI_NS_NORMAL,                     /* 17 DefField         */
-    ACPI_NS_NORMAL,                     /* 18 BankField        */
-    ACPI_NS_NORMAL,                     /* 19 IndexField       */
-    ACPI_NS_NORMAL,                     /* 20 Reference        */
-    ACPI_NS_NORMAL,                     /* 21 Alias            */
-    ACPI_NS_NORMAL,                     /* 22 MethodAlias      */
-    ACPI_NS_NORMAL,                     /* 23 Notify           */
-    ACPI_NS_NORMAL,                     /* 24 Address Handler  */
-    ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL,   /* 25 Resource Desc    */
-    ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL,   /* 26 Resource Field   */
-    ACPI_NS_NEWSCOPE,                   /* 27 Scope            */
-    ACPI_NS_NORMAL,                     /* 28 Extra            */
-    ACPI_NS_NORMAL,                     /* 29 Data             */
-    ACPI_NS_NORMAL                      /* 30 Invalid          */
-};
-
-
-/* Hex to ASCII conversion table */
-
-static const char           AcpiGbl_HexToAscii[] =
-{
-    '0','1','2','3','4','5','6','7',
-    '8','9','A','B','C','D','E','F'
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtHexToAsciiChar
- *
- * PARAMETERS:  Integer             - Contains the hex digit
- *              Position            - bit position of the digit within the
- *                                    integer (multiple of 4)
- *
- * RETURN:      The converted Ascii character
- *
- * DESCRIPTION: Convert a hex digit to an Ascii character
- *
- ******************************************************************************/
-
-char
-AcpiUtHexToAsciiChar (
-    ACPI_INTEGER            Integer,
-    UINT32                  Position)
-{
-
-    return (AcpiGbl_HexToAscii[(Integer >> Position) & 0xF]);
-}
-
-
-/******************************************************************************
- *
- * Event and Hardware globals
- *
- ******************************************************************************/
-
-ACPI_BIT_REGISTER_INFO      AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG] =
-{
-    /* Name                                     Parent Register             Register Bit Position                   Register Bit Mask       */
-
-    /* ACPI_BITREG_TIMER_STATUS         */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_TIMER_STATUS,          ACPI_BITMASK_TIMER_STATUS},
-    /* ACPI_BITREG_BUS_MASTER_STATUS    */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_BUS_MASTER_STATUS,     ACPI_BITMASK_BUS_MASTER_STATUS},
-    /* ACPI_BITREG_GLOBAL_LOCK_STATUS   */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_GLOBAL_LOCK_STATUS,    ACPI_BITMASK_GLOBAL_LOCK_STATUS},
-    /* ACPI_BITREG_POWER_BUTTON_STATUS  */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_POWER_BUTTON_STATUS,   ACPI_BITMASK_POWER_BUTTON_STATUS},
-    /* ACPI_BITREG_SLEEP_BUTTON_STATUS  */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_SLEEP_BUTTON_STATUS,   ACPI_BITMASK_SLEEP_BUTTON_STATUS},
-    /* ACPI_BITREG_RT_CLOCK_STATUS      */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_RT_CLOCK_STATUS,       ACPI_BITMASK_RT_CLOCK_STATUS},
-    /* ACPI_BITREG_WAKE_STATUS          */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_WAKE_STATUS,           ACPI_BITMASK_WAKE_STATUS},
-    /* ACPI_BITREG_PCIEXP_WAKE_STATUS   */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_PCIEXP_WAKE_STATUS,    ACPI_BITMASK_PCIEXP_WAKE_STATUS},
-
-    /* ACPI_BITREG_TIMER_ENABLE         */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_TIMER_ENABLE,          ACPI_BITMASK_TIMER_ENABLE},
-    /* ACPI_BITREG_GLOBAL_LOCK_ENABLE   */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE,    ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
-    /* ACPI_BITREG_POWER_BUTTON_ENABLE  */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_POWER_BUTTON_ENABLE,   ACPI_BITMASK_POWER_BUTTON_ENABLE},
-    /* ACPI_BITREG_SLEEP_BUTTON_ENABLE  */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE,   ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
-    /* ACPI_BITREG_RT_CLOCK_ENABLE      */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_RT_CLOCK_ENABLE,       ACPI_BITMASK_RT_CLOCK_ENABLE},
-    /* ACPI_BITREG_PCIEXP_WAKE_DISABLE  */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE,   ACPI_BITMASK_PCIEXP_WAKE_DISABLE},
-
-    /* ACPI_BITREG_SCI_ENABLE           */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_SCI_ENABLE,            ACPI_BITMASK_SCI_ENABLE},
-    /* ACPI_BITREG_BUS_MASTER_RLD       */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_BUS_MASTER_RLD,        ACPI_BITMASK_BUS_MASTER_RLD},
-    /* ACPI_BITREG_GLOBAL_LOCK_RELEASE  */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE,   ACPI_BITMASK_GLOBAL_LOCK_RELEASE},
-    /* ACPI_BITREG_SLEEP_TYPE           */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_SLEEP_TYPE,            ACPI_BITMASK_SLEEP_TYPE},
-    /* ACPI_BITREG_SLEEP_ENABLE         */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_SLEEP_ENABLE,          ACPI_BITMASK_SLEEP_ENABLE},
-
-    /* ACPI_BITREG_ARB_DIS              */   {ACPI_REGISTER_PM2_CONTROL,  ACPI_BITPOSITION_ARB_DISABLE,           ACPI_BITMASK_ARB_DISABLE}
-};
-
-
-ACPI_FIXED_EVENT_INFO       AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] =
-{
-    /* ACPI_EVENT_PMTIMER       */  {ACPI_BITREG_TIMER_STATUS,          ACPI_BITREG_TIMER_ENABLE,        ACPI_BITMASK_TIMER_STATUS,          ACPI_BITMASK_TIMER_ENABLE},
-    /* ACPI_EVENT_GLOBAL        */  {ACPI_BITREG_GLOBAL_LOCK_STATUS,    ACPI_BITREG_GLOBAL_LOCK_ENABLE,  ACPI_BITMASK_GLOBAL_LOCK_STATUS,    ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
-    /* ACPI_EVENT_POWER_BUTTON  */  {ACPI_BITREG_POWER_BUTTON_STATUS,   ACPI_BITREG_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_STATUS,   ACPI_BITMASK_POWER_BUTTON_ENABLE},
-    /* ACPI_EVENT_SLEEP_BUTTON  */  {ACPI_BITREG_SLEEP_BUTTON_STATUS,   ACPI_BITREG_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_STATUS,   ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
-    /* ACPI_EVENT_RTC           */  {ACPI_BITREG_RT_CLOCK_STATUS,       ACPI_BITREG_RT_CLOCK_ENABLE,     ACPI_BITMASK_RT_CLOCK_STATUS,       ACPI_BITMASK_RT_CLOCK_ENABLE},
-};
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetRegionName
- *
- * PARAMETERS:  None.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Translate a Space ID into a name string (Debug only)
- *
- ******************************************************************************/
-
-/* Region type decoding */
-
-const char        *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
-{
-    "SystemMemory",
-    "SystemIO",
-    "PCI_Config",
-    "EmbeddedControl",
-    "SMBus",
-    "SystemCMOS",
-    "PCIBARTarget",
-    "IPMI",
-    "DataTable"
-};
-
-
-char *
-AcpiUtGetRegionName (
-    UINT8                   SpaceId)
-{
-
-    if (SpaceId >= ACPI_USER_REGION_BEGIN)
-    {
-        return ("UserDefinedRegion");
-    }
-    else if (SpaceId >= ACPI_NUM_PREDEFINED_REGIONS)
-    {
-        return ("InvalidSpaceId");
-    }
-
-    return (ACPI_CAST_PTR (char, AcpiGbl_RegionTypes[SpaceId]));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetEventName
- *
- * PARAMETERS:  None.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Translate a Event ID into a name string (Debug only)
- *
- ******************************************************************************/
-
-/* Event type decoding */
-
-static const char        *AcpiGbl_EventTypes[ACPI_NUM_FIXED_EVENTS] =
-{
-    "PM_Timer",
-    "GlobalLock",
-    "PowerButton",
-    "SleepButton",
-    "RealTimeClock",
-};
-
-
-char *
-AcpiUtGetEventName (
-    UINT32                  EventId)
-{
-
-    if (EventId > ACPI_EVENT_MAX)
-    {
-        return ("InvalidEventID");
-    }
-
-    return (ACPI_CAST_PTR (char, AcpiGbl_EventTypes[EventId]));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetTypeName
- *
- * PARAMETERS:  None.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Translate a Type ID into a name string (Debug only)
- *
- ******************************************************************************/
-
-/*
- * Elements of AcpiGbl_NsTypeNames below must match
- * one-to-one with values of ACPI_OBJECT_TYPE
- *
- * The type ACPI_TYPE_ANY (Untyped) is used as a "don't care" when searching;
- * when stored in a table it really means that we have thus far seen no
- * evidence to indicate what type is actually going to be stored for this entry.
- */
-static const char           AcpiGbl_BadType[] = "UNDEFINED";
-
-/* Printable names of the ACPI object types */
-
-static const char           *AcpiGbl_NsTypeNames[] =
-{
-    /* 00 */ "Untyped",
-    /* 01 */ "Integer",
-    /* 02 */ "String",
-    /* 03 */ "Buffer",
-    /* 04 */ "Package",
-    /* 05 */ "FieldUnit",
-    /* 06 */ "Device",
-    /* 07 */ "Event",
-    /* 08 */ "Method",
-    /* 09 */ "Mutex",
-    /* 10 */ "Region",
-    /* 11 */ "Power",
-    /* 12 */ "Processor",
-    /* 13 */ "Thermal",
-    /* 14 */ "BufferField",
-    /* 15 */ "DdbHandle",
-    /* 16 */ "DebugObject",
-    /* 17 */ "RegionField",
-    /* 18 */ "BankField",
-    /* 19 */ "IndexField",
-    /* 20 */ "Reference",
-    /* 21 */ "Alias",
-    /* 22 */ "MethodAlias",
-    /* 23 */ "Notify",
-    /* 24 */ "AddrHandler",
-    /* 25 */ "ResourceDesc",
-    /* 26 */ "ResourceFld",
-    /* 27 */ "Scope",
-    /* 28 */ "Extra",
-    /* 29 */ "Data",
-    /* 30 */ "Invalid"
-};
-
-
-char *
-AcpiUtGetTypeName (
-    ACPI_OBJECT_TYPE        Type)
-{
-
-    if (Type > ACPI_TYPE_INVALID)
-    {
-        return (ACPI_CAST_PTR (char, AcpiGbl_BadType));
-    }
-
-    return (ACPI_CAST_PTR (char, AcpiGbl_NsTypeNames[Type]));
-}
-
-
-char *
-AcpiUtGetObjectTypeName (
-    ACPI_OPERAND_OBJECT     *ObjDesc)
-{
-
-    if (!ObjDesc)
-    {
-        return ("[NULL Object Descriptor]");
-    }
-
-    return (AcpiUtGetTypeName (ObjDesc->Common.Type));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetNodeName
- *
- * PARAMETERS:  Object               - A namespace node
- *
- * RETURN:      Pointer to a string
- *
- * DESCRIPTION: Validate the node and return the node's ACPI name.
- *
- ******************************************************************************/
-
-char *
-AcpiUtGetNodeName (
-    void                    *Object)
-{
-    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) Object;
-
-
-    /* Must return a string of exactly 4 characters == ACPI_NAME_SIZE */
-
-    if (!Object)
-    {
-        return ("NULL");
-    }
-
-    /* Check for Root node */
-
-    if ((Object == ACPI_ROOT_OBJECT) ||
-        (Object == AcpiGbl_RootNode))
-    {
-        return ("\"\\\" ");
-    }
-
-    /* Descriptor must be a namespace node */
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
-    {
-        return ("####");
-    }
-
-    /*
-     * Ensure name is valid. The name was validated/repaired when the node
-     * was created, but make sure it has not been corrupted.
-     */
-    AcpiUtRepairName (Node->Name.Ascii);
-
-    /* Return the name */
-
-    return (Node->Name.Ascii);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetDescriptorName
- *
- * PARAMETERS:  Object               - An ACPI object
- *
- * RETURN:      Pointer to a string
- *
- * DESCRIPTION: Validate object and return the descriptor type
- *
- ******************************************************************************/
-
-/* Printable names of object descriptor types */
-
-static const char           *AcpiGbl_DescTypeNames[] =
-{
-    /* 00 */ "Invalid",
-    /* 01 */ "Cached",
-    /* 02 */ "State-Generic",
-    /* 03 */ "State-Update",
-    /* 04 */ "State-Package",
-    /* 05 */ "State-Control",
-    /* 06 */ "State-RootParseScope",
-    /* 07 */ "State-ParseScope",
-    /* 08 */ "State-WalkScope",
-    /* 09 */ "State-Result",
-    /* 10 */ "State-Notify",
-    /* 11 */ "State-Thread",
-    /* 12 */ "Walk",
-    /* 13 */ "Parser",
-    /* 14 */ "Operand",
-    /* 15 */ "Node"
-};
-
-
-char *
-AcpiUtGetDescriptorName (
-    void                    *Object)
-{
-
-    if (!Object)
-    {
-        return ("NULL OBJECT");
-    }
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (Object) > ACPI_DESC_TYPE_MAX)
-    {
-        return (ACPI_CAST_PTR (char, AcpiGbl_BadType));
-    }
-
-    return (ACPI_CAST_PTR (char,
-        AcpiGbl_DescTypeNames[ACPI_GET_DESCRIPTOR_TYPE (Object)]));
-
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetReferenceName
- *
- * PARAMETERS:  Object               - An ACPI reference object
- *
- * RETURN:      Pointer to a string
- *
- * DESCRIPTION: Decode a reference object sub-type to a string.
- *
- ******************************************************************************/
-
-/* Printable names of reference object sub-types */
-
-static const char           *AcpiGbl_RefClassNames[] =
-{
-    /* 00 */ "Local",
-    /* 01 */ "Argument",
-    /* 02 */ "RefOf",
-    /* 03 */ "Index",
-    /* 04 */ "DdbHandle",
-    /* 05 */ "Named Object",
-    /* 06 */ "Debug"
-};
-
-const char *
-AcpiUtGetReferenceName (
-    ACPI_OPERAND_OBJECT     *Object)
-{
-
-    if (!Object)
-    {
-        return ("NULL Object");
-    }
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (Object) != ACPI_DESC_TYPE_OPERAND)
-    {
-        return ("Not an Operand object");
-    }
-
-    if (Object->Common.Type != ACPI_TYPE_LOCAL_REFERENCE)
-    {
-        return ("Not a Reference object");
-    }
-
-    if (Object->Reference.Class > ACPI_REFCLASS_MAX)
-    {
-        return ("Unknown Reference class");
-    }
-
-    return (AcpiGbl_RefClassNames[Object->Reference.Class]);
-}
-
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-/*
- * Strings and procedures used for debug only
- */
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetMutexName
- *
- * PARAMETERS:  MutexId         - The predefined ID for this mutex.
- *
- * RETURN:      String containing the name of the mutex. Always returns a valid
- *              pointer.
- *
- * DESCRIPTION: Translate a mutex ID into a name string (Debug only)
- *
- ******************************************************************************/
-
-char *
-AcpiUtGetMutexName (
-    UINT32                  MutexId)
-{
-
-    if (MutexId > ACPI_MAX_MUTEX)
-    {
-        return ("Invalid Mutex ID");
-    }
-
-    return (AcpiGbl_MutexNames[MutexId]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetNotifyName
- *
- * PARAMETERS:  NotifyValue     - Value from the Notify() request
- *
- * RETURN:      String corresponding to the Notify Value.
- *
- * DESCRIPTION: Translate a Notify Value to a notify namestring.
- *
- ******************************************************************************/
-
-/* Names for Notify() values, used for debug output */
-
-static const char        *AcpiGbl_NotifyValueNames[] =
-{
-    "Bus Check",
-    "Device Check",
-    "Device Wake",
-    "Eject Request",
-    "Device Check Light",
-    "Frequency Mismatch",
-    "Bus Mode Mismatch",
-    "Power Fault",
-    "Capabilities Check",
-    "Device PLD Check",
-    "Reserved",
-    "System Locality Update"
-};
-
-const char *
-AcpiUtGetNotifyName (
-    UINT32                  NotifyValue)
-{
-
-    if (NotifyValue <= ACPI_NOTIFY_MAX)
-    {
-        return (AcpiGbl_NotifyValueNames[NotifyValue]);
-    }
-    else if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
-    {
-        return ("Reserved");
-    }
-    else /* Greater or equal to 0x80 */
-    {
-        return ("**Device Specific**");
-    }
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtValidObjectType
- *
- * PARAMETERS:  Type            - Object type to be validated
- *
- * RETURN:      TRUE if valid object type, FALSE otherwise
- *
- * DESCRIPTION: Validate an object type
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtValidObjectType (
-    ACPI_OBJECT_TYPE        Type)
-{
-
-    if (Type > ACPI_TYPE_LOCAL_MAX)
-    {
-        /* Note: Assumes all TYPEs are contiguous (external/local) */
-
-        return (FALSE);
-    }
-
-    return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtInitGlobals
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Init library globals.  All globals that require specific
- *              initialization should be initialized here!
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtInitGlobals (
-    void)
-{
-    ACPI_STATUS             Status;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (UtInitGlobals);
-
-
-    /* Create all memory caches */
-
-    Status = AcpiUtCreateCaches ();
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Mutex locked flags */
-
-    for (i = 0; i < ACPI_NUM_MUTEX; i++)
-    {
-        AcpiGbl_MutexInfo[i].Mutex          = NULL;
-        AcpiGbl_MutexInfo[i].ThreadId       = ACPI_MUTEX_NOT_ACQUIRED;
-        AcpiGbl_MutexInfo[i].UseCount       = 0;
-    }
-
-    for (i = 0; i < ACPI_NUM_OWNERID_MASKS; i++)
-    {
-        AcpiGbl_OwnerIdMask[i]              = 0;
-    }
-
-    /* Last OwnerID is never valid */
-
-    AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000;
-
-    /* Event counters */
-
-    AcpiMethodCount                     = 0;
-    AcpiSciCount                        = 0;
-    AcpiGpeCount                        = 0;
-
-    for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)
-    {
-        AcpiFixedEventCount[i]              = 0;
-    }
-
-    /* GPE support */
-
-    AcpiGbl_GpeXruptListHead            = NULL;
-    AcpiGbl_GpeFadtBlocks[0]            = NULL;
-    AcpiGbl_GpeFadtBlocks[1]            = NULL;
-    AcpiCurrentGpeCount                 = 0;
-
-    /* Global handlers */
-
-    AcpiGbl_SystemNotify.Handler        = NULL;
-    AcpiGbl_DeviceNotify.Handler        = NULL;
-    AcpiGbl_ExceptionHandler            = NULL;
-    AcpiGbl_InitHandler                 = NULL;
-    AcpiGbl_TableHandler                = NULL;
-
-    /* Global Lock support */
-
-    AcpiGbl_GlobalLockSemaphore         = NULL;
-    AcpiGbl_GlobalLockMutex             = NULL;
-    AcpiGbl_GlobalLockAcquired          = FALSE;
-    AcpiGbl_GlobalLockHandle            = 0;
-    AcpiGbl_GlobalLockPresent           = FALSE;
-
-    /* Miscellaneous variables */
-
-    AcpiGbl_CmSingleStep                = FALSE;
-    AcpiGbl_DbTerminateThreads          = FALSE;
-    AcpiGbl_Shutdown                    = FALSE;
-    AcpiGbl_NsLookupCount               = 0;
-    AcpiGbl_PsFindCount                 = 0;
-    AcpiGbl_AcpiHardwarePresent         = TRUE;
-    AcpiGbl_LastOwnerIdIndex            = 0;
-    AcpiGbl_NextOwnerIdOffset           = 0;
-    AcpiGbl_TraceMethodName             = 0;
-    AcpiGbl_TraceDbgLevel               = 0;
-    AcpiGbl_TraceDbgLayer               = 0;
-    AcpiGbl_DebuggerConfiguration       = DEBUGGER_THREADING;
-    AcpiGbl_DbOutputFlags               = ACPI_DB_CONSOLE_OUTPUT;
-    AcpiGbl_OsiData                     = 0;
-
-    /* Hardware oriented */
-
-    AcpiGbl_EventsInitialized           = FALSE;
-    AcpiGbl_SystemAwakeAndRunning       = TRUE;
-
-    /* Namespace */
-
-    AcpiGbl_ModuleCodeList              = NULL;
-    AcpiGbl_RootNode                    = NULL;
-    AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
-    AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED;
-    AcpiGbl_RootNodeStruct.Type         = ACPI_TYPE_DEVICE;
-    AcpiGbl_RootNodeStruct.Child        = NULL;
-    AcpiGbl_RootNodeStruct.Peer         = NULL;
-    AcpiGbl_RootNodeStruct.Object       = NULL;
-    AcpiGbl_RootNodeStruct.Flags        = ANOBJ_END_OF_PEER_LIST;
-
-
-#ifdef ACPI_DISASSEMBLER
-    AcpiGbl_ExternalList                = NULL;
-#endif
-
-#ifdef ACPI_DEBUG_OUTPUT
-    AcpiGbl_LowestStackPointer          = ACPI_CAST_PTR (ACPI_SIZE, ACPI_SIZE_MAX);
-#endif
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-    AcpiGbl_DisplayFinalMemStats        = FALSE;
-#endif
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-/* Public globals */
-
-ACPI_EXPORT_SYMBOL (AcpiGbl_FADT)
-ACPI_EXPORT_SYMBOL (AcpiDbgLevel)
-ACPI_EXPORT_SYMBOL (AcpiDbgLayer)
-ACPI_EXPORT_SYMBOL (AcpiGpeCount)
-ACPI_EXPORT_SYMBOL (AcpiCurrentGpeCount)
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utids.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utids.c
deleted file mode 100644 (file)
index 7669330..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utids - support for device IDs - HID, UID, CID
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTIDS_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acinterp.h"
-
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utids")
-
-/* Local prototypes */
-
-static void
-AcpiUtCopyIdString (
-    char                    *Destination,
-    char                    *Source);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCopyIdString
- *
- * PARAMETERS:  Destination         - Where to copy the string
- *              Source              - Source string
- *
- * RETURN:      None
- *
- * DESCRIPTION: Copies an ID string for the _HID, _CID, and _UID methods.
- *              Performs removal of a leading asterisk if present -- workaround
- *              for a known issue on a bunch of machines.
- *
- ******************************************************************************/
-
-static void
-AcpiUtCopyIdString (
-    char                    *Destination,
-    char                    *Source)
-{
-
-    /*
-     * Workaround for ID strings that have a leading asterisk. This construct
-     * is not allowed by the ACPI specification  (ID strings must be
-     * alphanumeric), but enough existing machines have this embedded in their
-     * ID strings that the following code is useful.
-     */
-    if (*Source == '*')
-    {
-        Source++;
-    }
-
-    /* Do the actual copy */
-
-    ACPI_STRCPY (Destination, Source);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtExecute_HID
- *
- * PARAMETERS:  DeviceNode          - Node for the device
- *              ReturnId            - Where the string HID is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Executes the _HID control method that returns the hardware
- *              ID of the device. The HID is either an 32-bit encoded EISAID
- *              Integer or a String. A string is always returned. An EISAID
- *              is converted to a string.
- *
- *              NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecute_HID (
-    ACPI_NAMESPACE_NODE     *DeviceNode,
-    ACPI_DEVICE_ID          **ReturnId)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_DEVICE_ID          *Hid;
-    UINT32                  Length;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtExecute_HID);
-
-
-    Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__HID,
-                ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Get the size of the String to be returned, includes null terminator */
-
-    if (ObjDesc->Common.Type == ACPI_TYPE_INTEGER)
-    {
-        Length = ACPI_EISAID_STRING_SIZE;
-    }
-    else
-    {
-        Length = ObjDesc->String.Length + 1;
-    }
-
-    /* Allocate a buffer for the HID */
-
-    Hid = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_DEVICE_ID) + (ACPI_SIZE) Length);
-    if (!Hid)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /* Area for the string starts after DEVICE_ID struct */
-
-    Hid->String = ACPI_ADD_PTR (char, Hid, sizeof (ACPI_DEVICE_ID));
-
-    /* Convert EISAID to a string or simply copy existing string */
-
-    if (ObjDesc->Common.Type == ACPI_TYPE_INTEGER)
-    {
-        AcpiExEisaIdToString (Hid->String, ObjDesc->Integer.Value);
-    }
-    else
-    {
-        AcpiUtCopyIdString (Hid->String, ObjDesc->String.Pointer);
-    }
-
-    Hid->Length = Length;
-    *ReturnId = Hid;
-
-
-Cleanup:
-
-    /* On exit, we must delete the return object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtExecute_UID
- *
- * PARAMETERS:  DeviceNode          - Node for the device
- *              ReturnId            - Where the string UID is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Executes the _UID control method that returns the unique
- *              ID of the device. The UID is either a 64-bit Integer (NOT an
- *              EISAID) or a string. Always returns a string. A 64-bit integer
- *              is converted to a decimal string.
- *
- *              NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecute_UID (
-    ACPI_NAMESPACE_NODE     *DeviceNode,
-    ACPI_DEVICE_ID          **ReturnId)
-{
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_DEVICE_ID          *Uid;
-    UINT32                  Length;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtExecute_UID);
-
-
-    Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__UID,
-                ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Get the size of the String to be returned, includes null terminator */
-
-    if (ObjDesc->Common.Type == ACPI_TYPE_INTEGER)
-    {
-        Length = ACPI_MAX64_DECIMAL_DIGITS + 1;
-    }
-    else
-    {
-        Length = ObjDesc->String.Length + 1;
-    }
-
-    /* Allocate a buffer for the UID */
-
-    Uid = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_DEVICE_ID) + (ACPI_SIZE) Length);
-    if (!Uid)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /* Area for the string starts after DEVICE_ID struct */
-
-    Uid->String = ACPI_ADD_PTR (char, Uid, sizeof (ACPI_DEVICE_ID));
-
-    /* Convert an Integer to string, or just copy an existing string */
-
-    if (ObjDesc->Common.Type == ACPI_TYPE_INTEGER)
-    {
-        AcpiExIntegerToString (Uid->String, ObjDesc->Integer.Value);
-    }
-    else
-    {
-        AcpiUtCopyIdString (Uid->String, ObjDesc->String.Pointer);
-    }
-
-    Uid->Length = Length;
-    *ReturnId = Uid;
-
-
-Cleanup:
-
-    /* On exit, we must delete the return object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtExecute_CID
- *
- * PARAMETERS:  DeviceNode          - Node for the device
- *              ReturnCidList       - Where the CID list is returned
- *
- * RETURN:      Status, list of CID strings
- *
- * DESCRIPTION: Executes the _CID control method that returns one or more
- *              compatible hardware IDs for the device.
- *
- *              NOTE: Internal function, no parameter validation
- *
- * A _CID method can return either a single compatible ID or a package of
- * compatible IDs. Each compatible ID can be one of the following:
- * 1) Integer (32 bit compressed EISA ID) or
- * 2) String (PCI ID format, e.g. "PCI\VEN_vvvv&DEV_dddd&SUBSYS_ssssssss")
- *
- * The Integer CIDs are converted to string format by this function.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecute_CID (
-    ACPI_NAMESPACE_NODE     *DeviceNode,
-    ACPI_DEVICE_ID_LIST     **ReturnCidList)
-{
-    ACPI_OPERAND_OBJECT     **CidObjects;
-    ACPI_OPERAND_OBJECT     *ObjDesc;
-    ACPI_DEVICE_ID_LIST     *CidList;
-    char                    *NextIdString;
-    UINT32                  StringAreaSize;
-    UINT32                  Length;
-    UINT32                  CidListSize;
-    ACPI_STATUS             Status;
-    UINT32                  Count;
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (UtExecute_CID);
-
-
-    /* Evaluate the _CID method for this device */
-
-    Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__CID,
-                ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_PACKAGE,
-                &ObjDesc);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Get the count and size of the returned _CIDs. _CID can return either
-     * a Package of Integers/Strings or a single Integer or String.
-     * Note: This section also validates that all CID elements are of the
-     * correct type (Integer or String).
-     */
-    if (ObjDesc->Common.Type == ACPI_TYPE_PACKAGE)
-    {
-        Count = ObjDesc->Package.Count;
-        CidObjects = ObjDesc->Package.Elements;
-    }
-    else /* Single Integer or String CID */
-    {
-        Count = 1;
-        CidObjects = &ObjDesc;
-    }
-
-    StringAreaSize = 0;
-    for (i = 0; i < Count; i++)
-    {
-        /* String lengths include null terminator */
-
-        switch (CidObjects[i]->Common.Type)
-        {
-        case ACPI_TYPE_INTEGER:
-            StringAreaSize += ACPI_EISAID_STRING_SIZE;
-            break;
-
-        case ACPI_TYPE_STRING:
-            StringAreaSize += CidObjects[i]->String.Length + 1;
-            break;
-
-        default:
-            Status = AE_TYPE;
-            goto Cleanup;
-        }
-    }
-
-    /*
-     * Now that we know the length of the CIDs, allocate return buffer:
-     * 1) Size of the base structure +
-     * 2) Size of the CID DEVICE_ID array +
-     * 3) Size of the actual CID strings
-     */
-    CidListSize = sizeof (ACPI_DEVICE_ID_LIST) +
-        ((Count - 1) * sizeof (ACPI_DEVICE_ID)) +
-        StringAreaSize;
-
-    CidList = ACPI_ALLOCATE_ZEROED (CidListSize);
-    if (!CidList)
-    {
-        Status = AE_NO_MEMORY;
-        goto Cleanup;
-    }
-
-    /* Area for CID strings starts after the CID DEVICE_ID array */
-
-    NextIdString = ACPI_CAST_PTR (char, CidList->Ids) +
-        ((ACPI_SIZE) Count * sizeof (ACPI_DEVICE_ID));
-
-    /* Copy/convert the CIDs to the return buffer */
-
-    for (i = 0; i < Count; i++)
-    {
-        if (CidObjects[i]->Common.Type == ACPI_TYPE_INTEGER)
-        {
-            /* Convert the Integer (EISAID) CID to a string */
-
-            AcpiExEisaIdToString (NextIdString, CidObjects[i]->Integer.Value);
-            Length = ACPI_EISAID_STRING_SIZE;
-        }
-        else /* ACPI_TYPE_STRING */
-        {
-            /* Copy the String CID from the returned object */
-
-            AcpiUtCopyIdString (NextIdString, CidObjects[i]->String.Pointer);
-            Length = CidObjects[i]->String.Length + 1;
-        }
-
-        CidList->Ids[i].String = NextIdString;
-        CidList->Ids[i].Length = Length;
-        NextIdString += Length;
-    }
-
-    /* Finish the CID list */
-
-    CidList->Count = Count;
-    CidList->ListSize = CidListSize;
-    *ReturnCidList = CidList;
-
-
-Cleanup:
-
-    /* On exit, we must delete the _CID return object */
-
-    AcpiUtRemoveReference (ObjDesc);
-    return_ACPI_STATUS (Status);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utinit.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utinit.c
deleted file mode 100644 (file)
index d59904b..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utinit - Common ACPI subsystem initialization
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __UTINIT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "acevents.h"
-#include "actables.h"
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utinit")
-
-/* Local prototypes */
-
-static void AcpiUtTerminate (
-    void);
-
-
-/******************************************************************************
- *
- * FUNCTION:    AcpiUtTerminate
- *
- * PARAMETERS:  none
- *
- * RETURN:      none
- *
- * DESCRIPTION: Free global memory
- *
- ******************************************************************************/
-
-static void
-AcpiUtTerminate (
-    void)
-{
-    ACPI_GPE_BLOCK_INFO     *GpeBlock;
-    ACPI_GPE_BLOCK_INFO     *NextGpeBlock;
-    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo;
-    ACPI_GPE_XRUPT_INFO     *NextGpeXruptInfo;
-
-
-    ACPI_FUNCTION_TRACE (UtTerminate);
-
-
-    /* Free global GPE blocks and related info structures */
-
-    GpeXruptInfo = AcpiGbl_GpeXruptListHead;
-    while (GpeXruptInfo)
-    {
-        GpeBlock = GpeXruptInfo->GpeBlockListHead;
-        while (GpeBlock)
-        {
-            NextGpeBlock = GpeBlock->Next;
-            ACPI_FREE (GpeBlock->EventInfo);
-            ACPI_FREE (GpeBlock->RegisterInfo);
-            ACPI_FREE (GpeBlock);
-
-            GpeBlock = NextGpeBlock;
-        }
-        NextGpeXruptInfo = GpeXruptInfo->Next;
-        ACPI_FREE (GpeXruptInfo);
-        GpeXruptInfo = NextGpeXruptInfo;
-    }
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtSubsystemShutdown
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Shutdown the various components. Do not delete the mutex
- *              objects here, because the AML debugger may be still running.
- *
- ******************************************************************************/
-
-void
-AcpiUtSubsystemShutdown (
-    void)
-{
-    ACPI_FUNCTION_TRACE (UtSubsystemShutdown);
-
-
-#ifndef ACPI_ASL_COMPILER
-
-    /* Close the AcpiEvent Handling */
-
-    AcpiEvTerminate ();
-#endif
-
-    /* Close the Namespace */
-
-    AcpiNsTerminate ();
-
-    /* Delete the ACPI tables */
-
-    AcpiTbTerminate ();
-
-    /* Close the globals */
-
-    AcpiUtTerminate ();
-
-    /* Purge the local caches */
-
-    (void) AcpiUtDeleteCaches ();
-    return_VOID;
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utlock.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utlock.c
deleted file mode 100644 (file)
index dd4e100..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utlock - Reader/Writer lock interfaces
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTLOCK_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utlock")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateRwLock
- *              AcpiUtDeleteRwLock
- *
- * PARAMETERS:  Lock                - Pointer to a valid RW lock
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Reader/writer lock creation and deletion interfaces.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCreateRwLock (
-    ACPI_RW_LOCK            *Lock)
-{
-    ACPI_STATUS             Status;
-
-
-    Lock->NumReaders = 0;
-    Status = AcpiOsCreateMutex (&Lock->ReaderMutex);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    Status = AcpiOsCreateMutex (&Lock->WriterMutex);
-    return (Status);
-}
-
-
-void
-AcpiUtDeleteRwLock (
-    ACPI_RW_LOCK            *Lock)
-{
-
-    AcpiOsDeleteMutex (Lock->ReaderMutex);
-    AcpiOsDeleteMutex (Lock->WriterMutex);
-
-    Lock->NumReaders = 0;
-    Lock->ReaderMutex = NULL;
-    Lock->WriterMutex = NULL;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAcquireReadLock
- *              AcpiUtReleaseReadLock
- *
- * PARAMETERS:  Lock                - Pointer to a valid RW lock
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Reader interfaces for reader/writer locks. On acquisition,
- *              only the first reader acquires the write mutex. On release,
- *              only the last reader releases the write mutex. Although this
- *              algorithm can in theory starve writers, this should not be a
- *              problem with ACPICA since the subsystem is infrequently used
- *              in comparison to (for example) an I/O system.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtAcquireReadLock (
-    ACPI_RW_LOCK            *Lock)
-{
-    ACPI_STATUS             Status;
-
-
-    Status = AcpiOsAcquireMutex (Lock->ReaderMutex, ACPI_WAIT_FOREVER);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Acquire the write lock only for the first reader */
-
-    Lock->NumReaders++;
-    if (Lock->NumReaders == 1)
-    {
-        Status = AcpiOsAcquireMutex (Lock->WriterMutex, ACPI_WAIT_FOREVER);
-    }
-
-    AcpiOsReleaseMutex (Lock->ReaderMutex);
-    return (Status);
-}
-
-
-ACPI_STATUS
-AcpiUtReleaseReadLock (
-    ACPI_RW_LOCK            *Lock)
-{
-    ACPI_STATUS             Status;
-
-
-    Status = AcpiOsAcquireMutex (Lock->ReaderMutex, ACPI_WAIT_FOREVER);
-    if (ACPI_FAILURE (Status))
-    {
-        return (Status);
-    }
-
-    /* Release the write lock only for the very last reader */
-
-    Lock->NumReaders--;
-    if (Lock->NumReaders == 0)
-    {
-        AcpiOsReleaseMutex (Lock->WriterMutex);
-    }
-
-    AcpiOsReleaseMutex (Lock->ReaderMutex);
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAcquireWriteLock
- *              AcpiUtReleaseWriteLock
- *
- * PARAMETERS:  Lock                - Pointer to a valid RW lock
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Writer interfaces for reader/writer locks. Simply acquire or
- *              release the writer mutex associated with the lock. Acquisition
- *              of the lock is fully exclusive and will block all readers and
- *              writers until it is released.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtAcquireWriteLock (
-    ACPI_RW_LOCK            *Lock)
-{
-    ACPI_STATUS             Status;
-
-
-    Status = AcpiOsAcquireMutex (Lock->WriterMutex, ACPI_WAIT_FOREVER);
-    return (Status);
-}
-
-
-void
-AcpiUtReleaseWriteLock (
-    ACPI_RW_LOCK            *Lock)
-{
-
-    AcpiOsReleaseMutex (Lock->WriterMutex);
-}
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utmath.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utmath.c
deleted file mode 100644 (file)
index b0a40ff..0000000
+++ /dev/null
@@ -1,431 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utmath - Integer math support routines
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __UTMATH_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utmath")
-
-/*
- * Support for double-precision integer divide.  This code is included here
- * in order to support kernel environments where the double-precision math
- * library is not available.
- */
-
-#ifndef ACPI_USE_NATIVE_DIVIDE
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtShortDivide
- *
- * PARAMETERS:  Dividend            - 64-bit dividend
- *              Divisor             - 32-bit divisor
- *              OutQuotient         - Pointer to where the quotient is returned
- *              OutRemainder        - Pointer to where the remainder is returned
- *
- * RETURN:      Status (Checks for divide-by-zero)
- *
- * DESCRIPTION: Perform a short (maximum 64 bits divided by 32 bits)
- *              divide and modulo.  The result is a 64-bit quotient and a
- *              32-bit remainder.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtShortDivide (
-    ACPI_INTEGER            Dividend,
-    UINT32                  Divisor,
-    ACPI_INTEGER            *OutQuotient,
-    UINT32                  *OutRemainder)
-{
-    UINT64_OVERLAY          DividendOvl;
-    UINT64_OVERLAY          Quotient;
-    UINT32                  Remainder32;
-
-
-    ACPI_FUNCTION_TRACE (UtShortDivide);
-
-
-    /* Always check for a zero divisor */
-
-    if (Divisor == 0)
-    {
-        ACPI_ERROR ((AE_INFO, "Divide by zero"));
-        return_ACPI_STATUS (AE_AML_DIVIDE_BY_ZERO);
-    }
-
-    DividendOvl.Full = Dividend;
-
-    /*
-     * The quotient is 64 bits, the remainder is always 32 bits,
-     * and is generated by the second divide.
-     */
-    ACPI_DIV_64_BY_32 (0, DividendOvl.Part.Hi, Divisor,
-                       Quotient.Part.Hi, Remainder32);
-    ACPI_DIV_64_BY_32 (Remainder32, DividendOvl.Part.Lo, Divisor,
-                       Quotient.Part.Lo, Remainder32);
-
-    /* Return only what was requested */
-
-    if (OutQuotient)
-    {
-        *OutQuotient = Quotient.Full;
-    }
-    if (OutRemainder)
-    {
-        *OutRemainder = Remainder32;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDivide
- *
- * PARAMETERS:  InDividend          - Dividend
- *              InDivisor           - Divisor
- *              OutQuotient         - Pointer to where the quotient is returned
- *              OutRemainder        - Pointer to where the remainder is returned
- *
- * RETURN:      Status (Checks for divide-by-zero)
- *
- * DESCRIPTION: Perform a divide and modulo.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtDivide (
-    ACPI_INTEGER            InDividend,
-    ACPI_INTEGER            InDivisor,
-    ACPI_INTEGER            *OutQuotient,
-    ACPI_INTEGER            *OutRemainder)
-{
-    UINT64_OVERLAY          Dividend;
-    UINT64_OVERLAY          Divisor;
-    UINT64_OVERLAY          Quotient;
-    UINT64_OVERLAY          Remainder;
-    UINT64_OVERLAY          NormalizedDividend;
-    UINT64_OVERLAY          NormalizedDivisor;
-    UINT32                  Partial1;
-    UINT64_OVERLAY          Partial2;
-    UINT64_OVERLAY          Partial3;
-
-
-    ACPI_FUNCTION_TRACE (UtDivide);
-
-
-    /* Always check for a zero divisor */
-
-    if (InDivisor == 0)
-    {
-        ACPI_ERROR ((AE_INFO, "Divide by zero"));
-        return_ACPI_STATUS (AE_AML_DIVIDE_BY_ZERO);
-    }
-
-    Divisor.Full  = InDivisor;
-    Dividend.Full = InDividend;
-    if (Divisor.Part.Hi == 0)
-    {
-        /*
-         * 1) Simplest case is where the divisor is 32 bits, we can
-         * just do two divides
-         */
-        Remainder.Part.Hi = 0;
-
-        /*
-         * The quotient is 64 bits, the remainder is always 32 bits,
-         * and is generated by the second divide.
-         */
-        ACPI_DIV_64_BY_32 (0, Dividend.Part.Hi, Divisor.Part.Lo,
-                           Quotient.Part.Hi, Partial1);
-        ACPI_DIV_64_BY_32 (Partial1, Dividend.Part.Lo, Divisor.Part.Lo,
-                           Quotient.Part.Lo, Remainder.Part.Lo);
-    }
-
-    else
-    {
-        /*
-         * 2) The general case where the divisor is a full 64 bits
-         * is more difficult
-         */
-        Quotient.Part.Hi   = 0;
-        NormalizedDividend = Dividend;
-        NormalizedDivisor  = Divisor;
-
-        /* Normalize the operands (shift until the divisor is < 32 bits) */
-
-        do
-        {
-            ACPI_SHIFT_RIGHT_64 (NormalizedDivisor.Part.Hi,
-                                 NormalizedDivisor.Part.Lo);
-            ACPI_SHIFT_RIGHT_64 (NormalizedDividend.Part.Hi,
-                                 NormalizedDividend.Part.Lo);
-
-        } while (NormalizedDivisor.Part.Hi != 0);
-
-        /* Partial divide */
-
-        ACPI_DIV_64_BY_32 (NormalizedDividend.Part.Hi,
-                           NormalizedDividend.Part.Lo,
-                           NormalizedDivisor.Part.Lo,
-                           Quotient.Part.Lo, Partial1);
-
-        /*
-         * The quotient is always 32 bits, and simply requires adjustment.
-         * The 64-bit remainder must be generated.
-         */
-        Partial1      = Quotient.Part.Lo * Divisor.Part.Hi;
-        Partial2.Full = (ACPI_INTEGER) Quotient.Part.Lo * Divisor.Part.Lo;
-        Partial3.Full = (ACPI_INTEGER) Partial2.Part.Hi + Partial1;
-
-        Remainder.Part.Hi = Partial3.Part.Lo;
-        Remainder.Part.Lo = Partial2.Part.Lo;
-
-        if (Partial3.Part.Hi == 0)
-        {
-            if (Partial3.Part.Lo >= Dividend.Part.Hi)
-            {
-                if (Partial3.Part.Lo == Dividend.Part.Hi)
-                {
-                    if (Partial2.Part.Lo > Dividend.Part.Lo)
-                    {
-                        Quotient.Part.Lo--;
-                        Remainder.Full -= Divisor.Full;
-                    }
-                }
-                else
-                {
-                    Quotient.Part.Lo--;
-                    Remainder.Full -= Divisor.Full;
-                }
-            }
-
-            Remainder.Full    = Remainder.Full - Dividend.Full;
-            Remainder.Part.Hi = (UINT32) -((INT32) Remainder.Part.Hi);
-            Remainder.Part.Lo = (UINT32) -((INT32) Remainder.Part.Lo);
-
-            if (Remainder.Part.Lo)
-            {
-                Remainder.Part.Hi--;
-            }
-        }
-    }
-
-    /* Return only what was requested */
-
-    if (OutQuotient)
-    {
-        *OutQuotient = Quotient.Full;
-    }
-    if (OutRemainder)
-    {
-        *OutRemainder = Remainder.Full;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-#else
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtShortDivide, AcpiUtDivide
- *
- * PARAMETERS:  See function headers above
- *
- * DESCRIPTION: Native versions of the UtDivide functions. Use these if either
- *              1) The target is a 64-bit platform and therefore 64-bit
- *                 integer math is supported directly by the machine.
- *              2) The target is a 32-bit or 16-bit platform, and the
- *                 double-precision integer math library is available to
- *                 perform the divide.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtShortDivide (
-    ACPI_INTEGER            InDividend,
-    UINT32                  Divisor,
-    ACPI_INTEGER            *OutQuotient,
-    UINT32                  *OutRemainder)
-{
-
-    ACPI_FUNCTION_TRACE (UtShortDivide);
-
-
-    /* Always check for a zero divisor */
-
-    if (Divisor == 0)
-    {
-        ACPI_ERROR ((AE_INFO, "Divide by zero"));
-        return_ACPI_STATUS (AE_AML_DIVIDE_BY_ZERO);
-    }
-
-    /* Return only what was requested */
-
-    if (OutQuotient)
-    {
-        *OutQuotient = InDividend / Divisor;
-    }
-    if (OutRemainder)
-    {
-        *OutRemainder = (UINT32) (InDividend % Divisor);
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_STATUS
-AcpiUtDivide (
-    ACPI_INTEGER            InDividend,
-    ACPI_INTEGER            InDivisor,
-    ACPI_INTEGER            *OutQuotient,
-    ACPI_INTEGER            *OutRemainder)
-{
-    ACPI_FUNCTION_TRACE (UtDivide);
-
-
-    /* Always check for a zero divisor */
-
-    if (InDivisor == 0)
-    {
-        ACPI_ERROR ((AE_INFO, "Divide by zero"));
-        return_ACPI_STATUS (AE_AML_DIVIDE_BY_ZERO);
-    }
-
-
-    /* Return only what was requested */
-
-    if (OutQuotient)
-    {
-        *OutQuotient = InDividend / InDivisor;
-    }
-    if (OutRemainder)
-    {
-        *OutRemainder = InDividend % InDivisor;
-    }
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-#endif
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utmisc.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utmisc.c
deleted file mode 100644 (file)
index bc27cd5..0000000
+++ /dev/null
@@ -1,1485 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utmisc - common utility procedures
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __UTMISC_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utmisc")
-
-/*
- * Common suffix for messages
- */
-#define ACPI_COMMON_MSG_SUFFIX \
-    AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtValidateException
- *
- * PARAMETERS:  Status       - The ACPI_STATUS code to be formatted
- *
- * RETURN:      A string containing the exception text. NULL if exception is
- *              not valid.
- *
- * DESCRIPTION: This function validates and translates an ACPI exception into
- *              an ASCII string.
- *
- ******************************************************************************/
-
-const char *
-AcpiUtValidateException (
-    ACPI_STATUS             Status)
-{
-    UINT32                  SubStatus;
-    const char              *Exception = NULL;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * Status is composed of two parts, a "type" and an actual code
-     */
-    SubStatus = (Status & ~AE_CODE_MASK);
-
-    switch (Status & AE_CODE_MASK)
-    {
-    case AE_CODE_ENVIRONMENTAL:
-
-        if (SubStatus <= AE_CODE_ENV_MAX)
-        {
-            Exception = AcpiGbl_ExceptionNames_Env [SubStatus];
-        }
-        break;
-
-    case AE_CODE_PROGRAMMER:
-
-        if (SubStatus <= AE_CODE_PGM_MAX)
-        {
-            Exception = AcpiGbl_ExceptionNames_Pgm [SubStatus];
-        }
-        break;
-
-    case AE_CODE_ACPI_TABLES:
-
-        if (SubStatus <= AE_CODE_TBL_MAX)
-        {
-            Exception = AcpiGbl_ExceptionNames_Tbl [SubStatus];
-        }
-        break;
-
-    case AE_CODE_AML:
-
-        if (SubStatus <= AE_CODE_AML_MAX)
-        {
-            Exception = AcpiGbl_ExceptionNames_Aml [SubStatus];
-        }
-        break;
-
-    case AE_CODE_CONTROL:
-
-        if (SubStatus <= AE_CODE_CTRL_MAX)
-        {
-            Exception = AcpiGbl_ExceptionNames_Ctrl [SubStatus];
-        }
-        break;
-
-    default:
-        break;
-    }
-
-    return (ACPI_CAST_PTR (const char, Exception));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtIsPciRootBridge
- *
- * PARAMETERS:  Id              - The HID/CID in string format
- *
- * RETURN:      TRUE if the Id is a match for a PCI/PCI-Express Root Bridge
- *
- * DESCRIPTION: Determine if the input ID is a PCI Root Bridge ID.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtIsPciRootBridge (
-    char                    *Id)
-{
-
-    /*
-     * Check if this is a PCI root bridge.
-     * ACPI 3.0+: check for a PCI Express root also.
-     */
-    if (!(ACPI_STRCMP (Id,
-            PCI_ROOT_HID_STRING)) ||
-
-        !(ACPI_STRCMP (Id,
-            PCI_EXPRESS_ROOT_HID_STRING)))
-    {
-        return (TRUE);
-    }
-
-    return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtIsAmlTable
- *
- * PARAMETERS:  Table               - An ACPI table
- *
- * RETURN:      TRUE if table contains executable AML; FALSE otherwise
- *
- * DESCRIPTION: Check ACPI Signature for a table that contains AML code.
- *              Currently, these are DSDT,SSDT,PSDT. All other table types are
- *              data tables that do not contain AML code.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtIsAmlTable (
-    ACPI_TABLE_HEADER       *Table)
-{
-
-    /* These are the only tables that contain executable AML */
-
-    if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT) ||
-        ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_PSDT) ||
-        ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_SSDT))
-    {
-        return (TRUE);
-    }
-
-    return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAllocateOwnerId
- *
- * PARAMETERS:  OwnerId         - Where the new owner ID is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Allocate a table or method owner ID. The owner ID is used to
- *              track objects created by the table or method, to be deleted
- *              when the method exits or the table is unloaded.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtAllocateOwnerId (
-    ACPI_OWNER_ID           *OwnerId)
-{
-    UINT32                  i;
-    UINT32                  j;
-    UINT32                  k;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtAllocateOwnerId);
-
-
-    /* Guard against multiple allocations of ID to the same location */
-
-    if (*OwnerId)
-    {
-        ACPI_ERROR ((AE_INFO, "Owner ID [%2.2X] already exists", *OwnerId));
-        return_ACPI_STATUS (AE_ALREADY_EXISTS);
-    }
-
-    /* Mutex for the global ID mask */
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_CACHES);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Find a free owner ID, cycle through all possible IDs on repeated
-     * allocations. (ACPI_NUM_OWNERID_MASKS + 1) because first index may have
-     * to be scanned twice.
-     */
-    for (i = 0, j = AcpiGbl_LastOwnerIdIndex;
-         i < (ACPI_NUM_OWNERID_MASKS + 1);
-         i++, j++)
-    {
-        if (j >= ACPI_NUM_OWNERID_MASKS)
-        {
-            j = 0;  /* Wraparound to start of mask array */
-        }
-
-        for (k = AcpiGbl_NextOwnerIdOffset; k < 32; k++)
-        {
-            if (AcpiGbl_OwnerIdMask[j] == ACPI_UINT32_MAX)
-            {
-                /* There are no free IDs in this mask */
-
-                break;
-            }
-
-            if (!(AcpiGbl_OwnerIdMask[j] & (1 << k)))
-            {
-                /*
-                 * Found a free ID. The actual ID is the bit index plus one,
-                 * making zero an invalid Owner ID. Save this as the last ID
-                 * allocated and update the global ID mask.
-                 */
-                AcpiGbl_OwnerIdMask[j] |= (1 << k);
-
-                AcpiGbl_LastOwnerIdIndex = (UINT8) j;
-                AcpiGbl_NextOwnerIdOffset = (UINT8) (k + 1);
-
-                /*
-                 * Construct encoded ID from the index and bit position
-                 *
-                 * Note: Last [j].k (bit 255) is never used and is marked
-                 * permanently allocated (prevents +1 overflow)
-                 */
-                *OwnerId = (ACPI_OWNER_ID) ((k + 1) + ACPI_MUL_32 (j));
-
-                ACPI_DEBUG_PRINT ((ACPI_DB_VALUES,
-                    "Allocated OwnerId: %2.2X\n", (unsigned int) *OwnerId));
-                goto Exit;
-            }
-        }
-
-        AcpiGbl_NextOwnerIdOffset = 0;
-    }
-
-    /*
-     * All OwnerIds have been allocated. This typically should
-     * not happen since the IDs are reused after deallocation. The IDs are
-     * allocated upon table load (one per table) and method execution, and
-     * they are released when a table is unloaded or a method completes
-     * execution.
-     *
-     * If this error happens, there may be very deep nesting of invoked control
-     * methods, or there may be a bug where the IDs are not released.
-     */
-    Status = AE_OWNER_ID_LIMIT;
-    ACPI_ERROR ((AE_INFO,
-        "Could not allocate new OwnerId (255 max), AE_OWNER_ID_LIMIT"));
-
-Exit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtReleaseOwnerId
- *
- * PARAMETERS:  OwnerIdPtr          - Pointer to a previously allocated OwnerID
- *
- * RETURN:      None. No error is returned because we are either exiting a
- *              control method or unloading a table. Either way, we would
- *              ignore any error anyway.
- *
- * DESCRIPTION: Release a table or method owner ID.  Valid IDs are 1 - 255
- *
- ******************************************************************************/
-
-void
-AcpiUtReleaseOwnerId (
-    ACPI_OWNER_ID           *OwnerIdPtr)
-{
-    ACPI_OWNER_ID           OwnerId = *OwnerIdPtr;
-    ACPI_STATUS             Status;
-    UINT32                  Index;
-    UINT32                  Bit;
-
-
-    ACPI_FUNCTION_TRACE_U32 (UtReleaseOwnerId, OwnerId);
-
-
-    /* Always clear the input OwnerId (zero is an invalid ID) */
-
-    *OwnerIdPtr = 0;
-
-    /* Zero is not a valid OwnerID */
-
-    if (OwnerId == 0)
-    {
-        ACPI_ERROR ((AE_INFO, "Invalid OwnerId: %2.2X", OwnerId));
-        return_VOID;
-    }
-
-    /* Mutex for the global ID mask */
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_CACHES);
-    if (ACPI_FAILURE (Status))
-    {
-        return_VOID;
-    }
-
-    /* Normalize the ID to zero */
-
-    OwnerId--;
-
-    /* Decode ID to index/offset pair */
-
-    Index = ACPI_DIV_32 (OwnerId);
-    Bit = 1 << ACPI_MOD_32 (OwnerId);
-
-    /* Free the owner ID only if it is valid */
-
-    if (AcpiGbl_OwnerIdMask[Index] & Bit)
-    {
-        AcpiGbl_OwnerIdMask[Index] ^= Bit;
-    }
-    else
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Release of non-allocated OwnerId: %2.2X", OwnerId + 1));
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrupr (strupr)
- *
- * PARAMETERS:  SrcString       - The source string to convert
- *
- * RETURN:      None
- *
- * DESCRIPTION: Convert string to uppercase
- *
- * NOTE: This is not a POSIX function, so it appears here, not in utclib.c
- *
- ******************************************************************************/
-
-void
-AcpiUtStrupr (
-    char                    *SrcString)
-{
-    char                    *String;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if (!SrcString)
-    {
-        return;
-    }
-
-    /* Walk entire string, uppercasing the letters */
-
-    for (String = SrcString; *String; String++)
-    {
-        *String = (char) ACPI_TOUPPER (*String);
-    }
-
-    return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtPrintString
- *
- * PARAMETERS:  String          - Null terminated ASCII string
- *              MaxLength       - Maximum output length
- *
- * RETURN:      None
- *
- * DESCRIPTION: Dump an ASCII string with support for ACPI-defined escape
- *              sequences.
- *
- ******************************************************************************/
-
-void
-AcpiUtPrintString (
-    char                    *String,
-    UINT8                   MaxLength)
-{
-    UINT32                  i;
-
-
-    if (!String)
-    {
-        AcpiOsPrintf ("<\"NULL STRING PTR\">");
-        return;
-    }
-
-    AcpiOsPrintf ("\"");
-    for (i = 0; String[i] && (i < MaxLength); i++)
-    {
-        /* Escape sequences */
-
-        switch (String[i])
-        {
-        case 0x07:
-            AcpiOsPrintf ("\\a");       /* BELL */
-            break;
-
-        case 0x08:
-            AcpiOsPrintf ("\\b");       /* BACKSPACE */
-            break;
-
-        case 0x0C:
-            AcpiOsPrintf ("\\f");       /* FORMFEED */
-            break;
-
-        case 0x0A:
-            AcpiOsPrintf ("\\n");       /* LINEFEED */
-            break;
-
-        case 0x0D:
-            AcpiOsPrintf ("\\r");       /* CARRIAGE RETURN*/
-            break;
-
-        case 0x09:
-            AcpiOsPrintf ("\\t");       /* HORIZONTAL TAB */
-            break;
-
-        case 0x0B:
-            AcpiOsPrintf ("\\v");       /* VERTICAL TAB */
-            break;
-
-        case '\'':                      /* Single Quote */
-        case '\"':                      /* Double Quote */
-        case '\\':                      /* Backslash */
-            AcpiOsPrintf ("\\%c", (int) String[i]);
-            break;
-
-        default:
-
-            /* Check for printable character or hex escape */
-
-            if (ACPI_IS_PRINT (String[i]))
-            {
-                /* This is a normal character */
-
-                AcpiOsPrintf ("%c", (int) String[i]);
-            }
-            else
-            {
-                /* All others will be Hex escapes */
-
-                AcpiOsPrintf ("\\x%2.2X", (INT32) String[i]);
-            }
-            break;
-        }
-    }
-    AcpiOsPrintf ("\"");
-
-    if (i == MaxLength && String[i])
-    {
-        AcpiOsPrintf ("...");
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDwordByteSwap
- *
- * PARAMETERS:  Value           - Value to be converted
- *
- * RETURN:      UINT32 integer with bytes swapped
- *
- * DESCRIPTION: Convert a 32-bit value to big-endian (swap the bytes)
- *
- ******************************************************************************/
-
-UINT32
-AcpiUtDwordByteSwap (
-    UINT32                  Value)
-{
-    union
-    {
-        UINT32              Value;
-        UINT8               Bytes[4];
-    } Out;
-    union
-    {
-        UINT32              Value;
-        UINT8               Bytes[4];
-    } In;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    In.Value = Value;
-
-    Out.Bytes[0] = In.Bytes[3];
-    Out.Bytes[1] = In.Bytes[2];
-    Out.Bytes[2] = In.Bytes[1];
-    Out.Bytes[3] = In.Bytes[0];
-
-    return (Out.Value);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtSetIntegerWidth
- *
- * PARAMETERS:  Revision            From DSDT header
- *
- * RETURN:      None
- *
- * DESCRIPTION: Set the global integer bit width based upon the revision
- *              of the DSDT.  For Revision 1 and 0, Integers are 32 bits.
- *              For Revision 2 and above, Integers are 64 bits.  Yes, this
- *              makes a difference.
- *
- ******************************************************************************/
-
-void
-AcpiUtSetIntegerWidth (
-    UINT8                   Revision)
-{
-
-    if (Revision < 2)
-    {
-        /* 32-bit case */
-
-        AcpiGbl_IntegerBitWidth    = 32;
-        AcpiGbl_IntegerNybbleWidth = 8;
-        AcpiGbl_IntegerByteWidth   = 4;
-    }
-    else
-    {
-        /* 64-bit case (ACPI 2.0+) */
-
-        AcpiGbl_IntegerBitWidth    = 64;
-        AcpiGbl_IntegerNybbleWidth = 16;
-        AcpiGbl_IntegerByteWidth   = 8;
-    }
-}
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDisplayInitPathname
- *
- * PARAMETERS:  Type                - Object type of the node
- *              ObjHandle           - Handle whose pathname will be displayed
- *              Path                - Additional path string to be appended.
- *                                      (NULL if no extra path)
- *
- * RETURN:      ACPI_STATUS
- *
- * DESCRIPTION: Display full pathname of an object, DEBUG ONLY
- *
- ******************************************************************************/
-
-void
-AcpiUtDisplayInitPathname (
-    UINT8                   Type,
-    ACPI_NAMESPACE_NODE     *ObjHandle,
-    char                    *Path)
-{
-    ACPI_STATUS             Status;
-    ACPI_BUFFER             Buffer;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Only print the path if the appropriate debug level is enabled */
-
-    if (!(AcpiDbgLevel & ACPI_LV_INIT_NAMES))
-    {
-        return;
-    }
-
-    /* Get the full pathname to the node */
-
-    Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-    Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
-    if (ACPI_FAILURE (Status))
-    {
-        return;
-    }
-
-    /* Print what we're doing */
-
-    switch (Type)
-    {
-    case ACPI_TYPE_METHOD:
-        AcpiOsPrintf ("Executing    ");
-        break;
-
-    default:
-        AcpiOsPrintf ("Initializing ");
-        break;
-    }
-
-    /* Print the object type and pathname */
-
-    AcpiOsPrintf ("%-12s  %s",
-        AcpiUtGetTypeName (Type), (char *) Buffer.Pointer);
-
-    /* Extra path is used to append names like _STA, _INI, etc. */
-
-    if (Path)
-    {
-        AcpiOsPrintf (".%s", Path);
-    }
-    AcpiOsPrintf ("\n");
-
-    ACPI_FREE (Buffer.Pointer);
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtValidAcpiChar
- *
- * PARAMETERS:  Char            - The character to be examined
- *              Position        - Byte position (0-3)
- *
- * RETURN:      TRUE if the character is valid, FALSE otherwise
- *
- * DESCRIPTION: Check for a valid ACPI character. Must be one of:
- *              1) Upper case alpha
- *              2) numeric
- *              3) underscore
- *
- *              We allow a '!' as the last character because of the ASF! table
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtValidAcpiChar (
-    char                    Character,
-    UINT32                  Position)
-{
-
-    if (!((Character >= 'A' && Character <= 'Z') ||
-          (Character >= '0' && Character <= '9') ||
-          (Character == '_')))
-    {
-        /* Allow a '!' in the last position */
-
-        if (Character == '!' && Position == 3)
-        {
-            return (TRUE);
-        }
-
-        return (FALSE);
-    }
-
-    return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtValidAcpiName
- *
- * PARAMETERS:  Name            - The name to be examined
- *
- * RETURN:      TRUE if the name is valid, FALSE otherwise
- *
- * DESCRIPTION: Check for a valid ACPI name.  Each character must be one of:
- *              1) Upper case alpha
- *              2) numeric
- *              3) underscore
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtValidAcpiName (
-    UINT32                  Name)
-{
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    for (i = 0; i < ACPI_NAME_SIZE; i++)
-    {
-        if (!AcpiUtValidAcpiChar ((ACPI_CAST_PTR (char, &Name))[i], i))
-        {
-            return (FALSE);
-        }
-    }
-
-    return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtRepairName
- *
- * PARAMETERS:  Name            - The ACPI name to be repaired
- *
- * RETURN:      Repaired version of the name
- *
- * DESCRIPTION: Repair an ACPI name: Change invalid characters to '*' and
- *              return the new name. NOTE: the Name parameter must reside in
- *              read/write memory, cannot be a const.
- *
- * An ACPI Name must consist of valid ACPI characters. We will repair the name
- * if necessary because we don't want to abort because of this, but we want
- * all namespace names to be printable. A warning message is appropriate.
- *
- * This issue came up because there are in fact machines that exhibit
- * this problem, and we want to be able to enable ACPI support for them,
- * even though there are a few bad names.
- *
- ******************************************************************************/
-
-void
-AcpiUtRepairName (
-    char                    *Name)
-{
-    UINT32                  i;
-    BOOLEAN                 FoundBadChar = FALSE;
-
-
-    ACPI_FUNCTION_NAME (UtRepairName);
-
-
-    /* Check each character in the name */
-
-    for (i = 0; i < ACPI_NAME_SIZE; i++)
-    {
-        if (AcpiUtValidAcpiChar (Name[i], i))
-        {
-            continue;
-        }
-
-        /*
-         * Replace a bad character with something printable, yet technically
-         * still invalid. This prevents any collisions with existing "good"
-         * names in the namespace.
-         */
-        Name[i] = '*';
-        FoundBadChar = TRUE;
-    }
-
-    if (FoundBadChar)
-    {
-        /* Report warning only if in strict mode or debug mode */
-
-        if (!AcpiGbl_EnableInterpreterSlack)
-        {
-            ACPI_WARNING ((AE_INFO,
-                "Found bad character(s) in name, repaired: [%4.4s]\n", Name));
-        }
-        else
-        {
-            ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                "Found bad character(s) in name, repaired: [%4.4s]\n", Name));
-        }
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtStrtoul64
- *
- * PARAMETERS:  String          - Null terminated string
- *              Base            - Radix of the string: 16 or ACPI_ANY_BASE;
- *                                ACPI_ANY_BASE means 'in behalf of ToInteger'
- *              RetInteger      - Where the converted integer is returned
- *
- * RETURN:      Status and Converted value
- *
- * DESCRIPTION: Convert a string into an unsigned value. Performs either a
- *              32-bit or 64-bit conversion, depending on the current mode
- *              of the interpreter.
- *              NOTE: Does not support Octal strings, not needed.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtStrtoul64 (
-    char                    *String,
-    UINT32                  Base,
-    ACPI_INTEGER            *RetInteger)
-{
-    UINT32                  ThisDigit = 0;
-    ACPI_INTEGER            ReturnValue = 0;
-    ACPI_INTEGER            Quotient;
-    ACPI_INTEGER            Dividend;
-    UINT32                  ToIntegerOp = (Base == ACPI_ANY_BASE);
-    UINT32                  Mode32 = (AcpiGbl_IntegerByteWidth == 4);
-    UINT8                   ValidDigits = 0;
-    UINT8                   SignOf0x = 0;
-    UINT8                   Term = 0;
-
-
-    ACPI_FUNCTION_TRACE_STR (UtStroul64, String);
-
-
-    switch (Base)
-    {
-    case ACPI_ANY_BASE:
-    case 16:
-        break;
-
-    default:
-        /* Invalid Base */
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (!String)
-    {
-        goto ErrorExit;
-    }
-
-    /* Skip over any white space in the buffer */
-
-    while ((*String) && (ACPI_IS_SPACE (*String) || *String == '\t'))
-    {
-        String++;
-    }
-
-    if (ToIntegerOp)
-    {
-        /*
-         * Base equal to ACPI_ANY_BASE means 'ToInteger operation case'.
-         * We need to determine if it is decimal or hexadecimal.
-         */
-        if ((*String == '0') && (ACPI_TOLOWER (*(String + 1)) == 'x'))
-        {
-            SignOf0x = 1;
-            Base = 16;
-
-            /* Skip over the leading '0x' */
-            String += 2;
-        }
-        else
-        {
-            Base = 10;
-        }
-    }
-
-    /* Any string left? Check that '0x' is not followed by white space. */
-
-    if (!(*String) || ACPI_IS_SPACE (*String) || *String == '\t')
-    {
-        if (ToIntegerOp)
-        {
-            goto ErrorExit;
-        }
-        else
-        {
-            goto AllDone;
-        }
-    }
-
-    /*
-     * Perform a 32-bit or 64-bit conversion, depending upon the current
-     * execution mode of the interpreter
-     */
-    Dividend = (Mode32) ? ACPI_UINT32_MAX : ACPI_UINT64_MAX;
-
-    /* Main loop: convert the string to a 32- or 64-bit integer */
-
-    while (*String)
-    {
-        if (ACPI_IS_DIGIT (*String))
-        {
-            /* Convert ASCII 0-9 to Decimal value */
-
-            ThisDigit = ((UINT8) *String) - '0';
-        }
-        else if (Base == 10)
-        {
-            /* Digit is out of range; possible in ToInteger case only */
-
-            Term = 1;
-        }
-        else
-        {
-            ThisDigit = (UINT8) ACPI_TOUPPER (*String);
-            if (ACPI_IS_XDIGIT ((char) ThisDigit))
-            {
-                /* Convert ASCII Hex char to value */
-
-                ThisDigit = ThisDigit - 'A' + 10;
-            }
-            else
-            {
-                Term = 1;
-            }
-        }
-
-        if (Term)
-        {
-            if (ToIntegerOp)
-            {
-                goto ErrorExit;
-            }
-            else
-            {
-                break;
-            }
-        }
-        else if ((ValidDigits == 0) && (ThisDigit == 0) && !SignOf0x)
-        {
-            /* Skip zeros */
-            String++;
-            continue;
-        }
-
-        ValidDigits++;
-
-        if (SignOf0x && ((ValidDigits > 16) || ((ValidDigits > 8) && Mode32)))
-        {
-            /*
-             * This is ToInteger operation case.
-             * No any restrictions for string-to-integer conversion,
-             * see ACPI spec.
-             */
-            goto ErrorExit;
-        }
-
-        /* Divide the digit into the correct position */
-
-        (void) AcpiUtShortDivide ((Dividend - (ACPI_INTEGER) ThisDigit),
-                    Base, &Quotient, NULL);
-
-        if (ReturnValue > Quotient)
-        {
-            if (ToIntegerOp)
-            {
-                goto ErrorExit;
-            }
-            else
-            {
-                break;
-            }
-        }
-
-        ReturnValue *= Base;
-        ReturnValue += ThisDigit;
-        String++;
-    }
-
-    /* All done, normal exit */
-
-AllDone:
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Converted value: %8.8X%8.8X\n",
-        ACPI_FORMAT_UINT64 (ReturnValue)));
-
-    *RetInteger = ReturnValue;
-    return_ACPI_STATUS (AE_OK);
-
-
-ErrorExit:
-    /* Base was set/validated above */
-
-    if (Base == 10)
-    {
-        return_ACPI_STATUS (AE_BAD_DECIMAL_CONSTANT);
-    }
-    else
-    {
-        return_ACPI_STATUS (AE_BAD_HEX_CONSTANT);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateUpdateStateAndPush
- *
- * PARAMETERS:  Object          - Object to be added to the new state
- *              Action          - Increment/Decrement
- *              StateList       - List the state will be added to
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new state and push it
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCreateUpdateStateAndPush (
-    ACPI_OPERAND_OBJECT     *Object,
-    UINT16                  Action,
-    ACPI_GENERIC_STATE      **StateList)
-{
-    ACPI_GENERIC_STATE       *State;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Ignore null objects; these are expected */
-
-    if (!Object)
-    {
-        return (AE_OK);
-    }
-
-    State = AcpiUtCreateUpdateState (Object, Action);
-    if (!State)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    AcpiUtPushGenericState (StateList, State);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtWalkPackageTree
- *
- * PARAMETERS:  SourceObject        - The package to walk
- *              TargetObject        - Target object (if package is being copied)
- *              WalkCallback        - Called once for each package element
- *              Context             - Passed to the callback function
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Walk through a package
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtWalkPackageTree (
-    ACPI_OPERAND_OBJECT     *SourceObject,
-    void                    *TargetObject,
-    ACPI_PKG_CALLBACK       WalkCallback,
-    void                    *Context)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_GENERIC_STATE      *StateList = NULL;
-    ACPI_GENERIC_STATE      *State;
-    UINT32                  ThisIndex;
-    ACPI_OPERAND_OBJECT     *ThisSourceObj;
-
-
-    ACPI_FUNCTION_TRACE (UtWalkPackageTree);
-
-
-    State = AcpiUtCreatePkgState (SourceObject, TargetObject, 0);
-    if (!State)
-    {
-        return_ACPI_STATUS (AE_NO_MEMORY);
-    }
-
-    while (State)
-    {
-        /* Get one element of the package */
-
-        ThisIndex     = State->Pkg.Index;
-        ThisSourceObj = (ACPI_OPERAND_OBJECT *)
-                        State->Pkg.SourceObject->Package.Elements[ThisIndex];
-
-        /*
-         * Check for:
-         * 1) An uninitialized package element.  It is completely
-         *    legal to declare a package and leave it uninitialized
-         * 2) Not an internal object - can be a namespace node instead
-         * 3) Any type other than a package.  Packages are handled in else
-         *    case below.
-         */
-        if ((!ThisSourceObj) ||
-            (ACPI_GET_DESCRIPTOR_TYPE (ThisSourceObj) != ACPI_DESC_TYPE_OPERAND) ||
-            (ThisSourceObj->Common.Type != ACPI_TYPE_PACKAGE))
-        {
-            Status = WalkCallback (ACPI_COPY_TYPE_SIMPLE, ThisSourceObj,
-                                    State, Context);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-
-            State->Pkg.Index++;
-            while (State->Pkg.Index >= State->Pkg.SourceObject->Package.Count)
-            {
-                /*
-                 * We've handled all of the objects at this level,  This means
-                 * that we have just completed a package.  That package may
-                 * have contained one or more packages itself.
-                 *
-                 * Delete this state and pop the previous state (package).
-                 */
-                AcpiUtDeleteGenericState (State);
-                State = AcpiUtPopGenericState (&StateList);
-
-                /* Finished when there are no more states */
-
-                if (!State)
-                {
-                    /*
-                     * We have handled all of the objects in the top level
-                     * package just add the length of the package objects
-                     * and exit
-                     */
-                    return_ACPI_STATUS (AE_OK);
-                }
-
-                /*
-                 * Go back up a level and move the index past the just
-                 * completed package object.
-                 */
-                State->Pkg.Index++;
-            }
-        }
-        else
-        {
-            /* This is a subobject of type package */
-
-            Status = WalkCallback (ACPI_COPY_TYPE_PACKAGE, ThisSourceObj,
-                                        State, Context);
-            if (ACPI_FAILURE (Status))
-            {
-                return_ACPI_STATUS (Status);
-            }
-
-            /*
-             * Push the current state and create a new one
-             * The callback above returned a new target package object.
-             */
-            AcpiUtPushGenericState (&StateList, State);
-            State = AcpiUtCreatePkgState (ThisSourceObj,
-                                            State->Pkg.ThisTargetObj, 0);
-            if (!State)
-            {
-                /* Free any stacked Update State objects */
-
-                while (StateList)
-                {
-                    State = AcpiUtPopGenericState (&StateList);
-                    AcpiUtDeleteGenericState (State);
-                }
-                return_ACPI_STATUS (AE_NO_MEMORY);
-            }
-        }
-    }
-
-    /* We should never get here */
-
-    return_ACPI_STATUS (AE_AML_INTERNAL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiError, AcpiException, AcpiWarning, AcpiInfo
- *
- * PARAMETERS:  ModuleName          - Caller's module name (for error output)
- *              LineNumber          - Caller's line number (for error output)
- *              Format              - Printf format string + additional args
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print message with module/line/version info
- *
- ******************************************************************************/
-
-void  ACPI_INTERNAL_VAR_XFACE
-AcpiError (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    const char              *Format,
-    ...)
-{
-    va_list                 args;
-
-
-    AcpiOsPrintf ("ACPI Error: ");
-
-    va_start (args, Format);
-    AcpiOsVprintf (Format, args);
-    ACPI_COMMON_MSG_SUFFIX;
-    va_end (args);
-}
-
-void  ACPI_INTERNAL_VAR_XFACE
-AcpiException (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    ACPI_STATUS             Status,
-    const char              *Format,
-    ...)
-{
-    va_list                 args;
-
-
-    AcpiOsPrintf ("ACPI Exception: %s, ", AcpiFormatException (Status));
-
-    va_start (args, Format);
-    AcpiOsVprintf (Format, args);
-    ACPI_COMMON_MSG_SUFFIX;
-    va_end (args);
-}
-
-void  ACPI_INTERNAL_VAR_XFACE
-AcpiWarning (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    const char              *Format,
-    ...)
-{
-    va_list                 args;
-
-
-    AcpiOsPrintf ("ACPI Warning: ");
-
-    va_start (args, Format);
-    AcpiOsVprintf (Format, args);
-    ACPI_COMMON_MSG_SUFFIX;
-    va_end (args);
-}
-
-void  ACPI_INTERNAL_VAR_XFACE
-AcpiInfo (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    const char              *Format,
-    ...)
-{
-    va_list                 args;
-
-
-    AcpiOsPrintf ("ACPI: ");
-
-    va_start (args, Format);
-    AcpiOsVprintf (Format, args);
-    AcpiOsPrintf ("\n");
-    va_end (args);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiError)
-ACPI_EXPORT_SYMBOL (AcpiException)
-ACPI_EXPORT_SYMBOL (AcpiWarning)
-ACPI_EXPORT_SYMBOL (AcpiInfo)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtPredefinedWarning
- *
- * PARAMETERS:  ModuleName      - Caller's module name (for error output)
- *              LineNumber      - Caller's line number (for error output)
- *              Pathname        - Full pathname to the node
- *              NodeFlags       - From Namespace node for the method/object
- *              Format          - Printf format string + additional args
- *
- * RETURN:      None
- *
- * DESCRIPTION: Warnings for the predefined validation module. Messages are
- *              only emitted the first time a problem with a particular
- *              method/object is detected. This prevents a flood of error
- *              messages for methods that are repeatedly evaluated.
- *
- ******************************************************************************/
-
-void  ACPI_INTERNAL_VAR_XFACE
-AcpiUtPredefinedWarning (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    char                    *Pathname,
-    UINT8                   NodeFlags,
-    const char              *Format,
-    ...)
-{
-    va_list                 args;
-
-
-    /*
-     * Warning messages for this method/object will be disabled after the
-     * first time a validation fails or an object is successfully repaired.
-     */
-    if (NodeFlags & ANOBJ_EVALUATED)
-    {
-        return;
-    }
-
-    AcpiOsPrintf ("ACPI Warning for %s: ", Pathname);
-
-    va_start (args, Format);
-    AcpiOsVprintf (Format, args);
-    ACPI_COMMON_MSG_SUFFIX;
-    va_end (args);
-}
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtPredefinedInfo
- *
- * PARAMETERS:  ModuleName      - Caller's module name (for error output)
- *              LineNumber      - Caller's line number (for error output)
- *              Pathname        - Full pathname to the node
- *              NodeFlags       - From Namespace node for the method/object
- *              Format          - Printf format string + additional args
- *
- * RETURN:      None
- *
- * DESCRIPTION: Info messages for the predefined validation module. Messages
- *              are only emitted the first time a problem with a particular
- *              method/object is detected. This prevents a flood of
- *              messages for methods that are repeatedly evaluated.
- *
- ******************************************************************************/
-
-void  ACPI_INTERNAL_VAR_XFACE
-AcpiUtPredefinedInfo (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    char                    *Pathname,
-    UINT8                   NodeFlags,
-    const char              *Format,
-    ...)
-{
-    va_list                 args;
-
-
-    /*
-     * Warning messages for this method/object will be disabled after the
-     * first time a validation fails or an object is successfully repaired.
-     */
-    if (NodeFlags & ANOBJ_EVALUATED)
-    {
-        return;
-    }
-
-    AcpiOsPrintf ("ACPI Info for %s: ", Pathname);
-
-    va_start (args, Format);
-    AcpiOsVprintf (Format, args);
-    ACPI_COMMON_MSG_SUFFIX;
-    va_end (args);
-}
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utmutex.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utmutex.c
deleted file mode 100644 (file)
index f6e7cc3..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utmutex - local mutex support
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __UTMUTEX_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utmutex")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiUtCreateMutex (
-    ACPI_MUTEX_HANDLE       MutexId);
-
-static ACPI_STATUS
-AcpiUtDeleteMutex (
-    ACPI_MUTEX_HANDLE       MutexId);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtMutexInitialize
- *
- * PARAMETERS:  None.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create the system mutex objects. This includes mutexes,
- *              spin locks, and reader/writer locks.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtMutexInitialize (
-    void)
-{
-    UINT32                  i;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtMutexInitialize);
-
-
-    /* Create each of the predefined mutex objects */
-
-    for (i = 0; i < ACPI_NUM_MUTEX; i++)
-    {
-        Status = AcpiUtCreateMutex (i);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /* Create the spinlocks for use at interrupt level */
-
-    Status = AcpiOsCreateLock (&AcpiGbl_GpeLock);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    Status = AcpiOsCreateLock (&AcpiGbl_HardwareLock);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Create the reader/writer lock for namespace access */
-
-    Status = AcpiUtCreateRwLock (&AcpiGbl_NamespaceRwLock);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtMutexTerminate
- *
- * PARAMETERS:  None.
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Delete all of the system mutex objects. This includes mutexes,
- *              spin locks, and reader/writer locks.
- *
- ******************************************************************************/
-
-void
-AcpiUtMutexTerminate (
-    void)
-{
-    UINT32                  i;
-
-
-    ACPI_FUNCTION_TRACE (UtMutexTerminate);
-
-
-    /* Delete each predefined mutex object */
-
-    for (i = 0; i < ACPI_NUM_MUTEX; i++)
-    {
-        (void) AcpiUtDeleteMutex (i);
-    }
-
-    /* Delete the spinlocks */
-
-    AcpiOsDeleteLock (AcpiGbl_GpeLock);
-    AcpiOsDeleteLock (AcpiGbl_HardwareLock);
-
-    /* Delete the reader/writer lock */
-
-    AcpiUtDeleteRwLock (&AcpiGbl_NamespaceRwLock);
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateMutex
- *
- * PARAMETERS:  MutexID         - ID of the mutex to be created
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a mutex object.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCreateMutex (
-    ACPI_MUTEX_HANDLE       MutexId)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_U32 (UtCreateMutex, MutexId);
-
-
-    if (MutexId > ACPI_MAX_MUTEX)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    if (!AcpiGbl_MutexInfo[MutexId].Mutex)
-    {
-        Status = AcpiOsCreateMutex (&AcpiGbl_MutexInfo[MutexId].Mutex);
-        AcpiGbl_MutexInfo[MutexId].ThreadId = ACPI_MUTEX_NOT_ACQUIRED;
-        AcpiGbl_MutexInfo[MutexId].UseCount = 0;
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDeleteMutex
- *
- * PARAMETERS:  MutexID         - ID of the mutex to be deleted
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Delete a mutex object.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtDeleteMutex (
-    ACPI_MUTEX_HANDLE       MutexId)
-{
-
-    ACPI_FUNCTION_TRACE_U32 (UtDeleteMutex, MutexId);
-
-
-    if (MutexId > ACPI_MAX_MUTEX)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    AcpiOsDeleteMutex (AcpiGbl_MutexInfo[MutexId].Mutex);
-
-    AcpiGbl_MutexInfo[MutexId].Mutex = NULL;
-    AcpiGbl_MutexInfo[MutexId].ThreadId = ACPI_MUTEX_NOT_ACQUIRED;
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAcquireMutex
- *
- * PARAMETERS:  MutexID         - ID of the mutex to be acquired
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Acquire a mutex object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtAcquireMutex (
-    ACPI_MUTEX_HANDLE       MutexId)
-{
-    ACPI_STATUS             Status;
-    ACPI_THREAD_ID          ThisThreadId;
-
-
-    ACPI_FUNCTION_NAME (UtAcquireMutex);
-
-
-    if (MutexId > ACPI_MAX_MUTEX)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    ThisThreadId = AcpiOsGetThreadId ();
-
-#ifdef ACPI_MUTEX_DEBUG
-    {
-        UINT32                  i;
-        /*
-         * Mutex debug code, for internal debugging only.
-         *
-         * Deadlock prevention.  Check if this thread owns any mutexes of value
-         * greater than or equal to this one.  If so, the thread has violated
-         * the mutex ordering rule.  This indicates a coding error somewhere in
-         * the ACPI subsystem code.
-         */
-        for (i = MutexId; i < ACPI_NUM_MUTEX; i++)
-        {
-            if (AcpiGbl_MutexInfo[i].ThreadId == ThisThreadId)
-            {
-                if (i == MutexId)
-                {
-                    ACPI_ERROR ((AE_INFO,
-                        "Mutex [%s] already acquired by this thread [%p]",
-                        AcpiUtGetMutexName (MutexId),
-                        ACPI_CAST_PTR (void, ThisThreadId)));
-
-                    return (AE_ALREADY_ACQUIRED);
-                }
-
-                ACPI_ERROR ((AE_INFO,
-                    "Invalid acquire order: Thread %p owns [%s], wants [%s]",
-                    ACPI_CAST_PTR (void, ThisThreadId), AcpiUtGetMutexName (i),
-                    AcpiUtGetMutexName (MutexId)));
-
-                return (AE_ACQUIRE_DEADLOCK);
-            }
-        }
-    }
-#endif
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX,
-        "Thread %p attempting to acquire Mutex [%s]\n",
-        ACPI_CAST_PTR (void, ThisThreadId), AcpiUtGetMutexName (MutexId)));
-
-    Status = AcpiOsAcquireMutex (AcpiGbl_MutexInfo[MutexId].Mutex,
-                ACPI_WAIT_FOREVER);
-    if (ACPI_SUCCESS (Status))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Thread %p acquired Mutex [%s]\n",
-            ACPI_CAST_PTR (void, ThisThreadId), AcpiUtGetMutexName (MutexId)));
-
-        AcpiGbl_MutexInfo[MutexId].UseCount++;
-        AcpiGbl_MutexInfo[MutexId].ThreadId = ThisThreadId;
-    }
-    else
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "Thread %p could not acquire Mutex [%X]",
-            ACPI_CAST_PTR (void, ThisThreadId), MutexId));
-    }
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtReleaseMutex
- *
- * PARAMETERS:  MutexID         - ID of the mutex to be released
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Release a mutex object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtReleaseMutex (
-    ACPI_MUTEX_HANDLE       MutexId)
-{
-    ACPI_THREAD_ID          ThisThreadId;
-
-
-    ACPI_FUNCTION_NAME (UtReleaseMutex);
-
-
-    ThisThreadId = AcpiOsGetThreadId ();
-    ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Thread %p releasing Mutex [%s]\n",
-        ACPI_CAST_PTR (void, ThisThreadId), AcpiUtGetMutexName (MutexId)));
-
-    if (MutexId > ACPI_MAX_MUTEX)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    /*
-     * Mutex must be acquired in order to release it!
-     */
-    if (AcpiGbl_MutexInfo[MutexId].ThreadId == ACPI_MUTEX_NOT_ACQUIRED)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "Mutex [%X] is not acquired, cannot release", MutexId));
-
-        return (AE_NOT_ACQUIRED);
-    }
-
-#ifdef ACPI_MUTEX_DEBUG
-    {
-        UINT32                  i;
-        /*
-         * Mutex debug code, for internal debugging only.
-         *
-         * Deadlock prevention.  Check if this thread owns any mutexes of value
-         * greater than this one.  If so, the thread has violated the mutex
-         * ordering rule.  This indicates a coding error somewhere in
-         * the ACPI subsystem code.
-         */
-        for (i = MutexId; i < ACPI_NUM_MUTEX; i++)
-        {
-            if (AcpiGbl_MutexInfo[i].ThreadId == ThisThreadId)
-            {
-                if (i == MutexId)
-                {
-                    continue;
-                }
-
-                ACPI_ERROR ((AE_INFO,
-                    "Invalid release order: owns [%s], releasing [%s]",
-                    AcpiUtGetMutexName (i), AcpiUtGetMutexName (MutexId)));
-
-                return (AE_RELEASE_DEADLOCK);
-            }
-        }
-    }
-#endif
-
-    /* Mark unlocked FIRST */
-
-    AcpiGbl_MutexInfo[MutexId].ThreadId = ACPI_MUTEX_NOT_ACQUIRED;
-
-    AcpiOsReleaseMutex (AcpiGbl_MutexInfo[MutexId].Mutex);
-    return (AE_OK);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utobject.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utobject.c
deleted file mode 100644 (file)
index 5164744..0000000
+++ /dev/null
@@ -1,859 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utobject - ACPI object create/delete/size/cache routines
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#define __UTOBJECT_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utobject")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiUtGetSimpleObjectSize (
-    ACPI_OPERAND_OBJECT     *Obj,
-    ACPI_SIZE               *ObjLength);
-
-static ACPI_STATUS
-AcpiUtGetPackageObjectSize (
-    ACPI_OPERAND_OBJECT     *Obj,
-    ACPI_SIZE               *ObjLength);
-
-static ACPI_STATUS
-AcpiUtGetElementLength (
-    UINT8                   ObjectType,
-    ACPI_OPERAND_OBJECT     *SourceObject,
-    ACPI_GENERIC_STATE      *State,
-    void                    *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateInternalObjectDbg
- *
- * PARAMETERS:  ModuleName          - Source file name of caller
- *              LineNumber          - Line number of caller
- *              ComponentId         - Component type of caller
- *              Type                - ACPI Type of the new object
- *
- * RETURN:      A new internal object, null on failure
- *
- * DESCRIPTION: Create and initialize a new internal object.
- *
- * NOTE:        We always allocate the worst-case object descriptor because
- *              these objects are cached, and we want them to be
- *              one-size-satisifies-any-request.  This in itself may not be
- *              the most memory efficient, but the efficiency of the object
- *              cache should more than make up for this!
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT  *
-AcpiUtCreateInternalObjectDbg (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    UINT32                  ComponentId,
-    ACPI_OBJECT_TYPE        Type)
-{
-    ACPI_OPERAND_OBJECT     *Object;
-    ACPI_OPERAND_OBJECT     *SecondObject;
-
-
-    ACPI_FUNCTION_TRACE_STR (UtCreateInternalObjectDbg,
-        AcpiUtGetTypeName (Type));
-
-
-    /* Allocate the raw object descriptor */
-
-    Object = AcpiUtAllocateObjectDescDbg (ModuleName, LineNumber, ComponentId);
-    if (!Object)
-    {
-        return_PTR (NULL);
-    }
-
-    switch (Type)
-    {
-    case ACPI_TYPE_REGION:
-    case ACPI_TYPE_BUFFER_FIELD:
-    case ACPI_TYPE_LOCAL_BANK_FIELD:
-
-        /* These types require a secondary object */
-
-        SecondObject = AcpiUtAllocateObjectDescDbg (ModuleName,
-                            LineNumber, ComponentId);
-        if (!SecondObject)
-        {
-            AcpiUtDeleteObjectDesc (Object);
-            return_PTR (NULL);
-        }
-
-        SecondObject->Common.Type = ACPI_TYPE_LOCAL_EXTRA;
-        SecondObject->Common.ReferenceCount = 1;
-
-        /* Link the second object to the first */
-
-        Object->Common.NextObject = SecondObject;
-        break;
-
-    default:
-        /* All others have no secondary object */
-        break;
-    }
-
-    /* Save the object type in the object descriptor */
-
-    Object->Common.Type = (UINT8) Type;
-
-    /* Init the reference count */
-
-    Object->Common.ReferenceCount = 1;
-
-    /* Any per-type initialization should go here */
-
-    return_PTR (Object);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreatePackageObject
- *
- * PARAMETERS:  Count               - Number of package elements
- *
- * RETURN:      Pointer to a new Package object, null on failure
- *
- * DESCRIPTION: Create a fully initialized package object
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiUtCreatePackageObject (
-    UINT32                  Count)
-{
-    ACPI_OPERAND_OBJECT     *PackageDesc;
-    ACPI_OPERAND_OBJECT     **PackageElements;
-
-
-    ACPI_FUNCTION_TRACE_U32 (UtCreatePackageObject, Count);
-
-
-    /* Create a new Package object */
-
-    PackageDesc = AcpiUtCreateInternalObject (ACPI_TYPE_PACKAGE);
-    if (!PackageDesc)
-    {
-        return_PTR (NULL);
-    }
-
-    /*
-     * Create the element array. Count+1 allows the array to be null
-     * terminated.
-     */
-    PackageElements = ACPI_ALLOCATE_ZEROED (
-                        ((ACPI_SIZE) Count + 1) * sizeof (void *));
-    if (!PackageElements)
-    {
-        ACPI_FREE (PackageDesc);
-        return_PTR (NULL);
-    }
-
-    PackageDesc->Package.Count = Count;
-    PackageDesc->Package.Elements = PackageElements;
-    return_PTR (PackageDesc);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateIntegerObject
- *
- * PARAMETERS:  InitialValue        - Initial value for the integer
- *
- * RETURN:      Pointer to a new Integer object, null on failure
- *
- * DESCRIPTION: Create an initialized integer object
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiUtCreateIntegerObject (
-    UINT64                  InitialValue)
-{
-    ACPI_OPERAND_OBJECT     *IntegerDesc;
-
-
-    ACPI_FUNCTION_TRACE (UtCreateIntegerObject);
-
-
-    /* Create and initialize a new integer object */
-
-    IntegerDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
-    if (!IntegerDesc)
-    {
-        return_PTR (NULL);
-    }
-
-    IntegerDesc->Integer.Value = InitialValue;
-    return_PTR (IntegerDesc);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateBufferObject
- *
- * PARAMETERS:  BufferSize             - Size of buffer to be created
- *
- * RETURN:      Pointer to a new Buffer object, null on failure
- *
- * DESCRIPTION: Create a fully initialized buffer object
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiUtCreateBufferObject (
-    ACPI_SIZE               BufferSize)
-{
-    ACPI_OPERAND_OBJECT     *BufferDesc;
-    UINT8                   *Buffer = NULL;
-
-
-    ACPI_FUNCTION_TRACE_U32 (UtCreateBufferObject, BufferSize);
-
-
-    /* Create a new Buffer object */
-
-    BufferDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
-    if (!BufferDesc)
-    {
-        return_PTR (NULL);
-    }
-
-    /* Create an actual buffer only if size > 0 */
-
-    if (BufferSize > 0)
-    {
-        /* Allocate the actual buffer */
-
-        Buffer = ACPI_ALLOCATE_ZEROED (BufferSize);
-        if (!Buffer)
-        {
-            ACPI_ERROR ((AE_INFO, "Could not allocate size %X",
-                (UINT32) BufferSize));
-            AcpiUtRemoveReference (BufferDesc);
-            return_PTR (NULL);
-        }
-    }
-
-    /* Complete buffer object initialization */
-
-    BufferDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
-    BufferDesc->Buffer.Pointer = Buffer;
-    BufferDesc->Buffer.Length = (UINT32) BufferSize;
-
-    /* Return the new buffer descriptor */
-
-    return_PTR (BufferDesc);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateStringObject
- *
- * PARAMETERS:  StringSize          - Size of string to be created. Does not
- *                                    include NULL terminator, this is added
- *                                    automatically.
- *
- * RETURN:      Pointer to a new String object
- *
- * DESCRIPTION: Create a fully initialized string object
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiUtCreateStringObject (
-    ACPI_SIZE               StringSize)
-{
-    ACPI_OPERAND_OBJECT     *StringDesc;
-    char                    *String;
-
-
-    ACPI_FUNCTION_TRACE_U32 (UtCreateStringObject, StringSize);
-
-
-    /* Create a new String object */
-
-    StringDesc = AcpiUtCreateInternalObject (ACPI_TYPE_STRING);
-    if (!StringDesc)
-    {
-        return_PTR (NULL);
-    }
-
-    /*
-     * Allocate the actual string buffer -- (Size + 1) for NULL terminator.
-     * NOTE: Zero-length strings are NULL terminated
-     */
-    String = ACPI_ALLOCATE_ZEROED (StringSize + 1);
-    if (!String)
-    {
-        ACPI_ERROR ((AE_INFO, "Could not allocate size %X",
-            (UINT32) StringSize));
-        AcpiUtRemoveReference (StringDesc);
-        return_PTR (NULL);
-    }
-
-    /* Complete string object initialization */
-
-    StringDesc->String.Pointer = String;
-    StringDesc->String.Length = (UINT32) StringSize;
-
-    /* Return the new string descriptor */
-
-    return_PTR (StringDesc);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtValidInternalObject
- *
- * PARAMETERS:  Object              - Object to be validated
- *
- * RETURN:      TRUE if object is valid, FALSE otherwise
- *
- * DESCRIPTION: Validate a pointer to be an ACPI_OPERAND_OBJECT
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtValidInternalObject (
-    void                    *Object)
-{
-
-    ACPI_FUNCTION_NAME (UtValidInternalObject);
-
-
-    /* Check for a null pointer */
-
-    if (!Object)
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "**** Null Object Ptr\n"));
-        return (FALSE);
-    }
-
-    /* Check the descriptor type field */
-
-    switch (ACPI_GET_DESCRIPTOR_TYPE (Object))
-    {
-    case ACPI_DESC_TYPE_OPERAND:
-
-        /* The object appears to be a valid ACPI_OPERAND_OBJECT  */
-
-        return (TRUE);
-
-    default:
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-                "%p is not not an ACPI operand obj [%s]\n",
-                Object, AcpiUtGetDescriptorName (Object)));
-        break;
-    }
-
-    return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAllocateObjectDescDbg
- *
- * PARAMETERS:  ModuleName          - Caller's module name (for error output)
- *              LineNumber          - Caller's line number (for error output)
- *              ComponentId         - Caller's component ID (for error output)
- *
- * RETURN:      Pointer to newly allocated object descriptor.  Null on error
- *
- * DESCRIPTION: Allocate a new object descriptor.  Gracefully handle
- *              error conditions.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocateObjectDescDbg (
-    const char              *ModuleName,
-    UINT32                  LineNumber,
-    UINT32                  ComponentId)
-{
-    ACPI_OPERAND_OBJECT     *Object;
-
-
-    ACPI_FUNCTION_TRACE (UtAllocateObjectDescDbg);
-
-
-    Object = AcpiOsAcquireObject (AcpiGbl_OperandCache);
-    if (!Object)
-    {
-        ACPI_ERROR ((ModuleName, LineNumber,
-            "Could not allocate an object descriptor"));
-
-        return_PTR (NULL);
-    }
-
-    /* Mark the descriptor type */
-
-    ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_OPERAND);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p Size %X\n",
-            Object, (UINT32) sizeof (ACPI_OPERAND_OBJECT)));
-
-    return_PTR (Object);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDeleteObjectDesc
- *
- * PARAMETERS:  Object          - An Acpi internal object to be deleted
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Free an ACPI object descriptor or add it to the object cache
- *
- ******************************************************************************/
-
-void
-AcpiUtDeleteObjectDesc (
-    ACPI_OPERAND_OBJECT     *Object)
-{
-    ACPI_FUNCTION_TRACE_PTR (UtDeleteObjectDesc, Object);
-
-
-    /* Object must be an ACPI_OPERAND_OBJECT  */
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (Object) != ACPI_DESC_TYPE_OPERAND)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "%p is not an ACPI Operand object [%s]", Object,
-            AcpiUtGetDescriptorName (Object)));
-        return_VOID;
-    }
-
-    (void) AcpiOsReleaseObject (AcpiGbl_OperandCache, Object);
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetSimpleObjectSize
- *
- * PARAMETERS:  InternalObject     - An ACPI operand object
- *              ObjLength          - Where the length is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to determine the space required to
- *              contain a simple object for return to an external user.
- *
- *              The length includes the object structure plus any additional
- *              needed space.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtGetSimpleObjectSize (
-    ACPI_OPERAND_OBJECT     *InternalObject,
-    ACPI_SIZE               *ObjLength)
-{
-    ACPI_SIZE               Length;
-    ACPI_SIZE               Size;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_PTR (UtGetSimpleObjectSize, InternalObject);
-
-
-    /* Start with the length of the (external) Acpi object */
-
-    Length = sizeof (ACPI_OBJECT);
-
-    /* A NULL object is allowed, can be a legal uninitialized package element */
-
-    if (!InternalObject)
-    {
-        /*
-         * Object is NULL, just return the length of ACPI_OBJECT
-         * (A NULL ACPI_OBJECT is an object of all zeroes.)
-         */
-        *ObjLength = ACPI_ROUND_UP_TO_NATIVE_WORD (Length);
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* A Namespace Node should never appear here */
-
-    if (ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == ACPI_DESC_TYPE_NAMED)
-    {
-        /* A namespace node should never get here */
-
-        return_ACPI_STATUS (AE_AML_INTERNAL);
-    }
-
-    /*
-     * The final length depends on the object type
-     * Strings and Buffers are packed right up against the parent object and
-     * must be accessed bytewise or there may be alignment problems on
-     * certain processors
-     */
-    switch (InternalObject->Common.Type)
-    {
-    case ACPI_TYPE_STRING:
-
-        Length += (ACPI_SIZE) InternalObject->String.Length + 1;
-        break;
-
-
-    case ACPI_TYPE_BUFFER:
-
-        Length += (ACPI_SIZE) InternalObject->Buffer.Length;
-        break;
-
-
-    case ACPI_TYPE_INTEGER:
-    case ACPI_TYPE_PROCESSOR:
-    case ACPI_TYPE_POWER:
-
-        /* No extra data for these types */
-
-        break;
-
-
-    case ACPI_TYPE_LOCAL_REFERENCE:
-
-        switch (InternalObject->Reference.Class)
-        {
-        case ACPI_REFCLASS_NAME:
-
-            /*
-             * Get the actual length of the full pathname to this object.
-             * The reference will be converted to the pathname to the object
-             */
-            Size = AcpiNsGetPathnameLength (InternalObject->Reference.Node);
-            if (!Size)
-            {
-                return_ACPI_STATUS (AE_BAD_PARAMETER);
-            }
-
-            Length += ACPI_ROUND_UP_TO_NATIVE_WORD (Size);
-            break;
-
-        default:
-
-            /*
-             * No other reference opcodes are supported.
-             * Notably, Locals and Args are not supported, but this may be
-             * required eventually.
-             */
-            ACPI_ERROR ((AE_INFO, "Cannot convert to external object - "
-                "unsupported Reference Class [%s] %X in object %p",
-                AcpiUtGetReferenceName (InternalObject),
-                InternalObject->Reference.Class, InternalObject));
-            Status = AE_TYPE;
-            break;
-        }
-        break;
-
-
-    default:
-
-        ACPI_ERROR ((AE_INFO, "Cannot convert to external object - "
-            "unsupported type [%s] %X in object %p",
-            AcpiUtGetObjectTypeName (InternalObject),
-            InternalObject->Common.Type, InternalObject));
-        Status = AE_TYPE;
-        break;
-    }
-
-    /*
-     * Account for the space required by the object rounded up to the next
-     * multiple of the machine word size.  This keeps each object aligned
-     * on a machine word boundary. (preventing alignment faults on some
-     * machines.)
-     */
-    *ObjLength = ACPI_ROUND_UP_TO_NATIVE_WORD (Length);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetElementLength
- *
- * PARAMETERS:  ACPI_PKG_CALLBACK
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Get the length of one package element.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtGetElementLength (
-    UINT8                   ObjectType,
-    ACPI_OPERAND_OBJECT     *SourceObject,
-    ACPI_GENERIC_STATE      *State,
-    void                    *Context)
-{
-    ACPI_STATUS             Status = AE_OK;
-    ACPI_PKG_INFO           *Info = (ACPI_PKG_INFO *) Context;
-    ACPI_SIZE               ObjectSpace;
-
-
-    switch (ObjectType)
-    {
-    case ACPI_COPY_TYPE_SIMPLE:
-
-        /*
-         * Simple object - just get the size (Null object/entry is handled
-         * here also) and sum it into the running package length
-         */
-        Status = AcpiUtGetSimpleObjectSize (SourceObject, &ObjectSpace);
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-
-        Info->Length += ObjectSpace;
-        break;
-
-
-    case ACPI_COPY_TYPE_PACKAGE:
-
-        /* Package object - nothing much to do here, let the walk handle it */
-
-        Info->NumPackages++;
-        State->Pkg.ThisTargetObj = NULL;
-        break;
-
-
-    default:
-
-        /* No other types allowed */
-
-        return (AE_BAD_PARAMETER);
-    }
-
-    return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetPackageObjectSize
- *
- * PARAMETERS:  InternalObject      - An ACPI internal object
- *              ObjLength           - Where the length is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to determine the space required to
- *              contain a package object for return to an external user.
- *
- *              This is moderately complex since a package contains other
- *              objects including packages.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtGetPackageObjectSize (
-    ACPI_OPERAND_OBJECT     *InternalObject,
-    ACPI_SIZE               *ObjLength)
-{
-    ACPI_STATUS             Status;
-    ACPI_PKG_INFO           Info;
-
-
-    ACPI_FUNCTION_TRACE_PTR (UtGetPackageObjectSize, InternalObject);
-
-
-    Info.Length      = 0;
-    Info.ObjectSpace = 0;
-    Info.NumPackages = 1;
-
-    Status = AcpiUtWalkPackageTree (InternalObject, NULL,
-                            AcpiUtGetElementLength, &Info);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * We have handled all of the objects in all levels of the package.
-     * just add the length of the package objects themselves.
-     * Round up to the next machine word.
-     */
-    Info.Length += ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)) *
-                    (ACPI_SIZE) Info.NumPackages;
-
-    /* Return the total package length */
-
-    *ObjLength = Info.Length;
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetObjectSize
- *
- * PARAMETERS:  InternalObject      - An ACPI internal object
- *              ObjLength           - Where the length will be returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to determine the space required to
- *              contain an object for return to an API user.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtGetObjectSize (
-    ACPI_OPERAND_OBJECT     *InternalObject,
-    ACPI_SIZE               *ObjLength)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    if ((ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == ACPI_DESC_TYPE_OPERAND) &&
-        (InternalObject->Common.Type == ACPI_TYPE_PACKAGE))
-    {
-        Status = AcpiUtGetPackageObjectSize (InternalObject, ObjLength);
-    }
-    else
-    {
-        Status = AcpiUtGetSimpleObjectSize (InternalObject, ObjLength);
-    }
-
-    return (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utresrc.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utresrc.c
deleted file mode 100644 (file)
index 2f19d63..0000000
+++ /dev/null
@@ -1,772 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utresrc - Resource managment utilities
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __UTRESRC_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "amlresrc.h"
-
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utresrc")
-
-
-#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
-
-/*
- * Strings used to decode resource descriptors.
- * Used by both the disasssembler and the debugger resource dump routines
- */
-const char                      *AcpiGbl_BmDecode[] =
-{
-    "NotBusMaster",
-    "BusMaster"
-};
-
-const char                      *AcpiGbl_ConfigDecode[] =
-{
-    "0 - Good Configuration",
-    "1 - Acceptable Configuration",
-    "2 - Suboptimal Configuration",
-    "3 - ***Invalid Configuration***",
-};
-
-const char                      *AcpiGbl_ConsumeDecode[] =
-{
-    "ResourceProducer",
-    "ResourceConsumer"
-};
-
-const char                      *AcpiGbl_DecDecode[] =
-{
-    "PosDecode",
-    "SubDecode"
-};
-
-const char                      *AcpiGbl_HeDecode[] =
-{
-    "Level",
-    "Edge"
-};
-
-const char                      *AcpiGbl_IoDecode[] =
-{
-    "Decode10",
-    "Decode16"
-};
-
-const char                      *AcpiGbl_LlDecode[] =
-{
-    "ActiveHigh",
-    "ActiveLow"
-};
-
-const char                      *AcpiGbl_MaxDecode[] =
-{
-    "MaxNotFixed",
-    "MaxFixed"
-};
-
-const char                      *AcpiGbl_MemDecode[] =
-{
-    "NonCacheable",
-    "Cacheable",
-    "WriteCombining",
-    "Prefetchable"
-};
-
-const char                      *AcpiGbl_MinDecode[] =
-{
-    "MinNotFixed",
-    "MinFixed"
-};
-
-const char                      *AcpiGbl_MtpDecode[] =
-{
-    "AddressRangeMemory",
-    "AddressRangeReserved",
-    "AddressRangeACPI",
-    "AddressRangeNVS"
-};
-
-const char                      *AcpiGbl_RngDecode[] =
-{
-    "InvalidRanges",
-    "NonISAOnlyRanges",
-    "ISAOnlyRanges",
-    "EntireRange"
-};
-
-const char                      *AcpiGbl_RwDecode[] =
-{
-    "ReadOnly",
-    "ReadWrite"
-};
-
-const char                      *AcpiGbl_ShrDecode[] =
-{
-    "Exclusive",
-    "Shared"
-};
-
-const char                      *AcpiGbl_SizDecode[] =
-{
-    "Transfer8",
-    "Transfer8_16",
-    "Transfer16",
-    "InvalidSize"
-};
-
-const char                      *AcpiGbl_TrsDecode[] =
-{
-    "DenseTranslation",
-    "SparseTranslation"
-};
-
-const char                      *AcpiGbl_TtpDecode[] =
-{
-    "TypeStatic",
-    "TypeTranslation"
-};
-
-const char                      *AcpiGbl_TypDecode[] =
-{
-    "Compatibility",
-    "TypeA",
-    "TypeB",
-    "TypeF"
-};
-
-#endif
-
-
-/*
- * Base sizes of the raw AML resource descriptors, indexed by resource type.
- * Zero indicates a reserved (and therefore invalid) resource type.
- */
-const UINT8                 AcpiGbl_ResourceAmlSizes[] =
-{
-    /* Small descriptors */
-
-    0,
-    0,
-    0,
-    0,
-    ACPI_AML_SIZE_SMALL (AML_RESOURCE_IRQ),
-    ACPI_AML_SIZE_SMALL (AML_RESOURCE_DMA),
-    ACPI_AML_SIZE_SMALL (AML_RESOURCE_START_DEPENDENT),
-    ACPI_AML_SIZE_SMALL (AML_RESOURCE_END_DEPENDENT),
-    ACPI_AML_SIZE_SMALL (AML_RESOURCE_IO),
-    ACPI_AML_SIZE_SMALL (AML_RESOURCE_FIXED_IO),
-    0,
-    0,
-    0,
-    0,
-    ACPI_AML_SIZE_SMALL (AML_RESOURCE_VENDOR_SMALL),
-    ACPI_AML_SIZE_SMALL (AML_RESOURCE_END_TAG),
-
-    /* Large descriptors */
-
-    0,
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_MEMORY24),
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_GENERIC_REGISTER),
-    0,
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_VENDOR_LARGE),
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_MEMORY32),
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_FIXED_MEMORY32),
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_ADDRESS32),
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_ADDRESS16),
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_EXTENDED_IRQ),
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_ADDRESS64),
-    ACPI_AML_SIZE_LARGE (AML_RESOURCE_EXTENDED_ADDRESS64)
-};
-
-
-/*
- * Resource types, used to validate the resource length field.
- * The length of fixed-length types must match exactly, variable
- * lengths must meet the minimum required length, etc.
- * Zero indicates a reserved (and therefore invalid) resource type.
- */
-static const UINT8          AcpiGbl_ResourceTypes[] =
-{
-    /* Small descriptors */
-
-    0,
-    0,
-    0,
-    0,
-    ACPI_SMALL_VARIABLE_LENGTH,
-    ACPI_FIXED_LENGTH,
-    ACPI_SMALL_VARIABLE_LENGTH,
-    ACPI_FIXED_LENGTH,
-    ACPI_FIXED_LENGTH,
-    ACPI_FIXED_LENGTH,
-    0,
-    0,
-    0,
-    0,
-    ACPI_VARIABLE_LENGTH,
-    ACPI_FIXED_LENGTH,
-
-    /* Large descriptors */
-
-    0,
-    ACPI_FIXED_LENGTH,
-    ACPI_FIXED_LENGTH,
-    0,
-    ACPI_VARIABLE_LENGTH,
-    ACPI_FIXED_LENGTH,
-    ACPI_FIXED_LENGTH,
-    ACPI_VARIABLE_LENGTH,
-    ACPI_VARIABLE_LENGTH,
-    ACPI_VARIABLE_LENGTH,
-    ACPI_VARIABLE_LENGTH,
-    ACPI_FIXED_LENGTH
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtWalkAmlResources
- *
- * PARAMETERS:  Aml             - Pointer to the raw AML resource template
- *              AmlLength       - Length of the entire template
- *              UserFunction    - Called once for each descriptor found. If
- *                                NULL, a pointer to the EndTag is returned
- *              Context         - Passed to UserFunction
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Walk a raw AML resource list(buffer). User function called
- *              once for each resource found.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtWalkAmlResources (
-    UINT8                   *Aml,
-    ACPI_SIZE               AmlLength,
-    ACPI_WALK_AML_CALLBACK  UserFunction,
-    void                    *Context)
-{
-    ACPI_STATUS             Status;
-    UINT8                   *EndAml;
-    UINT8                   ResourceIndex;
-    UINT32                  Length;
-    UINT32                  Offset = 0;
-
-
-    ACPI_FUNCTION_TRACE (UtWalkAmlResources);
-
-
-    /* The absolute minimum resource template is one EndTag descriptor */
-
-    if (AmlLength < sizeof (AML_RESOURCE_END_TAG))
-    {
-        return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
-    }
-
-    /* Point to the end of the resource template buffer */
-
-    EndAml = Aml + AmlLength;
-
-    /* Walk the byte list, abort on any invalid descriptor type or length */
-
-    while (Aml < EndAml)
-    {
-        /* Validate the Resource Type and Resource Length */
-
-        Status = AcpiUtValidateResource (Aml, &ResourceIndex);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-
-        /* Get the length of this descriptor */
-
-        Length = AcpiUtGetDescriptorLength (Aml);
-
-        /* Invoke the user function */
-
-        if (UserFunction)
-        {
-            Status = UserFunction (Aml, Length, Offset, ResourceIndex, Context);
-            if (ACPI_FAILURE (Status))
-            {
-                return (Status);
-            }
-        }
-
-        /* An EndTag descriptor terminates this resource template */
-
-        if (AcpiUtGetResourceType (Aml) == ACPI_RESOURCE_NAME_END_TAG)
-        {
-            /*
-             * There must be at least one more byte in the buffer for
-             * the 2nd byte of the EndTag
-             */
-            if ((Aml + 1) >= EndAml)
-            {
-                return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
-            }
-
-            /* Return the pointer to the EndTag if requested */
-
-            if (!UserFunction)
-            {
-                *(void **) Context = Aml;
-            }
-
-            /* Normal exit */
-
-            return_ACPI_STATUS (AE_OK);
-        }
-
-        Aml += Length;
-        Offset += Length;
-    }
-
-    /* Did not find an EndTag descriptor */
-
-    return (AE_AML_NO_RESOURCE_END_TAG);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtValidateResource
- *
- * PARAMETERS:  Aml             - Pointer to the raw AML resource descriptor
- *              ReturnIndex     - Where the resource index is returned. NULL
- *                                if the index is not required.
- *
- * RETURN:      Status, and optionally the Index into the global resource tables
- *
- * DESCRIPTION: Validate an AML resource descriptor by checking the Resource
- *              Type and Resource Length. Returns an index into the global
- *              resource information/dispatch tables for later use.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtValidateResource (
-    void                    *Aml,
-    UINT8                   *ReturnIndex)
-{
-    UINT8                   ResourceType;
-    UINT8                   ResourceIndex;
-    ACPI_RS_LENGTH          ResourceLength;
-    ACPI_RS_LENGTH          MinimumResourceLength;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * 1) Validate the ResourceType field (Byte 0)
-     */
-    ResourceType = ACPI_GET8 (Aml);
-
-    /*
-     * Byte 0 contains the descriptor name (Resource Type)
-     * Examine the large/small bit in the resource header
-     */
-    if (ResourceType & ACPI_RESOURCE_NAME_LARGE)
-    {
-        /* Verify the large resource type (name) against the max */
-
-        if (ResourceType > ACPI_RESOURCE_NAME_LARGE_MAX)
-        {
-            return (AE_AML_INVALID_RESOURCE_TYPE);
-        }
-
-        /*
-         * Large Resource Type -- bits 6:0 contain the name
-         * Translate range 0x80-0x8B to index range 0x10-0x1B
-         */
-        ResourceIndex = (UINT8) (ResourceType - 0x70);
-    }
-    else
-    {
-        /*
-         * Small Resource Type -- bits 6:3 contain the name
-         * Shift range to index range 0x00-0x0F
-         */
-        ResourceIndex = (UINT8)
-            ((ResourceType & ACPI_RESOURCE_NAME_SMALL_MASK) >> 3);
-    }
-
-    /* Check validity of the resource type, zero indicates name is invalid */
-
-    if (!AcpiGbl_ResourceTypes[ResourceIndex])
-    {
-        return (AE_AML_INVALID_RESOURCE_TYPE);
-    }
-
-
-    /*
-     * 2) Validate the ResourceLength field. This ensures that the length
-     *    is at least reasonable, and guarantees that it is non-zero.
-     */
-    ResourceLength = AcpiUtGetResourceLength (Aml);
-    MinimumResourceLength = AcpiGbl_ResourceAmlSizes[ResourceIndex];
-
-    /* Validate based upon the type of resource - fixed length or variable */
-
-    switch (AcpiGbl_ResourceTypes[ResourceIndex])
-    {
-    case ACPI_FIXED_LENGTH:
-
-        /* Fixed length resource, length must match exactly */
-
-        if (ResourceLength != MinimumResourceLength)
-        {
-            return (AE_AML_BAD_RESOURCE_LENGTH);
-        }
-        break;
-
-    case ACPI_VARIABLE_LENGTH:
-
-        /* Variable length resource, length must be at least the minimum */
-
-        if (ResourceLength < MinimumResourceLength)
-        {
-            return (AE_AML_BAD_RESOURCE_LENGTH);
-        }
-        break;
-
-    case ACPI_SMALL_VARIABLE_LENGTH:
-
-        /* Small variable length resource, length can be (Min) or (Min-1) */
-
-        if ((ResourceLength > MinimumResourceLength) ||
-            (ResourceLength < (MinimumResourceLength - 1)))
-        {
-            return (AE_AML_BAD_RESOURCE_LENGTH);
-        }
-        break;
-
-    default:
-
-        /* Shouldn't happen (because of validation earlier), but be sure */
-
-        return (AE_AML_INVALID_RESOURCE_TYPE);
-    }
-
-    /* Optionally return the resource table index */
-
-    if (ReturnIndex)
-    {
-        *ReturnIndex = ResourceIndex;
-    }
-
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetResourceType
- *
- * PARAMETERS:  Aml             - Pointer to the raw AML resource descriptor
- *
- * RETURN:      The Resource Type with no extraneous bits (except the
- *              Large/Small descriptor bit -- this is left alone)
- *
- * DESCRIPTION: Extract the Resource Type/Name from the first byte of
- *              a resource descriptor.
- *
- ******************************************************************************/
-
-UINT8
-AcpiUtGetResourceType (
-    void                    *Aml)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * Byte 0 contains the descriptor name (Resource Type)
-     * Examine the large/small bit in the resource header
-     */
-    if (ACPI_GET8 (Aml) & ACPI_RESOURCE_NAME_LARGE)
-    {
-        /* Large Resource Type -- bits 6:0 contain the name */
-
-        return (ACPI_GET8 (Aml));
-    }
-    else
-    {
-        /* Small Resource Type -- bits 6:3 contain the name */
-
-        return ((UINT8) (ACPI_GET8 (Aml) & ACPI_RESOURCE_NAME_SMALL_MASK));
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetResourceLength
- *
- * PARAMETERS:  Aml             - Pointer to the raw AML resource descriptor
- *
- * RETURN:      Byte Length
- *
- * DESCRIPTION: Get the "Resource Length" of a raw AML descriptor. By
- *              definition, this does not include the size of the descriptor
- *              header or the length field itself.
- *
- ******************************************************************************/
-
-UINT16
-AcpiUtGetResourceLength (
-    void                    *Aml)
-{
-    ACPI_RS_LENGTH          ResourceLength;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * Byte 0 contains the descriptor name (Resource Type)
-     * Examine the large/small bit in the resource header
-     */
-    if (ACPI_GET8 (Aml) & ACPI_RESOURCE_NAME_LARGE)
-    {
-        /* Large Resource type -- bytes 1-2 contain the 16-bit length */
-
-        ACPI_MOVE_16_TO_16 (&ResourceLength, ACPI_ADD_PTR (UINT8, Aml, 1));
-
-    }
-    else
-    {
-        /* Small Resource type -- bits 2:0 of byte 0 contain the length */
-
-        ResourceLength = (UINT16) (ACPI_GET8 (Aml) &
-                                    ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK);
-    }
-
-    return (ResourceLength);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetResourceHeaderLength
- *
- * PARAMETERS:  Aml             - Pointer to the raw AML resource descriptor
- *
- * RETURN:      Length of the AML header (depends on large/small descriptor)
- *
- * DESCRIPTION: Get the length of the header for this resource.
- *
- ******************************************************************************/
-
-UINT8
-AcpiUtGetResourceHeaderLength (
-    void                    *Aml)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /* Examine the large/small bit in the resource header */
-
-    if (ACPI_GET8 (Aml) & ACPI_RESOURCE_NAME_LARGE)
-    {
-        return (sizeof (AML_RESOURCE_LARGE_HEADER));
-    }
-    else
-    {
-        return (sizeof (AML_RESOURCE_SMALL_HEADER));
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetDescriptorLength
- *
- * PARAMETERS:  Aml             - Pointer to the raw AML resource descriptor
- *
- * RETURN:      Byte length
- *
- * DESCRIPTION: Get the total byte length of a raw AML descriptor, including the
- *              length of the descriptor header and the length field itself.
- *              Used to walk descriptor lists.
- *
- ******************************************************************************/
-
-UINT32
-AcpiUtGetDescriptorLength (
-    void                    *Aml)
-{
-    ACPI_FUNCTION_ENTRY ();
-
-
-    /*
-     * Get the Resource Length (does not include header length) and add
-     * the header length (depends on if this is a small or large resource)
-     */
-    return (AcpiUtGetResourceLength (Aml) +
-            AcpiUtGetResourceHeaderLength (Aml));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtGetResourceEndTag
- *
- * PARAMETERS:  ObjDesc         - The resource template buffer object
- *              EndTag          - Where the pointer to the EndTag is returned
- *
- * RETURN:      Status, pointer to the end tag
- *
- * DESCRIPTION: Find the EndTag resource descriptor in an AML resource template
- *              Note: allows a buffer length of zero.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtGetResourceEndTag (
-    ACPI_OPERAND_OBJECT     *ObjDesc,
-    UINT8                   **EndTag)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtGetResourceEndTag);
-
-
-    /* Allow a buffer length of zero */
-
-    if (!ObjDesc->Buffer.Length)
-    {
-        *EndTag = ObjDesc->Buffer.Pointer;
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Validate the template and get a pointer to the EndTag */
-
-    Status = AcpiUtWalkAmlResources (ObjDesc->Buffer.Pointer,
-                ObjDesc->Buffer.Length, NULL, EndTag);
-
-    return_ACPI_STATUS (Status);
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utstate.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utstate.c
deleted file mode 100644 (file)
index 245ca02..0000000
+++ /dev/null
@@ -1,470 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utstate - state object support procedures
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __UTSTATE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utstate")
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreatePkgStateAndPush
- *
- * PARAMETERS:  Object          - Object to be added to the new state
- *              Action          - Increment/Decrement
- *              StateList       - List the state will be added to
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a new state and push it
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCreatePkgStateAndPush (
-    void                    *InternalObject,
-    void                    *ExternalObject,
-    UINT16                  Index,
-    ACPI_GENERIC_STATE      **StateList)
-{
-    ACPI_GENERIC_STATE       *State;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    State = AcpiUtCreatePkgState (InternalObject, ExternalObject, Index);
-    if (!State)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    AcpiUtPushGenericState (StateList, State);
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtPushGenericState
- *
- * PARAMETERS:  ListHead            - Head of the state stack
- *              State               - State object to push
- *
- * RETURN:      None
- *
- * DESCRIPTION: Push a state object onto a state stack
- *
- ******************************************************************************/
-
-void
-AcpiUtPushGenericState (
-    ACPI_GENERIC_STATE      **ListHead,
-    ACPI_GENERIC_STATE      *State)
-{
-    ACPI_FUNCTION_TRACE (UtPushGenericState);
-
-
-    /* Push the state object onto the front of the list (stack) */
-
-    State->Common.Next = *ListHead;
-    *ListHead = State;
-
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtPopGenericState
- *
- * PARAMETERS:  ListHead            - Head of the state stack
- *
- * RETURN:      The popped state object
- *
- * DESCRIPTION: Pop a state object from a state stack
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtPopGenericState (
-    ACPI_GENERIC_STATE      **ListHead)
-{
-    ACPI_GENERIC_STATE      *State;
-
-
-    ACPI_FUNCTION_TRACE (UtPopGenericState);
-
-
-    /* Remove the state object at the head of the list (stack) */
-
-    State = *ListHead;
-    if (State)
-    {
-        /* Update the list head */
-
-        *ListHead = State->Common.Next;
-    }
-
-    return_PTR (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateGenericState
- *
- * PARAMETERS:  None
- *
- * RETURN:      The new state object. NULL on failure.
- *
- * DESCRIPTION: Create a generic state object.  Attempt to obtain one from
- *              the global state cache;  If none available, create a new one.
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtCreateGenericState (
-    void)
-{
-    ACPI_GENERIC_STATE      *State;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    State = AcpiOsAcquireObject (AcpiGbl_StateCache);
-    if (State)
-    {
-        /* Initialize */
-        State->Common.DescriptorType = ACPI_DESC_TYPE_STATE;
-    }
-
-    return (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateThreadState
- *
- * PARAMETERS:  None
- *
- * RETURN:      New Thread State. NULL on failure
- *
- * DESCRIPTION: Create a "Thread State" - a flavor of the generic state used
- *              to track per-thread info during method execution
- *
- ******************************************************************************/
-
-ACPI_THREAD_STATE *
-AcpiUtCreateThreadState (
-    void)
-{
-    ACPI_GENERIC_STATE      *State;
-
-
-    ACPI_FUNCTION_TRACE (UtCreateThreadState);
-
-
-    /* Create the generic state object */
-
-    State = AcpiUtCreateGenericState ();
-    if (!State)
-    {
-        return_PTR (NULL);
-    }
-
-    /* Init fields specific to the update struct */
-
-    State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_THREAD;
-    State->Thread.ThreadId = AcpiOsGetThreadId ();
-
-    /* Check for invalid thread ID - zero is very bad, it will break things */
-
-    if (!State->Thread.ThreadId)
-    {
-        ACPI_ERROR ((AE_INFO, "Invalid zero ID from AcpiOsGetThreadId"));
-        State->Thread.ThreadId = (ACPI_THREAD_ID) 1;
-    }
-
-    return_PTR ((ACPI_THREAD_STATE *) State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateUpdateState
- *
- * PARAMETERS:  Object          - Initial Object to be installed in the state
- *              Action          - Update action to be performed
- *
- * RETURN:      New state object, null on failure
- *
- * DESCRIPTION: Create an "Update State" - a flavor of the generic state used
- *              to update reference counts and delete complex objects such
- *              as packages.
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtCreateUpdateState (
-    ACPI_OPERAND_OBJECT     *Object,
-    UINT16                  Action)
-{
-    ACPI_GENERIC_STATE      *State;
-
-
-    ACPI_FUNCTION_TRACE_PTR (UtCreateUpdateState, Object);
-
-
-    /* Create the generic state object */
-
-    State = AcpiUtCreateGenericState ();
-    if (!State)
-    {
-        return_PTR (NULL);
-    }
-
-    /* Init fields specific to the update struct */
-
-    State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_UPDATE;
-    State->Update.Object = Object;
-    State->Update.Value = Action;
-
-    return_PTR (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreatePkgState
- *
- * PARAMETERS:  Object          - Initial Object to be installed in the state
- *              Action          - Update action to be performed
- *
- * RETURN:      New state object, null on failure
- *
- * DESCRIPTION: Create a "Package State"
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtCreatePkgState (
-    void                    *InternalObject,
-    void                    *ExternalObject,
-    UINT16                  Index)
-{
-    ACPI_GENERIC_STATE      *State;
-
-
-    ACPI_FUNCTION_TRACE_PTR (UtCreatePkgState, InternalObject);
-
-
-    /* Create the generic state object */
-
-    State = AcpiUtCreateGenericState ();
-    if (!State)
-    {
-        return_PTR (NULL);
-    }
-
-    /* Init fields specific to the update struct */
-
-    State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_PACKAGE;
-    State->Pkg.SourceObject = (ACPI_OPERAND_OBJECT *) InternalObject;
-    State->Pkg.DestObject = ExternalObject;
-    State->Pkg.Index= Index;
-    State->Pkg.NumPackages = 1;
-
-    return_PTR (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateControlState
- *
- * PARAMETERS:  None
- *
- * RETURN:      New state object, null on failure
- *
- * DESCRIPTION: Create a "Control State" - a flavor of the generic state used
- *              to support nested IF/WHILE constructs in the AML.
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtCreateControlState (
-    void)
-{
-    ACPI_GENERIC_STATE      *State;
-
-
-    ACPI_FUNCTION_TRACE (UtCreateControlState);
-
-
-    /* Create the generic state object */
-
-    State = AcpiUtCreateGenericState ();
-    if (!State)
-    {
-        return_PTR (NULL);
-    }
-
-    /* Init fields specific to the control struct */
-
-    State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_CONTROL;
-    State->Common.State = ACPI_CONTROL_CONDITIONAL_EXECUTING;
-
-    return_PTR (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDeleteGenericState
- *
- * PARAMETERS:  State               - The state object to be deleted
- *
- * RETURN:      None
- *
- * DESCRIPTION: Release a state object to the state cache. NULL state objects
- *              are ignored.
- *
- ******************************************************************************/
-
-void
-AcpiUtDeleteGenericState (
-    ACPI_GENERIC_STATE      *State)
-{
-    ACPI_FUNCTION_TRACE (UtDeleteGenericState);
-
-
-    /* Ignore null state */
-
-    if (State)
-    {
-        (void) AcpiOsReleaseObject (AcpiGbl_StateCache, State);
-    }
-    return_VOID;
-}
-
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/uttrack.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/uttrack.c
deleted file mode 100644 (file)
index d712c1a..0000000
+++ /dev/null
@@ -1,726 +0,0 @@
-/******************************************************************************
- *
- * Module Name: uttrack - Memory allocation tracking routines (debug only)
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-/*
- * These procedures are used for tracking memory leaks in the subsystem, and
- * they get compiled out when the ACPI_DBG_TRACK_ALLOCATIONS is not set.
- *
- * Each memory allocation is tracked via a doubly linked list.  Each
- * element contains the caller's component, module name, function name, and
- * line number.  AcpiUtAllocate and AcpiUtAllocateZeroed call
- * AcpiUtTrackAllocation to add an element to the list; deletion
- * occurs in the body of AcpiUtFree.
- */
-
-#define __UTTRACK_C__
-
-#include "acpi.h"
-#include "accommon.h"
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("uttrack")
-
-/* Local prototypes */
-
-static ACPI_DEBUG_MEM_BLOCK *
-AcpiUtFindAllocation (
-    void                    *Allocation);
-
-static ACPI_STATUS
-AcpiUtTrackAllocation (
-    ACPI_DEBUG_MEM_BLOCK    *Address,
-    ACPI_SIZE               Size,
-    UINT8                   AllocType,
-    UINT32                  Component,
-    const char              *Module,
-    UINT32                  Line);
-
-static ACPI_STATUS
-AcpiUtRemoveAllocation (
-    ACPI_DEBUG_MEM_BLOCK    *Address,
-    UINT32                  Component,
-    const char              *Module,
-    UINT32                  Line);
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtCreateList
- *
- * PARAMETERS:  CacheName       - Ascii name for the cache
- *              ObjectSize      - Size of each cached object
- *              ReturnCache     - Where the new cache object is returned
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Create a local memory list for tracking purposed
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCreateList (
-    char                    *ListName,
-    UINT16                  ObjectSize,
-    ACPI_MEMORY_LIST        **ReturnCache)
-{
-    ACPI_MEMORY_LIST        *Cache;
-
-
-    Cache = AcpiOsAllocate (sizeof (ACPI_MEMORY_LIST));
-    if (!Cache)
-    {
-        return (AE_NO_MEMORY);
-    }
-
-    ACPI_MEMSET (Cache, 0, sizeof (ACPI_MEMORY_LIST));
-
-    Cache->ListName   = ListName;
-    Cache->ObjectSize = ObjectSize;
-
-    *ReturnCache = Cache;
-    return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAllocateAndTrack
- *
- * PARAMETERS:  Size                - Size of the allocation
- *              Component           - Component type of caller
- *              Module              - Source file name of caller
- *              Line                - Line number of caller
- *
- * RETURN:      Address of the allocated memory on success, NULL on failure.
- *
- * DESCRIPTION: The subsystem's equivalent of malloc.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocateAndTrack (
-    ACPI_SIZE               Size,
-    UINT32                  Component,
-    const char              *Module,
-    UINT32                  Line)
-{
-    ACPI_DEBUG_MEM_BLOCK    *Allocation;
-    ACPI_STATUS             Status;
-
-
-    Allocation = AcpiUtAllocate (Size + sizeof (ACPI_DEBUG_MEM_HEADER),
-                    Component, Module, Line);
-    if (!Allocation)
-    {
-        return (NULL);
-    }
-
-    Status = AcpiUtTrackAllocation (Allocation, Size,
-                    ACPI_MEM_MALLOC, Component, Module, Line);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsFree (Allocation);
-        return (NULL);
-    }
-
-    AcpiGbl_GlobalList->TotalAllocated++;
-    AcpiGbl_GlobalList->TotalSize += (UINT32) Size;
-    AcpiGbl_GlobalList->CurrentTotalSize += (UINT32) Size;
-    if (AcpiGbl_GlobalList->CurrentTotalSize > AcpiGbl_GlobalList->MaxOccupied)
-    {
-        AcpiGbl_GlobalList->MaxOccupied = AcpiGbl_GlobalList->CurrentTotalSize;
-    }
-
-    return ((void *) &Allocation->UserSpace);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtAllocateZeroedAndTrack
- *
- * PARAMETERS:  Size                - Size of the allocation
- *              Component           - Component type of caller
- *              Module              - Source file name of caller
- *              Line                - Line number of caller
- *
- * RETURN:      Address of the allocated memory on success, NULL on failure.
- *
- * DESCRIPTION: Subsystem equivalent of calloc.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocateZeroedAndTrack (
-    ACPI_SIZE               Size,
-    UINT32                  Component,
-    const char              *Module,
-    UINT32                  Line)
-{
-    ACPI_DEBUG_MEM_BLOCK    *Allocation;
-    ACPI_STATUS             Status;
-
-
-    Allocation = AcpiUtAllocateZeroed (Size + sizeof (ACPI_DEBUG_MEM_HEADER),
-                    Component, Module, Line);
-    if (!Allocation)
-    {
-        /* Report allocation error */
-
-        ACPI_ERROR ((Module, Line,
-            "Could not allocate size %X", (UINT32) Size));
-        return (NULL);
-    }
-
-    Status = AcpiUtTrackAllocation (Allocation, Size,
-                ACPI_MEM_CALLOC, Component, Module, Line);
-    if (ACPI_FAILURE (Status))
-    {
-        AcpiOsFree (Allocation);
-        return (NULL);
-    }
-
-    AcpiGbl_GlobalList->TotalAllocated++;
-    AcpiGbl_GlobalList->TotalSize += (UINT32) Size;
-    AcpiGbl_GlobalList->CurrentTotalSize += (UINT32) Size;
-    if (AcpiGbl_GlobalList->CurrentTotalSize > AcpiGbl_GlobalList->MaxOccupied)
-    {
-        AcpiGbl_GlobalList->MaxOccupied = AcpiGbl_GlobalList->CurrentTotalSize;
-    }
-
-    return ((void *) &Allocation->UserSpace);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtFreeAndTrack
- *
- * PARAMETERS:  Allocation          - Address of the memory to deallocate
- *              Component           - Component type of caller
- *              Module              - Source file name of caller
- *              Line                - Line number of caller
- *
- * RETURN:      None
- *
- * DESCRIPTION: Frees the memory at Allocation
- *
- ******************************************************************************/
-
-void
-AcpiUtFreeAndTrack (
-    void                    *Allocation,
-    UINT32                  Component,
-    const char              *Module,
-    UINT32                  Line)
-{
-    ACPI_DEBUG_MEM_BLOCK    *DebugBlock;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE_PTR (UtFree, Allocation);
-
-
-    if (NULL == Allocation)
-    {
-        ACPI_ERROR ((Module, Line,
-            "Attempt to delete a NULL address"));
-
-        return_VOID;
-    }
-
-    DebugBlock = ACPI_CAST_PTR (ACPI_DEBUG_MEM_BLOCK,
-                    (((char *) Allocation) - sizeof (ACPI_DEBUG_MEM_HEADER)));
-
-    AcpiGbl_GlobalList->TotalFreed++;
-    AcpiGbl_GlobalList->CurrentTotalSize -= DebugBlock->Size;
-
-    Status = AcpiUtRemoveAllocation (DebugBlock,
-                    Component, Module, Line);
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "Could not free memory"));
-    }
-
-    AcpiOsFree (DebugBlock);
-    ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p freed\n", Allocation));
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtFindAllocation
- *
- * PARAMETERS:  Allocation              - Address of allocated memory
- *
- * RETURN:      A list element if found; NULL otherwise.
- *
- * DESCRIPTION: Searches for an element in the global allocation tracking list.
- *
- ******************************************************************************/
-
-static ACPI_DEBUG_MEM_BLOCK *
-AcpiUtFindAllocation (
-    void                    *Allocation)
-{
-    ACPI_DEBUG_MEM_BLOCK    *Element;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    Element = AcpiGbl_GlobalList->ListHead;
-
-    /* Search for the address. */
-
-    while (Element)
-    {
-        if (Element == Allocation)
-        {
-            return (Element);
-        }
-
-        Element = Element->Next;
-    }
-
-    return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtTrackAllocation
- *
- * PARAMETERS:  Allocation          - Address of allocated memory
- *              Size                - Size of the allocation
- *              AllocType           - MEM_MALLOC or MEM_CALLOC
- *              Component           - Component type of caller
- *              Module              - Source file name of caller
- *              Line                - Line number of caller
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Inserts an element into the global allocation tracking list.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtTrackAllocation (
-    ACPI_DEBUG_MEM_BLOCK    *Allocation,
-    ACPI_SIZE               Size,
-    UINT8                   AllocType,
-    UINT32                  Component,
-    const char              *Module,
-    UINT32                  Line)
-{
-    ACPI_MEMORY_LIST        *MemList;
-    ACPI_DEBUG_MEM_BLOCK    *Element;
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE_PTR (UtTrackAllocation, Allocation);
-
-
-    MemList = AcpiGbl_GlobalList;
-    Status = AcpiUtAcquireMutex (ACPI_MTX_MEMORY);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Search list for this address to make sure it is not already on the list.
-     * This will catch several kinds of problems.
-     */
-    Element = AcpiUtFindAllocation (Allocation);
-    if (Element)
-    {
-        ACPI_ERROR ((AE_INFO,
-            "UtTrackAllocation: Allocation already present in list! (%p)",
-            Allocation));
-
-        ACPI_ERROR ((AE_INFO, "Element %p Address %p",
-            Element, Allocation));
-
-        goto UnlockAndExit;
-    }
-
-    /* Fill in the instance data. */
-
-    Allocation->Size      = (UINT32) Size;
-    Allocation->AllocType = AllocType;
-    Allocation->Component = Component;
-    Allocation->Line      = Line;
-
-    ACPI_STRNCPY (Allocation->Module, Module, ACPI_MAX_MODULE_NAME);
-    Allocation->Module[ACPI_MAX_MODULE_NAME-1] = 0;
-
-    /* Insert at list head */
-
-    if (MemList->ListHead)
-    {
-        ((ACPI_DEBUG_MEM_BLOCK *)(MemList->ListHead))->Previous = Allocation;
-    }
-
-    Allocation->Next = MemList->ListHead;
-    Allocation->Previous = NULL;
-
-    MemList->ListHead = Allocation;
-
-
-UnlockAndExit:
-    Status = AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtRemoveAllocation
- *
- * PARAMETERS:  Allocation          - Address of allocated memory
- *              Component           - Component type of caller
- *              Module              - Source file name of caller
- *              Line                - Line number of caller
- *
- * RETURN:
- *
- * DESCRIPTION: Deletes an element from the global allocation tracking list.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtRemoveAllocation (
-    ACPI_DEBUG_MEM_BLOCK    *Allocation,
-    UINT32                  Component,
-    const char              *Module,
-    UINT32                  Line)
-{
-    ACPI_MEMORY_LIST        *MemList;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (UtRemoveAllocation);
-
-
-    MemList = AcpiGbl_GlobalList;
-    if (NULL == MemList->ListHead)
-    {
-        /* No allocations! */
-
-        ACPI_ERROR ((Module, Line,
-            "Empty allocation list, nothing to free!"));
-
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    Status = AcpiUtAcquireMutex (ACPI_MTX_MEMORY);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Unlink */
-
-    if (Allocation->Previous)
-    {
-        (Allocation->Previous)->Next = Allocation->Next;
-    }
-    else
-    {
-        MemList->ListHead = Allocation->Next;
-    }
-
-    if (Allocation->Next)
-    {
-        (Allocation->Next)->Previous = Allocation->Previous;
-    }
-
-    /* Mark the segment as deleted */
-
-    ACPI_MEMSET (&Allocation->UserSpace, 0xEA, Allocation->Size);
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Freeing size 0%X\n",
-        Allocation->Size));
-
-    Status = AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDumpAllocationInfo
- *
- * PARAMETERS:
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print some info about the outstanding allocations.
- *
- ******************************************************************************/
-
-void
-AcpiUtDumpAllocationInfo (
-    void)
-{
-/*
-    ACPI_MEMORY_LIST        *MemList;
-*/
-
-    ACPI_FUNCTION_TRACE (UtDumpAllocationInfo);
-
-/*
-    ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
-                    ("%30s: %4d (%3d Kb)\n", "Current allocations",
-                    MemList->CurrentCount,
-                    ROUND_UP_TO_1K (MemList->CurrentSize)));
-
-    ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
-                    ("%30s: %4d (%3d Kb)\n", "Max concurrent allocations",
-                    MemList->MaxConcurrentCount,
-                    ROUND_UP_TO_1K (MemList->MaxConcurrentSize)));
-
-
-    ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
-                    ("%30s: %4d (%3d Kb)\n", "Total (all) internal objects",
-                    RunningObjectCount,
-                    ROUND_UP_TO_1K (RunningObjectSize)));
-
-    ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
-                    ("%30s: %4d (%3d Kb)\n", "Total (all) allocations",
-                    RunningAllocCount,
-                    ROUND_UP_TO_1K (RunningAllocSize)));
-
-
-    ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
-                    ("%30s: %4d (%3d Kb)\n", "Current Nodes",
-                    AcpiGbl_CurrentNodeCount,
-                    ROUND_UP_TO_1K (AcpiGbl_CurrentNodeSize)));
-
-    ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
-                    ("%30s: %4d (%3d Kb)\n", "Max Nodes",
-                    AcpiGbl_MaxConcurrentNodeCount,
-                    ROUND_UP_TO_1K ((AcpiGbl_MaxConcurrentNodeCount *
-                        sizeof (ACPI_NAMESPACE_NODE)))));
-*/
-    return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiUtDumpAllocations
- *
- * PARAMETERS:  Component           - Component(s) to dump info for.
- *              Module              - Module to dump info for.  NULL means all.
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print a list of all outstanding allocations.
- *
- ******************************************************************************/
-
-void
-AcpiUtDumpAllocations (
-    UINT32                  Component,
-    const char              *Module)
-{
-    ACPI_DEBUG_MEM_BLOCK    *Element;
-    ACPI_DESCRIPTOR         *Descriptor;
-    UINT32                  NumOutstanding = 0;
-
-
-    ACPI_FUNCTION_TRACE (UtDumpAllocations);
-
-
-    /*
-     * Walk the allocation list.
-     */
-    if (ACPI_FAILURE (AcpiUtAcquireMutex (ACPI_MTX_MEMORY)))
-    {
-        return;
-    }
-
-    Element = AcpiGbl_GlobalList->ListHead;
-    while (Element)
-    {
-        if ((Element->Component & Component) &&
-            ((Module == NULL) || (0 == ACPI_STRCMP (Module, Element->Module))))
-        {
-            /* Ignore allocated objects that are in a cache */
-
-            Descriptor = ACPI_CAST_PTR (ACPI_DESCRIPTOR, &Element->UserSpace);
-            if (ACPI_GET_DESCRIPTOR_TYPE (Descriptor) != ACPI_DESC_TYPE_CACHED)
-            {
-                AcpiOsPrintf ("%p Len %04X %9.9s-%d [%s] ",
-                    Descriptor, Element->Size, Element->Module,
-                    Element->Line, AcpiUtGetDescriptorName (Descriptor));
-
-                /* Most of the elements will be Operand objects. */
-
-                switch (ACPI_GET_DESCRIPTOR_TYPE (Descriptor))
-                {
-                case ACPI_DESC_TYPE_OPERAND:
-                    AcpiOsPrintf ("%12.12s R%hd",
-                        AcpiUtGetTypeName (Descriptor->Object.Common.Type),
-                        Descriptor->Object.Common.ReferenceCount);
-                    break;
-
-                case ACPI_DESC_TYPE_PARSER:
-                    AcpiOsPrintf ("AmlOpcode %04hX",
-                        Descriptor->Op.Asl.AmlOpcode);
-                    break;
-
-                case ACPI_DESC_TYPE_NAMED:
-                    AcpiOsPrintf ("%4.4s",
-                        AcpiUtGetNodeName (&Descriptor->Node));
-                    break;
-
-                default:
-                    break;
-                }
-
-                AcpiOsPrintf ( "\n");
-                NumOutstanding++;
-            }
-        }
-        Element = Element->Next;
-    }
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
-
-    /* Print summary */
-
-    if (!NumOutstanding)
-    {
-        ACPI_INFO ((AE_INFO,
-            "No outstanding allocations"));
-    }
-    else
-    {
-        ACPI_ERROR ((AE_INFO,
-            "%d(%X) Outstanding allocations",
-            NumOutstanding, NumOutstanding));
-    }
-
-    return_VOID;
-}
-
-#endif  /* ACPI_DBG_TRACK_ALLOCATIONS */
-
diff --git a/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utxface.c b/l4/pkg/acpica/lib-acpi/src/acpica/utilities/utxface.c
deleted file mode 100644 (file)
index ba57f49..0000000
+++ /dev/null
@@ -1,734 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utxface - External interfaces for "global" ACPI functions
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights.  You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code.  No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision.  In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change.  Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee.  Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution.  In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government.  In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-
-#define __UTXFACE_C__
-
-#include "acpi.h"
-#include "accommon.h"
-#include "acevents.h"
-#include "acnamesp.h"
-#include "acdebug.h"
-#include "actables.h"
-
-#define _COMPONENT          ACPI_UTILITIES
-        ACPI_MODULE_NAME    ("utxface")
-
-
-#ifndef ACPI_ASL_COMPILER
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInitializeSubsystem
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Initializes all global variables.  This is the first function
- *              called, so any early initialization belongs here.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInitializeSubsystem (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInitializeSubsystem);
-
-
-    AcpiGbl_StartupFlags = ACPI_SUBSYSTEM_INITIALIZE;
-    ACPI_DEBUG_EXEC (AcpiUtInitStackPtrTrace ());
-
-    /* Initialize the OS-Dependent layer */
-
-    Status = AcpiOsInitialize ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During OSL initialization"));
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Initialize all globals used by the subsystem */
-
-    Status = AcpiUtInitGlobals ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During initialization of globals"));
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Create the default mutex objects */
-
-    Status = AcpiUtMutexInitialize ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During Global Mutex creation"));
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Initialize the namespace manager and
-     * the root of the namespace tree
-     */
-    Status = AcpiNsRootInitialize ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status, "During Namespace initialization"));
-        return_ACPI_STATUS (Status);
-    }
-
-    /* If configured, initialize the AML debugger */
-
-    ACPI_DEBUGGER_EXEC (Status = AcpiDbInitialize ());
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInitializeSubsystem)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiEnableSubsystem
- *
- * PARAMETERS:  Flags           - Init/enable Options
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Completes the subsystem initialization including hardware.
- *              Puts system into ACPI mode if it isn't already.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnableSubsystem (
-    UINT32                  Flags)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (AcpiEnableSubsystem);
-
-
-    /* Enable ACPI mode */
-
-    if (!(Flags & ACPI_NO_ACPI_ENABLE))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Going into ACPI mode\n"));
-
-        AcpiGbl_OriginalMode = AcpiHwGetMode();
-
-        Status = AcpiEnable ();
-        if (ACPI_FAILURE (Status))
-        {
-            ACPI_WARNING ((AE_INFO, "AcpiEnable failed"));
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * Obtain a permanent mapping for the FACS. This is required for the
-     * Global Lock and the Firmware Waking Vector
-     */
-    Status = AcpiTbInitializeFacs ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_WARNING ((AE_INFO, "Could not map the FACS table"));
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Install the default OpRegion handlers.  These are installed unless
-     * other handlers have already been installed via the
-     * InstallAddressSpaceHandler interface.
-     */
-    if (!(Flags & ACPI_NO_ADDRESS_SPACE_INIT))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "[Init] Installing default address space handlers\n"));
-
-        Status = AcpiEvInstallRegionHandlers ();
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * Initialize ACPI Event handling (Fixed and General Purpose)
-     *
-     * Note1: We must have the hardware and events initialized before we can
-     * execute any control methods safely. Any control method can require
-     * ACPI hardware support, so the hardware must be fully initialized before
-     * any method execution!
-     *
-     * Note2: Fixed events are initialized and enabled here. GPEs are
-     * initialized, but cannot be enabled until after the hardware is
-     * completely initialized (SCI and GlobalLock activated) and the various
-     * initialization control methods are run (_REG, _STA, _INI) on the
-     * entire namespace.
-     */
-    if (!(Flags & ACPI_NO_EVENT_INIT))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "[Init] Initializing ACPI events\n"));
-
-        Status = AcpiEvInitializeEvents ();
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * Install the SCI handler and Global Lock handler. This completes the
-     * hardware initialization.
-     */
-    if (!(Flags & ACPI_NO_HANDLER_INIT))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "[Init] Installing SCI/GL handlers\n"));
-
-        Status = AcpiEvInstallXruptHandlers ();
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnableSubsystem)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiInitializeObjects
- *
- * PARAMETERS:  Flags           - Init/enable Options
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Completes namespace initialization by initializing device
- *              objects and executing AML code for Regions, buffers, etc.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInitializeObjects (
-    UINT32                  Flags)
-{
-    ACPI_STATUS             Status = AE_OK;
-
-
-    ACPI_FUNCTION_TRACE (AcpiInitializeObjects);
-
-
-    /*
-     * Run all _REG methods
-     *
-     * Note: Any objects accessed by the _REG methods will be automatically
-     * initialized, even if they contain executable AML (see the call to
-     * AcpiNsInitializeObjects below).
-     */
-    if (!(Flags & ACPI_NO_ADDRESS_SPACE_INIT))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "[Init] Executing _REG OpRegion methods\n"));
-
-        Status = AcpiEvInitializeOpRegions ();
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * Execute any module-level code that was detected during the table load
-     * phase. Although illegal since ACPI 2.0, there are many machines that
-     * contain this type of code. Each block of detected executable AML code
-     * outside of any control method is wrapped with a temporary control
-     * method object and placed on a global list. The methods on this list
-     * are executed below.
-     */
-    AcpiNsExecModuleCodeList ();
-
-    /*
-     * Initialize the objects that remain uninitialized. This runs the
-     * executable AML that may be part of the declaration of these objects:
-     * OperationRegions, BufferFields, Buffers, and Packages.
-     */
-    if (!(Flags & ACPI_NO_OBJECT_INIT))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "[Init] Completing Initialization of ACPI Objects\n"));
-
-        Status = AcpiNsInitializeObjects ();
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * Initialize all device objects in the namespace. This runs the device
-     * _STA and _INI methods.
-     */
-    if (!(Flags & ACPI_NO_DEVICE_INIT))
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
-            "[Init] Initializing ACPI Devices\n"));
-
-        Status = AcpiNsInitializeDevices ();
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
-    /*
-     * Initialize the GPE blocks defined in the FADT (GPE block 0 and 1).
-     * The runtime GPEs are enabled here.
-     *
-     * This is where the _PRW methods are executed for the GPEs. These
-     * methods can only be executed after the SCI and Global Lock handlers are
-     * installed and initialized.
-     *
-     * GPEs can only be enabled after the _REG, _STA, and _INI methods have
-     * been run. This ensures that all Operation Regions and all Devices have
-     * been initialized and are ready.
-     */
-    if (!(Flags & ACPI_NO_EVENT_INIT))
-    {
-        Status = AcpiEvInstallFadtGpes ();
-        if (ACPI_FAILURE (Status))
-        {
-            return (Status);
-        }
-    }
-
-    /*
-     * Empty the caches (delete the cached objects) on the assumption that
-     * the table load filled them up more than they will be at runtime --
-     * thus wasting non-paged memory.
-     */
-    Status = AcpiPurgeCachedObjects ();
-
-    AcpiGbl_StartupFlags |= ACPI_INITIALIZED_OK;
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInitializeObjects)
-
-
-#endif
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiTerminate
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Shutdown the ACPICA subsystem and release all resources.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTerminate (
-    void)
-{
-    ACPI_STATUS         Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiTerminate);
-
-
-    /* Just exit if subsystem is already shutdown */
-
-    if (AcpiGbl_Shutdown)
-    {
-        ACPI_ERROR ((AE_INFO, "ACPI Subsystem is already terminated"));
-        return_ACPI_STATUS (AE_OK);
-    }
-
-    /* Subsystem appears active, go ahead and shut it down */
-
-    AcpiGbl_Shutdown = TRUE;
-    AcpiGbl_StartupFlags = 0;
-    ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Shutting down ACPI Subsystem\n"));
-
-    /* Terminate the AML Debugger if present */
-
-    ACPI_DEBUGGER_EXEC (AcpiGbl_DbTerminateThreads = TRUE);
-
-    /* Shutdown and free all resources */
-
-    AcpiUtSubsystemShutdown ();
-
-    /* Free the mutex objects */
-
-    AcpiUtMutexTerminate ();
-
-
-#ifdef ACPI_DEBUGGER
-
-    /* Shut down the debugger */
-
-    AcpiDbTerminate ();
-#endif
-
-    /* Now we can shutdown the OS-dependent layer */
-
-    Status = AcpiOsTerminate ();
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiTerminate)
-
-
-#ifndef ACPI_ASL_COMPILER
-/*******************************************************************************
- *
- * FUNCTION:    AcpiSubsystemStatus
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status of the ACPI subsystem
- *
- * DESCRIPTION: Other drivers that use the ACPI subsystem should call this
- *              before making any other calls, to ensure the subsystem
- *              initialized successfully.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSubsystemStatus (
-    void)
-{
-
-    if (AcpiGbl_StartupFlags & ACPI_INITIALIZED_OK)
-    {
-        return (AE_OK);
-    }
-    else
-    {
-        return (AE_ERROR);
-    }
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSubsystemStatus)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetSystemInfo
- *
- * PARAMETERS:  OutBuffer       - A buffer to receive the resources for the
- *                                device
- *
- * RETURN:      Status          - the status of the call
- *
- * DESCRIPTION: This function is called to get information about the current
- *              state of the ACPI subsystem.  It will return system information
- *              in the OutBuffer.
- *
- *              If the function fails an appropriate status will be returned
- *              and the value of OutBuffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetSystemInfo (
-    ACPI_BUFFER             *OutBuffer)
-{
-    ACPI_SYSTEM_INFO        *InfoPtr;
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiGetSystemInfo);
-
-
-    /* Parameter validation */
-
-    Status = AcpiUtValidateBuffer (OutBuffer);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Validate/Allocate/Clear caller buffer */
-
-    Status = AcpiUtInitializeBuffer (OutBuffer, sizeof (ACPI_SYSTEM_INFO));
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /*
-     * Populate the return buffer
-     */
-    InfoPtr = (ACPI_SYSTEM_INFO *) OutBuffer->Pointer;
-
-    InfoPtr->AcpiCaVersion = ACPI_CA_VERSION;
-
-    /* System flags (ACPI capabilities) */
-
-    InfoPtr->Flags = ACPI_SYS_MODE_ACPI;
-
-    /* Timer resolution - 24 or 32 bits  */
-
-    if (AcpiGbl_FADT.Flags & ACPI_FADT_32BIT_TIMER)
-    {
-        InfoPtr->TimerResolution = 24;
-    }
-    else
-    {
-        InfoPtr->TimerResolution = 32;
-    }
-
-    /* Clear the reserved fields */
-
-    InfoPtr->Reserved1 = 0;
-    InfoPtr->Reserved2 = 0;
-
-    /* Current debug levels */
-
-    InfoPtr->DebugLayer = AcpiDbgLayer;
-    InfoPtr->DebugLevel = AcpiDbgLevel;
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetSystemInfo)
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiGetStatistics
- *
- * PARAMETERS:  Stats           - Where the statistics are returned
- *
- * RETURN:      Status          - the status of the call
- *
- * DESCRIPTION: Get the contents of the various system counters
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetStatistics (
-    ACPI_STATISTICS         *Stats)
-{
-    ACPI_FUNCTION_TRACE (AcpiGetStatistics);
-
-
-    /* Parameter validation */
-
-    if (!Stats)
-    {
-        return_ACPI_STATUS (AE_BAD_PARAMETER);
-    }
-
-    /* Various interrupt-based event counters */
-
-    Stats->SciCount = AcpiSciCount;
-    Stats->GpeCount = AcpiGpeCount;
-
-    ACPI_MEMCPY (Stats->FixedEventCount, AcpiFixedEventCount,
-        sizeof (AcpiFixedEventCount));
-
-
-    /* Other counters */
-
-    Stats->MethodCount = AcpiMethodCount;
-
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetStatistics)
-
-
-/*****************************************************************************
- *
- * FUNCTION:    AcpiInstallInitializationHandler
- *
- * PARAMETERS:  Handler             - Callback procedure
- *              Function            - Not (currently) used, see below
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Install an initialization handler
- *
- * TBD: When a second function is added, must save the Function also.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiInstallInitializationHandler (
-    ACPI_INIT_HANDLER       Handler,
-    UINT32                  Function)
-{
-
-    if (!Handler)
-    {
-        return (AE_BAD_PARAMETER);
-    }
-
-    if (AcpiGbl_InitHandler)
-    {
-        return (AE_ALREADY_EXISTS);
-    }
-
-    AcpiGbl_InitHandler = Handler;
-    return AE_OK;
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallInitializationHandler)
-
-
-/*****************************************************************************
- *
- * FUNCTION:    AcpiPurgeCachedObjects
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Empty all caches (delete the cached objects)
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiPurgeCachedObjects (
-    void)
-{
-    ACPI_FUNCTION_TRACE (AcpiPurgeCachedObjects);
-
-    (void) AcpiOsPurgeCache (AcpiGbl_StateCache);
-    (void) AcpiOsPurgeCache (AcpiGbl_OperandCache);
-    (void) AcpiOsPurgeCache (AcpiGbl_PsNodeCache);
-    (void) AcpiOsPurgeCache (AcpiGbl_PsNodeExtCache);
-    return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiPurgeCachedObjects)
-
-#endif /* ACPI_ASL_COMPILER */
-
diff --git a/l4/pkg/drivers/generic/include/io.h b/l4/pkg/drivers/generic/include/io.h
deleted file mode 100644 (file)
index f6961e5..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * (c) 2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>
- *     economic rights: Technische Universität Dresden (Germany)
- * This file is part of TUD:OS and distributed under the terms of the
- * GNU Lesser General Public License 2.1.
- * Please see the COPYING-LGPL-2.1 file for details.
- */
-#ifndef __ARM_DRIVERS__GENERIC__INCLUDE__IO_H__
-#define __ARM_DRIVERS__GENERIC__INCLUDE__IO_H__
-
-#include <sys/cdefs.h>
-#include <l4/sys/types.h>
-
-EXTERN_C_BEGIN
-
-L4_INLINE
-l4_umword_t io_read_mword(l4_addr_t addr);
-
-L4_INLINE
-void io_write_mword(l4_addr_t addr, l4_addr_t val);
-
-
-
-L4_INLINE
-l4_umword_t io_read_mword(l4_addr_t addr)
-{
-  return *(volatile l4_umword_t *)addr;
-}
-
-
-L4_INLINE
-void io_write_mword(l4_addr_t addr, l4_umword_t val)
-{
-  *(volatile l4_umword_t *)addr = val;
-}
-
-EXTERN_C_END
-
-#endif /* ! __ARM_DRIVERS__LCD__INCLUDE__LCD_H__ */
diff --git a/l4/pkg/drivers/generic/src/amba.c b/l4/pkg/drivers/generic/src/amba.c
deleted file mode 100644 (file)
index c9eabf0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-
-#include <l4/drivers/io.h>
-#include <l4/drivers/amba.h>
-
-
-void amba_read_id(l4_addr_t address, uint32_t *periphid, uint32_t *cellid)
-{
-  *periphid =   ((io_read_mword((l4_addr_t)address +  0) & 0xff) << 0)
-              | ((io_read_mword((l4_addr_t)address +  4) & 0xff) << 8)
-              | ((io_read_mword((l4_addr_t)address +  8) & 0xff) << 16)
-              | ((io_read_mword((l4_addr_t)address + 12) & 0xff) << 24);
-
-  *cellid   =   ((io_read_mword((l4_addr_t)address + 16) & 0xff) << 0)
-              | ((io_read_mword((l4_addr_t)address + 20) & 0xff) << 8)
-              | ((io_read_mword((l4_addr_t)address + 24) & 0xff) << 16)
-              | ((io_read_mword((l4_addr_t)address + 28) & 0xff) << 24);
-}
diff --git a/l4/pkg/examples/sys/vmtest/main.c b/l4/pkg/examples/sys/vmtest/main.c
deleted file mode 100644 (file)
index 4017b2f..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-/*
- * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
- *               Henning Schild <hschild@os.inf.tu-dresden.de>
- *     economic rights: Technische Universität Dresden (Germany)
- *
- * This file is part of TUD:OS and distributed under the terms of the
- * GNU General Public License 2.
- * Please see the COPYING-GPL-2 file for details.
- */
-#include <l4/sys/factory.h>
-#include <l4/sys/task.h>
-#include <l4/sys/kdebug.h>
-#include <l4/sys/vm.h>
-#include <l4/sys/thread.h>
-#include <l4/sys/vcpu.h>
-
-#include <l4/sys/irq.h>
-
-#include <l4/util/util.h>
-#include <l4/util/cpu.h>
-#include <l4/re/env.h>
-#include <l4/re/c/util/cap_alloc.h>
-#include <l4/vcpu/vcpu.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <pthread.h>
-
-#define STACKSIZE (8<<10)
-
-static char stack[STACKSIZE];
-static char hdl_stack[STACKSIZE];
-static unsigned long idt[32 * 2] __attribute__((aligned(4096)));
-static unsigned long gdt[32 * 2] __attribute__((aligned(4096)));
-
-void vm_resume(void);
-void handle_vmexit(void);
-l4_vcpu_state_t *vcpu;
-l4_vm_svm_vmcb_t *vmcb_s;
-
-static void init_vmcb(l4_vm_svm_vmcb_t *vmcb_s) {
-
-    vmcb_s->control_area.np_enable = 1;
-    vmcb_s->control_area.guest_asid_tlb_ctl = 1;
-
-    vmcb_s->state_save_area.es.selector = 0;
-    vmcb_s->state_save_area.es.attrib = 0;
-    vmcb_s->state_save_area.es.limit = 0;
-    vmcb_s->state_save_area.es.base = 0ULL;
-
-    //  vmcb[256 +  0] = 0;        // es; attrib sel
-
-    vmcb_s->state_save_area.cs.selector = 0x8;
-    vmcb_s->state_save_area.cs.attrib = 0xc9b;
-    vmcb_s->state_save_area.cs.limit = 0xffffffff;
-    vmcb_s->state_save_area.cs.base = 0ULL;
-
-    vmcb_s->state_save_area.ss.selector = 0x10;
-    vmcb_s->state_save_area.ss.attrib = 0xc93;
-    vmcb_s->state_save_area.ss.limit = 0xffffffff;
-    vmcb_s->state_save_area.ss.base = 0ULL;
-
-    vmcb_s->state_save_area.ds.selector = 0x23;
-    vmcb_s->state_save_area.ds.attrib = 0xcf3;
-    vmcb_s->state_save_area.ds.limit = 0xffffffff;
-    vmcb_s->state_save_area.ds.base = 0ULL;
-
-    vmcb_s->state_save_area.fs.selector = 0;
-    vmcb_s->state_save_area.fs.attrib = 0xcf3;
-    vmcb_s->state_save_area.fs.limit = 0xffffffff;
-    vmcb_s->state_save_area.fs.base = 0ULL;
-
-    vmcb_s->state_save_area.gs.selector = 0;
-    vmcb_s->state_save_area.gs.attrib = 0xcf3;
-    vmcb_s->state_save_area.gs.limit = 0xffffffff;
-    vmcb_s->state_save_area.gs.base = 0ULL;
-
-    vmcb_s->state_save_area.gdtr.selector = 0;
-    vmcb_s->state_save_area.gdtr.attrib = 0;
-    vmcb_s->state_save_area.gdtr.limit = 0x3f;
-    vmcb_s->state_save_area.gdtr.base = (unsigned long) gdt;
-
-    vmcb_s->state_save_area.ldtr.selector = 0;
-    vmcb_s->state_save_area.ldtr.attrib = 0;
-    vmcb_s->state_save_area.ldtr.limit = 0;
-    vmcb_s->state_save_area.ldtr.base = 0;
-
-    vmcb_s->state_save_area.idtr.selector = 0;
-    vmcb_s->state_save_area.idtr.attrib = 0;
-    vmcb_s->state_save_area.idtr.limit = 0xff;
-    vmcb_s->state_save_area.idtr.base = (unsigned long) idt;
-
-    vmcb_s->state_save_area.tr.selector = 0x28;
-    vmcb_s->state_save_area.tr.attrib = 0x8b;
-    vmcb_s->state_save_area.tr.limit = 0x67;
-    vmcb_s->state_save_area.tr.base = 0;
-
-    vmcb_s->state_save_area.g_pat = 0x7040600010406ULL;
-}
-
-static int check_svm(void) {
-    l4_umword_t ax, bx, cx, dx;
-
-    if (!l4util_cpu_has_cpuid())
-        return 1;
-
-    l4util_cpu_cpuid(0x80000001, &ax, &bx, &cx, &dx);
-
-    if (!(cx & 4)) {
-        printf("CPU does not support SVM.\n");
-        return 1;
-    }
-
-    l4util_cpu_cpuid(0x8000000a, &ax, &bx, &cx, &dx);
-
-    printf("SVM revision: %lx\n", ax & 0xf);
-    printf("Number of ASIDs: %lx\n", bx);
-
-    return 0;
-}
-
-static int check_svm_npt(void) {
-    l4_umword_t ax, bx, cx, dx;
-
-    l4util_cpu_cpuid(0x8000000a, &ax, &bx, &cx, &dx);
-
-    printf("NPT available: %s\n", dx & 1 ? "yes" : "no");
-
-    return (!(dx & 1));
-}
-
-int vmexit = 0;
-
-static int cnt_triggered, cnt_received;
-
-static void handler(void) {
-    //if(vmexit){
-        //vmexit = 0;
-        //handle_vmexit();
-    //} else {
-        // exception and ipc handling here
-    cnt_received++;
-    printf("received interrupt %d | %d %d\n", (int)vcpu->i.label,
-           cnt_triggered, cnt_received);
-    //}
-    vm_resume();
-}
-
-void vm_resume(void) {
-    l4_msgtag_t tag;
-
-//    if ((vmcb_s->state_save_area.rip >= marker)) {
-//        //printf("set tf for rip=%llx\n", vmcb_s->state_save_area.rip);
-//        vmcb_s->state_save_area.rflags |= 0x100; // set tf
-//    }
-
-    vmcb_s->control_area.intercept_exceptions |= 0xa; // intercept #1 & #3
-    vmcb_s->control_area.intercept_exceptions |= 0xffffffff;
-    vmcb_s->control_area.intercept_instruction1 |= 0x20; // intercept int1
-
-    //vmcb_s->control_area.exitcode = 0x100 << i;
-    vmcb_s->control_area.exitcode = 0;
-
-    tag = l4_thread_vcpu_resume_commit(L4_INVALID_CAP,
-            l4_thread_vcpu_resume_start());
-    if (l4_error(tag))
-        printf("vm-resume failed: %s (%ld)\n", l4sys_errtostr(l4_error(tag)),
-                l4_error(tag));
-
-    // if l4_thread_vcpu_resume_commit returns without error
-    // tell the handler that a vmexit occurred
-    vmexit = 1;
-    // and rewind the stack before we return into the handler
-    // simulating an upcall
-    handle_vmexit();
-    vm_resume();
-#if 0
-    asm volatile (
-            "movl %0, %%esp\n"
-            "pushl %1\n"
-            "ret\n"
-            : : "r"(vcpu->entry_sp), "r"(handler) );
-#endif
-}
-
-void handle_vmexit(void) {
-    static unsigned int i = 0;
-    ++i;
-    printf("iteration=%d, exit code=%llx", i,
-            vmcb_s->control_area.exitcode);
-
-    if (vmcb_s->control_area.exitcode == 0x43)
-        // int3 is treated as fault, not trap
-        vmcb_s->state_save_area.rip += 1;
-
-    if (vmcb_s->control_area.exitcode == 0x46) {
-//        if (vmcb_s->state_save_area.rip >= test_end)
-//            break;
-        vmcb_s->state_save_area.rip += 2;
-    }
-
-    if (vmcb_s->control_area.exitcode == 0x400) {
-        printf("host-level page fault; error code=%llx, gpa=%llx\n",
-                vmcb_s->control_area.exitinfo1, vmcb_s->control_area.exitinfo2);
-    }
-
-    if (vmcb_s->control_area.exitcode == 0x4e) {
-        printf("page fault; error code=%llx, pfa=%llx\n",
-                vmcb_s->control_area.exitinfo1, vmcb_s->control_area.exitinfo2);
-    }
-
-    if (vmcb_s->control_area.exitcode == 0x81) {
-        printf("VMMCALL\n");
-        vmcb_s->state_save_area.rip += 3;
-    }
-
-    if (vmcb_s->control_area.exitcode == 0x4d) {
-        printf("cs=%08x attrib=%x, limit=%x, base=%llx\n",
-                vmcb_s->state_save_area.cs.selector,
-                vmcb_s->state_save_area.cs.attrib,
-                vmcb_s->state_save_area.cs.limit,
-                vmcb_s->state_save_area.cs.base);
-        printf("ss=%08x attrib=%x, limit=%x, base=%llx\n",
-                vmcb_s->state_save_area.ss.selector,
-                vmcb_s->state_save_area.ss.attrib,
-                vmcb_s->state_save_area.ss.limit,
-                vmcb_s->state_save_area.ss.base);
-        printf("np_enabled=%lld\n", vmcb_s->control_area.np_enable);
-        printf("cr0=%llx cr4=%llx\n", vmcb_s->state_save_area.cr0,
-                vmcb_s->state_save_area.cr4);
-        printf("interrupt_ctl=%llx\n", vmcb_s->control_area.interrupt_ctl);
-        printf("rip=%llx, rsp=%llx, cpl=%d\n", vmcb_s->state_save_area.rip,
-                vmcb_s->state_save_area.rsp, vmcb_s->state_save_area.cpl);
-        printf("exitinfo1=%llx\n", vmcb_s->control_area.exitinfo1);
-    }
-}
-
-static l4_vcpu_state_t *get_state_mem(l4_addr_t *extstate) {
-    static int done;
-    long r;
-    l4_msgtag_t tag;
-    static l4_addr_t ext_state;
-
-    if (done) {
-        *extstate = ext_state;
-        return vcpu;
-    }
-
-    if ((r = l4vcpu_ext_alloc(&vcpu, &ext_state, L4_BASE_TASK_CAP,
-            l4re_env()->rm))) {
-        printf("Adding state mem failed: %ld\n", r);
-        exit(1);
-    }
-
-    vcpu->state = L4_VCPU_F_FPU_ENABLED;
-    vcpu->saved_state = L4_VCPU_F_USER_MODE | L4_VCPU_F_FPU_ENABLED | L4_VCPU_F_IRQ;
-
-    vcpu->entry_ip = (l4_umword_t)handler;
-    l4_umword_t * stack = (l4_umword_t*)(hdl_stack + STACKSIZE);
-    --stack;
-    *stack = 0;
-    vcpu->entry_sp = (l4_umword_t)stack;
-
-
-    tag = l4_thread_vcpu_control_ext(L4_INVALID_CAP, (l4_addr_t) vcpu);
-    if (l4_error(tag)) {
-        printf("Could not enable ext vCPU\n");
-        exit(1);
-    }
-
-    done = 1;
-    *extstate = ext_state;
-
-    return vcpu;
-}
-
-
-static void run_test(int np_available) {
-    l4_umword_t eflags;
-    l4_msgtag_t tag;
-    l4_cap_idx_t vm_task = l4re_util_cap_alloc();
-//    int i;
-    l4_umword_t ip; //, marker, test_end;
-    l4_addr_t vmcx;
-    get_state_mem(&vmcx);
-
-    printf("run test, np_available=%d\n", np_available);
-
-    if (l4_is_invalid_cap(vm_task)) {
-        printf("No more caps.\n");
-        return;
-    }
-
-    tag = l4_factory_create_vm(l4re_env()->factory, vm_task);
-    if (l4_error(tag)) {
-        printf("Failed to create new task\n");
-        exit(1);
-    }
-
-    vmcb_s = (l4_vm_svm_vmcb_t *) vmcx;
-
-    vcpu->user_task = vm_task;
-
-    vcpu->r.dx = 1;
-    vcpu->r.cx = 2;
-    vcpu->r.bx = 3;
-    vcpu->r.bp = 4;
-    vcpu->r.si = 5;
-    vcpu->r.di = 6;
-
-    printf("clearing exit codes\n");
-
-    //  asm volatile("    jmp 1f;           \n"
-    //               "2:  nop               \n"
-    //               "    nop               \n"
-    //               "    ud2               \n"
-    //               "    int3              \n"
-    //               "3:  nop               \n"
-    //               "    nop               \n"
-    //               "    int3              \n"
-    //               //"3:  nop               \n"
-    //               //"    int3              \n"
-    //               "    nop               \n"
-    //               "    nop               \n"
-    //               "    movl %%eax, %%ecx \n"
-    //               "    addl %%edx, %%ecx \n"
-    //               "    vmmcall           \n"
-    //               "4:                    \n"
-    //               "    ud2               \n"
-    //               "1:  movl $2b, %0      \n"
-    //               "    movl $3b, %1      \n"
-    //               "    movl $4b, %2      \n"
-    //               : "=r" (ip), "=r" (marker), "=r" (test_end));
-
-    asm volatile("    jmp 1f;           \n"
-            "2:  nop               \n"
-            "    nop               \n"
-            "    nop               \n"
-            "    jmp 2b            \n"
-            "1:  movl $2b, %0      \n"
-            : "=r" (ip));
-
-    init_vmcb(vmcb_s);
-
-    vmcb_s->state_save_area.cpl = 0;
-    vmcb_s->state_save_area.efer = 0x1000; // svme set
-
-    vmcb_s->state_save_area.cr4 = 0x690;
-    vmcb_s->state_save_area.cr3 = 0;
-    // PG[31] = 0, WP[16] = 1, NE[5]  = 1, ET[4]  = 1
-    // TS[3]  = 1, MP[1]  = 1, PE[0]  = 1
-    vmcb_s->state_save_area.cr0 = 0x1003b;
-
-    if (!np_available) {
-        vmcb_s->state_save_area.cr0 |= 0x80000000; // PG = 1
-        vmcb_s->control_area.np_enable &= ~1;
-    }
-
-    vmcb_s->state_save_area.dr7 = 0x300;
-    vmcb_s->state_save_area.dr6 = 0;
-
-    asm volatile("pushf     \n"
-            "popl %0   \n"
-            : "=r" (eflags));
-
-    vmcb_s->state_save_area.rflags = eflags;
-    vmcb_s->state_save_area.rip = ip;
-    vmcb_s->state_save_area.rsp = (l4_umword_t) stack + STACKSIZE;
-
-    unsigned ofs;
-    for (ofs = 0; ofs < STACKSIZE; ofs += L4_PAGESIZE) {
-        stack[ofs] = 0;
-        unsigned char c = stack[ofs];
-        unsigned dummy;
-
-        asm volatile("nop" : "=a"(dummy) : "0" (c));
-
-        tag = l4_task_map(vm_task, L4RE_THIS_TASK_CAP, l4_fpage(
-                (((l4_umword_t)(stack)) + ofs) & L4_PAGEMASK, L4_PAGESHIFT,
-                L4_FPAGE_RW), l4_map_control(((l4_umword_t) stack) + ofs, 0,
-                L4_MAP_ITEM_MAP));
-        printf("msgtag raw=%08x, ofs=%08x\n", (unsigned) tag.raw, ofs);
-    }
-
-    tag = l4_task_map(vm_task, L4RE_THIS_TASK_CAP, l4_fpage(ip & L4_PAGEMASK,
-            L4_PAGESHIFT, L4_FPAGE_RW), l4_map_control(ip, 0, L4_MAP_ITEM_MAP));
-
-    printf("msgtag raw=%08lx, ip=%08lx\n", tag.raw, ip);
-
-    idt[26] = 0x80000; // #13 general protection fault
-    idt[27] = 0x8e00;
-
-    idt[28] = 0x80000; // #14 page fault
-    idt[29] = 0x8e00;
-
-    // code segment 0x08
-    gdt[2] = 0xffff;
-    gdt[3] = 0xcf9b00;
-
-    // stack segment 0x10
-    gdt[4] = 0xffff;
-    gdt[5] = 0xcf9300;
-
-    // data segment 0x20
-    gdt[8] = 0xffff;
-    gdt[9] = 0xcff300;
-
-    // tss 0x28
-    gdt[10] = 0x67;
-    gdt[11] = 0x8b00;
-
-    unsigned idt0 = (unsigned) idt;
-    tag = l4_task_map(vm_task, L4RE_THIS_TASK_CAP, l4_fpage(idt0 & L4_PAGEMASK,
-            L4_PAGESHIFT, L4_FPAGE_RW),
-            l4_map_control(idt0, 0, L4_MAP_ITEM_MAP));
-    printf("msgtag raw=%08x, idt=%08x\n", (unsigned) tag.raw, idt0);
-
-    unsigned gdt0 = (unsigned) gdt;
-    tag = l4_task_map(vm_task, L4RE_THIS_TASK_CAP, l4_fpage(gdt0 & L4_PAGEMASK,
-            L4_PAGESHIFT, L4_FPAGE_RW),
-            l4_map_control(gdt0, 0, L4_MAP_ITEM_MAP));
-    printf("msgtag raw=%08x, gdt=%08x\n", (unsigned) tag.raw, gdt0);
-
-    //  printf("sizes vmcb=%x, control=%x,  state=%x\n",
-    //         sizeof(*vmcb_s),
-    //         sizeof(vmcb_s->control_area), sizeof(vmcb_s->sitate_save_area));
-
-    printf("start rip=%llx\n", vmcb_s->state_save_area.rip);
-
-    vmcb_s->state_save_area.rax = 8;
-
-    vm_resume();
-
-}
-
-
-//  printf("rip=%08llx, rax=%llx, edx=%lx, ecx=%lx\n",
-//         vmcb_s->state_save_area.rip,
-//         vmcb_s->state_save_area.rax,
-//         vcpu->r.dx, vcpu->r.cx);
-//
-//  printf("run vm stop, status=%s\n", vcpu->r.cx == 9 ? "success" : "failure");
-//
-//  l4_task_unmap(L4RE_THIS_TASK_CAP,
-//                l4_obj_fpage(vm_task, 0, L4_FPAGE_RWX),
-//                L4_FP_ALL_SPACES);
-//}
-
-#include <l4/sys/ktrace.h>
-l4_cap_idx_t timer_irq;
-void * timer_thread(void * );
-void * timer_thread(void * data) {
-    (void)data;
-    l4_sleep(1000);
-    fiasco_tbuf_log("FIRST");
-    while(1){
-        l4_sleep(200);
-        fiasco_tbuf_log("Trig");
-        printf("trigger\n");
-        cnt_triggered++;
-        l4_irq_trigger(timer_irq);
-    }
-}
-
-#include <unistd.h>
-
-int main(void)
-{
-    timer_irq = l4re_util_cap_alloc();
-    if (l4_error(l4_factory_create_irq(l4re_env()->factory, timer_irq)))
-      printf("irq creation failed\n");
-
-    if (l4_error(l4_irq_attach(timer_irq, 0x120, L4_INVALID_CAP)))
-        printf("irq attach failed\n");
-
-    printf("VM testing\n");
-
-    if (check_svm())
-      {
-        printf("No SVM CPU. Bye.\n");
-        return 1;
-      }
-
-    l4_touch_rw(stack, sizeof(stack));
-    l4_touch_rw(hdl_stack, sizeof(hdl_stack));
-
-    pthread_t pthread_timer_thread;
-
-    pthread_create(&pthread_timer_thread, NULL, timer_thread, NULL);
-
-    run_test(0);
-
-    if (!check_svm_npt())
-        run_test(1);
-
-    return 0;
-}
diff --git a/l4/pkg/l4re_c/util/include/cap.h b/l4/pkg/l4re_c/util/include/cap.h
deleted file mode 100644 (file)
index 2f51f10..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * \file
- * \brief   Capability allocator C interface
- */
-/*
- * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>
- *     economic rights: Technische Universität Dresden (Germany)
- *
- * This file is part of TUD:OS and distributed under the terms of the
- * GNU General Public License 2.
- * Please see the COPYING-GPL-2 file for details.
- *
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU General Public License.  This exception does not however
- * invalidate any other reasons why the executable file might be covered by
- * the GNU General Public License.
- */
-#pragma once
-
-/**
- * \defgroup api_l4re_c_util_cap Capability allocator
- * \ingroup api_l4re_c
- * \brief Capability allocator C interface.
- */
-
-#include <l4/sys/types.h>
-#include <l4/sys/linkage.h>
-#include <l4/sys/task.h>
-
-EXTERN_C_BEGIN
-
-/**
- * \brief Release a capability from a task (unmap).
- * \ingroup api_l4re_c_util
- *
- * Note that the given capability does not need to be handled by the
- * capability allocator in any way.
- */
-L4_CV L4_INLINE
-l4_msgtag_t
-l4re_util_cap_release(l4_cap_idx_t cap);
-
-/* Implementations */
-
-L4_CV L4_INLINE
-l4_msgtag_t
-l4re_util_cap_release(l4_cap_idx_t cap)
-{
-  return l4_task_unmap(L4_BASE_TASK_CAP,
-                       l4_obj_fpage(cap, 0, L4_FPAGE_RWX),
-                       L4_FP_ALL_SPACES);
-}
-
-EXTERN_C_END