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 * Data type conversion and manipulation 30 */ 31 /* 32 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 33 SEE: to be a few updated, see below 34 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 35 */ 36 /* ObjectType, Type of object */ 37 /* Check ObjectType operator for: */ 38 /* - all the Types of objects, */ 39 /* - all the ways Obtaining those objects, */ 40 /* - all the ways Passing objects to ObjectType. */ 41 /* */ 42 /* Types - {0-16}, see specs. */ 43 /* Obtaining - different creating operators,... */ 44 /* Passing - immediately local, immediately global, */ 45 /* by ArgX, by LocalX,... */ 46 Name (Z040, 0x28) 47 /* Global objects */ 48 49 Name (N002, 0x90801020) 50 Name (N003, 0x9189192989396949) 51 Name (N005, "9876") 52 Name (B003, Buffer (0x04) 53 { 54 0x0C, 0x0D, 0x0E, 0x0F // .... 55 }) 56 /* Exercise all the ways creating the source objects of different types */ 57 /* */ 58 /* 0 - Uninitialized */ 59 /* */ 60 /* Integers */ 61 /* */ 62 /* One, Ones, Zero, Revision, Timer (compile error) */ 63 /* immediate 32-bit Integer constant imagine (compile error) */ 64 /* immediate 64-bit Integer constant imagine (compile error) */ 65 /* */ 66 /* 1 - 32-bit Integers */ 67 /* */ 68 /* 32-bit Integer passed by LocalX */ 69 /* 32-bit Integer passed by ArgX */ 70 /* 32-bit Integer passed by local Name */ 71 /* 32-bit Integer passed by global Name */ 72 /* */ 73 /* 2 - 64-bit Integers */ 74 /* */ 75 /* 64-bit Integer passed by LocalX */ 76 /* 64-bit Integer passed by ArgX */ 77 /* 64-bit Integer passed by local Name */ 78 /* 64-bit Integer passed by global Name */ 79 /* */ 80 /* String */ 81 /* */ 82 /* 3 - String */ 83 /* */ 84 /* Field Units */ 85 /* */ 86 /* 4 - Field Unit created by Field */ 87 /* 5 - Field Unit created by BankField */ 88 /* 6 - Field Unit created by IndexField */ 89 /* */ 90 /* Buffers */ 91 /* */ 92 /* - buffer passed immediately (compile error) */ 93 /* 7 - buffer passed by LocalX */ 94 /* 8 - buffer passed by ArgX */ 95 /* 9 - buffer passed by local Name */ 96 /* 10 - buffer passed by global Name */ 97 /* */ 98 /* Buffer Fields */ 99 /* */ 100 /* 11 - CreateBitField (bit field) */ 101 /* 12 - CreateByteField (byte field) */ 102 /* 13 - CreateDWordField (DWord field) */ 103 /* 14 - CreateField 32-bit (arbitrary length bit field) */ 104 /* 15 - CreateField 64-bit (arbitrary length bit field) */ 105 /* 16 - CreateField 65-bit (arbitrary length bit field) */ 106 /* 17 - CreateQWordField (QWord field) */ 107 /* 18 - CreateWordField (Word field) */ 108 /* */ 109 /* 19 - Index, Index with String (reference to Buffer Fields) */ 110 /* 20 - Index, Index with Buffer (reference to Buffer Fields) */ 111 /* 21 - Index, Index with Package (reference to object in Package) */ 112 /* */ 113 /* 22 - Data Table Operation Region */ 114 /* 23 - Debug Object */ 115 /* 24 - Device */ 116 /* 25 - Event */ 117 /* 26 - Method */ 118 /* 27 - Function */ 119 /* 28 - Mutex */ 120 /* 29 - Operation Region */ 121 /* 30 - Package */ 122 /* 31 - Power Resource */ 123 /* 32 - Processor */ 124 /* 33 - Thermal Zone */ 125 /* 34 - DDB Handle */ 126 /* */ 127 /* */ 128 /* Name - add all other objects by the name and so on ... !!!!!!!!!!!!!!!!! */ 129 /* */ 130 /* */ 131 /* Local7 - returned result */ 132 /* */ 133 Method (M0F1, 7, Serialized) 134 { 135 OperationRegion (R000, SystemMemory, 0x0100, 0x0100) 136 OperationRegion (R001, SystemMemory, 0x0100, 0x0100) 137 If (Arg1) 138 { 139 Local7 = 0x00 140 } 141 142 Switch (ToInteger (Arg1)) 143 { 144 Case (0x00) 145 { 146 /* Uninitialized */ 147 /* 148 * Bug 9 fixed. 149 * if (arg1) { 150 * Store(0, Local0) 151 * Store(0, Local1) 152 * Store(0, Local2) 153 * Store(0, Local3) 154 * Store(0, Local4) 155 * Store(0, Local5) 156 * Store(0, Local6) 157 * Store(0, Local7) 158 * } 159 */ 160 Local7 = ObjectType (Local0) 161 If ((Local7 != C008)) 162 { 163 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C008) 164 } 165 166 Local7 = ObjectType (Local1) 167 If ((Local7 != C008)) 168 { 169 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C008) 170 } 171 172 Local7 = ObjectType (Local2) 173 If ((Local7 != C008)) 174 { 175 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C008) 176 } 177 178 Local7 = ObjectType (Local3) 179 If ((Local7 != C008)) 180 { 181 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C008) 182 } 183 184 Local7 = ObjectType (Local4) 185 If ((Local7 != C008)) 186 { 187 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C008) 188 } 189 190 Local7 = ObjectType (Local5) 191 If ((Local7 != C008)) 192 { 193 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C008) 194 } 195 196 Local7 = ObjectType (Local6) 197 If ((Local7 != C008)) 198 { 199 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C008) 200 } 201 } 202 Case (0x01) 203 { 204 /* 32-bit Integers */ 205 /* By LocalX */ 206 Local0 = 0x12345678 207 Local7 = ObjectType (Local0) 208 If ((Local7 != C009)) 209 { 210 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 211 } 212 213 If ((Local0 != 0x12345678)) 214 { 215 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local0, 0x12345678) 216 } 217 218 /* By ArgX */ 219 220 Local7 = ObjectType (Arg2) 221 If ((Local7 != C009)) 222 { 223 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 224 } 225 226 If ((Arg2 != 0x81223344)) 227 { 228 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Arg2, 0x81223344) 229 } 230 231 /* By Name locally */ 232 233 Name (N000, 0x98127364) 234 Local7 = ObjectType (N000) 235 If ((Local7 != C009)) 236 { 237 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 238 } 239 240 If ((N000 != 0x98127364)) 241 { 242 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, N000, 0x98127364) 243 } 244 245 /* By Name globally */ 246 247 Local7 = ObjectType (N002) 248 If ((Local7 != C009)) 249 { 250 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 251 } 252 253 If ((N002 != 0x90801020)) 254 { 255 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, N002, 0x90801020) 256 } 257 258 /* Not a Buffer in 32-bit mode */ 259 260 Local0 = 0xA1B2C3D4E5C6E7F8 261 Local7 = ObjectType (Local0) 262 If ((Local7 != C009)) 263 { 264 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 265 } 266 } 267 Case (0x02) 268 { 269 /* 64-bit Integers */ 270 271 If ((F64 == 0x01)) 272 { 273 /* By LocalX */ 274 275 Local0 = 0xA1B2C3D4E5C6E7F8 276 Local7 = ObjectType (Local0) 277 If ((Local7 != C009)) 278 { 279 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 280 } 281 282 If ((Local0 != 0xA1B2C3D4E5C6E7F8)) 283 { 284 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local0, 0xA1B2C3D4E5C6E7F8) 285 } 286 287 /* By ArgX */ 288 289 Local7 = ObjectType (Arg2) 290 If ((Local7 != C009)) 291 { 292 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 293 } 294 295 If ((Arg2 != 0xFABEFAC489501248)) 296 { 297 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Arg2, 0xFABEFAC489501248) 298 } 299 300 /* By Name locally */ 301 302 Name (N001, 0x9081122384356647) 303 Local7 = ObjectType (N001) 304 If ((Local7 != C009)) 305 { 306 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 307 } 308 309 If ((N001 != 0x9081122384356647)) 310 { 311 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, N001, 0x9081122384356647) 312 } 313 314 /* By Name globally */ 315 316 Local7 = ObjectType (N003) 317 If ((Local7 != C009)) 318 { 319 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 320 } 321 322 If ((N003 != 0x9189192989396949)) 323 { 324 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, N003, 0x9189192989396949) 325 } 326 } 327 } 328 Case (0x03) 329 { 330 /* String */ 331 /* By LocalX */ 332 Local0 = "" 333 Local7 = ObjectType (Local0) 334 If ((Local7 != C00A)) 335 { 336 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00A) 337 } 338 339 Local0 = "1" 340 Local7 = ObjectType (Local0) 341 If ((Local7 != C00A)) 342 { 343 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00A) 344 } 345 346 Local0 = "abcd" 347 Local7 = ObjectType (Local0) 348 If ((Local7 != C00A)) 349 { 350 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00A) 351 } 352 353 Local0 = "qwrt" 354 Local7 = ObjectType (Local0) 355 If ((Local7 != C00A)) 356 { 357 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00A) 358 } 359 360 /* By ArgX */ 361 362 Local7 = ObjectType (Arg2) 363 If ((Local7 != C00A)) 364 { 365 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00A) 366 } 367 368 If ((Arg2 != "zxcvbnm0912345678ok")) 369 { 370 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Arg2, "zxcvbnm0912345678ok") 371 } 372 373 /* By Name locally */ 374 375 Name (N004, "") 376 Local7 = ObjectType (N004) 377 If ((Local7 != C00A)) 378 { 379 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00A) 380 } 381 382 If ((N004 != "")) 383 { 384 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, N004, "") 385 } 386 387 /* By Name globally */ 388 389 Local7 = ObjectType (N005) 390 If ((Local7 != C00A)) 391 { 392 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00A) 393 } 394 395 If ((N005 != "9876")) 396 { 397 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, N005, "9876") 398 } 399 } 400 Case (0x04) 401 { 402 /* Field Unit */ 403 /* OperationRegion(r000, SystemMemory, 0x100, 0x100) */ 404 Field (R000, ByteAcc, NoLock, Preserve) 405 { 406 F000, 8, 407 F222, 32, 408 F223, 57, 409 F224, 64, 410 F225, 71 411 } 412 413 F000 = 0x8D 414 Local7 = ObjectType (F000) 415 If ((Local7 != C00D)) 416 { 417 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 418 } 419 420 If ((F000 != 0x8D)) 421 { 422 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, F000, 0x8D) 423 } 424 425 Local7 = ObjectType (F222) 426 If ((Local7 != C00D)) 427 { 428 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 429 } 430 431 Local7 = ObjectType (F223) 432 If ((Local7 != C00D)) 433 { 434 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 435 } 436 437 Local7 = ObjectType (F224) 438 If ((Local7 != C00D)) 439 { 440 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 441 } 442 443 Local7 = ObjectType (F225) 444 If ((Local7 != C00D)) 445 { 446 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 447 } 448 } 449 Case (0x05) 450 { 451 /* BankField */ 452 /* OperationRegion(r001, SystemMemory, 0x100, 0x100) */ 453 Field (R001, ByteAcc, NoLock, Preserve) 454 { 455 BNK0, 8 456 } 457 458 BankField (R001, BNK0, 0x00, ByteAcc, NoLock, Preserve) 459 { 460 Offset (0x10), 461 BKF0, 8 462 } 463 464 BKF0 = 0x95 465 Local7 = ObjectType (BKF0) 466 If ((Local7 != C00D)) 467 { 468 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 469 } 470 471 If ((BKF0 != 0x95)) 472 { 473 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, BKF0, 0x95) 474 } 475 } 476 Case (0x06) 477 { 478 /* IndexField */ 479 480 OperationRegion (R002, SystemMemory, 0x0100, 0x0100) 481 Field (R002, ByteAcc, NoLock, Preserve) 482 { 483 F00A, 16, 484 F00B, 16 485 } 486 487 IndexField (F00A, F00B, ByteAcc, NoLock, Preserve) 488 { 489 IF00, 8, 490 IF01, 8 491 } 492 493 F00A = 0xA0 494 F00B = 0xA1 495 IF00 = 0xA2 496 IF01 = 0xA3 497 Local7 = ObjectType (F00A) 498 If ((Local7 != C00D)) 499 { 500 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 501 } 502 503 Local7 = ObjectType (F00B) 504 If ((Local7 != C00D)) 505 { 506 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 507 } 508 509 Local7 = ObjectType (IF00) 510 If ((Local7 != C00D)) 511 { 512 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 513 } 514 515 Local7 = ObjectType (IF01) 516 If ((Local7 != C00D)) 517 { 518 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00D) 519 } 520 } 521 Case (0x07) 522 { 523 /* Buffer */ 524 525 Local0 = Buffer (0x04) 526 { 527 0x00, 0x01, 0x02, 0x03 // .... 528 } 529 Local7 = ObjectType (Local0) 530 If ((Local7 != C00B)) 531 { 532 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00B) 533 } 534 535 If ((Local0 != Buffer (0x04) 536 { 537 0x00, 0x01, 0x02, 0x03 // .... 538 })) 539 { 540 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 541 } 542 } 543 Case (0x08) 544 { 545 /* Buffer */ 546 547 Local7 = ObjectType (Arg2) 548 If ((Local7 != C00B)) 549 { 550 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00B) 551 } 552 553 If ((Arg2 != Buffer (0x04) 554 { 555 0x04, 0x05, 0x06, 0x07 // .... 556 })) 557 { 558 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 559 } 560 } 561 Case (0x09) 562 { 563 /* Buffer */ 564 565 Name (B000, Buffer (0x04) 566 { 567 0x08, 0x09, 0x0A, 0x0B // .... 568 }) 569 Local7 = ObjectType (B000) 570 If ((Local7 != C00B)) 571 { 572 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00B) 573 } 574 575 If ((B000 != Buffer (0x04) 576 { 577 0x08, 0x09, 0x0A, 0x0B // .... 578 })) 579 { 580 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 581 } 582 } 583 Case (0x0A) 584 { 585 /* Buffer */ 586 587 Local7 = ObjectType (B003) 588 If ((Local7 != C00B)) 589 { 590 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00B) 591 } 592 593 If ((B003 != Buffer (0x04) 594 { 595 0x0C, 0x0D, 0x0E, 0x0F // .... 596 })) 597 { 598 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 599 } 600 } 601 Case (0x0B) 602 { 603 /* Buffer Field */ 604 605 Local0 = Buffer (0x04) 606 { 607 0x10, 0x11, 0x12, 0x13 // .... 608 } 609 CreateBitField (Local0, 0x03, F001) 610 Local7 = ObjectType (F001) 611 If ((Local7 != C016)) 612 { 613 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 614 } 615 616 If ((Local0 != Buffer (0x04) 617 { 618 0x10, 0x11, 0x12, 0x13 // .... 619 })) 620 { 621 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 622 } 623 } 624 Case (0x0C) 625 { 626 /* Buffer Field */ 627 628 Local0 = Buffer (0x04) 629 { 630 0x14, 0x15, 0x16, 0x17 // .... 631 } 632 CreateByteField (Local0, 0x03, F002) 633 Local7 = ObjectType (F002) 634 If ((Local7 != C016)) 635 { 636 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 637 } 638 639 If ((Local0 != Buffer (0x04) 640 { 641 0x14, 0x15, 0x16, 0x17 // .... 642 })) 643 { 644 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 645 } 646 } 647 Case (0x0D) 648 { 649 /* Buffer Field */ 650 651 Local0 = Buffer (0x04) 652 { 653 0x18, 0x19, 0x1A, 0x1B // .... 654 } 655 CreateDWordField (Local0, 0x00, F003) 656 Local7 = ObjectType (F003) 657 If ((Local7 != C016)) 658 { 659 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 660 } 661 662 If ((Local0 != Buffer (0x04) 663 { 664 0x18, 0x19, 0x1A, 0x1B // .... 665 })) 666 { 667 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 668 } 669 } 670 Case (0x0E) 671 { 672 /* Buffer Field */ 673 674 Local0 = Buffer (0x04) 675 { 676 0x1C, 0x1D, 0x1E, 0x1F // .... 677 } 678 CreateField (Local0, 0x00, 0x20, F004) 679 Local7 = ObjectType (F004) 680 If ((Local7 != C016)) 681 { 682 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 683 } 684 685 If ((Local0 != Buffer (0x04) 686 { 687 0x1C, 0x1D, 0x1E, 0x1F // .... 688 })) 689 { 690 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 691 } 692 } 693 Case (0x0F) 694 { 695 /* Buffer Field */ 696 697 Local0 = Buffer (0x09) 698 { 699 /* 0000 */ 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, // !"#$%&'( 700 /* 0008 */ 0x29 // ) 701 } 702 CreateField (Local0, 0x00, 0x40, F005) 703 Local7 = ObjectType (F005) 704 If ((Local7 != C016)) 705 { 706 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 707 } 708 709 If ((Local0 != Buffer (0x09) 710 { 711 /* 0000 */ 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, // !"#$%&'( 712 /* 0008 */ 0x29 // ) 713 })) 714 { 715 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 716 } 717 } 718 Case (0x10) 719 { 720 /* Buffer Field */ 721 722 Local0 = Buffer (0x09) 723 { 724 /* 0000 */ 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, // *+,-./01 725 /* 0008 */ 0x32 // 2 726 } 727 CreateField (Local0, 0x00, 0x41, F006) 728 Local7 = ObjectType (F006) 729 If ((Local7 != C016)) 730 { 731 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 732 } 733 734 If ((Local0 != Buffer (0x09) 735 { 736 /* 0000 */ 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, // *+,-./01 737 /* 0008 */ 0x32 // 2 738 })) 739 { 740 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 741 } 742 743 CreateField (Local0, 0x00, 0x11, F111) 744 Local7 = ObjectType (F111) 745 If ((Local7 != C016)) 746 { 747 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 748 } 749 750 CreateField (Local0, 0x00, 0x39, F112) 751 Local7 = ObjectType (F112) 752 If ((Local7 != C016)) 753 { 754 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 755 } 756 } 757 Case (0x11) 758 { 759 /* Buffer Field */ 760 761 Local0 = Buffer (0x09) 762 { 763 /* 0000 */ 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, // *+,-./01 764 /* 0008 */ 0x32 // 2 765 } 766 CreateQWordField (Local0, 0x00, F007) 767 Local7 = ObjectType (F007) 768 If ((Local7 != C016)) 769 { 770 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 771 } 772 773 If ((Local0 != Buffer (0x09) 774 { 775 /* 0000 */ 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, // *+,-./01 776 /* 0008 */ 0x32 // 2 777 })) 778 { 779 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 780 } 781 } 782 Case (0x12) 783 { 784 /* Buffer Field */ 785 786 Local0 = Buffer (0x04) 787 { 788 0x33, 0x34, 0x35, 0x36 // 3456 789 } 790 CreateWordField (Local0, 0x00, F008) 791 Local7 = ObjectType (F008) 792 If ((Local7 != C016)) 793 { 794 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 795 } 796 797 If ((Local0 != Buffer (0x04) 798 { 799 0x33, 0x34, 0x35, 0x36 // 3456 800 })) 801 { 802 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 803 } 804 } 805 Case (0x13) 806 { 807 /* Buffer Field */ 808 809 Local0 = "q" 810 Store (Local0 [0x00], Local1) 811 Local7 = ObjectType (Local1) 812 If ((Local7 != C016)) 813 { 814 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 815 } 816 817 If ((Local0 != "q")) 818 { 819 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 820 } 821 822 Local0 = "qw" 823 Store (Local0 [0x00], Local1) 824 Local7 = ObjectType (Local1) 825 If ((Local7 != C016)) 826 { 827 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 828 } 829 830 If ((Local0 != "qw")) 831 { 832 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 833 } 834 835 Local0 = "qwertyu" 836 Store (Local0 [0x00], Local1) 837 Local7 = ObjectType (Local1) 838 If ((Local7 != C016)) 839 { 840 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 841 } 842 843 If ((Local0 != "qwertyu")) 844 { 845 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 846 } 847 848 Local0 = "qwertyuiop" 849 Store (Local0 [0x00], Local1) 850 Local7 = ObjectType (Local1) 851 If ((Local7 != C016)) 852 { 853 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 854 } 855 856 If ((Local0 != "qwertyuiop")) 857 { 858 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 859 } 860 } 861 Case (0x14) 862 { 863 /* Buffer Field */ 864 865 Local0 = Buffer (0x04) 866 { 867 0x2A, 0x2B, 0x2C, 0x2D // *+,- 868 } 869 Store (Local0 [0x00], Local1) 870 Local7 = ObjectType (Local1) 871 If ((Local7 != C016)) 872 { 873 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 874 } 875 876 If ((Local0 != Buffer (0x04) 877 { 878 0x2A, 0x2B, 0x2C, 0x2D // *+,- 879 })) 880 { 881 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 882 } 883 884 Local0 = Buffer (0x08) 885 { 886 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31 // *+,-./01 887 } 888 Store (Local0 [0x00], Local1) 889 Local7 = ObjectType (Local1) 890 If ((Local7 != C016)) 891 { 892 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 893 } 894 895 If ((Local0 != Buffer (0x08) 896 { 897 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31 // *+,-./01 898 })) 899 { 900 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 901 } 902 903 Local0 = Buffer (0x09) 904 { 905 /* 0000 */ 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, // *+,-./01 906 /* 0008 */ 0x32 // 2 907 } 908 Store (Local0 [0x00], Local1) 909 Local7 = ObjectType (Local1) 910 If ((Local7 != C016)) 911 { 912 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C016) 913 } 914 915 If ((Local0 != Buffer (0x09) 916 { 917 /* 0000 */ 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, // *+,-./01 918 /* 0008 */ 0x32 // 2 919 })) 920 { 921 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 922 } 923 } 924 Case (0x15) 925 { 926 /* Index with ... */ 927 928 Local0 = Package (0x04) 929 { 930 Package (0x04) 931 { 932 0x98765432, 933 Buffer (0x01) 934 { 935 0x12 // . 936 }, 937 938 Package (0x01) 939 { 940 0x12345678 941 }, 942 943 "qwertyui" 944 }, 945 946 Buffer (0x01) 947 { 948 0x12 // . 949 }, 950 951 "q", 952 0x98765432 953 } 954 /* Package */ 955 956 Store (Local0 [0x00], Local1) 957 Local7 = ObjectType (Local1) 958 If ((Local7 != C00C)) 959 { 960 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 961 } 962 963 /* Buffer */ 964 965 Store (Local0 [0x01], Local1) 966 Local7 = ObjectType (Local1) 967 If ((Local7 != C00B)) 968 { 969 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00B) 970 } 971 972 /* String */ 973 974 Store (Local0 [0x02], Local1) 975 Local7 = ObjectType (Local1) 976 If ((Local7 != C00A)) 977 { 978 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00A) 979 } 980 981 /* Integer */ 982 983 Store (Local0 [0x03], Local1) 984 Local7 = ObjectType (Local1) 985 If ((Local7 != C009)) 986 { 987 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C009) 988 } 989 } 990 Case (0x16) 991 { 992 /* Operation Region */ 993 994 DataTableRegion (HDR0, "DSDT", "", "") 995 Local7 = ObjectType (HDR0) 996 If ((Local7 != C012)) 997 { 998 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C012) 999 } 1000 } 1001 Case (0x17) 1002 { 1003 /* Debug Object */ 1004 1005 Local7 = ObjectType (Debug) 1006 If ((Local7 != C018)) 1007 { 1008 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C018) 1009 } 1010 } 1011 Case (0x18) 1012 { 1013 /* Device */ 1014 1015 Device (DV00) 1016 { 1017 } 1018 1019 Local7 = ObjectType (DV00) 1020 If ((Local7 != C00E)) 1021 { 1022 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00E) 1023 } 1024 } 1025 Case (0x19) 1026 { 1027 /* Event */ 1028 1029 Event (EVT0) 1030 Local7 = ObjectType (EVT0) 1031 If ((Local7 != C00F)) 1032 { 1033 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00F) 1034 } 1035 } 1036 Case (0x1A) 1037 { 1038 /* Method */ 1039 1040 Method (M0F2, 0, NotSerialized) 1041 { 1042 Return (0x1234) 1043 } 1044 1045 Local7 = ObjectType (M0F2) 1046 If ((Local7 != C010)) 1047 { 1048 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C010) 1049 } 1050 } 1051 Case (0x1B) 1052 { 1053 /* 1054 * // Function 1055 * 1056 * Function(mof3) { return (0) } 1057 * Store(ObjectType(m0f3), Local7) 1058 * if (LNotEqual(Local7, c010)) { 1059 * err(arg0, z040, __LINE__, 0, 0, Local7, c010) 1060 * } 1061 */ 1062 } 1063 Case (0x1C) 1064 { 1065 /* Mutex */ 1066 1067 Mutex (MT00, 0x00) 1068 Local7 = ObjectType (MT00) 1069 If ((Local7 != C011)) 1070 { 1071 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C011) 1072 } 1073 } 1074 Case (0x1D) 1075 { 1076 /* Operation Region */ 1077 1078 Local7 = ObjectType (R000) 1079 If ((Local7 != C012)) 1080 { 1081 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C012) 1082 } 1083 1084 Local7 = ObjectType (R001) 1085 If ((Local7 != C012)) 1086 { 1087 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C012) 1088 } 1089 } 1090 Case (0x1E) 1091 { 1092 /* Package */ 1093 1094 Name (P000, Package (0x01) 1095 { 1096 0x12345678 1097 }) 1098 Name (P001, Package (0x02) 1099 { 1100 0x12345678, 1101 0x9ABCDEF0 1102 }) 1103 Name (P002, Package (0x03) 1104 { 1105 0x12345678, 1106 0x9ABCDEF0, 1107 0x9ABCDEF0 1108 }) 1109 Name (P003, Package (0x01) 1110 { 1111 0x123456789ABCDEF0 1112 }) 1113 Name (P004, Package (0x02) 1114 { 1115 0x123456789ABCDEF0, 1116 0x123456789ABCDEF0 1117 }) 1118 Name (P005, Package (0x03) 1119 { 1120 0x123456789ABCDEF0, 1121 0x123456789ABCDEF0, 1122 0x123456789ABCDEF0 1123 }) 1124 Name (P006, Package (0x01) 1125 { 1126 Buffer (0x01){} 1127 }) 1128 Name (P007, Package (0x01) 1129 { 1130 Buffer (0x20){} 1131 }) 1132 Name (P008, Package (0x01) 1133 { 1134 Buffer (0x40){} 1135 }) 1136 Name (P009, Package (0x01) 1137 { 1138 Buffer (0x7D){} 1139 }) 1140 Name (P00A, Package (0x02) 1141 { 1142 0x12, 1143 Buffer (0x01) 1144 { 1145 0x12 // . 1146 } 1147 }) 1148 Name (P00B, Package (0x02) 1149 { 1150 0x12, 1151 Package (0x01) 1152 { 1153 0x12 1154 } 1155 }) 1156 Name (P00C, Package (0x01) 1157 { 1158 Buffer (0x01) 1159 { 1160 0x12 // . 1161 } 1162 }) 1163 Name (P00D, Package (0x02) 1164 { 1165 Buffer (0x01) 1166 { 1167 0x12 // . 1168 }, 1169 1170 0x12345678 1171 }) 1172 Name (P00E, Package (0x02) 1173 { 1174 Buffer (0x01) 1175 { 1176 0x12 // . 1177 }, 1178 1179 Buffer (0x01) 1180 { 1181 0x12 // . 1182 } 1183 }) 1184 Name (P00F, Package (0x02) 1185 { 1186 Buffer (0x01) 1187 { 1188 0x12 // . 1189 }, 1190 1191 Package (0x01) 1192 { 1193 0x12 1194 } 1195 }) 1196 Name (P010, Package (0x01) 1197 { 1198 Package (0x01) 1199 { 1200 0x12345678 1201 } 1202 }) 1203 Name (P011, Package (0x02) 1204 { 1205 Package (0x01) 1206 { 1207 0x12345678 1208 }, 1209 1210 0x12345678 1211 }) 1212 Name (P012, Package (0x02) 1213 { 1214 Package (0x01) 1215 { 1216 0x12345678 1217 }, 1218 1219 Buffer (0x01) 1220 { 1221 0x12 // . 1222 } 1223 }) 1224 Name (P013, Package (0x02) 1225 { 1226 Package (0x01) 1227 { 1228 0x12345678 1229 }, 1230 1231 Package (0x01) 1232 { 1233 0x12 1234 } 1235 }) 1236 Local7 = ObjectType (P000) 1237 If ((Local7 != C00C)) 1238 { 1239 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1240 } 1241 1242 Local7 = ObjectType (P001) 1243 If ((Local7 != C00C)) 1244 { 1245 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1246 } 1247 1248 Local7 = ObjectType (P002) 1249 If ((Local7 != C00C)) 1250 { 1251 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1252 } 1253 1254 Local7 = ObjectType (P003) 1255 If ((Local7 != C00C)) 1256 { 1257 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1258 } 1259 1260 Local7 = ObjectType (P004) 1261 If ((Local7 != C00C)) 1262 { 1263 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1264 } 1265 1266 Local7 = ObjectType (P005) 1267 If ((Local7 != C00C)) 1268 { 1269 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1270 } 1271 1272 Local7 = ObjectType (P006) 1273 If ((Local7 != C00C)) 1274 { 1275 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1276 } 1277 1278 Local7 = ObjectType (P007) 1279 If ((Local7 != C00C)) 1280 { 1281 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1282 } 1283 1284 Local7 = ObjectType (P008) 1285 If ((Local7 != C00C)) 1286 { 1287 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1288 } 1289 1290 Local7 = ObjectType (P009) 1291 If ((Local7 != C00C)) 1292 { 1293 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1294 } 1295 1296 Local7 = ObjectType (P00A) 1297 If ((Local7 != C00C)) 1298 { 1299 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1300 } 1301 1302 Local7 = ObjectType (P00B) 1303 If ((Local7 != C00C)) 1304 { 1305 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1306 } 1307 1308 Local7 = ObjectType (P00C) 1309 If ((Local7 != C00C)) 1310 { 1311 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1312 } 1313 1314 Local7 = ObjectType (P00D) 1315 If ((Local7 != C00C)) 1316 { 1317 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1318 } 1319 1320 Local7 = ObjectType (P00E) 1321 If ((Local7 != C00C)) 1322 { 1323 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1324 } 1325 1326 Local7 = ObjectType (P00F) 1327 If ((Local7 != C00C)) 1328 { 1329 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1330 } 1331 1332 Local7 = ObjectType (P010) 1333 If ((Local7 != C00C)) 1334 { 1335 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1336 } 1337 1338 Local7 = ObjectType (P011) 1339 If ((Local7 != C00C)) 1340 { 1341 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1342 } 1343 1344 Local7 = ObjectType (P012) 1345 If ((Local7 != C00C)) 1346 { 1347 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1348 } 1349 1350 Local7 = ObjectType (P013) 1351 If ((Local7 != C00C)) 1352 { 1353 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C00C) 1354 } 1355 } 1356 Case (0x1F) 1357 { 1358 /* Power Resource */ 1359 1360 PowerResource (PWR0, 0x01, 0x0000) 1361 { 1362 Method (M000, 0, NotSerialized) 1363 { 1364 Return (0x00) 1365 } 1366 } 1367 1368 Local7 = ObjectType (PWR0) 1369 If ((Local7 != C013)) 1370 { 1371 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C013) 1372 } 1373 } 1374 Case (0x20) 1375 { 1376 /* Processor */ 1377 1378 Processor (PR00, 0x00, 0xFFFFFFFF, 0x00){} 1379 Local7 = ObjectType (PR00) 1380 If ((Local7 != C014)) 1381 { 1382 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C014) 1383 } 1384 } 1385 Case (0x21) 1386 { 1387 ThermalZone (TZ00) 1388 { 1389 } 1390 1391 Local7 = ObjectType (TZ00) 1392 If ((Local7 != C015)) 1393 { 1394 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, Local7, C015) 1395 } 1396 } 1397 Case (0x22) 1398 { 1399 /* 1400 // Reserved for DDB Handle 1401 Store("==================================== zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", Debug) 1402 // Store (LoadTable ("OEM1", "MYOEM", "TABLE1", "\\_SB.PCI0", "MYD", 1403 // Package () {0, "\\_SB.PCI0"}), Local0) 1404 Store (LoadTable("OEM1", "MYOEM", "TABLE1"), Local0) 1405 Store(ObjectType(Local0), Local7) 1406 if (LNotEqual(Local7, c017)) { 1407 err(arg0, z040, __LINE__, 0, 0, Local7, c017) 1408 } 1409 Store("==================================== uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu", Debug) 1410 */ 1411 } 1412 Default 1413 { 1414 ERR (Arg0, Z040, __LINE__, 0x00, 0x00, 0x00, 0x00) 1415 } 1416 1417 } 1418 1419 Return (Local7) 1420 } 1421 1422 Method (M0F0, 0, Serialized) 1423 { 1424 Debug = "TEST: m0f0, ObjectType" 1425 Local5 = 0x00 1426 Local4 = 0x23 1427 While (Local4) 1428 { 1429 Local2 = 0x00 1430 Switch (ToInteger (Local5)) 1431 { 1432 Case (0x01) 1433 { 1434 Local2 = 0x81223344 1435 } 1436 Case (0x02) 1437 { 1438 Local2 = 0xFABEFAC489501248 1439 } 1440 Case (0x03) 1441 { 1442 Local2 = "zxcvbnm0912345678ok" 1443 } 1444 Case (0x08) 1445 { 1446 Local2 = Buffer (0x04) 1447 { 1448 0x04, 0x05, 0x06, 0x07 // .... 1449 } 1450 } 1451 1452 } 1453 1454 M0F1 (__METHOD__, Local5, Local2, 0x00, 0x00, 0x00, 0x00) 1455 Local5++ 1456 Local4-- 1457 } 1458 } 1459 1460 /* Run-method */ 1461 1462 Method (OBT0, 0, NotSerialized) 1463 { 1464 Debug = "TEST: OBT0, Type of object" 1465 M0F0 () 1466 } 1467