Trim unnecessary files from the import.
This commit is contained in:
parent
de989d76fc
commit
d005b3f9ff
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/projects/acpica_20090521/; revision=193406
@ -19,18 +19,18 @@ fulldirs="common compiler debugger disassembler dispatcher events \
|
||||
tools utilities"
|
||||
|
||||
# files to remove
|
||||
stripdirs="acpisrc generate os_specific"
|
||||
stripdirs="acpisrc acpixtract examples generate os_specific"
|
||||
stripfiles="Makefile README acintel.h aclinux.h acmsvc.h acnetbsd.h \
|
||||
acos2.h acpixtract.c accygwin.h acefi.h acwin.h acwin64.h \
|
||||
aeexec.c aehandlers.c aemain.c aetables.c examples.c \
|
||||
osunixdir.c oswindir.c oswintbl.c oswinxf.c readme.txt utclib.c"
|
||||
acos2.h accygwin.h acefi.h actbl2.h acwin.h acwin64.h aeexec.c \
|
||||
aehandlers.c aemain.c aetables.c osunixdir.c readme.txt \
|
||||
utclib.c"
|
||||
|
||||
# include files to canonify
|
||||
src_headers="acapps.h accommon.h acconfig.h acdebug.h acdisasm.h \
|
||||
acdispat.h acevents.h acexcep.h acglobal.h achware.h acinterp.h \
|
||||
aclocal.h acmacros.h acnames.h acnamesp.h acobject.h acopcode.h \
|
||||
acoutput.h acparser.h acpi.h acpiosxf.h acpixf.h acpredef.h \
|
||||
acresrc.h acrestyp.h acstruct.h actables.h actbl.h actbl1.h \
|
||||
acresrc.h acrestyp.h acstruct.h actables.h actbl.h actbl1.h \
|
||||
actypes.h acutils.h amlcode.h amlresrc.h platform/acenv.h \
|
||||
platform/acfreebsd.h platform/acgcc.h"
|
||||
comp_headers="aslcompiler.h asldefine.h aslglobal.h asltypes.h"
|
||||
|
@ -1,122 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: actbl2.h - ACPI Specification Revision 2.0 Tables
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACTBL2_H__
|
||||
#define __ACTBL2_H__
|
||||
|
||||
/* Code moved to both actbl.h and actbl1.h */
|
||||
|
||||
#endif /* __ACTBL2_H__ */
|
||||
|
@ -1,163 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: accygwin.h - OS specific defines, etc. for cygwin environment
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACCYGWIN_H__
|
||||
#define __ACCYGWIN_H__
|
||||
|
||||
/*
|
||||
* ACPICA configuration
|
||||
*/
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#define ACPI_USE_DO_WHILE_0
|
||||
#define ACPI_THREAD_ID pthread_t
|
||||
#define ACPI_FLUSH_CPU_CACHE()
|
||||
/*
|
||||
* This is needed since sem_timedwait does not appear to work properly
|
||||
* on cygwin (always hangs forever).
|
||||
*/
|
||||
#define ACPI_USE_ALTERNATE_TIMEOUT
|
||||
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#if defined(__ia64__) || defined(__x86_64__)
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
#define COMPILER_DEPENDENT_INT64 long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long
|
||||
#else
|
||||
#define ACPI_MACHINE_WIDTH 32
|
||||
#define COMPILER_DEPENDENT_INT64 long long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long long
|
||||
#define ACPI_USE_NATIVE_DIVIDE
|
||||
#endif
|
||||
|
||||
#ifndef __cdecl
|
||||
#define __cdecl
|
||||
#endif
|
||||
|
||||
#ifdef _ANSI
|
||||
#define inline
|
||||
#endif
|
||||
|
||||
|
||||
/* Cygwin uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
|
||||
#endif /* __ACCYGWIN_H__ */
|
@ -1,147 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acefi.h - OS specific defines, etc.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACEFI_H__
|
||||
#define __ACEFI_H__
|
||||
|
||||
#include <efi.h>
|
||||
#include <efistdarg.h>
|
||||
#include <efilib.h>
|
||||
|
||||
|
||||
/* _int64 works for both IA32 and IA64 */
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 __int64
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned __int64
|
||||
|
||||
/*
|
||||
* Calling conventions:
|
||||
*
|
||||
* ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
|
||||
* ACPI_EXTERNAL_XFACE - External ACPI interfaces
|
||||
* ACPI_INTERNAL_XFACE - Internal ACPI interfaces
|
||||
* ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
|
||||
*/
|
||||
#define ACPI_SYSTEM_XFACE
|
||||
#define ACPI_EXTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_VAR_XFACE
|
||||
|
||||
/* warn C4142: redefinition of type */
|
||||
|
||||
#pragma warning(disable:4142)
|
||||
|
||||
|
||||
#endif /* __ACEFI_H__ */
|
@ -1,168 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acintel.h - VC specific defines, etc.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACINTEL_H__
|
||||
#define __ACINTEL_H__
|
||||
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 __int64
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned __int64
|
||||
|
||||
#define inline __inline
|
||||
|
||||
/*
|
||||
* Calling conventions:
|
||||
*
|
||||
* ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
|
||||
* ACPI_EXTERNAL_XFACE - External ACPI interfaces
|
||||
* ACPI_INTERNAL_XFACE - Internal ACPI interfaces
|
||||
* ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
|
||||
*/
|
||||
#define ACPI_SYSTEM_XFACE
|
||||
#define ACPI_EXTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_VAR_XFACE
|
||||
|
||||
/*
|
||||
* Math helper functions
|
||||
*/
|
||||
#define ACPI_DIV_64_BY_32(n, n_hi, n_lo, d32, q32, r32) \
|
||||
{ \
|
||||
q32 = n / d32; \
|
||||
r32 = n % d32; \
|
||||
}
|
||||
|
||||
#define ACPI_SHIFT_RIGHT_64(n, n_hi, n_lo) \
|
||||
{ \
|
||||
n <<= 1; \
|
||||
}
|
||||
|
||||
/* remark 981 - operands evaluated in no particular order */
|
||||
#pragma warning(disable:981)
|
||||
|
||||
/* warn C4100: unreferenced formal parameter */
|
||||
#pragma warning(disable:4100)
|
||||
|
||||
/* warn C4127: conditional expression is constant */
|
||||
#pragma warning(disable:4127)
|
||||
|
||||
/* warn C4706: assignment within conditional expression */
|
||||
#pragma warning(disable:4706)
|
||||
|
||||
/* warn C4214: bit field types other than int */
|
||||
#pragma warning(disable:4214)
|
||||
|
||||
|
||||
#endif /* __ACINTEL_H__ */
|
@ -1,233 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: aclinux.h - OS specific defines, etc. for Linux
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACLINUX_H__
|
||||
#define __ACLINUX_H__
|
||||
|
||||
/* Common (in-kernel/user-space) ACPICA configuration */
|
||||
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#define ACPI_USE_DO_WHILE_0
|
||||
#define ACPI_MUTEX_TYPE ACPI_BINARY_SEMAPHORE
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/string.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/sched.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <asm/div64.h>
|
||||
#include <asm/acpi.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/spinlock_types.h>
|
||||
#include <asm/current.h>
|
||||
|
||||
/* Host-dependent types and defines for in-kernel ACPICA */
|
||||
|
||||
#define ACPI_MACHINE_WIDTH BITS_PER_LONG
|
||||
#define ACPI_EXPORT_SYMBOL(symbol) EXPORT_SYMBOL(symbol);
|
||||
#define strtoul simple_strtoul
|
||||
|
||||
#define ACPI_CACHE_T struct kmem_cache
|
||||
#define ACPI_SPINLOCK spinlock_t *
|
||||
#define ACPI_CPU_FLAGS unsigned long
|
||||
#define ACPI_THREAD_ID struct task_struct *
|
||||
|
||||
#else /* !__KERNEL__ */
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* Host-dependent types and defines for user-space ACPICA */
|
||||
|
||||
#define ACPI_FLUSH_CPU_CACHE()
|
||||
#define ACPI_THREAD_ID pthread_t
|
||||
|
||||
#if defined(__ia64__) || defined(__x86_64__)
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
#define COMPILER_DEPENDENT_INT64 long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long
|
||||
#else
|
||||
#define ACPI_MACHINE_WIDTH 32
|
||||
#define COMPILER_DEPENDENT_INT64 long long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long long
|
||||
#define ACPI_USE_NATIVE_DIVIDE
|
||||
#endif
|
||||
|
||||
#ifndef __cdecl
|
||||
#define __cdecl
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/* Linux uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/*
|
||||
* Overrides for in-kernel ACPICA
|
||||
*/
|
||||
static inline acpi_thread_id acpi_os_get_thread_id(void)
|
||||
{
|
||||
return current;
|
||||
}
|
||||
|
||||
/*
|
||||
* The irqs_disabled() check is for resume from RAM.
|
||||
* Interrupts are off during resume, just like they are for boot.
|
||||
* However, boot has (system_state != SYSTEM_RUNNING)
|
||||
* to quiet __might_sleep() in kmalloc() and resume does not.
|
||||
*/
|
||||
#include <acpi/actypes.h>
|
||||
static inline void *acpi_os_allocate(acpi_size size)
|
||||
{
|
||||
return kmalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
|
||||
}
|
||||
|
||||
static inline void *acpi_os_allocate_zeroed(acpi_size size)
|
||||
{
|
||||
return kzalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
|
||||
}
|
||||
|
||||
static inline void *acpi_os_acquire_object(acpi_cache_t * cache)
|
||||
{
|
||||
return kmem_cache_zalloc(cache,
|
||||
irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
|
||||
}
|
||||
|
||||
#define ACPI_ALLOCATE(a) acpi_os_allocate(a)
|
||||
#define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed(a)
|
||||
#define ACPI_FREE(a) kfree(a)
|
||||
|
||||
/* Used within ACPICA to show where it is safe to preempt execution */
|
||||
|
||||
#define ACPI_PREEMPTION_POINT() \
|
||||
do { \
|
||||
if (!irqs_disabled()) \
|
||||
cond_resched(); \
|
||||
} while (0)
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __ACLINUX_H__ */
|
@ -1,183 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acmsvc.h - VC specific defines, etc.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACMSVC_H__
|
||||
#define __ACMSVC_H__
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 __int64
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned __int64
|
||||
|
||||
/*
|
||||
* Calling conventions:
|
||||
*
|
||||
* ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
|
||||
* ACPI_EXTERNAL_XFACE - External ACPI interfaces
|
||||
* ACPI_INTERNAL_XFACE - Internal ACPI interfaces
|
||||
* ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
|
||||
*/
|
||||
#define ACPI_SYSTEM_XFACE __cdecl
|
||||
#define ACPI_EXTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_VAR_XFACE __cdecl
|
||||
|
||||
#ifndef _LINT
|
||||
/*
|
||||
* Math helper functions
|
||||
*/
|
||||
#define ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32) \
|
||||
{ \
|
||||
__asm mov edx, n_hi \
|
||||
__asm mov eax, n_lo \
|
||||
__asm div d32 \
|
||||
__asm mov q32, eax \
|
||||
__asm mov r32, edx \
|
||||
}
|
||||
|
||||
#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \
|
||||
{ \
|
||||
__asm shr n_hi, 1 \
|
||||
__asm rcr n_lo, 1 \
|
||||
}
|
||||
#else
|
||||
|
||||
/* Fake versions to make lint happy */
|
||||
|
||||
#define ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32) \
|
||||
{ \
|
||||
q32 = n_hi / d32; \
|
||||
r32 = n_lo / d32; \
|
||||
}
|
||||
|
||||
#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \
|
||||
{ \
|
||||
n_hi >>= 1; \
|
||||
n_lo >>= 1; \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* warn C4100: unreferenced formal parameter */
|
||||
#pragma warning(disable:4100)
|
||||
|
||||
/* warn C4127: conditional expression is constant */
|
||||
#pragma warning(disable:4127)
|
||||
|
||||
/* warn C4706: assignment within conditional expression */
|
||||
#pragma warning(disable:4706)
|
||||
|
||||
/* warn C4131: uses old-style declarator (iASL compiler only) */
|
||||
#pragma warning(disable:4131)
|
||||
|
||||
|
||||
#endif /* __ACMSVC_H__ */
|
@ -1,188 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acnetbsd.h - OS specific defines, etc.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACNETBSD_H__
|
||||
#define __ACNETBSD_H__
|
||||
|
||||
/* NetBSD uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
|
||||
#ifdef _LP64
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
#else
|
||||
#define ACPI_MACHINE_WIDTH 32
|
||||
#endif
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 int64_t
|
||||
#define COMPILER_DEPENDENT_UINT64 uint64_t
|
||||
|
||||
#ifdef _KERNEL
|
||||
#include "opt_acpi.h" /* collect build-time options here */
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <machine/stdarg.h>
|
||||
#include <machine/acpi_func.h>
|
||||
|
||||
#define asm __asm
|
||||
|
||||
#define ACPI_USE_NATIVE_DIVIDE
|
||||
|
||||
#define ACPI_SYSTEM_XFACE
|
||||
#define ACPI_EXTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_VAR_XFACE
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
#define ACPI_DEBUG_OUTPUT
|
||||
#define ACPI_DBG_TRACK_ALLOCATIONS
|
||||
#ifdef DEBUGGER_THREADING
|
||||
#undef DEBUGGER_THREADING
|
||||
#endif /* DEBUGGER_THREADING */
|
||||
#define DEBUGGER_THREADING 0 /* integrated with DDB */
|
||||
#include "opt_ddb.h"
|
||||
#ifdef DDB
|
||||
#define ACPI_DISASSEMBLER
|
||||
#define ACPI_DEBUGGER
|
||||
#endif /* DDB */
|
||||
#endif /* ACPI_DEBUG */
|
||||
|
||||
static __inline int
|
||||
isprint(int ch)
|
||||
{
|
||||
return(isspace(ch) || isascii(ch));
|
||||
}
|
||||
|
||||
#else /* _KERNEL */
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
/* Not building kernel code, so use libc */
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
#define __cli()
|
||||
#define __sti()
|
||||
|
||||
/* XXX */
|
||||
#define __inline inline
|
||||
|
||||
#endif /* _KERNEL */
|
||||
|
||||
/* Always use NetBSD code over our local versions */
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#define ACPI_USE_NATIVE_DIVIDE
|
||||
|
||||
#endif /* __ACNETBSD_H__ */
|
@ -1,172 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acos2.h - OS/2 specific defines, etc.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACOS2_H__
|
||||
#define __ACOS2_H__
|
||||
#define INCL_LONGLONG
|
||||
#include <os2.h>
|
||||
|
||||
|
||||
#define ACPI_MACHINE_WIDTH 32
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 long long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long long
|
||||
#define ACPI_USE_NATIVE_DIVIDE
|
||||
|
||||
#define ACPI_SYSTEM_XFACE APIENTRY
|
||||
#define ACPI_EXTERNAL_XFACE APIENTRY
|
||||
#define ACPI_INTERNAL_XFACE APIENTRY
|
||||
#define ACPI_INTERNAL_VAR_XFACE APIENTRY
|
||||
|
||||
/*
|
||||
* Some compilers complain about unused variables. Sometimes we don't want to
|
||||
* use all the variables (most specifically for _THIS_MODULE). This allow us
|
||||
* to to tell the compiler warning in a per-variable manner that a variable
|
||||
* is unused.
|
||||
*/
|
||||
#define ACPI_UNUSED_VAR
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
#include <io.h>
|
||||
|
||||
#define ACPI_FLUSH_CPU_CACHE() Wbinvd()
|
||||
void Wbinvd(void);
|
||||
|
||||
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) Acq = OSPMAcquireGlobalLock(GLptr)
|
||||
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pnd) Pnd = OSPMReleaseGlobalLock(GLptr)
|
||||
unsigned short OSPMAcquireGlobalLock (void *);
|
||||
unsigned short OSPMReleaseGlobalLock (void *);
|
||||
|
||||
#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \
|
||||
{ \
|
||||
unsigned long long val = 0LL; \
|
||||
val = n_lo | ( ((unsigned long long)h_hi) << 32 ); \
|
||||
__llrotr (val,1); \
|
||||
n_hi = (unsigned long)((val >> 32 ) & 0xffffffff ); \
|
||||
n_lo = (unsigned long)(val & 0xffffffff); \
|
||||
}
|
||||
|
||||
/* IBM VAC does not have inline */
|
||||
|
||||
#if __IBMC__ || __IBMCPP__
|
||||
#define inline
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_ASL_COMPILER
|
||||
#define ACPI_USE_LOCAL_CACHE
|
||||
#undef ACPI_DEBUGGER
|
||||
#endif
|
||||
|
||||
#endif /* __ACOS2_H__ */
|
@ -1,220 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acwin.h - OS specific defines, etc.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACWIN_H__
|
||||
#define __ACWIN_H__
|
||||
|
||||
/*! [Begin] no source code translation (Keep the include) */
|
||||
|
||||
/* Windows uses VC */
|
||||
#ifdef _MSC_VER
|
||||
#include "acmsvc.h"
|
||||
#endif
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
#define ACPI_MACHINE_WIDTH 32
|
||||
|
||||
#define inline __inline
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
#ifdef ACPI_DEFINE_ALTERNATE_TYPES
|
||||
/*
|
||||
* Types used only in (Linux) translated source, defined here to enable
|
||||
* cross-platform compilation (i.e., generate the Linux code on Windows,
|
||||
* for test purposes only)
|
||||
*/
|
||||
typedef int s32;
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned short u16;
|
||||
typedef unsigned int u32;
|
||||
typedef COMPILER_DEPENDENT_UINT64 u64;
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Handle platform- and compiler-specific assembly language differences.
|
||||
*
|
||||
* Notes:
|
||||
* 1) Interrupt 3 is used to break into a debugger
|
||||
* 2) Interrupts are turned off during ACPI register setup
|
||||
*/
|
||||
|
||||
/*! [Begin] no source code translation */
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
#define ACPI_FLUSH_CPU_CACHE()
|
||||
#else
|
||||
#define ACPI_FLUSH_CPU_CACHE() __asm {WBINVD}
|
||||
#endif
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define ACPI_SIMPLE_RETURN_MACROS
|
||||
#endif
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
/*
|
||||
* Global Lock acquire/release code
|
||||
*
|
||||
* Note: Handles case where the FACS pointer is null
|
||||
*/
|
||||
#define ACPI_ACQUIRE_GLOBAL_LOCK(FacsPtr, Acq) __asm \
|
||||
{ \
|
||||
__asm mov eax, 0xFF \
|
||||
__asm mov ecx, FacsPtr \
|
||||
__asm or ecx, ecx \
|
||||
__asm jz exit_acq \
|
||||
__asm lea ecx, [ecx].GlobalLock \
|
||||
\
|
||||
__asm acq10: \
|
||||
__asm mov eax, [ecx] \
|
||||
__asm mov edx, eax \
|
||||
__asm and edx, 0xFFFFFFFE \
|
||||
__asm bts edx, 1 \
|
||||
__asm adc edx, 0 \
|
||||
__asm lock cmpxchg dword ptr [ecx], edx \
|
||||
__asm jnz acq10 \
|
||||
\
|
||||
__asm cmp dl, 3 \
|
||||
__asm sbb eax, eax \
|
||||
\
|
||||
__asm exit_acq: \
|
||||
__asm mov Acq, al \
|
||||
}
|
||||
|
||||
#define ACPI_RELEASE_GLOBAL_LOCK(FacsPtr, Pnd) __asm \
|
||||
{ \
|
||||
__asm xor eax, eax \
|
||||
__asm mov ecx, FacsPtr \
|
||||
__asm or ecx, ecx \
|
||||
__asm jz exit_rel \
|
||||
__asm lea ecx, [ecx].GlobalLock \
|
||||
\
|
||||
__asm Rel10: \
|
||||
__asm mov eax, [ecx] \
|
||||
__asm mov edx, eax \
|
||||
__asm and edx, 0xFFFFFFFC \
|
||||
__asm lock cmpxchg dword ptr [ecx], edx \
|
||||
__asm jnz Rel10 \
|
||||
\
|
||||
__asm cmp dl, 3 \
|
||||
__asm and eax, 1 \
|
||||
\
|
||||
__asm exit_rel: \
|
||||
__asm mov Pnd, al \
|
||||
}
|
||||
|
||||
#endif /* __ACWIN_H__ */
|
@ -1,155 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acwin.h - OS specific defines, etc.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACWIN64_H__
|
||||
#define __ACWIN64_H__
|
||||
|
||||
/*! [Begin] no source code translation (Keep the include) */
|
||||
|
||||
#include "acintel.h"
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
/*
|
||||
* Handle platform- and compiler-specific assembly language differences.
|
||||
*
|
||||
* Notes:
|
||||
* 1) Interrupt 3 is used to break into a debugger
|
||||
* 2) Interrupts are turned off during ACPI register setup
|
||||
*/
|
||||
|
||||
/*! [Begin] no source code translation */
|
||||
|
||||
#define ACPI_FLUSH_CPU_CACHE()
|
||||
|
||||
/*
|
||||
* For Acpi applications, we don't want to try to access the global lock
|
||||
*/
|
||||
#ifdef ACPI_APPLICATION
|
||||
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) if (AcpiGbl_GlobalLockPresent) {Acq = 0xFF;} else {Acq = 0;}
|
||||
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pnd) if (AcpiGbl_GlobalLockPresent) {Pnd = 0xFF;} else {Pnd = 0;}
|
||||
#else
|
||||
|
||||
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq)
|
||||
|
||||
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pnd)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __ACWIN_H__ */
|
@ -1,146 +0,0 @@
|
||||
PROG= acpiexec
|
||||
SRCS= aetables.c aehandlers.c aeexec.c aemain.c \
|
||||
../../common/getopt.c \
|
||||
../../debugger/dbcmds.c \
|
||||
../../debugger/dbdisply.c \
|
||||
../../debugger/dbexec.c \
|
||||
../../debugger/dbfileio.c \
|
||||
../../debugger/dbhistry.c \
|
||||
../../debugger/dbinput.c \
|
||||
../../debugger/dbstats.c \
|
||||
../../debugger/dbutils.c \
|
||||
../../debugger/dbxface.c \
|
||||
../../disassembler/dmbuffer.c \
|
||||
../../disassembler/dmnames.c \
|
||||
../../disassembler/dmobject.c \
|
||||
../../disassembler/dmopcode.c \
|
||||
../../disassembler/dmresrc.c \
|
||||
../../disassembler/dmresrcl.c \
|
||||
../../disassembler/dmresrcs.c \
|
||||
../../disassembler/dmutils.c \
|
||||
../../disassembler/dmwalk.c \
|
||||
../../events/evevent.c \
|
||||
../../events/evgpeblk.c \
|
||||
../../events/evgpe.c \
|
||||
../../events/evmisc.c \
|
||||
../../events/evregion.c \
|
||||
../../events/evrgnini.c \
|
||||
../../events/evsci.c \
|
||||
../../events/evxface.c \
|
||||
../../events/evxfevnt.c \
|
||||
../../events/evxfregn.c \
|
||||
../../hardware/hwacpi.c \
|
||||
../../hardware/hwgpe.c \
|
||||
../../hardware/hwregs.c \
|
||||
../../hardware/hwsleep.c \
|
||||
../../hardware/hwvalid.c \
|
||||
../../hardware/hwxface.c \
|
||||
../../dispatcher/dsfield.c \
|
||||
../../dispatcher/dsinit.c \
|
||||
../../dispatcher/dsmethod.c \
|
||||
../../dispatcher/dsmthdat.c \
|
||||
../../dispatcher/dsobject.c \
|
||||
../../dispatcher/dsopcode.c \
|
||||
../../dispatcher/dsutils.c \
|
||||
../../dispatcher/dswexec.c \
|
||||
../../dispatcher/dswload.c \
|
||||
../../dispatcher/dswscope.c \
|
||||
../../dispatcher/dswstate.c \
|
||||
../../executer/exconfig.c \
|
||||
../../executer/exconvrt.c \
|
||||
../../executer/excreate.c \
|
||||
../../executer/exdump.c \
|
||||
../../executer/exfield.c \
|
||||
../../executer/exfldio.c \
|
||||
../../executer/exmisc.c \
|
||||
../../executer/exmutex.c \
|
||||
../../executer/exnames.c \
|
||||
../../executer/exoparg1.c \
|
||||
../../executer/exoparg2.c \
|
||||
../../executer/exoparg3.c \
|
||||
../../executer/exoparg6.c \
|
||||
../../executer/exprep.c \
|
||||
../../executer/exregion.c \
|
||||
../../executer/exresnte.c \
|
||||
../../executer/exresolv.c \
|
||||
../../executer/exresop.c \
|
||||
../../executer/exstore.c \
|
||||
../../executer/exstoren.c \
|
||||
../../executer/exstorob.c \
|
||||
../../executer/exsystem.c \
|
||||
../../executer/exutils.c \
|
||||
../../parser/psargs.c \
|
||||
../../parser/psloop.c \
|
||||
../../parser/psopcode.c \
|
||||
../../parser/psparse.c \
|
||||
../../parser/psscope.c \
|
||||
../../parser/pstree.c \
|
||||
../../parser/psutils.c \
|
||||
../../parser/pswalk.c \
|
||||
../../parser/psxface.c \
|
||||
../../namespace/nsaccess.c \
|
||||
../../namespace/nsalloc.c \
|
||||
../../namespace/nsdump.c \
|
||||
../../namespace/nsdumpdv.c \
|
||||
../../namespace/nseval.c \
|
||||
../../namespace/nsinit.c \
|
||||
../../namespace/nsload.c \
|
||||
../../namespace/nsnames.c \
|
||||
../../namespace/nsobject.c \
|
||||
../../namespace/nsparse.c \
|
||||
../../namespace/nspredef.c \
|
||||
../../namespace/nssearch.c \
|
||||
../../namespace/nsutils.c \
|
||||
../../namespace/nswalk.c \
|
||||
../../namespace/nsxfeval.c \
|
||||
../../namespace/nsxfname.c \
|
||||
../../namespace/nsxfobj.c \
|
||||
../../resources/rsaddr.c \
|
||||
../../resources/rscalc.c \
|
||||
../../resources/rscreate.c \
|
||||
../../resources/rsdump.c \
|
||||
../../resources/rsio.c \
|
||||
../../resources/rsinfo.c \
|
||||
../../resources/rsirq.c \
|
||||
../../resources/rslist.c \
|
||||
../../resources/rsmemory.c \
|
||||
../../resources/rsmisc.c \
|
||||
../../resources/rsutils.c \
|
||||
../../resources/rsxface.c \
|
||||
../../tables/tbfadt.c \
|
||||
../../tables/tbfind.c \
|
||||
../../tables/tbinstal.c \
|
||||
../../tables/tbutils.c \
|
||||
../../tables/tbxface.c \
|
||||
../../tables/tbxfroot.c \
|
||||
../../utilities/utalloc.c \
|
||||
../../utilities/utcache.c \
|
||||
../../utilities/utcopy.c \
|
||||
../../utilities/utdebug.c \
|
||||
../../utilities/utdelete.c \
|
||||
../../utilities/uteval.c \
|
||||
../../utilities/utglobal.c \
|
||||
../../utilities/utinit.c \
|
||||
../../utilities/utlock.c \
|
||||
../../utilities/utmath.c \
|
||||
../../utilities/utmisc.c \
|
||||
../../utilities/utmutex.c \
|
||||
../../utilities/utobject.c \
|
||||
../../utilities/utresrc.c \
|
||||
../../utilities/utstate.c \
|
||||
../../utilities/uttrack.c \
|
||||
../../utilities/utxface.c \
|
||||
../../osunixxf.c
|
||||
|
||||
|
||||
CFLAGS+= -Wall -g -D_LINUX -DNDEBUG -D_CONSOLE -DACPI_EXEC_APP -D_MULTI_THREADED -Wstrict-prototypes -I../../include
|
||||
|
||||
|
||||
acpiexec : $(patsubst %.c,%.o, $(SRCS))
|
||||
$(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -lrt -lpthread -o $(PROG)
|
||||
|
||||
CLEANFILES= $(PROG)
|
||||
|
||||
clean :
|
||||
rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS))
|
||||
|
@ -1,589 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: aeexec - Support routines for AcpiExec utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "aecommon.h"
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("aeexec")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
ACPI_STATUS
|
||||
AeSetupConfiguration (
|
||||
void *RegionAddr);
|
||||
|
||||
void
|
||||
AfInstallGpeBlock (
|
||||
void);
|
||||
|
||||
void
|
||||
AeTestBufferArgument (
|
||||
void);
|
||||
|
||||
void
|
||||
AeTestPackageArgument (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AeGetDevices (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
ExecuteOSI (
|
||||
char *OsiString,
|
||||
UINT32 ExpectedResult);
|
||||
|
||||
void
|
||||
AeHardwareInterfaces (
|
||||
void);
|
||||
|
||||
extern unsigned char Ssdt3Code[];
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeSetupConfiguration
|
||||
*
|
||||
* PARAMETERS: RegionAddr - Address for an ACPI table to be loaded
|
||||
* dynamically. Test purposes only.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Call AML _CFG configuration control method
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AeSetupConfiguration (
|
||||
void *RegionAddr)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_OBJECT_LIST ArgList;
|
||||
ACPI_OBJECT Arg[3];
|
||||
|
||||
|
||||
/*
|
||||
* Invoke _CFG method if present
|
||||
*/
|
||||
ArgList.Count = 1;
|
||||
ArgList.Pointer = Arg;
|
||||
|
||||
Arg[0].Type = ACPI_TYPE_INTEGER;
|
||||
Arg[0].Integer.Value = ACPI_TO_INTEGER (RegionAddr);
|
||||
|
||||
Status = AcpiEvaluateObject (NULL, "\\_CFG", &ArgList, NULL);
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AfInstallGpeBlock
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Various GPE initialization
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
AfInstallGpeBlock (
|
||||
void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_HANDLE Handle;
|
||||
ACPI_HANDLE Handle2 = NULL;
|
||||
ACPI_HANDLE Handle3 = NULL;
|
||||
ACPI_GENERIC_ADDRESS BlockAddress;
|
||||
ACPI_HANDLE GpeDevice;
|
||||
|
||||
|
||||
Status = AcpiGetHandle (NULL, "\\_GPE", &Handle);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
BlockAddress.SpaceId = 0;
|
||||
BlockAddress.Address = 0x76540000;
|
||||
|
||||
#ifdef _OBSOLETE
|
||||
Status = AcpiInstallGpeBlock (Handle, &BlockAddress, 4, 8);
|
||||
#endif
|
||||
|
||||
/* Above should fail, ignore */
|
||||
|
||||
Status = AcpiGetHandle (NULL, "\\GPE2", &Handle2);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
Status = AcpiInstallGpeBlock (Handle2, &BlockAddress, 8, 8);
|
||||
|
||||
AcpiInstallGpeHandler (Handle2, 8, ACPI_GPE_LEVEL_TRIGGERED, AeGpeHandler, NULL);
|
||||
AcpiSetGpeType (Handle2, 8, ACPI_GPE_TYPE_WAKE);
|
||||
AcpiEnableGpe (Handle2, 8, 0);
|
||||
|
||||
Status = AcpiGetGpeDevice (0x30, &GpeDevice);
|
||||
Status = AcpiGetGpeDevice (0x42, &GpeDevice);
|
||||
Status = AcpiGetGpeDevice (AcpiCurrentGpeCount-1, &GpeDevice);
|
||||
Status = AcpiGetGpeDevice (AcpiCurrentGpeCount, &GpeDevice);
|
||||
|
||||
AcpiRemoveGpeHandler (Handle2, 8, AeGpeHandler);
|
||||
|
||||
Status = AcpiRemoveGpeBlock (Handle2);
|
||||
}
|
||||
|
||||
Status = AcpiGetHandle (NULL, "\\GPE3", &Handle3);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
Status = AcpiInstallGpeBlock (Handle3, &BlockAddress, 8, 11);
|
||||
}
|
||||
|
||||
#ifdef _OBSOLETE
|
||||
Status = AcpiRemoveGpeBlock (Handle);
|
||||
Status = AcpiRemoveGpeBlock (Handle2);
|
||||
Status = AcpiRemoveGpeBlock (Handle3);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/* Test using a Buffer object as a method argument */
|
||||
|
||||
void
|
||||
AeTestBufferArgument (
|
||||
void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_OBJECT_LIST Params;
|
||||
ACPI_OBJECT BufArg;
|
||||
UINT8 Buffer[] = {
|
||||
0,0,0,0,
|
||||
4,0,0,0,
|
||||
1,2,3,4};
|
||||
|
||||
|
||||
BufArg.Type = ACPI_TYPE_BUFFER;
|
||||
BufArg.Buffer.Length = 12;
|
||||
BufArg.Buffer.Pointer = Buffer;
|
||||
|
||||
Params.Count = 1;
|
||||
Params.Pointer = &BufArg;
|
||||
|
||||
|
||||
Status = AcpiEvaluateObject (NULL, "\\BUF", &Params, NULL);
|
||||
}
|
||||
|
||||
|
||||
ACPI_OBJECT PkgArg;
|
||||
ACPI_OBJECT PkgElements[5];
|
||||
ACPI_OBJECT Pkg2Elements[5];
|
||||
ACPI_OBJECT_LIST Params;
|
||||
|
||||
|
||||
/*
|
||||
* Test using a Package object as an method argument
|
||||
*/
|
||||
void
|
||||
AeTestPackageArgument (
|
||||
void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Main package */
|
||||
|
||||
PkgArg.Type = ACPI_TYPE_PACKAGE;
|
||||
PkgArg.Package.Count = 4;
|
||||
PkgArg.Package.Elements = PkgElements;
|
||||
|
||||
/* Main package elements */
|
||||
|
||||
PkgElements[0].Type = ACPI_TYPE_INTEGER;
|
||||
PkgElements[0].Integer.Value = 0x22228888;
|
||||
|
||||
PkgElements[1].Type = ACPI_TYPE_STRING;
|
||||
PkgElements[1].String.Length = sizeof ("Top-level package");
|
||||
PkgElements[1].String.Pointer = "Top-level package";
|
||||
|
||||
PkgElements[2].Type = ACPI_TYPE_BUFFER;
|
||||
PkgElements[2].Buffer.Length = sizeof ("XXXX");
|
||||
PkgElements[2].Buffer.Pointer = (UINT8 *) "XXXX";
|
||||
|
||||
PkgElements[3].Type = ACPI_TYPE_PACKAGE;
|
||||
PkgElements[3].Package.Count = 2;
|
||||
PkgElements[3].Package.Elements = Pkg2Elements;
|
||||
|
||||
/* Sub-package elements */
|
||||
|
||||
Pkg2Elements[0].Type = ACPI_TYPE_INTEGER;
|
||||
Pkg2Elements[0].Integer.Value = 0xAAAABBBB;
|
||||
|
||||
Pkg2Elements[1].Type = ACPI_TYPE_STRING;
|
||||
Pkg2Elements[1].String.Length = sizeof ("Nested Package");
|
||||
Pkg2Elements[1].String.Pointer = "Nested Package";
|
||||
|
||||
/* Parameter object */
|
||||
|
||||
Params.Count = 1;
|
||||
Params.Pointer = &PkgArg;
|
||||
|
||||
Status = AcpiEvaluateObject (NULL, "\\_PKG", &Params, NULL);
|
||||
}
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AeGetDevices (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue)
|
||||
{
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: ExecuteOSI
|
||||
*
|
||||
* PARAMETERS: OsiString - String passed to _OSI method
|
||||
* ExpectedResult - 0 (FALSE) or 0xFFFFFFFF (TRUE)
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Execute the internally implemented (in ACPICA) _OSI method.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
ExecuteOSI (
|
||||
char *OsiString,
|
||||
UINT32 ExpectedResult)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_OBJECT_LIST ArgList;
|
||||
ACPI_OBJECT Arg[1];
|
||||
ACPI_BUFFER ReturnValue;
|
||||
ACPI_OBJECT *Obj;
|
||||
|
||||
|
||||
/* Setup input argument */
|
||||
|
||||
ArgList.Count = 1;
|
||||
ArgList.Pointer = Arg;
|
||||
|
||||
Arg[0].Type = ACPI_TYPE_STRING;
|
||||
Arg[0].String.Pointer = OsiString;
|
||||
Arg[0].String.Length = strlen (Arg[0].String.Pointer);
|
||||
|
||||
/* Ask ACPICA to allocate space for the return object */
|
||||
|
||||
ReturnValue.Length = ACPI_ALLOCATE_BUFFER;
|
||||
|
||||
Status = AcpiEvaluateObject (NULL, "\\_OSI", &ArgList, &ReturnValue);
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("Could not execute _OSI method, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
if (ReturnValue.Length < sizeof (ACPI_OBJECT))
|
||||
{
|
||||
AcpiOsPrintf ("Return value from _OSI method too small, %.8X\n",
|
||||
ReturnValue.Length);
|
||||
return (AE_ERROR);
|
||||
}
|
||||
|
||||
Obj = ReturnValue.Pointer;
|
||||
if (Obj->Type != ACPI_TYPE_INTEGER)
|
||||
{
|
||||
AcpiOsPrintf ("Invalid return type from _OSI method, %.2X\n", Obj->Type);
|
||||
return (AE_ERROR);
|
||||
}
|
||||
|
||||
if (Obj->Integer.Value != ExpectedResult)
|
||||
{
|
||||
AcpiOsPrintf ("Invalid return value from _OSI, expected %.8X found %.8X\n",
|
||||
ExpectedResult, (UINT32) Obj->Integer.Value);
|
||||
return (AE_ERROR);
|
||||
}
|
||||
|
||||
/* Reset the OSI data */
|
||||
|
||||
AcpiGbl_OsiData = 0;
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeHardwareInterfaces
|
||||
*
|
||||
* DESCRIPTION: Call various hardware support interfaces
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
AeHardwareInterfaces (
|
||||
void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Value;
|
||||
|
||||
|
||||
|
||||
Status = AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, 1);
|
||||
Status = AcpiWriteBitRegister (ACPI_BITREG_GLOBAL_LOCK_ENABLE, 1);
|
||||
Status = AcpiWriteBitRegister (ACPI_BITREG_SLEEP_ENABLE, 1);
|
||||
Status = AcpiWriteBitRegister (ACPI_BITREG_ARB_DISABLE, 1);
|
||||
|
||||
Status = AcpiReadBitRegister (ACPI_BITREG_WAKE_STATUS, &Value);
|
||||
Status = AcpiReadBitRegister (ACPI_BITREG_GLOBAL_LOCK_ENABLE, &Value);
|
||||
Status = AcpiReadBitRegister (ACPI_BITREG_SLEEP_ENABLE, &Value);
|
||||
Status = AcpiReadBitRegister (ACPI_BITREG_ARB_DISABLE, &Value);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeMiscellaneousTests
|
||||
*
|
||||
* DESCRIPTION: Various ACPICA validation tests.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
AeMiscellaneousTests (
|
||||
void)
|
||||
{
|
||||
ACPI_HANDLE Handle;
|
||||
ACPI_BUFFER ReturnBuf;
|
||||
char Buffer[32];
|
||||
ACPI_VENDOR_UUID Uuid = {0, {ACPI_INIT_UUID (0,0,0,0,0,0,0,0,0,0,0)}};
|
||||
ACPI_STATUS Status;
|
||||
UINT32 LockHandle1;
|
||||
UINT32 LockHandle2;
|
||||
ACPI_STATISTICS Stats;
|
||||
|
||||
|
||||
AeHardwareInterfaces ();
|
||||
AeSetupConfiguration (Ssdt3Code);
|
||||
|
||||
AeTestBufferArgument();
|
||||
AeTestPackageArgument ();
|
||||
ExecuteOSI ("Windows 2001", 0xFFFFFFFF);
|
||||
ExecuteOSI ("MichiganTerminalSystem", 0);
|
||||
|
||||
|
||||
ReturnBuf.Length = 32;
|
||||
ReturnBuf.Pointer = Buffer;
|
||||
|
||||
AcpiGetName (AcpiGbl_RootNode, ACPI_FULL_PATHNAME, &ReturnBuf);
|
||||
AcpiEnableEvent (ACPI_EVENT_GLOBAL, 0);
|
||||
|
||||
AcpiInstallGpeHandler (NULL, 0, ACPI_GPE_LEVEL_TRIGGERED, AeGpeHandler, NULL);
|
||||
AcpiSetGpeType (NULL, 0, ACPI_GPE_TYPE_WAKE_RUN);
|
||||
AcpiEnableGpe (NULL, 0, ACPI_NOT_ISR);
|
||||
AcpiRemoveGpeHandler (NULL, 0, AeGpeHandler);
|
||||
|
||||
AcpiInstallGpeHandler (NULL, 0, ACPI_GPE_LEVEL_TRIGGERED, AeGpeHandler, NULL);
|
||||
AcpiSetGpeType (NULL, 0, ACPI_GPE_TYPE_WAKE_RUN);
|
||||
AcpiEnableGpe (NULL, 0, ACPI_NOT_ISR);
|
||||
|
||||
AcpiInstallGpeHandler (NULL, 1, ACPI_GPE_EDGE_TRIGGERED, AeGpeHandler, NULL);
|
||||
AcpiSetGpeType (NULL, 1, ACPI_GPE_TYPE_RUNTIME);
|
||||
AcpiEnableGpe (NULL, 1, ACPI_NOT_ISR);
|
||||
|
||||
AcpiInstallGpeHandler (NULL, 2, ACPI_GPE_LEVEL_TRIGGERED, AeGpeHandler, NULL);
|
||||
AcpiSetGpeType (NULL, 2, ACPI_GPE_TYPE_WAKE);
|
||||
AcpiEnableGpe (NULL, 2, ACPI_NOT_ISR);
|
||||
|
||||
AcpiInstallGpeHandler (NULL, 3, ACPI_GPE_EDGE_TRIGGERED, AeGpeHandler, NULL);
|
||||
AcpiSetGpeType (NULL, 3, ACPI_GPE_TYPE_WAKE_RUN);
|
||||
|
||||
AcpiInstallGpeHandler (NULL, 4, ACPI_GPE_LEVEL_TRIGGERED, AeGpeHandler, NULL);
|
||||
AcpiSetGpeType (NULL, 4, ACPI_GPE_TYPE_RUNTIME);
|
||||
|
||||
AcpiInstallGpeHandler (NULL, 5, ACPI_GPE_EDGE_TRIGGERED, AeGpeHandler, NULL);
|
||||
AcpiSetGpeType (NULL, 5, ACPI_GPE_TYPE_WAKE);
|
||||
|
||||
AcpiInstallGpeHandler (NULL, 0x19, ACPI_GPE_LEVEL_TRIGGERED, AeGpeHandler, NULL);
|
||||
AcpiSetGpeType (NULL, 0x19, ACPI_GPE_TYPE_WAKE_RUN);
|
||||
AcpiEnableGpe (NULL, 0x19, ACPI_NOT_ISR);
|
||||
|
||||
AfInstallGpeBlock ();
|
||||
|
||||
|
||||
Status = AcpiGetHandle (NULL, "RSRC", &Handle);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
ReturnBuf.Length = ACPI_ALLOCATE_BUFFER;
|
||||
|
||||
Status = AcpiGetVendorResource (Handle, "_CRS", &Uuid, &ReturnBuf);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
AcpiOsFree (ReturnBuf.Pointer);
|
||||
}
|
||||
}
|
||||
|
||||
/* Test global lock */
|
||||
|
||||
Status = AcpiAcquireGlobalLock (0xFFFF, &LockHandle1);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("Could not get GlobalLock, %X\n", Status);
|
||||
}
|
||||
|
||||
Status = AcpiAcquireGlobalLock (0x5, &LockHandle2);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("Could not get GlobalLock, %X\n", Status);
|
||||
}
|
||||
|
||||
Status = AcpiReleaseGlobalLock (LockHandle1);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("Could not release GlobalLock, %X\n", Status);
|
||||
}
|
||||
|
||||
Status = AcpiReleaseGlobalLock (LockHandle2);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("Could not release GlobalLock, %X\n", Status);
|
||||
}
|
||||
|
||||
/* Get Devices */
|
||||
|
||||
Status = AcpiGetDevices (NULL, AeGetDevices, NULL, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("Could not AcpiGetDevices, %X\n", Status);
|
||||
}
|
||||
|
||||
Status = AcpiGetStatistics (&Stats);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("Could not AcpiGetStatistics, %X\n", Status);
|
||||
}
|
||||
}
|
||||
|
@ -1,909 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: aehandlers - Various handlers for acpiexec
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "aecommon.h"
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("aehandlers")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
void
|
||||
AeNotifyHandler (
|
||||
ACPI_HANDLE Device,
|
||||
UINT32 Value,
|
||||
void *Context);
|
||||
|
||||
void
|
||||
AeDeviceNotifyHandler (
|
||||
ACPI_HANDLE Device,
|
||||
UINT32 Value,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AeExceptionHandler (
|
||||
ACPI_STATUS AmlStatus,
|
||||
ACPI_NAME Name,
|
||||
UINT16 Opcode,
|
||||
UINT32 AmlOffset,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AeTableHandler (
|
||||
UINT32 Event,
|
||||
void *Table,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AeRegionInit (
|
||||
ACPI_HANDLE RegionHandle,
|
||||
UINT32 Function,
|
||||
void *HandlerContext,
|
||||
void **RegionContext);
|
||||
|
||||
|
||||
UINT32 SigintCount = 0;
|
||||
AE_DEBUG_REGIONS AeRegions;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeCtrlCHandler
|
||||
*
|
||||
* PARAMETERS: Sig
|
||||
*
|
||||
* RETURN: none
|
||||
*
|
||||
* DESCRIPTION: Control-C handler. Abort running control method if any.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void __cdecl
|
||||
AeCtrlCHandler (
|
||||
int Sig)
|
||||
{
|
||||
|
||||
signal (SIGINT, SIG_IGN);
|
||||
SigintCount++;
|
||||
|
||||
AcpiOsPrintf ("Caught a ctrl-c (#%d)\n\n", SigintCount);
|
||||
|
||||
if (AcpiGbl_MethodExecuting)
|
||||
{
|
||||
AcpiGbl_AbortMethod = TRUE;
|
||||
signal (SIGINT, AeCtrlCHandler);
|
||||
|
||||
if (SigintCount < 10)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeNotifyHandler
|
||||
*
|
||||
* PARAMETERS: Standard notify handler parameters
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: System notify handler for AcpiExec utility. Used by the ASL
|
||||
* test suite(s) to communicate errors and other information to
|
||||
* this utility via the Notify() operator.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
AeNotifyHandler (
|
||||
ACPI_HANDLE Device,
|
||||
UINT32 Value,
|
||||
void *Context)
|
||||
{
|
||||
|
||||
switch (Value)
|
||||
{
|
||||
#if 0
|
||||
case 0:
|
||||
printf ("[AcpiExec] Method Error 0x%X: Results not equal\n", Value);
|
||||
if (AcpiGbl_DebugFile)
|
||||
{
|
||||
AcpiOsPrintf ("[AcpiExec] Method Error: Results not equal\n");
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 1:
|
||||
printf ("[AcpiExec] Method Error: Incorrect numeric result\n");
|
||||
if (AcpiGbl_DebugFile)
|
||||
{
|
||||
AcpiOsPrintf ("[AcpiExec] Method Error: Incorrect numeric result\n");
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 2:
|
||||
printf ("[AcpiExec] Method Error: An operand was overwritten\n");
|
||||
if (AcpiGbl_DebugFile)
|
||||
{
|
||||
AcpiOsPrintf ("[AcpiExec] Method Error: An operand was overwritten\n");
|
||||
}
|
||||
break;
|
||||
|
||||
#endif
|
||||
|
||||
default:
|
||||
printf ("[AcpiExec] Received a System Notify on [%4.4s] %p Value 0x%2.2X (%s)\n",
|
||||
AcpiUtGetNodeName (Device), Device, Value,
|
||||
AcpiUtGetNotifyName (Value));
|
||||
if (AcpiGbl_DebugFile)
|
||||
{
|
||||
AcpiOsPrintf ("[AcpiExec] Received a system notify, Value 0x%2.2X\n", Value);
|
||||
}
|
||||
|
||||
(void) AcpiEvaluateObject (Device, "_NOT", NULL, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeDeviceNotifyHandler
|
||||
*
|
||||
* PARAMETERS: Standard notify handler parameters
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Device notify handler for AcpiExec utility. Used by the ASL
|
||||
* test suite(s) to communicate errors and other information to
|
||||
* this utility via the Notify() operator.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
AeDeviceNotifyHandler (
|
||||
ACPI_HANDLE Device,
|
||||
UINT32 Value,
|
||||
void *Context)
|
||||
{
|
||||
|
||||
printf ("[AcpiExec] Received a Device Notify on [%4.4s] %p Value 0x%2.2X (%s)\n",
|
||||
AcpiUtGetNodeName (Device), Device, Value,
|
||||
AcpiUtGetNotifyName (Value));
|
||||
if (AcpiGbl_DebugFile)
|
||||
{
|
||||
AcpiOsPrintf ("[AcpiExec] Received a device notify, Value 0x%2.2X\n", Value);
|
||||
}
|
||||
|
||||
(void) AcpiEvaluateObject (Device, "_NOT", NULL, NULL);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeExceptionHandler
|
||||
*
|
||||
* PARAMETERS: Standard exception handler parameters
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: System exception handler for AcpiExec utility.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AeExceptionHandler (
|
||||
ACPI_STATUS AmlStatus,
|
||||
ACPI_NAME Name,
|
||||
UINT16 Opcode,
|
||||
UINT32 AmlOffset,
|
||||
void *Context)
|
||||
{
|
||||
ACPI_STATUS NewAmlStatus = AmlStatus;
|
||||
ACPI_STATUS Status;
|
||||
ACPI_BUFFER ReturnObj;
|
||||
ACPI_OBJECT_LIST ArgList;
|
||||
ACPI_OBJECT Arg[3];
|
||||
const char *Exception;
|
||||
|
||||
|
||||
Exception = AcpiFormatException (AmlStatus);
|
||||
AcpiOsPrintf ("[AcpiExec] Exception %s during execution ", Exception);
|
||||
if (Name)
|
||||
{
|
||||
AcpiOsPrintf ("of method [%4.4s]", (char *) &Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf ("at module level (table load)");
|
||||
}
|
||||
AcpiOsPrintf (" Opcode [%s] @%X\n", AcpiPsGetOpcodeName (Opcode), AmlOffset);
|
||||
|
||||
/*
|
||||
* Invoke the _ERR method if present
|
||||
*
|
||||
* Setup parameter object
|
||||
*/
|
||||
ArgList.Count = 3;
|
||||
ArgList.Pointer = Arg;
|
||||
|
||||
Arg[0].Type = ACPI_TYPE_INTEGER;
|
||||
Arg[0].Integer.Value = AmlStatus;
|
||||
|
||||
Arg[1].Type = ACPI_TYPE_STRING;
|
||||
Arg[1].String.Pointer = ACPI_CAST_PTR (char, Exception);
|
||||
Arg[1].String.Length = ACPI_STRLEN (Exception);
|
||||
|
||||
Arg[2].Type = ACPI_TYPE_INTEGER;
|
||||
Arg[2].Integer.Value = ACPI_TO_INTEGER (AcpiOsGetThreadId());
|
||||
|
||||
/* Setup return buffer */
|
||||
|
||||
ReturnObj.Pointer = NULL;
|
||||
ReturnObj.Length = ACPI_ALLOCATE_BUFFER;
|
||||
|
||||
Status = AcpiEvaluateObject (NULL, "\\_ERR", &ArgList, &ReturnObj);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
if (ReturnObj.Pointer)
|
||||
{
|
||||
/* Override original status */
|
||||
|
||||
NewAmlStatus = (ACPI_STATUS)
|
||||
((ACPI_OBJECT *) ReturnObj.Pointer)->Integer.Value;
|
||||
|
||||
AcpiOsFree (ReturnObj.Pointer);
|
||||
}
|
||||
}
|
||||
else if (Status != AE_NOT_FOUND)
|
||||
{
|
||||
AcpiOsPrintf ("[AcpiExec] Could not execute _ERR method, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
/* Global override */
|
||||
|
||||
if (AcpiGbl_IgnoreErrors)
|
||||
{
|
||||
NewAmlStatus = AE_OK;
|
||||
}
|
||||
|
||||
if (NewAmlStatus != AmlStatus)
|
||||
{
|
||||
AcpiOsPrintf ("[AcpiExec] Exception override, new status %s\n",
|
||||
AcpiFormatException (NewAmlStatus));
|
||||
}
|
||||
|
||||
return (NewAmlStatus);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeTableHandler
|
||||
*
|
||||
* PARAMETERS: Table handler
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: System table handler for AcpiExec utility.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
char *TableEvents[] =
|
||||
{
|
||||
"LOAD",
|
||||
"UNLOAD",
|
||||
"UNKNOWN"
|
||||
};
|
||||
|
||||
ACPI_STATUS
|
||||
AeTableHandler (
|
||||
UINT32 Event,
|
||||
void *Table,
|
||||
void *Context)
|
||||
{
|
||||
|
||||
if (Event > ACPI_NUM_TABLE_EVENTS)
|
||||
{
|
||||
Event = ACPI_NUM_TABLE_EVENTS;
|
||||
}
|
||||
|
||||
/* TBD: could dump entire table header, need a header dump routine */
|
||||
|
||||
printf ("[AcpiExec] Table Event %s, [%4.4s] %p\n",
|
||||
TableEvents[Event], ((ACPI_TABLE_HEADER *) Table)->Signature, Table);
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeGpeHandler
|
||||
*
|
||||
* DESCRIPTION: GPE handler for acpiexec
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
UINT32
|
||||
AeGpeHandler (
|
||||
void *Context)
|
||||
{
|
||||
|
||||
|
||||
AcpiOsPrintf ("Received a GPE at handler\n");
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeRegionInit
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Opregion init function.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AeRegionInit (
|
||||
ACPI_HANDLE RegionHandle,
|
||||
UINT32 Function,
|
||||
void *HandlerContext,
|
||||
void **RegionContext)
|
||||
{
|
||||
/*
|
||||
* Real simple, set the RegionContext to the RegionHandle
|
||||
*/
|
||||
*RegionContext = RegionHandle;
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeInstallHandlers
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Install handlers for the AcpiExec utility.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_ADR_SPACE_TYPE SpaceId[] = {0, 1, 2, 3, 4, 5, 6, 0x80};
|
||||
#define AEXEC_NUM_REGIONS 8
|
||||
|
||||
ACPI_STATUS
|
||||
AeInstallHandlers (void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
UINT32 i;
|
||||
ACPI_HANDLE Handle;
|
||||
|
||||
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
Status = AcpiInstallTableHandler (AeTableHandler, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("Could not install table handler, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
Status = AcpiInstallExceptionHandler (AeExceptionHandler);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("Could not install exception handler, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
/* Install global notify handler */
|
||||
|
||||
Status = AcpiInstallNotifyHandler (ACPI_ROOT_OBJECT, ACPI_SYSTEM_NOTIFY,
|
||||
AeNotifyHandler, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("Could not install a global notify handler, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
Status = AcpiInstallNotifyHandler (ACPI_ROOT_OBJECT, ACPI_DEVICE_NOTIFY,
|
||||
AeDeviceNotifyHandler, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("Could not install a global notify handler, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
Status = AcpiGetHandle (NULL, "\\_SB", &Handle);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
Status = AcpiInstallNotifyHandler (Handle, ACPI_SYSTEM_NOTIFY,
|
||||
AeNotifyHandler, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("Could not install a notify handler, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
Status = AcpiRemoveNotifyHandler (Handle, ACPI_SYSTEM_NOTIFY,
|
||||
AeNotifyHandler);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("Could not remove a notify handler, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY,
|
||||
AeNotifyHandler, NULL);
|
||||
Status = AcpiRemoveNotifyHandler (Handle, ACPI_ALL_NOTIFY,
|
||||
AeNotifyHandler);
|
||||
Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY,
|
||||
AeNotifyHandler, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("Could not install a notify handler, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("No _SB_ found, %s\n", AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
/* Set a handler for all supported operation regions */
|
||||
|
||||
for (i = 0; i < AEXEC_NUM_REGIONS; i++)
|
||||
{
|
||||
Status = AcpiRemoveAddressSpaceHandler (AcpiGbl_RootNode,
|
||||
SpaceId[i], AeRegionHandler);
|
||||
|
||||
/* Install handler at the root object.
|
||||
* TBD: all default handlers should be installed here!
|
||||
*/
|
||||
Status = AcpiInstallAddressSpaceHandler (AcpiGbl_RootNode,
|
||||
SpaceId[i], AeRegionHandler, AeRegionInit, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status,
|
||||
"Could not install an OpRegion handler for %s space(%d)",
|
||||
AcpiUtGetRegionName((UINT8) SpaceId[i]), SpaceId[i]));
|
||||
return (Status);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize the global Region Handler space
|
||||
* MCW 3/23/00
|
||||
*/
|
||||
AeRegions.NumberOfRegions = 0;
|
||||
AeRegions.RegionList = NULL;
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeRegionHandler
|
||||
*
|
||||
* PARAMETERS: Standard region handler parameters
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Test handler - Handles some dummy regions via memory that can
|
||||
* be manipulated in Ring 3. Simulates actual reads and writes.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AeRegionHandler (
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
ACPI_INTEGER *Value,
|
||||
void *HandlerContext,
|
||||
void *RegionContext)
|
||||
{
|
||||
|
||||
ACPI_OPERAND_OBJECT *RegionObject = (ACPI_OPERAND_OBJECT*) RegionContext;
|
||||
ACPI_PHYSICAL_ADDRESS BaseAddress;
|
||||
ACPI_SIZE Length;
|
||||
BOOLEAN BufferExists;
|
||||
AE_REGION *RegionElement;
|
||||
void *BufferValue;
|
||||
ACPI_STATUS Status;
|
||||
UINT32 ByteWidth;
|
||||
UINT32 i;
|
||||
UINT8 SpaceId;
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME (AeRegionHandler);
|
||||
|
||||
/*
|
||||
* If the object is not a region, simply return
|
||||
*/
|
||||
if (RegionObject->Region.Type != ACPI_TYPE_REGION)
|
||||
{
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Region support can be disabled with the -r option.
|
||||
* We use this to support dynamically loaded tables where we pass a valid
|
||||
* address to the AML.
|
||||
*/
|
||||
if (AcpiGbl_DbOpt_NoRegionSupport)
|
||||
{
|
||||
BufferValue = ACPI_TO_POINTER (Address);
|
||||
ByteWidth = (BitWidth / 8);
|
||||
|
||||
if (BitWidth % 8)
|
||||
{
|
||||
ByteWidth += 1;
|
||||
}
|
||||
goto DoFunction;
|
||||
}
|
||||
|
||||
/*
|
||||
* Find the region's address space and length before searching
|
||||
* the linked list.
|
||||
*/
|
||||
BaseAddress = RegionObject->Region.Address;
|
||||
Length = (ACPI_SIZE) RegionObject->Region.Length;
|
||||
SpaceId = RegionObject->Region.SpaceId;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, "Operation Region request on %s at 0x%X\n",
|
||||
AcpiUtGetRegionName (RegionObject->Region.SpaceId),
|
||||
(UINT32) Address));
|
||||
|
||||
if (SpaceId == ACPI_ADR_SPACE_SYSTEM_IO)
|
||||
{
|
||||
/*
|
||||
* For I/O space, exercise the port validation
|
||||
*/
|
||||
switch (Function & ACPI_IO_MASK)
|
||||
{
|
||||
case ACPI_READ:
|
||||
Status = AcpiHwReadPort (Address, (UINT32 *) Value, BitWidth);
|
||||
break;
|
||||
|
||||
case ACPI_WRITE:
|
||||
Status = AcpiHwWritePort (Address, (UINT32) *Value, BitWidth);
|
||||
break;
|
||||
|
||||
default:
|
||||
Status = AE_BAD_PARAMETER;
|
||||
break;
|
||||
}
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Now go ahead and simulate the hardware */
|
||||
}
|
||||
|
||||
else if (SpaceId == ACPI_ADR_SPACE_SMBUS)
|
||||
{
|
||||
Length = 0;
|
||||
|
||||
switch (Function & ACPI_IO_MASK)
|
||||
{
|
||||
case ACPI_READ:
|
||||
switch (Function >> 16)
|
||||
{
|
||||
case AML_FIELD_ATTRIB_SMB_QUICK:
|
||||
case AML_FIELD_ATTRIB_SMB_SEND_RCV:
|
||||
case AML_FIELD_ATTRIB_SMB_BYTE:
|
||||
Length = 1;
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_WORD:
|
||||
case AML_FIELD_ATTRIB_SMB_WORD_CALL:
|
||||
Length = 2;
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_BLOCK:
|
||||
case AML_FIELD_ATTRIB_SMB_BLOCK_CALL:
|
||||
Length = 32;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case ACPI_WRITE:
|
||||
switch (Function >> 16)
|
||||
{
|
||||
case AML_FIELD_ATTRIB_SMB_QUICK:
|
||||
case AML_FIELD_ATTRIB_SMB_SEND_RCV:
|
||||
case AML_FIELD_ATTRIB_SMB_BYTE:
|
||||
case AML_FIELD_ATTRIB_SMB_WORD:
|
||||
case AML_FIELD_ATTRIB_SMB_BLOCK:
|
||||
Length = 0;
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_WORD_CALL:
|
||||
Length = 2;
|
||||
break;
|
||||
|
||||
case AML_FIELD_ATTRIB_SMB_BLOCK_CALL:
|
||||
Length = 32;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
for (i = 0; i < Length; i++)
|
||||
{
|
||||
((UINT8 *) Value)[i+2] = (UINT8) (0xA0 + i);
|
||||
}
|
||||
|
||||
((UINT8 *) Value)[0] = 0x7A;
|
||||
((UINT8 *) Value)[1] = (UINT8) Length;
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Search through the linked list for this region's buffer
|
||||
*/
|
||||
BufferExists = FALSE;
|
||||
RegionElement = AeRegions.RegionList;
|
||||
|
||||
if (AeRegions.NumberOfRegions)
|
||||
{
|
||||
while (!BufferExists && RegionElement)
|
||||
{
|
||||
if (RegionElement->Address == BaseAddress &&
|
||||
RegionElement->Length == Length &&
|
||||
RegionElement->SpaceId == SpaceId)
|
||||
{
|
||||
BufferExists = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
RegionElement = RegionElement->NextRegion;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If the Region buffer does not exist, create it now
|
||||
*/
|
||||
if (!BufferExists)
|
||||
{
|
||||
/*
|
||||
* Do the memory allocations first
|
||||
*/
|
||||
RegionElement = AcpiOsAllocate (sizeof (AE_REGION));
|
||||
if (!RegionElement)
|
||||
{
|
||||
return AE_NO_MEMORY;
|
||||
}
|
||||
|
||||
RegionElement->Buffer = AcpiOsAllocate (Length);
|
||||
if (!RegionElement->Buffer)
|
||||
{
|
||||
AcpiOsFree (RegionElement);
|
||||
return AE_NO_MEMORY;
|
||||
}
|
||||
|
||||
ACPI_MEMSET (RegionElement->Buffer, 0, Length);
|
||||
RegionElement->Address = BaseAddress;
|
||||
RegionElement->Length = Length;
|
||||
RegionElement->SpaceId = SpaceId;
|
||||
RegionElement->NextRegion = NULL;
|
||||
|
||||
/*
|
||||
* Increment the number of regions and put this one
|
||||
* at the head of the list as it will probably get accessed
|
||||
* more often anyway.
|
||||
*/
|
||||
AeRegions.NumberOfRegions += 1;
|
||||
|
||||
if (AeRegions.RegionList)
|
||||
{
|
||||
RegionElement->NextRegion = AeRegions.RegionList;
|
||||
}
|
||||
|
||||
AeRegions.RegionList = RegionElement;
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate the size of the memory copy
|
||||
*/
|
||||
ByteWidth = (BitWidth / 8);
|
||||
|
||||
if (BitWidth % 8)
|
||||
{
|
||||
ByteWidth += 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* The buffer exists and is pointed to by RegionElement.
|
||||
* We now need to verify the request is valid and perform the operation.
|
||||
*
|
||||
* NOTE: RegionElement->Length is in bytes, therefore it we compare against
|
||||
* ByteWidth (see above)
|
||||
*/
|
||||
if (((ACPI_INTEGER) Address + ByteWidth) >
|
||||
((ACPI_INTEGER)(RegionElement->Address) + RegionElement->Length))
|
||||
{
|
||||
ACPI_WARNING ((AE_INFO,
|
||||
"Request on [%4.4s] is beyond region limit Req-%X+%X, Base=%X, Len-%X",
|
||||
(RegionObject->Region.Node)->Name.Ascii, (UINT32) Address,
|
||||
ByteWidth, (UINT32)(RegionElement->Address),
|
||||
RegionElement->Length));
|
||||
|
||||
return AE_AML_REGION_LIMIT;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get BufferValue to point to the "address" in the buffer
|
||||
*/
|
||||
BufferValue = ((UINT8 *) RegionElement->Buffer +
|
||||
((ACPI_INTEGER) Address - (ACPI_INTEGER) RegionElement->Address));
|
||||
|
||||
DoFunction:
|
||||
|
||||
/*
|
||||
* Perform a read or write to the buffer space
|
||||
*/
|
||||
switch (Function)
|
||||
{
|
||||
case ACPI_READ:
|
||||
/*
|
||||
* Set the pointer Value to whatever is in the buffer
|
||||
*/
|
||||
ACPI_MEMCPY (Value, BufferValue, ByteWidth);
|
||||
break;
|
||||
|
||||
case ACPI_WRITE:
|
||||
/*
|
||||
* Write the contents of Value to the buffer
|
||||
*/
|
||||
ACPI_MEMCPY (BufferValue, Value, ByteWidth);
|
||||
break;
|
||||
|
||||
default:
|
||||
return AE_BAD_PARAMETER;
|
||||
}
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,435 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: aemain - Main routine for the AcpiExec utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "aecommon.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#include <crtdbg.h>
|
||||
#endif
|
||||
|
||||
#define _COMPONENT PARSER
|
||||
ACPI_MODULE_NAME ("aemain")
|
||||
|
||||
UINT8 AcpiGbl_BatchMode = 0;
|
||||
BOOLEAN AcpiGbl_IgnoreErrors = FALSE;
|
||||
BOOLEAN AcpiGbl_DbOpt_NoRegionSupport = FALSE;
|
||||
BOOLEAN AcpiGbl_DebugTimeout = FALSE;
|
||||
char BatchBuffer[128];
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: usage
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Print a usage message
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
static void
|
||||
usage (void)
|
||||
{
|
||||
printf ("Usage: acpiexec [Options] [InputFile]\n\n");
|
||||
|
||||
printf ("Where:\n");
|
||||
printf (" -? Display this message\n");
|
||||
printf (" -a Do not abort methods on error\n");
|
||||
printf (" -b <CommandLine> Batch mode command execution\n");
|
||||
printf (" -e [Method] Batch mode method execution\n");
|
||||
printf (" -i Do not run STA/INI methods during init\n");
|
||||
printf (" -m Display final memory use statistics\n");
|
||||
printf (" -o <OutputFile> Send output to this file\n");
|
||||
printf (" -r Disable OpRegion address simulation\n");
|
||||
printf (" -s Enable Interpreter Slack Mode\n");
|
||||
printf (" -t Enable Interpreter Serialized Mode\n");
|
||||
printf (" -v Verbose init output\n");
|
||||
printf (" -x <DebugLevel> Specify debug output level\n");
|
||||
printf (" -z Enable debug semaphore timeout\n");
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDbRunBatchMode
|
||||
*
|
||||
* PARAMETERS: BatchCommandLine - A semicolon separated list of commands
|
||||
* to be executed.
|
||||
* Use only commas to separate elements of
|
||||
* particular command.
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: For each command of list separated by ';' prepare the command
|
||||
* buffer and pass it to AcpiDbCommandDispatch.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
static ACPI_STATUS
|
||||
AcpiDbRunBatchMode (
|
||||
void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
char *Ptr = BatchBuffer;
|
||||
char *Cmd = Ptr;
|
||||
UINT8 Run = 0;
|
||||
|
||||
AcpiGbl_MethodExecuting = FALSE;
|
||||
AcpiGbl_StepToNextCall = FALSE;
|
||||
|
||||
while (*Ptr)
|
||||
{
|
||||
if (*Ptr == ',')
|
||||
{
|
||||
/* Convert commas to spaces */
|
||||
*Ptr = ' ';
|
||||
}
|
||||
else if (*Ptr == ';')
|
||||
{
|
||||
*Ptr = '\0';
|
||||
Run = 1;
|
||||
}
|
||||
|
||||
Ptr++;
|
||||
|
||||
if (Run || (*Ptr == '\0'))
|
||||
{
|
||||
(void) AcpiDbCommandDispatch (Cmd, NULL, NULL);
|
||||
Run = 0;
|
||||
Cmd = Ptr;
|
||||
}
|
||||
}
|
||||
|
||||
Status = AcpiTerminate ();
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: main
|
||||
*
|
||||
* PARAMETERS: argc, argv
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Main routine for AcpiDump utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
int ACPI_SYSTEM_XFACE
|
||||
main (
|
||||
int argc,
|
||||
char **argv)
|
||||
{
|
||||
int j;
|
||||
ACPI_STATUS Status;
|
||||
UINT32 InitFlags;
|
||||
ACPI_TABLE_HEADER *Table;
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
_CrtSetDbgFlag (_CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_LEAK_CHECK_DF |
|
||||
_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG));
|
||||
#endif
|
||||
|
||||
printf ("\nIntel ACPI Component Architecture\nAML Execution/Debug Utility");
|
||||
printf (" version %8.8X", ((UINT32) ACPI_CA_VERSION));
|
||||
printf (" [%s]\n\n", __DATE__);
|
||||
|
||||
if (argc < 2)
|
||||
{
|
||||
usage ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
signal (SIGINT, AeCtrlCHandler);
|
||||
|
||||
/* Init globals */
|
||||
|
||||
AcpiDbgLevel = ACPI_NORMAL_DEFAULT;
|
||||
AcpiDbgLayer = 0xFFFFFFFF;
|
||||
|
||||
/* Init ACPI and start debugger thread */
|
||||
|
||||
AcpiInitializeSubsystem ();
|
||||
|
||||
/* Get the command line options */
|
||||
|
||||
while ((j = AcpiGetopt (argc, argv, "?ab:de^gimo:rstvx:z")) != EOF) switch(j)
|
||||
{
|
||||
case 'a':
|
||||
AcpiGbl_IgnoreErrors = TRUE;
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
if (strlen (AcpiGbl_Optarg) > 127)
|
||||
{
|
||||
printf ("**** The length of command line (%u) exceeded maximum (127)\n",
|
||||
(UINT32) strlen (AcpiGbl_Optarg));
|
||||
return -1;
|
||||
}
|
||||
AcpiGbl_BatchMode = 1;
|
||||
strcpy (BatchBuffer, AcpiGbl_Optarg);
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
AcpiGbl_DbOpt_disasm = TRUE;
|
||||
AcpiGbl_DbOpt_stats = TRUE;
|
||||
break;
|
||||
|
||||
case 'e':
|
||||
AcpiGbl_BatchMode = 2;
|
||||
switch (AcpiGbl_Optarg[0])
|
||||
{
|
||||
case '^':
|
||||
strcpy (BatchBuffer, "MAIN");
|
||||
break;
|
||||
default:
|
||||
strcpy (BatchBuffer, AcpiGbl_Optarg);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'g':
|
||||
AcpiGbl_DbOpt_tables = TRUE;
|
||||
AcpiGbl_DbFilename = NULL;
|
||||
break;
|
||||
|
||||
case 'i':
|
||||
AcpiGbl_DbOpt_ini_methods = FALSE;
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
|
||||
AcpiGbl_DisplayFinalMemStats = TRUE;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 'o':
|
||||
printf ("O option is not implemented\n");
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
AcpiGbl_DbOpt_NoRegionSupport = TRUE;
|
||||
break;
|
||||
|
||||
case 's':
|
||||
AcpiGbl_EnableInterpreterSlack = TRUE;
|
||||
printf ("Enabling AML Interpreter slack mode\n");
|
||||
break;
|
||||
|
||||
case 't':
|
||||
AcpiGbl_AllMethodsSerialized = TRUE;
|
||||
printf ("Enabling AML Interpreter serialized mode\n");
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
AcpiDbgLevel |= ACPI_LV_INIT_NAMES;
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
AcpiDbgLevel = strtoul (AcpiGbl_Optarg, NULL, 0);
|
||||
AcpiGbl_DbConsoleDebugLevel = AcpiDbgLevel;
|
||||
printf ("Debug Level: 0x%8.8X\n", AcpiDbgLevel);
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
AcpiGbl_DebugTimeout = TRUE;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
InitFlags = (ACPI_NO_HANDLER_INIT | ACPI_NO_ACPI_ENABLE);
|
||||
if (!AcpiGbl_DbOpt_ini_methods)
|
||||
{
|
||||
InitFlags |= (ACPI_NO_DEVICE_INIT | ACPI_NO_OBJECT_INIT);
|
||||
}
|
||||
|
||||
/* Standalone filename is the only argument */
|
||||
|
||||
if (argv[AcpiGbl_Optind])
|
||||
{
|
||||
AcpiGbl_DbOpt_tables = TRUE;
|
||||
AcpiGbl_DbFilename = argv[AcpiGbl_Optind];
|
||||
|
||||
Status = AcpiDbReadTableFromFile (AcpiGbl_DbFilename, &Table);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("**** Could not get input table, %s\n", AcpiFormatException (Status));
|
||||
goto enterloop;
|
||||
}
|
||||
|
||||
AeBuildLocalTables (Table);
|
||||
Status = AeInstallTables ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("**** Could not load ACPI tables, %s\n", AcpiFormatException (Status));
|
||||
goto enterloop;
|
||||
}
|
||||
|
||||
Status = AeInstallHandlers ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto enterloop;
|
||||
}
|
||||
|
||||
/*
|
||||
* TBD:
|
||||
* Need a way to call this after the "LOAD" command
|
||||
*/
|
||||
Status = AcpiEnableSubsystem (InitFlags);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("**** Could not EnableSubsystem, %s\n", AcpiFormatException (Status));
|
||||
goto enterloop;
|
||||
}
|
||||
|
||||
Status = AcpiInitializeObjects (InitFlags);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("**** Could not InitializeObjects, %s\n", AcpiFormatException (Status));
|
||||
goto enterloop;
|
||||
}
|
||||
|
||||
AeMiscellaneousTests ();
|
||||
}
|
||||
|
||||
enterloop:
|
||||
|
||||
if (AcpiGbl_BatchMode == 1)
|
||||
{
|
||||
AcpiDbRunBatchMode ();
|
||||
}
|
||||
else if (AcpiGbl_BatchMode == 2)
|
||||
{
|
||||
AcpiDbExecute (BatchBuffer, NULL, EX_NO_SINGLE_STEP);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Enter the debugger command loop */
|
||||
|
||||
AcpiDbUserCommands (ACPI_DEBUGGER_COMMAND_PROMPT, NULL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,505 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: aetables - Miscellaneous ACPI tables for acpiexec utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "aecommon.h"
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("aetables")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
void
|
||||
AeTableOverride (
|
||||
ACPI_TABLE_HEADER *ExistingTable,
|
||||
ACPI_TABLE_HEADER **NewTable);
|
||||
|
||||
ACPI_PHYSICAL_ADDRESS
|
||||
AeLocalGetRootPointer (
|
||||
void);
|
||||
|
||||
/*
|
||||
* Misc ACPI tables to be installed
|
||||
*/
|
||||
|
||||
/* Default DSDT. This will be replaced with the input DSDT */
|
||||
|
||||
unsigned char DsdtCode[] =
|
||||
{
|
||||
0x44,0x53,0x44,0x54,0x24,0x00,0x00,0x00, /* 00000000 "DSDT$..." */
|
||||
0x02,0x6F,0x49,0x6E,0x74,0x65,0x6C,0x00, /* 00000008 ".oIntel." */
|
||||
0x4E,0x75,0x6C,0x6C,0x44,0x53,0x44,0x54, /* 00000010 "NullDSDT" */
|
||||
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
|
||||
0x04,0x12,0x08,0x20,
|
||||
};
|
||||
|
||||
/* Several example SSDTs */
|
||||
|
||||
unsigned char Ssdt1Code[] = /* Has method _T98 */
|
||||
{
|
||||
0x53,0x53,0x44,0x54,0x30,0x00,0x00,0x00, /* 00000000 "SSDT0..." */
|
||||
0x01,0xB8,0x49,0x6E,0x74,0x65,0x6C,0x00, /* 00000008 "..Intel." */
|
||||
0x4D,0x61,0x6E,0x79,0x00,0x00,0x00,0x00, /* 00000010 "Many...." */
|
||||
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
|
||||
0x24,0x04,0x03,0x20,0x14,0x0B,0x5F,0x54, /* 00000020 "$.. .._T" */
|
||||
0x39,0x38,0x00,0x70,0x0A,0x04,0x60,0xA4, /* 00000028 "98.p..`." */
|
||||
};
|
||||
|
||||
unsigned char Ssdt2Code[] = /* Has method _T99 */
|
||||
{
|
||||
0x53,0x53,0x44,0x54,0x30,0x00,0x00,0x00, /* 00000000 "SSDT0..." */
|
||||
0x01,0xB7,0x49,0x6E,0x74,0x65,0x6C,0x00, /* 00000008 "..Intel." */
|
||||
0x4D,0x61,0x6E,0x79,0x00,0x00,0x00,0x00, /* 00000010 "Many...." */
|
||||
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
|
||||
0x24,0x04,0x03,0x20,0x14,0x0B,0x5F,0x54, /* 00000020 "$.. .._T" */
|
||||
0x39,0x39,0x00,0x70,0x0A,0x04,0x60,0xA4, /* 00000028 "99.p..`." */
|
||||
};
|
||||
|
||||
unsigned char Ssdt3Code[] = /* Has method _T97 */
|
||||
{
|
||||
0x54,0x53,0x44,0x54,0x30,0x00,0x00,0x00, /* 00000000 "TSDT0..." */
|
||||
0x01,0xB8,0x49,0x6E,0x74,0x65,0x6C,0x00, /* 00000008 "..Intel." */
|
||||
0x4D,0x61,0x6E,0x79,0x00,0x00,0x00,0x00, /* 00000010 "Many...." */
|
||||
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
|
||||
0x24,0x04,0x03,0x20,0x14,0x0B,0x5F,0x54, /* 00000020 "$.. .._T" */
|
||||
0x39,0x37,0x00,0x70,0x0A,0x04,0x60,0xA4, /* 00000028 "97.p..`." */
|
||||
};
|
||||
|
||||
/* Example OEM table */
|
||||
|
||||
unsigned char Oem1Code[] =
|
||||
{
|
||||
0x4F,0x45,0x4D,0x31,0x38,0x00,0x00,0x00, /* 00000000 "OEM18..." */
|
||||
0x01,0x4B,0x49,0x6E,0x74,0x65,0x6C,0x00, /* 00000008 ".KIntel." */
|
||||
0x4D,0x61,0x6E,0x79,0x00,0x00,0x00,0x00, /* 00000010 "Many...." */
|
||||
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
|
||||
0x18,0x09,0x03,0x20,0x08,0x5F,0x58,0x54, /* 00000020 "... ._XT" */
|
||||
0x32,0x0A,0x04,0x14,0x0C,0x5F,0x58,0x54, /* 00000028 "2...._XT" */
|
||||
0x31,0x00,0x70,0x01,0x5F,0x58,0x54,0x32, /* 00000030 "1.p._XT2" */
|
||||
};
|
||||
|
||||
/*
|
||||
* Example installable control method
|
||||
*
|
||||
* DefinitionBlock ("", "DSDT", 2, "Intel", "MTHDTEST", 0x20090512)
|
||||
* {
|
||||
* Method (\_SI_._T97, 1, Serialized)
|
||||
* {
|
||||
* Store ("Example installed method", Debug)
|
||||
* Store (Arg0, Debug)
|
||||
* Return ()
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* Compiled byte code below.
|
||||
*/
|
||||
unsigned char MethodCode[] =
|
||||
{
|
||||
0x44,0x53,0x44,0x54,0x53,0x00,0x00,0x00, /* 00000000 "DSDTS..." */
|
||||
0x02,0xF9,0x49,0x6E,0x74,0x65,0x6C,0x00, /* 00000008 "..Intel." */
|
||||
0x4D,0x54,0x48,0x44,0x54,0x45,0x53,0x54, /* 00000010 "MTHDTEST" */
|
||||
0x12,0x05,0x09,0x20,0x49,0x4E,0x54,0x4C, /* 00000018 "... INTL" */
|
||||
0x22,0x04,0x09,0x20,0x14,0x2E,0x2E,0x5F, /* 00000020 "".. ..._" */
|
||||
0x54,0x49,0x5F,0x5F,0x54,0x39,0x37,0x09, /* 00000028 "SI__T97." */
|
||||
0x70,0x0D,0x45,0x78,0x61,0x6D,0x70,0x6C, /* 00000030 "p.Exampl" */
|
||||
0x65,0x20,0x69,0x6E,0x73,0x74,0x61,0x6C, /* 00000038 "e instal" */
|
||||
0x6C,0x65,0x64,0x20,0x6D,0x65,0x74,0x68, /* 00000040 "led meth" */
|
||||
0x6F,0x64,0x00,0x5B,0x31,0x70,0x68,0x5B, /* 00000048 "od.[1ph[" */
|
||||
0x31,0xA4,0x00,
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* We need a local FADT so that the hardware subcomponent will function,
|
||||
* even though the underlying OSD HW access functions don't do
|
||||
* anything.
|
||||
*/
|
||||
ACPI_TABLE_HEADER *DsdtToInstallOverride;
|
||||
ACPI_TABLE_RSDP LocalRSDP;
|
||||
ACPI_TABLE_FADT LocalFADT;
|
||||
ACPI_TABLE_FACS LocalFACS;
|
||||
ACPI_TABLE_HEADER LocalDSDT;
|
||||
ACPI_TABLE_HEADER LocalTEST;
|
||||
ACPI_TABLE_HEADER LocalBADTABLE;
|
||||
ACPI_TABLE_RSDT *LocalRSDT;
|
||||
|
||||
#define RSDT_TABLES 7
|
||||
#define RSDT_SIZE (sizeof (ACPI_TABLE_RSDT) + ((RSDT_TABLES -1) * sizeof (UINT32)))
|
||||
|
||||
#define ACPI_MAX_INIT_TABLES (16)
|
||||
static ACPI_TABLE_DESC Tables[ACPI_MAX_INIT_TABLES];
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeTableOverride
|
||||
*
|
||||
* DESCRIPTION: Local implementation of AcpiOsTableOverride.
|
||||
* Exercise the override mechanism
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
AeTableOverride (
|
||||
ACPI_TABLE_HEADER *ExistingTable,
|
||||
ACPI_TABLE_HEADER **NewTable)
|
||||
{
|
||||
|
||||
/* This code exercises the table override mechanism in the core */
|
||||
|
||||
if (ACPI_COMPARE_NAME (ExistingTable->Signature, ACPI_SIG_DSDT))
|
||||
{
|
||||
*NewTable = DsdtToInstallOverride;
|
||||
}
|
||||
|
||||
/* This code tests override of dynamically loaded tables */
|
||||
|
||||
else if (ACPI_COMPARE_NAME (ExistingTable->Signature, "TSDT"))
|
||||
{
|
||||
*NewTable = ACPI_CAST_PTR (ACPI_TABLE_HEADER, Ssdt3Code);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeBuildLocalTables
|
||||
*
|
||||
* PARAMETERS: UserTable - pointer to an input table to be loaded.
|
||||
* a DSDT or SSDT
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Build a complete ACPI table chain, with a local RSDP, RSDT,
|
||||
* FADT, and several other test tables.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AeBuildLocalTables (
|
||||
ACPI_TABLE_HEADER *UserTable)
|
||||
{
|
||||
ACPI_PHYSICAL_ADDRESS DsdtAddress;
|
||||
|
||||
|
||||
/* Build an RSDT */
|
||||
|
||||
LocalRSDT = AcpiOsAllocate (RSDT_SIZE);
|
||||
if (!LocalRSDT)
|
||||
{
|
||||
return AE_NO_MEMORY;
|
||||
}
|
||||
|
||||
ACPI_MEMSET (LocalRSDT, 0, RSDT_SIZE);
|
||||
ACPI_STRNCPY (LocalRSDT->Header.Signature, ACPI_SIG_RSDT, 4);
|
||||
LocalRSDT->Header.Length = RSDT_SIZE;
|
||||
|
||||
LocalRSDT->TableOffsetEntry[0] = ACPI_PTR_TO_PHYSADDR (&LocalTEST);
|
||||
LocalRSDT->TableOffsetEntry[1] = ACPI_PTR_TO_PHYSADDR (&LocalBADTABLE);
|
||||
LocalRSDT->TableOffsetEntry[2] = ACPI_PTR_TO_PHYSADDR (&LocalFADT);
|
||||
LocalRSDT->TableOffsetEntry[3] = ACPI_PTR_TO_PHYSADDR (&LocalTEST); /* Just a placeholder for a user SSDT */
|
||||
|
||||
/* Install two SSDTs to test multiple table support */
|
||||
|
||||
LocalRSDT->TableOffsetEntry[4] = ACPI_PTR_TO_PHYSADDR (&Ssdt1Code);
|
||||
LocalRSDT->TableOffsetEntry[5] = ACPI_PTR_TO_PHYSADDR (&Ssdt2Code);
|
||||
|
||||
/* Install the OEM1 table to test LoadTable */
|
||||
|
||||
LocalRSDT->TableOffsetEntry[6] = ACPI_PTR_TO_PHYSADDR (&Oem1Code);
|
||||
|
||||
/* Build an RSDP */
|
||||
|
||||
ACPI_MEMSET (&LocalRSDP, 0, sizeof (ACPI_TABLE_RSDP));
|
||||
ACPI_MEMCPY (LocalRSDP.Signature, ACPI_SIG_RSDP, 8);
|
||||
LocalRSDP.Revision = 1;
|
||||
LocalRSDP.RsdtPhysicalAddress = ACPI_PTR_TO_PHYSADDR (LocalRSDT);
|
||||
LocalRSDP.Length = sizeof (ACPI_TABLE_RSDT);
|
||||
ACPI_MEMCPY (LocalRSDP.OemId, "I_TEST", 6);
|
||||
|
||||
/*
|
||||
* Examine the incoming user table. At this point, it has been verified
|
||||
* to be either a DSDT, SSDT, or a PSDT, but they must be handled differently
|
||||
*/
|
||||
if (ACPI_COMPARE_NAME (UserTable->Signature, ACPI_SIG_DSDT))
|
||||
{
|
||||
/* The incoming user table is a DSDT */
|
||||
|
||||
DsdtAddress = ACPI_PTR_TO_PHYSADDR (&DsdtCode);
|
||||
DsdtToInstallOverride = UserTable;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Build a local DSDT because incoming table is an SSDT or PSDT */
|
||||
|
||||
ACPI_MEMSET (&LocalDSDT, 0, sizeof (ACPI_TABLE_HEADER));
|
||||
ACPI_STRNCPY (LocalDSDT.Signature, ACPI_SIG_DSDT, 4);
|
||||
LocalDSDT.Revision = 1;
|
||||
LocalDSDT.Length = sizeof (ACPI_TABLE_HEADER);
|
||||
LocalDSDT.Checksum = (UINT8) -AcpiTbChecksum ((void *) &LocalDSDT, LocalDSDT.Length);
|
||||
|
||||
/* Install incoming table (SSDT or PSDT) directly into the RSDT */
|
||||
|
||||
LocalRSDT->TableOffsetEntry[3] = ACPI_PTR_TO_PHYSADDR (UserTable);
|
||||
DsdtAddress = ACPI_PTR_TO_PHYSADDR (&LocalDSDT);
|
||||
DsdtToInstallOverride = &LocalDSDT;
|
||||
}
|
||||
|
||||
/* Set checksums for both RSDT and RSDP */
|
||||
|
||||
LocalRSDT->Header.Checksum = (UINT8) -AcpiTbChecksum ((void *) LocalRSDT, LocalRSDT->Header.Length);
|
||||
LocalRSDP.Checksum = (UINT8) -AcpiTbChecksum ((void *) &LocalRSDP, ACPI_RSDP_CHECKSUM_LENGTH);
|
||||
|
||||
/*
|
||||
* Build a FADT so we can test the hardware/event init
|
||||
*/
|
||||
ACPI_MEMSET (&LocalFADT, 0, sizeof (ACPI_TABLE_FADT));
|
||||
ACPI_STRNCPY (LocalFADT.Header.Signature, ACPI_SIG_FADT, 4);
|
||||
|
||||
/* Setup FADT header and DSDT/FACS addresses */
|
||||
|
||||
LocalFADT.Dsdt = DsdtAddress;
|
||||
LocalFADT.Facs = ACPI_PTR_TO_PHYSADDR (&LocalFACS);
|
||||
|
||||
LocalFADT.XDsdt = DsdtAddress;
|
||||
LocalFADT.XFacs = ACPI_PTR_TO_PHYSADDR (&LocalFACS);
|
||||
|
||||
LocalFADT.Header.Revision = 3;
|
||||
LocalFADT.Header.Length = sizeof (ACPI_TABLE_FADT);
|
||||
|
||||
/* Miscellaneous FADT fields */
|
||||
|
||||
LocalFADT.Gpe0BlockLength = 16;
|
||||
LocalFADT.Gpe1BlockLength = 6;
|
||||
LocalFADT.Gpe1Base = 96;
|
||||
|
||||
LocalFADT.Pm1EventLength = 4;
|
||||
LocalFADT.Pm1ControlLength = 2;
|
||||
LocalFADT.PmTimerLength = 4;
|
||||
|
||||
LocalFADT.Gpe0Block = 0x00001234;
|
||||
LocalFADT.Gpe1Block = 0x00005678;
|
||||
|
||||
LocalFADT.Pm1aEventBlock = 0x00001aaa;
|
||||
LocalFADT.Pm1bEventBlock = 0x00001bbb;
|
||||
LocalFADT.PmTimerBlock = 0xA0;
|
||||
LocalFADT.Pm1aControlBlock = 0xB0;
|
||||
|
||||
/* Setup one example X-64 field */
|
||||
|
||||
LocalFADT.XPm1bEventBlock.SpaceId = ACPI_ADR_SPACE_SYSTEM_IO;
|
||||
LocalFADT.XPm1bEventBlock.Address = LocalFADT.Pm1bEventBlock;
|
||||
LocalFADT.XPm1bEventBlock.BitWidth = (UINT8) ACPI_MUL_8 (LocalFADT.Pm1EventLength);
|
||||
|
||||
/* Complete the FADT with the checksum */
|
||||
|
||||
LocalFADT.Header.Checksum = 0;
|
||||
LocalFADT.Header.Checksum = (UINT8) -AcpiTbChecksum ((void *) &LocalFADT, LocalFADT.Header.Length);
|
||||
|
||||
/* Build a FACS */
|
||||
|
||||
ACPI_MEMSET (&LocalFACS, 0, sizeof (ACPI_TABLE_FACS));
|
||||
ACPI_STRNCPY (LocalFACS.Signature, ACPI_SIG_FACS, 4);
|
||||
LocalFACS.Length = sizeof (ACPI_TABLE_FACS);
|
||||
LocalFACS.GlobalLock = 0x11AA0011;
|
||||
|
||||
/* Build a fake table [TEST] so that we make sure that the CA core ignores it */
|
||||
|
||||
ACPI_MEMSET (&LocalTEST, 0, sizeof (ACPI_TABLE_HEADER));
|
||||
ACPI_STRNCPY (LocalTEST.Signature, "TEST", 4);
|
||||
|
||||
LocalTEST.Revision = 1;
|
||||
LocalTEST.Length = sizeof (ACPI_TABLE_HEADER);
|
||||
LocalTEST.Checksum = (UINT8) -AcpiTbChecksum ((void *) &LocalTEST, LocalTEST.Length);
|
||||
|
||||
/* Build a fake table with a bad signature [BAD!] so that we make sure that the CA core ignores it */
|
||||
|
||||
ACPI_MEMSET (&LocalBADTABLE, 0, sizeof (ACPI_TABLE_HEADER));
|
||||
ACPI_STRNCPY (LocalBADTABLE.Signature, "BAD!", 4);
|
||||
|
||||
LocalBADTABLE.Revision = 1;
|
||||
LocalBADTABLE.Length = sizeof (ACPI_TABLE_HEADER);
|
||||
LocalBADTABLE.Checksum = (UINT8) -AcpiTbChecksum ((void *) &LocalBADTABLE, LocalBADTABLE.Length);
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeInstallTables
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Install the various ACPI tables
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AeInstallTables (
|
||||
void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
Status = AcpiInitializeTables (Tables, ACPI_MAX_INIT_TABLES, TRUE);
|
||||
Status = AcpiReallocateRootTable ();
|
||||
Status = AcpiLoadTables ();
|
||||
|
||||
/*
|
||||
* Test run-time control method installation. Do it twice to test code
|
||||
* for an existing name.
|
||||
*/
|
||||
Status = AcpiInstallMethod (MethodCode);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("%s, Could not install method\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
Status = AcpiInstallMethod (MethodCode);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("%s, Could not install method\n",
|
||||
AcpiFormatException (Status));
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeLocalGetRootPointer
|
||||
*
|
||||
* PARAMETERS: Flags - not used
|
||||
* Address - Where the root pointer is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Return a local RSDP, used to dynamically load tables via the
|
||||
* standard ACPI mechanism.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_PHYSICAL_ADDRESS
|
||||
AeLocalGetRootPointer (
|
||||
void)
|
||||
{
|
||||
|
||||
return ((ACPI_PHYSICAL_ADDRESS) &LocalRSDP);
|
||||
}
|
||||
|
||||
|
@ -1,306 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: osunixdir - Unix directory access interfaces
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <dirent.h>
|
||||
#include <fnmatch.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "acpisrc.h"
|
||||
|
||||
typedef struct ExternalFindInfo
|
||||
{
|
||||
char *DirPathname;
|
||||
DIR *DirPtr;
|
||||
char temp_buffer[128];
|
||||
char *WildcardSpec;
|
||||
char RequestedFileType;
|
||||
|
||||
} EXTERNAL_FIND_INFO;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsOpenDirectory
|
||||
*
|
||||
* PARAMETERS: DirPathname - Full pathname to the directory
|
||||
* WildcardSpec - string of the form "*.c", etc.
|
||||
*
|
||||
* RETURN: A directory "handle" to be used in subsequent search operations.
|
||||
* NULL returned on failure.
|
||||
*
|
||||
* DESCRIPTION: Open a directory in preparation for a wildcard search
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void *
|
||||
AcpiOsOpenDirectory (
|
||||
char *DirPathname,
|
||||
char *WildcardSpec,
|
||||
char RequestedFileType)
|
||||
{
|
||||
EXTERNAL_FIND_INFO *ExternalInfo;
|
||||
DIR *dir;
|
||||
|
||||
|
||||
/* Allocate the info struct that will be returned to the caller */
|
||||
|
||||
ExternalInfo = calloc (sizeof (EXTERNAL_FIND_INFO), 1);
|
||||
if (!ExternalInfo)
|
||||
{
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/* Get the directory stream */
|
||||
|
||||
dir = opendir (DirPathname);
|
||||
if (!dir)
|
||||
{
|
||||
free (ExternalInfo);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/* Save the info in the return structure */
|
||||
|
||||
ExternalInfo->WildcardSpec = WildcardSpec;
|
||||
ExternalInfo->RequestedFileType = RequestedFileType;
|
||||
ExternalInfo->DirPathname = DirPathname;
|
||||
ExternalInfo->DirPtr = dir;
|
||||
return (ExternalInfo);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsGetNextFilename
|
||||
*
|
||||
* PARAMETERS: DirHandle - Created via AcpiOsOpenDirectory
|
||||
*
|
||||
* RETURN: Next filename matched. NULL if no more matches.
|
||||
*
|
||||
* DESCRIPTION: Get the next file in the directory that matches the wildcard
|
||||
* specification.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AcpiOsGetNextFilename (
|
||||
void *DirHandle)
|
||||
{
|
||||
EXTERNAL_FIND_INFO *ExternalInfo = DirHandle;
|
||||
struct dirent *dir_entry;
|
||||
char *temp_str;
|
||||
int str_len;
|
||||
struct stat temp_stat;
|
||||
int err;
|
||||
|
||||
|
||||
while ((dir_entry = readdir (ExternalInfo->DirPtr)))
|
||||
{
|
||||
if (!fnmatch (ExternalInfo->WildcardSpec, dir_entry->d_name, 0))
|
||||
{
|
||||
if (dir_entry->d_name[0] == '.')
|
||||
continue;
|
||||
|
||||
str_len = strlen (dir_entry->d_name) +
|
||||
strlen (ExternalInfo->DirPathname) + 2;
|
||||
|
||||
temp_str = calloc (str_len, 1);
|
||||
if (!temp_str)
|
||||
{
|
||||
printf ("Could not allocate buffer for temporary string\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
strcpy (temp_str, ExternalInfo->DirPathname);
|
||||
strcat (temp_str, "/");
|
||||
strcat (temp_str, dir_entry->d_name);
|
||||
|
||||
err = stat (temp_str, &temp_stat);
|
||||
free (temp_str);
|
||||
if (err == -1)
|
||||
{
|
||||
printf ("stat() error - should not happen\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((S_ISDIR (temp_stat.st_mode)
|
||||
&& (ExternalInfo->RequestedFileType == REQUEST_DIR_ONLY))
|
||||
||
|
||||
((!S_ISDIR (temp_stat.st_mode)
|
||||
&& ExternalInfo->RequestedFileType == REQUEST_FILE_ONLY)))
|
||||
{
|
||||
/* copy to a temp buffer because dir_entry struct is on the stack */
|
||||
|
||||
strcpy (ExternalInfo->temp_buffer, dir_entry->d_name);
|
||||
return (ExternalInfo->temp_buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsCloseDirectory
|
||||
*
|
||||
* PARAMETERS: DirHandle - Created via AcpiOsOpenDirectory
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
* DESCRIPTION: Close the open directory and cleanup.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiOsCloseDirectory (
|
||||
void *DirHandle)
|
||||
{
|
||||
EXTERNAL_FIND_INFO *ExternalInfo = DirHandle;
|
||||
|
||||
|
||||
/* Close the directory and free allocations */
|
||||
|
||||
closedir (ExternalInfo->DirPtr);
|
||||
free (DirHandle);
|
||||
}
|
||||
|
||||
/* Other functions acpisrc uses but that aren't standard on Unix */
|
||||
|
||||
/* lowercase a string */
|
||||
char*
|
||||
strlwr (
|
||||
char *str)
|
||||
{
|
||||
int length;
|
||||
int i;
|
||||
|
||||
|
||||
length = strlen(str);
|
||||
|
||||
for (i = 0; i < length; i++)
|
||||
{
|
||||
str[i] = tolower(str[i]);
|
||||
}
|
||||
|
||||
return (str);
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
|
||||
|
||||
PROG= acpisrc
|
||||
SRCS= ascase.c asconvrt.c asfile.c asmain.c asremove.c astable.c \
|
||||
asutils.c osunixdir.c ../../common/getopt.c
|
||||
|
||||
CFLAGS+= -Wall -O2 -D_LINUX -DACPI_APPLICATION -Wstrict-prototypes -I../../include
|
||||
|
||||
|
||||
aslmain : $(patsubst %.c,%.o, $(SRCS))
|
||||
$(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -o $(PROG)
|
||||
|
||||
CLEANFILES= $(PROG)
|
||||
|
||||
clean :
|
||||
rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS))
|
||||
|
@ -1,475 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: acpisrc.h - Include file for AcpiSrc utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#define LINES_IN_LEGAL_HEADER 105 /* See above */
|
||||
#define LEGAL_HEADER_SIGNATURE " * 2.1. This is your license from Intel Corp. under its intellectual property"
|
||||
#define LINES_IN_LINUX_HEADER 34
|
||||
#define LINUX_HEADER_SIGNATURE " * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS"
|
||||
#define LINES_IN_ASL_HEADER 29 /* Header as output from disassembler */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <ctype.h>
|
||||
#ifdef WIN32
|
||||
#include <io.h>
|
||||
#include <direct.h>
|
||||
#endif
|
||||
#include <errno.h>
|
||||
|
||||
#include "acpi.h"
|
||||
#include "accommon.h"
|
||||
|
||||
|
||||
/* Fixups for non-Win32 compilation */
|
||||
#ifndef WIN32
|
||||
#ifndef O_BINARY
|
||||
#define O_BINARY 0x0
|
||||
#endif
|
||||
|
||||
#define mkdir(x) mkdir(x, 0770)
|
||||
char * strlwr(char* str);
|
||||
#endif
|
||||
|
||||
|
||||
/* Constants */
|
||||
|
||||
#define ASRC_MAX_FILE_SIZE (1024 * 100)
|
||||
|
||||
#define FILE_TYPE_SOURCE 1
|
||||
#define FILE_TYPE_HEADER 2
|
||||
#define FILE_TYPE_DIRECTORY 3
|
||||
|
||||
#define CVT_COUNT_TABS 0x00000001
|
||||
#define CVT_COUNT_NON_ANSI_COMMENTS 0x00000002
|
||||
#define CVT_TRIM_LINES 0x00000004
|
||||
#define CVT_CHECK_BRACES 0x00000008
|
||||
#define CVT_COUNT_LINES 0x00000010
|
||||
#define CVT_BRACES_ON_SAME_LINE 0x00000020
|
||||
#define CVT_MIXED_CASE_TO_UNDERSCORES 0x00000040
|
||||
#define CVT_LOWER_CASE_IDENTIFIERS 0x00000080
|
||||
#define CVT_REMOVE_DEBUG_MACROS 0x00000100
|
||||
#define CVT_TRIM_WHITESPACE 0x00000200 /* Should be after all line removal */
|
||||
#define CVT_REMOVE_EMPTY_BLOCKS 0x00000400 /* Should be after trimming lines */
|
||||
#define CVT_REDUCE_TYPEDEFS 0x00000800
|
||||
#define CVT_COUNT_SHORTMULTILINE_COMMENTS 0x00001000
|
||||
#define CVT_SPACES_TO_TABS4 0x40000000 /* Tab conversion should be last */
|
||||
#define CVT_SPACES_TO_TABS8 0x80000000 /* Tab conversion should be last */
|
||||
|
||||
#define FLG_DEFAULT_FLAGS 0x00000000
|
||||
#define FLG_NO_CARRIAGE_RETURNS 0x00000001
|
||||
#define FLG_NO_FILE_OUTPUT 0x00000002
|
||||
#define FLG_LOWERCASE_DIRNAMES 0x00000004
|
||||
|
||||
#define AS_START_IGNORE "/*!"
|
||||
#define AS_STOP_IGNORE "!*/"
|
||||
|
||||
|
||||
/* Globals */
|
||||
|
||||
extern UINT32 Gbl_Files;
|
||||
extern UINT32 Gbl_MissingBraces;
|
||||
extern UINT32 Gbl_Tabs;
|
||||
extern UINT32 Gbl_NonAnsiComments;
|
||||
extern UINT32 Gbl_SourceLines;
|
||||
extern UINT32 Gbl_WhiteLines;
|
||||
extern UINT32 Gbl_CommentLines;
|
||||
extern UINT32 Gbl_LongLines;
|
||||
extern UINT32 Gbl_TotalLines;
|
||||
extern UINT32 Gbl_HeaderSize;
|
||||
extern UINT32 Gbl_HeaderLines;
|
||||
extern struct stat Gbl_StatBuf;
|
||||
extern char *Gbl_FileBuffer;
|
||||
extern UINT32 Gbl_TotalSize;
|
||||
extern UINT32 Gbl_FileSize;
|
||||
extern UINT32 Gbl_FileType;
|
||||
extern BOOLEAN Gbl_VerboseMode;
|
||||
extern BOOLEAN Gbl_QuietMode;
|
||||
extern BOOLEAN Gbl_BatchMode;
|
||||
extern BOOLEAN Gbl_MadeChanges;
|
||||
extern BOOLEAN Gbl_Overwrite;
|
||||
extern BOOLEAN Gbl_WidenDeclarations;
|
||||
extern BOOLEAN Gbl_IgnoreLoneLineFeeds;
|
||||
extern BOOLEAN Gbl_HasLoneLineFeeds;
|
||||
extern void *Gbl_StructDefs;
|
||||
|
||||
#define PARAM_LIST(pl) pl
|
||||
#define TERSE_PRINT(a) if (!Gbl_VerboseMode) printf PARAM_LIST(a)
|
||||
#define VERBOSE_PRINT(a) if (Gbl_VerboseMode) printf PARAM_LIST(a)
|
||||
|
||||
#define REPLACE_WHOLE_WORD 0x00
|
||||
#define REPLACE_SUBSTRINGS 0x01
|
||||
#define REPLACE_MASK 0x01
|
||||
|
||||
#define EXTRA_INDENT_C 0x02
|
||||
|
||||
|
||||
/* Conversion table structs */
|
||||
|
||||
typedef struct acpi_string_table
|
||||
{
|
||||
char *Target;
|
||||
char *Replacement;
|
||||
UINT8 Type;
|
||||
|
||||
} ACPI_STRING_TABLE;
|
||||
|
||||
|
||||
typedef struct acpi_typed_identifier_table
|
||||
{
|
||||
char *Identifier;
|
||||
UINT8 Type;
|
||||
|
||||
} ACPI_TYPED_IDENTIFIER_TABLE;
|
||||
|
||||
#define SRC_TYPE_SIMPLE 0
|
||||
#define SRC_TYPE_STRUCT 1
|
||||
#define SRC_TYPE_UNION 2
|
||||
|
||||
|
||||
typedef struct acpi_identifier_table
|
||||
{
|
||||
char *Identifier;
|
||||
|
||||
} ACPI_IDENTIFIER_TABLE;
|
||||
|
||||
typedef struct acpi_conversion_table
|
||||
{
|
||||
char *NewHeader;
|
||||
UINT32 Flags;
|
||||
|
||||
ACPI_TYPED_IDENTIFIER_TABLE *LowerCaseTable;
|
||||
|
||||
ACPI_STRING_TABLE *SourceStringTable;
|
||||
ACPI_IDENTIFIER_TABLE *SourceLineTable;
|
||||
ACPI_IDENTIFIER_TABLE *SourceConditionalTable;
|
||||
ACPI_IDENTIFIER_TABLE *SourceMacroTable;
|
||||
ACPI_TYPED_IDENTIFIER_TABLE *SourceStructTable;
|
||||
UINT32 SourceFunctions;
|
||||
|
||||
ACPI_STRING_TABLE *HeaderStringTable;
|
||||
ACPI_IDENTIFIER_TABLE *HeaderLineTable;
|
||||
ACPI_IDENTIFIER_TABLE *HeaderConditionalTable;
|
||||
ACPI_IDENTIFIER_TABLE *HeaderMacroTable;
|
||||
ACPI_TYPED_IDENTIFIER_TABLE *HeaderStructTable;
|
||||
UINT32 HeaderFunctions;
|
||||
|
||||
} ACPI_CONVERSION_TABLE;
|
||||
|
||||
|
||||
/* Conversion tables */
|
||||
|
||||
extern ACPI_CONVERSION_TABLE LinuxConversionTable;
|
||||
extern ACPI_CONVERSION_TABLE CleanupConversionTable;
|
||||
extern ACPI_CONVERSION_TABLE StatsConversionTable;
|
||||
extern ACPI_CONVERSION_TABLE CustomConversionTable;
|
||||
|
||||
|
||||
/* Prototypes */
|
||||
|
||||
char *
|
||||
AsSkipUntilChar (
|
||||
char *Buffer,
|
||||
char Target);
|
||||
|
||||
char *
|
||||
AsSkipPastChar (
|
||||
char *Buffer,
|
||||
char Target);
|
||||
|
||||
char *
|
||||
AsReplaceData (
|
||||
char *Buffer,
|
||||
UINT32 LengthToRemove,
|
||||
char *BufferToAdd,
|
||||
UINT32 LengthToAdd);
|
||||
|
||||
int
|
||||
AsReplaceString (
|
||||
char *Target,
|
||||
char *Replacement,
|
||||
UINT8 Type,
|
||||
char *Buffer);
|
||||
|
||||
int
|
||||
AsLowerCaseString (
|
||||
char *Target,
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AsRemoveLine (
|
||||
char *Buffer,
|
||||
char *Keyword);
|
||||
|
||||
void
|
||||
AsRemoveMacro (
|
||||
char *Buffer,
|
||||
char *Keyword);
|
||||
|
||||
void
|
||||
AsCheckForBraces (
|
||||
char *Buffer,
|
||||
char *Filename);
|
||||
|
||||
void
|
||||
AsTrimLines (
|
||||
char *Buffer,
|
||||
char *Filename);
|
||||
|
||||
void
|
||||
AsMixedCaseToUnderscores (
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AsCountTabs (
|
||||
char *Buffer,
|
||||
char *Filename);
|
||||
|
||||
void
|
||||
AsBracesOnSameLine (
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AsLowerCaseIdentifiers (
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AsReduceTypedefs (
|
||||
char *Buffer,
|
||||
char *Keyword);
|
||||
|
||||
void
|
||||
AsRemoveDebugMacros (
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AsRemoveEmptyBlocks (
|
||||
char *Buffer,
|
||||
char *Filename);
|
||||
|
||||
void
|
||||
AsCountSourceLines (
|
||||
char *Buffer,
|
||||
char *Filename);
|
||||
|
||||
void
|
||||
AsCountNonAnsiComments (
|
||||
char *Buffer,
|
||||
char *Filename);
|
||||
|
||||
void
|
||||
AsTrimWhitespace (
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AsTabify4 (
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AsTabify8 (
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AsRemoveConditionalCompile (
|
||||
char *Buffer,
|
||||
char *Keyword);
|
||||
|
||||
ACPI_NATIVE_INT
|
||||
AsProcessTree (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *SourcePath,
|
||||
char *TargetPath);
|
||||
|
||||
int
|
||||
AsGetFile (
|
||||
char *FileName,
|
||||
char **FileBuffer,
|
||||
UINT32 *FileSize);
|
||||
|
||||
int
|
||||
AsPutFile (
|
||||
char *Pathname,
|
||||
char *FileBuffer,
|
||||
UINT32 SystemFlags);
|
||||
|
||||
void
|
||||
AsReplaceHeader (
|
||||
char *Buffer,
|
||||
char *NewHeader);
|
||||
|
||||
void
|
||||
AsConvertFile (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *FileBuffer,
|
||||
char *Filename,
|
||||
ACPI_NATIVE_INT FileType);
|
||||
|
||||
ACPI_NATIVE_INT
|
||||
AsProcessOneFile (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *SourcePath,
|
||||
char *TargetPath,
|
||||
int MaxPathLength,
|
||||
char *Filename,
|
||||
ACPI_NATIVE_INT FileType);
|
||||
|
||||
ACPI_NATIVE_INT
|
||||
AsCheckForDirectory (
|
||||
char *SourceDirPath,
|
||||
char *TargetDirPath,
|
||||
char *Filename,
|
||||
char **SourcePath,
|
||||
char **TargetPath);
|
||||
|
||||
BOOLEAN
|
||||
AsMatchExactWord (
|
||||
char *Word,
|
||||
UINT32 WordLength);
|
||||
|
||||
void
|
||||
AsPrint (
|
||||
char *Message,
|
||||
UINT32 Count,
|
||||
char *Filename);
|
||||
|
||||
void
|
||||
AsInsertPrefix (
|
||||
char *Buffer,
|
||||
char *Keyword,
|
||||
UINT8 Type);
|
||||
|
||||
char *
|
||||
AsInsertData (
|
||||
char *Buffer,
|
||||
char *BufferToAdd,
|
||||
UINT32 LengthToAdd);
|
||||
|
||||
char *
|
||||
AsRemoveData (
|
||||
char *StartPointer,
|
||||
char *EndPointer);
|
||||
|
||||
void
|
||||
AsInsertCarriageReturns (
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AsConvertToLineFeeds (
|
||||
char *Buffer);
|
||||
|
||||
|
@ -1,646 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: ascase - Source conversion - lower/upper case utilities
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "acpisrc.h"
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
void
|
||||
AsUppercaseTokens (
|
||||
char *Buffer,
|
||||
char *PrefixString);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsLowerCaseString
|
||||
*
|
||||
* DESCRIPTION: LowerCase all instances of a target string with a replacement
|
||||
* string. Returns count of the strings replaced.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AsLowerCaseString (
|
||||
char *Target,
|
||||
char *Buffer)
|
||||
{
|
||||
char *SubString1;
|
||||
char *SubString2;
|
||||
char *SubBuffer;
|
||||
int TargetLength;
|
||||
int LowerCaseCount = 0;
|
||||
int i;
|
||||
|
||||
|
||||
TargetLength = strlen (Target);
|
||||
|
||||
SubBuffer = Buffer;
|
||||
SubString1 = Buffer;
|
||||
|
||||
while (SubString1)
|
||||
{
|
||||
/* Find the target string */
|
||||
|
||||
SubString1 = strstr (SubBuffer, Target);
|
||||
if (!SubString1)
|
||||
{
|
||||
return LowerCaseCount;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for translation escape string -- means to ignore
|
||||
* blocks of code while replacing
|
||||
*/
|
||||
SubString2 = strstr (SubBuffer, AS_START_IGNORE);
|
||||
|
||||
if ((SubString2) &&
|
||||
(SubString2 < SubString1))
|
||||
{
|
||||
/* Find end of the escape block starting at "Substring2" */
|
||||
|
||||
SubString2 = strstr (SubString2, AS_STOP_IGNORE);
|
||||
if (!SubString2)
|
||||
{
|
||||
/* Didn't find terminator */
|
||||
|
||||
return LowerCaseCount;
|
||||
}
|
||||
|
||||
/* Move buffer to end of escape block and continue */
|
||||
|
||||
SubBuffer = SubString2;
|
||||
}
|
||||
|
||||
/* Do the actual replace if the target was found */
|
||||
|
||||
else
|
||||
{
|
||||
if (!AsMatchExactWord (SubString1, TargetLength))
|
||||
{
|
||||
SubBuffer = SubString1 + 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < TargetLength; i++)
|
||||
{
|
||||
SubString1[i] = (char) tolower (SubString1[i]);
|
||||
}
|
||||
|
||||
SubBuffer = SubString1 + TargetLength;
|
||||
|
||||
if ((Gbl_WidenDeclarations) && (!Gbl_StructDefs))
|
||||
{
|
||||
if ((SubBuffer[0] == ' ') && (SubBuffer[1] == ' '))
|
||||
{
|
||||
AsInsertData (SubBuffer, " ", 8);
|
||||
}
|
||||
}
|
||||
|
||||
LowerCaseCount++;
|
||||
}
|
||||
}
|
||||
|
||||
return LowerCaseCount;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsMixedCaseToUnderscores
|
||||
*
|
||||
* DESCRIPTION: Converts mixed case identifiers to underscored identifiers.
|
||||
* for example,
|
||||
*
|
||||
* ThisUsefullyNamedIdentifier becomes:
|
||||
*
|
||||
* this_usefully_named_identifier
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsMixedCaseToUnderscores (
|
||||
char *Buffer)
|
||||
{
|
||||
UINT32 Length;
|
||||
char *SubBuffer = Buffer;
|
||||
char *TokenEnd;
|
||||
char *TokenStart = NULL;
|
||||
char *SubString;
|
||||
BOOLEAN HasLowerCase = FALSE;
|
||||
|
||||
|
||||
while (*SubBuffer)
|
||||
{
|
||||
/* Ignore whitespace */
|
||||
|
||||
if (*SubBuffer == ' ')
|
||||
{
|
||||
while (*SubBuffer == ' ')
|
||||
{
|
||||
SubBuffer++;
|
||||
}
|
||||
TokenStart = NULL;
|
||||
HasLowerCase = FALSE;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Ignore commas */
|
||||
|
||||
if ((*SubBuffer == ',') ||
|
||||
(*SubBuffer == '>') ||
|
||||
(*SubBuffer == ')'))
|
||||
{
|
||||
SubBuffer++;
|
||||
TokenStart = NULL;
|
||||
HasLowerCase = FALSE;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Check for quoted string -- ignore */
|
||||
|
||||
if (*SubBuffer == '"')
|
||||
{
|
||||
SubBuffer++;
|
||||
while (*SubBuffer != '"')
|
||||
{
|
||||
if (!*SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Handle embedded escape sequences */
|
||||
|
||||
if (*SubBuffer == '\\')
|
||||
{
|
||||
SubBuffer++;
|
||||
}
|
||||
SubBuffer++;
|
||||
}
|
||||
SubBuffer++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (islower (*SubBuffer))
|
||||
{
|
||||
HasLowerCase = TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for translation escape string -- means to ignore
|
||||
* blocks of code while replacing
|
||||
*/
|
||||
if ((SubBuffer[0] == '/') &&
|
||||
(SubBuffer[1] == '*') &&
|
||||
(SubBuffer[2] == '!'))
|
||||
{
|
||||
SubBuffer = strstr (SubBuffer, "!*/");
|
||||
if (!SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Ignore hex constants */
|
||||
|
||||
if (SubBuffer[0] == '0')
|
||||
{
|
||||
if ((SubBuffer[1] == 'x') ||
|
||||
(SubBuffer[1] == 'X'))
|
||||
{
|
||||
SubBuffer += 2;
|
||||
while (isxdigit (*SubBuffer))
|
||||
{
|
||||
SubBuffer++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* OBSOLETE CODE, all quoted strings now completely ignored. */
|
||||
#if 0
|
||||
/* Ignore format specification fields */
|
||||
|
||||
if (SubBuffer[0] == '%')
|
||||
{
|
||||
SubBuffer++;
|
||||
|
||||
while ((isalnum (*SubBuffer)) || (*SubBuffer == '.'))
|
||||
{
|
||||
SubBuffer++;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Ignore standard escape sequences (\n, \r, etc.) Not Hex or Octal escapes */
|
||||
|
||||
if (SubBuffer[0] == '\\')
|
||||
{
|
||||
SubBuffer += 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* Ignore identifiers that already contain embedded underscores
|
||||
* These are typically C macros or defines (all upper case)
|
||||
* Note: there are some cases where identifiers have underscores
|
||||
* AcpiGbl_* for example. HasLowerCase flag handles these.
|
||||
*/
|
||||
if ((*SubBuffer == '_') && (!HasLowerCase) && (TokenStart))
|
||||
{
|
||||
/* Check the rest of the identifier for any lower case letters */
|
||||
|
||||
SubString = SubBuffer;
|
||||
while ((isalnum (*SubString)) || (*SubString == '_'))
|
||||
{
|
||||
if (islower (*SubString))
|
||||
{
|
||||
HasLowerCase = TRUE;
|
||||
}
|
||||
SubString++;
|
||||
}
|
||||
|
||||
/* If no lower case letters, we can safely ignore the entire token */
|
||||
|
||||
if (!HasLowerCase)
|
||||
{
|
||||
SubBuffer = SubString;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* A capital letter may indicate the start of a token; save it */
|
||||
|
||||
if (isupper (SubBuffer[0]))
|
||||
{
|
||||
TokenStart = SubBuffer;
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert each pair of letters that matches the form:
|
||||
*
|
||||
* <LowerCase><UpperCase>
|
||||
* to
|
||||
* <LowerCase><Underscore><LowerCase>
|
||||
*/
|
||||
else if ((islower (SubBuffer[0]) || isdigit (SubBuffer[0])) &&
|
||||
(isupper (SubBuffer[1])))
|
||||
{
|
||||
if (isdigit (SubBuffer[0]))
|
||||
{
|
||||
/* Ignore <UpperCase><Digit><UpperCase> */
|
||||
/* Ignore <Underscore><Digit><UpperCase> */
|
||||
|
||||
if (isupper (*(SubBuffer-1)) ||
|
||||
*(SubBuffer-1) == '_')
|
||||
{
|
||||
SubBuffer++;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Matched the pattern.
|
||||
* Find the end of this identifier (token)
|
||||
*/
|
||||
TokenEnd = SubBuffer;
|
||||
while ((isalnum (*TokenEnd)) || (*TokenEnd == '_'))
|
||||
{
|
||||
TokenEnd++;
|
||||
}
|
||||
|
||||
/* Force the UpperCase letter (#2) to lower case */
|
||||
|
||||
Gbl_MadeChanges = TRUE;
|
||||
SubBuffer[1] = (char) tolower (SubBuffer[1]);
|
||||
|
||||
SubString = TokenEnd;
|
||||
Length = 0;
|
||||
|
||||
while (*SubString != '\n')
|
||||
{
|
||||
/*
|
||||
* If we have at least two trailing spaces, we can get rid of
|
||||
* one to make up for the newly inserted underscore. This will
|
||||
* help preserve the alignment of the text
|
||||
*/
|
||||
if ((SubString[0] == ' ') &&
|
||||
(SubString[1] == ' '))
|
||||
{
|
||||
Length = SubString - SubBuffer - 2;
|
||||
break;
|
||||
}
|
||||
|
||||
SubString++;
|
||||
}
|
||||
|
||||
if (!Length)
|
||||
{
|
||||
Length = strlen (&SubBuffer[1]);
|
||||
}
|
||||
|
||||
memmove (&SubBuffer[2], &SubBuffer[1], Length + 1);
|
||||
SubBuffer[1] = '_';
|
||||
SubBuffer +=2;
|
||||
|
||||
/* Lower case the leading character of the token */
|
||||
|
||||
if (TokenStart)
|
||||
{
|
||||
*TokenStart = (char) tolower (*TokenStart);
|
||||
TokenStart = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
SubBuffer++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsLowerCaseIdentifiers
|
||||
*
|
||||
* DESCRIPTION: Converts mixed case identifiers to lower case. Leaves comments,
|
||||
* quoted strings, and all-upper-case macros alone.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsLowerCaseIdentifiers (
|
||||
char *Buffer)
|
||||
{
|
||||
char *SubBuffer = Buffer;
|
||||
|
||||
|
||||
while (*SubBuffer)
|
||||
{
|
||||
/*
|
||||
* Check for translation escape string -- means to ignore
|
||||
* blocks of code while replacing
|
||||
*/
|
||||
if ((SubBuffer[0] == '/') &&
|
||||
(SubBuffer[1] == '*') &&
|
||||
(SubBuffer[2] == '!'))
|
||||
{
|
||||
SubBuffer = strstr (SubBuffer, "!*/");
|
||||
if (!SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Ignore comments */
|
||||
|
||||
if ((SubBuffer[0] == '/') &&
|
||||
(SubBuffer[1] == '*'))
|
||||
{
|
||||
SubBuffer = strstr (SubBuffer, "*/");
|
||||
if (!SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SubBuffer += 2;
|
||||
}
|
||||
|
||||
/* Ignore quoted strings */
|
||||
|
||||
if ((SubBuffer[0] == '\"') && (SubBuffer[1] != '\''))
|
||||
{
|
||||
SubBuffer++;
|
||||
|
||||
/* Find the closing quote */
|
||||
|
||||
while (SubBuffer[0])
|
||||
{
|
||||
/* Ignore escaped quote characters */
|
||||
|
||||
if (SubBuffer[0] == '\\')
|
||||
{
|
||||
SubBuffer++;
|
||||
}
|
||||
else if (SubBuffer[0] == '\"')
|
||||
{
|
||||
SubBuffer++;
|
||||
break;
|
||||
}
|
||||
SubBuffer++;
|
||||
}
|
||||
}
|
||||
|
||||
if (!SubBuffer[0])
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Only lower case if we have an upper followed by a lower
|
||||
* This leaves the all-uppercase things (macros, etc.) intact
|
||||
*/
|
||||
if ((isupper (SubBuffer[0])) &&
|
||||
(islower (SubBuffer[1])))
|
||||
{
|
||||
Gbl_MadeChanges = TRUE;
|
||||
*SubBuffer = (char) tolower (*SubBuffer);
|
||||
}
|
||||
|
||||
SubBuffer++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsUppercaseTokens
|
||||
*
|
||||
* DESCRIPTION: Force to uppercase all tokens that begin with the prefix string.
|
||||
* used to convert mixed-case macros and constants to uppercase.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsUppercaseTokens (
|
||||
char *Buffer,
|
||||
char *PrefixString)
|
||||
{
|
||||
char *SubBuffer;
|
||||
char *TokenEnd;
|
||||
char *SubString;
|
||||
int i;
|
||||
UINT32 Length;
|
||||
|
||||
|
||||
SubBuffer = Buffer;
|
||||
|
||||
while (SubBuffer)
|
||||
{
|
||||
SubBuffer = strstr (SubBuffer, PrefixString);
|
||||
if (SubBuffer)
|
||||
{
|
||||
TokenEnd = SubBuffer;
|
||||
while ((isalnum (*TokenEnd)) || (*TokenEnd == '_'))
|
||||
{
|
||||
TokenEnd++;
|
||||
}
|
||||
|
||||
for (i = 0; i < (TokenEnd - SubBuffer); i++)
|
||||
{
|
||||
if ((islower (SubBuffer[i])) &&
|
||||
(isupper (SubBuffer[i+1])))
|
||||
{
|
||||
|
||||
SubString = TokenEnd;
|
||||
Length = 0;
|
||||
|
||||
while (*SubString != '\n')
|
||||
{
|
||||
if ((SubString[0] == ' ') &&
|
||||
(SubString[1] == ' '))
|
||||
{
|
||||
Length = SubString - &SubBuffer[i] - 2;
|
||||
break;
|
||||
}
|
||||
|
||||
SubString++;
|
||||
}
|
||||
|
||||
if (!Length)
|
||||
{
|
||||
Length = strlen (&SubBuffer[i+1]);
|
||||
}
|
||||
|
||||
memmove (&SubBuffer[i+2], &SubBuffer[i+1], (Length+1));
|
||||
SubBuffer[i+1] = '_';
|
||||
i +=2;
|
||||
TokenEnd++;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < (TokenEnd - SubBuffer); i++)
|
||||
{
|
||||
SubBuffer[i] = (char) toupper (SubBuffer[i]);
|
||||
}
|
||||
|
||||
SubBuffer = TokenEnd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,886 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: asfile - Main module for the acpi source processor utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "acpisrc.h"
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
void
|
||||
AsDoWildcard (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *SourcePath,
|
||||
char *TargetPath,
|
||||
int MaxPathLength,
|
||||
int FileType,
|
||||
char *WildcardSpec);
|
||||
|
||||
BOOLEAN
|
||||
AsDetectLoneLineFeeds (
|
||||
char *Filename,
|
||||
char *Buffer);
|
||||
|
||||
static inline int
|
||||
AsMaxInt (int a, int b)
|
||||
{
|
||||
return (a > b ? a : b);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsDoWildcard
|
||||
*
|
||||
* DESCRIPTION: Process files via wildcards
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsDoWildcard (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *SourcePath,
|
||||
char *TargetPath,
|
||||
int MaxPathLength,
|
||||
int FileType,
|
||||
char *WildcardSpec)
|
||||
{
|
||||
void *DirInfo;
|
||||
char *Filename;
|
||||
char *SourceDirPath;
|
||||
char *TargetDirPath;
|
||||
char RequestedFileType;
|
||||
|
||||
|
||||
if (FileType == FILE_TYPE_DIRECTORY)
|
||||
{
|
||||
RequestedFileType = REQUEST_DIR_ONLY;
|
||||
}
|
||||
else
|
||||
{
|
||||
RequestedFileType = REQUEST_FILE_ONLY;
|
||||
}
|
||||
|
||||
VERBOSE_PRINT (("Checking for %s source files in directory \"%s\"\n",
|
||||
WildcardSpec, SourcePath));
|
||||
|
||||
/* Open the directory for wildcard search */
|
||||
|
||||
DirInfo = AcpiOsOpenDirectory (SourcePath, WildcardSpec, RequestedFileType);
|
||||
if (DirInfo)
|
||||
{
|
||||
/*
|
||||
* Get all of the files that match both the
|
||||
* wildcard and the requested file type
|
||||
*/
|
||||
while ((Filename = AcpiOsGetNextFilename (DirInfo)))
|
||||
{
|
||||
/* Looking for directory files, must check file type */
|
||||
|
||||
switch (RequestedFileType)
|
||||
{
|
||||
case REQUEST_DIR_ONLY:
|
||||
|
||||
/* If we actually have a dir, process the subtree */
|
||||
|
||||
if (!AsCheckForDirectory (SourcePath, TargetPath, Filename,
|
||||
&SourceDirPath, &TargetDirPath))
|
||||
{
|
||||
VERBOSE_PRINT (("Subdirectory: %s\n", Filename));
|
||||
|
||||
AsProcessTree (ConversionTable, SourceDirPath, TargetDirPath);
|
||||
free (SourceDirPath);
|
||||
free (TargetDirPath);
|
||||
}
|
||||
break;
|
||||
|
||||
case REQUEST_FILE_ONLY:
|
||||
|
||||
/* Otherwise, this is a file, not a directory */
|
||||
|
||||
VERBOSE_PRINT (("File: %s\n", Filename));
|
||||
|
||||
AsProcessOneFile (ConversionTable, SourcePath, TargetPath,
|
||||
MaxPathLength, Filename, FileType);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Cleanup */
|
||||
|
||||
AcpiOsCloseDirectory (DirInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsProcessTree
|
||||
*
|
||||
* DESCRIPTION: Process the directory tree. Files with the extension ".C" and
|
||||
* ".H" are processed as the tree is traversed.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_NATIVE_INT
|
||||
AsProcessTree (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *SourcePath,
|
||||
char *TargetPath)
|
||||
{
|
||||
int MaxPathLength;
|
||||
|
||||
|
||||
MaxPathLength = AsMaxInt (strlen (SourcePath), strlen (TargetPath));
|
||||
|
||||
if (!(ConversionTable->Flags & FLG_NO_FILE_OUTPUT))
|
||||
{
|
||||
if (ConversionTable->Flags & FLG_LOWERCASE_DIRNAMES)
|
||||
{
|
||||
strlwr (TargetPath);
|
||||
}
|
||||
|
||||
VERBOSE_PRINT (("Creating Directory \"%s\"\n", TargetPath));
|
||||
if (mkdir (TargetPath))
|
||||
{
|
||||
if (errno != EEXIST)
|
||||
{
|
||||
printf ("Could not create target directory\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Do the C source files */
|
||||
|
||||
AsDoWildcard (ConversionTable, SourcePath, TargetPath, MaxPathLength,
|
||||
FILE_TYPE_SOURCE, "*.c");
|
||||
|
||||
/* Do the C header files */
|
||||
|
||||
AsDoWildcard (ConversionTable, SourcePath, TargetPath, MaxPathLength,
|
||||
FILE_TYPE_HEADER, "*.h");
|
||||
|
||||
/* Do the Lex file(s) */
|
||||
|
||||
AsDoWildcard (ConversionTable, SourcePath, TargetPath, MaxPathLength,
|
||||
FILE_TYPE_SOURCE, "*.l");
|
||||
|
||||
/* Do the yacc file(s) */
|
||||
|
||||
AsDoWildcard (ConversionTable, SourcePath, TargetPath, MaxPathLength,
|
||||
FILE_TYPE_SOURCE, "*.y");
|
||||
|
||||
/* Do any ASL files */
|
||||
|
||||
AsDoWildcard (ConversionTable, SourcePath, TargetPath, MaxPathLength,
|
||||
FILE_TYPE_HEADER, "*.asl");
|
||||
|
||||
/* Do any subdirectories */
|
||||
|
||||
AsDoWildcard (ConversionTable, SourcePath, TargetPath, MaxPathLength,
|
||||
FILE_TYPE_DIRECTORY, "*");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsDetectLoneLineFeeds
|
||||
*
|
||||
* DESCRIPTION: Find LF without CR.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
BOOLEAN
|
||||
AsDetectLoneLineFeeds (
|
||||
char *Filename,
|
||||
char *Buffer)
|
||||
{
|
||||
UINT32 i = 1;
|
||||
UINT32 LfCount = 0;
|
||||
UINT32 LineCount = 0;
|
||||
|
||||
|
||||
if (!Buffer[0])
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
while (Buffer[i])
|
||||
{
|
||||
if (Buffer[i] == 0x0A)
|
||||
{
|
||||
if (Buffer[i-1] != 0x0D)
|
||||
{
|
||||
LfCount++;
|
||||
}
|
||||
LineCount++;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
if (LfCount)
|
||||
{
|
||||
if (LineCount == LfCount)
|
||||
{
|
||||
if (!Gbl_IgnoreLoneLineFeeds)
|
||||
{
|
||||
printf ("%s: ****File has UNIX format**** (LF only, not CR/LF) %d lines\n",
|
||||
Filename, LfCount);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("%s: %d lone linefeeds in file\n", Filename, LfCount);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsConvertFile
|
||||
*
|
||||
* DESCRIPTION: Perform the requested transforms on the file buffer (as
|
||||
* determined by the ConversionTable and the FileType).
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsConvertFile (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *FileBuffer,
|
||||
char *Filename,
|
||||
ACPI_NATIVE_INT FileType)
|
||||
{
|
||||
UINT32 i;
|
||||
UINT32 Functions;
|
||||
ACPI_STRING_TABLE *StringTable;
|
||||
ACPI_IDENTIFIER_TABLE *ConditionalTable;
|
||||
ACPI_IDENTIFIER_TABLE *LineTable;
|
||||
ACPI_IDENTIFIER_TABLE *MacroTable;
|
||||
ACPI_TYPED_IDENTIFIER_TABLE *StructTable;
|
||||
|
||||
|
||||
switch (FileType)
|
||||
{
|
||||
case FILE_TYPE_SOURCE:
|
||||
Functions = ConversionTable->SourceFunctions;
|
||||
StringTable = ConversionTable->SourceStringTable;
|
||||
LineTable = ConversionTable->SourceLineTable;
|
||||
ConditionalTable = ConversionTable->SourceConditionalTable;
|
||||
MacroTable = ConversionTable->SourceMacroTable;
|
||||
StructTable = ConversionTable->SourceStructTable;
|
||||
break;
|
||||
|
||||
case FILE_TYPE_HEADER:
|
||||
Functions = ConversionTable->HeaderFunctions;
|
||||
StringTable = ConversionTable->HeaderStringTable;
|
||||
LineTable = ConversionTable->HeaderLineTable;
|
||||
ConditionalTable = ConversionTable->HeaderConditionalTable;
|
||||
MacroTable = ConversionTable->HeaderMacroTable;
|
||||
StructTable = ConversionTable->HeaderStructTable;
|
||||
break;
|
||||
|
||||
default:
|
||||
printf ("Unknown file type, cannot process\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Gbl_StructDefs = strstr (FileBuffer, "/* acpisrc:StructDefs");
|
||||
Gbl_Files++;
|
||||
VERBOSE_PRINT (("Processing %u bytes\n", strlen (FileBuffer)));
|
||||
|
||||
if (ConversionTable->LowerCaseTable)
|
||||
{
|
||||
for (i = 0; ConversionTable->LowerCaseTable[i].Identifier; i++)
|
||||
{
|
||||
AsLowerCaseString (ConversionTable->LowerCaseTable[i].Identifier,
|
||||
FileBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
/* Process all the string replacements */
|
||||
|
||||
if (StringTable)
|
||||
{
|
||||
for (i = 0; StringTable[i].Target; i++)
|
||||
{
|
||||
AsReplaceString (StringTable[i].Target, StringTable[i].Replacement,
|
||||
StringTable[i].Type, FileBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
if (LineTable)
|
||||
{
|
||||
for (i = 0; LineTable[i].Identifier; i++)
|
||||
{
|
||||
AsRemoveLine (FileBuffer, LineTable[i].Identifier);
|
||||
}
|
||||
}
|
||||
|
||||
if (ConditionalTable)
|
||||
{
|
||||
for (i = 0; ConditionalTable[i].Identifier; i++)
|
||||
{
|
||||
AsRemoveConditionalCompile (FileBuffer, ConditionalTable[i].Identifier);
|
||||
}
|
||||
}
|
||||
|
||||
if (MacroTable)
|
||||
{
|
||||
for (i = 0; MacroTable[i].Identifier; i++)
|
||||
{
|
||||
AsRemoveMacro (FileBuffer, MacroTable[i].Identifier);
|
||||
}
|
||||
}
|
||||
|
||||
if (StructTable)
|
||||
{
|
||||
for (i = 0; StructTable[i].Identifier; i++)
|
||||
{
|
||||
AsInsertPrefix (FileBuffer, StructTable[i].Identifier, StructTable[i].Type);
|
||||
}
|
||||
}
|
||||
|
||||
/* Process the function table */
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
/* Decode the function bitmap */
|
||||
|
||||
switch ((1 << i) & Functions)
|
||||
{
|
||||
case 0:
|
||||
/* This function not configured */
|
||||
break;
|
||||
|
||||
|
||||
case CVT_COUNT_TABS:
|
||||
|
||||
AsCountTabs (FileBuffer, Filename);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_COUNT_NON_ANSI_COMMENTS:
|
||||
|
||||
AsCountNonAnsiComments (FileBuffer, Filename);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_CHECK_BRACES:
|
||||
|
||||
AsCheckForBraces (FileBuffer, Filename);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_TRIM_LINES:
|
||||
|
||||
AsTrimLines (FileBuffer, Filename);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_COUNT_LINES:
|
||||
|
||||
AsCountSourceLines (FileBuffer, Filename);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_BRACES_ON_SAME_LINE:
|
||||
|
||||
AsBracesOnSameLine (FileBuffer);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_MIXED_CASE_TO_UNDERSCORES:
|
||||
|
||||
AsMixedCaseToUnderscores (FileBuffer);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_LOWER_CASE_IDENTIFIERS:
|
||||
|
||||
AsLowerCaseIdentifiers (FileBuffer);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_REMOVE_DEBUG_MACROS:
|
||||
|
||||
AsRemoveDebugMacros (FileBuffer);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_TRIM_WHITESPACE:
|
||||
|
||||
AsTrimWhitespace (FileBuffer);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_REMOVE_EMPTY_BLOCKS:
|
||||
|
||||
AsRemoveEmptyBlocks (FileBuffer, Filename);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_REDUCE_TYPEDEFS:
|
||||
|
||||
AsReduceTypedefs (FileBuffer, "typedef union");
|
||||
AsReduceTypedefs (FileBuffer, "typedef struct");
|
||||
break;
|
||||
|
||||
|
||||
case CVT_SPACES_TO_TABS4:
|
||||
|
||||
AsTabify4 (FileBuffer);
|
||||
break;
|
||||
|
||||
|
||||
case CVT_SPACES_TO_TABS8:
|
||||
|
||||
AsTabify8 (FileBuffer);
|
||||
break;
|
||||
|
||||
case CVT_COUNT_SHORTMULTILINE_COMMENTS:
|
||||
|
||||
#ifdef ACPI_FUTURE_IMPLEMENTATION
|
||||
AsTrimComments (FileBuffer, Filename);
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
printf ("Unknown conversion subfunction opcode\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ConversionTable->NewHeader)
|
||||
{
|
||||
AsReplaceHeader (FileBuffer, ConversionTable->NewHeader);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsProcessOneFile
|
||||
*
|
||||
* DESCRIPTION: Process one source file. The file is opened, read entirely
|
||||
* into a buffer, converted, then written to a new file.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_NATIVE_INT
|
||||
AsProcessOneFile (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *SourcePath,
|
||||
char *TargetPath,
|
||||
int MaxPathLength,
|
||||
char *Filename,
|
||||
ACPI_NATIVE_INT FileType)
|
||||
{
|
||||
char *Pathname;
|
||||
char *OutPathname = NULL;
|
||||
|
||||
|
||||
/* Allocate a file pathname buffer for both source and target */
|
||||
|
||||
Pathname = calloc (MaxPathLength + strlen (Filename) + 2, 1);
|
||||
if (!Pathname)
|
||||
{
|
||||
printf ("Could not allocate buffer for file pathnames\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
Gbl_FileType = FileType;
|
||||
|
||||
/* Generate the source pathname and read the file */
|
||||
|
||||
if (SourcePath)
|
||||
{
|
||||
strcpy (Pathname, SourcePath);
|
||||
strcat (Pathname, "/");
|
||||
}
|
||||
|
||||
strcat (Pathname, Filename);
|
||||
|
||||
if (AsGetFile (Pathname, &Gbl_FileBuffer, &Gbl_FileSize))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
Gbl_HeaderSize = 0;
|
||||
if (strstr (Filename, ".asl"))
|
||||
{
|
||||
Gbl_HeaderSize = LINES_IN_ASL_HEADER; /* Lines in default ASL header */
|
||||
}
|
||||
else if (strstr (Gbl_FileBuffer, LEGAL_HEADER_SIGNATURE))
|
||||
{
|
||||
Gbl_HeaderSize = LINES_IN_LEGAL_HEADER; /* Normal C file and H header */
|
||||
}
|
||||
else if (strstr (Gbl_FileBuffer, LINUX_HEADER_SIGNATURE))
|
||||
{
|
||||
Gbl_HeaderSize = LINES_IN_LINUX_HEADER; /* Linuxized C file and H header */
|
||||
}
|
||||
|
||||
/* Process the file in the buffer */
|
||||
|
||||
Gbl_MadeChanges = FALSE;
|
||||
if (!Gbl_IgnoreLoneLineFeeds && Gbl_HasLoneLineFeeds)
|
||||
{
|
||||
/*
|
||||
* All lone LFs will be converted to CR/LF
|
||||
* (when file is written, Windows version only)
|
||||
*/
|
||||
printf ("Converting lone linefeeds\n");
|
||||
Gbl_MadeChanges = TRUE;
|
||||
}
|
||||
|
||||
AsConvertFile (ConversionTable, Gbl_FileBuffer, Pathname, FileType);
|
||||
|
||||
if (!(ConversionTable->Flags & FLG_NO_FILE_OUTPUT))
|
||||
{
|
||||
if (!(Gbl_Overwrite && !Gbl_MadeChanges))
|
||||
{
|
||||
/* Generate the target pathname and write the file */
|
||||
|
||||
OutPathname = calloc (MaxPathLength + strlen (Filename) + 2 + strlen (TargetPath), 1);
|
||||
if (!OutPathname)
|
||||
{
|
||||
printf ("Could not allocate buffer for file pathnames\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
strcpy (OutPathname, TargetPath);
|
||||
if (SourcePath)
|
||||
{
|
||||
strcat (OutPathname, "/");
|
||||
strcat (OutPathname, Filename);
|
||||
}
|
||||
|
||||
AsPutFile (OutPathname, Gbl_FileBuffer, ConversionTable->Flags);
|
||||
}
|
||||
}
|
||||
|
||||
free (Gbl_FileBuffer);
|
||||
free (Pathname);
|
||||
if (OutPathname)
|
||||
{
|
||||
free (OutPathname);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsCheckForDirectory
|
||||
*
|
||||
* DESCRIPTION: Check if the current file is a valid directory. If not,
|
||||
* construct the full pathname for the source and target paths.
|
||||
* Checks for the dot and dot-dot files (they are ignored)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_NATIVE_INT
|
||||
AsCheckForDirectory (
|
||||
char *SourceDirPath,
|
||||
char *TargetDirPath,
|
||||
char *Filename,
|
||||
char **SourcePath,
|
||||
char **TargetPath)
|
||||
{
|
||||
char *SrcPath;
|
||||
char *TgtPath;
|
||||
|
||||
|
||||
if (!(strcmp (Filename, ".")) ||
|
||||
!(strcmp (Filename, "..")))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
SrcPath = calloc (strlen (SourceDirPath) + strlen (Filename) + 2, 1);
|
||||
if (!SrcPath)
|
||||
{
|
||||
printf ("Could not allocate buffer for directory source pathname\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
TgtPath = calloc (strlen (TargetDirPath) + strlen (Filename) + 2, 1);
|
||||
if (!TgtPath)
|
||||
{
|
||||
printf ("Could not allocate buffer for directory target pathname\n");
|
||||
free (SrcPath);
|
||||
return -1;
|
||||
}
|
||||
|
||||
strcpy (SrcPath, SourceDirPath);
|
||||
strcat (SrcPath, "/");
|
||||
strcat (SrcPath, Filename);
|
||||
|
||||
strcpy (TgtPath, TargetDirPath);
|
||||
strcat (TgtPath, "/");
|
||||
strcat (TgtPath, Filename);
|
||||
|
||||
*SourcePath = SrcPath;
|
||||
*TargetPath = TgtPath;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsGetFile
|
||||
*
|
||||
* DESCRIPTION: Open a file and read it entirely into a an allocated buffer
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AsGetFile (
|
||||
char *Filename,
|
||||
char **FileBuffer,
|
||||
UINT32 *FileSize)
|
||||
{
|
||||
|
||||
int FileHandle;
|
||||
UINT32 Size;
|
||||
char *Buffer;
|
||||
|
||||
|
||||
/* Binary mode leaves CR/LF pairs */
|
||||
|
||||
FileHandle = open (Filename, O_BINARY | O_RDONLY);
|
||||
if (!FileHandle)
|
||||
{
|
||||
printf ("Could not open %s\n", Filename);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (fstat (FileHandle, &Gbl_StatBuf))
|
||||
{
|
||||
printf ("Could not get file status for %s\n", Filename);
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a buffer for the entire file
|
||||
* Add plenty extra buffer to accomodate string replacements
|
||||
*/
|
||||
Size = Gbl_StatBuf.st_size;
|
||||
Gbl_TotalSize += Size;
|
||||
|
||||
Buffer = calloc (Size * 2, 1);
|
||||
if (!Buffer)
|
||||
{
|
||||
printf ("Could not allocate buffer of size %d\n", Size * 2);
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
/* Read the entire file */
|
||||
|
||||
Size = read (FileHandle, Buffer, Size);
|
||||
if (Size == -1)
|
||||
{
|
||||
printf ("Could not read the input file %s\n", Filename);
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
Buffer [Size] = 0; /* Null terminate the buffer */
|
||||
close (FileHandle);
|
||||
|
||||
/* Check for unix contamination */
|
||||
|
||||
Gbl_HasLoneLineFeeds = AsDetectLoneLineFeeds (Filename, Buffer);
|
||||
|
||||
/*
|
||||
* Convert all CR/LF pairs to LF only. We do this locally so that
|
||||
* this code is portable across operating systems.
|
||||
*/
|
||||
AsConvertToLineFeeds (Buffer);
|
||||
|
||||
*FileBuffer = Buffer;
|
||||
*FileSize = Size;
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
ErrorExit:
|
||||
|
||||
close (FileHandle);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsPutFile
|
||||
*
|
||||
* DESCRIPTION: Create a new output file and write the entire contents of the
|
||||
* buffer to the new file. Buffer must be a zero terminated string
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AsPutFile (
|
||||
char *Pathname,
|
||||
char *FileBuffer,
|
||||
UINT32 SystemFlags)
|
||||
{
|
||||
UINT32 FileSize;
|
||||
int DestHandle;
|
||||
int OpenFlags;
|
||||
|
||||
|
||||
/* Create the target file */
|
||||
|
||||
OpenFlags = O_TRUNC | O_CREAT | O_WRONLY | O_BINARY;
|
||||
|
||||
if (!(SystemFlags & FLG_NO_CARRIAGE_RETURNS))
|
||||
{
|
||||
/* Put back the CR before each LF */
|
||||
|
||||
AsInsertCarriageReturns (FileBuffer);
|
||||
}
|
||||
|
||||
DestHandle = open (Pathname, OpenFlags, S_IREAD | S_IWRITE);
|
||||
if (DestHandle == -1)
|
||||
{
|
||||
perror ("Could not create destination file");
|
||||
printf ("Could not create destination file \"%s\"\n", Pathname);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Write the buffer to the file */
|
||||
|
||||
FileSize = strlen (FileBuffer);
|
||||
write (DestHandle, FileBuffer, FileSize);
|
||||
|
||||
close (DestHandle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1,512 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: asmain - Main module for the acpi source processor utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "acpisrc.h"
|
||||
#include "acapps.h"
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
int
|
||||
AsStricmp (
|
||||
char *String1,
|
||||
char *String2);
|
||||
|
||||
int
|
||||
AsExaminePaths (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *Source,
|
||||
char *Target,
|
||||
UINT32 *SourceFileType);
|
||||
|
||||
void
|
||||
AsDisplayStats (
|
||||
void);
|
||||
|
||||
void
|
||||
AsDisplayUsage (
|
||||
void);
|
||||
|
||||
/* Globals */
|
||||
|
||||
UINT32 Gbl_Tabs = 0;
|
||||
UINT32 Gbl_MissingBraces = 0;
|
||||
UINT32 Gbl_NonAnsiComments = 0;
|
||||
UINT32 Gbl_Files = 0;
|
||||
UINT32 Gbl_WhiteLines = 0;
|
||||
UINT32 Gbl_CommentLines = 0;
|
||||
UINT32 Gbl_SourceLines = 0;
|
||||
UINT32 Gbl_LongLines = 0;
|
||||
UINT32 Gbl_TotalLines = 0;
|
||||
UINT32 Gbl_TotalSize = 0;
|
||||
UINT32 Gbl_HeaderLines = 0;
|
||||
UINT32 Gbl_HeaderSize = 0;
|
||||
void *Gbl_StructDefs = NULL;
|
||||
|
||||
struct stat Gbl_StatBuf;
|
||||
char *Gbl_FileBuffer;
|
||||
UINT32 Gbl_FileSize;
|
||||
UINT32 Gbl_FileType;
|
||||
BOOLEAN Gbl_VerboseMode = FALSE;
|
||||
BOOLEAN Gbl_QuietMode = FALSE;
|
||||
BOOLEAN Gbl_BatchMode = FALSE;
|
||||
BOOLEAN Gbl_DebugStatementsMode = FALSE;
|
||||
BOOLEAN Gbl_MadeChanges = FALSE;
|
||||
BOOLEAN Gbl_Overwrite = FALSE;
|
||||
BOOLEAN Gbl_WidenDeclarations = FALSE;
|
||||
BOOLEAN Gbl_IgnoreLoneLineFeeds = FALSE;
|
||||
BOOLEAN Gbl_HasLoneLineFeeds = FALSE;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsStricmp
|
||||
*
|
||||
* DESCRIPTION: Implementation of the non-ANSI stricmp function (compare
|
||||
* strings with no case sensitivity)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AsStricmp (
|
||||
char *String1,
|
||||
char *String2)
|
||||
{
|
||||
int c1;
|
||||
int c2;
|
||||
|
||||
|
||||
do
|
||||
{
|
||||
c1 = tolower (*String1);
|
||||
c2 = tolower (*String2);
|
||||
|
||||
String1++;
|
||||
String2++;
|
||||
}
|
||||
while ((c1 == c2) && (c1));
|
||||
|
||||
return (c1 - c2);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsExaminePaths
|
||||
*
|
||||
* DESCRIPTION: Source and Target pathname verification and handling
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AsExaminePaths (
|
||||
ACPI_CONVERSION_TABLE *ConversionTable,
|
||||
char *Source,
|
||||
char *Target,
|
||||
UINT32 *SourceFileType)
|
||||
{
|
||||
int Status;
|
||||
char Response;
|
||||
|
||||
|
||||
Status = stat (Source, &Gbl_StatBuf);
|
||||
if (Status)
|
||||
{
|
||||
printf ("Source path \"%s\" does not exist\n", Source);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Return the filetype -- file or a directory */
|
||||
|
||||
*SourceFileType = 0;
|
||||
if (Gbl_StatBuf.st_mode & S_IFDIR)
|
||||
{
|
||||
*SourceFileType = S_IFDIR;
|
||||
}
|
||||
|
||||
/*
|
||||
* If we are in no-output mode or in batch mode, we are done
|
||||
*/
|
||||
if ((ConversionTable->Flags & FLG_NO_FILE_OUTPUT) ||
|
||||
(Gbl_BatchMode))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!AsStricmp (Source, Target))
|
||||
{
|
||||
printf ("Target path is the same as the source path, overwrite?\n");
|
||||
scanf ("%c", &Response);
|
||||
|
||||
/* Check response */
|
||||
|
||||
if ((char) Response != 'y')
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
Gbl_Overwrite = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
Status = stat (Target, &Gbl_StatBuf);
|
||||
if (!Status)
|
||||
{
|
||||
printf ("Target path already exists, overwrite?\n");
|
||||
scanf ("%c", &Response);
|
||||
|
||||
/* Check response */
|
||||
|
||||
if ((char) Response != 'y')
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsDisplayStats
|
||||
*
|
||||
* DESCRIPTION: Display global statistics gathered during translation
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsDisplayStats (
|
||||
void)
|
||||
{
|
||||
|
||||
if (Gbl_QuietMode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
printf ("\nAcpiSrc statistics:\n\n");
|
||||
printf ("%8u Files processed\n", Gbl_Files);
|
||||
printf ("%8u Total bytes (%.1fK/file)\n",
|
||||
Gbl_TotalSize, ((double) Gbl_TotalSize/Gbl_Files)/1024);
|
||||
printf ("%8u Tabs found\n", Gbl_Tabs);
|
||||
printf ("%8u Missing if/else braces\n", Gbl_MissingBraces);
|
||||
printf ("%8u Non-ANSI comments found\n", Gbl_NonAnsiComments);
|
||||
printf ("%8u Total Lines\n", Gbl_TotalLines);
|
||||
printf ("%8u Lines of code\n", Gbl_SourceLines);
|
||||
printf ("%8u Lines of non-comment whitespace\n", Gbl_WhiteLines);
|
||||
printf ("%8u Lines of comments\n", Gbl_CommentLines);
|
||||
printf ("%8u Long lines found\n", Gbl_LongLines);
|
||||
printf ("%8.1f Ratio of code to whitespace\n",
|
||||
((float) Gbl_SourceLines / (float) Gbl_WhiteLines));
|
||||
printf ("%8.1f Ratio of code to comments\n",
|
||||
((float) Gbl_SourceLines / (float) (Gbl_CommentLines + Gbl_NonAnsiComments)));
|
||||
printf (" %u%% code, %u%% comments, %u%% whitespace, %u%% headers\n",
|
||||
(Gbl_SourceLines * 100) / Gbl_TotalLines,
|
||||
(Gbl_CommentLines * 100) / Gbl_TotalLines,
|
||||
(Gbl_WhiteLines * 100) / Gbl_TotalLines,
|
||||
(Gbl_HeaderLines * 100) / Gbl_TotalLines);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsDisplayUsage
|
||||
*
|
||||
* DESCRIPTION: Usage message
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsDisplayUsage (
|
||||
void)
|
||||
{
|
||||
|
||||
printf ("\n");
|
||||
printf ("Usage: acpisrc [-c|l|u] [-dsvy] <SourceDir> <DestinationDir>\n\n");
|
||||
printf ("Where: -c Generate cleaned version of the source\n");
|
||||
printf (" -l Generate Linux version of the source\n");
|
||||
printf (" -u Generate Custom source translation\n");
|
||||
printf ("\n");
|
||||
printf (" -d Leave debug statements in code\n");
|
||||
printf (" -s Generate source statistics only\n");
|
||||
printf (" -v Verbose mode\n");
|
||||
printf (" -y Suppress file overwrite prompts\n");
|
||||
printf ("\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: main
|
||||
*
|
||||
* DESCRIPTION: C main function
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int ACPI_SYSTEM_XFACE
|
||||
main (
|
||||
int argc,
|
||||
char *argv[])
|
||||
{
|
||||
int j;
|
||||
ACPI_CONVERSION_TABLE *ConversionTable = NULL;
|
||||
char *SourcePath;
|
||||
char *TargetPath;
|
||||
UINT32 FileType;
|
||||
|
||||
|
||||
printf ("ACPI Source Code Conversion Utility");
|
||||
printf (" version %8.8X", ((UINT32) ACPI_CA_VERSION));
|
||||
printf (" [%s]\n\n", __DATE__);
|
||||
|
||||
if (argc < 2)
|
||||
{
|
||||
AsDisplayUsage ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Command line options */
|
||||
|
||||
while ((j = AcpiGetopt (argc, argv, "cdlqsuvy")) != EOF) switch(j)
|
||||
{
|
||||
case 'l':
|
||||
/* Linux code generation */
|
||||
|
||||
printf ("Creating Linux source code\n");
|
||||
ConversionTable = &LinuxConversionTable;
|
||||
Gbl_WidenDeclarations = TRUE;
|
||||
Gbl_IgnoreLoneLineFeeds = TRUE;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
/* Cleanup code */
|
||||
|
||||
printf ("Code cleanup\n");
|
||||
ConversionTable = &CleanupConversionTable;
|
||||
break;
|
||||
|
||||
case 's':
|
||||
/* Statistics only */
|
||||
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
/* custom conversion */
|
||||
|
||||
printf ("Custom source translation\n");
|
||||
ConversionTable = &CustomConversionTable;
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
/* Verbose mode */
|
||||
|
||||
Gbl_VerboseMode = TRUE;
|
||||
break;
|
||||
|
||||
case 'y':
|
||||
/* Batch mode */
|
||||
|
||||
Gbl_BatchMode = TRUE;
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
/* Leave debug statements in */
|
||||
|
||||
Gbl_DebugStatementsMode = TRUE;
|
||||
break;
|
||||
|
||||
case 'q':
|
||||
/* Quiet mode */
|
||||
|
||||
Gbl_QuietMode = TRUE;
|
||||
break;
|
||||
|
||||
default:
|
||||
AsDisplayUsage ();
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
SourcePath = argv[AcpiGbl_Optind];
|
||||
if (!SourcePath)
|
||||
{
|
||||
printf ("Missing source path\n");
|
||||
AsDisplayUsage ();
|
||||
return -1;
|
||||
}
|
||||
|
||||
TargetPath = argv[AcpiGbl_Optind+1];
|
||||
|
||||
if (!ConversionTable)
|
||||
{
|
||||
/* Just generate statistics. Ignore target path */
|
||||
|
||||
TargetPath = SourcePath;
|
||||
|
||||
printf ("Source code statistics only\n");
|
||||
ConversionTable = &StatsConversionTable;
|
||||
}
|
||||
else if (!TargetPath)
|
||||
{
|
||||
TargetPath = SourcePath;
|
||||
}
|
||||
|
||||
if (Gbl_DebugStatementsMode)
|
||||
{
|
||||
ConversionTable->SourceFunctions &= ~CVT_REMOVE_DEBUG_MACROS;
|
||||
}
|
||||
|
||||
/* Check source and target paths and files */
|
||||
|
||||
if (AsExaminePaths (ConversionTable, SourcePath, TargetPath, &FileType))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Source/target can be either directories or a files */
|
||||
|
||||
if (FileType == S_IFDIR)
|
||||
{
|
||||
/* Process the directory tree */
|
||||
|
||||
AsProcessTree (ConversionTable, SourcePath, TargetPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Process a single file */
|
||||
|
||||
/* Differentiate between source and header files */
|
||||
|
||||
if (strstr (SourcePath, ".h"))
|
||||
{
|
||||
AsProcessOneFile (ConversionTable, NULL, TargetPath, 0, SourcePath, FILE_TYPE_HEADER);
|
||||
}
|
||||
else
|
||||
{
|
||||
AsProcessOneFile (ConversionTable, NULL, TargetPath, 0, SourcePath, FILE_TYPE_SOURCE);
|
||||
}
|
||||
}
|
||||
|
||||
/* Always display final summary and stats */
|
||||
|
||||
AsDisplayStats ();
|
||||
|
||||
return 0;
|
||||
}
|
@ -1,688 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: asremove - Source conversion - removal functions
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "acpisrc.h"
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
void
|
||||
AsRemoveStatement (
|
||||
char *Buffer,
|
||||
char *Keyword,
|
||||
UINT32 Type);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsRemoveStatement
|
||||
*
|
||||
* DESCRIPTION: Remove all statements that contain the given keyword.
|
||||
* Limitations: Removes text from the start of the line that
|
||||
* contains the keyword to the next semicolon. Currently
|
||||
* doesn't ignore comments.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsRemoveStatement (
|
||||
char *Buffer,
|
||||
char *Keyword,
|
||||
UINT32 Type)
|
||||
{
|
||||
char *SubString;
|
||||
char *SubBuffer;
|
||||
int KeywordLength;
|
||||
|
||||
|
||||
KeywordLength = strlen (Keyword);
|
||||
SubBuffer = Buffer;
|
||||
SubString = Buffer;
|
||||
|
||||
|
||||
while (SubString)
|
||||
{
|
||||
SubString = strstr (SubBuffer, Keyword);
|
||||
|
||||
if (SubString)
|
||||
{
|
||||
SubBuffer = SubString;
|
||||
|
||||
if ((Type == REPLACE_WHOLE_WORD) &&
|
||||
(!AsMatchExactWord (SubString, KeywordLength)))
|
||||
{
|
||||
SubBuffer++;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Find start of this line */
|
||||
|
||||
while (*SubString != '\n')
|
||||
{
|
||||
SubString--;
|
||||
}
|
||||
SubString++;
|
||||
|
||||
/* Find end of this statement */
|
||||
|
||||
SubBuffer = AsSkipPastChar (SubBuffer, ';');
|
||||
if (!SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Find end of this line */
|
||||
|
||||
SubBuffer = AsSkipPastChar (SubBuffer, '\n');
|
||||
if (!SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* If next line is blank, remove it too */
|
||||
|
||||
if (*SubBuffer == '\n')
|
||||
{
|
||||
SubBuffer++;
|
||||
}
|
||||
|
||||
/* Remove the lines */
|
||||
|
||||
SubBuffer = AsRemoveData (SubString, SubBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsRemoveConditionalCompile
|
||||
*
|
||||
* DESCRIPTION: Remove a "#ifdef" statement, and all text that it encompasses.
|
||||
* Limitations: cannot handle nested ifdefs.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsRemoveConditionalCompile (
|
||||
char *Buffer,
|
||||
char *Keyword)
|
||||
{
|
||||
char *SubString;
|
||||
char *SubBuffer;
|
||||
char *IfPtr;
|
||||
char *EndifPtr;
|
||||
char *ElsePtr;
|
||||
char *Comment;
|
||||
int KeywordLength;
|
||||
|
||||
|
||||
KeywordLength = strlen (Keyword);
|
||||
SubBuffer = Buffer;
|
||||
SubString = Buffer;
|
||||
|
||||
|
||||
while (SubString)
|
||||
{
|
||||
SubBuffer = strstr (SubString, Keyword);
|
||||
if (!SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for translation escape string -- means to ignore
|
||||
* blocks of code while replacing
|
||||
*/
|
||||
Comment = strstr (SubString, AS_START_IGNORE);
|
||||
|
||||
if ((Comment) &&
|
||||
(Comment < SubBuffer))
|
||||
{
|
||||
SubString = strstr (Comment, AS_STOP_IGNORE);
|
||||
if (!SubString)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SubString += 3;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Check for ordinary comment */
|
||||
|
||||
Comment = strstr (SubString, "/*");
|
||||
|
||||
if ((Comment) &&
|
||||
(Comment < SubBuffer))
|
||||
{
|
||||
SubString = strstr (Comment, "*/");
|
||||
if (!SubString)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SubString += 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
SubString = SubBuffer;
|
||||
if (!AsMatchExactWord (SubString, KeywordLength))
|
||||
{
|
||||
SubString++;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Find start of this line */
|
||||
|
||||
while (*SubString != '\n' && (SubString > Buffer))
|
||||
{
|
||||
SubString--;
|
||||
}
|
||||
SubString++;
|
||||
|
||||
/* Find the "#ifxxxx" */
|
||||
|
||||
IfPtr = strstr (SubString, "#if");
|
||||
if (!IfPtr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (IfPtr > SubBuffer)
|
||||
{
|
||||
/* Not the right #if */
|
||||
|
||||
SubString = SubBuffer + strlen (Keyword);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Find closing #endif or #else */
|
||||
|
||||
EndifPtr = strstr (SubBuffer, "#endif");
|
||||
if (!EndifPtr)
|
||||
{
|
||||
/* There has to be an #endif */
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
ElsePtr = strstr (SubBuffer, "#else");
|
||||
if ((ElsePtr) &&
|
||||
(EndifPtr > ElsePtr))
|
||||
{
|
||||
/* This #ifdef contains an #else clause */
|
||||
/* Find end of this line */
|
||||
|
||||
SubBuffer = AsSkipPastChar (ElsePtr, '\n');
|
||||
if (!SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Remove the #ifdef .... #else code */
|
||||
|
||||
AsRemoveData (SubString, SubBuffer);
|
||||
|
||||
/* Next, we will remove the #endif statement */
|
||||
|
||||
EndifPtr = strstr (SubString, "#endif");
|
||||
if (!EndifPtr)
|
||||
{
|
||||
/* There has to be an #endif */
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
SubString = EndifPtr;
|
||||
}
|
||||
|
||||
/* Remove the ... #endif part */
|
||||
/* Find end of this line */
|
||||
|
||||
SubBuffer = AsSkipPastChar (EndifPtr, '\n');
|
||||
if (!SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Remove the lines */
|
||||
|
||||
SubBuffer = AsRemoveData (SubString, SubBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsRemoveMacro
|
||||
*
|
||||
* DESCRIPTION: Remove every line that contains the keyword. Does not
|
||||
* skip comments.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsRemoveMacro (
|
||||
char *Buffer,
|
||||
char *Keyword)
|
||||
{
|
||||
char *SubString;
|
||||
char *SubBuffer;
|
||||
int NestLevel;
|
||||
|
||||
|
||||
SubBuffer = Buffer;
|
||||
SubString = Buffer;
|
||||
|
||||
|
||||
while (SubString)
|
||||
{
|
||||
SubString = strstr (SubBuffer, Keyword);
|
||||
|
||||
if (SubString)
|
||||
{
|
||||
SubBuffer = SubString;
|
||||
|
||||
/* Find start of the macro parameters */
|
||||
|
||||
while (*SubString != '(')
|
||||
{
|
||||
SubString++;
|
||||
}
|
||||
SubString++;
|
||||
|
||||
/* Remove the macro name and opening paren */
|
||||
|
||||
SubString = AsRemoveData (SubBuffer, SubString);
|
||||
|
||||
NestLevel = 1;
|
||||
while (*SubString)
|
||||
{
|
||||
if (*SubString == '(')
|
||||
{
|
||||
NestLevel++;
|
||||
}
|
||||
else if (*SubString == ')')
|
||||
{
|
||||
NestLevel--;
|
||||
}
|
||||
|
||||
SubString++;
|
||||
|
||||
if (NestLevel == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove the closing paren */
|
||||
|
||||
SubBuffer = AsRemoveData (SubString-1, SubString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsRemoveLine
|
||||
*
|
||||
* DESCRIPTION: Remove every line that contains the keyword. Does not
|
||||
* skip comments.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsRemoveLine (
|
||||
char *Buffer,
|
||||
char *Keyword)
|
||||
{
|
||||
char *SubString;
|
||||
char *SubBuffer;
|
||||
|
||||
|
||||
SubBuffer = Buffer;
|
||||
SubString = Buffer;
|
||||
|
||||
|
||||
while (SubString)
|
||||
{
|
||||
SubString = strstr (SubBuffer, Keyword);
|
||||
|
||||
if (SubString)
|
||||
{
|
||||
SubBuffer = SubString;
|
||||
|
||||
/* Find start of this line */
|
||||
|
||||
while (*SubString != '\n')
|
||||
{
|
||||
SubString--;
|
||||
}
|
||||
SubString++;
|
||||
|
||||
/* Find end of this line */
|
||||
|
||||
SubBuffer = AsSkipPastChar (SubBuffer, '\n');
|
||||
if (!SubBuffer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Remove the line */
|
||||
|
||||
SubBuffer = AsRemoveData (SubString, SubBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsReduceTypedefs
|
||||
*
|
||||
* DESCRIPTION: Eliminate certain typedefs
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsReduceTypedefs (
|
||||
char *Buffer,
|
||||
char *Keyword)
|
||||
{
|
||||
char *SubString;
|
||||
char *SubBuffer;
|
||||
int NestLevel;
|
||||
|
||||
|
||||
SubBuffer = Buffer;
|
||||
SubString = Buffer;
|
||||
|
||||
|
||||
while (SubString)
|
||||
{
|
||||
SubString = strstr (SubBuffer, Keyword);
|
||||
|
||||
if (SubString)
|
||||
{
|
||||
/* Remove the typedef itself */
|
||||
|
||||
SubBuffer = SubString + strlen ("typedef") + 1;
|
||||
SubBuffer = AsRemoveData (SubString, SubBuffer);
|
||||
|
||||
/* Find the opening brace of the struct or union */
|
||||
|
||||
while (*SubString != '{')
|
||||
{
|
||||
SubString++;
|
||||
}
|
||||
SubString++;
|
||||
|
||||
/* Find the closing brace. Handles nested braces */
|
||||
|
||||
NestLevel = 1;
|
||||
while (*SubString)
|
||||
{
|
||||
if (*SubString == '{')
|
||||
{
|
||||
NestLevel++;
|
||||
}
|
||||
else if (*SubString == '}')
|
||||
{
|
||||
NestLevel--;
|
||||
}
|
||||
|
||||
SubString++;
|
||||
|
||||
if (NestLevel == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove an extra line feed if present */
|
||||
|
||||
if (!strncmp (SubString - 3, "\n\n", 2))
|
||||
{
|
||||
*(SubString -2) = '}';
|
||||
SubString--;
|
||||
}
|
||||
|
||||
/* Find the end of the typedef name */
|
||||
|
||||
SubBuffer = AsSkipUntilChar (SubString, ';');
|
||||
|
||||
/* And remove the typedef name */
|
||||
|
||||
SubBuffer = AsRemoveData (SubString, SubBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsRemoveEmptyBlocks
|
||||
*
|
||||
* DESCRIPTION: Remove any C blocks (e.g., if {}) that contain no code. This
|
||||
* can happen as a result of removing lines such as DEBUG_PRINT.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsRemoveEmptyBlocks (
|
||||
char *Buffer,
|
||||
char *Filename)
|
||||
{
|
||||
char *SubBuffer;
|
||||
char *BlockStart;
|
||||
BOOLEAN EmptyBlock = TRUE;
|
||||
BOOLEAN AnotherPassRequired = TRUE;
|
||||
UINT32 BlockCount = 0;
|
||||
|
||||
|
||||
while (AnotherPassRequired)
|
||||
{
|
||||
SubBuffer = Buffer;
|
||||
AnotherPassRequired = FALSE;
|
||||
|
||||
while (*SubBuffer)
|
||||
{
|
||||
if (*SubBuffer == '{')
|
||||
{
|
||||
BlockStart = SubBuffer;
|
||||
EmptyBlock = TRUE;
|
||||
|
||||
SubBuffer++;
|
||||
while (*SubBuffer != '}')
|
||||
{
|
||||
if ((*SubBuffer != ' ') &&
|
||||
(*SubBuffer != '\n'))
|
||||
{
|
||||
EmptyBlock = FALSE;
|
||||
break;
|
||||
}
|
||||
SubBuffer++;
|
||||
}
|
||||
|
||||
if (EmptyBlock)
|
||||
{
|
||||
/* Find start of the first line of the block */
|
||||
|
||||
while (*BlockStart != '\n')
|
||||
{
|
||||
BlockStart--;
|
||||
}
|
||||
|
||||
/* Find end of the last line of the block */
|
||||
|
||||
SubBuffer = AsSkipUntilChar (SubBuffer, '\n');
|
||||
if (!SubBuffer)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
/* Remove the block */
|
||||
|
||||
SubBuffer = AsRemoveData (BlockStart, SubBuffer);
|
||||
BlockCount++;
|
||||
AnotherPassRequired = TRUE;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
SubBuffer++;
|
||||
}
|
||||
}
|
||||
|
||||
if (BlockCount)
|
||||
{
|
||||
Gbl_MadeChanges = TRUE;
|
||||
AsPrint ("Code blocks deleted", BlockCount, Filename);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsRemoveDebugMacros
|
||||
*
|
||||
* DESCRIPTION: Remove all "Debug" macros -- macros that produce debug output.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AsRemoveDebugMacros (
|
||||
char *Buffer)
|
||||
{
|
||||
AsRemoveConditionalCompile (Buffer, "ACPI_DEBUG_OUTPUT");
|
||||
|
||||
AsRemoveStatement (Buffer, "ACPI_DEBUG_PRINT", REPLACE_WHOLE_WORD);
|
||||
AsRemoveStatement (Buffer, "ACPI_DEBUG_PRINT_RAW", REPLACE_WHOLE_WORD);
|
||||
AsRemoveStatement (Buffer, "DEBUG_EXEC", REPLACE_WHOLE_WORD);
|
||||
AsRemoveStatement (Buffer, "FUNCTION_ENTRY", REPLACE_WHOLE_WORD);
|
||||
AsRemoveStatement (Buffer, "PROC_NAME", REPLACE_WHOLE_WORD);
|
||||
AsRemoveStatement (Buffer, "FUNCTION_TRACE", REPLACE_SUBSTRINGS);
|
||||
AsRemoveStatement (Buffer, "DUMP_", REPLACE_SUBSTRINGS);
|
||||
|
||||
AsReplaceString ("return_VOID", "return", REPLACE_WHOLE_WORD, Buffer);
|
||||
AsReplaceString ("return_PTR", "return", REPLACE_WHOLE_WORD, Buffer);
|
||||
AsReplaceString ("return_ACPI_STATUS", "return", REPLACE_WHOLE_WORD, Buffer);
|
||||
AsReplaceString ("return_acpi_status", "return", REPLACE_WHOLE_WORD, Buffer);
|
||||
AsReplaceString ("return_VALUE", "return", REPLACE_WHOLE_WORD, Buffer);
|
||||
}
|
||||
|
||||
|
@ -1,824 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: astable - Tables used for source conversion
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "acpisrc.h"
|
||||
#include "acapps.h"
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Standard/Common translation tables
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
ACPI_STRING_TABLE StandardDataTypes[] = {
|
||||
|
||||
/* Declarations first */
|
||||
|
||||
{"UINT32 ", "unsigned int", REPLACE_SUBSTRINGS},
|
||||
{"UINT16 ", "unsigned short", REPLACE_SUBSTRINGS},
|
||||
{"UINT8 ", "unsigned char", REPLACE_SUBSTRINGS},
|
||||
{"BOOLEAN ", "unsigned char", REPLACE_SUBSTRINGS},
|
||||
|
||||
/* Now do embedded typecasts */
|
||||
|
||||
{"UINT32", "unsigned int", REPLACE_SUBSTRINGS},
|
||||
{"UINT16", "unsigned short", REPLACE_SUBSTRINGS},
|
||||
{"UINT8", "unsigned char", REPLACE_SUBSTRINGS},
|
||||
{"BOOLEAN", "unsigned char", REPLACE_SUBSTRINGS},
|
||||
|
||||
{"INT32 ", "int ", REPLACE_SUBSTRINGS},
|
||||
{"INT32", "int", REPLACE_SUBSTRINGS},
|
||||
{"INT16", "short", REPLACE_SUBSTRINGS},
|
||||
{"INT8", "char", REPLACE_SUBSTRINGS},
|
||||
|
||||
/* Put back anything we broke (such as anything with _INT32_ in it) */
|
||||
|
||||
{"_int_", "_INT32_", REPLACE_SUBSTRINGS},
|
||||
{"_unsigned int_", "_UINT32_", REPLACE_SUBSTRINGS},
|
||||
{NULL, NULL, 0}
|
||||
};
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Linux-specific translation tables
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char LinuxHeader[] =
|
||||
"/*\n"
|
||||
" * Copyright (C) 2000 - 2009, Intel Corp.\n"
|
||||
" * All rights reserved.\n"
|
||||
" *\n"
|
||||
" * Redistribution and use in source and binary forms, with or without\n"
|
||||
" * modification, are permitted provided that the following conditions\n"
|
||||
" * are met:\n"
|
||||
" * 1. Redistributions of source code must retain the above copyright\n"
|
||||
" * notice, this list of conditions, and the following disclaimer,\n"
|
||||
" * without modification.\n"
|
||||
" * 2. Redistributions in binary form must reproduce at minimum a disclaimer\n"
|
||||
" * substantially similar to the \"NO WARRANTY\" disclaimer below\n"
|
||||
" * (\"Disclaimer\") and any redistribution must be conditioned upon\n"
|
||||
" * including a substantially similar Disclaimer requirement for further\n"
|
||||
" * binary redistribution.\n"
|
||||
" * 3. Neither the names of the above-listed copyright holders nor the names\n"
|
||||
" * of any contributors may be used to endorse or promote products derived\n"
|
||||
" * from this software without specific prior written permission.\n"
|
||||
" *\n"
|
||||
" * Alternatively, this software may be distributed under the terms of the\n"
|
||||
" * GNU General Public License (\"GPL\") version 2 as published by the Free\n"
|
||||
" * Software Foundation.\n"
|
||||
" *\n"
|
||||
" * NO WARRANTY\n"
|
||||
" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n"
|
||||
" * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n"
|
||||
" * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR\n"
|
||||
" * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n"
|
||||
" * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n"
|
||||
" * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n"
|
||||
" * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n"
|
||||
" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n"
|
||||
" * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING\n"
|
||||
" * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n"
|
||||
" * POSSIBILITY OF SUCH DAMAGES.\n"
|
||||
" */\n";
|
||||
|
||||
ACPI_STRING_TABLE LinuxDataTypes[] = {
|
||||
|
||||
/*
|
||||
* Extra space is added after the type so there is room to add "struct", "union",
|
||||
* etc. when the existing struct typedefs are eliminated.
|
||||
*/
|
||||
|
||||
/* Declarations first - ACPI types and standard C types */
|
||||
|
||||
{"INT64 ", "s64 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"UINT64 ", "u64 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"UINT32 ", "u32 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"INT32 ", "s32 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"UINT16 ", "u16 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"INT16 ", "s16 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"UINT8 ", "u8 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"BOOLEAN ", "u8 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"char ", "char ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"void ", "void ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"char * ", "char * ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"void * ", "void * ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"int ", "int ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"FILE ", "FILE ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
{"size_t ", "size_t ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C},
|
||||
|
||||
/* Now do embedded typecasts */
|
||||
|
||||
{"UINT64", "u64", REPLACE_WHOLE_WORD},
|
||||
{"UINT32", "u32", REPLACE_WHOLE_WORD},
|
||||
{"UINT16", "u16", REPLACE_WHOLE_WORD},
|
||||
{"UINT8", "u8", REPLACE_WHOLE_WORD},
|
||||
{"BOOLEAN", "u8", REPLACE_WHOLE_WORD},
|
||||
|
||||
{"INT64 ", "s64 ", REPLACE_WHOLE_WORD},
|
||||
{"INT64", "s64", REPLACE_WHOLE_WORD},
|
||||
{"INT32 ", "s32 ", REPLACE_WHOLE_WORD},
|
||||
{"INT32", "s32", REPLACE_WHOLE_WORD},
|
||||
{"INT16 ", "s16 ", REPLACE_WHOLE_WORD},
|
||||
{"INT8 ", "s8 ", REPLACE_WHOLE_WORD},
|
||||
{"INT16", "s16", REPLACE_WHOLE_WORD},
|
||||
{"INT8", "s8", REPLACE_WHOLE_WORD},
|
||||
|
||||
{NULL, NULL, 0},
|
||||
};
|
||||
|
||||
ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
|
||||
|
||||
{"ACPI_ADR_SPACE_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_ADR_SPACE_SETUP", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_ADR_SPACE_TYPE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_AML_OPERANDS", SRC_TYPE_UNION},
|
||||
{"ACPI_BIT_REGISTER_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_BUFFER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_BUS_ATTRIBUTE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_CACHE_T", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_COMMON_FACS", SRC_TYPE_STRUCT},
|
||||
{"ACPI_COMMON_STATE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_COMMON_DESCRIPTOR", SRC_TYPE_STRUCT},
|
||||
{"ACPI_COMPATIBLE_ID", SRC_TYPE_STRUCT},
|
||||
{"ACPI_COMPATIBLE_ID_LIST", SRC_TYPE_STRUCT},
|
||||
{"ACPI_CONTROL_STATE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_CONVERSION_TABLE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_CPU_FLAGS", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_CREATE_FIELD_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DB_METHOD_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DEBUG_MEM_BLOCK", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DEBUG_MEM_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DEBUG_PRINT_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DESCRIPTOR", SRC_TYPE_UNION},
|
||||
{"ACPI_DEVICE_ID", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DEVICE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DEVICE_WALK_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DMTABLE_DATA", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DMTABLE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DMTABLE_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_EVALUATE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_EVENT_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_EVENT_STATUS", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_EVENT_TYPE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_EXCEPTION_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_EXDUMP_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_EXECUTE_TYPE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_EXTERNAL_LIST", SRC_TYPE_STRUCT},
|
||||
{"ACPI_FADT_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_FADT_PM_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_FIELD_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_FIND_CONTEXT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_FIXED_EVENT_HANDLER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_FIXED_EVENT_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_GENERIC_ADDRESS", SRC_TYPE_STRUCT},
|
||||
{"ACPI_GENERIC_STATE", SRC_TYPE_UNION},
|
||||
{"ACPI_GET_DEVICES_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_GPE_BLOCK_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_GPE_CALLBACK", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_GPE_DEVICE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_GPE_EVENT_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_GPE_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_GPE_INDEX_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_GPE_REGISTER_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_GPE_WALK_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_GPE_XRUPT_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_HANDLE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_HANDLER_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_INIT_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_IDENTIFIER_TABLE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_INIT_WALK_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_INTEGER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_INTEGER_OVERLAY", SRC_TYPE_STRUCT},
|
||||
{"ACPI_INTEGRITY_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_INTERFACE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_INTERNAL_RSDT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_INTERPRETER_MODE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_IO_ADDRESS", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_IO_ATTRIBUTE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MEM_SPACE_CONTEXT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MEMORY_ATTRIBUTE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MEMORY_LIST", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MUTEX", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_MUTEX_HANDLE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_MUTEX_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_NAME", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_NAME_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_NAME_UNION", SRC_TYPE_UNION},
|
||||
{"ACPI_NAMESPACE_NODE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_NAMESTRING_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_NATIVE_INT", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_NATIVE_UINT", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_NOTIFY_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_NOTIFY_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_NS_SEARCH_DATA", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJ_INFO_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT", SRC_TYPE_UNION},
|
||||
{"ACPI_OBJECT_ADDR_HANDLER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_BANK_FIELD", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_BUFFER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_BUFFER_FIELD", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_CACHE_LIST", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_COMMON", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_DATA", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_DEVICE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_EVENT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_EXTRA", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_FIELD_COMMON", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_OBJECT_INDEX_FIELD", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_INTEGER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_LIST", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_METHOD", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_MUTEX", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_NOTIFY_COMMON", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_NOTIFY_HANDLER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_PACKAGE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_POWER_RESOURCE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_PROCESSOR", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_REFERENCE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_REGION", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_REGION_FIELD", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_STRING", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_THERMAL_ZONE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OBJECT_TYPE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_OBJECT_TYPE8", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_OP_WALK_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OPCODE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_OPERAND_OBJECT", SRC_TYPE_UNION},
|
||||
{"ACPI_OSD_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_OSD_EXEC_CALLBACK", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_OWNER_ID", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_PACKAGE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PACKAGE_INFO2", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PACKAGE_INFO3", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PARSE_DOWNWARDS", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_PARSE_OBJ_ASL", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PARSE_OBJ_COMMON", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PARSE_OBJ_NAMED", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PARSE_OBJECT", SRC_TYPE_UNION},
|
||||
{"ACPI_PARSE_STATE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PARSE_UPWARDS", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_PARSE_VALUE", SRC_TYPE_UNION},
|
||||
{"ACPI_PCI_ID", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PCI_ROUTING_TABLE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PHYSICAL_ADDRESS", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_PKG_CALLBACK", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_PKG_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PKG_STATE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_POINTER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_POINTERS", SRC_TYPE_UNION},
|
||||
{"ACPI_PORT_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PREDEFINED_INFO", SRC_TYPE_UNION},
|
||||
{"ACPI_PREDEFINED_NAMES", SRC_TYPE_STRUCT},
|
||||
{"ACPI_PSCOPE_STATE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_ADDRESS", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_ADDRESS16", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_ADDRESS32", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_ADDRESS64", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_EXTENDED_ADDRESS64", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_ATTRIBUTE", SRC_TYPE_UNION},
|
||||
{"ACPI_RESOURCE_DATA", SRC_TYPE_UNION},
|
||||
{"ACPI_RESOURCE_DMA", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_END_TAG", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_EXTENDED_IRQ", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_FIXED_IO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_FIXED_MEMORY32", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_GENERIC_REGISTER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_IO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_IRQ", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_MEMORY24", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_MEMORY32", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_SOURCE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_START_DEPENDENT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_TAG", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_TYPE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_RESOURCE_VENDOR", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESOURCE_VENDOR_TYPED", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RESULT_VALUES", SRC_TYPE_STRUCT},
|
||||
{"ACPI_ROUND_UP_TO_32_BIT", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_RSCONVERT_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RSDUMP_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_RW_LOCK", SRC_TYPE_STRUCT},
|
||||
{"ACPI_SCOPE_STATE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_SEMAPHORE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_SIGNAL_FATAL_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_SIZE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_SPINLOCK", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_STATISTICS", SRC_TYPE_STRUCT},
|
||||
{"ACPI_STATUS", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_STRING", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_STRING_TABLE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_SUBTABLE_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_SYSTEM_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_DESC", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_HANDLER", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_TABLE_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_LIST", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_SUPPORT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_TYPE", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_THREAD_ID", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_THREAD_STATE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TYPED_IDENTIFIER_TABLE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_UINTPTR_T", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_UPDATE_STATE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_UUID", SRC_TYPE_STRUCT},
|
||||
{"ACPI_VENDOR_UUID", SRC_TYPE_STRUCT},
|
||||
{"ACPI_VENDOR_WALK_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_WALK_AML_CALLBACK", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_WALK_CALLBACK", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_WALK_RESOURCE_CALLBACK", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_WALK_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_WALK_STATE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_WHEA_HEADER", SRC_TYPE_STRUCT},
|
||||
|
||||
{"ACPI_RS_LENGTH", SRC_TYPE_SIMPLE},
|
||||
{"ACPI_RSDESC_SIZE", SRC_TYPE_SIMPLE},
|
||||
|
||||
{"AML_RESOURCE", SRC_TYPE_UNION},
|
||||
{"AML_RESOURCE_ADDRESS", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_ADDRESS16", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_ADDRESS32", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_ADDRESS64", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_DMA", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_END_DEPENDENT", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_END_TAG", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_EXTENDED_ADDRESS64", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_EXTENDED_IRQ", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_FIXED_IO", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_FIXED_MEMORY32", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_GENERIC_REGISTER", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_IO", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_IRQ", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_IRQ_NOFLAGS", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_LARGE_HEADER", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_MEMORY24", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_MEMORY32", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_SMALL_HEADER", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_START_DEPENDENT", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_START_DEPENDENT_NOPRIO", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_VENDOR_LARGE", SRC_TYPE_STRUCT},
|
||||
{"AML_RESOURCE_VENDOR_SMALL", SRC_TYPE_STRUCT},
|
||||
|
||||
{"APIC_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ARGUMENT_INFO", SRC_TYPE_STRUCT},
|
||||
{"AE_DEBUG_REGIONS", SRC_TYPE_STRUCT},
|
||||
{"AE_REGION", SRC_TYPE_STRUCT},
|
||||
{"ASL_ANALYSIS_WALK_INFO", SRC_TYPE_STRUCT},
|
||||
{"ASL_ERROR_MSG", SRC_TYPE_STRUCT},
|
||||
{"ASL_EVENT_INFO", SRC_TYPE_STRUCT},
|
||||
{"ASL_FILE_INFO", SRC_TYPE_STRUCT},
|
||||
{"ASL_FILE_STATUS", SRC_TYPE_STRUCT},
|
||||
{"ASL_LISTING_NODE", SRC_TYPE_STRUCT},
|
||||
{"ASL_MAPPING_ENTRY", SRC_TYPE_STRUCT},
|
||||
{"ASL_METHOD_INFO", SRC_TYPE_STRUCT},
|
||||
{"ASL_RESERVED_INFO", SRC_TYPE_STRUCT},
|
||||
{"ASL_RESOURCE_NODE", SRC_TYPE_STRUCT},
|
||||
{"ASL_WALK_CALLBACK", SRC_TYPE_SIMPLE},
|
||||
{"COMMAND_INFO", SRC_TYPE_STRUCT},
|
||||
{"UINT32_STRUCT", SRC_TYPE_STRUCT},
|
||||
{"UINT64_OVERLAY", SRC_TYPE_UNION},
|
||||
{"UINT64_STRUCT", SRC_TYPE_STRUCT},
|
||||
|
||||
/*
|
||||
* Acpi table definition names.
|
||||
*/
|
||||
{"ACPI_TABLE_ASF", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_BERT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_BOOT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_CPEP", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_DBGP", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_DMAR", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_ECDT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_EINJ", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_ERST", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_FACS", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_FADT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_HEST", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_HPET", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_IBFT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_MADT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_MCFG", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_RSDP", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_RSDT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_SBST", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_SLIT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_SPCR", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_SPMI", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_SRAT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_TCPA", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_UEFI", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_WDAT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_WDRT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_TABLE_XSDT", SRC_TYPE_STRUCT},
|
||||
|
||||
{"ACPI_ASF_ADDRESS", SRC_TYPE_STRUCT},
|
||||
{"ACPI_ASF_ALERT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_ASF_ALERT_DATA", SRC_TYPE_STRUCT},
|
||||
{"ACPI_ASF_CONTROL_DATA", SRC_TYPE_STRUCT},
|
||||
{"ACPI_ASF_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_ASF_INFO", SRC_TYPE_STRUCT},
|
||||
{"ACPI_ASF_REMOTE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_ASF_RMCP", SRC_TYPE_STRUCT},
|
||||
{"ACPI_BERT_REGION", SRC_TYPE_STRUCT},
|
||||
{"ACPI_CPEP_POLLING", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DMAR_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DMAR_DEVICE_SCOPE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DMAR_HARDWARE_UNIT", SRC_TYPE_STRUCT},
|
||||
{"ACPI_DMAR_RESERVED_MEMORY", SRC_TYPE_STRUCT},
|
||||
{"ACPI_EINJ_ENTRY", SRC_TYPE_STRUCT},
|
||||
{"ACPI_ERST_ENTRY", SRC_TYPE_STRUCT},
|
||||
{"ACPI_HEST_AER_COMMON", SRC_TYPE_STRUCT},
|
||||
{"ACPI_HEST_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_HEST_NOTIFY", SRC_TYPE_STRUCT},
|
||||
{"ACPI_IBFT_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_IBFT_CONTROL", SRC_TYPE_STRUCT},
|
||||
{"ACPI_IBFT_INITIATOR", SRC_TYPE_STRUCT},
|
||||
{"ACPI_IBFT_NIC", SRC_TYPE_STRUCT},
|
||||
{"ACPI_IBFT_TARGET", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_ADDRESS_OVERRIDE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_IO_APIC", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_IO_SAPIC", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_LOCAL_APIC_NMI", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_LOCAL_SAPIC", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_NMI_SOURCE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_PROCESSOR_APIC", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_XRUPT_OVERRIDE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_XRUPT_SOURCE", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_LOCAL_X2APIC", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MADT_LOCAL_X2APIC_NMI", SRC_TYPE_STRUCT},
|
||||
{"ACPI_MCFG_ALLOCATION", SRC_TYPE_STRUCT},
|
||||
{"ACPI_SRAT_CPU_AFFINITY", SRC_TYPE_STRUCT},
|
||||
{"ACPI_SRAT_HEADER", SRC_TYPE_STRUCT},
|
||||
{"ACPI_SRAT_MEM_AFFINITY", SRC_TYPE_STRUCT},
|
||||
{"ACPI_SRAT_X2APIC_CPU_AFFINITY", SRC_TYPE_STRUCT},
|
||||
{"ACPI_WDAT_ENTRY", SRC_TYPE_STRUCT},
|
||||
|
||||
|
||||
/* Legacy names, should be removed */
|
||||
|
||||
{"EC_BOOT_RESOURCES", SRC_TYPE_STRUCT},
|
||||
{"HPET_TABLE", SRC_TYPE_STRUCT},
|
||||
{"MADT_ADDRESS_OVERRIDE", SRC_TYPE_STRUCT},
|
||||
{"MADT_INTERRUPT_OVERRIDE", SRC_TYPE_STRUCT},
|
||||
{"MADT_INTERRUPT_SOURCE", SRC_TYPE_STRUCT},
|
||||
{"MADT_IO_APIC", SRC_TYPE_STRUCT},
|
||||
{"MADT_IO_SAPIC", SRC_TYPE_STRUCT},
|
||||
{"MADT_LOCAL_APIC_NMI", SRC_TYPE_STRUCT},
|
||||
{"MADT_LOCAL_SAPIC", SRC_TYPE_STRUCT},
|
||||
{"MADT_NMI_SOURCE", SRC_TYPE_STRUCT},
|
||||
{"MADT_PROCESSOR_APIC", SRC_TYPE_STRUCT},
|
||||
{"MEMORY_AFFINITY", SRC_TYPE_STRUCT},
|
||||
{"MULTIPLE_APIC_TABLE", SRC_TYPE_STRUCT},
|
||||
{"SMART_BATTERY_TABLE", SRC_TYPE_STRUCT},
|
||||
{"STATIC_RESOURCE_ALLOC", SRC_TYPE_STRUCT},
|
||||
{"SYSTEM_RESOURCE_AFFINITY", SRC_TYPE_STRUCT},
|
||||
{"SYSTEM_LOCALITY_INFO", SRC_TYPE_STRUCT},
|
||||
{"FACS_DESCRIPTOR", SRC_TYPE_STRUCT},
|
||||
{"FADT_DESCRIPTOR_REV1", SRC_TYPE_STRUCT},
|
||||
{"FADT_DESCRIPTOR", SRC_TYPE_STRUCT},
|
||||
{"FADT_DESCRIPTOR_REV2_MINUS", SRC_TYPE_STRUCT},
|
||||
{"RSDP_DESCRIPTOR", SRC_TYPE_STRUCT},
|
||||
{"RSDT_DESCRIPTOR", SRC_TYPE_STRUCT},
|
||||
{"XSDT_DESCRIPTOR", SRC_TYPE_STRUCT},
|
||||
{NULL, 0}
|
||||
};
|
||||
|
||||
|
||||
ACPI_IDENTIFIER_TABLE LinuxAddStruct[] = {
|
||||
{"acpi_namespace_node"},
|
||||
{"acpi_parse_object"},
|
||||
{"acpi_table_desc"},
|
||||
{"acpi_walk_state"},
|
||||
{NULL}
|
||||
};
|
||||
|
||||
|
||||
ACPI_IDENTIFIER_TABLE LinuxEliminateMacros[] = {
|
||||
|
||||
{"ACPI_GET_ADDRESS"},
|
||||
{"ACPI_VALID_ADDRESS"},
|
||||
{NULL}
|
||||
};
|
||||
|
||||
|
||||
ACPI_IDENTIFIER_TABLE LinuxEliminateLines_C[] = {
|
||||
|
||||
{"#define __"},
|
||||
{NULL}
|
||||
};
|
||||
|
||||
|
||||
ACPI_IDENTIFIER_TABLE LinuxEliminateLines_H[] = {
|
||||
|
||||
{NULL}
|
||||
};
|
||||
|
||||
|
||||
ACPI_IDENTIFIER_TABLE LinuxConditionalIdentifiers[] = {
|
||||
|
||||
/* {"ACPI_USE_STANDARD_HEADERS"}, */
|
||||
{"WIN32"},
|
||||
{"_MSC_VER"},
|
||||
{NULL}
|
||||
};
|
||||
|
||||
ACPI_CONVERSION_TABLE LinuxConversionTable = {
|
||||
|
||||
LinuxHeader,
|
||||
FLG_NO_CARRIAGE_RETURNS | FLG_LOWERCASE_DIRNAMES,
|
||||
|
||||
AcpiIdentifiers,
|
||||
|
||||
/* C source files */
|
||||
|
||||
LinuxDataTypes,
|
||||
LinuxEliminateLines_C,
|
||||
NULL,
|
||||
LinuxEliminateMacros,
|
||||
AcpiIdentifiers,
|
||||
(CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES |
|
||||
CVT_CHECK_BRACES | CVT_TRIM_LINES | CVT_BRACES_ON_SAME_LINE |
|
||||
CVT_MIXED_CASE_TO_UNDERSCORES | CVT_LOWER_CASE_IDENTIFIERS |
|
||||
CVT_REMOVE_DEBUG_MACROS | CVT_TRIM_WHITESPACE |
|
||||
CVT_REMOVE_EMPTY_BLOCKS | CVT_SPACES_TO_TABS8),
|
||||
|
||||
/* C header files */
|
||||
|
||||
LinuxDataTypes,
|
||||
LinuxEliminateLines_H,
|
||||
LinuxConditionalIdentifiers,
|
||||
NULL,
|
||||
AcpiIdentifiers,
|
||||
(CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES |
|
||||
CVT_TRIM_LINES | CVT_MIXED_CASE_TO_UNDERSCORES |
|
||||
CVT_LOWER_CASE_IDENTIFIERS | CVT_TRIM_WHITESPACE |
|
||||
CVT_REMOVE_EMPTY_BLOCKS| CVT_REDUCE_TYPEDEFS | CVT_SPACES_TO_TABS8),
|
||||
};
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Code cleanup translation tables
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
ACPI_CONVERSION_TABLE CleanupConversionTable = {
|
||||
|
||||
NULL,
|
||||
FLG_DEFAULT_FLAGS,
|
||||
NULL,
|
||||
/* C source files */
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
(CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES |
|
||||
CVT_CHECK_BRACES | CVT_TRIM_LINES | CVT_TRIM_WHITESPACE),
|
||||
|
||||
/* C header files */
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
(CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES |
|
||||
CVT_TRIM_LINES | CVT_TRIM_WHITESPACE),
|
||||
};
|
||||
|
||||
|
||||
ACPI_CONVERSION_TABLE StatsConversionTable = {
|
||||
|
||||
NULL,
|
||||
FLG_NO_FILE_OUTPUT,
|
||||
NULL,
|
||||
|
||||
/* C source files */
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
(CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES |
|
||||
CVT_COUNT_SHORTMULTILINE_COMMENTS),
|
||||
|
||||
/* C header files */
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
(CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES |
|
||||
CVT_COUNT_SHORTMULTILINE_COMMENTS),
|
||||
};
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Customizable translation tables
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STRING_TABLE CustomReplacements[] = {
|
||||
|
||||
|
||||
{"(c) 1999 - 2009", "(c) 1999 - 2009", REPLACE_WHOLE_WORD},
|
||||
|
||||
#if 0
|
||||
{"#include \"acpi.h\"", "#include \"acpi.h\"\n#include \"accommon.h\"", REPLACE_SUBSTRINGS},
|
||||
{"(c) 1999 - 2009", "(c) 1999 - 2009", REPLACE_WHOLE_WORD},
|
||||
{"AcpiTbSumTable", "AcpiTbSumTable", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_BOOT", "ACPI_SIG_BOOT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_DBGP", "ACPI_SIG_DBGP", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_DSDT", "ACPI_SIG_DSDT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_ECDT", "ACPI_SIG_ECDT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_FACS", "ACPI_SIG_FACS", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_FADT", "ACPI_SIG_FADT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_HPET", "ACPI_SIG_HPET", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_MADT", "ACPI_SIG_MADT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_MCFG", "ACPI_SIG_MCFG", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_PSDT", "ACPI_SIG_PSDT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_NAME_RSDP", "ACPI_NAME_RSDP", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_RSDP", "ACPI_SIG_RSDP", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_RSDT", "ACPI_SIG_RSDT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_SBST", "ACPI_SIG_SBST", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_SLIT", "ACPI_SIG_SLIT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_SPCR", "ACPI_SIG_SPCR", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_SPIC", "ACPI_SIG_SPIC", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_SPMI", "ACPI_SIG_SPMI", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_SRAT", "ACPI_SIG_SRAT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_SSDT", "ACPI_SIG_SSDT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_TCPA", "ACPI_SIG_TCPA", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_WDRT", "ACPI_SIG_WDRT", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_SIG_XSDT", "ACPI_SIG_XSDT", REPLACE_WHOLE_WORD},
|
||||
|
||||
{"ACPI_ALLOCATE_ZEROED", "ACPI_ALLOCATE_ZEROED", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_ALLOCATE", "ACPI_ALLOCATE", REPLACE_WHOLE_WORD},
|
||||
{"ACPI_FREE", "ACPI_FREE", REPLACE_WHOLE_WORD},
|
||||
|
||||
"ACPI_NATIVE_UINT", "ACPI_NATIVE_UINT", REPLACE_WHOLE_WORD,
|
||||
"ACPI_NATIVE_UINT *", "ACPI_NATIVE_UINT *", REPLACE_WHOLE_WORD,
|
||||
"ACPI_NATIVE_UINT", "ACPI_NATIVE_UINT", REPLACE_WHOLE_WORD,
|
||||
"ACPI_NATIVE_INT", "ACPI_NATIVE_INT", REPLACE_WHOLE_WORD,
|
||||
"ACPI_NATIVE_INT *", "ACPI_NATIVE_INT *", REPLACE_WHOLE_WORD,
|
||||
"ACPI_NATIVE_INT", "ACPI_NATIVE_INT", REPLACE_WHOLE_WORD,
|
||||
#endif
|
||||
|
||||
{NULL, NULL, 0}
|
||||
};
|
||||
|
||||
|
||||
ACPI_CONVERSION_TABLE CustomConversionTable = {
|
||||
|
||||
NULL,
|
||||
FLG_DEFAULT_FLAGS,
|
||||
NULL,
|
||||
|
||||
/* C source files */
|
||||
|
||||
CustomReplacements,
|
||||
LinuxEliminateLines_H,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
(CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES |
|
||||
CVT_TRIM_LINES | CVT_TRIM_WHITESPACE),
|
||||
|
||||
/* C header files */
|
||||
|
||||
CustomReplacements,
|
||||
LinuxEliminateLines_H,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
(CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES |
|
||||
CVT_TRIM_LINES | CVT_TRIM_WHITESPACE),
|
||||
};
|
||||
|
@ -1,306 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: asutils - common utilities
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 "acpisrc.h"
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsSkipUntilChar
|
||||
*
|
||||
* DESCRIPTION: Find the next instance of the input character
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AsSkipUntilChar (
|
||||
char *Buffer,
|
||||
char Target)
|
||||
{
|
||||
|
||||
while (*Buffer != Target)
|
||||
{
|
||||
if (!*Buffer)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Buffer++;
|
||||
}
|
||||
|
||||
return (Buffer);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsSkipPastChar
|
||||
*
|
||||
* DESCRIPTION: Find the next instance of the input character, return a buffer
|
||||
* pointer to this character+1.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AsSkipPastChar (
|
||||
char *Buffer,
|
||||
char Target)
|
||||
{
|
||||
|
||||
while (*Buffer != Target)
|
||||
{
|
||||
if (!*Buffer)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Buffer++;
|
||||
}
|
||||
|
||||
Buffer++;
|
||||
|
||||
return (Buffer);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsReplaceData
|
||||
*
|
||||
* DESCRIPTION: This function inserts and removes data from the file buffer.
|
||||
* if more data is inserted than is removed, the data in the buffer
|
||||
* is moved to make room. If less data is inserted than is removed,
|
||||
* the remaining data is moved to close the hole.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AsReplaceData (
|
||||
char *Buffer,
|
||||
UINT32 LengthToRemove,
|
||||
char *BufferToAdd,
|
||||
UINT32 LengthToAdd)
|
||||
{
|
||||
UINT32 BufferLength;
|
||||
|
||||
|
||||
/*
|
||||
* Buffer is a string, so the length must include the terminating zero
|
||||
*/
|
||||
BufferLength = strlen (Buffer) + 1;
|
||||
|
||||
if (LengthToRemove != LengthToAdd)
|
||||
{
|
||||
/*
|
||||
* Move some of the existing data
|
||||
* 1) If adding more bytes than removing, make room for the new data
|
||||
* 2) if removing more bytes than adding, delete the extra space
|
||||
*/
|
||||
if (LengthToRemove > 0)
|
||||
{
|
||||
Gbl_MadeChanges = TRUE;
|
||||
memmove ((Buffer + LengthToAdd), (Buffer + LengthToRemove), (BufferLength - LengthToRemove));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Now we can move in the new data
|
||||
*/
|
||||
if (LengthToAdd > 0)
|
||||
{
|
||||
Gbl_MadeChanges = TRUE;
|
||||
memmove (Buffer, BufferToAdd, LengthToAdd);
|
||||
}
|
||||
|
||||
return (Buffer + LengthToAdd);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsInsertData
|
||||
*
|
||||
* DESCRIPTION: This function inserts and removes data from the file buffer.
|
||||
* if more data is inserted than is removed, the data in the buffer
|
||||
* is moved to make room. If less data is inserted than is removed,
|
||||
* the remaining data is moved to close the hole.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AsInsertData (
|
||||
char *Buffer,
|
||||
char *BufferToAdd,
|
||||
UINT32 LengthToAdd)
|
||||
{
|
||||
UINT32 BufferLength;
|
||||
|
||||
|
||||
if (LengthToAdd > 0)
|
||||
{
|
||||
/*
|
||||
* Buffer is a string, so the length must include the terminating zero
|
||||
*/
|
||||
BufferLength = strlen (Buffer) + 1;
|
||||
|
||||
/*
|
||||
* Move some of the existing data
|
||||
* 1) If adding more bytes than removing, make room for the new data
|
||||
* 2) if removing more bytes than adding, delete the extra space
|
||||
*/
|
||||
Gbl_MadeChanges = TRUE;
|
||||
memmove ((Buffer + LengthToAdd), Buffer, BufferLength);
|
||||
|
||||
/*
|
||||
* Now we can move in the new data
|
||||
*/
|
||||
memmove (Buffer, BufferToAdd, LengthToAdd);
|
||||
}
|
||||
|
||||
return (Buffer + LengthToAdd);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AsRemoveData
|
||||
*
|
||||
* DESCRIPTION: This function inserts and removes data from the file buffer.
|
||||
* if more data is inserted than is removed, the data in the buffer
|
||||
* is moved to make room. If less data is inserted than is removed,
|
||||
* the remaining data is moved to close the hole.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AsRemoveData (
|
||||
char *StartPointer,
|
||||
char *EndPointer)
|
||||
{
|
||||
UINT32 BufferLength;
|
||||
|
||||
|
||||
/*
|
||||
* Buffer is a string, so the length must include the terminating zero
|
||||
*/
|
||||
BufferLength = strlen (EndPointer) + 1;
|
||||
|
||||
Gbl_MadeChanges = TRUE;
|
||||
memmove (StartPointer, EndPointer, BufferLength);
|
||||
|
||||
return (StartPointer);
|
||||
}
|
||||
|
@ -1,306 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: osunixdir - Unix directory access interfaces
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <dirent.h>
|
||||
#include <fnmatch.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "acpisrc.h"
|
||||
|
||||
typedef struct ExternalFindInfo
|
||||
{
|
||||
char *DirPathname;
|
||||
DIR *DirPtr;
|
||||
char temp_buffer[128];
|
||||
char *WildcardSpec;
|
||||
char RequestedFileType;
|
||||
|
||||
} EXTERNAL_FIND_INFO;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsOpenDirectory
|
||||
*
|
||||
* PARAMETERS: DirPathname - Full pathname to the directory
|
||||
* WildcardSpec - string of the form "*.c", etc.
|
||||
*
|
||||
* RETURN: A directory "handle" to be used in subsequent search operations.
|
||||
* NULL returned on failure.
|
||||
*
|
||||
* DESCRIPTION: Open a directory in preparation for a wildcard search
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void *
|
||||
AcpiOsOpenDirectory (
|
||||
char *DirPathname,
|
||||
char *WildcardSpec,
|
||||
char RequestedFileType)
|
||||
{
|
||||
EXTERNAL_FIND_INFO *ExternalInfo;
|
||||
DIR *dir;
|
||||
|
||||
|
||||
/* Allocate the info struct that will be returned to the caller */
|
||||
|
||||
ExternalInfo = calloc (sizeof (EXTERNAL_FIND_INFO), 1);
|
||||
if (!ExternalInfo)
|
||||
{
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/* Get the directory stream */
|
||||
|
||||
dir = opendir (DirPathname);
|
||||
if (!dir)
|
||||
{
|
||||
free (ExternalInfo);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/* Save the info in the return structure */
|
||||
|
||||
ExternalInfo->WildcardSpec = WildcardSpec;
|
||||
ExternalInfo->RequestedFileType = RequestedFileType;
|
||||
ExternalInfo->DirPathname = DirPathname;
|
||||
ExternalInfo->DirPtr = dir;
|
||||
return (ExternalInfo);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsGetNextFilename
|
||||
*
|
||||
* PARAMETERS: DirHandle - Created via AcpiOsOpenDirectory
|
||||
*
|
||||
* RETURN: Next filename matched. NULL if no more matches.
|
||||
*
|
||||
* DESCRIPTION: Get the next file in the directory that matches the wildcard
|
||||
* specification.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AcpiOsGetNextFilename (
|
||||
void *DirHandle)
|
||||
{
|
||||
EXTERNAL_FIND_INFO *ExternalInfo = DirHandle;
|
||||
struct dirent *dir_entry;
|
||||
char *temp_str;
|
||||
int str_len;
|
||||
struct stat temp_stat;
|
||||
int err;
|
||||
|
||||
|
||||
while ((dir_entry = readdir (ExternalInfo->DirPtr)))
|
||||
{
|
||||
if (!fnmatch (ExternalInfo->WildcardSpec, dir_entry->d_name, 0))
|
||||
{
|
||||
if (dir_entry->d_name[0] == '.')
|
||||
continue;
|
||||
|
||||
str_len = strlen (dir_entry->d_name) +
|
||||
strlen (ExternalInfo->DirPathname) + 2;
|
||||
|
||||
temp_str = calloc (str_len, 1);
|
||||
if (!temp_str)
|
||||
{
|
||||
printf ("Could not allocate buffer for temporary string\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
strcpy (temp_str, ExternalInfo->DirPathname);
|
||||
strcat (temp_str, "/");
|
||||
strcat (temp_str, dir_entry->d_name);
|
||||
|
||||
err = stat (temp_str, &temp_stat);
|
||||
free (temp_str);
|
||||
if (err == -1)
|
||||
{
|
||||
printf ("stat() error - should not happen\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((S_ISDIR (temp_stat.st_mode)
|
||||
&& (ExternalInfo->RequestedFileType == REQUEST_DIR_ONLY))
|
||||
||
|
||||
((!S_ISDIR (temp_stat.st_mode)
|
||||
&& ExternalInfo->RequestedFileType == REQUEST_FILE_ONLY)))
|
||||
{
|
||||
/* copy to a temp buffer because dir_entry struct is on the stack */
|
||||
|
||||
strcpy (ExternalInfo->temp_buffer, dir_entry->d_name);
|
||||
return (ExternalInfo->temp_buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsCloseDirectory
|
||||
*
|
||||
* PARAMETERS: DirHandle - Created via AcpiOsOpenDirectory
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
* DESCRIPTION: Close the open directory and cleanup.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiOsCloseDirectory (
|
||||
void *DirHandle)
|
||||
{
|
||||
EXTERNAL_FIND_INFO *ExternalInfo = DirHandle;
|
||||
|
||||
|
||||
/* Close the directory and free allocations */
|
||||
|
||||
closedir (ExternalInfo->DirPtr);
|
||||
free (DirHandle);
|
||||
}
|
||||
|
||||
/* Other functions acpisrc uses but that aren't standard on Unix */
|
||||
|
||||
/* lowercase a string */
|
||||
char*
|
||||
strlwr (
|
||||
char *str)
|
||||
{
|
||||
int length;
|
||||
int i;
|
||||
|
||||
|
||||
length = strlen(str);
|
||||
|
||||
for (i = 0; i < length; i++)
|
||||
{
|
||||
str[i] = tolower(str[i]);
|
||||
}
|
||||
|
||||
return (str);
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
|
||||
|
||||
PROG= acpixtract
|
||||
SRCS= acpixtract.c
|
||||
|
||||
CFLAGS+= -Wall -O2 -D_LINUX -DACPI_APPLICATION -Wstrict-prototypes -I../../include
|
||||
|
||||
|
||||
acpixtract : $(patsubst %.c,%.o, $(SRCS))
|
||||
$(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -o $(PROG)
|
||||
|
||||
CLEANFILES= $(PROG)
|
||||
|
||||
clean :
|
||||
rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS))
|
||||
|
@ -1,788 +0,0 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: acpixtract - convert ascii ACPI tables to binary
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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 <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#define VERSION 0x20060324
|
||||
|
||||
#define FIND_HEADER 0
|
||||
#define EXTRACT_DATA 1
|
||||
#define BUFFER_SIZE 256
|
||||
|
||||
char Filename[16];
|
||||
unsigned char Data[16];
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
void
|
||||
CheckAscii (
|
||||
unsigned char *Name,
|
||||
int Count);
|
||||
|
||||
void
|
||||
NormalizeSignature (
|
||||
char *Signature);
|
||||
|
||||
unsigned int
|
||||
GetNextInstance (
|
||||
char *InputPathname,
|
||||
char *Signature);
|
||||
|
||||
int
|
||||
ExtractTables (
|
||||
char *InputPathname,
|
||||
char *Signature,
|
||||
unsigned int MinimumInstances);
|
||||
|
||||
size_t
|
||||
GetTableHeader (
|
||||
FILE *InputFile,
|
||||
unsigned char *OutputData);
|
||||
|
||||
unsigned int
|
||||
CountTableInstances (
|
||||
char *InputPathname,
|
||||
char *Signature);
|
||||
|
||||
int
|
||||
ListTables (
|
||||
char *InputPathname);
|
||||
|
||||
size_t
|
||||
ConvertLine (
|
||||
char *InputLine,
|
||||
unsigned char *OutputData);
|
||||
|
||||
void
|
||||
DisplayUsage (
|
||||
void);
|
||||
|
||||
|
||||
struct TableInfo
|
||||
{
|
||||
unsigned int Signature;
|
||||
unsigned int Instances;
|
||||
unsigned int NextInstance;
|
||||
struct TableInfo *Next;
|
||||
};
|
||||
|
||||
struct TableInfo *ListHead = NULL;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: DisplayUsage
|
||||
*
|
||||
* DESCRIPTION: Usage message
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
DisplayUsage (
|
||||
void)
|
||||
{
|
||||
|
||||
printf ("Usage: acpixtract [option] <InputFile>\n");
|
||||
printf ("\nExtract binary ACPI tables from text acpidump output\n");
|
||||
printf ("Default invocation extracts all DSDTs and SSDTs\n");
|
||||
printf ("Version %8.8X\n\n", VERSION);
|
||||
printf ("Options:\n");
|
||||
printf (" -a Extract all tables, not just DSDT/SSDT\n");
|
||||
printf (" -l List table summaries, do not extract\n");
|
||||
printf (" -s<Signature> Extract all tables named <Signature>\n");
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: CheckAscii
|
||||
*
|
||||
* PARAMETERS: Name - Ascii string, at least as long as Count
|
||||
* 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>.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
CheckAscii (
|
||||
unsigned char *Name,
|
||||
int Count)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
||||
for (i = 0; i < Count; i++)
|
||||
{
|
||||
if (!Name[i] || !isprint (Name[i]))
|
||||
{
|
||||
Name[i] = ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: NormalizeSignature
|
||||
*
|
||||
* PARAMETERS: Name - Ascii string
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Change "RSD PTR" to "RSDP"
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
NormalizeSignature (
|
||||
char *Signature)
|
||||
{
|
||||
|
||||
if (!strncmp (Signature, "RSD ", 4))
|
||||
{
|
||||
Signature[3] = 'P';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: ConvertLine
|
||||
*
|
||||
* DESCRIPTION: Convert one line of ascii text binary (up to 16 bytes)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
size_t
|
||||
ConvertLine (
|
||||
char *InputLine,
|
||||
unsigned char *OutputData)
|
||||
{
|
||||
char *End;
|
||||
int BytesConverted;
|
||||
int Converted[16];
|
||||
int i;
|
||||
|
||||
|
||||
/* Terminate the input line at the end of the actual data (for sscanf) */
|
||||
|
||||
End = strstr (InputLine + 2, " ");
|
||||
if (!End)
|
||||
{
|
||||
return 0; /* Don't understand the format */
|
||||
}
|
||||
*End = 0;
|
||||
|
||||
/*
|
||||
* Convert one line of table data, of the form:
|
||||
* <offset>: <up to 16 bytes of hex data> <ASCII representation> <newline>
|
||||
*
|
||||
* Example:
|
||||
* 02C0: 5F 53 42 5F 4C 4E 4B 44 00 12 13 04 0C FF FF 08 _SB_LNKD........
|
||||
*/
|
||||
BytesConverted = sscanf (InputLine,
|
||||
"%*s %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x",
|
||||
&Converted[0], &Converted[1], &Converted[2], &Converted[3],
|
||||
&Converted[4], &Converted[5], &Converted[6], &Converted[7],
|
||||
&Converted[8], &Converted[9], &Converted[10], &Converted[11],
|
||||
&Converted[12], &Converted[13], &Converted[14], &Converted[15]);
|
||||
|
||||
/* Pack converted data into a byte array */
|
||||
|
||||
for (i = 0; i < BytesConverted; i++)
|
||||
{
|
||||
OutputData[i] = (unsigned char) Converted[i];
|
||||
}
|
||||
|
||||
return ((size_t) BytesConverted);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: GetTableHeader
|
||||
*
|
||||
* DESCRIPTION: Extract and convert a table heaader
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
size_t
|
||||
GetTableHeader (
|
||||
FILE *InputFile,
|
||||
unsigned char *OutputData)
|
||||
{
|
||||
size_t BytesConverted;
|
||||
size_t TotalConverted = 0;
|
||||
char Buffer[BUFFER_SIZE];
|
||||
int i;
|
||||
|
||||
|
||||
/* Get the full 36 byte header, requires 3 lines */
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
if (!fgets (Buffer, BUFFER_SIZE, InputFile))
|
||||
{
|
||||
return TotalConverted;
|
||||
}
|
||||
|
||||
BytesConverted = ConvertLine (Buffer, OutputData);
|
||||
TotalConverted += BytesConverted;
|
||||
OutputData += 16;
|
||||
|
||||
if (BytesConverted != 16)
|
||||
{
|
||||
return TotalConverted;
|
||||
}
|
||||
}
|
||||
|
||||
return TotalConverted;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: CountTableInstances
|
||||
*
|
||||
* DESCRIPTION: Count the instances of table <Signature> within the input file
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
unsigned int
|
||||
CountTableInstances (
|
||||
char *InputPathname,
|
||||
char *Signature)
|
||||
{
|
||||
char Buffer[BUFFER_SIZE];
|
||||
FILE *InputFile;
|
||||
unsigned int Instances = 0;
|
||||
|
||||
|
||||
InputFile = fopen (InputPathname, "rt");
|
||||
if (!InputFile)
|
||||
{
|
||||
printf ("Could not open %s\n", InputPathname);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Count the number of instances of this signature */
|
||||
|
||||
while (fgets (Buffer, BUFFER_SIZE, InputFile))
|
||||
{
|
||||
/* Ignore empty lines and lines that start with a space */
|
||||
|
||||
if ((Buffer[0] == ' ') ||
|
||||
(Buffer[0] == '\n'))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
NormalizeSignature (Buffer);
|
||||
if (!strncmp (Buffer, Signature, 4))
|
||||
{
|
||||
Instances++;
|
||||
}
|
||||
}
|
||||
|
||||
fclose (InputFile);
|
||||
return Instances;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: GetNextInstance
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
unsigned int
|
||||
GetNextInstance (
|
||||
char *InputPathname,
|
||||
char *Signature)
|
||||
{
|
||||
struct TableInfo *Info;
|
||||
|
||||
|
||||
Info = ListHead;
|
||||
while (Info)
|
||||
{
|
||||
if (*(unsigned int *) Signature == Info->Signature)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
Info = Info->Next;
|
||||
}
|
||||
|
||||
if (!Info)
|
||||
{
|
||||
Info = malloc (sizeof (struct TableInfo));
|
||||
|
||||
Info->Signature = *(unsigned int *) Signature;
|
||||
Info->Instances = CountTableInstances (InputPathname, Signature);
|
||||
Info->NextInstance = 1;
|
||||
|
||||
Info->Next = ListHead;
|
||||
ListHead = Info;
|
||||
}
|
||||
|
||||
if (Info->Instances > 1)
|
||||
{
|
||||
return (Info->NextInstance++);
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: ExtractTables
|
||||
*
|
||||
* DESCRIPTION: Convert text ACPI tables to binary
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
ExtractTables (
|
||||
char *InputPathname,
|
||||
char *Signature,
|
||||
unsigned int MinimumInstances)
|
||||
{
|
||||
char Buffer[BUFFER_SIZE];
|
||||
FILE *InputFile;
|
||||
FILE *OutputFile = NULL;
|
||||
size_t BytesWritten;
|
||||
size_t TotalBytesWritten = 0;
|
||||
size_t BytesConverted;
|
||||
unsigned int State = FIND_HEADER;
|
||||
unsigned int FoundTable = 0;
|
||||
unsigned int Instances = 0;
|
||||
unsigned int ThisInstance;
|
||||
char ThisSignature[4];
|
||||
|
||||
|
||||
/* Open input in text mode, output is in binary mode */
|
||||
|
||||
InputFile = fopen (InputPathname, "rt");
|
||||
if (!InputFile)
|
||||
{
|
||||
printf ("Could not open %s\n", InputPathname);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (Signature)
|
||||
{
|
||||
/* Are there enough instances of the table to continue? */
|
||||
|
||||
NormalizeSignature (Signature);
|
||||
|
||||
Instances = CountTableInstances (InputPathname, Signature);
|
||||
if (Instances < MinimumInstances)
|
||||
{
|
||||
printf ("Table %s was not found in %s\n", Signature, InputPathname);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (Instances == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Convert all instances of the table to binary */
|
||||
|
||||
while (fgets (Buffer, BUFFER_SIZE, InputFile))
|
||||
{
|
||||
switch (State)
|
||||
{
|
||||
case FIND_HEADER:
|
||||
|
||||
/* Ignore empty lines and lines that start with a space */
|
||||
|
||||
if ((Buffer[0] == ' ') ||
|
||||
(Buffer[0] == '\n'))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
NormalizeSignature (Buffer);
|
||||
strncpy (ThisSignature, Buffer, 4);
|
||||
|
||||
if (Signature)
|
||||
{
|
||||
/* Ignore signatures that don't match */
|
||||
|
||||
if (strncmp (ThisSignature, Signature, 4))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* Get the instance # for this signature */
|
||||
|
||||
ThisInstance = GetNextInstance (InputPathname, ThisSignature);
|
||||
|
||||
/* Build an output filename and create/open the output file */
|
||||
|
||||
if (ThisInstance > 0)
|
||||
{
|
||||
sprintf (Filename, "%4.4s%u.dat", ThisSignature, ThisInstance);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf (Filename, "%4.4s.dat", ThisSignature);
|
||||
}
|
||||
|
||||
OutputFile = fopen (Filename, "w+b");
|
||||
if (!OutputFile)
|
||||
{
|
||||
printf ("Could not open %s\n", Filename);
|
||||
return -1;
|
||||
}
|
||||
|
||||
State = EXTRACT_DATA;
|
||||
TotalBytesWritten = 0;
|
||||
FoundTable = 1;
|
||||
continue;
|
||||
|
||||
case EXTRACT_DATA:
|
||||
|
||||
/* Empty line or non-data line terminates the data */
|
||||
|
||||
if ((Buffer[0] == '\n') ||
|
||||
(Buffer[0] != ' '))
|
||||
{
|
||||
fclose (OutputFile);
|
||||
OutputFile = NULL;
|
||||
State = FIND_HEADER;
|
||||
|
||||
printf ("Acpi table [%4.4s] - % 6d bytes written to %s\n",
|
||||
ThisSignature, TotalBytesWritten, Filename);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Convert the ascii data (one line of text) to binary */
|
||||
|
||||
BytesConverted = ConvertLine (Buffer, Data);
|
||||
|
||||
/* Write the binary data */
|
||||
|
||||
BytesWritten = fwrite (Data, 1, BytesConverted, OutputFile);
|
||||
if (BytesWritten != BytesConverted)
|
||||
{
|
||||
printf ("Write error on %s\n", Filename);
|
||||
fclose (OutputFile);
|
||||
return -1;
|
||||
}
|
||||
|
||||
TotalBytesWritten += BytesConverted;
|
||||
continue;
|
||||
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!FoundTable)
|
||||
{
|
||||
printf ("Table %s was not found in %s\n", Signature, InputPathname);
|
||||
}
|
||||
|
||||
if (OutputFile)
|
||||
{
|
||||
fclose (OutputFile);
|
||||
if (State == EXTRACT_DATA)
|
||||
{
|
||||
/* Received an EOF while extracting data */
|
||||
|
||||
printf ("Acpi table [%4.4s] - % 6d bytes written to %s\n",
|
||||
ThisSignature, TotalBytesWritten, Filename);
|
||||
}
|
||||
}
|
||||
|
||||
fclose (InputFile);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: ListTables
|
||||
*
|
||||
* DESCRIPTION: Display info for all ACPI tables found in input
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
ListTables (
|
||||
char *InputPathname)
|
||||
{
|
||||
FILE *InputFile;
|
||||
char Buffer[BUFFER_SIZE];
|
||||
size_t HeaderSize;
|
||||
unsigned char Header[48];
|
||||
int TableCount = 0;
|
||||
|
||||
|
||||
/* Open input in text mode, output is in binary mode */
|
||||
|
||||
InputFile = fopen (InputPathname, "rt");
|
||||
if (!InputFile)
|
||||
{
|
||||
printf ("Could not open %s\n", InputPathname);
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf ("\nSignature Length OemId OemTableId OemRevision CompilerId CompilerRevision\n\n");
|
||||
|
||||
while (fgets (Buffer, BUFFER_SIZE, InputFile))
|
||||
{
|
||||
/* Ignore empty lines and lines that start with a space */
|
||||
|
||||
if ((Buffer[0] == ' ') ||
|
||||
(Buffer[0] == '\n'))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Get the 36 byte header and display the fields */
|
||||
|
||||
HeaderSize = GetTableHeader (InputFile, Header);
|
||||
if (HeaderSize < 16)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/* RSDP has an oddball signature and header */
|
||||
|
||||
if (!strncmp ((char *) Header, "RSD PTR ", 8))
|
||||
{
|
||||
CheckAscii (&Header[9], 6);
|
||||
printf ("%8.4s \"%6.6s\"\n", "RSDP", &Header[9]);
|
||||
TableCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Minimum size */
|
||||
|
||||
if (HeaderSize < 36)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Signature and Table length */
|
||||
|
||||
TableCount++;
|
||||
printf ("%8.4s % 7d", Header, *(int *) &Header[4]);
|
||||
|
||||
/* FACS has only signature and length */
|
||||
|
||||
if (!strncmp ((char *) Header, "FACS", 4))
|
||||
{
|
||||
printf ("\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
/* OEM IDs and Compiler IDs */
|
||||
|
||||
CheckAscii (&Header[10], 6);
|
||||
CheckAscii (&Header[16], 8);
|
||||
CheckAscii (&Header[28], 4);
|
||||
|
||||
printf (" \"%6.6s\" \"%8.8s\" %8.8X \"%4.4s\" %8.8X\n",
|
||||
&Header[10], &Header[16], *(int *) &Header[24],
|
||||
&Header[28], *(int *) &Header[32]);
|
||||
}
|
||||
|
||||
printf ("\nFound %d ACPI tables [%8.8X]\n", TableCount, VERSION);
|
||||
fclose (InputFile);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: main
|
||||
*
|
||||
* DESCRIPTION: C main function
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
main (
|
||||
int argc,
|
||||
char *argv[])
|
||||
{
|
||||
int Status;
|
||||
|
||||
|
||||
if (argc < 2)
|
||||
{
|
||||
DisplayUsage ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (argv[1][0] == '-')
|
||||
{
|
||||
if (argc < 3)
|
||||
{
|
||||
DisplayUsage ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (argv[1][1])
|
||||
{
|
||||
case 'a':
|
||||
return (ExtractTables (argv[2], NULL, 0));
|
||||
|
||||
case 'l':
|
||||
return (ListTables (argv[2]));
|
||||
|
||||
case 's':
|
||||
return (ExtractTables (argv[2], &argv[1][2], 1));
|
||||
|
||||
default:
|
||||
DisplayUsage ();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Default output is the DSDT and all SSDTs. One DSDT is required,
|
||||
* any SSDTs are optional.
|
||||
*/
|
||||
Status = ExtractTables (argv[1], "DSDT", 1);
|
||||
if (Status)
|
||||
{
|
||||
return Status;
|
||||
}
|
||||
|
||||
Status = ExtractTables (argv[1], "SSDT", 0);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
@ -1,506 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: examples - Example ACPICA code
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/* Set the ACPICA application type for use in include/platform/acenv.h */
|
||||
|
||||
#ifndef WIN32
|
||||
#define WIN32
|
||||
#endif
|
||||
|
||||
#define ACPI_DEBUG_OUTPUT
|
||||
|
||||
/* ACPICA public headers */
|
||||
|
||||
#include "acpi.h"
|
||||
|
||||
#define _COMPONENT ACPI_EXAMPLE
|
||||
ACPI_MODULE_NAME ("examples")
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* ACPICA Example Code
|
||||
*
|
||||
* This module contains examples of how the host OS should interface to the
|
||||
* ACPICA subsystem.
|
||||
*
|
||||
* 1) How to use the platform/acenv.h file and how to set configuration
|
||||
* options.
|
||||
*
|
||||
* 2) main - using the debug output mechanism and the error/warning output
|
||||
* macros.
|
||||
*
|
||||
* 3) Two examples of the ACPICA initialization sequence. The first is a
|
||||
* initialization with no "early" ACPI table access. The second shows
|
||||
* how to use ACPICA to obtain the tables very early during kernel
|
||||
* initialization, even before dynamic memory is available.
|
||||
*
|
||||
* 4) How to invoke a control method, including argument setup and how to
|
||||
* access the return value.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/* Standard Clib headers */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
/* Local Prototypes */
|
||||
|
||||
ACPI_STATUS
|
||||
InitializeFullAcpi (void);
|
||||
|
||||
ACPI_STATUS
|
||||
InstallHandlers (void);
|
||||
|
||||
void
|
||||
ExecuteOSI (void);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: main
|
||||
*
|
||||
* PARAMETERS: argc, argv
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Main routine. Shows the use of the various output macros, as
|
||||
* well as the use of the debug layer/level globals.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
int ACPI_SYSTEM_XFACE
|
||||
main (
|
||||
int argc,
|
||||
char **argv)
|
||||
{
|
||||
ACPI_FUNCTION_NAME (Examples-main);
|
||||
|
||||
|
||||
InitializeFullAcpi ();
|
||||
|
||||
/* Enable debug output, example debug print */
|
||||
|
||||
AcpiDbgLayer = ACPI_EXAMPLE;
|
||||
AcpiDbgLevel = ACPI_LV_INIT;
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "Example Debug output\n"));
|
||||
|
||||
/* Example warning and error output */
|
||||
|
||||
ACPI_INFO ((AE_INFO, "ACPICA example info message"));
|
||||
ACPI_WARNING ((AE_INFO, "ACPICA example warning message"));
|
||||
ACPI_ERROR ((AE_INFO, "ACPICA example error message"));
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_AML_OPERAND_TYPE, "Example exception message"));
|
||||
|
||||
ExecuteOSI ();
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Example ACPICA initialization code. This shows a full initialization with
|
||||
* no early ACPI table access.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
InitializeFullAcpi (void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Initialize the ACPICA subsystem */
|
||||
|
||||
Status = AcpiInitializeSubsystem ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While initializing ACPICA"));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Initialize the ACPICA Table Manager and get all ACPI tables */
|
||||
|
||||
Status = AcpiInitializeTables (NULL, 16, FALSE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While initializing Table Manager"));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Create the ACPI namespace from ACPI tables */
|
||||
|
||||
Status = AcpiLoadTables ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While loading ACPI tables"));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Install local handlers */
|
||||
|
||||
Status = InstallHandlers ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While installing handlers"));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Initialize the ACPI hardware */
|
||||
|
||||
Status = AcpiEnableSubsystem (ACPI_FULL_INITIALIZATION);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While enabling ACPICA"));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Complete the ACPI namespace object initialization */
|
||||
|
||||
Status = AcpiInitializeObjects (ACPI_FULL_INITIALIZATION);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While initializing ACPICA objects"));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Example ACPICA initialization code with early ACPI table access. This shows
|
||||
* an initialization that requires early access to ACPI tables (before
|
||||
* kernel dynamic memory is available)
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* The purpose of this static table array is to avoid the use of kernel
|
||||
* dynamic memory which may not be available during early ACPI table
|
||||
* access.
|
||||
*/
|
||||
#define ACPI_MAX_INIT_TABLES 16
|
||||
static ACPI_TABLE_DESC TableArray[ACPI_MAX_INIT_TABLES];
|
||||
|
||||
|
||||
/*
|
||||
* This function would be called early in kernel initialization. After this
|
||||
* is called, all ACPI tables are available to the host.
|
||||
*/
|
||||
ACPI_STATUS
|
||||
InitializeAcpiTables (void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Initialize the ACPICA Table Manager and get all ACPI tables */
|
||||
|
||||
Status = AcpiInitializeTables (TableArray, ACPI_MAX_INIT_TABLES, TRUE);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* This function would be called after the kernel is initialized and
|
||||
* dynamic/virtual memory is available. It completes the initialization of
|
||||
* the ACPICA subsystem.
|
||||
*/
|
||||
ACPI_STATUS
|
||||
InitializeAcpi (void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Initialize the ACPICA subsystem */
|
||||
|
||||
Status = AcpiInitializeSubsystem ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Copy the root table list to dynamic memory */
|
||||
|
||||
Status = AcpiReallocateRootTable ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Create the ACPI namespace from ACPI tables */
|
||||
|
||||
Status = AcpiLoadTables ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Install local handlers */
|
||||
|
||||
Status = InstallHandlers ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While installing handlers"));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Initialize the ACPI hardware */
|
||||
|
||||
Status = AcpiEnableSubsystem (ACPI_FULL_INITIALIZATION);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Complete the ACPI namespace object initialization */
|
||||
|
||||
Status = AcpiInitializeObjects (ACPI_FULL_INITIALIZATION);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Example ACPICA handler and handler installation
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
NotifyHandler (
|
||||
ACPI_HANDLE Device,
|
||||
UINT32 Value,
|
||||
void *Context)
|
||||
{
|
||||
|
||||
ACPI_INFO ((AE_INFO, "Received a notify %X", Value));
|
||||
}
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
InstallHandlers (void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Install global notify handler */
|
||||
|
||||
Status = AcpiInstallNotifyHandler (ACPI_ROOT_OBJECT, ACPI_SYSTEM_NOTIFY,
|
||||
NotifyHandler, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While installing Notify handler"));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Example control method execution.
|
||||
*
|
||||
* _OSI is a predefined method that is implemented internally within ACPICA.
|
||||
*
|
||||
* Shows the following elements:
|
||||
*
|
||||
* 1) How to setup a control method argument and argument list
|
||||
* 2) How to setup the return value object
|
||||
* 3) How to invoke AcpiEvaluateObject
|
||||
* 4) How to check the returned ACPI_STATUS
|
||||
* 5) How to analyze the return value
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
ExecuteOSI (void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_OBJECT_LIST ArgList;
|
||||
ACPI_OBJECT Arg[1];
|
||||
ACPI_BUFFER ReturnValue;
|
||||
ACPI_OBJECT *Object;
|
||||
|
||||
|
||||
ACPI_INFO ((AE_INFO, "Executing OSI method"));
|
||||
|
||||
/* Setup input argument */
|
||||
|
||||
ArgList.Count = 1;
|
||||
ArgList.Pointer = Arg;
|
||||
|
||||
Arg[0].Type = ACPI_TYPE_STRING;
|
||||
Arg[0].String.Pointer = "Windows 2001";
|
||||
Arg[0].String.Length = strlen (Arg[0].String.Pointer);
|
||||
|
||||
/* Ask ACPICA to allocate space for the return object */
|
||||
|
||||
ReturnValue.Length = ACPI_ALLOCATE_BUFFER;
|
||||
|
||||
Status = AcpiEvaluateObject (NULL, "\\_OSI", &ArgList, &ReturnValue);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While executing _OSI"));
|
||||
return;
|
||||
}
|
||||
|
||||
/* Ensure that the return object is large enough */
|
||||
|
||||
if (ReturnValue.Length < sizeof (ACPI_OBJECT))
|
||||
{
|
||||
AcpiOsPrintf ("Return value from _OSI method too small, %.8X\n",
|
||||
ReturnValue.Length);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Expect an integer return value from execution of _OSI */
|
||||
|
||||
Object = ReturnValue.Pointer;
|
||||
if (Object->Type != ACPI_TYPE_INTEGER)
|
||||
{
|
||||
AcpiOsPrintf ("Invalid return type from _OSI, %.2X\n", Object->Type);
|
||||
}
|
||||
|
||||
ACPI_INFO ((AE_INFO, "_OSI returned %.8X", (UINT32) Object->Integer.Value));
|
||||
AcpiOsFree (Object);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* OSL support (only needed to link to the windows OSL)
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
FILE *AcpiGbl_DebugFile;
|
||||
|
||||
ACPI_PHYSICAL_ADDRESS
|
||||
AeLocalGetRootPointer (
|
||||
void)
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
@ -1,961 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: cmclib - Local implementation of C library functions
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2009, 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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#define __CMCLIB_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "accommon.h"
|
||||
|
||||
/*
|
||||
* These implementations of standard C Library routines can optionally be
|
||||
* used if a C library is not available. In general, they are less efficient
|
||||
* than an inline or assembly implementation
|
||||
*/
|
||||
|
||||
#define _COMPONENT ACPI_UTILITIES
|
||||
ACPI_MODULE_NAME ("cmclib")
|
||||
|
||||
|
||||
#ifndef ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
#define NEGATIVE 1
|
||||
#define POSITIVE 0
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtMemcmp (memcmp)
|
||||
*
|
||||
* PARAMETERS: Buffer1 - First Buffer
|
||||
* Buffer2 - Second Buffer
|
||||
* Count - Maximum # of bytes to compare
|
||||
*
|
||||
* RETURN: Index where Buffers mismatched, or 0 if Buffers matched
|
||||
*
|
||||
* DESCRIPTION: Compare two Buffers, with a maximum length
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiUtMemcmp (
|
||||
const char *Buffer1,
|
||||
const char *Buffer2,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
|
||||
for ( ; Count-- && (*Buffer1 == *Buffer2); Buffer1++, Buffer2++)
|
||||
{
|
||||
}
|
||||
|
||||
return ((Count == ACPI_SIZE_MAX) ? 0 : ((unsigned char) *Buffer1 -
|
||||
(unsigned char) *Buffer2));
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtMemcpy (memcpy)
|
||||
*
|
||||
* PARAMETERS: Dest - Target of the copy
|
||||
* Src - Source buffer to copy
|
||||
* Count - Number of bytes to copy
|
||||
*
|
||||
* RETURN: Dest
|
||||
*
|
||||
* DESCRIPTION: Copy arbitrary bytes of memory
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void *
|
||||
AcpiUtMemcpy (
|
||||
void *Dest,
|
||||
const void *Src,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
char *New = (char *) Dest;
|
||||
char *Old = (char *) Src;
|
||||
|
||||
|
||||
while (Count)
|
||||
{
|
||||
*New = *Old;
|
||||
New++;
|
||||
Old++;
|
||||
Count--;
|
||||
}
|
||||
|
||||
return (Dest);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtMemset (memset)
|
||||
*
|
||||
* PARAMETERS: Dest - Buffer to set
|
||||
* Value - Value to set each byte of memory
|
||||
* Count - Number of bytes to set
|
||||
*
|
||||
* RETURN: Dest
|
||||
*
|
||||
* DESCRIPTION: Initialize a buffer to a known value.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void *
|
||||
AcpiUtMemset (
|
||||
void *Dest,
|
||||
UINT8 Value,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
char *New = (char *) Dest;
|
||||
|
||||
|
||||
while (Count)
|
||||
{
|
||||
*New = (char) Value;
|
||||
New++;
|
||||
Count--;
|
||||
}
|
||||
|
||||
return (Dest);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrlen (strlen)
|
||||
*
|
||||
* PARAMETERS: String - Null terminated string
|
||||
*
|
||||
* RETURN: Length
|
||||
*
|
||||
* DESCRIPTION: Returns the length of the input string
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
ACPI_SIZE
|
||||
AcpiUtStrlen (
|
||||
const char *String)
|
||||
{
|
||||
UINT32 Length = 0;
|
||||
|
||||
|
||||
/* Count the string until a null is encountered */
|
||||
|
||||
while (*String)
|
||||
{
|
||||
Length++;
|
||||
String++;
|
||||
}
|
||||
|
||||
return (Length);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrcpy (strcpy)
|
||||
*
|
||||
* PARAMETERS: DstString - Target of the copy
|
||||
* SrcString - The source string to copy
|
||||
*
|
||||
* RETURN: DstString
|
||||
*
|
||||
* DESCRIPTION: Copy a null terminated string
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AcpiUtStrcpy (
|
||||
char *DstString,
|
||||
const char *SrcString)
|
||||
{
|
||||
char *String = DstString;
|
||||
|
||||
|
||||
/* Move bytes brute force */
|
||||
|
||||
while (*SrcString)
|
||||
{
|
||||
*String = *SrcString;
|
||||
|
||||
String++;
|
||||
SrcString++;
|
||||
}
|
||||
|
||||
/* Null terminate */
|
||||
|
||||
*String = 0;
|
||||
return (DstString);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrncpy (strncpy)
|
||||
*
|
||||
* PARAMETERS: DstString - Target of the copy
|
||||
* SrcString - The source string to copy
|
||||
* Count - Maximum # of bytes to copy
|
||||
*
|
||||
* RETURN: DstString
|
||||
*
|
||||
* DESCRIPTION: Copy a null terminated string, with a maximum length
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AcpiUtStrncpy (
|
||||
char *DstString,
|
||||
const char *SrcString,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
char *String = DstString;
|
||||
|
||||
|
||||
/* Copy the string */
|
||||
|
||||
for (String = DstString;
|
||||
Count && (Count--, (*String++ = *SrcString++)); )
|
||||
{;}
|
||||
|
||||
/* Pad with nulls if necessary */
|
||||
|
||||
while (Count--)
|
||||
{
|
||||
*String = 0;
|
||||
String++;
|
||||
}
|
||||
|
||||
/* Return original pointer */
|
||||
|
||||
return (DstString);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrcmp (strcmp)
|
||||
*
|
||||
* PARAMETERS: String1 - First string
|
||||
* String2 - Second string
|
||||
*
|
||||
* RETURN: Index where strings mismatched, or 0 if strings matched
|
||||
*
|
||||
* DESCRIPTION: Compare two null terminated strings
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiUtStrcmp (
|
||||
const char *String1,
|
||||
const char *String2)
|
||||
{
|
||||
|
||||
|
||||
for ( ; (*String1 == *String2); String2++)
|
||||
{
|
||||
if (!*String1++)
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
|
||||
return ((unsigned char) *String1 - (unsigned char) *String2);
|
||||
}
|
||||
|
||||
|
||||
#ifdef ACPI_FUTURE_IMPLEMENTATION
|
||||
/* Not used at this time */
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrchr (strchr)
|
||||
*
|
||||
* PARAMETERS: String - Search string
|
||||
* ch - character to search for
|
||||
*
|
||||
* RETURN: Ptr to char or NULL if not found
|
||||
*
|
||||
* DESCRIPTION: Search a string for a character
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AcpiUtStrchr (
|
||||
const char *String,
|
||||
int ch)
|
||||
{
|
||||
|
||||
|
||||
for ( ; (*String); String++)
|
||||
{
|
||||
if ((*String) == (char) ch)
|
||||
{
|
||||
return ((char *) String);
|
||||
}
|
||||
}
|
||||
|
||||
return (NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrncmp (strncmp)
|
||||
*
|
||||
* PARAMETERS: String1 - First string
|
||||
* String2 - Second string
|
||||
* Count - Maximum # of bytes to compare
|
||||
*
|
||||
* RETURN: Index where strings mismatched, or 0 if strings matched
|
||||
*
|
||||
* DESCRIPTION: Compare two null terminated strings, with a maximum length
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiUtStrncmp (
|
||||
const char *String1,
|
||||
const char *String2,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
|
||||
|
||||
for ( ; Count-- && (*String1 == *String2); String2++)
|
||||
{
|
||||
if (!*String1++)
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
|
||||
return ((Count == ACPI_SIZE_MAX) ? 0 : ((unsigned char) *String1 -
|
||||
(unsigned char) *String2));
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrcat (Strcat)
|
||||
*
|
||||
* PARAMETERS: DstString - Target of the copy
|
||||
* SrcString - The source string to copy
|
||||
*
|
||||
* RETURN: DstString
|
||||
*
|
||||
* DESCRIPTION: Append a null terminated string to a null terminated string
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AcpiUtStrcat (
|
||||
char *DstString,
|
||||
const char *SrcString)
|
||||
{
|
||||
char *String;
|
||||
|
||||
|
||||
/* Find end of the destination string */
|
||||
|
||||
for (String = DstString; *String++; )
|
||||
{ ; }
|
||||
|
||||
/* Concatenate the string */
|
||||
|
||||
for (--String; (*String++ = *SrcString++); )
|
||||
{ ; }
|
||||
|
||||
return (DstString);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrncat (strncat)
|
||||
*
|
||||
* PARAMETERS: DstString - Target of the copy
|
||||
* SrcString - The source string to copy
|
||||
* Count - Maximum # of bytes to copy
|
||||
*
|
||||
* RETURN: DstString
|
||||
*
|
||||
* DESCRIPTION: Append a null terminated string to a null terminated string,
|
||||
* with a maximum count.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AcpiUtStrncat (
|
||||
char *DstString,
|
||||
const char *SrcString,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
char *String;
|
||||
|
||||
|
||||
if (Count)
|
||||
{
|
||||
/* Find end of the destination string */
|
||||
|
||||
for (String = DstString; *String++; )
|
||||
{ ; }
|
||||
|
||||
/* Concatenate the string */
|
||||
|
||||
for (--String; (*String++ = *SrcString++) && --Count; )
|
||||
{ ; }
|
||||
|
||||
/* Null terminate if necessary */
|
||||
|
||||
if (!Count)
|
||||
{
|
||||
*String = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return (DstString);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrstr (strstr)
|
||||
*
|
||||
* PARAMETERS: String1 - Target string
|
||||
* String2 - Substring to search for
|
||||
*
|
||||
* RETURN: Where substring match starts, Null if no match found
|
||||
*
|
||||
* DESCRIPTION: Checks if String2 occurs in String1. This is not really a
|
||||
* full implementation of strstr, only sufficient for command
|
||||
* matching
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *
|
||||
AcpiUtStrstr (
|
||||
char *String1,
|
||||
char *String2)
|
||||
{
|
||||
char *String;
|
||||
|
||||
|
||||
if (AcpiUtStrlen (String2) > AcpiUtStrlen (String1))
|
||||
{
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/* Walk entire string, comparing the letters */
|
||||
|
||||
for (String = String1; *String2; )
|
||||
{
|
||||
if (*String2 != *String)
|
||||
{
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
String2++;
|
||||
String++;
|
||||
}
|
||||
|
||||
return (String1);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrtoul (strtoul)
|
||||
*
|
||||
* PARAMETERS: String - Null terminated string
|
||||
* Terminater - Where a pointer to the terminating byte is
|
||||
* returned
|
||||
* Base - Radix of the string
|
||||
*
|
||||
* RETURN: Converted value
|
||||
*
|
||||
* DESCRIPTION: Convert a string into a 32-bit unsigned value.
|
||||
* Note: use AcpiUtStrtoul64 for 64-bit integers.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
UINT32
|
||||
AcpiUtStrtoul (
|
||||
const char *String,
|
||||
char **Terminator,
|
||||
UINT32 Base)
|
||||
{
|
||||
UINT32 converted = 0;
|
||||
UINT32 index;
|
||||
UINT32 sign;
|
||||
const char *StringStart;
|
||||
UINT32 ReturnValue = 0;
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
|
||||
|
||||
/*
|
||||
* Save the value of the pointer to the buffer's first
|
||||
* character, save the current errno value, and then
|
||||
* skip over any white space in the buffer:
|
||||
*/
|
||||
StringStart = String;
|
||||
while (ACPI_IS_SPACE (*String) || *String == '\t')
|
||||
{
|
||||
++String;
|
||||
}
|
||||
|
||||
/*
|
||||
* The buffer may contain an optional plus or minus sign.
|
||||
* If it does, then skip over it but remember what is was:
|
||||
*/
|
||||
if (*String == '-')
|
||||
{
|
||||
sign = NEGATIVE;
|
||||
++String;
|
||||
}
|
||||
else if (*String == '+')
|
||||
{
|
||||
++String;
|
||||
sign = POSITIVE;
|
||||
}
|
||||
else
|
||||
{
|
||||
sign = POSITIVE;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the input parameter Base is zero, then we need to
|
||||
* determine if it is octal, decimal, or hexadecimal:
|
||||
*/
|
||||
if (Base == 0)
|
||||
{
|
||||
if (*String == '0')
|
||||
{
|
||||
if (AcpiUtToLower (*(++String)) == 'x')
|
||||
{
|
||||
Base = 16;
|
||||
++String;
|
||||
}
|
||||
else
|
||||
{
|
||||
Base = 8;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Base = 10;
|
||||
}
|
||||
}
|
||||
else if (Base < 2 || Base > 36)
|
||||
{
|
||||
/*
|
||||
* The specified Base parameter is not in the domain of
|
||||
* this function:
|
||||
*/
|
||||
goto done;
|
||||
}
|
||||
|
||||
/*
|
||||
* For octal and hexadecimal bases, skip over the leading
|
||||
* 0 or 0x, if they are present.
|
||||
*/
|
||||
if (Base == 8 && *String == '0')
|
||||
{
|
||||
String++;
|
||||
}
|
||||
|
||||
if (Base == 16 &&
|
||||
*String == '0' &&
|
||||
AcpiUtToLower (*(++String)) == 'x')
|
||||
{
|
||||
String++;
|
||||
}
|
||||
|
||||
/*
|
||||
* Main loop: convert the string to an unsigned long:
|
||||
*/
|
||||
while (*String)
|
||||
{
|
||||
if (ACPI_IS_DIGIT (*String))
|
||||
{
|
||||
index = (UINT32) ((UINT8) *String - '0');
|
||||
}
|
||||
else
|
||||
{
|
||||
index = (UINT32) AcpiUtToUpper (*String);
|
||||
if (ACPI_IS_UPPER (index))
|
||||
{
|
||||
index = index - 'A' + 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
if (index >= Base)
|
||||
{
|
||||
goto done;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check to see if value is out of range:
|
||||
*/
|
||||
|
||||
if (ReturnValue > ((ACPI_UINT32_MAX - (UINT32) index) /
|
||||
(UINT32) Base))
|
||||
{
|
||||
Status = AE_ERROR;
|
||||
ReturnValue = 0; /* reset */
|
||||
}
|
||||
else
|
||||
{
|
||||
ReturnValue *= Base;
|
||||
ReturnValue += index;
|
||||
converted = 1;
|
||||
}
|
||||
|
||||
++String;
|
||||
}
|
||||
|
||||
done:
|
||||
/*
|
||||
* If appropriate, update the caller's pointer to the next
|
||||
* unconverted character in the buffer.
|
||||
*/
|
||||
if (Terminator)
|
||||
{
|
||||
if (converted == 0 && ReturnValue == 0 && String != NULL)
|
||||
{
|
||||
*Terminator = (char *) StringStart;
|
||||
}
|
||||
else
|
||||
{
|
||||
*Terminator = (char *) String;
|
||||
}
|
||||
}
|
||||
|
||||
if (Status == AE_ERROR)
|
||||
{
|
||||
ReturnValue = ACPI_UINT32_MAX;
|
||||
}
|
||||
|
||||
/*
|
||||
* If a minus sign was present, then "the conversion is negated":
|
||||
*/
|
||||
if (sign == NEGATIVE)
|
||||
{
|
||||
ReturnValue = (ACPI_UINT32_MAX - ReturnValue) + 1;
|
||||
}
|
||||
|
||||
return (ReturnValue);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtToUpper (TOUPPER)
|
||||
*
|
||||
* PARAMETERS: c - Character to convert
|
||||
*
|
||||
* RETURN: Converted character as an int
|
||||
*
|
||||
* DESCRIPTION: Convert character to uppercase
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiUtToUpper (
|
||||
int c)
|
||||
{
|
||||
|
||||
return (ACPI_IS_LOWER(c) ? ((c)-0x20) : (c));
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtToLower (TOLOWER)
|
||||
*
|
||||
* PARAMETERS: c - Character to convert
|
||||
*
|
||||
* RETURN: Converted character as an int
|
||||
*
|
||||
* DESCRIPTION: Convert character to lowercase
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
int
|
||||
AcpiUtToLower (
|
||||
int c)
|
||||
{
|
||||
|
||||
return (ACPI_IS_UPPER(c) ? ((c)+0x20) : (c));
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: is* functions
|
||||
*
|
||||
* DESCRIPTION: is* functions use the ctype table below
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
const UINT8 _acpi_ctype[257] = {
|
||||
_ACPI_CN, /* 0x0 0. */
|
||||
_ACPI_CN, /* 0x1 1. */
|
||||
_ACPI_CN, /* 0x2 2. */
|
||||
_ACPI_CN, /* 0x3 3. */
|
||||
_ACPI_CN, /* 0x4 4. */
|
||||
_ACPI_CN, /* 0x5 5. */
|
||||
_ACPI_CN, /* 0x6 6. */
|
||||
_ACPI_CN, /* 0x7 7. */
|
||||
_ACPI_CN, /* 0x8 8. */
|
||||
_ACPI_CN|_ACPI_SP, /* 0x9 9. */
|
||||
_ACPI_CN|_ACPI_SP, /* 0xA 10. */
|
||||
_ACPI_CN|_ACPI_SP, /* 0xB 11. */
|
||||
_ACPI_CN|_ACPI_SP, /* 0xC 12. */
|
||||
_ACPI_CN|_ACPI_SP, /* 0xD 13. */
|
||||
_ACPI_CN, /* 0xE 14. */
|
||||
_ACPI_CN, /* 0xF 15. */
|
||||
_ACPI_CN, /* 0x10 16. */
|
||||
_ACPI_CN, /* 0x11 17. */
|
||||
_ACPI_CN, /* 0x12 18. */
|
||||
_ACPI_CN, /* 0x13 19. */
|
||||
_ACPI_CN, /* 0x14 20. */
|
||||
_ACPI_CN, /* 0x15 21. */
|
||||
_ACPI_CN, /* 0x16 22. */
|
||||
_ACPI_CN, /* 0x17 23. */
|
||||
_ACPI_CN, /* 0x18 24. */
|
||||
_ACPI_CN, /* 0x19 25. */
|
||||
_ACPI_CN, /* 0x1A 26. */
|
||||
_ACPI_CN, /* 0x1B 27. */
|
||||
_ACPI_CN, /* 0x1C 28. */
|
||||
_ACPI_CN, /* 0x1D 29. */
|
||||
_ACPI_CN, /* 0x1E 30. */
|
||||
_ACPI_CN, /* 0x1F 31. */
|
||||
_ACPI_XS|_ACPI_SP, /* 0x20 32. ' ' */
|
||||
_ACPI_PU, /* 0x21 33. '!' */
|
||||
_ACPI_PU, /* 0x22 34. '"' */
|
||||
_ACPI_PU, /* 0x23 35. '#' */
|
||||
_ACPI_PU, /* 0x24 36. '$' */
|
||||
_ACPI_PU, /* 0x25 37. '%' */
|
||||
_ACPI_PU, /* 0x26 38. '&' */
|
||||
_ACPI_PU, /* 0x27 39. ''' */
|
||||
_ACPI_PU, /* 0x28 40. '(' */
|
||||
_ACPI_PU, /* 0x29 41. ')' */
|
||||
_ACPI_PU, /* 0x2A 42. '*' */
|
||||
_ACPI_PU, /* 0x2B 43. '+' */
|
||||
_ACPI_PU, /* 0x2C 44. ',' */
|
||||
_ACPI_PU, /* 0x2D 45. '-' */
|
||||
_ACPI_PU, /* 0x2E 46. '.' */
|
||||
_ACPI_PU, /* 0x2F 47. '/' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x30 48. '0' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x31 49. '1' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x32 50. '2' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x33 51. '3' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x34 52. '4' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x35 53. '5' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x36 54. '6' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x37 55. '7' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x38 56. '8' */
|
||||
_ACPI_XD|_ACPI_DI, /* 0x39 57. '9' */
|
||||
_ACPI_PU, /* 0x3A 58. ':' */
|
||||
_ACPI_PU, /* 0x3B 59. ';' */
|
||||
_ACPI_PU, /* 0x3C 60. '<' */
|
||||
_ACPI_PU, /* 0x3D 61. '=' */
|
||||
_ACPI_PU, /* 0x3E 62. '>' */
|
||||
_ACPI_PU, /* 0x3F 63. '?' */
|
||||
_ACPI_PU, /* 0x40 64. '@' */
|
||||
_ACPI_XD|_ACPI_UP, /* 0x41 65. 'A' */
|
||||
_ACPI_XD|_ACPI_UP, /* 0x42 66. 'B' */
|
||||
_ACPI_XD|_ACPI_UP, /* 0x43 67. 'C' */
|
||||
_ACPI_XD|_ACPI_UP, /* 0x44 68. 'D' */
|
||||
_ACPI_XD|_ACPI_UP, /* 0x45 69. 'E' */
|
||||
_ACPI_XD|_ACPI_UP, /* 0x46 70. 'F' */
|
||||
_ACPI_UP, /* 0x47 71. 'G' */
|
||||
_ACPI_UP, /* 0x48 72. 'H' */
|
||||
_ACPI_UP, /* 0x49 73. 'I' */
|
||||
_ACPI_UP, /* 0x4A 74. 'J' */
|
||||
_ACPI_UP, /* 0x4B 75. 'K' */
|
||||
_ACPI_UP, /* 0x4C 76. 'L' */
|
||||
_ACPI_UP, /* 0x4D 77. 'M' */
|
||||
_ACPI_UP, /* 0x4E 78. 'N' */
|
||||
_ACPI_UP, /* 0x4F 79. 'O' */
|
||||
_ACPI_UP, /* 0x50 80. 'P' */
|
||||
_ACPI_UP, /* 0x51 81. 'Q' */
|
||||
_ACPI_UP, /* 0x52 82. 'R' */
|
||||
_ACPI_UP, /* 0x53 83. 'S' */
|
||||
_ACPI_UP, /* 0x54 84. 'T' */
|
||||
_ACPI_UP, /* 0x55 85. 'U' */
|
||||
_ACPI_UP, /* 0x56 86. 'V' */
|
||||
_ACPI_UP, /* 0x57 87. 'W' */
|
||||
_ACPI_UP, /* 0x58 88. 'X' */
|
||||
_ACPI_UP, /* 0x59 89. 'Y' */
|
||||
_ACPI_UP, /* 0x5A 90. 'Z' */
|
||||
_ACPI_PU, /* 0x5B 91. '[' */
|
||||
_ACPI_PU, /* 0x5C 92. '\' */
|
||||
_ACPI_PU, /* 0x5D 93. ']' */
|
||||
_ACPI_PU, /* 0x5E 94. '^' */
|
||||
_ACPI_PU, /* 0x5F 95. '_' */
|
||||
_ACPI_PU, /* 0x60 96. '`' */
|
||||
_ACPI_XD|_ACPI_LO, /* 0x61 97. 'a' */
|
||||
_ACPI_XD|_ACPI_LO, /* 0x62 98. 'b' */
|
||||
_ACPI_XD|_ACPI_LO, /* 0x63 99. 'c' */
|
||||
_ACPI_XD|_ACPI_LO, /* 0x64 100. 'd' */
|
||||
_ACPI_XD|_ACPI_LO, /* 0x65 101. 'e' */
|
||||
_ACPI_XD|_ACPI_LO, /* 0x66 102. 'f' */
|
||||
_ACPI_LO, /* 0x67 103. 'g' */
|
||||
_ACPI_LO, /* 0x68 104. 'h' */
|
||||
_ACPI_LO, /* 0x69 105. 'i' */
|
||||
_ACPI_LO, /* 0x6A 106. 'j' */
|
||||
_ACPI_LO, /* 0x6B 107. 'k' */
|
||||
_ACPI_LO, /* 0x6C 108. 'l' */
|
||||
_ACPI_LO, /* 0x6D 109. 'm' */
|
||||
_ACPI_LO, /* 0x6E 110. 'n' */
|
||||
_ACPI_LO, /* 0x6F 111. 'o' */
|
||||
_ACPI_LO, /* 0x70 112. 'p' */
|
||||
_ACPI_LO, /* 0x71 113. 'q' */
|
||||
_ACPI_LO, /* 0x72 114. 'r' */
|
||||
_ACPI_LO, /* 0x73 115. 's' */
|
||||
_ACPI_LO, /* 0x74 116. 't' */
|
||||
_ACPI_LO, /* 0x75 117. 'u' */
|
||||
_ACPI_LO, /* 0x76 118. 'v' */
|
||||
_ACPI_LO, /* 0x77 119. 'w' */
|
||||
_ACPI_LO, /* 0x78 120. 'x' */
|
||||
_ACPI_LO, /* 0x79 121. 'y' */
|
||||
_ACPI_LO, /* 0x7A 122. 'z' */
|
||||
_ACPI_PU, /* 0x7B 123. '{' */
|
||||
_ACPI_PU, /* 0x7C 124. '|' */
|
||||
_ACPI_PU, /* 0x7D 125. '}' */
|
||||
_ACPI_PU, /* 0x7E 126. '~' */
|
||||
_ACPI_CN, /* 0x7F 127. */
|
||||
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x80 to 0x8F */
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x90 to 0x9F */
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xA0 to 0xAF */
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xB0 to 0xBF */
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xC0 to 0xCF */
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xD0 to 0xDF */
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xE0 to 0xEF */
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* 0xF0 to 0x100 */
|
||||
};
|
||||
|
||||
|
||||
#endif /* ACPI_USE_SYSTEM_CLIBRARY */
|
||||
|
Loading…
Reference in New Issue
Block a user