[haiku-commits] r39565 - in haiku/trunk: headers/os/drivers src/add-ons/kernel/bus_managers/acpi src/add-ons/kernel/bus_managers/acpi/common src/add-ons/kernel/bus_managers/acpi/dispatcher src/add-ons/kernel/bus_managers/acpi/events ...

  • From: fredrik.holmqvist@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 21 Nov 2010 22:58:07 +0100 (CET)

Author: tqh
Date: 2010-11-21 22:58:06 +0100 (Sun, 21 Nov 2010)
New Revision: 39565
Changeset: http://dev.haiku-os.org/changeset/39565

Added:
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/hardware/hwpci.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utosi.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utxferror.c
Removed:
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/compiler/
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/debugger/
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/disassembler/
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/accygwin.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acfreebsd.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/aclinux.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acnetbsd.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acos2.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acwin.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acwin64.h
Modified:
   haiku/trunk/headers/os/drivers/ACPI.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/Jamfile
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_embedded_controller.cpp
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_priv.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adfile.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adisasm.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adwalk.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmextern.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmrestag.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtbdump.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtbinfo.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/getopt.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/dispatcher/dsinit.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/dispatcher/dsmethod.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/dispatcher/dsmthdat.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/dispatcher/dsobject.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/dispatcher/dsopcode.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/dispatcher/dsutils.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/events/evgpe.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/events/evgpeblk.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/events/evgpeinit.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/events/evgpeutil.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/events/evrgnini.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/events/evxface.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/events/evxfevnt.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/events/evxfregn.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/executer/exdump.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/executer/exfldio.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/executer/exmutex.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/executer/exprep.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/executer/exregion.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/executer/exsystem.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/hardware/hwgpe.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/hardware/hwsleep.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/hardware/hwvalid.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acapps.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acconfig.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acdebug.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acdisasm.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acevents.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acexcep.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acglobal.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/achware.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/aclocal.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acmacros.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acnamesp.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acobject.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acoutput.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acpiosxf.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acpixf.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acpredef.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acstruct.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/actbl.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/actbl2.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/actypes.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acutils.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acenv.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acgcc.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/achaiku.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acintel.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acmsvc.h
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsaccess.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsalloc.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsdump.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsinit.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsnames.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsparse.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsrepair.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsrepair2.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nssearch.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsutils.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nswalk.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/namespace/nsxfobj.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/oshaiku.cpp
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/tables/tbfadt.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utdebug.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/uteval.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utglobal.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utids.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utinit.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utmath.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utmisc.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utmutex.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/uttrack.c
   haiku/trunk/src/add-ons/kernel/bus_managers/acpi/utilities/utxface.c
Log:
Updated ACPICA to 20101013 from 20100428. See 
http://www.acpica.org/download/changes.txt for changes.
Embedded Controller still needs some looking into, and I had to remove the WIP 
code for dumping MADT.
Both are on my TODO.

Also removed a lot of unneeded parts of ACPICA from trunk and did some cleanup 
in Jamfile.



Modified: haiku/trunk/headers/os/drivers/ACPI.h
===================================================================
--- haiku/trunk/headers/os/drivers/ACPI.h       2010-11-21 21:00:10 UTC (rev 
39564)
+++ haiku/trunk/headers/os/drivers/ACPI.h       2010-11-21 21:58:06 UTC (rev 
39565)
@@ -168,8 +168,7 @@
 
        /* GPE Handler */
 
-       status_t        (*enable_gpe)(acpi_handle handle, uint32 gpeNumber,
-                                       uint32 flags);
+       status_t        (*enable_gpe)(acpi_handle handle, uint32 gpeNumber);
        status_t        (*set_gpe)(acpi_handle handle, uint32 gpeNumber,
                                        uint8 action);
        status_t        (*install_gpe_handler)(acpi_handle handle, uint32 
gpeNumber,

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/Jamfile
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/Jamfile    2010-11-21 
21:00:10 UTC (rev 39564)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/Jamfile    2010-11-21 
21:58:06 UTC (rev 39565)
@@ -6,46 +6,12 @@
 SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) pci ] ;
 SubDirCcFlags -fno-pic -D_KERNEL_MODE ;
 
-local events_src =
-       evevent.c
-       evgpe.c
-       evgpeblk.c
-       evgpeinit.c
-       evgpeutil.c
-       evmisc.c
-       evregion.c
-       evrgnini.c
-       evsci.c
-       evxface.c
-       evxfevnt.c
-       evxfregn.c
-       ;
 
-local hardware_src =
-       hwacpi.c
-       hwgpe.c
-       hwregs.c
-       hwsleep.c
-       hwtimer.c
-       hwvalid.c
-       hwxface.c
-;
-
 local common_src =
-       dmtable.c
        dmtbdump.c
        dmtbinfo.c
-;
+       ;
 
-local debugger_src =
-       dbdisply.c
-       dbxface.c
-;
-
-local disassembler_src =
-       dmobject.c
-;
-
 local dispatcher_src =
        dsfield.c
        dsinit.c
@@ -60,6 +26,21 @@
        dswstate.c
        ;
 
+local events_src =
+       evevent.c
+       evgpe.c
+       evgpeblk.c
+       evgpeinit.c
+       evgpeutil.c
+       evmisc.c
+       evregion.c
+       evrgnini.c
+       evsci.c
+       evxface.c
+       evxfevnt.c
+       evxfregn.c
+       ;
+       
 local executer_src =
        exconfig.c
        exconvrt.c
@@ -87,17 +68,16 @@
        exutils.c
        ;
 
