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     * Miscellaneous not systematized tests
30     */
31    Name (Z054, 0x36)
32    /* Looks like Default is at all not implemented */
33
34    Method (M110, 1, Serialized)
35    {
36        Local0 = 0x00
37        Local1 = 0x00
38        /* Bug XXX. This Switch code below causes ASL-compiler to fail */
39        /* for full.asl file with the diagnostics like this: */
40        /* nssearch-0397: *** Error: NsSearchAndEnter: */
41        /*                    Bad character in ACPI Name: 5B5F545F */
42        /* and fall into recursion: */
43        /* Remark   3040 -     Recursive method call ^  (ERR_) */
44        /* Note: (0x5B5F545F is equal to "[_T_") */
45        Switch (ToInteger (Local1))
46        {
47            Case (0x05)
48            {
49                Local0 = 0x05
50            }
51            Default
52            {
53                Local0 = 0x01
54            }
55
56        }
57
58        If ((Local0 != 0x01))
59        {
60            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x00)
61        }
62    }
63
64    /* Concatenate operator affects the object passed as Source2 parameter */
65
66    Method (M111, 1, NotSerialized)
67    {
68        Local5 = Concatenate ("qwertyuiop", Arg0)
69    }
70
71    Method (M112, 1, NotSerialized)
72    {
73        Local0 = 0x00
74        M111 (Local0)
75        If ((Local0 != 0x00))
76        {
77            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x00)
78        }
79
80        Local0 = 0x00
81        Local5 = Concatenate ("qwertyuiop", Local0)
82        If ((Local0 != 0x00))
83        {
84            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x00)
85        }
86    }
87
88    /* Unexpected value returned by ObjectType for Field Unit objects */
89    /* The field passed as explicit reference (RefOf) */
90    Method (M113, 1, Serialized)
91    {
92        OperationRegion (R000, SystemMemory, 0x0100, 0x0100)
93        Field (R000, ByteAcc, NoLock, Preserve)
94        {
95            F000,   32
96        }
97
98        Local0 = ObjectType (RefOf (F000))
99        If ((Local0 != 0x05))
100        {
101            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x00)
102        }
103    }
104
105    /* The BankField corrupts the contents of OperationRegion */
106
107    Method (M114, 1, Serialized)
108    {
109        OperationRegion (R000, SystemMemory, 0x0100, 0x0100)
110        Field (R000, ByteAcc, NoLock, Preserve)
111        {
112            BNK0,   8
113        }
114
115        BankField (R000, BNK0, 0x00, ByteAcc, NoLock, Preserve)
116        {
117            Offset (0x10),
118            BF00,   8
119        }
120
121        BankField (R000, BNK0, 0x01, ByteAcc, NoLock, Preserve)
122        {
123            Offset (0x11),
124            BF01,   8
125        }
126
127        /* Deal with 0-th bank layout: */
128
129        BNK0 = 0x00
130        If ((BNK0 != 0x00))
131        {
132            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, BNK0, 0x00)
133        }
134
135        BF00 = 0x87
136        If ((BNK0 != 0x00))
137        {
138            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, BNK0, 0x00)
139        }
140
141        If ((BF00 != 0x87))
142        {
143            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, BF00, 0x87)
144        }
145
146        /* Deal with 1-th bank layout: */
147
148        BNK0 = 0x01
149        If ((BNK0 != 0x01))
150        {
151            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, BNK0, 0x01)
152        }
153
154        BF01 = 0x96
155        If (X192)
156        {
157            If ((BNK0 != 0x01))
158            {
159                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, BNK0, 0x01)
160            }
161        }
162
163        If ((BF01 != 0x96))
164        {
165            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, BF01, 0x96)
166        }
167    }
168
169    /* ToBuffer caused destroying of source buffer passed by Data parameter */
170
171    Method (M115, 1, NotSerialized)
172    {
173        Local0 = Buffer (0x04)
174            {
175                 0x0A, 0x0B, 0x0C, 0x0D                           // ....
176            }
177        Local1 = ObjectType (Local0)
178        If ((Local1 != C00B))
179        {
180            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local1, 0x00)
181        }
182
183        ToBuffer (Local0, Local2)
184        Local3 = 0xAA
185        Local3 = ObjectType (Local0)
186        If ((Local3 != C00B))
187        {
188            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local3, 0x00)
189        }
190    }
191
192    /* ObjectType() operator should be allowed to deal with the */
193    /* uninitialized objects. */
194    /* Uncomment this when the problem will be fixed and compile */
195    /* will not fail in this case like it do now: "Method local */
196    /* variable is not initialized (Local0)". */
197    Method (M116, 1, NotSerialized)
198    {
199        Local1 = ObjectType (Local0)
200    }
201
202    /* Now, this cause exception but should not */
203
204    Method (M117, 2, Serialized)
205    {
206        If (Arg1)
207        {
208            Local0 = 0x00
209        }
210
211        CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
212        Local1 = ObjectType (Local0)
213        If ((Local1 != 0x00))
214        {
215            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local1, 0x00)
216        }
217
218        CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
219    }
220
221    Method (M118, 1, NotSerialized)
222    {
223        M117 (Arg0, 0x00)
224    }
225
226    /*
227     * Bug 12, Bugzilla 5360.
228     * DerefOf. If the Source evaluates to a string, the string is evaluated
229     * as an ASL name (relative to the current scope) and the contents of that
230     * object are returned.
231     */
232    Method (M119, 1, Serialized)
233    {
234        Name (B000, Buffer (0x08)
235        {
236             0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08   // ........
237        })
238        Local0 = "b000"
239        Debug = "================ 0:"
240        Local1 = DerefOf (Local0)
241        Debug = "================ 1:"
242        Local2 = ObjectType (Local1)
243        If ((Local2 != 0x03))
244        {
245            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local2, 0x00)
246        }
247
248        Debug = "================ 2:"
249        Debug = Local1
250        Debug = Local2
251        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
252        Return (0x00)
253    }
254
255    /*
256     // Currently, incorrect test
257     // The size of Strings in Package is determined incorrectly
258     Method(m11a, 1)
259     {
260     Name(p000, Package() {
261     "012",
262     "0123456789abcdef",
263     Buffer() {17,28,69,11,22,34,35,56,67,11},
264     "012345",
265     })
266     Store(DeRefOf(Index(p000, 1)), Local0)
267     Store(0, Index(Local0, 5))
268     Store(0, Index(p000, 1))
269     Store(DeRefOf(Index(p000, 1)), Local0)
270     //	Store(0, Index(Local0, 5))
271     Store("=================:", Debug)
272     Store(Local0, Debug)
273     // 0
274     Store(DeRefOf(Index(p000, 0)), Local2)
275     Store(SizeOf(Local2), Local3)
276     Store(Local3, Debug)
277     if (LNotEqual(Local3, 3)) {
278     err(arg0, z054, __LINE__, 0, 0, Local3, 3)
279     }
280     // 1
281     Store(DeRefOf(Index(p000, 1)), Local2)
282     Store(SizeOf(Local2), Local3)
283     Store(Local3, Debug)
284     if (LNotEqual(Local3, 9)) {
285     err(arg0, z054, __LINE__, 0, 0, Local3, 9)
286     }
287     // 2
288     Store(DeRefOf(Index(p000, 2)), Local2)
289     Store(SizeOf(Local2), Local3)
290     Store(Local3, Debug)
291     if (LNotEqual(Local3, 6)) {
292     err(arg0, z054, __LINE__, 0, 0, Local3, 6)
293     }
294     Store(SizeOf(p000), Local0)
295     Store(Local0, Debug)
296     if (LNotEqual(Local0, 3)) {
297     err(arg0, z054, __LINE__, 0, 0, Local0, 3)
298     }
299     }
300     */
301    /*
302     // ATTENTION: such type tests have to be added and extended
303     Method(m11b, 1)
304     {
305     Name(p000, Package() {
306     0x12345678, 0x90abcdef,
307     })
308     Name(b000, Buffer() {0x78,0x56,0x34,0x12, 0xef,0xcd,0xab,0x90})
309     Store(DeRefOf(Index(p000, 0)), Local7)
310     if (LEqual(b000, Local7)) {
311     err(arg0, z054, __LINE__, 0, 0, b000, Local7)
312     }
313     if (LEqual(Local7, b000)) {
314     err(arg0, z054, __LINE__, 0, 0, Local7, b000)
315     }
316     return (0)
317     }
318     */
319    /* Bug 54: All the ASL Operators which deal with at least two Buffer type */
320    /* objects cause unexpected exceptions in cases when both Buffer type objects */
321    /* are passed immediately */
322    Method (M11C, 1, Serialized)
323    {
324        CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
325        Store ((Buffer (0x01)
326                {
327                     0x79                                             // y
328                } + Buffer (0x01)
329                {
330                     0x79                                             // y
331                }), Local5)
332        CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
333    }
334
335    /* Bug 57: The empty Return operator (without specifying the returning value) */
336    /* is processed incorrectly */
337    Method (M11D, 1, NotSerialized)
338    {
339        Method (M11E, 2, NotSerialized)
340        {
341            If (Arg1)
342            {
343                Return (0x1234)
344                        /* ASL-compiler report Warning in this case */
345            /* Store("ERROR 0: m121, after Return !!!", Debug) */
346            }
347
348            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, 0x00, 0x00)
349            Return (0x5678)
350        }
351
352        Method (M11F, 2, NotSerialized)
353        {
354            If (Arg1)
355            {
356                Return (                /* ASL-compiler DOESN'T report Warning in this case!!! */
357                /* And the Store operator below is actually processed!!! */
358Zero)
359                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, 0x00, 0x00)
360            }
361
362            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, 0x00, 0x00)
363            Return (Zero)
364        }
365
366        Local7 = M11E (Arg0, 0x01)
367        M11F (Arg0, 0x01)
368        Return (0x00)
369    }
370
371    /*
372     * Obsolete:
373     * Bug 59: The String to Buffer Rule from the Table 17-8 "Object Conversion
374     * Rules" says "If the string is shorter than the buffer, the buffer size is
375     * reduced".
376     * Updated specs 12.03.05:
377     * "If the string is shorter than the buffer,
378     * the remaining buffer bytes are set to zero".
379     */
380    Method (M11E, 1, Serialized)
381    {
382        Name (STR0, "\x01\x02")
383        Name (BUF0, Buffer (0x04)
384        {
385             0x03, 0x04, 0x05, 0x06                           // ....
386        })
387        BUF0 = STR0 /* \M11E.STR0 */
388        /*
389         * Obsolete:
390         *
391         * if (LNotEqual(Sizeof(buf0), 3)) {
392         *	// Error: length of the buffer not reduced to the stored string
393         *	err(arg0, z054, __LINE__, 0, 0, 0, 0)
394         * }
395         *
396         * New:
397         */
398        If ((BUF0 != Buffer (0x04)
399                    {
400                         0x01, 0x02, 0x00, 0x00                           // ....
401                    }))
402        {
403            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, BUF0, Buffer (0x04)
404                {
405                     0x01, 0x02, 0x00, 0x00                           // ....
406                })
407        }
408
409        Return (0x00)
410    }
411
412    /* Bug 65: The Buffer Field type objects should be passed */
413    /* to Methods without any conversion, but instead */
414    /* they are converted to Buffers or Integers depending */
415    /* on the size of the Buffer Field object and the */
416    /* run mode (32-bit or 64/bit mode). */
417    /* */
418    /* CANCELED: now it should perform opposite assertion because */
419    /* this bug was canceled. */
420    Method (M11F, 1, Serialized)
421    {
422        Name (B000, Buffer (0xC8){})
423        CreateField (B000, 0x00, 0x1F, BF00)
424        CreateField (B000, 0x1F, 0x20, BF01)
425        CreateField (B000, 0x3F, 0x21, BF02)
426        CreateField (B000, 0x60, 0x3F, BF03)
427        CreateField (B000, 0x9F, 0x40, BF04)
428        CreateField (B000, 0xDF, 0x41, BF05)
429        Method (M000, 4, NotSerialized)
430        {
431            Local0 = ObjectType (Arg1)
432            If ((Local0 != Arg2))
433            {
434                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, Arg2)
435            }
436
437            Local0 = SizeOf (Arg1)
438            If ((Local0 != Arg3))
439            {
440                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, Arg3)
441            }
442        }
443
444        Method (M001, 1, NotSerialized)
445        {
446            Local0 = ObjectType (BF00)
447            If ((Local0 != 0x0E))
448            {
449                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x0E)
450            }
451
452            Local0 = ObjectType (BF01)
453            If ((Local0 != 0x0E))
454            {
455                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x0E)
456            }
457
458            Local0 = ObjectType (BF02)
459            If ((Local0 != 0x0E))
460            {
461                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x0E)
462            }
463
464            Local0 = ObjectType (BF03)
465            If ((Local0 != 0x0E))
466            {
467                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x0E)
468            }
469
470            Local0 = ObjectType (BF04)
471            If ((Local0 != 0x0E))
472            {
473                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x0E)
474            }
475
476            Local0 = ObjectType (BF05)
477            If ((Local0 != 0x0E))
478            {
479                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x0E)
480            }
481
482            M000 (Arg0, BF00, 0x03, 0x04)
483            M000 (Arg0, BF01, 0x03, 0x04)
484            M000 (Arg0, BF02, 0x03, 0x05)
485            M000 (Arg0, BF03, 0x03, 0x08)
486            M000 (Arg0, BF04, 0x03, 0x08)
487            M000 (Arg0, BF05, 0x03, 0x09)
488        }
489
490        M001 (Arg0)
491    }
492
493    /* Bug 66: The Field Unit type objects should be passed */
494    /* to Methods without any conversion, but instead */
495    /* they are converted to Buffers or Integers depending */
496    /* on the size of the Buffer Field object and the */
497    /* run mode (32-bit or 64/bit mode). */
498    /* */
499    /* CANCELED: now it should perform opposite assertion because */
500    /* this bug was canceled. */
501    Method (M120, 1, Serialized)
502    {
503        OperationRegion (R000, SystemMemory, 0x0100, 0x0100)
504        Field (R000, ByteAcc, NoLock, Preserve)
505        {
506            F000,   31,
507            F001,   32,
508            F002,   33,
509            F003,   63,
510            F004,   64,
511            F005,   65
512        }
513
514        Method (M000, 4, NotSerialized)
515        {
516            Local0 = ObjectType (Arg1)
517            If ((Local0 != Arg2))
518            {
519                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, Arg2)
520            }
521
522            Local0 = SizeOf (Arg1)
523            If ((Local0 != Arg3))
524            {
525                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, Arg3)
526            }
527        }
528
529        Method (M001, 1, NotSerialized)
530        {
531            Local0 = ObjectType (F000)
532            If ((Local0 != 0x05))
533            {
534                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x05)
535            }
536
537            Local0 = ObjectType (F001)
538            If ((Local0 != 0x05))
539            {
540                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x05)
541            }
542
543            Local0 = ObjectType (F002)
544            If ((Local0 != 0x05))
545            {
546                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x05)
547            }
548
549            Local0 = ObjectType (F003)
550            If ((Local0 != 0x05))
551            {
552                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x05)
553            }
554
555            Local0 = ObjectType (F004)
556            If ((Local0 != 0x05))
557            {
558                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x05)
559            }
560
561            Local0 = ObjectType (F005)
562            If ((Local0 != 0x05))
563            {
564                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x05)
565            }
566
567            If (F64)
568            {
569                M000 (Arg0, F000, 0x01, 0x08)
570                M000 (Arg0, F001, 0x01, 0x08)
571                M000 (Arg0, F002, 0x01, 0x08)
572                M000 (Arg0, F003, 0x01, 0x08)
573                M000 (Arg0, F004, 0x01, 0x08)
574                M000 (Arg0, F005, 0x03, 0x09)
575            }
576            Else
577            {
578                M000 (Arg0, F000, 0x01, 0x04)
579                M000 (Arg0, F001, 0x01, 0x04)
580                M000 (Arg0, F002, 0x03, 0x05)
581                M000 (Arg0, F003, 0x03, 0x08)
582                M000 (Arg0, F004, 0x03, 0x08)
583                M000 (Arg0, F005, 0x03, 0x09)
584            }
585        }
586
587        M001 (Arg0)
588    }
589
590    /* Bug 67: The Buffer Field type objects should be RETURNED */
591    /* by Methods without any conversion, but instead */
592    /* they are converted to Buffers or Integers depending */
593    /* on the size of the Buffer Field object and the */
594    /* run mode (32-bit or 64/bit mode). */
595    /* */
596    /* CANCELED: now it should perform opposite assertion because */
597    /* this bug was canceled. */
598    Method (M121, 1, Serialized)
599    {
600        Name (B000, Buffer (0xC8){})
601        CreateField (B000, 0x00, 0x1F, BF00)
602        CreateField (B000, 0x1F, 0x20, BF01)
603        CreateField (B000, 0x3F, 0x21, BF02)
604        CreateField (B000, 0x60, 0x3F, BF03)
605        CreateField (B000, 0x9F, 0x40, BF04)
606        CreateField (B000, 0xDF, 0x41, BF05)
607        Method (M000, 1, NotSerialized)
608        {
609            If ((Arg0 == 0x00))
610            {
611                Return (BF00) /* \M121.BF00 */
612            }
613            ElseIf ((Arg0 == 0x01))
614            {
615                Return (BF01) /* \M121.BF01 */
616            }
617            ElseIf ((Arg0 == 0x02))
618            {
619                Return (BF02) /* \M121.BF02 */
620            }
621            ElseIf ((Arg0 == 0x03))
622            {
623                Return (BF03) /* \M121.BF03 */
624            }
625            ElseIf ((Arg0 == 0x04))
626            {
627                Return (BF04) /* \M121.BF04 */
628            }
629            ElseIf ((Arg0 == 0x05))
630            {
631                Return (BF05) /* \M121.BF05 */
632            }
633
634            Return ("qw")
635        }
636
637        Method (M001, 4, NotSerialized)
638        {
639            Local1 = M000 (Arg1)
640            Local0 = ObjectType (Local1)
641            If ((Local0 != Arg2))
642            {
643                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, Arg2)
644            }
645
646            Local0 = SizeOf (Local1)
647            If ((Local0 != Arg3))
648            {
649                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, Arg3)
650            }
651        }
652
653        Method (M002, 1, NotSerialized)
654        {
655            M001 (Arg0, 0x00, 0x03, 0x04)
656            M001 (Arg0, 0x01, 0x03, 0x04)
657            M001 (Arg0, 0x02, 0x03, 0x05)
658            M001 (Arg0, 0x03, 0x03, 0x08)
659            M001 (Arg0, 0x04, 0x03, 0x08)
660            M001 (Arg0, 0x05, 0x03, 0x09)
661        }
662
663        M002 (Arg0)
664    }
665
666    /* Bug 68: The Field Unit type objects should be RETURNED */
667    /* by Methods without any conversion, but instead */
668    /* they are converted to Buffers or Integers depending */
669    /* on the size of the Buffer Field object and the */
670    /* run mode (32-bit or 64/bit mode). */
671    /* */
672    /* CANCELED: now it should perform opposite assertion because */
673    /* this bug was canceled. */
674    Method (M122, 1, Serialized)
675    {
676        OperationRegion (R000, SystemMemory, 0x0100, 0x0100)
677        Field (R000, ByteAcc, NoLock, Preserve)
678        {
679            F000,   31,
680            F001,   32,
681            F002,   33,
682            F003,   63,
683            F004,   64,
684            F005,   65
685        }
686
687        Method (M000, 1, NotSerialized)
688        {
689            If ((Arg0 == 0x00))
690            {
691                Return (F000) /* \M122.F000 */
692            }
693            ElseIf ((Arg0 == 0x01))
694            {
695                Return (F001) /* \M122.F001 */
696            }
697            ElseIf ((Arg0 == 0x02))
698            {
699                Return (F002) /* \M122.F002 */
700            }
701            ElseIf ((Arg0 == 0x03))
702            {
703                Return (F003) /* \M122.F003 */
704            }
705            ElseIf ((Arg0 == 0x04))
706            {
707                Return (F004) /* \M122.F004 */
708            }
709            ElseIf ((Arg0 == 0x05))
710            {
711                Return (F005) /* \M122.F005 */
712            }
713
714            Return ("qw")
715        }
716
717        Method (M001, 4, NotSerialized)
718        {
719            Local1 = M000 (Arg1)
720            Local0 = ObjectType (Local1)
721            If ((Local0 != Arg2))
722            {
723                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, Arg2)
724            }
725
726            Local0 = SizeOf (Local1)
727            If ((Local0 != Arg3))
728            {
729                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, Arg3)
730            }
731        }
732
733        Method (M002, 1, NotSerialized)
734        {
735            If (F64)
736            {
737                M001 (Arg0, 0x00, 0x01, 0x08)
738                M001 (Arg0, 0x01, 0x01, 0x08)
739                M001 (Arg0, 0x02, 0x01, 0x08)
740                M001 (Arg0, 0x03, 0x01, 0x08)
741                M001 (Arg0, 0x04, 0x01, 0x08)
742                M001 (Arg0, 0x05, 0x03, 0x09)
743            }
744            Else
745            {
746                M001 (Arg0, 0x00, 0x01, 0x04)
747                M001 (Arg0, 0x01, 0x01, 0x04)
748                M001 (Arg0, 0x02, 0x03, 0x05)
749                M001 (Arg0, 0x03, 0x03, 0x08)
750                M001 (Arg0, 0x04, 0x03, 0x08)
751                M001 (Arg0, 0x05, 0x03, 0x09)
752            }
753        }
754
755        M002 (Arg0)
756    }
757
758    /* Bug 30. This test may be removed there after */
759    /* the Field relative tests will be implemented. */
760    /* Caused crash. */
761    Method (M123, 1, NotSerialized)
762    {
763        Method (M000, 0, Serialized)
764        {
765            /* Field Unit */
766
767            OperationRegion (R000, SystemMemory, 0x0100, 0x0100)
768            Field (R000, ByteAcc, NoLock, Preserve)
769            {
770                F000,   8,
771                F001,   16,
772                F002,   32,
773                F003,   33,
774                F004,   1,
775                F005,   64
776            }
777
778            Debug = "------------ Fields:"
779            Debug = F000 /* \M123.M000.F000 */
780            Debug = F001 /* \M123.M000.F001 */
781            Debug = F002 /* \M123.M000.F002 */
782            Debug = F003 /* \M123.M000.F003 */
783            Debug = F004 /* \M123.M000.F004 */
784            Debug = F005 /* \M123.M000.F005 */
785            Debug = "------------."
786            Return (0x00)
787        }
788
789        Method (M001, 0, Serialized)
790        {
791            /* Field Unit */
792
793            OperationRegion (R000, SystemMemory, 0x0100, 0x0100)
794            Field (R000, ByteAcc, NoLock, Preserve)
795            {
796                F000,   8,
797                F001,   16,
798                F002,   32,
799                F003,   33,
800                F004,   7,
801                F005,   64
802            }
803
804            Debug = "------------ Fields:"
805            Debug = F000 /* \M123.M001.F000 */
806            Debug = F001 /* \M123.M001.F001 */
807            Debug = F002 /* \M123.M001.F002 */
808            Debug = F003 /* \M123.M001.F003 */
809            Debug = F004 /* \M123.M001.F004 */
810            Debug = F005 /* \M123.M001.F005 */
811            Debug = "------------."
812            Return (0x00)
813        }
814
815        M000 ()
816        M001 ()
817        Return (0x00)
818    }
819
820    /* Bug 81. */
821
822    Method (M124, 1, NotSerialized)
823    {
824        Method (M000, 0, NotSerialized)
825        {
826            Return (0x12345678)
827        }
828
829        Method (M001, 1, NotSerialized)
830        {
831            Return (0x12345678)
832        }
833
834        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
835        Local0 = ObjectType (M000)
836        If ((Local0 != C010))
837        {
838            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, C010)
839        }
840        /* Bug 81. */
841    /*
842     * Removed, invalid test.
843     * Compiler disallow method invocation as an operand to ObjectType.
844     */
845    /* Nov. 2012: Method invocation as arg to ObjectType is now illegal */
846    /*Store(ObjectType(m000()), Local0) */
847    /*if (LNotEqual(Local0, c009)) { */
848    /*	err(arg0, z054, __LINE__, 0, 0, Local0, c009) */
849    /*} */
850    /* */
851    /*Store(ObjectType(m001(123)), Local1) */
852    /*if (LNotEqual(Local1, c009)) { */
853    /*	err(arg0, z054, __LINE__, 0, 0, Local1, c009) */
854    /*} */
855    /* */
856    /*CH03(arg0, z054, 0x106, __LINE__, 0) */
857    }
858
859    /*
860     * Bug 117. Modification of the duplicated String
861     * modifies the initial String Object also.
862     *
863     * This test should be a part of another complex test.
864     *
865     * New objects creation and safety of the source
866     * objects referred as parameters to operators.
867     */
868    Method (M125, 1, NotSerialized)
869    {
870        Method (M001, 1, Serialized)
871        {
872            Name (S000, "String")
873            Local0 = S000 /* \M125.M001.S000 */
874            Local0 [0x03] = 0x61
875            If ((Local0 != "Strang"))
876            {
877                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, "Strang")
878            }
879
880            If ((S000 != "String"))
881            {
882                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, S000, "String")
883            }
884        }
885
886        Method (M002, 1, Serialized)
887        {
888            Name (B000, Buffer (0x06)
889            {
890                 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5               // ......
891            })
892            Local0 = B000 /* \M125.M002.B000 */
893            Local0 [0x03] = 0x61
894            If ((Local0 != Buffer (0x06)
895                        {
896                             0xA0, 0xA1, 0xA2, 0x61, 0xA4, 0xA5               // ...a..
897                        }))
898            {
899                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, Buffer (0x06)
900                    {
901                         0xA0, 0xA1, 0xA2, 0x61, 0xA4, 0xA5               // ...a..
902                    })
903            }
904
905            If ((B000 != Buffer (0x06)
906                        {
907                             0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5               // ......
908                        }))
909            {
910                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, B000, Buffer (0x06)
911                    {
912                         0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5               // ......
913                    })
914            }
915        }
916
917        Method (M003, 1, Serialized)
918        {
919            Name (P000, Package (0x06)
920            {
921                0xFFF0,
922                0xFFF1,
923                0xFFF2,
924                0xFFF3,
925                0xFFF4,
926                0xFFF5
927            })
928            Local0 = P000 /* \M125.M003.P000 */
929            Local0 [0x03] = 0x61
930            If ((DerefOf (Local0 [0x00]) != 0xFFF0))
931            {
932                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (Local0 [0x00]), 0xFFF0)
933            }
934
935            If ((DerefOf (Local0 [0x01]) != 0xFFF1))
936            {
937                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (Local0 [0x01]), 0xFFF1)
938            }
939
940            If ((DerefOf (Local0 [0x02]) != 0xFFF2))
941            {
942                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (Local0 [0x02]), 0xFFF2)
943            }
944
945            If ((DerefOf (Local0 [0x03]) != 0x61))
946            {
947                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (Local0 [0x03]), 0x61)
948            }
949
950            If ((DerefOf (Local0 [0x04]) != 0xFFF4))
951            {
952                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (Local0 [0x04]), 0xFFF4)
953            }
954
955            If ((DerefOf (Local0 [0x05]) != 0xFFF5))
956            {
957                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (Local0 [0x05]), 0xFFF5)
958            }
959
960            If ((DerefOf (P000 [0x00]) != 0xFFF0))
961            {
962                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (P000 [0x00]), 0xFFF0)
963            }
964
965            If ((DerefOf (P000 [0x01]) != 0xFFF1))
966            {
967                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (P000 [0x01]), 0xFFF1)
968            }
969
970            If ((DerefOf (P000 [0x02]) != 0xFFF2))
971            {
972                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (P000 [0x02]), 0xFFF2)
973            }
974
975            If ((DerefOf (P000 [0x03]) != 0xFFF3))
976            {
977                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (P000 [0x03]), 0xFFF3)
978            }
979
980            If ((DerefOf (P000 [0x04]) != 0xFFF4))
981            {
982                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (P000 [0x04]), 0xFFF4)
983            }
984
985            If ((DerefOf (P000 [0x05]) != 0xFFF5))
986            {
987                ERR (Arg0, Z054, __LINE__, 0x00, 0x00, DerefOf (P000 [0x05]), 0xFFF5)
988            }
989        }
990
991        M001 (Arg0)
992        M002 (Arg0)
993        M003 (Arg0)
994    }
995
996    /* No exception should arisen. */
997
998    Method (MF74, 0, Serialized)
999    {
1000        Local0 = 0x00
1001        Switch (ToInteger (Local0))
1002        {
1003            Case (0x65)
1004            {
1005                Device (D000)
1006                {
1007                }
1008
1009                Method (M002, 0, NotSerialized)
1010                {
1011                }
1012            }
1013
1014        }
1015    }
1016
1017    Method (MF75, 1, NotSerialized)
1018    {
1019        Method (MM00, 0, Serialized)
1020        {
1021            Local0 = 0x00
1022            Switch (ToInteger (Local0))
1023            {
1024                Case (0x65)
1025                {
1026                    Method (M000, 0, NotSerialized)
1027                    {
1028                    }
1029
1030                    Method (M001, 0, NotSerialized)
1031                    {
1032                    }
1033                }
1034
1035            }
1036        }
1037
1038        Method (MM01, 0, Serialized)
1039        {
1040            Local0 = 0x00
1041            Switch (ToInteger (Local0))
1042            {
1043                Case (0x65)
1044                {
1045                    Method (M002, 0, NotSerialized)
1046                    {
1047                    }
1048
1049                    Device (DV00)
1050                    {
1051                    }
1052                }
1053
1054            }
1055        }
1056
1057        Method (MM02, 0, Serialized)
1058        {
1059            Local0 = 0x00
1060            Switch (ToInteger (Local0))
1061            {
1062                Case (0x65)
1063                {
1064                    Device (DV01)
1065                    {
1066                    }
1067
1068                    Method (M003, 0, NotSerialized)
1069                    {
1070                    }
1071                }
1072
1073            }
1074        }
1075
1076        Method (MM03, 0, Serialized)
1077        {
1078            Local0 = 0x00
1079            Switch (ToInteger (Local0))
1080            {
1081                Case (0x65)
1082                {
1083                    Device (DV02)
1084                    {
1085                    }
1086
1087                    Device (DV03)
1088                    {
1089                    }
1090                }
1091
1092            }
1093        }
1094
1095        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1096        MF74 ()
1097        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1098        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1099        MM00 ()
1100        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1101        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1102        MM01 ()
1103        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1104        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1105        MM02 ()
1106        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1107        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1108        MM03 ()
1109        CH03 (Arg0, Z054, __LINE__, 0x00, 0x00)
1110    }
1111
1112    /*
1113     * Bug 153, Bugzilla 5314.
1114     * The corresponding bug has been fixed.
1115     * This is an invalid test, should be removed from test suite.
1116     * Method mf77 will fail on ABBU unexpectedly even without Method mf76.
1117     *
1118     * Method(mf76, 1)
1119     * {
1120     *	if (LNotEqual(arg0, "Strang")) {
1121     *		err(arg0, z054, __LINE__, 0, 0, arg0, "Strang")
1122     *	}
1123     * }
1124     *
1125     * Method(mf77, 1)
1126     * {
1127     *	Name(s000, "String")
1128     *	Name(p000, Package(){0})
1129     *
1130     *	Store(s000, p000)
1131     *
1132     *	Store(s000, Debug)
1133     *	Store(p000, Debug)
1134     *
1135     *	Store (0x61, Index(p000, 3))
1136     *
1137     *	mf76(p000)
1138     *	if (LNotEqual(s000, "String")) {
1139     *		err(arg0, z054, __LINE__, 0, 0, s000, "String")
1140     *	}
1141     * }
1142     */
1143    /* Bug 196 */
1144    Method (MF86, 1, NotSerialized)
1145    {
1146        CH03 ("mf86", Z054, __LINE__, 0x00, 0x00)
1147        Local1 = "0x0x12345678"
1148        ToInteger (Local1, Local0)
1149        If ((Local0 != 0x00))
1150        {
1151            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x00)
1152        }
1153
1154        CH04 ("mf86", 0x00, 0xFF, Z054, __LINE__, 0x00, 0x00)
1155    }
1156
1157    Method (MF87, 1, NotSerialized)
1158    {
1159        CH03 ("mf87", Z054, __LINE__, 0x00, 0x00)
1160        Local0 = ("0x0xabcdef" + 0x00010234)
1161        If ((Local0 != 0x00010234))
1162        {
1163            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x00010234)
1164        }
1165
1166        CH03 ("mf87", Z054, __LINE__, 0x00, 0x00)
1167        Local0 = (0x00010234 + "0x0xabcdef")
1168        If ((Local0 != 0x00010234))
1169        {
1170            ERR (Arg0, Z054, __LINE__, 0x00, 0x00, Local0, 0x00010234)
1171        }
1172
1173        CH03 ("mf87", Z054, __LINE__, 0x00, 0x00)
1174    }
1175
1176    Method (M15B, 0, Serialized)
1177    {
1178        /* **************** Definitions **************** */
1179
1180        Method (MM00, 0, NotSerialized)
1181        {
1182            Return (0xABCD0000)
1183        }
1184
1185        Name (P000, Package (0x03)
1186        {
1187            0xABCD0001,
1188            MM00,
1189            0xABCD0002
1190        })
1191        /* **************** Run checkings **************** */
1192        /* Store */
1193        Method (M000, 0, NotSerialized)
1194        {
1195            Local0 = MM00 ()
1196            If ((Local0 != 0xABCD0000))
1197            {
1198                ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local0, 0xABCD0000)
1199            }
1200        }
1201
1202        Method (M001, 0, NotSerialized)
1203        {
1204            CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1205            Local0 = DerefOf (RefOf (MM00))
1206            If (SLCK)
1207            {
1208                CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1209                Local1 = ObjectType (Local0)
1210                If ((Local1 != C010))
1211                {
1212                    ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local1, C010)
1213                }
1214            }
1215            Else
1216            {
1217                CH04 (__METHOD__, 0x00, 0x2F, Z054, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */
1218            }
1219        }
1220
1221        Method (M002, 0, NotSerialized)
1222        {
1223            CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1224            Local0 = DerefOf (P000 [0x01])
1225            If (SLCK)
1226            {
1227                CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1228                Local1 = ObjectType (Local0)
1229                If ((Local1 != C010))
1230                {
1231                    ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local1, C010)
1232                }
1233            }
1234            Else
1235            {
1236                CH04 (__METHOD__, 0x00, 0x2F, Z054, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */
1237            }
1238        }
1239
1240        Method (M003, 0, NotSerialized)
1241        {
1242                /* 10/2016: Compiler now catches illegal DerefOf(StringConstant) */
1243        /*		CH03(ts, z054, 0x009, __LINE__, 0) */
1244        /*		Store(DerefOf("mm00"), Local0) */
1245        /*		if (SLCK) { */
1246        /*			CH03(ts, z054, 0x00a, __LINE__, 0) */
1247        /*			Store(ObjectType(Local0), Local1) */
1248        /*			if (LNotEqual(Local1, c010)) { */
1249        /*				err(ts, z054, __LINE__, 0, 0, Local1, c010) */
1250        /*			} */
1251        /*		} else { */
1252        /*			CH04(ts, 0, 47, z054, __LINE__, 0, 0) // AE_AML_OPERAND_TYPE */
1253        /*		} */
1254        }
1255
1256        /* CopyObject */
1257
1258        Method (M004, 0, NotSerialized)
1259        {
1260            CopyObject (MM00 (), Local0)
1261            If ((Local0 != 0xABCD0000))
1262            {
1263                ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local0, 0xABCD0000)
1264            }
1265        }
1266
1267        Method (M005, 0, NotSerialized)
1268        {
1269            CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1270            CopyObject (DerefOf (RefOf (MM00)), Local0)
1271            CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1272            Local1 = ObjectType (Local0)
1273            If ((Local1 != C010))
1274            {
1275                ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local1, C010)
1276            }
1277        }
1278
1279        Method (M006, 0, NotSerialized)
1280        {
1281            CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1282            CopyObject (DerefOf (P000 [0x01]), Local0)
1283            CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1284            Local1 = ObjectType (Local0)
1285            If ((Local1 != C010))
1286            {
1287                ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local1, C010)
1288            }
1289        }
1290
1291        Method (M007, 0, NotSerialized)
1292        {
1293                /* 10/2016: Compiler now catches illegal DerefOf(StringConstant) */
1294        /*		CH03(ts, z054, 0x014, __LINE__, 0) */
1295        /*		CopyObject(DerefOf("mm00"), Local0) */
1296        /*		CH03(ts, z054, 0x015, __LINE__, 0) */
1297        /* */
1298        /*		Store(ObjectType(Local0), Local1) */
1299        /*		if (LNotEqual(Local1, c010)) { */
1300        /*			err(ts, z054, __LINE__, 0, 0, Local1, c010) */
1301        /*		} */
1302        }
1303
1304        /* Add */
1305
1306        Method (M008, 0, NotSerialized)
1307        {
1308            Local0 = (MM00 () + 0x01)
1309            If ((Local0 != 0xABCD0001))
1310            {
1311                ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local0, 0xABCD0001)
1312            }
1313        }
1314
1315        Method (M009, 0, NotSerialized)
1316        {
1317            CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1318            Local0 = (DerefOf (RefOf (MM00)) + 0x02)
1319            CH04 (__METHOD__, 0x00, 0x2F, Z054, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */
1320        }
1321
1322        Method (M00A, 0, NotSerialized)
1323        {
1324            CH03 (__METHOD__, Z054, __LINE__, 0x00, 0x00)
1325            Local0 = (DerefOf (P000 [0x01]) + 0x03)
1326            CH04 (__METHOD__, 0x00, 0x2F, Z054, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */
1327        }
1328
1329        Method (M00B, 0, NotSerialized)
1330        {
1331                /* 10/2016: Compiler now catches illegal DerefOf(StringConstant) */
1332        /*		CH03(ts, z054, 0x01c, __LINE__, 0) */
1333        /*		Add(DerefOf("mm00"), 4, Local0) */
1334        /*		CH04(ts, 0, 47, z054, __LINE__, 0, 0) // AE_AML_OPERAND_TYPE */
1335        }
1336
1337        /* ObjectType */
1338
1339        Method (M00C, 0, NotSerialized)
1340        {
1341            Local0 = ObjectType (MM00)
1342            If ((Local0 != C010))
1343            {
1344                ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local0, C010)
1345            }
1346        }
1347
1348        Method (M00D, 0, NotSerialized)
1349        {
1350            Local0 = ObjectType (DerefOf (RefOf (MM00)))
1351            If ((Local0 != C010))
1352            {
1353                ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local0, C010)
1354            }
1355        }
1356
1357        Method (M00E, 0, NotSerialized)
1358        {
1359            Local0 = ObjectType (DerefOf (P000 [0x01]))
1360            If ((Local0 != C010))
1361            {
1362                ERR (__METHOD__, Z054, __LINE__, 0x00, 0x00, Local0, C010)
1363            }
1364        }
1365
1366        Method (M00F, 0, NotSerialized)
1367        {
1368                /* 10/2016: Compiler now catches illegal DerefOf(StringConstant) */
1369        /*		Store(ObjectType(DerefOf("mm00")), Local0) */
1370        /*		if (LNotEqual(Local0, c010)) { */
1371        /*			err(ts, z054, __LINE__, 0, 0, Local0, c010) */
1372        /*		} */
1373        }
1374
1375        Method (M100, 0, NotSerialized)
1376        {
1377            SRMT ("m15b-0")
1378            M000 ()
1379            SRMT ("m15b-1")
1380            M001 ()
1381            SRMT ("m15b-2")
1382            M002 ()
1383            SRMT ("m15b-3")
1384            M003 ()
1385            SRMT ("m15b-4")
1386            M004 ()
1387            SRMT ("m15b-5")
1388            M005 ()
1389            SRMT ("m15b-6")
1390            M006 ()
1391            SRMT ("m15b-7")
1392            M007 ()
1393            SRMT ("m15b-8")
1394            M008 ()
1395            SRMT ("m15b-9")
1396            M009 ()
1397            SRMT ("m15b-a")
1398            M00A ()
1399            SRMT ("m15b-b")
1400            M00B ()
1401            SRMT ("m15b-c")
1402            M00C ()
1403            SRMT ("m15b-d")
1404            M00D ()
1405            SRMT ("m15b-e")
1406            M00E ()
1407            SRMT ("m15b-f")
1408            M00F ()
1409        }
1410
1411        M100 ()
1412    }
1413
1414    /* Run-method */
1415
1416    Method (MSC0, 0, Serialized)
1417    {
1418        SRMT ("m110")
1419        M110 (__METHOD__)
1420        SRMT ("m112")
1421        M112 (__METHOD__)
1422        SRMT ("m113")
1423        M113 (__METHOD__)
1424        SRMT ("m114")
1425        M114 (__METHOD__)
1426        SRMT ("m115")
1427        M115 (__METHOD__)
1428        SRMT ("m116")
1429        M116 (__METHOD__)
1430        SRMT ("m118")
1431        M118 (__METHOD__)
1432        SRMT ("m119")
1433        M119 (__METHOD__)
1434        SRMT ("m11c")
1435        M11C (__METHOD__)
1436        SRMT ("m11d")
1437        M11D (__METHOD__)
1438        SRMT ("m11e")
1439        M11E (__METHOD__)
1440        SRMT ("m11f")
1441        M11F (__METHOD__)
1442        SRMT ("m120")
1443        M120 (__METHOD__)
1444        SRMT ("m121")
1445        M121 (__METHOD__)
1446        SRMT ("m122")
1447        M122 (__METHOD__)
1448        SRMT ("m123")
1449        M123 (__METHOD__)
1450        SRMT ("m124")
1451        M124 (__METHOD__)
1452        SRMT ("m125")
1453        M125 (__METHOD__)
1454        SRMT ("mf75")
1455        MF75 (__METHOD__)
1456        /*SRMT("mf77") */
1457        /*mf77(ts) */
1458        SRMT ("mf86")
1459        MF86 (__METHOD__)
1460        SRMT ("mf87")
1461        MF87 (__METHOD__)
1462        M15B ()
1463    }
1464