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 * Device 30 * 31 * (verify exceptions caused by the imprope use of Device type objects) 32 */ 33 Name (Z098, 0x62) 34 Device (DEV0) 35 { 36 } 37 38 /* Expected exceptions: */ 39 /* */ 40 /* 47 - AE_AML_OPERAND_TYPE */ 41 /* */ 42 Method (M4B6, 0, Serialized) 43 { 44 Device (DEV1) 45 { 46 } 47 48 Event (E000) 49 Name (I000, 0x00) 50 /* Local Named Object */ 51 /* These are now caught by the compiler - Aug 2015 52 Method(m000, 1, Serialized) 53 { 54 Device(dev2) {} 55 Store (DerefOf(dev2), Local1) 56 CH06(arg0, 0, 47) 57 } 58 */ 59 /* Global Named Object */ 60 /* These are now caught by the compiler - Aug 2015 61 Method(m001, 1) 62 { 63 if (y083) { 64 Store (DerefOf(dev0), Local1) 65 CH06(arg0, 1, 47) 66 } 67 } 68 */ 69 /* Local */ 70 Method (M002, 1, Serialized) 71 { 72 Device (DEV2) 73 { 74 } 75 76 Event (E000) 77 CopyObject (DEV2, Local0) 78 /* CondRefOf */ 79 80 CondRefOf (Local0, Local1) 81 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 82 /* CopyObject */ 83 84 CopyObject (Local0, Local1) 85 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 86 /* Decrement */ 87 88 Local0-- 89 CH06 (Arg0, 0x01, 0x2F) 90 /* DerefOf */ 91 92 Local1 = DerefOf (Local0) 93 CH06 (Arg0, 0x02, 0x2F) 94 /* FindSetLeftBit */ 95 96 FindSetLeftBit (Local0, Local1) 97 CH06 (Arg0, 0x04, 0x2F) 98 /* FindSetRightBit */ 99 100 FindSetRightBit (Local0, Local1) 101 CH06 (Arg0, 0x06, 0x2F) 102 /* FromBCD */ 103 104 FromBCD (Local0, Local1) 105 CH06 (Arg0, 0x08, 0x2F) 106 /* Increment */ 107 108 Local0++ 109 CH06 (Arg0, 0x09, 0x2F) 110 /* LNot */ 111 112 Local1 = !Local0 113 CH06 (Arg0, 0x0A, 0x2F) 114 /* Not */ 115 116 Local1 = ~Local0 117 CH06 (Arg0, 0x0C, 0x2F) 118 /* ObjectType */ 119 120 Local1 = ObjectType (Local0) 121 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 122 /* RefOf */ 123 124 Local1 = RefOf (Local0) 125 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 126 /* Release */ 127 128 Release (Local0) 129 CH06 (Arg0, 0x0D, 0x2F) 130 /* Reset */ 131 132 Reset (Local0) 133 CH06 (Arg0, 0x0E, 0x2F) 134 /* Signal */ 135 136 Signal (Local0) 137 CH06 (Arg0, 0x0F, 0x2F) 138 /* SizeOf */ 139 140 Local1 = SizeOf (Local0) 141 CH06 (Arg0, 0x10, 0x2F) 142 /* Sleep */ 143 144 Sleep (Local0) 145 CH06 (Arg0, 0x11, 0x2F) 146 /* Stall */ 147 148 Stall (Local0) 149 CH06 (Arg0, 0x12, 0x2F) 150 /* Store */ 151 152 Local1 = Local0 153 CH06 (Arg0, 0x13, 0x2F) 154 /* ToBCD */ 155 156 ToBCD (Local0, Local1) 157 CH06 (Arg0, 0x15, 0x2F) 158 /* ToBuffer */ 159 160 ToBuffer (Local0, Local1) 161 CH06 (Arg0, 0x17, 0x2F) 162 /* ToDecimalString */ 163 164 ToDecimalString (Local0, Local1) 165 CH06 (Arg0, 0x19, 0x2F) 166 /* ToHexString */ 167 168 ToHexString (Local0, Local1) 169 CH06 (Arg0, 0x1B, 0x2F) 170 /* ToInteger */ 171 172 ToInteger (Local0, Local1) 173 CH06 (Arg0, 0x1D, 0x2F) 174 /* Acquire */ 175 176 Local1 = Acquire (Local0, 0x0064) 177 CH06 (Arg0, 0x1E, 0x2F) 178 /* Add */ 179 180 Local1 = (Local0 + I000) /* \M4B6.I000 */ 181 CH06 (Arg0, 0x21, 0x2F) 182 Local1 = (I000 + Local0) 183 CH06 (Arg0, 0x22, 0x2F) 184 /* And */ 185 186 Local1 = (Local0 & I000) /* \M4B6.I000 */ 187 CH06 (Arg0, 0x25, 0x2F) 188 Local1 = (I000 & Local0) 189 CH06 (Arg0, 0x26, 0x2F) 190 /* Concatenate */ 191 192 Concatenate (Local0, I000, Local1) 193 CH06 (Arg0, 0x29, 0x2F) 194 Concatenate (I000, Local0, Local1) 195 CH06 (Arg0, 0x2A, 0x2F) 196 /* ConcatenateResTemplate */ 197 198 ConcatenateResTemplate (Local0, Buffer (0x02) 199 { 200 0x79, 0x00 // y. 201 }, Local1) 202 CH06 (Arg0, 0x2D, 0x2F) 203 ConcatenateResTemplate (Buffer (0x02) 204 { 205 0x79, 0x00 // y. 206 }, Local0, Local1) 207 CH06 (Arg0, 0x2E, 0x2F) 208 /* Divide */ 209 210 Divide (Local0, I000, Local2) 211 CH06 (Arg0, 0x31, 0x2F) 212 Divide (I000, Local0, Local2) 213 CH06 (Arg0, 0x32, 0x2F) 214 Divide (Local0, I000, Local2, Local1) 215 CH06 (Arg0, 0x33, 0x2F) 216 Divide (I000, Local0, Local2, Local1) 217 CH06 (Arg0, 0x34, 0x2F) 218 /* Fatal */ 219 220 Fatal (0xFF, 0xFFFFFFFF, Local0) 221 CH06 (Arg0, 0x35, 0x2F) 222 /* Index */ 223 224 Local1 = Local0 [0x00] 225 CH06 (Arg0, 0x38, 0x2F) 226 Index ("0", Local0, Local1) 227 CH06 (Arg0, 0x39, 0x2F) 228 /* LEqual */ 229 230 Local1 = (Local0 == I000) 231 CH06 (Arg0, 0x3A, 0x2F) 232 Local1 = (I000 == Local0) 233 CH06 (Arg0, 0x3B, 0x2F) 234 /* LGreater */ 235 236 Local1 = (Local0 > I000) 237 CH06 (Arg0, 0x3C, 0x2F) 238 Local1 = (I000 > Local0) 239 CH06 (Arg0, 0x3D, 0x2F) 240 /* LGreaterEqual */ 241 242 Local1 = (Local0 >= I000) 243 CH06 (Arg0, 0x3E, 0xFF) 244 Local1 = (I000 >= Local0) 245 CH06 (Arg0, 0x3F, 0xFF) 246 /* LLess */ 247 248 Local1 = (Local0 < I000) 249 CH06 (Arg0, 0x40, 0x2F) 250 Local1 = (I000 < Local0) 251 CH06 (Arg0, 0x41, 0x2F) 252 /* LLessEqual */ 253 254 Local1 = (Local0 <= I000) 255 CH06 (Arg0, 0x42, 0xFF) 256 Local1 = (I000 <= Local0) 257 CH06 (Arg0, 0x43, 0xFF) 258 /* LNotEqual */ 259 260 Local1 = (Local0 != I000) 261 CH06 (Arg0, 0x44, 0xFF) 262 Local1 = (I000 != Local0) 263 CH06 (Arg0, 0x45, 0xFF) 264 /* LOr */ 265 266 Local1 = (Local0 || I000) 267 CH06 (Arg0, 0x46, 0x2F) 268 Local1 = (I000 || Local0) 269 CH06 (Arg0, 0x47, 0x2F) 270 /* Mod */ 271 272 Local1 = (Local0 % I000) /* \M4B6.I000 */ 273 CH06 (Arg0, 0x4A, 0x2F) 274 Local1 = (I000 % Local0) 275 CH06 (Arg0, 0x4B, 0x2F) 276 /* Multiply */ 277 278 Local1 = (Local0 * I000) /* \M4B6.I000 */ 279 CH06 (Arg0, 0x4E, 0x2F) 280 Local1 = (I000 * Local0) 281 CH06 (Arg0, 0x4F, 0x2F) 282 /* NAnd */ 283 284 NAnd (Local0, I000, Local1) 285 CH06 (Arg0, 0x52, 0x2F) 286 NAnd (I000, Local0, Local1) 287 CH06 (Arg0, 0x53, 0x2F) 288 /* NOr */ 289 290 NOr (Local0, I000, Local1) 291 CH06 (Arg0, 0x56, 0x2F) 292 NOr (I000, Local0, Local1) 293 CH06 (Arg0, 0x57, 0x2F) 294 /* Or */ 295 296 Local1 = (Local0 | I000) /* \M4B6.I000 */ 297 CH06 (Arg0, 0x5A, 0x2F) 298 Local1 = (I000 | Local0) 299 CH06 (Arg0, 0x5B, 0x2F) 300 /* ShiftLeft */ 301 302 Local1 = (Local0 << I000) /* \M4B6.I000 */ 303 CH06 (Arg0, 0x5E, 0x2F) 304 Local1 = (I000 << Local0) 305 CH06 (Arg0, 0x5F, 0x2F) 306 /* ShiftRight */ 307 308 Local1 = (Local0 >> I000) /* \M4B6.I000 */ 309 CH06 (Arg0, 0x62, 0x2F) 310 Local1 = (I000 >> Local0) 311 CH06 (Arg0, 0x63, 0x2F) 312 /* Subtract */ 313 314 Local1 = (Local0 - I000) /* \M4B6.I000 */ 315 CH06 (Arg0, 0x66, 0x2F) 316 Local1 = (I000 - Local0) 317 CH06 (Arg0, 0x67, 0x2F) 318 /* ToString */ 319 320 ToString (Local0, 0x01, Local1) 321 CH06 (Arg0, 0x6A, 0x2F) 322 ToString (I000, Local0, Local1) 323 CH06 (Arg0, 0x6B, 0x2F) 324 /* Wait */ 325 326 Local1 = Wait (Local0, I000) 327 CH06 (Arg0, 0x6C, 0x2F) 328 Local1 = Wait (E000, Local0) 329 CH06 (Arg0, 0x6D, 0x2F) 330 /* XOr */ 331 332 Local1 = (Local0 ^ I000) /* \M4B6.I000 */ 333 CH06 (Arg0, 0x70, 0x2F) 334 Local1 = (I000 ^ Local0) 335 CH06 (Arg0, 0x71, 0x2F) 336 /* Mid */ 337 338 Mid (Local0, 0x01, 0x01, Local1) 339 CH06 (Arg0, 0x75, 0x2F) 340 Mid ("123", Local0, 0x01, Local1) 341 CH06 (Arg0, 0x76, 0x2F) 342 Mid ("123", 0x01, Local0, Local1) 343 CH06 (Arg0, 0x77, 0x2F) 344 /* Match */ 345 346 Local1 = Match (Local0, MTR, 0x00, MTR, 0x00, 0x00) 347 CH06 (Arg0, 0x78, 0x2F) 348 Local1 = Match (Package (0x01) 349 { 350 0x01 351 }, MTR, Local0, MTR, 0x00, 0x00) 352 CH06 (Arg0, 0x79, 0x2F) 353 Local1 = Match (Package (0x01) 354 { 355 0x01 356 }, MTR, 0x00, MTR, Local0, 0x00) 357 CH06 (Arg0, 0x7A, 0x2F) 358 Local1 = Match (Package (0x01) 359 { 360 0x01 361 }, MTR, 0x00, MTR, 0x00, Local0) 362 CH06 (Arg0, 0x7B, 0x2F) 363 } 364 365 /* Reference to Object */ 366 367 Method (M003, 3, Serialized) 368 { 369 Name (EXC0, 0x2F) /* AE_AML_OPERAND_TYPE */ 370 Local0 = ObjectType (Arg1) 371 If ((Local0 != 0x06)) 372 { 373 ERR (Arg0, Z098, __LINE__, 0x00, 0x00, Local0, 0x06) 374 Return (0x01) 375 } 376 377 If (Arg2) 378 { 379 If (!Y503) 380 { 381 EXC0 = 0x3E /* AE_AML_NO_RETURN_VALUE */ 382 } 383 } 384 385 Local1 = DerefOf (Arg1) 386 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 387 /* CondRefOf */ 388 389 CondRefOf (DerefOf (Arg1), Local1) 390 CH06 (Arg0, 0x01, EXC0) 391 /* CopyObject */ 392 393 CopyObject (DerefOf (Arg1), Local1) 394 CH06 (Arg0, 0x02, EXC0) 395 /* Decrement */ 396 397 DerefOf (Arg1)-- 398 CH06 (Arg0, 0x03, EXC0) 399 /* DerefOf */ 400 401 Local1 = DerefOf (DerefOf (Arg1)) 402 CH06 (Arg0, 0x04, EXC0) 403 /* FindSetLeftBit */ 404 405 FindSetLeftBit (DerefOf (Arg1), Local1) 406 CH06 (Arg0, 0x06, EXC0) 407 /* FindSetRightBit */ 408 409 FindSetRightBit (DerefOf (Arg1), Local1) 410 CH06 (Arg0, 0x08, EXC0) 411 /* FromBCD */ 412 413 FromBCD (DerefOf (Arg1), Local1) 414 CH06 (Arg0, 0x0A, EXC0) 415 /* Increment */ 416 417 DerefOf (Arg1)++ 418 CH06 (Arg0, 0x0B, EXC0) 419 /* LNot */ 420 421 Local1 = !DerefOf (Arg1) 422 CH06 (Arg0, 0x0C, EXC0) 423 /* Not */ 424 425 Local1 = ~DerefOf (Arg1) 426 CH06 (Arg0, 0x0E, EXC0) 427 /* ObjectType */ 428 429 Local1 = ObjectType (DerefOf (Arg1)) 430 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 431 /* RefOf */ 432 433 Local1 = RefOf (DerefOf (Arg1)) 434 CH06 (Arg0, 0x0F, EXC0) 435 /* Release */ 436 /* Reset */ 437 /* Signal */ 438 /* SizeOf */ 439 Local1 = SizeOf (DerefOf (Arg1)) 440 CH06 (Arg0, 0x10, EXC0) 441 /* Sleep */ 442 443 Sleep (DerefOf (Arg1)) 444 CH06 (Arg0, 0x11, EXC0) 445 /* Stall */ 446 447 Stall (DerefOf (Arg1)) 448 CH06 (Arg0, 0x12, EXC0) 449 /* Store */ 450 451 Local1 = DerefOf (Arg1) 452 CH06 (Arg0, 0x13, EXC0) 453 /* ToBCD */ 454 455 ToBCD (DerefOf (Arg1), Local1) 456 CH06 (Arg0, 0x15, EXC0) 457 /* ToBuffer */ 458 459 ToBuffer (DerefOf (Arg1), Local1) 460 CH06 (Arg0, 0x17, EXC0) 461 /* ToDecimalString */ 462 463 ToDecimalString (DerefOf (Arg1), Local1) 464 CH06 (Arg0, 0x19, EXC0) 465 /* ToHexString */ 466 467 ToHexString (DerefOf (Arg1), Local1) 468 CH06 (Arg0, 0x1B, EXC0) 469 /* ToInteger */ 470 471 ToInteger (DerefOf (Arg1), Local1) 472 CH06 (Arg0, 0x1D, EXC0) 473 /* Acquire */ 474 /* Add */ 475 Local1 = (DerefOf (Arg1) + I000) /* \M4B6.I000 */ 476 CH06 (Arg0, 0x21, EXC0) 477 Local1 = (I000 + DerefOf (Arg1)) 478 CH06 (Arg0, 0x22, EXC0) 479 /* And */ 480 481 Local1 = (DerefOf (Arg1) & I000) /* \M4B6.I000 */ 482 CH06 (Arg0, 0x25, EXC0) 483 Local1 = (I000 & DerefOf (Arg1)) 484 CH06 (Arg0, 0x26, EXC0) 485 /* Concatenate */ 486 487 Concatenate (DerefOf (Arg1), I000, Local1) 488 CH06 (Arg0, 0x29, EXC0) 489 Concatenate (I000, DerefOf (Arg1), Local1) 490 CH06 (Arg0, 0x2A, EXC0) 491 /* ConcatenateResTemplate */ 492 493 ConcatenateResTemplate (DerefOf (Arg1), Buffer (0x02) 494 { 495 0x79, 0x00 // y. 496 }, Local1) 497 CH06 (Arg0, 0x2D, EXC0) 498 ConcatenateResTemplate (Buffer (0x02) 499 { 500 0x79, 0x00 // y. 501 }, DerefOf (Arg1), Local1) 502 CH06 (Arg0, 0x2E, EXC0) 503 /* Divide */ 504 505 Divide (DerefOf (Arg1), I000, Local2) 506 CH06 (Arg0, 0x31, EXC0) 507 Divide (I000, DerefOf (Arg1), Local2) 508 CH06 (Arg0, 0x32, EXC0) 509 Divide (DerefOf (Arg1), I000, Local2, Local1) 510 CH06 (Arg0, 0x33, EXC0) 511 Divide (I000, DerefOf (Arg1), Local2, Local1) 512 CH06 (Arg0, 0x34, EXC0) 513 /* Fatal */ 514 515 Fatal (0xFF, 0xFFFFFFFF, DerefOf (Arg1)) 516 CH06 (Arg0, 0x35, EXC0) 517 /* Index */ 518 519 Local1 = DerefOf (Arg1) [0x00] 520 CH06 (Arg0, 0x38, EXC0) 521 Index ("0", DerefOf (Arg1), Local1) 522 CH06 (Arg0, 0x39, EXC0) 523 /* LEqual */ 524 525 Local1 = (DerefOf (Arg1) == I000) 526 CH06 (Arg0, 0x3A, EXC0) 527 Local1 = (I000 == DerefOf (Arg1)) 528 CH06 (Arg0, 0x3B, EXC0) 529 /* LGreater */ 530 531 Local1 = (DerefOf (Arg1) > I000) 532 CH06 (Arg0, 0x3C, EXC0) 533 Local1 = (I000 > DerefOf (Arg1)) 534 CH06 (Arg0, 0x3D, EXC0) 535 /* LGreaterEqual */ 536 537 Local1 = (DerefOf (Arg1) >= I000) 538 CH06 (Arg0, 0x3E, 0xFF) 539 Local1 = (I000 >= DerefOf (Arg1)) 540 CH06 (Arg0, 0x3F, 0xFF) 541 /* LLess */ 542 543 Local1 = (DerefOf (Arg1) < I000) 544 CH06 (Arg0, 0x40, EXC0) 545 Local1 = (I000 < DerefOf (Arg1)) 546 CH06 (Arg0, 0x41, EXC0) 547 /* LLessEqual */ 548 549 Local1 = (DerefOf (Arg1) <= I000) 550 CH06 (Arg0, 0x42, 0xFF) 551 Local1 = (I000 <= DerefOf (Arg1)) 552 CH06 (Arg0, 0x43, 0xFF) 553 /* LNotEqual */ 554 555 Local1 = (DerefOf (Arg1) != I000) 556 CH06 (Arg0, 0x44, 0xFF) 557 Local1 = (I000 != DerefOf (Arg1)) 558 CH06 (Arg0, 0x45, 0xFF) 559 /* LOr */ 560 561 Local1 = (DerefOf (Arg1) || I000) 562 CH06 (Arg0, 0x46, EXC0) 563 Local1 = (I000 || DerefOf (Arg1)) 564 CH06 (Arg0, 0x47, EXC0) 565 /* Mod */ 566 567 Local1 = (DerefOf (Arg1) % I000) /* \M4B6.I000 */ 568 CH06 (Arg0, 0x4A, EXC0) 569 Local1 = (I000 % DerefOf (Arg1)) 570 CH06 (Arg0, 0x4B, EXC0) 571 /* Multiply */ 572 573 Local1 = (DerefOf (Arg1) * I000) /* \M4B6.I000 */ 574 CH06 (Arg0, 0x4E, EXC0) 575 Local1 = (I000 * DerefOf (Arg1)) 576 CH06 (Arg0, 0x4F, EXC0) 577 /* NAnd */ 578 579 NAnd (DerefOf (Arg1), I000, Local1) 580 CH06 (Arg0, 0x52, EXC0) 581 NAnd (I000, DerefOf (Arg1), Local1) 582 CH06 (Arg0, 0x53, EXC0) 583 /* NOr */ 584 585 NOr (DerefOf (Arg1), I000, Local1) 586 CH06 (Arg0, 0x56, EXC0) 587 NOr (I000, DerefOf (Arg1), Local1) 588 CH06 (Arg0, 0x57, EXC0) 589 /* Or */ 590 591 Local1 = (DerefOf (Arg1) | I000) /* \M4B6.I000 */ 592 CH06 (Arg0, 0x5A, EXC0) 593 Local1 = (I000 | DerefOf (Arg1)) 594 CH06 (Arg0, 0x5B, EXC0) 595 /* ShiftLeft */ 596 597 Local1 = (DerefOf (Arg1) << I000) /* \M4B6.I000 */ 598 CH06 (Arg0, 0x5E, EXC0) 599 Local1 = (I000 << DerefOf (Arg1)) 600 CH06 (Arg0, 0x5F, EXC0) 601 /* ShiftRight */ 602 603 Local1 = (DerefOf (Arg1) >> I000) /* \M4B6.I000 */ 604 CH06 (Arg0, 0x62, EXC0) 605 Local1 = (I000 >> DerefOf (Arg1)) 606 CH06 (Arg0, 0x63, EXC0) 607 /* Subtract */ 608 609 Local1 = (DerefOf (Arg1) - I000) /* \M4B6.I000 */ 610 CH06 (Arg0, 0x66, EXC0) 611 Local1 = (I000 - DerefOf (Arg1)) 612 CH06 (Arg0, 0x67, EXC0) 613 /* ToString */ 614 615 ToString (DerefOf (Arg1), 0x01, Local1) 616 CH06 (Arg0, 0x6A, EXC0) 617 ToString (I000, DerefOf (Arg1), Local1) 618 CH06 (Arg0, 0x6B, EXC0) 619 /* Wait */ 620 621 Local1 = Wait (E000, DerefOf (Arg1)) 622 CH06 (Arg0, 0x6D, EXC0) 623 /* XOr */ 624 625 Local1 = (DerefOf (Arg1) ^ I000) /* \M4B6.I000 */ 626 CH06 (Arg0, 0x70, EXC0) 627 Local1 = (I000 ^ DerefOf (Arg1)) 628 CH06 (Arg0, 0x71, EXC0) 629 /* Mid */ 630 631 Mid (DerefOf (Arg1), 0x01, 0x01, Local1) 632 CH06 (Arg0, 0x75, EXC0) 633 Mid ("123", DerefOf (Arg1), 0x01, Local1) 634 CH06 (Arg0, 0x76, EXC0) 635 Mid ("123", 0x01, DerefOf (Arg1), Local1) 636 CH06 (Arg0, 0x77, EXC0) 637 /* Match */ 638 639 Local1 = Match (DerefOf (Arg1), MTR, 0x00, MTR, 0x00, 0x00) 640 CH06 (Arg0, 0x78, EXC0) 641 Local1 = Match (Package (0x01) 642 { 643 0x01 644 }, MTR, DerefOf (Arg1), MTR, 0x00, 0x00) 645 CH06 (Arg0, 0x79, EXC0) 646 Local1 = Match (Package (0x01) 647 { 648 0x01 649 }, MTR, 0x00, MTR, DerefOf (Arg1), 0x00) 650 CH06 (Arg0, 0x7A, EXC0) 651 Local1 = Match (Package (0x01) 652 { 653 0x01 654 }, MTR, 0x00, MTR, 0x00, DerefOf (Arg1)) 655 CH06 (Arg0, 0x7B, EXC0) 656 Return (0x00) 657 } 658 659 /* Result of Method invocation */ 660 661 Method (M004, 1, Serialized) 662 { 663 Name (I000, 0x00) /* Label to check m000 invocations */ 664 Method (M000, 0, NotSerialized) 665 { 666 CopyObject (DEV0, Local0) 667 Return (Local0) 668 } 669 670 /* CondRefOf */ 671 /* **** 10/2016 changed method invocation to just a namestring */ 672 /* CondRefOf no longer invokes the method */ 673 CondRefOf (M000, Local1) 674 CH06 (Arg0, 0x01, 0x2F) 675 /* CopyObject */ 676 677 CopyObject (M000 (), Local1) 678 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 679 /* Decrement */ 680 681 M000 ()-- 682 CH06 (Arg0, 0x02, 0x2F) 683 /* DerefOf */ 684 685 Local1 = DerefOf (M000 ()) 686 CH06 (Arg0, 0x03, 0x2F) 687 /* FindSetLeftBit */ 688 689 FindSetLeftBit (M000 (), Local1) 690 CH06 (Arg0, 0x05, 0x2F) 691 /* FindSetRightBit */ 692 693 FindSetRightBit (M000 (), Local1) 694 CH06 (Arg0, 0x07, 0x2F) 695 /* FromBCD */ 696 697 FromBCD (M000 (), Local1) 698 CH06 (Arg0, 0x09, 0x2F) 699 /* Increment */ 700 701 M000 ()++ 702 CH06 (Arg0, 0x0A, 0x2F) 703 /* LNot */ 704 705 Local1 = !M000 () 706 CH06 (Arg0, 0x0B, 0x2F) 707 /* Not */ 708 709 Local1 = ~M000 () 710 CH06 (Arg0, 0x0D, 0x2F) 711 /* **** ObjectType */ 712 /* Nov. 2016: Method invocation as arg to ObjectType is now illegal */ 713 Local0 = ObjectType (M000) 714 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 715 /* RefOf */ 716 /* **** Oct. 2016: Method invocation as arg to RefOf is now illegal */ 717 /* Store (RefOf(m000()), Local1) */ 718 /* CH06(arg0, 14, 47) */ 719 /* Release */ 720 Release (M000 ()) 721 CH06 (Arg0, 0x0D, 0x2F) 722 /* Reset */ 723 724 Reset (M000 ()) 725 CH06 (Arg0, 0x0E, 0x2F) 726 /* Signal */ 727 728 Signal (M000 ()) 729 CH06 (Arg0, 0x0F, 0x2F) 730 /* SizeOf */ 731 732 Local1 = SizeOf (M000 ()) 733 CH06 (Arg0, 0x10, 0x2F) 734 /* Sleep */ 735 736 Sleep (M000 ()) 737 CH06 (Arg0, 0x11, 0x2F) 738 /* Stall */ 739 740 Stall (M000 ()) 741 CH06 (Arg0, 0x12, 0x2F) 742 /* Store */ 743 744 Local1 = M000 () 745 CH06 (Arg0, 0x13, 0x2F) 746 /* ToBCD */ 747 748 ToBCD (M000 (), Local1) 749 CH06 (Arg0, 0x15, 0x2F) 750 /* ToBuffer */ 751 752 ToBuffer (M000 (), Local1) 753 CH06 (Arg0, 0x17, 0x2F) 754 /* ToDecimalString */ 755 756 ToDecimalString (M000 (), Local1) 757 CH06 (Arg0, 0x19, 0x2F) 758 /* ToHexString */ 759 760 ToHexString (M000 (), Local1) 761 CH06 (Arg0, 0x1B, 0x2F) 762 /* ToInteger */ 763 764 ToInteger (M000 (), Local1) 765 CH06 (Arg0, 0x1D, 0x2F) 766 /* Acquire */ 767 768 Local1 = Acquire (M000 (), 0x0064) 769 CH06 (Arg0, 0x1E, 0x2F) 770 /* Add */ 771 772 Local1 = (M000 () + I000) /* \M4B6.M004.I000 */ 773 CH06 (Arg0, 0x21, 0x2F) 774 Local1 = (I000 + M000 ()) 775 CH06 (Arg0, 0x22, 0x2F) 776 /* And */ 777 778 Local1 = (M000 () & I000) /* \M4B6.M004.I000 */ 779 CH06 (Arg0, 0x25, 0x2F) 780 Local1 = (I000 & M000 ()) 781 CH06 (Arg0, 0x26, 0x2F) 782 /* Concatenate */ 783 784 Concatenate (M000 (), I000, Local1) 785 CH06 (Arg0, 0x29, 0x2F) 786 Concatenate (I000, M000 (), Local1) 787 CH06 (Arg0, 0x2A, 0x2F) 788 /* ConcatenateResTemplate */ 789 790 ConcatenateResTemplate (M000 (), Buffer (0x02) 791 { 792 0x79, 0x00 // y. 793 }, Local1) 794 CH06 (Arg0, 0x2D, 0x2F) 795 ConcatenateResTemplate (Buffer (0x02) 796 { 797 0x79, 0x00 // y. 798 }, M000 (), Local1) 799 CH06 (Arg0, 0x2E, 0x2F) 800 /* Divide */ 801 802 Divide (M000 (), I000, Local2) 803 CH06 (Arg0, 0x31, 0x2F) 804 Divide (I000, M000 (), Local2) 805 CH06 (Arg0, 0x32, 0x2F) 806 Divide (M000 (), I000, Local2, Local1) 807 CH06 (Arg0, 0x33, 0x2F) 808 Divide (I000, M000 (), Local2, Local1) 809 CH06 (Arg0, 0x34, 0x2F) 810 /* Fatal */ 811 812 Fatal (0xFF, 0xFFFFFFFF, M000 ()) 813 CH06 (Arg0, 0x35, 0x2F) 814 /* Index */ 815 816 Local1 = M000 () [0x00] 817 CH06 (Arg0, 0x38, 0x2F) 818 Index ("0", M000 (), Local1) 819 CH06 (Arg0, 0x39, 0x2F) 820 /* LEqual */ 821 822 Local1 = (M000 () == I000) 823 CH06 (Arg0, 0x3A, 0x2F) 824 Local1 = (I000 == M000 ()) 825 CH06 (Arg0, 0x3B, 0x2F) 826 /* LGreater */ 827 828 Local1 = (M000 () > I000) 829 CH06 (Arg0, 0x3C, 0x2F) 830 Local1 = (I000 > M000 ()) 831 CH06 (Arg0, 0x3D, 0x2F) 832 /* LGreaterEqual */ 833 834 Local1 = (M000 () >= I000) 835 CH06 (Arg0, 0x3E, 0xFF) 836 Local1 = (I000 >= M000 ()) 837 CH06 (Arg0, 0x3F, 0xFF) 838 /* LLess */ 839 840 Local1 = (M000 () < I000) 841 CH06 (Arg0, 0x40, 0x2F) 842 Local1 = (I000 < M000 ()) 843 CH06 (Arg0, 0x41, 0x2F) 844 /* LLessEqual */ 845 846 Local1 = (M000 () <= I000) 847 CH06 (Arg0, 0x42, 0xFF) 848 Local1 = (I000 <= M000 ()) 849 CH06 (Arg0, 0x43, 0xFF) 850 /* LNotEqual */ 851 852 Local1 = (M000 () != I000) 853 CH06 (Arg0, 0x44, 0xFF) 854 Local1 = (I000 != M000 ()) 855 CH06 (Arg0, 0x45, 0xFF) 856 /* LOr */ 857 858 Local1 = (M000 () || I000) 859 CH06 (Arg0, 0x46, 0x2F) 860 Local1 = (I000 || M000 ()) 861 CH06 (Arg0, 0x47, 0x2F) 862 /* Mod */ 863 864 Local1 = (M000 () % I000) /* \M4B6.M004.I000 */ 865 CH06 (Arg0, 0x4A, 0x2F) 866 Local1 = (I000 % M000 ()) 867 CH06 (Arg0, 0x4B, 0x2F) 868 /* Multiply */ 869 870 Local1 = (M000 () * I000) /* \M4B6.M004.I000 */ 871 CH06 (Arg0, 0x4E, 0x2F) 872 Local1 = (I000 * M000 ()) 873 CH06 (Arg0, 0x4F, 0x2F) 874 /* NAnd */ 875 876 NAnd (M000 (), I000, Local1) 877 CH06 (Arg0, 0x52, 0x2F) 878 NAnd (I000, M000 (), Local1) 879 CH06 (Arg0, 0x53, 0x2F) 880 /* NOr */ 881 882 NOr (M000 (), I000, Local1) 883 CH06 (Arg0, 0x56, 0x2F) 884 NOr (I000, M000 (), Local1) 885 CH06 (Arg0, 0x57, 0x2F) 886 /* Or */ 887 888 Local1 = (M000 () | I000) /* \M4B6.M004.I000 */ 889 CH06 (Arg0, 0x5A, 0x2F) 890 Local1 = (I000 | M000 ()) 891 CH06 (Arg0, 0x5B, 0x2F) 892 /* ShiftLeft */ 893 894 Local1 = (M000 () << I000) /* \M4B6.M004.I000 */ 895 CH06 (Arg0, 0x5E, 0x2F) 896 Local1 = (I000 << M000 ()) 897 CH06 (Arg0, 0x5F, 0x2F) 898 /* ShiftRight */ 899 900 Local1 = (M000 () >> I000) /* \M4B6.M004.I000 */ 901 CH06 (Arg0, 0x62, 0x2F) 902 Local1 = (I000 >> M000 ()) 903 CH06 (Arg0, 0x63, 0x2F) 904 /* Subtract */ 905 906 Local1 = (M000 () - I000) /* \M4B6.M004.I000 */ 907 CH06 (Arg0, 0x66, 0x2F) 908 Local1 = (I000 - M000 ()) 909 CH06 (Arg0, 0x67, 0x2F) 910 /* ToString */ 911 912 ToString (M000 (), 0x01, Local1) 913 CH06 (Arg0, 0x6A, 0x2F) 914 ToString (I000, M000 (), Local1) 915 CH06 (Arg0, 0x6B, 0x2F) 916 /* Wait */ 917 918 Local1 = Wait (M000 (), I000) 919 CH06 (Arg0, 0x6C, 0x2F) 920 Local1 = Wait (E000, M000 ()) 921 CH06 (Arg0, 0x6D, 0x2F) 922 /* XOr */ 923 924 Local1 = (M000 () ^ I000) /* \M4B6.M004.I000 */ 925 CH06 (Arg0, 0x70, 0x2F) 926 Local1 = (I000 ^ M000 ()) 927 CH06 (Arg0, 0x71, 0x2F) 928 /* Mid */ 929 930 Mid (M000 (), 0x01, 0x01, Local1) 931 CH06 (Arg0, 0x75, 0x2F) 932 Mid ("123", M000 (), 0x01, Local1) 933 CH06 (Arg0, 0x76, 0x2F) 934 Mid ("123", 0x01, M000 (), Local1) 935 CH06 (Arg0, 0x77, 0x2F) 936 /* Match */ 937 938 Local1 = Match (M000 (), MTR, 0x00, MTR, 0x00, 0x00) 939 CH06 (Arg0, 0x78, 0x2F) 940 Local1 = Match (Package (0x01) 941 { 942 0x01 943 }, MTR, M000 (), MTR, 0x00, 0x00) 944 CH06 (Arg0, 0x79, 0x2F) 945 Local1 = Match (Package (0x01) 946 { 947 0x01 948 }, MTR, 0x00, MTR, M000 (), 0x00) 949 CH06 (Arg0, 0x7A, 0x2F) 950 Local1 = Match (Package (0x01) 951 { 952 0x01 953 }, MTR, 0x00, MTR, 0x00, M000 ()) 954 CH06 (Arg0, 0x7B, 0x2F) 955 } 956 957 /* Reference to Object as Result of Method invocation */ 958 959 Method (M005, 1, Serialized) 960 { 961 Device (DEV2) 962 { 963 } 964 965 Name (I000, 0x00) /* Label to check m000 invocations */ 966 Method (M000, 2, NotSerialized) 967 { 968 I000 = Arg0 969 If ((Arg1 == 0x00)) 970 { 971 Local0 = RefOf (DEV0) 972 } 973 ElseIf ((Arg1 == 0x01)) 974 { 975 Local0 = RefOf (DEV2) 976 } 977 978 Return (Local0) 979 } 980 981 Method (CH00, 2, NotSerialized) 982 { 983 If ((I000 != Arg1)) 984 { 985 ERR (Arg0, Z098, __LINE__, 0x00, 0x00, I000, Arg1) 986 } 987 } 988 989 Name (LPN0, 0x02) 990 Name (LPC0, 0x00) 991 While (LPN0) 992 { 993 Local0 = (0x03 * LPC0) /* \M4B6.M005.LPC0 */ 994 I000 = 0x00 995 Local1 = DerefOf (M000 (0x01, LPC0)) 996 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 997 CH00 (Arg0, 0x01) 998 Local1 = DerefOf (DerefOf (M000 (0x02, LPC0))) 999 CH06 (Arg0, (0x01 + Local0), 0x2F) 1000 CH00 (Arg0, 0x02) 1001 Store (DerefOf (M000 (0x03, LPC0)) [0x00], Local1) 1002 CH06 (Arg0, (0x02 + Local0), 0x2F) 1003 CH00 (Arg0, 0x03) 1004 Local1 = Match (DerefOf (M000 (0x04, LPC0)), MTR, 0x00, MTR, 0x00, 0x00) 1005 CH06 (Arg0, (0x03 + Local0), 0x2F) 1006 CH00 (Arg0, 0x04) 1007 LPN0-- 1008 LPC0++ 1009 } 1010 } 1011 1012 CH03 (__METHOD__, Z098, __LINE__, 0x00, 0x00) 1013 /* Local Named Object */ 1014 /* m000(ts) */ 1015 /* Global Named Object */ 1016 /* m001(ts) */ 1017 /* Local */ 1018 M002 (Concatenate (__METHOD__, "-m002")) 1019 /* Reference to Local Named Object */ 1020 1021 M003 (Concatenate (__METHOD__, "-m003-RefLocName"), RefOf (DEV1), 0x01) 1022 Local0 = RefOf (DEV1) 1023 M003 (Concatenate (__METHOD__, "-m003-RefLocName2"), Local0, 0x01) 1024 CondRefOf (DEV1, Local0) 1025 M003 (Concatenate (__METHOD__, "-m003-CondRefLocName"), Local0, 0x01) 1026 M003 (Concatenate (__METHOD__, "-m003-RefGlobName"), RefOf (DEV0), 0x01) 1027 Local0 = RefOf (DEV0) 1028 M003 (Concatenate (__METHOD__, "-m003-RefGlobName2"), Local0, 0x01) 1029 CondRefOf (DEV0, Local0) 1030 M003 (Concatenate (__METHOD__, "-m003-CondRefGlobName"), Local0, 0x01) 1031 /* Reference to Object as element of Package */ 1032 1033 Name (PP00, Package (0x01) 1034 { 1035 DEV0 1036 }) 1037 If (Y113) 1038 { 1039 M003 (Concatenate (__METHOD__, "-m003-Index"), PP00 [0x00], 0x00) 1040 } 1041 1042 Store (PP00 [0x00], Local1) 1043 M003 (Concatenate (__METHOD__, "-m003-Index2"), Local1, 0x00) 1044 If (Y113) 1045 { 1046 M003 (Concatenate (__METHOD__, "-m003-Index3"), Local2 = PP00 [0x00], 0x00) 1047 } 1048 1049 Local3 = PP00 [0x00] 1050 M003 (Concatenate (__METHOD__, "-m003-Index4"), Local3, 0x00) 1051 Local5 = Local4 = PP00 [0x00] 1052 M003 (Concatenate (__METHOD__, "-m003-Index5"), Local5, 0x00) 1053 /* Result of Method invocation */ 1054 1055 M004 (Concatenate (__METHOD__, "-m004")) 1056 /* Reference to Object as Result of Method invocation */ 1057 1058 M005 (Concatenate (__METHOD__, "-m005")) 1059 } 1060