• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /barrelfish-2018-10-04/lib/acpica/tests/aslts/src/runtime/collections/functional/descriptor/
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 * Resource Descriptor macros
31 *
32 * Word IO Resource Descriptor Macro
33 */
34
35Name (p420, Package() {
36
37	// Byte 4 (General Flags) of Word Address Space Descriptor
38
39	ResourceTemplate () {
40		WordIO (ResourceProducer, MinNotFixed, MaxNotFixed, PosDecode, ,
41			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
42	},
43	ResourceTemplate () {
44		WordIO (ResourceProducer, MinNotFixed, MaxNotFixed, SubDecode, ,
45			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
46	},
47	ResourceTemplate () {
48		WordIO (ResourceProducer, MinNotFixed, MaxFixed, PosDecode, ,
49			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
50	},
51	ResourceTemplate () {
52		WordIO (ResourceProducer, MinNotFixed, MaxFixed, SubDecode, ,
53			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
54	},
55	ResourceTemplate () {
56		WordIO (ResourceProducer, MinFixed, MaxNotFixed, PosDecode, ,
57			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
58	},
59	ResourceTemplate () {
60		WordIO (ResourceProducer, MinFixed, MaxNotFixed, SubDecode, ,
61			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
62	},
63	ResourceTemplate () {
64		WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, ,
65			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
66	},
67	ResourceTemplate () {
68		WordIO (ResourceProducer, MinFixed, MaxFixed, SubDecode, ,
69			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
70	},
71	ResourceTemplate () {
72		WordIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, ,
73			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
74	},
75	ResourceTemplate () {
76		WordIO (ResourceConsumer, MinNotFixed, MaxNotFixed, SubDecode, ,
77			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
78	},
79	ResourceTemplate () {
80		WordIO (ResourceConsumer, MinNotFixed, MaxFixed, PosDecode, ,
81			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
82	},
83	ResourceTemplate () {
84		WordIO (ResourceConsumer, MinNotFixed, MaxFixed, SubDecode, ,
85			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
86	},
87	ResourceTemplate () {
88		WordIO (ResourceConsumer, MinFixed, MaxNotFixed, PosDecode, ,
89			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
90	},
91	ResourceTemplate () {
92		WordIO (ResourceConsumer, MinFixed, MaxNotFixed, SubDecode, ,
93			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
94	},
95	ResourceTemplate () {
96		WordIO (ResourceConsumer, MinFixed, MaxFixed, PosDecode, ,
97			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
98	},
99	ResourceTemplate () {
100		WordIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, ,
101			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
102	},
103
104	// Byte 5 (Type Specific Flags) of Word Address Space Descriptor
105
106	ResourceTemplate () {
107		WordIO ( , , , , NonISAOnlyRanges,
108			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
109			 , , , TypeStatic, DenseTranslation)
110	},
111	ResourceTemplate () {
112		WordIO ( , , , , NonISAOnlyRanges,
113			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
114			 , , , TypeStatic, SparseTranslation)
115	},
116	ResourceTemplate () {
117		WordIO ( , , , , NonISAOnlyRanges,
118			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
119			 , , , TypeTranslation, DenseTranslation)
120	},
121	ResourceTemplate () {
122		WordIO ( , , , , NonISAOnlyRanges,
123			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
124			 , , , TypeTranslation, SparseTranslation)
125	},
126	ResourceTemplate () {
127		WordIO ( , , , , ISAOnlyRanges,
128			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
129			 , , , TypeStatic, DenseTranslation)
130	},
131	ResourceTemplate () {
132		WordIO ( , , , , ISAOnlyRanges,
133			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
134			 , , , TypeStatic, SparseTranslation)
135	},
136	ResourceTemplate () {
137		WordIO ( , , , , ISAOnlyRanges,
138			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
139			 , , , TypeTranslation, DenseTranslation)
140	},
141	ResourceTemplate () {
142		WordIO ( , , , , ISAOnlyRanges,
143			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
144			 , , , TypeTranslation, SparseTranslation)
145	},
146	ResourceTemplate () {
147		WordIO ( , , , , EntireRange,
148			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
149			 , , , TypeStatic, DenseTranslation)
150	},
151	ResourceTemplate () {
152		WordIO ( , , , , EntireRange,
153			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
154			 , , , TypeStatic, SparseTranslation)
155	},
156	ResourceTemplate () {
157		WordIO ( , , , , EntireRange,
158			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
159			 , , , TypeTranslation, DenseTranslation)
160	},
161	ResourceTemplate () {
162		WordIO ( , , , , EntireRange,
163			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
164			 , , , TypeTranslation, SparseTranslation)
165	},
166
167	// Particular cases
168
169	ResourceTemplate () {
170		WordIO ( , , , , ,
171			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
172	},
173	ResourceTemplate () {
174		WordIO ( , , , , ,
175			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
176			, , , , )
177	},
178
179	// Resource Source
180
181	ResourceTemplate () {
182		WordIO ( , , , , ,
183			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
184			0x01, "", , , )
185	},
186	ResourceTemplate () {
187		WordIO ( , , , , ,
188			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
189			0x0f, "P", , , )
190	},
191	ResourceTemplate () {
192		WordIO ( , , , , ,
193			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
194			0xf0, "PATH", , , )
195	},
196	ResourceTemplate () {
197		WordIO ( , , , , ,
198			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
199			0xff,
200			"!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*",
201			  , , )
202	},
203
204	// Particular cases
205
206	ResourceTemplate () {
207		WordIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange,
208			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
209			0xff, "PATHPATHPATH", WIO0, TypeTranslation, SparseTranslation)
210	},
211	ResourceTemplate () {
212		WordIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange,
213			0, 0, 0, 0, 0,
214			0xff, "PATHPATHPATH", , TypeTranslation, SparseTranslation)
215	},
216
217	// 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection)
218	ResourceTemplate () {
219		WordIO ( , , , , ,
220			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
221			0x0f)
222	},
223})
224
225/*
226ACPI Specification, Revision 3.0, September 2, 2004
2276.4.3.5.3   Word Address Space Descriptor
228
229I/O Word Address Space Descriptor layout:
230
231Byte 0 (Tag Bits): Value=10001000B (0x88) (Type = 1, Large item name = 0x8)
232Byte 1 (Length, bits[7:0]): Variable: Value = 13 (minimum)
233Byte 2 (Length, bits[15:8]): Variable: Value = 0 (minimum)
234Byte 3 (Resource Type):
235	1		I/O range
236Byte 4 (General Flags):
237	Bits[7:4] 	Reserved (must be 0)
238	Bit[3] 		Min Address Fixed, _MAF:
239			1	The specified maximum address is fixed
240			0	The specified maximum address is not fixed
241				and can be changed
242	Bit[2] 		Max Address Fixed,_MIF:
243			1	The specified minimum address is fixed
244			0	The specified minimum address is not fixed
245				and can be changed
246	Bit[1] 		Decode Type, _DEC:
247			1	This bridge subtractively decodes this address
248	 	 	 	(top level bridges only)
249			0	This bridge positively decodes this address
250	Bit[0] 		Consumer/Producer:
251			1-This device consumes this resource
252			0-This device produces and consumes this resource
253
254Byte 5 (Type Specific Flags):
255	Flags that are specific to each resource type. The meaning of the flags
256	in this field depends on the value of the Resource Type field (see above)
257	Bits[7:6]	Reserved (must be 0)
258	Bit[5]		Sparse Translation, _TRS. This bit is only meaningful if Bit[4] is set.
259			1	SparseTranslation: The primary-side memory address of any specific
260				I/O port within the secondary-side range can be found using
261				the following function.
262
263				address = (((port & 0xFFFc) << 10) || (port & 0xFFF)) + _TRA
264
265				In the address used to access the I/O port, bits[11:2] must be identical
266				to bits[21:12], this gives four bytes of I/O ports on each 4 KB page.
267			0	DenseTranslation: The primary-side memory address of any specific I/O port
268				within the secondary-side range can be found using the following function.
269
270				address = port + _TRA
271	Bit[4]		I/O to Memory Translation, _TTP
272			1	TypeTranslation: This resource, which is I/O on the secondary side of
273				the bridge, is memory on the primary side of the bridge.
274			0	TypeStatic: This resource, which is I/O on the secondary side of
275				the bridge, is also I/O on the primary side of the bridge.
276	Bit[3:2]	Reserved (must be 0)
277	Bit[1:0]	_RNG
278			3	Memory window covers the entire range
279			2	ISARangesOnly. This flag is for bridges on systems with multiple bridges.
280				Setting this bit means the memory window specified in this descriptor is
281				limited to the ISA I/O addresses that fall within the specified window.
282				The ISA I/O ranges are: n000-n0FF, n400-n4FF, n800-n8FF, nC00-nCFF. This
283				bit can only be set for bridges entirely configured through ACPI namespace.
284			1	NonISARangesOnly. This flag is for bridges on systems with multiple bridges.
285				Setting this bit means the memory window specified in this descriptor is
286				limited to the non-ISA I/O addresses that fall within the specified window.
287				The non-ISA I/O ranges are: n100-n3FF, n500-n7FF, n900-nBFF, nD00-nFFF.
288				This bit can only be set for bridges entirely configured through ACPI namespace.
289			0	Reserved
290
291Byte 6 (Address space granularity, _GRA bits[7:0]):
292	A set bit in this mask means that this bit is decoded. All bits less
293	significant than the most significant set bit must be set. (in other
294	words, the value of the full Address Space Granularity field (all 16
295	bits) must be a number (2**n-1).
296Byte 7 (Address space granularity, _GRA bits[15:8])
297Byte 8 (Address range minimum, _MIN bits [7:0]):
298	For bridges that translate addresses, this is the address space
299	on the secondary side of the bridge
300Byte 9 (Address range minimum, _MIN bits[15:8])
301Byte 10 (Address range maximum, _MAX bits [7:0]): See comment for _MIN
302Byte 11 (Address range maximum, _MAX bits[15:8])
303Byte 12 (Address Translation offset, _TRA bits [7:0]):
304	For bridges that translate addresses across the bridge, this is the
305	offset that must be added to the address on the secondary side to obtain
306	the address on the primary side. Non-bridge devices must list 0 for all
307	Address Translation offset bits
308Byte 13 (Address Translation offset, _TRA bits[15:8])
309Byte 14 (Address Length, _LEN bits [7:0])
310Byte 15 (Address Length, _LEN bits[15:8])
311Byte 16 (Resource Source Index):
312	(Optional) Only present if Resource Source (below) is present. This
313	field gives an index to the specific resource descriptor that this
314	device consumes from in the current resource template for the device
315	object pointed to in Resource Source
316String (Resource Source):
317	(Optional) If present, the device that uses this descriptor consumes
318	its resources from the resources produced by the named device object.
319	If not present, the device consumes its resources out of a global pool.
320	If not present, the device consumes this resource from its hierarchical
321	parent.
322*/
323
324Name (p421, Package() {
325
326	// Byte 4 (General Flags) of Word Address Space Descriptor
327
328	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x00, 0x03,
329		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
330	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x02, 0x03,
331		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
332	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x08, 0x03,
333		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
334	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0a, 0x03,
335		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
336	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x04, 0x03,
337		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
338	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x06, 0x03,
339		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
340	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0c, 0x03,
341		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
342	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0e, 0x03,
343		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
344	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x03,
345		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
346	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x03, 0x03,
347		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
348	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x09, 0x03,
349		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
350	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0b, 0x03,
351		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
352	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x05, 0x03,
353		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
354	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x07, 0x03,
355		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
356	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0d, 0x03,
357		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
358	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0f, 0x03,
359		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
360
361	// Byte 5 (Type Specific Flags) of Word Address Space Descriptor
362
363	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x01,
364		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
365	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x21,
366		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
367	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x11,
368		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
369	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x31,
370		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
371	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x02,
372		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
373	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x22,
374		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
375	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x12,
376		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
377	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x32,
378		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
379	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x03,
380		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
381	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x23,
382		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
383	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x13,
384		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
385	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x33,
386		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
387
388	// Particular cases
389
390	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x03,
391		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
392	Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x03,
393		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
394
395	// Resource Source
396
397	Buffer () {0x88, 0x0f, 0x00, 0x01, 0x01, 0x03,
398		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
399		0x01, 0x00, 0x79, 0x00},
400	Buffer () {0x88, 0x10, 0x00, 0x01, 0x01, 0x03,
401		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
402		0x0f, 0x50, 0x00, 0x79, 0x00},
403	Buffer () {0x88, 0x13, 0x00, 0x01, 0x01, 0x03,
404		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
405		0xf0, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
406	Buffer () {0x88, 0xd7, 0x00, 0x01, 0x01, 0x03,
407		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
408		0xff,
409		0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
410		0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
411		0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
412		0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
413		0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
414		0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
415		0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
416		0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60,
417		0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
418		0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
419		0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
420		0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21,
421		0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
422		0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
423		0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
424		0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41,
425		0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
426		0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51,
427		0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
428		0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61,
429		0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
430		0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71,
431		0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
432		0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21, 0x22,
433		0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a,
434		0x00, 0x79, 0x00},
435
436	// Particular cases
437
438	Buffer () {0x88, 0x1b, 0x00, 0x01, 0x0f, 0x33,
439		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
440		0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
441		0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
442	Buffer () {0x88, 0x1b, 0x00, 0x01, 0x0f, 0x33,
443		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
444		0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
445		0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
446
447	// 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection)
448	Buffer () {0x88, 0x0e, 0x00, 0x01, 0x01, 0x03,
449		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
450		0x0f, 0x79, 0x00},
451})
452
453Method(RT0e,, Serialized)
454{
455	Name(ts, "RT0e")
456
457	// Emit test header, set the filename
458
459	THDR (ts, "WordIO Resource Descriptor Macro", __FILE__)
460
461    // Main test case for packages above
462
463	m330(ts, 37, "p420", p420, p421)
464
465    // Check resource descriptor tag offsets
466
467	Store (
468		ResourceTemplate () {
469			WordIO (ResourceProducer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange,
470				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, , , WIO0)
471			WordIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange,
472				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, , , WIO1)
473		}, Local0)
474
475	m331(ts, 1,  WIO0._DEC, 0x21, WIO1._DEC, 0xa1, "_DEC")
476	m331(ts, 2,  WIO0._MIF, 0x22, WIO1._MIF, 0xa2, "_MIF")
477	m331(ts, 3,  WIO0._MAF, 0x23, WIO1._MAF, 0xa3, "_MAF")
478	m331(ts, 4,  WIO0._RNG, 0x28, WIO1._RNG, 0xa8, "_RNG")
479	m331(ts, 5,  WIO0._TTP, 0x2c, WIO1._TTP, 0xac, "_TTP")
480	m331(ts, 6,  WIO0._TRS, 0x2d, WIO1._TRS, 0xad, "_TRS")
481	m331(ts, 7,  WIO0._GRA, 0x30, WIO1._GRA, 0xB0, "_GRA")
482	m331(ts, 8,  WIO0._MIN, 0x40, WIO1._MIN, 0xC0, "_MIN")
483	m331(ts, 9,  WIO0._MAX, 0x50, WIO1._MAX, 0xD0, "_MAX")
484	m331(ts, 10, WIO0._TRA, 0x60, WIO1._TRA, 0xE0, "_TRA")
485	m331(ts, 11, WIO0._LEN, 0x70, WIO1._LEN, 0xF0, "_LEN")
486}
487
488
489