-local parser_src =
-       psargs.c
-       psloop.c
-       psopcode.c
-       psparse.c
-       psscope.c
-       pstree.c
-       psutils.c
-       pswalk.c
-       psxface.c
-       ;
+local hardware_src =
+       hwacpi.c
+       hwgpe.c
+       hwpci.c
+       hwregs.c
+       hwsleep.c
+       hwtimer.c
+       hwvalid.c
+       hwxface.c
+;
 
 local namespace_src =
        nsaccess.c
@@ -121,6 +101,18 @@
        nsxfobj.c
        ;
 
+local parser_src =
+       psargs.c
+       psloop.c
+       psopcode.c
+       psparse.c
+       psscope.c
+       pstree.c
+       psutils.c
+       pswalk.c
+       psxface.c
+       ;
+
 local resources_src =
        rsaddr.c
        rscalc.c
@@ -161,35 +153,38 @@
        utmisc.c
        utmutex.c
        utobject.c
+       utosi.c
        utresrc.c
        utstate.c
        uttrack.c
        utxface.c
+       utxferror.c
        ;
 
 StaticLibrary libacpi_ca.a :
-       $(events_src)
-       $(hardware_src)
+       $(common_src)
+       $(compiler_src)
        $(dispatcher_src)
+       $(events_src)
        $(executer_src)
-       $(parser_src)
+       $(hardware_src)
        $(namespace_src)
+       $(parser_src)
        $(resources_src)
        $(tables_src)
        $(utilities_src)
-       $(common_src)
-        ;
+       ;
 
