1/* 2 * Some or all of this work - Copyright (c) 2006 - 2021, 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 * Accumulate features which don't work on MS 31 * 32 * This should help to adapt tests to MS 33 * 34 * Stuff not working under MS: 35 * 36 * 1) Mod 37 * 2) Concatenate 38 * 3) CopyObject 39 * 4) POUT - is restricted by abbu, apparently, by byte-size(!), 40 * not by the number of elements (!), and ABBU reports Failure in 41 * that case not distinguishable from failures of MS being examined. 42 * 5) Return (Add(i000, m001())) -- !! but this works: Return (Add(Local7, m006())) 43 * 6) Arg instead of i000 (in m001): 44 * Store(0x07000000, arg1) 45 * Return (Add(arg1, m007())) 46 * 7) LNotEqual(bf00, 0x80) : bf00 - Buffer Field 47 * 48 * 8) (?) Buffer Field by arg -- doesn't work (?) (see xxx) 49 * 9) Field passed by arg -- doesn't work (see m30c) 50 * 10) Bank Field passed by arg -- doesn't work (see m30d): 51 * 11) Index Field passed by arg -- doesn't work (see m30e): 52 * 53 * 12) write access to element of String by Index/DerefOf 54 * 13) Stack overflow on about 10-12 method calls depth, 55 * call methods chain is restricted by ~11 56 * 14) Named element of Package is, perhaps, not implemented by MS, 57 * i000 in Package(){i000} is, on MS, the same as Package(){"i000"}, 58 * (see ns1.asl for example). 59 * 15) Stack (resource) overflow depends very much on other 60 * reasons, not only the depth of method calls. 61 * So, trying to wrap methods of ns0.asl into one parent method 62 * decreases the available number of levels by more than 4 levels. 63 * 16) Internal objects of methods on MS consume some internal 64 * resources of ACPI MS interpreter. Pulling some internal objects 65 * of that method helps to prevent breakage of MS interpreter. 66 */ 67 68Name(z161, 161) 69 70/* 71 * Named Integer i000 72 */ 73 74/* 75 * CopyObject 76 * 77 * fail 78 */ 79Method(mf00,, Serialized) 80{ 81 Name(ts, "mf00") 82 Name(i000, 0xabcd0000) 83 Name(i001, 0xabcd0001) 84 85 /* Breaks on this command itself */ 86 CopyObject(i000, i001) 87 88 if (chk0) { 89 if (LNotEqual(i001, 0xabcd0000)) { 90 err(ts, z161, __LINE__, 0, 0, i001, 0xabcd0000) 91 } 92 } 93 94 Return(POUT) 95} 96 97/* 98 * Concatenate 99 * 100 * success/fail 101 */ 102Method(mf01,, Serialized) 103{ 104 Name(ts, "mf01") 105 Name(s000, "qwertyuiop") 106 Name(s001, "_sdfghjkl") 107 108 /* Doesn't break on this command itself */ 109 Concatenate(s000, s001, Local0) 110 111 OUTP(Local0) 112 113 if (chk0) { 114 /* This LNotEqual breaks */ 115 if (LNotEqual(Local0, "qwertyuiop_sdfghjkl")) { 116 err(ts, z161, __LINE__, 0, 0, Local0, "qwertyuiop_sdfghjkl") 117 } 118 } 119 120 Return(POUT) 121} 122 123/* 124 * LEqual of Strings 125 * 126 * fail 127 */ 128Method(mf02,, Serialized) 129{ 130 Name(ts, "mf02") 131 Name(s000, "qwertyuiop") 132 Name(s001, "_sdfghjkl") 133 134 Store(LEqual("qwerty", "sdfghj"), Local3) 135 136 if (chk0) { 137 /* This LNotEqual breaks */ 138 if (LEqual("qwerty", "sdfghj")) { 139 err(ts, z161, __LINE__, 0, 0, "qwerty", "sdfghj") 140 } 141 } 142 143 Return(POUT) 144} 145 146/* 147 * Return (Add(i000, m001())) 148 * 149 * success 150 */ 151Method(mf03,, Serialized) 152{ 153 Name(ts, "mf03") 154 Name(i000, 0x12340001) 155 156 Method(m000) 157 { 158 Method(m001) 159 { 160 Method(m002) 161 { 162 Return (1) 163 } 164 Return (Add(i000, m002())) 165 } 166 Return (Add(i000, m001())) 167 } 168 169 m000() 170 171 if (chk1) { 172 Store(m000(), Local0) 173 if (LNotEqual(Local0, 0x24680003)) { 174 err(ts, z161, __LINE__, 0, 0, Local0, 0x24680003) 175 } 176 } 177 178 Return(POUT) 179} 180 181/* 182 * Store to uninitialized ArgX (no value passed by that ArgX) 183 * 184 * Store(0x00001000, arg6) 185 * Return (Add(arg6, m007())) 186 * 187 * fail 188 */ 189Method(mf04,, Serialized) 190{ 191 Name(ts, "mf04") 192 Name(i000, 0xabcd0000) 193 194 Method(m000) 195 { 196 Store(0x00001001, arg6) 197 Return (Add(arg6, 5)) 198 } 199 200 Method(m001) 201 { 202 // With this line commented works: 203 // Store(0x00001001, arg6) 204 205 Store(0x00001001, arg6) 206 207 // Doesn't work: 208 // Return (Add(arg6, 5)) 209 // Return (0) 210 } 211 212 m001() 213 214 if (chk0) { 215 Store(m000(), Local0) 216 if (LNotEqual(Local0, 0x1006)) { 217 err(ts, z161, __LINE__, 0, 0, Local0, 0x1006) 218 } 219 CH03(ts, z161, 0x00b, __LINE__, 0) 220 } 221 222 Return(POUT) 223} 224 225/* 226 * Store to initialized ArgX (ArgX is passed with Constant Integer) 227 * 228 * Store(0x00001000, arg0) 229 * Return (Add(arg0, m007(0xabcd0000))) 230 * 231 * succeeded 232 */ 233Method(mf05,, Serialized) 234{ 235 Name(ts, "mf05") 236 237 Method(m000, 1) 238 { 239 Store(0x00001001, arg0) 240 Return (Add(arg0, 5)) 241 } 242 243 m000(0xabcd0000) 244 245 if (chk1) { 246 Store(m000(0xabcd0000), Local0) 247 if (LNotEqual(Local0, 0x1006)) { 248 err(ts, z161, __LINE__, 0, 0, Local0, 0x1006) 249 } 250 } 251 252 Return(POUT) 253} 254 255/* 256 * Store to initialized ArgX (ArgX is passed with Named Integer) 257 * 258 * Store(0x00001000, arg0) 259 * Return (Add(arg0, m007(i000))) 260 * 261 * succeeded 262 */ 263Method(mf06,, Serialized) 264{ 265 Name(ts, "mf06") 266 Name(i000, 0xabcd0000) 267 268 Method(m000, 1) 269 { 270 Store(0x00001001, arg0) 271 Return (Add(arg0, 5)) 272 } 273 274 Store(m000(i000), Local0) 275 276 if (chk1) { 277 if (LNotEqual(Local0, 0x1006)) { 278 err(ts, z161, __LINE__, 0, 0, Local0, 0x1006) 279 } 280 if (LNotEqual(i000, 0xabcd0000)) { 281 err(ts, z161, __LINE__, 0, 0, i000, 0xabcd0000) 282 } 283 } 284 285 Return(POUT) 286} 287 288/* 289 * Store to initialized ArgX (ArgX is passed with Integer by LocalX) 290 * 291 * Store(0x00001000, arg0) 292 * Return (Add(arg0, m007(i000))) 293 * 294 * succeeded 295 */ 296Method(mf07,, Serialized) 297{ 298 Name(ts, "mf07") 299 300 Method(m000, 1) 301 { 302 Store(0x00001001, arg0) 303 Return (Add(arg0, 5)) 304 } 305 306 Store(0xabcd0000, Local7) 307 Store(m000(Local7), Local0) 308 309 if (chk1) { 310 if (LNotEqual(Local0, 0x1006)) { 311 err(ts, z161, __LINE__, 0, 0, Local0, 0x1006) 312 } 313 if (LNotEqual(Local7, 0xabcd0000)) { 314 err(ts, z161, __LINE__, 0, 0, Local7, 0xabcd0000) 315 } 316 } 317 318 Return(POUT) 319} 320 321/* 322 * LNotEqual(bf00, 0x80) 323 * bf00 -- Buffer Field 324 * 325 * fail 326 */ 327Method(mf08,, Serialized) 328{ 329 Name(ts, "mf08") 330 Name(pr, 1) 331 Name(i001, 0) 332 Name(b000, Buffer(9) {0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}) 333 CreateField(b000, 0, 8, bf00) 334 335 // Doesn't work 336 Store(LNotEqual(bf00, 0x80), Local3) 337 338 if (chk0) { 339 340 // Works 341 Store(bf00, Local0) 342 343 // Doesn't work (!) too: 344 Store(LNotEqual(Local0, 0x80), Local3) 345 346 // Doesn't work (!) too: 347 Store(Local0, Local1) 348 Store(LNotEqual(Local1, 0x80), Local3) 349 350 // Works 351 if (pr) { 352 OUTP(Local0) 353 OUTP(bf00) 354 } 355 356 // Works 357 Store(0x80, bf00) 358 359 // Works 360 if (pr) { 361 // There is ok: 362 OUTP(bf00) 363 } 364 365 Store(0x80, bf00) 366 367 if (LNotEqual(bf00, Buffer(){0x80})) { 368 err(ts, z161, __LINE__, 0, 0, bf00, Buffer(){0x80}) 369 } 370 371 } /* if(chk0) */ 372 373 Return(POUT) 374} 375 376/* 377 * Write access to element of String by Index operator 378 * 379 * fail 380 */ 381Method(mf09,, Serialized) 382{ 383 Name(ts, "mf09") 384 Name(s000, "qqqqqqqqqqqqqq") 385 386 Store(0x38, Index(s000, 0)) 387 388 if (chk0) { 389 Store(DerefOf(Index(s000, 0)), Local0) 390 if (LNotEqual(Local0, 0x38)) { 391 err(ts, z161, __LINE__, 0, 0, Local0, 0x38) 392 } 393 } 394 395 Return(POUT) 396} 397 398/* 399 * Field passed by agrX doesn't work 400 * 401 * success 402 */ 403Method(mf0a,, Serialized) 404{ 405 Name(ts, "mf0a") 406 OperationRegion(r000, SystemMemory, 0x100, 0x100) 407 Field(r000, ByteAcc, NoLock, Preserve) { f000, 32 } 408 409 Method(m000, 1) 410 { 411 Method(m001, 1) 412 { 413 Store(0x00000020, arg0) 414 Return (Add(arg0, 5)) 415 } 416 417 Add(arg0, 1, Local0) 418 419 Store(Local0, arg0) 420 Store(Add(arg0, m001(arg0)), Local0) 421 422 Return (Local0) 423 } 424 425 Method(m001, 1) 426 { 427 Method(m001, 1) 428 { 429 Return (Add(arg0, 5)) 430 } 431 432 Store(Add(arg0, m001(arg0)), Local0) 433 434 Return (Local0) 435 } 436 437 Store(0x12345678, f000) 438 Store(m000(f000), Local0) 439 if (chk1) { 440 if (LNotEqual(Local0, 0x1234569e)) { 441 err(ts, z161, __LINE__, 0, 0, Local0, 0x1234569e) 442 } 443 if (LNotEqual(f000, 0x12345678)) { 444 err(ts, z161, __LINE__, 0, 0, f000, 0x12345678) 445 } 446 } 447 448 Store(0x12345675, f000) 449 Store(m001(f000), Local0) 450 if (chk1) { 451 if (LNotEqual(Local0, 0x2468acef)) { 452 err(ts, z161, __LINE__, 0, 0, Local0, 0x2468acef) 453 } 454 if (LNotEqual(f000, 0x12345675)) { 455 err(ts, z161, __LINE__, 0, 0, f000, 0x12345675) 456 } 457 } 458 459 Return(POUT) 460} 461 462/* 463 * Bank Field passed by agrX doesn't work 464 * 465 * succeeded 466 */ 467Method(mf0b,, Serialized) 468{ 469 Name(ts, "mf0b") 470 OperationRegion(r000, SystemMemory, 0x100, 0x100) 471 Field(r000, ByteAcc, NoLock, Preserve) { f000,32, f001,32 } 472 BankField(r000, f001, 0, ByteAcc, NoLock, Preserve) { bnk0, 32 } 473 474 Method(m000, 1) 475 { 476 Method(m001, 1) 477 { 478 Store(0x00000020, arg0) 479 Return (Add(arg0, 5)) 480 } 481 482 Add(arg0, 1, Local0) 483 484 Store(Local0, arg0) 485 Store(Add(arg0, m001(arg0)), Local0) 486 487 Return (Local0) 488 } 489 490 Method(m001, 1) 491 { 492 Method(m001, 1) 493 { 494 Return (Add(arg0, 5)) 495 } 496 497 Store(Add(arg0, m001(arg0)), Local0) 498 499 Return (Local0) 500 } 501 502 Store(0x12345678, bnk0) 503 Store(m000(bnk0), Local0) 504 if (chk1) { 505 if (LNotEqual(Local0, 0x1234569e)) { 506 err(ts, z161, __LINE__, 0, 0, Local0, 0x1234569e) 507 } 508 if (LNotEqual(bnk0, 0x12345678)) { 509 err(ts, z161, __LINE__, 0, 0, bnk0, 0x12345678) 510 } 511 } 512 513 Store(0x12345675, bnk0) 514 Store(m001(bnk0), Local0) 515 if (chk1) { 516 if (LNotEqual(Local0, 0x2468acef)) { 517 err(ts, z161, __LINE__, 0, 0, Local0, 0x2468acef) 518 } 519 if (LNotEqual(bnk0, 0x12345675)) { 520 err(ts, z161, __LINE__, 0, 0, bnk0, 0x12345675) 521 } 522 } 523 524 Return(POUT) 525} 526 527/* 528 * Index Field passed by agrX doesn't work 529 * 530 * succeeded 531 */ 532Method(mf0c,, Serialized) 533{ 534 Name(ts, "mf0c") 535 OperationRegion(r000, SystemMemory, 0x100, 0x100) 536 Field(r000, ByteAcc, NoLock, Preserve) { f000,32, f001,32 } 537 IndexField(f000, f001, ByteAcc, NoLock, Preserve) { if00, 32 } 538 539 Method(m000, 1) 540 { 541 Method(m001, 1) 542 { 543 Store(0x00000020, arg0) 544 Return (Add(arg0, 5)) 545 } 546 547 Add(arg0, 1, Local0) 548 549 Store(Local0, arg0) 550 Store(Add(arg0, m001(arg0)), Local0) 551 552 Return (Local0) 553 } 554 555 Method(m001, 1) 556 { 557 Method(m001, 1) 558 { 559 Return (Add(arg0, 5)) 560 } 561 562 Store(Add(arg0, m001(arg0)), Local0) 563 564 Return (Local0) 565 } 566 567 Store(0x12345678, if00) 568 Store(m000(if00), Local0) 569 if (chk1) { 570 if (LNotEqual(Local0, 0x12121238)) { 571 err(ts, z161, __LINE__, 0, 0, Local0, 0x12121238) 572 } 573 if (LNotEqual(if00, 0x12121212)) { 574 err(ts, z161, __LINE__, 0, 0, if00, 0x12121212) 575 } 576 } 577 578 Store(0x12345675, if00) 579 Store(m001(if00), Local0) 580 if (chk1) { 581 if (LNotEqual(Local0, 0x24242429)) { 582 err(ts, z161, __LINE__, 0, 0, Local0, 0x24242429) 583 } 584 if (LNotEqual(if00, 0x12121212)) { 585 err(ts, z161, __LINE__, 0, 0, if00, 0x12121212) 586 } 587 } 588 589 Return(POUT) 590} 591 592/* 593 * Buffer Field passed by agrX 594 * 595 * fail 596 */ 597Method(mf0d,, Serialized) 598{ 599 Name(ts, "mf0d") 600 Name(b000, Buffer(16) {}) 601 CreateField(b000, 5, 32, bf00) 602 603 Method(m000, 1) 604 { 605 Method(m001, 1) 606 { 607 Store(0x00000020, arg0) 608 Return (Add(arg0, 5)) 609 } 610 611 Add(arg0, 1, Local0) 612 613 Store(Local0, arg0) 614 Store(Add(arg0, m001(arg0)), Local0) 615 616 Return (Local0) 617 } 618 619 Store(0x12345678, bf00) 620 Store(m000(bf00), Local0) 621 if (chk0) { 622 if (LNotEqual(Local0, 0x1234569e)) { 623 err(ts, z161, __LINE__, 0, 0, Local0, 0x1234569e) 624 } 625 if (LNotEqual(bf00, Buffer(){0x78, 0x56, 0x34, 0x12})) { 626 err(ts, z161, __LINE__, 0, 0, bf00, Buffer(){0x78, 0x56, 0x34, 0x12}) 627 } 628 } 629 630 Return(POUT) 631} 632 633/* 634 * Buffer Field passed by agrX 635 * 636 * fail 637 */ 638Method(mf0e,, Serialized) 639{ 640 Name(ts, "mf0e") 641 Name(b000, Buffer(16) {}) 642 CreateField(b000, 5, 32, bf00) 643 644 Method(m001, 1) 645 { 646 Method(m001, 1) 647 { 648 Return (Add(arg0, 5)) 649 } 650 651 Store(Add(arg0, m001(arg0)), Local0) 652 653 Return (Local0) 654 } 655 656 Store(0x12345675, bf00) 657 Store(m001(bf00), Local0) 658 if (chk0) { 659 if (LNotEqual(Local0, 0x2468acef)) { 660 err(ts, z161, __LINE__, 0, 0, Local0, 0x2468acef) 661 } 662 if (LNotEqual(bf00, Buffer(){0x75, 0x56, 0x34, 0x12})) { 663 err(ts, z161, __LINE__, 0, 0, bf00, Buffer(){0x75, 0x56, 0x34, 0x12}) 664 } 665 } 666 667 Return(POUT) 668} 669 670/* 671 * Buffer Field passed by agrX 672 * 673 * fail 674 */ 675Method(mf0f,, Serialized) 676{ 677 Name(ts, "mf0f") 678 Name(b000, Buffer(16) {}) 679 CreateField(b000, 5, 32, bf00) 680 681 Method(m000, 1) 682 { 683 Method(m001, 1) 684 { 685 Store(0x00000020, arg0) 686 Return (Add(arg0, 5)) 687 } 688 689 Add(arg0, 1, Local0) 690 691 Store(Local0, arg0) 692 Store(Add(arg0, m001(arg0)), Local0) 693 694 Return (Local0) 695 } 696 697 Method(m001, 1) 698 { 699 Method(m001, 1) 700 { 701 Return (Add(arg0, 5)) 702 } 703 704 Store(Add(arg0, m001(arg0)), Local0) 705 706 Return (Local0) 707 } 708 709 Store(0x12345678, bf00) 710 Store(m000(bf00), Local0) 711 if (chk0) { 712 if (LNotEqual(Local0, 0x1234569e)) { 713 err(ts, z161, __LINE__, 0, 0, Local0, 0x1234569e) 714 } 715 if (LNotEqual(bf00, Buffer(){0x78, 0x56, 0x34, 0x12})) { 716 err(ts, z161, __LINE__, 0, 0, bf00, Buffer(){0x78, 0x56, 0x34, 0x12}) 717 } 718 } 719 720 Store(0x12345675, bf00) 721 Store(m001(bf00), Local0) 722 if (chk0) { 723 if (LNotEqual(Local0, 0x2468acef)) { 724 err(ts, z161, __LINE__, 0, 0, Local0, 0x2468acef) 725 } 726 if (LNotEqual(bf00, Buffer(){0x75, 0x56, 0x34, 0x12})) { 727 err(ts, z161, __LINE__, 0, 0, bf00, Buffer(){0x75, 0x56, 0x34, 0x12}) 728 } 729 } 730 731 Return(POUT) 732} 733 734/* 735 * Buffer Field passed by agrX 736 * 737 * fail 738 */ 739Method(mf10,, Serialized) 740{ 741 Name(ts, "mf10") 742 Name(b000, Buffer(16) {}) 743 CreateField(b000, 0, 32, bf00) 744 745 Method(m000, 1) 746 { 747 Return (arg0) 748 } 749 750 // Ok 751 OUTP(b000) 752 753 // This write works correctly: 754 Store(0x12345678, bf00) 755 756 // Succeeds: 757 Store(m000(bf00), Local0) 758 759 // Breaks: 760 // LNotEqual(Local0, 0x12345678) 761 762 // Breaks: 763 // Add(Local0, 0) 764 765 // Breaks: 766 // Add(bf00, 0) 767 768 // Ok 769 OUTP(b000) 770 771 if (LNotEqual(Local0, Buffer(){0x78, 0x56, 0x34, 0x12})) { 772 err(ts, z161, __LINE__, 0, 0, Local0, Buffer(){0x78, 0x56, 0x34, 0x12}) 773 } 774 if (LNotEqual(bf00, Buffer(){0x78, 0x56, 0x34, 0x12})) { 775 err(ts, z161, __LINE__, 0, 0, bf00, Buffer(){0x78, 0x56, 0x34, 0x12}) 776 } 777 778 Return(POUT) 779} 780 781/* 782 * LEqual of Buffers 783 * 784 * fail 785 */ 786Method(mf11,, Serialized) 787{ 788 Name(ts, "mf11") 789 Name(b000, Buffer(4) {0x10, 0x11, 0x12, 0x13}) 790 Name(b001, Buffer(4) {0x10, 0x11, 0x12, 0x13}) 791 792 Store(LEqual(b000, b001), Local3) 793 794 Return(POUT) 795} 796 797/* 798 * Method calculation stack overflow 799 * 800 * If remove one level the test succeeds 801 * 802 * fail 803 */ 804Method(mf12,, Serialized) 805{ 806 Name(ts, "mf12") 807 808 Name(i000, 0) 809 Name(i001, 0) 810 Name(i002, 0) 811 Name(i003, 0) 812 Name(i004, 0) 813 Name(i005, 0) 814 Name(i006, 0) 815 Name(i007, 0) 816 Name(i008, 0) 817 Name(i009, 0) 818 Name(i00a, 0) 819 Name(i00b, 0) 820 Name(i00c, 0) 821 822 Method(m000) 823 { 824 Method(m001) 825 { 826 Method(m002) 827 { 828 Method(m003) 829 { 830 Method(m004) 831 { 832 Method(m005) 833 { 834 Method(m006) 835 { 836 Method(m007) 837 { 838 Method(m008) 839 { 840 Method(m009) 841 { 842 Method(m00a) 843 { 844 Method(m00b) 845 { 846 Method(m00c) 847 { 848 Store(0xabcd000c, i00c) 849 } 850 Store(0xabcd000b, i00b) 851 m00c() 852 } 853 Store(0xabcd000a, i00a) 854 m00b() 855 } 856 Store(0xabcd0009, i009) 857 m00a() 858 } 859 Store(0xabcd0008, i008) 860 m009() 861 } 862 Store(0xabcd0007, i007) 863 m008() 864 } 865 Store(0xabcd0006, i006) 866 m007() 867 } 868 Store(0xabcd0005, i005) 869 m006() 870 } 871 Store(0xabcd0004, i004) 872 m005() 873 } 874 Store(0xabcd0003, i003) 875 m004() 876 } 877 Store(0xabcd0002, i002) 878 m003() 879 } 880 Store(0xabcd0001, i001) 881 m002() 882 } 883 Store(0xabcd0000, i000) 884 m001() 885 } 886 887 /* 888 * If remove one level the test succeeds 889 */ 890 m000() 891 892 if (LNotEqual(i000, 0xabcd0000)) { 893 err(ts, z161, __LINE__, 0, 0, i000, 0xabcd0000) 894 } 895 if (LNotEqual(i001, 0xabcd0001)) { 896 err(ts, z161, __LINE__, 0, 0, i001, 0xabcd0001) 897 } 898 if (LNotEqual(i002, 0xabcd0002)) { 899 err(ts, z161, __LINE__, 0, 0, i002, 0xabcd0002) 900 } 901 if (LNotEqual(i003, 0xabcd0003)) { 902 err(ts, z161, __LINE__, 0, 0, i003, 0xabcd0003) 903 } 904 if (LNotEqual(i004, 0xabcd0004)) { 905 err(ts, z161, __LINE__, 0, 0, i004, 0xabcd0004) 906 } 907 if (LNotEqual(i005, 0xabcd0005)) { 908 err(ts, z161, __LINE__, 0, 0, i005, 0xabcd0005) 909 } 910 if (LNotEqual(i006, 0xabcd0006)) { 911 err(ts, z161, __LINE__, 0, 0, i006, 0xabcd0006) 912 } 913 if (LNotEqual(i007, 0xabcd0007)) { 914 err(ts, z161, __LINE__, 0, 0, i007, 0xabcd0007) 915 } 916 if (LNotEqual(i008, 0xabcd0008)) { 917 err(ts, z161, __LINE__, 0, 0, i008, 0xabcd0008) 918 } 919 if (LNotEqual(i009, 0xabcd0009)) { 920 err(ts, z161, __LINE__, 0, 0, i009, 0xabcd0009) 921 } 922 if (LNotEqual(i00a, 0xabcd000a)) { 923 err(ts, z161, __LINE__, 0, 0, i00a, 0xabcd000a) 924 } 925 if (LNotEqual(i00b, 0xabcd000b)) { 926 err(ts, z161, __LINE__, 0, 0, i00b, 0xabcd000b) 927 } 928 if (LNotEqual(i00c, 0xabcd000c)) { 929 err(ts, z161, __LINE__, 0, 0, i00c, 0xabcd000c) 930 } 931 932 Return(POUT) 933} 934 935/* 936 * Method calculation stack overflow 937 * 938 * If remove one level the test succeeds 939 * 940 * fail 941 */ 942Method(mf13,, Serialized) 943{ 944 Name(ts, "mf13") 945 946 Name(i000, 0) 947 Name(i001, 0) 948 Name(i002, 0) 949 Name(i003, 0) 950 Name(i004, 0) 951 Name(i005, 0) 952 Name(i006, 0) 953 Name(i007, 0) 954 Name(i008, 0) 955 Name(i009, 0) 956 Name(i00a, 0) 957 Name(i00b, 0) 958 Name(i00c, 0) 959 Name(i00d, 0) 960 Name(i00e, 0) 961 Name(i00f, 0) 962 Name(i010, 0) 963 964 965 Method(m000) 966 { 967 Store(0xabcd0000, i000) 968 } 969 Method(m001) 970 { 971 Store(0xabcd0001, i001) 972 m000() 973 } 974 Method(m002) 975 { 976 Store(0xabcd0002, i002) 977 m001() 978 } 979 Method(m003) 980 { 981 Store(0xabcd0003, i003) 982 m002() 983 } 984 Method(m004) 985 { 986 Store(0xabcd0004, i004) 987 m003() 988 } 989 Method(m005) 990 { 991 Store(0xabcd0005, i005) 992 m004() 993 } 994 Method(m006) 995 { 996 Store(0xabcd0006, i006) 997 m005() 998 } 999 Method(m007) 1000 { 1001 Store(0xabcd0007, i007) 1002 m006() 1003 } 1004 Method(m008) 1005 { 1006 Store(0xabcd0008, i008) 1007 m007() 1008 } 1009 Method(m009) 1010 { 1011 Store(0xabcd0009, i009) 1012 m008() 1013 } 1014 Method(m00a) 1015 { 1016 Store(0xabcd000a, i00a) 1017 m009() 1018 } 1019 Method(m00b) 1020 { 1021 Store(0xabcd000b, i00b) 1022 m00a() 1023 } 1024 Method(m00c) 1025 { 1026 Store(0xabcd000c, i00c) 1027 m00b() 1028 } 1029 Method(m00d) 1030 { 1031 Store(0xabcd000d, i00d) 1032 m00c() 1033 } 1034 Method(m00e) 1035 { 1036 Store(0xabcd000e, i00e) 1037 m00d() 1038 } 1039 Method(m00f) 1040 { 1041 Store(0xabcd000f, i00f) 1042 m00e() 1043 } 1044 Method(m010) 1045 { 1046 Store(0xabcd0010, i010) 1047 m00f() 1048 } 1049 1050 1051 /* 1052 * If remove one level the test succeeds 1053 */ 1054 m010() 1055 1056 1057 if (LNotEqual(i000, 0xabcd0000)) { 1058 err(ts, z161, __LINE__, 0, 0, i000, 0xabcd0000) 1059 } 1060 if (LNotEqual(i001, 0xabcd0001)) { 1061 err(ts, z161, __LINE__, 0, 0, i001, 0xabcd0001) 1062 } 1063 if (LNotEqual(i002, 0xabcd0002)) { 1064 err(ts, z161, __LINE__, 0, 0, i002, 0xabcd0002) 1065 } 1066 if (LNotEqual(i003, 0xabcd0003)) { 1067 err(ts, z161, __LINE__, 0, 0, i003, 0xabcd0003) 1068 } 1069 if (LNotEqual(i004, 0xabcd0004)) { 1070 err(ts, z161, __LINE__, 0, 0, i004, 0xabcd0004) 1071 } 1072 if (LNotEqual(i005, 0xabcd0005)) { 1073 err(ts, z161, __LINE__, 0, 0, i005, 0xabcd0005) 1074 } 1075 if (LNotEqual(i006, 0xabcd0006)) { 1076 err(ts, z161, __LINE__, 0, 0, i006, 0xabcd0006) 1077 } 1078 if (LNotEqual(i007, 0xabcd0007)) { 1079 err(ts, z161, __LINE__, 0, 0, i007, 0xabcd0007) 1080 } 1081 if (LNotEqual(i008, 0xabcd0008)) { 1082 err(ts, z161, __LINE__, 0, 0, i008, 0xabcd0008) 1083 } 1084 if (LNotEqual(i009, 0xabcd0009)) { 1085 err(ts, z161, __LINE__, 0, 0, i009, 0xabcd0009) 1086 } 1087 if (LNotEqual(i00a, 0xabcd000a)) { 1088 err(ts, z161, __LINE__, 0, 0, i00a, 0xabcd000a) 1089 } 1090 if (LNotEqual(i00b, 0xabcd000b)) { 1091 err(ts, z161, __LINE__, 0, 0, i00b, 0xabcd000b) 1092 } 1093 if (LNotEqual(i00c, 0xabcd000c)) { 1094 err(ts, z161, __LINE__, 0, 0, i00c, 0xabcd000c) 1095 } 1096 if (LNotEqual(i00d, 0xabcd000d)) { 1097 err(ts, z161, __LINE__, 0, 0, i00d, 0xabcd000d) 1098 } 1099 if (LNotEqual(i00e, 0xabcd000e)) { 1100 err(ts, z161, __LINE__, 0, 0, i00e, 0xabcd000e) 1101 } 1102 if (LNotEqual(i00f, 0xabcd000f)) { 1103 err(ts, z161, __LINE__, 0, 0, i00f, 0xabcd000f) 1104 } 1105 if (LNotEqual(i010, 0xabcd0010)) { 1106 err(ts, z161, __LINE__, 0, 0, i010, 0xabcd0010) 1107 } 1108 1109 Return(POUT) 1110} 1111 1112/* 1113 * Check Timer 1114 * 1115 * fail 1116 */ 1117Method(mf14,, Serialized) 1118{ 1119 Name(ts, "mf14") 1120 Name(i000, 0) 1121 1122 Store(Timer, i000) 1123 OUTP(i000) 1124 1125 Return(POUT) 1126} 1127 1128/* 1129 * Mod 1130 * 1131 * fail 1132 */ 1133Method(mf15,, Serialized) 1134{ 1135 Name(ts, "mf15") 1136 1137 Store(0x1234567d, Local1) 1138 Store(8, Local2) 1139 1140 /* This Mod breaks */ 1141 Mod(Local1, Local2, Local0) 1142 1143 OUTP(Local0) 1144 1145 if (chk0) { 1146 if (LNotEqual(Local0, 5)) { 1147 err(ts, z161, __LINE__, 0, 0, Local0, 5) 1148 } 1149 } 1150 1151 Return(POUT) 1152} 1153 1154/* 1155 * Return (Package) 1156 * 1157 * success 1158 */ 1159Method(mf16,, Serialized) 1160{ 1161 Name(ts, "mf16") 1162 1163 Name(p000, Package() {0xabcd0000, 0xabcd0001, 0xabcd0003}) 1164 1165 Method(m000, 1) 1166 { 1167 Return (arg0) 1168 } 1169 1170 Store(m000(p000), Local0) 1171 Store(DerefOf(Index(Local0, 1)), Local0) 1172 if (LNotEqual(Local0, 0xabcd0001)) { 1173 err(ts, z161, __LINE__, 0, 0, Local0, 0xabcd0001) 1174 } 1175 1176 Return(POUT) 1177} 1178 1179/* 1180 * Return (Package) 1181 * 1182 * success 1183 */ 1184Method(mf17,, Serialized) 1185{ 1186 Name(ts, "mf17") 1187 Name(p000, Package() {0xabcd0000, 0xabcd0001, 0xabcd0003}) 1188 1189 Method(m000,, Serialized) 1190 { 1191 Name(pp00, Package() {0xabcd0000, 0xabcd0001, 0xabcd0003}) 1192 1193 Return (pp00) 1194 } 1195 1196 Store(m000(), Local0) 1197 Store(DerefOf(Index(Local0, 1)), Local0) 1198 if (LNotEqual(Local0, 0xabcd0001)) { 1199 err(ts, z161, __LINE__, 0, 0, Local0, 0xabcd0001) 1200 } 1201 1202 Return(POUT) 1203} 1204 1205/* 1206 * LEqual (String, String) 1207 * 1208 * fail 1209 */ 1210Method(mf18,, Serialized) 1211{ 1212 Name(ts, "mf18") 1213 Name(s000, "qwertyuiop") 1214 Name(s001, "qwertyuiop") 1215 1216 Store(LEqual(s000, s001), Local3) 1217 1218 if (chk0) { 1219 Store(LEqual(s000, s001), Local0) 1220 if (LNot(Local0)) { 1221 err(ts, z161, __LINE__, 0, 0, Local0, Ones) 1222 } 1223 } 1224 1225 Return(POUT) 1226} 1227 1228/* 1229 * LEqual (Buffer, Buffer) 1230 * 1231 * fail 1232 */ 1233Method(mf19,, Serialized) 1234{ 1235 Name(ts, "mf19") 1236 Name(b000, Buffer(4) {0x10, 0x11, 0x12, 0x13}) 1237 Name(b001, Buffer(4) {0x10, 0x11, 0x12, 0x13}) 1238 1239 Store(LEqual(b000, b001), Local3) 1240 1241 if (chk0) { 1242 Store(LEqual(b000, b001), Local0) 1243 if (LNot(Local0)) { 1244 err(ts, z161, __LINE__, 0, 0, Local0, Ones) 1245 } 1246 } 1247 1248 Return(POUT) 1249} 1250 1251/* 1252 * Store (Package, Package) 1253 * 1254 * fail 1255 */ 1256Method(mf1a,, Serialized) 1257{ 1258 Name(ts, "mf1a") 1259 1260 Name(p000, Package() {0xabcd0000, 0xabcd0001, 0xabcd0003}) 1261 Name(pp00, Package(3) {}) 1262 1263 Store(p000, pp00) 1264 1265 if (chk0) { 1266 Store(DerefOf(Index(pp00, 1)), Local0) 1267 if (LNotEqual(Local0, 0xabcd0001)) { 1268 err(ts, z161, __LINE__, 0, 0, Local0, 0xabcd0001) 1269 } 1270 } 1271 1272 Return(POUT) 1273} 1274 1275/* 1276 * Add (String, String) 1277 * 1278 * fail 1279 */ 1280Method(mf1b,, Serialized) 1281{ 1282 Name(ts, "mf1b") 1283 Name(s000, "12345678") 1284 Name(s001, "56789012") 1285 1286 Store(Add(s000, s001), Local3) 1287 1288 if (chk0) { 1289 Store(Add(s000, s001), Local0) 1290 if (LNotEqual(Local0, 0x68ACE68A)) { 1291 err(ts, z161, __LINE__, 0, 0, Local0, 0x68ACE68A) 1292 } 1293 } 1294 1295 Return(POUT) 1296} 1297 1298/* 1299 * Add (Buffer, Buffer) 1300 * 1301 * fail 1302 */ 1303Method(mf1c,, Serialized) 1304{ 1305 Name(ts, "mf1c") 1306 Name(b000, Buffer(4) {0x10, 0x11, 0x12, 0x13}) 1307 Name(b001, Buffer(4) {0x24, 0x35, 0x46, 0x57}) 1308 1309 Store(Add(b000, b001), Local3) 1310 1311 if (chk0) { 1312 Store(Add(b000, b001), Local0) 1313 if (LNotEqual(Local0, 0x6A584634)) { 1314 err(ts, z161, __LINE__, 0, 0, Local0, 0x6A584634) 1315 } 1316 } 1317 1318 Return(POUT) 1319} 1320 1321/* 1322 * LEqual (Field, ....) 1323 * 1324 * success 1325 */ 1326Method(mf1d,, Serialized) 1327{ 1328 Name(ts, "mf1d") 1329 OperationRegion(r000, SystemMemory, 0x100, 0x100) 1330 Field(r000, ByteAcc, NoLock, Preserve) {f000,32} 1331 1332 Store(0xabcd0000, f000) 1333 1334 Store(LEqual(f000, 0xabcd0000), Local3) 1335 1336 Store(LEqual(f000, 0xabcd0000), Local0) 1337 if (LNot(Local0)) { 1338 err(ts, z161, __LINE__, 0, 0, Local0, Ones) 1339 } 1340 1341 Return(POUT) 1342} 1343 1344/* 1345 * LEqual (Field, ....) 1346 * 1347 * success 1348 */ 1349Method(mf1e,, Serialized) 1350{ 1351 Name(ts, "mf1e") 1352 OperationRegion(r000, SystemMemory, 0x100, 0x100) 1353 Field(r000, ByteAcc, NoLock, Preserve) {f000,32} 1354 1355 Store(0xabcd0000, f000) 1356 1357 Method(m000, 1) 1358 { 1359 Store(LEqual(arg0, 0xabcd0000), Local0) 1360 Return (Local0) 1361 } 1362 1363 m000(f000) 1364 1365 Store(m000(f000), Local0) 1366 if (LNot(Local0)) { 1367 err(ts, z161, __LINE__, 0, 0, Local0, Ones) 1368 } 1369 1370 Return(POUT) 1371} 1372 1373/* 1374 * LNotEqual (Field, ....) 1375 * 1376 * success 1377 */ 1378Method(mf1f,, Serialized) 1379{ 1380 Name(ts, "mf1f") 1381 OperationRegion(r000, SystemMemory, 0x100, 0x100) 1382 Field(r000, ByteAcc, NoLock, Preserve) {f000,32} 1383 1384 Store(0xabcd0000, f000) 1385 1386 Method(m000, 1) 1387 { 1388 if (LNotEqual(arg0, 0xabcd0000)) { 1389 err(ts, z161, __LINE__, 0, 0, arg0, 0xabcd0000) 1390 } 1391 } 1392 1393 m000(f000) 1394 1395 Return(POUT) 1396} 1397 1398/* 1399 * Add (Field, .......) 1400 * 1401 * success 1402 */ 1403Method(mf20,, Serialized) 1404{ 1405 Name(ts, "mf20") 1406 OperationRegion(r000, SystemMemory, 0x100, 0x100) 1407 Field(r000, ByteAcc, NoLock, Preserve) {f000,32} 1408 1409 Store(0xabcd0000, f000) 1410 1411 Store(Add(f000, 0x12), Local3) 1412 1413 Store(Add(f000, 0x12), Local0) 1414 if (LNotEqual(Local0, 0xabcd0012)) { 1415 err(ts, z161, __LINE__, 0, 0, Local0, 0xabcd0012) 1416 } 1417 1418 Return(POUT) 1419} 1420 1421/* 1422 * Add (Field, .......) 1423 * 1424 * success 1425 */ 1426Method(mf21,, Serialized) 1427{ 1428 Name(ts, "mf21") 1429 OperationRegion(r000, SystemMemory, 0x100, 0x100) 1430 Field(r000, ByteAcc, NoLock, Preserve) {f000,32} 1431 1432 Store(0xabcd0000, f000) 1433 1434 Method(m000, 1) 1435 { 1436 Store(Add(arg0, 0x12), Local0) 1437 Return (Local0) 1438 } 1439 1440 m000(f000) 1441 1442 Store(m000(f000), Local0) 1443 if (LNotEqual(Local0, 0xabcd0012)) { 1444 err(ts, z161, __LINE__, 0, 0, Local0, 0xabcd0012) 1445 } 1446 1447 Return(POUT) 1448} 1449 1450/* 1451 * LNotEqual (Index Field, ....) 1452 * 1453 * success 1454 */ 1455Method(mf22,, Serialized) 1456{ 1457 Name(ts, "mf22") 1458 OperationRegion(r003, SystemMemory, 0x180, 0x080) 1459 Field(r003, ByteAcc, NoLock, Preserve) {f004,32, f005,32} 1460 IndexField(f004, f005, ByteAcc, NoLock, Preserve) {if02,32} 1461 1462 Store(0xabcd0000, if02) 1463 1464 Method(m000, 1) 1465 { 1466 if (LNotEqual(arg0, 0xabababab)) { 1467 err(ts, z161, __LINE__, 0, 0, arg0, 0xabababab) 1468 } 1469 } 1470 1471 m000(if02) 1472 1473 Return(POUT) 1474} 1475 1476/* 1477 * Two the same simultaneously (Index Field, ....) 1478 * 1479 * success 1480 */ 1481Method(mf23,, Serialized) 1482{ 1483 Name(ts, "mf23") 1484 OperationRegion(r003, SystemMemory, 0x180, 0x080) 1485 Field(r003, ByteAcc, NoLock, Preserve) {f004,32, f005,32} 1486 IndexField(f004, f005, ByteAcc, NoLock, Preserve) {if02,32} 1487 1488 Store(0xabcd0000, if02) 1489 1490 Method(m000, 2) 1491 { 1492 if (LNotEqual(arg0, 0xabababab)) { 1493 err(ts, z161, __LINE__, 0, 0, arg0, 0xabababab) 1494 } 1495 if (LNotEqual(arg1, 0xabababab)) { 1496 err(ts, z161, __LINE__, 0, 0, arg1, 0xabababab) 1497 } 1498 } 1499 1500 m000(if02, if02) 1501 1502 Return(POUT) 1503} 1504 1505/* 1506 * Two the same simultaneously (Index Field, ....) 1507 * 1508 * success 1509 */ 1510Method(mf24,, Serialized) 1511{ 1512 Name(ts, "mf24") 1513 OperationRegion(r003, SystemMemory, 0x180, 0x080) 1514 Field(r003, ByteAcc, NoLock, Preserve) {f004,32, f005,32} 1515 IndexField(f004, f005, ByteAcc, NoLock, Preserve) {if02,32} 1516 1517 Store(0xabcd0000, if02) 1518 1519 Method(m001, 1) 1520 { 1521 if (LNotEqual(arg0, 0xabababab)) { 1522 err(ts, z161, __LINE__, 0, 0, arg0, 0xabababab) 1523 } 1524 Return (arg0) 1525 } 1526 Method(m002, 2) 1527 { 1528 if (LNotEqual(arg0, 0xabababab)) { 1529 err(ts, z161, __LINE__, 0, 0, arg0, 0xabababab) 1530 } 1531 if (LNotEqual(arg1, 0xabababab)) { 1532 err(ts, z161, __LINE__, 0, 0, arg1, 0xabababab) 1533 } 1534 Return (arg1) 1535 } 1536 1537 Store(m001(if02), Local0) 1538 Store(m002(if02, if02), Local0) 1539 1540 Return(POUT) 1541} 1542 1543/* 1544 * Store (Device, Local) 1545 * 1546 * succeed 1547 */ 1548Method(mf25,, Serialized) 1549{ 1550/* 1551// Removed 09/2015. iASL now disallows these stores 1552 Name(ts, "mf25") 1553 Device(d000) { Name(id00, 0xabcd0005) } 1554 1555 Store(d000, Local1) 1556 1557 Store(ObjectType(Local1), Local0) 1558 if (LNotEqual(Local0, c00e)) { 1559 err(ts, z161, __LINE__, 0, 0, Local0, c00e) 1560 } 1561*/ 1562 Return(POUT) 1563} 1564 1565/* 1566 * Store (Event, Local) 1567 * 1568 * success 1569 */ 1570Method(mf27,, Serialized) 1571{ 1572/* 1573// Removed 09/2015. iASL now disallows these stores 1574 Name(ts, "mf27") 1575 Event(e000) 1576 1577 Store(e000, Local1) 1578 1579 Store(ObjectType(Local1), Local0) 1580 if (LNotEqual(Local0, c00f)) { 1581 err(ts, z161, __LINE__, 0, 0, Local0, c00f) 1582 } 1583*/ 1584 Return(POUT) 1585} 1586 1587/* 1588 * Store (Mutex, Local) 1589 * 1590 * success 1591 */ 1592Method(mf28,, Serialized) 1593{ 1594/* 1595// Removed 09/2015. iASL now disallows these stores 1596 1597 Name(ts, "mf28") 1598 Mutex(mx00, 0) 1599 1600 Store(mx00, Local1) 1601 1602 Store(ObjectType(Local1), Local0) 1603 if (LNotEqual(Local0, c011)) { 1604 err(ts, z161, __LINE__, 0, 0, Local0, c011) 1605 } 1606*/ 1607 Return(POUT) 1608} 1609 1610/* 1611 * Store (Event, Local) 1612 * 1613 * success 1614 */ 1615Method(mf29, 1, Serialized) 1616{ 1617/* 1618// Removed 09/2015. iASL now disallows these stores 1619 1620 Name(ts, "mf29") 1621 Event(e000) 1622 1623 Store(e000, arg0) 1624 1625 Store(ObjectType(arg0), Local0) 1626 if (LNotEqual(Local0, c00f)) { 1627 err(ts, z161, __LINE__, 0, 0, Local0, c00f) 1628 } 1629*/ 1630 Return(POUT) 1631} 1632 1633/* 1634 * Store (Mutex, Local) 1635 * 1636 * success 1637 */ 1638Method(mf2a, 1, Serialized) 1639{ 1640/* 1641// Removed 09/2015. iASL now disallows these stores 1642 1643 Name(ts, "mf2a") 1644 Mutex(mx00, 0) 1645 1646 Store(mx00, arg0) 1647 1648 Store(ObjectType(arg0), Local0) 1649 if (LNotEqual(Local0, c011)) { 1650 err(ts, z161, __LINE__, 0, 0, Local0, c011) 1651 } 1652*/ 1653 Return(POUT) 1654} 1655 1656/* 1657 * Store (Device, Local) 1658 * Store (another type object, into the same Local) 1659 * 1660 * fail 1661 */ 1662Method(mf2b,, Serialized) 1663{ 1664/* 1665// Removed 09/2015. iASL now disallows these stores 1666 1667 Name(ts, "mf2b") 1668 Device(d000) { Name(id00, 0xabcd0005) } 1669 1670 Store(d000, Local1) 1671 Store(0, Local1) 1672 1673 if (chk0) { 1674 Store(d000, Local1) 1675 Store(ObjectType(Local1), Local0) 1676 if (LNotEqual(Local0, c00e)) { 1677 err(ts, z161, __LINE__, 0, 0, Local0, c00e) 1678 } 1679 } 1680*/ 1681 Return(POUT) 1682} 1683 1684/* 1685 * Store (Device, Arg) 1686 * Store (another type object, into the same Arg) 1687 * 1688 * fail 1689 */ 1690Method(mf2c, 1, Serialized) 1691{ 1692/* 1693// Removed 09/2015. iASL now disallows these stores 1694 1695 Name(ts, "mf2c") 1696 Device(d000) { Name(id00, 0xabcd0005) } 1697 1698 Store(d000, arg0) 1699 Store(0, arg0) 1700 1701 if (chk0) { 1702 Store(d000, arg0) 1703 Store(ObjectType(arg0), Local0) 1704 if (LNotEqual(Local0, c00e)) { 1705 err(ts, z161, __LINE__, 0, 0, Local0, c00e) 1706 } 1707 } 1708*/ 1709 Return(POUT) 1710} 1711 1712 1713Method(msf0) 1714{ 1715 SRMT("mf00") 1716 if (chk0) { 1717 mf00() 1718 } else { 1719 BLCK() 1720 } 1721 SRMT("mf01") 1722 mf01() 1723 SRMT("mf02") 1724 if (chk0) { 1725 mf02() 1726 } else { 1727 BLCK() 1728 } 1729 SRMT("mf03") 1730 mf03() 1731 SRMT("mf04") 1732 if (LAnd(chk0, y275)) { 1733 mf04() 1734 } else { 1735 BLCK() 1736 } 1737 SRMT("mf05") 1738 mf05() 1739 SRMT("mf06") 1740 mf06() 1741 SRMT("mf07") 1742 mf07() 1743 SRMT("mf08") 1744 if (chk0) { 1745 mf08() 1746 } else { 1747 BLCK() 1748 } 1749 SRMT("mf09") 1750 if (chk0) { 1751 mf09() 1752 } else { 1753 BLCK() 1754 } 1755 SRMT("mf0a") 1756 mf0a() 1757 SRMT("mf0b") 1758 mf0b() 1759 SRMT("mf0c") 1760 mf0c() 1761 SRMT("mf0d") 1762 if (chk0) { 1763 mf0d() 1764 } else { 1765 BLCK() 1766 } 1767 SRMT("mf0e") 1768 if (chk0) { 1769 mf0e() 1770 } else { 1771 BLCK() 1772 } 1773 SRMT("mf0f") 1774 if (chk0) { 1775 mf0f() 1776 } else { 1777 BLCK() 1778 } 1779 SRMT("mf10") 1780 if (chk0) { 1781 mf10() 1782 } else { 1783 BLCK() 1784 } 1785 SRMT("mf11") 1786 if (chk0) { 1787 mf11() 1788 } else { 1789 BLCK() 1790 } 1791 SRMT("mf12") 1792 if (chk0) { 1793 mf12() 1794 } else { 1795 BLCK() 1796 } 1797 SRMT("mf13") 1798 if (chk0) { 1799 mf13() 1800 } else { 1801 BLCK() 1802 } 1803 SRMT("mf14") 1804 if (chk0) { 1805 mf14() 1806 } else { 1807 BLCK() 1808 } 1809 SRMT("mf15") 1810 if (chk0) { 1811 mf15() 1812 } else { 1813 BLCK() 1814 } 1815 SRMT("mf16") 1816 mf16() 1817 SRMT("mf17") 1818 mf17() 1819 SRMT("mf18") 1820 if (chk0) { 1821 mf18() 1822 } else { 1823 BLCK() 1824 } 1825 SRMT("mf19") 1826 if (chk0) { 1827 mf19() 1828 } else { 1829 BLCK() 1830 } 1831 SRMT("mf1a") 1832 if (chk0) { 1833 mf1a() 1834 } else { 1835 BLCK() 1836 } 1837 SRMT("mf1b") 1838 if (chk0) { 1839 mf1b() 1840 } else { 1841 BLCK() 1842 } 1843 SRMT("mf1c") 1844 if (chk0) { 1845 mf1c() 1846 } else { 1847 BLCK() 1848 } 1849 SRMT("mf1d") 1850 mf1d() 1851 SRMT("mf1e") 1852 mf1e() 1853 SRMT("mf1f") 1854 mf1f() 1855 SRMT("mf20") 1856 mf20() 1857 SRMT("mf21") 1858 mf21() 1859 SRMT("mf22") 1860 mf22() 1861 SRMT("mf23") 1862 mf23() 1863 SRMT("mf24") 1864 mf24() 1865 SRMT("mf25") 1866 if (SLC0) { 1867 mf25() 1868 } else { 1869 BLCK() 1870 } 1871 SRMT("mf26") 1872 if (LAnd(SLC0, chk0)) { 1873 mf26() 1874 } else { 1875 BLCK() 1876 } 1877 SRMT("mf27") 1878 if (SLC0) { 1879 mf27() 1880 } else { 1881 BLCK() 1882 } 1883 SRMT("mf28") 1884 if (SLC0) { 1885 mf28() 1886 } else { 1887 BLCK() 1888 } 1889 SRMT("mf29") 1890 if (SLC0) { 1891 mf29(0) 1892 } else { 1893 BLCK() 1894 } 1895 SRMT("mf2a") 1896 if (SLC0) { 1897 mf2a(0) 1898 } else { 1899 BLCK() 1900 } 1901 SRMT("mf2b") 1902 if (LAnd(SLC0, chk0)) { 1903 mf2b() 1904 } else { 1905 BLCK() 1906 } 1907 SRMT("mf2c") 1908 if (LAnd(SLC0, chk0)) { 1909 mf2c(0) 1910 } else { 1911 BLCK() 1912 } 1913} 1914