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
310#define UACPI_INTERNAL_OP(code) \
311 UACPI_OP(Internal_##code, code, { UACPI_PARSE_OP_UNREACHABLE })
313#define UACPI_BAD_OPCODE(code) \
314 UACPI_OP(Reserved_##code, code, { UACPI_PARSE_OP_BAD_OPCODE })
316#define UACPI_METHOD_CALL_OPCODE(nargs) \
318 InternalOpMethodCall##nargs##Args, 0xF7 + nargs, \
320 UACPI_PARSE_OP_LOAD_INLINE_IMM, 1, nargs, \
321 UACPI_PARSE_OP_IF_NOT_NULL, 1, 6, \
322 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
323 UACPI_PARSE_OP_OBJECT_CONVERT_TO_SHALLOW_COPY, \
324 UACPI_PARSE_OP_IMM_DECREMENT, 1, \
325 UACPI_PARSE_OP_JMP, 3, \
326 UACPI_PARSE_OP_OBJECT_ALLOC, \
327 UACPI_PARSE_OP_DISPATCH_METHOD_CALL, \
328 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
330 UACPI_OP_PROPERTY_TERM_ARG | \
331 UACPI_OP_PROPERTY_RESERVED \
352#define UACPI_UNRESOLVED_NAME_STRING_OP(character, code) \
354 UACPI_InternalOpUnresolvedNameString_##character, code, \
356 UACPI_PARSE_OP_AML_PC_DECREMENT, \
357 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL, \
358 UACPI_PARSE_OP_CONVERT_NAMESTRING, \
360 UACPI_OP_PROPERTY_SIMPLE_NAME | \
361 UACPI_OP_PROPERTY_SUPERNAME | \
362 UACPI_OP_PROPERTY_TERM_ARG \
365#define UACPI_BUILD_LOCAL_OR_ARG_OP(prefix, base, offset) \
367 prefix##offset##Op, base + offset, \
369 UACPI_PARSE_OP_EMPTY_OBJECT_ALLOC, \
370 UACPI_PARSE_OP_INVOKE_HANDLER, \
371 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
373 UACPI_OP_PROPERTY_SUPERNAME | \
374 UACPI_OP_PROPERTY_TERM_ARG | \
375 UACPI_OP_PROPERTY_SIMPLE_NAME \
378#define UACPI_LOCALX_OP(idx) UACPI_BUILD_LOCAL_OR_ARG_OP(Local, 0x60, idx)
379#define UACPI_ARGX_OP(idx) UACPI_BUILD_LOCAL_OR_ARG_OP(Arg, 0x68, idx)
381#define UACPI_BUILD_PACKAGE_OP(name, code, jmp_off, ...) \
385 UACPI_PARSE_OP_TRACKED_PKGLEN, \
387 UACPI_PARSE_OP_IF_HAS_DATA, 4, \
388 UACPI_PARSE_OP_RECORD_AML_PC, \
389 UACPI_PARSE_OP_TERM_ARG_OR_NAMED_OBJECT_OR_UNRESOLVED, \
390 UACPI_PARSE_OP_JMP, jmp_off, \
391 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_PACKAGE, \
392 UACPI_PARSE_OP_INVOKE_HANDLER, \
393 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
395 UACPI_OP_PROPERTY_TERM_ARG \
398#define UACPI_BUILD_BINARY_MATH_OP(prefix, code) \
402 UACPI_PARSE_OP_OPERAND, \
403 UACPI_PARSE_OP_OPERAND, \
404 UACPI_PARSE_OP_TARGET, \
405 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
406 UACPI_PARSE_OP_INVOKE_HANDLER, \
407 UACPI_PARSE_OP_TRUNCATE_NUMBER, \
408 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
409 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
411 UACPI_OP_PROPERTY_TERM_ARG \
414#define UACPI_BUILD_UNARY_MATH_OP(type, code) \
418 UACPI_PARSE_OP_OPERAND, \
419 UACPI_PARSE_OP_TARGET, \
420 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
421 UACPI_PARSE_OP_INVOKE_HANDLER, \
422 UACPI_PARSE_OP_STORE_TO_TARGET, 1, \
423 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
425 UACPI_OP_PROPERTY_TERM_ARG \
428#define UACPI_DO_BUILD_BUFFER_FIELD_OP(type, code, node_idx, ...) \
430 type##FieldOp, code, \
432 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
433 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_BUFFER, \
434 UACPI_PARSE_OP_OPERAND, \
436 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
437 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, node_idx, \
438 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER_FIELD, \
439 UACPI_PARSE_OP_INVOKE_HANDLER, \
440 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, node_idx, \
444#define UACPI_BUILD_BUFFER_FIELD_OP(type, code) \
445 UACPI_DO_BUILD_BUFFER_FIELD_OP(Create##type, code, 2)
447#define UACPI_INTEGER_LITERAL_OP(type, code, bytes) \
449 type##Prefix, code, \
451 UACPI_PARSE_OP_LOAD_IMM_AS_OBJECT, bytes, \
452 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
454 UACPI_OP_PROPERTY_TERM_ARG \
457#define UACPI_BUILD_BINARY_LOGIC_OP(type, code) \
461 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
462 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
463 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
464 UACPI_PARSE_OP_INVOKE_HANDLER, \
465 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
467 UACPI_OP_PROPERTY_TERM_ARG \
470#define UACPI_BUILD_TO_OP(kind, code, dst_type) \
472 To##kind##Op, code, \
474 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
475 UACPI_PARSE_OP_TARGET, \
476 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, dst_type, \
477 UACPI_PARSE_OP_INVOKE_HANDLER, \
478 UACPI_PARSE_OP_STORE_TO_TARGET, 1, \
479 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
481 UACPI_OP_PROPERTY_TERM_ARG \
484#define UACPI_BUILD_INC_DEC_OP(prefix, code) \
488 UACPI_PARSE_OP_SUPERNAME, \
489 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
490 UACPI_PARSE_OP_INVOKE_HANDLER, \
491 UACPI_PARSE_OP_TRUNCATE_NUMBER, \
492 UACPI_PARSE_OP_STORE_TO_TARGET, 0, \
493 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
495 UACPI_OP_PROPERTY_TERM_ARG \
498#define UACPI_ENUMERATE_OPCODES \
502 UACPI_PARSE_OP_LOAD_INLINE_IMM_AS_OBJECT, \
503 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
504 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
506 UACPI_OP_PROPERTY_TARGET | \
507 UACPI_OP_PROPERTY_TERM_ARG \
512 UACPI_PARSE_OP_LOAD_INLINE_IMM_AS_OBJECT, \
513 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
514 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
516 UACPI_OP_PROPERTY_TERM_ARG \
518UACPI_BAD_OPCODE(0x02) \
519UACPI_BAD_OPCODE(0x03) \
520UACPI_BAD_OPCODE(0x04) \
521UACPI_BAD_OPCODE(0x05) \
525 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL_IF_LOAD, \
526 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
527 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
528 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
529 UACPI_PARSE_OP_INVOKE_HANDLER, \
530 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 1, \
533UACPI_BAD_OPCODE(0x07) \
537 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
538 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
539 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
540 UACPI_PARSE_OP_OBJECT_CONVERT_TO_DEEP_COPY, \
541 UACPI_PARSE_OP_INVOKE_HANDLER, \
542 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
545UACPI_BAD_OPCODE(0x09) \
546UACPI_INTEGER_LITERAL_OP(Byte, 0x0A, 1) \
547UACPI_INTEGER_LITERAL_OP(Word, 0x0B, 2) \
548UACPI_INTEGER_LITERAL_OP(DWord, 0x0C, 4) \
550 StringPrefix, 0x0D, \
552 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_STRING, \
553 UACPI_PARSE_OP_INVOKE_HANDLER, \
554 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
556 UACPI_OP_PROPERTY_TERM_ARG \
558UACPI_INTEGER_LITERAL_OP(QWord, 0x0E, 8) \
559UACPI_BAD_OPCODE(0x0F) \
563 UACPI_PARSE_OP_TRACKED_PKGLEN, \
564 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL_IF_LOAD, \
565 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
566 UACPI_PARSE_OP_INVOKE_HANDLER, \
572 UACPI_PARSE_OP_TRACKED_PKGLEN, \
573 UACPI_PARSE_OP_OPERAND, \
574 UACPI_PARSE_OP_RECORD_AML_PC, \
575 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
576 UACPI_PARSE_OP_INVOKE_HANDLER, \
577 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
579 UACPI_OP_PROPERTY_TERM_ARG \
581UACPI_BUILD_PACKAGE_OP( \
583 UACPI_PARSE_OP_LOAD_IMM, 1 \
585UACPI_BUILD_PACKAGE_OP( \
586 VarPackage, 0x13, 2, \
587 UACPI_PARSE_OP_OPERAND \
592 UACPI_PARSE_OP_TRACKED_PKGLEN, \
593 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
594 UACPI_PARSE_OP_LOAD_IMM, 1, \
595 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
596 UACPI_PARSE_OP_RECORD_AML_PC, \
597 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_METHOD, \
598 UACPI_PARSE_OP_INVOKE_HANDLER, \
599 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 1, \
605 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL, \
606 UACPI_PARSE_OP_LOAD_IMM, 1, \
607 UACPI_PARSE_OP_LOAD_IMM, 1, \
610UACPI_BAD_OPCODE(0x16) \
611UACPI_BAD_OPCODE(0x17) \
612UACPI_BAD_OPCODE(0x18) \
613UACPI_BAD_OPCODE(0x19) \
614UACPI_BAD_OPCODE(0x1A) \
615UACPI_BAD_OPCODE(0x1B) \
616UACPI_BAD_OPCODE(0x1C) \
617UACPI_BAD_OPCODE(0x1D) \
618UACPI_BAD_OPCODE(0x1E) \
619UACPI_BAD_OPCODE(0x1F) \
620UACPI_BAD_OPCODE(0x20) \
621UACPI_BAD_OPCODE(0x21) \
622UACPI_BAD_OPCODE(0x22) \
623UACPI_BAD_OPCODE(0x23) \
624UACPI_BAD_OPCODE(0x24) \
625UACPI_BAD_OPCODE(0x25) \
626UACPI_BAD_OPCODE(0x26) \
627UACPI_BAD_OPCODE(0x27) \
628UACPI_BAD_OPCODE(0x28) \
629UACPI_BAD_OPCODE(0x29) \
630UACPI_BAD_OPCODE(0x2A) \
631UACPI_BAD_OPCODE(0x2B) \
632UACPI_BAD_OPCODE(0x2C) \
633UACPI_BAD_OPCODE(0x2D) \
634UACPI_UNRESOLVED_NAME_STRING_OP(DualNamePrefix, 0x2E) \
635UACPI_UNRESOLVED_NAME_STRING_OP(MultiNamePrefix, 0x2F) \
636UACPI_INTERNAL_OP(0x30) \
637UACPI_INTERNAL_OP(0x31) \
638UACPI_INTERNAL_OP(0x32) \
639UACPI_INTERNAL_OP(0x33) \
640UACPI_INTERNAL_OP(0x34) \
641UACPI_INTERNAL_OP(0x35) \
642UACPI_INTERNAL_OP(0x36) \
643UACPI_INTERNAL_OP(0x37) \
644UACPI_INTERNAL_OP(0x38) \
645UACPI_INTERNAL_OP(0x39) \
646UACPI_BAD_OPCODE(0x3A) \
647UACPI_BAD_OPCODE(0x3B) \
648UACPI_BAD_OPCODE(0x3C) \
649UACPI_BAD_OPCODE(0x3D) \
650UACPI_BAD_OPCODE(0x3E) \
651UACPI_BAD_OPCODE(0x3F) \
652UACPI_BAD_OPCODE(0x40) \
653UACPI_UNRESOLVED_NAME_STRING_OP(A, 0x41) \
654UACPI_UNRESOLVED_NAME_STRING_OP(B, 0x42) \
655UACPI_UNRESOLVED_NAME_STRING_OP(C, 0x43) \
656UACPI_UNRESOLVED_NAME_STRING_OP(D, 0x44) \
657UACPI_UNRESOLVED_NAME_STRING_OP(E, 0x45) \
658UACPI_UNRESOLVED_NAME_STRING_OP(F, 0x46) \
659UACPI_UNRESOLVED_NAME_STRING_OP(G, 0x47) \
660UACPI_UNRESOLVED_NAME_STRING_OP(H, 0x48) \
661UACPI_UNRESOLVED_NAME_STRING_OP(I, 0x49) \
662UACPI_UNRESOLVED_NAME_STRING_OP(J, 0x4A) \
663UACPI_UNRESOLVED_NAME_STRING_OP(K, 0x4B) \
664UACPI_UNRESOLVED_NAME_STRING_OP(L, 0x4C) \
665UACPI_UNRESOLVED_NAME_STRING_OP(M, 0x4D) \
666UACPI_UNRESOLVED_NAME_STRING_OP(N, 0x4E) \
667UACPI_UNRESOLVED_NAME_STRING_OP(O, 0x4F) \
668UACPI_UNRESOLVED_NAME_STRING_OP(P, 0x50) \
669UACPI_UNRESOLVED_NAME_STRING_OP(Q, 0x51) \
670UACPI_UNRESOLVED_NAME_STRING_OP(R, 0x52) \
671UACPI_UNRESOLVED_NAME_STRING_OP(S, 0x53) \
672UACPI_UNRESOLVED_NAME_STRING_OP(T, 0x54) \
673UACPI_UNRESOLVED_NAME_STRING_OP(U, 0x55) \
674UACPI_UNRESOLVED_NAME_STRING_OP(V, 0x56) \
675UACPI_UNRESOLVED_NAME_STRING_OP(W, 0x57) \
676UACPI_UNRESOLVED_NAME_STRING_OP(X, 0x58) \
677UACPI_UNRESOLVED_NAME_STRING_OP(Y, 0x59) \
678UACPI_UNRESOLVED_NAME_STRING_OP(Z, 0x5A) \
679UACPI_INTERNAL_OP(0x5B) \
680UACPI_UNRESOLVED_NAME_STRING_OP(RootChar, 0x5C) \
681UACPI_BAD_OPCODE(0x5D) \
682UACPI_UNRESOLVED_NAME_STRING_OP(ParentPrefixChar, 0x5E) \
683UACPI_UNRESOLVED_NAME_STRING_OP(Underscore, 0x5F) \
699UACPI_BAD_OPCODE(0x6F) \
703 UACPI_PARSE_OP_TERM_ARG, \
704 UACPI_PARSE_OP_SUPERNAME, \
705 UACPI_PARSE_OP_INVOKE_HANDLER, \
706 UACPI_PARSE_OP_ITEM_POP, \
707 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
709 UACPI_OP_PROPERTY_TERM_ARG \
714 UACPI_PARSE_OP_SUPERNAME, \
715 UACPI_PARSE_OP_OBJECT_ALLOC, \
716 UACPI_PARSE_OP_INVOKE_HANDLER, \
717 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
719 UACPI_OP_PROPERTY_TERM_ARG \
721UACPI_BUILD_BINARY_MATH_OP(Add, 0x72) \
725 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
726 UACPI_PARSE_OP_COMPUTATIONAL_DATA, \
727 UACPI_PARSE_OP_TARGET, \
728 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
729 UACPI_PARSE_OP_INVOKE_HANDLER, \
730 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
731 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
733 UACPI_OP_PROPERTY_TERM_ARG \
735UACPI_BUILD_BINARY_MATH_OP(Subtract, 0x74) \
736UACPI_BUILD_INC_DEC_OP(Increment, 0x75) \
737UACPI_BUILD_INC_DEC_OP(Decrement, 0x76) \
738UACPI_BUILD_BINARY_MATH_OP(Multiply, 0x77) \
742 UACPI_PARSE_OP_OPERAND, \
743 UACPI_PARSE_OP_OPERAND, \
744 UACPI_PARSE_OP_TARGET, \
745 UACPI_PARSE_OP_TARGET, \
746 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
747 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
748 UACPI_PARSE_OP_INVOKE_HANDLER, \
749 UACPI_PARSE_OP_STORE_TO_TARGET, 3, \
750 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
751 UACPI_PARSE_OP_STORE_TO_TARGET_INDIRECT, 2, 4, \
753 UACPI_OP_PROPERTY_TERM_ARG \
755UACPI_BUILD_BINARY_MATH_OP(ShiftLeft, 0x79) \
756UACPI_BUILD_BINARY_MATH_OP(ShiftRight, 0x7A) \
757UACPI_BUILD_BINARY_MATH_OP(And, 0x7B) \
758UACPI_BUILD_BINARY_MATH_OP(Nand, 0x7C) \
759UACPI_BUILD_BINARY_MATH_OP(Or, 0x7D) \
760UACPI_BUILD_BINARY_MATH_OP(Nor, 0x7E) \
761UACPI_BUILD_BINARY_MATH_OP(Xor, 0x7F) \
762UACPI_BUILD_UNARY_MATH_OP(Not, 0x80) \
763UACPI_BUILD_UNARY_MATH_OP(FindSetLeftBit, 0x81) \
764UACPI_BUILD_UNARY_MATH_OP(FindSetRightBit, 0x82) \
768 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
769 UACPI_PARSE_OP_OBJECT_ALLOC, \
770 UACPI_PARSE_OP_INVOKE_HANDLER, \
771 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
773 UACPI_OP_PROPERTY_TERM_ARG \
778 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
779 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_BUFFER, \
780 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
781 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_BUFFER, \
782 UACPI_PARSE_OP_TARGET, \
783 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
784 UACPI_PARSE_OP_INVOKE_HANDLER, \
785 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
786 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
788 UACPI_OP_PROPERTY_TERM_ARG \
790UACPI_BUILD_BINARY_MATH_OP(Mod, 0x85) \
799 UACPI_PARSE_OP_EXISTING_NAMESTRING_OR_NULL_IF_LOAD, \
800 UACPI_PARSE_OP_OPERAND, \
801 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
802 UACPI_PARSE_OP_INVOKE_HANDLER, \
808 UACPI_PARSE_OP_SUPERNAME, \
809 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
810 UACPI_PARSE_OP_INVOKE_HANDLER, \
811 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
813 UACPI_OP_PROPERTY_TERM_ARG \
818 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
819 UACPI_PARSE_OP_OPERAND, \
820 UACPI_PARSE_OP_TARGET, \
821 UACPI_PARSE_OP_EMPTY_OBJECT_ALLOC, \
822 UACPI_PARSE_OP_INVOKE_HANDLER, \
823 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
824 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
826 UACPI_OP_PROPERTY_TERM_ARG | \
827 UACPI_OP_PROPERTY_SUPERNAME | \
828 UACPI_OP_PROPERTY_SIMPLE_NAME \
833 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
834 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_PACKAGE, \
835 UACPI_PARSE_OP_LOAD_IMM, 1, \
836 UACPI_PARSE_OP_OPERAND, \
837 UACPI_PARSE_OP_LOAD_IMM, 1, \
838 UACPI_PARSE_OP_OPERAND, \
839 UACPI_PARSE_OP_OPERAND, \
840 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
841 UACPI_PARSE_OP_INVOKE_HANDLER, \
842 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
844 UACPI_OP_PROPERTY_TERM_ARG \
846UACPI_BUILD_BUFFER_FIELD_OP(DWord, 0x8A) \
847UACPI_BUILD_BUFFER_FIELD_OP(Word, 0x8B) \
848UACPI_BUILD_BUFFER_FIELD_OP(Byte, 0x8C) \
849UACPI_BUILD_BUFFER_FIELD_OP(Bit, 0x8D) \
851 ObjectTypeOp, 0x8E, \
853 UACPI_PARSE_OP_TERM_ARG_OR_NAMED_OBJECT, \
854 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
855 UACPI_PARSE_OP_INVOKE_HANDLER, \
856 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
858 UACPI_OP_PROPERTY_TERM_ARG \
860UACPI_BUILD_BUFFER_FIELD_OP(QWord, 0x8F) \
861UACPI_BUILD_BINARY_LOGIC_OP(Land, 0x90) \
862UACPI_BUILD_BINARY_LOGIC_OP(Lor, 0x91) \
866 UACPI_PARSE_OP_OPERAND, \
867 UACPI_PARSE_OP_OBJECT_ALLOC, \
868 UACPI_PARSE_OP_INVOKE_HANDLER, \
869 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
871 UACPI_OP_PROPERTY_TERM_ARG \
873UACPI_BUILD_BINARY_LOGIC_OP(LEqual, 0x93) \
874UACPI_BUILD_BINARY_LOGIC_OP(LGreater, 0x94) \
875UACPI_BUILD_BINARY_LOGIC_OP(LLess, 0x95) \
876UACPI_BUILD_TO_OP(Buffer, 0x96, UACPI_OBJECT_BUFFER) \
877UACPI_BUILD_TO_OP(DecimalString, 0x97, UACPI_OBJECT_STRING) \
878UACPI_BUILD_TO_OP(HexString, 0x98, UACPI_OBJECT_STRING) \
879UACPI_BUILD_TO_OP(Integer, 0x99, UACPI_OBJECT_INTEGER) \
880UACPI_BAD_OPCODE(0x9A) \
881UACPI_BAD_OPCODE(0x9B) \
885 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
886 UACPI_PARSE_OP_TYPECHECK, UACPI_OBJECT_BUFFER, \
887 UACPI_PARSE_OP_OPERAND, \
888 UACPI_PARSE_OP_TARGET, \
889 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_STRING, \
890 UACPI_PARSE_OP_INVOKE_HANDLER, \
891 UACPI_PARSE_OP_STORE_TO_TARGET, 2, \
892 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
894 UACPI_OP_PROPERTY_TERM_ARG \
897 CopyObjectOp, 0x9D, \
899 UACPI_PARSE_OP_TERM_ARG, \
900 UACPI_PARSE_OP_OBJECT_COPY_TO_PREV, \
901 UACPI_PARSE_OP_SIMPLE_NAME, \
902 UACPI_PARSE_OP_INVOKE_HANDLER, \
904 UACPI_OP_PROPERTY_TERM_ARG \
909 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
910 UACPI_PARSE_OP_OPERAND, \
911 UACPI_PARSE_OP_OPERAND, \
912 UACPI_PARSE_OP_TARGET, \
913 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
914 UACPI_PARSE_OP_INVOKE_HANDLER, \
915 UACPI_PARSE_OP_STORE_TO_TARGET, 3, \
916 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
918 UACPI_OP_PROPERTY_TERM_ARG \
923 UACPI_PARSE_OP_INVOKE_HANDLER, \
929 UACPI_PARSE_OP_TRACKED_PKGLEN, \
930 UACPI_PARSE_OP_OPERAND, \
931 UACPI_PARSE_OP_IF_LAST_NULL, 3, \
932 UACPI_PARSE_OP_EMIT_SKIP_WARN, \
933 UACPI_PARSE_OP_JMP, 9, \
934 UACPI_PARSE_OP_IF_LAST_FALSE, 4, \
935 UACPI_PARSE_OP_SWITCH_TO_NEXT_IF_EQUALS, 0xA1, 0x00, \
936 UACPI_PARSE_OP_END, \
937 UACPI_PARSE_OP_INVOKE_HANDLER, \
943 UACPI_PARSE_OP_IF_SWITCHED_FROM, 0xA0, 0x00, 10, \
944 UACPI_PARSE_OP_IF_LAST_NULL, 3, \
945 UACPI_PARSE_OP_TRACKED_PKGLEN, \
946 UACPI_PARSE_OP_EMIT_SKIP_WARN, \
947 UACPI_PARSE_OP_END, \
948 UACPI_PARSE_OP_ITEM_POP, \
949 UACPI_PARSE_OP_ITEM_POP, \
950 UACPI_PARSE_OP_PKGLEN, \
951 UACPI_PARSE_OP_INVOKE_HANDLER, \
952 UACPI_PARSE_OP_END, \
953 UACPI_PARSE_OP_TRACKED_PKGLEN, \
959 UACPI_PARSE_OP_TRACKED_PKGLEN, \
960 UACPI_PARSE_OP_OPERAND, \
961 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
962 UACPI_PARSE_OP_IF_LAST_TRUE, 1, \
963 UACPI_PARSE_OP_INVOKE_HANDLER, \
969 UACPI_PARSE_OP_END, \
975 UACPI_PARSE_OP_TERM_ARG_UNWRAP_INTERNAL, \
976 UACPI_PARSE_OP_INVOKE_HANDLER, \
982 UACPI_PARSE_OP_INVOKE_HANDLER, \
985UACPI_BAD_OPCODE(0xA6) \
986UACPI_BAD_OPCODE(0xA7) \
987UACPI_BAD_OPCODE(0xA8) \
988UACPI_BAD_OPCODE(0xA9) \
989UACPI_BAD_OPCODE(0xAA) \
990UACPI_BAD_OPCODE(0xAB) \
991UACPI_BAD_OPCODE(0xAC) \
992UACPI_BAD_OPCODE(0xAD) \
993UACPI_BAD_OPCODE(0xAE) \
994UACPI_BAD_OPCODE(0xAF) \
995UACPI_BAD_OPCODE(0xB0) \
996UACPI_BAD_OPCODE(0xB1) \
997UACPI_BAD_OPCODE(0xB2) \
998UACPI_BAD_OPCODE(0xB3) \
999UACPI_BAD_OPCODE(0xB4) \
1000UACPI_BAD_OPCODE(0xB5) \
1001UACPI_BAD_OPCODE(0xB6) \
1002UACPI_BAD_OPCODE(0xB7) \
1003UACPI_BAD_OPCODE(0xB8) \
1004UACPI_BAD_OPCODE(0xB9) \
1005UACPI_BAD_OPCODE(0xBA) \
1006UACPI_BAD_OPCODE(0xBB) \
1007UACPI_BAD_OPCODE(0xBC) \
1008UACPI_BAD_OPCODE(0xBD) \
1009UACPI_BAD_OPCODE(0xBE) \
1010UACPI_BAD_OPCODE(0xBF) \
1011UACPI_BAD_OPCODE(0xC0) \
1012UACPI_BAD_OPCODE(0xC1) \
1013UACPI_BAD_OPCODE(0xC2) \
1014UACPI_BAD_OPCODE(0xC3) \
1015UACPI_BAD_OPCODE(0xC4) \
1016UACPI_BAD_OPCODE(0xC5) \
1017UACPI_BAD_OPCODE(0xC6) \
1018UACPI_BAD_OPCODE(0xC7) \
1019UACPI_BAD_OPCODE(0xC8) \
1020UACPI_BAD_OPCODE(0xC9) \
1021UACPI_BAD_OPCODE(0xCA) \
1022UACPI_BAD_OPCODE(0xCB) \
1024 BreakPointOp, 0xCC, \
1026 UACPI_PARSE_OP_INVOKE_HANDLER, \
1029UACPI_BAD_OPCODE(0xCD) \
1030UACPI_BAD_OPCODE(0xCE) \
1031UACPI_BAD_OPCODE(0xCF) \
1032UACPI_BAD_OPCODE(0xD0) \
1033UACPI_BAD_OPCODE(0xD1) \
1034UACPI_BAD_OPCODE(0xD2) \
1035UACPI_BAD_OPCODE(0xD3) \
1036UACPI_BAD_OPCODE(0xD4) \
1037UACPI_BAD_OPCODE(0xD5) \
1038UACPI_BAD_OPCODE(0xD6) \
1039UACPI_BAD_OPCODE(0xD7) \
1040UACPI_BAD_OPCODE(0xD8) \
1041UACPI_BAD_OPCODE(0xD9) \
1042UACPI_BAD_OPCODE(0xDA) \
1043UACPI_BAD_OPCODE(0xDB) \
1044UACPI_BAD_OPCODE(0xDC) \
1045UACPI_BAD_OPCODE(0xDD) \
1046UACPI_BAD_OPCODE(0xDE) \
1047UACPI_BAD_OPCODE(0xDF) \
1048UACPI_BAD_OPCODE(0xE0) \
1049UACPI_BAD_OPCODE(0xE1) \
1050UACPI_BAD_OPCODE(0xE2) \
1051UACPI_BAD_OPCODE(0xE3) \
1052UACPI_BAD_OPCODE(0xE4) \
1053UACPI_BAD_OPCODE(0xE5) \
1054UACPI_BAD_OPCODE(0xE6) \
1055UACPI_BAD_OPCODE(0xE7) \
1056UACPI_BAD_OPCODE(0xE8) \
1057UACPI_BAD_OPCODE(0xE9) \
1058UACPI_BAD_OPCODE(0xEA) \
1059UACPI_BAD_OPCODE(0xEB) \
1060UACPI_BAD_OPCODE(0xEC) \
1061UACPI_BAD_OPCODE(0xED) \
1062UACPI_BAD_OPCODE(0xEE) \
1063UACPI_BAD_OPCODE(0xEF) \
1064UACPI_BAD_OPCODE(0xF0) \
1065UACPI_BAD_OPCODE(0xF1) \
1066UACPI_BAD_OPCODE(0xF2) \
1067UACPI_BAD_OPCODE(0xF3) \
1069 InternalOpReadFieldAsBuffer, 0xF4, \
1071 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_BUFFER, \
1072 UACPI_PARSE_OP_INVOKE_HANDLER, \
1073 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1075 UACPI_OP_PROPERTY_TERM_ARG | \
1076 UACPI_OP_PROPERTY_RESERVED \
1079 InternalOpReadFieldAsInteger, 0xF5, \
1081 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, UACPI_OBJECT_INTEGER, \
1082 UACPI_PARSE_OP_INVOKE_HANDLER, \
1083 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1085 UACPI_OP_PROPERTY_TERM_ARG | \
1086 UACPI_OP_PROPERTY_RESERVED \
1089 InternalOpNamedObject, 0xF6, \
1091 UACPI_PARSE_OP_EMPTY_OBJECT_ALLOC, \
1092 UACPI_PARSE_OP_INVOKE_HANDLER, \
1093 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1095 UACPI_OP_PROPERTY_SIMPLE_NAME | \
1096 UACPI_OP_PROPERTY_SUPERNAME | \
1097 UACPI_OP_PROPERTY_TERM_ARG | \
1098 UACPI_OP_PROPERTY_RESERVED \
1100UACPI_METHOD_CALL_OPCODE(0) \
1101UACPI_METHOD_CALL_OPCODE(1) \
1102UACPI_METHOD_CALL_OPCODE(2) \
1103UACPI_METHOD_CALL_OPCODE(3) \
1104UACPI_METHOD_CALL_OPCODE(4) \
1105UACPI_METHOD_CALL_OPCODE(5) \
1106UACPI_METHOD_CALL_OPCODE(6) \
1107UACPI_METHOD_CALL_OPCODE(7) \
1111 UACPI_PARSE_OP_LOAD_INLINE_IMM_AS_OBJECT, \
1112 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
1113 UACPI_PARSE_OP_TRUNCATE_NUMBER, \
1114 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1116 UACPI_OP_PROPERTY_TERM_ARG \
1125#define UACPI_BUILD_NAMED_SCOPE_OBJECT_OP(name, code, type, ...) \
1127 name##Op, UACPI_EXT_OP(code), \
1129 UACPI_PARSE_OP_TRACKED_PKGLEN, \
1130 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1132 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 1, \
1133 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, type, \
1134 UACPI_PARSE_OP_INVOKE_HANDLER, \
1135 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 1, \
1139#define UACPI_BUILD_TO_FROM_BCD(type, code) \
1141 type##BCDOp, UACPI_EXT_OP(code), \
1143 UACPI_PARSE_OP_OPERAND, \
1144 UACPI_PARSE_OP_TARGET, \
1145 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1146 UACPI_OBJECT_INTEGER, \
1147 UACPI_PARSE_OP_INVOKE_HANDLER, \
1148 UACPI_PARSE_OP_STORE_TO_TARGET, 1, \
1149 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1151 UACPI_OP_PROPERTY_TERM_ARG \
1154#define UACPI_ENUMERATE_EXT_OPCODES \
1156 ReservedExtOp, UACPI_EXT_OP(0x00), \
1158 UACPI_PARSE_OP_BAD_OPCODE, \
1162 MutexOp, UACPI_EXT_OP(0x01), \
1164 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1165 UACPI_PARSE_OP_LOAD_IMM, 1, \
1166 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
1167 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1168 UACPI_OBJECT_MUTEX, \
1169 UACPI_PARSE_OP_INVOKE_HANDLER, \
1170 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
1174 EventOp, UACPI_EXT_OP(0x02), \
1176 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1177 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
1178 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1179 UACPI_OBJECT_EVENT, \
1180 UACPI_PARSE_OP_INVOKE_HANDLER, \
1181 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
1185 CondRefOfOp, UACPI_EXT_OP(0x12), \
1187 UACPI_PARSE_OP_SUPERNAME_OR_UNRESOLVED, \
1188 UACPI_PARSE_OP_TARGET, \
1189 UACPI_PARSE_OP_IF_NULL, 0, 3, \
1190 UACPI_PARSE_OP_LOAD_FALSE_OBJECT, \
1191 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1192 UACPI_PARSE_OP_END, \
1193 UACPI_PARSE_OP_OBJECT_ALLOC, \
1194 UACPI_PARSE_OP_INVOKE_HANDLER, \
1195 UACPI_PARSE_OP_STORE_TO_TARGET, 1, \
1196 UACPI_PARSE_OP_LOAD_TRUE_OBJECT, \
1197 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1199 UACPI_OP_PROPERTY_TERM_ARG \
1201UACPI_DO_BUILD_BUFFER_FIELD_OP( \
1202 Create, UACPI_EXT_OP(0x13), 3, \
1203 UACPI_PARSE_OP_OPERAND \
1205UACPI_OUT_OF_LINE_OP( \
1206 LoadTableOp, UACPI_EXT_OP(0x1F), \
1207 uacpi_load_table_op_decode_ops, \
1208 UACPI_OP_PROPERTY_TERM_ARG | \
1209 UACPI_OP_PROPERTY_OUT_OF_LINE \
1211UACPI_OUT_OF_LINE_OP( \
1212 LoadOp, UACPI_EXT_OP(0x20), \
1213 uacpi_load_op_decode_ops, \
1214 UACPI_OP_PROPERTY_TERM_ARG | \
1215 UACPI_OP_PROPERTY_OUT_OF_LINE \
1218 StallOp, UACPI_EXT_OP(0x21), \
1220 UACPI_PARSE_OP_OPERAND, \
1221 UACPI_PARSE_OP_INVOKE_HANDLER, \
1225 SleepOp, UACPI_EXT_OP(0x22), \
1227 UACPI_PARSE_OP_OPERAND, \
1228 UACPI_PARSE_OP_INVOKE_HANDLER, \
1232 AcquireOp, UACPI_EXT_OP(0x23), \
1234 UACPI_PARSE_OP_SUPERNAME, \
1235 UACPI_PARSE_OP_LOAD_IMM, 2, \
1236 UACPI_PARSE_OP_LOAD_TRUE_OBJECT, \
1237 UACPI_PARSE_OP_INVOKE_HANDLER, \
1238 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1240 UACPI_OP_PROPERTY_TERM_ARG \
1243 SignalOp, UACPI_EXT_OP(0x24), \
1245 UACPI_PARSE_OP_SUPERNAME, \
1246 UACPI_PARSE_OP_INVOKE_HANDLER, \
1250 WaitOp, UACPI_EXT_OP(0x25), \
1252 UACPI_PARSE_OP_SUPERNAME, \
1253 UACPI_PARSE_OP_OPERAND, \
1254 UACPI_PARSE_OP_LOAD_TRUE_OBJECT, \
1255 UACPI_PARSE_OP_INVOKE_HANDLER, \
1256 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1258 UACPI_OP_PROPERTY_TERM_ARG \
1261 ResetOp, UACPI_EXT_OP(0x26), \
1263 UACPI_PARSE_OP_SUPERNAME, \
1264 UACPI_PARSE_OP_INVOKE_HANDLER, \
1268 ReleaseOp, UACPI_EXT_OP(0x27), \
1270 UACPI_PARSE_OP_SUPERNAME, \
1271 UACPI_PARSE_OP_INVOKE_HANDLER, \
1274UACPI_BUILD_TO_FROM_BCD(From, 0x28) \
1275UACPI_BUILD_TO_FROM_BCD(To, 0x29) \
1277 UnloadOp, UACPI_EXT_OP(0x2A), \
1279 UACPI_PARSE_OP_SUPERNAME, \
1280 UACPI_PARSE_OP_INVOKE_HANDLER, \
1284 RevisionOp, UACPI_EXT_OP(0x30), \
1286 UACPI_PARSE_OP_LOAD_INLINE_IMM_AS_OBJECT, \
1287 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
1288 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1290 UACPI_OP_PROPERTY_TERM_ARG \
1293 DebugOp, UACPI_EXT_OP(0x31), \
1295 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1296 UACPI_OBJECT_DEBUG, \
1297 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1299 UACPI_OP_PROPERTY_TERM_ARG | \
1300 UACPI_OP_PROPERTY_SUPERNAME | \
1301 UACPI_OP_PROPERTY_TARGET \
1304 FatalOp, UACPI_EXT_OP(0x32), \
1306 UACPI_PARSE_OP_LOAD_IMM, 1, \
1307 UACPI_PARSE_OP_LOAD_IMM, 4, \
1308 UACPI_PARSE_OP_OPERAND, \
1309 UACPI_PARSE_OP_INVOKE_HANDLER, \
1313 TimerOp, UACPI_EXT_OP(0x33), \
1315 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1316 UACPI_OBJECT_INTEGER, \
1317 UACPI_PARSE_OP_INVOKE_HANDLER, \
1318 UACPI_PARSE_OP_OBJECT_TRANSFER_TO_PREV, \
1320 UACPI_OP_PROPERTY_TERM_ARG \
1323 OpRegionOp, UACPI_EXT_OP(0x80), \
1325 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1326 UACPI_PARSE_OP_LOAD_IMM, 1, \
1327 UACPI_PARSE_OP_OPERAND, \
1328 UACPI_PARSE_OP_OPERAND, \
1329 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
1330 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1331 UACPI_OBJECT_OPERATION_REGION, \
1332 UACPI_PARSE_OP_INVOKE_HANDLER, \
1333 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
1336UACPI_OUT_OF_LINE_OP( \
1337 FieldOp, UACPI_EXT_OP(0x81), \
1338 uacpi_field_op_decode_ops, \
1339 UACPI_OP_PROPERTY_OUT_OF_LINE \
1341UACPI_BUILD_NAMED_SCOPE_OBJECT_OP( \
1342 Device, 0x82, UACPI_OBJECT_DEVICE \
1344UACPI_BUILD_NAMED_SCOPE_OBJECT_OP( \
1345 Processor, 0x83, UACPI_OBJECT_PROCESSOR, \
1346 UACPI_PARSE_OP_LOAD_IMM, 1, \
1347 UACPI_PARSE_OP_LOAD_IMM, 4, \
1348 UACPI_PARSE_OP_LOAD_IMM, 1 \
1350UACPI_BUILD_NAMED_SCOPE_OBJECT_OP( \
1351 PowerRes, 0x84, UACPI_OBJECT_POWER_RESOURCE, \
1352 UACPI_PARSE_OP_LOAD_IMM, 1, \
1353 UACPI_PARSE_OP_LOAD_IMM, 2 \
1355UACPI_BUILD_NAMED_SCOPE_OBJECT_OP( \
1356 ThermalZone, 0x85, UACPI_OBJECT_THERMAL_ZONE \
1358UACPI_OUT_OF_LINE_OP( \
1359 IndexFieldOp, UACPI_EXT_OP(0x86), \
1360 uacpi_index_field_op_decode_ops, \
1361 UACPI_OP_PROPERTY_OUT_OF_LINE \
1363UACPI_OUT_OF_LINE_OP( \
1364 BankFieldOp, UACPI_EXT_OP(0x87), \
1365 uacpi_bank_field_op_decode_ops, \
1366 UACPI_OP_PROPERTY_OUT_OF_LINE \
1369 DataRegionOp, UACPI_EXT_OP(0x88), \
1371 UACPI_PARSE_OP_CREATE_NAMESTRING_OR_NULL_IF_LOAD, \
1372 UACPI_PARSE_OP_STRING, \
1373 UACPI_PARSE_OP_STRING, \
1374 UACPI_PARSE_OP_STRING, \
1375 UACPI_PARSE_OP_SKIP_WITH_WARN_IF_NULL, 0, \
1376 UACPI_PARSE_OP_OBJECT_ALLOC_TYPED, \
1377 UACPI_OBJECT_OPERATION_REGION, \
1378 UACPI_PARSE_OP_INVOKE_HANDLER, \
1379 UACPI_PARSE_OP_INSTALL_NAMESPACE_NODE, 0, \
1384#define UACPI_OP(name, code, ...) UACPI_AML_OP_##name = code,
1385#define UACPI_OUT_OF_LINE_OP(name, code, ...) UACPI_AML_OP_##name = code,
1389#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_BAD_OPCODE
@ 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_UNREACHABLE
@ 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_SUPERNAME
@ UACPI_OP_PROPERTY_OUT_OF_LINE
@ UACPI_OP_PROPERTY_RESERVED
@ 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