acexcep.h revision 229989
117721Speter/****************************************************************************** 217721Speter * 317721Speter * Name: acexcep.h - Exception codes returned by the ACPI subsystem 417721Speter * 517721Speter *****************************************************************************/ 617721Speter 717721Speter/* 817721Speter * Copyright (C) 2000 - 2012, Intel Corp. 917721Speter * All rights reserved. 1017721Speter * 1117721Speter * Redistribution and use in source and binary forms, with or without 1217721Speter * modification, are permitted provided that the following conditions 1317721Speter * are met: 1417721Speter * 1. Redistributions of source code must retain the above copyright 1517721Speter * notice, this list of conditions, and the following disclaimer, 1617721Speter * without modification. 1717721Speter * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1817721Speter * substantially similar to the "NO WARRANTY" disclaimer below 1917721Speter * ("Disclaimer") and any redistribution must be conditioned upon 2017721Speter * including a substantially similar Disclaimer requirement for further 2117721Speter * binary redistribution. 2217721Speter * 3. Neither the names of the above-listed copyright holders nor the names 2317721Speter * of any contributors may be used to endorse or promote products derived 2417721Speter * from this software without specific prior written permission. 2517721Speter * 2617721Speter * Alternatively, this software may be distributed under the terms of the 2717721Speter * GNU General Public License ("GPL") version 2 as published by the Free 2817721Speter * Software Foundation. 2917721Speter * 3017721Speter * NO WARRANTY 3117721Speter * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 3217721Speter * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3317721Speter * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 3417721Speter * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3517721Speter * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3617721Speter * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3717721Speter * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3817721Speter * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 3917721Speter * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 4017721Speter * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 4117721Speter * POSSIBILITY OF SUCH DAMAGES. 4217721Speter */ 4317721Speter 4417721Speter#ifndef __ACEXCEP_H__ 4517721Speter#define __ACEXCEP_H__ 4617721Speter 4717721Speter 4817721Speter/* 4917721Speter * Exceptions returned by external ACPI interfaces 5017721Speter */ 5117721Speter#define AE_CODE_ENVIRONMENTAL 0x0000 5217721Speter#define AE_CODE_PROGRAMMER 0x1000 5317721Speter#define AE_CODE_ACPI_TABLES 0x2000 5417721Speter#define AE_CODE_AML 0x3000 5517721Speter#define AE_CODE_CONTROL 0x4000 5617721Speter#define AE_CODE_MASK 0xF000 5717721Speter 5817721Speter 5917721Speter#define ACPI_SUCCESS(a) (!(a)) 6017721Speter#define ACPI_FAILURE(a) (a) 6117721Speter 6217721Speter 6317721Speter#define AE_OK (ACPI_STATUS) 0x0000 6417721Speter 6517721Speter/* 6617721Speter * Environmental exceptions 6717721Speter */ 6817721Speter#define AE_ERROR (ACPI_STATUS) (0x0001 | AE_CODE_ENVIRONMENTAL) 6917721Speter#define AE_NO_ACPI_TABLES (ACPI_STATUS) (0x0002 | AE_CODE_ENVIRONMENTAL) 7017721Speter#define AE_NO_NAMESPACE (ACPI_STATUS) (0x0003 | AE_CODE_ENVIRONMENTAL) 7117721Speter#define AE_NO_MEMORY (ACPI_STATUS) (0x0004 | AE_CODE_ENVIRONMENTAL) 7217721Speter#define AE_NOT_FOUND (ACPI_STATUS) (0x0005 | AE_CODE_ENVIRONMENTAL) 7317721Speter#define AE_NOT_EXIST (ACPI_STATUS) (0x0006 | AE_CODE_ENVIRONMENTAL) 7417721Speter#define AE_ALREADY_EXISTS (ACPI_STATUS) (0x0007 | AE_CODE_ENVIRONMENTAL) 7517721Speter#define AE_TYPE (ACPI_STATUS) (0x0008 | AE_CODE_ENVIRONMENTAL) 7617721Speter#define AE_NULL_OBJECT (ACPI_STATUS) (0x0009 | AE_CODE_ENVIRONMENTAL) 7717721Speter#define AE_NULL_ENTRY (ACPI_STATUS) (0x000A | AE_CODE_ENVIRONMENTAL) 7817721Speter#define AE_BUFFER_OVERFLOW (ACPI_STATUS) (0x000B | AE_CODE_ENVIRONMENTAL) 7917721Speter#define AE_STACK_OVERFLOW (ACPI_STATUS) (0x000C | AE_CODE_ENVIRONMENTAL) 8017721Speter#define AE_STACK_UNDERFLOW (ACPI_STATUS) (0x000D | AE_CODE_ENVIRONMENTAL) 8117721Speter#define AE_NOT_IMPLEMENTED (ACPI_STATUS) (0x000E | AE_CODE_ENVIRONMENTAL) 8217721Speter#define AE_SUPPORT (ACPI_STATUS) (0x000F | AE_CODE_ENVIRONMENTAL) 8317721Speter#define AE_LIMIT (ACPI_STATUS) (0x0010 | AE_CODE_ENVIRONMENTAL) 8417721Speter#define AE_TIME (ACPI_STATUS) (0x0011 | AE_CODE_ENVIRONMENTAL) 8517721Speter#define AE_ACQUIRE_DEADLOCK (ACPI_STATUS) (0x0012 | AE_CODE_ENVIRONMENTAL) 8617721Speter#define AE_RELEASE_DEADLOCK (ACPI_STATUS) (0x0013 | AE_CODE_ENVIRONMENTAL) 8717721Speter#define AE_NOT_ACQUIRED (ACPI_STATUS) (0x0014 | AE_CODE_ENVIRONMENTAL) 8817721Speter#define AE_ALREADY_ACQUIRED (ACPI_STATUS) (0x0015 | AE_CODE_ENVIRONMENTAL) 8917721Speter#define AE_NO_HARDWARE_RESPONSE (ACPI_STATUS) (0x0016 | AE_CODE_ENVIRONMENTAL) 9017721Speter#define AE_NO_GLOBAL_LOCK (ACPI_STATUS) (0x0017 | AE_CODE_ENVIRONMENTAL) 9117721Speter#define AE_ABORT_METHOD (ACPI_STATUS) (0x0018 | AE_CODE_ENVIRONMENTAL) 9217721Speter#define AE_SAME_HANDLER (ACPI_STATUS) (0x0019 | AE_CODE_ENVIRONMENTAL) 9317721Speter#define AE_NO_HANDLER (ACPI_STATUS) (0x001A | AE_CODE_ENVIRONMENTAL) 9417721Speter#define AE_OWNER_ID_LIMIT (ACPI_STATUS) (0x001B | AE_CODE_ENVIRONMENTAL) 9517721Speter 9617721Speter#define AE_CODE_ENV_MAX 0x001B 9717721Speter 9817721Speter 9917721Speter/* 10017721Speter * Programmer exceptions 10117721Speter */ 10217721Speter#define AE_BAD_PARAMETER (ACPI_STATUS) (0x0001 | AE_CODE_PROGRAMMER) 10317721Speter#define AE_BAD_CHARACTER (ACPI_STATUS) (0x0002 | AE_CODE_PROGRAMMER) 10417721Speter#define AE_BAD_PATHNAME (ACPI_STATUS) (0x0003 | AE_CODE_PROGRAMMER) 10517721Speter#define AE_BAD_DATA (ACPI_STATUS) (0x0004 | AE_CODE_PROGRAMMER) 10617721Speter#define AE_BAD_HEX_CONSTANT (ACPI_STATUS) (0x0005 | AE_CODE_PROGRAMMER) 10717721Speter#define AE_BAD_OCTAL_CONSTANT (ACPI_STATUS) (0x0006 | AE_CODE_PROGRAMMER) 10817721Speter#define AE_BAD_DECIMAL_CONSTANT (ACPI_STATUS) (0x0007 | AE_CODE_PROGRAMMER) 10917721Speter#define AE_MISSING_ARGUMENTS (ACPI_STATUS) (0x0008 | AE_CODE_PROGRAMMER) 11017721Speter#define AE_BAD_ADDRESS (ACPI_STATUS) (0x0009 | AE_CODE_PROGRAMMER) 11117721Speter 11217721Speter#define AE_CODE_PGM_MAX 0x0009 11317721Speter 11417721Speter 11517721Speter/* 11617721Speter * Acpi table exceptions 11717721Speter */ 11817721Speter#define AE_BAD_SIGNATURE (ACPI_STATUS) (0x0001 | AE_CODE_ACPI_TABLES) 11917721Speter#define AE_BAD_HEADER (ACPI_STATUS) (0x0002 | AE_CODE_ACPI_TABLES) 12017721Speter#define AE_BAD_CHECKSUM (ACPI_STATUS) (0x0003 | AE_CODE_ACPI_TABLES) 12117721Speter#define AE_BAD_VALUE (ACPI_STATUS) (0x0004 | AE_CODE_ACPI_TABLES) 12217721Speter#define AE_INVALID_TABLE_LENGTH (ACPI_STATUS) (0x0005 | AE_CODE_ACPI_TABLES) 12317721Speter 12417721Speter#define AE_CODE_TBL_MAX 0x0005 12517721Speter 12617721Speter 12717721Speter/* 12817721Speter * AML exceptions. These are caused by problems with 12917721Speter * the actual AML byte stream 13017721Speter */ 13117721Speter#define AE_AML_BAD_OPCODE (ACPI_STATUS) (0x0001 | AE_CODE_AML) 13217721Speter#define AE_AML_NO_OPERAND (ACPI_STATUS) (0x0002 | AE_CODE_AML) 13317721Speter#define AE_AML_OPERAND_TYPE (ACPI_STATUS) (0x0003 | AE_CODE_AML) 13417721Speter#define AE_AML_OPERAND_VALUE (ACPI_STATUS) (0x0004 | AE_CODE_AML) 13517721Speter#define AE_AML_UNINITIALIZED_LOCAL (ACPI_STATUS) (0x0005 | AE_CODE_AML) 13617721Speter#define AE_AML_UNINITIALIZED_ARG (ACPI_STATUS) (0x0006 | AE_CODE_AML) 13717721Speter#define AE_AML_UNINITIALIZED_ELEMENT (ACPI_STATUS) (0x0007 | AE_CODE_AML) 13817721Speter#define AE_AML_NUMERIC_OVERFLOW (ACPI_STATUS) (0x0008 | AE_CODE_AML) 13917721Speter#define AE_AML_REGION_LIMIT (ACPI_STATUS) (0x0009 | AE_CODE_AML) 14017721Speter#define AE_AML_BUFFER_LIMIT (ACPI_STATUS) (0x000A | AE_CODE_AML) 14117721Speter#define AE_AML_PACKAGE_LIMIT (ACPI_STATUS) (0x000B | AE_CODE_AML) 14217721Speter#define AE_AML_DIVIDE_BY_ZERO (ACPI_STATUS) (0x000C | AE_CODE_AML) 14317721Speter#define AE_AML_BAD_NAME (ACPI_STATUS) (0x000D | AE_CODE_AML) 14417721Speter#define AE_AML_NAME_NOT_FOUND (ACPI_STATUS) (0x000E | AE_CODE_AML) 14517721Speter#define AE_AML_INTERNAL (ACPI_STATUS) (0x000F | AE_CODE_AML) 14617721Speter#define AE_AML_INVALID_SPACE_ID (ACPI_STATUS) (0x0010 | AE_CODE_AML) 14717721Speter#define AE_AML_STRING_LIMIT (ACPI_STATUS) (0x0011 | AE_CODE_AML) 14817721Speter#define AE_AML_NO_RETURN_VALUE (ACPI_STATUS) (0x0012 | AE_CODE_AML) 14917721Speter#define AE_AML_METHOD_LIMIT (ACPI_STATUS) (0x0013 | AE_CODE_AML) 15017721Speter#define AE_AML_NOT_OWNER (ACPI_STATUS) (0x0014 | AE_CODE_AML) 15117721Speter#define AE_AML_MUTEX_ORDER (ACPI_STATUS) (0x0015 | AE_CODE_AML) 15217721Speter#define AE_AML_MUTEX_NOT_ACQUIRED (ACPI_STATUS) (0x0016 | AE_CODE_AML) 15317721Speter#define AE_AML_INVALID_RESOURCE_TYPE (ACPI_STATUS) (0x0017 | AE_CODE_AML) 15417721Speter#define AE_AML_INVALID_INDEX (ACPI_STATUS) (0x0018 | AE_CODE_AML) 15517721Speter#define AE_AML_REGISTER_LIMIT (ACPI_STATUS) (0x0019 | AE_CODE_AML) 15617721Speter#define AE_AML_NO_WHILE (ACPI_STATUS) (0x001A | AE_CODE_AML) 15717721Speter#define AE_AML_ALIGNMENT (ACPI_STATUS) (0x001B | AE_CODE_AML) 15817721Speter#define AE_AML_NO_RESOURCE_END_TAG (ACPI_STATUS) (0x001C | AE_CODE_AML) 15917721Speter#define AE_AML_BAD_RESOURCE_VALUE (ACPI_STATUS) (0x001D | AE_CODE_AML) 16017721Speter#define AE_AML_CIRCULAR_REFERENCE (ACPI_STATUS) (0x001E | AE_CODE_AML) 16117721Speter#define AE_AML_BAD_RESOURCE_LENGTH (ACPI_STATUS) (0x001F | AE_CODE_AML) 16217721Speter#define AE_AML_ILLEGAL_ADDRESS (ACPI_STATUS) (0x0020 | AE_CODE_AML) 16317721Speter#define AE_AML_INFINITE_LOOP (ACPI_STATUS) (0x0021 | AE_CODE_AML) 16417721Speter 16517721Speter#define AE_CODE_AML_MAX 0x0021 16617721Speter 16717721Speter 16817721Speter/* 16917721Speter * Internal exceptions used for control 17017721Speter */ 17117721Speter#define AE_CTRL_RETURN_VALUE (ACPI_STATUS) (0x0001 | AE_CODE_CONTROL) 17217721Speter#define AE_CTRL_PENDING (ACPI_STATUS) (0x0002 | AE_CODE_CONTROL) 17317721Speter#define AE_CTRL_TERMINATE (ACPI_STATUS) (0x0003 | AE_CODE_CONTROL) 17417721Speter#define AE_CTRL_TRUE (ACPI_STATUS) (0x0004 | AE_CODE_CONTROL) 17517721Speter#define AE_CTRL_FALSE (ACPI_STATUS) (0x0005 | AE_CODE_CONTROL) 17617721Speter#define AE_CTRL_DEPTH (ACPI_STATUS) (0x0006 | AE_CODE_CONTROL) 17717721Speter#define AE_CTRL_END (ACPI_STATUS) (0x0007 | AE_CODE_CONTROL) 17817721Speter#define AE_CTRL_TRANSFER (ACPI_STATUS) (0x0008 | AE_CODE_CONTROL) 17917721Speter#define AE_CTRL_BREAK (ACPI_STATUS) (0x0009 | AE_CODE_CONTROL) 18017721Speter#define AE_CTRL_CONTINUE (ACPI_STATUS) (0x000A | AE_CODE_CONTROL) 18117721Speter#define AE_CTRL_SKIP (ACPI_STATUS) (0x000B | AE_CODE_CONTROL) 18217721Speter#define AE_CTRL_PARSE_CONTINUE (ACPI_STATUS) (0x000C | AE_CODE_CONTROL) 18317721Speter#define AE_CTRL_PARSE_PENDING (ACPI_STATUS) (0x000D | AE_CODE_CONTROL) 18417721Speter 18517721Speter#define AE_CODE_CTRL_MAX 0x000D 18617721Speter 18717721Speter 18817721Speter/* Exception strings for AcpiFormatException */ 18917721Speter 19017721Speter#ifdef DEFINE_ACPI_GLOBALS 19117721Speter 19217721Speter/* 19317721Speter * String versions of the exception codes above 19417721Speter * These strings must match the corresponding defines exactly 19517721Speter */ 19617721Speterchar const *AcpiGbl_ExceptionNames_Env[] = 19717721Speter{ 19817721Speter "AE_OK", 19917721Speter "AE_ERROR", 20017721Speter "AE_NO_ACPI_TABLES", 20117721Speter "AE_NO_NAMESPACE", 20217721Speter "AE_NO_MEMORY", 20317721Speter "AE_NOT_FOUND", 20417721Speter "AE_NOT_EXIST", 20517721Speter "AE_ALREADY_EXISTS", 20617721Speter "AE_TYPE", 20717721Speter "AE_NULL_OBJECT", 20817721Speter "AE_NULL_ENTRY", 20917721Speter "AE_BUFFER_OVERFLOW", 21017721Speter "AE_STACK_OVERFLOW", 21117721Speter "AE_STACK_UNDERFLOW", 21217721Speter "AE_NOT_IMPLEMENTED", 21317721Speter "AE_SUPPORT", 21417721Speter "AE_LIMIT", 21517721Speter "AE_TIME", 21617721Speter "AE_ACQUIRE_DEADLOCK", 21717721Speter "AE_RELEASE_DEADLOCK", 21817721Speter "AE_NOT_ACQUIRED", 21917721Speter "AE_ALREADY_ACQUIRED", 22017721Speter "AE_NO_HARDWARE_RESPONSE", 22117721Speter "AE_NO_GLOBAL_LOCK", 22217721Speter "AE_ABORT_METHOD", 22317721Speter "AE_SAME_HANDLER", 22417721Speter "AE_NO_HANDLER", 22517721Speter "AE_OWNER_ID_LIMIT" 22617721Speter}; 22717721Speter 22817721Speterchar const *AcpiGbl_ExceptionNames_Pgm[] = 22917721Speter{ 23017721Speter NULL, 23117721Speter "AE_BAD_PARAMETER", 23217721Speter "AE_BAD_CHARACTER", 23317721Speter "AE_BAD_PATHNAME", 23417721Speter "AE_BAD_DATA", 23517721Speter "AE_BAD_HEX_CONSTANT", 23617721Speter "AE_BAD_OCTAL_CONSTANT", 23717721Speter "AE_BAD_DECIMAL_CONSTANT", 23817721Speter "AE_MISSING_ARGUMENTS", 23917721Speter "AE_BAD_ADDRESS" 24017721Speter}; 24117721Speter 24217721Speterchar const *AcpiGbl_ExceptionNames_Tbl[] = 24317721Speter{ 24417721Speter NULL, 24517721Speter "AE_BAD_SIGNATURE", 24617721Speter "AE_BAD_HEADER", 24717721Speter "AE_BAD_CHECKSUM", 24817721Speter "AE_BAD_VALUE", 24917721Speter "AE_INVALID_TABLE_LENGTH" 25017721Speter}; 25117721Speter 25217721Speterchar const *AcpiGbl_ExceptionNames_Aml[] = 25317721Speter{ 25417721Speter NULL, 25517721Speter "AE_AML_BAD_OPCODE", 25617721Speter "AE_AML_NO_OPERAND", 25717721Speter "AE_AML_OPERAND_TYPE", 25817721Speter "AE_AML_OPERAND_VALUE", 25917721Speter "AE_AML_UNINITIALIZED_LOCAL", 26017721Speter "AE_AML_UNINITIALIZED_ARG", 26117721Speter "AE_AML_UNINITIALIZED_ELEMENT", 26217721Speter "AE_AML_NUMERIC_OVERFLOW", 26317721Speter "AE_AML_REGION_LIMIT", 26417721Speter "AE_AML_BUFFER_LIMIT", 26517721Speter "AE_AML_PACKAGE_LIMIT", 26617721Speter "AE_AML_DIVIDE_BY_ZERO", 26717721Speter "AE_AML_BAD_NAME", 26817721Speter "AE_AML_NAME_NOT_FOUND", 26917721Speter "AE_AML_INTERNAL", 27017721Speter "AE_AML_INVALID_SPACE_ID", 27117721Speter "AE_AML_STRING_LIMIT", 27217721Speter "AE_AML_NO_RETURN_VALUE", 27317721Speter "AE_AML_METHOD_LIMIT", 27417721Speter "AE_AML_NOT_OWNER", 27517721Speter "AE_AML_MUTEX_ORDER", 27617721Speter "AE_AML_MUTEX_NOT_ACQUIRED", 27717721Speter "AE_AML_INVALID_RESOURCE_TYPE", 27817721Speter "AE_AML_INVALID_INDEX", 27917721Speter "AE_AML_REGISTER_LIMIT", 28017721Speter "AE_AML_NO_WHILE", 28117721Speter "AE_AML_ALIGNMENT", 28217721Speter "AE_AML_NO_RESOURCE_END_TAG", 28317721Speter "AE_AML_BAD_RESOURCE_VALUE", 28417721Speter "AE_AML_CIRCULAR_REFERENCE", 28517721Speter "AE_AML_BAD_RESOURCE_LENGTH", 28617721Speter "AE_AML_ILLEGAL_ADDRESS", 28717721Speter "AE_AML_INFINITE_LOOP" 28817721Speter}; 28917721Speter 29017721Speterchar const *AcpiGbl_ExceptionNames_Ctrl[] = 29117721Speter{ 29217721Speter NULL, 29317721Speter "AE_CTRL_RETURN_VALUE", 29417721Speter "AE_CTRL_PENDING", 29517721Speter "AE_CTRL_TERMINATE", 29617721Speter "AE_CTRL_TRUE", 29717721Speter "AE_CTRL_FALSE", 29817721Speter "AE_CTRL_DEPTH", 29917721Speter "AE_CTRL_END", 30017721Speter "AE_CTRL_TRANSFER", 30117721Speter "AE_CTRL_BREAK", 30217721Speter "AE_CTRL_CONTINUE", 30317721Speter "AE_CTRL_SKIP", 30417721Speter "AE_CTRL_PARSE_CONTINUE", 30517721Speter "AE_CTRL_PARSE_PENDING" 30617721Speter}; 30717721Speter 30817721Speter#endif /* ACPI GLOBALS */ 30917721Speter 31017721Speter#endif /* __ACEXCEP_H__ */ 31117721Speter