1/* 2 * Tests originated from namespace/ns1 3 */ 4 5/* 6 * Package/Buffer/String/Field/IndexField/BankField/BufferField 7 * 8 * Tests below are here 9 * as specific type arguments passing - 10 * arguments though passed directly to method, not as references, 11 * nevertheless allow access to the elements of original objects. 12 */ 13 14Name(z164, 164) 15 16/* 17 * 18 * Read/write access to elements of Package passed to method. 19 * 20 */ 21 22/* 23 * 24 * Elements of Package are constant Integer (0xabcd0000) 25 * 26 */ 27 28/* 29 * Package is passed by ArgX to method: 30 * - directly 31 */ 32Method(in10) 33{ 34 Name(ts, "in10") 35 Name(p000, Package() {0xabcd0000, 0xabcd0001, 0xabcd0002}) 36 Method(m001, 2) 37 { 38 Store(DerefOf(Index(arg0, 0)), Local0) 39 if (LNotEqual(Local0, 0xabcd0000)) { 40 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0000) 41 } 42 43 Store(0x11112222, Index(arg0, 0)) 44 45 Store(DerefOf(Index(arg0, 0)), Local0) 46 if (LNotEqual(Local0, 0x11112222)) { 47 err(ts, z164, __LINE__, 0, 0, Local0, 0x11112222) 48 } 49 } 50 51 m001(p000, RefOf(p000)) 52 53 Store(DerefOf(Index(p000, 0)), Local0) 54 if (LNotEqual(Local0, 0x11112222)) { 55 err(ts, z164, __LINE__, 0, 0, Local0, 0x11112222) 56 } 57 58 Store(DerefOf(Index(p000, 1)), Local0) 59 if (LNotEqual(Local0, 0xabcd0001)) { 60 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0001) 61 } 62} 63 64/* 65 * Package is passed by ArgX to method: 66 * - by ORef 67 */ 68Method(in11) 69{ 70 Name(ts, "in11") 71 Name(p000, Package() {0xabcd0000, 0xabcd0001, 0xabcd0002}) 72 Method(m001, 2) 73 { 74 Store(DerefOf(arg1), Local7) 75 76 Store(DerefOf(Index(Local7, 1)), Local0) 77 if (LNotEqual(Local0, 0xabcd0001)) { 78 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0001) 79 } 80 81 Store(0x33334444, Index(Local7, 1)) 82 83 Store(DerefOf(Index(Local7, 1)), Local0) 84 if (LNotEqual(Local0, 0x33334444)) { 85 err(ts, z164, __LINE__, 0, 0, Local0, 0x33334444) 86 } 87 } 88 89 m001(p000, RefOf(p000)) 90 91 Store(DerefOf(Index(p000, 0)), Local0) 92 if (LNotEqual(Local0, 0xabcd0000)) { 93 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0000) 94 } 95 96 Store(DerefOf(Index(p000, 1)), Local0) 97 if (LNotEqual(Local0, 0xabcd0001)) { 98 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0001) 99 } 100} 101 102/* 103 * Package is passed by ArgX to method: 104 * - directly 105 * - by ORef 106 */ 107Method(in12) 108{ 109 Name(ts, "in12") 110 Name(p000, Package() {0xabcd0000, 0xabcd0001, 0xabcd0002}) 111 Method(m001, 2) 112 { 113 Store(0x11112222, Index(arg0, 0)) 114 115 Store(DerefOf(Index(arg0, 0)), Local0) 116 if (LNotEqual(Local0, 0x11112222)) { 117 err(ts, z164, __LINE__, 0, 0, Local0, 0x11112222) 118 } 119 120 Store(DerefOf(arg1), Local7) 121 Store(0x33334444, Index(Local7, 1)) 122 123 Store(DerefOf(Index(Local7, 1)), Local0) 124 if (LNotEqual(Local0, 0x33334444)) { 125 err(ts, z164, __LINE__, 0, 0, Local0, 0x33334444) 126 } 127 } 128 129 m001(p000, RefOf(p000)) 130 131 Store(DerefOf(Index(p000, 0)), Local0) 132 if (LNotEqual(Local0, 0x11112222)) { 133 err(ts, z164, __LINE__, 0, 0, Local0, 0x11112222) 134 } 135 136 Store(DerefOf(Index(p000, 1)), Local0) 137 if (LNotEqual(Local0, 0xabcd0001)) { 138 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0001) 139 } 140} 141 142/* 143 * Package is given directly by name: 144 * - do ORef and pass to LocalX 145 * - do DerefOf and pass to LocalX 146 */ 147Method(in13) 148{ 149 Name(ts, "in13") 150 Name(p000, Package() {0xabcd0000, 0xabcd0001, 0xabcd0002}) 151 Method(m001, 2) 152 { 153 Store(RefOf(p000), Local6) 154 Store(DerefOf(Local6), Local7) 155 156 Store(DerefOf(Index(Local7, 1)), Local0) 157 if (LNotEqual(Local0, 0xabcd0001)) { 158 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0001) 159 } 160 161 Store(0x33334444, Index(Local7, 1)) 162 163 Store(DerefOf(Index(Local7, 1)), Local0) 164 if (LNotEqual(Local0, 0x33334444)) { 165 err(ts, z164, __LINE__, 0, 0, Local0, 0x33334444) 166 } 167 } 168 169 m001(p000, RefOf(p000)) 170 171 Store(DerefOf(Index(p000, 0)), Local0) 172 if (LNotEqual(Local0, 0xabcd0000)) { 173 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0000) 174 } 175 Store(DerefOf(Index(p000, 1)), Local0) 176 if (LNotEqual(Local0, 0xabcd0001)) { 177 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0001) 178 } 179 Store(DerefOf(Index(p000, 2)), Local0) 180 if (LNotEqual(Local0, 0xabcd0002)) { 181 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0002) 182 } 183} 184 185/* 186 * 187 * Elements of Package are Named Integer (i000) 188 * 189 */ 190 191/* 192 * Package is passed by ArgX to method 193 * 194 * fail 195 * 196 * Note: 197 * Named element of Package is simply not implemented by MS, 198 * i000 in Package(){i000} is, on MS, the same as Package(){"i000"}. 199 */ 200Method(in14) 201{ 202 Name(ts, "in14") 203 Name(i000, 0xabcd0000) 204 Name(i001, 0xabcd0001) 205 Name(i002, 0xabcd0002) 206 207 Name(ii00, 0x11112222) 208 209 Name(p000, Package() {i000, i001, i002, "i000"}) 210 Method(m001, 2) 211 { 212 Store(DerefOf(Index(arg0, 0)), Local0) 213 if (LNotEqual(Local0, 0xabcd0000)) { 214 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0000) 215 } 216 Store(DerefOf(Index(arg0, 1)), Local0) 217 if (LNotEqual(Local0, 0xabcd0001)) { 218 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0001) 219 } 220 Store(DerefOf(Index(arg0, 2)), Local0) 221 if (LNotEqual(Local0, 0xabcd0002)) { 222 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0002) 223 } 224 Store(DerefOf(Index(arg0, 3)), Local0) 225 if (LNotEqual(Local0, "i000")) { 226 err(ts, z164, __LINE__, 0, 0, Local0, "i000") 227 } 228 229 Store(ii00, Index(arg0, 0)) 230 231 Store(DerefOf(Index(arg0, 0)), Local0) 232 if (LNotEqual(Local0, 0x11112222)) { 233 err(ts, z164, __LINE__, 0, 0, Local0, 0x11112222) 234 } 235 } 236 237 m001(p000, RefOf(p000)) 238 239 Store(DerefOf(Index(p000, 0)), Local0) 240 if (LNotEqual(Local0, 0x11112222)) { 241 err(ts, z164, __LINE__, 0, 0, Local0, 0x11112222) 242 } 243 244 Store(DerefOf(Index(p000, 1)), Local0) 245 if (LNotEqual(Local0, 0xabcd0001)) { 246 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0001) 247 } 248 249 Store(DerefOf(Index(p000, 2)), Local0) 250 if (LNotEqual(Local0, 0xabcd0002)) { 251 err(ts, z164, __LINE__, 0, 0, Local0, 0xabcd0002) 252 } 253 254 Store(DerefOf(Index(p000, 3)), Local0) 255 if (LNotEqual(Local0, "i000")) { 256 err(ts, z164, __LINE__, 0, 0, Local0, "i000") 257 } 258} 259 260/* 261 * Package is used directly by Name 262 * 263 * Example to show behaviour of MS for Package(){i000} 264 * 265 * Note: 266 * Named element of Package is simply not implemented by MS, 267 * i000 in Package(){i000} is, on MS, the same as Package(){"i000"}. 268 */ 269Method(in15) 270{ 271 Name(ts, "in15") 272 Name(i000, 0xabcd0000) 273 Name(i001, 0xabcd0001) 274 Name(i002, 0xabcd0002) 275 276 Name(ii00, 0x11112222) 277 278 Name(p000, Package() {i000, i001, i002, "i000"}) 279 280 Store(DerefOf(Index(p000, 0)), Local0) 281 OUTP(Local0) 282 Store(DerefOf(Index(p000, 1)), Local0) 283 OUTP(Local0) 284 Store(DerefOf(Index(p000, 2)), Local0) 285 OUTP(Local0) 286 Store(DerefOf(Index(p000, 3)), Local0) 287 OUTP(Local0) 288 289 Store(ii00, Index(p000, 1)) 290 291 OUTP("After re-write 1-th element:") 292 293 Store(DerefOf(Index(p000, 0)), Local0) 294 OUTP(Local0) 295 Store(DerefOf(Index(p000, 1)), Local0) 296 OUTP(Local0) 297 Store(DerefOf(Index(p000, 2)), Local0) 298 OUTP(Local0) 299 Store(DerefOf(Index(p000, 3)), Local0) 300 OUTP(Local0) 301} 302 303/* 304 * Buffer 305 */ 306 307Method(in16) 308{ 309 Name(ts, "in16") 310 Name(b000, Buffer() {0x10, 0x11, 0x12}) 311 Method(m001, 2) 312 { 313 // arg0 - b000 314 Store(DerefOf(Index(arg0, 0)), Local0) 315 if (LNotEqual(Local0, 0x10)) { 316 err(ts, z164, __LINE__, 0, 0, Local0, 0x10) 317 } 318 319 Store(0x67, Index(arg0, 0)) 320 321 Store(DerefOf(Index(arg0, 0)), Local0) 322 if (LNotEqual(Local0, 0x67)) { 323 err(ts, z164, __LINE__, 0, 0, Local0, 0x67) 324 } 325 326 // arg1 - RefOf(b000) 327 328 Store(DerefOf(arg1), Local7) 329 Store(0x55, Index(Local7, 1)) 330 331 Store(DerefOf(Index(Local7, 1)), Local0) 332 if (LNotEqual(Local0, 0x55)) { 333 err(ts, z164, __LINE__, 0, 0, Local0, 0x55) 334 } 335 } 336 337 m001(b000, RefOf(b000)) 338 339 Store(DerefOf(Index(b000, 0)), Local0) 340 if (LNotEqual(Local0, 0x67)) { 341 err(ts, z164, __LINE__, 0, 0, Local0, 0x67) 342 } 343 344 Store(DerefOf(Index(b000, 1)), Local0) 345 if (LNotEqual(Local0, 0x11)) { 346 err(ts, z164, __LINE__, 0, 0, Local0, 0x11) 347 } 348 349 Store(DerefOf(Index(b000, 2)), Local0) 350 if (LNotEqual(Local0, 0x12)) { 351 err(ts, z164, __LINE__, 0, 0, Local0, 0x12) 352 } 353} 354 355/* 356 * Element of Package instead of i000 (in in02) 357 * 358 * Recursive call to m001 359 */ 360Method(in17) 361{ 362 Name(ts, "in17") 363 Name(i001, 0) 364 Name(pp00, Package() {0x11111111, 0x00100000, 0x22223333}) 365 366 Method(m001) 367 { 368 /* 369 * Because of the stack overflow issues on MS the number 370 * of repetitions was changed from 100 to 11 here. 371 */ 372 if (LLess(i001, 11)) { 373 374 Store(DerefOf(Index(pp00, 1)), Local0) 375 Increment(Local0) 376 Store(Local0, Index(pp00, 1)) 377 Increment(i001) 378 Add(DerefOf(Index(pp00, 1)), m001(), Local0) 379 Return (Local0) 380 } 381 Return (0) 382 } 383 Store(Add(DerefOf(Index(pp00, 1)), m001()), Local0) 384 385 if (LNotEqual(Local0, 0x00c00042)) { 386 err(ts, z164, __LINE__, 0, 0, Local0, 0x00c00042) 387 } 388 389 Store(DerefOf(Index(pp00, 1)), Local0) 390 391 if (LNotEqual(Local0, 0x0010000b)) { 392 err(ts, z164, __LINE__, 0, 0, Local0, 0x0010000b) 393 } 394 395 CH03(ts, z164, 0x00c, __LINE__, 0) 396} 397 398/* 399 * Buffer Field instead of i000 (in in01) 400 * 401 * fail 402 * 403 * Note: Buffer Field in expressions is not supported by MS, 404 * see msfail.asl 405 */ 406 407/* 408 * Field instead of i000 (in in01) 409 */ 410Method(in18, 1) 411{ 412 Name(ts, "in18") 413 Name(i001, 0) 414 OperationRegion(r000, SystemMemory, 0x100, 0x100) 415 Field(r000, ByteAcc, NoLock, Preserve) { f000,32, f001,32 } 416 417 CH03(ts, z164, 0x011, __LINE__, 0) 418 419 Store(arg0, i001) 420 421 Method(m001) 422 { 423 Method(m002) 424 { 425 Method(m003) 426 { 427 Method(m004) 428 { 429 Method(m005) 430 { 431 Method(m006) 432 { 433 Method(m007) 434 { 435 Method(m008) 436 { 437 if (i001) 438 { 439 Store(0x11223344, f001) 440 } 441 Return (0) 442 } 443 Store(0x80000000, f001) 444 Return (Add(f001, m008())) 445 } 446 Store(0x07000000, f001) 447 Return (Add(f001, m007())) 448 } 449 Store(0x00600000, f001) 450 Return (Add(f001, m006())) 451 } 452 Store(0x00050000, f001) 453 Return (Add(f001, m005())) 454 } 455 Store(0x00004000, f001) 456 Return (Add(f001, m004())) 457 } 458 Store(0x00000300, f001) 459 Return (Add(f001, m003())) 460 } 461 Store(0x00000020, f001) 462 Return (Add(f001, m002())) 463 } 464 465 Store(0x00000001, f001) 466 467 Store(Add(f001, m001()), Local0) 468 469 if (LNotEqual(Local0, 0x87654321)) { 470 err(ts, z164, __LINE__, 0, 0, Local0, 0x87654321) 471 } 472 473 if (arg0) { 474 Store(0x11223344, Local1) 475 } else { 476 Store(0x80000000, Local1) 477 } 478 479 if (LNotEqual(f001, Local1)) { 480 err(ts, z164, __LINE__, 0, 0, f001, Local1) 481 } 482 483 CH03(ts, z164, 0x014, __LINE__, 0) 484} 485 486/* 487 * Bank Field instead of i000 (in in01) 488 * 489 * (is this test correct?) 490 */ 491Method(in19, 1) 492{ 493 Name(ts, "in19") 494 Name(i001, 0) 495 OperationRegion(r000, SystemMemory, 0x100, 0x100) 496 Field(r000, ByteAcc, NoLock, Preserve) { f000,32, f001,32 } 497 BankField(r000, f001, 0, ByteAcc, NoLock, Preserve) { bnk0, 32 } 498 499 CH03(ts, z164, 0x015, __LINE__, 0) 500 501 Store(arg0, i001) 502 503 Method(m001) 504 { 505 Method(m002) 506 { 507 Method(m003) 508 { 509 Method(m004) 510 { 511 Method(m005) 512 { 513 Method(m006) 514 { 515 Method(m007) 516 { 517 Method(m008) 518 { 519 if (i001) 520 { 521 Store(0x11223344, bnk0) 522 } 523 Return (0) 524 } 525 Store(0x80000000, bnk0) 526 Return (Add(bnk0, m008())) 527 } 528 Store(0x07000000, bnk0) 529 Return (Add(bnk0, m007())) 530 } 531 Store(0x00600000, bnk0) 532 Return (Add(bnk0, m006())) 533 } 534 Store(0x00050000, bnk0) 535 Return (Add(bnk0, m005())) 536 } 537 Store(0x00004000, bnk0) 538 Return (Add(bnk0, m004())) 539 } 540 Store(0x00000300, bnk0) 541 Return (Add(bnk0, m003())) 542 } 543 Store(0x00000020, bnk0) 544 Return (Add(bnk0, m002())) 545 } 546 547 Store(0x00000001, bnk0) 548 549 Store(Add(bnk0, m001()), Local0) 550 551 if (LNotEqual(Local0, 0x87654321)) { 552 err(ts, z164, __LINE__, 0, 0, Local0, 0x87654321) 553 } 554 555 if (arg0) { 556 Store(0x11223344, Local1) 557 } else { 558 Store(0x80000000, Local1) 559 } 560 561 if (LNotEqual(bnk0, Local1)) { 562 err(ts, z164, __LINE__, 0, 0, bnk0, Local1) 563 } 564 565 CH03(ts, z164, 0x018, __LINE__, 0) 566} 567 568/* 569 * Index Field instead of i000 (in in01) 570 * 571 * (is this test correct?) 572 */ 573Method(in1a, 1) 574{ 575 Name(ts, "in1a") 576 Name(i001, 0) 577 OperationRegion(r000, SystemMemory, 0x100, 0x100) 578 Field(r000, ByteAcc, NoLock, Preserve) { f000,32, f001,32 } 579 IndexField(f000, f001, ByteAcc, NoLock, Preserve) { if00, 32 } 580 581 CH03(ts, z164, 0x019, __LINE__, 0) 582 583 Store(arg0, i001) 584 585 Method(m001) 586 { 587 Method(m002) 588 { 589 Method(m003) 590 { 591 Method(m004) 592 { 593 Method(m005) 594 { 595 Method(m006) 596 { 597 Method(m007) 598 { 599 Method(m008) 600 { 601 if (i001) 602 { 603 Store(0x11223344, if00) 604 } 605 Return (0) 606 } 607 Store(0x80000000, if00) 608 Return (Add(if00, m008())) 609 } 610 Store(0x07000000, if00) 611 Return (Add(if00, m007())) 612 } 613 Store(0x00600000, if00) 614 Return (Add(if00, m006())) 615 } 616 Store(0x00050000, if00) 617 Return (Add(if00, m005())) 618 } 619 Store(0x00004000, if00) 620 Return (Add(if00, m004())) 621 } 622 Store(0x00000300, if00) 623 Return (Add(if00, m003())) 624 } 625 Store(0x00000020, if00) 626 Return (Add(if00, m002())) 627 } 628 629 Store(0x00000001, if00) 630 631 Store(Add(if00, m001()), Local0) 632 633 /* 634 * The benchmark values for arg0==0 below 635 * are how MS actually works. 636 */ 637 638 if (LNotEqual(Local0, 0x87878787)) { 639 err(ts, z164, __LINE__, 0, 0, Local0, 0x87878787) 640 } 641 642 if (arg0) { 643 Store(0x11223344, Local1) 644 } else { 645 Store(0x80808080, Local1) 646 } 647 648 if (LNotEqual(if00, Local1)) { 649 err(ts, z164, __LINE__, 0, 0, if00, Local1) 650 } 651 652 CH03(ts, z164, 0x01c, __LINE__, 0) 653} 654 655/* 656 * Element of Buffer instead of i000 (in in01) 657 */ 658Method(in1b, 1) 659{ 660 Name(ts, "in1b") 661 Name(i001, 0) 662 Name(b000, Buffer() {0x11, 0x01, 0x22}) 663 664 CH03(ts, z164, 0x01d, __LINE__, 0) 665 666 Store(arg0, i001) 667 668 Method(m001) 669 { 670 Method(m002) 671 { 672 Method(m003) 673 { 674 Method(m004) 675 { 676 Method(m005) 677 { 678 Method(m006) 679 { 680 Method(m007) 681 { 682 Return (0) 683 } 684 Store(0x07, Index(b000, 1)) 685 Return (Add(DerefOf(Index(b000, 1)), m007())) 686 } 687 Store(0x06, Index(b000, 1)) 688 Return (Add(DerefOf(Index(b000, 1)), m006())) 689 } 690 Store(0x05, Index(b000, 1)) 691 Return (Add(DerefOf(Index(b000, 1)), m005())) 692 } 693 Store(0x04, Index(b000, 1)) 694 Return (Add(DerefOf(Index(b000, 1)), m004())) 695 } 696 Store(0x03, Index(b000, 1)) 697 Return (Add(DerefOf(Index(b000, 1)), m003())) 698 } 699 Store(0x02, Index(b000, 1)) 700 Return (Add(DerefOf(Index(b000, 1)), m002())) 701 } 702 Store(Add(DerefOf(Index(b000, 1)), m001()), Local0) 703 704 if (LNotEqual(Local0, 0x1c)) { 705 err(ts, z164, __LINE__, 0, 0, Local0, 0x1c) 706 } 707 708 Store(DerefOf(Index(b000, 1)), Local0) 709 710 if (arg0) { 711 Store(0xff, Local1) 712 } else { 713 Store(0x07, Local1) 714 } 715 716 if (LNotEqual(Local0, Local1)) { 717 err(ts, z164, __LINE__, 0, 0, Local0, Local1) 718 } 719 720 CH03(ts, z164, 0x020, __LINE__, 0) 721} 722 723/* 724 * Element of Buffer instead of i000 (in in01) 725 * 726 * in1b+: 727 * added argument to methods and b000 passed without any use of that 728 * parameter inside the methods 729 */ 730Method(in1c, 1) 731{ 732 Name(ts, "in1c") 733 Name(i001, 0) 734 Name(b000, Buffer() {0x11, 0x01, 0x22}) 735 736 CH03(ts, z164, 0x01d, __LINE__, 0) 737 738 Store(arg0, i001) 739 740 Method(m000, 1) 741 { 742 743 Method(m001, 1) 744 { 745 Method(m002, 1) 746 { 747 Method(m003, 1) 748 { 749 Method(m004, 1) 750 { 751 Method(m005, 1) 752 { 753 Method(m006, 1) 754 { 755 Method(m007, 1) 756 { 757 Return (0) 758 } 759 Store(0x07, Index(b000, 1)) 760 Return (Add(DerefOf(Index(b000, 1)), m007(b000))) 761 } 762 Store(0x06, Index(b000, 1)) 763 Return (Add(DerefOf(Index(b000, 1)), m006(b000))) 764 } 765 Store(0x05, Index(b000, 1)) 766 Return (Add(DerefOf(Index(b000, 1)), m005(b000))) 767 } 768 Store(0x04, Index(b000, 1)) 769 Return (Add(DerefOf(Index(b000, 1)), m004(b000))) 770 } 771 Store(0x03, Index(b000, 1)) 772 Return (Add(DerefOf(Index(b000, 1)), m003(b000))) 773 } 774 Store(0x02, Index(b000, 1)) 775 Return (Add(DerefOf(Index(b000, 1)), m002(b000))) 776 } 777 Store(Add(DerefOf(Index(b000, 1)), m001(b000)), Local0) 778 Return (Local0) 779 } 780 781 CH03(ts, z164, 0x000, __LINE__, 0) 782 783 Store(m000(b000), Local0) 784 785 if (LNotEqual(Local0, 0x1c)) { 786 err(ts, z164, __LINE__, 0, 0, Local0, 0x1c) 787 } 788 789 Store(DerefOf(Index(b000, 1)), Local0) 790 791 if (arg0) { 792 Store(0xff, Local1) 793 } else { 794 Store(0x07, Local1) 795 } 796 797 if (LNotEqual(Local0, Local1)) { 798 err(ts, z164, __LINE__, 0, 0, Local0, Local1) 799 } 800 801 CH03(ts, z164, 0x020, __LINE__, 0) 802} 803 804 805/* 806 * Element of Package instead of i000 (in in01) 807 */ 808Method(in1d) 809{ 810 Name(ts, "in1d") 811 Name(i001, 0) 812 Name(p000, Package() {1,2,3,4}) 813 Name(pp00, Package() {0x11111111, 0x00000001, 0x22223333}) 814 815 CH03(ts, z164, 0x006, __LINE__, 0) 816 817 Method(m001) 818 { 819 Method(m002) 820 { 821 Method(m003) 822 { 823 Method(m004) 824 { 825 Method(m005) 826 { 827 Method(m006) 828 { 829 Method(m007) 830 { 831 Return (0) 832 } 833 Store(0x07000000, Index(pp00, 1)) 834 Return (Add(DerefOf(Index(pp00, 1)), m007())) 835 } 836 Store(0x00600000, Index(pp00, 1)) 837 Return (Add(DerefOf(Index(pp00, 1)), m006())) 838 } 839 Store(0x00050000, Index(pp00, 1)) 840 Return (Add(DerefOf(Index(pp00, 1)), m005())) 841 } 842 Store(0x00004000, Index(pp00, 1)) 843 Return (Add(DerefOf(Index(pp00, 1)), m004())) 844 } 845 Store(0x00000300, Index(pp00, 1)) 846 Return (Add(DerefOf(Index(pp00, 1)), m003())) 847 } 848 Store(0x00000020, Index(pp00, 1)) 849 Return (Add(DerefOf(Index(pp00, 1)), m002())) 850 } 851 Store(Add(DerefOf(Index(pp00, 1)), m001()), Local0) 852 853 if (LNotEqual(Local0, 0x07654321)) { 854 err(ts, z164, __LINE__, 0, 0, Local0, 0x07654321) 855 } 856 857 Store(DerefOf(Index(pp00, 1)), Local0) 858 859 if (LNotEqual(Local0, 0x07000000)) { 860 err(ts, z164, __LINE__, 0, 0, Local0, 0x07000000) 861 } 862 863 CH03(ts, z164, 0x009, __LINE__, 0) 864} 865 866/* 867 * Element of Package instead of i000 (in in01) 868 * 869 * in1d+: 870 * added argument to methods and b000 passed without any use of that 871 * parameter inside the methods 872 */ 873Method(in1e) 874{ 875 Name(ts, "in1e") 876 Name(i001, 0) 877 Name(p000, Package() {1,2,3,4}) 878 Name(pp00, Package() {0x11111111, 0x00000001, 0x22223333}) 879 880 CH03(ts, z164, 0x006, __LINE__, 0) 881 882 Method(m000, 1) 883 { 884 885 Method(m001, 1) 886 { 887 Method(m002, 1) 888 { 889 Method(m003, 1) 890 { 891 Method(m004, 1) 892 { 893 Method(m005, 1) 894 { 895 Method(m006, 1) 896 { 897 Method(m007, 1) 898 { 899 Return (0) 900 } 901 Store(0x07000000, Index(pp00, 1)) 902 Return (Add(DerefOf(Index(pp00, 1)), m007(pp00))) 903 } 904 Store(0x00600000, Index(pp00, 1)) 905 Return (Add(DerefOf(Index(pp00, 1)), m006(pp00))) 906 } 907 Store(0x00050000, Index(pp00, 1)) 908 Return (Add(DerefOf(Index(pp00, 1)), m005(pp00))) 909 } 910 Store(0x00004000, Index(pp00, 1)) 911 Return (Add(DerefOf(Index(pp00, 1)), m004(pp00))) 912 } 913 Store(0x00000300, Index(pp00, 1)) 914 Return (Add(DerefOf(Index(pp00, 1)), m003(pp00))) 915 } 916 Store(0x00000020, Index(pp00, 1)) 917 Return (Add(DerefOf(Index(pp00, 1)), m002(pp00))) 918 } 919 Store(Add(DerefOf(Index(pp00, 1)), m001(pp00)), Local0) 920 Return (Local0) 921 } 922 923 CH03(ts, z164, 0x000, __LINE__, 0) 924 925 Store(m000(pp00), Local0) 926 927 if (LNotEqual(Local0, 0x07654321)) { 928 err(ts, z164, __LINE__, 0, 0, Local0, 0x07654321) 929 } 930 931 Store(DerefOf(Index(pp00, 1)), Local0) 932 933 if (LNotEqual(Local0, 0x07000000)) { 934 err(ts, z164, __LINE__, 0, 0, Local0, 0x07000000) 935 } 936 937 CH03(ts, z164, 0x009, __LINE__, 0) 938} 939 940Method(ini1) 941{ 942 SRMT("in10") 943 in10() 944 SRMT("in11") 945 in11() 946 SRMT("in12") 947 in12() 948 SRMT("in13") 949 in13() 950 SRMT("in14") 951 if (chk0) { 952 in14() 953 } else { 954 BLCK() 955 } 956 SRMT("in15") 957 if (chk0) { 958 in15() 959 } else { 960 BLCK() 961 } 962 SRMT("in16") 963 in16() 964 SRMT("in17") 965 in17() 966 SRMT("in18-0") 967 in18(0) 968 SRMT("in19-0") 969 in19(0) 970 SRMT("in1a-0") 971 in1a(0) 972 SRMT("in1b-0") 973 in1b(0) 974 SRMT("in1c-0") 975 in1c(0) 976 SRMT("in1d") 977 in1d() 978 SRMT("in1e") 979 if (fix0) { 980 in1e() 981 } else { 982 BLCK() 983 } 984} 985