7#define UACPI_EXT_PREFIX 0x5B
8#define UACPI_EXT_OP(op) ((UACPI_EXT_PREFIX << 8) | (op))
10#define UACPI_DUAL_NAME_PREFIX 0x2E
11#define UACPI_MULTI_NAME_PREFIX 0x2F
12#define UACPI_NULL_NAME 0x00
304#define UACPI_INVALID_OPCODE(code) \
306 Invalid_##code, code, UACPI_OP_PROPERTY_INVALID, \
307 { UACPI_PARSE_OP_END, } \
310#define UACPI_METHOD_CALL_OPCODE(nargs) \
312 InternalOpMethodCall##nargs##Args, 0xF7 + nargs, \
313 UACPI_OP_PROPERTY_TERM_ARG | \
314 UACPI_OP_PROPERTY_INTERNAL, \
316 UACPI_PARSE_OP_LOAD_INLINE_IMM, 1, nargs, \
317 UACPI_PARSE_OP_IF_NOT_NULL, 1, 6, \
318 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
319 UACPI_PARSE_OP_OBJECT_CONVERT_TO_SHALLOW_COPY, \
320 UACPI_PARSE_OP_IMM_DECREMENT, 1, \
321 UACPI_PARSE_OP_JMP, 3, \
322 UACPI_PARSE_OP_OBJECT_ALLOC, \
323 UACPI_PARSE_OP_DISPATCH_METHOD_CALL, \
324 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
346#define UACPI_UNRESOLVED_NAME_STRING_OP(character, code) \
348 UnresolvedNameString_##character, code, \
349 UACPI_OP_PROPERTY_SIMPLE_NAME | \
350 UACPI_OP_PROPERTY_SUPERNAME | \
351 UACPI_OP_PROPERTY_TERM_ARG, \
353 UACPI_PARSE_OP_AML_PC_DECREMENT, \
354 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL, \
355 UACPI_PARSE_OP_CONVERT_NAMESTRING, \
359#define UACPI_BUILD_LOCAL_OR_ARG_OP(prefix, base, offset) \
361 prefix##offset##Op, base + offset, \
362 UACPI_OP_PROPERTY_SUPERNAME | \
363 UACPI_OP_PROPERTY_TERM_ARG | \
364 UACPI_OP_PROPERTY_SIMPLE_NAME, \
366 UACPI_PARSE_OP_EMPTY_OBJECT_ALLOC, \
367 UACPI_PARSE_OP_INVOKE_HANDLER, \
368 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
372#define UACPI_LOCALX_OP(idx) UACPI_BUILD_LOCAL_OR_ARG_OP(Local, 0x60, idx)
373#define UACPI_ARGX_OP(idx) UACPI_BUILD_LOCAL_OR_ARG_OP(Arg, 0x68, idx)
375#define UACPI_BUILD_PACKAGE_OP(name, code, jmp_off, ...) \
378 UACPI_OP_PROPERTY_TERM_ARG, \
380 UACPI_PARSE_OP_TRACKED_PKGLEN, \
382 UACPI_PARSE_OP_IF_HAS_DATA, 4, \
383 UACPI_PARSE_OP_RECORD_AML_PC, \
384 UACPI_PARSE_OP_TERM_ARG_OR_NAMED_OBJECT_OR_UNRESOLVED, \
385 UACPI_PARSE_OP_JMP, jmp_off, \
386 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_PACKAGE, \
387 UACPI_PARSE_OP_INVOKE_HANDLER, \
388 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
392#define UACPI_BUILD_BINARY_MATH_OP(prefix, code) \
395 UACPI_OP_PROPERTY_TERM_ARG, \
397 UACPI_PARSE_OP_OPERAND, \
398 UACPI_PARSE_OP_OPERAND, \
399 UACPI_PARSE_OP_TARGET, \
400 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
401 UACPI_PARSE_OP_INVOKE_HANDLER, \
402 UACPI_PARSE_OP_TRUNCATE_NUMBER, \
403 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
404 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
408#define UACPI_BUILD_UNARY_MATH_OP(type, code) \
411 UACPI_OP_PROPERTY_TERM_ARG, \
413 UACPI_PARSE_OP_OPERAND, \
414 UACPI_PARSE_OP_TARGET, \
415 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
416 UACPI_PARSE_OP_INVOKE_HANDLER, \
417 UACPI_PARSE_OP_STORE_TO_TARGET, 1, \
418 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
422#define UACPI_DO_BUILD_BUFFER_FIELD_OP(type, code, node_idx, ...) \
424 type##FieldOp, code, 0, \
426 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
427 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_BUFFER, \
428 UACPI_PARSE_OP_OPERAND, \
430 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
431 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, node_idx, \
432 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER_FIELD, \
433 UACPI_PARSE_OP_INVOKE_HANDLER, \
434 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, node_idx, \
438#define UACPI_BUILD_BUFFER_FIELD_OP(type, code) \
439 UACPI_DO_BUILD_BUFFER_FIELD_OP(Create##type, code, 2)
441#define UACPI_INTEGER_LITERAL_OP(type, code, bytes) \
443 type##Prefix, code, \
444 UACPI_OP_PROPERTY_TERM_ARG, \
446 UACPI_PARSE_OP_LOAD_IMM_AS_OBJECT, bytes, \
447 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
451#define UACPI_BUILD_BINARY_LOGIC_OP(type, code) \
454 UACPI_OP_PROPERTY_TERM_ARG, \
456 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
457 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
458 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
459 UACPI_PARSE_OP_INVOKE_HANDLER, \
460 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
464#define UACPI_BUILD_TO_OP(kind, code, dst_type) \
466 To##kind##Op, code, \
467 UACPI_OP_PROPERTY_TERM_ARG, \
469 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
470 UACPI_PARSE_OP_TARGET, \
471 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, dst_type, \
472 UACPI_PARSE_OP_INVOKE_HANDLER, \
473 UACPI_PARSE_OP_STORE_TO_TARGET, 1, \
474 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
478#define UACPI_BUILD_INC_DEC_OP(prefix, code) \
481 UACPI_OP_PROPERTY_TERM_ARG, \
483 UACPI_PARSE_OP_SUPERNAME, \
484 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
485 UACPI_PARSE_OP_INVOKE_HANDLER, \
486 UACPI_PARSE_OP_TRUNCATE_NUMBER, \
487 UACPI_PARSE_OP_STORE_TO_TARGET, 0, \
488 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
492#define UACPI_ENUMERATE_OPCODES \
495 UACPI_OP_PROPERTY_TARGET | \
496 UACPI_OP_PROPERTY_TERM_ARG, \
498 UACPI_PARSE_OP_LOAD_INLINE_IMM_AS_OBJECT, \
499 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
500 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
505 UACPI_OP_PROPERTY_TERM_ARG, \
507 UACPI_PARSE_OP_LOAD_INLINE_IMM_AS_OBJECT, \
508 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
509 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
512UACPI_INVALID_OPCODE(0x02) \
513UACPI_INVALID_OPCODE(0x03) \
514UACPI_INVALID_OPCODE(0x04) \
515UACPI_INVALID_OPCODE(0x05) \
519 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL_IF_LOAD, \
520 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
521 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
522 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
523 UACPI_PARSE_OP_INVOKE_HANDLER, \
524 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 1, \
527UACPI_INVALID_OPCODE(0x07) \
531 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
532 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
533 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
534 UACPI_PARSE_OP_OBJECT_CONVERT_TO_DEEP_COPY, \
535 UACPI_PARSE_OP_INVOKE_HANDLER, \
536 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
539UACPI_INVALID_OPCODE(0x09) \
540UACPI_INTEGER_LITERAL_OP(Byte, 0x0A, 1) \
541UACPI_INTEGER_LITERAL_OP(Word, 0x0B, 2) \
542UACPI_INTEGER_LITERAL_OP(DWord, 0x0C, 4) \
544 StringPrefix, 0x0D, \
545 UACPI_OP_PROPERTY_TERM_ARG, \
547 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_STRING, \
548 UACPI_PARSE_OP_INVOKE_HANDLER, \
549 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
552UACPI_INTEGER_LITERAL_OP(QWord, 0x0E, 8) \
553UACPI_INVALID_OPCODE(0x0F) \
557 UACPI_PARSE_OP_TRACKED_PKGLEN, \
558 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL_IF_LOAD, \
559 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
560 UACPI_PARSE_OP_INVOKE_HANDLER, \
565 UACPI_OP_PROPERTY_TERM_ARG, \
567 UACPI_PARSE_OP_TRACKED_PKGLEN, \
568 UACPI_PARSE_OP_OPERAND, \
569 UACPI_PARSE_OP_RECORD_AML_PC, \
570 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
571 UACPI_PARSE_OP_INVOKE_HANDLER, \
572 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
575UACPI_BUILD_PACKAGE_OP( \
577 UACPI_PARSE_OP_LOAD_IMM, 1 \
579UACPI_BUILD_PACKAGE_OP( \
580 VarPackage, 0x13, 2, \
581 UACPI_PARSE_OP_OPERAND \
586 UACPI_PARSE_OP_TRACKED_PKGLEN, \
587 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
588 UACPI_PARSE_OP_LOAD_IMM, 1, \
589 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
590 UACPI_PARSE_OP_RECORD_AML_PC, \
591 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_METHOD, \
592 UACPI_PARSE_OP_INVOKE_HANDLER, \
593 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 1, \
597 ExternalOp, 0x15, 0, \
599 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL, \
600 UACPI_PARSE_OP_LOAD_IMM, 1, \
601 UACPI_PARSE_OP_LOAD_IMM, 1, \
604UACPI_INVALID_OPCODE(0x16) \
605UACPI_INVALID_OPCODE(0x17) \
606UACPI_INVALID_OPCODE(0x18) \
607UACPI_INVALID_OPCODE(0x19) \
608UACPI_INVALID_OPCODE(0x1A) \
609UACPI_INVALID_OPCODE(0x1B) \
610UACPI_INVALID_OPCODE(0x1C) \
611UACPI_INVALID_OPCODE(0x1D) \
612UACPI_INVALID_OPCODE(0x1E) \
613UACPI_INVALID_OPCODE(0x1F) \
614UACPI_INVALID_OPCODE(0x20) \
615UACPI_INVALID_OPCODE(0x21) \
616UACPI_INVALID_OPCODE(0x22) \
617UACPI_INVALID_OPCODE(0x23) \
618UACPI_INVALID_OPCODE(0x24) \
619UACPI_INVALID_OPCODE(0x25) \
620UACPI_INVALID_OPCODE(0x26) \
621UACPI_INVALID_OPCODE(0x27) \
622UACPI_INVALID_OPCODE(0x28) \
623UACPI_INVALID_OPCODE(0x29) \
624UACPI_INVALID_OPCODE(0x2A) \
625UACPI_INVALID_OPCODE(0x2B) \
626UACPI_INVALID_OPCODE(0x2C) \
627UACPI_INVALID_OPCODE(0x2D) \
628UACPI_UNRESOLVED_NAME_STRING_OP(DualNamePrefix, 0x2E) \
629UACPI_UNRESOLVED_NAME_STRING_OP(MultiNamePrefix, 0x2F) \
630UACPI_INVALID_OPCODE(0x30) \
631UACPI_INVALID_OPCODE(0x31) \
632UACPI_INVALID_OPCODE(0x32) \
633UACPI_INVALID_OPCODE(0x33) \
634UACPI_INVALID_OPCODE(0x34) \
635UACPI_INVALID_OPCODE(0x35) \
636UACPI_INVALID_OPCODE(0x36) \
637UACPI_INVALID_OPCODE(0x37) \
638UACPI_INVALID_OPCODE(0x38) \
639UACPI_INVALID_OPCODE(0x39) \
640UACPI_INVALID_OPCODE(0x3A) \
641UACPI_INVALID_OPCODE(0x3B) \
642UACPI_INVALID_OPCODE(0x3C) \
643UACPI_INVALID_OPCODE(0x3D) \
644UACPI_INVALID_OPCODE(0x3E) \
645UACPI_INVALID_OPCODE(0x3F) \
646UACPI_INVALID_OPCODE(0x40) \
647UACPI_UNRESOLVED_NAME_STRING_OP(A, 0x41) \
648UACPI_UNRESOLVED_NAME_STRING_OP(B, 0x42) \
649UACPI_UNRESOLVED_NAME_STRING_OP(C, 0x43) \
650UACPI_UNRESOLVED_NAME_STRING_OP(D, 0x44) \
651UACPI_UNRESOLVED_NAME_STRING_OP(E, 0x45) \
652UACPI_UNRESOLVED_NAME_STRING_OP(F, 0x46) \
653UACPI_UNRESOLVED_NAME_STRING_OP(G, 0x47) \
654UACPI_UNRESOLVED_NAME_STRING_OP(H, 0x48) \
655UACPI_UNRESOLVED_NAME_STRING_OP(I, 0x49) \
656UACPI_UNRESOLVED_NAME_STRING_OP(J, 0x4A) \
657UACPI_UNRESOLVED_NAME_STRING_OP(K, 0x4B) \
658UACPI_UNRESOLVED_NAME_STRING_OP(L, 0x4C) \
659UACPI_UNRESOLVED_NAME_STRING_OP(M, 0x4D) \
660UACPI_UNRESOLVED_NAME_STRING_OP(N, 0x4E) \
661UACPI_UNRESOLVED_NAME_STRING_OP(O, 0x4F) \
662UACPI_UNRESOLVED_NAME_STRING_OP(P, 0x50) \
663UACPI_UNRESOLVED_NAME_STRING_OP(Q, 0x51) \
664UACPI_UNRESOLVED_NAME_STRING_OP(R, 0x52) \
665UACPI_UNRESOLVED_NAME_STRING_OP(S, 0x53) \
666UACPI_UNRESOLVED_NAME_STRING_OP(T, 0x54) \
667UACPI_UNRESOLVED_NAME_STRING_OP(U, 0x55) \
668UACPI_UNRESOLVED_NAME_STRING_OP(V, 0x56) \
669UACPI_UNRESOLVED_NAME_STRING_OP(W, 0x57) \
670UACPI_UNRESOLVED_NAME_STRING_OP(X, 0x58) \
671UACPI_UNRESOLVED_NAME_STRING_OP(Y, 0x59) \
672UACPI_UNRESOLVED_NAME_STRING_OP(Z, 0x5A) \
673UACPI_INVALID_OPCODE(0x5B) \
674UACPI_UNRESOLVED_NAME_STRING_OP(RootChar, 0x5C) \
675UACPI_INVALID_OPCODE(0x5D) \
676UACPI_UNRESOLVED_NAME_STRING_OP(ParentPrefixChar, 0x5E) \
677UACPI_UNRESOLVED_NAME_STRING_OP(Underscore, 0x5F) \
693UACPI_INVALID_OPCODE(0x6F) \
696 UACPI_OP_PROPERTY_TERM_ARG, \
698 UACPI_PARSE_OP_TERM_ARG, \
699 UACPI_PARSE_OP_SUPERNAME, \
700 UACPI_PARSE_OP_INVOKE_HANDLER, \
701 UACPI_PARSE_OP_ITEM_POP, \
702 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
707 UACPI_OP_PROPERTY_TERM_ARG, \
709 UACPI_PARSE_OP_SUPERNAME, \
710 UACPI_PARSE_OP_OBJECT_ALLOC, \
711 UACPI_PARSE_OP_INVOKE_HANDLER, \
712 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
715UACPI_BUILD_BINARY_MATH_OP(Add, 0x72) \
718 UACPI_OP_PROPERTY_TERM_ARG, \
720 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
721 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
722 UACPI_PARSE_OP_TARGET, \
723 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
724 UACPI_PARSE_OP_INVOKE_HANDLER, \
725 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
726 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
729UACPI_BUILD_BINARY_MATH_OP(Subtract, 0x74) \
730UACPI_BUILD_INC_DEC_OP(Increment, 0x75) \
731UACPI_BUILD_INC_DEC_OP(Decrement, 0x76) \
732UACPI_BUILD_BINARY_MATH_OP(Multiply, 0x77) \
735 UACPI_OP_PROPERTY_TERM_ARG, \
737 UACPI_PARSE_OP_OPERAND, \
738 UACPI_PARSE_OP_OPERAND, \
739 UACPI_PARSE_OP_TARGET, \
740 UACPI_PARSE_OP_TARGET, \
741 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
742 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
743 UACPI_PARSE_OP_INVOKE_HANDLER, \
744 UACPI_PARSE_OP_STORE_TO_TARGET, 3, \
745 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
746 UACPI_PARSE_OP_STORE_TO_TARGET_INDIRECT, 2, 4, \
749UACPI_BUILD_BINARY_MATH_OP(ShiftLeft, 0x79) \
750UACPI_BUILD_BINARY_MATH_OP(ShiftRight, 0x7A) \
751UACPI_BUILD_BINARY_MATH_OP(And, 0x7B) \
752UACPI_BUILD_BINARY_MATH_OP(Nand, 0x7C) \
753UACPI_BUILD_BINARY_MATH_OP(Or, 0x7D) \
754UACPI_BUILD_BINARY_MATH_OP(Nor, 0x7E) \
755UACPI_BUILD_BINARY_MATH_OP(Xor, 0x7F) \
756UACPI_BUILD_UNARY_MATH_OP(Not, 0x80) \
757UACPI_BUILD_UNARY_MATH_OP(FindSetLeftBit, 0x81) \
758UACPI_BUILD_UNARY_MATH_OP(FindSetRightBit, 0x82) \
761 UACPI_OP_PROPERTY_TERM_ARG, \
763 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
764 UACPI_PARSE_OP_TYPECHECK_ONE_OF, 2, \
765 UACPI_OBJECT_REFERENCE, UACPI_OBJECT_BUFFER_INDEX, \
766 UACPI_PARSE_OP_OBJECT_ALLOC, \
767 UACPI_PARSE_OP_INVOKE_HANDLER, \
768 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
773 UACPI_OP_PROPERTY_TERM_ARG, \
775 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
776 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_BUFFER, \
777 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
778 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_BUFFER, \
779 UACPI_PARSE_OP_TARGET, \
780 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
781 UACPI_PARSE_OP_INVOKE_HANDLER, \
782 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
783 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
786UACPI_BUILD_BINARY_MATH_OP(Mod, 0x85) \
795 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL_IF_LOAD, \
796 UACPI_PARSE_OP_OPERAND, \
797 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
798 UACPI_PARSE_OP_INVOKE_HANDLER, \
803 UACPI_OP_PROPERTY_TERM_ARG, \
805 UACPI_PARSE_OP_SUPERNAME, \
806 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
807 UACPI_PARSE_OP_INVOKE_HANDLER, \
808 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
813 UACPI_OP_PROPERTY_TERM_ARG | \
814 UACPI_OP_PROPERTY_SUPERNAME | \
815 UACPI_OP_PROPERTY_SIMPLE_NAME, \
817 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
818 UACPI_PARSE_OP_OPERAND, \
819 UACPI_PARSE_OP_TARGET, \
820 UACPI_PARSE_OP_EMPTY_OBJECT_ALLOC, \
821 UACPI_PARSE_OP_INVOKE_HANDLER, \
822 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
823 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
828 UACPI_OP_PROPERTY_TERM_ARG, \
830 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
831 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_PACKAGE, \
832 UACPI_PARSE_OP_LOAD_IMM, 1, \
833 UACPI_PARSE_OP_OPERAND, \
834 UACPI_PARSE_OP_LOAD_IMM, 1, \
835 UACPI_PARSE_OP_OPERAND, \
836 UACPI_PARSE_OP_OPERAND, \
837 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
838 UACPI_PARSE_OP_INVOKE_HANDLER, \
839 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
842UACPI_BUILD_BUFFER_FIELD_OP(DWord, 0x8A) \
843UACPI_BUILD_BUFFER_FIELD_OP(Word, 0x8B) \
844UACPI_BUILD_BUFFER_FIELD_OP(Byte, 0x8C) \
845UACPI_BUILD_BUFFER_FIELD_OP(Bit, 0x8D) \
847 ObjectTypeOp, 0x8E, \
848 UACPI_OP_PROPERTY_TERM_ARG, \
850 UACPI_PARSE_OP_TERM_ARG_OR_NAMED_OBJECT, \
851 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
852 UACPI_PARSE_OP_INVOKE_HANDLER, \
853 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
856UACPI_BUILD_BUFFER_FIELD_OP(QWord, 0x8F) \
857UACPI_BUILD_BINARY_LOGIC_OP(Land, 0x90) \
858UACPI_BUILD_BINARY_LOGIC_OP(Lor, 0x91) \
861 UACPI_OP_PROPERTY_TERM_ARG, \
863 UACPI_PARSE_OP_OPERAND, \
864 UACPI_PARSE_OP_OBJECT_ALLOC, \
865 UACPI_PARSE_OP_INVOKE_HANDLER, \
866 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
869UACPI_BUILD_BINARY_LOGIC_OP(LEqual, 0x93) \
870UACPI_BUILD_BINARY_LOGIC_OP(LGreater, 0x94) \
871UACPI_BUILD_BINARY_LOGIC_OP(LLess, 0x95) \
872UACPI_BUILD_TO_OP(Buffer, 0x96, UACPI_OBJECT_BUFFER) \
873UACPI_BUILD_TO_OP(DecimalString, 0x97, UACPI_OBJECT_STRING) \
874UACPI_BUILD_TO_OP(HexString, 0x98, UACPI_OBJECT_STRING) \
875UACPI_BUILD_TO_OP(Integer, 0x99, UACPI_OBJECT_INTEGER) \
876UACPI_INVALID_OPCODE(0x9A) \
877UACPI_INVALID_OPCODE(0x9B) \
880 UACPI_OP_PROPERTY_TERM_ARG, \
882 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
883 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_BUFFER, \
884 UACPI_PARSE_OP_OPERAND, \
885 UACPI_PARSE_OP_TARGET, \
886 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_STRING, \
887 UACPI_PARSE_OP_INVOKE_HANDLER, \
888 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
889 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
893 CopyObjectOp, 0x9D, \
894 UACPI_OP_PROPERTY_TERM_ARG, \
896 UACPI_PARSE_OP_TERM_ARG, \
897 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
898 UACPI_PARSE_OP_SIMPLE_NAME, \
899 UACPI_PARSE_OP_INVOKE_HANDLER, \
904 UACPI_OP_PROPERTY_TERM_ARG, \
906 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
907 UACPI_PARSE_OP_OPERAND, \
908 UACPI_PARSE_OP_OPERAND, \
909 UACPI_PARSE_OP_TARGET, \
910 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
911 UACPI_PARSE_OP_INVOKE_HANDLER, \
912 UACPI_PARSE_OP_STORE_TO_TARGET, 3, \
913 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
917 ContinueOp, 0x9F, 0, \
919 UACPI_PARSE_OP_INVOKE_HANDLER, \
925 UACPI_PARSE_OP_TRACKED_PKGLEN, \
926 UACPI_PARSE_OP_OPERAND, \
927 UACPI_PARSE_OP_IF_LAST_NULL, 3, \
928 UACPI_PARSE_OP_EMIT_SKIP_WARN, \
929 UACPI_PARSE_OP_JMP, 9, \
930 UACPI_PARSE_OP_IF_LAST_FALSE, 4, \
931 UACPI_PARSE_OP_SWITCH_TO_NEXT_IF_EQUALS, 0xA1, 0x00, \
932 UACPI_PARSE_OP_END, \
933 UACPI_PARSE_OP_INVOKE_HANDLER, \
939 UACPI_PARSE_OP_IF_SWITCHED_FROM, 0xA0, 0x00, 10, \
940 UACPI_PARSE_OP_IF_LAST_NULL, 3, \
941 UACPI_PARSE_OP_TRACKED_PKGLEN, \
942 UACPI_PARSE_OP_EMIT_SKIP_WARN, \
943 UACPI_PARSE_OP_END, \
944 UACPI_PARSE_OP_ITEM_POP, \
945 UACPI_PARSE_OP_ITEM_POP, \
946 UACPI_PARSE_OP_PKGLEN, \
947 UACPI_PARSE_OP_INVOKE_HANDLER, \
948 UACPI_PARSE_OP_END, \
949 UACPI_PARSE_OP_TRACKED_PKGLEN, \
955 UACPI_PARSE_OP_TRACKED_PKGLEN, \
956 UACPI_PARSE_OP_OPERAND, \
957 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
958 UACPI_PARSE_OP_IF_LAST_TRUE, 1, \
959 UACPI_PARSE_OP_INVOKE_HANDLER, \
965 UACPI_PARSE_OP_END, \
971 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
972 UACPI_PARSE_OP_INVOKE_HANDLER, \
978 UACPI_PARSE_OP_INVOKE_HANDLER, \
981UACPI_INVALID_OPCODE(0xA6) \
982UACPI_INVALID_OPCODE(0xA7) \
983UACPI_INVALID_OPCODE(0xA8) \
984UACPI_INVALID_OPCODE(0xA9) \
985UACPI_INVALID_OPCODE(0xAA) \
986UACPI_INVALID_OPCODE(0xAB) \
987UACPI_INVALID_OPCODE(0xAC) \
988UACPI_INVALID_OPCODE(0xAD) \
989UACPI_INVALID_OPCODE(0xAE) \
990UACPI_INVALID_OPCODE(0xAF) \
991UACPI_INVALID_OPCODE(0xB0) \
992UACPI_INVALID_OPCODE(0xB1) \
993UACPI_INVALID_OPCODE(0xB2) \
994UACPI_INVALID_OPCODE(0xB3) \
995UACPI_INVALID_OPCODE(0xB4) \
996UACPI_INVALID_OPCODE(0xB5) \
997UACPI_INVALID_OPCODE(0xB6) \
998UACPI_INVALID_OPCODE(0xB7) \
999UACPI_INVALID_OPCODE(0xB8) \
1000UACPI_INVALID_OPCODE(0xB9) \
1001UACPI_INVALID_OPCODE(0xBA) \
1002UACPI_INVALID_OPCODE(0xBB) \
1003UACPI_INVALID_OPCODE(0xBC) \
1004UACPI_INVALID_OPCODE(0xBD) \
1005UACPI_INVALID_OPCODE(0xBE) \
1006UACPI_INVALID_OPCODE(0xBF) \
1007UACPI_INVALID_OPCODE(0xC0) \
1008UACPI_INVALID_OPCODE(0xC1) \
1009UACPI_INVALID_OPCODE(0xC2) \
1010UACPI_INVALID_OPCODE(0xC3) \
1011UACPI_INVALID_OPCODE(0xC4) \
1012UACPI_INVALID_OPCODE(0xC5) \
1013UACPI_INVALID_OPCODE(0xC6) \
1014UACPI_INVALID_OPCODE(0xC7) \
1015UACPI_INVALID_OPCODE(0xC8) \
1016UACPI_INVALID_OPCODE(0xC9) \
1017UACPI_INVALID_OPCODE(0xCA) \
1018UACPI_INVALID_OPCODE(0xCB) \
1020 BreakPointOp, 0xCC, 0, \
1022 UACPI_PARSE_OP_INVOKE_HANDLER, \
1025UACPI_INVALID_OPCODE(0xCD) \
1026UACPI_INVALID_OPCODE(0xCE) \
1027UACPI_INVALID_OPCODE(0xCF) \
1028UACPI_INVALID_OPCODE(0xD0) \
1029UACPI_INVALID_OPCODE(0xD1) \
1030UACPI_INVALID_OPCODE(0xD2) \
1031UACPI_INVALID_OPCODE(0xD3) \
1032UACPI_INVALID_OPCODE(0xD4) \
1033UACPI_INVALID_OPCODE(0xD5) \
1034UACPI_INVALID_OPCODE(0xD6) \
1035UACPI_INVALID_OPCODE(0xD7) \
1036UACPI_INVALID_OPCODE(0xD8) \
1037UACPI_INVALID_OPCODE(0xD9) \
1038UACPI_INVALID_OPCODE(0xDA) \
1039UACPI_INVALID_OPCODE(0xDB) \
1040UACPI_INVALID_OPCODE(0xDC) \
1041UACPI_INVALID_OPCODE(0xDD) \
1042UACPI_INVALID_OPCODE(0xDE) \
1043UACPI_INVALID_OPCODE(0xDF) \
1044UACPI_INVALID_OPCODE(0xE0) \
1045UACPI_INVALID_OPCODE(0xE1) \
1046UACPI_INVALID_OPCODE(0xE2) \
1047UACPI_INVALID_OPCODE(0xE3) \
1048UACPI_INVALID_OPCODE(0xE4) \
1049UACPI_INVALID_OPCODE(0xE5) \
1050UACPI_INVALID_OPCODE(0xE6) \
1051UACPI_INVALID_OPCODE(0xE7) \
1052UACPI_INVALID_OPCODE(0xE8) \
1053UACPI_INVALID_OPCODE(0xE9) \
1054UACPI_INVALID_OPCODE(0xEA) \
1055UACPI_INVALID_OPCODE(0xEB) \
1056UACPI_INVALID_OPCODE(0xEC) \
1057UACPI_INVALID_OPCODE(0xED) \
1058UACPI_INVALID_OPCODE(0xEE) \
1059UACPI_INVALID_OPCODE(0xEF) \
1060UACPI_INVALID_OPCODE(0xF0) \
1061UACPI_INVALID_OPCODE(0xF1) \
1062UACPI_INVALID_OPCODE(0xF2) \
1063UACPI_INVALID_OPCODE(0xF3) \
1065 InternalOpReadFieldAsBuffer, 0xF4, \
1066 UACPI_OP_PROPERTY_TERM_ARG | \
1067 UACPI_OP_PROPERTY_INTERNAL, \
1069 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
1070 UACPI_PARSE_OP_INVOKE_HANDLER, \
1071 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1075 InternalOpReadFieldAsInteger, 0xF5, \
1076 UACPI_OP_PROPERTY_TERM_ARG | \
1077 UACPI_OP_PROPERTY_INTERNAL, \
1079 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
1080 UACPI_PARSE_OP_INVOKE_HANDLER, \
1081 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1085 InternalOpNamedObject, 0xF6, \
1086 UACPI_OP_PROPERTY_SIMPLE_NAME | \
1087 UACPI_OP_PROPERTY_SUPERNAME | \
1088 UACPI_OP_PROPERTY_TERM_ARG | \
1089 UACPI_OP_PROPERTY_INTERNAL, \
1091 UACPI_PARSE_OP_EMPTY_OBJECT_ALLOC, \
1092 UACPI_PARSE_OP_INVOKE_HANDLER, \
1093 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1096UACPI_METHOD_CALL_OPCODE(0) \
1097UACPI_METHOD_CALL_OPCODE(1) \
1098UACPI_METHOD_CALL_OPCODE(2) \
1099UACPI_METHOD_CALL_OPCODE(3) \
1100UACPI_METHOD_CALL_OPCODE(4) \
1101UACPI_METHOD_CALL_OPCODE(5) \
1102UACPI_METHOD_CALL_OPCODE(6) \
1103UACPI_METHOD_CALL_OPCODE(7) \
1106 UACPI_OP_PROPERTY_TERM_ARG, \
1108 UACPI_PARSE_OP_LOAD_INLINE_IMM_AS_OBJECT, \
1109 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
1110 UACPI_PARSE_OP_TRUNCATE_NUMBER, \
1111 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1121#define UACPI_BUILD_NAMED_SCOPE_OBJECT_OP(name, code, type, ...) \
1123 name##Op, UACPI_EXT_OP(code), 0, \
1125 UACPI_PARSE_OP_TRACKED_PKGLEN, \
1126 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1128 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
1129 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, type, \
1130 UACPI_PARSE_OP_INVOKE_HANDLER, \
1131 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 1, \
1135#define UACPI_BUILD_TO_FROM_BCD(type, code) \
1137 type##BCDOp, UACPI_EXT_OP(code), \
1138 UACPI_OP_PROPERTY_TERM_ARG, \
1140 UACPI_PARSE_OP_OPERAND, \
1141 UACPI_PARSE_OP_TARGET, \
1142 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1143 UACPI_OBJECT_INTEGER, \
1144 UACPI_PARSE_OP_INVOKE_HANDLER, \
1145 UACPI_PARSE_OP_STORE_TO_TARGET, 1, \
1146 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1150#define UACPI_ENUMERATE_EXT_OPCODES \
1152 InvalidExtOp, 0, UACPI_OP_PROPERTY_INVALID, \
1154 UACPI_PARSE_OP_END, \
1158 MutexOp, UACPI_EXT_OP(0x01), 0, \
1160 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1161 UACPI_PARSE_OP_LOAD_IMM, 1, \
1162 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
1163 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1164 UACPI_OBJECT_MUTEX, \
1165 UACPI_PARSE_OP_INVOKE_HANDLER, \
1166 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
1170 EventOp, UACPI_EXT_OP(0x02), 0, \
1172 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1173 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
1174 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1175 UACPI_OBJECT_EVENT, \
1176 UACPI_PARSE_OP_INVOKE_HANDLER, \
1177 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
1181 CondRefOfOp, UACPI_EXT_OP(0x12), \
1182 UACPI_OP_PROPERTY_TERM_ARG, \
1184 UACPI_PARSE_OP_SUPERNAME_OR_UNRESOLVED, \
1185 UACPI_PARSE_OP_TARGET, \
1186 UACPI_PARSE_OP_IF_NULL, 0, 3, \
1187 UACPI_PARSE_OP_LOAD_FALSE_OBJECT, \
1188 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1189 UACPI_PARSE_OP_END, \
1190 UACPI_PARSE_OP_OBJECT_ALLOC, \
1191 UACPI_PARSE_OP_INVOKE_HANDLER, \
1192 UACPI_PARSE_OP_STORE_TO_TARGET, 1, \
1193 UACPI_PARSE_OP_LOAD_TRUE_OBJECT, \
1194 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1197UACPI_DO_BUILD_BUFFER_FIELD_OP( \
1198 Create, UACPI_EXT_OP(0x13), 3, \
1199 UACPI_PARSE_OP_OPERAND \
1201UACPI_OUT_OF_LINE_OP( \
1202 LoadTableOp, UACPI_EXT_OP(0x1F), \
1203 uacpi_load_table_op_decode_ops, \
1204 UACPI_OP_PROPERTY_TERM_ARG | \
1205 UACPI_OP_PROPERTY_OUT_OF_LINE \
1207UACPI_OUT_OF_LINE_OP( \
1208 LoadOp, UACPI_EXT_OP(0x20), \
1209 uacpi_load_op_decode_ops, \
1210 UACPI_OP_PROPERTY_TERM_ARG | \
1211 UACPI_OP_PROPERTY_OUT_OF_LINE \
1214 StallOp, UACPI_EXT_OP(0x21), 0, \
1216 UACPI_PARSE_OP_OPERAND, \
1217 UACPI_PARSE_OP_INVOKE_HANDLER, \
1221 SleepOp, UACPI_EXT_OP(0x22), 0, \
1223 UACPI_PARSE_OP_OPERAND, \
1224 UACPI_PARSE_OP_INVOKE_HANDLER, \
1228 AcquireOp, UACPI_EXT_OP(0x23), \
1229 UACPI_OP_PROPERTY_TERM_ARG, \
1231 UACPI_PARSE_OP_SUPERNAME, \
1232 UACPI_PARSE_OP_LOAD_IMM, 2, \
1233 UACPI_PARSE_OP_LOAD_TRUE_OBJECT, \
1234 UACPI_PARSE_OP_INVOKE_HANDLER, \
1235 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1239 SignalOp, UACPI_EXT_OP(0x24), 0, \
1241 UACPI_PARSE_OP_SUPERNAME, \
1242 UACPI_PARSE_OP_INVOKE_HANDLER, \
1246 WaitOp, UACPI_EXT_OP(0x25), \
1247 UACPI_OP_PROPERTY_TERM_ARG, \
1249 UACPI_PARSE_OP_SUPERNAME, \
1250 UACPI_PARSE_OP_OPERAND, \
1251 UACPI_PARSE_OP_LOAD_TRUE_OBJECT, \
1252 UACPI_PARSE_OP_INVOKE_HANDLER, \
1253 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1257 ResetOp, UACPI_EXT_OP(0x26), 0, \
1259 UACPI_PARSE_OP_SUPERNAME, \
1260 UACPI_PARSE_OP_INVOKE_HANDLER, \
1264 ReleaseOp, UACPI_EXT_OP(0x27), 0, \
1266 UACPI_PARSE_OP_SUPERNAME, \
1267 UACPI_PARSE_OP_INVOKE_HANDLER, \
1270UACPI_BUILD_TO_FROM_BCD(From, 0x28) \
1271UACPI_BUILD_TO_FROM_BCD(To, 0x29) \
1273 UnloadOp, UACPI_EXT_OP(0x2A), 0, \
1275 UACPI_PARSE_OP_SUPERNAME, \
1276 UACPI_PARSE_OP_INVOKE_HANDLER, \
1280 RevisionOp, UACPI_EXT_OP(0x30), \
1281 UACPI_OP_PROPERTY_TERM_ARG, \
1283 UACPI_PARSE_OP_LOAD_INLINE_IMM_AS_OBJECT, \
1284 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
1285 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1289 DebugOp, UACPI_EXT_OP(0x31), \
1290 UACPI_OP_PROPERTY_TERM_ARG | \
1291 UACPI_OP_PROPERTY_SUPERNAME | \
1292 UACPI_OP_PROPERTY_TARGET, \
1294 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1295 UACPI_OBJECT_DEBUG, \
1296 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1300 FatalOp, UACPI_EXT_OP(0x32), 0, \
1302 UACPI_PARSE_OP_LOAD_IMM, 1, \
1303 UACPI_PARSE_OP_LOAD_IMM, 4, \
1304 UACPI_PARSE_OP_OPERAND, \
1305 UACPI_PARSE_OP_INVOKE_HANDLER, \
1309 TimerOp, UACPI_EXT_OP(0x33), \
1310 UACPI_OP_PROPERTY_TERM_ARG, \
1312 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1313 UACPI_OBJECT_INTEGER, \
1314 UACPI_PARSE_OP_INVOKE_HANDLER, \
1315 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1319 OpRegionOp, UACPI_EXT_OP(0x80), 0, \
1321 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1322 UACPI_PARSE_OP_LOAD_IMM, 1, \
1323 UACPI_PARSE_OP_OPERAND, \
1324 UACPI_PARSE_OP_OPERAND, \
1325 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
1326 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1327 UACPI_OBJECT_OPERATION_REGION, \
1328 UACPI_PARSE_OP_INVOKE_HANDLER, \
1329 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
1332UACPI_OUT_OF_LINE_OP( \
1333 FieldOp, UACPI_EXT_OP(0x81), \
1334 uacpi_field_op_decode_ops, \
1335 UACPI_OP_PROPERTY_OUT_OF_LINE \
1337UACPI_BUILD_NAMED_SCOPE_OBJECT_OP( \
1338 Device, 0x82, UACPI_OBJECT_DEVICE \
1340UACPI_BUILD_NAMED_SCOPE_OBJECT_OP( \
1341 Processor, 0x83, UACPI_OBJECT_PROCESSOR, \
1342 UACPI_PARSE_OP_LOAD_IMM, 1, \
1343 UACPI_PARSE_OP_LOAD_IMM, 4, \
1344 UACPI_PARSE_OP_LOAD_IMM, 1 \
1346UACPI_BUILD_NAMED_SCOPE_OBJECT_OP( \
1347 PowerRes, 0x84, UACPI_OBJECT_POWER_RESOURCE, \
1348 UACPI_PARSE_OP_LOAD_IMM, 1, \
1349 UACPI_PARSE_OP_LOAD_IMM, 2 \
1351UACPI_BUILD_NAMED_SCOPE_OBJECT_OP( \
1352 ThermalZone, 0x85, UACPI_OBJECT_THERMAL_ZONE \
1354UACPI_OUT_OF_LINE_OP( \
1355 IndexFieldOp, UACPI_EXT_OP(0x86), \
1356 uacpi_index_field_op_decode_ops, \
1357 UACPI_OP_PROPERTY_OUT_OF_LINE \
1359UACPI_OUT_OF_LINE_OP( \
1360 BankFieldOp, UACPI_EXT_OP(0x87), \
1361 uacpi_bank_field_op_decode_ops, \
1362 UACPI_OP_PROPERTY_OUT_OF_LINE \
1365 DataRegionOp, UACPI_EXT_OP(0x88), 0, \
1367 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1368 UACPI_PARSE_OP_STRING, \
1369 UACPI_PARSE_OP_STRING, \
1370 UACPI_PARSE_OP_STRING, \
1371 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
1372 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1373 UACPI_OBJECT_OPERATION_REGION, \
1374 UACPI_PARSE_OP_INVOKE_HANDLER, \
1375 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
1380#define UACPI_OP(name, code, ...) UACPI_AML_OP_##name = code,
1381#define UACPI_OUT_OF_LINE_OP(name, code, ...) UACPI_AML_OP_##name = code,
1385#undef UACPI_OUT_OF_LINE_OP
uacpi_u8 uacpi_load_table_op_decode_ops[]
const uacpi_char * uacpi_parse_op_to_string(enum uacpi_parse_op op)
uacpi_u8 uacpi_load_op_decode_ops[]
@ UACPI_PARSE_OP_COMPUTATIONAL_DATA
@ UACPI_PARSE_OP_OBJECT_CONVERT_TO_DEEP_COPY
@ UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL_IF_LOAD
@ UACPI_PARSE_OP_TYPECHECK_ONE_OF
@ UACPI_PARSE_OP_STORE_TO_TARGET_INDIRECT
@ UACPI_PARSE_OP_TERM_ARG
@ UACPI_PARSE_OP_CREATE_NAMESTRING
@ UACPI_PARSE_OP_TRACKED_PKGLEN
@ UACPI_PARSE_OP_CONVERT_NAMESTRING
@ UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE
@ UACPI_PARSE_OP_IF_LAST_NULL
@ UACPI_PARSE_OP_AML_PC_DECREMENT
@ UACPI_PARSE_OP_OBJECT_COPY_TO_PREV
@ UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL
@ UACPI_PARSE_OP_LOAD_TRUE_OBJECT
@ UACPI_PARSE_OP_EXISTING_NAMESTRING
@ UACPI_PARSE_OP_TERM_ARG_OR_NAMED_OBJECT
@ UACPI_PARSE_OP_IF_LAST_NOT_NULL
@ UACPI_PARSE_OP_INVOKE_HANDLER
@ UACPI_PARSE_OP_IF_HAS_DATA
@ UACPI_PARSE_OP_DISPATCH_TABLE_LOAD
@ UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL
@ UACPI_PARSE_OP_TYPECHECK
@ UACPI_PARSE_OP_SIMPLE_NAME
@ UACPI_PARSE_OP_IF_LAST_FALSE
@ UACPI_PARSE_OP_ITEM_POP
@ UACPI_PARSE_OP_SWITCH_TO_NEXT_IF_EQUALS
@ UACPI_PARSE_OP_SUPERNAME_OR_UNRESOLVED
@ UACPI_PARSE_OP_RECORD_AML_PC
@ UACPI_PARSE_OP_DISPATCH_METHOD_CALL
@ UACPI_PARSE_OP_SUPERNAME
@ UACPI_PARSE_OP_OBJECT_ALLOC
@ UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV
@ UACPI_PARSE_OP_IF_LAST_TRUE
@ UACPI_PARSE_OP_LOAD_INLINE_IMM_AS_OBJECT
@ UACPI_PARSE_OP_LOAD_IMM
@ UACPI_PARSE_OP_STORE_TO_TARGET
@ UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL
@ UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD
@ UACPI_PARSE_OP_EMPTY_OBJECT_ALLOC
@ UACPI_PARSE_OP_LOAD_IMM_AS_OBJECT
@ UACPI_PARSE_OP_OBJECT_CONVERT_TO_SHALLOW_COPY
@ UACPI_PARSE_OP_TERM_ARG_OR_NAMED_OBJECT_OR_UNRESOLVED
@ UACPI_PARSE_OP_IF_LAST_EQUALS
@ UACPI_PARSE_OP_IF_NOT_NULL
@ UACPI_PARSE_OP_LOAD_FALSE_OBJECT
@ UACPI_PARSE_OP_OBJECT_ALLOC_TYPED
@ UACPI_PARSE_OP_EMIT_SKIP_WARN
@ UACPI_PARSE_OP_LOAD_ZERO_IMM
@ UACPI_PARSE_OP_IF_SWITCHED_FROM
@ UACPI_PARSE_OP_TRUNCATE_NUMBER
@ UACPI_PARSE_OP_IMM_DECREMENT
@ UACPI_PARSE_OP_LOAD_INLINE_IMM
const struct uacpi_op_spec * uacpi_get_op_spec(uacpi_aml_op)
@ UACPI_OP_PROPERTY_SIMPLE_NAME
@ UACPI_OP_PROPERTY_TERM_ARG
@ UACPI_OP_PROPERTY_INVALID
@ UACPI_OP_PROPERTY_INTERNAL
@ UACPI_OP_PROPERTY_SUPERNAME
@ UACPI_OP_PROPERTY_OUT_OF_LINE
@ UACPI_OP_PROPERTY_TARGET
uacpi_u8 uacpi_bank_field_op_decode_ops[]
uacpi_u8 uacpi_field_op_decode_ops[]
#define UACPI_ENUMERATE_EXT_OPCODES
uacpi_u8 uacpi_index_field_op_decode_ops[]
#define UACPI_ENUMERATE_OPCODES
uacpi_u8 * indirect_decode_ops