1/* 2 * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without modification, 6 * are permitted provided that the following conditions are met: 7 * 8 * Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * Neither the name of Intel Corporation nor the names of its contributors 14 * may be used to endorse or promote products derived from this software 15 * without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29/* 30 * Device 31 * 32 * (verify exceptions caused by the imprope use of Device type objects) 33 */ 34 35Name(z098, 98) 36 37Device(dev0) {} 38 39// Expected exceptions: 40// 41// 47 - AE_AML_OPERAND_TYPE 42// 43Method(m4b6,, Serialized) 44{ 45 Name(ts, "m4b6") 46 47 Device(dev1) {} 48 49 Event(e000) 50 51 Name(i000, 0) 52 53 // Local Named Object 54/* These are now caught by the compiler - Aug 2015 55 56 Method(m000, 1, Serialized) 57 { 58 Device(dev2) {} 59 60 Store (DerefOf(dev2), Local1) 61 CH06(arg0, 0, 47) 62 } 63*/ 64 // Global Named Object 65/* These are now caught by the compiler - Aug 2015 66 Method(m001, 1) 67 { 68 if (y083) { 69 Store (DerefOf(dev0), Local1) 70 CH06(arg0, 1, 47) 71 } 72 } 73*/ 74 // Local 75 Method(m002, 1, Serialized) 76 { 77 Device(dev2) {} 78 79 Event(e000) 80 81 CopyObject(dev2, Local0) 82 83 // CondRefOf 84 85 CondRefOf(Local0, Local1) 86 CH03(ts, z098, 1, 0, 0) 87 88 // CopyObject 89 90 CopyObject(Local0, Local1) 91 CH03(ts, z098, 2, 0, 0) 92 93 // Decrement 94 95 Decrement(Local0) 96 CH06(arg0, 1, 47) 97 98 // DerefOf 99 100 Store (DerefOf(Local0), Local1) 101 CH06(arg0, 2, 47) 102 103 // FindSetLeftBit 104 105 FindSetLeftBit(Local0, Local1) 106 CH06(arg0, 4, 47) 107 108 // FindSetRightBit 109 110 FindSetRightBit(Local0, Local1) 111 CH06(arg0, 6, 47) 112 113 // FromBCD 114 115 FromBCD(Local0, Local1) 116 CH06(arg0, 8, 47) 117 118 // Increment 119 120 Increment(Local0) 121 CH06(arg0, 9, 47) 122 123 // LNot 124 125 Store (LNot(Local0), Local1) 126 CH06(arg0, 10, 47) 127 128 // Not 129 130 Not(Local0, Local1) 131 CH06(arg0, 12, 47) 132 133 // ObjectType 134 135 Store (ObjectType(Local0), Local1) 136 CH03(ts, z098, 3, 0, 0) 137 138 // RefOf 139 140 Store (RefOf(Local0), Local1) 141 CH03(ts, z098, 4, 0, 0) 142 143 // Release 144 145 Release(Local0) 146 CH06(arg0, 13, 47) 147 148 // Reset 149 150 Reset(Local0) 151 CH06(arg0, 14, 47) 152 153 // Signal 154 155 Signal(Local0) 156 CH06(arg0, 15, 47) 157 158 // SizeOf 159 160 Store (SizeOf(Local0), Local1) 161 CH06(arg0, 16, 47) 162 163 // Sleep 164 165 Sleep(Local0) 166 CH06(arg0, 17, 47) 167 168 // Stall 169 170 Stall(Local0) 171 CH06(arg0, 18, 47) 172 173 // Store 174 175 Store(Local0, Local1) 176 CH06(arg0, 19, 47) 177 178 // ToBCD 179 180 ToBCD(Local0, Local1) 181 CH06(arg0, 21, 47) 182 183 // ToBuffer 184 185 ToBuffer(Local0, Local1) 186 CH06(arg0, 23, 47) 187 188 // ToDecimalString 189 190 ToDecimalString(Local0, Local1) 191 CH06(arg0, 25, 47) 192 193 // ToHexString 194 195 ToHexString(Local0, Local1) 196 CH06(arg0, 27, 47) 197 198 // ToInteger 199 200 ToInteger(Local0, Local1) 201 CH06(arg0, 29, 47) 202 203 // Acquire 204 205 Store(Acquire(Local0, 100), Local1) 206 CH06(arg0, 30, 47) 207 208 // Add 209 210 Add(Local0, i000, Local1) 211 CH06(arg0, 33, 47) 212 213 Add(i000, Local0, Local1) 214 CH06(arg0, 34, 47) 215 216 // And 217 218 And(Local0, i000, Local1) 219 CH06(arg0, 37, 47) 220 221 And(i000, Local0, Local1) 222 CH06(arg0, 38, 47) 223 224 // Concatenate 225 226 Concatenate(Local0, i000, Local1) 227 CH06(arg0, 41, 47) 228 229 Concatenate(i000, Local0, Local1) 230 CH06(arg0, 42, 47) 231 232 // ConcatenateResTemplate 233 234 ConcatenateResTemplate(Local0, ResourceTemplate(){}, Local1) 235 CH06(arg0, 45, 47) 236 237 ConcatenateResTemplate(ResourceTemplate(){}, Local0, Local1) 238 CH06(arg0, 46, 47) 239 240 // Divide 241 242 Divide(Local0, i000, Local2) 243 CH06(arg0, 49, 47) 244 245 Divide(i000, Local0, Local2) 246 CH06(arg0, 50, 47) 247 248 Divide(Local0, i000, Local2, Local1) 249 CH06(arg0, 51, 47) 250 251 Divide(i000, Local0, Local2, Local1) 252 CH06(arg0, 52, 47) 253 254 // Fatal 255 256 Fatal(0xff, 0xffffffff, Local0) 257 CH06(arg0, 53, 47) 258 259 // Index 260 261 Index(Local0, 0, Local1) 262 CH06(arg0, 56, 47) 263 264 Index("0", Local0, Local1) 265 CH06(arg0, 57, 47) 266 267 // LEqual 268 269 Store (LEqual(Local0, i000), Local1) 270 CH06(arg0, 58, 47) 271 272 Store (LEqual(i000, Local0), Local1) 273 CH06(arg0, 59, 47) 274 275 // LGreater 276 277 Store (LGreater(Local0, i000), Local1) 278 CH06(arg0, 60, 47) 279 280 Store (LGreater(i000, Local0), Local1) 281 CH06(arg0, 61, 47) 282 283 // LGreaterEqual 284 285 Store (LGreaterEqual(Local0, i000), Local1) 286 CH06(arg0, 62, 0xff) 287 288 Store (LGreaterEqual(i000, Local0), Local1) 289 CH06(arg0, 63, 0xff) 290 291 // LLess 292 293 Store (LLess(Local0, i000), Local1) 294 CH06(arg0, 64, 47) 295 296 Store (LLess(i000, Local0), Local1) 297 CH06(arg0, 65, 47) 298 299 // LLessEqual 300 301 Store (LLessEqual(Local0, i000), Local1) 302 CH06(arg0, 66, 0xff) 303 304 Store (LLessEqual(i000, Local0), Local1) 305 CH06(arg0, 67, 0xff) 306 307 // LNotEqual 308 309 Store (LNotEqual(Local0, i000), Local1) 310 CH06(arg0, 68, 0xff) 311 312 Store (LNotEqual(i000, Local0), Local1) 313 CH06(arg0, 69, 0xff) 314 315 // LOr 316 317 Store (LOr(Local0, i000), Local1) 318 CH06(arg0, 70, 47) 319 320 Store (LOr(i000, Local0), Local1) 321 CH06(arg0, 71, 47) 322 323 // Mod 324 325 Mod(Local0, i000, Local1) 326 CH06(arg0, 74, 47) 327 328 Mod(i000, Local0, Local1) 329 CH06(arg0, 75, 47) 330 331 // Multiply 332 333 Multiply(Local0, i000, Local1) 334 CH06(arg0, 78, 47) 335 336 Multiply(i000, Local0, Local1) 337 CH06(arg0, 79, 47) 338 339 // NAnd 340 341 NAnd(Local0, i000, Local1) 342 CH06(arg0, 82, 47) 343 344 NAnd(i000, Local0, Local1) 345 CH06(arg0, 83, 47) 346 347 // NOr 348 349 NOr(Local0, i000, Local1) 350 CH06(arg0, 86, 47) 351 352 NOr(i000, Local0, Local1) 353 CH06(arg0, 87, 47) 354 355 // Or 356 357 Or(Local0, i000, Local1) 358 CH06(arg0, 90, 47) 359 360 Or(i000, Local0, Local1) 361 CH06(arg0, 91, 47) 362 363 // ShiftLeft 364 365 ShiftLeft(Local0, i000, Local1) 366 CH06(arg0, 94, 47) 367 368 ShiftLeft(i000, Local0, Local1) 369 CH06(arg0, 95, 47) 370 371 // ShiftRight 372 373 ShiftRight(Local0, i000, Local1) 374 CH06(arg0, 98, 47) 375 376 ShiftRight(i000, Local0, Local1) 377 CH06(arg0, 99, 47) 378 379 // Subtract 380 381 Subtract(Local0, i000, Local1) 382 CH06(arg0, 102, 47) 383 384 Subtract(i000, Local0, Local1) 385 CH06(arg0, 103, 47) 386 387 // ToString 388 389 ToString(Local0, 1, Local1) 390 CH06(arg0, 106, 47) 391 392 ToString(i000, Local0, Local1) 393 CH06(arg0, 107, 47) 394 395 // Wait 396 397 Store(Wait(Local0, i000), Local1) 398 CH06(arg0, 108, 47) 399 400 Store(Wait(e000, Local0), Local1) 401 CH06(arg0, 109, 47) 402 403 // XOr 404 405 XOr(Local0, i000, Local1) 406 CH06(arg0, 112, 47) 407 408 XOr(i000, Local0, Local1) 409 CH06(arg0, 113, 47) 410 411 // Mid 412 413 Mid(Local0, 1, 1, Local1) 414 CH06(arg0, 117, 47) 415 416 Mid("123", Local0, 1, Local1) 417 CH06(arg0, 118, 47) 418 419 Mid("123", 1, Local0, Local1) 420 CH06(arg0, 119, 47) 421 422 // Match 423 424 Store (Match(Local0, MTR, 0, MTR, 0, 0), Local1) 425 CH06(arg0, 120, 47) 426 427 Store (Match(Package(){1}, MTR, Local0, MTR, 0, 0), Local1) 428 CH06(arg0, 121, 47) 429 430 Store (Match(Package(){1}, MTR, 0, MTR, Local0, 0), Local1) 431 CH06(arg0, 122, 47) 432 433 Store (Match(Package(){1}, MTR, 0, MTR, 0, Local0), Local1) 434 CH06(arg0, 123, 47) 435 } 436 437 // Reference to Object 438 Method(m003, 3, Serialized) 439 { 440 Name(EXC0, 47) // AE_AML_OPERAND_TYPE 441 442 Store(ObjectType(arg1), Local0) 443 if (LNotEqual(Local0, 6)) { 444 err(arg0, z098, 200, 0, 0, Local0, 6) 445 return (1) 446 } 447 448 if (arg2) { 449 if (LNot(y503)) { 450 Store(62, EXC0) // AE_AML_NO_RETURN_VALUE 451 } 452 } 453 454 Store (DeRefOf(arg1), Local1) 455 CH03(ts, z098, 5, 0, 0) 456 457 // CondRefOf 458 459 CondRefOf(DeRefOf(arg1), Local1) 460 CH06(arg0, 1, EXC0) 461 462 // CopyObject 463 464 CopyObject(DeRefOf(arg1), Local1) 465 CH06(arg0, 2, EXC0) 466 467 // Decrement 468 469 Decrement(DeRefOf(arg1)) 470 CH06(arg0, 3, EXC0) 471 472 // DerefOf 473 474 Store (DerefOf(DeRefOf(arg1)), Local1) 475 CH06(arg0, 4, EXC0) 476 477 // FindSetLeftBit 478 479 FindSetLeftBit(DeRefOf(arg1), Local1) 480 CH06(arg0, 6, EXC0) 481 482 // FindSetRightBit 483 484 FindSetRightBit(DeRefOf(arg1), Local1) 485 CH06(arg0, 8, EXC0) 486 487 // FromBCD 488 489 FromBCD(DeRefOf(arg1), Local1) 490 CH06(arg0, 10, EXC0) 491 492 // Increment 493 494 Increment(DeRefOf(arg1)) 495 CH06(arg0, 11, EXC0) 496 497 // LNot 498 499 Store (LNot(DeRefOf(arg1)), Local1) 500 CH06(arg0, 12, EXC0) 501 502 // Not 503 504 Not(DeRefOf(arg1), Local1) 505 CH06(arg0, 14, EXC0) 506 507 // ObjectType 508 509 Store (ObjectType(DeRefOf(arg1)), Local1) 510 CH03(ts, z098, 6, 0, 0) 511 512 // RefOf 513 514 Store (RefOf(DeRefOf(arg1)), Local1) 515 CH06(arg0, 15, EXC0) 516 517 // Release 518 519 // Reset 520 521 // Signal 522 523 // SizeOf 524 525 Store (SizeOf(DeRefOf(arg1)), Local1) 526 CH06(arg0, 16, EXC0) 527 528 // Sleep 529 530 Sleep(DeRefOf(arg1)) 531 CH06(arg0, 17, EXC0) 532 533 // Stall 534 535 Stall(DeRefOf(arg1)) 536 CH06(arg0, 18, EXC0) 537 538 // Store 539 540 Store(DeRefOf(arg1), Local1) 541 CH06(arg0, 19, EXC0) 542 543 // ToBCD 544 545 ToBCD(DeRefOf(arg1), Local1) 546 CH06(arg0, 21, EXC0) 547 548 // ToBuffer 549 550 ToBuffer(DeRefOf(arg1), Local1) 551 CH06(arg0, 23, EXC0) 552 553 // ToDecimalString 554 555 ToDecimalString(DeRefOf(arg1), Local1) 556 CH06(arg0, 25, EXC0) 557 558 // ToHexString 559 560 ToHexString(DeRefOf(arg1), Local1) 561 CH06(arg0, 27, EXC0) 562 563 // ToInteger 564 565 ToInteger(DeRefOf(arg1), Local1) 566 CH06(arg0, 29, EXC0) 567 568 // Acquire 569 570 // Add 571 572 Add(DeRefOf(arg1), i000, Local1) 573 CH06(arg0, 33, EXC0) 574 575 Add(i000, DeRefOf(arg1), Local1) 576 CH06(arg0, 34, EXC0) 577 578 // And 579 580 And(DeRefOf(arg1), i000, Local1) 581 CH06(arg0, 37, EXC0) 582 583 And(i000, DeRefOf(arg1), Local1) 584 CH06(arg0, 38, EXC0) 585 586 // Concatenate 587 588 Concatenate(DeRefOf(arg1), i000, Local1) 589 CH06(arg0, 41, EXC0) 590 591 Concatenate(i000, DeRefOf(arg1), Local1) 592 CH06(arg0, 42, EXC0) 593 594 // ConcatenateResTemplate 595 596 ConcatenateResTemplate(DeRefOf(arg1), ResourceTemplate(){}, Local1) 597 CH06(arg0, 45, EXC0) 598 599 ConcatenateResTemplate(ResourceTemplate(){}, DeRefOf(arg1), Local1) 600 CH06(arg0, 46, EXC0) 601 602 // Divide 603 604 Divide(DeRefOf(arg1), i000, Local2) 605 CH06(arg0, 49, EXC0) 606 607 Divide(i000, DeRefOf(arg1), Local2) 608 CH06(arg0, 50, EXC0) 609 610 Divide(DeRefOf(arg1), i000, Local2, Local1) 611 CH06(arg0, 51, EXC0) 612 613 Divide(i000, DeRefOf(arg1), Local2, Local1) 614 CH06(arg0, 52, EXC0) 615 616 // Fatal 617 618 Fatal(0xff, 0xffffffff, DeRefOf(arg1)) 619 CH06(arg0, 53, EXC0) 620 621 // Index 622 623 Index(DeRefOf(arg1), 0, Local1) 624 CH06(arg0, 56, EXC0) 625 626 Index("0", DeRefOf(arg1), Local1) 627 CH06(arg0, 57, EXC0) 628 629 // LEqual 630 631 Store (LEqual(DeRefOf(arg1), i000), Local1) 632 CH06(arg0, 58, EXC0) 633 634 Store (LEqual(i000, DeRefOf(arg1)), Local1) 635 CH06(arg0, 59, EXC0) 636 637 // LGreater 638 639 Store (LGreater(DeRefOf(arg1), i000), Local1) 640 CH06(arg0, 60, EXC0) 641 642 Store (LGreater(i000, DeRefOf(arg1)), Local1) 643 CH06(arg0, 61, EXC0) 644 645 // LGreaterEqual 646 647 Store (LGreaterEqual(DeRefOf(arg1), i000), Local1) 648 CH06(arg0, 62, 0xff) 649 650 Store (LGreaterEqual(i000, DeRefOf(arg1)), Local1) 651 CH06(arg0, 63, 0xff) 652 653 // LLess 654 655 Store (LLess(DeRefOf(arg1), i000), Local1) 656 CH06(arg0, 64, EXC0) 657 658 Store (LLess(i000, DeRefOf(arg1)), Local1) 659 CH06(arg0, 65, EXC0) 660 661 // LLessEqual 662 663 Store (LLessEqual(DeRefOf(arg1), i000), Local1) 664 CH06(arg0, 66, 0xff) 665 666 Store (LLessEqual(i000, DeRefOf(arg1)), Local1) 667 CH06(arg0, 67, 0xff) 668 669 // LNotEqual 670 671 Store (LNotEqual(DeRefOf(arg1), i000), Local1) 672 CH06(arg0, 68, 0xff) 673 674 Store (LNotEqual(i000, DeRefOf(arg1)), Local1) 675 CH06(arg0, 69, 0xff) 676 677 // LOr 678 679 Store (LOr(DeRefOf(arg1), i000), Local1) 680 CH06(arg0, 70, EXC0) 681 682 Store (LOr(i000, DeRefOf(arg1)), Local1) 683 CH06(arg0, 71, EXC0) 684 685 // Mod 686 687 Mod(DeRefOf(arg1), i000, Local1) 688 CH06(arg0, 74, EXC0) 689 690 Mod(i000, DeRefOf(arg1), Local1) 691 CH06(arg0, 75, EXC0) 692 693 // Multiply 694 695 Multiply(DeRefOf(arg1), i000, Local1) 696 CH06(arg0, 78, EXC0) 697 698 Multiply(i000, DeRefOf(arg1), Local1) 699 CH06(arg0, 79, EXC0) 700 701 // NAnd 702 703 NAnd(DeRefOf(arg1), i000, Local1) 704 CH06(arg0, 82, EXC0) 705 706 NAnd(i000, DeRefOf(arg1), Local1) 707 CH06(arg0, 83, EXC0) 708 709 // NOr 710 711 NOr(DeRefOf(arg1), i000, Local1) 712 CH06(arg0, 86, EXC0) 713 714 NOr(i000, DeRefOf(arg1), Local1) 715 CH06(arg0, 87, EXC0) 716 717 // Or 718 719 Or(DeRefOf(arg1), i000, Local1) 720 CH06(arg0, 90, EXC0) 721 722 Or(i000, DeRefOf(arg1), Local1) 723 CH06(arg0, 91, EXC0) 724 725 // ShiftLeft 726 727 ShiftLeft(DeRefOf(arg1), i000, Local1) 728 CH06(arg0, 94, EXC0) 729 730 ShiftLeft(i000, DeRefOf(arg1), Local1) 731 CH06(arg0, 95, EXC0) 732 733 // ShiftRight 734 735 ShiftRight(DeRefOf(arg1), i000, Local1) 736 CH06(arg0, 98, EXC0) 737 738 ShiftRight(i000, DeRefOf(arg1), Local1) 739 CH06(arg0, 99, EXC0) 740 741 // Subtract 742 743 Subtract(DeRefOf(arg1), i000, Local1) 744 CH06(arg0, 102, EXC0) 745 746 Subtract(i000, DeRefOf(arg1), Local1) 747 CH06(arg0, 103, EXC0) 748 749 // ToString 750 751 ToString(DeRefOf(arg1), 1, Local1) 752 CH06(arg0, 106, EXC0) 753 754 ToString(i000, DeRefOf(arg1), Local1) 755 CH06(arg0, 107, EXC0) 756 757 // Wait 758 759 Store(Wait(e000, DeRefOf(arg1)), Local1) 760 CH06(arg0, 109, EXC0) 761 762 // XOr 763 764 XOr(DeRefOf(arg1), i000, Local1) 765 CH06(arg0, 112, EXC0) 766 767 XOr(i000, DeRefOf(arg1), Local1) 768 CH06(arg0, 113, EXC0) 769 770 // Mid 771 772 Mid(DeRefOf(arg1), 1, 1, Local1) 773 CH06(arg0, 117, EXC0) 774 775 Mid("123", DeRefOf(arg1), 1, Local1) 776 CH06(arg0, 118, EXC0) 777 778 Mid("123", 1, DeRefOf(arg1), Local1) 779 CH06(arg0, 119, EXC0) 780 781 // Match 782 783 Store (Match(DeRefOf(arg1), MTR, 0, MTR, 0, 0), Local1) 784 CH06(arg0, 120, EXC0) 785 786 Store (Match(Package(){1}, MTR, DeRefOf(arg1), MTR, 0, 0), Local1) 787 CH06(arg0, 121, EXC0) 788 789 Store (Match(Package(){1}, MTR, 0, MTR, DeRefOf(arg1), 0), Local1) 790 CH06(arg0, 122, EXC0) 791 792 Store (Match(Package(){1}, MTR, 0, MTR, 0, DeRefOf(arg1)), Local1) 793 CH06(arg0, 123, EXC0) 794 795 return (0) 796 } 797 798 // Result of Method invocation 799 Method(m004, 1, Serialized) 800 { 801 Name(i000, 0) // Label to check m000 invocations 802 803 Method(m000) 804 { 805 CopyObject(dev0, Local0) 806 Return (Local0) 807 } 808 809 // CondRefOf 810 811 CondRefOf(m000(), Local1) 812 CH06(arg0, 1, 47) 813 814 // CopyObject 815 816 CopyObject(m000(), Local1) 817 CH03(ts, z098, 7, 0, 0) 818 819 // Decrement 820 821 Decrement(m000()) 822 CH06(arg0, 2, 47) 823 824 // DerefOf 825 826 Store (DerefOf(m000()), Local1) 827 CH06(arg0, 3, 47) 828 829 // FindSetLeftBit 830 831 FindSetLeftBit(m000(), Local1) 832 CH06(arg0, 5, 47) 833 834 // FindSetRightBit 835 836 FindSetRightBit(m000(), Local1) 837 CH06(arg0, 7, 47) 838 839 // FromBCD 840 841 FromBCD(m000(), Local1) 842 CH06(arg0, 9, 47) 843 844 // Increment 845 846 Increment(m000()) 847 CH06(arg0, 10, 47) 848 849 // LNot 850 851 Store (LNot(m000()), Local1) 852 CH06(arg0, 11, 47) 853 854 // Not 855 856 Not(m000(), Local1) 857 CH06(arg0, 13, 47) 858 859 // ObjectType 860 /* Nov. 2012: Method invocation as arg to ObjectType is now illegal */ 861// 862// ObjectType(m000()) 863// CH03(ts, z098, 8, 0, 0) 864 865 // RefOf 866 867 Store (RefOf(m000()), Local1) 868 CH06(arg0, 14, 47) 869 870 // Release 871 872 Release(m000()) 873 CH06(arg0, 13, 47) 874 875 // Reset 876 877 Reset(m000()) 878 CH06(arg0, 14, 47) 879 880 // Signal 881 882 Signal(m000()) 883 CH06(arg0, 15, 47) 884 885 // SizeOf 886 887 Store (SizeOf(m000()), Local1) 888 CH06(arg0, 16, 47) 889 890 // Sleep 891 892 Sleep(m000()) 893 CH06(arg0, 17, 47) 894 895 // Stall 896 897 Stall(m000()) 898 CH06(arg0, 18, 47) 899 900 // Store 901 902 Store(m000(), Local1) 903 CH06(arg0, 19, 47) 904 905 // ToBCD 906 907 ToBCD(m000(), Local1) 908 CH06(arg0, 21, 47) 909 910 // ToBuffer 911 912 ToBuffer(m000(), Local1) 913 CH06(arg0, 23, 47) 914 915 // ToDecimalString 916 917 ToDecimalString(m000(), Local1) 918 CH06(arg0, 25, 47) 919 920 // ToHexString 921 922 ToHexString(m000(), Local1) 923 CH06(arg0, 27, 47) 924 925 // ToInteger 926 927 ToInteger(m000(), Local1) 928 CH06(arg0, 29, 47) 929 930 // Acquire 931 932 Store(Acquire(m000(), 100), Local1) 933 CH06(arg0, 30, 47) 934 935 // Add 936 937 Add(m000(), i000, Local1) 938 CH06(arg0, 33, 47) 939 940 Add(i000, m000(), Local1) 941 CH06(arg0, 34, 47) 942 943 // And 944 945 And(m000(), i000, Local1) 946 CH06(arg0, 37, 47) 947 948 And(i000, m000(), Local1) 949 CH06(arg0, 38, 47) 950 951 // Concatenate 952 953 Concatenate(m000(), i000, Local1) 954 CH06(arg0, 41, 47) 955 956 Concatenate(i000, m000(), Local1) 957 CH06(arg0, 42, 47) 958 959 // ConcatenateResTemplate 960 961 ConcatenateResTemplate(m000(), ResourceTemplate(){}, Local1) 962 CH06(arg0, 45, 47) 963 964 ConcatenateResTemplate(ResourceTemplate(){}, m000(), Local1) 965 CH06(arg0, 46, 47) 966 967 // Divide 968 969 Divide(m000(), i000, Local2) 970 CH06(arg0, 49, 47) 971 972 Divide(i000, m000(), Local2) 973 CH06(arg0, 50, 47) 974 975 Divide(m000(), i000, Local2, Local1) 976 CH06(arg0, 51, 47) 977 978 Divide(i000, m000(), Local2, Local1) 979 CH06(arg0, 52, 47) 980 981 // Fatal 982 983 Fatal(0xff, 0xffffffff, m000()) 984 CH06(arg0, 53, 47) 985 986 // Index 987 988 Index(m000(), 0, Local1) 989 CH06(arg0, 56, 47) 990 991 Index("0", m000(), Local1) 992 CH06(arg0, 57, 47) 993 994 // LEqual 995 996 Store (LEqual(m000(), i000), Local1) 997 CH06(arg0, 58, 47) 998 999 Store (LEqual(i000, m000()), Local1) 1000 CH06(arg0, 59, 47) 1001 1002 // LGreater 1003 1004 Store (LGreater(m000(), i000), Local1) 1005 CH06(arg0, 60, 47) 1006 1007 Store (LGreater(i000, m000()), Local1) 1008 CH06(arg0, 61, 47) 1009 1010 // LGreaterEqual 1011 1012 Store (LGreaterEqual(m000(), i000), Local1) 1013 CH06(arg0, 62, 0xff) 1014 1015 Store (LGreaterEqual(i000, m000()), Local1) 1016 CH06(arg0, 63, 0xff) 1017 1018 // LLess 1019 1020 Store (LLess(m000(), i000), Local1) 1021 CH06(arg0, 64, 47) 1022 1023 Store (LLess(i000, m000()), Local1) 1024 CH06(arg0, 65, 47) 1025 1026 // LLessEqual 1027 1028 Store (LLessEqual(m000(), i000), Local1) 1029 CH06(arg0, 66, 0xff) 1030 1031 Store (LLessEqual(i000, m000()), Local1) 1032 CH06(arg0, 67, 0xff) 1033 1034 // LNotEqual 1035 1036 Store (LNotEqual(m000(), i000), Local1) 1037 CH06(arg0, 68, 0xff) 1038 1039 Store (LNotEqual(i000, m000()), Local1) 1040 CH06(arg0, 69, 0xff) 1041 1042 // LOr 1043 1044 Store (LOr(m000(), i000), Local1) 1045 CH06(arg0, 70, 47) 1046 1047 Store (LOr(i000, m000()), Local1) 1048 CH06(arg0, 71, 47) 1049 1050 // Mod 1051 1052 Mod(m000(), i000, Local1) 1053 CH06(arg0, 74, 47) 1054 1055 Mod(i000, m000(), Local1) 1056 CH06(arg0, 75, 47) 1057 1058 // Multiply 1059 1060 Multiply(m000(), i000, Local1) 1061 CH06(arg0, 78, 47) 1062 1063 Multiply(i000, m000(), Local1) 1064 CH06(arg0, 79, 47) 1065 1066 // NAnd 1067 1068 NAnd(m000(), i000, Local1) 1069 CH06(arg0, 82, 47) 1070 1071 NAnd(i000, m000(), Local1) 1072 CH06(arg0, 83, 47) 1073 1074 // NOr 1075 1076 NOr(m000(), i000, Local1) 1077 CH06(arg0, 86, 47) 1078 1079 NOr(i000, m000(), Local1) 1080 CH06(arg0, 87, 47) 1081 1082 // Or 1083 1084 Or(m000(), i000, Local1) 1085 CH06(arg0, 90, 47) 1086 1087 Or(i000, m000(), Local1) 1088 CH06(arg0, 91, 47) 1089 1090 // ShiftLeft 1091 1092 ShiftLeft(m000(), i000, Local1) 1093 CH06(arg0, 94, 47) 1094 1095 ShiftLeft(i000, m000(), Local1) 1096 CH06(arg0, 95, 47) 1097 1098 // ShiftRight 1099 1100 ShiftRight(m000(), i000, Local1) 1101 CH06(arg0, 98, 47) 1102 1103 ShiftRight(i000, m000(), Local1) 1104 CH06(arg0, 99, 47) 1105 1106 // Subtract 1107 1108 Subtract(m000(), i000, Local1) 1109 CH06(arg0, 102, 47) 1110 1111 Subtract(i000, m000(), Local1) 1112 CH06(arg0, 103, 47) 1113 1114 // ToString 1115 1116 ToString(m000(), 1, Local1) 1117 CH06(arg0, 106, 47) 1118 1119 ToString(i000, m000(), Local1) 1120 CH06(arg0, 107, 47) 1121 1122 // Wait 1123 1124 Store(Wait(m000(), i000), Local1) 1125 CH06(arg0, 108, 47) 1126 1127 Store(Wait(e000, m000()), Local1) 1128 CH06(arg0, 109, 47) 1129 1130 // XOr 1131 1132 XOr(m000(), i000, Local1) 1133 CH06(arg0, 112, 47) 1134 1135 XOr(i000, m000(), Local1) 1136 CH06(arg0, 113, 47) 1137 1138 // Mid 1139 1140 Mid(m000(), 1, 1, Local1) 1141 CH06(arg0, 117, 47) 1142 1143 Mid("123", m000(), 1, Local1) 1144 CH06(arg0, 118, 47) 1145 1146 Mid("123", 1, m000(), Local1) 1147 CH06(arg0, 119, 47) 1148 1149 // Match 1150 1151 Store (Match(m000(), MTR, 0, MTR, 0, 0), Local1) 1152 CH06(arg0, 120, 47) 1153 1154 Store (Match(Package(){1}, MTR, m000(), MTR, 0, 0), Local1) 1155 CH06(arg0, 121, 47) 1156 1157 Store (Match(Package(){1}, MTR, 0, MTR, m000(), 0), Local1) 1158 CH06(arg0, 122, 47) 1159 1160 Store (Match(Package(){1}, MTR, 0, MTR, 0, m000()), Local1) 1161 CH06(arg0, 123, 47) 1162 } 1163 1164 // Reference to Object as Result of Method invocation 1165 Method(m005, 1, Serialized) 1166 { 1167 Device(dev2) {} 1168 1169 Name(i000, 0) // Label to check m000 invocations 1170 1171 Method(m000, 2) 1172 { 1173 Store(arg0, i000) 1174 if (LEqual(arg1, 0)) { 1175 Store(Refof(dev0), Local0) 1176 } elseif (LEqual(arg1, 1)) { 1177 Store(Refof(dev2), Local0) 1178 } 1179 Return (Local0) 1180 } 1181 1182 Method(CH00, 2) 1183 { 1184 if (LNotEqual(i000, arg1)) { 1185 err(arg0, z098, 0, 0, 0, i000, arg1) 1186 } 1187 } 1188 1189 Name(lpN0, 2) 1190 Name(lpC0, 0) 1191 1192 While (lpN0) { 1193 Multiply(3, lpC0, Local0) 1194 1195 Store(0, i000) 1196 1197 Store (DerefOf(m000(1, lpC0)), Local1) 1198 CH03(ts, z098, Add(9, lpC0), 0, 0) 1199 CH00(arg0, 1) 1200 1201 Store (DerefOf(DerefOf(m000(2, lpC0))), Local1) 1202 CH06(arg0, Add(1, Local0), 47) 1203 CH00(arg0, 2) 1204 1205 Store (Index(DerefOf(m000(3, lpC0)), 0), Local1) 1206 CH06(arg0, Add(2, Local0), 47) 1207 CH00(arg0, 3) 1208 1209 Store (Match(DerefOf(m000(4, lpC0)), MTR, 0, MTR, 0, 0), Local1) 1210 CH06(arg0, Add(3, Local0), 47) 1211 CH00(arg0, 4) 1212 1213 Decrement(lpN0) 1214 Increment(lpC0) 1215 } 1216 } 1217 1218 CH03(ts, z098, 11, 0, 0) 1219 1220 // Local Named Object 1221// m000(ts) 1222 1223 // Global Named Object 1224// m001(ts) 1225 1226 // Local 1227 m002(Concatenate(ts, "-m002")) 1228 1229 // Reference to Local Named Object 1230 1231 m003(Concatenate(ts, "-m003-RefLocName"), RefOf(dev1), 1) 1232 1233 Store(RefOf(dev1), Local0) 1234 m003(Concatenate(ts, "-m003-RefLocName2"), Local0, 1) 1235 1236 CondRefOf(dev1, Local0) 1237 m003(Concatenate(ts, "-m003-CondRefLocName"), Local0, 1) 1238 1239 m003(Concatenate(ts, "-m003-RefGlobName"), RefOf(dev0), 1) 1240 1241 Store(RefOf(dev0), Local0) 1242 m003(Concatenate(ts, "-m003-RefGlobName2"), Local0, 1) 1243 1244 CondRefOf(dev0, Local0) 1245 m003(Concatenate(ts, "-m003-CondRefGlobName"), Local0, 1) 1246 1247 // Reference to Object as element of Package 1248 1249 Name(pp00, Package(){dev0}) 1250 1251 if (y113) { 1252 m003(Concatenate(ts, "-m003-Index"), Index(pp00, 0), 0) 1253 } 1254 1255 Store(Index(pp00, 0), Local1) 1256 m003(Concatenate(ts, "-m003-Index2"), Local1, 0) 1257 1258 if (y113) { 1259 m003(Concatenate(ts, "-m003-Index3"), Index(pp00, 0, Local2), 0) 1260 } 1261 1262 Index(pp00, 0, Local3) 1263 m003(Concatenate(ts, "-m003-Index4"), Local3, 0) 1264 1265 Store(Index(pp00, 0, Local4), Local5) 1266 m003(Concatenate(ts, "-m003-Index5"), Local5, 0) 1267 1268 // Result of Method invocation 1269 m004(Concatenate(ts, "-m004")) 1270 1271 // Reference to Object as Result of Method invocation 1272 m005(Concatenate(ts, "-m005")) 1273} 1274