diff options
Diffstat (limited to 'include/acpi/amlcode.h')
| -rw-r--r-- | include/acpi/amlcode.h | 172 |
1 files changed, 72 insertions, 100 deletions
diff --git a/include/acpi/amlcode.h b/include/acpi/amlcode.h index 55e97ed29190..7fdf5299f501 100644 --- a/include/acpi/amlcode.h +++ b/include/acpi/amlcode.h | |||
| @@ -59,17 +59,17 @@ | |||
| 59 | #define AML_WORD_OP (u16) 0x0b | 59 | #define AML_WORD_OP (u16) 0x0b |
| 60 | #define AML_DWORD_OP (u16) 0x0c | 60 | #define AML_DWORD_OP (u16) 0x0c |
| 61 | #define AML_STRING_OP (u16) 0x0d | 61 | #define AML_STRING_OP (u16) 0x0d |
| 62 | #define AML_QWORD_OP (u16) 0x0e /* ACPI 2.0 */ | 62 | #define AML_QWORD_OP (u16) 0x0e /* ACPI 2.0 */ |
| 63 | #define AML_SCOPE_OP (u16) 0x10 | 63 | #define AML_SCOPE_OP (u16) 0x10 |
| 64 | #define AML_BUFFER_OP (u16) 0x11 | 64 | #define AML_BUFFER_OP (u16) 0x11 |
| 65 | #define AML_PACKAGE_OP (u16) 0x12 | 65 | #define AML_PACKAGE_OP (u16) 0x12 |
| 66 | #define AML_VAR_PACKAGE_OP (u16) 0x13 /* ACPI 2.0 */ | 66 | #define AML_VAR_PACKAGE_OP (u16) 0x13 /* ACPI 2.0 */ |
| 67 | #define AML_METHOD_OP (u16) 0x14 | 67 | #define AML_METHOD_OP (u16) 0x14 |
| 68 | #define AML_DUAL_NAME_PREFIX (u16) 0x2e | 68 | #define AML_DUAL_NAME_PREFIX (u16) 0x2e |
| 69 | #define AML_MULTI_NAME_PREFIX_OP (u16) 0x2f | 69 | #define AML_MULTI_NAME_PREFIX_OP (u16) 0x2f |
| 70 | #define AML_NAME_CHAR_SUBSEQ (u16) 0x30 | 70 | #define AML_NAME_CHAR_SUBSEQ (u16) 0x30 |
| 71 | #define AML_NAME_CHAR_FIRST (u16) 0x41 | 71 | #define AML_NAME_CHAR_FIRST (u16) 0x41 |
| 72 | #define AML_OP_PREFIX (u16) 0x5b | 72 | #define AML_EXTENDED_OP_PREFIX (u16) 0x5b |
| 73 | #define AML_ROOT_PREFIX (u16) 0x5c | 73 | #define AML_ROOT_PREFIX (u16) 0x5c |
| 74 | #define AML_PARENT_PREFIX (u16) 0x5e | 74 | #define AML_PARENT_PREFIX (u16) 0x5e |
| 75 | #define AML_LOCAL_OP (u16) 0x60 | 75 | #define AML_LOCAL_OP (u16) 0x60 |
| @@ -109,8 +109,8 @@ | |||
| 109 | #define AML_FIND_SET_LEFT_BIT_OP (u16) 0x81 | 109 | #define AML_FIND_SET_LEFT_BIT_OP (u16) 0x81 |
| 110 | #define AML_FIND_SET_RIGHT_BIT_OP (u16) 0x82 | 110 | #define AML_FIND_SET_RIGHT_BIT_OP (u16) 0x82 |
| 111 | #define AML_DEREF_OF_OP (u16) 0x83 | 111 | #define AML_DEREF_OF_OP (u16) 0x83 |
| 112 | #define AML_CONCAT_RES_OP (u16) 0x84 /* ACPI 2.0 */ | 112 | #define AML_CONCAT_RES_OP (u16) 0x84 /* ACPI 2.0 */ |
| 113 | #define AML_MOD_OP (u16) 0x85 /* ACPI 2.0 */ | 113 | #define AML_MOD_OP (u16) 0x85 /* ACPI 2.0 */ |
| 114 | #define AML_NOTIFY_OP (u16) 0x86 | 114 | #define AML_NOTIFY_OP (u16) 0x86 |
| 115 | #define AML_SIZE_OF_OP (u16) 0x87 | 115 | #define AML_SIZE_OF_OP (u16) 0x87 |
| 116 | #define AML_INDEX_OP (u16) 0x88 | 116 | #define AML_INDEX_OP (u16) 0x88 |
| @@ -120,21 +120,21 @@ | |||
| 120 | #define AML_CREATE_BYTE_FIELD_OP (u16) 0x8c | 120 | #define AML_CREATE_BYTE_FIELD_OP (u16) 0x8c |
| 121 | #define AML_CREATE_BIT_FIELD_OP (u16) 0x8d | 121 | #define AML_CREATE_BIT_FIELD_OP (u16) 0x8d |
| 122 | #define AML_TYPE_OP (u16) 0x8e | 122 | #define AML_TYPE_OP (u16) 0x8e |
| 123 | #define AML_CREATE_QWORD_FIELD_OP (u16) 0x8f /* ACPI 2.0 */ | 123 | #define AML_CREATE_QWORD_FIELD_OP (u16) 0x8f /* ACPI 2.0 */ |
| 124 | #define AML_LAND_OP (u16) 0x90 | 124 | #define AML_LAND_OP (u16) 0x90 |
| 125 | #define AML_LOR_OP (u16) 0x91 | 125 | #define AML_LOR_OP (u16) 0x91 |
| 126 | #define AML_LNOT_OP (u16) 0x92 | 126 | #define AML_LNOT_OP (u16) 0x92 |
| 127 | #define AML_LEQUAL_OP (u16) 0x93 | 127 | #define AML_LEQUAL_OP (u16) 0x93 |
| 128 | #define AML_LGREATER_OP (u16) 0x94 | 128 | #define AML_LGREATER_OP (u16) 0x94 |
| 129 | #define AML_LLESS_OP (u16) 0x95 | 129 | #define AML_LLESS_OP (u16) 0x95 |
| 130 | #define AML_TO_BUFFER_OP (u16) 0x96 /* ACPI 2.0 */ | 130 | #define AML_TO_BUFFER_OP (u16) 0x96 /* ACPI 2.0 */ |
| 131 | #define AML_TO_DECSTRING_OP (u16) 0x97 /* ACPI 2.0 */ | 131 | #define AML_TO_DECSTRING_OP (u16) 0x97 /* ACPI 2.0 */ |
| 132 | #define AML_TO_HEXSTRING_OP (u16) 0x98 /* ACPI 2.0 */ | 132 | #define AML_TO_HEXSTRING_OP (u16) 0x98 /* ACPI 2.0 */ |
| 133 | #define AML_TO_INTEGER_OP (u16) 0x99 /* ACPI 2.0 */ | 133 | #define AML_TO_INTEGER_OP (u16) 0x99 /* ACPI 2.0 */ |
| 134 | #define AML_TO_STRING_OP (u16) 0x9c /* ACPI 2.0 */ | 134 | #define AML_TO_STRING_OP (u16) 0x9c /* ACPI 2.0 */ |
| 135 | #define AML_COPY_OP (u16) 0x9d /* ACPI 2.0 */ | 135 | #define AML_COPY_OP (u16) 0x9d /* ACPI 2.0 */ |
| 136 | #define AML_MID_OP (u16) 0x9e /* ACPI 2.0 */ | 136 | #define AML_MID_OP (u16) 0x9e /* ACPI 2.0 */ |
| 137 | #define AML_CONTINUE_OP (u16) 0x9f /* ACPI 2.0 */ | 137 | #define AML_CONTINUE_OP (u16) 0x9f /* ACPI 2.0 */ |
| 138 | #define AML_IF_OP (u16) 0xa0 | 138 | #define AML_IF_OP (u16) 0xa0 |
| 139 | #define AML_ELSE_OP (u16) 0xa1 | 139 | #define AML_ELSE_OP (u16) 0xa1 |
| 140 | #define AML_WHILE_OP (u16) 0xa2 | 140 | #define AML_WHILE_OP (u16) 0xa2 |
| @@ -146,7 +146,7 @@ | |||
| 146 | 146 | ||
| 147 | /* prefixed opcodes */ | 147 | /* prefixed opcodes */ |
| 148 | 148 | ||
| 149 | #define AML_EXTOP (u16) 0x005b /* prefix for 2-byte opcodes */ | 149 | #define AML_EXTENDED_OPCODE (u16) 0x5b00 /* prefix for 2-byte opcodes */ |
| 150 | 150 | ||
| 151 | #define AML_MUTEX_OP (u16) 0x5b01 | 151 | #define AML_MUTEX_OP (u16) 0x5b01 |
| 152 | #define AML_EVENT_OP (u16) 0x5b02 | 152 | #define AML_EVENT_OP (u16) 0x5b02 |
| @@ -154,7 +154,7 @@ | |||
| 154 | #define AML_SHIFT_LEFT_BIT_OP (u16) 0x5b11 | 154 | #define AML_SHIFT_LEFT_BIT_OP (u16) 0x5b11 |
| 155 | #define AML_COND_REF_OF_OP (u16) 0x5b12 | 155 | #define AML_COND_REF_OF_OP (u16) 0x5b12 |
| 156 | #define AML_CREATE_FIELD_OP (u16) 0x5b13 | 156 | #define AML_CREATE_FIELD_OP (u16) 0x5b13 |
| 157 | #define AML_LOAD_TABLE_OP (u16) 0x5b1f /* ACPI 2.0 */ | 157 | #define AML_LOAD_TABLE_OP (u16) 0x5b1f /* ACPI 2.0 */ |
| 158 | #define AML_LOAD_OP (u16) 0x5b20 | 158 | #define AML_LOAD_OP (u16) 0x5b20 |
| 159 | #define AML_STALL_OP (u16) 0x5b21 | 159 | #define AML_STALL_OP (u16) 0x5b21 |
| 160 | #define AML_SLEEP_OP (u16) 0x5b22 | 160 | #define AML_SLEEP_OP (u16) 0x5b22 |
| @@ -169,7 +169,7 @@ | |||
| 169 | #define AML_REVISION_OP (u16) 0x5b30 | 169 | #define AML_REVISION_OP (u16) 0x5b30 |
| 170 | #define AML_DEBUG_OP (u16) 0x5b31 | 170 | #define AML_DEBUG_OP (u16) 0x5b31 |
| 171 | #define AML_FATAL_OP (u16) 0x5b32 | 171 | #define AML_FATAL_OP (u16) 0x5b32 |
| 172 | #define AML_TIMER_OP (u16) 0x5b33 /* ACPI 3.0 */ | 172 | #define AML_TIMER_OP (u16) 0x5b33 /* ACPI 3.0 */ |
| 173 | #define AML_REGION_OP (u16) 0x5b80 | 173 | #define AML_REGION_OP (u16) 0x5b80 |
| 174 | #define AML_FIELD_OP (u16) 0x5b81 | 174 | #define AML_FIELD_OP (u16) 0x5b81 |
| 175 | #define AML_DEVICE_OP (u16) 0x5b82 | 175 | #define AML_DEVICE_OP (u16) 0x5b82 |
| @@ -178,8 +178,7 @@ | |||
| 178 | #define AML_THERMAL_ZONE_OP (u16) 0x5b85 | 178 | #define AML_THERMAL_ZONE_OP (u16) 0x5b85 |
| 179 | #define AML_INDEX_FIELD_OP (u16) 0x5b86 | 179 | #define AML_INDEX_FIELD_OP (u16) 0x5b86 |
| 180 | #define AML_BANK_FIELD_OP (u16) 0x5b87 | 180 | #define AML_BANK_FIELD_OP (u16) 0x5b87 |
| 181 | #define AML_DATA_REGION_OP (u16) 0x5b88 /* ACPI 2.0 */ | 181 | #define AML_DATA_REGION_OP (u16) 0x5b88 /* ACPI 2.0 */ |
| 182 | |||
| 183 | 182 | ||
| 184 | /* Bogus opcodes (they are actually two separate opcodes) */ | 183 | /* Bogus opcodes (they are actually two separate opcodes) */ |
| 185 | 184 | ||
| @@ -187,7 +186,6 @@ | |||
| 187 | #define AML_LLESSEQUAL_OP (u16) 0x9294 | 186 | #define AML_LLESSEQUAL_OP (u16) 0x9294 |
| 188 | #define AML_LNOTEQUAL_OP (u16) 0x9293 | 187 | #define AML_LNOTEQUAL_OP (u16) 0x9293 |
| 189 | 188 | ||
| 190 | |||
| 191 | /* | 189 | /* |
| 192 | * Internal opcodes | 190 | * Internal opcodes |
| 193 | * Use only "Unknown" AML opcodes, don't attempt to use | 191 | * Use only "Unknown" AML opcodes, don't attempt to use |
| @@ -203,7 +201,6 @@ | |||
| 203 | #define AML_INT_RETURN_VALUE_OP (u16) 0x0036 | 201 | #define AML_INT_RETURN_VALUE_OP (u16) 0x0036 |
| 204 | #define AML_INT_EVAL_SUBTREE_OP (u16) 0x0037 | 202 | #define AML_INT_EVAL_SUBTREE_OP (u16) 0x0037 |
| 205 | 203 | ||
| 206 | |||
| 207 | #define ARG_NONE 0x0 | 204 | #define ARG_NONE 0x0 |
| 208 | 205 | ||
| 209 | /* | 206 | /* |
| @@ -245,7 +242,7 @@ | |||
| 245 | 242 | ||
| 246 | /* Single, simple types */ | 243 | /* Single, simple types */ |
| 247 | 244 | ||
| 248 | #define ARGI_ANYTYPE 0x01 /* Don't care */ | 245 | #define ARGI_ANYTYPE 0x01 /* Don't care */ |
| 249 | #define ARGI_PACKAGE 0x02 | 246 | #define ARGI_PACKAGE 0x02 |
| 250 | #define ARGI_EVENT 0x03 | 247 | #define ARGI_EVENT 0x03 |
| 251 | #define ARGI_MUTEX 0x04 | 248 | #define ARGI_MUTEX 0x04 |
| @@ -256,8 +253,8 @@ | |||
| 256 | #define ARGI_INTEGER 0x06 | 253 | #define ARGI_INTEGER 0x06 |
| 257 | #define ARGI_STRING 0x07 | 254 | #define ARGI_STRING 0x07 |
| 258 | #define ARGI_BUFFER 0x08 | 255 | #define ARGI_BUFFER 0x08 |
| 259 | #define ARGI_BUFFER_OR_STRING 0x09 /* Used by MID op only */ | 256 | #define ARGI_BUFFER_OR_STRING 0x09 /* Used by MID op only */ |
| 260 | #define ARGI_COMPUTEDATA 0x0A /* Buffer, String, or Integer */ | 257 | #define ARGI_COMPUTEDATA 0x0A /* Buffer, String, or Integer */ |
| 261 | 258 | ||
| 262 | /* Reference objects */ | 259 | /* Reference objects */ |
| 263 | 260 | ||
| @@ -265,30 +262,28 @@ | |||
| 265 | #define ARGI_OBJECT_REF 0x0C | 262 | #define ARGI_OBJECT_REF 0x0C |
| 266 | #define ARGI_DEVICE_REF 0x0D | 263 | #define ARGI_DEVICE_REF 0x0D |
| 267 | #define ARGI_REFERENCE 0x0E | 264 | #define ARGI_REFERENCE 0x0E |
| 268 | #define ARGI_TARGETREF 0x0F /* Target, subject to implicit conversion */ | 265 | #define ARGI_TARGETREF 0x0F /* Target, subject to implicit conversion */ |
| 269 | #define ARGI_FIXED_TARGET 0x10 /* Target, no implicit conversion */ | 266 | #define ARGI_FIXED_TARGET 0x10 /* Target, no implicit conversion */ |
| 270 | #define ARGI_SIMPLE_TARGET 0x11 /* Name, Local, Arg -- no implicit conversion */ | 267 | #define ARGI_SIMPLE_TARGET 0x11 /* Name, Local, Arg -- no implicit conversion */ |
| 271 | 268 | ||
| 272 | /* Multiple/complex types */ | 269 | /* Multiple/complex types */ |
| 273 | 270 | ||
| 274 | #define ARGI_DATAOBJECT 0x12 /* Buffer, String, package or reference to a Node - Used only by size_of operator*/ | 271 | #define ARGI_DATAOBJECT 0x12 /* Buffer, String, package or reference to a Node - Used only by size_of operator */ |
| 275 | #define ARGI_COMPLEXOBJ 0x13 /* Buffer, String, or package (Used by INDEX op only) */ | 272 | #define ARGI_COMPLEXOBJ 0x13 /* Buffer, String, or package (Used by INDEX op only) */ |
| 276 | #define ARGI_REF_OR_STRING 0x14 /* Reference or String (Used by DEREFOF op only) */ | 273 | #define ARGI_REF_OR_STRING 0x14 /* Reference or String (Used by DEREFOF op only) */ |
| 277 | #define ARGI_REGION_OR_FIELD 0x15 /* Used by LOAD op only */ | 274 | #define ARGI_REGION_OR_FIELD 0x15 /* Used by LOAD op only */ |
| 278 | #define ARGI_DATAREFOBJ 0x16 | 275 | #define ARGI_DATAREFOBJ 0x16 |
| 279 | 276 | ||
| 280 | /* Note: types above can expand to 0x1F maximum */ | 277 | /* Note: types above can expand to 0x1F maximum */ |
| 281 | 278 | ||
| 282 | #define ARGI_INVALID_OPCODE 0xFFFFFFFF | 279 | #define ARGI_INVALID_OPCODE 0xFFFFFFFF |
| 283 | 280 | ||
| 284 | |||
| 285 | /* | 281 | /* |
| 286 | * hash offsets | 282 | * hash offsets |
| 287 | */ | 283 | */ |
| 288 | #define AML_EXTOP_HASH_OFFSET 22 | 284 | #define AML_EXTOP_HASH_OFFSET 22 |
| 289 | #define AML_LNOT_HASH_OFFSET 19 | 285 | #define AML_LNOT_HASH_OFFSET 19 |
| 290 | 286 | ||
| 291 | |||
| 292 | /* | 287 | /* |
| 293 | * opcode groups and types | 288 | * opcode groups and types |
| 294 | */ | 289 | */ |
| @@ -296,7 +291,6 @@ | |||
| 296 | #define OPGRP_FIELD 0x02 | 291 | #define OPGRP_FIELD 0x02 |
| 297 | #define OPGRP_BYTELIST 0x04 | 292 | #define OPGRP_BYTELIST 0x04 |
| 298 | 293 | ||
| 299 | |||
| 300 | /* | 294 | /* |
| 301 | * Opcode information | 295 | * Opcode information |
| 302 | */ | 296 | */ |
| @@ -322,31 +316,30 @@ | |||
| 322 | /* Convenient flag groupings */ | 316 | /* Convenient flag groupings */ |
| 323 | 317 | ||
| 324 | #define AML_FLAGS_EXEC_0A_0T_1R AML_HAS_RETVAL | 318 | #define AML_FLAGS_EXEC_0A_0T_1R AML_HAS_RETVAL |
| 325 | #define AML_FLAGS_EXEC_1A_0T_0R AML_HAS_ARGS /* Monadic1 */ | 319 | #define AML_FLAGS_EXEC_1A_0T_0R AML_HAS_ARGS /* Monadic1 */ |
| 326 | #define AML_FLAGS_EXEC_1A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Monadic2 */ | 320 | #define AML_FLAGS_EXEC_1A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Monadic2 */ |
| 327 | #define AML_FLAGS_EXEC_1A_1T_0R AML_HAS_ARGS | AML_HAS_TARGET | 321 | #define AML_FLAGS_EXEC_1A_1T_0R AML_HAS_ARGS | AML_HAS_TARGET |
| 328 | #define AML_FLAGS_EXEC_1A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* monadic2_r */ | 322 | #define AML_FLAGS_EXEC_1A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* monadic2_r */ |
| 329 | #define AML_FLAGS_EXEC_2A_0T_0R AML_HAS_ARGS /* Dyadic1 */ | 323 | #define AML_FLAGS_EXEC_2A_0T_0R AML_HAS_ARGS /* Dyadic1 */ |
| 330 | #define AML_FLAGS_EXEC_2A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Dyadic2 */ | 324 | #define AML_FLAGS_EXEC_2A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Dyadic2 */ |
| 331 | #define AML_FLAGS_EXEC_2A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* dyadic2_r */ | 325 | #define AML_FLAGS_EXEC_2A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* dyadic2_r */ |
| 332 | #define AML_FLAGS_EXEC_2A_2T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL | 326 | #define AML_FLAGS_EXEC_2A_2T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL |
| 333 | #define AML_FLAGS_EXEC_3A_0T_0R AML_HAS_ARGS | 327 | #define AML_FLAGS_EXEC_3A_0T_0R AML_HAS_ARGS |
| 334 | #define AML_FLAGS_EXEC_3A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL | 328 | #define AML_FLAGS_EXEC_3A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL |
| 335 | #define AML_FLAGS_EXEC_6A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL | 329 | #define AML_FLAGS_EXEC_6A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL |
| 336 | 330 | ||
| 337 | |||
| 338 | /* | 331 | /* |
| 339 | * The opcode Type is used in a dispatch table, do not change | 332 | * The opcode Type is used in a dispatch table, do not change |
| 340 | * without updating the table. | 333 | * without updating the table. |
| 341 | */ | 334 | */ |
| 342 | #define AML_TYPE_EXEC_0A_0T_1R 0x00 | 335 | #define AML_TYPE_EXEC_0A_0T_1R 0x00 |
| 343 | #define AML_TYPE_EXEC_1A_0T_0R 0x01 /* Monadic1 */ | 336 | #define AML_TYPE_EXEC_1A_0T_0R 0x01 /* Monadic1 */ |
| 344 | #define AML_TYPE_EXEC_1A_0T_1R 0x02 /* Monadic2 */ | 337 | #define AML_TYPE_EXEC_1A_0T_1R 0x02 /* Monadic2 */ |
| 345 | #define AML_TYPE_EXEC_1A_1T_0R 0x03 | 338 | #define AML_TYPE_EXEC_1A_1T_0R 0x03 |
| 346 | #define AML_TYPE_EXEC_1A_1T_1R 0x04 /* monadic2_r */ | 339 | #define AML_TYPE_EXEC_1A_1T_1R 0x04 /* monadic2_r */ |
| 347 | #define AML_TYPE_EXEC_2A_0T_0R 0x05 /* Dyadic1 */ | 340 | #define AML_TYPE_EXEC_2A_0T_0R 0x05 /* Dyadic1 */ |
| 348 | #define AML_TYPE_EXEC_2A_0T_1R 0x06 /* Dyadic2 */ | 341 | #define AML_TYPE_EXEC_2A_0T_1R 0x06 /* Dyadic2 */ |
| 349 | #define AML_TYPE_EXEC_2A_1T_1R 0x07 /* dyadic2_r */ | 342 | #define AML_TYPE_EXEC_2A_1T_1R 0x07 /* dyadic2_r */ |
| 350 | #define AML_TYPE_EXEC_2A_2T_1R 0x08 | 343 | #define AML_TYPE_EXEC_2A_2T_1R 0x08 |
| 351 | #define AML_TYPE_EXEC_3A_0T_0R 0x09 | 344 | #define AML_TYPE_EXEC_3A_0T_0R 0x09 |
| 352 | #define AML_TYPE_EXEC_3A_1T_1R 0x0A | 345 | #define AML_TYPE_EXEC_3A_1T_1R 0x0A |
| @@ -399,40 +392,33 @@ | |||
| 399 | #define AML_CLASS_METHOD_CALL 0x09 | 392 | #define AML_CLASS_METHOD_CALL 0x09 |
| 400 | #define AML_CLASS_UNKNOWN 0x0A | 393 | #define AML_CLASS_UNKNOWN 0x0A |
| 401 | 394 | ||
| 402 | |||
| 403 | /* Predefined Operation Region space_iDs */ | 395 | /* Predefined Operation Region space_iDs */ |
| 404 | 396 | ||
| 405 | typedef enum | 397 | typedef enum { |
| 406 | { | 398 | REGION_MEMORY = 0, |
| 407 | REGION_MEMORY = 0, | ||
| 408 | REGION_IO, | 399 | REGION_IO, |
| 409 | REGION_PCI_CONFIG, | 400 | REGION_PCI_CONFIG, |
| 410 | REGION_EC, | 401 | REGION_EC, |
| 411 | REGION_SMBUS, | 402 | REGION_SMBUS, |
| 412 | REGION_CMOS, | 403 | REGION_CMOS, |
| 413 | REGION_PCI_BAR, | 404 | REGION_PCI_BAR, |
| 414 | REGION_DATA_TABLE, /* Internal use only */ | 405 | REGION_DATA_TABLE, /* Internal use only */ |
| 415 | REGION_FIXED_HW = 0x7F | 406 | REGION_FIXED_HW = 0x7F |
| 416 | |||
| 417 | } AML_REGION_TYPES; | 407 | } AML_REGION_TYPES; |
| 418 | 408 | ||
| 419 | |||
| 420 | /* Comparison operation codes for match_op operator */ | 409 | /* Comparison operation codes for match_op operator */ |
| 421 | 410 | ||
| 422 | typedef enum | 411 | typedef enum { |
| 423 | { | 412 | MATCH_MTR = 0, |
| 424 | MATCH_MTR = 0, | 413 | MATCH_MEQ = 1, |
| 425 | MATCH_MEQ = 1, | 414 | MATCH_MLE = 2, |
| 426 | MATCH_MLE = 2, | 415 | MATCH_MLT = 3, |
| 427 | MATCH_MLT = 3, | 416 | MATCH_MGE = 4, |
| 428 | MATCH_MGE = 4, | 417 | MATCH_MGT = 5 |
| 429 | MATCH_MGT = 5 | ||
| 430 | |||
| 431 | } AML_MATCH_OPERATOR; | 418 | } AML_MATCH_OPERATOR; |
| 432 | 419 | ||
| 433 | #define MAX_MATCH_OPERATOR 5 | 420 | #define MAX_MATCH_OPERATOR 5 |
| 434 | 421 | ||
| 435 | |||
| 436 | /* | 422 | /* |
| 437 | * field_flags | 423 | * field_flags |
| 438 | * | 424 | * |
| @@ -450,60 +436,47 @@ typedef enum | |||
| 450 | #define AML_FIELD_LOCK_RULE_MASK 0x10 | 436 | #define AML_FIELD_LOCK_RULE_MASK 0x10 |
| 451 | #define AML_FIELD_UPDATE_RULE_MASK 0x60 | 437 | #define AML_FIELD_UPDATE_RULE_MASK 0x60 |
| 452 | 438 | ||
| 453 | |||
| 454 | /* 1) Field Access Types */ | 439 | /* 1) Field Access Types */ |
| 455 | 440 | ||
| 456 | typedef enum | 441 | typedef enum { |
| 457 | { | 442 | AML_FIELD_ACCESS_ANY = 0x00, |
| 458 | AML_FIELD_ACCESS_ANY = 0x00, | 443 | AML_FIELD_ACCESS_BYTE = 0x01, |
| 459 | AML_FIELD_ACCESS_BYTE = 0x01, | 444 | AML_FIELD_ACCESS_WORD = 0x02, |
| 460 | AML_FIELD_ACCESS_WORD = 0x02, | 445 | AML_FIELD_ACCESS_DWORD = 0x03, |
| 461 | AML_FIELD_ACCESS_DWORD = 0x03, | 446 | AML_FIELD_ACCESS_QWORD = 0x04, /* ACPI 2.0 */ |
| 462 | AML_FIELD_ACCESS_QWORD = 0x04, /* ACPI 2.0 */ | 447 | AML_FIELD_ACCESS_BUFFER = 0x05 /* ACPI 2.0 */ |
| 463 | AML_FIELD_ACCESS_BUFFER = 0x05 /* ACPI 2.0 */ | ||
| 464 | |||
| 465 | } AML_ACCESS_TYPE; | 448 | } AML_ACCESS_TYPE; |
| 466 | 449 | ||
| 467 | |||
| 468 | /* 2) Field Lock Rules */ | 450 | /* 2) Field Lock Rules */ |
| 469 | 451 | ||
| 470 | typedef enum | 452 | typedef enum { |
| 471 | { | 453 | AML_FIELD_LOCK_NEVER = 0x00, |
| 472 | AML_FIELD_LOCK_NEVER = 0x00, | 454 | AML_FIELD_LOCK_ALWAYS = 0x10 |
| 473 | AML_FIELD_LOCK_ALWAYS = 0x10 | ||
| 474 | |||
| 475 | } AML_LOCK_RULE; | 455 | } AML_LOCK_RULE; |
| 476 | 456 | ||
| 477 | |||
| 478 | /* 3) Field Update Rules */ | 457 | /* 3) Field Update Rules */ |
| 479 | 458 | ||
| 480 | typedef enum | 459 | typedef enum { |
| 481 | { | 460 | AML_FIELD_UPDATE_PRESERVE = 0x00, |
| 482 | AML_FIELD_UPDATE_PRESERVE = 0x00, | 461 | AML_FIELD_UPDATE_WRITE_AS_ONES = 0x20, |
| 483 | AML_FIELD_UPDATE_WRITE_AS_ONES = 0x20, | ||
| 484 | AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40 | 462 | AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40 |
| 485 | |||
| 486 | } AML_UPDATE_RULE; | 463 | } AML_UPDATE_RULE; |
| 487 | 464 | ||
| 488 | |||
| 489 | /* | 465 | /* |
| 490 | * Field Access Attributes. | 466 | * Field Access Attributes. |
| 491 | * This byte is extracted from the AML via the | 467 | * This byte is extracted from the AML via the |
| 492 | * access_as keyword | 468 | * access_as keyword |
| 493 | */ | 469 | */ |
| 494 | typedef enum | 470 | typedef enum { |
| 495 | { | 471 | AML_FIELD_ATTRIB_SMB_QUICK = 0x02, |
| 496 | AML_FIELD_ATTRIB_SMB_QUICK = 0x02, | 472 | AML_FIELD_ATTRIB_SMB_SEND_RCV = 0x04, |
| 497 | AML_FIELD_ATTRIB_SMB_SEND_RCV = 0x04, | 473 | AML_FIELD_ATTRIB_SMB_BYTE = 0x06, |
| 498 | AML_FIELD_ATTRIB_SMB_BYTE = 0x06, | 474 | AML_FIELD_ATTRIB_SMB_WORD = 0x08, |
| 499 | AML_FIELD_ATTRIB_SMB_WORD = 0x08, | 475 | AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A, |
| 500 | AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A, | 476 | AML_FIELD_ATTRIB_SMB_WORD_CALL = 0x0C, |
| 501 | AML_FIELD_ATTRIB_SMB_WORD_CALL = 0x0C, | ||
| 502 | AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D | 477 | AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D |
| 503 | |||
| 504 | } AML_ACCESS_ATTRIBUTE; | 478 | } AML_ACCESS_ATTRIBUTE; |
| 505 | 479 | ||
| 506 | |||
| 507 | /* Bit fields in method_flags byte */ | 480 | /* Bit fields in method_flags byte */ |
| 508 | 481 | ||
| 509 | #define AML_METHOD_ARG_COUNT 0x07 | 482 | #define AML_METHOD_ARG_COUNT 0x07 |
| @@ -516,5 +489,4 @@ typedef enum | |||
| 516 | #define AML_METHOD_RESERVED1 0x02 | 489 | #define AML_METHOD_RESERVED1 0x02 |
| 517 | #define AML_METHOD_RESERVED2 0x04 | 490 | #define AML_METHOD_RESERVED2 0x04 |
| 518 | 491 | ||
| 519 | 492 | #endif /* __AMLCODE_H__ */ | |
| 520 | #endif /* __AMLCODE_H__ */ | ||
