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