summaryrefslogtreecommitdiff
path: root/disassembler
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2009-10-13 21:27:35 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2009-10-13 21:27:35 +0000
commita19285149615c60009a9c5190c260de14b2293f7 (patch)
treeb5f69a91eb4b1113dce613689bc3dd6bb7b24861 /disassembler
parent7c48a2bb90aa31d333d6d4d78e28b7ee84234c15 (diff)
Notes
Diffstat (limited to 'disassembler')
-rw-r--r--disassembler/dmutils.c118
-rw-r--r--disassembler/dmwalk.c104
2 files changed, 12 insertions, 210 deletions
diff --git a/disassembler/dmutils.c b/disassembler/dmutils.c
index 75794b9f705f..111c785ceea1 100644
--- a/disassembler/dmutils.c
+++ b/disassembler/dmutils.c
@@ -129,9 +129,6 @@
ACPI_MODULE_NAME ("dmutils")
-ACPI_EXTERNAL_LIST *AcpiGbl_ExternalList = NULL;
-
-
/* Data used in keeping track of fields */
#if 0
const char *AcpiGbl_FENames[] =
@@ -202,121 +199,6 @@ const char *AcpiGbl_IrqDecode[] =
};
-#ifdef ACPI_ASL_COMPILER
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddToExternalList
- *
- * PARAMETERS: Path - Internal (AML) path to the object
- *
- * RETURN: None
- *
- * DESCRIPTION: Insert a new path into the list of Externals which will in
- * turn be emitted as an External() declaration in the disassembled
- * output.
- *
- ******************************************************************************/
-
-void
-AcpiDmAddToExternalList (
- char *Path,
- UINT8 Type,
- UINT32 Value)
-{
- char *ExternalPath;
- ACPI_EXTERNAL_LIST *NewExternal;
- ACPI_EXTERNAL_LIST *NextExternal;
- ACPI_EXTERNAL_LIST *PrevExternal = NULL;
- ACPI_STATUS Status;
-
-
- if (!Path)
- {
- return;
- }
-
- /* Externalize the ACPI path */
-
- Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, Path,
- NULL, &ExternalPath);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Ensure that we don't have duplicate externals */
-
- NextExternal = AcpiGbl_ExternalList;
- while (NextExternal)
- {
- /* Allow upgrade of type from ANY */
-
- if (!ACPI_STRCMP (ExternalPath, NextExternal->Path))
- {
- /* Duplicate method, check that the Value (ArgCount) is the same */
-
- if ((NextExternal->Type == ACPI_TYPE_METHOD) &&
- (NextExternal->Value != Value))
- {
- ACPI_ERROR ((AE_INFO, "Argument count mismatch for method %s %d %d",
- NextExternal->Path, NextExternal->Value, Value));
- }
- if (NextExternal->Type == ACPI_TYPE_ANY)
- {
- NextExternal->Type = Type;
- NextExternal->Value = Value;
- }
- ACPI_FREE (ExternalPath);
- return;
- }
- NextExternal = NextExternal->Next;
- }
-
- /* Allocate and init a new External() descriptor */
-
- NewExternal = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EXTERNAL_LIST));
- NewExternal->InternalPath = Path;
- NewExternal->Path = ExternalPath;
- NewExternal->Type = Type;
- NewExternal->Value = Value;
- NewExternal->Length = (UINT16) ACPI_STRLEN (ExternalPath);
-
- /* Link the new descriptor into the global list, ordered by string length */
-
- NextExternal = AcpiGbl_ExternalList;
- while (NextExternal)
- {
- if (NewExternal->Length <= NextExternal->Length)
- {
- if (PrevExternal)
- {
- PrevExternal->Next = NewExternal;
- }
- else
- {
- AcpiGbl_ExternalList = NewExternal;
- }
-
- NewExternal->Next = NextExternal;
- return;
- }
-
- PrevExternal = NextExternal;
- NextExternal = NextExternal->Next;
- }
-
- if (PrevExternal)
- {
- PrevExternal->Next = NewExternal;
- }
- else
- {
- AcpiGbl_ExternalList = NewExternal;
- }
-}
-#endif
-
-
/*******************************************************************************
*
* FUNCTION: AcpiDmDecodeAttribute
diff --git a/disassembler/dmwalk.c b/disassembler/dmwalk.c
index 156e2dd5b11c..ddc0e35cd620 100644
--- a/disassembler/dmwalk.c
+++ b/disassembler/dmwalk.c
@@ -130,6 +130,17 @@
#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
@@ -148,68 +159,6 @@ static UINT32
AcpiDmBlockType (
ACPI_PARSE_OBJECT *Op);
-static const char *
-AcpiDmGetObjectTypeName (
- ACPI_OBJECT_TYPE Type);
-
-/*
- * This table maps ACPI_OBJECT_TYPEs to the corresponding ASL
- * ObjectTypeKeyword. Used to generate typed external declarations
- */
-static const char *AcpiGbl_DmTypeNames[] =
-{
- /* 00 */ "", /* Type ANY */
- /* 01 */ ", IntObj",
- /* 02 */ ", StrObj",
- /* 03 */ ", BuffObj",
- /* 04 */ ", PkgObj",
- /* 05 */ ", FieldUnitObj",
- /* 06 */ ", DeviceObj",
- /* 07 */ ", EventObj",
- /* 08 */ ", MethodObj",
- /* 09 */ ", MutexObj",
- /* 10 */ ", OpRegionObj",
- /* 11 */ ", PowerResObj",
- /* 12 */ ", ProcessorObj",
- /* 13 */ ", ThermalZoneObj",
- /* 14 */ ", BuffFieldObj",
- /* 15 */ ", DDBHandleObj",
- /* 16 */ "", /* Debug object */
- /* 17 */ ", FieldUnitObj",
- /* 18 */ ", FieldUnitObj",
- /* 19 */ ", FieldUnitObj"
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmGetObjectTypeName
- *
- * PARAMETERS: Type - An ACPI_OBJECT_TYPE
- *
- * RETURN: Pointer to a string
- *
- * DESCRIPTION: Map an object type to the ASL object type string.
- *
- ******************************************************************************/
-
-static const char *
-AcpiDmGetObjectTypeName (
- ACPI_OBJECT_TYPE Type)
-{
-
- if (Type == ACPI_TYPE_LOCAL_SCOPE)
- {
- Type = ACPI_TYPE_DEVICE;
- }
-
- else if (Type > ACPI_TYPE_LOCAL_INDEX_FIELD)
- {
- return ("");
- }
-
- return (AcpiGbl_DmTypeNames[Type]);
-}
/*******************************************************************************
@@ -522,7 +471,6 @@ AcpiDmDescendingOp (
const ACPI_OPCODE_INFO *OpInfo;
UINT32 Name;
ACPI_PARSE_OBJECT *NextOp;
- ACPI_EXTERNAL_LIST *NextExternal;
if (Op->Common.DisasmFlags & ACPI_PARSEOP_IGNORE)
@@ -554,35 +502,7 @@ AcpiDmDescendingOp (
/* Emit all External() declarations here */
- if (AcpiGbl_ExternalList)
- {
- /*
- * Walk the list of externals (unresolved references)
- * found during parsing
- */
- while (AcpiGbl_ExternalList)
- {
- AcpiOsPrintf (" External (%s%s",
- AcpiGbl_ExternalList->Path,
- AcpiDmGetObjectTypeName (AcpiGbl_ExternalList->Type));
-
- if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD)
- {
- AcpiOsPrintf (") // %d Arguments\n", AcpiGbl_ExternalList->Value);
- }
- else
- {
- AcpiOsPrintf (")\n");
- }
-
- NextExternal = AcpiGbl_ExternalList->Next;
- ACPI_FREE (AcpiGbl_ExternalList->Path);
- ACPI_FREE (AcpiGbl_ExternalList);
- AcpiGbl_ExternalList = NextExternal;
- }
- AcpiOsPrintf ("\n");
- }
-
+ AcpiDmEmitExternals ();
return (AE_OK);
}
}