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