mirror of
https://github.com/acpica/acpica/
synced 2025-01-15 22:09:17 +03:00
Standalone disassembler now uses namespace mgr for symbol table
date 2002.07.23.20.30.00; author rmoore1; state Exp;
This commit is contained in:
parent
54e0380bbd
commit
d41eb9e2d3
@ -183,6 +183,41 @@ AcpiDsMethodDataInitArgs (
|
|||||||
|
|
||||||
#define FILE_SUFFIX_DISASSEMBLY "dsl"
|
#define FILE_SUFFIX_DISASSEMBLY "dsl"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* FUNCTION: AdInitialize
|
||||||
|
*
|
||||||
|
* PARAMETERS: None.
|
||||||
|
*
|
||||||
|
* RETURN: Status
|
||||||
|
*
|
||||||
|
* DESCRIPTION: CA initialization
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
ACPI_STATUS
|
||||||
|
AdInitialize (
|
||||||
|
void)
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
|
||||||
|
|
||||||
|
/* ACPI CA subsystem initialization */
|
||||||
|
|
||||||
|
AcpiUtInitGlobals ();
|
||||||
|
Status = AcpiUtMutexInitialize ();
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
Status = AcpiNsRootInitialize ();
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: FlGenerateFilename
|
* FUNCTION: FlGenerateFilename
|
||||||
@ -248,11 +283,12 @@ FlGenerateFilename (
|
|||||||
|
|
||||||
ACPI_STATUS
|
ACPI_STATUS
|
||||||
AdAmlDisassemble (
|
AdAmlDisassemble (
|
||||||
char *Filename)
|
BOOLEAN OutToFile,
|
||||||
|
char *Filename)
|
||||||
{
|
{
|
||||||
ACPI_STATUS Status;
|
ACPI_STATUS Status;
|
||||||
char *OutFilename;
|
char *OutFilename = NULL;
|
||||||
FILE *File;
|
FILE *File;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -279,20 +315,23 @@ AdAmlDisassemble (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Create/Open a combined source output file */
|
if (OutToFile)
|
||||||
|
|
||||||
OutFilename = FlGenerateFilename (Filename, FILE_SUFFIX_DISASSEMBLY);
|
|
||||||
if (!OutFilename)
|
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Could not generate output filename\n");
|
/* Create/Open a combined source output file */
|
||||||
}
|
|
||||||
File = fopen (OutFilename, "w+");
|
|
||||||
if (!File)
|
|
||||||
{
|
|
||||||
fprintf (stderr, "Could not open output filen\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
AcpiOsRedirectOutput (File);
|
OutFilename = FlGenerateFilename (Filename, FILE_SUFFIX_DISASSEMBLY);
|
||||||
|
if (!OutFilename)
|
||||||
|
{
|
||||||
|
fprintf (stderr, "Could not generate output filename\n");
|
||||||
|
}
|
||||||
|
File = fopen (OutFilename, "w+");
|
||||||
|
if (!File)
|
||||||
|
{
|
||||||
|
fprintf (stderr, "Could not open output filen\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
AcpiOsRedirectOutput (File);
|
||||||
|
}
|
||||||
|
|
||||||
/* Always parse the tables, only option is what to display */
|
/* Always parse the tables, only option is what to display */
|
||||||
|
|
||||||
@ -471,7 +510,7 @@ AdDoDeferredParse (
|
|||||||
ACPI_PARSE_OBJECT *ExtraOp;
|
ACPI_PARSE_OBJECT *ExtraOp;
|
||||||
|
|
||||||
|
|
||||||
ACPI_FUNCTION_NAME ("AdDoDeferredParse");
|
ACPI_FUNCTION_TRACE ("AdDoDeferredParse");
|
||||||
|
|
||||||
|
|
||||||
fprintf (stderr, ".");
|
fprintf (stderr, ".");
|
||||||
@ -499,6 +538,7 @@ AdDoDeferredParse (
|
|||||||
|
|
||||||
/* Parse the method */
|
/* Parse the method */
|
||||||
|
|
||||||
|
WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE;
|
||||||
Status = AcpiPsParseAml (WalkState);
|
Status = AcpiPsParseAml (WalkState);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -595,7 +635,6 @@ AdSecondPassParse (
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
switch (Op->Common.AmlOpcode)
|
switch (Op->Common.AmlOpcode)
|
||||||
{
|
{
|
||||||
case AML_METHOD_OP:
|
case AML_METHOD_OP:
|
||||||
@ -626,7 +665,6 @@ AdSecondPassParse (
|
|||||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unhandled deferred opcode [%s]\n",
|
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unhandled deferred opcode [%s]\n",
|
||||||
Op->Common.AmlOpName));
|
Op->Common.AmlOpName));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Op = AcpiPsGetDepthNext (Root, Op);
|
Op = AcpiPsGetDepthNext (Root, Op);
|
||||||
@ -698,21 +736,6 @@ AdGetTables (
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ACPI_STATUS
|
|
||||||
AcpiDsInitCallbacks (
|
|
||||||
ACPI_WALK_STATE *WalkState,
|
|
||||||
UINT32 PassNumber)
|
|
||||||
{
|
|
||||||
|
|
||||||
WalkState->ParseFlags = 0;
|
|
||||||
WalkState->DescendingCallback = AcpiPsFindObject;
|
|
||||||
WalkState->AscendingCallback = NULL;
|
|
||||||
|
|
||||||
return (AE_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: AdParseTable
|
* FUNCTION: AdParseTable
|
||||||
@ -730,6 +753,7 @@ AdParseTables (void)
|
|||||||
{
|
{
|
||||||
ACPI_STATUS Status = AE_OK;
|
ACPI_STATUS Status = AE_OK;
|
||||||
ACPI_WALK_STATE *WalkState;
|
ACPI_WALK_STATE *WalkState;
|
||||||
|
ACPI_TABLE_DESC TableDesc;
|
||||||
|
|
||||||
|
|
||||||
if (!AcpiGbl_DSDT)
|
if (!AcpiGbl_DSDT)
|
||||||
@ -737,22 +761,23 @@ AdParseTables (void)
|
|||||||
return AE_NOT_EXIST;
|
return AE_NOT_EXIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Pass 1: Parse everything except control method bodies */
|
||||||
|
|
||||||
|
fprintf (stderr, "Pass 1 parse\n");
|
||||||
|
|
||||||
|
|
||||||
|
DsdtLength = AcpiGbl_DSDT->Length;
|
||||||
|
AmlLength = DsdtLength - sizeof (ACPI_TABLE_HEADER);
|
||||||
|
AmlStart = ((UINT8 *) AcpiGbl_DSDT + sizeof (ACPI_TABLE_HEADER));
|
||||||
|
|
||||||
/* Create the root object */
|
/* Create the root object */
|
||||||
|
|
||||||
AcpiGbl_ParsedNamespaceRoot = AcpiPsAllocOp (AML_SCOPE_OP);
|
AcpiGbl_ParsedNamespaceRoot = AcpiPsCreateScopeOp ();
|
||||||
if (!AcpiGbl_ParsedNamespaceRoot)
|
if (!AcpiGbl_ParsedNamespaceRoot)
|
||||||
{
|
{
|
||||||
return AE_NO_MEMORY;
|
return AE_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize the root object */
|
|
||||||
|
|
||||||
AcpiGbl_ParsedNamespaceRoot->Named.Name = ACPI_ROOT_NAME;
|
|
||||||
|
|
||||||
/* Pass 1: Parse everything except control method bodies */
|
|
||||||
|
|
||||||
fprintf (stderr, "Pass 1 parse\n");
|
|
||||||
|
|
||||||
/* Create and initialize a new walk state */
|
/* Create and initialize a new walk state */
|
||||||
|
|
||||||
WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT,
|
WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT,
|
||||||
@ -762,10 +787,6 @@ AdParseTables (void)
|
|||||||
return (AE_NO_MEMORY);
|
return (AE_NO_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
DsdtLength = AcpiGbl_DSDT->Length;
|
|
||||||
AmlLength = DsdtLength - sizeof (ACPI_TABLE_HEADER);
|
|
||||||
AmlStart = ((UINT8 *) AcpiGbl_DSDT + sizeof (ACPI_TABLE_HEADER));
|
|
||||||
|
|
||||||
Status = AcpiDsInitAmlWalk (WalkState, AcpiGbl_ParsedNamespaceRoot, NULL, AmlStart,
|
Status = AcpiDsInitAmlWalk (WalkState, AcpiGbl_ParsedNamespaceRoot, NULL, AmlStart,
|
||||||
AmlLength, NULL, NULL, 1);
|
AmlLength, NULL, NULL, 1);
|
||||||
if (ACPI_FAILURE (Status))
|
if (ACPI_FAILURE (Status))
|
||||||
@ -773,20 +794,32 @@ AdParseTables (void)
|
|||||||
return (Status);
|
return (Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE;
|
||||||
|
|
||||||
Status = AcpiPsParseAml (WalkState);
|
Status = AcpiPsParseAml (WalkState);
|
||||||
if (ACPI_FAILURE (Status))
|
if (ACPI_FAILURE (Status))
|
||||||
{
|
{
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pass 2: Parse control methods and link their parse trees into the main parse tree */
|
/* Second pass */
|
||||||
|
|
||||||
|
TableDesc.AmlStart = AmlStart;
|
||||||
|
TableDesc.AmlLength = AmlLength;
|
||||||
fprintf (stderr, "Pass 2 parse\n");
|
fprintf (stderr, "Pass 2 parse\n");
|
||||||
|
|
||||||
|
Status = AcpiNsOneCompleteParse (2, &TableDesc);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return (Status);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pass 3: Parse control methods and link their parse trees into the main parse tree */
|
||||||
|
|
||||||
Status = AdSecondPassParse (AcpiGbl_ParsedNamespaceRoot);
|
Status = AdSecondPassParse (AcpiGbl_ParsedNamespaceRoot);
|
||||||
|
|
||||||
fprintf (stderr, "Parsing completed\n");
|
fprintf (stderr, "Parsing completed\n");
|
||||||
return Status;
|
return AE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
* Module Name: aslcompile - top level compile module
|
* Module Name: aslcompile - top level compile module
|
||||||
* $Revision: 1.48 $
|
* $Revision: 1.57 $
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
@ -118,56 +118,11 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "aslcompiler.h"
|
#include "aslcompiler.h"
|
||||||
#include "acnamesp.h"
|
#include "acnamesp.h"
|
||||||
#include "acdebug.h"
|
|
||||||
|
|
||||||
#define _COMPONENT ACPI_COMPILER
|
#define _COMPONENT ACPI_COMPILER
|
||||||
ACPI_MODULE_NAME ("aslcompile")
|
ACPI_MODULE_NAME ("aslcompile")
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Stubs to simplify linkage to the
|
|
||||||
* ACPI Namespace Manager (Unused functions).
|
|
||||||
* TBD: These functions should be split out so
|
|
||||||
* that these stubs are no longer needed.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
AcpiExUnlinkMutex (
|
|
||||||
ACPI_OPERAND_OBJECT *ObjDesc)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
AcpiTbDeleteAcpiTables (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
ACPI_STATUS
|
|
||||||
AeLocalGetRootPointer (
|
|
||||||
UINT32 Flags,
|
|
||||||
ACPI_PHYSICAL_ADDRESS *RsdpPhysicalAddress)
|
|
||||||
{
|
|
||||||
return AE_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
AcpiExDumpOperands (
|
|
||||||
ACPI_OPERAND_OBJECT **Operands,
|
|
||||||
ACPI_INTERPRETER_MODE InterpreterMode,
|
|
||||||
NATIVE_CHAR *Ident,
|
|
||||||
UINT32 NumLevels,
|
|
||||||
NATIVE_CHAR *Note,
|
|
||||||
NATIVE_CHAR *ModuleName,
|
|
||||||
UINT32 LineNumber)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
ACPI_STATUS
|
|
||||||
AcpiExDumpOperand (
|
|
||||||
ACPI_OPERAND_OBJECT *EntryDesc)
|
|
||||||
{
|
|
||||||
return AE_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
@ -215,12 +170,16 @@ AslCompilerSignon (
|
|||||||
|
|
||||||
Prefix = " * ";
|
Prefix = " * ";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
/* No other output types supported */
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compiler signon with copyright */
|
/* Compiler signon with copyright */
|
||||||
|
|
||||||
FlPrintFile (FileId,
|
FlPrintFile (FileId,
|
||||||
"%s\n%s%s %s [%s]\n%sIncludes ACPI CA Subsystem version %X\n%s%s\n%sSupports ACPI Specification Revision 2.0\n%s\n",
|
"%s\n%s%s %s [%s]\n%sIncludes ACPI CA Subsystem version %X\n%s%s\n%sSupports ACPI Specification Revision 2.0a\n%s\n",
|
||||||
Prefix,
|
Prefix,
|
||||||
Prefix, CompilerId, CompilerVersion, __DATE__,
|
Prefix, CompilerId, CompilerVersion, __DATE__,
|
||||||
Prefix, ACPI_CA_VERSION,
|
Prefix, ACPI_CA_VERSION,
|
||||||
@ -277,17 +236,32 @@ AslCompilerFileHeader (
|
|||||||
|
|
||||||
Prefix = " * ";
|
Prefix = " * ";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
/* No other output types supported */
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compilation header with timestamp */
|
/* Compilation header with timestamp */
|
||||||
|
|
||||||
time (&Aclock);
|
(void) time (&Aclock);
|
||||||
NewTime = localtime (&Aclock);
|
NewTime = localtime (&Aclock);
|
||||||
|
|
||||||
FlPrintFile (FileId,
|
FlPrintFile (FileId,
|
||||||
"%sCompilation of \"%s\" - %s%s\n",
|
"%sCompilation of \"%s\" - %s%s\n",
|
||||||
Prefix, Gbl_Files[ASL_FILE_INPUT].Filename, asctime (NewTime),
|
Prefix, Gbl_Files[ASL_FILE_INPUT].Filename, asctime (NewTime),
|
||||||
Prefix);
|
Prefix);
|
||||||
|
|
||||||
|
switch (FileId)
|
||||||
|
{
|
||||||
|
case ASL_FILE_C_SOURCE_OUTPUT:
|
||||||
|
FlPrintFile (FileId, " */\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
/* Nothing to do for other output types */
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -329,11 +303,6 @@ CmDoCompile (void)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ACPI CA subsystem initialization */
|
|
||||||
|
|
||||||
AcpiUtInitGlobals ();
|
|
||||||
AcpiUtMutexInitialize ();
|
|
||||||
AcpiNsRootInitialize ();
|
|
||||||
UtEndEvent (i++);
|
UtEndEvent (i++);
|
||||||
|
|
||||||
/* Build the parse tree */
|
/* Build the parse tree */
|
||||||
@ -342,6 +311,8 @@ CmDoCompile (void)
|
|||||||
AslCompilerparse();
|
AslCompilerparse();
|
||||||
UtEndEvent (i++);
|
UtEndEvent (i++);
|
||||||
|
|
||||||
|
OpcGetIntegerWidth (RootNode);
|
||||||
|
|
||||||
/* Pre-process parse tree for any operator transforms */
|
/* Pre-process parse tree for any operator transforms */
|
||||||
|
|
||||||
UtBeginEvent (i, "Generate AML opcodes");
|
UtBeginEvent (i, "Generate AML opcodes");
|
||||||
@ -354,6 +325,13 @@ CmDoCompile (void)
|
|||||||
TrWalkParseTree (RootNode, ASL_WALK_VISIT_UPWARD, NULL, OpcAmlOpcodeWalk, NULL);
|
TrWalkParseTree (RootNode, ASL_WALK_VISIT_UPWARD, NULL, OpcAmlOpcodeWalk, NULL);
|
||||||
UtEndEvent (i++);
|
UtEndEvent (i++);
|
||||||
|
|
||||||
|
/* Interpret and generate all compile-time constants */
|
||||||
|
|
||||||
|
UtBeginEvent (i, "Constant folding via AML interpreter");
|
||||||
|
DbgPrint (ASL_DEBUG_OUTPUT, "\nInterpreting compile-time constant expressions\n\n");
|
||||||
|
TrWalkParseTree (RootNode, ASL_WALK_VISIT_DOWNWARD, OpcAmlConstantWalk, NULL, NULL);
|
||||||
|
UtEndEvent (i++);
|
||||||
|
|
||||||
/* Calculate all AML package lengths */
|
/* Calculate all AML package lengths */
|
||||||
|
|
||||||
UtBeginEvent (i, "Generate AML package lengths");
|
UtBeginEvent (i, "Generate AML package lengths");
|
||||||
@ -382,14 +360,23 @@ CmDoCompile (void)
|
|||||||
/* Namespace loading */
|
/* Namespace loading */
|
||||||
|
|
||||||
UtBeginEvent (i, "Create ACPI Namespace");
|
UtBeginEvent (i, "Create ACPI Namespace");
|
||||||
LdLoadNamespace ();
|
Status = LdLoadNamespace (RootNode);
|
||||||
UtEndEvent (i++);
|
UtEndEvent (i++);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Namespace lookup */
|
/* Namespace lookup */
|
||||||
|
|
||||||
UtBeginEvent (i, "Cross reference parse tree and Namespace");
|
UtBeginEvent (i, "Cross reference parse tree and Namespace");
|
||||||
LkCrossReferenceNamespace ();
|
Status = LkCrossReferenceNamespace ();
|
||||||
UtEndEvent (i++);
|
UtEndEvent (i++);
|
||||||
|
UtEndEvent (i++);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Semantic analysis. This can happen only after the
|
* Semantic analysis. This can happen only after the
|
||||||
@ -531,6 +518,7 @@ CmCleanupAndExit (void)
|
|||||||
printf ("%11u : %s\n", TotalMethods, "Control methods");
|
printf ("%11u : %s\n", TotalMethods, "Control methods");
|
||||||
printf ("%11u : %s\n", TotalAllocations, "Memory Allocations");
|
printf ("%11u : %s\n", TotalAllocations, "Memory Allocations");
|
||||||
printf ("%11u : %s\n", TotalAllocated, "Total allocated memory");
|
printf ("%11u : %s\n", TotalAllocated, "Total allocated memory");
|
||||||
|
printf ("%11u : %s\n", TotalFolds, "Constant subtrees folded");
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -539,7 +527,7 @@ CmCleanupAndExit (void)
|
|||||||
DbgPrint (ASL_DEBUG_OUTPUT, "\n\nMiscellaneous compile statistics\n\n");
|
DbgPrint (ASL_DEBUG_OUTPUT, "\n\nMiscellaneous compile statistics\n\n");
|
||||||
DbgPrint (ASL_DEBUG_OUTPUT, "%32s : %d\n", "Total Namespace searches", Gbl_NsLookupCount);
|
DbgPrint (ASL_DEBUG_OUTPUT, "%32s : %d\n", "Total Namespace searches", Gbl_NsLookupCount);
|
||||||
DbgPrint (ASL_DEBUG_OUTPUT, "%32s : %d\n", "Time per search",
|
DbgPrint (ASL_DEBUG_OUTPUT, "%32s : %d\n", "Time per search",
|
||||||
((AslGbl_Events[7].EndTime - AslGbl_Events[7].StartTime) * 1000) /
|
((UINT32) (AslGbl_Events[7].EndTime - AslGbl_Events[7].StartTime) * 1000) /
|
||||||
Gbl_NsLookupCount);
|
Gbl_NsLookupCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
* Module Name: aslcompiler.h - common include file
|
* Module Name: aslcompiler.h - common include file
|
||||||
* $Revision: 1.132 $
|
* $Revision: 1.108 $
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
* 1. Copyright Notice
|
* 1. Copyright Notice
|
||||||
*
|
*
|
||||||
* Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp.
|
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* 2. License
|
* 2. License
|
||||||
@ -129,6 +129,21 @@
|
|||||||
|
|
||||||
/* warn : named type definition in parentheses */
|
/* warn : named type definition in parentheses */
|
||||||
#pragma warning(disable:4115)
|
#pragma warning(disable:4115)
|
||||||
|
|
||||||
|
/* MS doesn't have getopt, but we implement it */
|
||||||
|
int
|
||||||
|
getopt (
|
||||||
|
int argc,
|
||||||
|
char **argv,
|
||||||
|
char *opts);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _LINUX
|
||||||
|
|
||||||
|
/* includes native getopt definition */
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -140,7 +155,6 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "acpi.h"
|
#include "acpi.h"
|
||||||
#include "amlresrc.h"
|
|
||||||
#include "acdebug.h"
|
#include "acdebug.h"
|
||||||
#include "asltypes.h"
|
#include "asltypes.h"
|
||||||
#include "aslglobal.h"
|
#include "aslglobal.h"
|
||||||
@ -150,12 +164,12 @@
|
|||||||
* Compiler versions and names
|
* Compiler versions and names
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define CompilerCreatorRevision ACPI_CA_VERSION
|
#define CompilerVersion "X2047"
|
||||||
|
#define CompilerCreatorRevision 0x02012047 /* Acpi 2.0a, Version # */
|
||||||
|
|
||||||
#define IntelAcpiCA "Intel ACPI Component Architecture"
|
#define CompilerId "Intel ACPI Component Architecture ASL Compiler"
|
||||||
#define CompilerId "ASL Optimizing Compiler / AML Disassembler"
|
#define CompilerCopyright "Copyright (C) 2000 - 2002 Intel Corporation"
|
||||||
#define CompilerCopyright "Copyright (C) 2000 - 2004 Intel Corporation"
|
#define CompilerCompliance "ACPI 2.0a"
|
||||||
#define CompilerCompliance "ACPI 2.0c"
|
|
||||||
#define CompilerName "iasl"
|
#define CompilerName "iasl"
|
||||||
#define CompilerCreatorId "INTL"
|
#define CompilerCreatorId "INTL"
|
||||||
|
|
||||||
@ -207,17 +221,11 @@
|
|||||||
#define FILE_SUFFIX_NAMESPACE "nsp"
|
#define FILE_SUFFIX_NAMESPACE "nsp"
|
||||||
#define FILE_SUFFIX_ASM_SOURCE "asm"
|
#define FILE_SUFFIX_ASM_SOURCE "asm"
|
||||||
#define FILE_SUFFIX_C_SOURCE "c"
|
#define FILE_SUFFIX_C_SOURCE "c"
|
||||||
#define FILE_SUFFIX_DISASSEMBLY "dsl"
|
|
||||||
#define FILE_SUFFIX_ASM_INCLUDE "inc"
|
|
||||||
#define FILE_SUFFIX_C_INCLUDE "h"
|
|
||||||
|
|
||||||
|
|
||||||
/* Misc */
|
/* Misc */
|
||||||
|
|
||||||
#define ASL_EXTERNAL_METHOD 255
|
#define ASL_EXTERNAL_METHOD 255
|
||||||
#define ASL_ABORT TRUE
|
|
||||||
#define ASL_NO_ABORT FALSE
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
@ -252,10 +260,6 @@ void
|
|||||||
ResetCurrentLineBuffer (
|
ResetCurrentLineBuffer (
|
||||||
void);
|
void);
|
||||||
|
|
||||||
void
|
|
||||||
InsertLineBuffer (
|
|
||||||
int SourceChar);
|
|
||||||
|
|
||||||
int
|
int
|
||||||
AslPopInputFileStack (
|
AslPopInputFileStack (
|
||||||
void);
|
void);
|
||||||
@ -298,9 +302,6 @@ ErrorContext (void);
|
|||||||
int
|
int
|
||||||
CmDoCompile (void);
|
CmDoCompile (void);
|
||||||
|
|
||||||
void
|
|
||||||
CmDoOutputFiles (void);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
CmCleanupAndExit (void);
|
CmCleanupAndExit (void);
|
||||||
|
|
||||||
@ -314,13 +315,6 @@ AslError (
|
|||||||
ACPI_PARSE_OBJECT *Op,
|
ACPI_PARSE_OBJECT *Op,
|
||||||
char *ExtraMessage);
|
char *ExtraMessage);
|
||||||
|
|
||||||
void
|
|
||||||
AslCoreSubsystemError (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
ACPI_STATUS Status,
|
|
||||||
char *ExtraMessage,
|
|
||||||
BOOLEAN Abort);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AslCommonError (
|
AslCommonError (
|
||||||
UINT8 Level,
|
UINT8 Level,
|
||||||
@ -335,8 +329,7 @@ AslCommonError (
|
|||||||
void
|
void
|
||||||
AePrintException (
|
AePrintException (
|
||||||
UINT32 FileId,
|
UINT32 FileId,
|
||||||
ASL_ERROR_MSG *Enode,
|
ASL_ERROR_MSG *Enode);
|
||||||
char *Header);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AePrintErrorLog (
|
AePrintErrorLog (
|
||||||
@ -476,17 +469,6 @@ void
|
|||||||
OpnDoRegion (
|
OpnDoRegion (
|
||||||
ACPI_PARSE_OBJECT *Op);
|
ACPI_PARSE_OBJECT *Op);
|
||||||
|
|
||||||
/*
|
|
||||||
* aslopt - optmization
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
OptOptimizeNamePath (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 Flags,
|
|
||||||
ACPI_WALK_STATE *WalkState,
|
|
||||||
char *AmlNameString,
|
|
||||||
ACPI_NAMESPACE_NODE *TargetNode);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -581,6 +563,11 @@ void
|
|||||||
TrDoDefinitionBlock (
|
TrDoDefinitionBlock (
|
||||||
ACPI_PARSE_OBJECT *Op);
|
ACPI_PARSE_OBJECT *Op);
|
||||||
|
|
||||||
|
void
|
||||||
|
TrDoElseif (
|
||||||
|
ACPI_PARSE_OBJECT *Op);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* asltree - parse tree support
|
* asltree - parse tree support
|
||||||
*/
|
*/
|
||||||
@ -775,10 +762,6 @@ void
|
|||||||
FlSetLineNumber (
|
FlSetLineNumber (
|
||||||
ACPI_PARSE_OBJECT *Op);
|
ACPI_PARSE_OBJECT *Op);
|
||||||
|
|
||||||
ACPI_STATUS
|
|
||||||
FlParseInputPathname (
|
|
||||||
char *InputFilename);
|
|
||||||
|
|
||||||
ACPI_STATUS
|
ACPI_STATUS
|
||||||
FlOpenInputFile (
|
FlOpenInputFile (
|
||||||
char *InputFilename);
|
char *InputFilename);
|
||||||
@ -900,14 +883,14 @@ UtGetArg (
|
|||||||
ACPI_PARSE_OBJECT *Op,
|
ACPI_PARSE_OBJECT *Op,
|
||||||
UINT32 Argn);
|
UINT32 Argn);
|
||||||
|
|
||||||
char *
|
NATIVE_CHAR *
|
||||||
UtGetStringBuffer (
|
UtGetStringBuffer (
|
||||||
UINT32 Length);
|
UINT32 Length);
|
||||||
|
|
||||||
ACPI_STATUS
|
ACPI_STATUS
|
||||||
UtInternalizeName (
|
UtInternalizeName (
|
||||||
char *ExternalName,
|
NATIVE_CHAR *ExternalName,
|
||||||
char **ConvertedName);
|
NATIVE_CHAR **ConvertedName);
|
||||||
|
|
||||||
void
|
void
|
||||||
UtAttachNamepathToOwner (
|
UtAttachNamepathToOwner (
|
||||||
@ -922,13 +905,13 @@ UtCheckIntegerRange (
|
|||||||
|
|
||||||
ACPI_STATUS
|
ACPI_STATUS
|
||||||
UtStrtoul64 (
|
UtStrtoul64 (
|
||||||
char *String,
|
NATIVE_CHAR *String,
|
||||||
UINT32 Base,
|
UINT32 Base,
|
||||||
ACPI_INTEGER *RetInteger);
|
ACPI_INTEGER *RetInteger);
|
||||||
|
|
||||||
ACPI_INTEGER
|
ACPI_INTEGER
|
||||||
UtDoConstant (
|
UtDoConstant (
|
||||||
char *String);
|
NATIVE_CHAR *String);
|
||||||
|
|
||||||
|
|
||||||
/* Find */
|
/* Find */
|
||||||
@ -939,207 +922,5 @@ LnAdjustLengthToRoot (
|
|||||||
UINT32 LengthDelta);
|
UINT32 LengthDelta);
|
||||||
|
|
||||||
|
|
||||||
#define NEXT_RESOURCE_DESC(a,b) (ASL_RESOURCE_DESC *) (((char *) (a)) + sizeof(b))
|
|
||||||
|
|
||||||
#define DEFAULT_RESOURCE_DESC_SIZE (sizeof (ASL_RESOURCE_DESC) + sizeof (ASL_END_TAG_DESC))
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Resource utilities
|
|
||||||
*/
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsAllocateResourceNode (
|
|
||||||
UINT32 Size);
|
|
||||||
|
|
||||||
void
|
|
||||||
RsCreateBitField (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
char *Name,
|
|
||||||
UINT32 ByteOffset,
|
|
||||||
UINT32 BitOffset);
|
|
||||||
|
|
||||||
void
|
|
||||||
RsCreateByteField (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
char *Name,
|
|
||||||
UINT32 ByteOffset);
|
|
||||||
|
|
||||||
void
|
|
||||||
RsSetFlagBits (
|
|
||||||
UINT8 *Flags,
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT8 Position,
|
|
||||||
UINT8 DefaultBit);
|
|
||||||
|
|
||||||
ACPI_PARSE_OBJECT *
|
|
||||||
RsCompleteNodeAndGetNext (
|
|
||||||
ACPI_PARSE_OBJECT *Op);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoOneResourceDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *DescriptorTypeOp,
|
|
||||||
UINT32 CurrentByteOffset,
|
|
||||||
UINT8 *State);
|
|
||||||
|
|
||||||
#define ACPI_RSTATE_NORMAL 0
|
|
||||||
#define ACPI_RSTATE_START_DEPENDENT 1
|
|
||||||
#define ACPI_RSTATE_DEPENDENT_LIST 2
|
|
||||||
|
|
||||||
UINT32
|
|
||||||
RsLinkDescriptorChain (
|
|
||||||
ASL_RESOURCE_NODE **PreviousRnode,
|
|
||||||
ASL_RESOURCE_NODE *Rnode);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Small descriptors
|
|
||||||
*/
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoDmaDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoEndDependentDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoFixedIoDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoInterruptDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoIoDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoIrqDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoIrqNoFlagsDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoMemory24Descriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoMemory32Descriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoMemory32FixedDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoStartDependentDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoStartDependentNoPriDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoVendorSmallDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Large descriptors
|
|
||||||
*/
|
|
||||||
|
|
||||||
UINT32
|
|
||||||
RsGetStringDataLength (
|
|
||||||
ACPI_PARSE_OBJECT *InitializerOp);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoDwordIoDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoDwordMemoryDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoDwordSpaceDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoExtendedIoDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoExtendedMemoryDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoExtendedSpaceDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoQwordIoDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoQwordMemoryDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoQwordSpaceDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoWordIoDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoWordSpaceDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoWordBusNumberDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoVendorLargeDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
ASL_RESOURCE_NODE *
|
|
||||||
RsDoGeneralRegisterDescriptor (
|
|
||||||
ACPI_PARSE_OBJECT *Op,
|
|
||||||
UINT32 CurrentByteOffset);
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __ASLCOMPILER_H */
|
#endif /* __ASLCOMPILER_H */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user