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     * References
30     *
31     * (exceptions)
32     */
33    Name (Z109, 0x6D)
34    /*
35     * Check exceptions for unavailable types of Store
36     */
37    Method (M1B3, 0, Serialized)
38    {
39        C081 = Z109 /* absolute index of file initiating the checking */ /* \Z109 */
40        Method (M000, 1, NotSerialized)
41        {
42            If (Arg0)
43            {
44                Local7 = 0x00
45            }
46
47            CH03 (__METHOD__, Z109, __LINE__, 0x00, 0x00)
48            Local0 = Local7
49            If (!SLCK)
50            {
51                CH04 (__METHOD__, 0x00, 0xFF, Z109, __LINE__, 0x00, 0x00)
52            }
53        }
54
55        Method (M901, 0, NotSerialized)
56        {
57            Return (0x0ABC0012)
58        }
59
60        M000 (0x00)
61        Local0 = I900 /* \I900 */
62        Local7 = ObjectType (Local0)
63        If ((Local7 != C009))
64        {
65            ERR (__METHOD__, Z109, __LINE__, 0x00, 0x00, Local7, C009)
66        }
67
68        Local0 = S900 /* \S900 */
69        Local7 = ObjectType (Local0)
70        If ((Local7 != C00A))
71        {
72            ERR (__METHOD__, Z109, __LINE__, 0x00, 0x00, Local7, C00A)
73        }
74
75        Local0 = B900 /* \B900 */
76        Local7 = ObjectType (Local0)
77        If ((Local7 != C00B))
78        {
79            ERR (__METHOD__, Z109, __LINE__, 0x00, 0x00, Local7, C00B)
80        }
81
82        Local0 = P900 /* \P900 */
83        Local7 = ObjectType (Local0)
84        If ((Local7 != C00C))
85        {
86            ERR (__METHOD__, Z109, __LINE__, 0x00, 0x00, Local7, C00C)
87        }
88
89        Local0 = F900 /* \F900 */
90        Local7 = ObjectType (Local0)
91        If ((Local7 != C009))
92        {
93            ERR (__METHOD__, Z109, __LINE__, 0x00, 0x00, Local7, C009)
94        }
95
96        /*
97         // Removed 09/2015. iASL now disallows these stores
98         CH03(ts, z109, 7, __LINE__, 0)
99         Store(d900, Local0)
100         if (LNot(SLCK)){
101         CH04(ts, 0, 0xff, z109, __LINE__, 0, 0)
102         }
103         CH03(ts, z109, 9, __LINE__, 0)
104         Store(e900, Local0)
105         if (LNot(SLCK)){
106         CH04(ts, 0, 0xff, z109, __LINE__, 0, 0)
107         }
108         */
109        /*
110         * 21.12.2005.
111         * No exception now.
112         * Bug 114: could work improperly by the same reason as Bug 114.
113         * MS compiler allow this situation, iASL compiler just allows this
114         * for compatibility, iASL assume this is compiled to a method
115         * invacation.
116         */
117        If (X114)
118        {
119            CH03 (__METHOD__, Z109, __LINE__, 0x00, 0x00)
120            Local0 = M901 ()
121                /*CH04(ts, 0, 0xff, z109, __LINE__, 0, 0) */
122        }
123
124        /*
125         // Removed 09/2015. iASL now disallows these stores
126         CH03(ts, z109, 13, __LINE__, 0)
127         Store(mx90, Local0)
128         if (LNot(SLCK)){
129         CH04(ts, 0, 0xff, z109, __LINE__, 0, 0)
130         }
131         CH03(ts, z109, 15, __LINE__, 0)
132         Store(r900, Local0)
133         if (LNot(SLCK)){
134         CH04(ts, 0, 0xff, z109, __LINE__, 0, 0)
135         }
136         CH03(ts, z109, 17, __LINE__, 0)
137         Store(pw90, Local0)
138         if (LNot(SLCK)){
139         CH04(ts, 0, 0xff, z109, __LINE__, 0, 0)
140         }
141         CH03(ts, z109, 19, __LINE__, 0)
142         Store(pr90, Local0)
143         if (LNot(SLCK)){
144         CH04(ts, 0, 0xff, z109, __LINE__, 0, 0)
145         }
146         CH03(ts, z109, 21, __LINE__, 0)
147         Store(tz90, Local0)
148         if (LNot(SLCK))
149         {
150         CH04(ts, 0, 0xff, z109, __LINE__, 0, 0)
151         }
152         */
153        Local0 = BF90 /* \BF90 */
154        Local7 = ObjectType (Local0)
155        If ((Local7 != C00B))
156        {
157            ERR (__METHOD__, Z109, __LINE__, 0x00, 0x00, Local7, C009)
158        }
159    }
160