0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <acpi/acpi.h>
0011 #include "accommon.h"
0012 #include "acopcode.h"
0013 #include "amlcode.h"
0014
0015 #define _COMPONENT ACPI_PARSER
0016 ACPI_MODULE_NAME("psopcode")
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 const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES] = {
0150
0151
0152
0153 ACPI_OP("Zero", ARGP_ZERO_OP, ARGI_ZERO_OP, ACPI_TYPE_INTEGER,
0154 AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
0155 ACPI_OP("One", ARGP_ONE_OP, ARGI_ONE_OP, ACPI_TYPE_INTEGER,
0156 AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
0157 ACPI_OP("Alias", ARGP_ALIAS_OP, ARGI_ALIAS_OP,
0158 ACPI_TYPE_LOCAL_ALIAS, AML_CLASS_NAMED_OBJECT,
0159 AML_TYPE_NAMED_SIMPLE,
0160 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0161 AML_NSNODE | AML_NAMED),
0162 ACPI_OP("Name", ARGP_NAME_OP, ARGI_NAME_OP, ACPI_TYPE_ANY,
0163 AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX,
0164 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0165 AML_NSNODE | AML_NAMED),
0166 ACPI_OP("ByteConst", ARGP_BYTE_OP, ARGI_BYTE_OP,
0167 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
0168 AML_TYPE_LITERAL, AML_CONSTANT),
0169 ACPI_OP("WordConst", ARGP_WORD_OP, ARGI_WORD_OP,
0170 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
0171 AML_TYPE_LITERAL, AML_CONSTANT),
0172 ACPI_OP("DwordConst", ARGP_DWORD_OP, ARGI_DWORD_OP,
0173 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
0174 AML_TYPE_LITERAL, AML_CONSTANT),
0175 ACPI_OP("String", ARGP_STRING_OP, ARGI_STRING_OP,
0176 ACPI_TYPE_STRING, AML_CLASS_ARGUMENT,
0177 AML_TYPE_LITERAL, AML_CONSTANT),
0178 ACPI_OP("Scope", ARGP_SCOPE_OP, ARGI_SCOPE_OP,
0179 ACPI_TYPE_LOCAL_SCOPE, AML_CLASS_NAMED_OBJECT,
0180 AML_TYPE_NAMED_NO_OBJ,
0181 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0182 AML_NSNODE | AML_NAMED),
0183 ACPI_OP("Buffer", ARGP_BUFFER_OP, ARGI_BUFFER_OP,
0184 ACPI_TYPE_BUFFER, AML_CLASS_CREATE,
0185 AML_TYPE_CREATE_OBJECT,
0186 AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
0187 ACPI_OP("Package", ARGP_PACKAGE_OP, ARGI_PACKAGE_OP,
0188 ACPI_TYPE_PACKAGE, AML_CLASS_CREATE,
0189 AML_TYPE_CREATE_OBJECT,
0190 AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
0191 ACPI_OP("Method", ARGP_METHOD_OP, ARGI_METHOD_OP,
0192 ACPI_TYPE_METHOD, AML_CLASS_NAMED_OBJECT,
0193 AML_TYPE_NAMED_COMPLEX,
0194 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0195 AML_NSNODE | AML_NAMED | AML_DEFER),
0196 ACPI_OP("Local0", ARGP_LOCAL0, ARGI_LOCAL0,
0197 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0198 AML_TYPE_LOCAL_VARIABLE, 0),
0199 ACPI_OP("Local1", ARGP_LOCAL1, ARGI_LOCAL1,
0200 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0201 AML_TYPE_LOCAL_VARIABLE, 0),
0202 ACPI_OP("Local2", ARGP_LOCAL2, ARGI_LOCAL2,
0203 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0204 AML_TYPE_LOCAL_VARIABLE, 0),
0205 ACPI_OP("Local3", ARGP_LOCAL3, ARGI_LOCAL3,
0206 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0207 AML_TYPE_LOCAL_VARIABLE, 0),
0208 ACPI_OP("Local4", ARGP_LOCAL4, ARGI_LOCAL4,
0209 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0210 AML_TYPE_LOCAL_VARIABLE, 0),
0211 ACPI_OP("Local5", ARGP_LOCAL5, ARGI_LOCAL5,
0212 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0213 AML_TYPE_LOCAL_VARIABLE, 0),
0214 ACPI_OP("Local6", ARGP_LOCAL6, ARGI_LOCAL6,
0215 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0216 AML_TYPE_LOCAL_VARIABLE, 0),
0217 ACPI_OP("Local7", ARGP_LOCAL7, ARGI_LOCAL7,
0218 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0219 AML_TYPE_LOCAL_VARIABLE, 0),
0220 ACPI_OP("Arg0", ARGP_ARG0, ARGI_ARG0,
0221 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0222 AML_TYPE_METHOD_ARGUMENT, 0),
0223 ACPI_OP("Arg1", ARGP_ARG1, ARGI_ARG1,
0224 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0225 AML_TYPE_METHOD_ARGUMENT, 0),
0226 ACPI_OP("Arg2", ARGP_ARG2, ARGI_ARG2,
0227 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0228 AML_TYPE_METHOD_ARGUMENT, 0),
0229 ACPI_OP("Arg3", ARGP_ARG3, ARGI_ARG3,
0230 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0231 AML_TYPE_METHOD_ARGUMENT, 0),
0232 ACPI_OP("Arg4", ARGP_ARG4, ARGI_ARG4,
0233 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0234 AML_TYPE_METHOD_ARGUMENT, 0),
0235 ACPI_OP("Arg5", ARGP_ARG5, ARGI_ARG5,
0236 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0237 AML_TYPE_METHOD_ARGUMENT, 0),
0238 ACPI_OP("Arg6", ARGP_ARG6, ARGI_ARG6,
0239 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0240 AML_TYPE_METHOD_ARGUMENT, 0),
0241 ACPI_OP("Store", ARGP_STORE_OP, ARGI_STORE_OP, ACPI_TYPE_ANY,
0242 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R,
0243 AML_FLAGS_EXEC_1A_1T_1R),
0244 ACPI_OP("RefOf", ARGP_REF_OF_OP, ARGI_REF_OF_OP, ACPI_TYPE_ANY,
0245 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R,
0246 AML_FLAGS_EXEC_1A_0T_1R),
0247 ACPI_OP("Add", ARGP_ADD_OP, ARGI_ADD_OP, ACPI_TYPE_ANY,
0248 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R,
0249 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0250 ACPI_OP("Concatenate", ARGP_CONCAT_OP, ARGI_CONCAT_OP,
0251 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0252 AML_TYPE_EXEC_2A_1T_1R,
0253 AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
0254 ACPI_OP("Subtract", ARGP_SUBTRACT_OP, ARGI_SUBTRACT_OP,
0255 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0256 AML_TYPE_EXEC_2A_1T_1R,
0257 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0258 ACPI_OP("Increment", ARGP_INCREMENT_OP, ARGI_INCREMENT_OP,
0259 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0260 AML_TYPE_EXEC_1A_0T_1R,
0261 AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
0262 ACPI_OP("Decrement", ARGP_DECREMENT_OP, ARGI_DECREMENT_OP,
0263 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0264 AML_TYPE_EXEC_1A_0T_1R,
0265 AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
0266 ACPI_OP("Multiply", ARGP_MULTIPLY_OP, ARGI_MULTIPLY_OP,
0267 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0268 AML_TYPE_EXEC_2A_1T_1R,
0269 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0270 ACPI_OP("Divide", ARGP_DIVIDE_OP, ARGI_DIVIDE_OP,
0271 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0272 AML_TYPE_EXEC_2A_2T_1R,
0273 AML_FLAGS_EXEC_2A_2T_1R | AML_CONSTANT),
0274 ACPI_OP("ShiftLeft", ARGP_SHIFT_LEFT_OP, ARGI_SHIFT_LEFT_OP,
0275 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0276 AML_TYPE_EXEC_2A_1T_1R,
0277 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0278 ACPI_OP("ShiftRight", ARGP_SHIFT_RIGHT_OP, ARGI_SHIFT_RIGHT_OP,
0279 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0280 AML_TYPE_EXEC_2A_1T_1R,
0281 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0282 ACPI_OP("And", ARGP_BIT_AND_OP, ARGI_BIT_AND_OP, ACPI_TYPE_ANY,
0283 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R,
0284 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0285 ACPI_OP("NAnd", ARGP_BIT_NAND_OP, ARGI_BIT_NAND_OP,
0286 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0287 AML_TYPE_EXEC_2A_1T_1R,
0288 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0289 ACPI_OP("Or", ARGP_BIT_OR_OP, ARGI_BIT_OR_OP, ACPI_TYPE_ANY,
0290 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R,
0291 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0292 ACPI_OP("NOr", ARGP_BIT_NOR_OP, ARGI_BIT_NOR_OP, ACPI_TYPE_ANY,
0293 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R,
0294 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0295 ACPI_OP("XOr", ARGP_BIT_XOR_OP, ARGI_BIT_XOR_OP, ACPI_TYPE_ANY,
0296 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R,
0297 AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
0298 ACPI_OP("Not", ARGP_BIT_NOT_OP, ARGI_BIT_NOT_OP, ACPI_TYPE_ANY,
0299 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R,
0300 AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
0301 ACPI_OP("FindSetLeftBit", ARGP_FIND_SET_LEFT_BIT_OP,
0302 ARGI_FIND_SET_LEFT_BIT_OP, ACPI_TYPE_ANY,
0303 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R,
0304 AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
0305 ACPI_OP("FindSetRightBit", ARGP_FIND_SET_RIGHT_BIT_OP,
0306 ARGI_FIND_SET_RIGHT_BIT_OP, ACPI_TYPE_ANY,
0307 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R,
0308 AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
0309 ACPI_OP("DerefOf", ARGP_DEREF_OF_OP, ARGI_DEREF_OF_OP,
0310 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0311 AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
0312 ACPI_OP("Notify", ARGP_NOTIFY_OP, ARGI_NOTIFY_OP,
0313 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0314 AML_TYPE_EXEC_2A_0T_0R, AML_FLAGS_EXEC_2A_0T_0R),
0315 ACPI_OP("SizeOf", ARGP_SIZE_OF_OP, ARGI_SIZE_OF_OP,
0316 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0317 AML_TYPE_EXEC_1A_0T_1R,
0318 AML_FLAGS_EXEC_1A_0T_1R | AML_NO_OPERAND_RESOLVE),
0319 ACPI_OP("Index", ARGP_INDEX_OP, ARGI_INDEX_OP, ACPI_TYPE_ANY,
0320 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R,
0321 AML_FLAGS_EXEC_2A_1T_1R),
0322 ACPI_OP("Match", ARGP_MATCH_OP, ARGI_MATCH_OP, ACPI_TYPE_ANY,
0323 AML_CLASS_EXECUTE, AML_TYPE_EXEC_6A_0T_1R,
0324 AML_FLAGS_EXEC_6A_0T_1R | AML_CONSTANT),
0325 ACPI_OP("CreateDWordField", ARGP_CREATE_DWORD_FIELD_OP,
0326 ARGI_CREATE_DWORD_FIELD_OP,
0327 ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE,
0328 AML_TYPE_CREATE_FIELD,
0329 AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE |
0330 AML_DEFER | AML_CREATE),
0331 ACPI_OP("CreateWordField", ARGP_CREATE_WORD_FIELD_OP,
0332 ARGI_CREATE_WORD_FIELD_OP,
0333 ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE,
0334 AML_TYPE_CREATE_FIELD,
0335 AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE |
0336 AML_DEFER | AML_CREATE),
0337 ACPI_OP("CreateByteField", ARGP_CREATE_BYTE_FIELD_OP,
0338 ARGI_CREATE_BYTE_FIELD_OP,
0339 ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE,
0340 AML_TYPE_CREATE_FIELD,
0341 AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE |
0342 AML_DEFER | AML_CREATE),
0343 ACPI_OP("CreateBitField", ARGP_CREATE_BIT_FIELD_OP,
0344 ARGI_CREATE_BIT_FIELD_OP,
0345 ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE,
0346 AML_TYPE_CREATE_FIELD,
0347 AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE |
0348 AML_DEFER | AML_CREATE),
0349 ACPI_OP("ObjectType", ARGP_OBJECT_TYPE_OP, ARGI_OBJECT_TYPE_OP,
0350 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0351 AML_TYPE_EXEC_1A_0T_1R,
0352 AML_FLAGS_EXEC_1A_0T_1R | AML_NO_OPERAND_RESOLVE),
0353 ACPI_OP("LAnd", ARGP_LAND_OP, ARGI_LAND_OP, ACPI_TYPE_ANY,
0354 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R,
0355 AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL_NUMERIC |
0356 AML_CONSTANT),
0357 ACPI_OP("LOr", ARGP_LOR_OP, ARGI_LOR_OP, ACPI_TYPE_ANY,
0358 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R,
0359 AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL_NUMERIC |
0360 AML_CONSTANT),
0361 ACPI_OP("LNot", ARGP_LNOT_OP, ARGI_LNOT_OP, ACPI_TYPE_ANY,
0362 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R,
0363 AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
0364 ACPI_OP("LEqual", ARGP_LEQUAL_OP, ARGI_LEQUAL_OP,
0365 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0366 AML_TYPE_EXEC_2A_0T_1R,
0367 AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
0368 ACPI_OP("LGreater", ARGP_LGREATER_OP, ARGI_LGREATER_OP,
0369 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0370 AML_TYPE_EXEC_2A_0T_1R,
0371 AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
0372 ACPI_OP("LLess", ARGP_LLESS_OP, ARGI_LLESS_OP, ACPI_TYPE_ANY,
0373 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R,
0374 AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
0375 ACPI_OP("If", ARGP_IF_OP, ARGI_IF_OP, ACPI_TYPE_ANY,
0376 AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
0377 ACPI_OP("Else", ARGP_ELSE_OP, ARGI_ELSE_OP, ACPI_TYPE_ANY,
0378 AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
0379 ACPI_OP("While", ARGP_WHILE_OP, ARGI_WHILE_OP, ACPI_TYPE_ANY,
0380 AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
0381 ACPI_OP("Noop", ARGP_NOOP_OP, ARGI_NOOP_OP, ACPI_TYPE_ANY,
0382 AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
0383 ACPI_OP("Return", ARGP_RETURN_OP, ARGI_RETURN_OP,
0384 ACPI_TYPE_ANY, AML_CLASS_CONTROL,
0385 AML_TYPE_CONTROL, AML_HAS_ARGS),
0386 ACPI_OP("Break", ARGP_BREAK_OP, ARGI_BREAK_OP, ACPI_TYPE_ANY,
0387 AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
0388 ACPI_OP("BreakPoint", ARGP_BREAK_POINT_OP, ARGI_BREAK_POINT_OP,
0389 ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
0390 ACPI_OP("Ones", ARGP_ONES_OP, ARGI_ONES_OP, ACPI_TYPE_INTEGER,
0391 AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
0392
0393
0394
0395 ACPI_OP("Mutex", ARGP_MUTEX_OP, ARGI_MUTEX_OP, ACPI_TYPE_MUTEX,
0396 AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE,
0397 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0398 AML_NSNODE | AML_NAMED),
0399 ACPI_OP("Event", ARGP_EVENT_OP, ARGI_EVENT_OP, ACPI_TYPE_EVENT,
0400 AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE,
0401 AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
0402 ACPI_OP("CondRefOf", ARGP_COND_REF_OF_OP, ARGI_COND_REF_OF_OP,
0403 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0404 AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
0405 ACPI_OP("CreateField", ARGP_CREATE_FIELD_OP,
0406 ARGI_CREATE_FIELD_OP, ACPI_TYPE_BUFFER_FIELD,
0407 AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD,
0408 AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE |
0409 AML_DEFER | AML_FIELD | AML_CREATE),
0410 ACPI_OP("Load", ARGP_LOAD_OP, ARGI_LOAD_OP, ACPI_TYPE_ANY,
0411 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R,
0412 AML_FLAGS_EXEC_1A_1T_1R),
0413 ACPI_OP("Stall", ARGP_STALL_OP, ARGI_STALL_OP, ACPI_TYPE_ANY,
0414 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R,
0415 AML_FLAGS_EXEC_1A_0T_0R),
0416 ACPI_OP("Sleep", ARGP_SLEEP_OP, ARGI_SLEEP_OP, ACPI_TYPE_ANY,
0417 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R,
0418 AML_FLAGS_EXEC_1A_0T_0R),
0419 ACPI_OP("Acquire", ARGP_ACQUIRE_OP, ARGI_ACQUIRE_OP,
0420 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0421 AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R),
0422 ACPI_OP("Signal", ARGP_SIGNAL_OP, ARGI_SIGNAL_OP,
0423 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0424 AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
0425 ACPI_OP("Wait", ARGP_WAIT_OP, ARGI_WAIT_OP, ACPI_TYPE_ANY,
0426 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R,
0427 AML_FLAGS_EXEC_2A_0T_1R),
0428 ACPI_OP("Reset", ARGP_RESET_OP, ARGI_RESET_OP, ACPI_TYPE_ANY,
0429 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R,
0430 AML_FLAGS_EXEC_1A_0T_0R),
0431 ACPI_OP("Release", ARGP_RELEASE_OP, ARGI_RELEASE_OP,
0432 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0433 AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
0434 ACPI_OP("FromBCD", ARGP_FROM_BCD_OP, ARGI_FROM_BCD_OP,
0435 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0436 AML_TYPE_EXEC_1A_1T_1R,
0437 AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
0438 ACPI_OP("ToBCD", ARGP_TO_BCD_OP, ARGI_TO_BCD_OP, ACPI_TYPE_ANY,
0439 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R,
0440 AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
0441 ACPI_OP("Unload", ARGP_UNLOAD_OP, ARGI_UNLOAD_OP,
0442 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0443 AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
0444 ACPI_OP("Revision", ARGP_REVISION_OP, ARGI_REVISION_OP,
0445 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
0446 AML_TYPE_CONSTANT, 0),
0447 ACPI_OP("Debug", ARGP_DEBUG_OP, ARGI_DEBUG_OP,
0448 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0449 AML_TYPE_CONSTANT, 0),
0450 ACPI_OP("Fatal", ARGP_FATAL_OP, ARGI_FATAL_OP, ACPI_TYPE_ANY,
0451 AML_CLASS_EXECUTE, AML_TYPE_EXEC_3A_0T_0R,
0452 AML_FLAGS_EXEC_3A_0T_0R),
0453 ACPI_OP("OperationRegion", ARGP_REGION_OP, ARGI_REGION_OP,
0454 ACPI_TYPE_REGION, AML_CLASS_NAMED_OBJECT,
0455 AML_TYPE_NAMED_COMPLEX,
0456 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0457 AML_NSNODE | AML_NAMED | AML_DEFER),
0458 ACPI_OP("Field", ARGP_FIELD_OP, ARGI_FIELD_OP, ACPI_TYPE_ANY,
0459 AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD,
0460 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0461 AML_FIELD),
0462 ACPI_OP("Device", ARGP_DEVICE_OP, ARGI_DEVICE_OP,
0463 ACPI_TYPE_DEVICE, AML_CLASS_NAMED_OBJECT,
0464 AML_TYPE_NAMED_NO_OBJ,
0465 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0466 AML_NSNODE | AML_NAMED),
0467 ACPI_OP("Processor", ARGP_PROCESSOR_OP, ARGI_PROCESSOR_OP,
0468 ACPI_TYPE_PROCESSOR, AML_CLASS_NAMED_OBJECT,
0469 AML_TYPE_NAMED_SIMPLE,
0470 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0471 AML_NSNODE | AML_NAMED),
0472 ACPI_OP("PowerResource", ARGP_POWER_RES_OP, ARGI_POWER_RES_OP,
0473 ACPI_TYPE_POWER, AML_CLASS_NAMED_OBJECT,
0474 AML_TYPE_NAMED_SIMPLE,
0475 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0476 AML_NSNODE | AML_NAMED),
0477 ACPI_OP("ThermalZone", ARGP_THERMAL_ZONE_OP,
0478 ARGI_THERMAL_ZONE_OP, ACPI_TYPE_THERMAL,
0479 AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ,
0480 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0481 AML_NSNODE | AML_NAMED),
0482 ACPI_OP("IndexField", ARGP_INDEX_FIELD_OP, ARGI_INDEX_FIELD_OP,
0483 ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT,
0484 AML_TYPE_NAMED_FIELD,
0485 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0486 AML_FIELD),
0487 ACPI_OP("BankField", ARGP_BANK_FIELD_OP, ARGI_BANK_FIELD_OP,
0488 ACPI_TYPE_LOCAL_BANK_FIELD,
0489 AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD,
0490 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0491 AML_FIELD | AML_DEFER),
0492
0493
0494
0495 ACPI_OP("LNotEqual", ARGP_LNOTEQUAL_OP, ARGI_LNOTEQUAL_OP,
0496 ACPI_TYPE_ANY, AML_CLASS_INTERNAL,
0497 AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
0498 ACPI_OP("LLessEqual", ARGP_LLESSEQUAL_OP, ARGI_LLESSEQUAL_OP,
0499 ACPI_TYPE_ANY, AML_CLASS_INTERNAL,
0500 AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
0501 ACPI_OP("LGreaterEqual", ARGP_LGREATEREQUAL_OP,
0502 ARGI_LGREATEREQUAL_OP, ACPI_TYPE_ANY,
0503 AML_CLASS_INTERNAL, AML_TYPE_BOGUS,
0504 AML_HAS_ARGS | AML_CONSTANT),
0505 ACPI_OP("-NamePath-", ARGP_NAMEPATH_OP, ARGI_NAMEPATH_OP,
0506 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
0507 AML_TYPE_LITERAL, AML_NSOBJECT | AML_NSNODE),
0508 ACPI_OP("-MethodCall-", ARGP_METHODCALL_OP, ARGI_METHODCALL_OP,
0509 ACPI_TYPE_METHOD, AML_CLASS_METHOD_CALL,
0510 AML_TYPE_METHOD_CALL,
0511 AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE),
0512 ACPI_OP("-ByteList-", ARGP_BYTELIST_OP, ARGI_BYTELIST_OP,
0513 ACPI_TYPE_ANY, AML_CLASS_ARGUMENT,
0514 AML_TYPE_LITERAL, 0),
0515 ACPI_OP("-ReservedField-", ARGP_RESERVEDFIELD_OP,
0516 ARGI_RESERVEDFIELD_OP, ACPI_TYPE_ANY,
0517 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
0518 ACPI_OP("-NamedField-", ARGP_NAMEDFIELD_OP, ARGI_NAMEDFIELD_OP,
0519 ACPI_TYPE_ANY, AML_CLASS_INTERNAL,
0520 AML_TYPE_BOGUS,
0521 AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
0522 ACPI_OP("-AccessField-", ARGP_ACCESSFIELD_OP,
0523 ARGI_ACCESSFIELD_OP, ACPI_TYPE_ANY,
0524 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
0525 ACPI_OP("-StaticString", ARGP_STATICSTRING_OP,
0526 ARGI_STATICSTRING_OP, ACPI_TYPE_ANY,
0527 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
0528 ACPI_OP("-Return Value-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY,
0529 AML_CLASS_RETURN_VALUE, AML_TYPE_RETURN,
0530 AML_HAS_ARGS | AML_HAS_RETVAL),
0531 ACPI_OP("-UNKNOWN_OP-", ARG_NONE, ARG_NONE, ACPI_TYPE_INVALID,
0532 AML_CLASS_UNKNOWN, AML_TYPE_BOGUS, AML_HAS_ARGS),
0533 ACPI_OP("-ASCII_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY,
0534 AML_CLASS_ASCII, AML_TYPE_BOGUS, AML_HAS_ARGS),
0535 ACPI_OP("-PREFIX_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY,
0536 AML_CLASS_PREFIX, AML_TYPE_BOGUS, AML_HAS_ARGS),
0537
0538
0539
0540 ACPI_OP("QwordConst", ARGP_QWORD_OP, ARGI_QWORD_OP,
0541 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
0542 AML_TYPE_LITERAL, AML_CONSTANT),
0543 ACPI_OP("Package", ARGP_VAR_PACKAGE_OP,
0544 ARGI_VAR_PACKAGE_OP, ACPI_TYPE_PACKAGE,
0545 AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT,
0546 AML_HAS_ARGS | AML_DEFER),
0547 ACPI_OP("ConcatenateResTemplate", ARGP_CONCAT_RES_OP,
0548 ARGI_CONCAT_RES_OP, ACPI_TYPE_ANY,
0549 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R,
0550 AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
0551 ACPI_OP("Mod", ARGP_MOD_OP, ARGI_MOD_OP, ACPI_TYPE_ANY,
0552 AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R,
0553 AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
0554 ACPI_OP("CreateQWordField", ARGP_CREATE_QWORD_FIELD_OP,
0555 ARGI_CREATE_QWORD_FIELD_OP,
0556 ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE,
0557 AML_TYPE_CREATE_FIELD,
0558 AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE |
0559 AML_DEFER | AML_CREATE),
0560 ACPI_OP("ToBuffer", ARGP_TO_BUFFER_OP, ARGI_TO_BUFFER_OP,
0561 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0562 AML_TYPE_EXEC_1A_1T_1R,
0563 AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
0564 ACPI_OP("ToDecimalString", ARGP_TO_DEC_STR_OP,
0565 ARGI_TO_DEC_STR_OP, ACPI_TYPE_ANY,
0566 AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R,
0567 AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
0568 ACPI_OP("ToHexString", ARGP_TO_HEX_STR_OP, ARGI_TO_HEX_STR_OP,
0569 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0570 AML_TYPE_EXEC_1A_1T_1R,
0571 AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
0572 ACPI_OP("ToInteger", ARGP_TO_INTEGER_OP, ARGI_TO_INTEGER_OP,
0573 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0574 AML_TYPE_EXEC_1A_1T_1R,
0575 AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
0576 ACPI_OP("ToString", ARGP_TO_STRING_OP, ARGI_TO_STRING_OP,
0577 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0578 AML_TYPE_EXEC_2A_1T_1R,
0579 AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
0580 ACPI_OP("CopyObject", ARGP_COPY_OP, ARGI_COPY_OP,
0581 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0582 AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
0583 ACPI_OP("Mid", ARGP_MID_OP, ARGI_MID_OP, ACPI_TYPE_ANY,
0584 AML_CLASS_EXECUTE, AML_TYPE_EXEC_3A_1T_1R,
0585 AML_FLAGS_EXEC_3A_1T_1R | AML_CONSTANT),
0586 ACPI_OP("Continue", ARGP_CONTINUE_OP, ARGI_CONTINUE_OP,
0587 ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
0588 ACPI_OP("LoadTable", ARGP_LOAD_TABLE_OP, ARGI_LOAD_TABLE_OP,
0589 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
0590 AML_TYPE_EXEC_6A_0T_1R, AML_FLAGS_EXEC_6A_0T_1R),
0591 ACPI_OP("DataTableRegion", ARGP_DATA_REGION_OP,
0592 ARGI_DATA_REGION_OP, ACPI_TYPE_REGION,
0593 AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX,
0594 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0595 AML_NSNODE | AML_NAMED | AML_DEFER),
0596 ACPI_OP("[EvalSubTree]", ARGP_SCOPE_OP, ARGI_SCOPE_OP,
0597 ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT,
0598 AML_TYPE_NAMED_NO_OBJ,
0599 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0600 AML_NSNODE),
0601
0602
0603
0604 ACPI_OP("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY,
0605 AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R,
0606 AML_FLAGS_EXEC_0A_0T_1R),
0607
0608
0609
0610 ACPI_OP("-ConnectField-", ARGP_CONNECTFIELD_OP,
0611 ARGI_CONNECTFIELD_OP, ACPI_TYPE_ANY,
0612 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS),
0613 ACPI_OP("-ExtAccessField-", ARGP_CONNECTFIELD_OP,
0614 ARGI_CONNECTFIELD_OP, ACPI_TYPE_ANY,
0615 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
0616
0617
0618
0619 ACPI_OP("External", ARGP_EXTERNAL_OP, ARGI_EXTERNAL_OP,
0620 ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT,
0621 AML_TYPE_NAMED_SIMPLE,
0622 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
0623 AML_NSNODE | AML_NAMED),
0624 ACPI_OP("Comment", ARGP_COMMENT_OP, ARGI_COMMENT_OP,
0625 ACPI_TYPE_STRING, AML_CLASS_ARGUMENT,
0626 AML_TYPE_LITERAL, AML_CONSTANT)
0627
0628
0629 };