/drivers/devman/acpica/include/acapps.h |
---|
0,0 → 1,248 |
/****************************************************************************** |
* |
* Module Name: acapps - common include for ACPI applications/tools |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 _ACAPPS |
#define _ACAPPS |
#ifdef _MSC_VER /* disable some level-4 warnings */ |
#pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */ |
#endif |
#define FILE_SUFFIX_DISASSEMBLY "dsl" |
#define ACPI_TABLE_FILE_SUFFIX ".dat" |
/* |
* getopt |
*/ |
int |
AcpiGetopt( |
int argc, |
char **argv, |
char *opts); |
extern int AcpiGbl_Optind; |
extern int AcpiGbl_Opterr; |
extern char *AcpiGbl_Optarg; |
/* |
* adisasm |
*/ |
ACPI_STATUS |
AdAmlDisassemble ( |
BOOLEAN OutToFile, |
char *Filename, |
char *Prefix, |
char **OutFilename, |
BOOLEAN GetAllTables); |
void |
AdPrintStatistics ( |
void); |
ACPI_STATUS |
AdFindDsdt( |
UINT8 **DsdtPtr, |
UINT32 *DsdtLength); |
void |
AdDumpTables ( |
void); |
ACPI_STATUS |
AdGetLocalTables ( |
char *Filename, |
BOOLEAN GetAllTables); |
ACPI_STATUS |
AdParseTable ( |
ACPI_TABLE_HEADER *Table, |
ACPI_OWNER_ID *OwnerId, |
BOOLEAN LoadTable, |
BOOLEAN External); |
ACPI_STATUS |
AdDisplayTables ( |
char *Filename, |
ACPI_TABLE_HEADER *Table); |
ACPI_STATUS |
AdDisplayStatistics ( |
void); |
/* |
* adwalk |
*/ |
void |
AcpiDmCrossReferenceNamespace ( |
ACPI_PARSE_OBJECT *ParseTreeRoot, |
ACPI_NAMESPACE_NODE *NamespaceRoot, |
ACPI_OWNER_ID OwnerId); |
void |
AcpiDmDumpTree ( |
ACPI_PARSE_OBJECT *Origin); |
void |
AcpiDmFindOrphanMethods ( |
ACPI_PARSE_OBJECT *Origin); |
void |
AcpiDmFinishNamespaceLoad ( |
ACPI_PARSE_OBJECT *ParseTreeRoot, |
ACPI_NAMESPACE_NODE *NamespaceRoot, |
ACPI_OWNER_ID OwnerId); |
void |
AcpiDmConvertResourceIndexes ( |
ACPI_PARSE_OBJECT *ParseTreeRoot, |
ACPI_NAMESPACE_NODE *NamespaceRoot); |
/* |
* adfile |
*/ |
ACPI_STATUS |
AdInitialize ( |
void); |
char * |
FlGenerateFilename ( |
char *InputFilename, |
char *Suffix); |
ACPI_STATUS |
FlSplitInputPathname ( |
char *InputPath, |
char **OutDirectoryPath, |
char **OutFilename); |
char * |
AdGenerateFilename ( |
char *Prefix, |
char *TableId); |
void |
AdWriteTable ( |
ACPI_TABLE_HEADER *Table, |
UINT32 Length, |
char *TableName, |
char *OemTableId); |
#endif /* _ACAPPS */ |
/drivers/devman/acpica/include/accommon.h |
---|
0,0 → 1,136 |
/****************************************************************************** |
* |
* Name: accommon.h - Common include files for generation of ACPICA source |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACCOMMON_H__ |
#define __ACCOMMON_H__ |
/* |
* Common set of includes for all ACPICA source files. |
* We put them here because we don't want to duplicate them |
* in the the source code again and again. |
* |
* Note: The order of these include files is important. |
*/ |
#include "acconfig.h" /* Global configuration constants */ |
#include "acmacros.h" /* C macros */ |
#include "aclocal.h" /* Internal data types */ |
#include "acobject.h" /* ACPI internal object */ |
#include "acstruct.h" /* Common structures */ |
#include "acglobal.h" /* All global variables */ |
#include "achware.h" /* Hardware defines and interfaces */ |
#include "acutils.h" /* Utility interfaces */ |
#endif /* __ACCOMMON_H__ */ |
/drivers/devman/acpica/include/acconfig.h |
---|
0,0 → 1,283 |
/****************************************************************************** |
* |
* Name: acconfig.h - Global configuration constants |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 _ACCONFIG_H |
#define _ACCONFIG_H |
/****************************************************************************** |
* |
* Configuration options |
* |
*****************************************************************************/ |
/* |
* ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the |
* ACPI subsystem. This includes the DEBUG_PRINT output |
* statements. When disabled, all DEBUG_PRINT |
* statements are compiled out. |
* |
* ACPI_APPLICATION - Use this switch if the subsystem is going to be run |
* at the application level. |
* |
*/ |
/* |
* OS name, used for the _OS object. The _OS object is essentially obsolete, |
* but there is a large base of ASL/AML code in existing machines that check |
* for the string below. The use of this string usually guarantees that |
* the ASL will execute down the most tested code path. Also, there is some |
* code that will not execute the _OSI method unless _OS matches the string |
* below. Therefore, change this string at your own risk. |
*/ |
#define ACPI_OS_NAME "Microsoft Windows NT" |
/* Maximum objects in the various object caches */ |
#define ACPI_MAX_STATE_CACHE_DEPTH 96 /* State objects */ |
#define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */ |
#define ACPI_MAX_EXTPARSE_CACHE_DEPTH 96 /* Parse tree objects */ |
#define ACPI_MAX_OBJECT_CACHE_DEPTH 96 /* Interpreter operand objects */ |
#define ACPI_MAX_NAMESPACE_CACHE_DEPTH 96 /* Namespace objects */ |
/* |
* Should the subsystem abort the loading of an ACPI table if the |
* table checksum is incorrect? |
*/ |
#define ACPI_CHECKSUM_ABORT FALSE |
/****************************************************************************** |
* |
* Subsystem Constants |
* |
*****************************************************************************/ |
/* Version of ACPI supported */ |
#define ACPI_CA_SUPPORT_LEVEL 3 |
/* Maximum count for a semaphore object */ |
#define ACPI_MAX_SEMAPHORE_COUNT 256 |
/* Maximum object reference count (detects object deletion issues) */ |
#define ACPI_MAX_REFERENCE_COUNT 0x800 |
/* Default page size for use in mapping memory for operation regions */ |
#define ACPI_DEFAULT_PAGE_SIZE 4096 /* Must be power of 2 */ |
/* OwnerId tracking. 8 entries allows for 255 OwnerIds */ |
#define ACPI_NUM_OWNERID_MASKS 8 |
/* Size of the root table array is increased by this increment */ |
#define ACPI_ROOT_TABLE_SIZE_INCREMENT 4 |
/* Maximum number of While() loop iterations before forced abort */ |
#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF |
/* Maximum sleep allowed via Sleep() operator */ |
#define ACPI_MAX_SLEEP 20000 /* Two seconds */ |
/****************************************************************************** |
* |
* ACPI Specification constants (Do not change unless the specification changes) |
* |
*****************************************************************************/ |
/* Method info (in WALK_STATE), containing local variables and argumetns */ |
#define ACPI_METHOD_NUM_LOCALS 8 |
#define ACPI_METHOD_MAX_LOCAL 7 |
#define ACPI_METHOD_NUM_ARGS 7 |
#define ACPI_METHOD_MAX_ARG 6 |
/* |
* Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG |
*/ |
#define ACPI_OBJ_NUM_OPERANDS 8 |
#define ACPI_OBJ_MAX_OPERAND 7 |
/* Number of elements in the Result Stack frame, can be an arbitrary value */ |
#define ACPI_RESULTS_FRAME_OBJ_NUM 8 |
/* |
* Maximal number of elements the Result Stack can contain, |
* it may be an arbitray value not exceeding the types of |
* ResultSize and ResultCount (now UINT8). |
*/ |
#define ACPI_RESULTS_OBJ_NUM_MAX 255 |
/* Constants used in searching for the RSDP in low memory */ |
#define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */ |
#define ACPI_EBDA_PTR_LENGTH 2 |
#define ACPI_EBDA_WINDOW_SIZE 1024 |
#define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */ |
#define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000 |
#define ACPI_RSDP_SCAN_STEP 16 |
/* Operation regions */ |
#define ACPI_NUM_PREDEFINED_REGIONS 9 |
#define ACPI_USER_REGION_BEGIN 0x80 |
/* Maximum SpaceIds for Operation Regions */ |
#define ACPI_MAX_ADDRESS_SPACE 255 |
/* Array sizes. Used for range checking also */ |
#define ACPI_MAX_MATCH_OPCODE 5 |
/* RSDP checksums */ |
#define ACPI_RSDP_CHECKSUM_LENGTH 20 |
#define ACPI_RSDP_XCHECKSUM_LENGTH 36 |
/* SMBus and IPMI bidirectional buffer size */ |
#define ACPI_SMBUS_BUFFER_SIZE 34 |
#define ACPI_IPMI_BUFFER_SIZE 66 |
/* _SxD and _SxW control methods */ |
#define ACPI_NUM_SxD_METHODS 4 |
#define ACPI_NUM_SxW_METHODS 5 |
/****************************************************************************** |
* |
* ACPI AML Debugger |
* |
*****************************************************************************/ |
#define ACPI_DEBUGGER_MAX_ARGS 8 /* Must be max method args + 1 */ |
#define ACPI_DEBUGGER_COMMAND_PROMPT '-' |
#define ACPI_DEBUGGER_EXECUTE_PROMPT '%' |
#endif /* _ACCONFIG_H */ |
/drivers/devman/acpica/include/acdebug.h |
---|
0,0 → 1,449 |
/****************************************************************************** |
* |
* Name: acdebug.h - ACPI/AML debugger |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACDEBUG_H__ |
#define __ACDEBUG_H__ |
#define ACPI_DEBUG_BUFFER_SIZE 4196 |
typedef struct CommandInfo |
{ |
char *Name; /* Command Name */ |
UINT8 MinArgs; /* Minimum arguments required */ |
} COMMAND_INFO; |
typedef struct ArgumentInfo |
{ |
char *Name; /* Argument Name */ |
} ARGUMENT_INFO; |
typedef struct acpi_execute_walk |
{ |
UINT32 Count; |
UINT32 MaxCount; |
} ACPI_EXECUTE_WALK; |
#define PARAM_LIST(pl) pl |
#define DBTEST_OUTPUT_LEVEL(lvl) if (AcpiGbl_DbOpt_verbose) |
#define VERBOSE_PRINT(fp) DBTEST_OUTPUT_LEVEL(lvl) {\ |
AcpiOsPrintf PARAM_LIST(fp);} |
#define EX_NO_SINGLE_STEP 1 |
#define EX_SINGLE_STEP 2 |
/* |
* dbxface - external debugger interfaces |
*/ |
ACPI_STATUS |
AcpiDbInitialize ( |
void); |
void |
AcpiDbTerminate ( |
void); |
ACPI_STATUS |
AcpiDbSingleStep ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op, |
UINT32 OpType); |
/* |
* dbcmds - debug commands and output routines |
*/ |
ACPI_STATUS |
AcpiDbDisassembleMethod ( |
char *Name); |
void |
AcpiDbDisplayTableInfo ( |
char *TableArg); |
void |
AcpiDbUnloadAcpiTable ( |
char *TableArg, |
char *InstanceArg); |
void |
AcpiDbSetMethodBreakpoint ( |
char *Location, |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDbSetMethodCallBreakpoint ( |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDbGetBusInfo ( |
void); |
void |
AcpiDbDisassembleAml ( |
char *Statements, |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDbDumpNamespace ( |
char *StartArg, |
char *DepthArg); |
void |
AcpiDbDumpNamespaceByOwner ( |
char *OwnerArg, |
char *DepthArg); |
void |
AcpiDbSendNotify ( |
char *Name, |
UINT32 Value); |
void |
AcpiDbSetMethodData ( |
char *TypeArg, |
char *IndexArg, |
char *ValueArg); |
ACPI_STATUS |
AcpiDbDisplayObjects ( |
char *ObjTypeArg, |
char *DisplayCountArg); |
ACPI_STATUS |
AcpiDbFindNameInNamespace ( |
char *NameArg); |
void |
AcpiDbSetScope ( |
char *Name); |
ACPI_STATUS |
AcpiDbSleep ( |
char *ObjectArg); |
void |
AcpiDbFindReferences ( |
char *ObjectArg); |
void |
AcpiDbDisplayLocks ( |
void); |
void |
AcpiDbDisplayResources ( |
char *ObjectArg); |
void |
AcpiDbDisplayGpes ( |
void); |
void |
AcpiDbCheckIntegrity ( |
void); |
void |
AcpiDbGenerateGpe ( |
char *GpeArg, |
char *BlockArg); |
void |
AcpiDbCheckPredefinedNames ( |
void); |
void |
AcpiDbBatchExecute ( |
char *CountArg); |
/* |
* dbdisply - debug display commands |
*/ |
void |
AcpiDbDisplayMethodInfo ( |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDbDecodeAndDisplayObject ( |
char *Target, |
char *OutputType); |
void |
AcpiDbDisplayResultObject ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDbDisplayAllMethods ( |
char *DisplayCountArg); |
void |
AcpiDbDisplayArguments ( |
void); |
void |
AcpiDbDisplayLocals ( |
void); |
void |
AcpiDbDisplayResults ( |
void); |
void |
AcpiDbDisplayCallingTree ( |
void); |
void |
AcpiDbDisplayObjectType ( |
char *ObjectArg); |
void |
AcpiDbDisplayArgumentObject ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_WALK_STATE *WalkState); |
/* |
* dbexec - debugger control method execution |
*/ |
void |
AcpiDbExecute ( |
char *Name, |
char **Args, |
UINT32 Flags); |
void |
AcpiDbCreateExecutionThreads ( |
char *NumThreadsArg, |
char *NumLoopsArg, |
char *MethodNameArg); |
#ifdef ACPI_DBG_TRACK_ALLOCATIONS |
UINT32 |
AcpiDbGetCacheInfo ( |
ACPI_MEMORY_LIST *Cache); |
#endif |
/* |
* dbfileio - Debugger file I/O commands |
*/ |
ACPI_OBJECT_TYPE |
AcpiDbMatchArgument ( |
char *UserArgument, |
ARGUMENT_INFO *Arguments); |
void |
AcpiDbCloseDebugFile ( |
void); |
void |
AcpiDbOpenDebugFile ( |
char *Name); |
ACPI_STATUS |
AcpiDbLoadAcpiTable ( |
char *Filename); |
ACPI_STATUS |
AcpiDbGetTableFromFile ( |
char *Filename, |
ACPI_TABLE_HEADER **Table); |
ACPI_STATUS |
AcpiDbReadTableFromFile ( |
char *Filename, |
ACPI_TABLE_HEADER **Table); |
/* |
* dbhistry - debugger HISTORY command |
*/ |
void |
AcpiDbAddToHistory ( |
char *CommandLine); |
void |
AcpiDbDisplayHistory ( |
void); |
char * |
AcpiDbGetFromHistory ( |
char *CommandNumArg); |
/* |
* dbinput - user front-end to the AML debugger |
*/ |
ACPI_STATUS |
AcpiDbCommandDispatch ( |
char *InputBuffer, |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
void ACPI_SYSTEM_XFACE |
AcpiDbExecuteThread ( |
void *Context); |
ACPI_STATUS |
AcpiDbUserCommands ( |
char Prompt, |
ACPI_PARSE_OBJECT *Op); |
/* |
* dbstats - Generation and display of ACPI table statistics |
*/ |
void |
AcpiDbGenerateStatistics ( |
ACPI_PARSE_OBJECT *Root, |
BOOLEAN IsMethod); |
ACPI_STATUS |
AcpiDbDisplayStatistics ( |
char *TypeArg); |
/* |
* dbutils - AML debugger utilities |
*/ |
void |
AcpiDbSetOutputDestination ( |
UINT32 Where); |
void |
AcpiDbDumpExternalObject ( |
ACPI_OBJECT *ObjDesc, |
UINT32 Level); |
void |
AcpiDbPrepNamestring ( |
char *Name); |
ACPI_NAMESPACE_NODE * |
AcpiDbLocalNsLookup ( |
char *Name); |
void |
AcpiDbUInt32ToHexString ( |
UINT32 Value, |
char *Buffer); |
#endif /* __ACDEBUG_H__ */ |
/drivers/devman/acpica/include/acdisasm.h |
---|
0,0 → 1,787 |
/****************************************************************************** |
* |
* Name: acdisasm.h - AML disassembler |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACDISASM_H__ |
#define __ACDISASM_H__ |
#include "amlresrc.h" |
#define BLOCK_NONE 0 |
#define BLOCK_PAREN 1 |
#define BLOCK_BRACE 2 |
#define BLOCK_COMMA_LIST 4 |
#define ACPI_DEFAULT_RESNAME *(UINT32 *) "__RD" |
typedef const struct acpi_dmtable_info |
{ |
UINT8 Opcode; |
UINT8 Offset; |
char *Name; |
UINT8 Flags; |
} ACPI_DMTABLE_INFO; |
#define DT_LENGTH 0x01 /* Field is a subtable length */ |
#define DT_FLAG 0x02 /* Field is a flag value */ |
#define DT_NON_ZERO 0x04 /* Field must be non-zero */ |
/* TBD: Not used at this time */ |
#define DT_OPTIONAL 0x08 |
#define DT_COUNT 0x10 |
/* |
* Values for Opcode above. |
* Note: 0-7 must not change, used as a flag shift value |
*/ |
#define ACPI_DMT_FLAG0 0 |
#define ACPI_DMT_FLAG1 1 |
#define ACPI_DMT_FLAG2 2 |
#define ACPI_DMT_FLAG3 3 |
#define ACPI_DMT_FLAG4 4 |
#define ACPI_DMT_FLAG5 5 |
#define ACPI_DMT_FLAG6 6 |
#define ACPI_DMT_FLAG7 7 |
#define ACPI_DMT_FLAGS0 8 |
#define ACPI_DMT_FLAGS2 9 |
#define ACPI_DMT_UINT8 10 |
#define ACPI_DMT_UINT16 11 |
#define ACPI_DMT_UINT24 12 |
#define ACPI_DMT_UINT32 13 |
#define ACPI_DMT_UINT56 14 |
#define ACPI_DMT_UINT64 15 |
#define ACPI_DMT_STRING 16 |
#define ACPI_DMT_NAME4 17 |
#define ACPI_DMT_NAME6 18 |
#define ACPI_DMT_NAME8 19 |
#define ACPI_DMT_CHKSUM 20 |
#define ACPI_DMT_SPACEID 21 |
#define ACPI_DMT_GAS 22 |
#define ACPI_DMT_ASF 23 |
#define ACPI_DMT_DMAR 24 |
#define ACPI_DMT_HEST 25 |
#define ACPI_DMT_HESTNTFY 26 |
#define ACPI_DMT_HESTNTYP 27 |
#define ACPI_DMT_MADT 28 |
#define ACPI_DMT_SRAT 29 |
#define ACPI_DMT_EXIT 30 |
#define ACPI_DMT_SIG 31 |
#define ACPI_DMT_FADTPM 32 |
#define ACPI_DMT_BUF16 33 |
#define ACPI_DMT_IVRS 34 |
#define ACPI_DMT_BUFFER 35 |
#define ACPI_DMT_PCI_PATH 36 |
typedef |
void (*ACPI_DMTABLE_HANDLER) ( |
ACPI_TABLE_HEADER *Table); |
typedef |
ACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( |
void **PFieldList); |
typedef struct acpi_dmtable_data |
{ |
char *Signature; |
ACPI_DMTABLE_INFO *TableInfo; |
ACPI_DMTABLE_HANDLER TableHandler; |
ACPI_CMTABLE_HANDLER CmTableHandler; |
char *Name; |
} ACPI_DMTABLE_DATA; |
typedef struct acpi_op_walk_info |
{ |
UINT32 Level; |
UINT32 LastLevel; |
UINT32 Count; |
UINT32 BitOffset; |
UINT32 Flags; |
ACPI_WALK_STATE *WalkState; |
} ACPI_OP_WALK_INFO; |
/* |
* TBD - another copy of this is in asltypes.h, fix |
*/ |
#ifndef ASL_WALK_CALLBACK_DEFINED |
typedef |
ACPI_STATUS (*ASL_WALK_CALLBACK) ( |
ACPI_PARSE_OBJECT *Op, |
UINT32 Level, |
void *Context); |
#define ASL_WALK_CALLBACK_DEFINED |
#endif |
typedef struct acpi_resource_tag |
{ |
UINT32 BitIndex; |
char *Tag; |
} ACPI_RESOURCE_TAG; |
/* Strings used for decoding flags to ASL keywords */ |
extern const char *AcpiGbl_WordDecode[]; |
extern const char *AcpiGbl_IrqDecode[]; |
extern const char *AcpiGbl_LockRule[]; |
extern const char *AcpiGbl_AccessTypes[]; |
extern const char *AcpiGbl_UpdateRules[]; |
extern const char *AcpiGbl_MatchOps[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; |
extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; |
/* |
* dmtable |
*/ |
ACPI_DMTABLE_DATA * |
AcpiDmGetTableData ( |
char *Signature); |
void |
AcpiDmDumpDataTable ( |
ACPI_TABLE_HEADER *Table); |
ACPI_STATUS |
AcpiDmDumpTable ( |
UINT32 TableLength, |
UINT32 TableOffset, |
void *Table, |
UINT32 SubTableLength, |
ACPI_DMTABLE_INFO *Info); |
void |
AcpiDmLineHeader ( |
UINT32 Offset, |
UINT32 ByteLength, |
char *Name); |
void |
AcpiDmLineHeader2 ( |
UINT32 Offset, |
UINT32 ByteLength, |
char *Name, |
UINT32 Value); |
/* |
* dmtbdump |
*/ |
void |
AcpiDmDumpAsf ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpCpep ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpDmar ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpEinj ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpErst ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpFadt ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpHest ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpIvrs ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpMcfg ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpMadt ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpMsct ( |
ACPI_TABLE_HEADER *Table); |
UINT32 |
AcpiDmDumpRsdp ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpRsdt ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpSlit ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpSrat ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpWdat ( |
ACPI_TABLE_HEADER *Table); |
void |
AcpiDmDumpXsdt ( |
ACPI_TABLE_HEADER *Table); |
/* |
* dmwalk |
*/ |
void |
AcpiDmDisassemble ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Origin, |
UINT32 NumOpcodes); |
void |
AcpiDmWalkParseTree ( |
ACPI_PARSE_OBJECT *Op, |
ASL_WALK_CALLBACK DescendingCallback, |
ASL_WALK_CALLBACK AscendingCallback, |
void *Context); |
/* |
* dmopcode |
*/ |
void |
AcpiDmDisassembleOneOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_OP_WALK_INFO *Info, |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmDecodeInternalObject ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
UINT32 |
AcpiDmListType ( |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmMethodFlags ( |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmFieldFlags ( |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmAddressSpace ( |
UINT8 SpaceId); |
void |
AcpiDmRegionFlags ( |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmMatchOp ( |
ACPI_PARSE_OBJECT *Op); |
/* |
* dmnames |
*/ |
UINT32 |
AcpiDmDumpName ( |
UINT32 Name); |
ACPI_STATUS |
AcpiPsDisplayObjectPathname ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmNamestring ( |
char *Name); |
/* |
* dmobject |
*/ |
void |
AcpiDmDisplayInternalObject ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_WALK_STATE *WalkState); |
void |
AcpiDmDisplayArguments ( |
ACPI_WALK_STATE *WalkState); |
void |
AcpiDmDisplayLocals ( |
ACPI_WALK_STATE *WalkState); |
void |
AcpiDmDumpMethodInfo ( |
ACPI_STATUS Status, |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
/* |
* dmbuffer |
*/ |
void |
AcpiDmDisasmByteList ( |
UINT32 Level, |
UINT8 *ByteData, |
UINT32 ByteCount); |
void |
AcpiDmByteList ( |
ACPI_OP_WALK_INFO *Info, |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmIsEisaId ( |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmEisaId ( |
UINT32 EncodedId); |
BOOLEAN |
AcpiDmIsUnicodeBuffer ( |
ACPI_PARSE_OBJECT *Op); |
BOOLEAN |
AcpiDmIsStringBuffer ( |
ACPI_PARSE_OBJECT *Op); |
/* |
* dmextern |
*/ |
void |
AcpiDmAddToExternalList ( |
ACPI_PARSE_OBJECT *Op, |
char *Path, |
UINT8 Type, |
UINT32 Value); |
void |
AcpiDmAddExternalsToNamespace ( |
void); |
UINT32 |
AcpiDmGetExternalMethodCount ( |
void); |
void |
AcpiDmClearExternalList ( |
void); |
void |
AcpiDmEmitExternals ( |
void); |
/* |
* dmresrc |
*/ |
void |
AcpiDmDumpInteger8 ( |
UINT8 Value, |
char *Name); |
void |
AcpiDmDumpInteger16 ( |
UINT16 Value, |
char *Name); |
void |
AcpiDmDumpInteger32 ( |
UINT32 Value, |
char *Name); |
void |
AcpiDmDumpInteger64 ( |
UINT64 Value, |
char *Name); |
void |
AcpiDmResourceTemplate ( |
ACPI_OP_WALK_INFO *Info, |
ACPI_PARSE_OBJECT *Op, |
UINT8 *ByteData, |
UINT32 ByteCount); |
ACPI_STATUS |
AcpiDmIsResourceTemplate ( |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmBitList ( |
UINT16 Mask); |
void |
AcpiDmDescriptorName ( |
void); |
/* |
* dmresrcl |
*/ |
void |
AcpiDmWordDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmDwordDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmExtendedDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmQwordDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmMemory24Descriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmMemory32Descriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmFixedMemory32Descriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmGenericRegisterDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmInterruptDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmVendorLargeDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmVendorCommon ( |
char *Name, |
UINT8 *ByteData, |
UINT32 Length, |
UINT32 Level); |
/* |
* dmresrcs |
*/ |
void |
AcpiDmIrqDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmDmaDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmIoDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmFixedIoDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmStartDependentDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmEndDependentDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
void |
AcpiDmVendorSmallDescriptor ( |
AML_RESOURCE *Resource, |
UINT32 Length, |
UINT32 Level); |
/* |
* dmutils |
*/ |
void |
AcpiDmDecodeAttribute ( |
UINT8 Attribute); |
void |
AcpiDmIndent ( |
UINT32 Level); |
BOOLEAN |
AcpiDmCommaIfListMember ( |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiDmCommaIfFieldMember ( |
ACPI_PARSE_OBJECT *Op); |
/* |
* dmrestag |
*/ |
void |
AcpiDmFindResources ( |
ACPI_PARSE_OBJECT *Root); |
void |
AcpiDmCheckResourceReference ( |
ACPI_PARSE_OBJECT *Op, |
ACPI_WALK_STATE *WalkState); |
#endif /* __ACDISASM_H__ */ |
/drivers/devman/acpica/include/acdispat.h |
---|
0,0 → 1,527 |
/****************************************************************************** |
* |
* Name: acdispat.h - dispatcher (parser to interpreter interface) |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 _ACDISPAT_H_ |
#define _ACDISPAT_H_ |
#define NAMEOF_LOCAL_NTE "__L0" |
#define NAMEOF_ARG_NTE "__A0" |
/* |
* dsopcode - support for late evaluation |
*/ |
ACPI_STATUS |
AcpiDsGetBufferFieldArguments ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiDsGetBankFieldArguments ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiDsGetRegionArguments ( |
ACPI_OPERAND_OBJECT *RgnDesc); |
ACPI_STATUS |
AcpiDsGetBufferArguments ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiDsGetPackageArguments ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiDsEvalBufferFieldOperands ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
ACPI_STATUS |
AcpiDsEvalRegionOperands ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
ACPI_STATUS |
AcpiDsEvalTableRegionOperands ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
ACPI_STATUS |
AcpiDsEvalDataObjectOperands ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op, |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiDsEvalBankFieldOperands ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
ACPI_STATUS |
AcpiDsInitializeRegion ( |
ACPI_HANDLE ObjHandle); |
/* |
* dsctrl - Parser/Interpreter interface, control stack routines |
*/ |
ACPI_STATUS |
AcpiDsExecBeginControlOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
ACPI_STATUS |
AcpiDsExecEndControlOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
/* |
* dsexec - Parser/Interpreter interface, method execution callbacks |
*/ |
ACPI_STATUS |
AcpiDsGetPredicateValue ( |
ACPI_WALK_STATE *WalkState, |
ACPI_OPERAND_OBJECT *ResultObj); |
ACPI_STATUS |
AcpiDsExecBeginOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT **OutOp); |
ACPI_STATUS |
AcpiDsExecEndOp ( |
ACPI_WALK_STATE *State); |
/* |
* dsfield - Parser/Interpreter interface for AML fields |
*/ |
ACPI_STATUS |
AcpiDsCreateField ( |
ACPI_PARSE_OBJECT *Op, |
ACPI_NAMESPACE_NODE *RegionNode, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsCreateBankField ( |
ACPI_PARSE_OBJECT *Op, |
ACPI_NAMESPACE_NODE *RegionNode, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsCreateIndexField ( |
ACPI_PARSE_OBJECT *Op, |
ACPI_NAMESPACE_NODE *RegionNode, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsCreateBufferField ( |
ACPI_PARSE_OBJECT *Op, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsInitFieldObjects ( |
ACPI_PARSE_OBJECT *Op, |
ACPI_WALK_STATE *WalkState); |
/* |
* dsload - Parser/Interpreter interface, namespace load callbacks |
*/ |
ACPI_STATUS |
AcpiDsLoad1BeginOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT **OutOp); |
ACPI_STATUS |
AcpiDsLoad1EndOp ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsLoad2BeginOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT **OutOp); |
ACPI_STATUS |
AcpiDsLoad2EndOp ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsInitCallbacks ( |
ACPI_WALK_STATE *WalkState, |
UINT32 PassNumber); |
/* |
* dsmthdat - method data (locals/args) |
*/ |
ACPI_STATUS |
AcpiDsStoreObjectToLocal ( |
UINT8 Type, |
UINT32 Index, |
ACPI_OPERAND_OBJECT *SrcDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsMethodDataGetEntry ( |
UINT16 Opcode, |
UINT32 Index, |
ACPI_WALK_STATE *WalkState, |
ACPI_OPERAND_OBJECT ***Node); |
void |
AcpiDsMethodDataDeleteAll ( |
ACPI_WALK_STATE *WalkState); |
BOOLEAN |
AcpiDsIsMethodValue ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiDsMethodDataGetValue ( |
UINT8 Type, |
UINT32 Index, |
ACPI_WALK_STATE *WalkState, |
ACPI_OPERAND_OBJECT **DestDesc); |
ACPI_STATUS |
AcpiDsMethodDataInitArgs ( |
ACPI_OPERAND_OBJECT **Params, |
UINT32 MaxParamCount, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsMethodDataGetNode ( |
UINT8 Type, |
UINT32 Index, |
ACPI_WALK_STATE *WalkState, |
ACPI_NAMESPACE_NODE **Node); |
void |
AcpiDsMethodDataInit ( |
ACPI_WALK_STATE *WalkState); |
/* |
* dsmethod - Parser/Interpreter interface - control method parsing |
*/ |
ACPI_STATUS |
AcpiDsParseMethod ( |
ACPI_NAMESPACE_NODE *Node); |
ACPI_STATUS |
AcpiDsCallControlMethod ( |
ACPI_THREAD_STATE *Thread, |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
ACPI_STATUS |
AcpiDsRestartControlMethod ( |
ACPI_WALK_STATE *WalkState, |
ACPI_OPERAND_OBJECT *ReturnDesc); |
void |
AcpiDsTerminateControlMethod ( |
ACPI_OPERAND_OBJECT *MethodDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsBeginMethodExecution ( |
ACPI_NAMESPACE_NODE *MethodNode, |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsMethodError ( |
ACPI_STATUS Status, |
ACPI_WALK_STATE *WalkState); |
/* |
* dsinit |
*/ |
ACPI_STATUS |
AcpiDsInitializeObjects ( |
UINT32 TableIndex, |
ACPI_NAMESPACE_NODE *StartNode); |
/* |
* dsobject - Parser/Interpreter interface - object initialization and conversion |
*/ |
ACPI_STATUS |
AcpiDsBuildInternalBufferObj ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op, |
UINT32 BufferLength, |
ACPI_OPERAND_OBJECT **ObjDescPtr); |
ACPI_STATUS |
AcpiDsBuildInternalPackageObj ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *op, |
UINT32 PackageLength, |
ACPI_OPERAND_OBJECT **ObjDesc); |
ACPI_STATUS |
AcpiDsInitObjectFromOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op, |
UINT16 Opcode, |
ACPI_OPERAND_OBJECT **ObjDesc); |
ACPI_STATUS |
AcpiDsCreateNode ( |
ACPI_WALK_STATE *WalkState, |
ACPI_NAMESPACE_NODE *Node, |
ACPI_PARSE_OBJECT *Op); |
/* |
* dsutils - Parser/Interpreter interface utility routines |
*/ |
void |
AcpiDsClearImplicitReturn ( |
ACPI_WALK_STATE *WalkState); |
BOOLEAN |
AcpiDsDoImplicitReturn ( |
ACPI_OPERAND_OBJECT *ReturnDesc, |
ACPI_WALK_STATE *WalkState, |
BOOLEAN AddReference); |
BOOLEAN |
AcpiDsIsResultUsed ( |
ACPI_PARSE_OBJECT *Op, |
ACPI_WALK_STATE *WalkState); |
void |
AcpiDsDeleteResultIfNotUsed ( |
ACPI_PARSE_OBJECT *Op, |
ACPI_OPERAND_OBJECT *ResultObj, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsCreateOperand ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Arg, |
UINT32 ArgsRemaining); |
ACPI_STATUS |
AcpiDsCreateOperands ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *FirstArg); |
ACPI_STATUS |
AcpiDsResolveOperands ( |
ACPI_WALK_STATE *WalkState); |
void |
AcpiDsClearOperands ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsEvaluateNamePath ( |
ACPI_WALK_STATE *WalkState); |
/* |
* dswscope - Scope Stack manipulation |
*/ |
ACPI_STATUS |
AcpiDsScopeStackPush ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_OBJECT_TYPE Type, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsScopeStackPop ( |
ACPI_WALK_STATE *WalkState); |
void |
AcpiDsScopeStackClear ( |
ACPI_WALK_STATE *WalkState); |
/* |
* dswstate - parser WALK_STATE management routines |
*/ |
ACPI_STATUS |
AcpiDsObjStackPush ( |
void *Object, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsObjStackPop ( |
UINT32 PopCount, |
ACPI_WALK_STATE *WalkState); |
ACPI_WALK_STATE * |
AcpiDsCreateWalkState ( |
ACPI_OWNER_ID OwnerId, |
ACPI_PARSE_OBJECT *Origin, |
ACPI_OPERAND_OBJECT *MthDesc, |
ACPI_THREAD_STATE *Thread); |
ACPI_STATUS |
AcpiDsInitAmlWalk ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op, |
ACPI_NAMESPACE_NODE *MethodNode, |
UINT8 *AmlStart, |
UINT32 AmlLength, |
ACPI_EVALUATE_INFO *Info, |
UINT8 PassNumber); |
void |
AcpiDsObjStackPopAndDelete ( |
UINT32 PopCount, |
ACPI_WALK_STATE *WalkState); |
void |
AcpiDsDeleteWalkState ( |
ACPI_WALK_STATE *WalkState); |
ACPI_WALK_STATE * |
AcpiDsPopWalkState ( |
ACPI_THREAD_STATE *Thread); |
void |
AcpiDsPushWalkState ( |
ACPI_WALK_STATE *WalkState, |
ACPI_THREAD_STATE *Thread); |
ACPI_STATUS |
AcpiDsResultStackClear ( |
ACPI_WALK_STATE *WalkState); |
ACPI_WALK_STATE * |
AcpiDsGetCurrentWalkState ( |
ACPI_THREAD_STATE *Thread); |
ACPI_STATUS |
AcpiDsResultPop ( |
ACPI_OPERAND_OBJECT **Object, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiDsResultPush ( |
ACPI_OPERAND_OBJECT *Object, |
ACPI_WALK_STATE *WalkState); |
#endif /* _ACDISPAT_H_ */ |
/drivers/devman/acpica/include/acevents.h |
---|
0,0 → 1,401 |
/****************************************************************************** |
* |
* Name: acevents.h - Event subcomponent prototypes and defines |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACEVENTS_H__ |
#define __ACEVENTS_H__ |
/* |
* evevent |
*/ |
ACPI_STATUS |
AcpiEvInitializeEvents ( |
void); |
ACPI_STATUS |
AcpiEvInstallXruptHandlers ( |
void); |
ACPI_STATUS |
AcpiEvInstallFadtGpes ( |
void); |
UINT32 |
AcpiEvFixedEventDetect ( |
void); |
/* |
* evmisc |
*/ |
BOOLEAN |
AcpiEvIsNotifyObject ( |
ACPI_NAMESPACE_NODE *Node); |
ACPI_STATUS |
AcpiEvAcquireGlobalLock( |
UINT16 Timeout); |
ACPI_STATUS |
AcpiEvReleaseGlobalLock( |
void); |
ACPI_STATUS |
AcpiEvInitGlobalLockHandler ( |
void); |
UINT32 |
AcpiEvGetGpeNumberIndex ( |
UINT32 GpeNumber); |
ACPI_STATUS |
AcpiEvQueueNotifyRequest ( |
ACPI_NAMESPACE_NODE *Node, |
UINT32 NotifyValue); |
/* |
* evgpe - Low-level GPE support |
*/ |
UINT32 |
AcpiEvGpeDetect ( |
ACPI_GPE_XRUPT_INFO *GpeXruptList); |
ACPI_STATUS |
AcpiEvUpdateGpeEnableMasks ( |
ACPI_GPE_EVENT_INFO *GpeEventInfo); |
ACPI_STATUS |
AcpiEvEnableGpe ( |
ACPI_GPE_EVENT_INFO *GpeEventInfo); |
ACPI_STATUS |
AcpiEvDisableGpe ( |
ACPI_GPE_EVENT_INFO *GpeEventInfo); |
ACPI_GPE_EVENT_INFO * |
AcpiEvGetGpeEventInfo ( |
ACPI_HANDLE GpeDevice, |
UINT32 GpeNumber); |
ACPI_GPE_EVENT_INFO * |
AcpiEvLowGetGpeInfo ( |
UINT32 GpeNumber, |
ACPI_GPE_BLOCK_INFO *GpeBlock); |
/* |
* evgpeblk - Upper-level GPE block support |
*/ |
ACPI_STATUS |
AcpiEvCreateGpeBlock ( |
ACPI_NAMESPACE_NODE *GpeDevice, |
ACPI_GENERIC_ADDRESS *GpeBlockAddress, |
UINT32 RegisterCount, |
UINT8 GpeBlockBaseNumber, |
UINT32 InterruptNumber, |
ACPI_GPE_BLOCK_INFO **ReturnGpeBlock); |
ACPI_STATUS |
AcpiEvInitializeGpeBlock ( |
ACPI_NAMESPACE_NODE *GpeDevice, |
ACPI_GPE_BLOCK_INFO *GpeBlock); |
ACPI_STATUS |
AcpiEvDeleteGpeBlock ( |
ACPI_GPE_BLOCK_INFO *GpeBlock); |
UINT32 |
AcpiEvGpeDispatch ( |
ACPI_GPE_EVENT_INFO *GpeEventInfo, |
UINT32 GpeNumber); |
/* |
* evgpeinit - GPE initialization and update |
*/ |
ACPI_STATUS |
AcpiEvGpeInitialize ( |
void); |
void |
AcpiEvUpdateGpes ( |
ACPI_OWNER_ID TableOwnerId); |
ACPI_STATUS |
AcpiEvMatchGpeMethod ( |
ACPI_HANDLE ObjHandle, |
UINT32 Level, |
void *Context, |
void **ReturnValue); |
ACPI_STATUS |
AcpiEvMatchPrwAndGpe ( |
ACPI_HANDLE ObjHandle, |
UINT32 Level, |
void *Context, |
void **ReturnValue); |
/* |
* evgpeutil - GPE utilities |
*/ |
ACPI_STATUS |
AcpiEvWalkGpeList ( |
ACPI_GPE_CALLBACK GpeWalkCallback, |
void *Context); |
BOOLEAN |
AcpiEvValidGpeEvent ( |
ACPI_GPE_EVENT_INFO *GpeEventInfo); |
ACPI_GPE_XRUPT_INFO * |
AcpiEvGetGpeXruptBlock ( |
UINT32 InterruptNumber); |
ACPI_STATUS |
AcpiEvDeleteGpeXrupt ( |
ACPI_GPE_XRUPT_INFO *GpeXrupt); |
ACPI_STATUS |
AcpiEvDeleteGpeHandlers ( |
ACPI_GPE_XRUPT_INFO *GpeXruptInfo, |
ACPI_GPE_BLOCK_INFO *GpeBlock, |
void *Context); |
/* |
* evregion - Address Space handling |
*/ |
ACPI_STATUS |
AcpiEvInstallRegionHandlers ( |
void); |
ACPI_STATUS |
AcpiEvInitializeOpRegions ( |
void); |
ACPI_STATUS |
AcpiEvAddressSpaceDispatch ( |
ACPI_OPERAND_OBJECT *RegionObj, |
UINT32 Function, |
UINT32 RegionOffset, |
UINT32 BitWidth, |
UINT64 *Value); |
ACPI_STATUS |
AcpiEvAttachRegion ( |
ACPI_OPERAND_OBJECT *HandlerObj, |
ACPI_OPERAND_OBJECT *RegionObj, |
BOOLEAN AcpiNsIsLocked); |
void |
AcpiEvDetachRegion ( |
ACPI_OPERAND_OBJECT *RegionObj, |
BOOLEAN AcpiNsIsLocked); |
ACPI_STATUS |
AcpiEvInstallSpaceHandler ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_ADR_SPACE_TYPE SpaceId, |
ACPI_ADR_SPACE_HANDLER Handler, |
ACPI_ADR_SPACE_SETUP Setup, |
void *Context); |
ACPI_STATUS |
AcpiEvExecuteRegMethods ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_ADR_SPACE_TYPE SpaceId); |
ACPI_STATUS |
AcpiEvExecuteRegMethod ( |
ACPI_OPERAND_OBJECT *RegionObj, |
UINT32 Function); |
/* |
* evregini - Region initialization and setup |
*/ |
ACPI_STATUS |
AcpiEvSystemMemoryRegionSetup ( |
ACPI_HANDLE Handle, |
UINT32 Function, |
void *HandlerContext, |
void **RegionContext); |
ACPI_STATUS |
AcpiEvIoSpaceRegionSetup ( |
ACPI_HANDLE Handle, |
UINT32 Function, |
void *HandlerContext, |
void **RegionContext); |
ACPI_STATUS |
AcpiEvPciConfigRegionSetup ( |
ACPI_HANDLE Handle, |
UINT32 Function, |
void *HandlerContext, |
void **RegionContext); |
ACPI_STATUS |
AcpiEvCmosRegionSetup ( |
ACPI_HANDLE Handle, |
UINT32 Function, |
void *HandlerContext, |
void **RegionContext); |
ACPI_STATUS |
AcpiEvPciBarRegionSetup ( |
ACPI_HANDLE Handle, |
UINT32 Function, |
void *HandlerContext, |
void **RegionContext); |
ACPI_STATUS |
AcpiEvDefaultRegionSetup ( |
ACPI_HANDLE Handle, |
UINT32 Function, |
void *HandlerContext, |
void **RegionContext); |
ACPI_STATUS |
AcpiEvInitializeRegion ( |
ACPI_OPERAND_OBJECT *RegionObj, |
BOOLEAN AcpiNsLocked); |
/* |
* evsci - SCI (System Control Interrupt) handling/dispatch |
*/ |
UINT32 ACPI_SYSTEM_XFACE |
AcpiEvGpeXruptHandler ( |
void *Context); |
UINT32 |
AcpiEvInstallSciHandler ( |
void); |
ACPI_STATUS |
AcpiEvRemoveSciHandler ( |
void); |
UINT32 |
AcpiEvInitializeSCI ( |
UINT32 ProgramSCI); |
void |
AcpiEvTerminate ( |
void); |
#endif /* __ACEVENTS_H__ */ |
/drivers/devman/acpica/include/acexcep.h |
---|
0,0 → 1,382 |
/****************************************************************************** |
* |
* Name: acexcep.h - Exception codes returned by the ACPI subsystem |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACEXCEP_H__ |
#define __ACEXCEP_H__ |
/* |
* Exceptions returned by external ACPI interfaces |
*/ |
#define AE_CODE_ENVIRONMENTAL 0x0000 |
#define AE_CODE_PROGRAMMER 0x1000 |
#define AE_CODE_ACPI_TABLES 0x2000 |
#define AE_CODE_AML 0x3000 |
#define AE_CODE_CONTROL 0x4000 |
#define AE_CODE_MASK 0xF000 |
#define ACPI_SUCCESS(a) (!(a)) |
#define ACPI_FAILURE(a) (a) |
#define AE_OK (ACPI_STATUS) 0x0000 |
/* |
* Environmental exceptions |
*/ |
#define AE_ERROR (ACPI_STATUS) (0x0001 | AE_CODE_ENVIRONMENTAL) |
#define AE_NO_ACPI_TABLES (ACPI_STATUS) (0x0002 | AE_CODE_ENVIRONMENTAL) |
#define AE_NO_NAMESPACE (ACPI_STATUS) (0x0003 | AE_CODE_ENVIRONMENTAL) |
#define AE_NO_MEMORY (ACPI_STATUS) (0x0004 | AE_CODE_ENVIRONMENTAL) |
#define AE_NOT_FOUND (ACPI_STATUS) (0x0005 | AE_CODE_ENVIRONMENTAL) |
#define AE_NOT_EXIST (ACPI_STATUS) (0x0006 | AE_CODE_ENVIRONMENTAL) |
#define AE_ALREADY_EXISTS (ACPI_STATUS) (0x0007 | AE_CODE_ENVIRONMENTAL) |
#define AE_TYPE (ACPI_STATUS) (0x0008 | AE_CODE_ENVIRONMENTAL) |
#define AE_NULL_OBJECT (ACPI_STATUS) (0x0009 | AE_CODE_ENVIRONMENTAL) |
#define AE_NULL_ENTRY (ACPI_STATUS) (0x000A | AE_CODE_ENVIRONMENTAL) |
#define AE_BUFFER_OVERFLOW (ACPI_STATUS) (0x000B | AE_CODE_ENVIRONMENTAL) |
#define AE_STACK_OVERFLOW (ACPI_STATUS) (0x000C | AE_CODE_ENVIRONMENTAL) |
#define AE_STACK_UNDERFLOW (ACPI_STATUS) (0x000D | AE_CODE_ENVIRONMENTAL) |
#define AE_NOT_IMPLEMENTED (ACPI_STATUS) (0x000E | AE_CODE_ENVIRONMENTAL) |
#define AE_SUPPORT (ACPI_STATUS) (0x000F | AE_CODE_ENVIRONMENTAL) |
#define AE_LIMIT (ACPI_STATUS) (0x0010 | AE_CODE_ENVIRONMENTAL) |
#define AE_TIME (ACPI_STATUS) (0x0011 | AE_CODE_ENVIRONMENTAL) |
#define AE_ACQUIRE_DEADLOCK (ACPI_STATUS) (0x0012 | AE_CODE_ENVIRONMENTAL) |
#define AE_RELEASE_DEADLOCK (ACPI_STATUS) (0x0013 | AE_CODE_ENVIRONMENTAL) |
#define AE_NOT_ACQUIRED (ACPI_STATUS) (0x0014 | AE_CODE_ENVIRONMENTAL) |
#define AE_ALREADY_ACQUIRED (ACPI_STATUS) (0x0015 | AE_CODE_ENVIRONMENTAL) |
#define AE_NO_HARDWARE_RESPONSE (ACPI_STATUS) (0x0016 | AE_CODE_ENVIRONMENTAL) |
#define AE_NO_GLOBAL_LOCK (ACPI_STATUS) (0x0017 | AE_CODE_ENVIRONMENTAL) |
#define AE_ABORT_METHOD (ACPI_STATUS) (0x0018 | AE_CODE_ENVIRONMENTAL) |
#define AE_SAME_HANDLER (ACPI_STATUS) (0x0019 | AE_CODE_ENVIRONMENTAL) |
#define AE_NO_HANDLER (ACPI_STATUS) (0x001A | AE_CODE_ENVIRONMENTAL) |
#define AE_OWNER_ID_LIMIT (ACPI_STATUS) (0x001B | AE_CODE_ENVIRONMENTAL) |
#define AE_CODE_ENV_MAX 0x001B |
/* |
* Programmer exceptions |
*/ |
#define AE_BAD_PARAMETER (ACPI_STATUS) (0x0001 | AE_CODE_PROGRAMMER) |
#define AE_BAD_CHARACTER (ACPI_STATUS) (0x0002 | AE_CODE_PROGRAMMER) |
#define AE_BAD_PATHNAME (ACPI_STATUS) (0x0003 | AE_CODE_PROGRAMMER) |
#define AE_BAD_DATA (ACPI_STATUS) (0x0004 | AE_CODE_PROGRAMMER) |
#define AE_BAD_HEX_CONSTANT (ACPI_STATUS) (0x0005 | AE_CODE_PROGRAMMER) |
#define AE_BAD_OCTAL_CONSTANT (ACPI_STATUS) (0x0006 | AE_CODE_PROGRAMMER) |
#define AE_BAD_DECIMAL_CONSTANT (ACPI_STATUS) (0x0007 | AE_CODE_PROGRAMMER) |
#define AE_MISSING_ARGUMENTS (ACPI_STATUS) (0x0008 | AE_CODE_PROGRAMMER) |
#define AE_BAD_ADDRESS (ACPI_STATUS) (0x0009 | AE_CODE_PROGRAMMER) |
#define AE_CODE_PGM_MAX 0x0009 |
/* |
* Acpi table exceptions |
*/ |
#define AE_BAD_SIGNATURE (ACPI_STATUS) (0x0001 | AE_CODE_ACPI_TABLES) |
#define AE_BAD_HEADER (ACPI_STATUS) (0x0002 | AE_CODE_ACPI_TABLES) |
#define AE_BAD_CHECKSUM (ACPI_STATUS) (0x0003 | AE_CODE_ACPI_TABLES) |
#define AE_BAD_VALUE (ACPI_STATUS) (0x0004 | AE_CODE_ACPI_TABLES) |
#define AE_INVALID_TABLE_LENGTH (ACPI_STATUS) (0x0005 | AE_CODE_ACPI_TABLES) |
#define AE_CODE_TBL_MAX 0x0005 |
/* |
* AML exceptions. These are caused by problems with |
* the actual AML byte stream |
*/ |
#define AE_AML_BAD_OPCODE (ACPI_STATUS) (0x0001 | AE_CODE_AML) |
#define AE_AML_NO_OPERAND (ACPI_STATUS) (0x0002 | AE_CODE_AML) |
#define AE_AML_OPERAND_TYPE (ACPI_STATUS) (0x0003 | AE_CODE_AML) |
#define AE_AML_OPERAND_VALUE (ACPI_STATUS) (0x0004 | AE_CODE_AML) |
#define AE_AML_UNINITIALIZED_LOCAL (ACPI_STATUS) (0x0005 | AE_CODE_AML) |
#define AE_AML_UNINITIALIZED_ARG (ACPI_STATUS) (0x0006 | AE_CODE_AML) |
#define AE_AML_UNINITIALIZED_ELEMENT (ACPI_STATUS) (0x0007 | AE_CODE_AML) |
#define AE_AML_NUMERIC_OVERFLOW (ACPI_STATUS) (0x0008 | AE_CODE_AML) |
#define AE_AML_REGION_LIMIT (ACPI_STATUS) (0x0009 | AE_CODE_AML) |
#define AE_AML_BUFFER_LIMIT (ACPI_STATUS) (0x000A | AE_CODE_AML) |
#define AE_AML_PACKAGE_LIMIT (ACPI_STATUS) (0x000B | AE_CODE_AML) |
#define AE_AML_DIVIDE_BY_ZERO (ACPI_STATUS) (0x000C | AE_CODE_AML) |
#define AE_AML_BAD_NAME (ACPI_STATUS) (0x000D | AE_CODE_AML) |
#define AE_AML_NAME_NOT_FOUND (ACPI_STATUS) (0x000E | AE_CODE_AML) |
#define AE_AML_INTERNAL (ACPI_STATUS) (0x000F | AE_CODE_AML) |
#define AE_AML_INVALID_SPACE_ID (ACPI_STATUS) (0x0010 | AE_CODE_AML) |
#define AE_AML_STRING_LIMIT (ACPI_STATUS) (0x0011 | AE_CODE_AML) |
#define AE_AML_NO_RETURN_VALUE (ACPI_STATUS) (0x0012 | AE_CODE_AML) |
#define AE_AML_METHOD_LIMIT (ACPI_STATUS) (0x0013 | AE_CODE_AML) |
#define AE_AML_NOT_OWNER (ACPI_STATUS) (0x0014 | AE_CODE_AML) |
#define AE_AML_MUTEX_ORDER (ACPI_STATUS) (0x0015 | AE_CODE_AML) |
#define AE_AML_MUTEX_NOT_ACQUIRED (ACPI_STATUS) (0x0016 | AE_CODE_AML) |
#define AE_AML_INVALID_RESOURCE_TYPE (ACPI_STATUS) (0x0017 | AE_CODE_AML) |
#define AE_AML_INVALID_INDEX (ACPI_STATUS) (0x0018 | AE_CODE_AML) |
#define AE_AML_REGISTER_LIMIT (ACPI_STATUS) (0x0019 | AE_CODE_AML) |
#define AE_AML_NO_WHILE (ACPI_STATUS) (0x001A | AE_CODE_AML) |
#define AE_AML_ALIGNMENT (ACPI_STATUS) (0x001B | AE_CODE_AML) |
#define AE_AML_NO_RESOURCE_END_TAG (ACPI_STATUS) (0x001C | AE_CODE_AML) |
#define AE_AML_BAD_RESOURCE_VALUE (ACPI_STATUS) (0x001D | AE_CODE_AML) |
#define AE_AML_CIRCULAR_REFERENCE (ACPI_STATUS) (0x001E | AE_CODE_AML) |
#define AE_AML_BAD_RESOURCE_LENGTH (ACPI_STATUS) (0x001F | AE_CODE_AML) |
#define AE_AML_ILLEGAL_ADDRESS (ACPI_STATUS) (0x0020 | AE_CODE_AML) |
#define AE_AML_INFINITE_LOOP (ACPI_STATUS) (0x0021 | AE_CODE_AML) |
#define AE_CODE_AML_MAX 0x0021 |
/* |
* Internal exceptions used for control |
*/ |
#define AE_CTRL_RETURN_VALUE (ACPI_STATUS) (0x0001 | AE_CODE_CONTROL) |
#define AE_CTRL_PENDING (ACPI_STATUS) (0x0002 | AE_CODE_CONTROL) |
#define AE_CTRL_TERMINATE (ACPI_STATUS) (0x0003 | AE_CODE_CONTROL) |
#define AE_CTRL_TRUE (ACPI_STATUS) (0x0004 | AE_CODE_CONTROL) |
#define AE_CTRL_FALSE (ACPI_STATUS) (0x0005 | AE_CODE_CONTROL) |
#define AE_CTRL_DEPTH (ACPI_STATUS) (0x0006 | AE_CODE_CONTROL) |
#define AE_CTRL_END (ACPI_STATUS) (0x0007 | AE_CODE_CONTROL) |
#define AE_CTRL_TRANSFER (ACPI_STATUS) (0x0008 | AE_CODE_CONTROL) |
#define AE_CTRL_BREAK (ACPI_STATUS) (0x0009 | AE_CODE_CONTROL) |
#define AE_CTRL_CONTINUE (ACPI_STATUS) (0x000A | AE_CODE_CONTROL) |
#define AE_CTRL_SKIP (ACPI_STATUS) (0x000B | AE_CODE_CONTROL) |
#define AE_CTRL_PARSE_CONTINUE (ACPI_STATUS) (0x000C | AE_CODE_CONTROL) |
#define AE_CTRL_PARSE_PENDING (ACPI_STATUS) (0x000D | AE_CODE_CONTROL) |
#define AE_CODE_CTRL_MAX 0x000D |
/* Exception strings for AcpiFormatException */ |
#ifdef DEFINE_ACPI_GLOBALS |
/* |
* String versions of the exception codes above |
* These strings must match the corresponding defines exactly |
*/ |
char const *AcpiGbl_ExceptionNames_Env[] = |
{ |
"AE_OK", |
"AE_ERROR", |
"AE_NO_ACPI_TABLES", |
"AE_NO_NAMESPACE", |
"AE_NO_MEMORY", |
"AE_NOT_FOUND", |
"AE_NOT_EXIST", |
"AE_ALREADY_EXISTS", |
"AE_TYPE", |
"AE_NULL_OBJECT", |
"AE_NULL_ENTRY", |
"AE_BUFFER_OVERFLOW", |
"AE_STACK_OVERFLOW", |
"AE_STACK_UNDERFLOW", |
"AE_NOT_IMPLEMENTED", |
"AE_SUPPORT", |
"AE_LIMIT", |
"AE_TIME", |
"AE_ACQUIRE_DEADLOCK", |
"AE_RELEASE_DEADLOCK", |
"AE_NOT_ACQUIRED", |
"AE_ALREADY_ACQUIRED", |
"AE_NO_HARDWARE_RESPONSE", |
"AE_NO_GLOBAL_LOCK", |
"AE_ABORT_METHOD", |
"AE_SAME_HANDLER", |
"AE_NO_HANDLER", |
"AE_OWNER_ID_LIMIT" |
}; |
char const *AcpiGbl_ExceptionNames_Pgm[] = |
{ |
NULL, |
"AE_BAD_PARAMETER", |
"AE_BAD_CHARACTER", |
"AE_BAD_PATHNAME", |
"AE_BAD_DATA", |
"AE_BAD_HEX_CONSTANT", |
"AE_BAD_OCTAL_CONSTANT", |
"AE_BAD_DECIMAL_CONSTANT", |
"AE_MISSING_ARGUMENTS", |
"AE_BAD_ADDRESS" |
}; |
char const *AcpiGbl_ExceptionNames_Tbl[] = |
{ |
NULL, |
"AE_BAD_SIGNATURE", |
"AE_BAD_HEADER", |
"AE_BAD_CHECKSUM", |
"AE_BAD_VALUE", |
"AE_INVALID_TABLE_LENGTH" |
}; |
char const *AcpiGbl_ExceptionNames_Aml[] = |
{ |
NULL, |
"AE_AML_BAD_OPCODE", |
"AE_AML_NO_OPERAND", |
"AE_AML_OPERAND_TYPE", |
"AE_AML_OPERAND_VALUE", |
"AE_AML_UNINITIALIZED_LOCAL", |
"AE_AML_UNINITIALIZED_ARG", |
"AE_AML_UNINITIALIZED_ELEMENT", |
"AE_AML_NUMERIC_OVERFLOW", |
"AE_AML_REGION_LIMIT", |
"AE_AML_BUFFER_LIMIT", |
"AE_AML_PACKAGE_LIMIT", |
"AE_AML_DIVIDE_BY_ZERO", |
"AE_AML_BAD_NAME", |
"AE_AML_NAME_NOT_FOUND", |
"AE_AML_INTERNAL", |
"AE_AML_INVALID_SPACE_ID", |
"AE_AML_STRING_LIMIT", |
"AE_AML_NO_RETURN_VALUE", |
"AE_AML_METHOD_LIMIT", |
"AE_AML_NOT_OWNER", |
"AE_AML_MUTEX_ORDER", |
"AE_AML_MUTEX_NOT_ACQUIRED", |
"AE_AML_INVALID_RESOURCE_TYPE", |
"AE_AML_INVALID_INDEX", |
"AE_AML_REGISTER_LIMIT", |
"AE_AML_NO_WHILE", |
"AE_AML_ALIGNMENT", |
"AE_AML_NO_RESOURCE_END_TAG", |
"AE_AML_BAD_RESOURCE_VALUE", |
"AE_AML_CIRCULAR_REFERENCE", |
"AE_AML_BAD_RESOURCE_LENGTH", |
"AE_AML_ILLEGAL_ADDRESS", |
"AE_AML_INFINITE_LOOP" |
}; |
char const *AcpiGbl_ExceptionNames_Ctrl[] = |
{ |
NULL, |
"AE_CTRL_RETURN_VALUE", |
"AE_CTRL_PENDING", |
"AE_CTRL_TERMINATE", |
"AE_CTRL_TRUE", |
"AE_CTRL_FALSE", |
"AE_CTRL_DEPTH", |
"AE_CTRL_END", |
"AE_CTRL_TRANSFER", |
"AE_CTRL_BREAK", |
"AE_CTRL_CONTINUE", |
"AE_CTRL_SKIP", |
"AE_CTRL_PARSE_CONTINUE", |
"AE_CTRL_PARSE_PENDING" |
}; |
#endif /* ACPI GLOBALS */ |
#endif /* __ACEXCEP_H__ */ |
/drivers/devman/acpica/include/acglobal.h |
---|
0,0 → 1,520 |
/****************************************************************************** |
* |
* Name: acglobal.h - Declarations for global variables |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACGLOBAL_H__ |
#define __ACGLOBAL_H__ |
/* |
* Ensure that the globals are actually defined and initialized only once. |
* |
* The use of these macros allows a single list of globals (here) in order |
* to simplify maintenance of the code. |
*/ |
#ifdef DEFINE_ACPI_GLOBALS |
#define ACPI_EXTERN |
#define ACPI_INIT_GLOBAL(a,b) a=b |
#else |
#define ACPI_EXTERN extern |
#define ACPI_INIT_GLOBAL(a,b) a |
#endif |
#ifdef DEFINE_ACPI_GLOBALS |
/* Public globals, available from outside ACPICA subsystem */ |
/***************************************************************************** |
* |
* Runtime configuration (static defaults that can be overriden at runtime) |
* |
****************************************************************************/ |
/* |
* Enable "slack" in the AML interpreter? Default is FALSE, and the |
* interpreter strictly follows the ACPI specification. Setting to TRUE |
* allows the interpreter to ignore certain errors and/or bad AML constructs. |
* |
* Currently, these features are enabled by this flag: |
* |
* 1) Allow "implicit return" of last value in a control method |
* 2) Allow access beyond the end of an operation region |
* 3) Allow access to uninitialized locals/args (auto-init to integer 0) |
* 4) Allow ANY object type to be a source operand for the Store() operator |
* 5) Allow unresolved references (invalid target name) in package objects |
* 6) Enable warning messages for behavior that is not ACPI spec compliant |
*/ |
UINT8 ACPI_INIT_GLOBAL (AcpiGbl_EnableInterpreterSlack, FALSE); |
/* |
* Automatically serialize ALL control methods? Default is FALSE, meaning |
* to use the Serialized/NotSerialized method flags on a per method basis. |
* Only change this if the ASL code is poorly written and cannot handle |
* reentrancy even though methods are marked "NotSerialized". |
*/ |
UINT8 ACPI_INIT_GLOBAL (AcpiGbl_AllMethodsSerialized, FALSE); |
/* |
* Create the predefined _OSI method in the namespace? Default is TRUE |
* because ACPI CA is fully compatible with other ACPI implementations. |
* Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior. |
*/ |
UINT8 ACPI_INIT_GLOBAL (AcpiGbl_CreateOsiMethod, TRUE); |
/* |
* Disable wakeup GPEs during runtime? Default is TRUE because WAKE and |
* RUNTIME GPEs should never be shared, and WAKE GPEs should typically only |
* be enabled just before going to sleep. |
*/ |
UINT8 ACPI_INIT_GLOBAL (AcpiGbl_LeaveWakeGpesDisabled, TRUE); |
/* |
* Optionally use default values for the ACPI register widths. Set this to |
* TRUE to use the defaults, if an FADT contains incorrect widths/lengths. |
*/ |
UINT8 ACPI_INIT_GLOBAL (AcpiGbl_UseDefaultRegisterWidths, TRUE); |
/* |
* Optionally enable output from the AML Debug Object. |
*/ |
UINT8 ACPI_INIT_GLOBAL (AcpiGbl_EnableAmlDebugObject, FALSE); |
/* |
* Optionally copy the entire DSDT to local memory (instead of simply |
* mapping it.) There are some BIOSs that corrupt or replace the original |
* DSDT, creating the need for this option. Default is FALSE, do not copy |
* the DSDT. |
*/ |
UINT8 ACPI_INIT_GLOBAL (AcpiGbl_CopyDsdtLocally, FALSE); |
/* |
* Optionally truncate I/O addresses to 16 bits. Provides compatibility |
* with other ACPI implementations. NOTE: During ACPICA initialization, |
* this value is set to TRUE if any Windows OSI strings have been |
* requested by the BIOS. |
*/ |
UINT8 ACPI_INIT_GLOBAL (AcpiGbl_TruncateIoAddresses, FALSE); |
/* AcpiGbl_FADT is a local copy of the FADT, converted to a common format. */ |
ACPI_TABLE_FADT AcpiGbl_FADT; |
UINT32 AcpiCurrentGpeCount; |
UINT32 AcpiGbl_TraceFlags; |
ACPI_NAME AcpiGbl_TraceMethodName; |
#endif |
/***************************************************************************** |
* |
* ACPI Table globals |
* |
****************************************************************************/ |
/* |
* AcpiGbl_RootTableList is the master list of ACPI tables that were |
* found in the RSDT/XSDT. |
*/ |
ACPI_EXTERN ACPI_TABLE_LIST AcpiGbl_RootTableList; |
ACPI_EXTERN ACPI_TABLE_FACS *AcpiGbl_FACS; |
/* These addresses are calculated from the FADT Event Block addresses */ |
ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1aStatus; |
ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1aEnable; |
ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1bStatus; |
ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1bEnable; |
/* DSDT information. Used to check for DSDT corruption */ |
ACPI_EXTERN ACPI_TABLE_HEADER *AcpiGbl_DSDT; |
ACPI_EXTERN ACPI_TABLE_HEADER AcpiGbl_OriginalDsdtHeader; |
/* |
* Handle both ACPI 1.0 and ACPI 2.0 Integer widths. The integer width is |
* determined by the revision of the DSDT: If the DSDT revision is less than |
* 2, use only the lower 32 bits of the internal 64-bit Integer. |
*/ |
ACPI_EXTERN UINT8 AcpiGbl_IntegerBitWidth; |
ACPI_EXTERN UINT8 AcpiGbl_IntegerByteWidth; |
ACPI_EXTERN UINT8 AcpiGbl_IntegerNybbleWidth; |
/***************************************************************************** |
* |
* Mutual exlusion within ACPICA subsystem |
* |
****************************************************************************/ |
/* |
* Predefined mutex objects. This array contains the |
* actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs. |
* (The table maps local handles to the real OS handles) |
*/ |
ACPI_EXTERN ACPI_MUTEX_INFO AcpiGbl_MutexInfo[ACPI_NUM_MUTEX]; |
/* |
* Global lock mutex is an actual AML mutex object |
* Global lock semaphore works in conjunction with the HW global lock |
*/ |
ACPI_EXTERN ACPI_OPERAND_OBJECT *AcpiGbl_GlobalLockMutex; |
ACPI_EXTERN ACPI_SEMAPHORE AcpiGbl_GlobalLockSemaphore; |
ACPI_EXTERN UINT16 AcpiGbl_GlobalLockHandle; |
ACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockAcquired; |
ACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockPresent; |
/* |
* Spinlocks are used for interfaces that can be possibly called at |
* interrupt level |
*/ |
ACPI_EXTERN ACPI_SPINLOCK AcpiGbl_GpeLock; /* For GPE data structs and registers */ |
ACPI_EXTERN ACPI_SPINLOCK AcpiGbl_HardwareLock; /* For ACPI H/W except GPE registers */ |
/* Reader/Writer lock is used for namespace walk and dynamic table unload */ |
ACPI_EXTERN ACPI_RW_LOCK AcpiGbl_NamespaceRwLock; |
/***************************************************************************** |
* |
* Miscellaneous globals |
* |
****************************************************************************/ |
/* Object caches */ |
ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_NamespaceCache; |
ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_StateCache; |
ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_PsNodeCache; |
ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_PsNodeExtCache; |
ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_OperandCache; |
/* Global handlers */ |
ACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER AcpiGbl_DeviceNotify; |
ACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER AcpiGbl_SystemNotify; |
ACPI_EXTERN ACPI_EXCEPTION_HANDLER AcpiGbl_ExceptionHandler; |
ACPI_EXTERN ACPI_INIT_HANDLER AcpiGbl_InitHandler; |
ACPI_EXTERN ACPI_TABLE_HANDLER AcpiGbl_TableHandler; |
ACPI_EXTERN void *AcpiGbl_TableHandlerContext; |
ACPI_EXTERN ACPI_WALK_STATE *AcpiGbl_BreakpointWalk; |
/* Owner ID support */ |
ACPI_EXTERN UINT32 AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS]; |
ACPI_EXTERN UINT8 AcpiGbl_LastOwnerIdIndex; |
ACPI_EXTERN UINT8 AcpiGbl_NextOwnerIdOffset; |
/* Misc */ |
ACPI_EXTERN UINT32 AcpiGbl_OriginalMode; |
ACPI_EXTERN UINT32 AcpiGbl_RsdpOriginalLocation; |
ACPI_EXTERN UINT32 AcpiGbl_NsLookupCount; |
ACPI_EXTERN UINT32 AcpiGbl_PsFindCount; |
ACPI_EXTERN UINT16 AcpiGbl_Pm1EnableRegisterSave; |
ACPI_EXTERN UINT8 AcpiGbl_DebuggerConfiguration; |
ACPI_EXTERN BOOLEAN AcpiGbl_StepToNextCall; |
ACPI_EXTERN BOOLEAN AcpiGbl_AcpiHardwarePresent; |
ACPI_EXTERN BOOLEAN AcpiGbl_EventsInitialized; |
ACPI_EXTERN BOOLEAN AcpiGbl_SystemAwakeAndRunning; |
ACPI_EXTERN UINT8 AcpiGbl_OsiData; |
#ifndef DEFINE_ACPI_GLOBALS |
/* Exception codes */ |
extern char const *AcpiGbl_ExceptionNames_Env[]; |
extern char const *AcpiGbl_ExceptionNames_Pgm[]; |
extern char const *AcpiGbl_ExceptionNames_Tbl[]; |
extern char const *AcpiGbl_ExceptionNames_Aml[]; |
extern char const *AcpiGbl_ExceptionNames_Ctrl[]; |
/* Other miscellaneous */ |
extern BOOLEAN AcpiGbl_Shutdown; |
extern UINT32 AcpiGbl_StartupFlags; |
extern const char *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT]; |
extern const char *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS]; |
extern const char *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS]; |
extern const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES]; |
extern const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS]; |
#endif |
#ifdef ACPI_DBG_TRACK_ALLOCATIONS |
/* Lists for tracking memory allocations */ |
ACPI_EXTERN ACPI_MEMORY_LIST *AcpiGbl_GlobalList; |
ACPI_EXTERN ACPI_MEMORY_LIST *AcpiGbl_NsNodeList; |
ACPI_EXTERN BOOLEAN AcpiGbl_DisplayFinalMemStats; |
ACPI_EXTERN BOOLEAN AcpiGbl_DisableMemTracking; |
#endif |
/***************************************************************************** |
* |
* Namespace globals |
* |
****************************************************************************/ |
#if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY) |
#define NUM_PREDEFINED_NAMES 10 |
#else |
#define NUM_PREDEFINED_NAMES 9 |
#endif |
ACPI_EXTERN ACPI_NAMESPACE_NODE AcpiGbl_RootNodeStruct; |
ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_RootNode; |
ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_FadtGpeDevice; |
ACPI_EXTERN ACPI_OPERAND_OBJECT *AcpiGbl_ModuleCodeList; |
extern const UINT8 AcpiGbl_NsProperties [ACPI_NUM_NS_TYPES]; |
extern const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES]; |
#ifdef ACPI_DEBUG_OUTPUT |
ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeCount; |
ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeSize; |
ACPI_EXTERN UINT32 AcpiGbl_MaxConcurrentNodeCount; |
ACPI_EXTERN ACPI_SIZE *AcpiGbl_EntryStackPointer; |
ACPI_EXTERN ACPI_SIZE *AcpiGbl_LowestStackPointer; |
ACPI_EXTERN UINT32 AcpiGbl_DeepestNesting; |
#endif |
/***************************************************************************** |
* |
* Interpreter globals |
* |
****************************************************************************/ |
ACPI_EXTERN ACPI_THREAD_STATE *AcpiGbl_CurrentWalkList; |
/* Control method single step flag */ |
ACPI_EXTERN UINT8 AcpiGbl_CmSingleStep; |
/***************************************************************************** |
* |
* Hardware globals |
* |
****************************************************************************/ |
extern ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG]; |
ACPI_EXTERN UINT8 AcpiGbl_SleepTypeA; |
ACPI_EXTERN UINT8 AcpiGbl_SleepTypeB; |
/***************************************************************************** |
* |
* Event and GPE globals |
* |
****************************************************************************/ |
extern ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS]; |
ACPI_EXTERN ACPI_FIXED_EVENT_HANDLER AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS]; |
ACPI_EXTERN ACPI_GPE_XRUPT_INFO *AcpiGbl_GpeXruptListHead; |
ACPI_EXTERN ACPI_GPE_BLOCK_INFO *AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS]; |
/***************************************************************************** |
* |
* Debug support |
* |
****************************************************************************/ |
/* Procedure nesting level for debug output */ |
extern UINT32 AcpiGbl_NestingLevel; |
/* Event counters */ |
ACPI_EXTERN UINT32 AcpiMethodCount; |
ACPI_EXTERN UINT32 AcpiGpeCount; |
ACPI_EXTERN UINT32 AcpiSciCount; |
ACPI_EXTERN UINT32 AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS]; |
/* Support for dynamic control method tracing mechanism */ |
ACPI_EXTERN UINT32 AcpiGbl_OriginalDbgLevel; |
ACPI_EXTERN UINT32 AcpiGbl_OriginalDbgLayer; |
ACPI_EXTERN UINT32 AcpiGbl_TraceDbgLevel; |
ACPI_EXTERN UINT32 AcpiGbl_TraceDbgLayer; |
/***************************************************************************** |
* |
* Debugger globals |
* |
****************************************************************************/ |
ACPI_EXTERN UINT8 AcpiGbl_DbOutputFlags; |
#ifdef ACPI_DISASSEMBLER |
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_disasm; |
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_verbose; |
ACPI_EXTERN ACPI_EXTERNAL_LIST *AcpiGbl_ExternalList; |
#endif |
#ifdef ACPI_DEBUGGER |
extern BOOLEAN AcpiGbl_MethodExecuting; |
extern BOOLEAN AcpiGbl_AbortMethod; |
extern BOOLEAN AcpiGbl_DbTerminateThreads; |
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_tables; |
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_stats; |
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_ini_methods; |
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_NoRegionSupport; |
ACPI_EXTERN char *AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]; |
ACPI_EXTERN char AcpiGbl_DbLineBuf[80]; |
ACPI_EXTERN char AcpiGbl_DbParsedBuf[80]; |
ACPI_EXTERN char AcpiGbl_DbScopeBuf[40]; |
ACPI_EXTERN char AcpiGbl_DbDebugFilename[40]; |
ACPI_EXTERN BOOLEAN AcpiGbl_DbOutputToFile; |
ACPI_EXTERN char *AcpiGbl_DbBuffer; |
ACPI_EXTERN char *AcpiGbl_DbFilename; |
ACPI_EXTERN UINT32 AcpiGbl_DbDebugLevel; |
ACPI_EXTERN UINT32 AcpiGbl_DbConsoleDebugLevel; |
ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_DbScopeNode; |
/* |
* Statistic globals |
*/ |
ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCount[ACPI_TYPE_NS_NODE_MAX+1]; |
ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCount[ACPI_TYPE_NS_NODE_MAX+1]; |
ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCountMisc; |
ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCountMisc; |
ACPI_EXTERN UINT32 AcpiGbl_NumNodes; |
ACPI_EXTERN UINT32 AcpiGbl_NumObjects; |
ACPI_EXTERN UINT32 AcpiGbl_SizeOfParseTree; |
ACPI_EXTERN UINT32 AcpiGbl_SizeOfMethodTrees; |
ACPI_EXTERN UINT32 AcpiGbl_SizeOfNodeEntries; |
ACPI_EXTERN UINT32 AcpiGbl_SizeOfAcpiObjects; |
#endif /* ACPI_DEBUGGER */ |
#endif /* __ACGLOBAL_H__ */ |
/drivers/devman/acpica/include/achware.h |
---|
0,0 → 1,269 |
/****************************************************************************** |
* |
* Name: achware.h -- hardware specific interfaces |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACHWARE_H__ |
#define __ACHWARE_H__ |
/* Values for the _SST predefined method */ |
#define ACPI_SST_INDICATOR_OFF 0 |
#define ACPI_SST_WORKING 1 |
#define ACPI_SST_WAKING 2 |
#define ACPI_SST_SLEEPING 3 |
#define ACPI_SST_SLEEP_CONTEXT 4 |
/* |
* hwacpi - high level functions |
*/ |
ACPI_STATUS |
AcpiHwSetMode ( |
UINT32 Mode); |
UINT32 |
AcpiHwGetMode ( |
void); |
/* |
* hwregs - ACPI Register I/O |
*/ |
ACPI_STATUS |
AcpiHwValidateRegister ( |
ACPI_GENERIC_ADDRESS *Reg, |
UINT8 MaxBitWidth, |
UINT64 *Address); |
ACPI_STATUS |
AcpiHwRead ( |
UINT32 *Value, |
ACPI_GENERIC_ADDRESS *Reg); |
ACPI_STATUS |
AcpiHwWrite ( |
UINT32 Value, |
ACPI_GENERIC_ADDRESS *Reg); |
ACPI_BIT_REGISTER_INFO * |
AcpiHwGetBitRegisterInfo ( |
UINT32 RegisterId); |
ACPI_STATUS |
AcpiHwWritePm1Control ( |
UINT32 Pm1aControl, |
UINT32 Pm1bControl); |
ACPI_STATUS |
AcpiHwRegisterRead ( |
UINT32 RegisterId, |
UINT32 *ReturnValue); |
ACPI_STATUS |
AcpiHwRegisterWrite ( |
UINT32 RegisterId, |
UINT32 Value); |
ACPI_STATUS |
AcpiHwClearAcpiStatus ( |
void); |
/* |
* hwvalid - Port I/O with validation |
*/ |
ACPI_STATUS |
AcpiHwReadPort ( |
ACPI_IO_ADDRESS Address, |
UINT32 *Value, |
UINT32 Width); |
ACPI_STATUS |
AcpiHwWritePort ( |
ACPI_IO_ADDRESS Address, |
UINT32 Value, |
UINT32 Width); |
/* |
* hwgpe - GPE support |
*/ |
ACPI_STATUS |
AcpiHwLowDisableGpe ( |
ACPI_GPE_EVENT_INFO *GpeEventInfo); |
ACPI_STATUS |
AcpiHwWriteGpeEnableReg ( |
ACPI_GPE_EVENT_INFO *GpeEventInfo); |
ACPI_STATUS |
AcpiHwDisableGpeBlock ( |
ACPI_GPE_XRUPT_INFO *GpeXruptInfo, |
ACPI_GPE_BLOCK_INFO *GpeBlock, |
void *Context); |
ACPI_STATUS |
AcpiHwClearGpe ( |
ACPI_GPE_EVENT_INFO *GpeEventInfo); |
ACPI_STATUS |
AcpiHwClearGpeBlock ( |
ACPI_GPE_XRUPT_INFO *GpeXruptInfo, |
ACPI_GPE_BLOCK_INFO *GpeBlock, |
void *Context); |
ACPI_STATUS |
AcpiHwGetGpeStatus ( |
ACPI_GPE_EVENT_INFO *GpeEventInfo, |
ACPI_EVENT_STATUS *EventStatus); |
ACPI_STATUS |
AcpiHwDisableAllGpes ( |
void); |
ACPI_STATUS |
AcpiHwEnableAllRuntimeGpes ( |
void); |
ACPI_STATUS |
AcpiHwEnableAllWakeupGpes ( |
void); |
ACPI_STATUS |
AcpiHwEnableRuntimeGpeBlock ( |
ACPI_GPE_XRUPT_INFO *GpeXruptInfo, |
ACPI_GPE_BLOCK_INFO *GpeBlock, |
void *Context); |
/* |
* hwtimer - ACPI Timer prototypes |
*/ |
ACPI_STATUS |
AcpiGetTimerResolution ( |
UINT32 *Resolution); |
ACPI_STATUS |
AcpiGetTimer ( |
UINT32 *Ticks); |
ACPI_STATUS |
AcpiGetTimerDuration ( |
UINT32 StartTicks, |
UINT32 EndTicks, |
UINT32 *TimeElapsed); |
#endif /* __ACHWARE_H__ */ |
/drivers/devman/acpica/include/acinterp.h |
---|
0,0 → 1,794 |
/****************************************************************************** |
* |
* Name: acinterp.h - Interpreter subcomponent prototypes and defines |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACINTERP_H__ |
#define __ACINTERP_H__ |
#define ACPI_WALK_OPERANDS (&(WalkState->Operands [WalkState->NumOperands -1])) |
/* Macros for tables used for debug output */ |
#define ACPI_EXD_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f) |
#define ACPI_EXD_NSOFFSET(f) (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f) |
#define ACPI_EXD_TABLE_SIZE(name) (sizeof(name) / sizeof (ACPI_EXDUMP_INFO)) |
/* |
* If possible, pack the following structures to byte alignment, since we |
* don't care about performance for debug output. Two cases where we cannot |
* pack the structures: |
* |
* 1) Hardware does not support misaligned memory transfers |
* 2) Compiler does not support pointers within packed structures |
*/ |
#if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED)) |
#pragma pack(1) |
#endif |
typedef const struct acpi_exdump_info |
{ |
UINT8 Opcode; |
UINT8 Offset; |
char *Name; |
} ACPI_EXDUMP_INFO; |
/* Values for the Opcode field above */ |
#define ACPI_EXD_INIT 0 |
#define ACPI_EXD_TYPE 1 |
#define ACPI_EXD_UINT8 2 |
#define ACPI_EXD_UINT16 3 |
#define ACPI_EXD_UINT32 4 |
#define ACPI_EXD_UINT64 5 |
#define ACPI_EXD_LITERAL 6 |
#define ACPI_EXD_POINTER 7 |
#define ACPI_EXD_ADDRESS 8 |
#define ACPI_EXD_STRING 9 |
#define ACPI_EXD_BUFFER 10 |
#define ACPI_EXD_PACKAGE 11 |
#define ACPI_EXD_FIELD 12 |
#define ACPI_EXD_REFERENCE 13 |
/* restore default alignment */ |
#pragma pack() |
/* |
* exconvrt - object conversion |
*/ |
ACPI_STATUS |
AcpiExConvertToInteger ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_OPERAND_OBJECT **ResultDesc, |
UINT32 Flags); |
ACPI_STATUS |
AcpiExConvertToBuffer ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_OPERAND_OBJECT **ResultDesc); |
ACPI_STATUS |
AcpiExConvertToString ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_OPERAND_OBJECT **ResultDesc, |
UINT32 Type); |
/* Types for ->String conversion */ |
#define ACPI_EXPLICIT_BYTE_COPY 0x00000000 |
#define ACPI_EXPLICIT_CONVERT_HEX 0x00000001 |
#define ACPI_IMPLICIT_CONVERT_HEX 0x00000002 |
#define ACPI_EXPLICIT_CONVERT_DECIMAL 0x00000003 |
ACPI_STATUS |
AcpiExConvertToTargetType ( |
ACPI_OBJECT_TYPE DestinationType, |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_OPERAND_OBJECT **ResultDesc, |
ACPI_WALK_STATE *WalkState); |
/* |
* exdebug - AML debug object |
*/ |
void |
AcpiExDoDebugObject ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
UINT32 Level, |
UINT32 Index); |
/* |
* exfield - ACPI AML (p-code) execution - field manipulation |
*/ |
ACPI_STATUS |
AcpiExCommonBufferSetup ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
UINT32 BufferLength, |
UINT32 *DatumCount); |
ACPI_STATUS |
AcpiExWriteWithUpdateRule ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
UINT64 Mask, |
UINT64 FieldValue, |
UINT32 FieldDatumByteOffset); |
void |
AcpiExGetBufferDatum( |
UINT64 *Datum, |
void *Buffer, |
UINT32 BufferLength, |
UINT32 ByteGranularity, |
UINT32 BufferOffset); |
void |
AcpiExSetBufferDatum ( |
UINT64 MergedDatum, |
void *Buffer, |
UINT32 BufferLength, |
UINT32 ByteGranularity, |
UINT32 BufferOffset); |
ACPI_STATUS |
AcpiExReadDataFromField ( |
ACPI_WALK_STATE *WalkState, |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_OPERAND_OBJECT **RetBufferDesc); |
ACPI_STATUS |
AcpiExWriteDataToField ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_OPERAND_OBJECT **ResultDesc); |
/* |
* exfldio - low level field I/O |
*/ |
ACPI_STATUS |
AcpiExExtractFromField ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
void *Buffer, |
UINT32 BufferLength); |
ACPI_STATUS |
AcpiExInsertIntoField ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
void *Buffer, |
UINT32 BufferLength); |
ACPI_STATUS |
AcpiExAccessRegion ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
UINT32 FieldDatumByteOffset, |
UINT64 *Value, |
UINT32 ReadWrite); |
/* |
* exmisc - misc support routines |
*/ |
ACPI_STATUS |
AcpiExGetObjectReference ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_OPERAND_OBJECT **ReturnDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExConcatTemplate ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_OPERAND_OBJECT *ObjDesc2, |
ACPI_OPERAND_OBJECT **ActualReturnDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExDoConcatenate ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_OPERAND_OBJECT *ObjDesc2, |
ACPI_OPERAND_OBJECT **ActualReturnDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExDoLogicalNumericOp ( |
UINT16 Opcode, |
UINT64 Integer0, |
UINT64 Integer1, |
BOOLEAN *LogicalResult); |
ACPI_STATUS |
AcpiExDoLogicalOp ( |
UINT16 Opcode, |
ACPI_OPERAND_OBJECT *Operand0, |
ACPI_OPERAND_OBJECT *Operand1, |
BOOLEAN *LogicalResult); |
UINT64 |
AcpiExDoMathOp ( |
UINT16 Opcode, |
UINT64 Operand0, |
UINT64 Operand1); |
ACPI_STATUS |
AcpiExCreateMutex ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExCreateProcessor ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExCreatePowerResource ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExCreateRegion ( |
UINT8 *AmlStart, |
UINT32 AmlLength, |
UINT8 RegionSpace, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExCreateEvent ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExCreateAlias ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExCreateMethod ( |
UINT8 *AmlStart, |
UINT32 AmlLength, |
ACPI_WALK_STATE *WalkState); |
/* |
* exconfig - dynamic table load/unload |
*/ |
ACPI_STATUS |
AcpiExLoadOp ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_OPERAND_OBJECT *Target, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExLoadTableOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_OPERAND_OBJECT **ReturnDesc); |
ACPI_STATUS |
AcpiExUnloadTable ( |
ACPI_OPERAND_OBJECT *DdbHandle); |
/* |
* exmutex - mutex support |
*/ |
ACPI_STATUS |
AcpiExAcquireMutex ( |
ACPI_OPERAND_OBJECT *TimeDesc, |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExAcquireMutexObject ( |
UINT16 Timeout, |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_THREAD_ID ThreadId); |
ACPI_STATUS |
AcpiExReleaseMutex ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExReleaseMutexObject ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
void |
AcpiExReleaseAllMutexes ( |
ACPI_THREAD_STATE *Thread); |
void |
AcpiExUnlinkMutex ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
/* |
* exprep - ACPI AML execution - prep utilities |
*/ |
ACPI_STATUS |
AcpiExPrepCommonFieldObject ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
UINT8 FieldFlags, |
UINT8 FieldAttribute, |
UINT32 FieldBitPosition, |
UINT32 FieldBitLength); |
ACPI_STATUS |
AcpiExPrepFieldValue ( |
ACPI_CREATE_FIELD_INFO *Info); |
/* |
* exsystem - Interface to OS services |
*/ |
ACPI_STATUS |
AcpiExSystemDoNotifyOp ( |
ACPI_OPERAND_OBJECT *Value, |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiExSystemDoSleep( |
UINT64 Time); |
ACPI_STATUS |
AcpiExSystemDoStall ( |
UINT32 Time); |
ACPI_STATUS |
AcpiExSystemSignalEvent( |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiExSystemWaitEvent( |
ACPI_OPERAND_OBJECT *Time, |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiExSystemResetEvent( |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiExSystemWaitSemaphore ( |
ACPI_SEMAPHORE Semaphore, |
UINT16 Timeout); |
ACPI_STATUS |
AcpiExSystemWaitMutex ( |
ACPI_MUTEX Mutex, |
UINT16 Timeout); |
/* |
* exoparg1 - ACPI AML execution, 1 operand |
*/ |
ACPI_STATUS |
AcpiExOpcode_0A_0T_1R ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExOpcode_1A_0T_0R ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExOpcode_1A_0T_1R ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExOpcode_1A_1T_1R ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExOpcode_1A_1T_0R ( |
ACPI_WALK_STATE *WalkState); |
/* |
* exoparg2 - ACPI AML execution, 2 operands |
*/ |
ACPI_STATUS |
AcpiExOpcode_2A_0T_0R ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExOpcode_2A_0T_1R ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExOpcode_2A_1T_1R ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExOpcode_2A_2T_1R ( |
ACPI_WALK_STATE *WalkState); |
/* |
* exoparg3 - ACPI AML execution, 3 operands |
*/ |
ACPI_STATUS |
AcpiExOpcode_3A_0T_0R ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExOpcode_3A_1T_1R ( |
ACPI_WALK_STATE *WalkState); |
/* |
* exoparg6 - ACPI AML execution, 6 operands |
*/ |
ACPI_STATUS |
AcpiExOpcode_6A_0T_1R ( |
ACPI_WALK_STATE *WalkState); |
/* |
* exresolv - Object resolution and get value functions |
*/ |
ACPI_STATUS |
AcpiExResolveToValue ( |
ACPI_OPERAND_OBJECT **StackPtr, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExResolveMultiple ( |
ACPI_WALK_STATE *WalkState, |
ACPI_OPERAND_OBJECT *Operand, |
ACPI_OBJECT_TYPE *ReturnType, |
ACPI_OPERAND_OBJECT **ReturnDesc); |
/* |
* exresnte - resolve namespace node |
*/ |
ACPI_STATUS |
AcpiExResolveNodeToValue ( |
ACPI_NAMESPACE_NODE **StackPtr, |
ACPI_WALK_STATE *WalkState); |
/* |
* exresop - resolve operand to value |
*/ |
ACPI_STATUS |
AcpiExResolveOperands ( |
UINT16 Opcode, |
ACPI_OPERAND_OBJECT **StackPtr, |
ACPI_WALK_STATE *WalkState); |
/* |
* exdump - Interpreter debug output routines |
*/ |
void |
AcpiExDumpOperand ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
UINT32 Depth); |
void |
AcpiExDumpOperands ( |
ACPI_OPERAND_OBJECT **Operands, |
const char *OpcodeName, |
UINT32 NumOpcodes); |
void |
AcpiExDumpObjectDescriptor ( |
ACPI_OPERAND_OBJECT *Object, |
UINT32 Flags); |
void |
AcpiExDumpNamespaceNode ( |
ACPI_NAMESPACE_NODE *Node, |
UINT32 Flags); |
/* |
* exnames - AML namestring support |
*/ |
ACPI_STATUS |
AcpiExGetNameString ( |
ACPI_OBJECT_TYPE DataType, |
UINT8 *InAmlAddress, |
char **OutNameString, |
UINT32 *OutNameLength); |
/* |
* exstore - Object store support |
*/ |
ACPI_STATUS |
AcpiExStore ( |
ACPI_OPERAND_OBJECT *ValDesc, |
ACPI_OPERAND_OBJECT *DestDesc, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExStoreObjectToNode ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_NAMESPACE_NODE *Node, |
ACPI_WALK_STATE *WalkState, |
UINT8 ImplicitConversion); |
#define ACPI_IMPLICIT_CONVERSION TRUE |
#define ACPI_NO_IMPLICIT_CONVERSION FALSE |
/* |
* exstoren - resolve/store object |
*/ |
ACPI_STATUS |
AcpiExResolveObject ( |
ACPI_OPERAND_OBJECT **SourceDescPtr, |
ACPI_OBJECT_TYPE TargetType, |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiExStoreObjectToObject ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_OPERAND_OBJECT *DestDesc, |
ACPI_OPERAND_OBJECT **NewDesc, |
ACPI_WALK_STATE *WalkState); |
/* |
* exstorob - store object - buffer/string |
*/ |
ACPI_STATUS |
AcpiExStoreBufferToBuffer ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_OPERAND_OBJECT *TargetDesc); |
ACPI_STATUS |
AcpiExStoreStringToString ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_OPERAND_OBJECT *TargetDesc); |
/* |
* excopy - object copy |
*/ |
ACPI_STATUS |
AcpiExCopyIntegerToIndexField ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_OPERAND_OBJECT *TargetDesc); |
ACPI_STATUS |
AcpiExCopyIntegerToBankField ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_OPERAND_OBJECT *TargetDesc); |
ACPI_STATUS |
AcpiExCopyDataToNamedField ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_NAMESPACE_NODE *Node); |
ACPI_STATUS |
AcpiExCopyIntegerToBufferField ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_OPERAND_OBJECT *TargetDesc); |
/* |
* exutils - interpreter/scanner utilities |
*/ |
void |
AcpiExEnterInterpreter ( |
void); |
void |
AcpiExExitInterpreter ( |
void); |
void |
AcpiExReacquireInterpreter ( |
void); |
void |
AcpiExRelinquishInterpreter ( |
void); |
void |
AcpiExTruncateFor32bitTable ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
void |
AcpiExAcquireGlobalLock ( |
UINT32 Rule); |
void |
AcpiExReleaseGlobalLock ( |
UINT32 Rule); |
void |
AcpiExEisaIdToString ( |
char *Dest, |
UINT64 CompressedId); |
void |
AcpiExIntegerToString ( |
char *Dest, |
UINT64 Value); |
/* |
* exregion - default OpRegion handlers |
*/ |
ACPI_STATUS |
AcpiExSystemMemorySpaceHandler ( |
UINT32 Function, |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 BitWidth, |
UINT64 *Value, |
void *HandlerContext, |
void *RegionContext); |
ACPI_STATUS |
AcpiExSystemIoSpaceHandler ( |
UINT32 Function, |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 BitWidth, |
UINT64 *Value, |
void *HandlerContext, |
void *RegionContext); |
ACPI_STATUS |
AcpiExPciConfigSpaceHandler ( |
UINT32 Function, |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 BitWidth, |
UINT64 *Value, |
void *HandlerContext, |
void *RegionContext); |
ACPI_STATUS |
AcpiExCmosSpaceHandler ( |
UINT32 Function, |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 BitWidth, |
UINT64 *Value, |
void *HandlerContext, |
void *RegionContext); |
ACPI_STATUS |
AcpiExPciBarSpaceHandler ( |
UINT32 Function, |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 BitWidth, |
UINT64 *Value, |
void *HandlerContext, |
void *RegionContext); |
ACPI_STATUS |
AcpiExEmbeddedControllerSpaceHandler ( |
UINT32 Function, |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 BitWidth, |
UINT64 *Value, |
void *HandlerContext, |
void *RegionContext); |
ACPI_STATUS |
AcpiExSmBusSpaceHandler ( |
UINT32 Function, |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 BitWidth, |
UINT64 *Value, |
void *HandlerContext, |
void *RegionContext); |
ACPI_STATUS |
AcpiExDataTableSpaceHandler ( |
UINT32 Function, |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 BitWidth, |
UINT64 *Value, |
void *HandlerContext, |
void *RegionContext); |
#endif /* __INTERP_H__ */ |
/drivers/devman/acpica/include/aclocal.h |
---|
0,0 → 1,1340 |
/****************************************************************************** |
* |
* Name: aclocal.h - Internal data types used across the ACPI subsystem |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACLOCAL_H__ |
#define __ACLOCAL_H__ |
/* acpisrc:StructDefs -- for acpisrc conversion */ |
#define ACPI_SERIALIZED 0xFF |
typedef UINT32 ACPI_MUTEX_HANDLE; |
#define ACPI_GLOBAL_LOCK (ACPI_SEMAPHORE) (-1) |
/* Total number of aml opcodes defined */ |
#define AML_NUM_OPCODES 0x7F |
/* Forward declarations */ |
struct acpi_walk_state; |
struct acpi_obj_mutex; |
union acpi_parse_object; |
/***************************************************************************** |
* |
* Mutex typedefs and structs |
* |
****************************************************************************/ |
/* |
* Predefined handles for the mutex objects used within the subsystem |
* All mutex objects are automatically created by AcpiUtMutexInitialize. |
* |
* The acquire/release ordering protocol is implied via this list. Mutexes |
* with a lower value must be acquired before mutexes with a higher value. |
* |
* NOTE: any changes here must be reflected in the AcpiGbl_MutexNames |
* table below also! |
*/ |
#define ACPI_MTX_INTERPRETER 0 /* AML Interpreter, main lock */ |
#define ACPI_MTX_NAMESPACE 1 /* ACPI Namespace */ |
#define ACPI_MTX_TABLES 2 /* Data for ACPI tables */ |
#define ACPI_MTX_EVENTS 3 /* Data for ACPI events */ |
#define ACPI_MTX_CACHES 4 /* Internal caches, general purposes */ |
#define ACPI_MTX_MEMORY 5 /* Debug memory tracking lists */ |
#define ACPI_MTX_DEBUG_CMD_COMPLETE 6 /* AML debugger */ |
#define ACPI_MTX_DEBUG_CMD_READY 7 /* AML debugger */ |
#define ACPI_MAX_MUTEX 7 |
#define ACPI_NUM_MUTEX ACPI_MAX_MUTEX+1 |
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) |
#ifdef DEFINE_ACPI_GLOBALS |
/* Debug names for the mutexes above */ |
static char *AcpiGbl_MutexNames[ACPI_NUM_MUTEX] = |
{ |
"ACPI_MTX_Interpreter", |
"ACPI_MTX_Namespace", |
"ACPI_MTX_Tables", |
"ACPI_MTX_Events", |
"ACPI_MTX_Caches", |
"ACPI_MTX_Memory", |
"ACPI_MTX_CommandComplete", |
"ACPI_MTX_CommandReady" |
}; |
#endif |
#endif |
/* Lock structure for reader/writer interfaces */ |
typedef struct acpi_rw_lock |
{ |
ACPI_MUTEX WriterMutex; |
ACPI_MUTEX ReaderMutex; |
UINT32 NumReaders; |
} ACPI_RW_LOCK; |
/* |
* Predefined handles for spinlocks used within the subsystem. |
* These spinlocks are created by AcpiUtMutexInitialize |
*/ |
#define ACPI_LOCK_GPES 0 |
#define ACPI_LOCK_HARDWARE 1 |
#define ACPI_MAX_LOCK 1 |
#define ACPI_NUM_LOCK ACPI_MAX_LOCK+1 |
/* This Thread ID means that the mutex is not in use (unlocked) */ |
#define ACPI_MUTEX_NOT_ACQUIRED (ACPI_THREAD_ID) -1 |
/* Table for the global mutexes */ |
typedef struct acpi_mutex_info |
{ |
ACPI_MUTEX Mutex; |
UINT32 UseCount; |
ACPI_THREAD_ID ThreadId; |
} ACPI_MUTEX_INFO; |
/* Lock flag parameter for various interfaces */ |
#define ACPI_MTX_DO_NOT_LOCK 0 |
#define ACPI_MTX_LOCK 1 |
/* Field access granularities */ |
#define ACPI_FIELD_BYTE_GRANULARITY 1 |
#define ACPI_FIELD_WORD_GRANULARITY 2 |
#define ACPI_FIELD_DWORD_GRANULARITY 4 |
#define ACPI_FIELD_QWORD_GRANULARITY 8 |
#define ACPI_ENTRY_NOT_FOUND NULL |
/***************************************************************************** |
* |
* Namespace typedefs and structs |
* |
****************************************************************************/ |
/* Operational modes of the AML interpreter/scanner */ |
typedef enum |
{ |
ACPI_IMODE_LOAD_PASS1 = 0x01, |
ACPI_IMODE_LOAD_PASS2 = 0x02, |
ACPI_IMODE_EXECUTE = 0x03 |
} ACPI_INTERPRETER_MODE; |
/* |
* The Namespace Node describes a named object that appears in the AML. |
* DescriptorType is used to differentiate between internal descriptors. |
* |
* The node is optimized for both 32-bit and 64-bit platforms: |
* 20 bytes for the 32-bit case, 32 bytes for the 64-bit case. |
* |
* Note: The DescriptorType and Type fields must appear in the identical |
* position in both the ACPI_NAMESPACE_NODE and ACPI_OPERAND_OBJECT |
* structures. |
*/ |
typedef struct acpi_namespace_node |
{ |
union acpi_operand_object *Object; /* Interpreter object */ |
UINT8 DescriptorType; /* Differentiate object descriptor types */ |
UINT8 Type; /* ACPI Type associated with this name */ |
UINT8 Flags; /* Miscellaneous flags */ |
ACPI_OWNER_ID OwnerId; /* Node creator */ |
ACPI_NAME_UNION Name; /* ACPI Name, always 4 chars per ACPI spec */ |
struct acpi_namespace_node *Parent; /* Parent node */ |
struct acpi_namespace_node *Child; /* First child */ |
struct acpi_namespace_node *Peer; /* First peer */ |
/* |
* The following fields are used by the ASL compiler and disassembler only |
*/ |
#ifdef ACPI_LARGE_NAMESPACE_NODE |
union acpi_parse_object *Op; |
UINT32 Value; |
UINT32 Length; |
#endif |
} ACPI_NAMESPACE_NODE; |
/* Namespace Node flags */ |
#define ANOBJ_RESERVED 0x01 /* Available for use */ |
#define ANOBJ_TEMPORARY 0x02 /* Node is create by a method and is temporary */ |
#define ANOBJ_METHOD_ARG 0x04 /* Node is a method argument */ |
#define ANOBJ_METHOD_LOCAL 0x08 /* Node is a method local */ |
#define ANOBJ_SUBTREE_HAS_INI 0x10 /* Used to optimize device initialization */ |
#define ANOBJ_EVALUATED 0x20 /* Set on first evaluation of node */ |
#define ANOBJ_ALLOCATED_BUFFER 0x40 /* Method AML buffer is dynamic (InstallMethod) */ |
#define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */ |
#define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */ |
#define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */ |
#define ANOBJ_IS_BIT_OFFSET 0x40 /* iASL only: Reference is a bit offset */ |
#define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */ |
/* Internal ACPI table management - master table list */ |
typedef struct acpi_table_list |
{ |
ACPI_TABLE_DESC *Tables; /* Table descriptor array */ |
UINT32 CurrentTableCount; /* Tables currently in the array */ |
UINT32 MaxTableCount; /* Max tables array will hold */ |
UINT8 Flags; |
} ACPI_TABLE_LIST; |
/* Flags for above */ |
#define ACPI_ROOT_ORIGIN_UNKNOWN (0) /* ~ORIGIN_ALLOCATED */ |
#define ACPI_ROOT_ORIGIN_ALLOCATED (1) |
#define ACPI_ROOT_ALLOW_RESIZE (2) |
/* Predefined (fixed) table indexes */ |
#define ACPI_TABLE_INDEX_DSDT (0) |
#define ACPI_TABLE_INDEX_FACS (1) |
typedef struct acpi_find_context |
{ |
char *SearchFor; |
ACPI_HANDLE *List; |
UINT32 *Count; |
} ACPI_FIND_CONTEXT; |
typedef struct acpi_ns_search_data |
{ |
ACPI_NAMESPACE_NODE *Node; |
} ACPI_NS_SEARCH_DATA; |
/* Object types used during package copies */ |
#define ACPI_COPY_TYPE_SIMPLE 0 |
#define ACPI_COPY_TYPE_PACKAGE 1 |
/* Info structure used to convert external<->internal namestrings */ |
typedef struct acpi_namestring_info |
{ |
const char *ExternalName; |
const char *NextExternalChar; |
char *InternalName; |
UINT32 Length; |
UINT32 NumSegments; |
UINT32 NumCarats; |
BOOLEAN FullyQualified; |
} ACPI_NAMESTRING_INFO; |
/* Field creation info */ |
typedef struct acpi_create_field_info |
{ |
ACPI_NAMESPACE_NODE *RegionNode; |
ACPI_NAMESPACE_NODE *FieldNode; |
ACPI_NAMESPACE_NODE *RegisterNode; |
ACPI_NAMESPACE_NODE *DataRegisterNode; |
UINT32 BankValue; |
UINT32 FieldBitPosition; |
UINT32 FieldBitLength; |
UINT8 FieldFlags; |
UINT8 Attribute; |
UINT8 FieldType; |
} ACPI_CREATE_FIELD_INFO; |
typedef |
ACPI_STATUS (*ACPI_INTERNAL_METHOD) ( |
struct acpi_walk_state *WalkState); |
/* |
* Bitmapped ACPI types. Used internally only |
*/ |
#define ACPI_BTYPE_ANY 0x00000000 |
#define ACPI_BTYPE_INTEGER 0x00000001 |
#define ACPI_BTYPE_STRING 0x00000002 |
#define ACPI_BTYPE_BUFFER 0x00000004 |
#define ACPI_BTYPE_PACKAGE 0x00000008 |
#define ACPI_BTYPE_FIELD_UNIT 0x00000010 |
#define ACPI_BTYPE_DEVICE 0x00000020 |
#define ACPI_BTYPE_EVENT 0x00000040 |
#define ACPI_BTYPE_METHOD 0x00000080 |
#define ACPI_BTYPE_MUTEX 0x00000100 |
#define ACPI_BTYPE_REGION 0x00000200 |
#define ACPI_BTYPE_POWER 0x00000400 |
#define ACPI_BTYPE_PROCESSOR 0x00000800 |
#define ACPI_BTYPE_THERMAL 0x00001000 |
#define ACPI_BTYPE_BUFFER_FIELD 0x00002000 |
#define ACPI_BTYPE_DDB_HANDLE 0x00004000 |
#define ACPI_BTYPE_DEBUG_OBJECT 0x00008000 |
#define ACPI_BTYPE_REFERENCE 0x00010000 |
#define ACPI_BTYPE_RESOURCE 0x00020000 |
#define ACPI_BTYPE_COMPUTE_DATA (ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER) |
#define ACPI_BTYPE_DATA (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_PACKAGE) |
#define ACPI_BTYPE_DATA_REFERENCE (ACPI_BTYPE_DATA | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE) |
#define ACPI_BTYPE_DEVICE_OBJECTS (ACPI_BTYPE_DEVICE | ACPI_BTYPE_THERMAL | ACPI_BTYPE_PROCESSOR) |
#define ACPI_BTYPE_OBJECTS_AND_REFS 0x0001FFFF /* ARG or LOCAL */ |
#define ACPI_BTYPE_ALL_OBJECTS 0x0000FFFF |
/* |
* Information structure for ACPI predefined names. |
* Each entry in the table contains the following items: |
* |
* Name - The ACPI reserved name |
* ParamCount - Number of arguments to the method |
* ExpectedReturnBtypes - Allowed type(s) for the return value |
*/ |
typedef struct acpi_name_info |
{ |
char Name[ACPI_NAME_SIZE]; |
UINT8 ParamCount; |
UINT8 ExpectedBtypes; |
} ACPI_NAME_INFO; |
/* |
* Secondary information structures for ACPI predefined objects that return |
* package objects. This structure appears as the next entry in the table |
* after the NAME_INFO structure above. |
* |
* The reason for this is to minimize the size of the predefined name table. |
*/ |
/* |
* Used for ACPI_PTYPE1_FIXED, ACPI_PTYPE1_VAR, ACPI_PTYPE2, |
* ACPI_PTYPE2_MIN, ACPI_PTYPE2_PKG_COUNT, ACPI_PTYPE2_COUNT |
*/ |
typedef struct acpi_package_info |
{ |
UINT8 Type; |
UINT8 ObjectType1; |
UINT8 Count1; |
UINT8 ObjectType2; |
UINT8 Count2; |
UINT8 Reserved; |
} ACPI_PACKAGE_INFO; |
/* Used for ACPI_PTYPE2_FIXED */ |
typedef struct acpi_package_info2 |
{ |
UINT8 Type; |
UINT8 Count; |
UINT8 ObjectType[4]; |
} ACPI_PACKAGE_INFO2; |
/* Used for ACPI_PTYPE1_OPTION */ |
typedef struct acpi_package_info3 |
{ |
UINT8 Type; |
UINT8 Count; |
UINT8 ObjectType[2]; |
UINT8 TailObjectType; |
UINT8 Reserved; |
} ACPI_PACKAGE_INFO3; |
typedef union acpi_predefined_info |
{ |
ACPI_NAME_INFO Info; |
ACPI_PACKAGE_INFO RetInfo; |
ACPI_PACKAGE_INFO2 RetInfo2; |
ACPI_PACKAGE_INFO3 RetInfo3; |
} ACPI_PREDEFINED_INFO; |
/* Data block used during object validation */ |
typedef struct acpi_predefined_data |
{ |
char *Pathname; |
const ACPI_PREDEFINED_INFO *Predefined; |
union acpi_operand_object *ParentPackage; |
UINT32 Flags; |
UINT8 NodeFlags; |
} ACPI_PREDEFINED_DATA; |
/* Defines for Flags field above */ |
#define ACPI_OBJECT_REPAIRED 1 |
/* |
* Bitmapped return value types |
* Note: the actual data types must be contiguous, a loop in nspredef.c |
* depends on this. |
*/ |
#define ACPI_RTYPE_ANY 0x00 |
#define ACPI_RTYPE_NONE 0x01 |
#define ACPI_RTYPE_INTEGER 0x02 |
#define ACPI_RTYPE_STRING 0x04 |
#define ACPI_RTYPE_BUFFER 0x08 |
#define ACPI_RTYPE_PACKAGE 0x10 |
#define ACPI_RTYPE_REFERENCE 0x20 |
#define ACPI_RTYPE_ALL 0x3F |
#define ACPI_NUM_RTYPES 5 /* Number of actual object types */ |
/***************************************************************************** |
* |
* Event typedefs and structs |
* |
****************************************************************************/ |
/* Dispatch info for each GPE -- either a method or handler, cannot be both */ |
typedef struct acpi_handler_info |
{ |
ACPI_EVENT_HANDLER Address; /* Address of handler, if any */ |
void *Context; /* Context to be passed to handler */ |
ACPI_NAMESPACE_NODE *MethodNode; /* Method node for this GPE level (saved) */ |
} ACPI_HANDLER_INFO; |
typedef union acpi_gpe_dispatch_info |
{ |
ACPI_NAMESPACE_NODE *MethodNode; /* Method node for this GPE level */ |
struct acpi_handler_info *Handler; |
} ACPI_GPE_DISPATCH_INFO; |
/* |
* Information about a GPE, one per each GPE in an array. |
* NOTE: Important to keep this struct as small as possible. |
*/ |
typedef struct acpi_gpe_event_info |
{ |
union acpi_gpe_dispatch_info Dispatch; /* Either Method or Handler */ |
struct acpi_gpe_register_info *RegisterInfo; /* Backpointer to register info */ |
UINT8 Flags; /* Misc info about this GPE */ |
UINT8 GpeNumber; /* This GPE */ |
UINT8 RuntimeCount; /* References to a run GPE */ |
UINT8 WakeupCount; /* References to a wake GPE */ |
} ACPI_GPE_EVENT_INFO; |
/* Information about a GPE register pair, one per each status/enable pair in an array */ |
typedef struct acpi_gpe_register_info |
{ |
ACPI_GENERIC_ADDRESS StatusAddress; /* Address of status reg */ |
ACPI_GENERIC_ADDRESS EnableAddress; /* Address of enable reg */ |
UINT8 EnableForWake; /* GPEs to keep enabled when sleeping */ |
UINT8 EnableForRun; /* GPEs to keep enabled when running */ |
UINT8 BaseGpeNumber; /* Base GPE number for this register */ |
} ACPI_GPE_REGISTER_INFO; |
/* |
* Information about a GPE register block, one per each installed block -- |
* GPE0, GPE1, and one per each installed GPE Block Device. |
*/ |
typedef struct acpi_gpe_block_info |
{ |
ACPI_NAMESPACE_NODE *Node; |
struct acpi_gpe_block_info *Previous; |
struct acpi_gpe_block_info *Next; |
struct acpi_gpe_xrupt_info *XruptBlock; /* Backpointer to interrupt block */ |
ACPI_GPE_REGISTER_INFO *RegisterInfo; /* One per GPE register pair */ |
ACPI_GPE_EVENT_INFO *EventInfo; /* One for each GPE */ |
ACPI_GENERIC_ADDRESS BlockAddress; /* Base address of the block */ |
UINT32 RegisterCount; /* Number of register pairs in block */ |
UINT16 GpeCount; /* Number of individual GPEs in block */ |
UINT8 BlockBaseNumber;/* Base GPE number for this block */ |
} ACPI_GPE_BLOCK_INFO; |
/* Information about GPE interrupt handlers, one per each interrupt level used for GPEs */ |
typedef struct acpi_gpe_xrupt_info |
{ |
struct acpi_gpe_xrupt_info *Previous; |
struct acpi_gpe_xrupt_info *Next; |
ACPI_GPE_BLOCK_INFO *GpeBlockListHead; /* List of GPE blocks for this xrupt */ |
UINT32 InterruptNumber; /* System interrupt number */ |
} ACPI_GPE_XRUPT_INFO; |
typedef struct acpi_gpe_walk_info |
{ |
ACPI_NAMESPACE_NODE *GpeDevice; |
ACPI_GPE_BLOCK_INFO *GpeBlock; |
UINT16 Count; |
ACPI_OWNER_ID OwnerId; |
BOOLEAN EnableThisGpe; |
BOOLEAN ExecuteByOwnerId; |
} ACPI_GPE_WALK_INFO; |
typedef struct acpi_gpe_device_info |
{ |
UINT32 Index; |
UINT32 NextBlockBaseIndex; |
ACPI_STATUS Status; |
ACPI_NAMESPACE_NODE *GpeDevice; |
} ACPI_GPE_DEVICE_INFO; |
typedef ACPI_STATUS (*ACPI_GPE_CALLBACK) ( |
ACPI_GPE_XRUPT_INFO *GpeXruptInfo, |
ACPI_GPE_BLOCK_INFO *GpeBlock, |
void *Context); |
/* Information about each particular fixed event */ |
typedef struct acpi_fixed_event_handler |
{ |
ACPI_EVENT_HANDLER Handler; /* Address of handler. */ |
void *Context; /* Context to be passed to handler */ |
} ACPI_FIXED_EVENT_HANDLER; |
typedef struct acpi_fixed_event_info |
{ |
UINT8 StatusRegisterId; |
UINT8 EnableRegisterId; |
UINT16 StatusBitMask; |
UINT16 EnableBitMask; |
} ACPI_FIXED_EVENT_INFO; |
/* Information used during field processing */ |
typedef struct acpi_field_info |
{ |
UINT8 SkipField; |
UINT8 FieldFlag; |
UINT32 PkgLength; |
} ACPI_FIELD_INFO; |
/***************************************************************************** |
* |
* Generic "state" object for stacks |
* |
****************************************************************************/ |
#define ACPI_CONTROL_NORMAL 0xC0 |
#define ACPI_CONTROL_CONDITIONAL_EXECUTING 0xC1 |
#define ACPI_CONTROL_PREDICATE_EXECUTING 0xC2 |
#define ACPI_CONTROL_PREDICATE_FALSE 0xC3 |
#define ACPI_CONTROL_PREDICATE_TRUE 0xC4 |
#define ACPI_STATE_COMMON \ |
void *Next; \ |
UINT8 DescriptorType; /* To differentiate various internal objs */\ |
UINT8 Flags; \ |
UINT16 Value; \ |
UINT16 State; |
/* There are 2 bytes available here until the next natural alignment boundary */ |
typedef struct acpi_common_state |
{ |
ACPI_STATE_COMMON |
} ACPI_COMMON_STATE; |
/* |
* Update state - used to traverse complex objects such as packages |
*/ |
typedef struct acpi_update_state |
{ |
ACPI_STATE_COMMON |
union acpi_operand_object *Object; |
} ACPI_UPDATE_STATE; |
/* |
* Pkg state - used to traverse nested package structures |
*/ |
typedef struct acpi_pkg_state |
{ |
ACPI_STATE_COMMON |
UINT16 Index; |
union acpi_operand_object *SourceObject; |
union acpi_operand_object *DestObject; |
struct acpi_walk_state *WalkState; |
void *ThisTargetObj; |
UINT32 NumPackages; |
} ACPI_PKG_STATE; |
/* |
* Control state - one per if/else and while constructs. |
* Allows nesting of these constructs |
*/ |
typedef struct acpi_control_state |
{ |
ACPI_STATE_COMMON |
UINT16 Opcode; |
union acpi_parse_object *PredicateOp; |
UINT8 *AmlPredicateStart; /* Start of if/while predicate */ |
UINT8 *PackageEnd; /* End of if/while block */ |
UINT32 LoopCount; /* While() loop counter */ |
} ACPI_CONTROL_STATE; |
/* |
* Scope state - current scope during namespace lookups |
*/ |
typedef struct acpi_scope_state |
{ |
ACPI_STATE_COMMON |
ACPI_NAMESPACE_NODE *Node; |
} ACPI_SCOPE_STATE; |
typedef struct acpi_pscope_state |
{ |
ACPI_STATE_COMMON |
UINT32 ArgCount; /* Number of fixed arguments */ |
union acpi_parse_object *Op; /* Current op being parsed */ |
UINT8 *ArgEnd; /* Current argument end */ |
UINT8 *PkgEnd; /* Current package end */ |
UINT32 ArgList; /* Next argument to parse */ |
} ACPI_PSCOPE_STATE; |
/* |
* Thread state - one per thread across multiple walk states. Multiple walk |
* states are created when there are nested control methods executing. |
*/ |
typedef struct acpi_thread_state |
{ |
ACPI_STATE_COMMON |
UINT8 CurrentSyncLevel; /* Mutex Sync (nested acquire) level */ |
struct acpi_walk_state *WalkStateList; /* Head of list of WalkStates for this thread */ |
union acpi_operand_object *AcquiredMutexList; /* List of all currently acquired mutexes */ |
ACPI_THREAD_ID ThreadId; /* Running thread ID */ |
} ACPI_THREAD_STATE; |
/* |
* Result values - used to accumulate the results of nested |
* AML arguments |
*/ |
typedef struct acpi_result_values |
{ |
ACPI_STATE_COMMON |
union acpi_operand_object *ObjDesc [ACPI_RESULTS_FRAME_OBJ_NUM]; |
} ACPI_RESULT_VALUES; |
typedef |
ACPI_STATUS (*ACPI_PARSE_DOWNWARDS) ( |
struct acpi_walk_state *WalkState, |
union acpi_parse_object **OutOp); |
typedef |
ACPI_STATUS (*ACPI_PARSE_UPWARDS) ( |
struct acpi_walk_state *WalkState); |
/* |
* Notify info - used to pass info to the deferred notify |
* handler/dispatcher. |
*/ |
typedef struct acpi_notify_info |
{ |
ACPI_STATE_COMMON |
ACPI_NAMESPACE_NODE *Node; |
union acpi_operand_object *HandlerObj; |
} ACPI_NOTIFY_INFO; |
/* Generic state is union of structs above */ |
typedef union acpi_generic_state |
{ |
ACPI_COMMON_STATE Common; |
ACPI_CONTROL_STATE Control; |
ACPI_UPDATE_STATE Update; |
ACPI_SCOPE_STATE Scope; |
ACPI_PSCOPE_STATE ParseScope; |
ACPI_PKG_STATE Pkg; |
ACPI_THREAD_STATE Thread; |
ACPI_RESULT_VALUES Results; |
ACPI_NOTIFY_INFO Notify; |
} ACPI_GENERIC_STATE; |
/***************************************************************************** |
* |
* Interpreter typedefs and structs |
* |
****************************************************************************/ |
typedef |
ACPI_STATUS (*ACPI_EXECUTE_OP) ( |
struct acpi_walk_state *WalkState); |
/***************************************************************************** |
* |
* Parser typedefs and structs |
* |
****************************************************************************/ |
/* |
* AML opcode, name, and argument layout |
*/ |
typedef struct acpi_opcode_info |
{ |
#if defined(ACPI_DISASSEMBLER) || defined(ACPI_DEBUG_OUTPUT) |
char *Name; /* Opcode name (disassembler/debug only) */ |
#endif |
UINT32 ParseArgs; /* Grammar/Parse time arguments */ |
UINT32 RuntimeArgs; /* Interpret time arguments */ |
UINT16 Flags; /* Misc flags */ |
UINT8 ObjectType; /* Corresponding internal object type */ |
UINT8 Class; /* Opcode class */ |
UINT8 Type; /* Opcode type */ |
} ACPI_OPCODE_INFO; |
typedef union acpi_parse_value |
{ |
UINT64 Integer; /* Integer constant (Up to 64 bits) */ |
UINT32 Size; /* bytelist or field size */ |
char *String; /* NULL terminated string */ |
UINT8 *Buffer; /* buffer or string */ |
char *Name; /* NULL terminated string */ |
union acpi_parse_object *Arg; /* arguments and contained ops */ |
} ACPI_PARSE_VALUE; |
#ifdef ACPI_DISASSEMBLER |
#define ACPI_DISASM_ONLY_MEMBERS(a) a; |
#else |
#define ACPI_DISASM_ONLY_MEMBERS(a) |
#endif |
#define ACPI_PARSE_COMMON \ |
union acpi_parse_object *Parent; /* Parent op */\ |
UINT8 DescriptorType; /* To differentiate various internal objs */\ |
UINT8 Flags; /* Type of Op */\ |
UINT16 AmlOpcode; /* AML opcode */\ |
UINT32 AmlOffset; /* Offset of declaration in AML */\ |
union acpi_parse_object *Next; /* Next op */\ |
ACPI_NAMESPACE_NODE *Node; /* For use by interpreter */\ |
ACPI_PARSE_VALUE Value; /* Value or args associated with the opcode */\ |
UINT8 ArgListLength; /* Number of elements in the arg list */\ |
ACPI_DISASM_ONLY_MEMBERS (\ |
UINT8 DisasmFlags; /* Used during AML disassembly */\ |
UINT8 DisasmOpcode; /* Subtype used for disassembly */\ |
char AmlOpName[16]) /* Op name (debug only) */ |
#define ACPI_DASM_BUFFER 0x00 |
#define ACPI_DASM_RESOURCE 0x01 |
#define ACPI_DASM_STRING 0x02 |
#define ACPI_DASM_UNICODE 0x03 |
#define ACPI_DASM_EISAID 0x04 |
#define ACPI_DASM_MATCHOP 0x05 |
#define ACPI_DASM_LNOT_PREFIX 0x06 |
#define ACPI_DASM_LNOT_SUFFIX 0x07 |
#define ACPI_DASM_IGNORE 0x08 |
/* |
* Generic operation (for example: If, While, Store) |
*/ |
typedef struct acpi_parse_obj_common |
{ |
ACPI_PARSE_COMMON |
} ACPI_PARSE_OBJ_COMMON; |
/* |
* Extended Op for named ops (Scope, Method, etc.), deferred ops (Methods and OpRegions), |
* and bytelists. |
*/ |
typedef struct acpi_parse_obj_named |
{ |
ACPI_PARSE_COMMON |
UINT8 *Path; |
UINT8 *Data; /* AML body or bytelist data */ |
UINT32 Length; /* AML length */ |
UINT32 Name; /* 4-byte name or zero if no name */ |
} ACPI_PARSE_OBJ_NAMED; |
/* This version is used by the iASL compiler only */ |
#define ACPI_MAX_PARSEOP_NAME 20 |
typedef struct acpi_parse_obj_asl |
{ |
ACPI_PARSE_COMMON |
union acpi_parse_object *Child; |
union acpi_parse_object *ParentMethod; |
char *Filename; |
char *ExternalName; |
char *Namepath; |
char NameSeg[4]; |
UINT32 ExtraValue; |
UINT32 Column; |
UINT32 LineNumber; |
UINT32 LogicalLineNumber; |
UINT32 LogicalByteOffset; |
UINT32 EndLine; |
UINT32 EndLogicalLine; |
UINT32 AcpiBtype; |
UINT32 AmlLength; |
UINT32 AmlSubtreeLength; |
UINT32 FinalAmlLength; |
UINT32 FinalAmlOffset; |
UINT32 CompileFlags; |
UINT16 ParseOpcode; |
UINT8 AmlOpcodeLength; |
UINT8 AmlPkgLenBytes; |
UINT8 Extra; |
char ParseOpName[ACPI_MAX_PARSEOP_NAME]; |
} ACPI_PARSE_OBJ_ASL; |
typedef union acpi_parse_object |
{ |
ACPI_PARSE_OBJ_COMMON Common; |
ACPI_PARSE_OBJ_NAMED Named; |
ACPI_PARSE_OBJ_ASL Asl; |
} ACPI_PARSE_OBJECT; |
/* |
* Parse state - one state per parser invocation and each control |
* method. |
*/ |
typedef struct acpi_parse_state |
{ |
UINT8 *AmlStart; /* First AML byte */ |
UINT8 *Aml; /* Next AML byte */ |
UINT8 *AmlEnd; /* (last + 1) AML byte */ |
UINT8 *PkgStart; /* Current package begin */ |
UINT8 *PkgEnd; /* Current package end */ |
union acpi_parse_object *StartOp; /* Root of parse tree */ |
struct acpi_namespace_node *StartNode; |
union acpi_generic_state *Scope; /* Current scope */ |
union acpi_parse_object *StartScope; |
UINT32 AmlSize; |
} ACPI_PARSE_STATE; |
/* Parse object flags */ |
#define ACPI_PARSEOP_GENERIC 0x01 |
#define ACPI_PARSEOP_NAMED 0x02 |
#define ACPI_PARSEOP_DEFERRED 0x04 |
#define ACPI_PARSEOP_BYTELIST 0x08 |
#define ACPI_PARSEOP_IN_STACK 0x10 |
#define ACPI_PARSEOP_TARGET 0x20 |
#define ACPI_PARSEOP_IN_CACHE 0x80 |
/* Parse object DisasmFlags */ |
#define ACPI_PARSEOP_IGNORE 0x01 |
#define ACPI_PARSEOP_PARAMLIST 0x02 |
#define ACPI_PARSEOP_EMPTY_TERMLIST 0x04 |
#define ACPI_PARSEOP_SPECIAL 0x10 |
/***************************************************************************** |
* |
* Hardware (ACPI registers) and PNP |
* |
****************************************************************************/ |
typedef struct acpi_bit_register_info |
{ |
UINT8 ParentRegister; |
UINT8 BitPosition; |
UINT16 AccessBitMask; |
} ACPI_BIT_REGISTER_INFO; |
/* |
* Some ACPI registers have bits that must be ignored -- meaning that they |
* must be preserved. |
*/ |
#define ACPI_PM1_STATUS_PRESERVED_BITS 0x0800 /* Bit 11 */ |
/* Write-only bits must be zeroed by software */ |
#define ACPI_PM1_CONTROL_WRITEONLY_BITS 0x2004 /* Bits 13, 2 */ |
/* For control registers, both ignored and reserved bits must be preserved */ |
/* |
* For PM1 control, the SCI enable bit (bit 0, SCI_EN) is defined by the |
* ACPI specification to be a "preserved" bit - "OSPM always preserves this |
* bit position", section 4.7.3.2.1. However, on some machines the OS must |
* write a one to this bit after resume for the machine to work properly. |
* To enable this, we no longer attempt to preserve this bit. No machines |
* are known to fail if the bit is not preserved. (May 2009) |
*/ |
#define ACPI_PM1_CONTROL_IGNORED_BITS 0x0200 /* Bit 9 */ |
#define ACPI_PM1_CONTROL_RESERVED_BITS 0xC1F8 /* Bits 14-15, 3-8 */ |
#define ACPI_PM1_CONTROL_PRESERVED_BITS \ |
(ACPI_PM1_CONTROL_IGNORED_BITS | ACPI_PM1_CONTROL_RESERVED_BITS) |
#define ACPI_PM2_CONTROL_PRESERVED_BITS 0xFFFFFFFE /* All except bit 0 */ |
/* |
* Register IDs |
* These are the full ACPI registers |
*/ |
#define ACPI_REGISTER_PM1_STATUS 0x01 |
#define ACPI_REGISTER_PM1_ENABLE 0x02 |
#define ACPI_REGISTER_PM1_CONTROL 0x03 |
#define ACPI_REGISTER_PM2_CONTROL 0x04 |
#define ACPI_REGISTER_PM_TIMER 0x05 |
#define ACPI_REGISTER_PROCESSOR_BLOCK 0x06 |
#define ACPI_REGISTER_SMI_COMMAND_BLOCK 0x07 |
/* Masks used to access the BitRegisters */ |
#define ACPI_BITMASK_TIMER_STATUS 0x0001 |
#define ACPI_BITMASK_BUS_MASTER_STATUS 0x0010 |
#define ACPI_BITMASK_GLOBAL_LOCK_STATUS 0x0020 |
#define ACPI_BITMASK_POWER_BUTTON_STATUS 0x0100 |
#define ACPI_BITMASK_SLEEP_BUTTON_STATUS 0x0200 |
#define ACPI_BITMASK_RT_CLOCK_STATUS 0x0400 |
#define ACPI_BITMASK_PCIEXP_WAKE_STATUS 0x4000 /* ACPI 3.0 */ |
#define ACPI_BITMASK_WAKE_STATUS 0x8000 |
#define ACPI_BITMASK_ALL_FIXED_STATUS (\ |
ACPI_BITMASK_TIMER_STATUS | \ |
ACPI_BITMASK_BUS_MASTER_STATUS | \ |
ACPI_BITMASK_GLOBAL_LOCK_STATUS | \ |
ACPI_BITMASK_POWER_BUTTON_STATUS | \ |
ACPI_BITMASK_SLEEP_BUTTON_STATUS | \ |
ACPI_BITMASK_RT_CLOCK_STATUS | \ |
ACPI_BITMASK_WAKE_STATUS) |
#define ACPI_BITMASK_TIMER_ENABLE 0x0001 |
#define ACPI_BITMASK_GLOBAL_LOCK_ENABLE 0x0020 |
#define ACPI_BITMASK_POWER_BUTTON_ENABLE 0x0100 |
#define ACPI_BITMASK_SLEEP_BUTTON_ENABLE 0x0200 |
#define ACPI_BITMASK_RT_CLOCK_ENABLE 0x0400 |
#define ACPI_BITMASK_PCIEXP_WAKE_DISABLE 0x4000 /* ACPI 3.0 */ |
#define ACPI_BITMASK_SCI_ENABLE 0x0001 |
#define ACPI_BITMASK_BUS_MASTER_RLD 0x0002 |
#define ACPI_BITMASK_GLOBAL_LOCK_RELEASE 0x0004 |
#define ACPI_BITMASK_SLEEP_TYPE 0x1C00 |
#define ACPI_BITMASK_SLEEP_ENABLE 0x2000 |
#define ACPI_BITMASK_ARB_DISABLE 0x0001 |
/* Raw bit position of each BitRegister */ |
#define ACPI_BITPOSITION_TIMER_STATUS 0x00 |
#define ACPI_BITPOSITION_BUS_MASTER_STATUS 0x04 |
#define ACPI_BITPOSITION_GLOBAL_LOCK_STATUS 0x05 |
#define ACPI_BITPOSITION_POWER_BUTTON_STATUS 0x08 |
#define ACPI_BITPOSITION_SLEEP_BUTTON_STATUS 0x09 |
#define ACPI_BITPOSITION_RT_CLOCK_STATUS 0x0A |
#define ACPI_BITPOSITION_PCIEXP_WAKE_STATUS 0x0E /* ACPI 3.0 */ |
#define ACPI_BITPOSITION_WAKE_STATUS 0x0F |
#define ACPI_BITPOSITION_TIMER_ENABLE 0x00 |
#define ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE 0x05 |
#define ACPI_BITPOSITION_POWER_BUTTON_ENABLE 0x08 |
#define ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE 0x09 |
#define ACPI_BITPOSITION_RT_CLOCK_ENABLE 0x0A |
#define ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE 0x0E /* ACPI 3.0 */ |
#define ACPI_BITPOSITION_SCI_ENABLE 0x00 |
#define ACPI_BITPOSITION_BUS_MASTER_RLD 0x01 |
#define ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE 0x02 |
#define ACPI_BITPOSITION_SLEEP_TYPE 0x0A |
#define ACPI_BITPOSITION_SLEEP_ENABLE 0x0D |
#define ACPI_BITPOSITION_ARB_DISABLE 0x00 |
/* Structs and definitions for _OSI support and I/O port validation */ |
#define ACPI_OSI_WIN_2000 0x01 |
#define ACPI_OSI_WIN_XP 0x02 |
#define ACPI_OSI_WIN_XP_SP1 0x03 |
#define ACPI_OSI_WINSRV_2003 0x04 |
#define ACPI_OSI_WIN_XP_SP2 0x05 |
#define ACPI_OSI_WINSRV_2003_SP1 0x06 |
#define ACPI_OSI_WIN_VISTA 0x07 |
#define ACPI_OSI_WINSRV_2008 0x08 |
#define ACPI_OSI_WIN_VISTA_SP1 0x09 |
#define ACPI_OSI_WIN_7 0x0A |
#define ACPI_ALWAYS_ILLEGAL 0x00 |
typedef struct acpi_interface_info |
{ |
char *Name; |
UINT8 Value; |
} ACPI_INTERFACE_INFO; |
typedef struct acpi_port_info |
{ |
char *Name; |
UINT16 Start; |
UINT16 End; |
UINT8 OsiDependency; |
} ACPI_PORT_INFO; |
/***************************************************************************** |
* |
* Resource descriptors |
* |
****************************************************************************/ |
/* ResourceType values */ |
#define ACPI_ADDRESS_TYPE_MEMORY_RANGE 0 |
#define ACPI_ADDRESS_TYPE_IO_RANGE 1 |
#define ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE 2 |
/* Resource descriptor types and masks */ |
#define ACPI_RESOURCE_NAME_LARGE 0x80 |
#define ACPI_RESOURCE_NAME_SMALL 0x00 |
#define ACPI_RESOURCE_NAME_SMALL_MASK 0x78 /* Bits 6:3 contain the type */ |
#define ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK 0x07 /* Bits 2:0 contain the length */ |
#define ACPI_RESOURCE_NAME_LARGE_MASK 0x7F /* Bits 6:0 contain the type */ |
/* |
* Small resource descriptor "names" as defined by the ACPI specification. |
* Note: Bits 2:0 are used for the descriptor length |
*/ |
#define ACPI_RESOURCE_NAME_IRQ 0x20 |
#define ACPI_RESOURCE_NAME_DMA 0x28 |
#define ACPI_RESOURCE_NAME_START_DEPENDENT 0x30 |
#define ACPI_RESOURCE_NAME_END_DEPENDENT 0x38 |
#define ACPI_RESOURCE_NAME_IO 0x40 |
#define ACPI_RESOURCE_NAME_FIXED_IO 0x48 |
#define ACPI_RESOURCE_NAME_RESERVED_S1 0x50 |
#define ACPI_RESOURCE_NAME_RESERVED_S2 0x58 |
#define ACPI_RESOURCE_NAME_RESERVED_S3 0x60 |
#define ACPI_RESOURCE_NAME_RESERVED_S4 0x68 |
#define ACPI_RESOURCE_NAME_VENDOR_SMALL 0x70 |
#define ACPI_RESOURCE_NAME_END_TAG 0x78 |
/* |
* Large resource descriptor "names" as defined by the ACPI specification. |
* Note: includes the Large Descriptor bit in bit[7] |
*/ |
#define ACPI_RESOURCE_NAME_MEMORY24 0x81 |
#define ACPI_RESOURCE_NAME_GENERIC_REGISTER 0x82 |
#define ACPI_RESOURCE_NAME_RESERVED_L1 0x83 |
#define ACPI_RESOURCE_NAME_VENDOR_LARGE 0x84 |
#define ACPI_RESOURCE_NAME_MEMORY32 0x85 |
#define ACPI_RESOURCE_NAME_FIXED_MEMORY32 0x86 |
#define ACPI_RESOURCE_NAME_ADDRESS32 0x87 |
#define ACPI_RESOURCE_NAME_ADDRESS16 0x88 |
#define ACPI_RESOURCE_NAME_EXTENDED_IRQ 0x89 |
#define ACPI_RESOURCE_NAME_ADDRESS64 0x8A |
#define ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 0x8B |
#define ACPI_RESOURCE_NAME_LARGE_MAX 0x8B |
/***************************************************************************** |
* |
* Miscellaneous |
* |
****************************************************************************/ |
#define ACPI_ASCII_ZERO 0x30 |
/***************************************************************************** |
* |
* Disassembler |
* |
****************************************************************************/ |
typedef struct acpi_external_list |
{ |
char *Path; |
char *InternalPath; |
struct acpi_external_list *Next; |
UINT32 Value; |
UINT16 Length; |
UINT8 Type; |
UINT8 Flags; |
} ACPI_EXTERNAL_LIST; |
/* Values for Flags field above */ |
#define ACPI_IPATH_ALLOCATED 0x01 |
/***************************************************************************** |
* |
* Debugger |
* |
****************************************************************************/ |
typedef struct acpi_db_method_info |
{ |
ACPI_HANDLE MainThreadGate; |
ACPI_HANDLE ThreadCompleteGate; |
ACPI_HANDLE InfoGate; |
UINT32 *Threads; |
UINT32 NumThreads; |
UINT32 NumCreated; |
UINT32 NumCompleted; |
char *Name; |
UINT32 Flags; |
UINT32 NumLoops; |
char Pathname[128]; |
char **Args; |
/* |
* Arguments to be passed to method for the command |
* Threads - |
* the Number of threads, ID of current thread and |
* Index of current thread inside all them created. |
*/ |
char InitArgs; |
char *Arguments[4]; |
char NumThreadsStr[11]; |
char IdOfThreadStr[11]; |
char IndexOfThreadStr[11]; |
} ACPI_DB_METHOD_INFO; |
typedef struct acpi_integrity_info |
{ |
UINT32 Nodes; |
UINT32 Objects; |
} ACPI_INTEGRITY_INFO; |
#define ACPI_DB_REDIRECTABLE_OUTPUT 0x01 |
#define ACPI_DB_CONSOLE_OUTPUT 0x02 |
#define ACPI_DB_DUPLICATE_OUTPUT 0x03 |
/***************************************************************************** |
* |
* Debug |
* |
****************************************************************************/ |
/* Entry for a memory allocation (debug only) */ |
#define ACPI_MEM_MALLOC 0 |
#define ACPI_MEM_CALLOC 1 |
#define ACPI_MAX_MODULE_NAME 16 |
#define ACPI_COMMON_DEBUG_MEM_HEADER \ |
struct acpi_debug_mem_block *Previous; \ |
struct acpi_debug_mem_block *Next; \ |
UINT32 Size; \ |
UINT32 Component; \ |
UINT32 Line; \ |
char Module[ACPI_MAX_MODULE_NAME]; \ |
UINT8 AllocType; |
typedef struct acpi_debug_mem_header |
{ |
ACPI_COMMON_DEBUG_MEM_HEADER |
} ACPI_DEBUG_MEM_HEADER; |
typedef struct acpi_debug_mem_block |
{ |
ACPI_COMMON_DEBUG_MEM_HEADER |
UINT64 UserSpace; |
} ACPI_DEBUG_MEM_BLOCK; |
#define ACPI_MEM_LIST_GLOBAL 0 |
#define ACPI_MEM_LIST_NSNODE 1 |
#define ACPI_MEM_LIST_MAX 1 |
#define ACPI_NUM_MEM_LISTS 2 |
#endif /* __ACLOCAL_H__ */ |
/drivers/devman/acpica/include/acmacros.h |
---|
0,0 → 1,605 |
/****************************************************************************** |
* |
* Name: acmacros.h - C macros for the entire subsystem. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACMACROS_H__ |
#define __ACMACROS_H__ |
/* |
* Extract data using a pointer. Any more than a byte and we |
* get into potential aligment issues -- see the STORE macros below. |
* Use with care. |
*/ |
#define ACPI_GET8(ptr) *ACPI_CAST_PTR (UINT8, ptr) |
#define ACPI_GET16(ptr) *ACPI_CAST_PTR (UINT16, ptr) |
#define ACPI_GET32(ptr) *ACPI_CAST_PTR (UINT32, ptr) |
#define ACPI_GET64(ptr) *ACPI_CAST_PTR (UINT64, ptr) |
#define ACPI_SET8(ptr) *ACPI_CAST_PTR (UINT8, ptr) |
#define ACPI_SET16(ptr) *ACPI_CAST_PTR (UINT16, ptr) |
#define ACPI_SET32(ptr) *ACPI_CAST_PTR (UINT32, ptr) |
#define ACPI_SET64(ptr) *ACPI_CAST_PTR (UINT64, ptr) |
/* |
* printf() format helpers |
*/ |
/* Split 64-bit integer into two 32-bit values. Use with %8.8X%8.8X */ |
#define ACPI_FORMAT_UINT64(i) ACPI_HIDWORD(i), ACPI_LODWORD(i) |
#if ACPI_MACHINE_WIDTH == 64 |
#define ACPI_FORMAT_NATIVE_UINT(i) ACPI_FORMAT_UINT64(i) |
#else |
#define ACPI_FORMAT_NATIVE_UINT(i) 0, (i) |
#endif |
/* |
* Macros for moving data around to/from buffers that are possibly unaligned. |
* If the hardware supports the transfer of unaligned data, just do the store. |
* Otherwise, we have to move one byte at a time. |
*/ |
#ifdef ACPI_BIG_ENDIAN |
/* |
* Macros for big-endian machines |
*/ |
/* These macros reverse the bytes during the move, converting little-endian to big endian */ |
/* Big Endian <== Little Endian */ |
/* Hi...Lo Lo...Hi */ |
/* 16-bit source, 16/32/64 destination */ |
#define ACPI_MOVE_16_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[1];\ |
(( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[0];} |
#define ACPI_MOVE_16_TO_32(d, s) {(*(UINT32 *)(void *)(d))=0;\ |
((UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[1];\ |
((UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[0];} |
#define ACPI_MOVE_16_TO_64(d, s) {(*(UINT64 *)(void *)(d))=0;\ |
((UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\ |
((UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];} |
/* 32-bit source, 16/32/64 destination */ |
#define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ |
#define ACPI_MOVE_32_TO_32(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[3];\ |
(( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[2];\ |
(( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[1];\ |
(( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[0];} |
#define ACPI_MOVE_32_TO_64(d, s) {(*(UINT64 *)(void *)(d))=0;\ |
((UINT8 *)(void *)(d))[4] = ((UINT8 *)(void *)(s))[3];\ |
((UINT8 *)(void *)(d))[5] = ((UINT8 *)(void *)(s))[2];\ |
((UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\ |
((UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];} |
/* 64-bit source, 16/32/64 destination */ |
#define ACPI_MOVE_64_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ |
#define ACPI_MOVE_64_TO_32(d, s) ACPI_MOVE_32_TO_32(d, s) /* Truncate to 32 */ |
#define ACPI_MOVE_64_TO_64(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];\ |
(( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[6];\ |
(( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[5];\ |
(( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[4];\ |
(( UINT8 *)(void *)(d))[4] = ((UINT8 *)(void *)(s))[3];\ |
(( UINT8 *)(void *)(d))[5] = ((UINT8 *)(void *)(s))[2];\ |
(( UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\ |
(( UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];} |
#else |
/* |
* Macros for little-endian machines |
*/ |
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED |
/* The hardware supports unaligned transfers, just do the little-endian move */ |
/* 16-bit source, 16/32/64 destination */ |
#define ACPI_MOVE_16_TO_16(d, s) *(UINT16 *)(void *)(d) = *(UINT16 *)(void *)(s) |
#define ACPI_MOVE_16_TO_32(d, s) *(UINT32 *)(void *)(d) = *(UINT16 *)(void *)(s) |
#define ACPI_MOVE_16_TO_64(d, s) *(UINT64 *)(void *)(d) = *(UINT16 *)(void *)(s) |
/* 32-bit source, 16/32/64 destination */ |
#define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ |
#define ACPI_MOVE_32_TO_32(d, s) *(UINT32 *)(void *)(d) = *(UINT32 *)(void *)(s) |
#define ACPI_MOVE_32_TO_64(d, s) *(UINT64 *)(void *)(d) = *(UINT32 *)(void *)(s) |
/* 64-bit source, 16/32/64 destination */ |
#define ACPI_MOVE_64_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ |
#define ACPI_MOVE_64_TO_32(d, s) ACPI_MOVE_32_TO_32(d, s) /* Truncate to 32 */ |
#define ACPI_MOVE_64_TO_64(d, s) *(UINT64 *)(void *)(d) = *(UINT64 *)(void *)(s) |
#else |
/* |
* The hardware does not support unaligned transfers. We must move the |
* data one byte at a time. These macros work whether the source or |
* the destination (or both) is/are unaligned. (Little-endian move) |
*/ |
/* 16-bit source, 16/32/64 destination */ |
#define ACPI_MOVE_16_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\ |
(( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];} |
#define ACPI_MOVE_16_TO_32(d, s) {(*(UINT32 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d, s);} |
#define ACPI_MOVE_16_TO_64(d, s) {(*(UINT64 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d, s);} |
/* 32-bit source, 16/32/64 destination */ |
#define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ |
#define ACPI_MOVE_32_TO_32(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\ |
(( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];\ |
(( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[2];\ |
(( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[3];} |
#define ACPI_MOVE_32_TO_64(d, s) {(*(UINT64 *)(void *)(d)) = 0; ACPI_MOVE_32_TO_32(d, s);} |
/* 64-bit source, 16/32/64 destination */ |
#define ACPI_MOVE_64_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ |
#define ACPI_MOVE_64_TO_32(d, s) ACPI_MOVE_32_TO_32(d, s) /* Truncate to 32 */ |
#define ACPI_MOVE_64_TO_64(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\ |
(( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];\ |
(( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[2];\ |
(( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[3];\ |
(( UINT8 *)(void *)(d))[4] = ((UINT8 *)(void *)(s))[4];\ |
(( UINT8 *)(void *)(d))[5] = ((UINT8 *)(void *)(s))[5];\ |
(( UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[6];\ |
(( UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[7];} |
#endif |
#endif |
/* |
* Fast power-of-two math macros for non-optimized compilers |
*/ |
#define _ACPI_DIV(value, PowerOf2) ((UINT32) ((value) >> (PowerOf2))) |
#define _ACPI_MUL(value, PowerOf2) ((UINT32) ((value) << (PowerOf2))) |
#define _ACPI_MOD(value, Divisor) ((UINT32) ((value) & ((Divisor) -1))) |
#define ACPI_DIV_2(a) _ACPI_DIV(a, 1) |
#define ACPI_MUL_2(a) _ACPI_MUL(a, 1) |
#define ACPI_MOD_2(a) _ACPI_MOD(a, 2) |
#define ACPI_DIV_4(a) _ACPI_DIV(a, 2) |
#define ACPI_MUL_4(a) _ACPI_MUL(a, 2) |
#define ACPI_MOD_4(a) _ACPI_MOD(a, 4) |
#define ACPI_DIV_8(a) _ACPI_DIV(a, 3) |
#define ACPI_MUL_8(a) _ACPI_MUL(a, 3) |
#define ACPI_MOD_8(a) _ACPI_MOD(a, 8) |
#define ACPI_DIV_16(a) _ACPI_DIV(a, 4) |
#define ACPI_MUL_16(a) _ACPI_MUL(a, 4) |
#define ACPI_MOD_16(a) _ACPI_MOD(a, 16) |
#define ACPI_DIV_32(a) _ACPI_DIV(a, 5) |
#define ACPI_MUL_32(a) _ACPI_MUL(a, 5) |
#define ACPI_MOD_32(a) _ACPI_MOD(a, 32) |
/* |
* Rounding macros (Power of two boundaries only) |
*/ |
#define ACPI_ROUND_DOWN(value, boundary) (((ACPI_SIZE)(value)) & \ |
(~(((ACPI_SIZE) boundary)-1))) |
#define ACPI_ROUND_UP(value, boundary) ((((ACPI_SIZE)(value)) + \ |
(((ACPI_SIZE) boundary)-1)) & \ |
(~(((ACPI_SIZE) boundary)-1))) |
/* Note: sizeof(ACPI_SIZE) evaluates to either 4 or 8 (32- vs 64-bit mode) */ |
#define ACPI_ROUND_DOWN_TO_32BIT(a) ACPI_ROUND_DOWN(a, 4) |
#define ACPI_ROUND_DOWN_TO_64BIT(a) ACPI_ROUND_DOWN(a, 8) |
#define ACPI_ROUND_DOWN_TO_NATIVE_WORD(a) ACPI_ROUND_DOWN(a, sizeof(ACPI_SIZE)) |
#define ACPI_ROUND_UP_TO_32BIT(a) ACPI_ROUND_UP(a, 4) |
#define ACPI_ROUND_UP_TO_64BIT(a) ACPI_ROUND_UP(a, 8) |
#define ACPI_ROUND_UP_TO_NATIVE_WORD(a) ACPI_ROUND_UP(a, sizeof(ACPI_SIZE)) |
#define ACPI_ROUND_BITS_UP_TO_BYTES(a) ACPI_DIV_8((a) + 7) |
#define ACPI_ROUND_BITS_DOWN_TO_BYTES(a) ACPI_DIV_8((a)) |
#define ACPI_ROUND_UP_TO_1K(a) (((a) + 1023) >> 10) |
/* Generic (non-power-of-two) rounding */ |
#define ACPI_ROUND_UP_TO(value, boundary) (((value) + ((boundary)-1)) / (boundary)) |
#define ACPI_IS_MISALIGNED(value) (((ACPI_SIZE) value) & (sizeof(ACPI_SIZE)-1)) |
/* |
* Bitmask creation |
* Bit positions start at zero. |
* MASK_BITS_ABOVE creates a mask starting AT the position and above |
* MASK_BITS_BELOW creates a mask starting one bit BELOW the position |
*/ |
#define ACPI_MASK_BITS_ABOVE(position) (~((ACPI_UINT64_MAX) << ((UINT32) (position)))) |
#define ACPI_MASK_BITS_BELOW(position) ((ACPI_UINT64_MAX) << ((UINT32) (position))) |
/* Bitfields within ACPI registers */ |
#define ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask) ((Val << Pos) & Mask) |
#define ACPI_REGISTER_INSERT_VALUE(Reg, Pos, Mask, Val) Reg = (Reg & (~(Mask))) | ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask) |
#define ACPI_INSERT_BITS(Target, Mask, Source) Target = ((Target & (~(Mask))) | (Source & Mask)) |
/* |
* An ACPI_NAMESPACE_NODE can appear in some contexts |
* where a pointer to an ACPI_OPERAND_OBJECT can also |
* appear. This macro is used to distinguish them. |
* |
* The "Descriptor" field is the first field in both structures. |
*/ |
#define ACPI_GET_DESCRIPTOR_TYPE(d) (((ACPI_DESCRIPTOR *)(void *)(d))->Common.DescriptorType) |
#define ACPI_SET_DESCRIPTOR_TYPE(d, t) (((ACPI_DESCRIPTOR *)(void *)(d))->Common.DescriptorType = t) |
/* |
* Macros for the master AML opcode table |
*/ |
#if defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT) |
#define ACPI_OP(Name, PArgs, IArgs, ObjType, Class, Type, Flags) \ |
{Name, (UINT32)(PArgs), (UINT32)(IArgs), (UINT32)(Flags), ObjType, Class, Type} |
#else |
#define ACPI_OP(Name, PArgs, IArgs, ObjType, Class, Type, Flags) \ |
{(UINT32)(PArgs), (UINT32)(IArgs), (UINT32)(Flags), ObjType, Class, Type} |
#endif |
#define ARG_TYPE_WIDTH 5 |
#define ARG_1(x) ((UINT32)(x)) |
#define ARG_2(x) ((UINT32)(x) << (1 * ARG_TYPE_WIDTH)) |
#define ARG_3(x) ((UINT32)(x) << (2 * ARG_TYPE_WIDTH)) |
#define ARG_4(x) ((UINT32)(x) << (3 * ARG_TYPE_WIDTH)) |
#define ARG_5(x) ((UINT32)(x) << (4 * ARG_TYPE_WIDTH)) |
#define ARG_6(x) ((UINT32)(x) << (5 * ARG_TYPE_WIDTH)) |
#define ARGI_LIST1(a) (ARG_1(a)) |
#define ARGI_LIST2(a, b) (ARG_1(b)|ARG_2(a)) |
#define ARGI_LIST3(a, b, c) (ARG_1(c)|ARG_2(b)|ARG_3(a)) |
#define ARGI_LIST4(a, b, c, d) (ARG_1(d)|ARG_2(c)|ARG_3(b)|ARG_4(a)) |
#define ARGI_LIST5(a, b, c, d, e) (ARG_1(e)|ARG_2(d)|ARG_3(c)|ARG_4(b)|ARG_5(a)) |
#define ARGI_LIST6(a, b, c, d, e, f) (ARG_1(f)|ARG_2(e)|ARG_3(d)|ARG_4(c)|ARG_5(b)|ARG_6(a)) |
#define ARGP_LIST1(a) (ARG_1(a)) |
#define ARGP_LIST2(a, b) (ARG_1(a)|ARG_2(b)) |
#define ARGP_LIST3(a, b, c) (ARG_1(a)|ARG_2(b)|ARG_3(c)) |
#define ARGP_LIST4(a, b, c, d) (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)) |
#define ARGP_LIST5(a, b, c, d, e) (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e)) |
#define ARGP_LIST6(a, b, c, d, e, f) (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e)|ARG_6(f)) |
#define GET_CURRENT_ARG_TYPE(List) (List & ((UINT32) 0x1F)) |
#define INCREMENT_ARG_LIST(List) (List >>= ((UINT32) ARG_TYPE_WIDTH)) |
/* |
* Ascii error messages can be configured out |
*/ |
#ifndef ACPI_NO_ERROR_MESSAGES |
/* |
* Error reporting. Callers module and line number are inserted by AE_INFO, |
* the plist contains a set of parens to allow variable-length lists. |
* These macros are used for both the debug and non-debug versions of the code. |
*/ |
#define ACPI_ERROR_NAMESPACE(s, e) AcpiNsReportError (AE_INFO, s, e); |
#define ACPI_ERROR_METHOD(s, n, p, e) AcpiNsReportMethodError (AE_INFO, s, n, p, e); |
#define ACPI_WARN_PREDEFINED(plist) AcpiUtPredefinedWarning plist |
#define ACPI_INFO_PREDEFINED(plist) AcpiUtPredefinedInfo plist |
#else |
/* No error messages */ |
#define ACPI_ERROR_NAMESPACE(s, e) |
#define ACPI_ERROR_METHOD(s, n, p, e) |
#define ACPI_WARN_PREDEFINED(plist) |
#define ACPI_INFO_PREDEFINED(plist) |
#endif /* ACPI_NO_ERROR_MESSAGES */ |
/* |
* Debug macros that are conditionally compiled |
*/ |
#ifdef ACPI_DEBUG_OUTPUT |
/* |
* Function entry tracing |
*/ |
#define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \ |
AcpiUtTrace(ACPI_DEBUG_PARAMETERS) |
#define ACPI_FUNCTION_TRACE_PTR(a, b) ACPI_FUNCTION_NAME(a) \ |
AcpiUtTracePtr(ACPI_DEBUG_PARAMETERS, (void *)b) |
#define ACPI_FUNCTION_TRACE_U32(a, b) ACPI_FUNCTION_NAME(a) \ |
AcpiUtTraceU32(ACPI_DEBUG_PARAMETERS, (UINT32)b) |
#define ACPI_FUNCTION_TRACE_STR(a, b) ACPI_FUNCTION_NAME(a) \ |
AcpiUtTraceStr(ACPI_DEBUG_PARAMETERS, (char *)b) |
#define ACPI_FUNCTION_ENTRY() AcpiUtTrackStackPtr() |
/* |
* Function exit tracing. |
* WARNING: These macros include a return statement. This is usually considered |
* bad form, but having a separate exit macro is very ugly and difficult to maintain. |
* One of the FUNCTION_TRACE macros above must be used in conjunction with these macros |
* so that "_AcpiFunctionName" is defined. |
* |
* Note: the DO_WHILE0 macro is used to prevent some compilers from complaining |
* about these constructs. |
*/ |
#ifdef ACPI_USE_DO_WHILE_0 |
#define ACPI_DO_WHILE0(a) do a while(0) |
#else |
#define ACPI_DO_WHILE0(a) a |
#endif |
#define return_VOID ACPI_DO_WHILE0 ({ \ |
AcpiUtExit (ACPI_DEBUG_PARAMETERS); \ |
return;}) |
/* |
* There are two versions of most of the return macros. The default version is |
* safer, since it avoids side-effects by guaranteeing that the argument will |
* not be evaluated twice. |
* |
* A less-safe version of the macros is provided for optional use if the |
* compiler uses excessive CPU stack (for example, this may happen in the |
* debug case if code optimzation is disabled.) |
*/ |
#ifndef ACPI_SIMPLE_RETURN_MACROS |
#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({ \ |
register ACPI_STATUS _s = (s); \ |
AcpiUtStatusExit (ACPI_DEBUG_PARAMETERS, _s); \ |
return (_s); }) |
#define return_PTR(s) ACPI_DO_WHILE0 ({ \ |
register void *_s = (void *) (s); \ |
AcpiUtPtrExit (ACPI_DEBUG_PARAMETERS, (UINT8 *) _s); \ |
return (_s); }) |
#define return_VALUE(s) ACPI_DO_WHILE0 ({ \ |
register UINT64 _s = (s); \ |
AcpiUtValueExit (ACPI_DEBUG_PARAMETERS, _s); \ |
return (_s); }) |
#define return_UINT8(s) ACPI_DO_WHILE0 ({ \ |
register UINT8 _s = (UINT8) (s); \ |
AcpiUtValueExit (ACPI_DEBUG_PARAMETERS, (UINT64) _s); \ |
return (_s); }) |
#define return_UINT32(s) ACPI_DO_WHILE0 ({ \ |
register UINT32 _s = (UINT32) (s); \ |
AcpiUtValueExit (ACPI_DEBUG_PARAMETERS, (UINT64) _s); \ |
return (_s); }) |
#else /* Use original less-safe macros */ |
#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({ \ |
AcpiUtStatusExit (ACPI_DEBUG_PARAMETERS, (s)); \ |
return((s)); }) |
#define return_PTR(s) ACPI_DO_WHILE0 ({ \ |
AcpiUtPtrExit (ACPI_DEBUG_PARAMETERS, (UINT8 *) (s)); \ |
return((s)); }) |
#define return_VALUE(s) ACPI_DO_WHILE0 ({ \ |
AcpiUtValueExit (ACPI_DEBUG_PARAMETERS, (UINT64) (s)); \ |
return((s)); }) |
#define return_UINT8(s) return_VALUE(s) |
#define return_UINT32(s) return_VALUE(s) |
#endif /* ACPI_SIMPLE_RETURN_MACROS */ |
/* Conditional execution */ |
#define ACPI_DEBUG_EXEC(a) a |
#define ACPI_DEBUG_ONLY_MEMBERS(a) a; |
#define _VERBOSE_STRUCTURES |
/* Various object display routines for debug */ |
#define ACPI_DUMP_STACK_ENTRY(a) AcpiExDumpOperand((a), 0) |
#define ACPI_DUMP_OPERANDS(a, b ,c) AcpiExDumpOperands(a, b, c) |
#define ACPI_DUMP_ENTRY(a, b) AcpiNsDumpEntry (a, b) |
#define ACPI_DUMP_PATHNAME(a, b, c, d) AcpiNsDumpPathname(a, b, c, d) |
#define ACPI_DUMP_BUFFER(a, b) AcpiUtDumpBuffer((UINT8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT) |
#else |
/* |
* This is the non-debug case -- make everything go away, |
* leaving no executable debug code! |
*/ |
#define ACPI_DEBUG_EXEC(a) |
#define ACPI_DEBUG_ONLY_MEMBERS(a) |
#define ACPI_FUNCTION_TRACE(a) |
#define ACPI_FUNCTION_TRACE_PTR(a, b) |
#define ACPI_FUNCTION_TRACE_U32(a, b) |
#define ACPI_FUNCTION_TRACE_STR(a, b) |
#define ACPI_FUNCTION_EXIT |
#define ACPI_FUNCTION_STATUS_EXIT(s) |
#define ACPI_FUNCTION_VALUE_EXIT(s) |
#define ACPI_FUNCTION_ENTRY() |
#define ACPI_DUMP_STACK_ENTRY(a) |
#define ACPI_DUMP_OPERANDS(a, b, c) |
#define ACPI_DUMP_ENTRY(a, b) |
#define ACPI_DUMP_TABLES(a, b) |
#define ACPI_DUMP_PATHNAME(a, b, c, d) |
#define ACPI_DUMP_BUFFER(a, b) |
#define ACPI_DEBUG_PRINT(pl) |
#define ACPI_DEBUG_PRINT_RAW(pl) |
#define return_VOID return |
#define return_ACPI_STATUS(s) return(s) |
#define return_VALUE(s) return(s) |
#define return_UINT8(s) return(s) |
#define return_UINT32(s) return(s) |
#define return_PTR(s) return(s) |
#endif /* ACPI_DEBUG_OUTPUT */ |
/* |
* Some code only gets executed when the debugger is built in. |
* Note that this is entirely independent of whether the |
* DEBUG_PRINT stuff (set by ACPI_DEBUG_OUTPUT) is on, or not. |
*/ |
#ifdef ACPI_DEBUGGER |
#define ACPI_DEBUGGER_EXEC(a) a |
#else |
#define ACPI_DEBUGGER_EXEC(a) |
#endif |
/* |
* Memory allocation tracking (DEBUG ONLY) |
*/ |
#define ACPI_MEM_PARAMETERS _COMPONENT, _AcpiModuleName, __LINE__ |
#ifndef ACPI_DBG_TRACK_ALLOCATIONS |
/* Memory allocation */ |
#define ACPI_ALLOCATE(a) AcpiUtAllocate((ACPI_SIZE) (a), ACPI_MEM_PARAMETERS) |
#define ACPI_ALLOCATE_ZEROED(a) AcpiUtAllocateZeroed((ACPI_SIZE) (a), ACPI_MEM_PARAMETERS) |
#define ACPI_FREE(a) AcpiOsFree(a) |
#define ACPI_MEM_TRACKING(a) |
#else |
/* Memory allocation */ |
#define ACPI_ALLOCATE(a) AcpiUtAllocateAndTrack((ACPI_SIZE) (a), ACPI_MEM_PARAMETERS) |
#define ACPI_ALLOCATE_ZEROED(a) AcpiUtAllocateZeroedAndTrack((ACPI_SIZE) (a), ACPI_MEM_PARAMETERS) |
#define ACPI_FREE(a) AcpiUtFreeAndTrack(a, ACPI_MEM_PARAMETERS) |
#define ACPI_MEM_TRACKING(a) a |
#endif /* ACPI_DBG_TRACK_ALLOCATIONS */ |
/* |
* Macros used for ACPICA utilities only |
*/ |
/* Generate a UUID */ |
#define ACPI_INIT_UUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ |
(a) & 0xFF, ((a) >> 8) & 0xFF, ((a) >> 16) & 0xFF, ((a) >> 24) & 0xFF, \ |
(b) & 0xFF, ((b) >> 8) & 0xFF, \ |
(c) & 0xFF, ((c) >> 8) & 0xFF, \ |
(d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) |
#define ACPI_IS_OCTAL_DIGIT(d) (((char)(d) >= '0') && ((char)(d) <= '7')) |
#endif /* ACMACROS_H */ |
/drivers/devman/acpica/include/acnames.h |
---|
0,0 → 1,157 |
/****************************************************************************** |
* |
* Name: acnames.h - Global names and strings |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACNAMES_H__ |
#define __ACNAMES_H__ |
/* Method names - these methods can appear anywhere in the namespace */ |
#define METHOD_NAME__HID "_HID" |
#define METHOD_NAME__CID "_CID" |
#define METHOD_NAME__UID "_UID" |
#define METHOD_NAME__ADR "_ADR" |
#define METHOD_NAME__INI "_INI" |
#define METHOD_NAME__STA "_STA" |
#define METHOD_NAME__REG "_REG" |
#define METHOD_NAME__SEG "_SEG" |
#define METHOD_NAME__BBN "_BBN" |
#define METHOD_NAME__PRT "_PRT" |
#define METHOD_NAME__CRS "_CRS" |
#define METHOD_NAME__PRS "_PRS" |
#define METHOD_NAME__PRW "_PRW" |
#define METHOD_NAME__SRS "_SRS" |
/* Method names - these methods must appear at the namespace root */ |
#define METHOD_NAME__BFS "\\_BFS" |
#define METHOD_NAME__GTS "\\_GTS" |
#define METHOD_NAME__PTS "\\_PTS" |
#define METHOD_NAME__SST "\\_SI._SST" |
#define METHOD_NAME__WAK "\\_WAK" |
/* Definitions of the predefined namespace names */ |
#define ACPI_UNKNOWN_NAME (UINT32) 0x3F3F3F3F /* Unknown name is "????" */ |
#define ACPI_ROOT_NAME (UINT32) 0x5F5F5F5C /* Root name is "\___" */ |
#define ACPI_PREFIX_MIXED (UINT32) 0x69706341 /* "Acpi" */ |
#define ACPI_PREFIX_LOWER (UINT32) 0x69706361 /* "acpi" */ |
#define ACPI_NS_ROOT_PATH "\\" |
#define ACPI_NS_SYSTEM_BUS "_SB_" |
#endif /* __ACNAMES_H__ */ |
/drivers/devman/acpica/include/acnamesp.h |
---|
0,0 → 1,565 |
/****************************************************************************** |
* |
* Name: acnamesp.h - Namespace subcomponent prototypes and defines |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACNAMESP_H__ |
#define __ACNAMESP_H__ |
/* To search the entire name space, pass this as SearchBase */ |
#define ACPI_NS_ALL ((ACPI_HANDLE)0) |
/* |
* Elements of AcpiNsProperties are bit significant |
* and should be one-to-one with values of ACPI_OBJECT_TYPE |
*/ |
#define ACPI_NS_NORMAL 0 |
#define ACPI_NS_NEWSCOPE 1 /* a definition of this type opens a name scope */ |
#define ACPI_NS_LOCAL 2 /* suppress search of enclosing scopes */ |
/* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */ |
#define ACPI_NS_NO_UPSEARCH 0 |
#define ACPI_NS_SEARCH_PARENT 0x01 |
#define ACPI_NS_DONT_OPEN_SCOPE 0x02 |
#define ACPI_NS_NO_PEER_SEARCH 0x04 |
#define ACPI_NS_ERROR_IF_FOUND 0x08 |
#define ACPI_NS_PREFIX_IS_SCOPE 0x10 |
#define ACPI_NS_EXTERNAL 0x20 |
#define ACPI_NS_TEMPORARY 0x40 |
/* Flags for AcpiNsWalkNamespace */ |
#define ACPI_NS_WALK_NO_UNLOCK 0 |
#define ACPI_NS_WALK_UNLOCK 0x01 |
#define ACPI_NS_WALK_TEMP_NODES 0x02 |
/* Object is not a package element */ |
#define ACPI_NOT_PACKAGE_ELEMENT ACPI_UINT32_MAX |
/* Always emit warning message, not dependent on node flags */ |
#define ACPI_WARN_ALWAYS 0 |
/* |
* nsinit - Namespace initialization |
*/ |
ACPI_STATUS |
AcpiNsInitializeObjects ( |
void); |
ACPI_STATUS |
AcpiNsInitializeDevices ( |
void); |
/* |
* nsload - Namespace loading |
*/ |
ACPI_STATUS |
AcpiNsLoadNamespace ( |
void); |
ACPI_STATUS |
AcpiNsLoadTable ( |
UINT32 TableIndex, |
ACPI_NAMESPACE_NODE *Node); |
/* |
* nswalk - walk the namespace |
*/ |
ACPI_STATUS |
AcpiNsWalkNamespace ( |
ACPI_OBJECT_TYPE Type, |
ACPI_HANDLE StartObject, |
UINT32 MaxDepth, |
UINT32 Flags, |
ACPI_WALK_CALLBACK PreOrderVisit, |
ACPI_WALK_CALLBACK PostOrderVisit, |
void *Context, |
void **ReturnValue); |
ACPI_NAMESPACE_NODE * |
AcpiNsGetNextNode ( |
ACPI_NAMESPACE_NODE *Parent, |
ACPI_NAMESPACE_NODE *Child); |
ACPI_NAMESPACE_NODE * |
AcpiNsGetNextNodeTyped ( |
ACPI_OBJECT_TYPE Type, |
ACPI_NAMESPACE_NODE *Parent, |
ACPI_NAMESPACE_NODE *Child); |
/* |
* nsparse - table parsing |
*/ |
ACPI_STATUS |
AcpiNsParseTable ( |
UINT32 TableIndex, |
ACPI_NAMESPACE_NODE *StartNode); |
ACPI_STATUS |
AcpiNsOneCompleteParse ( |
UINT32 PassNumber, |
UINT32 TableIndex, |
ACPI_NAMESPACE_NODE *StartNode); |
/* |
* nsaccess - Top-level namespace access |
*/ |
ACPI_STATUS |
AcpiNsRootInitialize ( |
void); |
ACPI_STATUS |
AcpiNsLookup ( |
ACPI_GENERIC_STATE *ScopeInfo, |
char *Name, |
ACPI_OBJECT_TYPE Type, |
ACPI_INTERPRETER_MODE InterpreterMode, |
UINT32 Flags, |
ACPI_WALK_STATE *WalkState, |
ACPI_NAMESPACE_NODE **RetNode); |
/* |
* nsalloc - Named object allocation/deallocation |
*/ |
ACPI_NAMESPACE_NODE * |
AcpiNsCreateNode ( |
UINT32 Name); |
void |
AcpiNsDeleteNode ( |
ACPI_NAMESPACE_NODE *Node); |
void |
AcpiNsRemoveNode ( |
ACPI_NAMESPACE_NODE *Node); |
void |
AcpiNsDeleteNamespaceSubtree ( |
ACPI_NAMESPACE_NODE *ParentHandle); |
void |
AcpiNsDeleteNamespaceByOwner ( |
ACPI_OWNER_ID OwnerId); |
void |
AcpiNsDetachObject ( |
ACPI_NAMESPACE_NODE *Node); |
void |
AcpiNsDeleteChildren ( |
ACPI_NAMESPACE_NODE *Parent); |
int |
AcpiNsCompareNames ( |
char *Name1, |
char *Name2); |
/* |
* nsdump - Namespace dump/print utilities |
*/ |
void |
AcpiNsDumpTables ( |
ACPI_HANDLE SearchBase, |
UINT32 MaxDepth); |
void |
AcpiNsDumpEntry ( |
ACPI_HANDLE Handle, |
UINT32 DebugLevel); |
void |
AcpiNsDumpPathname ( |
ACPI_HANDLE Handle, |
char *Msg, |
UINT32 Level, |
UINT32 Component); |
void |
AcpiNsPrintPathname ( |
UINT32 NumSegments, |
char *Pathname); |
ACPI_STATUS |
AcpiNsDumpOneObject ( |
ACPI_HANDLE ObjHandle, |
UINT32 Level, |
void *Context, |
void **ReturnValue); |
void |
AcpiNsDumpObjects ( |
ACPI_OBJECT_TYPE Type, |
UINT8 DisplayType, |
UINT32 MaxDepth, |
ACPI_OWNER_ID OwnerId, |
ACPI_HANDLE StartHandle); |
/* |
* nseval - Namespace evaluation functions |
*/ |
ACPI_STATUS |
AcpiNsEvaluate ( |
ACPI_EVALUATE_INFO *Info); |
void |
AcpiNsExecModuleCodeList ( |
void); |
/* |
* nspredef - Support for predefined/reserved names |
*/ |
ACPI_STATUS |
AcpiNsCheckPredefinedNames ( |
ACPI_NAMESPACE_NODE *Node, |
UINT32 UserParamCount, |
ACPI_STATUS ReturnStatus, |
ACPI_OPERAND_OBJECT **ReturnObject); |
const ACPI_PREDEFINED_INFO * |
AcpiNsCheckForPredefinedName ( |
ACPI_NAMESPACE_NODE *Node); |
void |
AcpiNsCheckParameterCount ( |
char *Pathname, |
ACPI_NAMESPACE_NODE *Node, |
UINT32 UserParamCount, |
const ACPI_PREDEFINED_INFO *Info); |
/* |
* nsnames - Name and Scope manipulation |
*/ |
UINT32 |
AcpiNsOpensScope ( |
ACPI_OBJECT_TYPE Type); |
ACPI_STATUS |
AcpiNsBuildExternalPath ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_SIZE Size, |
char *NameBuffer); |
char * |
AcpiNsGetExternalPathname ( |
ACPI_NAMESPACE_NODE *Node); |
char * |
AcpiNsNameOfCurrentScope ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiNsHandleToPathname ( |
ACPI_HANDLE TargetHandle, |
ACPI_BUFFER *Buffer); |
BOOLEAN |
AcpiNsPatternMatch ( |
ACPI_NAMESPACE_NODE *ObjNode, |
char *SearchFor); |
ACPI_STATUS |
AcpiNsGetNode ( |
ACPI_NAMESPACE_NODE *PrefixNode, |
const char *ExternalPathname, |
UINT32 Flags, |
ACPI_NAMESPACE_NODE **OutNode); |
ACPI_SIZE |
AcpiNsGetPathnameLength ( |
ACPI_NAMESPACE_NODE *Node); |
/* |
* nsobject - Object management for namespace nodes |
*/ |
ACPI_STATUS |
AcpiNsAttachObject ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_OPERAND_OBJECT *Object, |
ACPI_OBJECT_TYPE Type); |
ACPI_OPERAND_OBJECT * |
AcpiNsGetAttachedObject ( |
ACPI_NAMESPACE_NODE *Node); |
ACPI_OPERAND_OBJECT * |
AcpiNsGetSecondaryObject ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
ACPI_STATUS |
AcpiNsAttachData ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_OBJECT_HANDLER Handler, |
void *Data); |
ACPI_STATUS |
AcpiNsDetachData ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_OBJECT_HANDLER Handler); |
ACPI_STATUS |
AcpiNsGetAttachedData ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_OBJECT_HANDLER Handler, |
void **Data); |
/* |
* nsrepair - General return object repair for all |
* predefined methods/objects |
*/ |
ACPI_STATUS |
AcpiNsRepairObject ( |
ACPI_PREDEFINED_DATA *Data, |
UINT32 ExpectedBtypes, |
UINT32 PackageIndex, |
ACPI_OPERAND_OBJECT **ReturnObjectPtr); |
ACPI_STATUS |
AcpiNsRepairPackageList ( |
ACPI_PREDEFINED_DATA *Data, |
ACPI_OPERAND_OBJECT **ObjDescPtr); |
ACPI_STATUS |
AcpiNsRepairNullElement ( |
ACPI_PREDEFINED_DATA *Data, |
UINT32 ExpectedBtypes, |
UINT32 PackageIndex, |
ACPI_OPERAND_OBJECT **ReturnObjectPtr); |
void |
AcpiNsRemoveNullElements ( |
ACPI_PREDEFINED_DATA *Data, |
UINT8 PackageType, |
ACPI_OPERAND_OBJECT *ObjDesc); |
/* |
* nsrepair2 - Return object repair for specific |
* predefined methods/objects |
*/ |
ACPI_STATUS |
AcpiNsComplexRepairs ( |
ACPI_PREDEFINED_DATA *Data, |
ACPI_NAMESPACE_NODE *Node, |
ACPI_STATUS ValidateStatus, |
ACPI_OPERAND_OBJECT **ReturnObjectPtr); |
/* |
* nssearch - Namespace searching and entry |
*/ |
ACPI_STATUS |
AcpiNsSearchAndEnter ( |
UINT32 EntryName, |
ACPI_WALK_STATE *WalkState, |
ACPI_NAMESPACE_NODE *Node, |
ACPI_INTERPRETER_MODE InterpreterMode, |
ACPI_OBJECT_TYPE Type, |
UINT32 Flags, |
ACPI_NAMESPACE_NODE **RetNode); |
ACPI_STATUS |
AcpiNsSearchOneScope ( |
UINT32 EntryName, |
ACPI_NAMESPACE_NODE *Node, |
ACPI_OBJECT_TYPE Type, |
ACPI_NAMESPACE_NODE **RetNode); |
void |
AcpiNsInstallNode ( |
ACPI_WALK_STATE *WalkState, |
ACPI_NAMESPACE_NODE *ParentNode, |
ACPI_NAMESPACE_NODE *Node, |
ACPI_OBJECT_TYPE Type); |
/* |
* nsutils - Utility functions |
*/ |
BOOLEAN |
AcpiNsValidRootPrefix ( |
char Prefix); |
ACPI_OBJECT_TYPE |
AcpiNsGetType ( |
ACPI_NAMESPACE_NODE *Node); |
UINT32 |
AcpiNsLocal ( |
ACPI_OBJECT_TYPE Type); |
void |
AcpiNsReportError ( |
const char *ModuleName, |
UINT32 LineNumber, |
const char *InternalName, |
ACPI_STATUS LookupStatus); |
void |
AcpiNsReportMethodError ( |
const char *ModuleName, |
UINT32 LineNumber, |
const char *Message, |
ACPI_NAMESPACE_NODE *Node, |
const char *Path, |
ACPI_STATUS LookupStatus); |
void |
AcpiNsPrintNodePathname ( |
ACPI_NAMESPACE_NODE *Node, |
const char *Msg); |
ACPI_STATUS |
AcpiNsBuildInternalName ( |
ACPI_NAMESTRING_INFO *Info); |
void |
AcpiNsGetInternalNameLength ( |
ACPI_NAMESTRING_INFO *Info); |
ACPI_STATUS |
AcpiNsInternalizeName ( |
const char *DottedName, |
char **ConvertedName); |
ACPI_STATUS |
AcpiNsExternalizeName ( |
UINT32 InternalNameLength, |
const char *InternalName, |
UINT32 *ConvertedNameLength, |
char **ConvertedName); |
ACPI_NAMESPACE_NODE * |
AcpiNsValidateHandle ( |
ACPI_HANDLE Handle); |
void |
AcpiNsTerminate ( |
void); |
#endif /* __ACNAMESP_H__ */ |
/drivers/devman/acpica/include/acobject.h |
---|
0,0 → 1,648 |
/****************************************************************************** |
* |
* Name: acobject.h - Definition of ACPI_OPERAND_OBJECT (Internal object only) |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 _ACOBJECT_H |
#define _ACOBJECT_H |
/* acpisrc:StructDefs -- for acpisrc conversion */ |
/* |
* The ACPI_OPERAND_OBJECT is used to pass AML operands from the dispatcher |
* to the interpreter, and to keep track of the various handlers such as |
* address space handlers and notify handlers. The object is a constant |
* size in order to allow it to be cached and reused. |
* |
* Note: The object is optimized to be aligned and will not work if it is |
* byte-packed. |
*/ |
#if ACPI_MACHINE_WIDTH == 64 |
#pragma pack(8) |
#else |
#pragma pack(4) |
#endif |
/******************************************************************************* |
* |
* Common Descriptors |
* |
******************************************************************************/ |
/* |
* Common area for all objects. |
* |
* DescriptorType is used to differentiate between internal descriptors, and |
* must be in the same place across all descriptors |
* |
* Note: The DescriptorType and Type fields must appear in the identical |
* position in both the ACPI_NAMESPACE_NODE and ACPI_OPERAND_OBJECT |
* structures. |
*/ |
#define ACPI_OBJECT_COMMON_HEADER \ |
union acpi_operand_object *NextObject; /* Objects linked to parent NS node */\ |
UINT8 DescriptorType; /* To differentiate various internal objs */\ |
UINT8 Type; /* ACPI_OBJECT_TYPE */\ |
UINT16 ReferenceCount; /* For object deletion management */\ |
UINT8 Flags; |
/* |
* Note: There are 3 bytes available here before the |
* next natural alignment boundary (for both 32/64 cases) |
*/ |
/* Values for Flag byte above */ |
#define AOPOBJ_AML_CONSTANT 0x01 /* Integer is an AML constant */ |
#define AOPOBJ_STATIC_POINTER 0x02 /* Data is part of an ACPI table, don't delete */ |
#define AOPOBJ_DATA_VALID 0x04 /* Object is intialized and data is valid */ |
#define AOPOBJ_OBJECT_INITIALIZED 0x08 /* Region is initialized, _REG was run */ |
#define AOPOBJ_SETUP_COMPLETE 0x10 /* Region setup is complete */ |
#define AOPOBJ_INVALID 0x20 /* Host OS won't allow a Region address */ |
#define AOPOBJ_MODULE_LEVEL 0x40 /* Method is actually module-level code */ |
#define AOPOBJ_MODIFIED_NAMESPACE 0x80 /* Method modified the namespace */ |
/****************************************************************************** |
* |
* Basic data types |
* |
*****************************************************************************/ |
typedef struct acpi_object_common |
{ |
ACPI_OBJECT_COMMON_HEADER |
} ACPI_OBJECT_COMMON; |
typedef struct acpi_object_integer |
{ |
ACPI_OBJECT_COMMON_HEADER |
UINT8 Fill[3]; /* Prevent warning on some compilers */ |
UINT64 Value; |
} ACPI_OBJECT_INTEGER; |
/* |
* Note: The String and Buffer object must be identical through the Pointer |
* and length elements. There is code that depends on this. |
* |
* Fields common to both Strings and Buffers |
*/ |
#define ACPI_COMMON_BUFFER_INFO(_Type) \ |
_Type *Pointer; \ |
UINT32 Length; |
typedef struct acpi_object_string /* Null terminated, ASCII characters only */ |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_BUFFER_INFO (char) /* String in AML stream or allocated string */ |
} ACPI_OBJECT_STRING; |
typedef struct acpi_object_buffer |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_BUFFER_INFO (UINT8) /* Buffer in AML stream or allocated buffer */ |
UINT32 AmlLength; |
UINT8 *AmlStart; |
ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */ |
} ACPI_OBJECT_BUFFER; |
typedef struct acpi_object_package |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */ |
union acpi_operand_object **Elements; /* Array of pointers to AcpiObjects */ |
UINT8 *AmlStart; |
UINT32 AmlLength; |
UINT32 Count; /* # of elements in package */ |
} ACPI_OBJECT_PACKAGE; |
/****************************************************************************** |
* |
* Complex data types |
* |
*****************************************************************************/ |
typedef struct acpi_object_event |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_SEMAPHORE OsSemaphore; /* Actual OS synchronization object */ |
} ACPI_OBJECT_EVENT; |
typedef struct acpi_object_mutex |
{ |
ACPI_OBJECT_COMMON_HEADER |
UINT8 SyncLevel; /* 0-15, specified in Mutex() call */ |
UINT16 AcquisitionDepth; /* Allow multiple Acquires, same thread */ |
ACPI_MUTEX OsMutex; /* Actual OS synchronization object */ |
ACPI_THREAD_ID ThreadId; /* Current owner of the mutex */ |
struct acpi_thread_state *OwnerThread; /* Current owner of the mutex */ |
union acpi_operand_object *Prev; /* Link for list of acquired mutexes */ |
union acpi_operand_object *Next; /* Link for list of acquired mutexes */ |
ACPI_NAMESPACE_NODE *Node; /* Containing namespace node */ |
UINT8 OriginalSyncLevel; /* Owner's original sync level (0-15) */ |
} ACPI_OBJECT_MUTEX; |
typedef struct acpi_object_region |
{ |
ACPI_OBJECT_COMMON_HEADER |
UINT8 SpaceId; |
ACPI_NAMESPACE_NODE *Node; /* Containing namespace node */ |
union acpi_operand_object *Handler; /* Handler for region access */ |
union acpi_operand_object *Next; |
ACPI_PHYSICAL_ADDRESS Address; |
UINT32 Length; |
} ACPI_OBJECT_REGION; |
typedef struct acpi_object_method |
{ |
ACPI_OBJECT_COMMON_HEADER |
UINT8 MethodFlags; |
UINT8 ParamCount; |
UINT8 SyncLevel; |
union acpi_operand_object *Mutex; |
UINT8 *AmlStart; |
union |
{ |
ACPI_INTERNAL_METHOD Implementation; |
union acpi_operand_object *Handler; |
} Extra; |
UINT32 AmlLength; |
UINT8 ThreadCount; |
ACPI_OWNER_ID OwnerId; |
} ACPI_OBJECT_METHOD; |
/****************************************************************************** |
* |
* Objects that can be notified. All share a common NotifyInfo area. |
* |
*****************************************************************************/ |
/* |
* Common fields for objects that support ASL notifications |
*/ |
#define ACPI_COMMON_NOTIFY_INFO \ |
union acpi_operand_object *SystemNotify; /* Handler for system notifies */\ |
union acpi_operand_object *DeviceNotify; /* Handler for driver notifies */\ |
union acpi_operand_object *Handler; /* Handler for Address space */ |
typedef struct acpi_object_notify_common /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */ |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_NOTIFY_INFO |
} ACPI_OBJECT_NOTIFY_COMMON; |
typedef struct acpi_object_device |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_NOTIFY_INFO |
ACPI_GPE_BLOCK_INFO *GpeBlock; |
} ACPI_OBJECT_DEVICE; |
typedef struct acpi_object_power_resource |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_NOTIFY_INFO |
UINT32 SystemLevel; |
UINT32 ResourceOrder; |
} ACPI_OBJECT_POWER_RESOURCE; |
typedef struct acpi_object_processor |
{ |
ACPI_OBJECT_COMMON_HEADER |
/* The next two fields take advantage of the 3-byte space before NOTIFY_INFO */ |
UINT8 ProcId; |
UINT8 Length; |
ACPI_COMMON_NOTIFY_INFO |
ACPI_IO_ADDRESS Address; |
} ACPI_OBJECT_PROCESSOR; |
typedef struct acpi_object_thermal_zone |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_NOTIFY_INFO |
} ACPI_OBJECT_THERMAL_ZONE; |
/****************************************************************************** |
* |
* Fields. All share a common header/info field. |
* |
*****************************************************************************/ |
/* |
* Common bitfield for the field objects |
* "Field Datum" -- a datum from the actual field object |
* "Buffer Datum" -- a datum from a user buffer, read from or to be written to the field |
*/ |
#define ACPI_COMMON_FIELD_INFO \ |
UINT8 FieldFlags; /* Access, update, and lock bits */\ |
UINT8 Attribute; /* From AccessAs keyword */\ |
UINT8 AccessByteWidth; /* Read/Write size in bytes */\ |
ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */\ |
UINT32 BitLength; /* Length of field in bits */\ |
UINT32 BaseByteOffset; /* Byte offset within containing object */\ |
UINT32 Value; /* Value to store into the Bank or Index register */\ |
UINT8 StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\ |
typedef struct acpi_object_field_common /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */ |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_FIELD_INFO |
union acpi_operand_object *RegionObj; /* Parent Operation Region object (REGION/BANK fields only) */ |
} ACPI_OBJECT_FIELD_COMMON; |
typedef struct acpi_object_region_field |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_FIELD_INFO |
union acpi_operand_object *RegionObj; /* Containing OpRegion object */ |
} ACPI_OBJECT_REGION_FIELD; |
typedef struct acpi_object_bank_field |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_FIELD_INFO |
union acpi_operand_object *RegionObj; /* Containing OpRegion object */ |
union acpi_operand_object *BankObj; /* BankSelect Register object */ |
} ACPI_OBJECT_BANK_FIELD; |
typedef struct acpi_object_index_field |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_FIELD_INFO |
/* |
* No "RegionObj" pointer needed since the Index and Data registers |
* are each field definitions unto themselves. |
*/ |
union acpi_operand_object *IndexObj; /* Index register */ |
union acpi_operand_object *DataObj; /* Data register */ |
} ACPI_OBJECT_INDEX_FIELD; |
/* The BufferField is different in that it is part of a Buffer, not an OpRegion */ |
typedef struct acpi_object_buffer_field |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_COMMON_FIELD_INFO |
union acpi_operand_object *BufferObj; /* Containing Buffer object */ |
} ACPI_OBJECT_BUFFER_FIELD; |
/****************************************************************************** |
* |
* Objects for handlers |
* |
*****************************************************************************/ |
typedef struct acpi_object_notify_handler |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_NAMESPACE_NODE *Node; /* Parent device */ |
ACPI_NOTIFY_HANDLER Handler; |
void *Context; |
} ACPI_OBJECT_NOTIFY_HANDLER; |
typedef struct acpi_object_addr_handler |
{ |
ACPI_OBJECT_COMMON_HEADER |
UINT8 SpaceId; |
UINT8 HandlerFlags; |
ACPI_ADR_SPACE_HANDLER Handler; |
ACPI_NAMESPACE_NODE *Node; /* Parent device */ |
void *Context; |
ACPI_ADR_SPACE_SETUP Setup; |
union acpi_operand_object *RegionList; /* regions using this handler */ |
union acpi_operand_object *Next; |
} ACPI_OBJECT_ADDR_HANDLER; |
/* Flags for address handler (HandlerFlags) */ |
#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED 0x01 |
/****************************************************************************** |
* |
* Special internal objects |
* |
*****************************************************************************/ |
/* |
* The Reference object is used for these opcodes: |
* Arg[0-6], Local[0-7], IndexOp, NameOp, RefOfOp, LoadOp, LoadTableOp, DebugOp |
* The Reference.Class differentiates these types. |
*/ |
typedef struct acpi_object_reference |
{ |
ACPI_OBJECT_COMMON_HEADER |
UINT8 Class; /* Reference Class */ |
UINT8 TargetType; /* Used for Index Op */ |
UINT8 Reserved; |
void *Object; /* NameOp=>HANDLE to obj, IndexOp=>ACPI_OPERAND_OBJECT */ |
ACPI_NAMESPACE_NODE *Node; /* RefOf or Namepath */ |
union acpi_operand_object **Where; /* Target of Index */ |
UINT32 Value; /* Used for Local/Arg/Index/DdbHandle */ |
} ACPI_OBJECT_REFERENCE; |
/* Values for Reference.Class above */ |
typedef enum |
{ |
ACPI_REFCLASS_LOCAL = 0, /* Method local */ |
ACPI_REFCLASS_ARG = 1, /* Method argument */ |
ACPI_REFCLASS_REFOF = 2, /* Result of RefOf() TBD: Split to Ref/Node and Ref/OperandObj? */ |
ACPI_REFCLASS_INDEX = 3, /* Result of Index() */ |
ACPI_REFCLASS_TABLE = 4, /* DdbHandle - Load(), LoadTable() */ |
ACPI_REFCLASS_NAME = 5, /* Reference to a named object */ |
ACPI_REFCLASS_DEBUG = 6, /* Debug object */ |
ACPI_REFCLASS_MAX = 6 |
} ACPI_REFERENCE_CLASSES; |
/* |
* Extra object is used as additional storage for types that |
* have AML code in their declarations (TermArgs) that must be |
* evaluated at run time. |
* |
* Currently: Region and FieldUnit types |
*/ |
typedef struct acpi_object_extra |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_NAMESPACE_NODE *Method_REG; /* _REG method for this region (if any) */ |
void *RegionContext; /* Region-specific data */ |
UINT8 *AmlStart; |
UINT32 AmlLength; |
} ACPI_OBJECT_EXTRA; |
/* Additional data that can be attached to namespace nodes */ |
typedef struct acpi_object_data |
{ |
ACPI_OBJECT_COMMON_HEADER |
ACPI_OBJECT_HANDLER Handler; |
void *Pointer; |
} ACPI_OBJECT_DATA; |
/* Structure used when objects are cached for reuse */ |
typedef struct acpi_object_cache_list |
{ |
ACPI_OBJECT_COMMON_HEADER |
union acpi_operand_object *Next; /* Link for object cache and internal lists*/ |
} ACPI_OBJECT_CACHE_LIST; |
/****************************************************************************** |
* |
* ACPI_OPERAND_OBJECT Descriptor - a giant union of all of the above |
* |
*****************************************************************************/ |
typedef union acpi_operand_object |
{ |
ACPI_OBJECT_COMMON Common; |
ACPI_OBJECT_INTEGER Integer; |
ACPI_OBJECT_STRING String; |
ACPI_OBJECT_BUFFER Buffer; |
ACPI_OBJECT_PACKAGE Package; |
ACPI_OBJECT_EVENT Event; |
ACPI_OBJECT_METHOD Method; |
ACPI_OBJECT_MUTEX Mutex; |
ACPI_OBJECT_REGION Region; |
ACPI_OBJECT_NOTIFY_COMMON CommonNotify; |
ACPI_OBJECT_DEVICE Device; |
ACPI_OBJECT_POWER_RESOURCE PowerResource; |
ACPI_OBJECT_PROCESSOR Processor; |
ACPI_OBJECT_THERMAL_ZONE ThermalZone; |
ACPI_OBJECT_FIELD_COMMON CommonField; |
ACPI_OBJECT_REGION_FIELD Field; |
ACPI_OBJECT_BUFFER_FIELD BufferField; |
ACPI_OBJECT_BANK_FIELD BankField; |
ACPI_OBJECT_INDEX_FIELD IndexField; |
ACPI_OBJECT_NOTIFY_HANDLER Notify; |
ACPI_OBJECT_ADDR_HANDLER AddressSpace; |
ACPI_OBJECT_REFERENCE Reference; |
ACPI_OBJECT_EXTRA Extra; |
ACPI_OBJECT_DATA Data; |
ACPI_OBJECT_CACHE_LIST Cache; |
/* |
* Add namespace node to union in order to simplify code that accepts both |
* ACPI_OPERAND_OBJECTs and ACPI_NAMESPACE_NODEs. The structures share |
* a common DescriptorType field in order to differentiate them. |
*/ |
ACPI_NAMESPACE_NODE Node; |
} ACPI_OPERAND_OBJECT; |
/****************************************************************************** |
* |
* ACPI_DESCRIPTOR - objects that share a common descriptor identifier |
* |
*****************************************************************************/ |
/* Object descriptor types */ |
#define ACPI_DESC_TYPE_CACHED 0x01 /* Used only when object is cached */ |
#define ACPI_DESC_TYPE_STATE 0x02 |
#define ACPI_DESC_TYPE_STATE_UPDATE 0x03 |
#define ACPI_DESC_TYPE_STATE_PACKAGE 0x04 |
#define ACPI_DESC_TYPE_STATE_CONTROL 0x05 |
#define ACPI_DESC_TYPE_STATE_RPSCOPE 0x06 |
#define ACPI_DESC_TYPE_STATE_PSCOPE 0x07 |
#define ACPI_DESC_TYPE_STATE_WSCOPE 0x08 |
#define ACPI_DESC_TYPE_STATE_RESULT 0x09 |
#define ACPI_DESC_TYPE_STATE_NOTIFY 0x0A |
#define ACPI_DESC_TYPE_STATE_THREAD 0x0B |
#define ACPI_DESC_TYPE_WALK 0x0C |
#define ACPI_DESC_TYPE_PARSER 0x0D |
#define ACPI_DESC_TYPE_OPERAND 0x0E |
#define ACPI_DESC_TYPE_NAMED 0x0F |
#define ACPI_DESC_TYPE_MAX 0x0F |
typedef struct acpi_common_descriptor |
{ |
void *CommonPointer; |
UINT8 DescriptorType; /* To differentiate various internal objs */ |
} ACPI_COMMON_DESCRIPTOR; |
typedef union acpi_descriptor |
{ |
ACPI_COMMON_DESCRIPTOR Common; |
ACPI_OPERAND_OBJECT Object; |
ACPI_NAMESPACE_NODE Node; |
ACPI_PARSE_OBJECT Op; |
} ACPI_DESCRIPTOR; |
#pragma pack() |
#endif /* _ACOBJECT_H */ |
/drivers/devman/acpica/include/acopcode.h |
---|
0,0 → 1,397 |
/****************************************************************************** |
* |
* Name: acopcode.h - AML opcode information for the AML parser and interpreter |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACOPCODE_H__ |
#define __ACOPCODE_H__ |
#define MAX_EXTENDED_OPCODE 0x88 |
#define NUM_EXTENDED_OPCODE (MAX_EXTENDED_OPCODE + 1) |
#define MAX_INTERNAL_OPCODE |
#define NUM_INTERNAL_OPCODE (MAX_INTERNAL_OPCODE + 1) |
/* Used for non-assigned opcodes */ |
#define _UNK 0x6B |
/* |
* Reserved ASCII characters. Do not use any of these for |
* internal opcodes, since they are used to differentiate |
* name strings from AML opcodes |
*/ |
#define _ASC 0x6C |
#define _NAM 0x6C |
#define _PFX 0x6D |
/* |
* All AML opcodes and the parse-time arguments for each. Used by the AML |
* parser Each list is compressed into a 32-bit number and stored in the |
* master opcode table (in psopcode.c). |
*/ |
#define ARGP_ACCESSFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING) |
#define ARGP_ACQUIRE_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_WORDDATA) |
#define ARGP_ADD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_ALIAS_OP ARGP_LIST2 (ARGP_NAMESTRING, ARGP_NAME) |
#define ARGP_ARG0 ARG_NONE |
#define ARGP_ARG1 ARG_NONE |
#define ARGP_ARG2 ARG_NONE |
#define ARGP_ARG3 ARG_NONE |
#define ARGP_ARG4 ARG_NONE |
#define ARGP_ARG5 ARG_NONE |
#define ARGP_ARG6 ARG_NONE |
#define ARGP_BANK_FIELD_OP ARGP_LIST6 (ARGP_PKGLENGTH, ARGP_NAMESTRING, ARGP_NAMESTRING,ARGP_TERMARG, ARGP_BYTEDATA, ARGP_FIELDLIST) |
#define ARGP_BIT_AND_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_BIT_NAND_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_BIT_NOR_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_BIT_NOT_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_BIT_OR_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_BIT_XOR_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_BREAK_OP ARG_NONE |
#define ARGP_BREAK_POINT_OP ARG_NONE |
#define ARGP_BUFFER_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_BYTELIST) |
#define ARGP_BYTE_OP ARGP_LIST1 (ARGP_BYTEDATA) |
#define ARGP_BYTELIST_OP ARGP_LIST1 (ARGP_NAMESTRING) |
#define ARGP_CONCAT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_CONCAT_RES_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_COND_REF_OF_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_SUPERNAME) |
#define ARGP_CONTINUE_OP ARG_NONE |
#define ARGP_COPY_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_SIMPLENAME) |
#define ARGP_CREATE_BIT_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME) |
#define ARGP_CREATE_BYTE_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME) |
#define ARGP_CREATE_DWORD_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME) |
#define ARGP_CREATE_FIELD_OP ARGP_LIST4 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME) |
#define ARGP_CREATE_QWORD_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME) |
#define ARGP_CREATE_WORD_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME) |
#define ARGP_DATA_REGION_OP ARGP_LIST4 (ARGP_NAME, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_DEBUG_OP ARG_NONE |
#define ARGP_DECREMENT_OP ARGP_LIST1 (ARGP_SUPERNAME) |
#define ARGP_DEREF_OF_OP ARGP_LIST1 (ARGP_TERMARG) |
#define ARGP_DEVICE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_OBJLIST) |
#define ARGP_DIVIDE_OP ARGP_LIST4 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET, ARGP_TARGET) |
#define ARGP_DWORD_OP ARGP_LIST1 (ARGP_DWORDDATA) |
#define ARGP_ELSE_OP ARGP_LIST2 (ARGP_PKGLENGTH, ARGP_TERMLIST) |
#define ARGP_EVENT_OP ARGP_LIST1 (ARGP_NAME) |
#define ARGP_FATAL_OP ARGP_LIST3 (ARGP_BYTEDATA, ARGP_DWORDDATA, ARGP_TERMARG) |
#define ARGP_FIELD_OP ARGP_LIST4 (ARGP_PKGLENGTH, ARGP_NAMESTRING, ARGP_BYTEDATA, ARGP_FIELDLIST) |
#define ARGP_FIND_SET_LEFT_BIT_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_FIND_SET_RIGHT_BIT_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_FROM_BCD_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_IF_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_TERMLIST) |
#define ARGP_INCREMENT_OP ARGP_LIST1 (ARGP_SUPERNAME) |
#define ARGP_INDEX_FIELD_OP ARGP_LIST5 (ARGP_PKGLENGTH, ARGP_NAMESTRING, ARGP_NAMESTRING,ARGP_BYTEDATA, ARGP_FIELDLIST) |
#define ARGP_INDEX_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_LAND_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_LEQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_LGREATER_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_LGREATEREQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_LLESS_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_LLESSEQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_LNOT_OP ARGP_LIST1 (ARGP_TERMARG) |
#define ARGP_LNOTEQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_LOAD_OP ARGP_LIST2 (ARGP_NAMESTRING, ARGP_SUPERNAME) |
#define ARGP_LOAD_TABLE_OP ARGP_LIST6 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_LOCAL0 ARG_NONE |
#define ARGP_LOCAL1 ARG_NONE |
#define ARGP_LOCAL2 ARG_NONE |
#define ARGP_LOCAL3 ARG_NONE |
#define ARGP_LOCAL4 ARG_NONE |
#define ARGP_LOCAL5 ARG_NONE |
#define ARGP_LOCAL6 ARG_NONE |
#define ARGP_LOCAL7 ARG_NONE |
#define ARGP_LOR_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_MATCH_OP ARGP_LIST6 (ARGP_TERMARG, ARGP_BYTEDATA, ARGP_TERMARG, ARGP_BYTEDATA, ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_METHOD_OP ARGP_LIST4 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_BYTEDATA, ARGP_TERMLIST) |
#define ARGP_METHODCALL_OP ARGP_LIST1 (ARGP_NAMESTRING) |
#define ARGP_MID_OP ARGP_LIST4 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_MOD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_MULTIPLY_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_MUTEX_OP ARGP_LIST2 (ARGP_NAME, ARGP_BYTEDATA) |
#define ARGP_NAME_OP ARGP_LIST2 (ARGP_NAME, ARGP_DATAOBJ) |
#define ARGP_NAMEDFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING) |
#define ARGP_NAMEPATH_OP ARGP_LIST1 (ARGP_NAMESTRING) |
#define ARGP_NOOP_OP ARG_NONE |
#define ARGP_NOTIFY_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_TERMARG) |
#define ARGP_ONE_OP ARG_NONE |
#define ARGP_ONES_OP ARG_NONE |
#define ARGP_PACKAGE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_BYTEDATA, ARGP_DATAOBJLIST) |
#define ARGP_POWER_RES_OP ARGP_LIST5 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_BYTEDATA, ARGP_WORDDATA, ARGP_OBJLIST) |
#define ARGP_PROCESSOR_OP ARGP_LIST6 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_BYTEDATA, ARGP_DWORDDATA, ARGP_BYTEDATA, ARGP_OBJLIST) |
#define ARGP_QWORD_OP ARGP_LIST1 (ARGP_QWORDDATA) |
#define ARGP_REF_OF_OP ARGP_LIST1 (ARGP_SUPERNAME) |
#define ARGP_REGION_OP ARGP_LIST4 (ARGP_NAME, ARGP_BYTEDATA, ARGP_TERMARG, ARGP_TERMARG) |
#define ARGP_RELEASE_OP ARGP_LIST1 (ARGP_SUPERNAME) |
#define ARGP_RESERVEDFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING) |
#define ARGP_RESET_OP ARGP_LIST1 (ARGP_SUPERNAME) |
#define ARGP_RETURN_OP ARGP_LIST1 (ARGP_TERMARG) |
#define ARGP_REVISION_OP ARG_NONE |
#define ARGP_SCOPE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_TERMLIST) |
#define ARGP_SHIFT_LEFT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_SHIFT_RIGHT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_SIGNAL_OP ARGP_LIST1 (ARGP_SUPERNAME) |
#define ARGP_SIZE_OF_OP ARGP_LIST1 (ARGP_SUPERNAME) |
#define ARGP_SLEEP_OP ARGP_LIST1 (ARGP_TERMARG) |
#define ARGP_STALL_OP ARGP_LIST1 (ARGP_TERMARG) |
#define ARGP_STATICSTRING_OP ARGP_LIST1 (ARGP_NAMESTRING) |
#define ARGP_STORE_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_SUPERNAME) |
#define ARGP_STRING_OP ARGP_LIST1 (ARGP_CHARLIST) |
#define ARGP_SUBTRACT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_THERMAL_ZONE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_OBJLIST) |
#define ARGP_TIMER_OP ARG_NONE |
#define ARGP_TO_BCD_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_TO_BUFFER_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_TO_DEC_STR_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_TO_HEX_STR_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_TO_INTEGER_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_TO_STRING_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET) |
#define ARGP_TYPE_OP ARGP_LIST1 (ARGP_SUPERNAME) |
#define ARGP_UNLOAD_OP ARGP_LIST1 (ARGP_SUPERNAME) |
#define ARGP_VAR_PACKAGE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_DATAOBJLIST) |
#define ARGP_WAIT_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_TERMARG) |
#define ARGP_WHILE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_TERMLIST) |
#define ARGP_WORD_OP ARGP_LIST1 (ARGP_WORDDATA) |
#define ARGP_ZERO_OP ARG_NONE |
/* |
* All AML opcodes and the runtime arguments for each. Used by the AML |
* interpreter Each list is compressed into a 32-bit number and stored |
* in the master opcode table (in psopcode.c). |
* |
* (Used by PrepOperands procedure and the ASL Compiler) |
*/ |
#define ARGI_ACCESSFIELD_OP ARGI_INVALID_OPCODE |
#define ARGI_ACQUIRE_OP ARGI_LIST2 (ARGI_MUTEX, ARGI_INTEGER) |
#define ARGI_ADD_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_ALIAS_OP ARGI_INVALID_OPCODE |
#define ARGI_ARG0 ARG_NONE |
#define ARGI_ARG1 ARG_NONE |
#define ARGI_ARG2 ARG_NONE |
#define ARGI_ARG3 ARG_NONE |
#define ARGI_ARG4 ARG_NONE |
#define ARGI_ARG5 ARG_NONE |
#define ARGI_ARG6 ARG_NONE |
#define ARGI_BANK_FIELD_OP ARGI_INVALID_OPCODE |
#define ARGI_BIT_AND_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_BIT_NAND_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_BIT_NOR_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_BIT_NOT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_BIT_OR_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_BIT_XOR_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_BREAK_OP ARG_NONE |
#define ARGI_BREAK_POINT_OP ARG_NONE |
#define ARGI_BUFFER_OP ARGI_LIST1 (ARGI_INTEGER) |
#define ARGI_BYTE_OP ARGI_INVALID_OPCODE |
#define ARGI_BYTELIST_OP ARGI_INVALID_OPCODE |
#define ARGI_CONCAT_OP ARGI_LIST3 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA, ARGI_TARGETREF) |
#define ARGI_CONCAT_RES_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_BUFFER, ARGI_TARGETREF) |
#define ARGI_COND_REF_OF_OP ARGI_LIST2 (ARGI_OBJECT_REF, ARGI_TARGETREF) |
#define ARGI_CONTINUE_OP ARGI_INVALID_OPCODE |
#define ARGI_COPY_OP ARGI_LIST2 (ARGI_ANYTYPE, ARGI_SIMPLE_TARGET) |
#define ARGI_CREATE_BIT_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE) |
#define ARGI_CREATE_BYTE_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE) |
#define ARGI_CREATE_DWORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE) |
#define ARGI_CREATE_FIELD_OP ARGI_LIST4 (ARGI_BUFFER, ARGI_INTEGER, ARGI_INTEGER, ARGI_REFERENCE) |
#define ARGI_CREATE_QWORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE) |
#define ARGI_CREATE_WORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE) |
#define ARGI_DATA_REGION_OP ARGI_LIST3 (ARGI_STRING, ARGI_STRING, ARGI_STRING) |
#define ARGI_DEBUG_OP ARG_NONE |
#define ARGI_DECREMENT_OP ARGI_LIST1 (ARGI_TARGETREF) |
#define ARGI_DEREF_OF_OP ARGI_LIST1 (ARGI_REF_OR_STRING) |
#define ARGI_DEVICE_OP ARGI_INVALID_OPCODE |
#define ARGI_DIVIDE_OP ARGI_LIST4 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF, ARGI_TARGETREF) |
#define ARGI_DWORD_OP ARGI_INVALID_OPCODE |
#define ARGI_ELSE_OP ARGI_INVALID_OPCODE |
#define ARGI_EVENT_OP ARGI_INVALID_OPCODE |
#define ARGI_FATAL_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_INTEGER) |
#define ARGI_FIELD_OP ARGI_INVALID_OPCODE |
#define ARGI_FIND_SET_LEFT_BIT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_FIND_SET_RIGHT_BIT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_FROM_BCD_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_FIXED_TARGET) |
#define ARGI_IF_OP ARGI_INVALID_OPCODE |
#define ARGI_INCREMENT_OP ARGI_LIST1 (ARGI_TARGETREF) |
#define ARGI_INDEX_FIELD_OP ARGI_INVALID_OPCODE |
#define ARGI_INDEX_OP ARGI_LIST3 (ARGI_COMPLEXOBJ, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_LAND_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER) |
#define ARGI_LEQUAL_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA) |
#define ARGI_LGREATER_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA) |
#define ARGI_LGREATEREQUAL_OP ARGI_INVALID_OPCODE |
#define ARGI_LLESS_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA) |
#define ARGI_LLESSEQUAL_OP ARGI_INVALID_OPCODE |
#define ARGI_LNOT_OP ARGI_LIST1 (ARGI_INTEGER) |
#define ARGI_LNOTEQUAL_OP ARGI_INVALID_OPCODE |
#define ARGI_LOAD_OP ARGI_LIST2 (ARGI_REGION_OR_BUFFER,ARGI_TARGETREF) |
#define ARGI_LOAD_TABLE_OP ARGI_LIST6 (ARGI_STRING, ARGI_STRING, ARGI_STRING, ARGI_STRING, ARGI_STRING, ARGI_ANYTYPE) |
#define ARGI_LOCAL0 ARG_NONE |
#define ARGI_LOCAL1 ARG_NONE |
#define ARGI_LOCAL2 ARG_NONE |
#define ARGI_LOCAL3 ARG_NONE |
#define ARGI_LOCAL4 ARG_NONE |
#define ARGI_LOCAL5 ARG_NONE |
#define ARGI_LOCAL6 ARG_NONE |
#define ARGI_LOCAL7 ARG_NONE |
#define ARGI_LOR_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER) |
#define ARGI_MATCH_OP ARGI_LIST6 (ARGI_PACKAGE, ARGI_INTEGER, ARGI_COMPUTEDATA, ARGI_INTEGER,ARGI_COMPUTEDATA,ARGI_INTEGER) |
#define ARGI_METHOD_OP ARGI_INVALID_OPCODE |
#define ARGI_METHODCALL_OP ARGI_INVALID_OPCODE |
#define ARGI_MID_OP ARGI_LIST4 (ARGI_BUFFER_OR_STRING,ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_MOD_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_MULTIPLY_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_MUTEX_OP ARGI_INVALID_OPCODE |
#define ARGI_NAME_OP ARGI_INVALID_OPCODE |
#define ARGI_NAMEDFIELD_OP ARGI_INVALID_OPCODE |
#define ARGI_NAMEPATH_OP ARGI_INVALID_OPCODE |
#define ARGI_NOOP_OP ARG_NONE |
#define ARGI_NOTIFY_OP ARGI_LIST2 (ARGI_DEVICE_REF, ARGI_INTEGER) |
#define ARGI_ONE_OP ARG_NONE |
#define ARGI_ONES_OP ARG_NONE |
#define ARGI_PACKAGE_OP ARGI_LIST1 (ARGI_INTEGER) |
#define ARGI_POWER_RES_OP ARGI_INVALID_OPCODE |
#define ARGI_PROCESSOR_OP ARGI_INVALID_OPCODE |
#define ARGI_QWORD_OP ARGI_INVALID_OPCODE |
#define ARGI_REF_OF_OP ARGI_LIST1 (ARGI_OBJECT_REF) |
#define ARGI_REGION_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER) |
#define ARGI_RELEASE_OP ARGI_LIST1 (ARGI_MUTEX) |
#define ARGI_RESERVEDFIELD_OP ARGI_INVALID_OPCODE |
#define ARGI_RESET_OP ARGI_LIST1 (ARGI_EVENT) |
#define ARGI_RETURN_OP ARGI_INVALID_OPCODE |
#define ARGI_REVISION_OP ARG_NONE |
#define ARGI_SCOPE_OP ARGI_INVALID_OPCODE |
#define ARGI_SHIFT_LEFT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_SHIFT_RIGHT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_SIGNAL_OP ARGI_LIST1 (ARGI_EVENT) |
#define ARGI_SIZE_OF_OP ARGI_LIST1 (ARGI_DATAOBJECT) |
#define ARGI_SLEEP_OP ARGI_LIST1 (ARGI_INTEGER) |
#define ARGI_STALL_OP ARGI_LIST1 (ARGI_INTEGER) |
#define ARGI_STATICSTRING_OP ARGI_INVALID_OPCODE |
#define ARGI_STORE_OP ARGI_LIST2 (ARGI_DATAREFOBJ, ARGI_TARGETREF) |
#define ARGI_STRING_OP ARGI_INVALID_OPCODE |
#define ARGI_SUBTRACT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF) |
#define ARGI_THERMAL_ZONE_OP ARGI_INVALID_OPCODE |
#define ARGI_TIMER_OP ARG_NONE |
#define ARGI_TO_BCD_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_FIXED_TARGET) |
#define ARGI_TO_BUFFER_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET) |
#define ARGI_TO_DEC_STR_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET) |
#define ARGI_TO_HEX_STR_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET) |
#define ARGI_TO_INTEGER_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET) |
#define ARGI_TO_STRING_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_FIXED_TARGET) |
#define ARGI_TYPE_OP ARGI_LIST1 (ARGI_ANYTYPE) |
#define ARGI_UNLOAD_OP ARGI_LIST1 (ARGI_DDBHANDLE) |
#define ARGI_VAR_PACKAGE_OP ARGI_LIST1 (ARGI_INTEGER) |
#define ARGI_WAIT_OP ARGI_LIST2 (ARGI_EVENT, ARGI_INTEGER) |
#define ARGI_WHILE_OP ARGI_INVALID_OPCODE |
#define ARGI_WORD_OP ARGI_INVALID_OPCODE |
#define ARGI_ZERO_OP ARG_NONE |
#endif /* __ACOPCODE_H__ */ |
/drivers/devman/acpica/include/acoutput.h |
---|
0,0 → 1,353 |
/****************************************************************************** |
* |
* Name: acoutput.h -- debug output |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACOUTPUT_H__ |
#define __ACOUTPUT_H__ |
/* |
* Debug levels and component IDs. These are used to control the |
* granularity of the output of the ACPI_DEBUG_PRINT macro -- on a |
* per-component basis and a per-exception-type basis. |
*/ |
/* Component IDs are used in the global "DebugLayer" */ |
#define ACPI_UTILITIES 0x00000001 |
#define ACPI_HARDWARE 0x00000002 |
#define ACPI_EVENTS 0x00000004 |
#define ACPI_TABLES 0x00000008 |
#define ACPI_NAMESPACE 0x00000010 |
#define ACPI_PARSER 0x00000020 |
#define ACPI_DISPATCHER 0x00000040 |
#define ACPI_EXECUTER 0x00000080 |
#define ACPI_RESOURCES 0x00000100 |
#define ACPI_CA_DEBUGGER 0x00000200 |
#define ACPI_OS_SERVICES 0x00000400 |
#define ACPI_CA_DISASSEMBLER 0x00000800 |
/* Component IDs for ACPI tools and utilities */ |
#define ACPI_COMPILER 0x00001000 |
#define ACPI_TOOLS 0x00002000 |
#define ACPI_EXAMPLE 0x00004000 |
#define ACPI_DRIVER 0x00008000 |
#define ACPI_ALL_COMPONENTS 0x0000FFFF |
#define ACPI_COMPONENT_DEFAULT (ACPI_ALL_COMPONENTS) |
/* Component IDs reserved for ACPI drivers */ |
#define ACPI_ALL_DRIVERS 0xFFFF0000 |
/* |
* Raw debug output levels, do not use these in the ACPI_DEBUG_PRINT macros |
*/ |
#define ACPI_LV_INIT 0x00000001 |
#define ACPI_LV_DEBUG_OBJECT 0x00000002 |
#define ACPI_LV_INFO 0x00000004 |
#define ACPI_LV_REPAIR 0x00000008 |
#define ACPI_LV_ALL_EXCEPTIONS 0x0000000F |
/* Trace verbosity level 1 [Standard Trace Level] */ |
#define ACPI_LV_INIT_NAMES 0x00000020 |
#define ACPI_LV_PARSE 0x00000040 |
#define ACPI_LV_LOAD 0x00000080 |
#define ACPI_LV_DISPATCH 0x00000100 |
#define ACPI_LV_EXEC 0x00000200 |
#define ACPI_LV_NAMES 0x00000400 |
#define ACPI_LV_OPREGION 0x00000800 |
#define ACPI_LV_BFIELD 0x00001000 |
#define ACPI_LV_TABLES 0x00002000 |
#define ACPI_LV_VALUES 0x00004000 |
#define ACPI_LV_OBJECTS 0x00008000 |
#define ACPI_LV_RESOURCES 0x00010000 |
#define ACPI_LV_USER_REQUESTS 0x00020000 |
#define ACPI_LV_PACKAGE 0x00040000 |
#define ACPI_LV_VERBOSITY1 0x0007FF40 | ACPI_LV_ALL_EXCEPTIONS |
/* Trace verbosity level 2 [Function tracing and memory allocation] */ |
#define ACPI_LV_ALLOCATIONS 0x00100000 |
#define ACPI_LV_FUNCTIONS 0x00200000 |
#define ACPI_LV_OPTIMIZATIONS 0x00400000 |
#define ACPI_LV_VERBOSITY2 0x00700000 | ACPI_LV_VERBOSITY1 |
#define ACPI_LV_ALL ACPI_LV_VERBOSITY2 |
/* Trace verbosity level 3 [Threading, I/O, and Interrupts] */ |
#define ACPI_LV_MUTEX 0x01000000 |
#define ACPI_LV_THREADS 0x02000000 |
#define ACPI_LV_IO 0x04000000 |
#define ACPI_LV_INTERRUPTS 0x08000000 |
#define ACPI_LV_VERBOSITY3 0x0F000000 | ACPI_LV_VERBOSITY2 |
/* Exceptionally verbose output -- also used in the global "DebugLevel" */ |
#define ACPI_LV_AML_DISASSEMBLE 0x10000000 |
#define ACPI_LV_VERBOSE_INFO 0x20000000 |
#define ACPI_LV_FULL_TABLES 0x40000000 |
#define ACPI_LV_EVENTS 0x80000000 |
#define ACPI_LV_VERBOSE 0xF0000000 |
/* |
* Debug level macros that are used in the DEBUG_PRINT macros |
*/ |
#define ACPI_DEBUG_LEVEL(dl) (UINT32) dl,ACPI_DEBUG_PARAMETERS |
/* |
* Exception level -- used in the global "DebugLevel" |
* |
* Note: For errors, use the ACPI_ERROR or ACPI_EXCEPTION interfaces. |
* For warnings, use ACPI_WARNING. |
*/ |
#define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT) |
#define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT) |
#define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO) |
#define ACPI_DB_REPAIR ACPI_DEBUG_LEVEL (ACPI_LV_REPAIR) |
#define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS) |
/* Trace level -- also used in the global "DebugLevel" */ |
#define ACPI_DB_INIT_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_INIT_NAMES) |
#define ACPI_DB_THREADS ACPI_DEBUG_LEVEL (ACPI_LV_THREADS) |
#define ACPI_DB_PARSE ACPI_DEBUG_LEVEL (ACPI_LV_PARSE) |
#define ACPI_DB_DISPATCH ACPI_DEBUG_LEVEL (ACPI_LV_DISPATCH) |
#define ACPI_DB_LOAD ACPI_DEBUG_LEVEL (ACPI_LV_LOAD) |
#define ACPI_DB_EXEC ACPI_DEBUG_LEVEL (ACPI_LV_EXEC) |
#define ACPI_DB_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_NAMES) |
#define ACPI_DB_OPREGION ACPI_DEBUG_LEVEL (ACPI_LV_OPREGION) |
#define ACPI_DB_BFIELD ACPI_DEBUG_LEVEL (ACPI_LV_BFIELD) |
#define ACPI_DB_TABLES ACPI_DEBUG_LEVEL (ACPI_LV_TABLES) |
#define ACPI_DB_FUNCTIONS ACPI_DEBUG_LEVEL (ACPI_LV_FUNCTIONS) |
#define ACPI_DB_OPTIMIZATIONS ACPI_DEBUG_LEVEL (ACPI_LV_OPTIMIZATIONS) |
#define ACPI_DB_VALUES ACPI_DEBUG_LEVEL (ACPI_LV_VALUES) |
#define ACPI_DB_OBJECTS ACPI_DEBUG_LEVEL (ACPI_LV_OBJECTS) |
#define ACPI_DB_ALLOCATIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALLOCATIONS) |
#define ACPI_DB_RESOURCES ACPI_DEBUG_LEVEL (ACPI_LV_RESOURCES) |
#define ACPI_DB_IO ACPI_DEBUG_LEVEL (ACPI_LV_IO) |
#define ACPI_DB_INTERRUPTS ACPI_DEBUG_LEVEL (ACPI_LV_INTERRUPTS) |
#define ACPI_DB_USER_REQUESTS ACPI_DEBUG_LEVEL (ACPI_LV_USER_REQUESTS) |
#define ACPI_DB_PACKAGE ACPI_DEBUG_LEVEL (ACPI_LV_PACKAGE) |
#define ACPI_DB_MUTEX ACPI_DEBUG_LEVEL (ACPI_LV_MUTEX) |
#define ACPI_DB_EVENTS ACPI_DEBUG_LEVEL (ACPI_LV_EVENTS) |
#define ACPI_DB_ALL ACPI_DEBUG_LEVEL (ACPI_LV_ALL) |
/* Defaults for DebugLevel, debug and normal */ |
#define ACPI_DEBUG_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT | ACPI_LV_REPAIR) |
#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT | ACPI_LV_REPAIR) |
#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL) |
#if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES) |
/* |
* Module name is included in both debug and non-debug versions primarily for |
* error messages. The __FILE__ macro is not very useful for this, because it |
* often includes the entire pathname to the module |
*/ |
#define ACPI_MODULE_NAME(Name) static const char ACPI_UNUSED_VAR _AcpiModuleName[] = Name; |
#else |
#define ACPI_MODULE_NAME(Name) |
#endif |
/* |
* Ascii error messages can be configured out |
*/ |
#ifndef ACPI_NO_ERROR_MESSAGES |
#define AE_INFO _AcpiModuleName, __LINE__ |
/* |
* Error reporting. Callers module and line number are inserted by AE_INFO, |
* the plist contains a set of parens to allow variable-length lists. |
* These macros are used for both the debug and non-debug versions of the code. |
*/ |
#define ACPI_INFO(plist) AcpiInfo plist |
#define ACPI_WARNING(plist) AcpiWarning plist |
#define ACPI_EXCEPTION(plist) AcpiException plist |
#define ACPI_ERROR(plist) AcpiError plist |
#define ACPI_DEBUG_OBJECT(obj,l,i) AcpiExDoDebugObject(obj,l,i) |
#else |
/* No error messages */ |
#define ACPI_INFO(plist) |
#define ACPI_WARNING(plist) |
#define ACPI_EXCEPTION(plist) |
#define ACPI_ERROR(plist) |
#define ACPI_DEBUG_OBJECT(obj,l,i) |
#endif /* ACPI_NO_ERROR_MESSAGES */ |
/* |
* Debug macros that are conditionally compiled |
*/ |
#ifdef ACPI_DEBUG_OUTPUT |
/* |
* If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header, |
* define it now. This is the case where there the compiler does not support |
* a __FUNCTION__ macro or equivalent. |
*/ |
#ifndef ACPI_GET_FUNCTION_NAME |
#define ACPI_GET_FUNCTION_NAME _AcpiFunctionName |
/* |
* The Name parameter should be the procedure name as a quoted string. |
* The function name is also used by the function exit macros below. |
* Note: (const char) is used to be compatible with the debug interfaces |
* and macros such as __FUNCTION__. |
*/ |
#define ACPI_FUNCTION_NAME(Name) static const char _AcpiFunctionName[] = #Name; |
#else |
/* Compiler supports __FUNCTION__ (or equivalent) -- Ignore this macro */ |
#define ACPI_FUNCTION_NAME(Name) |
#endif /* ACPI_GET_FUNCTION_NAME */ |
/* |
* Common parameters used for debug output functions: |
* line number, function name, module(file) name, component ID |
*/ |
#define ACPI_DEBUG_PARAMETERS __LINE__, ACPI_GET_FUNCTION_NAME, _AcpiModuleName, _COMPONENT |
/* |
* Master debug print macros |
* Print message if and only if: |
* 1) Debug print for the current component is enabled |
* 2) Debug error level or trace level for the print statement is enabled |
*/ |
#define ACPI_DEBUG_PRINT(plist) AcpiDebugPrint plist |
#define ACPI_DEBUG_PRINT_RAW(plist) AcpiDebugPrintRaw plist |
#else |
/* |
* This is the non-debug case -- make everything go away, |
* leaving no executable debug code! |
*/ |
#define ACPI_FUNCTION_NAME(a) |
#define ACPI_DEBUG_PRINT(pl) |
#define ACPI_DEBUG_PRINT_RAW(pl) |
#endif /* ACPI_DEBUG_OUTPUT */ |
#endif /* __ACOUTPUT_H__ */ |
/drivers/devman/acpica/include/acparser.h |
---|
0,0 → 1,403 |
/****************************************************************************** |
* |
* Module Name: acparser.h - AML Parser subcomponent prototypes and defines |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACPARSER_H__ |
#define __ACPARSER_H__ |
#define OP_HAS_RETURN_VALUE 1 |
/* Variable number of arguments. This field must be 32 bits */ |
#define ACPI_VAR_ARGS ACPI_UINT32_MAX |
#define ACPI_PARSE_DELETE_TREE 0x0001 |
#define ACPI_PARSE_NO_TREE_DELETE 0x0000 |
#define ACPI_PARSE_TREE_MASK 0x0001 |
#define ACPI_PARSE_LOAD_PASS1 0x0010 |
#define ACPI_PARSE_LOAD_PASS2 0x0020 |
#define ACPI_PARSE_EXECUTE 0x0030 |
#define ACPI_PARSE_MODE_MASK 0x0030 |
#define ACPI_PARSE_DEFERRED_OP 0x0100 |
#define ACPI_PARSE_DISASSEMBLE 0x0200 |
#define ACPI_PARSE_MODULE_LEVEL 0x0400 |
/****************************************************************************** |
* |
* Parser interfaces |
* |
*****************************************************************************/ |
/* |
* psxface - Parser external interfaces |
*/ |
ACPI_STATUS |
AcpiPsExecuteMethod ( |
ACPI_EVALUATE_INFO *Info); |
/* |
* psargs - Parse AML opcode arguments |
*/ |
UINT8 * |
AcpiPsGetNextPackageEnd ( |
ACPI_PARSE_STATE *ParserState); |
char * |
AcpiPsGetNextNamestring ( |
ACPI_PARSE_STATE *ParserState); |
void |
AcpiPsGetNextSimpleArg ( |
ACPI_PARSE_STATE *ParserState, |
UINT32 ArgType, |
ACPI_PARSE_OBJECT *Arg); |
ACPI_STATUS |
AcpiPsGetNextNamepath ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_STATE *ParserState, |
ACPI_PARSE_OBJECT *Arg, |
BOOLEAN MethodCall); |
ACPI_STATUS |
AcpiPsGetNextArg ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_STATE *ParserState, |
UINT32 ArgType, |
ACPI_PARSE_OBJECT **ReturnArg); |
/* |
* psfind |
*/ |
ACPI_PARSE_OBJECT * |
AcpiPsFindName ( |
ACPI_PARSE_OBJECT *Scope, |
UINT32 Name, |
UINT32 Opcode); |
ACPI_PARSE_OBJECT* |
AcpiPsGetParent ( |
ACPI_PARSE_OBJECT *Op); |
/* |
* psopcode - AML Opcode information |
*/ |
const ACPI_OPCODE_INFO * |
AcpiPsGetOpcodeInfo ( |
UINT16 Opcode); |
char * |
AcpiPsGetOpcodeName ( |
UINT16 Opcode); |
UINT8 |
AcpiPsGetArgumentCount ( |
UINT32 OpType); |
/* |
* psparse - top level parsing routines |
*/ |
ACPI_STATUS |
AcpiPsParseAml ( |
ACPI_WALK_STATE *WalkState); |
UINT32 |
AcpiPsGetOpcodeSize ( |
UINT32 Opcode); |
UINT16 |
AcpiPsPeekOpcode ( |
ACPI_PARSE_STATE *state); |
ACPI_STATUS |
AcpiPsCompleteThisOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op); |
ACPI_STATUS |
AcpiPsNextParseState ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op, |
ACPI_STATUS CallbackStatus); |
/* |
* psloop - main parse loop |
*/ |
ACPI_STATUS |
AcpiPsParseLoop ( |
ACPI_WALK_STATE *WalkState); |
/* |
* psscope - Scope stack management routines |
*/ |
ACPI_STATUS |
AcpiPsInitScope ( |
ACPI_PARSE_STATE *ParserState, |
ACPI_PARSE_OBJECT *Root); |
ACPI_PARSE_OBJECT * |
AcpiPsGetParentScope ( |
ACPI_PARSE_STATE *state); |
BOOLEAN |
AcpiPsHasCompletedScope ( |
ACPI_PARSE_STATE *ParserState); |
void |
AcpiPsPopScope ( |
ACPI_PARSE_STATE *ParserState, |
ACPI_PARSE_OBJECT **Op, |
UINT32 *ArgList, |
UINT32 *ArgCount); |
ACPI_STATUS |
AcpiPsPushScope ( |
ACPI_PARSE_STATE *ParserState, |
ACPI_PARSE_OBJECT *Op, |
UINT32 RemainingArgs, |
UINT32 ArgCount); |
void |
AcpiPsCleanupScope ( |
ACPI_PARSE_STATE *state); |
/* |
* pstree - parse tree manipulation routines |
*/ |
void |
AcpiPsAppendArg( |
ACPI_PARSE_OBJECT *op, |
ACPI_PARSE_OBJECT *arg); |
ACPI_PARSE_OBJECT* |
AcpiPsFind ( |
ACPI_PARSE_OBJECT *Scope, |
char *Path, |
UINT16 Opcode, |
UINT32 Create); |
ACPI_PARSE_OBJECT * |
AcpiPsGetArg( |
ACPI_PARSE_OBJECT *op, |
UINT32 argn); |
ACPI_PARSE_OBJECT * |
AcpiPsGetDepthNext ( |
ACPI_PARSE_OBJECT *Origin, |
ACPI_PARSE_OBJECT *Op); |
/* |
* pswalk - parse tree walk routines |
*/ |
ACPI_STATUS |
AcpiPsWalkParsedAml ( |
ACPI_PARSE_OBJECT *StartOp, |
ACPI_PARSE_OBJECT *EndOp, |
ACPI_OPERAND_OBJECT *MthDesc, |
ACPI_NAMESPACE_NODE *StartNode, |
ACPI_OPERAND_OBJECT **Params, |
ACPI_OPERAND_OBJECT **CallerReturnDesc, |
ACPI_OWNER_ID OwnerId, |
ACPI_PARSE_DOWNWARDS DescendingCallback, |
ACPI_PARSE_UPWARDS AscendingCallback); |
ACPI_STATUS |
AcpiPsGetNextWalkOp ( |
ACPI_WALK_STATE *WalkState, |
ACPI_PARSE_OBJECT *Op, |
ACPI_PARSE_UPWARDS AscendingCallback); |
ACPI_STATUS |
AcpiPsDeleteCompletedOp ( |
ACPI_WALK_STATE *WalkState); |
void |
AcpiPsDeleteParseTree ( |
ACPI_PARSE_OBJECT *root); |
/* |
* psutils - parser utilities |
*/ |
ACPI_PARSE_OBJECT * |
AcpiPsCreateScopeOp ( |
void); |
void |
AcpiPsInitOp ( |
ACPI_PARSE_OBJECT *op, |
UINT16 opcode); |
ACPI_PARSE_OBJECT * |
AcpiPsAllocOp ( |
UINT16 opcode); |
void |
AcpiPsFreeOp ( |
ACPI_PARSE_OBJECT *Op); |
BOOLEAN |
AcpiPsIsLeadingChar ( |
UINT32 c); |
BOOLEAN |
AcpiPsIsPrefixChar ( |
UINT32 c); |
UINT32 |
AcpiPsGetName( |
ACPI_PARSE_OBJECT *op); |
void |
AcpiPsSetName( |
ACPI_PARSE_OBJECT *op, |
UINT32 name); |
/* |
* psdump - display parser tree |
*/ |
UINT32 |
AcpiPsSprintPath ( |
char *BufferStart, |
UINT32 BufferSize, |
ACPI_PARSE_OBJECT *Op); |
UINT32 |
AcpiPsSprintOp ( |
char *BufferStart, |
UINT32 BufferSize, |
ACPI_PARSE_OBJECT *Op); |
void |
AcpiPsShow ( |
ACPI_PARSE_OBJECT *op); |
#endif /* __ACPARSER_H__ */ |
/drivers/devman/acpica/include/acpi.h |
---|
0,0 → 1,138 |
/****************************************************************************** |
* |
* Name: acpi.h - Master public include file used to interface to ACPICA |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACPI_H__ |
#define __ACPI_H__ |
/* |
* Public include files for use by code that will interface to ACPICA. |
* |
* Information includes the ACPICA data types, names, exceptions, and |
* external interface prototypes. Also included are the definitions for |
* all ACPI tables (FADT, MADT, etc.) |
* |
* Note: The order of these include files is important. |
*/ |
#include "platform/acenv.h" /* Environment-specific items */ |
#include "acnames.h" /* Common ACPI names and strings */ |
#include "actypes.h" /* ACPICA data types and structures */ |
#include "acexcep.h" /* ACPICA exceptions */ |
#include "actbl.h" /* ACPI table definitions */ |
#include "acoutput.h" /* Error output and Debug macros */ |
#include "acrestyp.h" /* Resource Descriptor structs */ |
#include "acpiosxf.h" /* OSL interfaces (ACPICA-to-OS) */ |
#include "acpixf.h" /* ACPI core subsystem external interfaces */ |
#endif /* __ACPI_H__ */ |
/drivers/devman/acpica/include/acpiosxf.h |
---|
0,0 → 1,495 |
/****************************************************************************** |
* |
* Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These |
* interfaces must be implemented by OSL to interface the |
* ACPI components to the host operating system. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 exer |
se 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 __ACPIOSXF_H__ |
#define __ACPIOSXF_H__ |
#include "platform/acenv.h" |
#include "actypes.h" |
/* Types for AcpiOsExecute */ |
typedef enum |
{ |
OSL_GLOBAL_LOCK_HANDLER, |
OSL_NOTIFY_HANDLER, |
OSL_GPE_HANDLER, |
OSL_DEBUGGER_THREAD, |
OSL_EC_POLL_HANDLER, |
OSL_EC_BURST_HANDLER |
} ACPI_EXECUTE_TYPE; |
#define ACPI_NO_UNIT_LIMIT ((UINT32) -1) |
#define ACPI_MUTEX_SEM 1 |
/* Functions for AcpiOsSignal */ |
#define ACPI_SIGNAL_FATAL 0 |
#define ACPI_SIGNAL_BREAKPOINT 1 |
typedef struct acpi_signal_fatal_info |
{ |
UINT32 Type; |
UINT32 Code; |
UINT32 Argument; |
} ACPI_SIGNAL_FATAL_INFO; |
/* |
* OSL Initialization and shutdown primitives |
*/ |
ACPI_STATUS |
AcpiOsInitialize ( |
void); |
ACPI_STATUS |
AcpiOsTerminate ( |
void); |
/* |
* ACPI Table interfaces |
*/ |
ACPI_PHYSICAL_ADDRESS |
AcpiOsGetRootPointer ( |
void); |
ACPI_STATUS |
AcpiOsPredefinedOverride ( |
const ACPI_PREDEFINED_NAMES *InitVal, |
ACPI_STRING *NewVal); |
ACPI_STATUS |
AcpiOsTableOverride ( |
ACPI_TABLE_HEADER *ExistingTable, |
ACPI_TABLE_HEADER **NewTable); |
/* |
* Spinlock primitives |
*/ |
ACPI_STATUS |
AcpiOsCreateLock ( |
ACPI_SPINLOCK *OutHandle); |
void |
AcpiOsDeleteLock ( |
ACPI_SPINLOCK Handle); |
ACPI_CPU_FLAGS |
AcpiOsAcquireLock ( |
ACPI_SPINLOCK Handle); |
void |
AcpiOsReleaseLock ( |
ACPI_SPINLOCK Handle, |
ACPI_CPU_FLAGS Flags); |
/* |
* Semaphore primitives |
*/ |
ACPI_STATUS |
AcpiOsCreateSemaphore ( |
UINT32 MaxUnits, |
UINT32 InitialUnits, |
ACPI_SEMAPHORE *OutHandle); |
ACPI_STATUS |
AcpiOsDeleteSemaphore ( |
ACPI_SEMAPHORE Handle); |
ACPI_STATUS |
AcpiOsWaitSemaphore ( |
ACPI_SEMAPHORE Handle, |
UINT32 Units, |
UINT16 Timeout); |
ACPI_STATUS |
AcpiOsSignalSemaphore ( |
ACPI_SEMAPHORE Handle, |
UINT32 Units); |
/* |
* Mutex primitives. May be configured to use semaphores instead via |
* ACPI_MUTEX_TYPE (see platform/acenv.h) |
*/ |
#if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE) |
ACPI_STATUS |
AcpiOsCreateMutex ( |
ACPI_MUTEX *OutHandle); |
void |
AcpiOsDeleteMutex ( |
ACPI_MUTEX Handle); |
ACPI_STATUS |
AcpiOsAcquireMutex ( |
ACPI_MUTEX Handle, |
UINT16 Timeout); |
void |
AcpiOsReleaseMutex ( |
ACPI_MUTEX Handle); |
#endif |
/* |
* Memory allocation and mapping |
*/ |
void * |
AcpiOsAllocate ( |
ACPI_SIZE Size); |
void |
AcpiOsFree ( |
void * Memory); |
void * |
AcpiOsMapMemory ( |
ACPI_PHYSICAL_ADDRESS Where, |
ACPI_SIZE Length); |
void |
AcpiOsUnmapMemory ( |
void *LogicalAddress, |
ACPI_SIZE Size); |
ACPI_STATUS |
AcpiOsGetPhysicalAddress ( |
void *LogicalAddress, |
ACPI_PHYSICAL_ADDRESS *PhysicalAddress); |
/* |
* Memory/Object Cache |
*/ |
ACPI_STATUS |
AcpiOsCreateCache ( |
char *CacheName, |
UINT16 ObjectSize, |
UINT16 MaxDepth, |
ACPI_CACHE_T **ReturnCache); |
ACPI_STATUS |
AcpiOsDeleteCache ( |
ACPI_CACHE_T *Cache); |
ACPI_STATUS |
AcpiOsPurgeCache ( |
ACPI_CACHE_T *Cache); |
void * |
AcpiOsAcquireObject ( |
ACPI_CACHE_T *Cache); |
ACPI_STATUS |
AcpiOsReleaseObject ( |
ACPI_CACHE_T *Cache, |
void *Object); |
/* |
* Interrupt handlers |
*/ |
ACPI_STATUS |
AcpiOsInstallInterruptHandler ( |
UINT32 InterruptNumber, |
ACPI_OSD_HANDLER ServiceRoutine, |
void *Context); |
ACPI_STATUS |
AcpiOsRemoveInterruptHandler ( |
UINT32 InterruptNumber, |
ACPI_OSD_HANDLER ServiceRoutine); |
/* |
* Threads and Scheduling |
*/ |
ACPI_THREAD_ID |
AcpiOsGetThreadId ( |
void); |
ACPI_STATUS |
AcpiOsExecute ( |
ACPI_EXECUTE_TYPE Type, |
ACPI_OSD_EXEC_CALLBACK Function, |
void *Context); |
void |
AcpiOsWaitEventsComplete ( |
void *Context); |
void |
AcpiOsSleep ( |
UINT64 Milliseconds); |
void |
AcpiOsStall ( |
UINT32 Microseconds); |
/* |
* Platform and hardware-independent I/O interfaces |
*/ |
ACPI_STATUS |
AcpiOsReadPort ( |
ACPI_IO_ADDRESS Address, |
UINT32 *Value, |
UINT32 Width); |
ACPI_STATUS |
AcpiOsWritePort ( |
ACPI_IO_ADDRESS Address, |
UINT32 Value, |
UINT32 Width); |
/* |
* Platform and hardware-independent physical memory interfaces |
*/ |
ACPI_STATUS |
AcpiOsReadMemory ( |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 *Value, |
UINT32 Width); |
ACPI_STATUS |
AcpiOsWriteMemory ( |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 Value, |
UINT32 Width); |
/* |
* Platform and hardware-independent PCI configuration space access |
* Note: Can't use "Register" as a parameter, changed to "Reg" -- |
* certain compilers complain. |
*/ |
ACPI_STATUS |
AcpiOsReadPciConfiguration ( |
ACPI_PCI_ID *PciId, |
UINT32 Reg, |
void *Value, |
UINT32 Width); |
ACPI_STATUS |
AcpiOsWritePciConfiguration ( |
ACPI_PCI_ID *PciId, |
UINT32 Reg, |
UINT64 Value, |
UINT32 Width); |
/* |
* Interim function needed for PCI IRQ routing |
*/ |
void |
AcpiOsDerivePciId( |
ACPI_HANDLE Device, |
ACPI_HANDLE Region, |
ACPI_PCI_ID **PciId); |
/* |
* Miscellaneous |
*/ |
ACPI_STATUS |
AcpiOsValidateInterface ( |
char *Interface); |
BOOLEAN |
AcpiOsReadable ( |
void *Pointer, |
ACPI_SIZE Length); |
BOOLEAN |
AcpiOsWritable ( |
void *Pointer, |
ACPI_SIZE Length); |
UINT64 |
AcpiOsGetTimer ( |
void); |
ACPI_STATUS |
AcpiOsSignal ( |
UINT32 Function, |
void *Info); |
/* |
* Debug print routines |
*/ |
void ACPI_INTERNAL_VAR_XFACE |
AcpiOsPrintf ( |
const char *Format, |
...); |
void |
AcpiOsVprintf ( |
const char *Format, |
va_list Args); |
void |
AcpiOsRedirectOutput ( |
void *Destination); |
/* |
* Debug input |
*/ |
UINT32 |
AcpiOsGetLine ( |
char *Buffer); |
/* |
* Directory manipulation |
*/ |
void * |
AcpiOsOpenDirectory ( |
char *Pathname, |
char *WildcardSpec, |
char RequestedFileType); |
/* RequesteFileType values */ |
#define REQUEST_FILE_ONLY 0 |
#define REQUEST_DIR_ONLY 1 |
char * |
AcpiOsGetNextFilename ( |
void *DirHandle); |
void |
AcpiOsCloseDirectory ( |
void *DirHandle); |
#endif /* __ACPIOSXF_H__ */ |
/drivers/devman/acpica/include/acpixf.h |
---|
0,0 → 1,688 |
/****************************************************************************** |
* |
* Name: acpixf.h - External interfaces to the ACPI subsystem |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACXFACE_H__ |
#define __ACXFACE_H__ |
/* Current ACPICA subsystem version in YYYYMMDD format */ |
#define ACPI_CA_VERSION 0x20100528 |
#include "actypes.h" |
#include "actbl.h" |
/* |
* Globals that are publically available |
*/ |
extern UINT32 AcpiCurrentGpeCount; |
extern ACPI_TABLE_FADT AcpiGbl_FADT; |
/* Runtime configuration of debug print levels */ |
extern UINT32 AcpiDbgLevel; |
extern UINT32 AcpiDbgLayer; |
/* ACPICA runtime options */ |
extern UINT8 AcpiGbl_EnableInterpreterSlack; |
extern UINT8 AcpiGbl_AllMethodsSerialized; |
extern UINT8 AcpiGbl_CreateOsiMethod; |
extern UINT8 AcpiGbl_LeaveWakeGpesDisabled; |
extern UINT8 AcpiGbl_UseDefaultRegisterWidths; |
extern ACPI_NAME AcpiGbl_TraceMethodName; |
extern UINT32 AcpiGbl_TraceFlags; |
extern UINT8 AcpiGbl_EnableAmlDebugObject; |
extern UINT8 AcpiGbl_CopyDsdtLocally; |
extern UINT8 AcpiGbl_TruncateIoAddresses; |
/* |
* Global interfaces |
*/ |
ACPI_STATUS |
AcpiInitializeTables ( |
ACPI_TABLE_DESC *InitialStorage, |
UINT32 InitialTableCount, |
BOOLEAN AllowResize); |
ACPI_STATUS |
AcpiInitializeSubsystem ( |
void); |
ACPI_STATUS |
AcpiEnableSubsystem ( |
UINT32 Flags); |
ACPI_STATUS |
AcpiInitializeObjects ( |
UINT32 Flags); |
ACPI_STATUS |
AcpiTerminate ( |
void); |
ACPI_STATUS |
AcpiSubsystemStatus ( |
void); |
ACPI_STATUS |
AcpiEnable ( |
void); |
ACPI_STATUS |
AcpiDisable ( |
void); |
ACPI_STATUS |
AcpiGetSystemInfo ( |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiGetStatistics ( |
ACPI_STATISTICS *Stats); |
const char * |
AcpiFormatException ( |
ACPI_STATUS Exception); |
ACPI_STATUS |
AcpiPurgeCachedObjects ( |
void); |
/* |
* ACPI Memory managment |
*/ |
void * |
AcpiAllocate ( |
UINT32 Size); |
void * |
AcpiCallocate ( |
UINT32 Size); |
void |
AcpiFree ( |
void *Address); |
/* |
* ACPI table manipulation interfaces |
*/ |
ACPI_STATUS |
AcpiReallocateRootTable ( |
void); |
ACPI_STATUS |
AcpiFindRootPointer ( |
ACPI_SIZE *RsdpAddress); |
ACPI_STATUS |
AcpiLoadTables ( |
void); |
ACPI_STATUS |
AcpiGetTableHeader ( |
ACPI_STRING Signature, |
UINT32 Instance, |
ACPI_TABLE_HEADER *OutTableHeader); |
ACPI_STATUS |
AcpiGetTable ( |
ACPI_STRING Signature, |
UINT32 Instance, |
ACPI_TABLE_HEADER **OutTable); |
ACPI_STATUS |
AcpiGetTableByIndex ( |
UINT32 TableIndex, |
ACPI_TABLE_HEADER **OutTable); |
ACPI_STATUS |
AcpiInstallTableHandler ( |
ACPI_TABLE_HANDLER Handler, |
void *Context); |
ACPI_STATUS |
AcpiRemoveTableHandler ( |
ACPI_TABLE_HANDLER Handler); |
/* |
* Namespace and name interfaces |
*/ |
ACPI_STATUS |
AcpiWalkNamespace ( |
ACPI_OBJECT_TYPE Type, |
ACPI_HANDLE StartObject, |
UINT32 MaxDepth, |
ACPI_WALK_CALLBACK PreOrderVisit, |
ACPI_WALK_CALLBACK PostOrderVisit, |
void *Context, |
void **ReturnValue); |
ACPI_STATUS |
AcpiGetDevices ( |
char *HID, |
ACPI_WALK_CALLBACK UserFunction, |
void *Context, |
void **ReturnValue); |
ACPI_STATUS |
AcpiGetName ( |
ACPI_HANDLE Object, |
UINT32 NameType, |
ACPI_BUFFER *RetPathPtr); |
ACPI_STATUS |
AcpiGetHandle ( |
ACPI_HANDLE Parent, |
ACPI_STRING Pathname, |
ACPI_HANDLE *RetHandle); |
ACPI_STATUS |
AcpiAttachData ( |
ACPI_HANDLE Object, |
ACPI_OBJECT_HANDLER Handler, |
void *Data); |
ACPI_STATUS |
AcpiDetachData ( |
ACPI_HANDLE Object, |
ACPI_OBJECT_HANDLER Handler); |
ACPI_STATUS |
AcpiGetData ( |
ACPI_HANDLE Object, |
ACPI_OBJECT_HANDLER Handler, |
void **Data); |
ACPI_STATUS |
AcpiDebugTrace ( |
char *Name, |
UINT32 DebugLevel, |
UINT32 DebugLayer, |
UINT32 Flags); |
/* |
* Object manipulation and enumeration |
*/ |
ACPI_STATUS |
AcpiEvaluateObject ( |
ACPI_HANDLE Object, |
ACPI_STRING Pathname, |
ACPI_OBJECT_LIST *ParameterObjects, |
ACPI_BUFFER *ReturnObjectBuffer); |
ACPI_STATUS |
AcpiEvaluateObjectTyped ( |
ACPI_HANDLE Object, |
ACPI_STRING Pathname, |
ACPI_OBJECT_LIST *ExternalParams, |
ACPI_BUFFER *ReturnBuffer, |
ACPI_OBJECT_TYPE ReturnType); |
ACPI_STATUS |
AcpiGetObjectInfo ( |
ACPI_HANDLE Object, |
ACPI_DEVICE_INFO **ReturnBuffer); |
ACPI_STATUS |
AcpiInstallMethod ( |
UINT8 *Buffer); |
ACPI_STATUS |
AcpiGetNextObject ( |
ACPI_OBJECT_TYPE Type, |
ACPI_HANDLE Parent, |
ACPI_HANDLE Child, |
ACPI_HANDLE *OutHandle); |
ACPI_STATUS |
AcpiGetType ( |
ACPI_HANDLE Object, |
ACPI_OBJECT_TYPE *OutType); |
ACPI_STATUS |
AcpiGetParent ( |
ACPI_HANDLE Object, |
ACPI_HANDLE *OutHandle); |
/* |
* Handler interfaces |
*/ |
ACPI_STATUS |
AcpiInstallInitializationHandler ( |
ACPI_INIT_HANDLER Handler, |
UINT32 Function); |
ACPI_STATUS |
AcpiInstallFixedEventHandler ( |
UINT32 AcpiEvent, |
ACPI_EVENT_HANDLER Handler, |
void *Context); |
ACPI_STATUS |
AcpiRemoveFixedEventHandler ( |
UINT32 AcpiEvent, |
ACPI_EVENT_HANDLER Handler); |
ACPI_STATUS |
AcpiInstallNotifyHandler ( |
ACPI_HANDLE Device, |
UINT32 HandlerType, |
ACPI_NOTIFY_HANDLER Handler, |
void *Context); |
ACPI_STATUS |
AcpiRemoveNotifyHandler ( |
ACPI_HANDLE Device, |
UINT32 HandlerType, |
ACPI_NOTIFY_HANDLER Handler); |
ACPI_STATUS |
AcpiInstallAddressSpaceHandler ( |
ACPI_HANDLE Device, |
ACPI_ADR_SPACE_TYPE SpaceId, |
ACPI_ADR_SPACE_HANDLER Handler, |
ACPI_ADR_SPACE_SETUP Setup, |
void *Context); |
ACPI_STATUS |
AcpiRemoveAddressSpaceHandler ( |
ACPI_HANDLE Device, |
ACPI_ADR_SPACE_TYPE SpaceId, |
ACPI_ADR_SPACE_HANDLER Handler); |
ACPI_STATUS |
AcpiInstallGpeHandler ( |
ACPI_HANDLE GpeDevice, |
UINT32 GpeNumber, |
UINT32 Type, |
ACPI_EVENT_HANDLER Address, |
void *Context); |
ACPI_STATUS |
AcpiRemoveGpeHandler ( |
ACPI_HANDLE GpeDevice, |
UINT32 GpeNumber, |
ACPI_EVENT_HANDLER Address); |
ACPI_STATUS |
AcpiInstallExceptionHandler ( |
ACPI_EXCEPTION_HANDLER Handler); |
/* |
* Event interfaces |
*/ |
ACPI_STATUS |
AcpiAcquireGlobalLock ( |
UINT16 Timeout, |
UINT32 *Handle); |
ACPI_STATUS |
AcpiReleaseGlobalLock ( |
UINT32 Handle); |
ACPI_STATUS |
AcpiEnableEvent ( |
UINT32 Event, |
UINT32 Flags); |
ACPI_STATUS |
AcpiDisableEvent ( |
UINT32 Event, |
UINT32 Flags); |
ACPI_STATUS |
AcpiClearEvent ( |
UINT32 Event); |
ACPI_STATUS |
AcpiGetEventStatus ( |
UINT32 Event, |
ACPI_EVENT_STATUS *EventStatus); |
/* |
* GPE Interfaces |
*/ |
ACPI_STATUS |
AcpiSetGpe ( |
ACPI_HANDLE GpeDevice, |
UINT32 GpeNumber, |
UINT8 Action); |
ACPI_STATUS |
AcpiEnableGpe ( |
ACPI_HANDLE GpeDevice, |
UINT32 GpeNumber, |
UINT8 GpeType); |
ACPI_STATUS |
AcpiDisableGpe ( |
ACPI_HANDLE GpeDevice, |
UINT32 GpeNumber, |
UINT8 GpeType); |
ACPI_STATUS |
AcpiClearGpe ( |
ACPI_HANDLE GpeDevice, |
UINT32 GpeNumber); |
ACPI_STATUS |
AcpiGetGpeStatus ( |
ACPI_HANDLE GpeDevice, |
UINT32 GpeNumber, |
ACPI_EVENT_STATUS *EventStatus); |
ACPI_STATUS |
AcpiDisableAllGpes ( |
void); |
ACPI_STATUS |
AcpiEnableAllRuntimeGpes ( |
void); |
ACPI_STATUS |
AcpiGetGpeDevice ( |
UINT32 GpeIndex, |
ACPI_HANDLE *GpeDevice); |
ACPI_STATUS |
AcpiInstallGpeBlock ( |
ACPI_HANDLE GpeDevice, |
ACPI_GENERIC_ADDRESS *GpeBlockAddress, |
UINT32 RegisterCount, |
UINT32 InterruptNumber); |
ACPI_STATUS |
AcpiRemoveGpeBlock ( |
ACPI_HANDLE GpeDevice); |
/* |
* Resource interfaces |
*/ |
typedef |
ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) ( |
ACPI_RESOURCE *Resource, |
void *Context); |
ACPI_STATUS |
AcpiGetVendorResource ( |
ACPI_HANDLE Device, |
char *Name, |
ACPI_VENDOR_UUID *Uuid, |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiGetCurrentResources ( |
ACPI_HANDLE Device, |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiGetPossibleResources ( |
ACPI_HANDLE Device, |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiWalkResources ( |
ACPI_HANDLE Device, |
char *Name, |
ACPI_WALK_RESOURCE_CALLBACK UserFunction, |
void *Context); |
ACPI_STATUS |
AcpiSetCurrentResources ( |
ACPI_HANDLE Device, |
ACPI_BUFFER *InBuffer); |
ACPI_STATUS |
AcpiGetIrqRoutingTable ( |
ACPI_HANDLE Device, |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiResourceToAddress64 ( |
ACPI_RESOURCE *Resource, |
ACPI_RESOURCE_ADDRESS64 *Out); |
/* |
* Hardware (ACPI device) interfaces |
*/ |
ACPI_STATUS |
AcpiReset ( |
void); |
ACPI_STATUS |
AcpiRead ( |
UINT64 *Value, |
ACPI_GENERIC_ADDRESS *Reg); |
ACPI_STATUS |
AcpiWrite ( |
UINT64 Value, |
ACPI_GENERIC_ADDRESS *Reg); |
ACPI_STATUS |
AcpiReadBitRegister ( |
UINT32 RegisterId, |
UINT32 *ReturnValue); |
ACPI_STATUS |
AcpiWriteBitRegister ( |
UINT32 RegisterId, |
UINT32 Value); |
ACPI_STATUS |
AcpiGetSleepTypeData ( |
UINT8 SleepState, |
UINT8 *Slp_TypA, |
UINT8 *Slp_TypB); |
ACPI_STATUS |
AcpiEnterSleepStatePrep ( |
UINT8 SleepState); |
ACPI_STATUS |
AcpiEnterSleepState ( |
UINT8 SleepState); |
ACPI_STATUS |
AcpiEnterSleepStateS4bios ( |
void); |
ACPI_STATUS |
AcpiLeaveSleepState ( |
UINT8 SleepState) |
; |
ACPI_STATUS |
AcpiSetFirmwareWakingVector ( |
UINT32 PhysicalAddress); |
#if ACPI_MACHINE_WIDTH == 64 |
ACPI_STATUS |
AcpiSetFirmwareWakingVector64 ( |
UINT64 PhysicalAddress); |
#endif |
/* |
* Error/Warning output |
*/ |
void ACPI_INTERNAL_VAR_XFACE |
AcpiError ( |
const char *ModuleName, |
UINT32 LineNumber, |
const char *Format, |
...) ACPI_PRINTF_LIKE(3); |
void ACPI_INTERNAL_VAR_XFACE |
AcpiException ( |
const char *ModuleName, |
UINT32 LineNumber, |
ACPI_STATUS Status, |
const char *Format, |
...) ACPI_PRINTF_LIKE(4); |
void ACPI_INTERNAL_VAR_XFACE |
AcpiWarning ( |
const char *ModuleName, |
UINT32 LineNumber, |
const char *Format, |
...) ACPI_PRINTF_LIKE(3); |
void ACPI_INTERNAL_VAR_XFACE |
AcpiInfo ( |
const char *ModuleName, |
UINT32 LineNumber, |
const char *Format, |
...) ACPI_PRINTF_LIKE(3); |
/* |
* Debug output |
*/ |
#ifdef ACPI_DEBUG_OUTPUT |
void ACPI_INTERNAL_VAR_XFACE |
AcpiDebugPrint ( |
UINT32 RequestedDebugLevel, |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId, |
const char *Format, |
...) ACPI_PRINTF_LIKE(6); |
void ACPI_INTERNAL_VAR_XFACE |
AcpiDebugPrintRaw ( |
UINT32 RequestedDebugLevel, |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId, |
const char *Format, |
...) ACPI_PRINTF_LIKE(6); |
#endif |
#endif /* __ACXFACE_H__ */ |
/drivers/devman/acpica/include/acpredef.h |
---|
0,0 → 1,599 |
/****************************************************************************** |
* |
* Name: acpredef - Information table for ACPI predefined methods and objects |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACPREDEF_H__ |
#define __ACPREDEF_H__ |
/****************************************************************************** |
* |
* Return Package types |
* |
* 1) PTYPE1 packages do not contain sub-packages. |
* |
* ACPI_PTYPE1_FIXED: Fixed-length length, 1 or 2 object types: |
* object type |
* count |
* object type |
* count |
* |
* ACPI_PTYPE1_VAR: Variable-length length: |
* object type (Int/Buf/Ref) |
* |
* ACPI_PTYPE1_OPTION: Package has some required and some optional elements |
* (Used for _PRW) |
* |
* |
* 2) PTYPE2 packages contain a Variable-length number of sub-packages. Each |
* of the different types describe the contents of each of the sub-packages. |
* |
* ACPI_PTYPE2: Each subpackage contains 1 or 2 object types: |
* object type |
* count |
* object type |
* count |
* (Used for _ALR,_MLS,_PSS,_TRT,_TSS) |
* |
* ACPI_PTYPE2_COUNT: Each subpackage has a count as first element: |
* object type |
* (Used for _CSD,_PSD,_TSD) |
* |
* ACPI_PTYPE2_PKG_COUNT: Count of subpackages at start, 1 or 2 object types: |
* object type |
* count |
* object type |
* count |
* (Used for _CST) |
* |
* ACPI_PTYPE2_FIXED: Each subpackage is of Fixed-length |
* (Used for _PRT) |
* |
* ACPI_PTYPE2_MIN: Each subpackage has a Variable-length but minimum length |
* (Used for _HPX) |
* |
* ACPI_PTYPE2_REV_FIXED: Revision at start, each subpackage is Fixed-length |
* (Used for _ART, _FPS) |
* |
*****************************************************************************/ |
enum AcpiReturnPackageTypes |
{ |
ACPI_PTYPE1_FIXED = 1, |
ACPI_PTYPE1_VAR = 2, |
ACPI_PTYPE1_OPTION = 3, |
ACPI_PTYPE2 = 4, |
ACPI_PTYPE2_COUNT = 5, |
ACPI_PTYPE2_PKG_COUNT = 6, |
ACPI_PTYPE2_FIXED = 7, |
ACPI_PTYPE2_MIN = 8, |
ACPI_PTYPE2_REV_FIXED = 9 |
}; |
#ifdef ACPI_CREATE_PREDEFINED_TABLE |
/* |
* Predefined method/object information table. |
* |
* These are the names that can actually be evaluated via AcpiEvaluateObject. |
* Not present in this table are the following: |
* |
* 1) Predefined/Reserved names that are never evaluated via |
* AcpiEvaluateObject: |
* _Lxx and _Exx GPE methods |
* _Qxx EC methods |
* _T_x compiler temporary variables |
* |
* 2) Predefined names that never actually exist within the AML code: |
* Predefined resource descriptor field names |
* |
* 3) Predefined names that are implemented within ACPICA: |
* _OSI |
* |
* 4) Some predefined names that are not documented within the ACPI spec. |
* _WDG, _WED |
* |
* The main entries in the table each contain the following items: |
* |
* Name - The ACPI reserved name |
* ParamCount - Number of arguments to the method |
* ExpectedBtypes - Allowed type(s) for the return value. |
* 0 means that no return value is expected. |
* |
* For methods that return packages, the next entry in the table contains |
* information about the expected structure of the package. This information |
* is saved here (rather than in a separate table) in order to minimize the |
* overall size of the stored data. |
* |
* Note: The additional braces are intended to promote portability. |
*/ |
static const ACPI_PREDEFINED_INFO PredefinedNames[] = |
{ |
{{"_AC0", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AC1", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AC2", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AC3", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AC4", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AC5", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AC6", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AC7", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AC8", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AC9", 0, ACPI_RTYPE_INTEGER}}, |
{{"_ADR", 0, ACPI_RTYPE_INTEGER}}, |
{{"_AL0", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_AL1", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_AL2", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_AL3", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_AL4", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_AL5", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_AL6", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_AL7", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_AL8", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_AL9", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_ALC", 0, ACPI_RTYPE_INTEGER}}, |
{{"_ALI", 0, ACPI_RTYPE_INTEGER}}, |
{{"_ALP", 0, ACPI_RTYPE_INTEGER}}, |
{{"_ALR", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2 (Ints) */ |
{{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 2,0}, 0,0}}, |
{{"_ALT", 0, ACPI_RTYPE_INTEGER}}, |
{{"_ART", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(rev), n Pkg (2 Ref/11 Int) */ |
{{{ACPI_PTYPE2_REV_FIXED,ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER}, 11,0}}, |
{{"_BBN", 0, ACPI_RTYPE_INTEGER}}, |
{{"_BCL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}}, |
{{"_BCM", 1, 0}}, |
{{"_BCT", 1, ACPI_RTYPE_INTEGER}}, |
{{"_BDN", 0, ACPI_RTYPE_INTEGER}}, |
{{"_BFS", 1, 0}}, |
{{"_BIF", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (9 Int),(4 Str) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 9, ACPI_RTYPE_STRING}, 4,0}}, |
{{"_BIX", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (16 Int),(4 Str) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, ACPI_RTYPE_STRING}, 4,0}}, |
{{"_BLT", 3, 0}}, |
{{"_BMA", 1, ACPI_RTYPE_INTEGER}}, |
{{"_BMC", 1, 0}}, |
{{"_BMD", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (5 Int) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5,0}, 0,0}}, |
{{"_BMS", 1, ACPI_RTYPE_INTEGER}}, |
{{"_BQC", 0, ACPI_RTYPE_INTEGER}}, |
{{"_BST", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}}, |
{{"_BTM", 1, ACPI_RTYPE_INTEGER}}, |
{{"_BTP", 1, 0}}, |
{{"_CBA", 0, ACPI_RTYPE_INTEGER}}, /* See PCI firmware spec 3.0 */ |
{{"_CDM", 0, ACPI_RTYPE_INTEGER}}, |
{{"_CID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints/Strs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING, 0,0}, 0,0}}, |
{{"_CRS", 0, ACPI_RTYPE_BUFFER}}, |
{{"_CRT", 0, ACPI_RTYPE_INTEGER}}, |
{{"_CSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(n), n-1 Int) */ |
{{{ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0,0}, 0,0}}, |
{{"_CST", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(n), n Pkg (1 Buf/3 Int) */ |
{{{ACPI_PTYPE2_PKG_COUNT,ACPI_RTYPE_BUFFER, 1, ACPI_RTYPE_INTEGER}, 3,0}}, |
{{"_DCK", 1, ACPI_RTYPE_INTEGER}}, |
{{"_DCS", 0, ACPI_RTYPE_INTEGER}}, |
{{"_DDC", 1, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER}}, |
{{"_DDN", 0, ACPI_RTYPE_STRING}}, |
{{"_DGS", 0, ACPI_RTYPE_INTEGER}}, |
{{"_DIS", 0, 0}}, |
{{"_DMA", 0, ACPI_RTYPE_BUFFER}}, |
{{"_DOD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}}, |
{{"_DOS", 1, 0}}, |
{{"_DSM", 4, ACPI_RTYPE_ALL}}, /* Must return a type, but it can be of any type */ |
{{"_DSS", 1, 0}}, |
{{"_DSW", 3, 0}}, |
{{"_DTI", 1, 0}}, |
{{"_EC_", 0, ACPI_RTYPE_INTEGER}}, |
{{"_EDL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs)*/ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_EJ0", 1, 0}}, |
{{"_EJ1", 1, 0}}, |
{{"_EJ2", 1, 0}}, |
{{"_EJ3", 1, 0}}, |
{{"_EJ4", 1, 0}}, |
{{"_EJD", 0, ACPI_RTYPE_STRING}}, |
{{"_FDE", 0, ACPI_RTYPE_BUFFER}}, |
{{"_FDI", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (16 Int) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16,0}, 0,0}}, |
{{"_FDM", 1, 0}}, |
{{"_FIF", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}}, |
{{"_FIX", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}}, |
{{"_FPS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(rev), n Pkg (5 Int) */ |
{{{ACPI_PTYPE2_REV_FIXED,ACPI_RTYPE_INTEGER, 5, 0}, 0,0}}, |
{{"_FSL", 1, 0}}, |
{{"_FST", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (3 Int) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3,0}, 0,0}}, |
{{"_GAI", 0, ACPI_RTYPE_INTEGER}}, |
{{"_GHL", 0, ACPI_RTYPE_INTEGER}}, |
{{"_GLK", 0, ACPI_RTYPE_INTEGER}}, |
{{"_GPD", 0, ACPI_RTYPE_INTEGER}}, |
{{"_GPE", 0, ACPI_RTYPE_INTEGER}}, /* _GPE method, not _GPE scope */ |
{{"_GSB", 0, ACPI_RTYPE_INTEGER}}, |
{{"_GTF", 0, ACPI_RTYPE_BUFFER}}, |
{{"_GTM", 0, ACPI_RTYPE_BUFFER}}, |
{{"_GTS", 1, 0}}, |
{{"_HID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}}, |
{{"_HOT", 0, ACPI_RTYPE_INTEGER}}, |
{{"_HPP", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}}, |
/* |
* For _HPX, a single package is returned, containing a Variable-length number |
* of sub-packages. Each sub-package contains a PCI record setting. |
* There are several different type of record settings, of different |
* lengths, but all elements of all settings are Integers. |
*/ |
{{"_HPX", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (var Ints) */ |
{{{ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5,0}, 0,0}}, |
{{"_IFT", 0, ACPI_RTYPE_INTEGER}}, /* See IPMI spec */ |
{{"_INI", 0, 0}}, |
{{"_IRC", 0, 0}}, |
{{"_LCK", 1, 0}}, |
{{"_LID", 0, ACPI_RTYPE_INTEGER}}, |
{{"_MAT", 0, ACPI_RTYPE_BUFFER}}, |
{{"_MBM", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (8 Int) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 8,0}, 0,0}}, |
{{"_MLS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (2 Str) */ |
{{{ACPI_PTYPE2, ACPI_RTYPE_STRING, 2,0}, 0,0}}, |
{{"_MSG", 1, 0}}, |
{{"_MSM", 4, ACPI_RTYPE_INTEGER}}, |
{{"_NTT", 0, ACPI_RTYPE_INTEGER}}, |
{{"_OFF", 0, 0}}, |
{{"_ON_", 0, 0}}, |
{{"_OS_", 0, ACPI_RTYPE_STRING}}, |
{{"_OSC", 4, ACPI_RTYPE_BUFFER}}, |
{{"_OST", 3, 0}}, |
{{"_PAI", 1, ACPI_RTYPE_INTEGER}}, |
{{"_PCL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_PCT", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Buf) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2,0}, 0,0}}, |
{{"_PDC", 1, 0}}, |
{{"_PDL", 0, ACPI_RTYPE_INTEGER}}, |
{{"_PIC", 1, 0}}, |
{{"_PIF", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (3 Int),(3 Str) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, ACPI_RTYPE_STRING}, 3,0}}, |
{{"_PLD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Bufs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_BUFFER, 0,0}, 0,0}}, |
{{"_PMC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (11 Int),(3 Str) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 11, ACPI_RTYPE_STRING}, 3,0}}, |
{{"_PMD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_PMM", 0, ACPI_RTYPE_INTEGER}}, |
{{"_PPC", 0, ACPI_RTYPE_INTEGER}}, |
{{"_PPE", 0, ACPI_RTYPE_INTEGER}}, /* See dig64 spec */ |
{{"_PR0", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_PR1", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_PR2", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_PR3", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_PRL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_PRS", 0, ACPI_RTYPE_BUFFER}}, |
/* |
* For _PRT, many BIOSs reverse the 3rd and 4th Package elements (Source |
* and SourceIndex). This bug is so prevalent that there is code in the |
* ACPICA Resource Manager to detect this and switch them back. For now, |
* do not allow and issue a warning. To allow this and eliminate the |
* warning, add the ACPI_RTYPE_REFERENCE type to the 4th element (index 3) |
* in the statement below. |
*/ |
{{"_PRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (4): Int,Int,Int/Ref,Int */ |
{{{ACPI_PTYPE2_FIXED, 4, ACPI_RTYPE_INTEGER,ACPI_RTYPE_INTEGER}, |
ACPI_RTYPE_INTEGER | ACPI_RTYPE_REFERENCE, |
ACPI_RTYPE_INTEGER}}, |
{{"_PRW", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each: Pkg/Int,Int,[Variable-length Refs] (Pkg is Ref/Int) */ |
{{{ACPI_PTYPE1_OPTION, 2, ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE, |
ACPI_RTYPE_INTEGER}, ACPI_RTYPE_REFERENCE,0}}, |
{{"_PS0", 0, 0}}, |
{{"_PS1", 0, 0}}, |
{{"_PS2", 0, 0}}, |
{{"_PS3", 0, 0}}, |
{{"_PSC", 0, ACPI_RTYPE_INTEGER}}, |
{{"_PSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (5 Int) with count */ |
{{{ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER,0,0}, 0,0}}, |
{{"_PSL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_PSR", 0, ACPI_RTYPE_INTEGER}}, |
{{"_PSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (6 Int) */ |
{{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 6,0}, 0,0}}, |
{{"_PSV", 0, ACPI_RTYPE_INTEGER}}, |
{{"_PSW", 1, 0}}, |
{{"_PTC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Buf) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2,0}, 0,0}}, |
{{"_PTP", 2, ACPI_RTYPE_INTEGER}}, |
{{"_PTS", 1, 0}}, |
{{"_PUR", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Int) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2,0}, 0,0}}, |
{{"_PXM", 0, ACPI_RTYPE_INTEGER}}, |
{{"_REG", 2, 0}}, |
{{"_REV", 0, ACPI_RTYPE_INTEGER}}, |
{{"_RMV", 0, ACPI_RTYPE_INTEGER}}, |
{{"_ROM", 2, ACPI_RTYPE_BUFFER}}, |
{{"_RTV", 0, ACPI_RTYPE_INTEGER}}, |
/* |
* For _S0_ through _S5_, the ACPI spec defines a return Package |
* containing 1 Integer, but most DSDTs have it wrong - 2,3, or 4 integers. |
* Allow this by making the objects "Variable-length length", but all elements |
* must be Integers. |
*/ |
{{"_S0_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, |
{{"_S1_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, |
{{"_S2_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, |
{{"_S3_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, |
{{"_S4_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, |
{{"_S5_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, |
{{"_S1D", 0, ACPI_RTYPE_INTEGER}}, |
{{"_S2D", 0, ACPI_RTYPE_INTEGER}}, |
{{"_S3D", 0, ACPI_RTYPE_INTEGER}}, |
{{"_S4D", 0, ACPI_RTYPE_INTEGER}}, |
{{"_S0W", 0, ACPI_RTYPE_INTEGER}}, |
{{"_S1W", 0, ACPI_RTYPE_INTEGER}}, |
{{"_S2W", 0, ACPI_RTYPE_INTEGER}}, |
{{"_S3W", 0, ACPI_RTYPE_INTEGER}}, |
{{"_S4W", 0, ACPI_RTYPE_INTEGER}}, |
{{"_SBS", 0, ACPI_RTYPE_INTEGER}}, |
{{"_SCP", 0x13, 0}}, /* Acpi 1.0 allowed 1 arg. Acpi 3.0 expanded to 3 args. Allow both. */ |
/* Note: the 3-arg definition may be removed for ACPI 4.0 */ |
{{"_SDD", 1, 0}}, |
{{"_SEG", 0, ACPI_RTYPE_INTEGER}}, |
{{"_SHL", 1, ACPI_RTYPE_INTEGER}}, |
{{"_SLI", 0, ACPI_RTYPE_BUFFER}}, |
{{"_SPD", 1, ACPI_RTYPE_INTEGER}}, |
{{"_SRS", 1, 0}}, |
{{"_SRV", 0, ACPI_RTYPE_INTEGER}}, /* See IPMI spec */ |
{{"_SST", 1, 0}}, |
{{"_STA", 0, ACPI_RTYPE_INTEGER}}, |
{{"_STM", 3, 0}}, |
{{"_STP", 2, ACPI_RTYPE_INTEGER}}, |
{{"_STR", 0, ACPI_RTYPE_BUFFER}}, |
{{"_STV", 2, ACPI_RTYPE_INTEGER}}, |
{{"_SUN", 0, ACPI_RTYPE_INTEGER}}, |
{{"_SWS", 0, ACPI_RTYPE_INTEGER}}, |
{{"_TC1", 0, ACPI_RTYPE_INTEGER}}, |
{{"_TC2", 0, ACPI_RTYPE_INTEGER}}, |
{{"_TIP", 1, ACPI_RTYPE_INTEGER}}, |
{{"_TIV", 1, ACPI_RTYPE_INTEGER}}, |
{{"_TMP", 0, ACPI_RTYPE_INTEGER}}, |
{{"_TPC", 0, ACPI_RTYPE_INTEGER}}, |
{{"_TPT", 1, 0}}, |
{{"_TRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2Ref/6Int */ |
{{{ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER}, 6, 0}}, |
{{"_TSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5Int with count */ |
{{{ACPI_PTYPE2_COUNT,ACPI_RTYPE_INTEGER, 5,0}, 0,0}}, |
{{"_TSP", 0, ACPI_RTYPE_INTEGER}}, |
{{"_TSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5Int */ |
{{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5,0}, 0,0}}, |
{{"_TST", 0, ACPI_RTYPE_INTEGER}}, |
{{"_TTS", 1, 0}}, |
{{"_TZD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ |
{{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, |
{{"_TZM", 0, ACPI_RTYPE_REFERENCE}}, |
{{"_TZP", 0, ACPI_RTYPE_INTEGER}}, |
{{"_UID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}}, |
{{"_UPC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */ |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}}, |
{{"_UPD", 0, ACPI_RTYPE_INTEGER}}, |
{{"_UPP", 0, ACPI_RTYPE_INTEGER}}, |
{{"_VPO", 0, ACPI_RTYPE_INTEGER}}, |
/* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */ |
{{"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE}}, |
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2,0}, 0,0}}, /* Fixed-length (2 Int), but is optional */ |
/* _WDG/_WED are MS extensions defined by "Windows Instrumentation" */ |
{{"_WDG", 0, ACPI_RTYPE_BUFFER}}, |
{{"_WED", 1, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER}}, |
{{{0,0,0,0}, 0,0}} /* Table terminator */ |
}; |
#if 0 |
/* This is an internally implemented control method, no need to check */ |
{{"_OSI", 1, ACPI_RTYPE_INTEGER}}, |
/* TBD: */ |
_PRT - currently ignore reversed entries. Attempt to fix here? |
Think about possibly fixing package elements like _BIF, etc. |
#endif |
#endif |
#endif |
/drivers/devman/acpica/include/acresrc.h |
---|
0,0 → 1,465 |
/****************************************************************************** |
* |
* Name: acresrc.h - Resource Manager function prototypes |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACRESRC_H__ |
#define __ACRESRC_H__ |
/* Need the AML resource descriptor structs */ |
#include "amlresrc.h" |
/* |
* If possible, pack the following structures to byte alignment, since we |
* don't care about performance for debug output. Two cases where we cannot |
* pack the structures: |
* |
* 1) Hardware does not support misaligned memory transfers |
* 2) Compiler does not support pointers within packed structures |
*/ |
#if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED)) |
#pragma pack(1) |
#endif |
/* |
* Individual entry for the resource conversion tables |
*/ |
typedef const struct acpi_rsconvert_info |
{ |
UINT8 Opcode; |
UINT8 ResourceOffset; |
UINT8 AmlOffset; |
UINT8 Value; |
} ACPI_RSCONVERT_INFO; |
/* Resource conversion opcodes */ |
#define ACPI_RSC_INITGET 0 |
#define ACPI_RSC_INITSET 1 |
#define ACPI_RSC_FLAGINIT 2 |
#define ACPI_RSC_1BITFLAG 3 |
#define ACPI_RSC_2BITFLAG 4 |
#define ACPI_RSC_COUNT 5 |
#define ACPI_RSC_COUNT16 6 |
#define ACPI_RSC_LENGTH 7 |
#define ACPI_RSC_MOVE8 8 |
#define ACPI_RSC_MOVE16 9 |
#define ACPI_RSC_MOVE32 10 |
#define ACPI_RSC_MOVE64 11 |
#define ACPI_RSC_SET8 12 |
#define ACPI_RSC_DATA8 13 |
#define ACPI_RSC_ADDRESS 14 |
#define ACPI_RSC_SOURCE 15 |
#define ACPI_RSC_SOURCEX 16 |
#define ACPI_RSC_BITMASK 17 |
#define ACPI_RSC_BITMASK16 18 |
#define ACPI_RSC_EXIT_NE 19 |
#define ACPI_RSC_EXIT_LE 20 |
#define ACPI_RSC_EXIT_EQ 21 |
/* Resource Conversion sub-opcodes */ |
#define ACPI_RSC_COMPARE_AML_LENGTH 0 |
#define ACPI_RSC_COMPARE_VALUE 1 |
#define ACPI_RSC_TABLE_SIZE(d) (sizeof (d) / sizeof (ACPI_RSCONVERT_INFO)) |
#define ACPI_RS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_RESOURCE,f) |
#define AML_OFFSET(f) (UINT8) ACPI_OFFSET (AML_RESOURCE,f) |
typedef const struct acpi_rsdump_info |
{ |
UINT8 Opcode; |
UINT8 Offset; |
char *Name; |
const char **Pointer; |
} ACPI_RSDUMP_INFO; |
/* Values for the Opcode field above */ |
#define ACPI_RSD_TITLE 0 |
#define ACPI_RSD_LITERAL 1 |
#define ACPI_RSD_STRING 2 |
#define ACPI_RSD_UINT8 3 |
#define ACPI_RSD_UINT16 4 |
#define ACPI_RSD_UINT32 5 |
#define ACPI_RSD_UINT64 6 |
#define ACPI_RSD_1BITFLAG 7 |
#define ACPI_RSD_2BITFLAG 8 |
#define ACPI_RSD_SHORTLIST 9 |
#define ACPI_RSD_LONGLIST 10 |
#define ACPI_RSD_DWORDLIST 11 |
#define ACPI_RSD_ADDRESS 12 |
#define ACPI_RSD_SOURCE 13 |
/* restore default alignment */ |
#pragma pack() |
/* Resource tables indexed by internal resource type */ |
extern const UINT8 AcpiGbl_AmlResourceSizes[]; |
extern ACPI_RSCONVERT_INFO *AcpiGbl_SetResourceDispatch[]; |
/* Resource tables indexed by raw AML resource descriptor type */ |
extern const UINT8 AcpiGbl_ResourceStructSizes[]; |
extern ACPI_RSCONVERT_INFO *AcpiGbl_GetResourceDispatch[]; |
typedef struct acpi_vendor_walk_info |
{ |
ACPI_VENDOR_UUID *Uuid; |
ACPI_BUFFER *Buffer; |
ACPI_STATUS Status; |
} ACPI_VENDOR_WALK_INFO; |
/* |
* rscreate |
*/ |
ACPI_STATUS |
AcpiRsCreateResourceList ( |
ACPI_OPERAND_OBJECT *AmlBuffer, |
ACPI_BUFFER *OutputBuffer); |
ACPI_STATUS |
AcpiRsCreateAmlResources ( |
ACPI_RESOURCE *LinkedListBuffer, |
ACPI_BUFFER *OutputBuffer); |
ACPI_STATUS |
AcpiRsCreatePciRoutingTable ( |
ACPI_OPERAND_OBJECT *PackageObject, |
ACPI_BUFFER *OutputBuffer); |
/* |
* rsutils |
*/ |
ACPI_STATUS |
AcpiRsGetPrtMethodData ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiRsGetCrsMethodData ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiRsGetPrsMethodData ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiRsGetMethodData ( |
ACPI_HANDLE Handle, |
char *Path, |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiRsSetSrsMethodData ( |
ACPI_NAMESPACE_NODE *Node, |
ACPI_BUFFER *RetBuffer); |
/* |
* rscalc |
*/ |
ACPI_STATUS |
AcpiRsGetListLength ( |
UINT8 *AmlBuffer, |
UINT32 AmlBufferLength, |
ACPI_SIZE *SizeNeeded); |
ACPI_STATUS |
AcpiRsGetAmlLength ( |
ACPI_RESOURCE *LinkedListBuffer, |
ACPI_SIZE *SizeNeeded); |
ACPI_STATUS |
AcpiRsGetPciRoutingTableLength ( |
ACPI_OPERAND_OBJECT *PackageObject, |
ACPI_SIZE *BufferSizeNeeded); |
ACPI_STATUS |
AcpiRsConvertAmlToResources ( |
UINT8 *Aml, |
UINT32 Length, |
UINT32 Offset, |
UINT8 ResourceIndex, |
void *Context); |
ACPI_STATUS |
AcpiRsConvertResourcesToAml ( |
ACPI_RESOURCE *Resource, |
ACPI_SIZE AmlSizeNeeded, |
UINT8 *OutputBuffer); |
/* |
* rsaddr |
*/ |
void |
AcpiRsSetAddressCommon ( |
AML_RESOURCE *Aml, |
ACPI_RESOURCE *Resource); |
BOOLEAN |
AcpiRsGetAddressCommon ( |
ACPI_RESOURCE *Resource, |
AML_RESOURCE *Aml); |
/* |
* rsmisc |
*/ |
ACPI_STATUS |
AcpiRsConvertAmlToResource ( |
ACPI_RESOURCE *Resource, |
AML_RESOURCE *Aml, |
ACPI_RSCONVERT_INFO *Info); |
ACPI_STATUS |
AcpiRsConvertResourceToAml ( |
ACPI_RESOURCE *Resource, |
AML_RESOURCE *Aml, |
ACPI_RSCONVERT_INFO *Info); |
/* |
* rsutils |
*/ |
void |
AcpiRsMoveData ( |
void *Destination, |
void *Source, |
UINT16 ItemCount, |
UINT8 MoveType); |
UINT8 |
AcpiRsDecodeBitmask ( |
UINT16 Mask, |
UINT8 *List); |
UINT16 |
AcpiRsEncodeBitmask ( |
UINT8 *List, |
UINT8 Count); |
ACPI_RS_LENGTH |
AcpiRsGetResourceSource ( |
ACPI_RS_LENGTH ResourceLength, |
ACPI_RS_LENGTH MinimumLength, |
ACPI_RESOURCE_SOURCE *ResourceSource, |
AML_RESOURCE *Aml, |
char *StringPtr); |
ACPI_RSDESC_SIZE |
AcpiRsSetResourceSource ( |
AML_RESOURCE *Aml, |
ACPI_RS_LENGTH MinimumLength, |
ACPI_RESOURCE_SOURCE *ResourceSource); |
void |
AcpiRsSetResourceHeader ( |
UINT8 DescriptorType, |
ACPI_RSDESC_SIZE TotalLength, |
AML_RESOURCE *Aml); |
void |
AcpiRsSetResourceLength ( |
ACPI_RSDESC_SIZE TotalLength, |
AML_RESOURCE *Aml); |
/* |
* rsdump |
*/ |
void |
AcpiRsDumpResourceList ( |
ACPI_RESOURCE *Resource); |
void |
AcpiRsDumpIrqList ( |
UINT8 *RouteTable); |
/* |
* Resource conversion tables |
*/ |
extern ACPI_RSCONVERT_INFO AcpiRsConvertDma[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertEndDpf[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertIo[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertFixedIo[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertEndTag[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertMemory24[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertGenericReg[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertMemory32[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertFixedMemory32[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress32[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress16[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress64[]; |
extern ACPI_RSCONVERT_INFO AcpiRsConvertExtAddress64[]; |
/* These resources require separate get/set tables */ |
extern ACPI_RSCONVERT_INFO AcpiRsGetIrq[]; |
extern ACPI_RSCONVERT_INFO AcpiRsGetStartDpf[]; |
extern ACPI_RSCONVERT_INFO AcpiRsGetVendorSmall[]; |
extern ACPI_RSCONVERT_INFO AcpiRsGetVendorLarge[]; |
extern ACPI_RSCONVERT_INFO AcpiRsSetIrq[]; |
extern ACPI_RSCONVERT_INFO AcpiRsSetStartDpf[]; |
extern ACPI_RSCONVERT_INFO AcpiRsSetVendor[]; |
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) |
/* |
* rsinfo |
*/ |
extern ACPI_RSDUMP_INFO *AcpiGbl_DumpResourceDispatch[]; |
/* |
* rsdump |
*/ |
extern ACPI_RSDUMP_INFO AcpiRsDumpIrq[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpDma[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpStartDpf[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpEndDpf[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpIo[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpFixedIo[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpVendor[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpEndTag[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpMemory24[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpMemory32[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpFixedMemory32[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpAddress16[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpAddress32[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpAddress64[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpExtAddress64[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[]; |
extern ACPI_RSDUMP_INFO AcpiRsDumpGenericReg[]; |
#endif |
#endif /* __ACRESRC_H__ */ |
/drivers/devman/acpica/include/acrestyp.h |
---|
0,0 → 1,544 |
/****************************************************************************** |
* |
* Name: acrestyp.h - Defines, types, and structures for resource descriptors |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACRESTYP_H__ |
#define __ACRESTYP_H__ |
/* |
* Definitions for Resource Attributes |
*/ |
typedef UINT16 ACPI_RS_LENGTH; /* Resource Length field is fixed at 16 bits */ |
typedef UINT32 ACPI_RSDESC_SIZE; /* Max Resource Descriptor size is (Length+3) = (64K-1)+3 */ |
/* |
* Memory Attributes |
*/ |
#define ACPI_READ_ONLY_MEMORY (UINT8) 0x00 |
#define ACPI_READ_WRITE_MEMORY (UINT8) 0x01 |
#define ACPI_NON_CACHEABLE_MEMORY (UINT8) 0x00 |
#define ACPI_CACHABLE_MEMORY (UINT8) 0x01 |
#define ACPI_WRITE_COMBINING_MEMORY (UINT8) 0x02 |
#define ACPI_PREFETCHABLE_MEMORY (UINT8) 0x03 |
/* |
* IO Attributes |
* The ISA IO ranges are: n000-n0FFh, n400-n4FFh, n800-n8FFh, nC00-nCFFh. |
* The non-ISA IO ranges are: n100-n3FFh, n500-n7FFh, n900-nBFFh, nCD0-nFFFh. |
*/ |
#define ACPI_NON_ISA_ONLY_RANGES (UINT8) 0x01 |
#define ACPI_ISA_ONLY_RANGES (UINT8) 0x02 |
#define ACPI_ENTIRE_RANGE (ACPI_NON_ISA_ONLY_RANGES | ACPI_ISA_ONLY_RANGES) |
/* Type of translation - 1=Sparse, 0=Dense */ |
#define ACPI_SPARSE_TRANSLATION (UINT8) 0x01 |
/* |
* IO Port Descriptor Decode |
*/ |
#define ACPI_DECODE_10 (UINT8) 0x00 /* 10-bit IO address decode */ |
#define ACPI_DECODE_16 (UINT8) 0x01 /* 16-bit IO address decode */ |
/* |
* IRQ Attributes |
*/ |
#define ACPI_LEVEL_SENSITIVE (UINT8) 0x00 |
#define ACPI_EDGE_SENSITIVE (UINT8) 0x01 |
#define ACPI_ACTIVE_HIGH (UINT8) 0x00 |
#define ACPI_ACTIVE_LOW (UINT8) 0x01 |
#define ACPI_EXCLUSIVE (UINT8) 0x00 |
#define ACPI_SHARED (UINT8) 0x01 |
/* |
* DMA Attributes |
*/ |
#define ACPI_COMPATIBILITY (UINT8) 0x00 |
#define ACPI_TYPE_A (UINT8) 0x01 |
#define ACPI_TYPE_B (UINT8) 0x02 |
#define ACPI_TYPE_F (UINT8) 0x03 |
#define ACPI_NOT_BUS_MASTER (UINT8) 0x00 |
#define ACPI_BUS_MASTER (UINT8) 0x01 |
#define ACPI_TRANSFER_8 (UINT8) 0x00 |
#define ACPI_TRANSFER_8_16 (UINT8) 0x01 |
#define ACPI_TRANSFER_16 (UINT8) 0x02 |
/* |
* Start Dependent Functions Priority definitions |
*/ |
#define ACPI_GOOD_CONFIGURATION (UINT8) 0x00 |
#define ACPI_ACCEPTABLE_CONFIGURATION (UINT8) 0x01 |
#define ACPI_SUB_OPTIMAL_CONFIGURATION (UINT8) 0x02 |
/* |
* 16, 32 and 64-bit Address Descriptor resource types |
*/ |
#define ACPI_MEMORY_RANGE (UINT8) 0x00 |
#define ACPI_IO_RANGE (UINT8) 0x01 |
#define ACPI_BUS_NUMBER_RANGE (UINT8) 0x02 |
#define ACPI_ADDRESS_NOT_FIXED (UINT8) 0x00 |
#define ACPI_ADDRESS_FIXED (UINT8) 0x01 |
#define ACPI_POS_DECODE (UINT8) 0x00 |
#define ACPI_SUB_DECODE (UINT8) 0x01 |
#define ACPI_PRODUCER (UINT8) 0x00 |
#define ACPI_CONSUMER (UINT8) 0x01 |
/* |
* If possible, pack the following structures to byte alignment |
*/ |
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED |
#pragma pack(1) |
#endif |
/* UUID data structures for use in vendor-defined resource descriptors */ |
typedef struct acpi_uuid |
{ |
UINT8 Data[ACPI_UUID_LENGTH]; |
} ACPI_UUID; |
typedef struct acpi_vendor_uuid |
{ |
UINT8 Subtype; |
UINT8 Data[ACPI_UUID_LENGTH]; |
} ACPI_VENDOR_UUID; |
/* |
* Structures used to describe device resources |
*/ |
typedef struct acpi_resource_irq |
{ |
UINT8 DescriptorLength; |
UINT8 Triggering; |
UINT8 Polarity; |
UINT8 Sharable; |
UINT8 InterruptCount; |
UINT8 Interrupts[1]; |
} ACPI_RESOURCE_IRQ; |
typedef struct ACPI_RESOURCE_DMA |
{ |
UINT8 Type; |
UINT8 BusMaster; |
UINT8 Transfer; |
UINT8 ChannelCount; |
UINT8 Channels[1]; |
} ACPI_RESOURCE_DMA; |
typedef struct acpi_resource_start_dependent |
{ |
UINT8 DescriptorLength; |
UINT8 CompatibilityPriority; |
UINT8 PerformanceRobustness; |
} ACPI_RESOURCE_START_DEPENDENT; |
/* |
* The END_DEPENDENT_FUNCTIONS_RESOURCE struct is not |
* needed because it has no fields |
*/ |
typedef struct acpi_resource_io |
{ |
UINT8 IoDecode; |
UINT8 Alignment; |
UINT8 AddressLength; |
UINT16 Minimum; |
UINT16 Maximum; |
} ACPI_RESOURCE_IO; |
typedef struct acpi_resource_fixed_io |
{ |
UINT16 Address; |
UINT8 AddressLength; |
} ACPI_RESOURCE_FIXED_IO; |
typedef struct acpi_resource_vendor |
{ |
UINT16 ByteLength; |
UINT8 ByteData[1]; |
} ACPI_RESOURCE_VENDOR; |
/* Vendor resource with UUID info (introduced in ACPI 3.0) */ |
typedef struct acpi_resource_vendor_typed |
{ |
UINT16 ByteLength; |
UINT8 UuidSubtype; |
UINT8 Uuid[ACPI_UUID_LENGTH]; |
UINT8 ByteData[1]; |
} ACPI_RESOURCE_VENDOR_TYPED; |
typedef struct acpi_resource_end_tag |
{ |
UINT8 Checksum; |
} ACPI_RESOURCE_END_TAG; |
typedef struct acpi_resource_memory24 |
{ |
UINT8 WriteProtect; |
UINT16 Minimum; |
UINT16 Maximum; |
UINT16 Alignment; |
UINT16 AddressLength; |
} ACPI_RESOURCE_MEMORY24; |
typedef struct acpi_resource_memory32 |
{ |
UINT8 WriteProtect; |
UINT32 Minimum; |
UINT32 Maximum; |
UINT32 Alignment; |
UINT32 AddressLength; |
} ACPI_RESOURCE_MEMORY32; |
typedef struct acpi_resource_fixed_memory32 |
{ |
UINT8 WriteProtect; |
UINT32 Address; |
UINT32 AddressLength; |
} ACPI_RESOURCE_FIXED_MEMORY32; |
typedef struct acpi_memory_attribute |
{ |
UINT8 WriteProtect; |
UINT8 Caching; |
UINT8 RangeType; |
UINT8 Translation; |
} ACPI_MEMORY_ATTRIBUTE; |
typedef struct acpi_io_attribute |
{ |
UINT8 RangeType; |
UINT8 Translation; |
UINT8 TranslationType; |
UINT8 Reserved1; |
} ACPI_IO_ATTRIBUTE; |
typedef union acpi_resource_attribute |
{ |
ACPI_MEMORY_ATTRIBUTE Mem; |
ACPI_IO_ATTRIBUTE Io; |
/* Used for the *WordSpace macros */ |
UINT8 TypeSpecific; |
} ACPI_RESOURCE_ATTRIBUTE; |
typedef struct acpi_resource_source |
{ |
UINT8 Index; |
UINT16 StringLength; |
char *StringPtr; |
} ACPI_RESOURCE_SOURCE; |
/* Fields common to all address descriptors, 16/32/64 bit */ |
#define ACPI_RESOURCE_ADDRESS_COMMON \ |
UINT8 ResourceType; \ |
UINT8 ProducerConsumer; \ |
UINT8 Decode; \ |
UINT8 MinAddressFixed; \ |
UINT8 MaxAddressFixed; \ |
ACPI_RESOURCE_ATTRIBUTE Info; |
typedef struct acpi_resource_address |
{ |
ACPI_RESOURCE_ADDRESS_COMMON |
} ACPI_RESOURCE_ADDRESS; |
typedef struct acpi_resource_address16 |
{ |
ACPI_RESOURCE_ADDRESS_COMMON |
UINT16 Granularity; |
UINT16 Minimum; |
UINT16 Maximum; |
UINT16 TranslationOffset; |
UINT16 AddressLength; |
ACPI_RESOURCE_SOURCE ResourceSource; |
} ACPI_RESOURCE_ADDRESS16; |
typedef struct acpi_resource_address32 |
{ |
ACPI_RESOURCE_ADDRESS_COMMON |
UINT32 Granularity; |
UINT32 Minimum; |
UINT32 Maximum; |
UINT32 TranslationOffset; |
UINT32 AddressLength; |
ACPI_RESOURCE_SOURCE ResourceSource; |
} ACPI_RESOURCE_ADDRESS32; |
typedef struct acpi_resource_address64 |
{ |
ACPI_RESOURCE_ADDRESS_COMMON |
UINT64 Granularity; |
UINT64 Minimum; |
UINT64 Maximum; |
UINT64 TranslationOffset; |
UINT64 AddressLength; |
ACPI_RESOURCE_SOURCE ResourceSource; |
} ACPI_RESOURCE_ADDRESS64; |
typedef struct acpi_resource_extended_address64 |
{ |
ACPI_RESOURCE_ADDRESS_COMMON |
UINT8 RevisionID; |
UINT64 Granularity; |
UINT64 Minimum; |
UINT64 Maximum; |
UINT64 TranslationOffset; |
UINT64 AddressLength; |
UINT64 TypeSpecific; |
} ACPI_RESOURCE_EXTENDED_ADDRESS64; |
typedef struct acpi_resource_extended_irq |
{ |
UINT8 ProducerConsumer; |
UINT8 Triggering; |
UINT8 Polarity; |
UINT8 Sharable; |
UINT8 InterruptCount; |
ACPI_RESOURCE_SOURCE ResourceSource; |
UINT32 Interrupts[1]; |
} ACPI_RESOURCE_EXTENDED_IRQ; |
typedef struct acpi_resource_generic_register |
{ |
UINT8 SpaceId; |
UINT8 BitWidth; |
UINT8 BitOffset; |
UINT8 AccessSize; |
UINT64 Address; |
} ACPI_RESOURCE_GENERIC_REGISTER; |
/* ACPI_RESOURCE_TYPEs */ |
#define ACPI_RESOURCE_TYPE_IRQ 0 |
#define ACPI_RESOURCE_TYPE_DMA 1 |
#define ACPI_RESOURCE_TYPE_START_DEPENDENT 2 |
#define ACPI_RESOURCE_TYPE_END_DEPENDENT 3 |
#define ACPI_RESOURCE_TYPE_IO 4 |
#define ACPI_RESOURCE_TYPE_FIXED_IO 5 |
#define ACPI_RESOURCE_TYPE_VENDOR 6 |
#define ACPI_RESOURCE_TYPE_END_TAG 7 |
#define ACPI_RESOURCE_TYPE_MEMORY24 8 |
#define ACPI_RESOURCE_TYPE_MEMORY32 9 |
#define ACPI_RESOURCE_TYPE_FIXED_MEMORY32 10 |
#define ACPI_RESOURCE_TYPE_ADDRESS16 11 |
#define ACPI_RESOURCE_TYPE_ADDRESS32 12 |
#define ACPI_RESOURCE_TYPE_ADDRESS64 13 |
#define ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 14 /* ACPI 3.0 */ |
#define ACPI_RESOURCE_TYPE_EXTENDED_IRQ 15 |
#define ACPI_RESOURCE_TYPE_GENERIC_REGISTER 16 |
#define ACPI_RESOURCE_TYPE_MAX 16 |
/* Master union for resource descriptors */ |
typedef union acpi_resource_data |
{ |
ACPI_RESOURCE_IRQ Irq; |
ACPI_RESOURCE_DMA Dma; |
ACPI_RESOURCE_START_DEPENDENT StartDpf; |
ACPI_RESOURCE_IO Io; |
ACPI_RESOURCE_FIXED_IO FixedIo; |
ACPI_RESOURCE_VENDOR Vendor; |
ACPI_RESOURCE_VENDOR_TYPED VendorTyped; |
ACPI_RESOURCE_END_TAG EndTag; |
ACPI_RESOURCE_MEMORY24 Memory24; |
ACPI_RESOURCE_MEMORY32 Memory32; |
ACPI_RESOURCE_FIXED_MEMORY32 FixedMemory32; |
ACPI_RESOURCE_ADDRESS16 Address16; |
ACPI_RESOURCE_ADDRESS32 Address32; |
ACPI_RESOURCE_ADDRESS64 Address64; |
ACPI_RESOURCE_EXTENDED_ADDRESS64 ExtAddress64; |
ACPI_RESOURCE_EXTENDED_IRQ ExtendedIrq; |
ACPI_RESOURCE_GENERIC_REGISTER GenericReg; |
/* Common fields */ |
ACPI_RESOURCE_ADDRESS Address; /* Common 16/32/64 address fields */ |
} ACPI_RESOURCE_DATA; |
/* Common resource header */ |
typedef struct acpi_resource |
{ |
UINT32 Type; |
UINT32 Length; |
ACPI_RESOURCE_DATA Data; |
} ACPI_RESOURCE; |
/* restore default alignment */ |
#pragma pack() |
#define ACPI_RS_SIZE_NO_DATA 8 /* Id + Length fields */ |
#define ACPI_RS_SIZE_MIN (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (12) |
#define ACPI_RS_SIZE(Type) (UINT32) (ACPI_RS_SIZE_NO_DATA + sizeof (Type)) |
#define ACPI_NEXT_RESOURCE(Res) (ACPI_RESOURCE *)((UINT8 *) Res + Res->Length) |
typedef struct acpi_pci_routing_table |
{ |
UINT32 Length; |
UINT32 Pin; |
UINT64 Address; /* here for 64-bit alignment */ |
UINT32 SourceIndex; |
char Source[4]; /* pad to 64 bits so sizeof() works in all cases */ |
} ACPI_PCI_ROUTING_TABLE; |
#endif /* __ACRESTYP_H__ */ |
/drivers/devman/acpica/include/acstruct.h |
---|
0,0 → 1,326 |
/****************************************************************************** |
* |
* Name: acstruct.h - Internal structs |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACSTRUCT_H__ |
#define __ACSTRUCT_H__ |
/* acpisrc:StructDefs -- for acpisrc conversion */ |
/***************************************************************************** |
* |
* Tree walking typedefs and structs |
* |
****************************************************************************/ |
/* |
* Walk state - current state of a parse tree walk. Used for both a leisurely |
* stroll through the tree (for whatever reason), and for control method |
* execution. |
*/ |
#define ACPI_NEXT_OP_DOWNWARD 1 |
#define ACPI_NEXT_OP_UPWARD 2 |
/* |
* Groups of definitions for WalkType used for different implementations of |
* walkers (never simultaneously) - flags for interpreter: |
*/ |
#define ACPI_WALK_NON_METHOD 0 |
#define ACPI_WALK_METHOD 0x01 |
#define ACPI_WALK_METHOD_RESTART 0x02 |
/* Flags for iASL compiler only */ |
#define ACPI_WALK_CONST_REQUIRED 0x10 |
#define ACPI_WALK_CONST_OPTIONAL 0x20 |
typedef struct acpi_walk_state |
{ |
struct acpi_walk_state *Next; /* Next WalkState in list */ |
UINT8 DescriptorType; /* To differentiate various internal objs */ |
UINT8 WalkType; |
UINT16 Opcode; /* Current AML opcode */ |
UINT8 NextOpInfo; /* Info about NextOp */ |
UINT8 NumOperands; /* Stack pointer for Operands[] array */ |
UINT8 OperandIndex; /* Index into operand stack, to be used by AcpiDsObjStackPush */ |
ACPI_OWNER_ID OwnerId; /* Owner of objects created during the walk */ |
BOOLEAN LastPredicate; /* Result of last predicate */ |
UINT8 CurrentResult; |
UINT8 ReturnUsed; |
UINT8 ScopeDepth; |
UINT8 PassNumber; /* Parse pass during table load */ |
UINT8 ResultSize; /* Total elements for the result stack */ |
UINT8 ResultCount; /* Current number of occupied elements of result stack */ |
UINT32 AmlOffset; |
UINT32 ArgTypes; |
UINT32 MethodBreakpoint; /* For single stepping */ |
UINT32 UserBreakpoint; /* User AML breakpoint */ |
UINT32 ParseFlags; |
ACPI_PARSE_STATE ParserState; /* Current state of parser */ |
UINT32 PrevArgTypes; |
UINT32 ArgCount; /* push for fixed or var args */ |
struct acpi_namespace_node Arguments[ACPI_METHOD_NUM_ARGS]; /* Control method arguments */ |
struct acpi_namespace_node LocalVariables[ACPI_METHOD_NUM_LOCALS]; /* Control method locals */ |
union acpi_operand_object *Operands[ACPI_OBJ_NUM_OPERANDS + 1]; /* Operands passed to the interpreter (+1 for NULL terminator) */ |
union acpi_operand_object **Params; |
UINT8 *AmlLastWhile; |
union acpi_operand_object **CallerReturnDesc; |
ACPI_GENERIC_STATE *ControlState; /* List of control states (nested IFs) */ |
struct acpi_namespace_node *DeferredNode; /* Used when executing deferred opcodes */ |
union acpi_operand_object *ImplicitReturnObj; |
struct acpi_namespace_node *MethodCallNode; /* Called method Node*/ |
ACPI_PARSE_OBJECT *MethodCallOp; /* MethodCall Op if running a method */ |
union acpi_operand_object *MethodDesc; /* Method descriptor if running a method */ |
struct acpi_namespace_node *MethodNode; /* Method node if running a method. */ |
ACPI_PARSE_OBJECT *Op; /* Current parser op */ |
const ACPI_OPCODE_INFO *OpInfo; /* Info on current opcode */ |
ACPI_PARSE_OBJECT *Origin; /* Start of walk [Obsolete] */ |
union acpi_operand_object *ResultObj; |
ACPI_GENERIC_STATE *Results; /* Stack of accumulated results */ |
union acpi_operand_object *ReturnDesc; /* Return object, if any */ |
ACPI_GENERIC_STATE *ScopeInfo; /* Stack of nested scopes */ |
ACPI_PARSE_OBJECT *PrevOp; /* Last op that was processed */ |
ACPI_PARSE_OBJECT *NextOp; /* next op to be processed */ |
ACPI_THREAD_STATE *Thread; |
ACPI_PARSE_DOWNWARDS DescendingCallback; |
ACPI_PARSE_UPWARDS AscendingCallback; |
} ACPI_WALK_STATE; |
/* Info used by AcpiNsInitializeObjects and AcpiDsInitializeObjects */ |
typedef struct acpi_init_walk_info |
{ |
UINT32 TableIndex; |
UINT32 ObjectCount; |
UINT32 MethodCount; |
UINT32 DeviceCount; |
UINT32 OpRegionCount; |
UINT32 FieldCount; |
UINT32 BufferCount; |
UINT32 PackageCount; |
UINT32 OpRegionInit; |
UINT32 FieldInit; |
UINT32 BufferInit; |
UINT32 PackageInit; |
ACPI_OWNER_ID OwnerId; |
} ACPI_INIT_WALK_INFO; |
typedef struct acpi_get_devices_info |
{ |
ACPI_WALK_CALLBACK UserFunction; |
void *Context; |
char *Hid; |
} ACPI_GET_DEVICES_INFO; |
typedef union acpi_aml_operands |
{ |
ACPI_OPERAND_OBJECT *Operands[7]; |
struct |
{ |
ACPI_OBJECT_INTEGER *Type; |
ACPI_OBJECT_INTEGER *Code; |
ACPI_OBJECT_INTEGER *Argument; |
} Fatal; |
struct |
{ |
ACPI_OPERAND_OBJECT *Source; |
ACPI_OBJECT_INTEGER *Index; |
ACPI_OPERAND_OBJECT *Target; |
} Index; |
struct |
{ |
ACPI_OPERAND_OBJECT *Source; |
ACPI_OBJECT_INTEGER *Index; |
ACPI_OBJECT_INTEGER *Length; |
ACPI_OPERAND_OBJECT *Target; |
} Mid; |
} ACPI_AML_OPERANDS; |
/* |
* Structure used to pass object evaluation parameters. |
* Purpose is to reduce CPU stack use. |
*/ |
typedef struct acpi_evaluate_info |
{ |
ACPI_NAMESPACE_NODE *PrefixNode; |
char *Pathname; |
ACPI_OPERAND_OBJECT *ObjDesc; |
ACPI_OPERAND_OBJECT **Parameters; |
ACPI_NAMESPACE_NODE *ResolvedNode; |
ACPI_OPERAND_OBJECT *ReturnObject; |
UINT8 ParamCount; |
UINT8 PassNumber; |
UINT8 ReturnObjectType; |
UINT8 Flags; |
} ACPI_EVALUATE_INFO; |
/* Values for Flags above */ |
#define ACPI_IGNORE_RETURN_VALUE 1 |
/* Info used by AcpiNsInitializeDevices */ |
typedef struct acpi_device_walk_info |
{ |
ACPI_TABLE_DESC *TableDesc; |
ACPI_EVALUATE_INFO *EvaluateInfo; |
UINT32 DeviceCount; |
UINT32 Num_STA; |
UINT32 Num_INI; |
} ACPI_DEVICE_WALK_INFO; |
/* TBD: [Restructure] Merge with struct above */ |
typedef struct acpi_walk_info |
{ |
UINT32 DebugLevel; |
UINT32 Count; |
ACPI_OWNER_ID OwnerId; |
UINT8 DisplayType; |
} ACPI_WALK_INFO; |
/* Display Types */ |
#define ACPI_DISPLAY_SUMMARY (UINT8) 0 |
#define ACPI_DISPLAY_OBJECTS (UINT8) 1 |
#define ACPI_DISPLAY_MASK (UINT8) 1 |
#define ACPI_DISPLAY_SHORT (UINT8) 2 |
#endif |
/drivers/devman/acpica/include/actables.h |
---|
0,0 → 1,251 |
/****************************************************************************** |
* |
* Name: actables.h - ACPI table management |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACTABLES_H__ |
#define __ACTABLES_H__ |
ACPI_STATUS |
AcpiAllocateRootTable ( |
UINT32 InitialTableCount); |
/* |
* tbfadt - FADT parse/convert/validate |
*/ |
void |
AcpiTbParseFadt ( |
UINT32 TableIndex); |
void |
AcpiTbCreateLocalFadt ( |
ACPI_TABLE_HEADER *Table, |
UINT32 Length); |
/* |
* tbfind - find ACPI table |
*/ |
ACPI_STATUS |
AcpiTbFindTable ( |
char *Signature, |
char *OemId, |
char *OemTableId, |
UINT32 *TableIndex); |
/* |
* tbinstal - Table removal and deletion |
*/ |
ACPI_STATUS |
AcpiTbResizeRootTableList ( |
void); |
ACPI_STATUS |
AcpiTbVerifyTable ( |
ACPI_TABLE_DESC *TableDesc); |
ACPI_STATUS |
AcpiTbAddTable ( |
ACPI_TABLE_DESC *TableDesc, |
UINT32 *TableIndex); |
ACPI_STATUS |
AcpiTbStoreTable ( |
ACPI_PHYSICAL_ADDRESS Address, |
ACPI_TABLE_HEADER *Table, |
UINT32 Length, |
UINT8 Flags, |
UINT32 *TableIndex); |
void |
AcpiTbDeleteTable ( |
ACPI_TABLE_DESC *TableDesc); |
void |
AcpiTbTerminate ( |
void); |
ACPI_STATUS |
AcpiTbDeleteNamespaceByOwner ( |
UINT32 TableIndex); |
ACPI_STATUS |
AcpiTbAllocateOwnerId ( |
UINT32 TableIndex); |
ACPI_STATUS |
AcpiTbReleaseOwnerId ( |
UINT32 TableIndex); |
ACPI_STATUS |
AcpiTbGetOwnerId ( |
UINT32 TableIndex, |
ACPI_OWNER_ID *OwnerId); |
BOOLEAN |
AcpiTbIsTableLoaded ( |
UINT32 TableIndex); |
void |
AcpiTbSetTableLoadedFlag ( |
UINT32 TableIndex, |
BOOLEAN IsLoaded); |
/* |
* tbutils - table manager utilities |
*/ |
ACPI_STATUS |
AcpiTbInitializeFacs ( |
void); |
BOOLEAN |
AcpiTbTablesLoaded ( |
void); |
void |
AcpiTbPrintTableHeader( |
ACPI_PHYSICAL_ADDRESS Address, |
ACPI_TABLE_HEADER *Header); |
UINT8 |
AcpiTbChecksum ( |
UINT8 *Buffer, |
UINT32 Length); |
ACPI_STATUS |
AcpiTbVerifyChecksum ( |
ACPI_TABLE_HEADER *Table, |
UINT32 Length); |
void |
AcpiTbCheckDsdtHeader ( |
void); |
ACPI_TABLE_HEADER * |
AcpiTbCopyDsdt ( |
UINT32 TableIndex); |
void |
AcpiTbInstallTable ( |
ACPI_PHYSICAL_ADDRESS Address, |
char *Signature, |
UINT32 TableIndex); |
ACPI_STATUS |
AcpiTbParseRootTable ( |
ACPI_PHYSICAL_ADDRESS RsdpAddress); |
#endif /* __ACTABLES_H__ */ |
/drivers/devman/acpica/include/actbl.h |
---|
0,0 → 1,451 |
/****************************************************************************** |
* |
* Name: actbl.h - Basic ACPI Table Definitions |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACTBL_H__ |
#define __ACTBL_H__ |
/******************************************************************************* |
* |
* Fundamental ACPI tables |
* |
* This file contains definitions for the ACPI tables that are directly consumed |
* by ACPICA. All other tables are consumed by the OS-dependent ACPI-related |
* device drivers and other OS support code. |
* |
* The RSDP and FACS do not use the common ACPI table header. All other ACPI |
* tables use the header. |
* |
******************************************************************************/ |
/* |
* Values for description table header signatures for tables defined in this |
* file. Useful because they make it more difficult to inadvertently type in |
* the wrong signature. |
*/ |
#define ACPI_SIG_DSDT "DSDT" /* Differentiated System Description Table */ |
#define ACPI_SIG_FADT "FACP" /* Fixed ACPI Description Table */ |
#define ACPI_SIG_FACS "FACS" /* Firmware ACPI Control Structure */ |
#define ACPI_SIG_PSDT "PSDT" /* Persistent System Description Table */ |
#define ACPI_SIG_RSDP "RSD PTR " /* Root System Description Pointer */ |
#define ACPI_SIG_RSDT "RSDT" /* Root System Description Table */ |
#define ACPI_SIG_XSDT "XSDT" /* Extended System Description Table */ |
#define ACPI_SIG_SSDT "SSDT" /* Secondary System Description Table */ |
#define ACPI_RSDP_NAME "RSDP" /* Short name for RSDP, not signature */ |
/* |
* All tables and structures must be byte-packed to match the ACPI |
* specification, since the tables are provided by the system BIOS |
*/ |
#pragma pack(1) |
/* |
* Note about bitfields: The UINT8 type is used for bitfields in ACPI tables. |
* This is the only type that is even remotely portable. Anything else is not |
* portable, so do not use any other bitfield types. |
*/ |
/******************************************************************************* |
* |
* Master ACPI Table Header. This common header is used by all ACPI tables |
* except the RSDP and FACS. |
* |
******************************************************************************/ |
typedef struct acpi_table_header |
{ |
char Signature[ACPI_NAME_SIZE]; /* ASCII table signature */ |
UINT32 Length; /* Length of table in bytes, including this header */ |
UINT8 Revision; /* ACPI Specification minor version # */ |
UINT8 Checksum; /* To make sum of entire table == 0 */ |
char OemId[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */ |
char OemTableId[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */ |
UINT32 OemRevision; /* OEM revision number */ |
char AslCompilerId[ACPI_NAME_SIZE]; /* ASCII ASL compiler vendor ID */ |
UINT32 AslCompilerRevision; /* ASL compiler version */ |
} ACPI_TABLE_HEADER; |
/******************************************************************************* |
* |
* GAS - Generic Address Structure (ACPI 2.0+) |
* |
* Note: Since this structure is used in the ACPI tables, it is byte aligned. |
* If misaliged access is not supported by the hardware, accesses to the |
* 64-bit Address field must be performed with care. |
* |
******************************************************************************/ |
typedef struct acpi_generic_address |
{ |
UINT8 SpaceId; /* Address space where struct or register exists */ |
UINT8 BitWidth; /* Size in bits of given register */ |
UINT8 BitOffset; /* Bit offset within the register */ |
UINT8 AccessWidth; /* Minimum Access size (ACPI 3.0) */ |
UINT64 Address; /* 64-bit address of struct or register */ |
} ACPI_GENERIC_ADDRESS; |
/******************************************************************************* |
* |
* RSDP - Root System Description Pointer (Signature is "RSD PTR ") |
* Version 2 |
* |
******************************************************************************/ |
typedef struct acpi_table_rsdp |
{ |
char Signature[8]; /* ACPI signature, contains "RSD PTR " */ |
UINT8 Checksum; /* ACPI 1.0 checksum */ |
char OemId[ACPI_OEM_ID_SIZE]; /* OEM identification */ |
UINT8 Revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */ |
UINT32 RsdtPhysicalAddress; /* 32-bit physical address of the RSDT */ |
UINT32 Length; /* Table length in bytes, including header (ACPI 2.0+) */ |
UINT64 XsdtPhysicalAddress; /* 64-bit physical address of the XSDT (ACPI 2.0+) */ |
UINT8 ExtendedChecksum; /* Checksum of entire table (ACPI 2.0+) */ |
UINT8 Reserved[3]; /* Reserved, must be zero */ |
} ACPI_TABLE_RSDP; |
#define ACPI_RSDP_REV0_SIZE 20 /* Size of original ACPI 1.0 RSDP */ |
/******************************************************************************* |
* |
* RSDT/XSDT - Root System Description Tables |
* Version 1 (both) |
* |
******************************************************************************/ |
typedef struct acpi_table_rsdt |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */ |
} ACPI_TABLE_RSDT; |
typedef struct acpi_table_xsdt |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT64 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */ |
} ACPI_TABLE_XSDT; |
/******************************************************************************* |
* |
* FACS - Firmware ACPI Control Structure (FACS) |
* |
******************************************************************************/ |
typedef struct acpi_table_facs |
{ |
char Signature[4]; /* ASCII table signature */ |
UINT32 Length; /* Length of structure, in bytes */ |
UINT32 HardwareSignature; /* Hardware configuration signature */ |
UINT32 FirmwareWakingVector; /* 32-bit physical address of the Firmware Waking Vector */ |
UINT32 GlobalLock; /* Global Lock for shared hardware resources */ |
UINT32 Flags; |
UINT64 XFirmwareWakingVector; /* 64-bit version of the Firmware Waking Vector (ACPI 2.0+) */ |
UINT8 Version; /* Version of this table (ACPI 2.0+) */ |
UINT8 Reserved[3]; /* Reserved, must be zero */ |
UINT32 OspmFlags; /* Flags to be set by OSPM (ACPI 4.0) */ |
UINT8 Reserved1[24]; /* Reserved, must be zero */ |
} ACPI_TABLE_FACS; |
/* Masks for GlobalLock flag field above */ |
#define ACPI_GLOCK_PENDING (1) /* 00: Pending global lock ownership */ |
#define ACPI_GLOCK_OWNED (1<<1) /* 01: Global lock is owned */ |
/* Masks for Flags field above */ |
#define ACPI_FACS_S4_BIOS_PRESENT (1) /* 00: S4BIOS support is present */ |
#define ACPI_FACS_64BIT_WAKE (1<<1) /* 01: 64-bit wake vector supported (ACPI 4.0) */ |
/* Masks for OspmFlags field above */ |
#define ACPI_FACS_64BIT_ENVIRONMENT (1) /* 00: 64-bit wake environment is required (ACPI 4.0) */ |
/******************************************************************************* |
* |
* FADT - Fixed ACPI Description Table (Signature "FACP") |
* Version 4 |
* |
******************************************************************************/ |
/* Fields common to all versions of the FADT */ |
typedef struct acpi_table_fadt |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 Facs; /* 32-bit physical address of FACS */ |
UINT32 Dsdt; /* 32-bit physical address of DSDT */ |
UINT8 Model; /* System Interrupt Model (ACPI 1.0) - not used in ACPI 2.0+ */ |
UINT8 PreferredProfile; /* Conveys preferred power management profile to OSPM. */ |
UINT16 SciInterrupt; /* System vector of SCI interrupt */ |
UINT32 SmiCommand; /* 32-bit Port address of SMI command port */ |
UINT8 AcpiEnable; /* Value to write to smi_cmd to enable ACPI */ |
UINT8 AcpiDisable; /* Value to write to smi_cmd to disable ACPI */ |
UINT8 S4BiosRequest; /* Value to write to SMI CMD to enter S4BIOS state */ |
UINT8 PstateControl; /* Processor performance state control*/ |
UINT32 Pm1aEventBlock; /* 32-bit Port address of Power Mgt 1a Event Reg Blk */ |
UINT32 Pm1bEventBlock; /* 32-bit Port address of Power Mgt 1b Event Reg Blk */ |
UINT32 Pm1aControlBlock; /* 32-bit Port address of Power Mgt 1a Control Reg Blk */ |
UINT32 Pm1bControlBlock; /* 32-bit Port address of Power Mgt 1b Control Reg Blk */ |
UINT32 Pm2ControlBlock; /* 32-bit Port address of Power Mgt 2 Control Reg Blk */ |
UINT32 PmTimerBlock; /* 32-bit Port address of Power Mgt Timer Ctrl Reg Blk */ |
UINT32 Gpe0Block; /* 32-bit Port address of General Purpose Event 0 Reg Blk */ |
UINT32 Gpe1Block; /* 32-bit Port address of General Purpose Event 1 Reg Blk */ |
UINT8 Pm1EventLength; /* Byte Length of ports at Pm1xEventBlock */ |
UINT8 Pm1ControlLength; /* Byte Length of ports at Pm1xControlBlock */ |
UINT8 Pm2ControlLength; /* Byte Length of ports at Pm2ControlBlock */ |
UINT8 PmTimerLength; /* Byte Length of ports at PmTimerBlock */ |
UINT8 Gpe0BlockLength; /* Byte Length of ports at Gpe0Block */ |
UINT8 Gpe1BlockLength; /* Byte Length of ports at Gpe1Block */ |
UINT8 Gpe1Base; /* Offset in GPE number space where GPE1 events start */ |
UINT8 CstControl; /* Support for the _CST object and C States change notification */ |
UINT16 C2Latency; /* Worst case HW latency to enter/exit C2 state */ |
UINT16 C3Latency; /* Worst case HW latency to enter/exit C3 state */ |
UINT16 FlushSize; /* Processor's memory cache line width, in bytes */ |
UINT16 FlushStride; /* Number of flush strides that need to be read */ |
UINT8 DutyOffset; /* Processor duty cycle index in processor's P_CNT reg */ |
UINT8 DutyWidth; /* Processor duty cycle value bit width in P_CNT register */ |
UINT8 DayAlarm; /* Index to day-of-month alarm in RTC CMOS RAM */ |
UINT8 MonthAlarm; /* Index to month-of-year alarm in RTC CMOS RAM */ |
UINT8 Century; /* Index to century in RTC CMOS RAM */ |
UINT16 BootFlags; /* IA-PC Boot Architecture Flags (see below for individual flags) */ |
UINT8 Reserved; /* Reserved, must be zero */ |
UINT32 Flags; /* Miscellaneous flag bits (see below for individual flags) */ |
ACPI_GENERIC_ADDRESS ResetRegister; /* 64-bit address of the Reset register */ |
UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system */ |
UINT8 Reserved4[3]; /* Reserved, must be zero */ |
UINT64 XFacs; /* 64-bit physical address of FACS */ |
UINT64 XDsdt; /* 64-bit physical address of DSDT */ |
ACPI_GENERIC_ADDRESS XPm1aEventBlock; /* 64-bit Extended Power Mgt 1a Event Reg Blk address */ |
ACPI_GENERIC_ADDRESS XPm1bEventBlock; /* 64-bit Extended Power Mgt 1b Event Reg Blk address */ |
ACPI_GENERIC_ADDRESS XPm1aControlBlock; /* 64-bit Extended Power Mgt 1a Control Reg Blk address */ |
ACPI_GENERIC_ADDRESS XPm1bControlBlock; /* 64-bit Extended Power Mgt 1b Control Reg Blk address */ |
ACPI_GENERIC_ADDRESS XPm2ControlBlock; /* 64-bit Extended Power Mgt 2 Control Reg Blk address */ |
ACPI_GENERIC_ADDRESS XPmTimerBlock; /* 64-bit Extended Power Mgt Timer Ctrl Reg Blk address */ |
ACPI_GENERIC_ADDRESS XGpe0Block; /* 64-bit Extended General Purpose Event 0 Reg Blk address */ |
ACPI_GENERIC_ADDRESS XGpe1Block; /* 64-bit Extended General Purpose Event 1 Reg Blk address */ |
} ACPI_TABLE_FADT; |
/* Masks for FADT Boot Architecture Flags (BootFlags) */ |
#define ACPI_FADT_LEGACY_DEVICES (1) /* 00: [V2] System has LPC or ISA bus devices */ |
#define ACPI_FADT_8042 (1<<1) /* 01: [V3] System has an 8042 controller on port 60/64 */ |
#define ACPI_FADT_NO_VGA (1<<2) /* 02: [V4] It is not safe to probe for VGA hardware */ |
#define ACPI_FADT_NO_MSI (1<<3) /* 03: [V4] Message Signaled Interrupts (MSI) must not be enabled */ |
#define ACPI_FADT_NO_ASPM (1<<4) /* 04: [V4] PCIe ASPM control must not be enabled */ |
/* Masks for FADT flags */ |
#define ACPI_FADT_WBINVD (1) /* 00: [V1] The wbinvd instruction works properly */ |
#define ACPI_FADT_WBINVD_FLUSH (1<<1) /* 01: [V1] wbinvd flushes but does not invalidate caches */ |
#define ACPI_FADT_C1_SUPPORTED (1<<2) /* 02: [V1] All processors support C1 state */ |
#define ACPI_FADT_C2_MP_SUPPORTED (1<<3) /* 03: [V1] C2 state works on MP system */ |
#define ACPI_FADT_POWER_BUTTON (1<<4) /* 04: [V1] Power button is handled as a control method device */ |
#define ACPI_FADT_SLEEP_BUTTON (1<<5) /* 05: [V1] Sleep button is handled as a control method device */ |
#define ACPI_FADT_FIXED_RTC (1<<6) /* 06: [V1] RTC wakeup status not in fixed register space */ |
#define ACPI_FADT_S4_RTC_WAKE (1<<7) /* 07: [V1] RTC alarm can wake system from S4 */ |
#define ACPI_FADT_32BIT_TIMER (1<<8) /* 08: [V1] ACPI timer width is 32-bit (0=24-bit) */ |
#define ACPI_FADT_DOCKING_SUPPORTED (1<<9) /* 09: [V1] Docking supported */ |
#define ACPI_FADT_RESET_REGISTER (1<<10) /* 10: [V2] System reset via the FADT RESET_REG supported */ |
#define ACPI_FADT_SEALED_CASE (1<<11) /* 11: [V3] No internal expansion capabilities and case is sealed */ |
#define ACPI_FADT_HEADLESS (1<<12) /* 12: [V3] No local video capabilities or local input devices */ |
#define ACPI_FADT_SLEEP_TYPE (1<<13) /* 13: [V3] Must execute native instruction after writing SLP_TYPx register */ |
#define ACPI_FADT_PCI_EXPRESS_WAKE (1<<14) /* 14: [V4] System supports PCIEXP_WAKE (STS/EN) bits (ACPI 3.0) */ |
#define ACPI_FADT_PLATFORM_CLOCK (1<<15) /* 15: [V4] OSPM should use platform-provided timer (ACPI 3.0) */ |
#define ACPI_FADT_S4_RTC_VALID (1<<16) /* 16: [V4] Contents of RTC_STS valid after S4 wake (ACPI 3.0) */ |
#define ACPI_FADT_REMOTE_POWER_ON (1<<17) /* 17: [V4] System is compatible with remote power on (ACPI 3.0) */ |
#define ACPI_FADT_APIC_CLUSTER (1<<18) /* 18: [V4] All local APICs must use cluster model (ACPI 3.0) */ |
#define ACPI_FADT_APIC_PHYSICAL (1<<19) /* 19: [V4] All local xAPICs must use physical dest mode (ACPI 3.0) */ |
/* Values for PreferredProfile (Prefered Power Management Profiles) */ |
enum AcpiPreferedPmProfiles |
{ |
PM_UNSPECIFIED = 0, |
PM_DESKTOP = 1, |
PM_MOBILE = 2, |
PM_WORKSTATION = 3, |
PM_ENTERPRISE_SERVER = 4, |
PM_SOHO_SERVER = 5, |
PM_APPLIANCE_PC = 6 |
}; |
/* Reset to default packing */ |
#pragma pack() |
/* |
* Internal table-related structures |
*/ |
typedef union acpi_name_union |
{ |
UINT32 Integer; |
char Ascii[4]; |
} ACPI_NAME_UNION; |
/* Internal ACPI Table Descriptor. One per ACPI table. */ |
typedef struct acpi_table_desc |
{ |
ACPI_PHYSICAL_ADDRESS Address; |
ACPI_TABLE_HEADER *Pointer; |
UINT32 Length; /* Length fixed at 32 bits */ |
ACPI_NAME_UNION Signature; |
ACPI_OWNER_ID OwnerId; |
UINT8 Flags; |
} ACPI_TABLE_DESC; |
/* Masks for Flags field above */ |
#define ACPI_TABLE_ORIGIN_UNKNOWN (0) |
#define ACPI_TABLE_ORIGIN_MAPPED (1) |
#define ACPI_TABLE_ORIGIN_ALLOCATED (2) |
#define ACPI_TABLE_ORIGIN_OVERRIDE (4) |
#define ACPI_TABLE_ORIGIN_MASK (7) |
#define ACPI_TABLE_IS_LOADED (8) |
/* |
* Get the remaining ACPI tables |
*/ |
#include "actbl1.h" |
#include "actbl2.h" |
/* Macros used to generate offsets to specific table fields */ |
#define ACPI_FADT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_FADT, f) |
#endif /* __ACTBL_H__ */ |
/drivers/devman/acpica/include/actbl1.h |
---|
0,0 → 1,1145 |
/****************************************************************************** |
* |
* Name: actbl1.h - Additional ACPI table definitions |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACTBL1_H__ |
#define __ACTBL1_H__ |
/******************************************************************************* |
* |
* Additional ACPI Tables (1) |
* |
* These tables are not consumed directly by the ACPICA subsystem, but are |
* included here to support device drivers and the AML disassembler. |
* |
* The tables in this file are fully defined within the ACPI specification. |
* |
******************************************************************************/ |
/* |
* Values for description table header signatures for tables defined in this |
* file. Useful because they make it more difficult to inadvertently type in |
* the wrong signature. |
*/ |
#define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */ |
#define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */ |
#define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */ |
#define ACPI_SIG_EINJ "EINJ" /* Error Injection table */ |
#define ACPI_SIG_ERST "ERST" /* Error Record Serialization Table */ |
#define ACPI_SIG_HEST "HEST" /* Hardware Error Source Table */ |
#define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */ |
#define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table */ |
#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ |
#define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */ |
#define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */ |
/* |
* All tables must be byte-packed to match the ACPI specification, since |
* the tables are provided by the system BIOS. |
*/ |
#pragma pack(1) |
/* |
* Note about bitfields: The UINT8 type is used for bitfields in ACPI tables. |
* This is the only type that is even remotely portable. Anything else is not |
* portable, so do not use any other bitfield types. |
*/ |
/******************************************************************************* |
* |
* Common subtable headers |
* |
******************************************************************************/ |
/* Generic subtable header (used in MADT, SRAT, etc.) */ |
typedef struct acpi_subtable_header |
{ |
UINT8 Type; |
UINT8 Length; |
} ACPI_SUBTABLE_HEADER; |
/* Subtable header for WHEA tables (EINJ, ERST, WDAT) */ |
typedef struct acpi_whea_header |
{ |
UINT8 Action; |
UINT8 Instruction; |
UINT8 Flags; |
UINT8 Reserved; |
ACPI_GENERIC_ADDRESS RegisterRegion; |
UINT64 Value; /* Value used with Read/Write register */ |
UINT64 Mask; /* Bitmask required for this register instruction */ |
} ACPI_WHEA_HEADER; |
/******************************************************************************* |
* |
* BERT - Boot Error Record Table (ACPI 4.0) |
* Version 1 |
* |
******************************************************************************/ |
typedef struct acpi_table_bert |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 RegionLength; /* Length of the boot error region */ |
UINT64 Address; /* Physical addresss of the error region */ |
} ACPI_TABLE_BERT; |
/* Boot Error Region (not a subtable, pointed to by Address field above) */ |
typedef struct acpi_bert_region |
{ |
UINT32 BlockStatus; /* Type of error information */ |
UINT32 RawDataOffset; /* Offset to raw error data */ |
UINT32 RawDataLength; /* Length of raw error data */ |
UINT32 DataLength; /* Length of generic error data */ |
UINT32 ErrorSeverity; /* Severity code */ |
} ACPI_BERT_REGION; |
/* Values for BlockStatus flags above */ |
#define ACPI_BERT_UNCORRECTABLE (1) |
#define ACPI_BERT_CORRECTABLE (1<<1) |
#define ACPI_BERT_MULTIPLE_UNCORRECTABLE (1<<2) |
#define ACPI_BERT_MULTIPLE_CORRECTABLE (1<<3) |
#define ACPI_BERT_ERROR_ENTRY_COUNT (0xFF<<4) /* 8 bits, error count */ |
/* Values for ErrorSeverity above */ |
enum AcpiBertErrorSeverity |
{ |
ACPI_BERT_ERROR_CORRECTABLE = 0, |
ACPI_BERT_ERROR_FATAL = 1, |
ACPI_BERT_ERROR_CORRECTED = 2, |
ACPI_BERT_ERROR_NONE = 3, |
ACPI_BERT_ERROR_RESERVED = 4 /* 4 and greater are reserved */ |
}; |
/* |
* Note: The generic error data that follows the ErrorSeverity field above |
* uses the ACPI_HEST_GENERIC_DATA defined under the HEST table below |
*/ |
/******************************************************************************* |
* |
* CPEP - Corrected Platform Error Polling table (ACPI 4.0) |
* Version 1 |
* |
******************************************************************************/ |
typedef struct acpi_table_cpep |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT64 Reserved; |
} ACPI_TABLE_CPEP; |
/* Subtable */ |
typedef struct acpi_cpep_polling |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT8 Id; /* Processor ID */ |
UINT8 Eid; /* Processor EID */ |
UINT32 Interval; /* Polling interval (msec) */ |
} ACPI_CPEP_POLLING; |
/******************************************************************************* |
* |
* ECDT - Embedded Controller Boot Resources Table |
* Version 1 |
* |
******************************************************************************/ |
typedef struct acpi_table_ecdt |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
ACPI_GENERIC_ADDRESS Control; /* Address of EC command/status register */ |
ACPI_GENERIC_ADDRESS Data; /* Address of EC data register */ |
UINT32 Uid; /* Unique ID - must be same as the EC _UID method */ |
UINT8 Gpe; /* The GPE for the EC */ |
UINT8 Id[1]; /* Full namepath of the EC in the ACPI namespace */ |
} ACPI_TABLE_ECDT; |
/******************************************************************************* |
* |
* EINJ - Error Injection Table (ACPI 4.0) |
* Version 1 |
* |
******************************************************************************/ |
typedef struct acpi_table_einj |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 HeaderLength; |
UINT8 Flags; |
UINT8 Reserved[3]; |
UINT32 Entries; |
} ACPI_TABLE_EINJ; |
/* EINJ Injection Instruction Entries (actions) */ |
typedef struct acpi_einj_entry |
{ |
ACPI_WHEA_HEADER WheaHeader; /* Common header for WHEA tables */ |
} ACPI_EINJ_ENTRY; |
/* Masks for Flags field above */ |
#define ACPI_EINJ_PRESERVE (1) |
/* Values for Action field above */ |
enum AcpiEinjActions |
{ |
ACPI_EINJ_BEGIN_OPERATION = 0, |
ACPI_EINJ_GET_TRIGGER_TABLE = 1, |
ACPI_EINJ_SET_ERROR_TYPE = 2, |
ACPI_EINJ_GET_ERROR_TYPE = 3, |
ACPI_EINJ_END_OPERATION = 4, |
ACPI_EINJ_EXECUTE_OPERATION = 5, |
ACPI_EINJ_CHECK_BUSY_STATUS = 6, |
ACPI_EINJ_GET_COMMAND_STATUS = 7, |
ACPI_EINJ_ACTION_RESERVED = 8, /* 8 and greater are reserved */ |
ACPI_EINJ_TRIGGER_ERROR = 0xFF /* Except for this value */ |
}; |
/* Values for Instruction field above */ |
enum AcpiEinjInstructions |
{ |
ACPI_EINJ_READ_REGISTER = 0, |
ACPI_EINJ_READ_REGISTER_VALUE = 1, |
ACPI_EINJ_WRITE_REGISTER = 2, |
ACPI_EINJ_WRITE_REGISTER_VALUE = 3, |
ACPI_EINJ_NOOP = 4, |
ACPI_EINJ_INSTRUCTION_RESERVED = 5 /* 5 and greater are reserved */ |
}; |
/* EINJ Trigger Error Action Table */ |
typedef struct acpi_einj_trigger |
{ |
UINT32 HeaderSize; |
UINT32 Revision; |
UINT32 TableSize; |
UINT32 EntryCount; |
} ACPI_EINJ_TRIGGER; |
/* Command status return values */ |
enum AcpiEinjCommandStatus |
{ |
ACPI_EINJ_SUCCESS = 0, |
ACPI_EINJ_FAILURE = 1, |
ACPI_EINJ_INVALID_ACCESS = 2, |
ACPI_EINJ_STATUS_RESERVED = 3 /* 3 and greater are reserved */ |
}; |
/* Error types returned from ACPI_EINJ_GET_ERROR_TYPE (bitfield) */ |
#define ACPI_EINJ_PROCESSOR_CORRECTABLE (1) |
#define ACPI_EINJ_PROCESSOR_UNCORRECTABLE (1<<1) |
#define ACPI_EINJ_PROCESSOR_FATAL (1<<2) |
#define ACPI_EINJ_MEMORY_CORRECTABLE (1<<3) |
#define ACPI_EINJ_MEMORY_UNCORRECTABLE (1<<4) |
#define ACPI_EINJ_MEMORY_FATAL (1<<5) |
#define ACPI_EINJ_PCIX_CORRECTABLE (1<<6) |
#define ACPI_EINJ_PCIX_UNCORRECTABLE (1<<7) |
#define ACPI_EINJ_PCIX_FATAL (1<<8) |
#define ACPI_EINJ_PLATFORM_CORRECTABLE (1<<9) |
#define ACPI_EINJ_PLATFORM_UNCORRECTABLE (1<<10) |
#define ACPI_EINJ_PLATFORM_FATAL (1<<11) |
/******************************************************************************* |
* |
* ERST - Error Record Serialization Table (ACPI 4.0) |
* Version 1 |
* |
******************************************************************************/ |
typedef struct acpi_table_erst |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 HeaderLength; |
UINT32 Reserved; |
UINT32 Entries; |
} ACPI_TABLE_ERST; |
/* ERST Serialization Entries (actions) */ |
typedef struct acpi_erst_entry |
{ |
ACPI_WHEA_HEADER WheaHeader; /* Common header for WHEA tables */ |
} ACPI_ERST_ENTRY; |
/* Masks for Flags field above */ |
#define ACPI_ERST_PRESERVE (1) |
/* Values for Action field above */ |
enum AcpiErstActions |
{ |
ACPI_ERST_BEGIN_WRITE = 0, |
ACPI_ERST_BEGIN_READ = 1, |
ACPI_ERST_BEGIN_CLEAR = 2, |
ACPI_ERST_END = 3, |
ACPI_ERST_SET_RECORD_OFFSET = 4, |
ACPI_ERST_EXECUTE_OPERATION = 5, |
ACPI_ERST_CHECK_BUSY_STATUS = 6, |
ACPI_ERST_GET_COMMAND_STATUS = 7, |
ACPI_ERST_GET_RECORD_ID = 8, |
ACPI_ERST_SET_RECORD_ID = 9, |
ACPI_ERST_GET_RECORD_COUNT = 10, |
ACPI_ERST_BEGIN_DUMMY_WRIITE = 11, |
ACPI_ERST_NOT_USED = 12, |
ACPI_ERST_GET_ERROR_RANGE = 13, |
ACPI_ERST_GET_ERROR_LENGTH = 14, |
ACPI_ERST_GET_ERROR_ATTRIBUTES = 15, |
ACPI_ERST_ACTION_RESERVED = 16 /* 16 and greater are reserved */ |
}; |
/* Values for Instruction field above */ |
enum AcpiErstInstructions |
{ |
ACPI_ERST_READ_REGISTER = 0, |
ACPI_ERST_READ_REGISTER_VALUE = 1, |
ACPI_ERST_WRITE_REGISTER = 2, |
ACPI_ERST_WRITE_REGISTER_VALUE = 3, |
ACPI_ERST_NOOP = 4, |
ACPI_ERST_LOAD_VAR1 = 5, |
ACPI_ERST_LOAD_VAR2 = 6, |
ACPI_ERST_STORE_VAR1 = 7, |
ACPI_ERST_ADD = 8, |
ACPI_ERST_SUBTRACT = 9, |
ACPI_ERST_ADD_VALUE = 10, |
ACPI_ERST_SUBTRACT_VALUE = 11, |
ACPI_ERST_STALL = 12, |
ACPI_ERST_STALL_WHILE_TRUE = 13, |
ACPI_ERST_SKIP_NEXT_IF_TRUE = 14, |
ACPI_ERST_GOTO = 15, |
ACPI_ERST_SET_SRC_ADDRESS_BASE = 16, |
ACPI_ERST_SET_DST_ADDRESS_BASE = 17, |
ACPI_ERST_MOVE_DATA = 18, |
ACPI_ERST_INSTRUCTION_RESERVED = 19 /* 19 and greater are reserved */ |
}; |
/* Command status return values */ |
enum AcpiErstCommandStatus |
{ |
ACPI_ERST_SUCESS = 0, |
ACPI_ERST_NO_SPACE = 1, |
ACPI_ERST_NOT_AVAILABLE = 2, |
ACPI_ERST_FAILURE = 3, |
ACPI_ERST_RECORD_EMPTY = 4, |
ACPI_ERST_NOT_FOUND = 5, |
ACPI_ERST_STATUS_RESERVED = 6 /* 6 and greater are reserved */ |
}; |
/* Error Record Serialization Information */ |
typedef struct acpi_erst_info |
{ |
UINT16 Signature; /* Should be "ER" */ |
UINT8 Data[48]; |
} ACPI_ERST_INFO; |
/******************************************************************************* |
* |
* HEST - Hardware Error Source Table (ACPI 4.0) |
* Version 1 |
* |
******************************************************************************/ |
typedef struct acpi_table_hest |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 ErrorSourceCount; |
} ACPI_TABLE_HEST; |
/* HEST subtable header */ |
typedef struct acpi_hest_header |
{ |
UINT16 Type; |
UINT16 SourceId; |
} ACPI_HEST_HEADER; |
/* Values for Type field above for subtables */ |
enum AcpiHestTypes |
{ |
ACPI_HEST_TYPE_IA32_CHECK = 0, |
ACPI_HEST_TYPE_IA32_CORRECTED_CHECK = 1, |
ACPI_HEST_TYPE_IA32_NMI = 2, |
ACPI_HEST_TYPE_NOT_USED3 = 3, |
ACPI_HEST_TYPE_NOT_USED4 = 4, |
ACPI_HEST_TYPE_NOT_USED5 = 5, |
ACPI_HEST_TYPE_AER_ROOT_PORT = 6, |
ACPI_HEST_TYPE_AER_ENDPOINT = 7, |
ACPI_HEST_TYPE_AER_BRIDGE = 8, |
ACPI_HEST_TYPE_GENERIC_ERROR = 9, |
ACPI_HEST_TYPE_RESERVED = 10 /* 10 and greater are reserved */ |
}; |
/* |
* HEST substructures contained in subtables |
*/ |
/* |
* IA32 Error Bank(s) - Follows the ACPI_HEST_IA_MACHINE_CHECK and |
* ACPI_HEST_IA_CORRECTED structures. |
*/ |
typedef struct acpi_hest_ia_error_bank |
{ |
UINT8 BankNumber; |
UINT8 ClearStatusOnInit; |
UINT8 StatusFormat; |
UINT8 Reserved; |
UINT32 ControlRegister; |
UINT64 ControlData; |
UINT32 StatusRegister; |
UINT32 AddressRegister; |
UINT32 MiscRegister; |
} ACPI_HEST_IA_ERROR_BANK; |
/* Common HEST sub-structure for PCI/AER structures below (6,7,8) */ |
typedef struct acpi_hest_aer_common |
{ |
UINT16 Reserved1; |
UINT8 Flags; |
UINT8 Enabled; |
UINT32 RecordsToPreallocate; |
UINT32 MaxSectionsPerRecord; |
UINT32 Bus; |
UINT16 Device; |
UINT16 Function; |
UINT16 DeviceControl; |
UINT16 Reserved2; |
UINT32 UncorrectableMask; |
UINT32 UncorrectableSeverity; |
UINT32 CorrectableMask; |
UINT32 AdvancedCapabilities; |
} ACPI_HEST_AER_COMMON; |
/* Masks for HEST Flags fields */ |
#define ACPI_HEST_FIRMWARE_FIRST (1) |
#define ACPI_HEST_GLOBAL (1<<1) |
/* Hardware Error Notification */ |
typedef struct acpi_hest_notify |
{ |
UINT8 Type; |
UINT8 Length; |
UINT16 ConfigWriteEnable; |
UINT32 PollInterval; |
UINT32 Vector; |
UINT32 PollingThresholdValue; |
UINT32 PollingThresholdWindow; |
UINT32 ErrorThresholdValue; |
UINT32 ErrorThresholdWindow; |
} ACPI_HEST_NOTIFY; |
/* Values for Notify Type field above */ |
enum AcpiHestNotifyTypes |
{ |
ACPI_HEST_NOTIFY_POLLED = 0, |
ACPI_HEST_NOTIFY_EXTERNAL = 1, |
ACPI_HEST_NOTIFY_LOCAL = 2, |
ACPI_HEST_NOTIFY_SCI = 3, |
ACPI_HEST_NOTIFY_NMI = 4, |
ACPI_HEST_NOTIFY_RESERVED = 5 /* 5 and greater are reserved */ |
}; |
/* Values for ConfigWriteEnable bitfield above */ |
#define ACPI_HEST_TYPE (1) |
#define ACPI_HEST_POLL_INTERVAL (1<<1) |
#define ACPI_HEST_POLL_THRESHOLD_VALUE (1<<2) |
#define ACPI_HEST_POLL_THRESHOLD_WINDOW (1<<3) |
#define ACPI_HEST_ERR_THRESHOLD_VALUE (1<<4) |
#define ACPI_HEST_ERR_THRESHOLD_WINDOW (1<<5) |
/* |
* HEST subtables |
*/ |
/* 0: IA32 Machine Check Exception */ |
typedef struct acpi_hest_ia_machine_check |
{ |
ACPI_HEST_HEADER Header; |
UINT16 Reserved1; |
UINT8 Flags; |
UINT8 Enabled; |
UINT32 RecordsToPreallocate; |
UINT32 MaxSectionsPerRecord; |
UINT64 GlobalCapabilityData; |
UINT64 GlobalControlData; |
UINT8 NumHardwareBanks; |
UINT8 Reserved3[7]; |
} ACPI_HEST_IA_MACHINE_CHECK; |
/* 1: IA32 Corrected Machine Check */ |
typedef struct acpi_hest_ia_corrected |
{ |
ACPI_HEST_HEADER Header; |
UINT16 Reserved1; |
UINT8 Flags; |
UINT8 Enabled; |
UINT32 RecordsToPreallocate; |
UINT32 MaxSectionsPerRecord; |
ACPI_HEST_NOTIFY Notify; |
UINT8 NumHardwareBanks; |
UINT8 Reserved2[3]; |
} ACPI_HEST_IA_CORRECTED; |
/* 2: IA32 Non-Maskable Interrupt */ |
typedef struct acpi_hest_ia_nmi |
{ |
ACPI_HEST_HEADER Header; |
UINT32 Reserved; |
UINT32 RecordsToPreallocate; |
UINT32 MaxSectionsPerRecord; |
UINT32 MaxRawDataLength; |
} ACPI_HEST_IA_NMI; |
/* 3,4,5: Not used */ |
/* 6: PCI Express Root Port AER */ |
typedef struct acpi_hest_aer_root |
{ |
ACPI_HEST_HEADER Header; |
ACPI_HEST_AER_COMMON Aer; |
UINT32 RootErrorCommand; |
} ACPI_HEST_AER_ROOT; |
/* 7: PCI Express AER (AER Endpoint) */ |
typedef struct acpi_hest_aer |
{ |
ACPI_HEST_HEADER Header; |
ACPI_HEST_AER_COMMON Aer; |
} ACPI_HEST_AER; |
/* 8: PCI Express/PCI-X Bridge AER */ |
typedef struct acpi_hest_aer_bridge |
{ |
ACPI_HEST_HEADER Header; |
ACPI_HEST_AER_COMMON Aer; |
UINT32 UncorrectableMask2; |
UINT32 UncorrectableSeverity2; |
UINT32 AdvancedCapabilities2; |
} ACPI_HEST_AER_BRIDGE; |
/* 9: Generic Hardware Error Source */ |
typedef struct acpi_hest_generic |
{ |
ACPI_HEST_HEADER Header; |
UINT16 RelatedSourceId; |
UINT8 Reserved; |
UINT8 Enabled; |
UINT32 RecordsToPreallocate; |
UINT32 MaxSectionsPerRecord; |
UINT32 MaxRawDataLength; |
ACPI_GENERIC_ADDRESS ErrorStatusAddress; |
ACPI_HEST_NOTIFY Notify; |
UINT32 ErrorBlockLength; |
} ACPI_HEST_GENERIC; |
/* Generic Error Status block */ |
typedef struct acpi_hest_generic_status |
{ |
UINT32 BlockStatus; |
UINT32 RawDataOffset; |
UINT32 RawDataLength; |
UINT32 DataLength; |
UINT32 ErrorSeverity; |
} ACPI_HEST_GENERIC_STATUS; |
/* Values for BlockStatus flags above */ |
#define ACPI_HEST_UNCORRECTABLE (1) |
#define ACPI_HEST_CORRECTABLE (1<<1) |
#define ACPI_HEST_MULTIPLE_UNCORRECTABLE (1<<2) |
#define ACPI_HEST_MULTIPLE_CORRECTABLE (1<<3) |
#define ACPI_HEST_ERROR_ENTRY_COUNT (0xFF<<4) /* 8 bits, error count */ |
/* Generic Error Data entry */ |
typedef struct acpi_hest_generic_data |
{ |
UINT8 SectionType[16]; |
UINT32 ErrorSeverity; |
UINT16 Revision; |
UINT8 ValidationBits; |
UINT8 Flags; |
UINT32 ErrorDataLength; |
UINT8 FruId[16]; |
UINT8 FruText[20]; |
} ACPI_HEST_GENERIC_DATA; |
/******************************************************************************* |
* |
* MADT - Multiple APIC Description Table |
* Version 3 |
* |
******************************************************************************/ |
typedef struct acpi_table_madt |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 Address; /* Physical address of local APIC */ |
UINT32 Flags; |
} ACPI_TABLE_MADT; |
/* Masks for Flags field above */ |
#define ACPI_MADT_PCAT_COMPAT (1) /* 00: System also has dual 8259s */ |
/* Values for PCATCompat flag */ |
#define ACPI_MADT_DUAL_PIC 0 |
#define ACPI_MADT_MULTIPLE_APIC 1 |
/* Values for MADT subtable type in ACPI_SUBTABLE_HEADER */ |
enum AcpiMadtType |
{ |
ACPI_MADT_TYPE_LOCAL_APIC = 0, |
ACPI_MADT_TYPE_IO_APIC = 1, |
ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, |
ACPI_MADT_TYPE_NMI_SOURCE = 3, |
ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, |
ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, |
ACPI_MADT_TYPE_IO_SAPIC = 6, |
ACPI_MADT_TYPE_LOCAL_SAPIC = 7, |
ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, |
ACPI_MADT_TYPE_LOCAL_X2APIC = 9, |
ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, |
ACPI_MADT_TYPE_RESERVED = 11 /* 11 and greater are reserved */ |
}; |
/* |
* MADT Sub-tables, correspond to Type in ACPI_SUBTABLE_HEADER |
*/ |
/* 0: Processor Local APIC */ |
typedef struct acpi_madt_local_apic |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT8 ProcessorId; /* ACPI processor id */ |
UINT8 Id; /* Processor's local APIC id */ |
UINT32 LapicFlags; |
} ACPI_MADT_LOCAL_APIC; |
/* 1: IO APIC */ |
typedef struct acpi_madt_io_apic |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT8 Id; /* I/O APIC ID */ |
UINT8 Reserved; /* Reserved - must be zero */ |
UINT32 Address; /* APIC physical address */ |
UINT32 GlobalIrqBase; /* Global system interrupt where INTI lines start */ |
} ACPI_MADT_IO_APIC; |
/* 2: Interrupt Override */ |
typedef struct acpi_madt_interrupt_override |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT8 Bus; /* 0 - ISA */ |
UINT8 SourceIrq; /* Interrupt source (IRQ) */ |
UINT32 GlobalIrq; /* Global system interrupt */ |
UINT16 IntiFlags; |
} ACPI_MADT_INTERRUPT_OVERRIDE; |
/* 3: NMI Source */ |
typedef struct acpi_madt_nmi_source |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT16 IntiFlags; |
UINT32 GlobalIrq; /* Global system interrupt */ |
} ACPI_MADT_NMI_SOURCE; |
/* 4: Local APIC NMI */ |
typedef struct acpi_madt_local_apic_nmi |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT8 ProcessorId; /* ACPI processor id */ |
UINT16 IntiFlags; |
UINT8 Lint; /* LINTn to which NMI is connected */ |
} ACPI_MADT_LOCAL_APIC_NMI; |
/* 5: Address Override */ |
typedef struct acpi_madt_local_apic_override |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT16 Reserved; /* Reserved, must be zero */ |
UINT64 Address; /* APIC physical address */ |
} ACPI_MADT_LOCAL_APIC_OVERRIDE; |
/* 6: I/O Sapic */ |
typedef struct acpi_madt_io_sapic |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT8 Id; /* I/O SAPIC ID */ |
UINT8 Reserved; /* Reserved, must be zero */ |
UINT32 GlobalIrqBase; /* Global interrupt for SAPIC start */ |
UINT64 Address; /* SAPIC physical address */ |
} ACPI_MADT_IO_SAPIC; |
/* 7: Local Sapic */ |
typedef struct acpi_madt_local_sapic |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT8 ProcessorId; /* ACPI processor id */ |
UINT8 Id; /* SAPIC ID */ |
UINT8 Eid; /* SAPIC EID */ |
UINT8 Reserved[3]; /* Reserved, must be zero */ |
UINT32 LapicFlags; |
UINT32 Uid; /* Numeric UID - ACPI 3.0 */ |
char UidString[1]; /* String UID - ACPI 3.0 */ |
} ACPI_MADT_LOCAL_SAPIC; |
/* 8: Platform Interrupt Source */ |
typedef struct acpi_madt_interrupt_source |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT16 IntiFlags; |
UINT8 Type; /* 1=PMI, 2=INIT, 3=corrected */ |
UINT8 Id; /* Processor ID */ |
UINT8 Eid; /* Processor EID */ |
UINT8 IoSapicVector; /* Vector value for PMI interrupts */ |
UINT32 GlobalIrq; /* Global system interrupt */ |
UINT32 Flags; /* Interrupt Source Flags */ |
} ACPI_MADT_INTERRUPT_SOURCE; |
/* Masks for Flags field above */ |
#define ACPI_MADT_CPEI_OVERRIDE (1) |
/* 9: Processor Local X2APIC (ACPI 4.0) */ |
typedef struct acpi_madt_local_x2apic |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT16 Reserved; /* Reserved - must be zero */ |
UINT32 LocalApicId; /* Processor x2APIC ID */ |
UINT32 LapicFlags; |
UINT32 Uid; /* ACPI processor UID */ |
} ACPI_MADT_LOCAL_X2APIC; |
/* 10: Local X2APIC NMI (ACPI 4.0) */ |
typedef struct acpi_madt_local_x2apic_nmi |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT16 IntiFlags; |
UINT32 Uid; /* ACPI processor UID */ |
UINT8 Lint; /* LINTn to which NMI is connected */ |
UINT8 Reserved[3]; /* Reserved - must be zero */ |
} ACPI_MADT_LOCAL_X2APIC_NMI; |
/* |
* Common flags fields for MADT subtables |
*/ |
/* MADT Local APIC flags (LapicFlags) */ |
#define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */ |
/* MADT MPS INTI flags (IntiFlags) */ |
#define ACPI_MADT_POLARITY_MASK (3) /* 00-01: Polarity of APIC I/O input signals */ |
#define ACPI_MADT_TRIGGER_MASK (3<<2) /* 02-03: Trigger mode of APIC input signals */ |
/* Values for MPS INTI flags */ |
#define ACPI_MADT_POLARITY_CONFORMS 0 |
#define ACPI_MADT_POLARITY_ACTIVE_HIGH 1 |
#define ACPI_MADT_POLARITY_RESERVED 2 |
#define ACPI_MADT_POLARITY_ACTIVE_LOW 3 |
#define ACPI_MADT_TRIGGER_CONFORMS (0) |
#define ACPI_MADT_TRIGGER_EDGE (1<<2) |
#define ACPI_MADT_TRIGGER_RESERVED (2<<2) |
#define ACPI_MADT_TRIGGER_LEVEL (3<<2) |
/******************************************************************************* |
* |
* MSCT - Maximum System Characteristics Table (ACPI 4.0) |
* Version 1 |
* |
******************************************************************************/ |
typedef struct acpi_table_msct |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 ProximityOffset; /* Location of proximity info struct(s) */ |
UINT32 MaxProximityDomains;/* Max number of proximity domains */ |
UINT32 MaxClockDomains; /* Max number of clock domains */ |
UINT64 MaxAddress; /* Max physical address in system */ |
} ACPI_TABLE_MSCT; |
/* Subtable - Maximum Proximity Domain Information. Version 1 */ |
typedef struct acpi_msct_proximity |
{ |
UINT8 Revision; |
UINT8 Length; |
UINT32 RangeStart; /* Start of domain range */ |
UINT32 RangeEnd; /* End of domain range */ |
UINT32 ProcessorCapacity; |
UINT64 MemoryCapacity; /* In bytes */ |
} ACPI_MSCT_PROXIMITY; |
/******************************************************************************* |
* |
* SBST - Smart Battery Specification Table |
* Version 1 |
* |
******************************************************************************/ |
typedef struct acpi_table_sbst |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 WarningLevel; |
UINT32 LowLevel; |
UINT32 CriticalLevel; |
} ACPI_TABLE_SBST; |
/******************************************************************************* |
* |
* SLIT - System Locality Distance Information Table |
* Version 1 |
* |
******************************************************************************/ |
typedef struct acpi_table_slit |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT64 LocalityCount; |
UINT8 Entry[1]; /* Real size = localities^2 */ |
} ACPI_TABLE_SLIT; |
/******************************************************************************* |
* |
* SRAT - System Resource Affinity Table |
* Version 3 |
* |
******************************************************************************/ |
typedef struct acpi_table_srat |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 TableRevision; /* Must be value '1' */ |
UINT64 Reserved; /* Reserved, must be zero */ |
} ACPI_TABLE_SRAT; |
/* Values for subtable type in ACPI_SUBTABLE_HEADER */ |
enum AcpiSratType |
{ |
ACPI_SRAT_TYPE_CPU_AFFINITY = 0, |
ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, |
ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, |
ACPI_SRAT_TYPE_RESERVED = 3 /* 3 and greater are reserved */ |
}; |
/* |
* SRAT Sub-tables, correspond to Type in ACPI_SUBTABLE_HEADER |
*/ |
/* 0: Processor Local APIC/SAPIC Affinity */ |
typedef struct acpi_srat_cpu_affinity |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT8 ProximityDomainLo; |
UINT8 ApicId; |
UINT32 Flags; |
UINT8 LocalSapicEid; |
UINT8 ProximityDomainHi[3]; |
UINT32 Reserved; /* Reserved, must be zero */ |
} ACPI_SRAT_CPU_AFFINITY; |
/* Flags */ |
#define ACPI_SRAT_CPU_USE_AFFINITY (1) /* 00: Use affinity structure */ |
/* 1: Memory Affinity */ |
typedef struct acpi_srat_mem_affinity |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT32 ProximityDomain; |
UINT16 Reserved; /* Reserved, must be zero */ |
UINT64 BaseAddress; |
UINT64 Length; |
UINT32 Reserved1; |
UINT32 Flags; |
UINT64 Reserved2; /* Reserved, must be zero */ |
} ACPI_SRAT_MEM_AFFINITY; |
/* Flags */ |
#define ACPI_SRAT_MEM_ENABLED (1) /* 00: Use affinity structure */ |
#define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1) /* 01: Memory region is hot pluggable */ |
#define ACPI_SRAT_MEM_NON_VOLATILE (1<<2) /* 02: Memory region is non-volatile */ |
/* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */ |
typedef struct acpi_srat_x2apic_cpu_affinity |
{ |
ACPI_SUBTABLE_HEADER Header; |
UINT16 Reserved; /* Reserved, must be zero */ |
UINT32 ProximityDomain; |
UINT32 ApicId; |
UINT32 Flags; |
UINT32 ClockDomain; |
UINT32 Reserved2; |
} ACPI_SRAT_X2APIC_CPU_AFFINITY; |
/* Flags for ACPI_SRAT_CPU_AFFINITY and ACPI_SRAT_X2APIC_CPU_AFFINITY */ |
#define ACPI_SRAT_CPU_ENABLED (1) /* 00: Use affinity structure */ |
/* Reset to default packing */ |
#pragma pack() |
#endif /* __ACTBL1_H__ */ |
/drivers/devman/acpica/include/actbl2.h |
---|
0,0 → 1,1162 |
/****************************************************************************** |
* |
* Name: actbl2.h - ACPI Specification Revision 2.0 Tables |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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__ |
/******************************************************************************* |
* |
* Additional ACPI Tables (2) |
* |
* These tables are not consumed directly by the ACPICA subsystem, but are |
* included here to support device drivers and the AML disassembler. |
* |
* The tables in this file are defined by third-party specifications, and are |
* not defined directly by the ACPI specification itself. |
* |
******************************************************************************/ |
/* |
* Values for description table header signatures for tables defined in this |
* file. Useful because they make it more difficult to inadvertently type in |
* the wrong signature. |
*/ |
#define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ |
#define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ |
#define ACPI_SIG_DBGP "DBGP" /* Debug Port table */ |
#define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ |
#define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ |
#define ACPI_SIG_IBFT "IBFT" /* iSCSI Boot Firmware Table */ |
#define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ |
#define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ |
#define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */ |
#define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ |
#define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ |
#define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ |
#define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ |
#define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ |
#define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ |
#define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ |
#define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ |
#ifdef ACPI_UNDEFINED_TABLES |
/* |
* These tables have been seen in the field, but no definition has been found |
*/ |
#define ACPI_SIG_ATKG "ATKG" |
#define ACPI_SIG_GSCI "GSCI" /* GMCH SCI table */ |
#define ACPI_SIG_IEIT "IEIT" |
#endif |
/* |
* All tables must be byte-packed to match the ACPI specification, since |
* the tables are provided by the system BIOS. |
*/ |
#pragma pack(1) |
/* |
* Note about bitfields: The UINT8 type is used for bitfields in ACPI tables. |
* This is the only type that is even remotely portable. Anything else is not |
* portable, so do not use any other bitfield types. |
*/ |
/******************************************************************************* |
* |
* ASF - Alert Standard Format table (Signature "ASF!") |
* Revision 0x10 |
* |
* Conforms to the Alert Standard Format Specification V2.0, 23 April 2003 |
* |
******************************************************************************/ |
typedef struct acpi_table_asf |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
} ACPI_TABLE_ASF; |
/* ASF subtable header */ |
typedef struct acpi_asf_header |
{ |
UINT8 Type; |
UINT8 Reserved; |
UINT16 Length; |
} ACPI_ASF_HEADER; |
/* Values for Type field above */ |
enum AcpiAsfType |
{ |
ACPI_ASF_TYPE_INFO = 0, |
ACPI_ASF_TYPE_ALERT = 1, |
ACPI_ASF_TYPE_CONTROL = 2, |
ACPI_ASF_TYPE_BOOT = 3, |
ACPI_ASF_TYPE_ADDRESS = 4, |
ACPI_ASF_TYPE_RESERVED = 5 |
}; |
/* |
* ASF subtables |
*/ |
/* 0: ASF Information */ |
typedef struct acpi_asf_info |
{ |
ACPI_ASF_HEADER Header; |
UINT8 MinResetValue; |
UINT8 MinPollInterval; |
UINT16 SystemId; |
UINT32 MfgId; |
UINT8 Flags; |
UINT8 Reserved2[3]; |
} ACPI_ASF_INFO; |
/* Masks for Flags field above */ |
#define ACPI_ASF_SMBUS_PROTOCOLS (1) |
/* 1: ASF Alerts */ |
typedef struct acpi_asf_alert |
{ |
ACPI_ASF_HEADER Header; |
UINT8 AssertMask; |
UINT8 DeassertMask; |
UINT8 Alerts; |
UINT8 DataLength; |
} ACPI_ASF_ALERT; |
typedef struct acpi_asf_alert_data |
{ |
UINT8 Address; |
UINT8 Command; |
UINT8 Mask; |
UINT8 Value; |
UINT8 SensorType; |
UINT8 Type; |
UINT8 Offset; |
UINT8 SourceType; |
UINT8 Severity; |
UINT8 SensorNumber; |
UINT8 Entity; |
UINT8 Instance; |
} ACPI_ASF_ALERT_DATA; |
/* 2: ASF Remote Control */ |
typedef struct acpi_asf_remote |
{ |
ACPI_ASF_HEADER Header; |
UINT8 Controls; |
UINT8 DataLength; |
UINT16 Reserved2; |
} ACPI_ASF_REMOTE; |
typedef struct acpi_asf_control_data |
{ |
UINT8 Function; |
UINT8 Address; |
UINT8 Command; |
UINT8 Value; |
} ACPI_ASF_CONTROL_DATA; |
/* 3: ASF RMCP Boot Options */ |
typedef struct acpi_asf_rmcp |
{ |
ACPI_ASF_HEADER Header; |
UINT8 Capabilities[7]; |
UINT8 CompletionCode; |
UINT32 EnterpriseId; |
UINT8 Command; |
UINT16 Parameter; |
UINT16 BootOptions; |
UINT16 OemParameters; |
} ACPI_ASF_RMCP; |
/* 4: ASF Address */ |
typedef struct acpi_asf_address |
{ |
ACPI_ASF_HEADER Header; |
UINT8 EpromAddress; |
UINT8 Devices; |
} ACPI_ASF_ADDRESS; |
/******************************************************************************* |
* |
* BOOT - Simple Boot Flag Table |
* Version 1 |
* |
* Conforms to the "Simple Boot Flag Specification", Version 2.1 |
* |
******************************************************************************/ |
typedef struct acpi_table_boot |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT8 CmosIndex; /* Index in CMOS RAM for the boot register */ |
UINT8 Reserved[3]; |
} ACPI_TABLE_BOOT; |
/******************************************************************************* |
* |
* DBGP - Debug Port table |
* Version 1 |
* |
* Conforms to the "Debug Port Specification", Version 1.00, 2/9/2000 |
* |
******************************************************************************/ |
typedef struct acpi_table_dbgp |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT8 Type; /* 0=full 16550, 1=subset of 16550 */ |
UINT8 Reserved[3]; |
ACPI_GENERIC_ADDRESS DebugPort; |
} ACPI_TABLE_DBGP; |
/******************************************************************************* |
* |
* DMAR - DMA Remapping table |
* Version 1 |
* |
* Conforms to "Intel Virtualization Technology for Directed I/O", |
* Version 1.2, Sept. 2008 |
* |
******************************************************************************/ |
typedef struct acpi_table_dmar |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT8 Width; /* Host Address Width */ |
UINT8 Flags; |
UINT8 Reserved[10]; |
} ACPI_TABLE_DMAR; |
/* Masks for Flags field above */ |
#define ACPI_DMAR_INTR_REMAP (1) |
/* DMAR subtable header */ |
typedef struct acpi_dmar_header |
{ |
UINT16 Type; |
UINT16 Length; |
} ACPI_DMAR_HEADER; |
/* Values for subtable type in ACPI_DMAR_HEADER */ |
enum AcpiDmarType |
{ |
ACPI_DMAR_TYPE_HARDWARE_UNIT = 0, |
ACPI_DMAR_TYPE_RESERVED_MEMORY = 1, |
ACPI_DMAR_TYPE_ATSR = 2, |
ACPI_DMAR_HARDWARE_AFFINITY = 3, |
ACPI_DMAR_TYPE_RESERVED = 4 /* 4 and greater are reserved */ |
}; |
/* DMAR Device Scope structure */ |
typedef struct acpi_dmar_device_scope |
{ |
UINT8 EntryType; |
UINT8 Length; |
UINT16 Reserved; |
UINT8 EnumerationId; |
UINT8 Bus; |
} ACPI_DMAR_DEVICE_SCOPE; |
/* Values for EntryType in ACPI_DMAR_DEVICE_SCOPE */ |
enum AcpiDmarScopeType |
{ |
ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0, |
ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1, |
ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2, |
ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3, |
ACPI_DMAR_SCOPE_TYPE_HPET = 4, |
ACPI_DMAR_SCOPE_TYPE_RESERVED = 5 /* 5 and greater are reserved */ |
}; |
typedef struct acpi_dmar_pci_path |
{ |
UINT8 Device; |
UINT8 Function; |
} ACPI_DMAR_PCI_PATH; |
/* |
* DMAR Sub-tables, correspond to Type in ACPI_DMAR_HEADER |
*/ |
/* 0: Hardware Unit Definition */ |
typedef struct acpi_dmar_hardware_unit |
{ |
ACPI_DMAR_HEADER Header; |
UINT8 Flags; |
UINT8 Reserved; |
UINT16 Segment; |
UINT64 Address; /* Register Base Address */ |
} ACPI_DMAR_HARDWARE_UNIT; |
/* Masks for Flags field above */ |
#define ACPI_DMAR_INCLUDE_ALL (1) |
/* 1: Reserved Memory Defininition */ |
typedef struct acpi_dmar_reserved_memory |
{ |
ACPI_DMAR_HEADER Header; |
UINT16 Reserved; |
UINT16 Segment; |
UINT64 BaseAddress; /* 4K aligned base address */ |
UINT64 EndAddress; /* 4K aligned limit address */ |
} ACPI_DMAR_RESERVED_MEMORY; |
/* Masks for Flags field above */ |
#define ACPI_DMAR_ALLOW_ALL (1) |
/* 2: Root Port ATS Capability Reporting Structure */ |
typedef struct acpi_dmar_atsr |
{ |
ACPI_DMAR_HEADER Header; |
UINT8 Flags; |
UINT8 Reserved; |
UINT16 Segment; |
} ACPI_DMAR_ATSR; |
/* Masks for Flags field above */ |
#define ACPI_DMAR_ALL_PORTS (1) |
/* 3: Remapping Hardware Static Affinity Structure */ |
typedef struct acpi_dmar_rhsa |
{ |
ACPI_DMAR_HEADER Header; |
UINT32 Reserved; |
UINT64 BaseAddress; |
UINT32 ProximityDomain; |
} ACPI_DMAR_RHSA; |
/******************************************************************************* |
* |
* HPET - High Precision Event Timer table |
* Version 1 |
* |
* Conforms to "IA-PC HPET (High Precision Event Timers) Specification", |
* Version 1.0a, October 2004 |
* |
******************************************************************************/ |
typedef struct acpi_table_hpet |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 Id; /* Hardware ID of event timer block */ |
ACPI_GENERIC_ADDRESS Address; /* Address of event timer block */ |
UINT8 Sequence; /* HPET sequence number */ |
UINT16 MinimumTick; /* Main counter min tick, periodic mode */ |
UINT8 Flags; |
} ACPI_TABLE_HPET; |
/* Masks for Flags field above */ |
#define ACPI_HPET_PAGE_PROTECT_MASK (3) |
/* Values for Page Protect flags */ |
enum AcpiHpetPageProtect |
{ |
ACPI_HPET_NO_PAGE_PROTECT = 0, |
ACPI_HPET_PAGE_PROTECT4 = 1, |
ACPI_HPET_PAGE_PROTECT64 = 2 |
}; |
/******************************************************************************* |
* |
* IBFT - Boot Firmware Table |
* Version 1 |
* |
* Conforms to "iSCSI Boot Firmware Table (iBFT) as Defined in ACPI 3.0b |
* Specification", Version 1.01, March 1, 2007 |
* |
* Note: It appears that this table is not intended to appear in the RSDT/XSDT. |
* Therefore, it is not currently supported by the disassembler. |
* |
******************************************************************************/ |
typedef struct acpi_table_ibft |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT8 Reserved[12]; |
} ACPI_TABLE_IBFT; |
/* IBFT common subtable header */ |
typedef struct acpi_ibft_header |
{ |
UINT8 Type; |
UINT8 Version; |
UINT16 Length; |
UINT8 Index; |
UINT8 Flags; |
} ACPI_IBFT_HEADER; |
/* Values for Type field above */ |
enum AcpiIbftType |
{ |
ACPI_IBFT_TYPE_NOT_USED = 0, |
ACPI_IBFT_TYPE_CONTROL = 1, |
ACPI_IBFT_TYPE_INITIATOR = 2, |
ACPI_IBFT_TYPE_NIC = 3, |
ACPI_IBFT_TYPE_TARGET = 4, |
ACPI_IBFT_TYPE_EXTENSIONS = 5, |
ACPI_IBFT_TYPE_RESERVED = 6 /* 6 and greater are reserved */ |
}; |
/* IBFT subtables */ |
typedef struct acpi_ibft_control |
{ |
ACPI_IBFT_HEADER Header; |
UINT16 Extensions; |
UINT16 InitiatorOffset; |
UINT16 Nic0Offset; |
UINT16 Target0Offset; |
UINT16 Nic1Offset; |
UINT16 Target1Offset; |
} ACPI_IBFT_CONTROL; |
typedef struct acpi_ibft_initiator |
{ |
ACPI_IBFT_HEADER Header; |
UINT8 SnsServer[16]; |
UINT8 SlpServer[16]; |
UINT8 PrimaryServer[16]; |
UINT8 SecondaryServer[16]; |
UINT16 NameLength; |
UINT16 NameOffset; |
} ACPI_IBFT_INITIATOR; |
typedef struct acpi_ibft_nic |
{ |
ACPI_IBFT_HEADER Header; |
UINT8 IpAddress[16]; |
UINT8 SubnetMaskPrefix; |
UINT8 Origin; |
UINT8 Gateway[16]; |
UINT8 PrimaryDns[16]; |
UINT8 SecondaryDns[16]; |
UINT8 Dhcp[16]; |
UINT16 Vlan; |
UINT8 MacAddress[6]; |
UINT16 PciAddress; |
UINT16 NameLength; |
UINT16 NameOffset; |
} ACPI_IBFT_NIC; |
typedef struct acpi_ibft_target |
{ |
ACPI_IBFT_HEADER Header; |
UINT8 TargetIpAddress[16]; |
UINT16 TargetIpSocket; |
UINT8 TargetBootLun[8]; |
UINT8 ChapType; |
UINT8 NicAssociation; |
UINT16 TargetNameLength; |
UINT16 TargetNameOffset; |
UINT16 ChapNameLength; |
UINT16 ChapNameOffset; |
UINT16 ChapSecretLength; |
UINT16 ChapSecretOffset; |
UINT16 ReverseChapNameLength; |
UINT16 ReverseChapNameOffset; |
UINT16 ReverseChapSecretLength; |
UINT16 ReverseChapSecretOffset; |
} ACPI_IBFT_TARGET; |
/******************************************************************************* |
* |
* IVRS - I/O Virtualization Reporting Structure |
* Version 1 |
* |
* Conforms to "AMD I/O Virtualization Technology (IOMMU) Specification", |
* Revision 1.26, February 2009. |
* |
******************************************************************************/ |
typedef struct acpi_table_ivrs |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 Info; /* Common virtualization info */ |
UINT64 Reserved; |
} ACPI_TABLE_IVRS; |
/* Values for Info field above */ |
#define ACPI_IVRS_PHYSICAL_SIZE 0x00007F00 /* 7 bits, physical address size */ |
#define ACPI_IVRS_VIRTUAL_SIZE 0x003F8000 /* 7 bits, virtual address size */ |
#define ACPI_IVRS_ATS_RESERVED 0x00400000 /* ATS address translation range reserved */ |
/* IVRS subtable header */ |
typedef struct acpi_ivrs_header |
{ |
UINT8 Type; /* Subtable type */ |
UINT8 Flags; |
UINT16 Length; /* Subtable length */ |
UINT16 DeviceId; /* ID of IOMMU */ |
} ACPI_IVRS_HEADER; |
/* Values for subtable Type above */ |
enum AcpiIvrsType |
{ |
ACPI_IVRS_TYPE_HARDWARE = 0x10, |
ACPI_IVRS_TYPE_MEMORY1 = 0x20, |
ACPI_IVRS_TYPE_MEMORY2 = 0x21, |
ACPI_IVRS_TYPE_MEMORY3 = 0x22 |
}; |
/* Masks for Flags field above for IVHD subtable */ |
#define ACPI_IVHD_TT_ENABLE (1) |
#define ACPI_IVHD_PASS_PW (1<<1) |
#define ACPI_IVHD_RES_PASS_PW (1<<2) |
#define ACPI_IVHD_ISOC (1<<3) |
#define ACPI_IVHD_IOTLB (1<<4) |
/* Masks for Flags field above for IVMD subtable */ |
#define ACPI_IVMD_UNITY (1) |
#define ACPI_IVMD_READ (1<<1) |
#define ACPI_IVMD_WRITE (1<<2) |
#define ACPI_IVMD_EXCLUSION_RANGE (1<<3) |
/* |
* IVRS subtables, correspond to Type in ACPI_IVRS_HEADER |
*/ |
/* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */ |
typedef struct acpi_ivrs_hardware |
{ |
ACPI_IVRS_HEADER Header; |
UINT16 CapabilityOffset; /* Offset for IOMMU control fields */ |
UINT64 BaseAddress; /* IOMMU control registers */ |
UINT16 PciSegmentGroup; |
UINT16 Info; /* MSI number and unit ID */ |
UINT32 Reserved; |
} ACPI_IVRS_HARDWARE; |
/* Masks for Info field above */ |
#define ACPI_IVHD_MSI_NUMBER_MASK 0x001F /* 5 bits, MSI message number */ |
#define ACPI_IVHD_UNIT_ID_MASK 0x1F00 /* 5 bits, UnitID */ |
/* |
* Device Entries for IVHD subtable, appear after ACPI_IVRS_HARDWARE structure. |
* Upper two bits of the Type field are the (encoded) length of the structure. |
* Currently, only 4 and 8 byte entries are defined. 16 and 32 byte entries |
* are reserved for future use but not defined. |
*/ |
typedef struct acpi_ivrs_de_header |
{ |
UINT8 Type; |
UINT16 Id; |
UINT8 DataSetting; |
} ACPI_IVRS_DE_HEADER; |
/* Length of device entry is in the top two bits of Type field above */ |
#define ACPI_IVHD_ENTRY_LENGTH 0xC0 |
/* Values for device entry Type field above */ |
enum AcpiIvrsDeviceEntryType |
{ |
/* 4-byte device entries, all use ACPI_IVRS_DEVICE4 */ |
ACPI_IVRS_TYPE_PAD4 = 0, |
ACPI_IVRS_TYPE_ALL = 1, |
ACPI_IVRS_TYPE_SELECT = 2, |
ACPI_IVRS_TYPE_START = 3, |
ACPI_IVRS_TYPE_END = 4, |
/* 8-byte device entries */ |
ACPI_IVRS_TYPE_PAD8 = 64, |
ACPI_IVRS_TYPE_NOT_USED = 65, |
ACPI_IVRS_TYPE_ALIAS_SELECT = 66, /* Uses ACPI_IVRS_DEVICE8A */ |
ACPI_IVRS_TYPE_ALIAS_START = 67, /* Uses ACPI_IVRS_DEVICE8A */ |
ACPI_IVRS_TYPE_EXT_SELECT = 70, /* Uses ACPI_IVRS_DEVICE8B */ |
ACPI_IVRS_TYPE_EXT_START = 71, /* Uses ACPI_IVRS_DEVICE8B */ |
ACPI_IVRS_TYPE_SPECIAL = 72 /* Uses ACPI_IVRS_DEVICE8C */ |
}; |
/* Values for Data field above */ |
#define ACPI_IVHD_INIT_PASS (1) |
#define ACPI_IVHD_EINT_PASS (1<<1) |
#define ACPI_IVHD_NMI_PASS (1<<2) |
#define ACPI_IVHD_SYSTEM_MGMT (3<<4) |
#define ACPI_IVHD_LINT0_PASS (1<<6) |
#define ACPI_IVHD_LINT1_PASS (1<<7) |
/* Types 0-4: 4-byte device entry */ |
typedef struct acpi_ivrs_device4 |
{ |
ACPI_IVRS_DE_HEADER Header; |
} ACPI_IVRS_DEVICE4; |
/* Types 66-67: 8-byte device entry */ |
typedef struct acpi_ivrs_device8a |
{ |
ACPI_IVRS_DE_HEADER Header; |
UINT8 Reserved1; |
UINT16 UsedId; |
UINT8 Reserved2; |
} ACPI_IVRS_DEVICE8A; |
/* Types 70-71: 8-byte device entry */ |
typedef struct acpi_ivrs_device8b |
{ |
ACPI_IVRS_DE_HEADER Header; |
UINT32 ExtendedData; |
} ACPI_IVRS_DEVICE8B; |
/* Values for ExtendedData above */ |
#define ACPI_IVHD_ATS_DISABLED (1<<31) |
/* Type 72: 8-byte device entry */ |
typedef struct acpi_ivrs_device8c |
{ |
ACPI_IVRS_DE_HEADER Header; |
UINT8 Handle; |
UINT16 UsedId; |
UINT8 Variety; |
} ACPI_IVRS_DEVICE8C; |
/* Values for Variety field above */ |
#define ACPI_IVHD_IOAPIC 1 |
#define ACPI_IVHD_HPET 2 |
/* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition Block (IVMD) */ |
typedef struct acpi_ivrs_memory |
{ |
ACPI_IVRS_HEADER Header; |
UINT16 AuxData; |
UINT64 Reserved; |
UINT64 StartAddress; |
UINT64 MemoryLength; |
} ACPI_IVRS_MEMORY; |
/******************************************************************************* |
* |
* MCFG - PCI Memory Mapped Configuration table and sub-table |
* Version 1 |
* |
* Conforms to "PCI Firmware Specification", Revision 3.0, June 20, 2005 |
* |
******************************************************************************/ |
typedef struct acpi_table_mcfg |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT8 Reserved[8]; |
} ACPI_TABLE_MCFG; |
/* Subtable */ |
typedef struct acpi_mcfg_allocation |
{ |
UINT64 Address; /* Base address, processor-relative */ |
UINT16 PciSegment; /* PCI segment group number */ |
UINT8 StartBusNumber; /* Starting PCI Bus number */ |
UINT8 EndBusNumber; /* Final PCI Bus number */ |
UINT32 Reserved; |
} ACPI_MCFG_ALLOCATION; |
/******************************************************************************* |
* |
* MCHI - Management Controller Host Interface Table |
* Version 1 |
* |
* Conforms to "Management Component Transport Protocol (MCTP) Host |
* Interface Specification", Revision 1.0.0a, October 13, 2009 |
* |
******************************************************************************/ |
typedef struct acpi_table_mchi |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT8 InterfaceType; |
UINT8 Protocol; |
UINT64 ProtocolData; |
UINT8 InterruptType; |
UINT8 Gpe; |
UINT8 PciDeviceFlag; |
UINT32 GlobalInterrupt; |
ACPI_GENERIC_ADDRESS ControlRegister; |
UINT8 PciSegment; |
UINT8 PciBus; |
UINT8 PciDevice; |
UINT8 PciFunction; |
} ACPI_TABLE_MCHI; |
/******************************************************************************* |
* |
* SPCR - Serial Port Console Redirection table |
* Version 1 |
* |
* Conforms to "Serial Port Console Redirection Table", |
* Version 1.00, January 11, 2002 |
* |
******************************************************************************/ |
typedef struct acpi_table_spcr |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT8 InterfaceType; /* 0=full 16550, 1=subset of 16550 */ |
UINT8 Reserved[3]; |
ACPI_GENERIC_ADDRESS SerialPort; |
UINT8 InterruptType; |
UINT8 PcInterrupt; |
UINT32 Interrupt; |
UINT8 BaudRate; |
UINT8 Parity; |
UINT8 StopBits; |
UINT8 FlowControl; |
UINT8 TerminalType; |
UINT8 Reserved1; |
UINT16 PciDeviceId; |
UINT16 PciVendorId; |
UINT8 PciBus; |
UINT8 PciDevice; |
UINT8 PciFunction; |
UINT32 PciFlags; |
UINT8 PciSegment; |
UINT32 Reserved2; |
} ACPI_TABLE_SPCR; |
/* Masks for PciFlags field above */ |
#define ACPI_SPCR_DO_NOT_DISABLE (1) |
/******************************************************************************* |
* |
* SPMI - Server Platform Management Interface table |
* Version 5 |
* |
* Conforms to "Intelligent Platform Management Interface Specification |
* Second Generation v2.0", Document Revision 1.0, February 12, 2004 with |
* June 12, 2009 markup. |
* |
******************************************************************************/ |
typedef struct acpi_table_spmi |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT8 InterfaceType; |
UINT8 Reserved; /* Must be 1 */ |
UINT16 SpecRevision; /* Version of IPMI */ |
UINT8 InterruptType; |
UINT8 GpeNumber; /* GPE assigned */ |
UINT8 Reserved1; |
UINT8 PciDeviceFlag; |
UINT32 Interrupt; |
ACPI_GENERIC_ADDRESS IpmiRegister; |
UINT8 PciSegment; |
UINT8 PciBus; |
UINT8 PciDevice; |
UINT8 PciFunction; |
UINT8 Reserved2; |
} ACPI_TABLE_SPMI; |
/* Values for InterfaceType above */ |
enum AcpiSpmiInterfaceTypes |
{ |
ACPI_SPMI_NOT_USED = 0, |
ACPI_SPMI_KEYBOARD = 1, |
ACPI_SPMI_SMI = 2, |
ACPI_SPMI_BLOCK_TRANSFER = 3, |
ACPI_SPMI_SMBUS = 4, |
ACPI_SPMI_RESERVED = 5 /* 5 and above are reserved */ |
}; |
/******************************************************************************* |
* |
* TCPA - Trusted Computing Platform Alliance table |
* Version 1 |
* |
* Conforms to "TCG PC Specific Implementation Specification", |
* Version 1.1, August 18, 2003 |
* |
******************************************************************************/ |
typedef struct acpi_table_tcpa |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT16 Reserved; |
UINT32 MaxLogLength; /* Maximum length for the event log area */ |
UINT64 LogAddress; /* Address of the event log area */ |
} ACPI_TABLE_TCPA; |
/******************************************************************************* |
* |
* UEFI - UEFI Boot optimization Table |
* Version 1 |
* |
* Conforms to "Unified Extensible Firmware Interface Specification", |
* Version 2.3, May 8, 2009 |
* |
******************************************************************************/ |
typedef struct acpi_table_uefi |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT8 Identifier[16]; /* UUID identifier */ |
UINT16 DataOffset; /* Offset of remaining data in table */ |
} ACPI_TABLE_UEFI; |
/******************************************************************************* |
* |
* WAET - Windows ACPI Emulated devices Table |
* Version 1 |
* |
* Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009 |
* |
******************************************************************************/ |
typedef struct acpi_table_waet |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 Flags; |
} ACPI_TABLE_WAET; |
/* Masks for Flags field above */ |
#define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */ |
#define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */ |
/******************************************************************************* |
* |
* WDAT - Watchdog Action Table |
* Version 1 |
* |
* Conforms to "Hardware Watchdog Timers Design Specification", |
* Copyright 2006 Microsoft Corporation. |
* |
******************************************************************************/ |
typedef struct acpi_table_wdat |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
UINT32 HeaderLength; /* Watchdog Header Length */ |
UINT16 PciSegment; /* PCI Segment number */ |
UINT8 PciBus; /* PCI Bus number */ |
UINT8 PciDevice; /* PCI Device number */ |
UINT8 PciFunction; /* PCI Function number */ |
UINT8 Reserved[3]; |
UINT32 TimerPeriod; /* Period of one timer count (msec) */ |
UINT32 MaxCount; /* Maximum counter value supported */ |
UINT32 MinCount; /* Minimum counter value */ |
UINT8 Flags; |
UINT8 Reserved2[3]; |
UINT32 Entries; /* Number of watchdog entries that follow */ |
} ACPI_TABLE_WDAT; |
/* Masks for Flags field above */ |
#define ACPI_WDAT_ENABLED (1) |
#define ACPI_WDAT_STOPPED 0x80 |
/* WDAT Instruction Entries (actions) */ |
typedef struct acpi_wdat_entry |
{ |
UINT8 Action; |
UINT8 Instruction; |
UINT16 Reserved; |
ACPI_GENERIC_ADDRESS RegisterRegion; |
UINT32 Value; /* Value used with Read/Write register */ |
UINT32 Mask; /* Bitmask required for this register instruction */ |
} ACPI_WDAT_ENTRY; |
/* Values for Action field above */ |
enum AcpiWdatActions |
{ |
ACPI_WDAT_RESET = 1, |
ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4, |
ACPI_WDAT_GET_COUNTDOWN = 5, |
ACPI_WDAT_SET_COUNTDOWN = 6, |
ACPI_WDAT_GET_RUNNING_STATE = 8, |
ACPI_WDAT_SET_RUNNING_STATE = 9, |
ACPI_WDAT_GET_STOPPED_STATE = 10, |
ACPI_WDAT_SET_STOPPED_STATE = 11, |
ACPI_WDAT_GET_REBOOT = 16, |
ACPI_WDAT_SET_REBOOT = 17, |
ACPI_WDAT_GET_SHUTDOWN = 18, |
ACPI_WDAT_SET_SHUTDOWN = 19, |
ACPI_WDAT_GET_STATUS = 32, |
ACPI_WDAT_SET_STATUS = 33, |
ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */ |
}; |
/* Values for Instruction field above */ |
enum AcpiWdatInstructions |
{ |
ACPI_WDAT_READ_VALUE = 0, |
ACPI_WDAT_READ_COUNTDOWN = 1, |
ACPI_WDAT_WRITE_VALUE = 2, |
ACPI_WDAT_WRITE_COUNTDOWN = 3, |
ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */ |
ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */ |
}; |
/******************************************************************************* |
* |
* WDRT - Watchdog Resource Table |
* Version 1 |
* |
* Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003", |
* Version 1.01, August 28, 2006 |
* |
******************************************************************************/ |
typedef struct acpi_table_wdrt |
{ |
ACPI_TABLE_HEADER Header; /* Common ACPI table header */ |
ACPI_GENERIC_ADDRESS ControlRegister; |
ACPI_GENERIC_ADDRESS CountRegister; |
UINT16 PciDeviceId; |
UINT16 PciVendorId; |
UINT8 PciBus; /* PCI Bus number */ |
UINT8 PciDevice; /* PCI Device number */ |
UINT8 PciFunction; /* PCI Function number */ |
UINT8 PciSegment; /* PCI Segment number */ |
UINT16 MaxCount; /* Maximum counter value supported */ |
UINT8 Units; |
} ACPI_TABLE_WDRT; |
/* Reset to default packing */ |
#pragma pack() |
#endif /* __ACTBL2_H__ */ |
/drivers/devman/acpica/include/actypes.h |
---|
0,0 → 1,1235 |
/****************************************************************************** |
* |
* Name: actypes.h - Common data types for the entire ACPI subsystem |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACTYPES_H__ |
#define __ACTYPES_H__ |
/* acpisrc:StructDefs -- for acpisrc conversion */ |
/* |
* ACPI_MACHINE_WIDTH must be specified in an OS- or compiler-dependent header |
* and must be either 32 or 64. 16-bit ACPICA is no longer supported, as of |
* 12/2006. |
*/ |
#ifndef ACPI_MACHINE_WIDTH |
#error ACPI_MACHINE_WIDTH not defined |
#endif |
/*! [Begin] no source code translation */ |
/* |
* Data type ranges |
* Note: These macros are designed to be compiler independent as well as |
* working around problems that some 32-bit compilers have with 64-bit |
* constants. |
*/ |
#define ACPI_UINT8_MAX (UINT8) (~((UINT8) 0)) /* 0xFF */ |
#define ACPI_UINT16_MAX (UINT16)(~((UINT16) 0)) /* 0xFFFF */ |
#define ACPI_UINT32_MAX (UINT32)(~((UINT32) 0)) /* 0xFFFFFFFF */ |
#define ACPI_UINT64_MAX (UINT64)(~((UINT64) 0)) /* 0xFFFFFFFFFFFFFFFF */ |
#define ACPI_ASCII_MAX 0x7F |
/* |
* Architecture-specific ACPICA Subsystem Data Types |
* |
* The goal of these types is to provide source code portability across |
* 16-bit, 32-bit, and 64-bit targets. |
* |
* 1) The following types are of fixed size for all targets (16/32/64): |
* |
* BOOLEAN Logical boolean |
* |
* UINT8 8-bit (1 byte) unsigned value |
* UINT16 16-bit (2 byte) unsigned value |
* UINT32 32-bit (4 byte) unsigned value |
* UINT64 64-bit (8 byte) unsigned value |
* |
* INT16 16-bit (2 byte) signed value |
* INT32 32-bit (4 byte) signed value |
* INT64 64-bit (8 byte) signed value |
* |
* COMPILER_DEPENDENT_UINT64/INT64 - These types are defined in the |
* compiler-dependent header(s) and were introduced because there is no common |
* 64-bit integer type across the various compilation models, as shown in |
* the table below. |
* |
* Datatype LP64 ILP64 LLP64 ILP32 LP32 16bit |
* char 8 8 8 8 8 8 |
* short 16 16 16 16 16 16 |
* _int32 32 |
* int 32 64 32 32 16 16 |
* long 64 64 32 32 32 32 |
* long long 64 64 |
* pointer 64 64 64 32 32 32 |
* |
* Note: ILP64 and LP32 are currently not supported. |
* |
* |
* 2) These types represent the native word size of the target mode of the |
* processor, and may be 16-bit, 32-bit, or 64-bit as required. They are |
* usually used for memory allocation, efficient loop counters, and array |
* indexes. The types are similar to the size_t type in the C library and are |
* required because there is no C type that consistently represents the native |
* data width. ACPI_SIZE is needed because there is no guarantee that a |
* kernel-level C library is present. |
* |
* ACPI_SIZE 16/32/64-bit unsigned value |
* ACPI_NATIVE_INT 16/32/64-bit signed value |
* |
*/ |
/******************************************************************************* |
* |
* Common types for all compilers, all targets |
* |
******************************************************************************/ |
typedef unsigned char BOOLEAN; |
typedef unsigned char UINT8; |
typedef unsigned short UINT16; |
typedef COMPILER_DEPENDENT_UINT64 UINT64; |
typedef COMPILER_DEPENDENT_INT64 INT64; |
/*! [End] no source code translation !*/ |
/******************************************************************************* |
* |
* Types specific to 64-bit targets |
* |
******************************************************************************/ |
#if ACPI_MACHINE_WIDTH == 64 |
/*! [Begin] no source code translation (keep the typedefs as-is) */ |
typedef unsigned int UINT32; |
typedef int INT32; |
/*! [End] no source code translation !*/ |
typedef INT64 ACPI_NATIVE_INT; |
typedef UINT64 ACPI_SIZE; |
typedef UINT64 ACPI_IO_ADDRESS; |
typedef UINT64 ACPI_PHYSICAL_ADDRESS; |
#define ACPI_MAX_PTR ACPI_UINT64_MAX |
#define ACPI_SIZE_MAX ACPI_UINT64_MAX |
#define ACPI_USE_NATIVE_DIVIDE /* Has native 64-bit integer support */ |
/* |
* In the case of the Itanium Processor Family (IPF), the hardware does not |
* support misaligned memory transfers. Set the MISALIGNMENT_NOT_SUPPORTED flag |
* to indicate that special precautions must be taken to avoid alignment faults. |
* (IA64 or ia64 is currently used by existing compilers to indicate IPF.) |
* |
* Note: EM64T and other X86-64 processors support misaligned transfers, |
* so there is no need to define this flag. |
*/ |
#if defined (__IA64__) || defined (__ia64__) |
#define ACPI_MISALIGNMENT_NOT_SUPPORTED |
#endif |
/******************************************************************************* |
* |
* Types specific to 32-bit targets |
* |
******************************************************************************/ |
#elif ACPI_MACHINE_WIDTH == 32 |
/*! [Begin] no source code translation (keep the typedefs as-is) */ |
typedef unsigned int UINT32; |
typedef int INT32; |
/*! [End] no source code translation !*/ |
typedef INT32 ACPI_NATIVE_INT; |
typedef UINT32 ACPI_SIZE; |
typedef UINT32 ACPI_IO_ADDRESS; |
typedef UINT32 ACPI_PHYSICAL_ADDRESS; |
#define ACPI_MAX_PTR ACPI_UINT32_MAX |
#define ACPI_SIZE_MAX ACPI_UINT32_MAX |
#else |
/* ACPI_MACHINE_WIDTH must be either 64 or 32 */ |
#error unknown ACPI_MACHINE_WIDTH |
#endif |
/******************************************************************************* |
* |
* OS-dependent types |
* |
* If the defaults below are not appropriate for the host system, they can |
* be defined in the OS-specific header, and this will take precedence. |
* |
******************************************************************************/ |
/* Value returned by AcpiOsGetThreadId */ |
#ifndef ACPI_THREAD_ID |
#define ACPI_THREAD_ID ACPI_SIZE |
#endif |
/* Flags for AcpiOsAcquireLock/AcpiOsReleaseLock */ |
#ifndef ACPI_CPU_FLAGS |
#define ACPI_CPU_FLAGS ACPI_SIZE |
#endif |
/* Object returned from AcpiOsCreateCache */ |
#ifndef ACPI_CACHE_T |
#ifdef ACPI_USE_LOCAL_CACHE |
#define ACPI_CACHE_T ACPI_MEMORY_LIST |
#else |
#define ACPI_CACHE_T void * |
#endif |
#endif |
/* |
* Synchronization objects - Mutexes, Semaphores, and SpinLocks |
*/ |
#if (ACPI_MUTEX_TYPE == ACPI_BINARY_SEMAPHORE) |
/* |
* These macros are used if the host OS does not support a mutex object. |
* Map the OSL Mutex interfaces to binary semaphores. |
*/ |
#define ACPI_MUTEX ACPI_SEMAPHORE |
#define AcpiOsCreateMutex(OutHandle) AcpiOsCreateSemaphore (1, 1, OutHandle) |
#define AcpiOsDeleteMutex(Handle) (void) AcpiOsDeleteSemaphore (Handle) |
#define AcpiOsAcquireMutex(Handle,Time) AcpiOsWaitSemaphore (Handle, 1, Time) |
#define AcpiOsReleaseMutex(Handle) (void) AcpiOsSignalSemaphore (Handle, 1) |
#endif |
/* Configurable types for synchronization objects */ |
#ifndef ACPI_SPINLOCK |
#define ACPI_SPINLOCK void * |
#endif |
#ifndef ACPI_SEMAPHORE |
#define ACPI_SEMAPHORE void * |
#endif |
#ifndef ACPI_MUTEX |
#define ACPI_MUTEX void * |
#endif |
/******************************************************************************* |
* |
* Compiler-dependent types |
* |
* If the defaults below are not appropriate for the host compiler, they can |
* be defined in the compiler-specific header, and this will take precedence. |
* |
******************************************************************************/ |
/* Use C99 uintptr_t for pointer casting if available, "void *" otherwise */ |
#ifndef ACPI_UINTPTR_T |
#define ACPI_UINTPTR_T void * |
#endif |
/* |
* ACPI_PRINTF_LIKE is used to tag functions as "printf-like" because |
* some compilers can catch printf format string problems |
*/ |
#ifndef ACPI_PRINTF_LIKE |
#define ACPI_PRINTF_LIKE(c) |
#endif |
/* |
* Some compilers complain about unused variables. Sometimes we don't want to |
* use all the variables (for example, _AcpiModuleName). This allows us |
* to to tell the compiler in a per-variable manner that a variable |
* is unused |
*/ |
#ifndef ACPI_UNUSED_VAR |
#define ACPI_UNUSED_VAR |
#endif |
/* |
* All ACPICA functions that are available to the rest of the kernel are |
* tagged with this macro which can be defined as appropriate for the host. |
*/ |
#ifndef ACPI_EXPORT_SYMBOL |
#define ACPI_EXPORT_SYMBOL(Symbol) |
#endif |
/****************************************************************************** |
* |
* ACPI Specification constants (Do not change unless the specification changes) |
* |
*****************************************************************************/ |
/* Number of distinct FADT-based GPE register blocks (GPE0 and GPE1) */ |
#define ACPI_MAX_GPE_BLOCKS 2 |
/* Default ACPI register widths */ |
#define ACPI_GPE_REGISTER_WIDTH 8 |
#define ACPI_PM1_REGISTER_WIDTH 16 |
#define ACPI_PM2_REGISTER_WIDTH 8 |
#define ACPI_PM_TIMER_WIDTH 32 |
/* Names within the namespace are 4 bytes long */ |
#define ACPI_NAME_SIZE 4 |
#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */ |
#define ACPI_PATH_SEPARATOR '.' |
/* Sizes for ACPI table headers */ |
#define ACPI_OEM_ID_SIZE 6 |
#define ACPI_OEM_TABLE_ID_SIZE 8 |
/* ACPI/PNP hardware IDs */ |
#define PCI_ROOT_HID_STRING "PNP0A03" |
#define PCI_EXPRESS_ROOT_HID_STRING "PNP0A08" |
/* PM Timer ticks per second (HZ) */ |
#define PM_TIMER_FREQUENCY 3579545 |
/******************************************************************************* |
* |
* Independent types |
* |
******************************************************************************/ |
/* Logical defines and NULL */ |
#ifdef FALSE |
#undef FALSE |
#endif |
#define FALSE (1 == 0) |
#ifdef TRUE |
#undef TRUE |
#endif |
#define TRUE (1 == 1) |
#ifndef NULL |
#define NULL (void *) 0 |
#endif |
/* |
* Miscellaneous types |
*/ |
typedef UINT32 ACPI_STATUS; /* All ACPI Exceptions */ |
typedef UINT32 ACPI_NAME; /* 4-byte ACPI name */ |
typedef char * ACPI_STRING; /* Null terminated ASCII string */ |
typedef void * ACPI_HANDLE; /* Actually a ptr to a NS Node */ |
/* Owner IDs are used to track namespace nodes for selective deletion */ |
typedef UINT8 ACPI_OWNER_ID; |
#define ACPI_OWNER_ID_MAX 0xFF |
typedef struct uint64_struct |
{ |
UINT32 Lo; |
UINT32 Hi; |
} UINT64_STRUCT; |
typedef union uint64_overlay |
{ |
UINT64 Full; |
UINT64_STRUCT Part; |
} UINT64_OVERLAY; |
#define ACPI_INTEGER_BIT_SIZE 64 |
#define ACPI_MAX_DECIMAL_DIGITS 20 /* 2^64 = 18,446,744,073,709,551,616 */ |
#define ACPI_MAX64_DECIMAL_DIGITS 20 |
#define ACPI_MAX32_DECIMAL_DIGITS 10 |
#define ACPI_MAX16_DECIMAL_DIGITS 5 |
#define ACPI_MAX8_DECIMAL_DIGITS 3 |
/* |
* Constants with special meanings |
*/ |
#define ACPI_ROOT_OBJECT ACPI_ADD_PTR (ACPI_HANDLE, NULL, ACPI_MAX_PTR) |
#define ACPI_WAIT_FOREVER 0xFFFF /* UINT16, as per ACPI spec */ |
#define ACPI_DO_NOT_WAIT 0 |
/* |
* Obsolete: Acpi integer width. In ACPI version 1 (1996), integers are 32 bits. |
* In ACPI version 2 (2000) and later, integers are 64 bits. Note that this |
* pertains to the ACPI integer type only, not to other integers used in the |
* implementation of the ACPICA subsystem. |
* |
* 01/2010: This type is obsolete and has been removed from the entire ACPICA |
* code base. It remains here for compatibility with device drivers that use |
* the type. However, it will be removed in the future. |
*/ |
typedef UINT64 ACPI_INTEGER; |
#define ACPI_INTEGER_MAX ACPI_UINT64_MAX |
/******************************************************************************* |
* |
* Commonly used macros |
* |
******************************************************************************/ |
/* Data manipulation */ |
#define ACPI_LOBYTE(Integer) ((UINT8) (UINT16)(Integer)) |
#define ACPI_HIBYTE(Integer) ((UINT8) (((UINT16)(Integer)) >> 8)) |
#define ACPI_LOWORD(Integer) ((UINT16) (UINT32)(Integer)) |
#define ACPI_HIWORD(Integer) ((UINT16)(((UINT32)(Integer)) >> 16)) |
#define ACPI_LODWORD(Integer64) ((UINT32) (UINT64)(Integer64)) |
#define ACPI_HIDWORD(Integer64) ((UINT32)(((UINT64)(Integer64)) >> 32)) |
#define ACPI_SET_BIT(target,bit) ((target) |= (bit)) |
#define ACPI_CLEAR_BIT(target,bit) ((target) &= ~(bit)) |
#define ACPI_MIN(a,b) (((a)<(b))?(a):(b)) |
#define ACPI_MAX(a,b) (((a)>(b))?(a):(b)) |
/* Size calculation */ |
#define ACPI_ARRAY_LENGTH(x) (sizeof(x) / sizeof((x)[0])) |
/* Pointer manipulation */ |
#define ACPI_CAST_PTR(t, p) ((t *) (ACPI_UINTPTR_T) (p)) |
#define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (ACPI_UINTPTR_T) (p)) |
#define ACPI_ADD_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (UINT8, (a)) + (ACPI_SIZE)(b))) |
#define ACPI_PTR_DIFF(a, b) (ACPI_SIZE) (ACPI_CAST_PTR (UINT8, (a)) - ACPI_CAST_PTR (UINT8, (b))) |
/* Pointer/Integer type conversions */ |
#define ACPI_TO_POINTER(i) ACPI_ADD_PTR (void, (void *) NULL,(ACPI_SIZE) i) |
#define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) NULL) |
#define ACPI_OFFSET(d, f) (ACPI_SIZE) ACPI_PTR_DIFF (&(((d *)0)->f), (void *) NULL) |
#define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) |
#define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) |
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED |
#define ACPI_COMPARE_NAME(a,b) (*ACPI_CAST_PTR (UINT32, (a)) == *ACPI_CAST_PTR (UINT32, (b))) |
#else |
#define ACPI_COMPARE_NAME(a,b) (!ACPI_STRNCMP (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAME_SIZE)) |
#endif |
/******************************************************************************* |
* |
* Miscellaneous constants |
* |
******************************************************************************/ |
/* |
* Initialization sequence |
*/ |
#define ACPI_FULL_INITIALIZATION 0x00 |
#define ACPI_NO_ADDRESS_SPACE_INIT 0x01 |
#define ACPI_NO_HARDWARE_INIT 0x02 |
#define ACPI_NO_EVENT_INIT 0x04 |
#define ACPI_NO_HANDLER_INIT 0x08 |
#define ACPI_NO_ACPI_ENABLE 0x10 |
#define ACPI_NO_DEVICE_INIT 0x20 |
#define ACPI_NO_OBJECT_INIT 0x40 |
/* |
* Initialization state |
*/ |
#define ACPI_SUBSYSTEM_INITIALIZE 0x01 |
#define ACPI_INITIALIZED_OK 0x02 |
/* |
* Power state values |
*/ |
#define ACPI_STATE_UNKNOWN (UINT8) 0xFF |
#define ACPI_STATE_S0 (UINT8) 0 |
#define ACPI_STATE_S1 (UINT8) 1 |
#define ACPI_STATE_S2 (UINT8) 2 |
#define ACPI_STATE_S3 (UINT8) 3 |
#define ACPI_STATE_S4 (UINT8) 4 |
#define ACPI_STATE_S5 (UINT8) 5 |
#define ACPI_S_STATES_MAX ACPI_STATE_S5 |
#define ACPI_S_STATE_COUNT 6 |
#define ACPI_STATE_D0 (UINT8) 0 |
#define ACPI_STATE_D1 (UINT8) 1 |
#define ACPI_STATE_D2 (UINT8) 2 |
#define ACPI_STATE_D3 (UINT8) 3 |
#define ACPI_D_STATES_MAX ACPI_STATE_D3 |
#define ACPI_D_STATE_COUNT 4 |
#define ACPI_STATE_C0 (UINT8) 0 |
#define ACPI_STATE_C1 (UINT8) 1 |
#define ACPI_STATE_C2 (UINT8) 2 |
#define ACPI_STATE_C3 (UINT8) 3 |
#define ACPI_C_STATES_MAX ACPI_STATE_C3 |
#define ACPI_C_STATE_COUNT 4 |
/* |
* Sleep type invalid value |
*/ |
#define ACPI_SLEEP_TYPE_MAX 0x7 |
#define ACPI_SLEEP_TYPE_INVALID 0xFF |
/* |
* Standard notify values |
*/ |
#define ACPI_NOTIFY_BUS_CHECK (UINT8) 0x00 |
#define ACPI_NOTIFY_DEVICE_CHECK (UINT8) 0x01 |
#define ACPI_NOTIFY_DEVICE_WAKE (UINT8) 0x02 |
#define ACPI_NOTIFY_EJECT_REQUEST (UINT8) 0x03 |
#define ACPI_NOTIFY_DEVICE_CHECK_LIGHT (UINT8) 0x04 |
#define ACPI_NOTIFY_FREQUENCY_MISMATCH (UINT8) 0x05 |
#define ACPI_NOTIFY_BUS_MODE_MISMATCH (UINT8) 0x06 |
#define ACPI_NOTIFY_POWER_FAULT (UINT8) 0x07 |
#define ACPI_NOTIFY_CAPABILITIES_CHECK (UINT8) 0x08 |
#define ACPI_NOTIFY_DEVICE_PLD_CHECK (UINT8) 0x09 |
#define ACPI_NOTIFY_RESERVED (UINT8) 0x0A |
#define ACPI_NOTIFY_LOCALITY_UPDATE (UINT8) 0x0B |
#define ACPI_NOTIFY_MAX 0x0B |
/* |
* Types associated with ACPI names and objects. The first group of |
* values (up to ACPI_TYPE_EXTERNAL_MAX) correspond to the definition |
* of the ACPI ObjectType() operator (See the ACPI Spec). Therefore, |
* only add to the first group if the spec changes. |
* |
* NOTE: Types must be kept in sync with the global AcpiNsProperties |
* and AcpiNsTypeNames arrays. |
*/ |
typedef UINT32 ACPI_OBJECT_TYPE; |
#define ACPI_TYPE_ANY 0x00 |
#define ACPI_TYPE_INTEGER 0x01 /* Byte/Word/Dword/Zero/One/Ones */ |
#define ACPI_TYPE_STRING 0x02 |
#define ACPI_TYPE_BUFFER 0x03 |
#define ACPI_TYPE_PACKAGE 0x04 /* ByteConst, multiple DataTerm/Constant/SuperName */ |
#define ACPI_TYPE_FIELD_UNIT 0x05 |
#define ACPI_TYPE_DEVICE 0x06 /* Name, multiple Node */ |
#define ACPI_TYPE_EVENT 0x07 |
#define ACPI_TYPE_METHOD 0x08 /* Name, ByteConst, multiple Code */ |
#define ACPI_TYPE_MUTEX 0x09 |
#define ACPI_TYPE_REGION 0x0A |
#define ACPI_TYPE_POWER 0x0B /* Name,ByteConst,WordConst,multi Node */ |
#define ACPI_TYPE_PROCESSOR 0x0C /* Name,ByteConst,DWordConst,ByteConst,multi NmO */ |
#define ACPI_TYPE_THERMAL 0x0D /* Name, multiple Node */ |
#define ACPI_TYPE_BUFFER_FIELD 0x0E |
#define ACPI_TYPE_DDB_HANDLE 0x0F |
#define ACPI_TYPE_DEBUG_OBJECT 0x10 |
#define ACPI_TYPE_EXTERNAL_MAX 0x10 |
/* |
* These are object types that do not map directly to the ACPI |
* ObjectType() operator. They are used for various internal purposes only. |
* If new predefined ACPI_TYPEs are added (via the ACPI specification), these |
* internal types must move upwards. (There is code that depends on these |
* values being contiguous with the external types above.) |
*/ |
#define ACPI_TYPE_LOCAL_REGION_FIELD 0x11 |
#define ACPI_TYPE_LOCAL_BANK_FIELD 0x12 |
#define ACPI_TYPE_LOCAL_INDEX_FIELD 0x13 |
#define ACPI_TYPE_LOCAL_REFERENCE 0x14 /* Arg#, Local#, Name, Debug, RefOf, Index */ |
#define ACPI_TYPE_LOCAL_ALIAS 0x15 |
#define ACPI_TYPE_LOCAL_METHOD_ALIAS 0x16 |
#define ACPI_TYPE_LOCAL_NOTIFY 0x17 |
#define ACPI_TYPE_LOCAL_ADDRESS_HANDLER 0x18 |
#define ACPI_TYPE_LOCAL_RESOURCE 0x19 |
#define ACPI_TYPE_LOCAL_RESOURCE_FIELD 0x1A |
#define ACPI_TYPE_LOCAL_SCOPE 0x1B /* 1 Name, multiple ObjectList Nodes */ |
#define ACPI_TYPE_NS_NODE_MAX 0x1B /* Last typecode used within a NS Node */ |
/* |
* These are special object types that never appear in |
* a Namespace node, only in an ACPI_OPERAND_OBJECT |
*/ |
#define ACPI_TYPE_LOCAL_EXTRA 0x1C |
#define ACPI_TYPE_LOCAL_DATA 0x1D |
#define ACPI_TYPE_LOCAL_MAX 0x1D |
/* All types above here are invalid */ |
#define ACPI_TYPE_INVALID 0x1E |
#define ACPI_TYPE_NOT_FOUND 0xFF |
#define ACPI_NUM_NS_TYPES (ACPI_TYPE_INVALID + 1) |
/* |
* All I/O |
*/ |
#define ACPI_READ 0 |
#define ACPI_WRITE 1 |
#define ACPI_IO_MASK 1 |
/* |
* Event Types: Fixed & General Purpose |
*/ |
typedef UINT32 ACPI_EVENT_TYPE; |
/* |
* Fixed events |
*/ |
#define ACPI_EVENT_PMTIMER 0 |
#define ACPI_EVENT_GLOBAL 1 |
#define ACPI_EVENT_POWER_BUTTON 2 |
#define ACPI_EVENT_SLEEP_BUTTON 3 |
#define ACPI_EVENT_RTC 4 |
#define ACPI_EVENT_MAX 4 |
#define ACPI_NUM_FIXED_EVENTS ACPI_EVENT_MAX + 1 |
/* |
* Event Status - Per event |
* ------------- |
* The encoding of ACPI_EVENT_STATUS is illustrated below. |
* Note that a set bit (1) indicates the property is TRUE |
* (e.g. if bit 0 is set then the event is enabled). |
* +-------------+-+-+-+ |
* | Bits 31:3 |2|1|0| |
* +-------------+-+-+-+ |
* | | | | |
* | | | +- Enabled? |
* | | +--- Enabled for wake? |
* | +----- Set? |
* +----------- <Reserved> |
*/ |
typedef UINT32 ACPI_EVENT_STATUS; |
#define ACPI_EVENT_FLAG_DISABLED (ACPI_EVENT_STATUS) 0x00 |
#define ACPI_EVENT_FLAG_ENABLED (ACPI_EVENT_STATUS) 0x01 |
#define ACPI_EVENT_FLAG_WAKE_ENABLED (ACPI_EVENT_STATUS) 0x02 |
#define ACPI_EVENT_FLAG_SET (ACPI_EVENT_STATUS) 0x04 |
/* |
* General Purpose Events (GPE) |
*/ |
#define ACPI_GPE_INVALID 0xFF |
#define ACPI_GPE_MAX 0xFF |
#define ACPI_NUM_GPE 256 |
/* Actions for AcpiSetGpe */ |
#define ACPI_GPE_ENABLE 0 |
#define ACPI_GPE_DISABLE 1 |
/* GpeTypes for AcpiEnableGpe and AcpiDisableGpe */ |
#define ACPI_GPE_TYPE_WAKE (UINT8) 0x01 |
#define ACPI_GPE_TYPE_RUNTIME (UINT8) 0x02 |
#define ACPI_GPE_TYPE_WAKE_RUN (UINT8) 0x03 |
/* |
* GPE info flags - Per GPE |
* +-------+---+-+-+ |
* | 7:4 |3:2|1|0| |
* +-------+---+-+-+ |
* | | | | |
* | | | +--- Interrupt type: edge or level triggered |
* | | +----- GPE can wake the system |
* | +-------- Type of dispatch:to method, handler, or none |
* +-------------- <Reserved> |
*/ |
#define ACPI_GPE_XRUPT_TYPE_MASK (UINT8) 0x01 |
#define ACPI_GPE_LEVEL_TRIGGERED (UINT8) 0x01 |
#define ACPI_GPE_EDGE_TRIGGERED (UINT8) 0x00 |
#define ACPI_GPE_CAN_WAKE (UINT8) 0x02 |
#define ACPI_GPE_DISPATCH_MASK (UINT8) 0x0C |
#define ACPI_GPE_DISPATCH_HANDLER (UINT8) 0x04 |
#define ACPI_GPE_DISPATCH_METHOD (UINT8) 0x08 |
#define ACPI_GPE_DISPATCH_NOT_USED (UINT8) 0x00 |
/* |
* Flags for GPE and Lock interfaces |
*/ |
#define ACPI_NOT_ISR 0x1 |
#define ACPI_ISR 0x0 |
/* Notify types */ |
#define ACPI_SYSTEM_NOTIFY 0x1 |
#define ACPI_DEVICE_NOTIFY 0x2 |
#define ACPI_ALL_NOTIFY (ACPI_SYSTEM_NOTIFY | ACPI_DEVICE_NOTIFY) |
#define ACPI_MAX_NOTIFY_HANDLER_TYPE 0x3 |
#define ACPI_MAX_SYS_NOTIFY 0x7f |
/* Address Space (Operation Region) Types */ |
typedef UINT8 ACPI_ADR_SPACE_TYPE; |
#define ACPI_ADR_SPACE_SYSTEM_MEMORY (ACPI_ADR_SPACE_TYPE) 0 |
#define ACPI_ADR_SPACE_SYSTEM_IO (ACPI_ADR_SPACE_TYPE) 1 |
#define ACPI_ADR_SPACE_PCI_CONFIG (ACPI_ADR_SPACE_TYPE) 2 |
#define ACPI_ADR_SPACE_EC (ACPI_ADR_SPACE_TYPE) 3 |
#define ACPI_ADR_SPACE_SMBUS (ACPI_ADR_SPACE_TYPE) 4 |
#define ACPI_ADR_SPACE_CMOS (ACPI_ADR_SPACE_TYPE) 5 |
#define ACPI_ADR_SPACE_PCI_BAR_TARGET (ACPI_ADR_SPACE_TYPE) 6 |
#define ACPI_ADR_SPACE_IPMI (ACPI_ADR_SPACE_TYPE) 7 |
#define ACPI_ADR_SPACE_DATA_TABLE (ACPI_ADR_SPACE_TYPE) 8 |
#define ACPI_ADR_SPACE_FIXED_HARDWARE (ACPI_ADR_SPACE_TYPE) 127 |
/* |
* BitRegister IDs |
* |
* These values are intended to be used by the hardware interfaces |
* and are mapped to individual bitfields defined within the ACPI |
* registers. See the AcpiGbl_BitRegisterInfo global table in utglobal.c |
* for this mapping. |
*/ |
/* PM1 Status register */ |
#define ACPI_BITREG_TIMER_STATUS 0x00 |
#define ACPI_BITREG_BUS_MASTER_STATUS 0x01 |
#define ACPI_BITREG_GLOBAL_LOCK_STATUS 0x02 |
#define ACPI_BITREG_POWER_BUTTON_STATUS 0x03 |
#define ACPI_BITREG_SLEEP_BUTTON_STATUS 0x04 |
#define ACPI_BITREG_RT_CLOCK_STATUS 0x05 |
#define ACPI_BITREG_WAKE_STATUS 0x06 |
#define ACPI_BITREG_PCIEXP_WAKE_STATUS 0x07 |
/* PM1 Enable register */ |
#define ACPI_BITREG_TIMER_ENABLE 0x08 |
#define ACPI_BITREG_GLOBAL_LOCK_ENABLE 0x09 |
#define ACPI_BITREG_POWER_BUTTON_ENABLE 0x0A |
#define ACPI_BITREG_SLEEP_BUTTON_ENABLE 0x0B |
#define ACPI_BITREG_RT_CLOCK_ENABLE 0x0C |
#define ACPI_BITREG_PCIEXP_WAKE_DISABLE 0x0D |
/* PM1 Control register */ |
#define ACPI_BITREG_SCI_ENABLE 0x0E |
#define ACPI_BITREG_BUS_MASTER_RLD 0x0F |
#define ACPI_BITREG_GLOBAL_LOCK_RELEASE 0x10 |
#define ACPI_BITREG_SLEEP_TYPE 0x11 |
#define ACPI_BITREG_SLEEP_ENABLE 0x12 |
/* PM2 Control register */ |
#define ACPI_BITREG_ARB_DISABLE 0x13 |
#define ACPI_BITREG_MAX 0x13 |
#define ACPI_NUM_BITREG ACPI_BITREG_MAX + 1 |
/* Status register values. A 1 clears a status bit. 0 = no effect */ |
#define ACPI_CLEAR_STATUS 1 |
/* Enable and Control register values */ |
#define ACPI_ENABLE_EVENT 1 |
#define ACPI_DISABLE_EVENT 0 |
/* |
* External ACPI object definition |
*/ |
/* |
* Note: Type == ACPI_TYPE_ANY (0) is used to indicate a NULL package element |
* or an unresolved named reference. |
*/ |
typedef union acpi_object |
{ |
ACPI_OBJECT_TYPE Type; /* See definition of AcpiNsType for values */ |
struct |
{ |
ACPI_OBJECT_TYPE Type; /* ACPI_TYPE_INTEGER */ |
UINT64 Value; /* The actual number */ |
} Integer; |
struct |
{ |
ACPI_OBJECT_TYPE Type; /* ACPI_TYPE_STRING */ |
UINT32 Length; /* # of bytes in string, excluding trailing null */ |
char *Pointer; /* points to the string value */ |
} String; |
struct |
{ |
ACPI_OBJECT_TYPE Type; /* ACPI_TYPE_BUFFER */ |
UINT32 Length; /* # of bytes in buffer */ |
UINT8 *Pointer; /* points to the buffer */ |
} Buffer; |
struct |
{ |
ACPI_OBJECT_TYPE Type; /* ACPI_TYPE_PACKAGE */ |
UINT32 Count; /* # of elements in package */ |
union acpi_object *Elements; /* Pointer to an array of ACPI_OBJECTs */ |
} Package; |
struct |
{ |
ACPI_OBJECT_TYPE Type; /* ACPI_TYPE_LOCAL_REFERENCE */ |
ACPI_OBJECT_TYPE ActualType; /* Type associated with the Handle */ |
ACPI_HANDLE Handle; /* object reference */ |
} Reference; |
struct |
{ |
ACPI_OBJECT_TYPE Type; /* ACPI_TYPE_PROCESSOR */ |
UINT32 ProcId; |
ACPI_IO_ADDRESS PblkAddress; |
UINT32 PblkLength; |
} Processor; |
struct |
{ |
ACPI_OBJECT_TYPE Type; /* ACPI_TYPE_POWER */ |
UINT32 SystemLevel; |
UINT32 ResourceOrder; |
} PowerResource; |
} ACPI_OBJECT; |
/* |
* List of objects, used as a parameter list for control method evaluation |
*/ |
typedef struct acpi_object_list |
{ |
UINT32 Count; |
ACPI_OBJECT *Pointer; |
} ACPI_OBJECT_LIST; |
/* |
* Miscellaneous common Data Structures used by the interfaces |
*/ |
#define ACPI_NO_BUFFER 0 |
#define ACPI_ALLOCATE_BUFFER (ACPI_SIZE) (-1) |
#define ACPI_ALLOCATE_LOCAL_BUFFER (ACPI_SIZE) (-2) |
typedef struct acpi_buffer |
{ |
ACPI_SIZE Length; /* Length in bytes of the buffer */ |
void *Pointer; /* pointer to buffer */ |
} ACPI_BUFFER; |
/* |
* NameType for AcpiGetName |
*/ |
#define ACPI_FULL_PATHNAME 0 |
#define ACPI_SINGLE_NAME 1 |
#define ACPI_NAME_TYPE_MAX 1 |
/* |
* Predefined Namespace items |
*/ |
typedef struct acpi_predefined_names |
{ |
char *Name; |
UINT8 Type; |
char *Val; |
} ACPI_PREDEFINED_NAMES; |
/* |
* Structure and flags for AcpiGetSystemInfo |
*/ |
#define ACPI_SYS_MODE_UNKNOWN 0x0000 |
#define ACPI_SYS_MODE_ACPI 0x0001 |
#define ACPI_SYS_MODE_LEGACY 0x0002 |
#define ACPI_SYS_MODES_MASK 0x0003 |
/* |
* System info returned by AcpiGetSystemInfo() |
*/ |
typedef struct acpi_system_info |
{ |
UINT32 AcpiCaVersion; |
UINT32 Flags; |
UINT32 TimerResolution; |
UINT32 Reserved1; |
UINT32 Reserved2; |
UINT32 DebugLevel; |
UINT32 DebugLayer; |
} ACPI_SYSTEM_INFO; |
/* |
* System statistics returned by AcpiGetStatistics() |
*/ |
typedef struct acpi_statistics |
{ |
UINT32 SciCount; |
UINT32 GpeCount; |
UINT32 FixedEventCount[ACPI_NUM_FIXED_EVENTS]; |
UINT32 MethodCount; |
} ACPI_STATISTICS; |
/* Table Event Types */ |
#define ACPI_TABLE_EVENT_LOAD 0x0 |
#define ACPI_TABLE_EVENT_UNLOAD 0x1 |
#define ACPI_NUM_TABLE_EVENTS 2 |
/* |
* Types specific to the OS service interfaces |
*/ |
typedef UINT32 |
(ACPI_SYSTEM_XFACE *ACPI_OSD_HANDLER) ( |
void *Context); |
typedef void |
(ACPI_SYSTEM_XFACE *ACPI_OSD_EXEC_CALLBACK) ( |
void *Context); |
/* |
* Various handlers and callback procedures |
*/ |
typedef |
UINT32 (*ACPI_EVENT_HANDLER) ( |
void *Context); |
typedef |
void (*ACPI_NOTIFY_HANDLER) ( |
ACPI_HANDLE Device, |
UINT32 Value, |
void *Context); |
typedef |
void (*ACPI_OBJECT_HANDLER) ( |
ACPI_HANDLE Object, |
void *Data); |
typedef |
ACPI_STATUS (*ACPI_INIT_HANDLER) ( |
ACPI_HANDLE Object, |
UINT32 Function); |
#define ACPI_INIT_DEVICE_INI 1 |
typedef |
ACPI_STATUS (*ACPI_EXCEPTION_HANDLER) ( |
ACPI_STATUS AmlStatus, |
ACPI_NAME Name, |
UINT16 Opcode, |
UINT32 AmlOffset, |
void *Context); |
/* Table Event handler (Load, LoadTable, etc.) and types */ |
typedef |
ACPI_STATUS (*ACPI_TABLE_HANDLER) ( |
UINT32 Event, |
void *Table, |
void *Context); |
#define ACPI_TABLE_LOAD 0x0 |
#define ACPI_TABLE_UNLOAD 0x1 |
#define ACPI_NUM_TABLE_EVENTS 2 |
/* Address Spaces (For Operation Regions) */ |
typedef |
ACPI_STATUS (*ACPI_ADR_SPACE_HANDLER) ( |
UINT32 Function, |
ACPI_PHYSICAL_ADDRESS Address, |
UINT32 BitWidth, |
UINT64 *Value, |
void *HandlerContext, |
void *RegionContext); |
#define ACPI_DEFAULT_HANDLER NULL |
typedef |
ACPI_STATUS (*ACPI_ADR_SPACE_SETUP) ( |
ACPI_HANDLE RegionHandle, |
UINT32 Function, |
void *HandlerContext, |
void **RegionContext); |
#define ACPI_REGION_ACTIVATE 0 |
#define ACPI_REGION_DEACTIVATE 1 |
typedef |
ACPI_STATUS (*ACPI_WALK_CALLBACK) ( |
ACPI_HANDLE Object, |
UINT32 NestingLevel, |
void *Context, |
void **ReturnValue); |
/* Interrupt handler return values */ |
#define ACPI_INTERRUPT_NOT_HANDLED 0x00 |
#define ACPI_INTERRUPT_HANDLED 0x01 |
/* Length of 32-bit EISAID values when converted back to a string */ |
#define ACPI_EISAID_STRING_SIZE 8 /* Includes null terminator */ |
/* Length of UUID (string) values */ |
#define ACPI_UUID_LENGTH 16 |
/* Structures used for device/processor HID, UID, CID */ |
typedef struct acpi_device_id |
{ |
UINT32 Length; /* Length of string + null */ |
char *String; |
} ACPI_DEVICE_ID; |
typedef struct acpi_device_id_list |
{ |
UINT32 Count; /* Number of IDs in Ids array */ |
UINT32 ListSize; /* Size of list, including ID strings */ |
ACPI_DEVICE_ID Ids[1]; /* ID array */ |
} ACPI_DEVICE_ID_LIST; |
/* |
* Structure returned from AcpiGetObjectInfo. |
* Optimized for both 32- and 64-bit builds |
*/ |
typedef struct acpi_device_info |
{ |
UINT32 InfoSize; /* Size of info, including ID strings */ |
UINT32 Name; /* ACPI object Name */ |
ACPI_OBJECT_TYPE Type; /* ACPI object Type */ |
UINT8 ParamCount; /* If a method, required parameter count */ |
UINT8 Valid; /* Indicates which optional fields are valid */ |
UINT8 Flags; /* Miscellaneous info */ |
UINT8 HighestDstates[4]; /* _SxD values: 0xFF indicates not valid */ |
UINT8 LowestDstates[5]; /* _SxW values: 0xFF indicates not valid */ |
UINT32 CurrentStatus; /* _STA value */ |
UINT64 Address; /* _ADR value */ |
ACPI_DEVICE_ID HardwareId; /* _HID value */ |
ACPI_DEVICE_ID UniqueId; /* _UID value */ |
ACPI_DEVICE_ID_LIST CompatibleIdList; /* _CID list <must be last> */ |
} ACPI_DEVICE_INFO; |
/* Values for Flags field above (AcpiGetObjectInfo) */ |
#define ACPI_PCI_ROOT_BRIDGE 0x01 |
/* Flags for Valid field above (AcpiGetObjectInfo) */ |
#define ACPI_VALID_STA 0x01 |
#define ACPI_VALID_ADR 0x02 |
#define ACPI_VALID_HID 0x04 |
#define ACPI_VALID_UID 0x08 |
#define ACPI_VALID_CID 0x10 |
#define ACPI_VALID_SXDS 0x20 |
#define ACPI_VALID_SXWS 0x40 |
/* Flags for _STA method */ |
#define ACPI_STA_DEVICE_PRESENT 0x01 |
#define ACPI_STA_DEVICE_ENABLED 0x02 |
#define ACPI_STA_DEVICE_UI 0x04 |
#define ACPI_STA_DEVICE_FUNCTIONING 0x08 |
#define ACPI_STA_DEVICE_OK 0x08 /* Synonym */ |
#define ACPI_STA_BATTERY_PRESENT 0x10 |
/* Context structs for address space handlers */ |
typedef struct acpi_pci_id |
{ |
UINT16 Segment; |
UINT16 Bus; |
UINT16 Device; |
UINT16 Function; |
} ACPI_PCI_ID; |
typedef struct acpi_mem_space_context |
{ |
UINT32 Length; |
ACPI_PHYSICAL_ADDRESS Address; |
ACPI_PHYSICAL_ADDRESS MappedPhysicalAddress; |
UINT8 *MappedLogicalAddress; |
ACPI_SIZE MappedLength; |
} ACPI_MEM_SPACE_CONTEXT; |
/* |
* ACPI_MEMORY_LIST is used only if the ACPICA local cache is enabled |
*/ |
typedef struct acpi_memory_list |
{ |
char *ListName; |
void *ListHead; |
UINT16 ObjectSize; |
UINT16 MaxDepth; |
UINT16 CurrentDepth; |
UINT16 LinkOffset; |
#ifdef ACPI_DBG_TRACK_ALLOCATIONS |
/* Statistics for debug memory tracking only */ |
UINT32 TotalAllocated; |
UINT32 TotalFreed; |
UINT32 MaxOccupied; |
UINT32 TotalSize; |
UINT32 CurrentTotalSize; |
UINT32 Requests; |
UINT32 Hits; |
#endif |
} ACPI_MEMORY_LIST; |
#endif /* __ACTYPES_H__ */ |
/drivers/devman/acpica/include/acutils.h |
---|
0,0 → 1,963 |
/****************************************************************************** |
* |
* Name: acutils.h -- prototypes for the common (subsystem-wide) procedures |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 _ACUTILS_H |
#define _ACUTILS_H |
extern const UINT8 AcpiGbl_ResourceAmlSizes[]; |
/* Strings used by the disassembler and debugger resource dump routines */ |
#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER) |
extern const char *AcpiGbl_BmDecode[]; |
extern const char *AcpiGbl_ConfigDecode[]; |
extern const char *AcpiGbl_ConsumeDecode[]; |
extern const char *AcpiGbl_DecDecode[]; |
extern const char *AcpiGbl_HeDecode[]; |
extern const char *AcpiGbl_IoDecode[]; |
extern const char *AcpiGbl_LlDecode[]; |
extern const char *AcpiGbl_MaxDecode[]; |
extern const char *AcpiGbl_MemDecode[]; |
extern const char *AcpiGbl_MinDecode[]; |
extern const char *AcpiGbl_MtpDecode[]; |
extern const char *AcpiGbl_RngDecode[]; |
extern const char *AcpiGbl_RwDecode[]; |
extern const char *AcpiGbl_ShrDecode[]; |
extern const char *AcpiGbl_SizDecode[]; |
extern const char *AcpiGbl_TrsDecode[]; |
extern const char *AcpiGbl_TtpDecode[]; |
extern const char *AcpiGbl_TypDecode[]; |
#endif |
/* Types for Resource descriptor entries */ |
#define ACPI_INVALID_RESOURCE 0 |
#define ACPI_FIXED_LENGTH 1 |
#define ACPI_VARIABLE_LENGTH 2 |
#define ACPI_SMALL_VARIABLE_LENGTH 3 |
typedef |
ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) ( |
UINT8 *Aml, |
UINT32 Length, |
UINT32 Offset, |
UINT8 ResourceIndex, |
void *Context); |
typedef |
ACPI_STATUS (*ACPI_PKG_CALLBACK) ( |
UINT8 ObjectType, |
ACPI_OPERAND_OBJECT *SourceObject, |
ACPI_GENERIC_STATE *State, |
void *Context); |
typedef struct acpi_pkg_info |
{ |
UINT8 *FreeSpace; |
ACPI_SIZE Length; |
UINT32 ObjectSpace; |
UINT32 NumPackages; |
} ACPI_PKG_INFO; |
#define REF_INCREMENT (UINT16) 0 |
#define REF_DECREMENT (UINT16) 1 |
#define REF_FORCE_DELETE (UINT16) 2 |
/* AcpiUtDumpBuffer */ |
#define DB_BYTE_DISPLAY 1 |
#define DB_WORD_DISPLAY 2 |
#define DB_DWORD_DISPLAY 4 |
#define DB_QWORD_DISPLAY 8 |
/* |
* utglobal - Global data structures and procedures |
*/ |
ACPI_STATUS |
AcpiUtInitGlobals ( |
void); |
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) |
char * |
AcpiUtGetMutexName ( |
UINT32 MutexId); |
const char * |
AcpiUtGetNotifyName ( |
UINT32 NotifyValue); |
#endif |
char * |
AcpiUtGetTypeName ( |
ACPI_OBJECT_TYPE Type); |
char * |
AcpiUtGetNodeName ( |
void *Object); |
char * |
AcpiUtGetDescriptorName ( |
void *Object); |
const char * |
AcpiUtGetReferenceName ( |
ACPI_OPERAND_OBJECT *Object); |
char * |
AcpiUtGetObjectTypeName ( |
ACPI_OPERAND_OBJECT *ObjDesc); |
char * |
AcpiUtGetRegionName ( |
UINT8 SpaceId); |
char * |
AcpiUtGetEventName ( |
UINT32 EventId); |
char |
AcpiUtHexToAsciiChar ( |
UINT64 Integer, |
UINT32 Position); |
BOOLEAN |
AcpiUtValidObjectType ( |
ACPI_OBJECT_TYPE Type); |
/* |
* utinit - miscellaneous initialization and shutdown |
*/ |
ACPI_STATUS |
AcpiUtHardwareInitialize ( |
void); |
void |
AcpiUtSubsystemShutdown ( |
void); |
/* |
* utclib - Local implementations of C library functions |
*/ |
#ifndef ACPI_USE_SYSTEM_CLIBRARY |
ACPI_SIZE |
AcpiUtStrlen ( |
const char *String); |
char * |
AcpiUtStrcpy ( |
char *DstString, |
const char *SrcString); |
char * |
AcpiUtStrncpy ( |
char *DstString, |
const char *SrcString, |
ACPI_SIZE Count); |
int |
AcpiUtMemcmp ( |
const char *Buffer1, |
const char *Buffer2, |
ACPI_SIZE Count); |
int |
AcpiUtStrncmp ( |
const char *String1, |
const char *String2, |
ACPI_SIZE Count); |
int |
AcpiUtStrcmp ( |
const char *String1, |
const char *String2); |
char * |
AcpiUtStrcat ( |
char *DstString, |
const char *SrcString); |
char * |
AcpiUtStrncat ( |
char *DstString, |
const char *SrcString, |
ACPI_SIZE Count); |
UINT32 |
AcpiUtStrtoul ( |
const char *String, |
char **Terminator, |
UINT32 Base); |
char * |
AcpiUtStrstr ( |
char *String1, |
char *String2); |
void * |
AcpiUtMemcpy ( |
void *Dest, |
const void *Src, |
ACPI_SIZE Count); |
void * |
AcpiUtMemset ( |
void *Dest, |
UINT8 Value, |
ACPI_SIZE Count); |
int |
AcpiUtToUpper ( |
int c); |
int |
AcpiUtToLower ( |
int c); |
extern const UINT8 _acpi_ctype[]; |
#define _ACPI_XA 0x00 /* extra alphabetic - not supported */ |
#define _ACPI_XS 0x40 /* extra space */ |
#define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */ |
#define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */ |
#define _ACPI_DI 0x04 /* '0'-'9' */ |
#define _ACPI_LO 0x02 /* 'a'-'z' */ |
#define _ACPI_PU 0x10 /* punctuation */ |
#define _ACPI_SP 0x08 /* space */ |
#define _ACPI_UP 0x01 /* 'A'-'Z' */ |
#define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */ |
#define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI)) |
#define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP)) |
#define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD)) |
#define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP)) |
#define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO)) |
#define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU)) |
#define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP)) |
#endif /* !ACPI_USE_SYSTEM_CLIBRARY */ |
#define ACPI_IS_ASCII(c) ((c) < 0x80) |
/* |
* utcopy - Object construction and conversion interfaces |
*/ |
ACPI_STATUS |
AcpiUtBuildSimpleObject( |
ACPI_OPERAND_OBJECT *Obj, |
ACPI_OBJECT *UserObj, |
UINT8 *DataSpace, |
UINT32 *BufferSpaceUsed); |
ACPI_STATUS |
AcpiUtBuildPackageObject ( |
ACPI_OPERAND_OBJECT *Obj, |
UINT8 *Buffer, |
UINT32 *SpaceUsed); |
ACPI_STATUS |
AcpiUtCopyIobjectToEobject ( |
ACPI_OPERAND_OBJECT *Obj, |
ACPI_BUFFER *RetBuffer); |
ACPI_STATUS |
AcpiUtCopyEobjectToIobject ( |
ACPI_OBJECT *Obj, |
ACPI_OPERAND_OBJECT **InternalObj); |
ACPI_STATUS |
AcpiUtCopyISimpleToIsimple ( |
ACPI_OPERAND_OBJECT *SourceObj, |
ACPI_OPERAND_OBJECT *DestObj); |
ACPI_STATUS |
AcpiUtCopyIobjectToIobject ( |
ACPI_OPERAND_OBJECT *SourceDesc, |
ACPI_OPERAND_OBJECT **DestDesc, |
ACPI_WALK_STATE *WalkState); |
/* |
* utcreate - Object creation |
*/ |
ACPI_STATUS |
AcpiUtUpdateObjectReference ( |
ACPI_OPERAND_OBJECT *Object, |
UINT16 Action); |
/* |
* utdebug - Debug interfaces |
*/ |
void |
AcpiUtInitStackPtrTrace ( |
void); |
void |
AcpiUtTrackStackPtr ( |
void); |
void |
AcpiUtTrace ( |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId); |
void |
AcpiUtTracePtr ( |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId, |
void *Pointer); |
void |
AcpiUtTraceU32 ( |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId, |
UINT32 Integer); |
void |
AcpiUtTraceStr ( |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId, |
char *String); |
void |
AcpiUtExit ( |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId); |
void |
AcpiUtStatusExit ( |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId, |
ACPI_STATUS Status); |
void |
AcpiUtValueExit ( |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId, |
UINT64 Value); |
void |
AcpiUtPtrExit ( |
UINT32 LineNumber, |
const char *FunctionName, |
const char *ModuleName, |
UINT32 ComponentId, |
UINT8 *Ptr); |
void |
AcpiUtDumpBuffer ( |
UINT8 *Buffer, |
UINT32 Count, |
UINT32 Display, |
UINT32 componentId); |
void |
AcpiUtDumpBuffer2 ( |
UINT8 *Buffer, |
UINT32 Count, |
UINT32 Display); |
void |
AcpiUtReportError ( |
char *ModuleName, |
UINT32 LineNumber); |
void |
AcpiUtReportInfo ( |
char *ModuleName, |
UINT32 LineNumber); |
void |
AcpiUtReportWarning ( |
char *ModuleName, |
UINT32 LineNumber); |
/* |
* utdelete - Object deletion and reference counts |
*/ |
void |
AcpiUtAddReference ( |
ACPI_OPERAND_OBJECT *Object); |
void |
AcpiUtRemoveReference ( |
ACPI_OPERAND_OBJECT *Object); |
void |
AcpiUtDeleteInternalPackageObject ( |
ACPI_OPERAND_OBJECT *Object); |
void |
AcpiUtDeleteInternalSimpleObject ( |
ACPI_OPERAND_OBJECT *Object); |
void |
AcpiUtDeleteInternalObjectList ( |
ACPI_OPERAND_OBJECT **ObjList); |
/* |
* uteval - object evaluation |
*/ |
ACPI_STATUS |
AcpiUtOsiImplementation ( |
ACPI_WALK_STATE *WalkState); |
ACPI_STATUS |
AcpiUtEvaluateObject ( |
ACPI_NAMESPACE_NODE *PrefixNode, |
char *Path, |
UINT32 ExpectedReturnBtypes, |
ACPI_OPERAND_OBJECT **ReturnDesc); |
ACPI_STATUS |
AcpiUtEvaluateNumericObject ( |
char *ObjectName, |
ACPI_NAMESPACE_NODE *DeviceNode, |
UINT64 *Value); |
ACPI_STATUS |
AcpiUtExecute_STA ( |
ACPI_NAMESPACE_NODE *DeviceNode, |
UINT32 *StatusFlags); |
ACPI_STATUS |
AcpiUtExecutePowerMethods ( |
ACPI_NAMESPACE_NODE *DeviceNode, |
const char **MethodNames, |
UINT8 MethodCount, |
UINT8 *OutValues); |
/* |
* utids - device ID support |
*/ |
ACPI_STATUS |
AcpiUtExecute_HID ( |
ACPI_NAMESPACE_NODE *DeviceNode, |
ACPI_DEVICE_ID **ReturnId); |
ACPI_STATUS |
AcpiUtExecute_UID ( |
ACPI_NAMESPACE_NODE *DeviceNode, |
ACPI_DEVICE_ID **ReturnId); |
ACPI_STATUS |
AcpiUtExecute_CID ( |
ACPI_NAMESPACE_NODE *DeviceNode, |
ACPI_DEVICE_ID_LIST **ReturnCidList); |
/* |
* utlock - reader/writer locks |
*/ |
ACPI_STATUS |
AcpiUtCreateRwLock ( |
ACPI_RW_LOCK *Lock); |
void |
AcpiUtDeleteRwLock ( |
ACPI_RW_LOCK *Lock); |
ACPI_STATUS |
AcpiUtAcquireReadLock ( |
ACPI_RW_LOCK *Lock); |
ACPI_STATUS |
AcpiUtReleaseReadLock ( |
ACPI_RW_LOCK *Lock); |
ACPI_STATUS |
AcpiUtAcquireWriteLock ( |
ACPI_RW_LOCK *Lock); |
void |
AcpiUtReleaseWriteLock ( |
ACPI_RW_LOCK *Lock); |
/* |
* utobject - internal object create/delete/cache routines |
*/ |
ACPI_OPERAND_OBJECT * |
AcpiUtCreateInternalObjectDbg ( |
const char *ModuleName, |
UINT32 LineNumber, |
UINT32 ComponentId, |
ACPI_OBJECT_TYPE Type); |
void * |
AcpiUtAllocateObjectDescDbg ( |
const char *ModuleName, |
UINT32 LineNumber, |
UINT32 ComponentId); |
#define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) |
#define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) |
void |
AcpiUtDeleteObjectDesc ( |
ACPI_OPERAND_OBJECT *Object); |
BOOLEAN |
AcpiUtValidInternalObject ( |
void *Object); |
ACPI_OPERAND_OBJECT * |
AcpiUtCreatePackageObject ( |
UINT32 Count); |
ACPI_OPERAND_OBJECT * |
AcpiUtCreateIntegerObject ( |
UINT64 Value); |
ACPI_OPERAND_OBJECT * |
AcpiUtCreateBufferObject ( |
ACPI_SIZE BufferSize); |
ACPI_OPERAND_OBJECT * |
AcpiUtCreateStringObject ( |
ACPI_SIZE StringSize); |
ACPI_STATUS |
AcpiUtGetObjectSize( |
ACPI_OPERAND_OBJECT *Obj, |
ACPI_SIZE *ObjLength); |
/* |
* utstate - Generic state creation/cache routines |
*/ |
void |
AcpiUtPushGenericState ( |
ACPI_GENERIC_STATE **ListHead, |
ACPI_GENERIC_STATE *State); |
ACPI_GENERIC_STATE * |
AcpiUtPopGenericState ( |
ACPI_GENERIC_STATE **ListHead); |
ACPI_GENERIC_STATE * |
AcpiUtCreateGenericState ( |
void); |
ACPI_THREAD_STATE * |
AcpiUtCreateThreadState ( |
void); |
ACPI_GENERIC_STATE * |
AcpiUtCreateUpdateState ( |
ACPI_OPERAND_OBJECT *Object, |
UINT16 Action); |
ACPI_GENERIC_STATE * |
AcpiUtCreatePkgState ( |
void *InternalObject, |
void *ExternalObject, |
UINT16 Index); |
ACPI_STATUS |
AcpiUtCreateUpdateStateAndPush ( |
ACPI_OPERAND_OBJECT *Object, |
UINT16 Action, |
ACPI_GENERIC_STATE **StateList); |
ACPI_STATUS |
AcpiUtCreatePkgStateAndPush ( |
void *InternalObject, |
void *ExternalObject, |
UINT16 Index, |
ACPI_GENERIC_STATE **StateList); |
ACPI_GENERIC_STATE * |
AcpiUtCreateControlState ( |
void); |
void |
AcpiUtDeleteGenericState ( |
ACPI_GENERIC_STATE *State); |
/* |
* utmath |
*/ |
ACPI_STATUS |
AcpiUtDivide ( |
UINT64 InDividend, |
UINT64 InDivisor, |
UINT64 *OutQuotient, |
UINT64 *OutRemainder); |
ACPI_STATUS |
AcpiUtShortDivide ( |
UINT64 InDividend, |
UINT32 Divisor, |
UINT64 *OutQuotient, |
UINT32 *OutRemainder); |
/* |
* utmisc |
*/ |
const char * |
AcpiUtValidateException ( |
ACPI_STATUS Status); |
BOOLEAN |
AcpiUtIsPciRootBridge ( |
char *Id); |
BOOLEAN |
AcpiUtIsAmlTable ( |
ACPI_TABLE_HEADER *Table); |
ACPI_STATUS |
AcpiUtAllocateOwnerId ( |
ACPI_OWNER_ID *OwnerId); |
void |
AcpiUtReleaseOwnerId ( |
ACPI_OWNER_ID *OwnerId); |
ACPI_STATUS |
AcpiUtWalkPackageTree ( |
ACPI_OPERAND_OBJECT *SourceObject, |
void *TargetObject, |
ACPI_PKG_CALLBACK WalkCallback, |
void *Context); |
void |
AcpiUtStrupr ( |
char *SrcString); |
void |
AcpiUtPrintString ( |
char *String, |
UINT8 MaxLength); |
BOOLEAN |
AcpiUtValidAcpiName ( |
UINT32 Name); |
void |
AcpiUtRepairName ( |
char *Name); |
BOOLEAN |
AcpiUtValidAcpiChar ( |
char Character, |
UINT32 Position); |
ACPI_STATUS |
AcpiUtStrtoul64 ( |
char *String, |
UINT32 Base, |
UINT64 *RetInteger); |
void ACPI_INTERNAL_VAR_XFACE |
AcpiUtPredefinedWarning ( |
const char *ModuleName, |
UINT32 LineNumber, |
char *Pathname, |
UINT8 NodeFlags, |
const char *Format, |
...); |
void ACPI_INTERNAL_VAR_XFACE |
AcpiUtPredefinedInfo ( |
const char *ModuleName, |
UINT32 LineNumber, |
char *Pathname, |
UINT8 NodeFlags, |
const char *Format, |
...); |
/* Values for Base above (16=Hex, 10=Decimal) */ |
#define ACPI_ANY_BASE 0 |
UINT32 |
AcpiUtDwordByteSwap ( |
UINT32 Value); |
void |
AcpiUtSetIntegerWidth ( |
UINT8 Revision); |
#ifdef ACPI_DEBUG_OUTPUT |
void |
AcpiUtDisplayInitPathname ( |
UINT8 Type, |
ACPI_NAMESPACE_NODE *ObjHandle, |
char *Path); |
#endif |
/* |
* utresrc |
*/ |
ACPI_STATUS |
AcpiUtWalkAmlResources ( |
UINT8 *Aml, |
ACPI_SIZE AmlLength, |
ACPI_WALK_AML_CALLBACK UserFunction, |
void *Context); |
ACPI_STATUS |
AcpiUtValidateResource ( |
void *Aml, |
UINT8 *ReturnIndex); |
UINT32 |
AcpiUtGetDescriptorLength ( |
void *Aml); |
UINT16 |
AcpiUtGetResourceLength ( |
void *Aml); |
UINT8 |
AcpiUtGetResourceHeaderLength ( |
void *Aml); |
UINT8 |
AcpiUtGetResourceType ( |
void *Aml); |
ACPI_STATUS |
AcpiUtGetResourceEndTag ( |
ACPI_OPERAND_OBJECT *ObjDesc, |
UINT8 **EndTag); |
/* |
* utmutex - mutex support |
*/ |
ACPI_STATUS |
AcpiUtMutexInitialize ( |
void); |
void |
AcpiUtMutexTerminate ( |
void); |
ACPI_STATUS |
AcpiUtAcquireMutex ( |
ACPI_MUTEX_HANDLE MutexId); |
ACPI_STATUS |
AcpiUtReleaseMutex ( |
ACPI_MUTEX_HANDLE MutexId); |
/* |
* utalloc - memory allocation and object caching |
*/ |
ACPI_STATUS |
AcpiUtCreateCaches ( |
void); |
ACPI_STATUS |
AcpiUtDeleteCaches ( |
void); |
ACPI_STATUS |
AcpiUtValidateBuffer ( |
ACPI_BUFFER *Buffer); |
ACPI_STATUS |
AcpiUtInitializeBuffer ( |
ACPI_BUFFER *Buffer, |
ACPI_SIZE RequiredLength); |
void * |
AcpiUtAllocate ( |
ACPI_SIZE Size, |
UINT32 Component, |
const char *Module, |
UINT32 Line); |
void * |
AcpiUtAllocateZeroed ( |
ACPI_SIZE Size, |
UINT32 Component, |
const char *Module, |
UINT32 Line); |
#ifdef ACPI_DBG_TRACK_ALLOCATIONS |
void * |
AcpiUtAllocateAndTrack ( |
ACPI_SIZE Size, |
UINT32 Component, |
const char *Module, |
UINT32 Line); |
void * |
AcpiUtAllocateZeroedAndTrack ( |
ACPI_SIZE Size, |
UINT32 Component, |
const char *Module, |
UINT32 Line); |
void |
AcpiUtFreeAndTrack ( |
void *Address, |
UINT32 Component, |
const char *Module, |
UINT32 Line); |
void |
AcpiUtDumpAllocationInfo ( |
void); |
void |
AcpiUtDumpAllocations ( |
UINT32 Component, |
const char *Module); |
ACPI_STATUS |
AcpiUtCreateList ( |
char *ListName, |
UINT16 ObjectSize, |
ACPI_MEMORY_LIST **ReturnCache); |
#endif |
#endif /* _ACUTILS_H */ |
/drivers/devman/acpica/include/amlcode.h |
---|
0,0 → 1,595 |
/****************************************************************************** |
* |
* Name: amlcode.h - Definitions for AML, as included in "definition blocks" |
* Declarations and definitions contained herein are derived |
* directly from the ACPI specification. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __AMLCODE_H__ |
#define __AMLCODE_H__ |
/* primary opcodes */ |
#define AML_NULL_CHAR (UINT16) 0x00 |
#define AML_ZERO_OP (UINT16) 0x00 |
#define AML_ONE_OP (UINT16) 0x01 |
#define AML_UNASSIGNED (UINT16) 0x02 |
#define AML_ALIAS_OP (UINT16) 0x06 |
#define AML_NAME_OP (UINT16) 0x08 |
#define AML_BYTE_OP (UINT16) 0x0a |
#define AML_WORD_OP (UINT16) 0x0b |
#define AML_DWORD_OP (UINT16) 0x0c |
#define AML_STRING_OP (UINT16) 0x0d |
#define AML_QWORD_OP (UINT16) 0x0e /* ACPI 2.0 */ |
#define AML_SCOPE_OP (UINT16) 0x10 |
#define AML_BUFFER_OP (UINT16) 0x11 |
#define AML_PACKAGE_OP (UINT16) 0x12 |
#define AML_VAR_PACKAGE_OP (UINT16) 0x13 /* ACPI 2.0 */ |
#define AML_METHOD_OP (UINT16) 0x14 |
#define AML_DUAL_NAME_PREFIX (UINT16) 0x2e |
#define AML_MULTI_NAME_PREFIX_OP (UINT16) 0x2f |
#define AML_NAME_CHAR_SUBSEQ (UINT16) 0x30 |
#define AML_NAME_CHAR_FIRST (UINT16) 0x41 |
#define AML_EXTENDED_OP_PREFIX (UINT16) 0x5b |
#define AML_ROOT_PREFIX (UINT16) 0x5c |
#define AML_PARENT_PREFIX (UINT16) 0x5e |
#define AML_LOCAL_OP (UINT16) 0x60 |
#define AML_LOCAL0 (UINT16) 0x60 |
#define AML_LOCAL1 (UINT16) 0x61 |
#define AML_LOCAL2 (UINT16) 0x62 |
#define AML_LOCAL3 (UINT16) 0x63 |
#define AML_LOCAL4 (UINT16) 0x64 |
#define AML_LOCAL5 (UINT16) 0x65 |
#define AML_LOCAL6 (UINT16) 0x66 |
#define AML_LOCAL7 (UINT16) 0x67 |
#define AML_ARG_OP (UINT16) 0x68 |
#define AML_ARG0 (UINT16) 0x68 |
#define AML_ARG1 (UINT16) 0x69 |
#define AML_ARG2 (UINT16) 0x6a |
#define AML_ARG3 (UINT16) 0x6b |
#define AML_ARG4 (UINT16) 0x6c |
#define AML_ARG5 (UINT16) 0x6d |
#define AML_ARG6 (UINT16) 0x6e |
#define AML_STORE_OP (UINT16) 0x70 |
#define AML_REF_OF_OP (UINT16) 0x71 |
#define AML_ADD_OP (UINT16) 0x72 |
#define AML_CONCAT_OP (UINT16) 0x73 |
#define AML_SUBTRACT_OP (UINT16) 0x74 |
#define AML_INCREMENT_OP (UINT16) 0x75 |
#define AML_DECREMENT_OP (UINT16) 0x76 |
#define AML_MULTIPLY_OP (UINT16) 0x77 |
#define AML_DIVIDE_OP (UINT16) 0x78 |
#define AML_SHIFT_LEFT_OP (UINT16) 0x79 |
#define AML_SHIFT_RIGHT_OP (UINT16) 0x7a |
#define AML_BIT_AND_OP (UINT16) 0x7b |
#define AML_BIT_NAND_OP (UINT16) 0x7c |
#define AML_BIT_OR_OP (UINT16) 0x7d |
#define AML_BIT_NOR_OP (UINT16) 0x7e |
#define AML_BIT_XOR_OP (UINT16) 0x7f |
#define AML_BIT_NOT_OP (UINT16) 0x80 |
#define AML_FIND_SET_LEFT_BIT_OP (UINT16) 0x81 |
#define AML_FIND_SET_RIGHT_BIT_OP (UINT16) 0x82 |
#define AML_DEREF_OF_OP (UINT16) 0x83 |
#define AML_CONCAT_RES_OP (UINT16) 0x84 /* ACPI 2.0 */ |
#define AML_MOD_OP (UINT16) 0x85 /* ACPI 2.0 */ |
#define AML_NOTIFY_OP (UINT16) 0x86 |
#define AML_SIZE_OF_OP (UINT16) 0x87 |
#define AML_INDEX_OP (UINT16) 0x88 |
#define AML_MATCH_OP (UINT16) 0x89 |
#define AML_CREATE_DWORD_FIELD_OP (UINT16) 0x8a |
#define AML_CREATE_WORD_FIELD_OP (UINT16) 0x8b |
#define AML_CREATE_BYTE_FIELD_OP (UINT16) 0x8c |
#define AML_CREATE_BIT_FIELD_OP (UINT16) 0x8d |
#define AML_TYPE_OP (UINT16) 0x8e |
#define AML_CREATE_QWORD_FIELD_OP (UINT16) 0x8f /* ACPI 2.0 */ |
#define AML_LAND_OP (UINT16) 0x90 |
#define AML_LOR_OP (UINT16) 0x91 |
#define AML_LNOT_OP (UINT16) 0x92 |
#define AML_LEQUAL_OP (UINT16) 0x93 |
#define AML_LGREATER_OP (UINT16) 0x94 |
#define AML_LLESS_OP (UINT16) 0x95 |
#define AML_TO_BUFFER_OP (UINT16) 0x96 /* ACPI 2.0 */ |
#define AML_TO_DECSTRING_OP (UINT16) 0x97 /* ACPI 2.0 */ |
#define AML_TO_HEXSTRING_OP (UINT16) 0x98 /* ACPI 2.0 */ |
#define AML_TO_INTEGER_OP (UINT16) 0x99 /* ACPI 2.0 */ |
#define AML_TO_STRING_OP (UINT16) 0x9c /* ACPI 2.0 */ |
#define AML_COPY_OP (UINT16) 0x9d /* ACPI 2.0 */ |
#define AML_MID_OP (UINT16) 0x9e /* ACPI 2.0 */ |
#define AML_CONTINUE_OP (UINT16) 0x9f /* ACPI 2.0 */ |
#define AML_IF_OP (UINT16) 0xa0 |
#define AML_ELSE_OP (UINT16) 0xa1 |
#define AML_WHILE_OP (UINT16) 0xa2 |
#define AML_NOOP_OP (UINT16) 0xa3 |
#define AML_RETURN_OP (UINT16) 0xa4 |
#define AML_BREAK_OP (UINT16) 0xa5 |
#define AML_BREAK_POINT_OP (UINT16) 0xcc |
#define AML_ONES_OP (UINT16) 0xff |
/* prefixed opcodes */ |
#define AML_EXTENDED_OPCODE (UINT16) 0x5b00 /* prefix for 2-byte opcodes */ |
#define AML_MUTEX_OP (UINT16) 0x5b01 |
#define AML_EVENT_OP (UINT16) 0x5b02 |
#define AML_SHIFT_RIGHT_BIT_OP (UINT16) 0x5b10 |
#define AML_SHIFT_LEFT_BIT_OP (UINT16) 0x5b11 |
#define AML_COND_REF_OF_OP (UINT16) 0x5b12 |
#define AML_CREATE_FIELD_OP (UINT16) 0x5b13 |
#define AML_LOAD_TABLE_OP (UINT16) 0x5b1f /* ACPI 2.0 */ |
#define AML_LOAD_OP (UINT16) 0x5b20 |
#define AML_STALL_OP (UINT16) 0x5b21 |
#define AML_SLEEP_OP (UINT16) 0x5b22 |
#define AML_ACQUIRE_OP (UINT16) 0x5b23 |
#define AML_SIGNAL_OP (UINT16) 0x5b24 |
#define AML_WAIT_OP (UINT16) 0x5b25 |
#define AML_RESET_OP (UINT16) 0x5b26 |
#define AML_RELEASE_OP (UINT16) 0x5b27 |
#define AML_FROM_BCD_OP (UINT16) 0x5b28 |
#define AML_TO_BCD_OP (UINT16) 0x5b29 |
#define AML_UNLOAD_OP (UINT16) 0x5b2a |
#define AML_REVISION_OP (UINT16) 0x5b30 |
#define AML_DEBUG_OP (UINT16) 0x5b31 |
#define AML_FATAL_OP (UINT16) 0x5b32 |
#define AML_TIMER_OP (UINT16) 0x5b33 /* ACPI 3.0 */ |
#define AML_REGION_OP (UINT16) 0x5b80 |
#define AML_FIELD_OP (UINT16) 0x5b81 |
#define AML_DEVICE_OP (UINT16) 0x5b82 |
#define AML_PROCESSOR_OP (UINT16) 0x5b83 |
#define AML_POWER_RES_OP (UINT16) 0x5b84 |
#define AML_THERMAL_ZONE_OP (UINT16) 0x5b85 |
#define AML_INDEX_FIELD_OP (UINT16) 0x5b86 |
#define AML_BANK_FIELD_OP (UINT16) 0x5b87 |
#define AML_DATA_REGION_OP (UINT16) 0x5b88 /* ACPI 2.0 */ |
/* |
* Combination opcodes (actually two one-byte opcodes) |
* Used by the disassembler and iASL compiler |
*/ |
#define AML_LGREATEREQUAL_OP (UINT16) 0x9295 |
#define AML_LLESSEQUAL_OP (UINT16) 0x9294 |
#define AML_LNOTEQUAL_OP (UINT16) 0x9293 |
/* |
* Internal opcodes |
* Use only "Unknown" AML opcodes, don't attempt to use |
* any valid ACPI ASCII values (A-Z, 0-9, '-') |
*/ |
#define AML_INT_NAMEPATH_OP (UINT16) 0x002d |
#define AML_INT_NAMEDFIELD_OP (UINT16) 0x0030 |
#define AML_INT_RESERVEDFIELD_OP (UINT16) 0x0031 |
#define AML_INT_ACCESSFIELD_OP (UINT16) 0x0032 |
#define AML_INT_BYTELIST_OP (UINT16) 0x0033 |
#define AML_INT_STATICSTRING_OP (UINT16) 0x0034 |
#define AML_INT_METHODCALL_OP (UINT16) 0x0035 |
#define AML_INT_RETURN_VALUE_OP (UINT16) 0x0036 |
#define AML_INT_EVAL_SUBTREE_OP (UINT16) 0x0037 |
#define ARG_NONE 0x0 |
/* |
* Argument types for the AML Parser |
* Each field in the ArgTypes UINT32 is 5 bits, allowing for a maximum of 6 arguments. |
* There can be up to 31 unique argument types |
* Zero is reserved as end-of-list indicator |
*/ |
#define ARGP_BYTEDATA 0x01 |
#define ARGP_BYTELIST 0x02 |
#define ARGP_CHARLIST 0x03 |
#define ARGP_DATAOBJ 0x04 |
#define ARGP_DATAOBJLIST 0x05 |
#define ARGP_DWORDDATA 0x06 |
#define ARGP_FIELDLIST 0x07 |
#define ARGP_NAME 0x08 |
#define ARGP_NAMESTRING 0x09 |
#define ARGP_OBJLIST 0x0A |
#define ARGP_PKGLENGTH 0x0B |
#define ARGP_SUPERNAME 0x0C |
#define ARGP_TARGET 0x0D |
#define ARGP_TERMARG 0x0E |
#define ARGP_TERMLIST 0x0F |
#define ARGP_WORDDATA 0x10 |
#define ARGP_QWORDDATA 0x11 |
#define ARGP_SIMPLENAME 0x12 |
/* |
* Resolved argument types for the AML Interpreter |
* Each field in the ArgTypes UINT32 is 5 bits, allowing for a maximum of 6 arguments. |
* There can be up to 31 unique argument types (0 is end-of-arg-list indicator) |
* |
* Note1: These values are completely independent from the ACPI_TYPEs |
* i.e., ARGI_INTEGER != ACPI_TYPE_INTEGER |
* |
* Note2: If and when 5 bits becomes insufficient, it would probably be best |
* to convert to a 6-byte array of argument types, allowing 8 bits per argument. |
*/ |
/* Single, simple types */ |
#define ARGI_ANYTYPE 0x01 /* Don't care */ |
#define ARGI_PACKAGE 0x02 |
#define ARGI_EVENT 0x03 |
#define ARGI_MUTEX 0x04 |
#define ARGI_DDBHANDLE 0x05 |
/* Interchangeable types (via implicit conversion) */ |
#define ARGI_INTEGER 0x06 |
#define ARGI_STRING 0x07 |
#define ARGI_BUFFER 0x08 |
#define ARGI_BUFFER_OR_STRING 0x09 /* Used by MID op only */ |
#define ARGI_COMPUTEDATA 0x0A /* Buffer, String, or Integer */ |
/* Reference objects */ |
#define ARGI_INTEGER_REF 0x0B |
#define ARGI_OBJECT_REF 0x0C |
#define ARGI_DEVICE_REF 0x0D |
#define ARGI_REFERENCE 0x0E |
#define ARGI_TARGETREF 0x0F /* Target, subject to implicit conversion */ |
#define ARGI_FIXED_TARGET 0x10 /* Target, no implicit conversion */ |
#define ARGI_SIMPLE_TARGET 0x11 /* Name, Local, Arg -- no implicit conversion */ |
/* Multiple/complex types */ |
#define ARGI_DATAOBJECT 0x12 /* Buffer, String, package or reference to a Node - Used only by SizeOf operator*/ |
#define ARGI_COMPLEXOBJ 0x13 /* Buffer, String, or package (Used by INDEX op only) */ |
#define ARGI_REF_OR_STRING 0x14 /* Reference or String (Used by DEREFOF op only) */ |
#define ARGI_REGION_OR_BUFFER 0x15 /* Used by LOAD op only */ |
#define ARGI_DATAREFOBJ 0x16 |
/* Note: types above can expand to 0x1F maximum */ |
#define ARGI_INVALID_OPCODE 0xFFFFFFFF |
/* |
* hash offsets |
*/ |
#define AML_EXTOP_HASH_OFFSET 22 |
#define AML_LNOT_HASH_OFFSET 19 |
/* |
* opcode groups and types |
*/ |
#define OPGRP_NAMED 0x01 |
#define OPGRP_FIELD 0x02 |
#define OPGRP_BYTELIST 0x04 |
/* |
* Opcode information |
*/ |
/* Opcode flags */ |
#define AML_LOGICAL 0x0001 |
#define AML_LOGICAL_NUMERIC 0x0002 |
#define AML_MATH 0x0004 |
#define AML_CREATE 0x0008 |
#define AML_FIELD 0x0010 |
#define AML_DEFER 0x0020 |
#define AML_NAMED 0x0040 |
#define AML_NSNODE 0x0080 |
#define AML_NSOPCODE 0x0100 |
#define AML_NSOBJECT 0x0200 |
#define AML_HAS_RETVAL 0x0400 |
#define AML_HAS_TARGET 0x0800 |
#define AML_HAS_ARGS 0x1000 |
#define AML_CONSTANT 0x2000 |
#define AML_NO_OPERAND_RESOLVE 0x4000 |
/* Convenient flag groupings */ |
#define AML_FLAGS_EXEC_0A_0T_1R AML_HAS_RETVAL |
#define AML_FLAGS_EXEC_1A_0T_0R AML_HAS_ARGS /* Monadic1 */ |
#define AML_FLAGS_EXEC_1A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Monadic2 */ |
#define AML_FLAGS_EXEC_1A_1T_0R AML_HAS_ARGS | AML_HAS_TARGET |
#define AML_FLAGS_EXEC_1A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* Monadic2R */ |
#define AML_FLAGS_EXEC_2A_0T_0R AML_HAS_ARGS /* Dyadic1 */ |
#define AML_FLAGS_EXEC_2A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Dyadic2 */ |
#define AML_FLAGS_EXEC_2A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* Dyadic2R */ |
#define AML_FLAGS_EXEC_2A_2T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL |
#define AML_FLAGS_EXEC_3A_0T_0R AML_HAS_ARGS |
#define AML_FLAGS_EXEC_3A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL |
#define AML_FLAGS_EXEC_6A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL |
/* |
* The opcode Type is used in a dispatch table, do not change |
* without updating the table. |
*/ |
#define AML_TYPE_EXEC_0A_0T_1R 0x00 |
#define AML_TYPE_EXEC_1A_0T_0R 0x01 /* Monadic1 */ |
#define AML_TYPE_EXEC_1A_0T_1R 0x02 /* Monadic2 */ |
#define AML_TYPE_EXEC_1A_1T_0R 0x03 |
#define AML_TYPE_EXEC_1A_1T_1R 0x04 /* Monadic2R */ |
#define AML_TYPE_EXEC_2A_0T_0R 0x05 /* Dyadic1 */ |
#define AML_TYPE_EXEC_2A_0T_1R 0x06 /* Dyadic2 */ |
#define AML_TYPE_EXEC_2A_1T_1R 0x07 /* Dyadic2R */ |
#define AML_TYPE_EXEC_2A_2T_1R 0x08 |
#define AML_TYPE_EXEC_3A_0T_0R 0x09 |
#define AML_TYPE_EXEC_3A_1T_1R 0x0A |
#define AML_TYPE_EXEC_6A_0T_1R 0x0B |
/* End of types used in dispatch table */ |
#define AML_TYPE_LITERAL 0x0B |
#define AML_TYPE_CONSTANT 0x0C |
#define AML_TYPE_METHOD_ARGUMENT 0x0D |
#define AML_TYPE_LOCAL_VARIABLE 0x0E |
#define AML_TYPE_DATA_TERM 0x0F |
/* Generic for an op that returns a value */ |
#define AML_TYPE_METHOD_CALL 0x10 |
/* Misc */ |
#define AML_TYPE_CREATE_FIELD 0x11 |
#define AML_TYPE_CREATE_OBJECT 0x12 |
#define AML_TYPE_CONTROL 0x13 |
#define AML_TYPE_NAMED_NO_OBJ 0x14 |
#define AML_TYPE_NAMED_FIELD 0x15 |
#define AML_TYPE_NAMED_SIMPLE 0x16 |
#define AML_TYPE_NAMED_COMPLEX 0x17 |
#define AML_TYPE_RETURN 0x18 |
#define AML_TYPE_UNDEFINED 0x19 |
#define AML_TYPE_BOGUS 0x1A |
/* AML Package Length encodings */ |
#define ACPI_AML_PACKAGE_TYPE1 0x40 |
#define ACPI_AML_PACKAGE_TYPE2 0x4000 |
#define ACPI_AML_PACKAGE_TYPE3 0x400000 |
#define ACPI_AML_PACKAGE_TYPE4 0x40000000 |
/* |
* Opcode classes |
*/ |
#define AML_CLASS_EXECUTE 0x00 |
#define AML_CLASS_CREATE 0x01 |
#define AML_CLASS_ARGUMENT 0x02 |
#define AML_CLASS_NAMED_OBJECT 0x03 |
#define AML_CLASS_CONTROL 0x04 |
#define AML_CLASS_ASCII 0x05 |
#define AML_CLASS_PREFIX 0x06 |
#define AML_CLASS_INTERNAL 0x07 |
#define AML_CLASS_RETURN_VALUE 0x08 |
#define AML_CLASS_METHOD_CALL 0x09 |
#define AML_CLASS_UNKNOWN 0x0A |
/* Predefined Operation Region SpaceIDs */ |
typedef enum |
{ |
REGION_MEMORY = 0, |
REGION_IO, |
REGION_PCI_CONFIG, |
REGION_EC, |
REGION_SMBUS, |
REGION_CMOS, |
REGION_PCI_BAR, |
REGION_IPMI, |
REGION_DATA_TABLE, /* Internal use only */ |
REGION_FIXED_HW = 0x7F |
} AML_REGION_TYPES; |
/* Comparison operation codes for MatchOp operator */ |
typedef enum |
{ |
MATCH_MTR = 0, |
MATCH_MEQ = 1, |
MATCH_MLE = 2, |
MATCH_MLT = 3, |
MATCH_MGE = 4, |
MATCH_MGT = 5 |
} AML_MATCH_OPERATOR; |
#define MAX_MATCH_OPERATOR 5 |
/* |
* FieldFlags |
* |
* This byte is extracted from the AML and includes three separate |
* pieces of information about the field: |
* 1) The field access type |
* 2) The field update rule |
* 3) The lock rule for the field |
* |
* Bits 00 - 03 : AccessType (AnyAcc, ByteAcc, etc.) |
* 04 : LockRule (1 == Lock) |
* 05 - 06 : UpdateRule |
*/ |
#define AML_FIELD_ACCESS_TYPE_MASK 0x0F |
#define AML_FIELD_LOCK_RULE_MASK 0x10 |
#define AML_FIELD_UPDATE_RULE_MASK 0x60 |
/* 1) Field Access Types */ |
typedef enum |
{ |
AML_FIELD_ACCESS_ANY = 0x00, |
AML_FIELD_ACCESS_BYTE = 0x01, |
AML_FIELD_ACCESS_WORD = 0x02, |
AML_FIELD_ACCESS_DWORD = 0x03, |
AML_FIELD_ACCESS_QWORD = 0x04, /* ACPI 2.0 */ |
AML_FIELD_ACCESS_BUFFER = 0x05 /* ACPI 2.0 */ |
} AML_ACCESS_TYPE; |
/* 2) Field Lock Rules */ |
typedef enum |
{ |
AML_FIELD_LOCK_NEVER = 0x00, |
AML_FIELD_LOCK_ALWAYS = 0x10 |
} AML_LOCK_RULE; |
/* 3) Field Update Rules */ |
typedef enum |
{ |
AML_FIELD_UPDATE_PRESERVE = 0x00, |
AML_FIELD_UPDATE_WRITE_AS_ONES = 0x20, |
AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40 |
} AML_UPDATE_RULE; |
/* |
* Field Access Attributes. |
* This byte is extracted from the AML via the |
* AccessAs keyword |
*/ |
typedef enum |
{ |
AML_FIELD_ATTRIB_SMB_QUICK = 0x02, |
AML_FIELD_ATTRIB_SMB_SEND_RCV = 0x04, |
AML_FIELD_ATTRIB_SMB_BYTE = 0x06, |
AML_FIELD_ATTRIB_SMB_WORD = 0x08, |
AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A, |
AML_FIELD_ATTRIB_SMB_WORD_CALL = 0x0C, |
AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D |
} AML_ACCESS_ATTRIBUTE; |
/* Bit fields in MethodFlags byte */ |
#define AML_METHOD_ARG_COUNT 0x07 |
#define AML_METHOD_SERIALIZED 0x08 |
#define AML_METHOD_SYNC_LEVEL 0xF0 |
/* METHOD_FLAGS_ARG_COUNT is not used internally, define additional flags */ |
#define AML_METHOD_INTERNAL_ONLY 0x01 |
#define AML_METHOD_RESERVED1 0x02 |
#define AML_METHOD_RESERVED2 0x04 |
#endif /* __AMLCODE_H__ */ |
/drivers/devman/acpica/include/amlresrc.h |
---|
0,0 → 1,491 |
/****************************************************************************** |
* |
* Module Name: amlresrc.h - AML resource descriptors |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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. |
* |
*****************************************************************************/ |
/* acpisrc:StructDefs -- for acpisrc conversion */ |
#ifndef __AMLRESRC_H |
#define __AMLRESRC_H |
/* |
* Resource descriptor tags, as defined in the ACPI specification. |
* Used to symbolically reference fields within a descriptor. |
*/ |
#define ACPI_RESTAG_ADDRESS "_ADR" |
#define ACPI_RESTAG_ALIGNMENT "_ALN" |
#define ACPI_RESTAG_ADDRESSSPACE "_ASI" |
#define ACPI_RESTAG_ACCESSSIZE "_ASZ" |
#define ACPI_RESTAG_TYPESPECIFICATTRIBUTES "_ATT" |
#define ACPI_RESTAG_BASEADDRESS "_BAS" |
#define ACPI_RESTAG_BUSMASTER "_BM_" /* Master(1), Slave(0) */ |
#define ACPI_RESTAG_DECODE "_DEC" |
#define ACPI_RESTAG_DMA "_DMA" |
#define ACPI_RESTAG_DMATYPE "_TYP" /* Compatible(0), A(1), B(2), F(3) */ |
#define ACPI_RESTAG_GRANULARITY "_GRA" |
#define ACPI_RESTAG_INTERRUPT "_INT" |
#define ACPI_RESTAG_INTERRUPTLEVEL "_LL_" /* ActiveLo(1), ActiveHi(0) */ |
#define ACPI_RESTAG_INTERRUPTSHARE "_SHR" /* Shareable(1), NoShare(0) */ |
#define ACPI_RESTAG_INTERRUPTTYPE "_HE_" /* Edge(1), Level(0) */ |
#define ACPI_RESTAG_LENGTH "_LEN" |
#define ACPI_RESTAG_MEMATTRIBUTES "_MTP" /* Memory(0), Reserved(1), ACPI(2), NVS(3) */ |
#define ACPI_RESTAG_MEMTYPE "_MEM" /* NonCache(0), Cacheable(1) Cache+combine(2), Cache+prefetch(3) */ |
#define ACPI_RESTAG_MAXADDR "_MAX" |
#define ACPI_RESTAG_MINADDR "_MIN" |
#define ACPI_RESTAG_MAXTYPE "_MAF" |
#define ACPI_RESTAG_MINTYPE "_MIF" |
#define ACPI_RESTAG_REGISTERBITOFFSET "_RBO" |
#define ACPI_RESTAG_REGISTERBITWIDTH "_RBW" |
#define ACPI_RESTAG_RANGETYPE "_RNG" |
#define ACPI_RESTAG_READWRITETYPE "_RW_" /* ReadOnly(0), Writeable (1) */ |
#define ACPI_RESTAG_TRANSLATION "_TRA" |
#define ACPI_RESTAG_TRANSTYPE "_TRS" /* Sparse(1), Dense(0) */ |
#define ACPI_RESTAG_TYPE "_TTP" /* Translation(1), Static (0) */ |
#define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8And16(1), 16(2) */ |
/* Default sizes for "small" resource descriptors */ |
#define ASL_RDESC_IRQ_SIZE 0x02 |
#define ASL_RDESC_DMA_SIZE 0x02 |
#define ASL_RDESC_ST_DEPEND_SIZE 0x00 |
#define ASL_RDESC_END_DEPEND_SIZE 0x00 |
#define ASL_RDESC_IO_SIZE 0x07 |
#define ASL_RDESC_FIXED_IO_SIZE 0x03 |
#define ASL_RDESC_END_TAG_SIZE 0x01 |
typedef struct asl_resource_node |
{ |
UINT32 BufferLength; |
void *Buffer; |
struct asl_resource_node *Next; |
} ASL_RESOURCE_NODE; |
/* Macros used to generate AML resource length fields */ |
#define ACPI_AML_SIZE_LARGE(r) (sizeof (r) - sizeof (AML_RESOURCE_LARGE_HEADER)) |
#define ACPI_AML_SIZE_SMALL(r) (sizeof (r) - sizeof (AML_RESOURCE_SMALL_HEADER)) |
/* |
* Resource descriptors defined in the ACPI specification. |
* |
* Packing/alignment must be BYTE because these descriptors |
* are used to overlay the raw AML byte stream. |
*/ |
#pragma pack(1) |
/* |
* SMALL descriptors |
*/ |
#define AML_RESOURCE_SMALL_HEADER_COMMON \ |
UINT8 DescriptorType; |
typedef struct aml_resource_small_header |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
} AML_RESOURCE_SMALL_HEADER; |
typedef struct aml_resource_irq |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
UINT16 IrqMask; |
UINT8 Flags; |
} AML_RESOURCE_IRQ; |
typedef struct aml_resource_irq_noflags |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
UINT16 IrqMask; |
} AML_RESOURCE_IRQ_NOFLAGS; |
typedef struct aml_resource_dma |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
UINT8 DmaChannelMask; |
UINT8 Flags; |
} AML_RESOURCE_DMA; |
typedef struct aml_resource_start_dependent |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
UINT8 Flags; |
} AML_RESOURCE_START_DEPENDENT; |
typedef struct aml_resource_start_dependent_noprio |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
} AML_RESOURCE_START_DEPENDENT_NOPRIO; |
typedef struct aml_resource_end_dependent |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
} AML_RESOURCE_END_DEPENDENT; |
typedef struct aml_resource_io |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
UINT8 Flags; |
UINT16 Minimum; |
UINT16 Maximum; |
UINT8 Alignment; |
UINT8 AddressLength; |
} AML_RESOURCE_IO; |
typedef struct aml_resource_fixed_io |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
UINT16 Address; |
UINT8 AddressLength; |
} AML_RESOURCE_FIXED_IO; |
typedef struct aml_resource_vendor_small |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
} AML_RESOURCE_VENDOR_SMALL; |
typedef struct aml_resource_end_tag |
{ |
AML_RESOURCE_SMALL_HEADER_COMMON |
UINT8 Checksum; |
} AML_RESOURCE_END_TAG; |
/* |
* LARGE descriptors |
*/ |
#define AML_RESOURCE_LARGE_HEADER_COMMON \ |
UINT8 DescriptorType;\ |
UINT16 ResourceLength; |
typedef struct aml_resource_large_header |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
} AML_RESOURCE_LARGE_HEADER; |
/* General Flags for address space resource descriptors */ |
#define ACPI_RESOURCE_FLAG_DEC 2 |
#define ACPI_RESOURCE_FLAG_MIF 4 |
#define ACPI_RESOURCE_FLAG_MAF 8 |
typedef struct aml_resource_memory24 |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
UINT8 Flags; |
UINT16 Minimum; |
UINT16 Maximum; |
UINT16 Alignment; |
UINT16 AddressLength; |
} AML_RESOURCE_MEMORY24; |
typedef struct aml_resource_vendor_large |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
} AML_RESOURCE_VENDOR_LARGE; |
typedef struct aml_resource_memory32 |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
UINT8 Flags; |
UINT32 Minimum; |
UINT32 Maximum; |
UINT32 Alignment; |
UINT32 AddressLength; |
} AML_RESOURCE_MEMORY32; |
typedef struct aml_resource_fixed_memory32 |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
UINT8 Flags; |
UINT32 Address; |
UINT32 AddressLength; |
} AML_RESOURCE_FIXED_MEMORY32; |
#define AML_RESOURCE_ADDRESS_COMMON \ |
UINT8 ResourceType; \ |
UINT8 Flags; \ |
UINT8 SpecificFlags; |
typedef struct aml_resource_address |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
AML_RESOURCE_ADDRESS_COMMON |
} AML_RESOURCE_ADDRESS; |
typedef struct aml_resource_extended_address64 |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
AML_RESOURCE_ADDRESS_COMMON |
UINT8 RevisionID; |
UINT8 Reserved; |
UINT64 Granularity; |
UINT64 Minimum; |
UINT64 Maximum; |
UINT64 TranslationOffset; |
UINT64 AddressLength; |
UINT64 TypeSpecific; |
} AML_RESOURCE_EXTENDED_ADDRESS64; |
#define AML_RESOURCE_EXTENDED_ADDRESS_REVISION 1 /* ACPI 3.0 */ |
typedef struct aml_resource_address64 |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
AML_RESOURCE_ADDRESS_COMMON |
UINT64 Granularity; |
UINT64 Minimum; |
UINT64 Maximum; |
UINT64 TranslationOffset; |
UINT64 AddressLength; |
} AML_RESOURCE_ADDRESS64; |
typedef struct aml_resource_address32 |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
AML_RESOURCE_ADDRESS_COMMON |
UINT32 Granularity; |
UINT32 Minimum; |
UINT32 Maximum; |
UINT32 TranslationOffset; |
UINT32 AddressLength; |
} AML_RESOURCE_ADDRESS32; |
typedef struct aml_resource_address16 |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
AML_RESOURCE_ADDRESS_COMMON |
UINT16 Granularity; |
UINT16 Minimum; |
UINT16 Maximum; |
UINT16 TranslationOffset; |
UINT16 AddressLength; |
} AML_RESOURCE_ADDRESS16; |
typedef struct aml_resource_extended_irq |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
UINT8 Flags; |
UINT8 InterruptCount; |
UINT32 Interrupts[1]; |
/* ResSourceIndex, ResSource optional fields follow */ |
} AML_RESOURCE_EXTENDED_IRQ; |
typedef struct aml_resource_generic_register |
{ |
AML_RESOURCE_LARGE_HEADER_COMMON |
UINT8 AddressSpaceId; |
UINT8 BitWidth; |
UINT8 BitOffset; |
UINT8 AccessSize; /* ACPI 3.0, was previously Reserved */ |
UINT64 Address; |
} AML_RESOURCE_GENERIC_REGISTER; |
/* restore default alignment */ |
#pragma pack() |
/* Union of all resource descriptors, so we can allocate the worst case */ |
typedef union aml_resource |
{ |
/* Descriptor headers */ |
UINT8 DescriptorType; |
AML_RESOURCE_SMALL_HEADER SmallHeader; |
AML_RESOURCE_LARGE_HEADER LargeHeader; |
/* Small resource descriptors */ |
AML_RESOURCE_IRQ Irq; |
AML_RESOURCE_DMA Dma; |
AML_RESOURCE_START_DEPENDENT StartDpf; |
AML_RESOURCE_END_DEPENDENT EndDpf; |
AML_RESOURCE_IO Io; |
AML_RESOURCE_FIXED_IO FixedIo; |
AML_RESOURCE_VENDOR_SMALL VendorSmall; |
AML_RESOURCE_END_TAG EndTag; |
/* Large resource descriptors */ |
AML_RESOURCE_MEMORY24 Memory24; |
AML_RESOURCE_GENERIC_REGISTER GenericReg; |
AML_RESOURCE_VENDOR_LARGE VendorLarge; |
AML_RESOURCE_MEMORY32 Memory32; |
AML_RESOURCE_FIXED_MEMORY32 FixedMemory32; |
AML_RESOURCE_ADDRESS16 Address16; |
AML_RESOURCE_ADDRESS32 Address32; |
AML_RESOURCE_ADDRESS64 Address64; |
AML_RESOURCE_EXTENDED_ADDRESS64 ExtAddress64; |
AML_RESOURCE_EXTENDED_IRQ ExtendedIrq; |
/* Utility overlays */ |
AML_RESOURCE_ADDRESS Address; |
UINT32 DwordItem; |
UINT16 WordItem; |
UINT8 ByteItem; |
} AML_RESOURCE; |
#endif |
/drivers/devman/acpica/include/platform/accygwin.h |
---|
0,0 → 1,166 |
/****************************************************************************** |
* |
* Name: accygwin.h - OS specific defines, etc. for cygwin environment |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 |
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) if (GLptr) Acq=1; else Acq=0; |
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pending) Pending = 1 |
/* Cygwin uses GCC */ |
#include "acgcc.h" |
#endif /* __ACCYGWIN_H__ */ |
/drivers/devman/acpica/include/platform/acefi.h |
---|
0,0 → 1,147 |
/****************************************************************************** |
* |
* Name: acefi.h - OS specific defines, etc. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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__ */ |
/drivers/devman/acpica/include/platform/acenv.h |
---|
0,0 → 1,392 |
/****************************************************************************** |
* |
* Name: acenv.h - Host and compiler configuration |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACENV_H__ |
#define __ACENV_H__ |
/* |
* Environment configuration. The purpose of this file is to interface ACPICA |
* to the local environment. This includes compiler-specific, OS-specific, |
* and machine-specific configuration. |
*/ |
/* Types for ACPI_MUTEX_TYPE */ |
#define ACPI_BINARY_SEMAPHORE 0 |
#define ACPI_OSL_MUTEX 1 |
/* Types for DEBUGGER_THREADING */ |
#define DEBUGGER_SINGLE_THREADED 0 |
#define DEBUGGER_MULTI_THREADED 1 |
/****************************************************************************** |
* |
* Configuration for ACPI tools and utilities |
* |
*****************************************************************************/ |
/* iASL configuration */ |
#ifdef ACPI_ASL_COMPILER |
#define ACPI_APPLICATION |
#define ACPI_DISASSEMBLER |
#define ACPI_DEBUG_OUTPUT |
#define ACPI_CONSTANT_EVAL_ONLY |
#define ACPI_LARGE_NAMESPACE_NODE |
#define ACPI_DATA_TABLE_DISASSEMBLY |
#endif |
/* AcpiExec configuration */ |
#ifdef ACPI_EXEC_APP |
#define ACPI_APPLICATION |
#define ACPI_FULL_DEBUG |
#define ACPI_MUTEX_DEBUG |
#define ACPI_DBG_TRACK_ALLOCATIONS |
#endif |
/* Linkable ACPICA library */ |
#ifdef ACPI_LIBRARY |
#define ACPI_USE_LOCAL_CACHE |
#endif |
/* Common for all ACPICA applications */ |
#ifdef ACPI_APPLICATION |
#define ACPI_USE_SYSTEM_CLIBRARY |
#define ACPI_USE_LOCAL_CACHE |
#endif |
/* Common debug support */ |
#ifdef ACPI_FULL_DEBUG |
#define ACPI_DEBUGGER |
#define ACPI_DEBUG_OUTPUT |
#define ACPI_DISASSEMBLER |
#endif |
/*! [Begin] no source code translation */ |
/****************************************************************************** |
* |
* Host configuration files. The compiler configuration files are included |
* by the host files. |
* |
*****************************************************************************/ |
#include "ackolibri.h" |
/*! [End] no source code translation !*/ |
/****************************************************************************** |
* |
* Setup defaults for the required symbols that were not defined in one of |
* the host/compiler files above. |
* |
*****************************************************************************/ |
/* 64-bit data types */ |
#ifndef COMPILER_DEPENDENT_INT64 |
#define COMPILER_DEPENDENT_INT64 long long |
#endif |
#ifndef COMPILER_DEPENDENT_UINT64 |
#define COMPILER_DEPENDENT_UINT64 unsigned long long |
#endif |
/* Type of mutex supported by host. Default is binary semaphores. */ |
#ifndef ACPI_MUTEX_TYPE |
#define ACPI_MUTEX_TYPE ACPI_BINARY_SEMAPHORE |
#endif |
/* Global Lock acquire/release */ |
#ifndef ACPI_ACQUIRE_GLOBAL_LOCK |
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acquired) Acquired = 1 |
#endif |
#ifndef ACPI_RELEASE_GLOBAL_LOCK |
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pending) Pending = 0 |
#endif |
/* Flush CPU cache - used when going to sleep. Wbinvd or similar. */ |
#ifndef ACPI_FLUSH_CPU_CACHE |
#define ACPI_FLUSH_CPU_CACHE() |
#endif |
/* |
* Configurable 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 |
*/ |
#ifndef ACPI_SYSTEM_XFACE |
#define ACPI_SYSTEM_XFACE |
#endif |
#ifndef ACPI_EXTERNAL_XFACE |
#define ACPI_EXTERNAL_XFACE |
#endif |
#ifndef ACPI_INTERNAL_XFACE |
#define ACPI_INTERNAL_XFACE |
#endif |
#ifndef ACPI_INTERNAL_VAR_XFACE |
#define ACPI_INTERNAL_VAR_XFACE |
#endif |
/* |
* Debugger threading model |
* Use single threaded if the entire subsystem is contained in an application |
* Use multiple threaded when the subsystem is running in the kernel. |
* |
* By default the model is single threaded if ACPI_APPLICATION is set, |
* multi-threaded if ACPI_APPLICATION is not set. |
*/ |
#ifndef DEBUGGER_THREADING |
#ifdef ACPI_APPLICATION |
#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED |
#else |
#define DEBUGGER_THREADING DEBUGGER_MULTI_THREADED |
#endif |
#endif /* !DEBUGGER_THREADING */ |
/****************************************************************************** |
* |
* C library configuration |
* |
*****************************************************************************/ |
/* |
* ACPI_USE_SYSTEM_CLIBRARY - Define this if linking to an actual C library. |
* Otherwise, local versions of string/memory functions will be used. |
* ACPI_USE_STANDARD_HEADERS - Define this if linking to a C library and |
* the standard header files may be used. |
* |
* The ACPICA subsystem only uses low level C library functions that do not call |
* operating system services and may therefore be inlined in the code. |
* |
* It may be necessary to tailor these include files to the target |
* generation environment. |
*/ |
#ifdef ACPI_USE_SYSTEM_CLIBRARY |
/* Use the standard C library headers. We want to keep these to a minimum */ |
#ifdef ACPI_USE_STANDARD_HEADERS |
/* Use the standard headers from the standard locations */ |
#include <stdarg.h> |
#include <stdlib.h> |
#include <string.h> |
#include <ctype.h> |
#endif /* ACPI_USE_STANDARD_HEADERS */ |
/* We will be linking to the standard Clib functions */ |
#define ACPI_STRSTR(s1,s2) strstr((s1), (s2)) |
#define ACPI_STRCHR(s1,c) strchr((s1), (c)) |
#define ACPI_STRLEN(s) (ACPI_SIZE) strlen((s)) |
#define ACPI_STRCPY(d,s) (void) strcpy((d), (s)) |
#define ACPI_STRNCPY(d,s,n) (void) strncpy((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_STRNCMP(d,s,n) strncmp((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_STRCMP(d,s) strcmp((d), (s)) |
#define ACPI_STRCAT(d,s) (void) strcat((d), (s)) |
#define ACPI_STRNCAT(d,s,n) strncat((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_STRTOUL(d,s,n) strtoul((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_MEMCMP(s1,s2,n) memcmp((const char *)(s1), (const char *)(s2), (ACPI_SIZE)(n)) |
#define ACPI_MEMCPY(d,s,n) (void) memcpy((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_MEMSET(d,s,n) (void) memset((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_TOUPPER(i) toupper((int) (i)) |
#define ACPI_TOLOWER(i) tolower((int) (i)) |
#define ACPI_IS_XDIGIT(i) isxdigit((int) (i)) |
#define ACPI_IS_DIGIT(i) isdigit((int) (i)) |
#define ACPI_IS_SPACE(i) isspace((int) (i)) |
#define ACPI_IS_UPPER(i) isupper((int) (i)) |
#define ACPI_IS_PRINT(i) isprint((int) (i)) |
#define ACPI_IS_ALPHA(i) isalpha((int) (i)) |
#else |
/****************************************************************************** |
* |
* Not using native C library, use local implementations |
* |
*****************************************************************************/ |
/* |
* Use local definitions of C library macros and functions. These function |
* implementations may not be as efficient as an inline or assembly code |
* implementation provided by a native C library, but they are functionally |
* equivalent. |
*/ |
#ifndef va_arg |
#ifndef _VALIST |
#define _VALIST |
typedef char *va_list; |
#endif /* _VALIST */ |
/* Storage alignment properties */ |
#define _AUPBND (sizeof (ACPI_NATIVE_INT) - 1) |
#define _ADNBND (sizeof (ACPI_NATIVE_INT) - 1) |
/* Variable argument list macro definitions */ |
#define _Bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd))) |
#define va_arg(ap, T) (*(T *)(((ap) += (_Bnd (T, _AUPBND))) - (_Bnd (T,_ADNBND)))) |
#define va_end(ap) (void) 0 |
#define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_Bnd (A,_AUPBND)))) |
#endif /* va_arg */ |
/* Use the local (ACPICA) definitions of the clib functions */ |
#define ACPI_STRSTR(s1,s2) AcpiUtStrstr ((s1), (s2)) |
#define ACPI_STRCHR(s1,c) AcpiUtStrchr ((s1), (c)) |
#define ACPI_STRLEN(s) (ACPI_SIZE) AcpiUtStrlen ((s)) |
#define ACPI_STRCPY(d,s) (void) AcpiUtStrcpy ((d), (s)) |
#define ACPI_STRNCPY(d,s,n) (void) AcpiUtStrncpy ((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_STRNCMP(d,s,n) AcpiUtStrncmp ((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_STRCMP(d,s) AcpiUtStrcmp ((d), (s)) |
#define ACPI_STRCAT(d,s) (void) AcpiUtStrcat ((d), (s)) |
#define ACPI_STRNCAT(d,s,n) AcpiUtStrncat ((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_STRTOUL(d,s,n) AcpiUtStrtoul ((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_MEMCMP(s1,s2,n) AcpiUtMemcmp((const char *)(s1), (const char *)(s2), (ACPI_SIZE)(n)) |
#define ACPI_MEMCPY(d,s,n) (void) AcpiUtMemcpy ((d), (s), (ACPI_SIZE)(n)) |
#define ACPI_MEMSET(d,v,n) (void) AcpiUtMemset ((d), (v), (ACPI_SIZE)(n)) |
#define ACPI_TOUPPER(c) AcpiUtToUpper ((int) (c)) |
#define ACPI_TOLOWER(c) AcpiUtToLower ((int) (c)) |
#endif /* ACPI_USE_SYSTEM_CLIBRARY */ |
#endif /* __ACENV_H__ */ |
/drivers/devman/acpica/include/platform/acfreebsd.h |
---|
0,0 → 1,178 |
/****************************************************************************** |
* |
* Name: acfreebsd.h - OS specific defines, etc. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACFREEBSD_H__ |
#define __ACFREEBSD_H__ |
/* FreeBSD uses GCC */ |
#include "acgcc.h" |
#include <sys/types.h> |
#include <machine/acpica_machdep.h> |
#define ACPI_UINTPTR_T uintptr_t |
#define ACPI_USE_DO_WHILE_0 |
#define ACPI_USE_LOCAL_CACHE |
#define ACPI_USE_SYSTEM_CLIBRARY |
#ifdef _KERNEL |
#include <sys/ctype.h> |
#include <sys/param.h> |
#include <sys/systm.h> |
#include <sys/libkern.h> |
#include <machine/stdarg.h> |
#include "opt_acpi.h" |
#define ACPI_THREAD_ID lwpid_t |
#define ACPI_MUTEX_TYPE ACPI_OSL_MUTEX |
#ifdef ACPI_DEBUG |
#define ACPI_DEBUG_OUTPUT /* for backward compatibility */ |
#define ACPI_DISASSEMBLER |
#endif |
#ifdef ACPI_DEBUG_OUTPUT |
#include "opt_ddb.h" |
#ifdef DDB |
#define ACPI_DEBUGGER |
#endif /* DDB */ |
#endif /* ACPI_DEBUG_OUTPUT */ |
#ifdef DEBUGGER_THREADING |
#undef DEBUGGER_THREADING |
#endif /* DEBUGGER_THREADING */ |
#define DEBUGGER_THREADING 0 /* integrated with DDB */ |
#else /* _KERNEL */ |
#if __STDC_HOSTED__ |
#include <ctype.h> |
#endif |
#define ACPI_THREAD_ID pthread_t |
#define ACPI_USE_STANDARD_HEADERS |
#define ACPI_FLUSH_CPU_CACHE() |
#define __cdecl |
#endif /* _KERNEL */ |
#endif /* __ACFREEBSD_H__ */ |
/drivers/devman/acpica/include/platform/acgcc.h |
---|
0,0 → 1,137 |
/****************************************************************************** |
* |
* Name: acgcc.h - GCC specific defines, etc. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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 __ACGCC_H__ |
#define __ACGCC_H__ |
/* Function name is used for debug output. Non-ANSI, compiler-dependent */ |
#define ACPI_GET_FUNCTION_NAME __FUNCTION__ |
/* |
* This macro is used to tag functions as "printf-like" because |
* some compilers (like GCC) can catch printf format string problems. |
*/ |
#define ACPI_PRINTF_LIKE(c) __attribute__ ((__format__ (__printf__, c, c+1))) |
/* |
* Some compilers complain about unused variables. Sometimes we don't want to |
* use all the variables (for example, _AcpiModuleName). This allows us |
* to to tell the compiler warning in a per-variable manner that a variable |
* is unused. |
*/ |
#define ACPI_UNUSED_VAR __attribute__ ((unused)) |
#endif /* __ACGCC_H__ */ |
/drivers/devman/acpica/include/platform/acintel.h |
---|
0,0 → 1,168 |
/****************************************************************************** |
* |
* Name: acintel.h - VC specific defines, etc. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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__ */ |
/drivers/devman/acpica/include/platform/ackolibri.h |
---|
0,0 → 1,177 |
/****************************************************************************** |
* |
* Name: achaiku.h - OS specific defines, etc. |
* $Revision: 1.1 $ |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2005, 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 "acgcc.h" |
#include <linux\types.h> |
#include <linux\mutex.h> |
#include <syscall.h> |
#define ACPI_MACHINE_WIDTH 32 |
#define COMPILER_DEPENDENT_INT64 long long |
#define COMPILER_DEPENDENT_UINT64 unsigned long long |
#define asm __asm__ |
#define ACPI_USE_DO_WHILE_0 |
#define ACPI_THREAD_ID UINT32 |
#define ACPI_USE_NATIVE_DIVIDE |
#define ACPI_ASM_MACROS /* tell acenv.h */ |
#define ACPI_FLUSH_CPU_CACHE() __asm__ __volatile__("wbinvd"); |
/* The following Global Lock code stolen from NetBSD |
src/sys/arch/i386/include/acpi_func.h which in turn |
was stolen from Intel's spec document */ |
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ |
do { \ |
__asm__ __volatile__( \ |
"1: movl %1,%%eax ;" \ |
" movl %%eax,%%edx ;" \ |
" andl %2,%%edx ;" \ |
" btsl $0x1,%%edx ;" \ |
" adcl $0x0,%%edx ;" \ |
" lock ;" \ |
" cmpxchgl %%edx,%1 ;" \ |
" jnz 1b ;" \ |
" andb $0x3,%%dl ;" \ |
" cmpb $0x3,%%dl ;" \ |
" sbbl %%eax,%%eax ;" \ |
: "=&a" (Acq), "+m" (*GLptr) \ |
: "i" (~1L) \ |
: "edx"); \ |
} while (0) |
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \ |
do { \ |
__asm __volatile( \ |
"1: movl %1,%%eax ;" \ |
" andl %2,%%edx ;" \ |
" lock ;" \ |
" cmpxchgl %%edx,%1 ;" \ |
" jnz 1b ;" \ |
" andl $0x1,%%eax ;" \ |
: "=&a" (Acq), "+m" (*GLptr) \ |
: "i" (~3L) \ |
: "edx"); \ |
} while (0) |
/drivers/devman/acpica/include/platform/aclinux.h |
---|
0,0 → 1,233 |
/****************************************************************************** |
* |
* Name: aclinux.h - OS specific defines, etc. for Linux |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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__ */ |
/drivers/devman/acpica/include/platform/acmsvc.h |
---|
0,0 → 1,183 |
/****************************************************************************** |
* |
* Name: acmsvc.h - VC specific defines, etc. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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__ */ |
/drivers/devman/acpica/include/platform/acnetbsd.h |
---|
0,0 → 1,188 |
/****************************************************************************** |
* |
* Name: acnetbsd.h - OS specific defines, etc. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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__ */ |
/drivers/devman/acpica/include/platform/acos2.h |
---|
0,0 → 1,172 |
/****************************************************************************** |
* |
* Name: acos2.h - OS/2 specific defines, etc. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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__ */ |
/drivers/devman/acpica/include/platform/acwin.h |
---|
0,0 → 1,220 |
/****************************************************************************** |
* |
* Name: acwin.h - OS specific defines, etc. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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__ */ |
/drivers/devman/acpica/include/platform/acwin64.h |
---|
0,0 → 1,155 |
/****************************************************************************** |
* |
* Name: acwin.h - OS specific defines, etc. |
* |
*****************************************************************************/ |
/****************************************************************************** |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, 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__ */ |