summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/common
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2009-05-19 14:46:41 +0000
committeravg <avg@FreeBSD.org>2009-05-19 14:46:41 +0000
commit446155c1b9c328c7c094f10e8652c983b9213091 (patch)
tree1bf29b36bb41677c0742ff0393268009db7bb74a /sys/contrib/dev/acpica/common
parentcec3f46f5f61173a687aa7e171b0ac680707a164 (diff)
downloadFreeBSD-src-446155c1b9c328c7c094f10e8652c983b9213091.zip
FreeBSD-src-446155c1b9c328c7c094f10e8652c983b9213091.tar.gz
flatten acpica vendor area
do it for current ('dist') and previous versions; disable keywords expansion at the same time Reviewed by: attilio Approved by: rpaulo
Diffstat (limited to 'sys/contrib/dev/acpica/common')
-rw-r--r--sys/contrib/dev/acpica/common/adfile.c398
-rw-r--r--sys/contrib/dev/acpica/common/adisasm.c1132
-rw-r--r--sys/contrib/dev/acpica/common/adwalk.c1001
-rw-r--r--sys/contrib/dev/acpica/common/dmrestag.c990
-rw-r--r--sys/contrib/dev/acpica/common/dmtable.c734
-rw-r--r--sys/contrib/dev/acpica/common/dmtbdump.c798
-rw-r--r--sys/contrib/dev/acpica/common/dmtbinfo.c967
-rw-r--r--sys/contrib/dev/acpica/common/getopt.c246
8 files changed, 0 insertions, 6266 deletions
diff --git a/sys/contrib/dev/acpica/common/adfile.c b/sys/contrib/dev/acpica/common/adfile.c
deleted file mode 100644
index 732b2bb..0000000
--- a/sys/contrib/dev/acpica/common/adfile.c
+++ /dev/null
@@ -1,398 +0,0 @@
-/******************************************************************************
- *
- * Module Name: adfile - Application-level disassembler file support routines
- * $Revision: 1.3 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acapps.h>
-
-#include <stdio.h>
-#include <string.h>
-
-
-#define _COMPONENT ACPI_TOOLS
- ACPI_MODULE_NAME ("adfile")
-
-
-char FilenameBuf[20];
-
-/******************************************************************************
- *
- * FUNCTION: AfGenerateFilename
- *
- * PARAMETERS: Prefix - prefix string
- * TableId - The table ID
- *
- * RETURN: Pointer to the completed string
- *
- * DESCRIPTION: Build an output filename from an ACPI table ID string
- *
- ******************************************************************************/
-
-char *
-AdGenerateFilename (
- char *Prefix,
- char *TableId)
-{
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
-
-
- for (i = 0; Prefix[i]; i++)
- {
- FilenameBuf[i] = Prefix[i];
- }
-
- FilenameBuf[i] = '_';
- i++;
-
- for (j = 0; j < 8 && (TableId[j] != ' ') && (TableId[j] != 0); i++, j++)
- {
- FilenameBuf[i] = TableId[j];
- }
-
- FilenameBuf[i] = 0;
- strcat (FilenameBuf, ACPI_TABLE_FILE_SUFFIX);
- return FilenameBuf;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AfWriteBuffer
- *
- * PARAMETERS: Filename - name of file
- * Buffer - data to write
- * Length - length of data
- *
- * RETURN: Actual number of bytes written
- *
- * DESCRIPTION: Open a file and write out a single buffer
- *
- ******************************************************************************/
-
-ACPI_NATIVE_INT
-AdWriteBuffer (
- char *Filename,
- char *Buffer,
- UINT32 Length)
-{
- FILE *fp;
- ACPI_SIZE Actual;
-
-
- fp = fopen (Filename, "wb");
- if (!fp)
- {
- printf ("Couldn't open %s\n", Filename);
- return (-1);
- }
-
- Actual = fwrite (Buffer, (size_t) Length, 1, fp);
- fclose (fp);
- return ((ACPI_NATIVE_INT) Actual);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AfWriteTable
- *
- * PARAMETERS: Table - pointer to the ACPI table
- * Length - length of the table
- * TableName - the table signature
- * OemTableID - from the table header
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump the loaded tables to a file (or files)
- *
- ******************************************************************************/
-
-void
-AdWriteTable (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length,
- char *TableName,
- char *OemTableId)
-{
- char *Filename;
-
-
- Filename = AdGenerateFilename (TableName, OemTableId);
- AdWriteBuffer (Filename, (char *) Table, Length);
-
- AcpiOsPrintf ("Table [%s] written to \"%s\"\n", TableName, Filename);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlGenerateFilename
- *
- * PARAMETERS: InputFilename - Original ASL source filename
- * Suffix - New extension.
- *
- * RETURN: New filename containing the original base + the new suffix
- *
- * DESCRIPTION: Generate a new filename from the ASL source filename and a new
- * extension. Used to create the *.LST, *.TXT, etc. files.
- *
- ******************************************************************************/
-
-char *
-FlGenerateFilename (
- char *InputFilename,
- char *Suffix)
-{
- char *Position;
- char *NewFilename;
-
-
- /*
- * Copy the original filename to a new buffer. Leave room for the worst case
- * where we append the suffix, an added dot and the null terminator.
- */
- NewFilename = ACPI_ALLOCATE_ZEROED (
- strlen (InputFilename) + strlen (Suffix) + 2);
- strcpy (NewFilename, InputFilename);
-
- /* Try to find the last dot in the filename */
-
- Position = strrchr (NewFilename, '.');
- if (Position)
- {
- /* Tack on the new suffix */
-
- Position++;
- *Position = 0;
- strcat (Position, Suffix);
- }
- else
- {
- /* No dot, add one and then the suffix */
-
- strcat (NewFilename, ".");
- strcat (NewFilename, Suffix);
- }
-
- return NewFilename;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlStrdup
- *
- * DESCRIPTION: Local strdup function
- *
- ******************************************************************************/
-
-static char *
-FlStrdup (
- char *String)
-{
- char *NewString;
-
-
- NewString = ACPI_ALLOCATE (strlen (String) + 1);
- if (!NewString)
- {
- return (NULL);
- }
-
- strcpy (NewString, String);
- return (NewString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlSplitInputPathname
- *
- * PARAMETERS: InputFilename - The user-specified ASL source file to be
- * compiled
- * OutDirectoryPath - Where the directory path prefix is
- * returned
- * OutFilename - Where the filename part is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Split the input path into a directory and filename part
- * 1) Directory part used to open include files
- * 2) Filename part used to generate output filenames
- *
- ******************************************************************************/
-
-ACPI_STATUS
-FlSplitInputPathname (
- char *InputPath,
- char **OutDirectoryPath,
- char **OutFilename)
-{
- char *Substring;
- char *DirectoryPath;
- char *Filename;
-
-
- *OutDirectoryPath = NULL;
- *OutFilename = NULL;
-
- if (!InputPath)
- {
- return (AE_OK);
- }
-
- /* Get the path to the input filename's directory */
-
- DirectoryPath = FlStrdup (InputPath);
- if (!DirectoryPath)
- {
- return (AE_NO_MEMORY);
- }
-
- Substring = strrchr (DirectoryPath, '\\');
- if (!Substring)
- {
- Substring = strrchr (DirectoryPath, '/');
- if (!Substring)
- {
- Substring = strrchr (DirectoryPath, ':');
- }
- }
-
- if (!Substring)
- {
- DirectoryPath[0] = 0;
- Filename = FlStrdup (InputPath);
- }
- else
- {
- Filename = FlStrdup (Substring + 1);
- *(Substring+1) = 0;
- }
-
- if (!Filename)
- {
- return (AE_NO_MEMORY);
- }
-
- *OutDirectoryPath = DirectoryPath;
- *OutFilename = Filename;
-
- return (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/common/adisasm.c b/sys/contrib/dev/acpica/common/adisasm.c
deleted file mode 100644
index 843a9a8..0000000
--- a/sys/contrib/dev/acpica/common/adisasm.c
+++ /dev/null
@@ -1,1132 +0,0 @@
-/******************************************************************************
- *
- * Module Name: adisasm - Application-level disassembler routines
- * $Revision: 1.104 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/actables.h>
-#include <contrib/dev/acpica/acapps.h>
-
-#include <stdio.h>
-#include <time.h>
-
-
-#define _COMPONENT ACPI_TOOLS
- ACPI_MODULE_NAME ("adisasm")
-
-extern int AslCompilerdebug;
-
-ACPI_STATUS
-LsDisplayNamespace (
- void);
-
-void
-LsSetupNsList (void * Handle);
-
-
-/* Local prototypes */
-
-void
-AdCreateTableHeader (
- char *Filename,
- ACPI_TABLE_HEADER *Table);
-
-void
-AdDisassemblerHeader (
- char *Filename);
-
-ACPI_PARSE_OBJECT *AcpiGbl_ParseOpRoot;
-
-
-/* Stubs for ASL compiler */
-
-#ifndef ACPI_ASL_COMPILER
-BOOLEAN
-AcpiDsIsResultUsed (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
- return TRUE;
-}
-
-ACPI_STATUS
-AcpiDsMethodError (
- ACPI_STATUS Status,
- ACPI_WALK_STATE *WalkState)
-{
- return (Status);
-}
-
-#endif
-
-ACPI_STATUS
-AcpiNsLoadTable (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *Node)
-{
- return (AE_NOT_IMPLEMENTED);
-}
-
-ACPI_STATUS
-AcpiDsRestartControlMethod (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *ReturnDesc)
-{
- return (AE_OK);
-}
-
-void
-AcpiDsTerminateControlMethod (
- ACPI_OPERAND_OBJECT *MethodDesc,
- ACPI_WALK_STATE *WalkState)
-{
- return;
-}
-
-ACPI_STATUS
-AcpiDsCallControlMethod (
- ACPI_THREAD_STATE *Thread,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiDsMethodDataInitArgs (
- ACPI_OPERAND_OBJECT **Params,
- UINT32 MaxParamCount,
- ACPI_WALK_STATE *WalkState)
-{
- return (AE_OK);
-}
-
-
-ACPI_TABLE_DESC LocalTables[1];
-
-
-/*******************************************************************************
- *
- * FUNCTION: AdInitialize
- *
- * PARAMETERS: None.
- *
- * RETURN: Status
- *
- * DESCRIPTION: CA initialization
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AdInitialize (
- void)
-{
- ACPI_STATUS Status;
-
-
- /* ACPI CA subsystem initialization */
-
- Status = AcpiOsInitialize ();
- AcpiUtInitGlobals ();
-
- Status = AcpiUtMutexInitialize ();
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- Status = AcpiNsRootInitialize ();
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- /* Setup the Table Manager (cheat - there is no RSDT) */
-
- AcpiGbl_RootTableList.Size = 1;
- AcpiGbl_RootTableList.Count = 0;
- AcpiGbl_RootTableList.Tables = LocalTables;
-
- return Status;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AdAddExternalsToNamespace
- *
- * PARAMETERS:
- *
- * RETURN: Status
- *
- * DESCRIPTION:
- *
- ******************************************************************************/
-
-void
-AdAddExternalsToNamespace (
- void)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_EXTERNAL_LIST *External = AcpiGbl_ExternalList;
- ACPI_OPERAND_OBJECT *MethodDesc;
-
-
- while (External)
- {
- Status = AcpiNsLookup (NULL, External->InternalPath, External->Type,
- ACPI_IMODE_LOAD_PASS1, ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE,
- NULL, &Node);
-
- if (External->Type == ACPI_TYPE_METHOD)
- {
- MethodDesc = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
- MethodDesc->Method.ParamCount = (UINT8) External->Value;
- Node->Object = MethodDesc;
- }
-
- External = External->Next;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AdMethodExternalCount
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Return the number of externals that have been generated
- *
- ******************************************************************************/
-
-UINT32
-AdMethodExternalCount (
- void)
-{
- ACPI_EXTERNAL_LIST *External = AcpiGbl_ExternalList;
- UINT32 Count = 0;
-
-
- while (External)
- {
- if (External->Type == ACPI_TYPE_METHOD)
- {
- Count++;
- }
-
- External = External->Next;
- }
-
- return (Count);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdAmlDisassemble
- *
- * PARAMETERS: Filename - AML input filename
- * OutToFile - TRUE if output should go to a file
- * Prefix - Path prefix for output
- * OutFilename - where the filename is returned
- * GetAllTables - TRUE if all tables are desired
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disassemble an entire ACPI table
- *
- *****************************************************************************/
-
-extern char *Gbl_ExternalFilename;
-
-ACPI_STATUS
-AdAmlDisassemble (
- BOOLEAN OutToFile,
- char *Filename,
- char *Prefix,
- char **OutFilename,
- BOOLEAN GetAllTables)
-{
- ACPI_STATUS Status;
- char *DisasmFilename = NULL;
- FILE *File = NULL;
- ACPI_TABLE_HEADER *Table;
- ACPI_TABLE_HEADER *ExternalTable;
-
-
- /*
- * Input: AML Code from either a file,
- * or via GetTables (memory or registry)
- */
- if (Filename)
- {
- Status = AcpiDbGetTableFromFile (Filename, &Table);
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- if (Gbl_ExternalFilename)
- {
- Status = AcpiDbGetTableFromFile (Gbl_ExternalFilename, &ExternalTable);
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
- }
- }
- else
- {
- Status = AdGetLocalTables (Filename, GetAllTables);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not get ACPI tables, %s\n",
- AcpiFormatException (Status));
- return Status;
- }
-
- if (!AcpiGbl_DbOpt_disasm)
- {
- return AE_OK;
- }
-
- /* Obtained the local tables, just disassemble the DSDT */
-
- Status = AcpiGetTable (ACPI_SIG_DSDT, 0, &Table);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not get DSDT, %s\n",
- AcpiFormatException (Status));
- return Status;
- }
-
- AcpiOsPrintf ("\nDisassembly of DSDT\n");
- Prefix = AdGenerateFilename ("dsdt", Table->OemTableId);
- }
-
- /*
- * Output: ASL code.
- * Redirect to a file if requested
- */
- if (OutToFile)
- {
- /* Create/Open a disassembly output file */
-
- DisasmFilename = FlGenerateFilename (Prefix, FILE_SUFFIX_DISASSEMBLY);
- if (!OutFilename)
- {
- fprintf (stderr, "Could not generate output filename\n");
- Status = AE_ERROR;
- goto Cleanup;
- }
-
- File = fopen (DisasmFilename, "w+");
- if (!File)
- {
- fprintf (stderr, "Could not open output file %s\n", DisasmFilename);
- Status = AE_ERROR;
- goto Cleanup;
- }
-
- AcpiOsRedirectOutput (File);
- }
-
- *OutFilename = DisasmFilename;
-
- if (!AcpiUtIsAmlTable (Table))
- {
- AdDisassemblerHeader (Filename);
- AcpiOsPrintf (" * ACPI Data Table [%4.4s]\n *\n",
- Table->Signature);
- AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue\n */\n\n");
-
- AcpiDmDumpDataTable (Table);
- fprintf (stderr, "Acpi Data Table [%4.4s] decoded, written to \"%s\"\n",
- Table->Signature, DisasmFilename);
- }
- else
- {
- /* Always parse the tables, only option is what to display */
-
- Status = AdParseTable (Table);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not parse ACPI tables, %s\n",
- AcpiFormatException (Status));
- goto Cleanup;
- }
-
- if (AslCompilerdebug)
- {
- AcpiOsPrintf ("/**** Before second load\n");
-
- LsSetupNsList (File);
- LsDisplayNamespace ();
- AcpiOsPrintf ("*****/\n");
- }
-
- /*
- * Load namespace from names created within control methods
- */
- AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
-
- /*
- * Cross reference the namespace here, in order to generate External() statements
- */
- AcpiDmCrossReferenceNamespace (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
-
- if (AslCompilerdebug)
- {
- AcpiDmDumpTree (AcpiGbl_ParseOpRoot);
- }
-
- /* Find possible calls to external control methods */
-
- AcpiDmFindOrphanMethods (AcpiGbl_ParseOpRoot);
-
- /* Convert fixed-offset references to resource descriptors to symbolic references */
-
- AcpiDmConvertResourceIndexes (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
-
- if (AslCompilerdebug)
- {
- AcpiOsPrintf ("/**** After second load and resource conversion\n");
- LsSetupNsList (File);
- LsDisplayNamespace ();
- AcpiOsPrintf ("*****/\n");
- }
-
- /*
- * If we found any external control methods, we must reparse the entire
- * tree with the new information (namely, the number of arguments per
- * method)
- */
- if (AdMethodExternalCount ())
- {
- fprintf (stderr,
- "\nFound %d external control methods, reparsing with new information\n",
- AdMethodExternalCount());
-
- /*
- * Reparse, rebuild namespace. no need to xref namespace
- */
- AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
- AcpiNsDeleteNamespaceSubtree (AcpiGbl_RootNode);
-
- 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;
-
- Status = AcpiNsRootInitialize ();
- AdAddExternalsToNamespace ();
-
- Status = AdParseTable (Table);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not parse ACPI tables, %s\n",
- AcpiFormatException (Status));
- goto Cleanup;
- }
-
- if (AslCompilerdebug)
- {
- AcpiDmDumpTree (AcpiGbl_ParseOpRoot);
- }
- }
-
- /* Optional displays */
-
- if (AcpiGbl_DbOpt_disasm)
- {
- AdDisplayTables (Filename, Table);
- fprintf (stderr,
- "Disassembly completed, written to \"%s\"\n",
- DisasmFilename);
- }
- }
-
-Cleanup:
- if (OutToFile && File)
- {
-
-#ifdef ASL_DISASM_DEBUG
- LsSetupNsList (File);
- LsDisplayNamespace ();
-#endif
- fclose (File);
- AcpiOsRedirectOutput (stdout);
- }
-
- AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
- return Status;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdDisassemblerHeader
- *
- * PARAMETERS: Filename - Input file for the table
- *
- * RETURN: None
- *
- * DESCRIPTION: Create the disassembler header, including ACPI CA signon with
- * current time and date.
- *
- *****************************************************************************/
-
-void
-AdDisassemblerHeader (
- char *Filename)
-{
- time_t Timer;
-
- time (&Timer);
-
- /* Header and input table info */
-
- AcpiOsPrintf ("/*\n * Intel ACPI Component Architecture\n");
- AcpiOsPrintf (" * AML Disassembler version %8.8X\n", ACPI_CA_VERSION);
-
- AcpiOsPrintf (" *\n * Disassembly of %s, %s", Filename, ctime (&Timer));
- AcpiOsPrintf (" *\n");
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdCreateTableHeader
- *
- * PARAMETERS: Filename - Input file for the table
- * Table - Pointer to the raw table
- *
- * RETURN: None
- *
- * DESCRIPTION: Create the ASL table header, including ACPI CA signon with
- * current time and date.
- *
- *****************************************************************************/
-
-void
-AdCreateTableHeader (
- char *Filename,
- ACPI_TABLE_HEADER *Table)
-{
- char *NewFilename;
-
-
- AdDisassemblerHeader (Filename);
-
- AcpiOsPrintf (" *\n * Original Table Header:\n");
- AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature);
- AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length);
- AcpiOsPrintf (" * Revision 0x%2.2X\n", Table->Revision);
- AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId);
- AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId);
- AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision);
- AcpiOsPrintf (" * Creator ID \"%.4s\"\n", Table->AslCompilerId);
- AcpiOsPrintf (" * Creator Revision 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision);
- AcpiOsPrintf (" */\n");
-
- /* Create AML output filename based on input filename */
-
- if (Filename)
- {
- NewFilename = FlGenerateFilename (Filename, "aml");
- }
- else
- {
- NewFilename = ACPI_ALLOCATE_ZEROED (9);
- strncat (NewFilename, Table->Signature, 4);
- strcat (NewFilename, ".aml");
- }
-
- /* Open the ASL definition block */
-
- AcpiOsPrintf (
- "DefinitionBlock (\"%s\", \"%4.4s\", %hd, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
- NewFilename, Table->Signature, Table->Revision,
- Table->OemId, Table->OemTableId, Table->OemRevision);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdDisplayTables
- *
- * PARAMETERS: Filename - Input file for the table
- * Table - Pointer to the raw table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Display (disassemble) loaded tables and dump raw tables
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdDisplayTables (
- char *Filename,
- ACPI_TABLE_HEADER *Table)
-{
-
-
- if (!AcpiGbl_ParseOpRoot)
- {
- return AE_NOT_EXIST;
- }
-
- if (!AcpiGbl_DbOpt_verbose)
- {
- AdCreateTableHeader (Filename, Table);
- }
-
- AcpiDmDisassemble (NULL, AcpiGbl_ParseOpRoot, ACPI_UINT32_MAX);
-
- if (AcpiGbl_DbOpt_verbose)
- {
- AcpiOsPrintf ("\n\nTable Header:\n");
- AcpiUtDumpBuffer ((UINT8 *) Table, sizeof (ACPI_TABLE_HEADER),
- DB_BYTE_DISPLAY, ACPI_UINT32_MAX);
-
- AcpiOsPrintf ("Table Body (Length 0x%X)\n", Table->Length);
- AcpiUtDumpBuffer (((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)), Table->Length,
- DB_BYTE_DISPLAY, ACPI_UINT32_MAX);
- }
-
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdDeferredParse
- *
- * PARAMETERS: Op - Root Op of the deferred opcode
- * Aml - Pointer to the raw AML
- * AmlLength - Length of the AML
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse one deferred opcode
- * (Methods, operation regions, etc.)
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdDeferredParse (
- ACPI_PARSE_OBJECT *Op,
- UINT8 *Aml,
- UINT32 AmlLength)
-{
- ACPI_WALK_STATE *WalkState;
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *SearchOp;
- ACPI_PARSE_OBJECT *StartOp;
- UINT32 BaseAmlOffset;
- ACPI_PARSE_OBJECT *ExtraOp;
-
-
- ACPI_FUNCTION_TRACE (AdDeferredParse);
-
-
- fprintf (stderr, ".");
-
- if (!Aml || !AmlLength)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Parsing %s [%4.4s]\n",
- Op->Common.AmlOpName, (char *) &Op->Named.Name));
-
- WalkState = AcpiDsCreateWalkState (0, Op, NULL, NULL);
- if (!WalkState)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, Aml,
- AmlLength, NULL, ACPI_IMODE_LOAD_PASS1);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Parse the method */
-
- WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE;
- WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE;
- Status = AcpiPsParseAml (WalkState);
-
- /*
- * We need to update all of the Aml offsets, since the parser thought
- * that the method began at offset zero. In reality, it began somewhere
- * within the ACPI table, at the BaseAmlOffset. Walk the entire tree that
- * was just created and update the AmlOffset in each Op
- */
- BaseAmlOffset = (Op->Common.Value.Arg)->Common.AmlOffset + 1;
- StartOp = (Op->Common.Value.Arg)->Common.Next;
- SearchOp = StartOp;
-
- /* Walk the parse tree */
-
- while (SearchOp)
- {
- SearchOp->Common.AmlOffset += BaseAmlOffset;
- SearchOp = AcpiPsGetDepthNext (StartOp, SearchOp);
- }
-
- /*
- * Link the newly parsed subtree into the main parse tree
- */
- switch (Op->Common.AmlOpcode)
- {
- case AML_BUFFER_OP:
- case AML_PACKAGE_OP:
- case AML_VAR_PACKAGE_OP:
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_PACKAGE_OP:
- ExtraOp = Op->Common.Value.Arg;
- ExtraOp = ExtraOp->Common.Next;
- Op->Common.Value.Arg = ExtraOp->Common.Value.Arg;
- break;
-
- case AML_VAR_PACKAGE_OP:
- case AML_BUFFER_OP:
- default:
- ExtraOp = Op->Common.Value.Arg;
- Op->Common.Value.Arg = ExtraOp->Common.Value.Arg;
- break;
- }
-
- /* Must point all parents to the main tree */
-
- StartOp = Op;
- SearchOp = StartOp;
- while (SearchOp)
- {
- if (SearchOp->Common.Parent == ExtraOp)
- {
- SearchOp->Common.Parent = Op;
- }
- SearchOp = AcpiPsGetDepthNext (StartOp, SearchOp);
- }
- break;
-
- default:
- break;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdParseDeferredOps
- *
- * PARAMETERS: Root - Root of the parse tree
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse the deferred opcodes (Methods, regions, etc.)
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdParseDeferredOps (
- ACPI_PARSE_OBJECT *Root)
-{
- ACPI_PARSE_OBJECT *Op = Root;
- ACPI_STATUS Status = AE_OK;
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- ACPI_FUNCTION_NAME (AdParseDeferredOps);
- fprintf (stderr, "Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)\n");
-
- while (Op)
- {
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (!(OpInfo->Flags & AML_DEFER))
- {
- Op = AcpiPsGetDepthNext (Root, Op);
- continue;
- }
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_METHOD_OP:
- case AML_BUFFER_OP:
- case AML_PACKAGE_OP:
- case AML_VAR_PACKAGE_OP:
-
- Status = AdDeferredParse (Op, Op->Named.Data, Op->Named.Length);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- break;
-
- case AML_REGION_OP:
- case AML_CREATE_QWORD_FIELD_OP:
- case AML_CREATE_DWORD_FIELD_OP:
- case AML_CREATE_WORD_FIELD_OP:
- case AML_CREATE_BYTE_FIELD_OP:
- case AML_CREATE_BIT_FIELD_OP:
- case AML_CREATE_FIELD_OP:
-
- /* Nothing to do in these cases */
-
- break;
-
- default:
- ACPI_ERROR ((AE_INFO, "Unhandled deferred opcode [%s]",
- Op->Common.AmlOpName));
- break;
- }
-
- Op = AcpiPsGetDepthNext (Root, Op);
- }
-
- fprintf (stderr, "\n");
- return Status;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdGetLocalTables
- *
- * PARAMETERS: Filename - Not used
- * GetAllTables - TRUE if all tables are desired
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get the ACPI tables from either memory or a file
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdGetLocalTables (
- char *Filename,
- BOOLEAN GetAllTables)
-{
- ACPI_STATUS Status;
- ACPI_TABLE_HEADER TableHeader;
- ACPI_TABLE_HEADER *NewTable;
- UINT32 NumTables;
- UINT32 PointerSize;
- ACPI_NATIVE_UINT TableIndex;
-
-
- if (GetAllTables)
- {
- ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_RSDT);
- AcpiOsTableOverride (&TableHeader, &NewTable);
- if (!NewTable)
- {
- fprintf (stderr, "Could not obtain RSDT\n");
- return AE_NO_ACPI_TABLES;
- }
-
- if (ACPI_COMPARE_NAME (NewTable->Signature, ACPI_SIG_RSDT))
- {
- PointerSize = sizeof (UINT32);
- }
- else
- {
- PointerSize = sizeof (UINT64);
- }
-
- /*
- * Determine the number of tables pointed to by the RSDT/XSDT.
- * This is defined by the ACPI Specification to be the number of
- * pointers contained within the RSDT/XSDT. The size of the pointers
- * is architecture-dependent.
- */
- NumTables = (NewTable->Length - sizeof (ACPI_TABLE_HEADER)) / PointerSize;
- AcpiOsPrintf ("There are %d tables defined in the %4.4s\n\n",
- NumTables, NewTable->Signature);
-
- /* Get the FADT */
-
- ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_FADT);
- AcpiOsTableOverride (&TableHeader, &NewTable);
- if (NewTable)
- {
- AdWriteTable (NewTable, NewTable->Length,
- ACPI_SIG_FADT, NewTable->OemTableId);
- }
- AcpiOsPrintf ("\n");
-
- /* Don't bother with FACS, it is usually all zeros */
- }
-
- /* Always get the DSDT */
-
- ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_DSDT);
- AcpiOsTableOverride (&TableHeader, &NewTable);
- if (NewTable)
- {
- AdWriteTable (NewTable, NewTable->Length,
- ACPI_SIG_DSDT, NewTable->OemTableId);
-
- /* Store DSDT in the Table Manager */
-
- Status = AcpiTbStoreTable (0, NewTable, NewTable->Length,
- 0, &TableIndex);
- }
- else
- {
- fprintf (stderr, "Could not obtain DSDT\n");
- return AE_NO_ACPI_TABLES;
- }
-
-#if 0
- /* TBD: Future implementation */
-
- AcpiOsPrintf ("\n");
-
- /* Get all SSDTs */
-
- ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_SSDT);
- do
- {
- NewTable = NULL;
- Status = AcpiOsTableOverride (&TableHeader, &NewTable);
-
- } while (NewTable);
-#endif
-
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdParseTable
- *
- * PARAMETERS: Table - Pointer to the raw table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse the DSDT.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdParseTable (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_WALK_STATE *WalkState;
- UINT8 *AmlStart;
- UINT32 AmlLength;
- ACPI_NATIVE_UINT TableIndex;
-
-
- if (!Table)
- {
- return AE_NOT_EXIST;
- }
-
- /* Pass 1: Parse everything except control method bodies */
-
- fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature);
-
- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
- AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER));
-
- /* Create the root object */
-
- AcpiGbl_ParseOpRoot = AcpiPsCreateScopeOp ();
- if (!AcpiGbl_ParseOpRoot)
- {
- return AE_NO_MEMORY;
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0,
- AcpiGbl_ParseOpRoot, NULL, NULL);
- if (!WalkState)
- {
- return (AE_NO_MEMORY);
- }
-
- Status = AcpiDsInitAmlWalk (WalkState, AcpiGbl_ParseOpRoot,
- NULL, AmlStart, AmlLength, NULL, ACPI_IMODE_LOAD_PASS1);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE;
- WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE;
-
- Status = AcpiPsParseAml (WalkState);
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- /* Pass 2 */
-
- Status = AcpiTbStoreTable ((ACPI_NATIVE_UINT) Table, Table,
- Table->Length, ACPI_TABLE_ORIGIN_ALLOCATED, &TableIndex);
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- fprintf (stderr, "Pass 2 parse of [%4.4s]\n", (char *) Table->Signature);
-
- Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2, 0);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Pass 3: Parse control methods and link their parse trees into the main parse tree */
-
- Status = AdParseDeferredOps (AcpiGbl_ParseOpRoot);
-
- /* Process Resource Templates */
-
- AcpiDmFindResources (AcpiGbl_ParseOpRoot);
-
- fprintf (stderr, "Parsing completed\n");
- return AE_OK;
-}
-
-
diff --git a/sys/contrib/dev/acpica/common/adwalk.c b/sys/contrib/dev/acpica/common/adwalk.c
deleted file mode 100644
index 108561c..0000000
--- a/sys/contrib/dev/acpica/common/adwalk.c
+++ /dev/null
@@ -1,1001 +0,0 @@
-/******************************************************************************
- *
- * Module Name: adwalk - Application-level disassembler parse tree walk routines
- * $Revision: 1.6 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acapps.h>
-
-
-#define _COMPONENT ACPI_TOOLS
- ACPI_MODULE_NAME ("adwalk")
-
-/*
- * aslmap - opcode mappings and reserved method names
- */
-ACPI_OBJECT_TYPE
-AslMapNamedOpcodeToDataType (
- UINT16 Opcode);
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDmFindOrphanDescending (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-AcpiDmDumpDescending (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-AcpiDmXrefDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-AcpiDmCommonAscendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-AcpiDmLoadDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static UINT32
-AcpiDmInspectPossibleArgs (
- UINT32 CurrentOpArgCount,
- UINT32 TargetCount,
- ACPI_PARSE_OBJECT *Op);
-
-static ACPI_STATUS
-AcpiDmResourceDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpTree
- *
- * PARAMETERS: Origin - Starting object
- *
- * RETURN: None
- *
- * DESCRIPTION: Parse tree walk to format and output the nodes
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpTree (
- ACPI_PARSE_OBJECT *Origin)
-{
- ACPI_OP_WALK_INFO Info;
-
-
- if (!Origin)
- {
- return;
- }
-
- AcpiOsPrintf ("/*\nAML Parse Tree\n\n");
- Info.Flags = 0;
- Info.Count = 0;
- Info.Level = 0;
- Info.WalkState = NULL;
- AcpiDmWalkParseTree (Origin, AcpiDmDumpDescending, NULL, &Info);
- AcpiOsPrintf ("*/\n\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFindOrphanMethods
- *
- * PARAMETERS: Origin - Starting object
- *
- * RETURN: None
- *
- * DESCRIPTION: Parse tree walk to find "orphaned" method invocations -- methods
- * that are not resolved in the namespace
- *
- ******************************************************************************/
-
-void
-AcpiDmFindOrphanMethods (
- ACPI_PARSE_OBJECT *Origin)
-{
- ACPI_OP_WALK_INFO Info;
-
-
- if (!Origin)
- {
- return;
- }
-
- Info.Flags = 0;
- Info.Level = 0;
- Info.WalkState = NULL;
- AcpiDmWalkParseTree (Origin, AcpiDmFindOrphanDescending, NULL, &Info);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFinishNamespaceLoad
- *
- * PARAMETERS: ParseTreeRoot - Root of the parse tree
- * NamespaceRoot - Root of the internal namespace
- *
- * RETURN: None
- *
- * DESCRIPTION: Load all namespace items that are created within control
- * methods. Used before namespace cross reference
- *
- ******************************************************************************/
-
-void
-AcpiDmFinishNamespaceLoad (
- ACPI_PARSE_OBJECT *ParseTreeRoot,
- ACPI_NAMESPACE_NODE *NamespaceRoot)
-{
- ACPI_STATUS Status;
- ACPI_OP_WALK_INFO Info;
- ACPI_WALK_STATE *WalkState;
-
-
- if (!ParseTreeRoot)
- {
- return;
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0, ParseTreeRoot, NULL, NULL);
- if (!WalkState)
- {
- return;
- }
-
- Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Info.Flags = 0;
- Info.Level = 0;
- Info.WalkState = WalkState;
- AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmLoadDescendingOp,
- AcpiDmCommonAscendingOp, &Info);
- ACPI_FREE (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCrossReferenceNamespace
- *
- * PARAMETERS: ParseTreeRoot - Root of the parse tree
- * NamespaceRoot - Root of the internal namespace
- *
- * RETURN: None
- *
- * DESCRIPTION: Cross reference the namespace to create externals
- *
- ******************************************************************************/
-
-void
-AcpiDmCrossReferenceNamespace (
- ACPI_PARSE_OBJECT *ParseTreeRoot,
- ACPI_NAMESPACE_NODE *NamespaceRoot)
-{
- ACPI_STATUS Status;
- ACPI_OP_WALK_INFO Info;
- ACPI_WALK_STATE *WalkState;
-
-
- if (!ParseTreeRoot)
- {
- return;
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0, ParseTreeRoot, NULL, NULL);
- if (!WalkState)
- {
- return;
- }
-
- Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Info.Flags = 0;
- Info.Level = 0;
- Info.WalkState = WalkState;
- AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmXrefDescendingOp,
- AcpiDmCommonAscendingOp, &Info);
- ACPI_FREE (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmConvertResourceIndexes
- *
- * PARAMETERS: ParseTreeRoot - Root of the parse tree
- * NamespaceRoot - Root of the internal namespace
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert fixed-offset references to resource descriptors to
- * symbolic references. Should only be called after namespace has
- * been cross referenced.
- *
- ******************************************************************************/
-
-void
-AcpiDmConvertResourceIndexes (
- ACPI_PARSE_OBJECT *ParseTreeRoot,
- ACPI_NAMESPACE_NODE *NamespaceRoot)
-{
- ACPI_STATUS Status;
- ACPI_OP_WALK_INFO Info;
- ACPI_WALK_STATE *WalkState;
-
-
- if (!ParseTreeRoot)
- {
- return;
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0, ParseTreeRoot, NULL, NULL);
- if (!WalkState)
- {
- return;
- }
-
- Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Info.Flags = 0;
- Info.Level = 0;
- Info.WalkState = WalkState;
- AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmResourceDescendingOp,
- AcpiDmCommonAscendingOp, &Info);
- ACPI_FREE (WalkState);
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpDescending
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Format and print contents of one parse Op.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmDumpDescending (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- char *Path;
-
-
- if (!Op)
- {
- return (AE_OK);
- }
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- Info->Count++;
-
- /* Most of the information (count, level, name) here */
-
- AcpiOsPrintf ("% 5d [%2.2d] ", Info->Count, Level);
- AcpiDmIndent (Level);
- AcpiOsPrintf ("%-28s", AcpiPsGetOpcodeName (Op->Common.AmlOpcode));
-
- /* Extra info is helpful */
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_BYTE_OP:
- case AML_WORD_OP:
- case AML_DWORD_OP:
- AcpiOsPrintf ("%X", (UINT32) Op->Common.Value.Integer);
- break;
-
- case AML_INT_NAMEPATH_OP:
- if (Op->Common.Value.String)
- {
- AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String,
- NULL, &Path);
- AcpiOsPrintf ("%s %p", Path, Op->Common.Node);
- ACPI_FREE (Path);
- }
- else
- {
- AcpiOsPrintf ("[NULL]");
- }
- break;
-
- case AML_NAME_OP:
- case AML_METHOD_OP:
- case AML_DEVICE_OP:
- case AML_INT_NAMEDFIELD_OP:
- AcpiOsPrintf ("%4.4s", &Op->Named.Name);
- break;
- }
-
- AcpiOsPrintf ("\n");
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFindOrphanDescending
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Check namepath Ops for orphaned method invocations
- *
- * Note: Experimental.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmFindOrphanDescending (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_PARSE_OBJECT *ChildOp;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_PARSE_OBJECT *ParentOp;
- UINT32 ArgCount;
-
-
- if (!Op)
- {
- return (AE_OK);
- }
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- switch (Op->Common.AmlOpcode)
- {
-#ifdef ACPI_UNDER_DEVELOPMENT
- case AML_ADD_OP:
- ChildOp = Op->Common.Value.Arg;
- if ((ChildOp->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
- !ChildOp->Common.Node)
- {
- AcpiNsExternalizeName (ACPI_UINT32_MAX, ChildOp->Common.Value.String,
- NULL, &Path);
- AcpiOsPrintf ("/* %-16s A-NAMEPATH: %s */\n", Op->Common.AmlOpName, Path);
- ACPI_FREE (Path);
-
- NextOp = Op->Common.Next;
- if (!NextOp)
- {
- /* This NamePath has no args, assume it is an integer */
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- return (AE_OK);
- }
-
- ArgCount = AcpiDmInspectPossibleArgs (3, 1, NextOp);
- AcpiOsPrintf ("/* A-CHILDREN: %d Actual %d */\n", ArgCount, AcpiDmCountChildren (Op));
-
- if (ArgCount < 1)
- {
- /* One Arg means this is just a Store(Name,Target) */
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- return (AE_OK);
- }
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_METHOD, ArgCount);
- }
- break;
-#endif
-
- case AML_STORE_OP:
-
- ChildOp = Op->Common.Value.Arg;
- if ((ChildOp->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
- !ChildOp->Common.Node)
- {
- NextOp = Op->Common.Next;
- if (!NextOp)
- {
- /* This NamePath has no args, assume it is an integer */
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- return (AE_OK);
- }
-
- ArgCount = AcpiDmInspectPossibleArgs (2, 1, NextOp);
- if (ArgCount <= 1)
- {
- /* One Arg means this is just a Store(Name,Target) */
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- return (AE_OK);
- }
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_METHOD, ArgCount);
- }
- break;
-
- case AML_INT_NAMEPATH_OP:
-
- /* Must examine parent to see if this namepath is an argument */
-
- ParentOp = Op->Common.Parent;
- OpInfo = AcpiPsGetOpcodeInfo (ParentOp->Common.AmlOpcode);
-
- if ((OpInfo->Class != AML_CLASS_EXECUTE) &&
- (OpInfo->Class != AML_CLASS_CREATE) &&
- (ParentOp->Common.AmlOpcode != AML_INT_METHODCALL_OP) &&
- !Op->Common.Node)
- {
- ArgCount = AcpiDmInspectPossibleArgs (0, 0, Op->Common.Next);
-
- /*
- * Check if namepath is a predicate for if/while or lone parameter to
- * a return.
- */
- if (ArgCount == 0)
- {
- if (((ParentOp->Common.AmlOpcode == AML_IF_OP) ||
- (ParentOp->Common.AmlOpcode == AML_WHILE_OP) ||
- (ParentOp->Common.AmlOpcode == AML_RETURN_OP)) &&
-
- /* And namepath is the first argument */
- (ParentOp->Common.Value.Arg == Op))
- {
- AcpiDmAddToExternalList (Op->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- break;
- }
- }
-
- /*
- * This is a standalone namestring (not a parameter to another
- * operator) - it *must* be a method invocation, nothing else is
- * grammatically possible.
- */
- AcpiDmAddToExternalList (Op->Common.Value.String, ACPI_TYPE_METHOD, ArgCount);
-
- }
- break;
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmLoadDescendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending handler for namespace control method object load
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmLoadDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_WALK_STATE *WalkState;
- ACPI_OBJECT_TYPE ObjectType;
- ACPI_STATUS Status;
- char *Path = NULL;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_NAMESPACE_NODE *Node;
-
-
- WalkState = Info->WalkState;
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- ObjectType = OpInfo->ObjectType;
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
-
- /* Only interested in operators that create new names */
-
- if (!(OpInfo->Flags & AML_NAMED) &&
- !(OpInfo->Flags & AML_CREATE))
- {
- goto Exit;
- }
-
- /* Get the NamePath from the appropriate place */
-
- if (OpInfo->Flags & AML_NAMED)
- {
- /* For all named operators, get the new name */
-
- Path = (char *) Op->Named.Path;
- }
- else if (OpInfo->Flags & AML_CREATE)
- {
- /* New name is the last child */
-
- NextOp = Op->Common.Value.Arg;
-
- while (NextOp->Common.Next)
- {
- NextOp = NextOp->Common.Next;
- }
- Path = NextOp->Common.Value.String;
- }
-
- if (!Path)
- {
- goto Exit;
- }
-
- /* Insert the name into the namespace */
-
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
- ACPI_IMODE_LOAD_PASS2, ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &Node);
-
- Op->Common.Node = Node;
-
-
-Exit:
-
- if (AcpiNsOpensScope (ObjectType))
- {
- if (Op->Common.Node)
- {
- Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmXrefDescendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending handler for namespace cross reference
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmXrefDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_WALK_STATE *WalkState;
- ACPI_OBJECT_TYPE ObjectType;
- ACPI_STATUS Status;
- char *Path = NULL;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_NAMESPACE_NODE *Node;
-
-
- WalkState = Info->WalkState;
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- ObjectType = OpInfo->ObjectType;
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
-
- if ((!(OpInfo->Flags & AML_NAMED)) &&
- (!(OpInfo->Flags & AML_CREATE)) &&
- (Op->Common.AmlOpcode != AML_INT_NAMEPATH_OP))
- {
- goto Exit;
- }
-
- /* Get the NamePath from the appropriate place */
-
- if (OpInfo->Flags & AML_NAMED)
- {
- if ((Op->Common.AmlOpcode == AML_ALIAS_OP) ||
- (Op->Common.AmlOpcode == AML_SCOPE_OP))
- {
- /*
- * Only these two operators refer to an existing name,
- * first argument
- */
- Path = (char *) Op->Named.Path;
- }
- }
- else if (OpInfo->Flags & AML_CREATE)
- {
- /* Referenced Buffer Name is the first child */
-
- NextOp = Op->Common.Value.Arg;
- if (NextOp->Common.AmlOpcode == AML_INT_NAMEPATH_OP)
- {
- Path = NextOp->Common.Value.String;
- }
- }
- else
- {
- Path = Op->Common.Value.String;
- }
-
- if (!Path)
- {
- goto Exit;
- }
-
- /*
- * Lookup the name in the namespace. Name must exist at this point, or it
- * is an invalid reference.
- *
- * The namespace is also used as a lookup table for references to resource
- * descriptors and the fields within them.
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY,
- ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_NOT_FOUND)
- {
- AcpiDmAddToExternalList (Path, (UINT8) ObjectType, 0);
-
- /*
- * We could install this into the namespace, but we catch duplicate
- * externals when they are added to the list.
- */
-#if 0
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY,
- ACPI_IMODE_LOAD_PASS1, ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &Node);
-#endif
- }
- }
- else
- {
- Op->Common.Node = Node;
- }
-
-
-Exit:
- /* Open new scope if necessary */
-
- if (AcpiNsOpensScope (ObjectType))
- {
- if (Op->Common.Node)
- {
- Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmResourceDescendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: None
- *
- * DESCRIPTION: Process one parse op during symbolic resource index conversion.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmResourceDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_WALK_STATE *WalkState;
- ACPI_OBJECT_TYPE ObjectType;
- ACPI_STATUS Status;
-
-
- WalkState = Info->WalkState;
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- /* Open new scope if necessary */
-
- ObjectType = OpInfo->ObjectType;
- if (AcpiNsOpensScope (ObjectType))
- {
- if (Op->Common.Node)
- {
-
- Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- }
-
- /*
- * Check if this operator contains a reference to a resource descriptor.
- * If so, convert the reference into a symbolic reference.
- */
- AcpiDmCheckResourceReference (Op, WalkState);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCommonAscendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: None
- *
- * DESCRIPTION: Ascending handler for combined parse/namespace walks. Closes
- * scope if necessary.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmCommonAscendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_OBJECT_TYPE ObjectType;
-
-
- /* Close scope if necessary */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- ObjectType = OpInfo->ObjectType;
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
-
- if (AcpiNsOpensScope (ObjectType))
- {
- (void) AcpiDsScopeStackPop (Info->WalkState);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmInspectPossibleArgs
- *
- * PARAMETERS: CurrentOpArgCount - Which arg of the current op was the
- * possible method invocation found
- * TargetCount - Number of targets (0,1,2) for this op
- * Op - Parse op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Examine following args and next ops for possible arguments
- * for an unrecognized method invocation.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDmInspectPossibleArgs (
- UINT32 CurrentOpArgCount,
- UINT32 TargetCount,
- ACPI_PARSE_OBJECT *Op)
-{
- const ACPI_OPCODE_INFO *OpInfo;
- UINT32 i;
- UINT32 Last = 0;
- UINT32 Lookahead;
-
-
- Lookahead = (ACPI_METHOD_NUM_ARGS + TargetCount) - CurrentOpArgCount;
-
- /* Lookahead for the maximum number of possible arguments */
-
- for (i = 0; i < Lookahead; i++)
- {
- if (!Op)
- {
- break;
- }
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- /*
- * Any one of these operators is "very probably" not a method arg
- */
- if ((Op->Common.AmlOpcode == AML_STORE_OP) ||
- (Op->Common.AmlOpcode == AML_NOTIFY_OP))
- {
- break;
- }
-
- if ((OpInfo->Class != AML_CLASS_EXECUTE) &&
- (OpInfo->Class != AML_CLASS_CONTROL))
- {
- Last = i+1;
- }
-
- Op = Op->Common.Next;
- }
-
- return (Last);
-}
-
-
diff --git a/sys/contrib/dev/acpica/common/dmrestag.c b/sys/contrib/dev/acpica/common/dmrestag.c
deleted file mode 100644
index ed8b36b..0000000
--- a/sys/contrib/dev/acpica/common/dmrestag.c
+++ /dev/null
@@ -1,990 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dmrestag - Add tags to resource descriptors (Application-level)
- * $Revision: 1.11 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-/* This module used for application-level code only */
-
-#define _COMPONENT ACPI_CA_DISASSEMBLER
- ACPI_MODULE_NAME ("dmrestag")
-
-/* Local prototypes */
-
-static void
-AcpiDmUpdateResourceName (
- ACPI_NAMESPACE_NODE *ResourceNode);
-
-static char *
-AcpiDmSearchTagList (
- UINT32 BitIndex,
- ACPI_RESOURCE_TAG *TagList);
-
-static char *
-AcpiDmGetResourceTag (
- UINT32 BitIndex,
- AML_RESOURCE *Resource,
- UINT8 ResourceIndex);
-
-static char *
-AcpiGetTagPathname (
- ACPI_NAMESPACE_NODE *BufferNode,
- ACPI_NAMESPACE_NODE *ResourceNode,
- UINT32 BitIndex);
-
-static ACPI_NAMESPACE_NODE *
-AcpiDmGetResourceNode (
- ACPI_NAMESPACE_NODE *BufferNode,
- UINT32 BitIndex);
-
-static ACPI_STATUS
-AcpiDmAddResourceToNamespace (
- UINT8 *Aml,
- UINT32 Length,
- UINT32 Offset,
- UINT8 ResourceIndex,
- void *Context);
-
-static void
-AcpiDmAddResourcesToNamespace (
- ACPI_NAMESPACE_NODE *BufferNode,
- ACPI_PARSE_OBJECT *Op);
-
-
-/******************************************************************************
- *
- * Resource Tag tables
- *
- * These are the predefined tags that refer to elements of a resource
- * descriptor. Each name and offset is defined in the ACPI specification.
- *
- * Each table entry contains the bit offset of the field and the associated
- * name.
- *
- ******************************************************************************/
-
-static ACPI_RESOURCE_TAG AcpiDmIrqTags[] =
-{
- {( 1 * 8), ACPI_RESTAG_INTERRUPT},
- {( 3 * 8) + 0, ACPI_RESTAG_INTERRUPTTYPE},
- {( 3 * 8) + 3, ACPI_RESTAG_INTERRUPTLEVEL},
- {( 3 * 8) + 4, ACPI_RESTAG_INTERRUPTSHARE},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmDmaTags[] =
-{
- {( 1 * 8), ACPI_RESTAG_DMA},
- {( 2 * 8) + 0, ACPI_RESTAG_XFERTYPE},
- {( 2 * 8) + 2, ACPI_RESTAG_BUSMASTER},
- {( 2 * 8) + 5, ACPI_RESTAG_DMATYPE},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmIoTags[] =
-{
- {( 1 * 8) + 0, ACPI_RESTAG_DECODE},
- {( 2 * 8), ACPI_RESTAG_MINADDR},
- {( 4 * 8), ACPI_RESTAG_MAXADDR},
- {( 6 * 8), ACPI_RESTAG_ALIGNMENT},
- {( 7 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmFixedIoTags[] =
-{
- {( 1 * 8), ACPI_RESTAG_BASEADDRESS},
- {( 3 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmMemory24Tags[] =
-{
- {( 3 * 8) + 0, ACPI_RESTAG_READWRITETYPE},
- {( 4 * 8), ACPI_RESTAG_MINADDR},
- {( 6 * 8), ACPI_RESTAG_MAXADDR},
- {( 8 * 8), ACPI_RESTAG_ALIGNMENT},
- {(10 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmRegisterTags[] =
-{
- {( 3 * 8), ACPI_RESTAG_ADDRESSSPACE},
- {( 4 * 8), ACPI_RESTAG_REGISTERBITWIDTH},
- {( 5 * 8), ACPI_RESTAG_REGISTERBITOFFSET},
- {( 6 * 8), ACPI_RESTAG_ACCESSSIZE},
- {( 7 * 8), ACPI_RESTAG_ADDRESS},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmMemory32Tags[] =
-{
- {( 3 * 8) + 0, ACPI_RESTAG_READWRITETYPE},
- {( 4 * 8), ACPI_RESTAG_MINADDR},
- {( 8 * 8), ACPI_RESTAG_MAXADDR},
- {(12 * 8), ACPI_RESTAG_ALIGNMENT},
- {(16 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmFixedMemory32Tags[] =
-{
- {( 3 * 8) + 0, ACPI_RESTAG_READWRITETYPE},
- {( 4 * 8), ACPI_RESTAG_BASEADDRESS},
- {( 8 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmInterruptTags[] =
-{
- {( 3 * 8) + 1, ACPI_RESTAG_INTERRUPTTYPE},
- {( 3 * 8) + 2, ACPI_RESTAG_INTERRUPTLEVEL},
- {( 3 * 8) + 3, ACPI_RESTAG_INTERRUPTSHARE},
- {( 5 * 8), ACPI_RESTAG_INTERRUPT},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmAddress16Tags[] =
-{
- {( 4 * 8) + 1, ACPI_RESTAG_DECODE},
- {( 4 * 8) + 2, ACPI_RESTAG_MINTYPE},
- {( 4 * 8) + 3, ACPI_RESTAG_MAXTYPE},
- {( 6 * 8), ACPI_RESTAG_GRANULARITY},
- {( 8 * 8), ACPI_RESTAG_MINADDR},
- {(10 * 8), ACPI_RESTAG_MAXADDR},
- {(12 * 8), ACPI_RESTAG_TRANSLATION},
- {(14 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmAddress32Tags[] =
-{
- {( 4 * 8) + 1, ACPI_RESTAG_DECODE},
- {( 4 * 8) + 2, ACPI_RESTAG_MINTYPE},
- {( 4 * 8) + 3, ACPI_RESTAG_MAXTYPE},
- {( 6 * 8), ACPI_RESTAG_GRANULARITY},
- {(10 * 8), ACPI_RESTAG_MINADDR},
- {(14 * 8), ACPI_RESTAG_MAXADDR},
- {(18 * 8), ACPI_RESTAG_TRANSLATION},
- {(22 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmAddress64Tags[] =
-{
- {( 4 * 8) + 1, ACPI_RESTAG_DECODE},
- {( 4 * 8) + 2, ACPI_RESTAG_MINTYPE},
- {( 4 * 8) + 3, ACPI_RESTAG_MAXTYPE},
- {( 6 * 8), ACPI_RESTAG_GRANULARITY},
- {(14 * 8), ACPI_RESTAG_MINADDR},
- {(22 * 8), ACPI_RESTAG_MAXADDR},
- {(30 * 8), ACPI_RESTAG_TRANSLATION},
- {(38 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmExtendedAddressTags[] =
-{
- {( 4 * 8) + 1, ACPI_RESTAG_DECODE},
- {( 4 * 8) + 2, ACPI_RESTAG_MINTYPE},
- {( 4 * 8) + 3, ACPI_RESTAG_MAXTYPE},
- {( 8 * 8), ACPI_RESTAG_GRANULARITY},
- {(16 * 8), ACPI_RESTAG_MINADDR},
- {(24 * 8), ACPI_RESTAG_MAXADDR},
- {(32 * 8), ACPI_RESTAG_TRANSLATION},
- {(40 * 8), ACPI_RESTAG_LENGTH},
- {(48 * 8), ACPI_RESTAG_TYPESPECIFICATTRIBUTES},
- {0, NULL}
-};
-
-/* Special-case tables for the type-specific flags */
-
-static ACPI_RESOURCE_TAG AcpiDmMemoryFlagTags[] =
-{
- {( 5 * 8) + 0, ACPI_RESTAG_READWRITETYPE},
- {( 5 * 8) + 1, ACPI_RESTAG_MEMTYPE},
- {( 5 * 8) + 3, ACPI_RESTAG_MEMATTRIBUTES},
- {( 5 * 8) + 5, ACPI_RESTAG_TYPE},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmIoFlagTags[] =
-{
- {( 5 * 8) + 0, ACPI_RESTAG_RANGETYPE},
- {( 5 * 8) + 4, ACPI_RESTAG_TYPE},
- {( 5 * 8) + 5, ACPI_RESTAG_TRANSTYPE},
- {0, NULL}
-};
-
-
-/* Dispatch table used to obtain the correct tag table for a descriptor */
-
-static ACPI_RESOURCE_TAG *AcpiGbl_ResourceTags [] =
-{
- /* Small descriptors */
-
- NULL, /* 0x00, Reserved */
- NULL, /* 0x01, Reserved */
- NULL, /* 0x02, Reserved */
- NULL, /* 0x03, Reserved */
- AcpiDmIrqTags, /* 0x04, ACPI_RESOURCE_NAME_IRQ_FORMAT */
- AcpiDmDmaTags, /* 0x05, ACPI_RESOURCE_NAME_DMA_FORMAT */
- NULL, /* 0x06, ACPI_RESOURCE_NAME_START_DEPENDENT */
- NULL, /* 0x07, ACPI_RESOURCE_NAME_END_DEPENDENT */
- AcpiDmIoTags, /* 0x08, ACPI_RESOURCE_NAME_IO_PORT */
- AcpiDmFixedIoTags, /* 0x09, ACPI_RESOURCE_NAME_FIXED_IO_PORT */
- NULL, /* 0x0A, Reserved */
- NULL, /* 0x0B, Reserved */
- NULL, /* 0x0C, Reserved */
- NULL, /* 0x0D, Reserved */
- NULL, /* 0x0E, ACPI_RESOURCE_NAME_SMALL_VENDOR */
- NULL, /* 0x0F, ACPI_RESOURCE_NAME_END_TAG (not used) */
-
- /* Large descriptors */
-
- NULL, /* 0x00, Reserved */
- AcpiDmMemory24Tags, /* 0x01, ACPI_RESOURCE_NAME_MEMORY_24 */
- AcpiDmRegisterTags, /* 0x02, ACPI_RESOURCE_NAME_GENERIC_REGISTER */
- NULL, /* 0x03, Reserved */
- NULL, /* 0x04, ACPI_RESOURCE_NAME_LARGE_VENDOR */
- AcpiDmMemory32Tags, /* 0x05, ACPI_RESOURCE_NAME_MEMORY_32 */
- AcpiDmFixedMemory32Tags, /* 0x06, ACPI_RESOURCE_NAME_FIXED_MEMORY_32 */
- AcpiDmAddress32Tags, /* 0x07, ACPI_RESOURCE_NAME_DWORD_ADDRESS_SPACE */
- AcpiDmAddress16Tags, /* 0x08, ACPI_RESOURCE_NAME_WORD_ADDRESS_SPACE */
- AcpiDmInterruptTags, /* 0x09, ACPI_RESOURCE_NAME_EXTENDED_XRUPT */
- AcpiDmAddress64Tags, /* 0x0A, ACPI_RESOURCE_NAME_QWORD_ADDRESS_SPACE */
- AcpiDmExtendedAddressTags /* 0x0B, ACPI_RESOURCE_NAME_EXTENDED_ADDRESS_SPACE */
-};
-
-
-/*
- * Globals used to generate unique resource descriptor names. We use names that
- * start with underscore and a prefix letter that is not used by other ACPI
- * reserved names. To this, we append hex 0x00 through 0xFF. These 5 prefixes
- * allow for 5*256 = 1280 unique names, probably sufficient for any single ASL
- * file. If this becomes too small, we can use alpha+numerals for a total
- * of 5*36*36 = 6480.
- */
-#define ACPI_NUM_RES_PREFIX 5
-
-static UINT32 AcpiGbl_NextResourceId = 0;
-static UINT8 AcpiGbl_NextPrefix = 0;
-static UINT8 AcpiGbl_Prefix[ACPI_NUM_RES_PREFIX] =
- {'Y','Z','J','K','X'};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCheckResourceReference
- *
- * PARAMETERS: Op - Parse Op for the AML opcode
- * WalkState - Current walk state (with valid scope)
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert a reference to a resource descriptor to a symbolic
- * reference if possible
- *
- * NOTE: Bit index is used to transparently handle both resource bit
- * fields and byte fields.
- *
- ******************************************************************************/
-
-void
-AcpiDmCheckResourceReference (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *BufferNameOp;
- ACPI_PARSE_OBJECT *IndexOp;
- ACPI_NAMESPACE_NODE *BufferNode;
- ACPI_NAMESPACE_NODE *ResourceNode;
- const ACPI_OPCODE_INFO *OpInfo;
- char *Pathname;
- UINT32 BitIndex;
-
-
- /* We are only interested in the CreateXxxxField opcodes */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (OpInfo->Type != AML_TYPE_CREATE_FIELD)
- {
- return;
- }
-
- /* Get the buffer term operand */
-
- BufferNameOp = AcpiPsGetDepthNext (NULL, Op);
-
- /* Must be a named buffer, not an arg or local or method call */
-
- if (BufferNameOp->Common.AmlOpcode != AML_INT_NAMEPATH_OP)
- {
- return;
- }
-
- /* Get the Index term, must be an integer constant to convert */
-
- IndexOp = BufferNameOp->Common.Next;
- OpInfo = AcpiPsGetOpcodeInfo (IndexOp->Common.AmlOpcode);
- if (OpInfo->ObjectType != ACPI_TYPE_INTEGER)
- {
- return;
- }
-
- /* Get the bit offset of the descriptor within the buffer */
-
- if ((Op->Common.AmlOpcode == AML_CREATE_BIT_FIELD_OP) ||
- (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP))
- {
- /* Index operand is a bit offset */
-
- BitIndex = (UINT32) IndexOp->Common.Value.Integer;
- }
- else
- {
- /* Index operand is a byte offset, convert to bits */
-
- BitIndex = (UINT32) ACPI_MUL_8 (IndexOp->Common.Value.Integer);
- }
-
- /* Lookup the buffer in the namespace */
-
- Status = AcpiNsLookup (WalkState->ScopeInfo,
- BufferNameOp->Common.Value.String, ACPI_TYPE_BUFFER,
- ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState,
- &BufferNode);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Validate object type, we must have a buffer */
-
- if (BufferNode->Type != ACPI_TYPE_BUFFER)
- {
- return;
- }
-
- /* Find the resource descriptor node corresponding to the index */
-
- ResourceNode = AcpiDmGetResourceNode (BufferNode, BitIndex);
- if (!ResourceNode)
- {
- return;
- }
-
- /* Translate the Index to a resource tag pathname */
-
- Pathname = AcpiGetTagPathname (BufferNode, ResourceNode, BitIndex);
- if (Pathname)
- {
- /* Complete the conversion of the Index to a symbol */
-
- IndexOp->Common.AmlOpcode = AML_INT_NAMEPATH_OP;
- IndexOp->Common.Value.String = Pathname;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmGetResourceNode
- *
- * PARAMETERS: BufferNode - Node for the parent buffer
- * BitIndex - Index into the resource descriptor
- *
- * RETURN: Namespace node for the resource descriptor. NULL if not found
- *
- * DESCRIPTION: Find a resource descriptor that corresponds to the bit index
- *
- ******************************************************************************/
-
-static ACPI_NAMESPACE_NODE *
-AcpiDmGetResourceNode (
- ACPI_NAMESPACE_NODE *BufferNode,
- UINT32 BitIndex)
-{
- ACPI_NAMESPACE_NODE *Node;
- UINT32 ByteIndex = ACPI_DIV_8 (BitIndex);
-
-
- /*
- * Child list contains an entry for each resource descriptor. Find
- * the descriptor that corresponds to the Index.
- *
- * If there are no children, this is not a resource template
- */
- Node = BufferNode->Child;
- while (Node)
- {
- /*
- * Check if the Index falls within this resource.
- *
- * Value contains the resource offset, Object contains the resource
- * length (both in bytes)
- */
- if ((ByteIndex >= Node->Value) &&
- (ByteIndex < (Node->Value + Node->Length)))
- {
- return (Node);
- }
-
- /* List is circular, this flag marks the end */
-
- if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- return (NULL);
- }
-
- Node = Node->Peer;
- }
-
- return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetTagPathname
- *
- * PARAMETERS: BufferNode - Node for the parent buffer
- * ResourceNode - Node for a resource descriptor
- * BitIndex - Index into the resource descriptor
- *
- * RETURN: Full pathname for a resource tag. NULL if no match.
- * Path is returned in AML (packed) format.
- *
- * DESCRIPTION: Convert a BitIndex into a symbolic resource tag (full pathname)
- *
- ******************************************************************************/
-
-static char *
-AcpiGetTagPathname (
- ACPI_NAMESPACE_NODE *BufferNode,
- ACPI_NAMESPACE_NODE *ResourceNode,
- UINT32 BitIndex)
-{
- ACPI_STATUS Status;
- UINT32 ResourceBitIndex;
- UINT8 ResourceTableIndex;
- ACPI_SIZE RequiredSize;
- char *Pathname;
- AML_RESOURCE *Aml;
- ACPI_PARSE_OBJECT *Op;
- char *InternalPath;
- char *Tag;
-
-
- /* Get the Op that contains the actual buffer data */
-
- Op = BufferNode->Op->Common.Value.Arg;
- Op = Op->Common.Next;
- if (!Op)
- {
- return (NULL);
- }
-
- /* Get the individual resource descriptor and validate it */
-
- Aml = ACPI_CAST_PTR (AML_RESOURCE,
- &Op->Named.Data[ResourceNode->Value]);
-
- Status = AcpiUtValidateResource (Aml, &ResourceTableIndex);
- if (ACPI_FAILURE (Status))
- {
- return (NULL);
- }
-
- /* Get offset into this descriptor (from offset into entire buffer) */
-
- ResourceBitIndex = BitIndex - ACPI_MUL_8 (ResourceNode->Value);
-
- /* Get the tag associated with this resource descriptor and offset */
-
- Tag = AcpiDmGetResourceTag (ResourceBitIndex, Aml, ResourceTableIndex);
- if (!Tag)
- {
- return (NULL);
- }
-
- /*
- * Now that we know that we have a reference that can be converted to a
- * symbol, change the name of the resource to a unique name.
- */
- AcpiDmUpdateResourceName (ResourceNode);
-
- /* Get the full pathname to the parent buffer */
-
- RequiredSize = AcpiNsGetPathnameLength (BufferNode);
- Pathname = ACPI_ALLOCATE_ZEROED (RequiredSize + ACPI_PATH_SEGMENT_LENGTH);
- if (!Pathname)
- {
- return (NULL);
- }
-
- AcpiNsBuildExternalPath (BufferNode, RequiredSize, Pathname);
-
- /*
- * Create the full path to the resource and tag by: remove the buffer name,
- * append the resource descriptor name, append a dot, append the tag name.
- *
- * TBD: Always using the full path is a bit brute force, the path can be
- * often be optimized with carats (if the original buffer namepath is a
- * single nameseg). This doesn't really matter, because these paths do not
- * end up in the final compiled AML, it's just an appearance issue for the
- * disassembled code.
- */
- Pathname[ACPI_STRLEN (Pathname) - ACPI_NAME_SIZE] = 0;
- ACPI_STRNCAT (Pathname, ResourceNode->Name.Ascii, ACPI_NAME_SIZE);
- ACPI_STRCAT (Pathname, ".");
- ACPI_STRNCAT (Pathname, Tag, ACPI_NAME_SIZE);
-
- /* Internalize the namepath to AML format */
-
- AcpiNsInternalizeName (Pathname, &InternalPath);
- ACPI_FREE (Pathname);
- return (InternalPath);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmUpdateResourceName
- *
- * PARAMETERS: ResourceNode - Node for a resource descriptor
- *
- * RETURN: Stores new name in the ResourceNode
- *
- * DESCRIPTION: Create a new, unique name for a resource descriptor. Used by
- * both the disassembly of the descriptor itself and any symbolic
- * references to the descriptor. Ignored if a unique name has
- * already been assigned to the resource.
- *
- * NOTE: Single threaded, suitable for applications only!
- *
- ******************************************************************************/
-
-static void
-AcpiDmUpdateResourceName (
- ACPI_NAMESPACE_NODE *ResourceNode)
-{
- char Name[ACPI_NAME_SIZE];
-
-
- /* Ignore if a unique name has already been assigned */
-
- if (ResourceNode->Name.Integer != ACPI_DEFAULT_RESNAME)
- {
- return;
- }
-
- /* Generate a new ACPI name for the descriptor */
-
- Name[0] = '_';
- Name[1] = AcpiGbl_Prefix[AcpiGbl_NextPrefix];
- Name[2] = AcpiUtHexToAsciiChar (AcpiGbl_NextResourceId, 4);
- Name[3] = AcpiUtHexToAsciiChar (AcpiGbl_NextResourceId, 0);
-
- /* Update globals for next name */
-
- AcpiGbl_NextResourceId++;
- if (AcpiGbl_NextResourceId >= 256)
- {
- AcpiGbl_NextResourceId = 0;
- AcpiGbl_NextPrefix++;
- if (AcpiGbl_NextPrefix > ACPI_NUM_RES_PREFIX)
- {
- AcpiGbl_NextPrefix = 0;
- }
- }
-
- /* Change the resource descriptor name */
-
- ResourceNode->Name.Integer = *(UINT32 *) Name;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmGetResourceTag
- *
- * PARAMETERS: BitIndex - Index into the resource descriptor
- * Resource - Pointer to the raw resource data
- * ResourceIndex - Index correspoinding to the resource type
- *
- * RETURN: Pointer to the resource tag (ACPI_NAME). NULL if no match.
- *
- * DESCRIPTION: Convert a BitIndex into a symbolic resource tag.
- *
- ******************************************************************************/
-
-static char *
-AcpiDmGetResourceTag (
- UINT32 BitIndex,
- AML_RESOURCE *Resource,
- UINT8 ResourceIndex)
-{
- ACPI_RESOURCE_TAG *TagList;
- char *Tag = NULL;
-
-
- /* Get the tag list for this resource descriptor type */
-
- TagList = AcpiGbl_ResourceTags[ResourceIndex];
- if (!TagList)
- {
- /* There are no tags for this resource type */
-
- return (NULL);
- }
-
- /*
- * Handle the type-specific flags field for the address descriptors.
- * Kindof brute force, but just blindly search for an index match.
- */
- switch (Resource->DescriptorType)
- {
- case ACPI_RESOURCE_NAME_ADDRESS16:
- case ACPI_RESOURCE_NAME_ADDRESS32:
- case ACPI_RESOURCE_NAME_ADDRESS64:
- case ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64:
-
- if (Resource->Address.ResourceType == ACPI_ADDRESS_TYPE_MEMORY_RANGE)
- {
- Tag = AcpiDmSearchTagList (BitIndex, AcpiDmMemoryFlagTags);
- }
- else if (Resource->Address.ResourceType == ACPI_ADDRESS_TYPE_IO_RANGE)
- {
- Tag = AcpiDmSearchTagList (BitIndex, AcpiDmIoFlagTags);
- }
-
- /* If we found a match, all done. Else, drop to normal search below */
-
- if (Tag)
- {
- return (Tag);
- }
- break;
-
- default:
- break;
- }
-
- /* Search the tag list for this descriptor type */
-
- Tag = AcpiDmSearchTagList (BitIndex, TagList);
- return (Tag);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmSearchTagList
- *
- * PARAMETERS: BitIndex - Index into the resource descriptor
- * TagList - List to search
- *
- * RETURN: Pointer to a tag (ACPI_NAME). NULL if no match found.
- *
- * DESCRIPTION: Search a tag list for a match to the input BitIndex. Matches
- * a fixed offset to a symbolic resource tag name.
- *
- ******************************************************************************/
-
-static char *
-AcpiDmSearchTagList (
- UINT32 BitIndex,
- ACPI_RESOURCE_TAG *TagList)
-{
-
- /*
- * Walk the null-terminated tag list to find a matching bit offset.
- * We are looking for an exact match.
- */
- for ( ; TagList->Tag; TagList++)
- {
- if (BitIndex == TagList->BitIndex)
- {
- return (TagList->Tag);
- }
- }
-
- /* A matching offset was not found */
-
- return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFindResources
- *
- * PARAMETERS: Root - Root of the parse tree
- *
- * RETURN: None
- *
- * DESCRIPTION: Add all ResourceTemplate declarations to the namespace. Each
- * resource descriptor in each template is given a node -- used
- * for later conversion of resource references to symbolic refs.
- *
- ******************************************************************************/
-
-void
-AcpiDmFindResources (
- ACPI_PARSE_OBJECT *Root)
-{
- ACPI_PARSE_OBJECT *Op = Root;
- ACPI_PARSE_OBJECT *Parent;
-
-
- /* Walk the entire parse tree */
-
- while (Op)
- {
- /* We are interested in Buffer() declarations */
-
- if (Op->Common.AmlOpcode == AML_BUFFER_OP)
- {
- /* And only declarations of the form Name (XXXX, Buffer()... ) */
-
- Parent = Op->Common.Parent;
- if (Parent->Common.AmlOpcode == AML_NAME_OP)
- {
- /*
- * If the buffer is a resource template, add the individual
- * resource descriptors to the namespace, as children of the
- * buffer node.
- */
- if (ACPI_SUCCESS (AcpiDmIsResourceTemplate (Op)))
- {
- Op->Common.DisasmOpcode = ACPI_DASM_RESOURCE;
- AcpiDmAddResourcesToNamespace (Parent->Common.Node, Op);
- }
- }
- }
-
- Op = AcpiPsGetDepthNext (Root, Op);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddResourcesToNamespace
- *
- * PARAMETERS: BufferNode - Node for the parent buffer
- * Op - Parse op for the buffer
- *
- * RETURN: None
- *
- * DESCRIPTION: Add an entire resource template to the namespace. Each
- * resource descriptor is added as a namespace node.
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddResourcesToNamespace (
- ACPI_NAMESPACE_NODE *BufferNode,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *NextOp;
-
-
- /* Get to the ByteData list */
-
- NextOp = Op->Common.Value.Arg;
- NextOp = NextOp->Common.Next;
- if (!NextOp)
- {
- return;
- }
-
- /* Set Node and Op to point to each other */
-
- BufferNode->Op = Op;
- Op->Common.Node = BufferNode;
-
- /*
- * Insert each resource into the namespace
- * NextOp contains the Aml pointer and the Aml length
- */
- AcpiUtWalkAmlResources ((UINT8 *) NextOp->Named.Data,
- (ACPI_SIZE) NextOp->Common.Value.Integer,
- AcpiDmAddResourceToNamespace, BufferNode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddResourceToNamespace
- *
- * PARAMETERS: ACPI_WALK_AML_CALLBACK
- * BufferNode - Node for the parent buffer
- *
- * RETURN: Status
- *
- * DESCRIPTION: Add one resource descriptor to the namespace as a child of the
- * parent buffer. The same name is used for each descriptor. This
- * is changed later to a unique name if the resource is actually
- * referenced by an AML operator.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmAddResourceToNamespace (
- UINT8 *Aml,
- UINT32 Length,
- UINT32 Offset,
- UINT8 ResourceIndex,
- void *Context)
-{
- ACPI_STATUS Status;
- ACPI_GENERIC_STATE ScopeInfo;
- ACPI_NAMESPACE_NODE *Node;
-
-
- /* TBD: Don't need to add descriptors that have no tags defined? */
-
- /* Add the resource to the namespace, as child of the buffer */
-
- ScopeInfo.Scope.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Context);
- Status = AcpiNsLookup (&ScopeInfo, "_TMP", ACPI_TYPE_LOCAL_RESOURCE,
- ACPI_IMODE_LOAD_PASS2,
- ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_PREFIX_IS_SCOPE,
- NULL, &Node);
- if (ACPI_FAILURE (Status))
- {
- return (AE_OK);
- }
-
- /* Set the name to the default, changed later if resource is referenced */
-
- Node->Name.Integer = ACPI_DEFAULT_RESNAME;
-
- /* Save the offset of the descriptor (within the original buffer) */
-
- Node->Value = Offset;
- Node->Length = Length;
- return (AE_OK);
-}
-
diff --git a/sys/contrib/dev/acpica/common/dmtable.c b/sys/contrib/dev/acpica/common/dmtable.c
deleted file mode 100644
index ce4b5f9..0000000
--- a/sys/contrib/dev/acpica/common/dmtable.c
+++ /dev/null
@@ -1,734 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dmtable - Support for ACPI tables that contain no AML code
- * $Revision: 1.12 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/actables.h>
-
-/* This module used for application-level code only */
-
-#define _COMPONENT ACPI_CA_DISASSEMBLER
- ACPI_MODULE_NAME ("dmtable")
-
-/* Local Prototypes */
-
-static ACPI_DMTABLE_DATA *
-AcpiDmGetTableData (
- char *Signature);
-
-static void
-AcpiDmCheckAscii (
- UINT8 *Target,
- UINT32 Count);
-
-
-/* These tables map a subtable type to a description string */
-
-static const char *AcpiDmDmarSubnames[] =
-{
- "Hardware Unit Definition",
- "Reserved Memory Region",
- "Unknown SubTable Type" /* Reserved */
-};
-
-static const char *AcpiDmMadtSubnames[] =
-{
- "Processor Local APIC", /* ACPI_MADT_TYPE_LOCAL_APIC */
- "I/O APIC", /* ACPI_MADT_TYPE_IO_APIC */
- "Interrupt Source Override", /* ACPI_MADT_TYPE_INTERRUPT_OVERRIDE */
- "NMI Source", /* ACPI_MADT_TYPE_NMI_SOURCE */
- "Local APIC NMI", /* ACPI_MADT_TYPE_LOCAL_APIC_NMI */
- "Local APIC Address Override", /* ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE */
- "I/O SAPIC", /* ACPI_MADT_TYPE_IO_SAPIC */
- "Local SAPIC", /* ACPI_MADT_TYPE_LOCAL_SAPIC */
- "Platform Interrupt Sources", /* ACPI_MADT_TYPE_INTERRUPT_SOURCE */
- "Unknown SubTable Type" /* Reserved */
-};
-
-static const char *AcpiDmSratSubnames[] =
-{
- "Processor Local APIC/SAPIC Affinity",
- "Memory Affinity",
- "Unknown SubTable Type" /* Reserved */
-};
-
-
-/*******************************************************************************
- *
- * ACPI Table Data, indexed by signature.
- *
- * 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_SIG_ASF, NULL, AcpiDmDumpAsf, "Alert Standard Format table"},
- {ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, "Simple Boot Flag 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_FADT, NULL, AcpiDmDumpFadt, "Fixed ACPI Description Table"},
- {ACPI_SIG_HPET, AcpiDmTableInfoHpet, NULL, "High Precision Event Timer table"},
- {ACPI_SIG_MADT, NULL, AcpiDmDumpMadt, "Multiple APIC Description Table"},
- {ACPI_SIG_MCFG, NULL, AcpiDmDumpMcfg, "Memory Mapped Configuration table"},
- {ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, "Root System Description Table"},
- {ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, "Smart Battery Specification 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_WDRT, AcpiDmTableInfoWdrt, NULL, "Watchdog Resource Table"},
- {ACPI_SIG_XSDT, NULL, AcpiDmDumpXsdt, "Extended System Description Table"},
- {NULL, NULL, NULL, NULL}
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbGenerateChecksum
- *
- * PARAMETERS: Table - Pointer to a valid ACPI table (with a
- * standard ACPI header)
- *
- * RETURN: 8 bit checksum of buffer
- *
- * DESCRIPTION: Computes an 8 bit checksum of the table.
- *
- ******************************************************************************/
-
-UINT8
-AcpiTbGenerateChecksum (
- ACPI_TABLE_HEADER *Table)
-{
- UINT8 Checksum;
-
-
- /* Sum the entire table as-is */
-
- Checksum = AcpiTbChecksum ((UINT8 *) Table, Table->Length);
-
- /* Subtract off the existing checksum value in the table */
-
- Checksum = (UINT8) (Checksum - Table->Checksum);
-
- /* Compute the final checksum */
-
- Checksum = (UINT8) (0 - Checksum);
- return (Checksum);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmGetTableData
- *
- * PARAMETERS: Signature - ACPI signature (4 chars) to match
- *
- * RETURN: Pointer to a valid ACPI_DMTABLE_DATA. Null if no match found.
- *
- * DESCRIPTION: Find a match in the global table of supported ACPI tables
- *
- ******************************************************************************/
-
-static ACPI_DMTABLE_DATA *
-AcpiDmGetTableData (
- char *Signature)
-{
- ACPI_DMTABLE_DATA *TableData;
-
-
- for (TableData = AcpiDmTableData; TableData->Signature; TableData++)
- {
- if (ACPI_COMPARE_NAME (Signature, TableData->Signature))
- {
- return (TableData);
- }
- }
-
- return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpDataTable
- *
- * PARAMETERS: Table - An ACPI table
- *
- * RETURN: None.
- *
- * DESCRIPTION: Format the contents of an ACPI data table (any table other
- * than an SSDT or DSDT that does not contain executable AML code)
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpDataTable (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_DMTABLE_DATA *TableData;
- UINT32 Length;
-
-
- /* Ignore tables that contain AML */
-
- if (AcpiUtIsAmlTable (Table))
- {
- return;
- }
-
- /*
- * Handle tables that don't use the common ACPI table header structure.
- * Currently, these are the FACS and RSDP.
- */
- if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_FACS))
- {
- Length = Table->Length;
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFacs);
- }
- else if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_RSDP))
- {
- Length = AcpiDmDumpRsdp (Table);
- }
- else
- {
- /*
- * All other tables must use the common ACPI table header, dump it now
- */
- Length = Table->Length;
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHeader);
- AcpiOsPrintf ("\n");
-
- /* Match signature and dispatch appropriately */
-
- TableData = AcpiDmGetTableData (Table->Signature);
- if (!TableData)
- {
- if (!ACPI_STRNCMP (Table->Signature, "OEM", 3))
- {
- AcpiOsPrintf ("\n**** OEM-defined ACPI table [%4.4s], unknown contents\n\n",
- Table->Signature);
- }
- else
- {
- AcpiOsPrintf ("\n**** Unknown ACPI table type [%4.4s]\n\n",
- Table->Signature);
- }
- }
- else if (TableData->TableHandler)
- {
- /* Complex table, has a handler */
-
- TableData->TableHandler (Table);
- }
- else if (TableData->TableInfo)
- {
- /* Simple table, just walk the info table */
-
- AcpiDmDumpTable (Length, 0, Table, 0, TableData->TableInfo);
- }
- }
-
- /* Always dump the raw table data */
-
- AcpiOsPrintf ("\nRaw Table Data\n\n");
- AcpiUtDumpBuffer2 (ACPI_CAST_PTR (UINT8, Table), Length, DB_BYTE_DISPLAY);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmLineHeader
- *
- * PARAMETERS: Offset - Current byte offset, from table start
- * ByteLength - Length of the field in bytes, 0 for flags
- * Name - Name of this field
- * Value - Optional value, displayed on left of ':'
- *
- * RETURN: None
- *
- * DESCRIPTION: Utility routines for formatting output lines. Displays the
- * current table offset in hex and decimal, the field length,
- * and the field name.
- *
- ******************************************************************************/
-
-void
-AcpiDmLineHeader (
- UINT32 Offset,
- UINT32 ByteLength,
- char *Name)
-{
-
- if (ByteLength)
- {
- AcpiOsPrintf ("[%3.3Xh %3.3d% 3d] %28s : ",
- Offset, Offset, ByteLength, Name);
- }
- else
- {
- AcpiOsPrintf ("%42s : ",
- Name);
- }
-}
-
-void
-AcpiDmLineHeader2 (
- UINT32 Offset,
- UINT32 ByteLength,
- char *Name,
- UINT32 Value)
-{
-
- if (ByteLength)
- {
- AcpiOsPrintf ("[%3.3Xh %3.3d% 3d] %24s % 3d : ",
- Offset, Offset, ByteLength, Name, Value);
- }
- else
- {
- AcpiOsPrintf ("[%3.3Xh %3.3d ] %24s % 3d : ",
- Offset, Offset, Name, Value);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpTable
- *
- * PARAMETERS: TableLength - Length of the entire ACPI table
- * TableOffset - Starting offset within the table for this
- * sub-descriptor (0 if main table)
- * Table - The ACPI table
- * SubtableLength - Lenghth of this sub-descriptor
- * Info - Info table for this ACPI table
- *
- * RETURN: None
- *
- * DESCRIPTION: Display ACPI table contents by walking the Info table.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpTable (
- UINT32 TableLength,
- UINT32 TableOffset,
- void *Table,
- UINT32 SubtableLength,
- ACPI_DMTABLE_INFO *Info)
-{
- UINT8 *Target;
- UINT32 CurrentOffset;
- UINT32 ByteLength;
- UINT8 Temp8;
- UINT16 Temp16;
- ACPI_DMTABLE_DATA *TableData;
-
-
- if (!Info)
- {
- AcpiOsPrintf ("Display not implemented\n");
- return;
- }
-
- /* Walk entire Info table; Null name terminates */
-
- for (; Info->Name; Info++)
- {
- /*
- * Target points to the field within the ACPI Table. CurrentOffset is
- * the offset of the field from the start of the main table.
- */
- Target = ACPI_ADD_PTR (UINT8, Table, Info->Offset);
- CurrentOffset = TableOffset + Info->Offset;
-
- /* Check for beyond EOT or beyond subtable end */
-
- if ((CurrentOffset >= TableLength) ||
- (SubtableLength && (Info->Offset >= SubtableLength)))
- {
- return;
- }
-
- /* Generate the byte length for this field */
-
- switch (Info->Opcode)
- {
- case ACPI_DMT_UINT8:
- case ACPI_DMT_CHKSUM:
- case ACPI_DMT_SPACEID:
- case ACPI_DMT_MADT:
- case ACPI_DMT_SRAT:
- ByteLength = 1;
- break;
- case ACPI_DMT_UINT16:
- case ACPI_DMT_DMAR:
- ByteLength = 2;
- break;
- case ACPI_DMT_UINT24:
- ByteLength = 3;
- break;
- case ACPI_DMT_UINT32:
- case ACPI_DMT_NAME4:
- case ACPI_DMT_SIG:
- ByteLength = 4;
- break;
- case ACPI_DMT_NAME6:
- ByteLength = 6;
- break;
- case ACPI_DMT_UINT56:
- ByteLength = 7;
- break;
- case ACPI_DMT_UINT64:
- case ACPI_DMT_NAME8:
- ByteLength = 8;
- break;
- case ACPI_DMT_STRING:
- ByteLength = ACPI_STRLEN (ACPI_CAST_PTR (char, Target)) + 1;
- break;
- case ACPI_DMT_GAS:
- AcpiOsPrintf ("\n");
- ByteLength = sizeof (ACPI_GENERIC_ADDRESS);
- break;
- default:
- ByteLength = 0;
- break;
- }
-
- /* Start a new line and decode the opcode */
-
- AcpiDmLineHeader (CurrentOffset, ByteLength, Info->Name);
-
- switch (Info->Opcode)
- {
- /* Single-bit Flag fields. Note: Opcode is the bit position */
-
- case ACPI_DMT_FLAG0:
- case ACPI_DMT_FLAG1:
- case ACPI_DMT_FLAG2:
- case ACPI_DMT_FLAG3:
- case ACPI_DMT_FLAG4:
- case ACPI_DMT_FLAG5:
- case ACPI_DMT_FLAG6:
- case ACPI_DMT_FLAG7:
-
- AcpiOsPrintf ("%1.1X\n", (*Target >> Info->Opcode) & 0x01);
- break;
-
- /* 2-bit Flag fields */
-
- case ACPI_DMT_FLAGS0:
-
- AcpiOsPrintf ("%1.1X\n", *Target & 0x03);
- break;
-
- case ACPI_DMT_FLAGS2:
-
- AcpiOsPrintf ("%1.1X\n", (*Target >> 2) & 0x03);
- break;
-
- /* Standard Data Types */
-
- case ACPI_DMT_UINT8:
-
- AcpiOsPrintf ("%2.2X\n", *Target);
- break;
-
- case ACPI_DMT_UINT16:
-
- AcpiOsPrintf ("%4.4X\n", ACPI_GET16 (Target));
- break;
-
- case ACPI_DMT_UINT24:
-
- AcpiOsPrintf ("%2.2X%2.2X%2.2X\n",
- *Target, *(Target + 1), *(Target + 2));
- break;
-
- case ACPI_DMT_UINT32:
-
- AcpiOsPrintf ("%8.8X\n", ACPI_GET32 (Target));
- break;
-
- case ACPI_DMT_UINT56:
-
- AcpiOsPrintf ("%6.6X%8.8X\n",
- ACPI_HIDWORD (ACPI_GET64 (Target)) & 0x00FFFFFF,
- ACPI_LODWORD (ACPI_GET64 (Target)));
- break;
-
- case ACPI_DMT_UINT64:
-
- AcpiOsPrintf ("%8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (ACPI_GET64 (Target)));
- break;
-
- case ACPI_DMT_STRING:
-
- AcpiOsPrintf ("%s\n", ACPI_CAST_PTR (char, Target));
- break;
-
- /* Fixed length ASCII name fields */
-
- case ACPI_DMT_SIG:
-
- AcpiDmCheckAscii (Target, 4);
- AcpiOsPrintf ("\"%4.4s\" ", Target);
- TableData = AcpiDmGetTableData (ACPI_CAST_PTR (char, Target));
- if (TableData)
- {
- AcpiOsPrintf ("/* %s */", TableData->Name);
- }
- AcpiOsPrintf ("\n");
- break;
-
- case ACPI_DMT_NAME4:
-
- AcpiDmCheckAscii (Target, 4);
- AcpiOsPrintf ("\"%4.4s\"\n", Target);
- break;
-
- case ACPI_DMT_NAME6:
-
- AcpiDmCheckAscii (Target, 6);
- AcpiOsPrintf ("\"%6.6s\"\n", Target);
- break;
-
- case ACPI_DMT_NAME8:
-
- AcpiDmCheckAscii (Target, 8);
- AcpiOsPrintf ("\"%8.8s\"\n", Target);
- break;
-
- /* Special Data Types */
-
- case ACPI_DMT_CHKSUM:
-
- /* Checksum, display and validate */
-
- AcpiOsPrintf ("%2.2X", *Target);
- Temp8 = AcpiTbGenerateChecksum (Table);
- if (Temp8 != ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum)
- {
- AcpiOsPrintf (
- " /* Incorrect checksum, should be %2.2X */", Temp8);
- }
- AcpiOsPrintf ("\n");
- break;
-
- case ACPI_DMT_SPACEID:
-
- /* Address Space ID */
-
- AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiUtGetRegionName (*Target));
- break;
-
- case ACPI_DMT_GAS:
-
- /* Generic Address Structure */
-
- AcpiOsPrintf ("<Generic Address Structure>\n");
- AcpiDmDumpTable (ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length,
- CurrentOffset, Target, 0, AcpiDmTableInfoGas);
- break;
-
- case ACPI_DMT_DMAR:
-
- /* DMAR subtable types */
-
- Temp16 = *Target;
- if (Temp16 > ACPI_DMAR_TYPE_RESERVED)
- {
- Temp16 = ACPI_DMAR_TYPE_RESERVED;
- }
-
- AcpiOsPrintf ("%4.4X <%s>\n", *Target, AcpiDmDmarSubnames[Temp16]);
- break;
-
- case ACPI_DMT_MADT:
-
- /* MADT subtable types */
-
- Temp8 = *Target;
- if (Temp8 > ACPI_MADT_TYPE_RESERVED)
- {
- Temp8 = ACPI_MADT_TYPE_RESERVED;
- }
-
- AcpiOsPrintf ("%2.2X <%s>\n", *Target, AcpiDmMadtSubnames[Temp8]);
- break;
-
- case ACPI_DMT_SRAT:
-
- /* SRAT subtable types */
-
- Temp8 = *Target;
- if (Temp8 > ACPI_SRAT_TYPE_RESERVED)
- {
- Temp8 = ACPI_SRAT_TYPE_RESERVED;
- }
-
- AcpiOsPrintf ("%2.2X <%s>\n", *Target, AcpiDmSratSubnames[Temp8]);
- break;
-
- case ACPI_DMT_EXIT:
- return;
-
- default:
- ACPI_ERROR ((AE_INFO,
- "**** Invalid table opcode [%X] ****\n", Info->Opcode));
- return;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCheckAscii
- *
- * PARAMETERS: Name - Ascii string
- * Count - Number of characters to check
- *
- * RETURN: None
- *
- * DESCRIPTION: Ensure that the requested number of characters are printable
- * Ascii characters. Sets non-printable and null chars to <space>.
- *
- ******************************************************************************/
-
-static void
-AcpiDmCheckAscii (
- UINT8 *Name,
- UINT32 Count)
-{
- UINT32 i;
-
-
- for (i = 0; i < Count; i++)
- {
- if (!Name[i] || !isprint (Name[i]))
- {
- Name[i] = ' ';
- }
- }
-}
diff --git a/sys/contrib/dev/acpica/common/dmtbdump.c b/sys/contrib/dev/acpica/common/dmtbdump.c
deleted file mode 100644
index 03ca323..0000000
--- a/sys/contrib/dev/acpica/common/dmtbdump.c
+++ /dev/null
@@ -1,798 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dmtbdump - Dump ACPI data tables that contain no AML code
- * $Revision: 1.15 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/actables.h>
-
-/* This module used for application-level code only */
-
-#define _COMPONENT ACPI_CA_DISASSEMBLER
- ACPI_MODULE_NAME ("dmtbdump")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpRsdp
- *
- * PARAMETERS: Table - A RSDP
- *
- * RETURN: Length of the table (there is no length field, use revision)
- *
- * DESCRIPTION: Format the contents of a RSDP
- *
- ******************************************************************************/
-
-UINT32
-AcpiDmDumpRsdp (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Length = ACPI_RSDP_REV0_SIZE;
-
-
- /* Dump the common ACPI 1.0 portion */
-
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRsdp1);
-
- /* ACPI 2.0+ contains more data and has a Length field */
-
- if (ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table)->Revision > 0)
- {
- Length = ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table)->Length;
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRsdp2);
- }
-
- return (Length);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpRsdt
- *
- * PARAMETERS: Table - A RSDT
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a RSDT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpRsdt (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 *Array;
- UINT32 Entries;
- UINT32 Offset;
- UINT32 i;
-
-
- /* Point to start of table pointer array */
-
- Array = ACPI_CAST_PTR (ACPI_TABLE_RSDT, Table)->TableOffsetEntry;
- Offset = sizeof (ACPI_TABLE_HEADER);
-
- /* RSDT uses 32-bit pointers */
-
- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32);
-
- for (i = 0; i < Entries; i++)
- {
- AcpiDmLineHeader2 (Offset, sizeof (UINT32), "ACPI Table Address", i);
- AcpiOsPrintf ("%8.8X\n", Array[i]);
- Offset += sizeof (UINT32);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpXsdt
- *
- * PARAMETERS: Table - A XSDT
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a XSDT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpXsdt (
- ACPI_TABLE_HEADER *Table)
-{
- UINT64 *Array;
- UINT32 Entries;
- UINT32 Offset;
- UINT32 i;
-
-
- /* Point to start of table pointer array */
-
- Array = ACPI_CAST_PTR (ACPI_TABLE_XSDT, Table)->TableOffsetEntry;
- Offset = sizeof (ACPI_TABLE_HEADER);
-
- /* XSDT uses 64-bit pointers */
-
- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64);
-
- for (i = 0; i < Entries; i++)
- {
- AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
- AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Array[i]));
- Offset += sizeof (UINT64);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpFadt
- *
- * PARAMETERS: Table - A FADT
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a FADT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpFadt (
- ACPI_TABLE_HEADER *Table)
-{
-
- /* Common ACPI 1.0 portion of FADT */
-
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt1);
-
- /* Check for ACPI 2.0+ extended data (cannot depend on Revision field) */
-
- if (Table->Length >= sizeof (ACPI_TABLE_FADT))
- {
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt2);
- }
-
- /* Validate various fields in the FADT, including length */
-
- AcpiTbCreateLocalFadt (Table, Table->Length);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpAsf
- *
- * PARAMETERS: Table - A ASF table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a ASF table
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpAsf (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Offset = sizeof (ACPI_TABLE_HEADER);
- ACPI_ASF_INFO *SubTable;
- ACPI_DMTABLE_INFO *InfoTable;
- ACPI_DMTABLE_INFO *DataInfoTable = NULL;
- UINT8 *DataTable = NULL;
- ACPI_NATIVE_UINT DataCount = 0;
- ACPI_NATIVE_UINT DataLength = 0;
- ACPI_NATIVE_UINT DataOffset = 0;
- ACPI_NATIVE_UINT i;
-
-
- /* No main table, only sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, Table, Offset);
- while (Offset < Table->Length)
- {
- /* Common sub-table header */
-
- AcpiDmDumpTable (Table->Length, Offset, SubTable, 0, AcpiDmTableInfoAsfHdr);
-
- switch (SubTable->Header.Type & 0x7F) /* Mask off top bit */
- {
- case ACPI_ASF_TYPE_INFO:
- InfoTable = AcpiDmTableInfoAsf0;
- break;
-
- case ACPI_ASF_TYPE_ALERT:
- InfoTable = AcpiDmTableInfoAsf1;
- DataInfoTable = AcpiDmTableInfoAsf1a;
- DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ALERT));
- DataCount = ((ACPI_ASF_ALERT *) SubTable)->Alerts;
- DataLength = ((ACPI_ASF_ALERT *) SubTable)->DataLength;
- DataOffset = Offset + sizeof (ACPI_ASF_ALERT);
- break;
-
- case ACPI_ASF_TYPE_CONTROL:
- InfoTable = AcpiDmTableInfoAsf2;
- DataInfoTable = AcpiDmTableInfoAsf2a;
- DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_REMOTE));
- DataCount = ((ACPI_ASF_REMOTE *) SubTable)->Controls;
- DataLength = ((ACPI_ASF_REMOTE *) SubTable)->DataLength;
- DataOffset = Offset + sizeof (ACPI_ASF_REMOTE);
- break;
-
- case ACPI_ASF_TYPE_BOOT:
- InfoTable = AcpiDmTableInfoAsf3;
- break;
-
- case ACPI_ASF_TYPE_ADDRESS:
- InfoTable = AcpiDmTableInfoAsf4;
- DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ADDRESS));
- DataLength = ((ACPI_ASF_ADDRESS *) SubTable)->Devices;
- DataOffset = Offset + sizeof (ACPI_ASF_ADDRESS);
- break;
-
- default:
- AcpiOsPrintf ("\n**** Unknown ASF sub-table type %X\n", SubTable->Header.Type);
- return;
- }
-
- AcpiDmDumpTable (Table->Length, Offset, SubTable, SubTable->Header.Length, InfoTable);
-
-
- /* Dump variable-length extra data */
-
- switch (SubTable->Header.Type & 0x7F) /* Mask off top bit */
- {
- case ACPI_ASF_TYPE_ALERT:
- case ACPI_ASF_TYPE_CONTROL:
-
- for (i = 0; i < DataCount; i++)
- {
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Table->Length, DataOffset, DataTable, DataLength, DataInfoTable);
-
- DataTable = ACPI_ADD_PTR (UINT8, DataTable, DataLength);
- DataOffset += DataLength;
- }
- break;
-
- case ACPI_ASF_TYPE_ADDRESS:
-
- for (i = 0; i < DataLength; i++)
- {
- if (!(i % 16))
- {
- AcpiDmLineHeader (DataOffset, 1, "Addresses");
- }
-
- AcpiOsPrintf ("%2.2X ", *DataTable);
- DataTable++;
- DataOffset++;
- }
-
- AcpiOsPrintf ("\n");
- break;
- }
-
- AcpiOsPrintf ("\n");
-
- /* Point to next sub-table */
-
- Offset += SubTable->Header.Length;
- SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable, SubTable->Header.Length);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpCpep
- *
- * PARAMETERS: Table - A CPEP table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a CPEP. This table type consists
- * of an open-ended number of subtables.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpCpep (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_CPEP_POLLING *SubTable;
- UINT32 Length = Table->Length;
- UINT32 Offset = sizeof (ACPI_TABLE_CPEP);
-
-
- /* Main table */
-
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoCpep);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset);
- while (Offset < Table->Length)
- {
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Length, Offset, SubTable, SubTable->Length, AcpiDmTableInfoCpep0);
-
- /* Point to next sub-table */
-
- Offset += SubTable->Length;
- SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, SubTable, SubTable->Length);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpDmar
- *
- * PARAMETERS: Table - A DMAR table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a DMAR. This table type consists
- * of an open-ended number of subtables.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpDmar (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_DMAR_HEADER *SubTable;
- UINT32 Length = Table->Length;
- UINT32 Offset = sizeof (ACPI_TABLE_DMAR);
- ACPI_DMTABLE_INFO *InfoTable;
- ACPI_DMAR_DEVICE_SCOPE *ScopeTable;
- UINT32 ScopeOffset;
- UINT8 *PciPath;
- UINT32 PathOffset;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDmar);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Table, Offset);
- while (Offset < Table->Length)
- {
- /* Common sub-table header */
-
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Length, Offset, SubTable, 0, AcpiDmTableInfoDmarHdr);
-
- switch (SubTable->Type)
- {
- case ACPI_DMAR_TYPE_HARDWARE_UNIT:
- InfoTable = AcpiDmTableInfoDmar0;
- ScopeOffset = sizeof (ACPI_DMAR_HARDWARE_UNIT);
- break;
- case ACPI_DMAR_TYPE_RESERVED_MEMORY:
- InfoTable = AcpiDmTableInfoDmar1;
- ScopeOffset = sizeof (ACPI_DMAR_RESERVED_MEMORY);
- break;
- default:
- AcpiOsPrintf ("\n**** Unknown DMAR sub-table type %X\n\n", SubTable->Type);
- return;
- }
-
- AcpiDmDumpTable (Length, Offset, SubTable, SubTable->Length, InfoTable);
-
- /*
- * Currently, a common flag indicates whether there are any
- * device scope entries present at the end of the subtable.
- */
- if ((SubTable->Flags & ACPI_DMAR_INCLUDE_ALL) == 0)
- {
- /* Dump the device scope entries */
-
- ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE, SubTable, ScopeOffset);
- while (ScopeOffset < SubTable->Length)
- {
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable,
- ScopeTable->Length, AcpiDmTableInfoDmarScope);
-
- /* Dump the PCI Path entries for this device scope */
-
- PathOffset = sizeof (ACPI_DMAR_DEVICE_SCOPE); /* Path entries start at this offset */
-
- PciPath = ACPI_ADD_PTR (UINT8, ScopeTable,
- sizeof (ACPI_DMAR_DEVICE_SCOPE));
-
- while (PathOffset < ScopeTable->Length)
- {
- AcpiDmLineHeader ((PathOffset + ScopeOffset + Offset), 2, "PCI Path");
- AcpiOsPrintf ("[%2.2X, %2.2X]\n", PciPath[0], PciPath[1]);
-
- /* Point to next PCI Path entry */
-
- PathOffset += 2;
- PciPath += 2;
- }
-
- /* Point to next device scope entry */
-
- ScopeOffset += ScopeTable->Length;
- ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE,
- ScopeTable, ScopeTable->Length);
- }
- }
-
- /* Point to next sub-table */
-
- Offset += SubTable->Length;
- SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable, SubTable->Length);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpMadt
- *
- * PARAMETERS: Table - A MADT table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a MADT. This table type consists
- * of an open-ended number of subtables.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpMadt (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_SUBTABLE_HEADER *SubTable;
- UINT32 Length = Table->Length;
- UINT32 Offset = sizeof (ACPI_TABLE_MADT);
- ACPI_DMTABLE_INFO *InfoTable;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMadt);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
- while (Offset < Table->Length)
- {
- /* Common sub-table header */
-
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Length, Offset, SubTable, 0, AcpiDmTableInfoMadtHdr);
-
- switch (SubTable->Type)
- {
- case ACPI_MADT_TYPE_LOCAL_APIC:
- InfoTable = AcpiDmTableInfoMadt0;
- break;
- case ACPI_MADT_TYPE_IO_APIC:
- InfoTable = AcpiDmTableInfoMadt1;
- break;
- case ACPI_MADT_TYPE_INTERRUPT_OVERRIDE:
- InfoTable = AcpiDmTableInfoMadt2;
- break;
- case ACPI_MADT_TYPE_NMI_SOURCE:
- InfoTable = AcpiDmTableInfoMadt3;
- break;
- case ACPI_MADT_TYPE_LOCAL_APIC_NMI:
- InfoTable = AcpiDmTableInfoMadt4;
- break;
- case ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE:
- InfoTable = AcpiDmTableInfoMadt5;
- break;
- case ACPI_MADT_TYPE_IO_SAPIC:
- InfoTable = AcpiDmTableInfoMadt6;
- break;
- case ACPI_MADT_TYPE_LOCAL_SAPIC:
- InfoTable = AcpiDmTableInfoMadt7;
- break;
- case ACPI_MADT_TYPE_INTERRUPT_SOURCE:
- InfoTable = AcpiDmTableInfoMadt8;
- break;
- default:
- AcpiOsPrintf ("\n**** Unknown MADT sub-table type %X\n\n", SubTable->Type);
- return;
- }
-
- AcpiDmDumpTable (Length, Offset, SubTable, SubTable->Length, InfoTable);
-
- /* Point to next sub-table */
-
- Offset += SubTable->Length;
- SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpMcfg
- *
- * PARAMETERS: Table - A MCFG Table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a MCFG table
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpMcfg (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Offset = sizeof (ACPI_TABLE_MCFG);
- ACPI_MCFG_ALLOCATION *SubTable;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMcfg);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, Table, Offset);
- while (Offset < Table->Length)
- {
- if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length)
- {
- AcpiOsPrintf ("Warning: there are %d invalid trailing bytes\n",
- sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length));
- return;
- }
-
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Table->Length, Offset, SubTable, 0, AcpiDmTableInfoMcfg0);
-
- /* Point to next sub-table (each subtable is of fixed length) */
-
- Offset += sizeof (ACPI_MCFG_ALLOCATION);
- SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, SubTable,
- sizeof (ACPI_MCFG_ALLOCATION));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpSlit
- *
- * PARAMETERS: Table - An SLIT
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a SLIT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpSlit (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Offset;
- UINT8 *Row;
- UINT32 Localities;
- UINT32 i;
- UINT32 j;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSlit);
-
- /* Display the Locality NxN Matrix */
-
- Localities = (UINT32) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount;
- Offset = ACPI_OFFSET (ACPI_TABLE_SLIT, Entry[0]);
- Row = (UINT8 *) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->Entry;
-
- for (i = 0; i < Localities; i++)
- {
- /* Display one row of the matrix */
-
- AcpiDmLineHeader2 (Offset, Localities, "Locality", i);
- for (j = 0; j < Localities; j++)
- {
- /* Check for beyond EOT */
-
- if (Offset >= Table->Length)
- {
- AcpiOsPrintf ("\n**** Not enough room in table for all localities\n");
- return;
- }
-
- AcpiOsPrintf ("%2.2X ", Row[j]);
- Offset++;
-
- /* Display up to 16 bytes per output row */
-
- if (j && (((j+1) % 16) == 0) && ((j+1) < Localities))
- {
- AcpiOsPrintf ("\n");
- AcpiDmLineHeader (Offset, 0, "");
- }
- }
-
- /* Point to next row */
-
- AcpiOsPrintf ("\n");
- Row += Localities;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpSrat
- *
- * PARAMETERS: Table - A SRAT table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a SRAT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpSrat (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Offset = sizeof (ACPI_TABLE_SRAT);
- ACPI_SUBTABLE_HEADER *SubTable;
- ACPI_DMTABLE_INFO *InfoTable;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSrat);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
- while (Offset < Table->Length)
- {
- switch (SubTable->Type)
- {
- case ACPI_SRAT_TYPE_CPU_AFFINITY:
- InfoTable = AcpiDmTableInfoSrat0;
- break;
- case ACPI_SRAT_TYPE_MEMORY_AFFINITY:
- InfoTable = AcpiDmTableInfoSrat1;
- break;
- default:
- AcpiOsPrintf ("\n**** Unknown SRAT sub-table type %X\n", SubTable->Type);
- return;
- }
-
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Table->Length, Offset, SubTable, SubTable->Length, InfoTable);
-
- /* Point to next sub-table */
-
- Offset += SubTable->Length;
- SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length);
- }
-}
-
diff --git a/sys/contrib/dev/acpica/common/dmtbinfo.c b/sys/contrib/dev/acpica/common/dmtbinfo.c
deleted file mode 100644
index 5454005..0000000
--- a/sys/contrib/dev/acpica/common/dmtbinfo.c
+++ /dev/null
@@ -1,967 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dmtbinfo - Table info for non-AML tables
- * $Revision: 1.13 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-/* This module used for application-level code only */
-
-#define _COMPONENT ACPI_CA_DISASSEMBLER
- ACPI_MODULE_NAME ("dmtbinfo")
-
-/*
- * Macros used to generate offsets to specific table fields
- */
-#define ACPI_FACS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_FACS,f)
-#define ACPI_GAS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f)
-#define ACPI_HDR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_HEADER,f)
-#define ACPI_RSDP_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_RSDP,f)
-#define ACPI_BOOT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_BOOT,f)
-#define ACPI_CPEP_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_CPEP,f)
-#define ACPI_DBGP_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_DBGP,f)
-#define ACPI_DMAR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_DMAR,f)
-#define ACPI_ECDT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_ECDT,f)
-#define ACPI_HPET_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_HPET,f)
-#define ACPI_MADT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_MADT,f)
-#define ACPI_MCFG_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_MCFG,f)
-#define ACPI_SBST_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SBST,f)
-#define ACPI_SLIT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SLIT,f)
-#define ACPI_SPCR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SPCR,f)
-#define ACPI_SPMI_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SPMI,f)
-#define ACPI_SRAT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SRAT,f)
-#define ACPI_TCPA_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_TCPA,f)
-#define ACPI_WDRT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WDRT,f)
-
-/* Sub-tables */
-
-#define ACPI_ASF0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_INFO,f)
-#define ACPI_ASF1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_ALERT,f)
-#define ACPI_ASF1a_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_ALERT_DATA,f)
-#define ACPI_ASF2_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_REMOTE,f)
-#define ACPI_ASF2a_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f)
-#define ACPI_ASF3_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_RMCP,f)
-#define ACPI_ASF4_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_ADDRESS,f)
-#define ACPI_CPEP0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_CPEP_POLLING,f)
-#define ACPI_DMARS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_DEVICE_SCOPE,f)
-#define ACPI_DMAR0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_HARDWARE_UNIT,f)
-#define ACPI_DMAR1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_RESERVED_MEMORY,f)
-#define ACPI_MADT0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC,f)
-#define ACPI_MADT1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_IO_APIC,f)
-#define ACPI_MADT2_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_INTERRUPT_OVERRIDE,f)
-#define ACPI_MADT3_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_NMI_SOURCE,f)
-#define ACPI_MADT4_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC_NMI,f)
-#define ACPI_MADT5_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC_OVERRIDE,f)
-#define ACPI_MADT6_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_IO_SAPIC,f)
-#define ACPI_MADT7_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_SAPIC,f)
-#define ACPI_MADT8_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f)
-#define ACPI_MADTH_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f)
-#define ACPI_MCFG0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f)
-#define ACPI_SRAT0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SRAT_CPU_AFFINITY,f)
-#define ACPI_SRAT1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SRAT_MEM_AFFINITY,f)
-
-/*
- * Simplify access to flag fields by breaking them up into bytes
- */
-#define ACPI_FLAG_OFFSET(d,f,o) (UINT8) (ACPI_OFFSET (d,f) + o)
-
-/* Flags */
-
-#define ACPI_FADT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_FADT,f,o)
-#define ACPI_FACS_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_FACS,f,o)
-#define ACPI_HPET_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_HPET,f,o)
-#define ACPI_SRAT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_CPU_AFFINITY,f,o)
-#define ACPI_SRAT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_MEM_AFFINITY,f,o)
-#define ACPI_MADT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_MADT,f,o)
-#define ACPI_MADT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_APIC,f,o)
-#define ACPI_MADT2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_OVERRIDE,f,o)
-#define ACPI_MADT3_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_NMI_SOURCE,f,o)
-#define ACPI_MADT4_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_APIC_NMI,f,o)
-#define ACPI_MADT7_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_SAPIC,f,o)
-#define ACPI_MADT8_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f,o)
-
-
-/*
- * ACPI Table Information, used to dump formatted ACPI tables
- *
- * Each entry is of the form: <Field Type, Field Offset, Field Name>
- */
-
-/*******************************************************************************
- *
- * Common ACPI table header
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[] =
-{
- {ACPI_DMT_SIG, ACPI_HDR_OFFSET (Signature[0]), "Signature"},
- {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (Length), "Table Length"},
- {ACPI_DMT_UINT8, ACPI_HDR_OFFSET (Revision), "Revision"},
- {ACPI_DMT_CHKSUM, ACPI_HDR_OFFSET (Checksum), "Checksum"},
- {ACPI_DMT_NAME6, ACPI_HDR_OFFSET (OemId[0]), "Oem ID"},
- {ACPI_DMT_NAME8, ACPI_HDR_OFFSET (OemTableId[0]), "Oem Table ID"},
- {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (OemRevision), "Oem Revision"},
- {ACPI_DMT_NAME4, ACPI_HDR_OFFSET (AslCompilerId[0]), "Asl Compiler ID"},
- {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (AslCompilerRevision), "Asl Compiler Revision"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * GAS - Generic Address Structure
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoGas[] =
-{
- {ACPI_DMT_SPACEID, ACPI_GAS_OFFSET (SpaceId), "Space ID"},
- {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitWidth), "Bit Width"},
- {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitOffset), "Bit Offset"},
- {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (AccessWidth), "Access Width"},
- {ACPI_DMT_UINT64, ACPI_GAS_OFFSET (Address), "Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * RSDP - Root System Description Pointer (Signature is "RSD PTR ")
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[] =
-{
- {ACPI_DMT_NAME8, ACPI_RSDP_OFFSET (Signature[0]), "Signature"},
- {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (Checksum), "Checksum"},
- {ACPI_DMT_NAME6, ACPI_RSDP_OFFSET (OemId[0]), "Oem ID"},
- {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (Revision), "Revision"},
- {ACPI_DMT_UINT32, ACPI_RSDP_OFFSET (RsdtPhysicalAddress), "RSDT Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* ACPI 2.0+ Extensions */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[] =
-{
- {ACPI_DMT_UINT32, ACPI_RSDP_OFFSET (Length), "Length"},
- {ACPI_DMT_UINT64, ACPI_RSDP_OFFSET (XsdtPhysicalAddress), "XSDT Address"},
- {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (ExtendedChecksum), "Extended Checksum"},
- {ACPI_DMT_UINT24, ACPI_RSDP_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * FACS - Firmware ACPI Control Structure
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[] =
-{
- {ACPI_DMT_NAME4, ACPI_FACS_OFFSET (Signature[0]), "Signature"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (Length), "Length"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (HardwareSignature), "Hardware Signature"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (FirmwareWakingVector), "Firmware Waking Vector(32)"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (GlobalLock), "Global Lock"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_FACS_FLAG_OFFSET (Flags,0), "S4BIOS Support Present"},
- {ACPI_DMT_UINT64, ACPI_FACS_OFFSET (XFirmwareWakingVector), "Firmware Waking Vector(64)"},
- {ACPI_DMT_UINT8, ACPI_FACS_OFFSET (Version), "Version"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * FADT - Fixed ACPI Description Table (Signature is FACP)
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[] =
-{
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Facs), "FACS Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Dsdt), "DSDT Address"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Model), "Model"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (PreferredProfile), "PM Profile"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (SciInterrupt), "SCI Interrupt"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (SmiCommand), "SMI Command Port"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (AcpiEnable), "ACPI Enable Value"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (AcpiDisable), "ACPI Disable Value"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (S4BiosRequest), "S4BIOS Command"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (PstateControl), "P-State Control"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm1aEventBlock), "PM1A Event Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm1bEventBlock), "PM1B Event Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm1aControlBlock), "PM1A Control Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm1bControlBlock), "PM1B Control Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm2ControlBlock), "PM2 Control Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (PmTimerBlock), "PM Timer Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Gpe0Block), "GPE0 Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Gpe1Block), "GPE1 Block Address"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Pm1EventLength), "PM1 Event Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Pm1ControlLength), "PM1 Control Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Pm2ControlLength), "PM2 Control Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (PmTimerLength), "PM Timer Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Gpe0BlockLength), "GPE0 Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Gpe1BlockLength), "GPE1 Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Gpe1Base), "GPE1 Base Offset"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (CstControl), "_CST Support"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (C2Latency), "C2 Latency"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (C3Latency), "C3 Latency"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (FlushSize), "CPU Cache Size"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (FlushStride), "Cache Flush Stride"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (DutyOffset), "Duty Cycle Offset"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (DutyWidth), "Duty Cycle Width"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (DayAlarm), "RTC Day Alarm Index"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (MonthAlarm), "RTC Month Alarm Index"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Century), "RTC Century Index"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (BootFlags), "Boot Architecture Flags"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Flags), "Flags (decoded below)"},
-
- /* Flags byte 0 */
-
- {ACPI_DMT_FLAG0, ACPI_FADT_FLAG_OFFSET (Flags,0), "WBINVD is operational"},
- {ACPI_DMT_FLAG1, ACPI_FADT_FLAG_OFFSET (Flags,0), "WBINVD does not invalidate"},
- {ACPI_DMT_FLAG2, ACPI_FADT_FLAG_OFFSET (Flags,0), "All CPUs support C1"},
- {ACPI_DMT_FLAG3, ACPI_FADT_FLAG_OFFSET (Flags,0), "C2 works on MP system"},
- {ACPI_DMT_FLAG4, ACPI_FADT_FLAG_OFFSET (Flags,0), "Power button is generic"},
- {ACPI_DMT_FLAG5, ACPI_FADT_FLAG_OFFSET (Flags,0), "Sleep button is generic"},
- {ACPI_DMT_FLAG6, ACPI_FADT_FLAG_OFFSET (Flags,0), "RTC wakeup not fixed"},
- {ACPI_DMT_FLAG7, ACPI_FADT_FLAG_OFFSET (Flags,0), "RTC wakeup/S4 not possible"},
-
- /* Flags byte 1 */
-
- {ACPI_DMT_FLAG0, ACPI_FADT_FLAG_OFFSET (Flags,1), "32-bit PM Timer"},
- {ACPI_DMT_FLAG1, ACPI_FADT_FLAG_OFFSET (Flags,1), "Docking Supported"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* ACPI 2.0+ Extensions */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[] =
-{
- {ACPI_DMT_FLAG2, ACPI_FADT_FLAG_OFFSET (Flags,1), "Reset Register Supported"},
- {ACPI_DMT_FLAG3, ACPI_FADT_FLAG_OFFSET (Flags,1), "Sealed Case"},
- {ACPI_DMT_FLAG4, ACPI_FADT_FLAG_OFFSET (Flags,1), "Headless - No Video"},
- {ACPI_DMT_FLAG5, ACPI_FADT_FLAG_OFFSET (Flags,1), "Native instr after SLP_TYP"},
- {ACPI_DMT_FLAG6, ACPI_FADT_FLAG_OFFSET (Flags,1), "PCIEXP_WAK Supported"},
- {ACPI_DMT_FLAG7, ACPI_FADT_FLAG_OFFSET (Flags,1), "Use Platform Timer"},
-
- /* Flags byte 2 */
-
- {ACPI_DMT_FLAG0, ACPI_FADT_FLAG_OFFSET (Flags,2), "RTC_STS valid after S4"},
- {ACPI_DMT_FLAG1, ACPI_FADT_FLAG_OFFSET (Flags,2), "Remote Power-on capable"},
- {ACPI_DMT_FLAG2, ACPI_FADT_FLAG_OFFSET (Flags,2), "APIC Cluster Model"},
- {ACPI_DMT_FLAG3, ACPI_FADT_FLAG_OFFSET (Flags,2), "APIC Physical Dest Mode"},
-
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (ResetRegister), "Reset Register"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (ResetValue), "Value to cause reset"},
- {ACPI_DMT_UINT24, ACPI_FADT_OFFSET (Reserved4[0]), "Reserved"},
- {ACPI_DMT_UINT64, ACPI_FADT_OFFSET (XFacs), "FACS Address"},
- {ACPI_DMT_UINT64, ACPI_FADT_OFFSET (XDsdt), "DSDT Address"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm1aEventBlock), "PM1A Event Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm1bEventBlock), "PM1B Event Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm1aControlBlock), "PM1A Control Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm1bControlBlock), "PM1B Control Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm2ControlBlock), "PM2 Control Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPmTimerBlock), "PM Timer Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XGpe0Block), "GPE0 Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XGpe1Block), "GPE1 Block"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*
- * Remaining tables are not consumed directly by the ACPICA subsystem
- */
-
-/*******************************************************************************
- *
- * ASF - Alert Standard Format table (Signature "ASF!")
- *
- ******************************************************************************/
-
-/* Common sub-table header (one per sub-table) */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (Header.Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (Header.Reserved), "Reserved"},
- {ACPI_DMT_UINT16, ACPI_ASF0_OFFSET (Header.Length), "Length"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 0: ASF Information */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (MinResetValue), "Minimum Reset Value"},
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (MinResetValue), "Minimum Polling Interval"},
- {ACPI_DMT_UINT16, ACPI_ASF0_OFFSET (SystemId), "System ID"},
- {ACPI_DMT_UINT32, ACPI_ASF0_OFFSET (SystemId), "Manufacturer ID"},
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (Flags), "Flags"},
- {ACPI_DMT_UINT24, ACPI_ASF0_OFFSET (Reserved2[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 1: ASF Alerts */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (AssertMask), "AssertMask"},
- {ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (DeassertMask), "DeassertMask"},
- {ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (Alerts), "Alert Count"},
- {ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (DataLength), "Alert Data Length"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 1a: ASF Alert data */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Address), "Address"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Command), "Command"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Mask), "Mask"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Value), "Value"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (SensorType), "SensorType"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Type), "Type"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Offset), "Offset"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (SourceType), "SourceType"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Severity), "Severity"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (SensorNumber), "SensorNumber"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Entity), "Entity"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Instance), "Instance"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 2: ASF Remote Control */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF2_OFFSET (Controls), "Control Count"},
- {ACPI_DMT_UINT8, ACPI_ASF2_OFFSET (DataLength), "Control Data Length"},
- {ACPI_DMT_UINT16, ACPI_ASF2_OFFSET (Reserved2), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 2a: ASF Control data */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Function), "Function"},
- {ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Address), "Address"},
- {ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Command), "Command"},
- {ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Value), "Value"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 3: ASF RMCP Boot Options */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[] =
-{
- {ACPI_DMT_UINT56, ACPI_ASF3_OFFSET (Capabilities[0]), "Capabilites"},
- {ACPI_DMT_UINT8, ACPI_ASF3_OFFSET (CompletionCode), "Completion Code"},
- {ACPI_DMT_UINT32, ACPI_ASF3_OFFSET (EnterpriseId), "Enterprise ID"},
- {ACPI_DMT_UINT8, ACPI_ASF3_OFFSET (Command), "Command"},
- {ACPI_DMT_UINT16, ACPI_ASF3_OFFSET (Parameter), "Parameter"},
- {ACPI_DMT_UINT16, ACPI_ASF3_OFFSET (BootOptions), "Boot Options"},
- {ACPI_DMT_UINT16, ACPI_ASF3_OFFSET (OemParameters), "Oem Parameters"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 4: ASF Address */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF4_OFFSET (EpromAddress), "Eprom Address"},
- {ACPI_DMT_UINT8, ACPI_ASF4_OFFSET (Devices), "Device Count"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * BOOT - Simple Boot Flag Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[] =
-{
- {ACPI_DMT_UINT8, ACPI_BOOT_OFFSET (CmosIndex), "Boot Register Index"},
- {ACPI_DMT_UINT24, ACPI_BOOT_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * CPEP - Corrected Platform Error Polling table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[] =
-{
- {ACPI_DMT_UINT64, ACPI_CPEP_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[] =
-{
- {ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Length), "Length"},
- {ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Id), "Processor ID"},
- {ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Eid), "Processor EID"},
- {ACPI_DMT_UINT32, ACPI_CPEP0_OFFSET (Interval), "Polling Interval"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * DBGP - Debug Port
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[] =
-{
- {ACPI_DMT_UINT8, ACPI_DBGP_OFFSET (Type), "Interface Type"},
- {ACPI_DMT_UINT24, ACPI_DBGP_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_GAS, ACPI_DBGP_OFFSET (DebugPort), "Debug Port Register"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * DMAR - DMA Remapping table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[] =
-{
- {ACPI_DMT_UINT8, ACPI_DMAR_OFFSET (Width), "Host Address Width"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* Common sub-table header (one per sub-table) */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[] =
-{
- {ACPI_DMT_DMAR, ACPI_DMAR0_OFFSET (Header.Type), "Sub-Table Type"},
- {ACPI_DMT_UINT16, ACPI_DMAR0_OFFSET (Header.Length), "Length"},
- {ACPI_DMT_UINT8, ACPI_DMAR0_OFFSET (Header.Flags), "Flags"},
- {ACPI_DMT_UINT24, ACPI_DMAR0_OFFSET (Header.Reserved[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* Common device scope entry */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[] =
-{
- {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (EntryType), "Device Scope Entry Type"},
- {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Length), "Entry Length"},
- {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Segment), "PCI Segment Number"},
- {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Bus), "PCI Bus Number"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* DMAR sub-tables */
-
-/* 0: Hardware Unit Definition */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[] =
-{
- {ACPI_DMT_UINT64, ACPI_DMAR0_OFFSET (Address), "Register Base Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 1: Reserved Memory Defininition */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[] =
-{
- {ACPI_DMT_UINT64, ACPI_DMAR1_OFFSET (Address), "Base Address"},
- {ACPI_DMT_UINT64, ACPI_DMAR1_OFFSET (EndAddress), "End Address (limit)"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * ECDT - Embedded Controller Boot Resources Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[] =
-{
- {ACPI_DMT_GAS, ACPI_ECDT_OFFSET (Control), "Command/Status Register"},
- {ACPI_DMT_GAS, ACPI_ECDT_OFFSET (Data), "Data Register"},
- {ACPI_DMT_UINT32, ACPI_ECDT_OFFSET (Uid), "UID"},
- {ACPI_DMT_UINT8, ACPI_ECDT_OFFSET (Gpe), "GPE Number"},
- {ACPI_DMT_STRING, ACPI_ECDT_OFFSET (Id[0]), "Namepath"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * HPET - High Precision Event Timer table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[] =
-{
- {ACPI_DMT_UINT32, ACPI_HPET_OFFSET (Id), "Hardware Block ID"},
- {ACPI_DMT_GAS, ACPI_HPET_OFFSET (Address), "Timer Block Register"},
- {ACPI_DMT_UINT8, ACPI_HPET_OFFSET (Sequence), "Sequence Number"},
- {ACPI_DMT_UINT16, ACPI_HPET_OFFSET (MinimumTick), "Minimum Clock Ticks"},
- {ACPI_DMT_UINT8, ACPI_HPET_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_HPET_FLAG_OFFSET (Flags,0), "Page Protect"},
- {ACPI_DMT_FLAG1, ACPI_HPET_FLAG_OFFSET (Flags,0), "4K Page Protect"},
- {ACPI_DMT_FLAG2, ACPI_HPET_FLAG_OFFSET (Flags,0), "64K Page Protect"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * MADT - Multiple APIC Description Table and subtables
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[] =
-{
- {ACPI_DMT_UINT32, ACPI_MADT_OFFSET (Address), "Local Apic Address"},
- {ACPI_DMT_UINT32, ACPI_MADT_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_MADT_FLAG_OFFSET (Flags,0), "PC-AT Compatibility"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* Common sub-table header (one per sub-table) */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[] =
-{
- {ACPI_DMT_MADT, ACPI_MADTH_OFFSET (Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_MADTH_OFFSET (Length), "Length"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* MADT sub-tables */
-
-/* 0: processor APIC */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT0_OFFSET (ProcessorId), "Processor ID"},
- {ACPI_DMT_UINT8, ACPI_MADT0_OFFSET (Id), "Local Apic ID"},
- {ACPI_DMT_UINT32, ACPI_MADT0_OFFSET (LapicFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_MADT0_FLAG_OFFSET (LapicFlags,0), "Processor Enabled"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 1: IO APIC */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT1_OFFSET (Id), "I/O Apic ID"},
- {ACPI_DMT_UINT8, ACPI_MADT1_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_MADT1_OFFSET (Address), "Address"},
- {ACPI_DMT_UINT32, ACPI_MADT1_OFFSET (GlobalIrqBase), "Interrupt"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 2: Interrupt Override */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT2_OFFSET (Bus), "Bus"},
- {ACPI_DMT_UINT8, ACPI_MADT2_OFFSET (SourceIrq), "Source"},
- {ACPI_DMT_UINT32, ACPI_MADT2_OFFSET (GlobalIrq), "Interrupt"},
- {ACPI_DMT_UINT16, ACPI_MADT2_OFFSET (IntiFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAGS0, ACPI_MADT2_FLAG_OFFSET (IntiFlags,0), "Polarity"},
- {ACPI_DMT_FLAGS2, ACPI_MADT2_FLAG_OFFSET (IntiFlags,0), "Trigger Mode"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 3: NMI Sources */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[] =
-{
- {ACPI_DMT_UINT16, ACPI_MADT3_OFFSET (IntiFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAGS0, ACPI_MADT3_FLAG_OFFSET (IntiFlags,0), "Polarity"},
- {ACPI_DMT_FLAGS2, ACPI_MADT3_FLAG_OFFSET (IntiFlags,0), "Trigger Mode"},
- {ACPI_DMT_UINT32, ACPI_MADT3_OFFSET (GlobalIrq), "Interrupt"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 4: Local APIC NMI */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT4_OFFSET (ProcessorId), "Processor ID"},
- {ACPI_DMT_UINT16, ACPI_MADT4_OFFSET (IntiFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAGS0, ACPI_MADT4_FLAG_OFFSET (IntiFlags,0), "Polarity"},
- {ACPI_DMT_FLAGS2, ACPI_MADT4_FLAG_OFFSET (IntiFlags,0), "Trigger Mode"},
- {ACPI_DMT_UINT8, ACPI_MADT4_OFFSET (Lint), "Interrupt Input LINT"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 5: Address Override */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[] =
-{
- {ACPI_DMT_UINT16, ACPI_MADT5_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT64, ACPI_MADT5_OFFSET (Address), "APIC Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 6: I/O Sapic */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT6_OFFSET (Id), "I/O Sapic ID"},
- {ACPI_DMT_UINT8, ACPI_MADT6_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_MADT6_OFFSET (GlobalIrqBase), "Interrupt Base"},
- {ACPI_DMT_UINT64, ACPI_MADT6_OFFSET (Address), "Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 7: Local Sapic */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT7_OFFSET (ProcessorId), "Processor ID"},
- {ACPI_DMT_UINT8, ACPI_MADT7_OFFSET (Id), "Local Sapic ID"},
- {ACPI_DMT_UINT8, ACPI_MADT7_OFFSET (Eid), "Local Sapic EID"},
- {ACPI_DMT_UINT24, ACPI_MADT7_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_MADT7_OFFSET (LapicFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_MADT7_FLAG_OFFSET (LapicFlags,0), "Processor Enabled"},
- {ACPI_DMT_UINT32, ACPI_MADT7_OFFSET (Uid), "Processor UID"},
- {ACPI_DMT_STRING, ACPI_MADT7_OFFSET (UidString[0]), "Processor UID String"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 8: Platform Interrupt Source */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[] =
-{
- {ACPI_DMT_UINT16, ACPI_MADT8_OFFSET (IntiFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAGS0, ACPI_MADT8_FLAG_OFFSET (IntiFlags,0), "Polarity"},
- {ACPI_DMT_FLAGS2, ACPI_MADT8_FLAG_OFFSET (IntiFlags,0), "Trigger Mode"},
- {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (Type), "InterruptType"},
- {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (Id), "Processor ID"},
- {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (Eid), "Processor EID"},
- {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (IoSapicVector), "I/O Sapic Vector"},
- {ACPI_DMT_UINT32, ACPI_MADT8_OFFSET (GlobalIrq), "Interrupt"},
- {ACPI_DMT_UINT32, ACPI_MADT8_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_MADT8_OFFSET (Flags), "CPEI Override"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * MCFG - PCI Memory Mapped Configuration table and sub-table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[] =
-{
- {ACPI_DMT_UINT64, ACPI_MCFG_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[] =
-{
- {ACPI_DMT_UINT64, ACPI_MCFG0_OFFSET (Address), "Base Address"},
- {ACPI_DMT_UINT16, ACPI_MCFG0_OFFSET (PciSegment), "Segment Group Number"},
- {ACPI_DMT_UINT8, ACPI_MCFG0_OFFSET (StartBusNumber), "Start Bus Number"},
- {ACPI_DMT_UINT8, ACPI_MCFG0_OFFSET (EndBusNumber), "End Bus Number"},
- {ACPI_DMT_UINT32, ACPI_MCFG0_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SBST - Smart Battery Specification Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[] =
-{
- {ACPI_DMT_UINT32, ACPI_SBST_OFFSET (WarningLevel), "Warning Level"},
- {ACPI_DMT_UINT32, ACPI_SBST_OFFSET (LowLevel), "Low Level"},
- {ACPI_DMT_UINT32, ACPI_SBST_OFFSET (CriticalLevel), "Critical Level"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SLIT - System Locality Information Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[] =
-{
- {ACPI_DMT_UINT64, ACPI_SLIT_OFFSET (LocalityCount), "Localities"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SPCR - Serial Port Console Redirection table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[] =
-{
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (InterfaceType), "Interface Type"},
- {ACPI_DMT_UINT24, ACPI_SPCR_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_GAS, ACPI_SPCR_OFFSET (SerialPort), "Serial Port Register"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (InterruptType), "Interrupt Type"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PcInterrupt), "PCAT-compatible IRQ"},
- {ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (Interrupt), "Interrupt"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (BaudRate), "Baud Rate"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (Parity), "Parity"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (StopBits), "Stop Bits"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (FlowControl), "Flow Control"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (TerminalType), "Terminal Type"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (Reserved2), "Reserved"},
- {ACPI_DMT_UINT16, ACPI_SPCR_OFFSET (PciDeviceId), "PCI Device ID"},
- {ACPI_DMT_UINT16, ACPI_SPCR_OFFSET (PciVendorId), "PCI Vendor ID"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciBus), "PCI Bus"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciDevice), "PCI Device"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciFunction), "PCI Function"},
- {ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (PciFlags), "PCI Flags"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciSegment), "PCI Segment"},
- {ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (Reserved2), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SPMI - Server Platform Management Interface table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[] =
-{
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (InterfaceType), "Interface Type"},
- {ACPI_DMT_UINT16, ACPI_SPMI_OFFSET (SpecRevision), "IPMI Spec Version"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (InterruptType), "Interrupt Type"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (GpeNumber), "GPE Number"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (Reserved1), "Reserved"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciDeviceFlag), "PCI Device Flag"},
- {ACPI_DMT_UINT32, ACPI_SPMI_OFFSET (Interrupt), "Interrupt"},
- {ACPI_DMT_GAS, ACPI_SPMI_OFFSET (IpmiRegister), "IPMI Register"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciSegment), "PCI Segment"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciBus), "PCI Bus"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciDevice), "PCI Device"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciFunction), "PCI Function"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SRAT - System Resource Affinity Table and sub-tables
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[] =
-{
- {ACPI_DMT_UINT32, ACPI_SRAT_OFFSET (TableRevision), "Table Revision"},
- {ACPI_DMT_UINT64, ACPI_SRAT_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[] =
-{
- {ACPI_DMT_SRAT, ACPI_SRAT0_OFFSET (Header.Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_SRAT0_OFFSET (Header.Length), "Length"},
- {ACPI_DMT_UINT8, ACPI_SRAT0_OFFSET (ProximityDomainLo), "Proximity Domain Low(8)"},
- {ACPI_DMT_UINT8, ACPI_SRAT0_OFFSET (ApicId), "Apic ID"},
- {ACPI_DMT_UINT32, ACPI_SRAT0_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_SRAT0_FLAG_OFFSET (Flags,0), "Enabled"},
- {ACPI_DMT_UINT8, ACPI_SRAT0_OFFSET (LocalSapicEid), "Local Sapic EID"},
- {ACPI_DMT_UINT24, ACPI_SRAT0_OFFSET (ProximityDomainHi[0]), "Proximity Domain High(24)"},
- {ACPI_DMT_UINT32, ACPI_SRAT0_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[] =
-{
- {ACPI_DMT_SRAT, ACPI_SRAT1_OFFSET (Header.Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_SRAT1_OFFSET (Header.Length), "Length"},
- {ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (ProximityDomain), "Proximity Domain"},
- {ACPI_DMT_UINT16, ACPI_SRAT1_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (BaseAddress), "Base Address"},
- {ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (Length), "Address Length"},
- {ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (MemoryType), "Memory Type"},
- {ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_SRAT1_FLAG_OFFSET (Flags,0), "Enabled"},
- {ACPI_DMT_FLAG1, ACPI_SRAT1_FLAG_OFFSET (Flags,0), "Hot Pluggable"},
- {ACPI_DMT_FLAG2, ACPI_SRAT1_FLAG_OFFSET (Flags,0), "Non-Volatile"},
- {ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (Reserved1), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * TCPA - Trusted Computing Platform Alliance table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[] =
-{
- {ACPI_DMT_UINT16, ACPI_TCPA_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_TCPA_OFFSET (MaxLogLength), "Max Event Log Length"},
- {ACPI_DMT_UINT64, ACPI_TCPA_OFFSET (LogAddress), "Event Log Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * WDRT - Watchdog Resource Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[] =
-{
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (HeaderLength), "Header Length"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (PciSegment), "PCI Segment"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (PciBus), "PCI Bus"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (PciDevice), "PCI Device"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (PciFunction), "PCI Function"},
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (TimerPeriod), "Timer Period"},
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (MaxCount), "Max Count"},
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (MinCount), "Min Count"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_WDRT_OFFSET (Flags), "Enabled"},
- {ACPI_DMT_FLAG7, ACPI_WDRT_OFFSET (Flags), "Stopped When Asleep"},
- {ACPI_DMT_UINT24, ACPI_WDRT_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (Entries), "Watchdog Entries"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
diff --git a/sys/contrib/dev/acpica/common/getopt.c b/sys/contrib/dev/acpica/common/getopt.c
deleted file mode 100644
index 2c61575..0000000
--- a/sys/contrib/dev/acpica/common/getopt.c
+++ /dev/null
@@ -1,246 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: getopt
- * $Revision: 1.10 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 <string.h>
-
-#define ERR(szz,czz) if(AcpiGbl_Opterr){fprintf(stderr,"%s%s%c\n",argv[0],szz,czz);}
-
-
-int AcpiGbl_Opterr = 1;
-int AcpiGbl_Optind = 1;
-int AcpiGbl_Optopt;
-char *AcpiGbl_Optarg;
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetopt
- *
- * PARAMETERS: argc, argv - from main
- * opts - options info list
- *
- * RETURN: Option character or EOF
- *
- * DESCRIPTION: Get the next option
- *
- ******************************************************************************/
-
-int
-AcpiGetopt(
- int argc,
- char **argv,
- char *opts)
-{
- static int CurrentCharPtr = 1;
- int CurrentChar;
- char *OptsPtr;
-
-
- if (CurrentCharPtr == 1)
- {
- if (AcpiGbl_Optind >= argc ||
- argv[AcpiGbl_Optind][0] != '-' ||
- argv[AcpiGbl_Optind][1] == '\0')
- {
- return(EOF);
- }
- else if (strcmp (argv[AcpiGbl_Optind], "--") == 0)
- {
- AcpiGbl_Optind++;
- return(EOF);
- }
- }
-
- /* Get the option */
-
- CurrentChar =
- AcpiGbl_Optopt =
- argv[AcpiGbl_Optind][CurrentCharPtr];
-
- /* Make sure that the option is legal */
-
- if (CurrentChar == ':' ||
- (OptsPtr = strchr (opts, CurrentChar)) == NULL)
- {
- ERR (": illegal option -- ", CurrentChar);
-
- if (argv[AcpiGbl_Optind][++CurrentCharPtr] == '\0')
- {
- AcpiGbl_Optind++;
- CurrentCharPtr = 1;
- }
-
- return ('?');
- }
-
- /* Option requires an argument? */
-
- if (*++OptsPtr == ':')
- {
- if (argv[AcpiGbl_Optind][CurrentCharPtr+1] != '\0')
- {
- AcpiGbl_Optarg = &argv[AcpiGbl_Optind++][CurrentCharPtr+1];
- }
- else if (++AcpiGbl_Optind >= argc)
- {
- ERR (": option requires an argument -- ", CurrentChar);
-
- CurrentCharPtr = 1;
- return ('?');
- }
- else
- {
- AcpiGbl_Optarg = argv[AcpiGbl_Optind++];
- }
-
- CurrentCharPtr = 1;
- }
-
- /* Option has optional single-char arguments? */
-
- else if (*OptsPtr == '^')
- {
- if (argv[AcpiGbl_Optind][CurrentCharPtr+1] != '\0')
- {
- AcpiGbl_Optarg = &argv[AcpiGbl_Optind][CurrentCharPtr+1];
- }
- else
- {
- AcpiGbl_Optarg = "^";
- }
-
- AcpiGbl_Optind++;
- CurrentCharPtr = 1;
- }
-
- /* Option with no arguments */
-
- else
- {
- if (argv[AcpiGbl_Optind][++CurrentCharPtr] == '\0')
- {
- CurrentCharPtr = 1;
- AcpiGbl_Optind++;
- }
-
- AcpiGbl_Optarg = NULL;
- }
-
- return (CurrentChar);
-}
OpenPOWER on IntegriCloud