+SEARCH on [ FGristFiles $(common_src)  ] = [ FDirName $(HAIKU_TOP) src add-ons 
kernel bus_managers acpi common ] ;
+SEARCH on [ FGristFiles $(dispatcher_src)  ] = [ FDirName $(HAIKU_TOP) src 
add-ons kernel bus_managers acpi dispatcher ] ;
 SEARCH on [ FGristFiles $(events_src)  ] = [ FDirName $(HAIKU_TOP) src add-ons 
kernel bus_managers acpi events ] ;
+SEARCH on [ FGristFiles $(executer_src)  ] = [ FDirName $(HAIKU_TOP) src 
add-ons kernel bus_managers acpi executer ] ;
 SEARCH on [ FGristFiles $(hardware_src)  ] = [ FDirName $(HAIKU_TOP) src 
add-ons kernel bus_managers acpi hardware ] ;
 SEARCH on [ FGristFiles $(namespace_src)  ] = [ FDirName $(HAIKU_TOP) src 
add-ons kernel bus_managers acpi namespace ] ;
+SEARCH on [ FGristFiles $(parser_src)  ] = [ FDirName $(HAIKU_TOP) src add-ons 
kernel bus_managers acpi parser ] ;
 SEARCH on [ FGristFiles $(resources_src)  ] = [ FDirName $(HAIKU_TOP) src 
add-ons kernel bus_managers acpi resources ] ;
-SEARCH on [ FGristFiles $(tables_src) tbutils.c ] = [ FDirName $(HAIKU_TOP) 
src add-ons kernel bus_managers acpi tables ] ;
+SEARCH on [ FGristFiles $(tables_src) ] = [ FDirName $(HAIKU_TOP) src add-ons 
kernel bus_managers acpi tables ] ;
 SEARCH on [ FGristFiles $(utilities_src)  ] = [ FDirName $(HAIKU_TOP) src 
add-ons kernel bus_managers acpi utilities ] ;
-SEARCH on [ FGristFiles $(dispatcher_src)  ] = [ FDirName $(HAIKU_TOP) src 
add-ons kernel bus_managers acpi dispatcher ] ;
-SEARCH on [ FGristFiles $(executer_src)  ] = [ FDirName $(HAIKU_TOP) src 
add-ons kernel bus_managers acpi executer ] ;
-SEARCH on [ FGristFiles $(parser_src)  ] = [ FDirName $(HAIKU_TOP) src add-ons 
kernel bus_managers acpi parser ] ;
-SEARCH on [ FGristFiles $(common_src)  ] = [ FDirName $(HAIKU_TOP) src add-ons 
kernel bus_managers acpi common ] ;
 
 KernelAddon acpi :
        oshaiku.cpp

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c      
2010-11-21 21:00:10 UTC (rev 39564)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c      
2010-11-21 21:58:06 UTC (rev 39565)
@@ -84,10 +84,10 @@
        while (true) {
                status = AcpiGetTable (ACPI_SIG_MADT, ++madtCount, &madt);
                if (status != AE_OK) break;
-               
+/*             
                dprintf("acpi: MADT TABLE:\n");
                AcpiDmDumpDataTable( madt );
-/*             entry = madt + 44;
+               entry = madt + 44;
                end = madt + madt->Header.Length;
                while (entry < end) {
                        dprintf("\t\tType: %d\n", entry->Type);
@@ -303,9 +303,9 @@
 
 
 status_t
-enable_gpe(acpi_handle handle, uint32 gpeNumber, uint32 flags)
+enable_gpe(acpi_handle handle, uint32 gpeNumber)
 {
-       return AcpiEnableGpe(handle, gpeNumber, flags) == AE_OK ? B_OK : 
B_ERROR;
+       return AcpiEnableGpe(handle, gpeNumber) == AE_OK ? B_OK : B_ERROR;
 }
 
 

Modified: 
haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_embedded_controller.cpp
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_embedded_controller.cpp   
    2010-11-21 21:00:10 UTC (rev 39564)
+++ 
haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_embedded_controller.cpp   
    2010-11-21 21:58:06 UTC (rev 39565)
@@ -374,8 +374,7 @@
        }
 
        // Enable runtime GPEs for the handler.
-       status = sc->ec_acpi_module->enable_gpe(sc->ec_gpehandle, sc->ec_gpebit,
-               ACPI_GPE_TYPE_RUNTIME);
+       status = sc->ec_acpi_module->enable_gpe(sc->ec_gpehandle, 
sc->ec_gpebit);
        if (status != B_OK) {
                TRACE("AcpiEnableGpe failed.\n");
                goto error;

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_priv.h
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_priv.h        
2010-11-21 21:00:10 UTC (rev 39564)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_priv.h        
2010-11-21 21:58:06 UTC (rev 39565)
@@ -61,8 +61,7 @@
 
        /* GPE Handler */
 
-       status_t        (*enable_gpe)(acpi_handle handle, uint32 gpeNumber,
-                                       uint32 flags);
+       status_t        (*enable_gpe)(acpi_handle handle, uint32 gpeNumber);
        status_t        (*set_gpe)(acpi_handle handle, uint32 gpeNumber,
                                        uint8 action);
        status_t        (*install_gpe_handler)(acpi_handle handle, uint32 
gpeNumber,
@@ -154,7 +153,7 @@
 status_t remove_notify_handler(acpi_handle device, uint32 handlerType,
        acpi_notify_handler handler);
 
-status_t enable_gpe(acpi_handle handle, uint32 gpeNumber, uint32 flags);
+status_t enable_gpe(acpi_handle handle, uint32 gpeNumber);
 status_t set_gpe(acpi_handle handle, uint32 gpeNumber, uint8 action);
 status_t install_gpe_handler(acpi_handle handle, uint32 gpeNumber, uint32 type,
        acpi_event_handler handler, void* data);

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adfile.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adfile.c    
2010-11-21 21:00:10 UTC (rev 39564)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adfile.c    
2010-11-21 21:58:06 UTC (rev 39565)
@@ -126,13 +126,13 @@
 
 /* Local prototypes */
 
-INT32
+static INT32
 AdWriteBuffer (
     char                    *Filename,
     char                    *Buffer,
     UINT32                  Length);
 
-char                        FilenameBuf[20];
+static char                 FilenameBuf[20];
 
 
 /******************************************************************************
@@ -190,7 +190,7 @@
  *
  
******************************************************************************/
 
-INT32
+static INT32
 AdWriteBuffer (
     char                    *Filename,
     char                    *Buffer,

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adisasm.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adisasm.c   
2010-11-21 21:00:10 UTC (rev 39564)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adisasm.c   
2010-11-21 21:58:06 UTC (rev 39565)
@@ -134,7 +134,6 @@
 
 
 extern int                  AslCompilerdebug;
-extern char                 *Gbl_ExternalFilename;
 
 
 ACPI_STATUS
@@ -148,22 +147,18 @@
 
 /* Local prototypes */
 
-void
+static void
 AdCreateTableHeader (
     char                    *Filename,
     ACPI_TABLE_HEADER       *Table);
 
-void
-AdDisassemblerHeader (
-    char                    *Filename);
-
-ACPI_STATUS
+static ACPI_STATUS
 AdDeferredParse (
     ACPI_PARSE_OBJECT       *Op,
     UINT8                   *Aml,
     UINT32                  AmlLength);
 
-ACPI_STATUS
+static ACPI_STATUS
 AdParseDeferredOps (
     ACPI_PARSE_OBJECT       *Root);
 
@@ -317,6 +312,7 @@
     ACPI_STATUS             Status;
     char                    *DisasmFilename = NULL;
     char                    *ExternalFilename;
+    ACPI_EXTERNAL_FILE      *ExternalFileList = AcpiGbl_ExternalFileList;
     FILE                    *File = NULL;
     ACPI_TABLE_HEADER       *Table = NULL;
     ACPI_TABLE_HEADER       *ExternalTable;
@@ -339,46 +335,54 @@
          * External filenames separated by commas
          * Example: iasl -e file1,file2,file3 -d xxx.aml
          */
-        if (Gbl_ExternalFilename)
+        while (ExternalFileList)
         {
-            ExternalFilename = strtok (Gbl_ExternalFilename, ",");
+            ExternalFilename = ExternalFileList->Path;
+            if (!ACPI_STRCMP (ExternalFilename, Filename))
+            {
+                /* Next external file */
 
-            while (ExternalFilename)
+                ExternalFileList = ExternalFileList->Next;
+
+                continue;
+            }
+
+            Status = AcpiDbGetTableFromFile (ExternalFilename, &ExternalTable);
+            if (ACPI_FAILURE (Status))
             {
-                Status = AcpiDbGetTableFromFile (ExternalFilename, 
&ExternalTable);
+                return Status;
+            }
+
+            /* Load external table for symbol resolution */
+
+            if (ExternalTable)
+            {
+                Status = AdParseTable (ExternalTable, &OwnerId, TRUE, TRUE);
                 if (ACPI_FAILURE (Status))
                 {
+                    AcpiOsPrintf ("Could not parse external ACPI tables, %s\n",
+                        AcpiFormatException (Status));
                     return Status;
                 }
 
-                /* Load external table for symbol resolution */
+                /*
+                 * Load namespace from names created within control methods
+                 * Set owner id of nodes in external table
+                 */
+                AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot,
+                    AcpiGbl_RootNode, OwnerId);
+                AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
+            }
 
-                if (ExternalTable)
-                {
-                    Status = AdParseTable (ExternalTable, &OwnerId, TRUE, 
TRUE);
-                    if (ACPI_FAILURE (Status))
-                    {
-                        AcpiOsPrintf ("Could not parse external ACPI tables, 
%s\n",
-                            AcpiFormatException (Status));
-                        return Status;
-                    }
+            /* Next external file */
 
-                    /*
-                     * Load namespace from names created within control methods
-                     * Set owner id of nodes in external table
-                     */
-                    AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot,
-                        AcpiGbl_RootNode, OwnerId);
-                    AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
-                }
+            ExternalFileList = ExternalFileList->Next;
+        }
 
-                /* Next external file name */
+        /* Clear external list generated by Scope in external tables */
 
-                ExternalFilename = strtok (NULL, ",");
-            }
-
-            /* Clear external list generated by Scope in external tables */
-
+        if (AcpiGbl_ExternalFileList)
+        {
             AcpiDmClearExternalList ();
         }
     }
