File indexing completed on 2025-05-11 08:23:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154 #ifndef __AMLCODE_H__
0155 #define __AMLCODE_H__
0156
0157
0158
0159 #define AML_ZERO_OP (UINT16) 0x00
0160 #define AML_ONE_OP (UINT16) 0x01
0161 #define AML_ALIAS_OP (UINT16) 0x06
0162 #define AML_NAME_OP (UINT16) 0x08
0163 #define AML_BYTE_OP (UINT16) 0x0a
0164 #define AML_WORD_OP (UINT16) 0x0b
0165 #define AML_DWORD_OP (UINT16) 0x0c
0166 #define AML_STRING_OP (UINT16) 0x0d
0167 #define AML_QWORD_OP (UINT16) 0x0e
0168 #define AML_SCOPE_OP (UINT16) 0x10
0169 #define AML_BUFFER_OP (UINT16) 0x11
0170 #define AML_PACKAGE_OP (UINT16) 0x12
0171 #define AML_VARIABLE_PACKAGE_OP (UINT16) 0x13
0172 #define AML_METHOD_OP (UINT16) 0x14
0173 #define AML_EXTERNAL_OP (UINT16) 0x15
0174 #define AML_DUAL_NAME_PREFIX (UINT16) 0x2e
0175 #define AML_MULTI_NAME_PREFIX (UINT16) 0x2f
0176 #define AML_EXTENDED_PREFIX (UINT16) 0x5b
0177 #define AML_ROOT_PREFIX (UINT16) 0x5c
0178 #define AML_PARENT_PREFIX (UINT16) 0x5e
0179 #define AML_FIRST_LOCAL_OP (UINT16) 0x60
0180 #define AML_LOCAL0 (UINT16) 0x60
0181 #define AML_LOCAL1 (UINT16) 0x61
0182 #define AML_LOCAL2 (UINT16) 0x62
0183 #define AML_LOCAL3 (UINT16) 0x63
0184 #define AML_LOCAL4 (UINT16) 0x64
0185 #define AML_LOCAL5 (UINT16) 0x65
0186 #define AML_LOCAL6 (UINT16) 0x66
0187 #define AML_LOCAL7 (UINT16) 0x67
0188 #define AML_FIRST_ARG_OP (UINT16) 0x68
0189 #define AML_ARG0 (UINT16) 0x68
0190 #define AML_ARG1 (UINT16) 0x69
0191 #define AML_ARG2 (UINT16) 0x6a
0192 #define AML_ARG3 (UINT16) 0x6b
0193 #define AML_ARG4 (UINT16) 0x6c
0194 #define AML_ARG5 (UINT16) 0x6d
0195 #define AML_ARG6 (UINT16) 0x6e
0196 #define AML_STORE_OP (UINT16) 0x70
0197 #define AML_REF_OF_OP (UINT16) 0x71
0198 #define AML_ADD_OP (UINT16) 0x72
0199 #define AML_CONCATENATE_OP (UINT16) 0x73
0200 #define AML_SUBTRACT_OP (UINT16) 0x74
0201 #define AML_INCREMENT_OP (UINT16) 0x75
0202 #define AML_DECREMENT_OP (UINT16) 0x76
0203 #define AML_MULTIPLY_OP (UINT16) 0x77
0204 #define AML_DIVIDE_OP (UINT16) 0x78
0205 #define AML_SHIFT_LEFT_OP (UINT16) 0x79
0206 #define AML_SHIFT_RIGHT_OP (UINT16) 0x7a
0207 #define AML_BIT_AND_OP (UINT16) 0x7b
0208 #define AML_BIT_NAND_OP (UINT16) 0x7c
0209 #define AML_BIT_OR_OP (UINT16) 0x7d
0210 #define AML_BIT_NOR_OP (UINT16) 0x7e
0211 #define AML_BIT_XOR_OP (UINT16) 0x7f
0212 #define AML_BIT_NOT_OP (UINT16) 0x80
0213 #define AML_FIND_SET_LEFT_BIT_OP (UINT16) 0x81
0214 #define AML_FIND_SET_RIGHT_BIT_OP (UINT16) 0x82
0215 #define AML_DEREF_OF_OP (UINT16) 0x83
0216 #define AML_CONCATENATE_TEMPLATE_OP (UINT16) 0x84
0217 #define AML_MOD_OP (UINT16) 0x85
0218 #define AML_NOTIFY_OP (UINT16) 0x86
0219 #define AML_SIZE_OF_OP (UINT16) 0x87
0220 #define AML_INDEX_OP (UINT16) 0x88
0221 #define AML_MATCH_OP (UINT16) 0x89
0222 #define AML_CREATE_DWORD_FIELD_OP (UINT16) 0x8a
0223 #define AML_CREATE_WORD_FIELD_OP (UINT16) 0x8b
0224 #define AML_CREATE_BYTE_FIELD_OP (UINT16) 0x8c
0225 #define AML_CREATE_BIT_FIELD_OP (UINT16) 0x8d
0226 #define AML_OBJECT_TYPE_OP (UINT16) 0x8e
0227 #define AML_CREATE_QWORD_FIELD_OP (UINT16) 0x8f
0228 #define AML_LOGICAL_AND_OP (UINT16) 0x90
0229 #define AML_LOGICAL_OR_OP (UINT16) 0x91
0230 #define AML_LOGICAL_NOT_OP (UINT16) 0x92
0231 #define AML_LOGICAL_EQUAL_OP (UINT16) 0x93
0232 #define AML_LOGICAL_GREATER_OP (UINT16) 0x94
0233 #define AML_LOGICAL_LESS_OP (UINT16) 0x95
0234 #define AML_TO_BUFFER_OP (UINT16) 0x96
0235 #define AML_TO_DECIMAL_STRING_OP (UINT16) 0x97
0236 #define AML_TO_HEX_STRING_OP (UINT16) 0x98
0237 #define AML_TO_INTEGER_OP (UINT16) 0x99
0238 #define AML_TO_STRING_OP (UINT16) 0x9c
0239 #define AML_COPY_OBJECT_OP (UINT16) 0x9d
0240 #define AML_MID_OP (UINT16) 0x9e
0241 #define AML_CONTINUE_OP (UINT16) 0x9f
0242 #define AML_IF_OP (UINT16) 0xa0
0243 #define AML_ELSE_OP (UINT16) 0xa1
0244 #define AML_WHILE_OP (UINT16) 0xa2
0245 #define AML_NOOP_OP (UINT16) 0xa3
0246 #define AML_RETURN_OP (UINT16) 0xa4
0247 #define AML_BREAK_OP (UINT16) 0xa5
0248 #define AML_COMMENT_OP (UINT16) 0xa9
0249 #define AML_BREAKPOINT_OP (UINT16) 0xcc
0250 #define AML_ONES_OP (UINT16) 0xff
0251
0252
0253
0254
0255
0256
0257 #define AML_LOGICAL_GREATER_EQUAL_OP (UINT16) 0x9295
0258 #define AML_LOGICAL_LESS_EQUAL_OP (UINT16) 0x9294
0259 #define AML_LOGICAL_NOT_EQUAL_OP (UINT16) 0x9293
0260
0261
0262
0263
0264 #define AML_EXTENDED_OPCODE (UINT16) 0x5b00
0265
0266 #define AML_MUTEX_OP (UINT16) 0x5b01
0267 #define AML_EVENT_OP (UINT16) 0x5b02
0268 #define AML_SHIFT_RIGHT_BIT_OP (UINT16) 0x5b10
0269 #define AML_SHIFT_LEFT_BIT_OP (UINT16) 0x5b11
0270 #define AML_CONDITIONAL_REF_OF_OP (UINT16) 0x5b12
0271 #define AML_CREATE_FIELD_OP (UINT16) 0x5b13
0272 #define AML_LOAD_TABLE_OP (UINT16) 0x5b1f
0273 #define AML_LOAD_OP (UINT16) 0x5b20
0274 #define AML_STALL_OP (UINT16) 0x5b21
0275 #define AML_SLEEP_OP (UINT16) 0x5b22
0276 #define AML_ACQUIRE_OP (UINT16) 0x5b23
0277 #define AML_SIGNAL_OP (UINT16) 0x5b24
0278 #define AML_WAIT_OP (UINT16) 0x5b25
0279 #define AML_RESET_OP (UINT16) 0x5b26
0280 #define AML_RELEASE_OP (UINT16) 0x5b27
0281 #define AML_FROM_BCD_OP (UINT16) 0x5b28
0282 #define AML_TO_BCD_OP (UINT16) 0x5b29
0283 #define AML_UNLOAD_OP (UINT16) 0x5b2a
0284 #define AML_REVISION_OP (UINT16) 0x5b30
0285 #define AML_DEBUG_OP (UINT16) 0x5b31
0286 #define AML_FATAL_OP (UINT16) 0x5b32
0287 #define AML_TIMER_OP (UINT16) 0x5b33
0288 #define AML_REGION_OP (UINT16) 0x5b80
0289 #define AML_FIELD_OP (UINT16) 0x5b81
0290 #define AML_DEVICE_OP (UINT16) 0x5b82
0291 #define AML_PROCESSOR_OP (UINT16) 0x5b83
0292 #define AML_POWER_RESOURCE_OP (UINT16) 0x5b84
0293 #define AML_THERMAL_ZONE_OP (UINT16) 0x5b85
0294 #define AML_INDEX_FIELD_OP (UINT16) 0x5b86
0295 #define AML_BANK_FIELD_OP (UINT16) 0x5b87
0296 #define AML_DATA_REGION_OP (UINT16) 0x5b88
0297
0298
0299
0300
0301
0302 #define AML_FIELD_OFFSET_OP (UINT8) 0x00
0303 #define AML_FIELD_ACCESS_OP (UINT8) 0x01
0304 #define AML_FIELD_CONNECTION_OP (UINT8) 0x02
0305 #define AML_FIELD_EXT_ACCESS_OP (UINT8) 0x03
0306
0307
0308
0309
0310
0311
0312
0313 #define AML_INT_NAMEPATH_OP (UINT16) 0x002d
0314 #define AML_INT_NAMEDFIELD_OP (UINT16) 0x0030
0315 #define AML_INT_RESERVEDFIELD_OP (UINT16) 0x0031
0316 #define AML_INT_ACCESSFIELD_OP (UINT16) 0x0032
0317 #define AML_INT_BYTELIST_OP (UINT16) 0x0033
0318 #define AML_INT_METHODCALL_OP (UINT16) 0x0035
0319 #define AML_INT_RETURN_VALUE_OP (UINT16) 0x0036
0320 #define AML_INT_EVAL_SUBTREE_OP (UINT16) 0x0037
0321 #define AML_INT_CONNECTION_OP (UINT16) 0x0038
0322 #define AML_INT_EXTACCESSFIELD_OP (UINT16) 0x0039
0323
0324 #define ARG_NONE 0x0
0325
0326
0327
0328
0329
0330
0331
0332 #define ARGP_BYTEDATA 0x01
0333 #define ARGP_BYTELIST 0x02
0334 #define ARGP_CHARLIST 0x03
0335 #define ARGP_DATAOBJ 0x04
0336 #define ARGP_DATAOBJLIST 0x05
0337 #define ARGP_DWORDDATA 0x06
0338 #define ARGP_FIELDLIST 0x07
0339 #define ARGP_NAME 0x08
0340 #define ARGP_NAMESTRING 0x09
0341 #define ARGP_OBJLIST 0x0A
0342 #define ARGP_PKGLENGTH 0x0B
0343 #define ARGP_SUPERNAME 0x0C
0344 #define ARGP_TARGET 0x0D
0345 #define ARGP_TERMARG 0x0E
0346 #define ARGP_TERMLIST 0x0F
0347 #define ARGP_WORDDATA 0x10
0348 #define ARGP_QWORDDATA 0x11
0349 #define ARGP_SIMPLENAME 0x12
0350 #define ARGP_NAME_OR_REF 0x13
0351 #define ARGP_MAX 0x13
0352 #define ARGP_COMMENT 0x14
0353
0354
0355
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368 #define ARGI_ANYTYPE 0x01
0369 #define ARGI_PACKAGE 0x02
0370 #define ARGI_EVENT 0x03
0371 #define ARGI_MUTEX 0x04
0372 #define ARGI_DDBHANDLE 0x05
0373
0374
0375
0376 #define ARGI_INTEGER 0x06
0377 #define ARGI_STRING 0x07
0378 #define ARGI_BUFFER 0x08
0379 #define ARGI_BUFFER_OR_STRING 0x09
0380 #define ARGI_COMPUTEDATA 0x0A
0381
0382
0383
0384 #define ARGI_INTEGER_REF 0x0B
0385 #define ARGI_OBJECT_REF 0x0C
0386 #define ARGI_DEVICE_REF 0x0D
0387 #define ARGI_REFERENCE 0x0E
0388 #define ARGI_TARGETREF 0x0F
0389 #define ARGI_FIXED_TARGET 0x10
0390 #define ARGI_SIMPLE_TARGET 0x11
0391 #define ARGI_STORE_TARGET 0x12
0392
0393
0394
0395 #define ARGI_DATAOBJECT 0x13
0396 #define ARGI_COMPLEXOBJ 0x14
0397 #define ARGI_REF_OR_STRING 0x15
0398 #define ARGI_REGION_OR_BUFFER 0x16
0399 #define ARGI_DATAREFOBJ 0x17
0400
0401
0402
0403 #define ARGI_INVALID_OPCODE 0xFFFFFFFF
0404
0405
0406
0407
0408
0409
0410
0411
0412
0413
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
0424
0425 #define AML_LOGICAL 0x0001
0426 #define AML_LOGICAL_NUMERIC 0x0002
0427 #define AML_MATH 0x0004
0428 #define AML_CREATE 0x0008
0429 #define AML_FIELD 0x0010
0430 #define AML_DEFER 0x0020
0431 #define AML_NAMED 0x0040
0432 #define AML_NSNODE 0x0080
0433 #define AML_NSOPCODE 0x0100
0434 #define AML_NSOBJECT 0x0200
0435 #define AML_HAS_RETVAL 0x0400
0436 #define AML_HAS_TARGET 0x0800
0437 #define AML_HAS_ARGS 0x1000
0438 #define AML_CONSTANT 0x2000
0439 #define AML_NO_OPERAND_RESOLVE 0x4000
0440
0441
0442
0443 #define AML_FLAGS_EXEC_0A_0T_1R AML_HAS_RETVAL
0444 #define AML_FLAGS_EXEC_1A_0T_0R AML_HAS_ARGS
0445 #define AML_FLAGS_EXEC_1A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL
0446 #define AML_FLAGS_EXEC_1A_1T_0R AML_HAS_ARGS | AML_HAS_TARGET
0447 #define AML_FLAGS_EXEC_1A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
0448 #define AML_FLAGS_EXEC_2A_0T_0R AML_HAS_ARGS
0449 #define AML_FLAGS_EXEC_2A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL
0450 #define AML_FLAGS_EXEC_2A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
0451 #define AML_FLAGS_EXEC_2A_2T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
0452 #define AML_FLAGS_EXEC_3A_0T_0R AML_HAS_ARGS
0453 #define AML_FLAGS_EXEC_3A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
0454 #define AML_FLAGS_EXEC_6A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL
0455
0456
0457
0458
0459
0460
0461 #define AML_TYPE_EXEC_0A_0T_1R 0x00
0462 #define AML_TYPE_EXEC_1A_0T_0R 0x01
0463 #define AML_TYPE_EXEC_1A_0T_1R 0x02
0464 #define AML_TYPE_EXEC_1A_1T_0R 0x03
0465 #define AML_TYPE_EXEC_1A_1T_1R 0x04
0466 #define AML_TYPE_EXEC_2A_0T_0R 0x05
0467 #define AML_TYPE_EXEC_2A_0T_1R 0x06
0468 #define AML_TYPE_EXEC_2A_1T_1R 0x07
0469 #define AML_TYPE_EXEC_2A_2T_1R 0x08
0470 #define AML_TYPE_EXEC_3A_0T_0R 0x09
0471 #define AML_TYPE_EXEC_3A_1T_1R 0x0A
0472 #define AML_TYPE_EXEC_6A_0T_1R 0x0B
0473
0474
0475 #define AML_TYPE_LITERAL 0x0C
0476 #define AML_TYPE_CONSTANT 0x0D
0477 #define AML_TYPE_METHOD_ARGUMENT 0x0E
0478 #define AML_TYPE_LOCAL_VARIABLE 0x0F
0479 #define AML_TYPE_DATA_TERM 0x10
0480
0481
0482
0483 #define AML_TYPE_METHOD_CALL 0x11
0484
0485
0486
0487 #define AML_TYPE_CREATE_FIELD 0x12
0488 #define AML_TYPE_CREATE_OBJECT 0x13
0489 #define AML_TYPE_CONTROL 0x14
0490 #define AML_TYPE_NAMED_NO_OBJ 0x15
0491 #define AML_TYPE_NAMED_FIELD 0x16
0492 #define AML_TYPE_NAMED_SIMPLE 0x17
0493 #define AML_TYPE_NAMED_COMPLEX 0x18
0494 #define AML_TYPE_RETURN 0x19
0495 #define AML_TYPE_UNDEFINED 0x1A
0496 #define AML_TYPE_BOGUS 0x1B
0497
0498
0499
0500 #define ACPI_AML_PACKAGE_TYPE1 0x40
0501 #define ACPI_AML_PACKAGE_TYPE2 0x4000
0502 #define ACPI_AML_PACKAGE_TYPE3 0x400000
0503 #define ACPI_AML_PACKAGE_TYPE4 0x40000000
0504
0505
0506
0507
0508 #define AML_CLASS_EXECUTE 0x00
0509 #define AML_CLASS_CREATE 0x01
0510 #define AML_CLASS_ARGUMENT 0x02
0511 #define AML_CLASS_NAMED_OBJECT 0x03
0512 #define AML_CLASS_CONTROL 0x04
0513 #define AML_CLASS_ASCII 0x05
0514 #define AML_CLASS_PREFIX 0x06
0515 #define AML_CLASS_INTERNAL 0x07
0516 #define AML_CLASS_RETURN_VALUE 0x08
0517 #define AML_CLASS_METHOD_CALL 0x09
0518 #define AML_CLASS_UNKNOWN 0x0A
0519
0520
0521
0522
0523 typedef enum
0524 {
0525 MATCH_MTR = 0,
0526 MATCH_MEQ = 1,
0527 MATCH_MLE = 2,
0528 MATCH_MLT = 3,
0529 MATCH_MGE = 4,
0530 MATCH_MGT = 5
0531
0532 } AML_MATCH_OPERATOR;
0533
0534 #define MAX_MATCH_OPERATOR 5
0535
0536
0537
0538
0539
0540
0541
0542
0543
0544
0545
0546
0547
0548
0549
0550 #define AML_FIELD_ACCESS_TYPE_MASK 0x0F
0551 #define AML_FIELD_LOCK_RULE_MASK 0x10
0552 #define AML_FIELD_UPDATE_RULE_MASK 0x60
0553
0554
0555
0556
0557 typedef enum
0558 {
0559 AML_FIELD_ACCESS_ANY = 0x00,
0560 AML_FIELD_ACCESS_BYTE = 0x01,
0561 AML_FIELD_ACCESS_WORD = 0x02,
0562 AML_FIELD_ACCESS_DWORD = 0x03,
0563 AML_FIELD_ACCESS_QWORD = 0x04,
0564 AML_FIELD_ACCESS_BUFFER = 0x05
0565
0566 } AML_ACCESS_TYPE;
0567
0568
0569
0570
0571 typedef enum
0572 {
0573 AML_FIELD_LOCK_NEVER = 0x00,
0574 AML_FIELD_LOCK_ALWAYS = 0x10
0575
0576 } AML_LOCK_RULE;
0577
0578
0579
0580
0581 typedef enum
0582 {
0583 AML_FIELD_UPDATE_PRESERVE = 0x00,
0584 AML_FIELD_UPDATE_WRITE_AS_ONES = 0x20,
0585 AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40
0586
0587 } AML_UPDATE_RULE;
0588
0589
0590
0591
0592
0593
0594
0595 typedef enum
0596 {
0597 AML_FIELD_ATTRIB_QUICK = 0x02,
0598 AML_FIELD_ATTRIB_SEND_RECEIVE = 0x04,
0599 AML_FIELD_ATTRIB_BYTE = 0x06,
0600 AML_FIELD_ATTRIB_WORD = 0x08,
0601 AML_FIELD_ATTRIB_BLOCK = 0x0A,
0602 AML_FIELD_ATTRIB_BYTES = 0x0B,
0603 AML_FIELD_ATTRIB_PROCESS_CALL = 0x0C,
0604 AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL = 0x0D,
0605 AML_FIELD_ATTRIB_RAW_BYTES = 0x0E,
0606 AML_FIELD_ATTRIB_RAW_PROCESS_BYTES = 0x0F
0607
0608 } AML_ACCESS_ATTRIBUTE;
0609
0610
0611
0612
0613 #define AML_METHOD_ARG_COUNT 0x07
0614 #define AML_METHOD_SERIALIZED 0x08
0615 #define AML_METHOD_SYNC_LEVEL 0xF0
0616
0617
0618 #endif