aboutsummaryrefslogtreecommitdiffstats
path: root/include/acpi
diff options
context:
space:
mode:
Diffstat (limited to 'include/acpi')
-rw-r--r--include/acpi/acexcep.h192
1 files changed, 103 insertions, 89 deletions
diff --git a/include/acpi/acexcep.h b/include/acpi/acexcep.h
index 9bf59d0e8aaa..3e6b163ee15f 100644
--- a/include/acpi/acexcep.h
+++ b/include/acpi/acexcep.h
@@ -44,8 +44,10 @@
44#ifndef __ACEXCEP_H__ 44#ifndef __ACEXCEP_H__
45#define __ACEXCEP_H__ 45#define __ACEXCEP_H__
46 46
47/* This module contains all possible exception codes for acpi_status */
48
47/* 49/*
48 * Exceptions returned by external ACPI interfaces 50 * Exception code classes
49 */ 51 */
50#define AE_CODE_ENVIRONMENTAL 0x0000 52#define AE_CODE_ENVIRONMENTAL 0x0000
51#define AE_CODE_PROGRAMMER 0x1000 53#define AE_CODE_PROGRAMMER 0x1000
@@ -55,6 +57,18 @@
55#define AE_CODE_MAX 0x4000 57#define AE_CODE_MAX 0x4000
56#define AE_CODE_MASK 0xF000 58#define AE_CODE_MASK 0xF000
57 59
60/*
61 * Macros to insert the exception code classes
62 */
63#define EXCEP_ENV(code) ((acpi_status) (code | AE_CODE_ENVIRONMENTAL))
64#define EXCEP_PGM(code) ((acpi_status) (code | AE_CODE_PROGRAMMER))
65#define EXCEP_TBL(code) ((acpi_status) (code | AE_CODE_ACPI_TABLES))
66#define EXCEP_AML(code) ((acpi_status) (code | AE_CODE_AML))
67#define EXCEP_CTL(code) ((acpi_status) (code | AE_CODE_CONTROL))
68
69/*
70 * Success is always zero, failure is non-zero
71 */
58#define ACPI_SUCCESS(a) (!(a)) 72#define ACPI_SUCCESS(a) (!(a))
59#define ACPI_FAILURE(a) (a) 73#define ACPI_FAILURE(a) (a)
60 74
@@ -64,60 +78,60 @@
64/* 78/*
65 * Environmental exceptions 79 * Environmental exceptions
66 */ 80 */
67#define AE_ERROR (acpi_status) (0x0001 | AE_CODE_ENVIRONMENTAL) 81#define AE_ERROR EXCEP_ENV (0x0001)
68#define AE_NO_ACPI_TABLES (acpi_status) (0x0002 | AE_CODE_ENVIRONMENTAL) 82#define AE_NO_ACPI_TABLES EXCEP_ENV (0x0002)
69#define AE_NO_NAMESPACE (acpi_status) (0x0003 | AE_CODE_ENVIRONMENTAL) 83#define AE_NO_NAMESPACE EXCEP_ENV (0x0003)
70#define AE_NO_MEMORY (acpi_status) (0x0004 | AE_CODE_ENVIRONMENTAL) 84#define AE_NO_MEMORY EXCEP_ENV (0x0004)
71#define AE_NOT_FOUND (acpi_status) (0x0005 | AE_CODE_ENVIRONMENTAL) 85#define AE_NOT_FOUND EXCEP_ENV (0x0005)
72#define AE_NOT_EXIST (acpi_status) (0x0006 | AE_CODE_ENVIRONMENTAL) 86#define AE_NOT_EXIST EXCEP_ENV (0x0006)
73#define AE_ALREADY_EXISTS (acpi_status) (0x0007 | AE_CODE_ENVIRONMENTAL) 87#define AE_ALREADY_EXISTS EXCEP_ENV (0x0007)
74#define AE_TYPE (acpi_status) (0x0008 | AE_CODE_ENVIRONMENTAL) 88#define AE_TYPE EXCEP_ENV (0x0008)
75#define AE_NULL_OBJECT (acpi_status) (0x0009 | AE_CODE_ENVIRONMENTAL) 89#define AE_NULL_OBJECT EXCEP_ENV (0x0009)
76#define AE_NULL_ENTRY (acpi_status) (0x000A | AE_CODE_ENVIRONMENTAL) 90#define AE_NULL_ENTRY EXCEP_ENV (0x000A)
77#define AE_BUFFER_OVERFLOW (acpi_status) (0x000B | AE_CODE_ENVIRONMENTAL) 91#define AE_BUFFER_OVERFLOW EXCEP_ENV (0x000B)
78#define AE_STACK_OVERFLOW (acpi_status) (0x000C | AE_CODE_ENVIRONMENTAL) 92#define AE_STACK_OVERFLOW EXCEP_ENV (0x000C)
79#define AE_STACK_UNDERFLOW (acpi_status) (0x000D | AE_CODE_ENVIRONMENTAL) 93#define AE_STACK_UNDERFLOW EXCEP_ENV (0x000D)
80#define AE_NOT_IMPLEMENTED (acpi_status) (0x000E | AE_CODE_ENVIRONMENTAL) 94#define AE_NOT_IMPLEMENTED EXCEP_ENV (0x000E)
81#define AE_SUPPORT (acpi_status) (0x000F | AE_CODE_ENVIRONMENTAL) 95#define AE_SUPPORT EXCEP_ENV (0x000F)
82#define AE_LIMIT (acpi_status) (0x0010 | AE_CODE_ENVIRONMENTAL) 96#define AE_LIMIT EXCEP_ENV (0x0010)
83#define AE_TIME (acpi_status) (0x0011 | AE_CODE_ENVIRONMENTAL) 97#define AE_TIME EXCEP_ENV (0x0011)
84#define AE_ACQUIRE_DEADLOCK (acpi_status) (0x0012 | AE_CODE_ENVIRONMENTAL) 98#define AE_ACQUIRE_DEADLOCK EXCEP_ENV (0x0012)
85#define AE_RELEASE_DEADLOCK (acpi_status) (0x0013 | AE_CODE_ENVIRONMENTAL) 99#define AE_RELEASE_DEADLOCK EXCEP_ENV (0x0013)
86#define AE_NOT_ACQUIRED (acpi_status) (0x0014 | AE_CODE_ENVIRONMENTAL) 100#define AE_NOT_ACQUIRED EXCEP_ENV (0x0014)
87#define AE_ALREADY_ACQUIRED (acpi_status) (0x0015 | AE_CODE_ENVIRONMENTAL) 101#define AE_ALREADY_ACQUIRED EXCEP_ENV (0x0015)
88#define AE_NO_HARDWARE_RESPONSE (acpi_status) (0x0016 | AE_CODE_ENVIRONMENTAL) 102#define AE_NO_HARDWARE_RESPONSE EXCEP_ENV (0x0016)
89#define AE_NO_GLOBAL_LOCK (acpi_status) (0x0017 | AE_CODE_ENVIRONMENTAL) 103#define AE_NO_GLOBAL_LOCK EXCEP_ENV (0x0017)
90#define AE_ABORT_METHOD (acpi_status) (0x0018 | AE_CODE_ENVIRONMENTAL) 104#define AE_ABORT_METHOD EXCEP_ENV (0x0018)
91#define AE_SAME_HANDLER (acpi_status) (0x0019 | AE_CODE_ENVIRONMENTAL) 105#define AE_SAME_HANDLER EXCEP_ENV (0x0019)
92#define AE_NO_HANDLER (acpi_status) (0x001A | AE_CODE_ENVIRONMENTAL) 106#define AE_NO_HANDLER EXCEP_ENV (0x001A)
93#define AE_OWNER_ID_LIMIT (acpi_status) (0x001B | AE_CODE_ENVIRONMENTAL) 107#define AE_OWNER_ID_LIMIT EXCEP_ENV (0x001B)
94#define AE_NOT_CONFIGURED (acpi_status) (0x001C | AE_CODE_ENVIRONMENTAL) 108#define AE_NOT_CONFIGURED EXCEP_ENV (0x001C)
95 109
96#define AE_CODE_ENV_MAX 0x001C 110#define AE_CODE_ENV_MAX 0x001C
97 111
98/* 112/*
99 * Programmer exceptions 113 * Programmer exceptions
100 */ 114 */
101#define AE_BAD_PARAMETER (acpi_status) (0x0001 | AE_CODE_PROGRAMMER) 115#define AE_BAD_PARAMETER EXCEP_PGM (0x0001)
102#define AE_BAD_CHARACTER (acpi_status) (0x0002 | AE_CODE_PROGRAMMER) 116#define AE_BAD_CHARACTER EXCEP_PGM (0x0002)
103#define AE_BAD_PATHNAME (acpi_status) (0x0003 | AE_CODE_PROGRAMMER) 117#define AE_BAD_PATHNAME EXCEP_PGM (0x0003)
104#define AE_BAD_DATA (acpi_status) (0x0004 | AE_CODE_PROGRAMMER) 118#define AE_BAD_DATA EXCEP_PGM (0x0004)
105#define AE_BAD_HEX_CONSTANT (acpi_status) (0x0005 | AE_CODE_PROGRAMMER) 119#define AE_BAD_HEX_CONSTANT EXCEP_PGM (0x0005)
106#define AE_BAD_OCTAL_CONSTANT (acpi_status) (0x0006 | AE_CODE_PROGRAMMER) 120#define AE_BAD_OCTAL_CONSTANT EXCEP_PGM (0x0006)
107#define AE_BAD_DECIMAL_CONSTANT (acpi_status) (0x0007 | AE_CODE_PROGRAMMER) 121#define AE_BAD_DECIMAL_CONSTANT EXCEP_PGM (0x0007)
108#define AE_MISSING_ARGUMENTS (acpi_status) (0x0008 | AE_CODE_PROGRAMMER) 122#define AE_MISSING_ARGUMENTS EXCEP_PGM (0x0008)
109#define AE_BAD_ADDRESS (acpi_status) (0x0009 | AE_CODE_PROGRAMMER) 123#define AE_BAD_ADDRESS EXCEP_PGM (0x0009)
110 124
111#define AE_CODE_PGM_MAX 0x0009 125#define AE_CODE_PGM_MAX 0x0009
112 126
113/* 127/*
114 * Acpi table exceptions 128 * Acpi table exceptions
115 */ 129 */
116#define AE_BAD_SIGNATURE (acpi_status) (0x0001 | AE_CODE_ACPI_TABLES) 130#define AE_BAD_SIGNATURE EXCEP_TBL (0x0001)
117#define AE_BAD_HEADER (acpi_status) (0x0002 | AE_CODE_ACPI_TABLES) 131#define AE_BAD_HEADER EXCEP_TBL (0x0002)
118#define AE_BAD_CHECKSUM (acpi_status) (0x0003 | AE_CODE_ACPI_TABLES) 132#define AE_BAD_CHECKSUM EXCEP_TBL (0x0003)
119#define AE_BAD_VALUE (acpi_status) (0x0004 | AE_CODE_ACPI_TABLES) 133#define AE_BAD_VALUE EXCEP_TBL (0x0004)
120#define AE_INVALID_TABLE_LENGTH (acpi_status) (0x0005 | AE_CODE_ACPI_TABLES) 134#define AE_INVALID_TABLE_LENGTH EXCEP_TBL (0x0005)
121 135
122#define AE_CODE_TBL_MAX 0x0005 136#define AE_CODE_TBL_MAX 0x0005
123 137
@@ -125,58 +139,58 @@
125 * AML exceptions. These are caused by problems with 139 * AML exceptions. These are caused by problems with
126 * the actual AML byte stream 140 * the actual AML byte stream
127 */ 141 */
128#define AE_AML_BAD_OPCODE (acpi_status) (0x0001 | AE_CODE_AML) 142#define AE_AML_BAD_OPCODE EXCEP_AML (0x0001)
129#define AE_AML_NO_OPERAND (acpi_status) (0x0002 | AE_CODE_AML) 143#define AE_AML_NO_OPERAND EXCEP_AML (0x0002)
130#define AE_AML_OPERAND_TYPE (acpi_status) (0x0003 | AE_CODE_AML) 144#define AE_AML_OPERAND_TYPE EXCEP_AML (0x0003)
131#define AE_AML_OPERAND_VALUE (acpi_status) (0x0004 | AE_CODE_AML) 145#define AE_AML_OPERAND_VALUE EXCEP_AML (0x0004)
132#define AE_AML_UNINITIALIZED_LOCAL (acpi_status) (0x0005 | AE_CODE_AML) 146#define AE_AML_UNINITIALIZED_LOCAL EXCEP_AML (0x0005)
133#define AE_AML_UNINITIALIZED_ARG (acpi_status) (0x0006 | AE_CODE_AML) 147#define AE_AML_UNINITIALIZED_ARG EXCEP_AML (0x0006)
134#define AE_AML_UNINITIALIZED_ELEMENT (acpi_status) (0x0007 | AE_CODE_AML) 148#define AE_AML_UNINITIALIZED_ELEMENT EXCEP_AML (0x0007)
135#define AE_AML_NUMERIC_OVERFLOW (acpi_status) (0x0008 | AE_CODE_AML) 149#define AE_AML_NUMERIC_OVERFLOW EXCEP_AML (0x0008)
136#define AE_AML_REGION_LIMIT (acpi_status) (0x0009 | AE_CODE_AML) 150#define AE_AML_REGION_LIMIT EXCEP_AML (0x0009)
137#define AE_AML_BUFFER_LIMIT (acpi_status) (0x000A | AE_CODE_AML) 151#define AE_AML_BUFFER_LIMIT EXCEP_AML (0x000A)
138#define AE_AML_PACKAGE_LIMIT (acpi_status) (0x000B | AE_CODE_AML) 152#define AE_AML_PACKAGE_LIMIT EXCEP_AML (0x000B)
139#define AE_AML_DIVIDE_BY_ZERO (acpi_status) (0x000C | AE_CODE_AML) 153#define AE_AML_DIVIDE_BY_ZERO EXCEP_AML (0x000C)
140#define AE_AML_BAD_NAME (acpi_status) (0x000D | AE_CODE_AML) 154#define AE_AML_BAD_NAME EXCEP_AML (0x000D)
141#define AE_AML_NAME_NOT_FOUND (acpi_status) (0x000E | AE_CODE_AML) 155#define AE_AML_NAME_NOT_FOUND EXCEP_AML (0x000E)
142#define AE_AML_INTERNAL (acpi_status) (0x000F | AE_CODE_AML) 156#define AE_AML_INTERNAL EXCEP_AML (0x000F)
143#define AE_AML_INVALID_SPACE_ID (acpi_status) (0x0010 | AE_CODE_AML) 157#define AE_AML_INVALID_SPACE_ID EXCEP_AML (0x0010)
144#define AE_AML_STRING_LIMIT (acpi_status) (0x0011 | AE_CODE_AML) 158#define AE_AML_STRING_LIMIT EXCEP_AML (0x0011)
145#define AE_AML_NO_RETURN_VALUE (acpi_status) (0x0012 | AE_CODE_AML) 159#define AE_AML_NO_RETURN_VALUE EXCEP_AML (0x0012)
146#define AE_AML_METHOD_LIMIT (acpi_status) (0x0013 | AE_CODE_AML) 160#define AE_AML_METHOD_LIMIT EXCEP_AML (0x0013)
147#define AE_AML_NOT_OWNER (acpi_status) (0x0014 | AE_CODE_AML) 161#define AE_AML_NOT_OWNER EXCEP_AML (0x0014)
148#define AE_AML_MUTEX_ORDER (acpi_status) (0x0015 | AE_CODE_AML) 162#define AE_AML_MUTEX_ORDER EXCEP_AML (0x0015)
149#define AE_AML_MUTEX_NOT_ACQUIRED (acpi_status) (0x0016 | AE_CODE_AML) 163#define AE_AML_MUTEX_NOT_ACQUIRED EXCEP_AML (0x0016)
150#define AE_AML_INVALID_RESOURCE_TYPE (acpi_status) (0x0017 | AE_CODE_AML) 164#define AE_AML_INVALID_RESOURCE_TYPE EXCEP_AML (0x0017)
151#define AE_AML_INVALID_INDEX (acpi_status) (0x0018 | AE_CODE_AML) 165#define AE_AML_INVALID_INDEX EXCEP_AML (0x0018)
152#define AE_AML_REGISTER_LIMIT (acpi_status) (0x0019 | AE_CODE_AML) 166#define AE_AML_REGISTER_LIMIT EXCEP_AML (0x0019)
153#define AE_AML_NO_WHILE (acpi_status) (0x001A | AE_CODE_AML) 167#define AE_AML_NO_WHILE EXCEP_AML (0x001A)
154#define AE_AML_ALIGNMENT (acpi_status) (0x001B | AE_CODE_AML) 168#define AE_AML_ALIGNMENT EXCEP_AML (0x001B)
155#define AE_AML_NO_RESOURCE_END_TAG (acpi_status) (0x001C | AE_CODE_AML) 169#define AE_AML_NO_RESOURCE_END_TAG EXCEP_AML (0x001C)
156#define AE_AML_BAD_RESOURCE_VALUE (acpi_status) (0x001D | AE_CODE_AML) 170#define AE_AML_BAD_RESOURCE_VALUE EXCEP_AML (0x001D)
157#define AE_AML_CIRCULAR_REFERENCE (acpi_status) (0x001E | AE_CODE_AML) 171#define AE_AML_CIRCULAR_REFERENCE EXCEP_AML (0x001E)
158#define AE_AML_BAD_RESOURCE_LENGTH (acpi_status) (0x001F | AE_CODE_AML) 172#define AE_AML_BAD_RESOURCE_LENGTH EXCEP_AML (0x001F)
159#define AE_AML_ILLEGAL_ADDRESS (acpi_status) (0x0020 | AE_CODE_AML) 173#define AE_AML_ILLEGAL_ADDRESS EXCEP_AML (0x0020)
160#define AE_AML_INFINITE_LOOP (acpi_status) (0x0021 | AE_CODE_AML) 174#define AE_AML_INFINITE_LOOP EXCEP_AML (0x0021)
161 175
162#define AE_CODE_AML_MAX 0x0021 176#define AE_CODE_AML_MAX 0x0021
163 177
164/* 178/*
165 * Internal exceptions used for control 179 * Internal exceptions used for control
166 */ 180 */
167#define AE_CTRL_RETURN_VALUE (acpi_status) (0x0001 | AE_CODE_CONTROL) 181#define AE_CTRL_RETURN_VALUE EXCEP_CTL (0x0001)
168#define AE_CTRL_PENDING (acpi_status) (0x0002 | AE_CODE_CONTROL) 182#define AE_CTRL_PENDING EXCEP_CTL (0x0002)
169#define AE_CTRL_TERMINATE (acpi_status) (0x0003 | AE_CODE_CONTROL) 183#define AE_CTRL_TERMINATE EXCEP_CTL (0x0003)
170#define AE_CTRL_TRUE (acpi_status) (0x0004 | AE_CODE_CONTROL) 184#define AE_CTRL_TRUE EXCEP_CTL (0x0004)
171#define AE_CTRL_FALSE (acpi_status) (0x0005 | AE_CODE_CONTROL) 185#define AE_CTRL_FALSE EXCEP_CTL (0x0005)
172#define AE_CTRL_DEPTH (acpi_status) (0x0006 | AE_CODE_CONTROL) 186#define AE_CTRL_DEPTH EXCEP_CTL (0x0006)
173#define AE_CTRL_END (acpi_status) (0x0007 | AE_CODE_CONTROL) 187#define AE_CTRL_END EXCEP_CTL (0x0007)
174#define AE_CTRL_TRANSFER (acpi_status) (0x0008 | AE_CODE_CONTROL) 188#define AE_CTRL_TRANSFER EXCEP_CTL (0x0008)
175#define AE_CTRL_BREAK (acpi_status) (0x0009 | AE_CODE_CONTROL) 189#define AE_CTRL_BREAK EXCEP_CTL (0x0009)
176#define AE_CTRL_CONTINUE (acpi_status) (0x000A | AE_CODE_CONTROL) 190#define AE_CTRL_CONTINUE EXCEP_CTL (0x000A)
177#define AE_CTRL_SKIP (acpi_status) (0x000B | AE_CODE_CONTROL) 191#define AE_CTRL_SKIP EXCEP_CTL (0x000B)
178#define AE_CTRL_PARSE_CONTINUE (acpi_status) (0x000C | AE_CODE_CONTROL) 192#define AE_CTRL_PARSE_CONTINUE EXCEP_CTL (0x000C)
179#define AE_CTRL_PARSE_PENDING (acpi_status) (0x000D | AE_CODE_CONTROL) 193#define AE_CTRL_PARSE_PENDING EXCEP_CTL (0x000D)
180 194
181#define AE_CODE_CTRL_MAX 0x000D 195#define AE_CODE_CTRL_MAX 0x000D
182 196