acexcep.h revision 245582
164777Snyan/****************************************************************************** 264777Snyan * 364777Snyan * Name: acexcep.h - Exception codes returned by the ACPI subsystem 464777Snyan * 564777Snyan *****************************************************************************/ 664777Snyan 764777Snyan/* 864777Snyan * Copyright (C) 2000 - 2013, Intel Corp. 964777Snyan * All rights reserved. 1064777Snyan * 1164777Snyan * Redistribution and use in source and binary forms, with or without 1264777Snyan * modification, are permitted provided that the following conditions 1364777Snyan * are met: 1464777Snyan * 1. Redistributions of source code must retain the above copyright 1564777Snyan * notice, this list of conditions, and the following disclaimer, 1664777Snyan * without modification. 1764777Snyan * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1864777Snyan * substantially similar to the "NO WARRANTY" disclaimer below 1964777Snyan * ("Disclaimer") and any redistribution must be conditioned upon 2064777Snyan * including a substantially similar Disclaimer requirement for further 2164777Snyan * binary redistribution. 2264777Snyan * 3. Neither the names of the above-listed copyright holders nor the names 2364777Snyan * of any contributors may be used to endorse or promote products derived 2464777Snyan * from this software without specific prior written permission. 2564777Snyan * 2664777Snyan * Alternatively, this software may be distributed under the terms of the 2764777Snyan * GNU General Public License ("GPL") version 2 as published by the Free 2864777Snyan * Software Foundation. 2964777Snyan * 3064777Snyan * NO WARRANTY 3164777Snyan * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 3264777Snyan * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3364777Snyan * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 3464777Snyan * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3564777Snyan * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3664777Snyan * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3764777Snyan * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3864777Snyan * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 3964777Snyan * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 4064777Snyan * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 4164777Snyan * POSSIBILITY OF SUCH DAMAGES. 4264777Snyan */ 4364777Snyan 4464777Snyan#ifndef __ACEXCEP_H__ 4564777Snyan#define __ACEXCEP_H__ 4664777Snyan 4764777Snyan 4864777Snyan/* 4964777Snyan * Exceptions returned by external ACPI interfaces 5064777Snyan */ 5164777Snyan#define AE_CODE_ENVIRONMENTAL 0x0000 5264777Snyan#define AE_CODE_PROGRAMMER 0x1000 5364777Snyan#define AE_CODE_ACPI_TABLES 0x2000 5464777Snyan#define AE_CODE_AML 0x3000 5564777Snyan#define AE_CODE_CONTROL 0x4000 5664777Snyan#define AE_CODE_MAX 0x4000 5764777Snyan#define AE_CODE_MASK 0xF000 5864777Snyan 5964777Snyan 6064777Snyan#define ACPI_SUCCESS(a) (!(a)) 6164777Snyan#define ACPI_FAILURE(a) (a) 6264777Snyan 6364777Snyan 6464777Snyan#define AE_OK (ACPI_STATUS) 0x0000 6564777Snyan 6664777Snyan/* 6764777Snyan * Environmental exceptions 6864777Snyan */ 6964777Snyan#define AE_ERROR (ACPI_STATUS) (0x0001 | AE_CODE_ENVIRONMENTAL) 7064777Snyan#define AE_NO_ACPI_TABLES (ACPI_STATUS) (0x0002 | AE_CODE_ENVIRONMENTAL) 7164777Snyan#define AE_NO_NAMESPACE (ACPI_STATUS) (0x0003 | AE_CODE_ENVIRONMENTAL) 7264777Snyan#define AE_NO_MEMORY (ACPI_STATUS) (0x0004 | AE_CODE_ENVIRONMENTAL) 7364777Snyan#define AE_NOT_FOUND (ACPI_STATUS) (0x0005 | AE_CODE_ENVIRONMENTAL) 7464777Snyan#define AE_NOT_EXIST (ACPI_STATUS) (0x0006 | AE_CODE_ENVIRONMENTAL) 7564777Snyan#define AE_ALREADY_EXISTS (ACPI_STATUS) (0x0007 | AE_CODE_ENVIRONMENTAL) 7664777Snyan#define AE_TYPE (ACPI_STATUS) (0x0008 | AE_CODE_ENVIRONMENTAL) 7764777Snyan#define AE_NULL_OBJECT (ACPI_STATUS) (0x0009 | AE_CODE_ENVIRONMENTAL) 7864777Snyan#define AE_NULL_ENTRY (ACPI_STATUS) (0x000A | AE_CODE_ENVIRONMENTAL) 7964777Snyan#define AE_BUFFER_OVERFLOW (ACPI_STATUS) (0x000B | AE_CODE_ENVIRONMENTAL) 8064777Snyan#define AE_STACK_OVERFLOW (ACPI_STATUS) (0x000C | AE_CODE_ENVIRONMENTAL) 8164777Snyan#define AE_STACK_UNDERFLOW (ACPI_STATUS) (0x000D | AE_CODE_ENVIRONMENTAL) 8264777Snyan#define AE_NOT_IMPLEMENTED (ACPI_STATUS) (0x000E | AE_CODE_ENVIRONMENTAL) 8364777Snyan#define AE_SUPPORT (ACPI_STATUS) (0x000F | AE_CODE_ENVIRONMENTAL) 8464777Snyan#define AE_LIMIT (ACPI_STATUS) (0x0010 | AE_CODE_ENVIRONMENTAL) 8564777Snyan#define AE_TIME (ACPI_STATUS) (0x0011 | AE_CODE_ENVIRONMENTAL) 8664777Snyan#define AE_ACQUIRE_DEADLOCK (ACPI_STATUS) (0x0012 | AE_CODE_ENVIRONMENTAL) 8764777Snyan#define AE_RELEASE_DEADLOCK (ACPI_STATUS) (0x0013 | AE_CODE_ENVIRONMENTAL) 8864777Snyan#define AE_NOT_ACQUIRED (ACPI_STATUS) (0x0014 | AE_CODE_ENVIRONMENTAL) 8964777Snyan#define AE_ALREADY_ACQUIRED (ACPI_STATUS) (0x0015 | AE_CODE_ENVIRONMENTAL) 9064777Snyan#define AE_NO_HARDWARE_RESPONSE (ACPI_STATUS) (0x0016 | AE_CODE_ENVIRONMENTAL) 9164777Snyan#define AE_NO_GLOBAL_LOCK (ACPI_STATUS) (0x0017 | AE_CODE_ENVIRONMENTAL) 9264777Snyan#define AE_ABORT_METHOD (ACPI_STATUS) (0x0018 | AE_CODE_ENVIRONMENTAL) 9364777Snyan#define AE_SAME_HANDLER (ACPI_STATUS) (0x0019 | AE_CODE_ENVIRONMENTAL) 9464777Snyan#define AE_NO_HANDLER (ACPI_STATUS) (0x001A | AE_CODE_ENVIRONMENTAL) 9564777Snyan#define AE_OWNER_ID_LIMIT (ACPI_STATUS) (0x001B | AE_CODE_ENVIRONMENTAL) 9664777Snyan#define AE_NOT_CONFIGURED (ACPI_STATUS) (0x001C | AE_CODE_ENVIRONMENTAL) 9764777Snyan 9864777Snyan#define AE_CODE_ENV_MAX 0x001C 9964777Snyan 10064777Snyan 10164777Snyan/* 10264777Snyan * Programmer exceptions 10364777Snyan */ 10464777Snyan#define AE_BAD_PARAMETER (ACPI_STATUS) (0x0001 | AE_CODE_PROGRAMMER) 10564777Snyan#define AE_BAD_CHARACTER (ACPI_STATUS) (0x0002 | AE_CODE_PROGRAMMER) 10664777Snyan#define AE_BAD_PATHNAME (ACPI_STATUS) (0x0003 | AE_CODE_PROGRAMMER) 10764777Snyan#define AE_BAD_DATA (ACPI_STATUS) (0x0004 | AE_CODE_PROGRAMMER) 10864777Snyan#define AE_BAD_HEX_CONSTANT (ACPI_STATUS) (0x0005 | AE_CODE_PROGRAMMER) 10964777Snyan#define AE_BAD_OCTAL_CONSTANT (ACPI_STATUS) (0x0006 | AE_CODE_PROGRAMMER) 11064777Snyan#define AE_BAD_DECIMAL_CONSTANT (ACPI_STATUS) (0x0007 | AE_CODE_PROGRAMMER) 11164777Snyan#define AE_MISSING_ARGUMENTS (ACPI_STATUS) (0x0008 | AE_CODE_PROGRAMMER) 11264777Snyan#define AE_BAD_ADDRESS (ACPI_STATUS) (0x0009 | AE_CODE_PROGRAMMER) 11364777Snyan 11464777Snyan#define AE_CODE_PGM_MAX 0x0009 11564777Snyan 11664777Snyan 11764777Snyan/* 11864777Snyan * Acpi table exceptions 11964777Snyan */ 12064777Snyan#define AE_BAD_SIGNATURE (ACPI_STATUS) (0x0001 | AE_CODE_ACPI_TABLES) 12164777Snyan#define AE_BAD_HEADER (ACPI_STATUS) (0x0002 | AE_CODE_ACPI_TABLES) 12264777Snyan#define AE_BAD_CHECKSUM (ACPI_STATUS) (0x0003 | AE_CODE_ACPI_TABLES) 12364777Snyan#define AE_BAD_VALUE (ACPI_STATUS) (0x0004 | AE_CODE_ACPI_TABLES) 12464777Snyan#define AE_INVALID_TABLE_LENGTH (ACPI_STATUS) (0x0005 | AE_CODE_ACPI_TABLES) 12564777Snyan 12664777Snyan#define AE_CODE_TBL_MAX 0x0005 12764777Snyan 12864777Snyan 12964777Snyan/* 13064777Snyan * AML exceptions. These are caused by problems with 13164777Snyan * the actual AML byte stream 13264777Snyan */ 13364777Snyan#define AE_AML_BAD_OPCODE (ACPI_STATUS) (0x0001 | AE_CODE_AML) 13464777Snyan#define AE_AML_NO_OPERAND (ACPI_STATUS) (0x0002 | AE_CODE_AML) 13564777Snyan#define AE_AML_OPERAND_TYPE (ACPI_STATUS) (0x0003 | AE_CODE_AML) 13664777Snyan#define AE_AML_OPERAND_VALUE (ACPI_STATUS) (0x0004 | AE_CODE_AML) 13764777Snyan#define AE_AML_UNINITIALIZED_LOCAL (ACPI_STATUS) (0x0005 | AE_CODE_AML) 13864777Snyan#define AE_AML_UNINITIALIZED_ARG (ACPI_STATUS) (0x0006 | AE_CODE_AML) 13964777Snyan#define AE_AML_UNINITIALIZED_ELEMENT (ACPI_STATUS) (0x0007 | AE_CODE_AML) 14064777Snyan#define AE_AML_NUMERIC_OVERFLOW (ACPI_STATUS) (0x0008 | AE_CODE_AML) 14164777Snyan#define AE_AML_REGION_LIMIT (ACPI_STATUS) (0x0009 | AE_CODE_AML) 14264777Snyan#define AE_AML_BUFFER_LIMIT (ACPI_STATUS) (0x000A | AE_CODE_AML) 14364777Snyan#define AE_AML_PACKAGE_LIMIT (ACPI_STATUS) (0x000B | AE_CODE_AML) 14464777Snyan#define AE_AML_DIVIDE_BY_ZERO (ACPI_STATUS) (0x000C | AE_CODE_AML) 14564777Snyan#define AE_AML_BAD_NAME (ACPI_STATUS) (0x000D | AE_CODE_AML) 14664777Snyan#define AE_AML_NAME_NOT_FOUND (ACPI_STATUS) (0x000E | AE_CODE_AML) 14764777Snyan#define AE_AML_INTERNAL (ACPI_STATUS) (0x000F | AE_CODE_AML) 14864777Snyan#define AE_AML_INVALID_SPACE_ID (ACPI_STATUS) (0x0010 | AE_CODE_AML) 14964777Snyan#define AE_AML_STRING_LIMIT (ACPI_STATUS) (0x0011 | AE_CODE_AML) 15064777Snyan#define AE_AML_NO_RETURN_VALUE (ACPI_STATUS) (0x0012 | AE_CODE_AML) 15164777Snyan#define AE_AML_METHOD_LIMIT (ACPI_STATUS) (0x0013 | AE_CODE_AML) 15264777Snyan#define AE_AML_NOT_OWNER (ACPI_STATUS) (0x0014 | AE_CODE_AML) 15364777Snyan#define AE_AML_MUTEX_ORDER (ACPI_STATUS) (0x0015 | AE_CODE_AML) 15464777Snyan#define AE_AML_MUTEX_NOT_ACQUIRED (ACPI_STATUS) (0x0016 | AE_CODE_AML) 15564777Snyan#define AE_AML_INVALID_RESOURCE_TYPE (ACPI_STATUS) (0x0017 | AE_CODE_AML) 15664777Snyan#define AE_AML_INVALID_INDEX (ACPI_STATUS) (0x0018 | AE_CODE_AML) 15764777Snyan#define AE_AML_REGISTER_LIMIT (ACPI_STATUS) (0x0019 | AE_CODE_AML) 15864777Snyan#define AE_AML_NO_WHILE (ACPI_STATUS) (0x001A | AE_CODE_AML) 15964777Snyan#define AE_AML_ALIGNMENT (ACPI_STATUS) (0x001B | AE_CODE_AML) 16064777Snyan#define AE_AML_NO_RESOURCE_END_TAG (ACPI_STATUS) (0x001C | AE_CODE_AML) 16164777Snyan#define AE_AML_BAD_RESOURCE_VALUE (ACPI_STATUS) (0x001D | AE_CODE_AML) 16264777Snyan#define AE_AML_CIRCULAR_REFERENCE (ACPI_STATUS) (0x001E | AE_CODE_AML) 16364777Snyan#define AE_AML_BAD_RESOURCE_LENGTH (ACPI_STATUS) (0x001F | AE_CODE_AML) 16464777Snyan#define AE_AML_ILLEGAL_ADDRESS (ACPI_STATUS) (0x0020 | AE_CODE_AML) 16564777Snyan#define AE_AML_INFINITE_LOOP (ACPI_STATUS) (0x0021 | AE_CODE_AML) 16664777Snyan 16764777Snyan#define AE_CODE_AML_MAX 0x0021 16864777Snyan 16964777Snyan 17064777Snyan/* 17164777Snyan * Internal exceptions used for control 17264777Snyan */ 17364777Snyan#define AE_CTRL_RETURN_VALUE (ACPI_STATUS) (0x0001 | AE_CODE_CONTROL) 17464777Snyan#define AE_CTRL_PENDING (ACPI_STATUS) (0x0002 | AE_CODE_CONTROL) 17564777Snyan#define AE_CTRL_TERMINATE (ACPI_STATUS) (0x0003 | AE_CODE_CONTROL) 17664777Snyan#define AE_CTRL_TRUE (ACPI_STATUS) (0x0004 | AE_CODE_CONTROL) 17764777Snyan#define AE_CTRL_FALSE (ACPI_STATUS) (0x0005 | AE_CODE_CONTROL) 17864777Snyan#define AE_CTRL_DEPTH (ACPI_STATUS) (0x0006 | AE_CODE_CONTROL) 17964777Snyan#define AE_CTRL_END (ACPI_STATUS) (0x0007 | AE_CODE_CONTROL) 18064777Snyan#define AE_CTRL_TRANSFER (ACPI_STATUS) (0x0008 | AE_CODE_CONTROL) 18164777Snyan#define AE_CTRL_BREAK (ACPI_STATUS) (0x0009 | AE_CODE_CONTROL) 18264777Snyan#define AE_CTRL_CONTINUE (ACPI_STATUS) (0x000A | AE_CODE_CONTROL) 18364777Snyan#define AE_CTRL_SKIP (ACPI_STATUS) (0x000B | AE_CODE_CONTROL) 18464777Snyan#define AE_CTRL_PARSE_CONTINUE (ACPI_STATUS) (0x000C | AE_CODE_CONTROL) 18564777Snyan#define AE_CTRL_PARSE_PENDING (ACPI_STATUS) (0x000D | AE_CODE_CONTROL) 18664777Snyan 18764777Snyan#define AE_CODE_CTRL_MAX 0x000D 18864777Snyan 18964777Snyan 19064777Snyan/* Exception strings for AcpiFormatException */ 19164777Snyan 19264777Snyan#ifdef ACPI_DEFINE_EXCEPTION_TABLE 19364777Snyan 19464777Snyan/* 19564777Snyan * String versions of the exception codes above 19664777Snyan * These strings must match the corresponding defines exactly 19764777Snyan */ 19864777Snyanchar const *AcpiGbl_ExceptionNames_Env[] = 19964777Snyan{ 20064777Snyan "AE_OK", 20164777Snyan "AE_ERROR", 20264777Snyan "AE_NO_ACPI_TABLES", 20364777Snyan "AE_NO_NAMESPACE", 20464777Snyan "AE_NO_MEMORY", 20564777Snyan "AE_NOT_FOUND", 20664777Snyan "AE_NOT_EXIST", 20764777Snyan "AE_ALREADY_EXISTS", 20864777Snyan "AE_TYPE", 20964777Snyan "AE_NULL_OBJECT", 21064777Snyan "AE_NULL_ENTRY", 21164777Snyan "AE_BUFFER_OVERFLOW", 21264777Snyan "AE_STACK_OVERFLOW", 21364777Snyan "AE_STACK_UNDERFLOW", 21464777Snyan "AE_NOT_IMPLEMENTED", 21564777Snyan "AE_SUPPORT", 21664777Snyan "AE_LIMIT", 21764777Snyan "AE_TIME", 21864777Snyan "AE_ACQUIRE_DEADLOCK", 21964777Snyan "AE_RELEASE_DEADLOCK", 22064777Snyan "AE_NOT_ACQUIRED", 22164777Snyan "AE_ALREADY_ACQUIRED", 22264777Snyan "AE_NO_HARDWARE_RESPONSE", 22364777Snyan "AE_NO_GLOBAL_LOCK", 22464777Snyan "AE_ABORT_METHOD", 22564777Snyan "AE_SAME_HANDLER", 22664777Snyan "AE_NO_HANDLER", 22764777Snyan "AE_OWNER_ID_LIMIT", 22864777Snyan "AE_NOT_CONFIGURED" 22964777Snyan}; 23064777Snyan 23164777Snyanchar const *AcpiGbl_ExceptionNames_Pgm[] = 23264777Snyan{ 23364777Snyan NULL, 23464777Snyan "AE_BAD_PARAMETER", 23564777Snyan "AE_BAD_CHARACTER", 23664777Snyan "AE_BAD_PATHNAME", 23764777Snyan "AE_BAD_DATA", 23864777Snyan "AE_BAD_HEX_CONSTANT", 23964777Snyan "AE_BAD_OCTAL_CONSTANT", 24064777Snyan "AE_BAD_DECIMAL_CONSTANT", 24164777Snyan "AE_MISSING_ARGUMENTS", 24264777Snyan "AE_BAD_ADDRESS" 24364777Snyan}; 24464777Snyan 24564777Snyanchar const *AcpiGbl_ExceptionNames_Tbl[] = 24664777Snyan{ 24764777Snyan NULL, 24864777Snyan "AE_BAD_SIGNATURE", 24964777Snyan "AE_BAD_HEADER", 25064777Snyan "AE_BAD_CHECKSUM", 25164777Snyan "AE_BAD_VALUE", 25264777Snyan "AE_INVALID_TABLE_LENGTH" 25364777Snyan}; 25464777Snyan 25564777Snyanchar const *AcpiGbl_ExceptionNames_Aml[] = 25664777Snyan{ 25764777Snyan NULL, 25864777Snyan "AE_AML_BAD_OPCODE", 25964777Snyan "AE_AML_NO_OPERAND", 26064777Snyan "AE_AML_OPERAND_TYPE", 26164777Snyan "AE_AML_OPERAND_VALUE", 26264777Snyan "AE_AML_UNINITIALIZED_LOCAL", 26364777Snyan "AE_AML_UNINITIALIZED_ARG", 26464777Snyan "AE_AML_UNINITIALIZED_ELEMENT", 26564777Snyan "AE_AML_NUMERIC_OVERFLOW", 26664777Snyan "AE_AML_REGION_LIMIT", 26764777Snyan "AE_AML_BUFFER_LIMIT", 26864777Snyan "AE_AML_PACKAGE_LIMIT", 26964777Snyan "AE_AML_DIVIDE_BY_ZERO", 27064777Snyan "AE_AML_BAD_NAME", 27164777Snyan "AE_AML_NAME_NOT_FOUND", 27264777Snyan "AE_AML_INTERNAL", 27364777Snyan "AE_AML_INVALID_SPACE_ID", 27464777Snyan "AE_AML_STRING_LIMIT", 27564777Snyan "AE_AML_NO_RETURN_VALUE", 27664777Snyan "AE_AML_METHOD_LIMIT", 27764777Snyan "AE_AML_NOT_OWNER", 27864777Snyan "AE_AML_MUTEX_ORDER", 27964777Snyan "AE_AML_MUTEX_NOT_ACQUIRED", 28064777Snyan "AE_AML_INVALID_RESOURCE_TYPE", 28164777Snyan "AE_AML_INVALID_INDEX", 28264777Snyan "AE_AML_REGISTER_LIMIT", 28364777Snyan "AE_AML_NO_WHILE", 28464777Snyan "AE_AML_ALIGNMENT", 28564777Snyan "AE_AML_NO_RESOURCE_END_TAG", 28664777Snyan "AE_AML_BAD_RESOURCE_VALUE", 28764777Snyan "AE_AML_CIRCULAR_REFERENCE", 28864777Snyan "AE_AML_BAD_RESOURCE_LENGTH", 28964777Snyan "AE_AML_ILLEGAL_ADDRESS", 29064777Snyan "AE_AML_INFINITE_LOOP" 29164777Snyan}; 29264777Snyan 29364777Snyanchar const *AcpiGbl_ExceptionNames_Ctrl[] = 29464777Snyan{ 29564777Snyan NULL, 29664777Snyan "AE_CTRL_RETURN_VALUE", 29764777Snyan "AE_CTRL_PENDING", 29864777Snyan "AE_CTRL_TERMINATE", 29964777Snyan "AE_CTRL_TRUE", 30064777Snyan "AE_CTRL_FALSE", 30164777Snyan "AE_CTRL_DEPTH", 30264777Snyan "AE_CTRL_END", 30364777Snyan "AE_CTRL_TRANSFER", 30464777Snyan "AE_CTRL_BREAK", 30564777Snyan "AE_CTRL_CONTINUE", 30664777Snyan "AE_CTRL_SKIP", 30764777Snyan "AE_CTRL_PARSE_CONTINUE", 30864777Snyan "AE_CTRL_PARSE_PENDING" 30964777Snyan}; 31064777Snyan 31164777Snyan#endif /* EXCEPTION_TABLE */ 31264777Snyan 31364777Snyan#endif /* __ACEXCEP_H__ */ 31464777Snyan