1/*
2 * Some or all of this work - Copyright (c) 2006 - 2016, 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/*
30 * ns2 originated but has names from root
31 */
32
33/*
34 * Element of Package instead of i000 (in m001)
35 */
36Method(m203, 1, Serialized)
37{
38	Name(ts, "m203")
39	Name(i001, 0)
40	Name(p000, Package() {1,2,3,4})
41	Device(d000)
42	{
43		Name(pp00, Package() {0x11111111, 0x00000001, 0x22223333})
44	}
45
46	CH03(ts, z156, 0x006, 0, 0)
47
48	Store(arg0, i001)
49
50	Method(m001)
51	{
52		Method(m002)
53		{
54			Method(m003)
55			{
56				Method(m004)
57				{
58					Method(m005)
59					{
60						Method(m006)
61						{
62							Method(m007)
63							{
64								Method(m008)
65								{
66									if (i001)
67									{
68										Store(p000, Index(\m203.d000.pp00, 1))
69									}
70									Return (0)
71								}
72								Store(0x80000000, Index(\m203.d000.pp00, 1))
73								Return (Add(DerefOf(Index(\m203.d000.pp00, 1)), m008()))
74							}
75							Store(0x07000000, Index(\m203.d000.pp00, 1))
76							Return (Add(DerefOf(Index(\m203.d000.pp00, 1)), m007()))
77						}
78						Store(0x00600000, Index(\m203.d000.pp00, 1))
79						Return (Add(DerefOf(Index(\m203.d000.pp00, 1)), m006()))
80					}
81					Store(0x00050000, Index(\m203.d000.pp00, 1))
82					Return (Add(DerefOf(Index(\m203.d000.pp00, 1)), m005()))
83				}
84				Store(0x00004000, Index(\m203.d000.pp00, 1))
85				Return (Add(DerefOf(Index(\m203.d000.pp00, 1)), m004()))
86			}
87			Store(0x00000300, Index(\m203.d000.pp00, 1))
88			Return (Add(DerefOf(Index(\m203.d000.pp00, 1)), m003()))
89		}
90		Store(0x00000020, Index(^d000.pp00, 1))
91		Return (Add(DerefOf(Index(^d000.pp00, 1)), m002()))
92	}
93	Store(Add(DerefOf(Index(d000.pp00, 1)), m001()), Local0)
94
95	if (LNotEqual(Local0, 0x87654321)) {
96		err(ts, z156, 0x007, 0, 0, Local0, 0x87654321)
97	}
98
99	Store(DerefOf(Index(d000.pp00, 1)), Local0)
100
101	if (LNotEqual(Local0, 0x80000000)) {
102		err(ts, z156, 0x008, 0, 0, Local0, 0x80000000)
103	}
104
105	CH03(ts, z156, 0x009, 0, 0)
106}
107
108/*
109 * Buffer Field instead of i000 (in m001)
110 */
111Method(m205, 1, Serialized)
112{
113	Name(ts, "m205")
114	Name(i001, 0)
115	Name(p000, Package() {1,2,3,4})
116
117	CH03(ts, z156, 0x00d, 0, 0)
118
119	Device(d000)
120	{
121		Name(b000, Buffer(16) {})
122		CreateField(b000, 5, 32, bf00)
123	}
124
125	CH03(ts, z156, 0x00e, 0, 0)
126
127	if (0) {
128		CreateField(d000.b000, 5, 32, bf00)
129	}
130
131	Store(arg0, i001)
132
133	Method(m001)
134	{
135		Method(m002)
136		{
137			Method(m003)
138			{
139				Method(m004)
140				{
141					Method(m005)
142					{
143						Method(m006)
144						{
145							Method(m007)
146							{
147								Method(m008)
148								{
149									if (i001)
150									{
151										Store(p000, Index(\m205.d000.bf00, 1))
152									}
153									Return (0)
154								}
155								Store(0x80000000, Index(\m205.d000.bf00, 1))
156								Return (Add(DerefOf(Index(\m205.d000.bf00, 1)), m008()))
157							}
158							Store(0x07000000, Index(\m205.d000.bf00, 1))
159							Return (Add(DerefOf(Index(\m205.d000.bf00, 1)), m007()))
160						}
161						Store(0x00600000, Index(\m205.d000.bf00, 1))
162						Return (Add(DerefOf(Index(\m205.d000.bf00, 1)), m006()))
163					}
164					Store(0x00050000, Index(\m205.d000.bf00, 1))
165					Return (Add(DerefOf(Index(\m205.d000.bf00, 1)), m005()))
166				}
167				Store(0x00004000, Index(\m205.d000.bf00, 1))
168				Return (Add(DerefOf(Index(\m205.d000.bf00, 1)), m004()))
169			}
170			Store(0x00000300, Index(\m205.d000.bf00, 1))
171			Return (Add(DerefOf(Index(\m205.d000.bf00, 1)), m003()))
172		}
173		Store(0x00000020, Index(^d000.bf00, 1))
174		Return (Add(DerefOf(Index(^d000.bf00, 1)), m002()))
175	}
176	Store(Add(DerefOf(Index(d000.bf00, 1)), m001()), Local0)
177
178	if (LNotEqual(Local0, 0x87654321)) {
179		err(ts, z156, 0x00f, 0, 0, Local0, 0x87654321)
180	}
181
182	Store(DerefOf(Index(d000.bf00, 1)), Local0)
183
184	if (LNotEqual(Local0, 0x80000000)) {
185		err(ts, z156, 0x010, 0, 0, Local0, 0x80000000)
186	}
187
188	CH03(ts, z156, 0x011, 0, 0)
189}
190
191Method(n102)
192{
193if (1) {
194
195	SRMT("m203-0")
196	m203(0)
197	SRMT("m203-1")
198	if (y200) {
199		m203(1)
200	} else {
201		BLCK()
202	}
203	SRMT("m205-0")
204	if (y216) {
205		m205(0)
206	} else {
207		BLCK()
208	}
209	SRMT("m205-1")
210	if (LAnd(y200, y216)) {
211		m205(1)
212	} else {
213		BLCK()
214	}
215} else {
216	SRMT("m205-0")
217	m205(0)
218}
219}
220
221