diff options
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/acexcep.h | 192 |
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 | ||