@@ -502,7 +506,7 @@
         if (AcpiDmGetExternalMethodCount ())
         {
             fprintf (stderr,
-                "\nFound %d external control methods, reparsing with new 
information\n",
+                "\nFound %u external control methods, reparsing with new 
information\n",
                 AcpiDmGetExternalMethodCount ());
 
             /*
@@ -515,10 +519,11 @@
             AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
             AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED;
             AcpiGbl_RootNodeStruct.Type         = ACPI_TYPE_DEVICE;
+            AcpiGbl_RootNodeStruct.Parent       = NULL;
             AcpiGbl_RootNodeStruct.Child        = NULL;
             AcpiGbl_RootNodeStruct.Peer         = NULL;
             AcpiGbl_RootNodeStruct.Object       = NULL;
-            AcpiGbl_RootNodeStruct.Flags        = ANOBJ_END_OF_PEER_LIST;
+            AcpiGbl_RootNodeStruct.Flags        = 0;
 
             Status = AcpiNsRootInitialize ();
             AcpiDmAddExternalsToNamespace ();
@@ -607,10 +612,10 @@
 
     /* Header and input table info */
 
-    AcpiOsPrintf ("/*\n * Intel ACPI Component Architecture\n");
-    AcpiOsPrintf (" * AML Disassembler version %8.8X\n", ACPI_CA_VERSION);
+    AcpiOsPrintf ("/*\n");
+    AcpiOsPrintf (ACPI_COMMON_HEADER ("AML Disassembler", " * "));
 
-    AcpiOsPrintf (" *\n * Disassembly of %s, %s", Filename, ctime (&Timer));
+    AcpiOsPrintf (" * Disassembly of %s, %s", Filename, ctime (&Timer));
     AcpiOsPrintf (" *\n");
 }
 
@@ -629,7 +634,7 @@
  *
  *****************************************************************************/
 
-void
+static void
 AdCreateTableHeader (
     char                    *Filename,
     ACPI_TABLE_HEADER       *Table)
@@ -643,7 +648,7 @@
      */
     AdDisassemblerHeader (Filename);
 
-    AcpiOsPrintf (" *\n * Original Table Header:\n");
+    AcpiOsPrintf (" * Original Table Header:\n");
     AcpiOsPrintf (" *     Signature        \"%4.4s\"\n",    Table->Signature);
     AcpiOsPrintf (" *     Length           0x%8.8X (%u)\n", Table->Length, 
Table->Length);
 
@@ -688,7 +693,7 @@
     AcpiOsPrintf (" *     OEM Revision     0x%8.8X (%u)\n", 
Table->OemRevision, Table->OemRevision);
     AcpiOsPrintf (" *     Compiler ID      \"%.4s\"\n",     
Table->AslCompilerId);
     AcpiOsPrintf (" *     Compiler Version 0x%8.8X (%u)\n", 
Table->AslCompilerRevision, Table->AslCompilerRevision);
-    AcpiOsPrintf (" */\n");
+    AcpiOsPrintf (" */\n\n");
 
     /* Create AML output filename based on input filename */
 
@@ -706,7 +711,7 @@
     /* Open the ASL definition block */
 
     AcpiOsPrintf (
-        "DefinitionBlock (\"%s\", \"%4.4s\", %hd, \"%.6s\", \"%.8s\", 
0x%8.8X)\n",
+        "DefinitionBlock (\"%s\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 
0x%8.8X)\n",
         NewFilename, Table->Signature, Table->Revision,
         Table->OemId, Table->OemTableId, Table->OemRevision);
 
@@ -776,7 +781,7 @@
  *
  *****************************************************************************/
 
