Warning, cross-references for /kernel/include/drivers/acpi/amlcode.h need to be fixed.
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 #ifndef __AMLCODE_H__
0119 #define __AMLCODE_H__
0120
0121
0122
0123 #define AML_NULL_CHAR (UINT16) 0x00
0124
0125 #define AML_ZERO_OP (UINT16) 0x00
0126 #define AML_ONE_OP (UINT16) 0x01
0127 #define AML_UNASSIGNED (UINT16) 0x02
0128 #define AML_ALIAS_OP (UINT16) 0x06
0129 #define AML_NAME_OP (UINT16) 0x08
0130 #define AML_BYTE_OP (UINT16) 0x0a
0131 #define AML_WORD_OP (UINT16) 0x0b
0132 #define AML_DWORD_OP (UINT16) 0x0c
0133 #define AML_STRING_OP (UINT16) 0x0d
0134 #define AML_QWORD_OP (UINT16) 0x0e
0135 #define AML_SCOPE_OP (UINT16) 0x10
0136 #define AML_BUFFER_OP (UINT16) 0x11
0137 #define AML_PACKAGE_OP (UINT16) 0x12
0138 #define AML_VAR_PACKAGE_OP (UINT16) 0x13
0139 #define AML_METHOD_OP (UINT16) 0x14
0140 #define AML_DUAL_NAME_PREFIX (UINT16) 0x2e
0141 #define AML_MULTI_NAME_PREFIX_OP (UINT16) 0x2f
0142 #define AML_NAME_CHAR_SUBSEQ (UINT16) 0x30
0143 #define AML_NAME_CHAR_FIRST (UINT16) 0x41
0144 #define AML_EXTENDED_OP_PREFIX (UINT16) 0x5b
0145 #define AML_ROOT_PREFIX (UINT16) 0x5c
0146 #define AML_PARENT_PREFIX (UINT16) 0x5e
0147 #define AML_LOCAL_OP (UINT16) 0x60
0148 #define AML_LOCAL0 (UINT16) 0x60
0149 #define AML_LOCAL1 (UINT16) 0x61
0150 #define AML_LOCAL2 (UINT16) 0x62
0151 #define AML_LOCAL3 (UINT16) 0x63
0152 #define AML_LOCAL4 (UINT16) 0x64
0153 #define AML_LOCAL5 (UINT16) 0x65
0154 #define AML_LOCAL6 (UINT16) 0x66
0155 #define AML_LOCAL7 (UINT16) 0x67
0156 #define AML_ARG_OP (UINT16) 0x68
0157 #define AML_ARG0 (UINT16) 0x68
0158 #define AML_ARG1 (UINT16) 0x69
0159 #define AML_ARG2 (UINT16) 0x6a
0160 #define AML_ARG3 (UINT16) 0x6b
0161 #define AML_ARG4 (UINT16) 0x6c
0162 #define AML_ARG5 (UINT16) 0x6d
0163 #define AML_ARG6 (UINT16) 0x6e
0164 #define AML_STORE_OP (UINT16) 0x70
0165 #define AML_REF_OF_OP (UINT16) 0x71
0166 #define AML_ADD_OP (UINT16) 0x72
0167 #define AML_CONCAT_OP (UINT16) 0x73
0168 #define AML_SUBTRACT_OP (UINT16) 0x74
0169 #define AML_INCREMENT_OP (UINT16) 0x75
0170 #define AML_DECREMENT_OP (UINT16) 0x76
0171 #define AML_MULTIPLY_OP (UINT16) 0x77
0172 #define AML_DIVIDE_OP (UINT16) 0x78
0173 #define AML_SHIFT_LEFT_OP (UINT16) 0x79
0174 #define AML_SHIFT_RIGHT_OP (UINT16) 0x7a
0175 #define AML_BIT_AND_OP (UINT16) 0x7b
0176 #define AML_BIT_NAND_OP (UINT16) 0x7c
0177 #define AML_BIT_OR_OP (UINT16) 0x7d
0178 #define AML_BIT_NOR_OP (UINT16) 0x7e
0179 #define AML_BIT_XOR_OP (UINT16) 0x7f
0180 #define AML_BIT_NOT_OP (UINT16) 0x80
0181 #define AML_FIND_SET_LEFT_BIT_OP (UINT16) 0x81
0182 #define AML_FIND_SET_RIGHT_BIT_OP (UINT16) 0x82
0183 #define AML_DEREF_OF_OP (UINT16) 0x83
0184 #define AML_CONCAT_RES_OP (UINT16) 0x84
0185 #define AML_MOD_OP (UINT16) 0x85
0186 #define AML_NOTIFY_OP (UINT16) 0x86
0187 #define AML_SIZE_OF_OP (UINT16) 0x87
0188 #define AML_INDEX_OP (UINT16) 0x88
0189 #define AML_MATCH_OP (UINT16) 0x89
0190 #define AML_CREATE_DWORD_FIELD_OP (UINT16) 0x8a
0191 #define AML_CREATE_WORD_FIELD_OP (UINT16) 0x8b
0192 #define AML_CREATE_BYTE_FIELD_OP (UINT16) 0x8c
0193 #define AML_CREATE_BIT_FIELD_OP (UINT16) 0x8d
0194 #define AML_TYPE_OP (UINT16) 0x8e
0195 #define AML_CREATE_QWORD_FIELD_OP (UINT16) 0x8f
0196 #define AML_LAND_OP (UINT16) 0x90
0197 #define AML_LOR_OP (UINT16) 0x91
0198 #define AML_LNOT_OP (UINT16) 0x92
0199 #define AML_LEQUAL_OP (UINT16) 0x93
0200 #define AML_LGREATER_OP (UINT16) 0x94
0201 #define AML_LLESS_OP (UINT16) 0x95
0202 #define AML_TO_BUFFER_OP (UINT16) 0x96
0203 #define AML_TO_DECSTRING_OP (UINT16) 0x97
0204 #define AML_TO_HEXSTRING_OP (UINT16) 0x98
0205 #define AML_TO_INTEGER_OP (UINT16) 0x99
0206 #define AML_TO_STRING_OP (UINT16) 0x9c
0207 #define AML_COPY_OP (UINT16) 0x9d
0208 #define AML_MID_OP (UINT16) 0x9e
0209 #define AML_CONTINUE_OP (UINT16) 0x9f
0210 #define AML_IF_OP (UINT16) 0xa0
0211 #define AML_ELSE_OP (UINT16) 0xa1
0212 #define AML_WHILE_OP (UINT16) 0xa2
0213 #define AML_NOOP_OP (UINT16) 0xa3
0214 #define AML_RETURN_OP (UINT16) 0xa4
0215 #define AML_BREAK_OP (UINT16) 0xa5
0216 #define AML_BREAK_POINT_OP (UINT16) 0xcc
0217 #define AML_ONES_OP (UINT16) 0xff
0218
0219
0220
0221 #define AML_EXTENDED_OPCODE (UINT16) 0x5b00
0222
0223 #define AML_MUTEX_OP (UINT16) 0x5b01
0224 #define AML_EVENT_OP (UINT16) 0x5b02
0225 #define AML_SHIFT_RIGHT_BIT_OP (UINT16) 0x5b10
0226 #define AML_SHIFT_LEFT_BIT_OP (UINT16) 0x5b11
0227 #define AML_COND_REF_OF_OP (UINT16) 0x5b12
0228 #define AML_CREATE_FIELD_OP (UINT16) 0x5b13
0229 #define AML_LOAD_TABLE_OP (UINT16) 0x5b1f
0230 #define AML_LOAD_OP (UINT16) 0x5b20
0231 #define AML_STALL_OP (UINT16) 0x5b21
0232 #define AML_SLEEP_OP (UINT16) 0x5b22
0233 #define AML_ACQUIRE_OP (UINT16) 0x5b23
0234 #define AML_SIGNAL_OP (UINT16) 0x5b24
0235 #define AML_WAIT_OP (UINT16) 0x5b25
0236 #define AML_RESET_OP (UINT16) 0x5b26
0237 #define AML_RELEASE_OP (UINT16) 0x5b27
0238 #define AML_FROM_BCD_OP (UINT16) 0x5b28
0239 #define AML_TO_BCD_OP (UINT16) 0x5b29
0240 #define AML_UNLOAD_OP (UINT16) 0x5b2a
0241 #define AML_REVISION_OP (UINT16) 0x5b30
0242 #define AML_DEBUG_OP (UINT16) 0x5b31
0243 #define AML_FATAL_OP (UINT16) 0x5b32
0244 #define AML_TIMER_OP (UINT16) 0x5b33
0245 #define AML_REGION_OP (UINT16) 0x5b80
0246 #define AML_FIELD_OP (UINT16) 0x5b81
0247 #define AML_DEVICE_OP (UINT16) 0x5b82
0248 #define AML_PROCESSOR_OP (UINT16) 0x5b83
0249 #define AML_POWER_RES_OP (UINT16) 0x5b84
0250 #define AML_THERMAL_ZONE_OP (UINT16) 0x5b85
0251 #define AML_INDEX_FIELD_OP (UINT16) 0x5b86
0252 #define AML_BANK_FIELD_OP (UINT16) 0x5b87
0253 #define AML_DATA_REGION_OP (UINT16) 0x5b88
0254
0255
0256
0257
0258
0259
0260 #define AML_LGREATEREQUAL_OP (UINT16) 0x9295
0261 #define AML_LLESSEQUAL_OP (UINT16) 0x9294
0262 #define AML_LNOTEQUAL_OP (UINT16) 0x9293
0263
0264
0265
0266
0267
0268
0269
0270 #define AML_INT_NAMEPATH_OP (UINT16) 0x002d
0271 #define AML_INT_NAMEDFIELD_OP (UINT16) 0x0030
0272 #define AML_INT_RESERVEDFIELD_OP (UINT16) 0x0031
0273 #define AML_INT_ACCESSFIELD_OP (UINT16) 0x0032
0274 #define AML_INT_BYTELIST_OP (UINT16) 0x0033
0275 #define AML_INT_STATICSTRING_OP (UINT16) 0x0034
0276 #define AML_INT_METHODCALL_OP (UINT16) 0x0035
0277 #define AML_INT_RETURN_VALUE_OP (UINT16) 0x0036
0278 #define AML_INT_EVAL_SUBTREE_OP (UINT16) 0x0037
0279
0280
0281 #define ARG_NONE 0x0
0282
0283
0284
0285
0286
0287
0288
0289 #define ARGP_BYTEDATA 0x01
0290 #define ARGP_BYTELIST 0x02
0291 #define ARGP_CHARLIST 0x03
0292 #define ARGP_DATAOBJ 0x04
0293 #define ARGP_DATAOBJLIST 0x05
0294 #define ARGP_DWORDDATA 0x06
0295 #define ARGP_FIELDLIST 0x07
0296 #define ARGP_NAME 0x08
0297 #define ARGP_NAMESTRING 0x09
0298 #define ARGP_OBJLIST 0x0A
0299 #define ARGP_PKGLENGTH 0x0B
0300 #define ARGP_SUPERNAME 0x0C
0301 #define ARGP_TARGET 0x0D
0302 #define ARGP_TERMARG 0x0E
0303 #define ARGP_TERMLIST 0x0F
0304 #define ARGP_WORDDATA 0x10
0305 #define ARGP_QWORDDATA 0x11
0306 #define ARGP_SIMPLENAME 0x12
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322 #define ARGI_ANYTYPE 0x01
0323 #define ARGI_PACKAGE 0x02
0324 #define ARGI_EVENT 0x03
0325 #define ARGI_MUTEX 0x04
0326 #define ARGI_DDBHANDLE 0x05
0327
0328
0329
0330 #define ARGI_INTEGER 0x06
0331 #define ARGI_STRING 0x07
0332 #define ARGI_BUFFER 0x08
0333 #define ARGI_BUFFER_OR_STRING 0x09
0334 #define ARGI_COMPUTEDATA 0x0A
0335
0336
0337
0338 #define ARGI_INTEGER_REF 0x0B
0339 #define ARGI_OBJECT_REF 0x0C
0340 #define ARGI_DEVICE_REF 0x0D
0341 #define ARGI_REFERENCE 0x0E
0342 #define ARGI_TARGETREF 0x0F
0343 #define ARGI_FIXED_TARGET 0x10
0344 #define ARGI_SIMPLE_TARGET 0x11
0345
0346
0347
0348 #define ARGI_DATAOBJECT 0x12
0349 #define ARGI_COMPLEXOBJ 0x13
0350 #define ARGI_REF_OR_STRING 0x14
0351 #define ARGI_REGION_OR_BUFFER 0x15
0352 #define ARGI_DATAREFOBJ 0x16
0353
0354
0355
0356 #define ARGI_INVALID_OPCODE 0xFFFFFFFF
0357
0358
0359
0360
0361
0362 #define AML_EXTOP_HASH_OFFSET 22
0363 #define AML_LNOT_HASH_OFFSET 19
0364
0365
0366
0367
0368
0369 #define OPGRP_NAMED 0x01
0370 #define OPGRP_FIELD 0x02
0371 #define OPGRP_BYTELIST 0x04
0372
0373
0374
0375
0376
0377
0378
0379
0380 #define AML_LOGICAL 0x0001
0381 #define AML_LOGICAL_NUMERIC 0x0002
0382 #define AML_MATH 0x0004
0383 #define AML_CREATE 0x0008
0384 #define AML_FIELD 0x0010
0385 #define AML_DEFER 0x0020
0386 #define AML_NAMED 0x0040
0387 #define AML_NSNODE 0x0080
0388 #define AML_NSOPCODE 0x0100
0389 #define AML_NSOBJECT 0x0200
0390 #define AML_HAS_RETVAL 0x0400
0391 #define AML_HAS_TARGET 0x0800
0392 #define AML_HAS_ARGS 0x1000
0393 #define AML_CONSTANT 0x2000
0394 #define AML_NO_OPERAND_RESOLVE 0x4000
0395
0396
0397
0398 #define AML_FLAGS_EXEC_0A_0T_1R AML_HAS_RETVAL
0399 #define AML_FLAGS_EXEC_1A_0T_0R AML_HAS_ARGS
0400 #define AML_FLAGS_EXEC_1A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL
0401 #define AML_FLAGS_EXEC_1A_1T_0R AML_HAS_ARGS | AML_HAS_TARGET
0402 #define AML_FLAGS_EXEC_1A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
0403 #define AML_FLAGS_EXEC_2A_0T_0R AML_HAS_ARGS
0404 #define AML_FLAGS_EXEC_2A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL
0405 #define AML_FLAGS_EXEC_2A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
0406 #define AML_FLAGS_EXEC_2A_2T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
0407 #define AML_FLAGS_EXEC_3A_0T_0R AML_HAS_ARGS
0408 #define AML_FLAGS_EXEC_3A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
0409 #define AML_FLAGS_EXEC_6A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL
0410
0411
0412
0413
0414
0415
0416 #define AML_TYPE_EXEC_0A_0T_1R 0x00
0417 #define AML_TYPE_EXEC_1A_0T_0R 0x01
0418 #define AML_TYPE_EXEC_1A_0T_1R 0x02
0419 #define AML_TYPE_EXEC_1A_1T_0R 0x03
0420 #define AML_TYPE_EXEC_1A_1T_1R 0x04
0421 #define AML_TYPE_EXEC_2A_0T_0R 0x05
0422 #define AML_TYPE_EXEC_2A_0T_1R 0x06
0423 #define AML_TYPE_EXEC_2A_1T_1R 0x07
0424 #define AML_TYPE_EXEC_2A_2T_1R 0x08
0425 #define AML_TYPE_EXEC_3A_0T_0R 0x09
0426 #define AML_TYPE_EXEC_3A_1T_1R 0x0A
0427 #define AML_TYPE_EXEC_6A_0T_1R 0x0B
0428
0429
0430 #define AML_TYPE_LITERAL 0x0B
0431 #define AML_TYPE_CONSTANT 0x0C
0432 #define AML_TYPE_METHOD_ARGUMENT 0x0D
0433 #define AML_TYPE_LOCAL_VARIABLE 0x0E
0434 #define AML_TYPE_DATA_TERM 0x0F
0435
0436
0437
0438 #define AML_TYPE_METHOD_CALL 0x10
0439
0440
0441
0442 #define AML_TYPE_CREATE_FIELD 0x11
0443 #define AML_TYPE_CREATE_OBJECT 0x12
0444 #define AML_TYPE_CONTROL 0x13
0445 #define AML_TYPE_NAMED_NO_OBJ 0x14
0446 #define AML_TYPE_NAMED_FIELD 0x15
0447 #define AML_TYPE_NAMED_SIMPLE 0x16
0448 #define AML_TYPE_NAMED_COMPLEX 0x17
0449 #define AML_TYPE_RETURN 0x18
0450
0451 #define AML_TYPE_UNDEFINED 0x19
0452 #define AML_TYPE_BOGUS 0x1A
0453
0454
0455
0456 #define ACPI_AML_PACKAGE_TYPE1 0x40
0457 #define ACPI_AML_PACKAGE_TYPE2 0x4000
0458 #define ACPI_AML_PACKAGE_TYPE3 0x400000
0459 #define ACPI_AML_PACKAGE_TYPE4 0x40000000
0460
0461
0462
0463
0464 #define AML_CLASS_EXECUTE 0x00
0465 #define AML_CLASS_CREATE 0x01
0466 #define AML_CLASS_ARGUMENT 0x02
0467 #define AML_CLASS_NAMED_OBJECT 0x03
0468 #define AML_CLASS_CONTROL 0x04
0469 #define AML_CLASS_ASCII 0x05
0470 #define AML_CLASS_PREFIX 0x06
0471 #define AML_CLASS_INTERNAL 0x07
0472 #define AML_CLASS_RETURN_VALUE 0x08
0473 #define AML_CLASS_METHOD_CALL 0x09
0474 #define AML_CLASS_UNKNOWN 0x0A
0475
0476
0477
0478
0479 typedef enum
0480 {
0481 REGION_MEMORY = 0,
0482 REGION_IO,
0483 REGION_PCI_CONFIG,
0484 REGION_EC,
0485 REGION_SMBUS,
0486 REGION_CMOS,
0487 REGION_PCI_BAR,
0488 REGION_IPMI,
0489 REGION_DATA_TABLE,
0490 REGION_FIXED_HW = 0x7F
0491
0492 } AML_REGION_TYPES;
0493
0494
0495
0496
0497 typedef enum
0498 {
0499 MATCH_MTR = 0,
0500 MATCH_MEQ = 1,
0501 MATCH_MLE = 2,
0502 MATCH_MLT = 3,
0503 MATCH_MGE = 4,
0504 MATCH_MGT = 5
0505
0506 } AML_MATCH_OPERATOR;
0507
0508 #define MAX_MATCH_OPERATOR 5
0509
0510
0511
0512
0513
0514
0515
0516
0517
0518
0519
0520
0521
0522
0523
0524 #define AML_FIELD_ACCESS_TYPE_MASK 0x0F
0525 #define AML_FIELD_LOCK_RULE_MASK 0x10
0526 #define AML_FIELD_UPDATE_RULE_MASK 0x60
0527
0528
0529
0530
0531 typedef enum
0532 {
0533 AML_FIELD_ACCESS_ANY = 0x00,
0534 AML_FIELD_ACCESS_BYTE = 0x01,
0535 AML_FIELD_ACCESS_WORD = 0x02,
0536 AML_FIELD_ACCESS_DWORD = 0x03,
0537 AML_FIELD_ACCESS_QWORD = 0x04,
0538 AML_FIELD_ACCESS_BUFFER = 0x05
0539
0540 } AML_ACCESS_TYPE;
0541
0542
0543
0544
0545 typedef enum
0546 {
0547 AML_FIELD_LOCK_NEVER = 0x00,
0548 AML_FIELD_LOCK_ALWAYS = 0x10
0549
0550 } AML_LOCK_RULE;
0551
0552
0553
0554
0555 typedef enum
0556 {
0557 AML_FIELD_UPDATE_PRESERVE = 0x00,
0558 AML_FIELD_UPDATE_WRITE_AS_ONES = 0x20,
0559 AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40
0560
0561 } AML_UPDATE_RULE;
0562
0563
0564
0565
0566
0567
0568
0569 typedef enum
0570 {
0571 AML_FIELD_ATTRIB_SMB_QUICK = 0x02,
0572 AML_FIELD_ATTRIB_SMB_SEND_RCV = 0x04,
0573 AML_FIELD_ATTRIB_SMB_BYTE = 0x06,
0574 AML_FIELD_ATTRIB_SMB_WORD = 0x08,
0575 AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A,
0576 AML_FIELD_ATTRIB_SMB_WORD_CALL = 0x0C,
0577 AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D
0578
0579 } AML_ACCESS_ATTRIBUTE;
0580
0581
0582
0583
0584 #define AML_METHOD_ARG_COUNT 0x07
0585 #define AML_METHOD_SERIALIZED 0x08
0586 #define AML_METHOD_SYNC_LEVEL 0xF0
0587
0588
0589
0590 #define AML_METHOD_INTERNAL_ONLY 0x01
0591 #define AML_METHOD_RESERVED1 0x02
0592 #define AML_METHOD_RESERVED2 0x04
0593
0594
0595 #endif