summaryrefslogtreecommitdiff
path: root/source/tools/acpinames/anmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/tools/acpinames/anmain.c')
-rw-r--r--source/tools/acpinames/anmain.c256
1 files changed, 115 insertions, 141 deletions
diff --git a/source/tools/acpinames/anmain.c b/source/tools/acpinames/anmain.c
index a613ac2613c36..8b0e0220aa018 100644
--- a/source/tools/acpinames/anmain.c
+++ b/source/tools/acpinames/anmain.c
@@ -43,6 +43,7 @@
#include "acpinames.h"
#include "actables.h"
+#include "errno.h"
#define _COMPONENT ACPI_TOOLS
ACPI_MODULE_NAME ("anmain")
@@ -51,8 +52,9 @@
/* Local prototypes */
static int
-NsDumpEntireNamespace (
- UINT32 TableCount);
+AnDumpEntireNamespace (
+ ACPI_NEW_TABLE_DESC *ListHead);
+
/*
* Main routine for the ACPI user-space namespace utility.
@@ -65,8 +67,7 @@ NsDumpEntireNamespace (
* Windows: The setargv.obj module must be linked in to automatically
* expand wildcards.
*/
-static AE_TABLE_DESC *AeTableListHead = NULL;
-BOOLEAN AcpiGbl_NsLoadOnly = FALSE;
+BOOLEAN AcpiGbl_NsLoadOnly = FALSE;
#define AN_UTILITY_NAME "ACPI Namespace Dump Utility"
@@ -100,7 +101,103 @@ usage (
/******************************************************************************
*
- * FUNCTION: NsDumpEntireNamespace
+ * FUNCTION: main
+ *
+ * PARAMETERS: argc, argv
+ *
+ * RETURN: Status (pass/fail)
+ *
+ * DESCRIPTION: Main routine for NsDump utility
+ *
+ *****************************************************************************/
+
+int ACPI_SYSTEM_XFACE
+main (
+ int argc,
+ char **argv)
+{
+ ACPI_NEW_TABLE_DESC *ListHead = NULL;
+ ACPI_STATUS Status;
+ int j;
+
+
+ ACPI_DEBUG_INITIALIZE (); /* For debug version only */
+
+ /* Init debug globals and ACPICA */
+
+ AcpiDbgLevel = ACPI_NORMAL_DEFAULT | ACPI_LV_TABLES;
+ AcpiDbgLayer = 0xFFFFFFFF;
+
+ Status = AcpiInitializeSubsystem ();
+ ACPI_CHECK_OK (AcpiInitializeSubsystem, Status);
+ if (ACPI_FAILURE (Status))
+ {
+ return (-1);
+ }
+
+ printf (ACPI_COMMON_SIGNON (AN_UTILITY_NAME));
+ if (argc < 2)
+ {
+ usage ();
+ return (0);
+ }
+
+ /* Get the command line options */
+
+ while ((j = AcpiGetopt (argc, argv, AN_SUPPORTED_OPTIONS)) != ACPI_OPT_END) switch(j)
+ {
+ case 'l':
+
+ AcpiGbl_NsLoadOnly = TRUE;
+ break;
+
+ case 'v': /* -v: (Version): signon already emitted, just exit */
+
+ return (0);
+
+ case 'x':
+
+ AcpiDbgLevel = strtoul (AcpiGbl_Optarg, NULL, 0);
+ printf ("Debug Level: 0x%8.8X\n", AcpiDbgLevel);
+ break;
+
+ case '?':
+ case 'h':
+ default:
+
+ usage();
+ return (0);
+ }
+
+ /* Get each of the ACPI table files on the command line */
+
+ while (argv[AcpiGbl_Optind])
+ {
+ /* Get all ACPI AML tables in this file */
+
+ Status = AcpiAcGetAllTablesFromFile (argv[AcpiGbl_Optind],
+ ACPI_GET_ONLY_AML_TABLES, &ListHead);
+ if (ACPI_FAILURE (Status))
+ {
+ return (-1);
+ }
+
+ AcpiGbl_Optind++;
+ }
+
+ printf ("\n");
+
+ /*
+ * The next argument is the filename for the DSDT or SSDT.
+ * Open the file, build namespace and dump it.
+ */
+ return (AnDumpEntireNamespace (ListHead));
+}
+
+
+/******************************************************************************
+ *
+ * FUNCTION: AnDumpEntireNamespace
*
* PARAMETERS: AmlFilename - Filename for DSDT or SSDT AML table
*
@@ -112,8 +209,8 @@ usage (
*****************************************************************************/
static int
-NsDumpEntireNamespace (
- UINT32 TableCount)
+AnDumpEntireNamespace (
+ ACPI_NEW_TABLE_DESC *ListHead)
{
ACPI_STATUS Status;
ACPI_HANDLE Handle;
@@ -123,7 +220,7 @@ NsDumpEntireNamespace (
* Build a local XSDT with all tables. Normally, here is where the
* RSDP search is performed to find the ACPI tables
*/
- Status = AeBuildLocalTables (TableCount, AeTableListHead);
+ Status = AnBuildLocalTables (ListHead);
if (ACPI_FAILURE (Status))
{
return (-1);
@@ -168,10 +265,10 @@ NsDumpEntireNamespace (
* hardware or event manager code underneath.
*/
Status = AcpiEnableSubsystem (
- ACPI_NO_ACPI_ENABLE |
- ACPI_NO_ADDRESS_SPACE_INIT |
- ACPI_NO_EVENT_INIT |
- ACPI_NO_HANDLER_INIT);
+ ACPI_NO_ACPI_ENABLE |
+ ACPI_NO_ADDRESS_SPACE_INIT |
+ ACPI_NO_EVENT_INIT |
+ ACPI_NO_HANDLER_INIT);
if (ACPI_FAILURE (Status))
{
printf ("**** Could not EnableSubsystem, %s\n",
@@ -180,9 +277,9 @@ NsDumpEntireNamespace (
}
Status = AcpiInitializeObjects (
- ACPI_NO_ADDRESS_SPACE_INIT |
- ACPI_NO_DEVICE_INIT |
- ACPI_NO_EVENT_INIT);
+ ACPI_NO_ADDRESS_SPACE_INIT |
+ ACPI_NO_DEVICE_INIT |
+ ACPI_NO_EVENT_INIT);
if (ACPI_FAILURE (Status))
{
printf ("**** Could not InitializeObjects, %s\n",
@@ -195,137 +292,14 @@ NsDumpEntireNamespace (
*/
AcpiOsPrintf ("\nACPI Namespace:\n");
- AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_SUMMARY, ACPI_UINT32_MAX,
- ACPI_OWNER_ID_MAX, AcpiGbl_RootNode);
+ AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_SUMMARY,
+ ACPI_UINT32_MAX, ACPI_OWNER_ID_MAX, AcpiGbl_RootNode);
/* Example: get a handle to the _GPE scope */
Status = AcpiGetHandle (NULL, "\\_GPE", &Handle);
- AE_CHECK_OK (AcpiGetHandle, Status);
+ ACPI_CHECK_OK (AcpiGetHandle, Status);
return (0);
}
-
-
-/******************************************************************************
- *
- * FUNCTION: main
- *
- * PARAMETERS: argc, argv
- *
- * RETURN: Status (pass/fail)
- *
- * DESCRIPTION: Main routine for NsDump utility
- *
- *****************************************************************************/
-
-int ACPI_SYSTEM_XFACE
-main (
- int argc,
- char **argv)
-{
- AE_TABLE_DESC *TableDesc;
- ACPI_TABLE_HEADER *Table = NULL;
- ACPI_STATUS Status;
- UINT32 TableCount;
- int j;
-
-
- ACPI_DEBUG_INITIALIZE (); /* For debug version only */
-
- /* Init debug globals and ACPICA */
-
- AcpiDbgLevel = ACPI_NORMAL_DEFAULT | ACPI_LV_TABLES;
- AcpiDbgLayer = 0xFFFFFFFF;
-
- Status = AcpiInitializeSubsystem ();
- AE_CHECK_OK (AcpiInitializeSubsystem, Status);
- if (ACPI_FAILURE (Status))
- {
- return (-1);
- }
-
- printf (ACPI_COMMON_SIGNON (AN_UTILITY_NAME));
- if (argc < 2)
- {
- usage ();
- return (0);
- }
-
- /* Get the command line options */
-
- while ((j = AcpiGetopt (argc, argv, AN_SUPPORTED_OPTIONS)) != ACPI_OPT_END) switch(j)
- {
- case 'l':
-
- AcpiGbl_NsLoadOnly = TRUE;
- break;
-
- case 'v': /* -v: (Version): signon already emitted, just exit */
-
- return (0);
-
- case 'x':
-
- AcpiDbgLevel = strtoul (AcpiGbl_Optarg, NULL, 0);
- printf ("Debug Level: 0x%8.8X\n", AcpiDbgLevel);
- break;
-
- case '?':
- case 'h':
- default:
-
- usage();
- return (0);
- }
-
- TableCount = 0;
-
- /* Get each of the ACPI table files on the command line */
-
- while (argv[AcpiGbl_Optind])
- {
- /* Get one entire table */
-
- Status = AcpiUtReadTableFromFile (argv[AcpiGbl_Optind], &Table);
- if (ACPI_FAILURE (Status))
- {
- fprintf (stderr, "**** Could not get table from file %s, %s\n",
- argv[AcpiGbl_Optind], AcpiFormatException (Status));
- return (-1);
- }
-
- /* Ignore non-AML tables, we can't use them. Except for an FADT */
-
- if (!ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_FADT) &&
- !AcpiUtIsAmlTable (Table))
- {
- fprintf (stderr, " %s: [%4.4s] is not an AML table - ignoring\n",
- argv[AcpiGbl_Optind], Table->Signature);
-
- AcpiOsFree (Table);
- }
- else
- {
- /* Allocate and link a table descriptor */
-
- TableDesc = AcpiOsAllocate (sizeof (AE_TABLE_DESC));
- TableDesc->Table = Table;
- TableDesc->Next = AeTableListHead;
- AeTableListHead = TableDesc;
-
- TableCount++;
- }
-
- AcpiGbl_Optind++;
- }
-
- printf ("\n");
-
- /*
- * The next argument is the filename for the DSDT or SSDT.
- * Open the file, build namespace and dump it.
- */
- return (NsDumpEntireNamespace (TableCount));
-}