-ACPI_STATUS
+static ACPI_STATUS
 AdDeferredParse (
     ACPI_PARSE_OBJECT       *Op,
     UINT8                   *Aml,
@@ -899,7 +904,7 @@
  *
  *****************************************************************************/
 
-ACPI_STATUS
+static ACPI_STATUS
 AdParseDeferredOps (
     ACPI_PARSE_OBJECT       *Root)
 {
@@ -1018,7 +1023,7 @@
          * is architecture-dependent.
          */
         NumTables = (NewTable->Length - sizeof (ACPI_TABLE_HEADER)) / 
PointerSize;
-        AcpiOsPrintf ("There are %d tables defined in the %4.4s\n\n",
+        AcpiOsPrintf ("There are %u tables defined in the %4.4s\n\n",
             NumTables, NewTable->Signature);
 
         /* Get the FADT */

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adwalk.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adwalk.c    
2010-11-21 21:00:10 UTC (rev 39564)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/adwalk.c    
2010-11-21 21:58:06 UTC (rev 39565)
@@ -537,7 +537,7 @@
             }
 
             ArgCount = AcpiDmInspectPossibleArgs (3, 1, NextOp);
-            AcpiOsPrintf ("/* A-CHILDREN: %d Actual %d */\n", ArgCount, 
AcpiDmCountChildren (Op));
+            AcpiOsPrintf ("/* A-CHILDREN: %u Actual %u */\n", ArgCount, 
AcpiDmCountChildren (Op));
 
             if (ArgCount < 1)
             {
@@ -792,6 +792,7 @@
     ACPI_PARSE_OBJECT       *NextOp;
     ACPI_NAMESPACE_NODE     *Node;
     ACPI_OPERAND_OBJECT     *Object;
+    UINT32                  ParamCount = 0;
 
 
     WalkState = Info->WalkState;
@@ -880,18 +881,13 @@
         if (Object)
         {
             ObjectType2 = Object->Common.Type;
+            if (ObjectType2 == ACPI_TYPE_METHOD)
+            {
+                ParamCount = Object->Method.ParamCount;
+            }
         }
 
-        if (ObjectType2 == ACPI_TYPE_METHOD)
-        {
-            AcpiDmAddToExternalList (Op, Path, ACPI_TYPE_METHOD,
-                Object->Method.ParamCount);
-        }
-        else
-        {
-            AcpiDmAddToExternalList (Op, Path, (UINT8) ObjectType2, 0);
-        }
-
+        AcpiDmAddToExternalList (Op, Path, (UINT8) ObjectType2, ParamCount);
         Op->Common.Node = Node;
     }
     else

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmextern.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmextern.c  
2010-11-21 21:00:10 UTC (rev 39564)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmextern.c  
2010-11-21 21:58:06 UTC (rev 39565)
@@ -252,7 +252,7 @@
     Node = Op->Common.Node;
     while (Node && (*Path == (UINT8) AML_PARENT_PREFIX))
     {
-        Node = AcpiNsGetParentNode (Node);
+        Node = Node->Parent;
         Path++;
     }
 
@@ -312,6 +312,95 @@
 
 
/*******************************************************************************
  *
+ * FUNCTION:    AcpiDmAddToExternalFileList
+ *
+ * PARAMETERS:  PathList            - Single path or list separated by comma
+ *
+ * RETURN:      None
+ *
+ * DESCRIPTION: Add external files to global list
+ *
+ 
******************************************************************************/
+
+ACPI_STATUS
+AcpiDmAddToExternalFileList (
+    char                    *PathList)
+{
+    ACPI_EXTERNAL_FILE      *ExternalFile;
+    char                    *Path;
+    char                    *TmpPath;
+
+
+    if (!PathList)
+    {
+        return (AE_OK);
+    }
+
+    Path = strtok (PathList, ",");
+
+    while (Path)
+    {
+        TmpPath = ACPI_ALLOCATE_ZEROED (ACPI_STRLEN (Path) + 1);
+        if (!TmpPath)
+        {
+            return (AE_NO_MEMORY);
+        }
+
+        ACPI_STRCPY (TmpPath, Path);
+
+        ExternalFile = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EXTERNAL_FILE));
+        if (!ExternalFile)
+        {
+            ACPI_FREE (TmpPath);
+            return (AE_NO_MEMORY);
+        }
+
+        ExternalFile->Path = TmpPath;
+
+        if (AcpiGbl_ExternalFileList)
+        {
+            ExternalFile->Next = AcpiGbl_ExternalFileList;
+        }
+
+        AcpiGbl_ExternalFileList = ExternalFile;
+        Path = strtok (NULL, ",");
+    }
+
+    return (AE_OK);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiDmClearExternalFileList
+ *
+ * PARAMETERS:  None
+ *
+ * RETURN:      None
+ *
+ * DESCRIPTION: Clear the external file list
+ *
+ 
******************************************************************************/
+
+void
+AcpiDmClearExternalFileList (
+    void)
+{
+    ACPI_EXTERNAL_FILE      *NextExternal;
+
+
+    while (AcpiGbl_ExternalFileList)
+    {
+        NextExternal = AcpiGbl_ExternalFileList->Next;
+        ACPI_FREE (AcpiGbl_ExternalFileList->Path);
+        ACPI_FREE (AcpiGbl_ExternalFileList);
+        AcpiGbl_ExternalFileList = NextExternal;
+    }
+}
+
+
+/*******************************************************************************
+ *
  * FUNCTION:    AcpiDmAddToExternalList
  *
  * PARAMETERS:  Op                  - Current parser Op
@@ -629,7 +718,7 @@
 
         if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD)
         {
-            AcpiOsPrintf (")    // %d Arguments\n",
+            AcpiOsPrintf (")    // %u Arguments\n",
                 AcpiGbl_ExternalList->Value);
         }
         else

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmrestag.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmrestag.c  
2010-11-21 21:00:10 UTC (rev 39564)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmrestag.c  
2010-11-21 21:58:06 UTC (rev 39565)
@@ -549,13 +549,6 @@
             return (Node);
         }
 
-        /* List is circular, this flag marks the end */
-
-        if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
-        {
-            return (NULL);
-        }
-
         Node = Node->Peer;
     }
 
@@ -711,8 +704,8 @@
 
     Name[0] = '_';
     Name[1] = AcpiGbl_Prefix[AcpiGbl_NextPrefix];
-    Name[2] = AcpiUtHexToAsciiChar (AcpiGbl_NextResourceId, 4);
-    Name[3] = AcpiUtHexToAsciiChar (AcpiGbl_NextResourceId, 0);
+    Name[2] = AcpiUtHexToAsciiChar ((UINT64) AcpiGbl_NextResourceId, 4);
+    Name[3] = AcpiUtHexToAsciiChar ((UINT64) AcpiGbl_NextResourceId, 0);
 
     /* Update globals for next name */
 

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c   
2010-11-21 21:00:10 UTC (rev 39564)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c   
2010-11-21 21:58:06 UTC (rev 39565)
@@ -117,6 +117,8 @@
 #include "accommon.h"
 #include "acdisasm.h"
 #include "actables.h"
+#include "aslcompiler.h"
+#include "dtcompiler.h"
 
 /* This module used for application-level code only */
 
@@ -125,21 +127,13 @@
 
 /* Local Prototypes */
 
-static ACPI_DMTABLE_DATA *
-AcpiDmGetTableData (
-    char                    *Signature);
-
 static void
 AcpiDmCheckAscii (
     UINT8                   *Target,
     char                    *RepairedName,
     UINT32                  Count);
 
-UINT8
-AcpiTbGenerateChecksum (
-    ACPI_TABLE_HEADER       *Table);
 
-
 /* These tables map a subtable type to a description string */
 
 static const char           *AcpiDmAsfSubnames[] =
@@ -161,6 +155,74 @@
     "Unknown SubTable Type"         /* Reserved */
 };
 
+static const char           *AcpiDmEinjActions[] =
+{
+    "Begin Operation",
+    "Get Trigger Table",
+    "Set Error Type",
+    "Get Error Type",
+    "End Operation",
+    "Execute Operation",
+    "Check Busy Status",
+    "Get Command Status",
+    "Unknown Action"
+};
+
+static const char           *AcpiDmEinjInstructions[] =
+{
+    "Read Register",
+    "Read Register Value",
+    "Write Register",
+    "Write Register Value",
+    "Noop",
+    "Unknown Instruction"
+};
+
+static const char           *AcpiDmErstActions[] =
+{
+    "Begin Write Operation",
+    "Begin Read Operation",
+    "Begin Clear Operation",
+    "End Operation",
+    "Set Record Offset",
+    "Execute Operation",
+    "Check Busy Status",
+    "Get Command Status",
+    "Get Record Identifier",
+    "Set Record Identifier",
+    "Get Record Count",
+    "Begin Dummy Write",
+    "Unused/Unknown Action",
+    "Get Error Address Range",
+    "Get Error Address Length",
+    "Get Error Attributes",
+    "Unknown Action"
+};
+
+static const char           *AcpiDmErstInstructions[] =
+{
+    "Read Register",
+    "Read Register Value",
+    "Write Register",
+    "Write Register Value",
+    "Noop",
+    "Load Var1",
+    "Load Var2",
+    "Store Var1",
+    "Add",
+    "Subtract",
+    "Add Value",
+    "Subtract Value",
+    "Stall",
+    "Stall While True",
+    "Skip Next If True",
+    "GoTo",
+    "Set Source Address",
+    "Set Destination Address",
+    "Move Data",
+    "Unknown Instruction"
+};
+
 static const char           *AcpiDmHestSubnames[] =
 {
     "IA-32 Machine Check Exception",
@@ -237,56 +299,59 @@
  *
  * ACPI Table Data, indexed by signature.
  *
- * Each entry contains: Signature, Table Info, Handler, Description
+ * Each entry contains: Signature, Table Info, Handler, DtHandler,
+ *  Template, Description
  *
- * Simple tables have only a TableInfo structure, complex tables have a 
handler.
- * This table must be NULL terminated. RSDP and FACS are special-cased
- * elsewhere.
+ * Simple tables have only a TableInfo structure, complex tables have a
+ * handler. This table must be NULL terminated. RSDP and FACS are
+ * special-cased elsewhere.
  *
  
******************************************************************************/
 
-static ACPI_DMTABLE_DATA    AcpiDmTableData[] =
+ACPI_DMTABLE_DATA    AcpiDmTableData[] =
 {
-    {ACPI_SIG_ASF,  NULL,                   AcpiDmDumpAsf,  "Alert Standard 
Format table"},
-    {ACPI_SIG_BOOT, AcpiDmTableInfoBoot,    NULL,           "Simple Boot Flag 
Table"},
-    {ACPI_SIG_BERT, AcpiDmTableInfoBert,    NULL,           "Boot Error Record 
Table"},
-    {ACPI_SIG_CPEP, NULL,                   AcpiDmDumpCpep, "Corrected 
Platform Error Polling table"},
-    {ACPI_SIG_DBGP, AcpiDmTableInfoDbgp,    NULL,           "Debug Port 
table"},
-    {ACPI_SIG_DMAR, NULL,                   AcpiDmDumpDmar, "DMA Remapping 
table"},
-    {ACPI_SIG_ECDT, AcpiDmTableInfoEcdt,    NULL,           "Embedded 
Controller Boot Resources Table"},
-    {ACPI_SIG_EINJ, NULL,                   AcpiDmDumpEinj, "Error Injection 
table"},
-    {ACPI_SIG_ERST, NULL,                   AcpiDmDumpErst, "Error Record 
Serialization Table"},
-    {ACPI_SIG_FADT, NULL,                   AcpiDmDumpFadt, "Fixed ACPI 
Description Table"},
-    {ACPI_SIG_HEST, NULL,                   AcpiDmDumpHest, "Hardware Error 
Source Table"},
-    {ACPI_SIG_HPET, AcpiDmTableInfoHpet,    NULL,           "High Precision 
Event Timer table"},
-    {ACPI_SIG_IVRS, NULL,                   AcpiDmDumpIvrs, "I/O 
Virtualization Reporting Structure"},
-    {ACPI_SIG_MADT, NULL,                   AcpiDmDumpMadt, "Multiple APIC 
Description Table"},
-    {ACPI_SIG_MCFG, NULL,                   AcpiDmDumpMcfg, "Memory Mapped 
Configuration table"},
-    {ACPI_SIG_MCHI, AcpiDmTableInfoMchi,    NULL,           "Management 
Controller Host Interface table"},
-    {ACPI_SIG_MSCT, NULL,                   AcpiDmDumpMsct, "Maximum System 
Characteristics Table"},
-    {ACPI_SIG_RSDT, NULL,                   AcpiDmDumpRsdt, "Root System 
Description Table"},
-    {ACPI_SIG_SBST, AcpiDmTableInfoSbst,    NULL,           "Smart Battery 
Specification Table"},
-    {ACPI_SIG_SLIC, AcpiDmTableInfoSlic,    NULL,           "Software 
Licensing Description Table"},
-    {ACPI_SIG_SLIT, NULL,                   AcpiDmDumpSlit, "System Locality 
Information Table"},
-    {ACPI_SIG_SPCR, AcpiDmTableInfoSpcr,    NULL,           "Serial Port 
Console Redirection table"},
-    {ACPI_SIG_SPMI, AcpiDmTableInfoSpmi,    NULL,           "Server Platform 
Management Interface table"},
-    {ACPI_SIG_SRAT, NULL,                   AcpiDmDumpSrat, "System Resource 
Affinity Table"},
-    {ACPI_SIG_TCPA, AcpiDmTableInfoTcpa,    NULL,           "Trusted Computing 
Platform Alliance table"},
-    {ACPI_SIG_UEFI, AcpiDmTableInfoUefi,    NULL,           "UEFI Boot 
Optimization Table"},
-    {ACPI_SIG_WAET, AcpiDmTableInfoWaet,    NULL,           "Windows ACPI 
Emulated Devices Table"},
-    {ACPI_SIG_WDAT, NULL,                   AcpiDmDumpWdat, "Watchdog Action 
Table"},
-    {ACPI_SIG_WDRT, AcpiDmTableInfoWdrt,    NULL,           "Watchdog Resource 
Table"},
-    {ACPI_SIG_XSDT, NULL,                   AcpiDmDumpXsdt, "Extended System 
Description Table"},
-    {NULL,          NULL,                   NULL,           NULL}
+    {ACPI_SIG_ASF,  NULL,                   AcpiDmDumpAsf,  DtCompileAsf,   
TemplateAsf,    "Alert Standard Format table"},
+    {ACPI_SIG_BOOT, AcpiDmTableInfoBoot,    NULL,           NULL,           
TemplateBoot,   "Simple Boot Flag Table"},
+    {ACPI_SIG_BERT, AcpiDmTableInfoBert,    NULL,           NULL,           
TemplateBert,   "Boot Error Record Table"},
+    {ACPI_SIG_CPEP, NULL,                   AcpiDmDumpCpep, DtCompileCpep,  
TemplateCpep,   "Corrected Platform Error Polling table"},
+    {ACPI_SIG_DBGP, AcpiDmTableInfoDbgp,    NULL,           NULL,           
TemplateDbgp,   "Debug Port table"},
+    {ACPI_SIG_DMAR, NULL,                   AcpiDmDumpDmar, DtCompileDmar,  
TemplateDmar,   "DMA Remapping table"},
+    {ACPI_SIG_ECDT, AcpiDmTableInfoEcdt,    NULL,           NULL,           
TemplateEcdt,   "Embedded Controller Boot Resources Table"},
+    {ACPI_SIG_EINJ, NULL,                   AcpiDmDumpEinj, DtCompileEinj,  
TemplateEinj,   "Error Injection table"},
+    {ACPI_SIG_ERST, NULL,                   AcpiDmDumpErst, DtCompileErst,  
TemplateErst,   "Error Record Serialization Table"},
+    {ACPI_SIG_FADT, NULL,                   AcpiDmDumpFadt, DtCompileFadt,  
TemplateFadt,   "Fixed ACPI Description Table"},
+    {ACPI_SIG_HEST, NULL,                   AcpiDmDumpHest, DtCompileHest,  
TemplateHest,   "Hardware Error Source Table"},
+    {ACPI_SIG_HPET, AcpiDmTableInfoHpet,    NULL,           NULL,           
TemplateHpet,   "High Precision Event Timer table"},
+    {ACPI_SIG_IVRS, NULL,                   AcpiDmDumpIvrs, DtCompileIvrs,  
TemplateIvrs,   "I/O Virtualization Reporting Structure"},
+    {ACPI_SIG_MADT, NULL,                   AcpiDmDumpMadt, DtCompileMadt,  
TemplateMadt,   "Multiple APIC Description Table"},
+    {ACPI_SIG_MCFG, NULL,                   AcpiDmDumpMcfg, DtCompileMcfg,  
TemplateMcfg,   "Memory Mapped Configuration table"},
+    {ACPI_SIG_MCHI, AcpiDmTableInfoMchi,    NULL,           NULL,           
TemplateMchi,   "Management Controller Host Interface table"},
+    {ACPI_SIG_MSCT, NULL,                   AcpiDmDumpMsct, DtCompileMsct,  
TemplateMsct,   "Maximum System Characteristics Table"},
+    {ACPI_SIG_RSDT, NULL,                   AcpiDmDumpRsdt, DtCompileRsdt,  
TemplateRsdt,   "Root System Description Table"},
+    {ACPI_SIG_SBST, AcpiDmTableInfoSbst,    NULL,           NULL,           
TemplateSbst,   "Smart Battery Specification Table"},
+    {ACPI_SIG_SLIC, AcpiDmTableInfoSlic,    NULL,           NULL,           
NULL,           "Software Licensing Description Table"},
+    {ACPI_SIG_SLIT, NULL,                   AcpiDmDumpSlit, DtCompileSlit,  
TemplateSlit,   "System Locality Information Table"},
+    {ACPI_SIG_SPCR, AcpiDmTableInfoSpcr,    NULL,           NULL,           
TemplateSpcr,   "Serial Port Console Redirection table"},
+    {ACPI_SIG_SPMI, AcpiDmTableInfoSpmi,    NULL,           NULL,           
TemplateSpmi,   "Server Platform Management Interface table"},
+    {ACPI_SIG_SRAT, NULL,                   AcpiDmDumpSrat, DtCompileSrat,  
TemplateSrat,   "System Resource Affinity Table"},
+    {ACPI_SIG_TCPA, AcpiDmTableInfoTcpa,    NULL,           NULL,           
TemplateTcpa,   "Trusted Computing Platform Alliance table"},
+    {ACPI_SIG_UEFI, AcpiDmTableInfoUefi,    NULL,           NULL,           
TemplateUefi,   "UEFI Boot Optimization Table"},
+    {ACPI_SIG_WAET, AcpiDmTableInfoWaet,    NULL,           NULL,           
TemplateWaet,   "Windows ACPI Emulated Devices Table"},
+    {ACPI_SIG_WDAT, NULL,                   AcpiDmDumpWdat, DtCompileWdat,  
TemplateWdat,   "Watchdog Action Table"},
+    {ACPI_SIG_WDDT, AcpiDmTableInfoWddt,    NULL,           NULL,           
TemplateWddt,   "Watchdog Description Table"},
+    {ACPI_SIG_WDRT, AcpiDmTableInfoWdrt,    NULL,           NULL,           
TemplateWdrt,   "Watchdog Resource Table"},
+    {ACPI_SIG_XSDT, NULL,                   AcpiDmDumpXsdt, DtCompileXsdt,  
TemplateXsdt,   "Extended System Description Table"},
+    {NULL,          NULL,                   NULL,           NULL,           
NULL,           NULL}
 };
 
 
 
/*******************************************************************************
  *
- * FUNCTION:    AcpiTbGenerateChecksum
+ * FUNCTION:    AcpiDmGenerateChecksum
  *
- * PARAMETERS:  Table               - Pointer to a valid ACPI table (with a
- *                                    standard ACPI header)
+ * PARAMETERS:  Table               - Pointer to table to be checksummed
+ *              Length              - Length of the table
+ *              OriginalChecksum    - Value of the checksum field
  *
  * RETURN:      8 bit checksum of buffer
  *
@@ -295,19 +360,21 @@
  
******************************************************************************/
 
 UINT8
-AcpiTbGenerateChecksum (
-    ACPI_TABLE_HEADER       *Table)
+AcpiDmGenerateChecksum (
+    void                    *Table,
+    UINT32                  Length,
+    UINT8                   OriginalChecksum)
 {
     UINT8                   Checksum;
 
 
     /* Sum the entire table as-is */
 
-    Checksum = AcpiTbChecksum ((UINT8 *) Table, Table->Length);
+    Checksum = AcpiTbChecksum ((UINT8 *) Table, Length);
 
     /* Subtract off the existing checksum value in the table */
 
-    Checksum = (UINT8) (Checksum - Table->Checksum);
+    Checksum = (UINT8) (Checksum - OriginalChecksum);
 
     /* Compute the final checksum */
 
@@ -328,7 +395,7 @@
  *
  
******************************************************************************/
 
-static ACPI_DMTABLE_DATA *
+ACPI_DMTABLE_DATA *
 AcpiDmGetTableData (
     char                    *Signature)
 {
@@ -432,10 +499,13 @@
         }
     }
 
-    /* Always dump the raw table data */
+    if (!Gbl_DoTemplates || Gbl_VerboseTemplates)
+    {
+        /* Dump the raw table data */
 
-    AcpiOsPrintf ("\nRaw Table Data\n\n");
-    AcpiUtDumpBuffer2 (ACPI_CAST_PTR (UINT8, Table), Length, DB_BYTE_DISPLAY);
+        AcpiOsPrintf ("\nRaw Table Data\n\n");
+        AcpiUtDumpBuffer2 (ACPI_CAST_PTR (UINT8, Table), Length, 
DB_BYTE_DISPLAY);
+    }
 }
 
 
@@ -463,15 +533,31 @@
     char                    *Name)
 {
 
-    if (ByteLength)
+    if (Gbl_DoTemplates && !Gbl_VerboseTemplates) /* Terse template */
     {
-        AcpiOsPrintf ("[%3.3Xh %4.4d% 3d] %28s : ",
-            Offset, Offset, ByteLength, Name);
+        if (ByteLength)
+        {
+            AcpiOsPrintf ("[%.3d] %34s : ",
+                ByteLength, Name);
+        }
+        else
+        {
+            AcpiOsPrintf ("%40s : ",
+                Name);
+        }
     }
-    else
+    else /* Normal disassembler or verbose template */
     {
-        AcpiOsPrintf ("%43s : ",
-            Name);
+        if (ByteLength)
+        {
+            AcpiOsPrintf ("[%3.3Xh %4.4d% 3d] %28s : ",
+                Offset, Offset, ByteLength, Name);
+        }

[... truncated: 8810 lines follow ...]

Other related posts:

  • » [haiku-commits] r39565 - in haiku/trunk: headers/os/drivers src/add-ons/kernel/bus_managers/acpi src/add-ons/kernel/bus_managers/acpi/common src/add-ons/kernel/bus_managers/acpi/dispatcher src/add-ons/kernel/bus_managers/acpi/events ... - fredrik . holmqvist