grammar.asl revision 1.1.1.4 1 1.1 jruoho /*
2 1.1.1.4 christos * Some or all of this work - Copyright (c) 2006 - 2014, Intel Corp.
3 1.1 jruoho * All rights reserved.
4 1.1 jruoho *
5 1.1 jruoho * Redistribution and use in source and binary forms, with or without modification,
6 1.1 jruoho * are permitted provided that the following conditions are met:
7 1.1 jruoho *
8 1.1 jruoho * Redistributions of source code must retain the above copyright notice,
9 1.1 jruoho * this list of conditions and the following disclaimer.
10 1.1 jruoho * Redistributions in binary form must reproduce the above copyright notice,
11 1.1 jruoho * this list of conditions and the following disclaimer in the documentation
12 1.1 jruoho * and/or other materials provided with the distribution.
13 1.1 jruoho * Neither the name of Intel Corporation nor the names of its contributors
14 1.1 jruoho * may be used to endorse or promote products derived from this software
15 1.1 jruoho * without specific prior written permission.
16 1.1 jruoho *
17 1.1 jruoho * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 1.1 jruoho * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 1.1 jruoho * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 1.1 jruoho * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 1.1 jruoho * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 1.1 jruoho * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 1.1 jruoho * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 1.1 jruoho * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 1.1 jruoho * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 1.1 jruoho * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 1.1 jruoho */
28 1.1 jruoho
29 1.1 jruoho //
30 1.1 jruoho //
31 1.1 jruoho // Grammar.asl - Minimally excercises most ASL constructs
32 1.1 jruoho //
33 1.1 jruoho // NOTE -- use: iasl -f -of grammar.asl to compile
34 1.1 jruoho //
35 1.1 jruoho // This 1) Ignores errors (checks compiler error handling)
36 1.1 jruoho // 2) Disables constant folding
37 1.1 jruoho //
38 1.1 jruoho //
39 1.1 jruoho
40 1.1 jruoho /*******************************************************************************
41 1.1 jruoho Compilation should look like this:
42 1.1 jruoho
43 1.1 jruoho C:\acpica\tests\misc>iasl -f -of grammar.asl
44 1.1 jruoho
45 1.1 jruoho Intel ACPI Component Architecture
46 1.1 jruoho ASL Optimizing Compiler version 20090422 [Apr 22 2009]
47 1.1 jruoho Copyright (C) 2000 - 2009 Intel Corporation
48 1.1 jruoho Supports ACPI Specification Revision 3.0a
49 1.1 jruoho
50 1.1 jruoho grammar.asl 187: Name (_NPK, Package (8)
51 1.1 jruoho Warning 1098 - ^ Unknown reserved name (_NPK)
52 1.1 jruoho
53 1.1 jruoho grammar.asl 510: NAME (ESC1, "abcdefg\x00hijklmn")
54 1.1 jruoho Warning 1042 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
55 1.1 jruoho
56 1.1 jruoho grammar.asl 511: NAME (ESC2, "abcdefg\000hijklmn")
57 1.1 jruoho Warning 1042 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
58 1.1 jruoho
59 1.1 jruoho grammar.asl 601: Method (RCIV, 1)
60 1.1 jruoho Warning 1087 - ^ Not all control paths return a value (RCIV)
61 1.1 jruoho
62 1.1 jruoho grammar.asl 608: RCIV (Subtract (Arg0, 1))
63 1.1 jruoho Remark 5073 - ^ Recursive method call (RCIV)
64 1.1 jruoho
65 1.1 jruoho grammar.asl 937: Method (_ERR, 2)
66 1.1 jruoho Warning 1077 - ^ Reserved method has too few arguments (_ERR requires 3)
67 1.1 jruoho
68 1.1 jruoho grammar.asl 1377: Store (0x1234567887654321, QWD2)
69 1.1 jruoho Warning 1032 - ^ 64-bit integer in 32-bit table, truncating
70 1.1 jruoho
71 1.1 jruoho grammar.asl 1379: if (LNotEqual (Local0, 0x1234567887654321))
72 1.1 jruoho Warning 1032 - 64-bit integer in 32-bit table, truncating ^
73 1.1 jruoho
74 1.1 jruoho grammar.asl 1459: SizeOf (BUFO)
75 1.1 jruoho Warning 1105 - ^ Result is not used, operator has no effect
76 1.1 jruoho
77 1.1 jruoho grammar.asl 1485: Acquire (MTX2, 1)
78 1.1 jruoho Warning 1104 - ^ Possible operator timeout is ignored
79 1.1 jruoho
80 1.1 jruoho grammar.asl 1633: Add (Local0, Local1)
81 1.1 jruoho Warning 1105 - ^ Result is not used, operator has no effect
82 1.1 jruoho
83 1.1 jruoho grammar.asl 1804: Method (COND)
84 1.1 jruoho Warning 1087 - ^ Not all control paths return a value (COND)
85 1.1 jruoho
86 1.1 jruoho grammar.asl 6010: Name (_HID, "*PNP0A06")
87 1.1 jruoho Error 4001 - ^ String must be entirely alphanumeric (*PNP0A06)
88 1.1 jruoho
89 1.1 jruoho grammar.asl 6461: Name (_CRS, Buffer(26) {"\_SB_.PCI2._CRS..........."})
90 1.1 jruoho Warning 1038 - Invalid or unknown escape sequence ^
91 1.1 jruoho
92 1.1 jruoho grammar.asl 6800: And (Local0, 1, Local0) // Local0 &= 1
93 1.1 jruoho Error 4050 - ^ Method local variable is not initialized (Local0)
94 1.1 jruoho
95 1.1 jruoho grammar.asl 6886: Name (_HID, "*PNP0C0A") // Control Method Battey ID
96 1.1 jruoho Error 4001 - ^ String must be entirely alphanumeric (*PNP0C0A)
97 1.1 jruoho
98 1.1 jruoho ASL Input: grammar.asl - 10254 lines, 322162 bytes, 4810 keywords
99 1.1 jruoho AML Output: grammar.aml - 43392 bytes, 669 named objects, 4141 executable opcodes
100 1.1 jruoho
101 1.1 jruoho Compilation complete. 3 Errors, 12 Warnings, 1 Remarks, 1101 Optimizations
102 1.1 jruoho
103 1.1 jruoho ***************************************************************************************************/
104 1.1 jruoho
105 1.1 jruoho DefinitionBlock (
106 1.1 jruoho "grammar.aml", //Output filename
107 1.1 jruoho "DSDT", //Signature
108 1.1 jruoho 0x01, //DSDT Revision ---> 32-bit table
109 1.1 jruoho "Intel", //OEMID
110 1.1 jruoho "GRMTEST", //TABLE ID
111 1.1 jruoho 0x20090511 //OEM Revision
112 1.1 jruoho )
113 1.1 jruoho {
114 1.1 jruoho
115 1.1 jruoho External (\ABCD, UnknownObj)
116 1.1 jruoho
117 1.1 jruoho
118 1.1 jruoho /* Device with _STA and _INI */
119 1.1 jruoho
120 1.1 jruoho Device (A1)
121 1.1 jruoho {
122 1.1 jruoho Method (_STA)
123 1.1 jruoho {
124 1.1 jruoho Return (0x0F)
125 1.1 jruoho }
126 1.1 jruoho
127 1.1 jruoho Method (_INI)
128 1.1 jruoho {
129 1.1 jruoho Return
130 1.1 jruoho }
131 1.1 jruoho }
132 1.1 jruoho
133 1.1 jruoho /* Device with no _STA, has _INI */
134 1.1 jruoho
135 1.1 jruoho Device (A2)
136 1.1 jruoho {
137 1.1 jruoho Method (_INI)
138 1.1 jruoho {
139 1.1 jruoho Return
140 1.1 jruoho }
141 1.1 jruoho }
142 1.1 jruoho
143 1.1 jruoho /* Device with _STA, no _INI */
144 1.1 jruoho
145 1.1 jruoho Device (A3)
146 1.1 jruoho {
147 1.1 jruoho Method (_STA)
148 1.1 jruoho {
149 1.1 jruoho Return (0x0F)
150 1.1 jruoho }
151 1.1 jruoho }
152 1.1 jruoho
153 1.1 jruoho /* Device with _STA and _INI, but not present */
154 1.1 jruoho
155 1.1 jruoho Device (A4)
156 1.1 jruoho {
157 1.1 jruoho Method (_STA)
158 1.1 jruoho {
159 1.1 jruoho Return (Zero)
160 1.1 jruoho }
161 1.1 jruoho
162 1.1 jruoho Method (_INI)
163 1.1 jruoho {
164 1.1 jruoho Return
165 1.1 jruoho }
166 1.1 jruoho }
167 1.1 jruoho
168 1.1 jruoho
169 1.1 jruoho /* Resource descriptors */
170 1.1 jruoho
171 1.1 jruoho Device (IRES)
172 1.1 jruoho {
173 1.1 jruoho Name (PRT0, ResourceTemplate ()
174 1.1 jruoho {
175 1.1 jruoho IRQ (Edge, ActiveHigh, Exclusive) {3,4,5,6,7,9,10,11,14,15}
176 1.1 jruoho
177 1.1 jruoho StartDependentFn (1,1)
178 1.1 jruoho {
179 1.1 jruoho IRQNoFlags () {0,1,2}
180 1.1 jruoho }
181 1.1 jruoho EndDependentFn ()
182 1.1 jruoho })
183 1.1 jruoho
184 1.1 jruoho Method (_CRS, 0, NotSerialized)
185 1.1 jruoho {
186 1.1 jruoho Store ("_CRS:", Debug)
187 1.1 jruoho Store (PRT0, Debug)
188 1.1 jruoho Return (PRT0)
189 1.1 jruoho }
190 1.1 jruoho
191 1.1 jruoho Method (_SRS, 1, Serialized)
192 1.1 jruoho {
193 1.1 jruoho Store ("_SRS:", Debug)
194 1.1 jruoho Store (Arg0, Debug)
195 1.1 jruoho Return (Zero)
196 1.1 jruoho }
197 1.1 jruoho }
198 1.1 jruoho
199 1.1 jruoho Name (_NPK, Package ()
200 1.1 jruoho {
201 1.1 jruoho 0x1111,
202 1.1 jruoho 0x2222,
203 1.1 jruoho 0x3333,
204 1.1 jruoho 0x4444
205 1.1 jruoho })
206 1.1 jruoho
207 1.1 jruoho
208 1.1 jruoho Device (RES)
209 1.1 jruoho {
210 1.1 jruoho Name (_PRT, Package (0x04)
211 1.1 jruoho {
212 1.1 jruoho Package (0x04)
213 1.1 jruoho {
214 1.1 jruoho 0x0002FFFF,
215 1.1 jruoho Zero,
216 1.1 jruoho Zero,
217 1.1 jruoho Zero
218 1.1 jruoho },
219 1.1 jruoho
220 1.1 jruoho Package (0x04)
221 1.1 jruoho {
222 1.1 jruoho 0x0002FFFF,
223 1.1 jruoho One,
224 1.1 jruoho Zero,
225 1.1 jruoho Zero
226 1.1 jruoho },
227 1.1 jruoho
228 1.1 jruoho Package (0x04)
229 1.1 jruoho {
230 1.1 jruoho 0x000AFFFF,
231 1.1 jruoho Zero,
232 1.1 jruoho Zero,
233 1.1 jruoho Zero
234 1.1 jruoho },
235 1.1 jruoho
236 1.1 jruoho Package (0x04)
237 1.1 jruoho {
238 1.1 jruoho 0x000BFFFF,
239 1.1 jruoho Zero,
240 1.1 jruoho Zero,
241 1.1 jruoho Zero
242 1.1 jruoho }
243 1.1 jruoho })
244 1.1 jruoho
245 1.1.1.3 christos Method (_CRS, 0, Serialized)
246 1.1 jruoho {
247 1.1 jruoho Name (PRT0, ResourceTemplate ()
248 1.1 jruoho {
249 1.1 jruoho WordBusNumber (ResourceConsumer, MinFixed, MaxFixed, SubDecode,
250 1.1 jruoho 0x0000, // Address Space Granularity
251 1.1 jruoho 0xFFF2, // Address Range Minimum
252 1.1 jruoho 0xFFF3, // Address Range Maximum
253 1.1 jruoho 0x0032, // Address Translation Offset
254 1.1 jruoho 0x0002,,,)
255 1.1 jruoho WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
256 1.1 jruoho 0x0000, // Address Space Granularity
257 1.1 jruoho 0x0000, // Address Range Minimum
258 1.1 jruoho 0x00FF, // Address Range Maximum
259 1.1 jruoho 0x0000, // Address Translation Offset
260 1.1 jruoho 0x0100,,,)
261 1.1 jruoho WordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
262 1.1 jruoho 0x0000, // Address Space Granularity
263 1.1 jruoho 0xA000, // Address Range Minimum
264 1.1 jruoho 0xBFFF, // Address Range Maximum
265 1.1 jruoho 0x0000, // Address Translation Offset
266 1.1 jruoho 0x2000,,,)
267 1.1 jruoho IO (Decode16, 0x0CF8, 0x0CFF, 0x01, 0x08)
268 1.1 jruoho WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
269 1.1 jruoho 0x0000, // Address Space Granularity
270 1.1 jruoho 0x0000, // Address Range Minimum
271 1.1 jruoho 0x0CF7, // Address Range Maximum
272 1.1 jruoho 0x0000, // Address Translation Offset
273 1.1 jruoho 0x0CF8,,,
274 1.1 jruoho , TypeStatic)
275 1.1 jruoho WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
276 1.1 jruoho 0x0000, // Address Space Granularity
277 1.1 jruoho 0x0D00, // Address Range Minimum
278 1.1 jruoho 0xFFFF, // Address Range Maximum
279 1.1 jruoho 0x0000, // Address Translation Offset
280 1.1 jruoho 0xF300,,,
281 1.1 jruoho , TypeStatic)
282 1.1 jruoho DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
283 1.1 jruoho 0x00000000, // Address Space Granularity
284 1.1 jruoho 0x00000000, // Address Range Minimum
285 1.1 jruoho 0x00000CF7, // Address Range Maximum
286 1.1 jruoho 0x00000000, // Address Translation Offset
287 1.1 jruoho 0x00000CF8,,,
288 1.1 jruoho , TypeStatic)
289 1.1 jruoho DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
290 1.1 jruoho 0x00000000, // Address Space Granularity
291 1.1 jruoho 0x000C8000, // Address Range Minimum
292 1.1 jruoho 0x000EFFFF, // Address Range Maximum
293 1.1 jruoho 0x00000000, // Address Translation Offset
294 1.1 jruoho 0x00028000,,,
295 1.1 jruoho , AddressRangeMemory, TypeStatic)
296 1.1 jruoho DWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
297 1.1 jruoho 0x00000000, // Address Space Granularity
298 1.1 jruoho 0x000C8000, // Address Range Minimum
299 1.1 jruoho 0x000EFFFF, // Address Range Maximum
300 1.1 jruoho 0x00000000, // Address Translation Offset
301 1.1 jruoho 0x00028000,,,)
302 1.1 jruoho QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
303 1.1 jruoho 0x0000000000000000, // Address Space Granularity
304 1.1 jruoho 0x0000000000000000, // Address Range Minimum
305 1.1 jruoho 0x0000000000000CF7, // Address Range Maximum
306 1.1 jruoho 0x0000000000000000, // Address Translation Offset
307 1.1 jruoho 0x0000000000000CF8, 0x44, "This is a ResouceSource string",
308 1.1 jruoho , TypeStatic)
309 1.1 jruoho QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
310 1.1 jruoho 0x0000000000000000, // Address Space Granularity
311 1.1 jruoho 0x0000000000000000, // Address Range Minimum
312 1.1 jruoho 0x0000000000000CF7, // Address Range Maximum
313 1.1 jruoho 0x0000000000000000, // Address Translation Offset
314 1.1 jruoho 0x0000000000000CF8,,,
315 1.1 jruoho , TypeStatic)
316 1.1 jruoho QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
317 1.1 jruoho 0x0000000000000000, // Address Space Granularity
318 1.1 jruoho 0x0000000000100000, // Address Range Minimum
319 1.1 jruoho 0x00000000FFDFFFFF, // Address Range Maximum
320 1.1 jruoho 0x0000000000000000, // Address Translation Offset
321 1.1 jruoho 0x00000000FFD00000,,,
322 1.1 jruoho , AddressRangeMemory, TypeStatic)
323 1.1 jruoho QWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
324 1.1 jruoho 0x0000000000000000, // Address Space Granularity
325 1.1 jruoho 0x0000000000000000, // Address Range Minimum
326 1.1 jruoho 0x0000000000000CF7, // Address Range Maximum
327 1.1 jruoho 0x0000000000000000, // Address Translation Offset
328 1.1 jruoho 0x0000000000000CF8,,,)
329 1.1 jruoho ExtendedIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
330 1.1 jruoho 0x0000000000000000, // Address Space Granularity
331 1.1 jruoho 0x0000000000000000, // Address Range Minimum
332 1.1 jruoho 0x0000000000000CF7, // Address Range Maximum
333 1.1 jruoho 0x0000000000000000, // Address Translation Offset
334 1.1 jruoho 0x0000000000000CF8, // Address Length
335 1.1 jruoho 0x0000000000000000, // Type Specific Attributes
336 1.1 jruoho , TypeStatic)
337 1.1 jruoho ExtendedMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
338 1.1 jruoho 0x0000000000000000, // Address Space Granularity
339 1.1 jruoho 0x0000000000100000, // Address Range Minimum
340 1.1 jruoho 0x00000000FFDFFFFF, // Address Range Maximum
341 1.1 jruoho 0x0000000000000000, // Address Translation Offset
342 1.1 jruoho 0x00000000FFD00000, // Address Length
343 1.1 jruoho 0x0000000000000000, // Type Specific Attributes
344 1.1 jruoho , AddressRangeMemory, TypeStatic)
345 1.1 jruoho ExtendedSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0xA3,
346 1.1 jruoho 0x0000000000000000, // Address Space Granularity
347 1.1 jruoho 0x0000000000100000, // Address Range Minimum
348 1.1 jruoho 0x00000000FFDFFFFF, // Address Range Maximum
349 1.1 jruoho 0x0000000000000000, // Address Translation Offset
350 1.1 jruoho 0x00000000FFD00000, // Address Length
351 1.1 jruoho 0x0000000000000000) // Type Specific Attributes
352 1.1 jruoho IO (Decode16, 0x0010, 0x0020, 0x01, 0x10)
353 1.1 jruoho IO (Decode16, 0x0090, 0x00A0, 0x01, 0x10)
354 1.1 jruoho FixedIO (0x0061, 0x01)
355 1.1 jruoho IRQNoFlags () {2}
356 1.1 jruoho DMA (Compatibility, BusMaster, Transfer8_16) {4}
357 1.1 jruoho DMA (Compatibility, BusMaster, Transfer8) {2,5,7}
358 1.1 jruoho Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
359 1.1 jruoho Memory32Fixed (ReadOnly, 0xFFFE0000, 0x00020000)
360 1.1 jruoho Memory32 (ReadOnly, 0x00020000, 0xFFFE0000, 0x00000004, 0x00000200)
361 1.1 jruoho Memory24 (ReadOnly, 0x1111, 0x2222, 0x0004, 0x0200)
362 1.1 jruoho Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, 0xE, "\\_SB_.TEST")
363 1.1 jruoho {
364 1.1 jruoho 0x00000E01,
365 1.1 jruoho }
366 1.1 jruoho Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0x6, "xxxx")
367 1.1 jruoho {
368 1.1 jruoho 0x00000601,
369 1.1 jruoho 0x00000003,
370 1.1 jruoho 0x00000002,
371 1.1 jruoho 0x00000001,
372 1.1 jruoho }
373 1.1 jruoho Interrupt (ResourceProducer, Edge, ActiveHigh, Exclusive)
374 1.1 jruoho {
375 1.1 jruoho 0xFFFF0000,
376 1.1 jruoho 0x00000003,
377 1.1 jruoho 0x00000002,
378 1.1 jruoho 0x00000001,
379 1.1 jruoho 0x00000005,
380 1.1 jruoho 0x00000007,
381 1.1 jruoho 0x00000009,
382 1.1 jruoho }
383 1.1 jruoho VendorShort () {0x01, 0x02, 0x03}
384 1.1 jruoho VendorLong ()
385 1.1 jruoho {
386 1.1 jruoho 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
387 1.1 jruoho 0x09
388 1.1 jruoho }
389 1.1 jruoho Register (SystemIO, 0x08, 0x00, 0x00000000000000B2, , R000)
390 1.1 jruoho Register (SystemMemory, 0x08, 0x00, 0x00000000000000B2)
391 1.1 jruoho StartDependentFnNoPri ()
392 1.1 jruoho {
393 1.1 jruoho IRQNoFlags () {0,1,2}
394 1.1 jruoho IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,14,15}
395 1.1 jruoho }
396 1.1 jruoho EndDependentFn ()
397 1.1 jruoho })
398 1.1 jruoho CreateWordField (PRT0, 0x08, BMIN)
399 1.1 jruoho CreateByteField (PRT0, R000._ASZ, RSIZ)
400 1.1 jruoho Store (0x03, BMIN)
401 1.1 jruoho Return (PRT0)
402 1.1 jruoho }
403 1.1 jruoho
404 1.1.1.3 christos Method (_PRS, 0, Serialized)
405 1.1 jruoho {
406 1.1 jruoho Name (BUF0, ResourceTemplate ()
407 1.1 jruoho {
408 1.1 jruoho StartDependentFn (0x01, 0x02)
409 1.1 jruoho {
410 1.1 jruoho IO (Decode16, 0x03D8, 0x03F8, 0x01, 0x08)
411 1.1 jruoho IRQNoFlags () {4}
412 1.1 jruoho }
413 1.1 jruoho StartDependentFn (0x02, 0x01)
414 1.1 jruoho {
415 1.1 jruoho IO (Decode16, 0x03D8, 0x03E8, 0x01, 0x08)
416 1.1 jruoho IRQNoFlags () {4}
417 1.1 jruoho }
418 1.1 jruoho StartDependentFn (0x00, 0x02)
419 1.1 jruoho {
420 1.1 jruoho IO (Decode16, 0x02E8, 0x02F8, 0x01, 0x08)
421 1.1 jruoho IRQNoFlags () {3}
422 1.1 jruoho }
423 1.1 jruoho StartDependentFn (0x00, 0x02)
424 1.1 jruoho {
425 1.1 jruoho IO (Decode16, 0x02D8, 0x02E8, 0x01, 0x08)
426 1.1 jruoho IRQNoFlags () {3}
427 1.1 jruoho }
428 1.1 jruoho StartDependentFn (0x02, 0x00)
429 1.1 jruoho {
430 1.1 jruoho IO (Decode16, 0x0100, 0x03F8, 0x08, 0x08)
431 1.1 jruoho IRQNoFlags () {1,3,4,5,6,7,8,10,11,12,13,14,15}
432 1.1 jruoho }
433 1.1 jruoho EndDependentFn ()
434 1.1 jruoho })
435 1.1 jruoho Return (BUF0)
436 1.1 jruoho }
437 1.1 jruoho
438 1.1 jruoho Method (_SRS, 1, Serialized)
439 1.1 jruoho {
440 1.1 jruoho Return (Zero)
441 1.1 jruoho }
442 1.1 jruoho }
443 1.1 jruoho
444 1.1 jruoho
445 1.1 jruoho Name(\_S0,Package(0x04){
446 1.1 jruoho 0x00,
447 1.1 jruoho 0x00,
448 1.1 jruoho 0x00,
449 1.1 jruoho 0x00
450 1.1 jruoho })
451 1.1 jruoho Name(\_S3,Package(0x04){
452 1.1 jruoho 0x05,
453 1.1 jruoho 0x05,
454 1.1 jruoho 0x00,
455 1.1 jruoho 0x00
456 1.1 jruoho })
457 1.1 jruoho Name(\_S4,Package(0x04){
458 1.1 jruoho 0x06,
459 1.1 jruoho 0x06,
460 1.1 jruoho 0x00,
461 1.1 jruoho 0x00
462 1.1 jruoho })
463 1.1 jruoho Name(\_S5,Package(0x04){
464 1.1 jruoho 0x07,
465 1.1 jruoho 0x07,
466 1.1 jruoho 0x00,
467 1.1 jruoho 0x00
468 1.1 jruoho })
469 1.1 jruoho
470 1.1 jruoho /* Examine this table header (DSDT) */
471 1.1 jruoho
472 1.1 jruoho /*
473 1.1 jruoho DataTableRegion (HDR, "DSDT", "", "")
474 1.1 jruoho Field (HDR, AnyAcc, NoLock, Preserve)
475 1.1 jruoho {
476 1.1 jruoho SIG, 32,
477 1.1 jruoho LENG, 32,
478 1.1 jruoho REV, 8,
479 1.1 jruoho SUM, 8,
480 1.1 jruoho OID, 48,
481 1.1 jruoho OTID, 64,
482 1.1 jruoho OREV, 32,
483 1.1 jruoho CID, 32,
484 1.1 jruoho CREV, 32
485 1.1 jruoho }
486 1.1 jruoho
487 1.1 jruoho Method (SIZE)
488 1.1 jruoho {
489 1.1 jruoho If (LLess (REV, 2))
490 1.1 jruoho {
491 1.1 jruoho Store ("32-bit table", Debug)
492 1.1 jruoho }
493 1.1 jruoho else
494 1.1 jruoho {
495 1.1 jruoho Store ("64-bit table", Debug)
496 1.1 jruoho }
497 1.1 jruoho Return (0)
498 1.1 jruoho }
499 1.1 jruoho
500 1.1 jruoho */
501 1.1 jruoho Name (SIZE, 0)
502 1.1 jruoho
503 1.1 jruoho /* Custom operation region */
504 1.1 jruoho
505 1.1 jruoho OperationRegion(MYOP,0x80,0xFD60,0x6)
506 1.1 jruoho Field(MYOP,ByteAcc,NoLock,Preserve)
507 1.1 jruoho {
508 1.1 jruoho MFLD,8
509 1.1 jruoho }
510 1.1 jruoho
511 1.1.1.3 christos Method (TCOP,, Serialized)
512 1.1 jruoho {
513 1.1 jruoho Name (_STR, Unicode ("test"))
514 1.1 jruoho Store (4, MFLD)
515 1.1 jruoho Store (MFLD, Local0)
516 1.1 jruoho }
517 1.1 jruoho
518 1.1 jruoho Name (ERRS, 0x0)
519 1.1 jruoho
520 1.1 jruoho /* Warning should be issued for premature string termination */
521 1.1 jruoho
522 1.1 jruoho NAME (ESC1, "abcdefg\x00hijklmn")
523 1.1 jruoho NAME (ESC2, "abcdefg\000hijklmn")
524 1.1 jruoho Name (ESC3, "abc\a\bdef\f\n\r\t\v\x03ffff\432")
525 1.1 jruoho
526 1.1 jruoho
527 1.1 jruoho Name(CRSA,ResourceTemplate()
528 1.1 jruoho {
529 1.1 jruoho WORDBusNumber(ResourceProducer,MinFixed,MaxFixed,PosDecode,0x0000,0x0019,0x001D,0x0000,0x0005)
530 1.1 jruoho WORDIO(ResourceProducer,MinFixed,MaxFixed,PosDecode,NonISAOnlyRanges,0x0000,0xC000,0xCFFF,0x0000,0x1000)
531 1.1 jruoho DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
532 1.1 jruoho
533 1.1 jruoho })
534 1.1 jruoho Name(CRSB,ResourceTemplate()
535 1.1 jruoho {
536 1.1 jruoho DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
537 1.1 jruoho
538 1.1 jruoho })
539 1.1 jruoho
540 1.1 jruoho Name(CRSC,ResourceTemplate()
541 1.1 jruoho {
542 1.1 jruoho VendorShort () {0x1, 0x2, 0x3}
543 1.1 jruoho })
544 1.1 jruoho Name(CRSD,ResourceTemplate()
545 1.1 jruoho {
546 1.1 jruoho VendorLong (VNDL) {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9}
547 1.1 jruoho })
548 1.1 jruoho
549 1.1 jruoho Name(CRSE,ResourceTemplate()
550 1.1 jruoho {
551 1.1 jruoho IRQNoFlags(){3,4,10,11}
552 1.1 jruoho IRQNoFlags(xxxt){3,4,10,11}
553 1.1 jruoho })
554 1.1 jruoho Name(CRSR, Buffer (Add (SizeOf(CRSA),SizeOf(CRSB))){})
555 1.1 jruoho Method(_CRS,0,NotSerialized)
556 1.1 jruoho {
557 1.1 jruoho Return(CRSR)
558 1.1 jruoho }
559 1.1 jruoho
560 1.1 jruoho
561 1.1 jruoho //
562 1.1 jruoho // Unnamed scope
563 1.1 jruoho //
564 1.1 jruoho Scope (\)
565 1.1 jruoho {
566 1.1 jruoho Name(Bxxx,0xFFFFFFFF)
567 1.1 jruoho }
568 1.1 jruoho
569 1.1 jruoho Name (LANS, 0x0)
570 1.1 jruoho
571 1.1 jruoho PowerResource(LANP,1,0)
572 1.1 jruoho {
573 1.1 jruoho Method(_STA){
574 1.1 jruoho If(LEqual(And(LANS,0x30),0x30)){
575 1.1 jruoho Return(One)
576 1.1 jruoho } Else {
577 1.1 jruoho Return(Zero)
578 1.1 jruoho }
579 1.1 jruoho }
580 1.1 jruoho Method(_ON){
581 1.1 jruoho If(LNot(_STA())){
582 1.1 jruoho Store (0x30, LANS)
583 1.1 jruoho }
584 1.1 jruoho }
585 1.1 jruoho Method(_OFF){
586 1.1 jruoho If(_STA()){
587 1.1 jruoho Store (0, LANS)
588 1.1 jruoho }
589 1.1 jruoho }
590 1.1 jruoho }
591 1.1 jruoho
592 1.1 jruoho
593 1.1 jruoho /* Can a method define another method? */
594 1.1 jruoho
595 1.1 jruoho /**********************************
596 1.1 jruoho Method (TASK, 2, SERIALIZED)
597 1.1 jruoho {
598 1.1 jruoho Sleep (100)
599 1.1 jruoho
600 1.1 jruoho Method (TAS2)
601 1.1 jruoho {
602 1.1 jruoho Sleep (100)
603 1.1 jruoho }
604 1.1 jruoho
605 1.1 jruoho TAS2()
606 1.1 jruoho Return
607 1.1 jruoho
608 1.1 jruoho }
609 1.1 jruoho ************************************/
610 1.1 jruoho
611 1.1 jruoho /* A recursive method */
612 1.1 jruoho
613 1.1 jruoho Method (RCIV, 1)
614 1.1 jruoho {
615 1.1 jruoho Store (Arg0, Debug)
616 1.1 jruoho If (Lequal (Arg0, 0))
617 1.1 jruoho {
618 1.1 jruoho Return ()
619 1.1 jruoho }
620 1.1 jruoho RCIV (Subtract (Arg0, 1))
621 1.1 jruoho }
622 1.1 jruoho
623 1.1 jruoho Method (RTOP)
624 1.1 jruoho {
625 1.1 jruoho RCIV (100)
626 1.1 jruoho }
627 1.1 jruoho
628 1.1 jruoho
629 1.1 jruoho Scope(\_PR)
630 1.1 jruoho {
631 1.1 jruoho Processor(CPU0,0x0,0xFFFFFFFF,0x0) {}
632 1.1 jruoho }
633 1.1 jruoho
634 1.1 jruoho Name(B1TP,0xFFFFFFFF)
635 1.1 jruoho
636 1.1 jruoho Name(B2TP,0xFFFFFFFF)
637 1.1 jruoho Name(ADPS,0xFFFFFFFF)
638 1.1 jruoho Name(B1PS,0xFFFFFFFF)
639 1.1 jruoho Name(B1RS,0xFFFFFFFF)
640 1.1 jruoho Name(B1CS,0xFFFFFFFF)
641 1.1 jruoho Name(B2PS,0xFFFFFFFF)
642 1.1 jruoho Name(B2RS,0xFFFFFFFF)
643 1.1 jruoho Name(B2CS,0xFFFFFFFF)
644 1.1 jruoho Name(B1DC,3000)
645 1.1 jruoho Name(B2DC,2600)
646 1.1 jruoho Name(B1LF,3000)
647 1.1 jruoho Name(B2LF,2600)
648 1.1 jruoho Name(BPIF,0)
649 1.1 jruoho Name(PBLL,0)
650 1.1 jruoho
651 1.1 jruoho Name(RBIF,Package()
652 1.1 jruoho {
653 1.1 jruoho 0x1,
654 1.1 jruoho 2200,
655 1.1 jruoho 2200,
656 1.1 jruoho 0x1,
657 1.1 jruoho 10800,
658 1.1 jruoho 0,
659 1.1 jruoho 0,
660 1.1 jruoho 1,
661 1.1 jruoho 1,
662 1.1 jruoho "CA54200-5003/5",
663 1.1 jruoho "1",
664 1.1 jruoho "LION",
665 1.1 jruoho "Fujitsu"
666 1.1 jruoho })
667 1.1 jruoho
668 1.1 jruoho Method(SMWE, 4)
669 1.1 jruoho {
670 1.1 jruoho return(ONES)
671 1.1 jruoho }
672 1.1 jruoho
673 1.1 jruoho Method(SMRE, 4)
674 1.1 jruoho {
675 1.1 jruoho return(ONES)
676 1.1 jruoho }
677 1.1 jruoho
678 1.1 jruoho /*
679 1.1 jruoho Method(RDBT,0,Serialized){
680 1.1 jruoho If(LNot(SMWE(0x09,0x15,1,1))){
681 1.1 jruoho Store(0x18,Local2)
682 1.1 jruoho }
683 1.1 jruoho }
684 1.1 jruoho */
685 1.1 jruoho Scope(_SB)
686 1.1 jruoho {
687 1.1 jruoho
688 1.1 jruoho Name (SBUF, Buffer (128) {})
689 1.1 jruoho
690 1.1 jruoho CreateBitField (SBUF, 3, BITY)
691 1.1 jruoho CreateByteField (SBUF, 1, BYTY)
692 1.1 jruoho CreateWordField (SBUF, 2, WRDZ)
693 1.1 jruoho CreateDwordField (SBUF, 4, DWDZ)
694 1.1 jruoho CreateQwordField (SBUF, 8, QWDZ)
695 1.1 jruoho CreateField (SBUF, 128, 12, FLDZ)
696 1.1 jruoho CreateField (SBUF, 148, 96, FLDY)
697 1.1 jruoho CreateField (SBUF, 148, 96, \_SB_.FLDW)
698 1.1 jruoho
699 1.1 jruoho Method (_INI)
700 1.1 jruoho {
701 1.1 jruoho CreateField (\_SB_.SBUF, 148, 96, FLDV)
702 1.1 jruoho }
703 1.1 jruoho
704 1.1 jruoho
705 1.1 jruoho Device(PCI0)
706 1.1 jruoho {
707 1.1 jruoho Name(_HID,EISAID("PNP0A03"))
708 1.1 jruoho Name(_ADR,0x0)
709 1.1 jruoho
710 1.1.1.3 christos Method(_CRS,, Serialized)
711 1.1 jruoho {
712 1.1 jruoho Name(PRT0, ResourceTemplate() {
713 1.1 jruoho WORDBusNumber( // Bus number resource(0)
714 1.1 jruoho ResourceConsumer, // bit 0 of general flags is 1
715 1.1 jruoho MinFixed, // Range is notfixed
716 1.1 jruoho MaxFixed, // Range is not fixed
717 1.1 jruoho SubDecode, // SubDecode
718 1.1 jruoho 0x0000, // Granularity
719 1.1 jruoho 0xfff1, // Min
720 1.1 jruoho 0xfff2, // Max
721 1.1 jruoho 0x0032, // Translation
722 1.1 jruoho 0x0002,,, // Range Length
723 1.1 jruoho BUS0
724 1.1 jruoho ) } )// PRT0
725 1.1 jruoho
726 1.1 jruoho CreateWordField(PRT0, BUS0._MIN, BMIN) //Minimum bus number suported under this bridge.
727 1.1 jruoho
728 1.1 jruoho Store(3, BMIN)
729 1.1 jruoho Return(PRT0)
730 1.1 jruoho
731 1.1 jruoho } // _CRS
732 1.1 jruoho
733 1.1 jruoho Method(_SRS)
734 1.1 jruoho {
735 1.1 jruoho Return ()
736 1.1 jruoho }
737 1.1 jruoho
738 1.1 jruoho Device(EIO)
739 1.1 jruoho {
740 1.1 jruoho OperationRegion(FJIO,SystemIO,0xFD60,0x6)
741 1.1 jruoho Field(FJIO,ByteAcc,NoLock,Preserve)
742 1.1 jruoho {
743 1.1 jruoho GIDX,8,
744 1.1 jruoho
745 1.1 jruoho GDTA,8,
746 1.1 jruoho
747 1.1 jruoho PIDX,8,
748 1.1 jruoho
749 1.1 jruoho PDTA,8,
750 1.1 jruoho
751 1.1 jruoho SIDX,8,
752 1.1 jruoho
753 1.1 jruoho SDTA,8
754 1.1 jruoho }
755 1.1 jruoho IndexField(GIDX,GDTA,ByteAcc,NoLock,Preserve)
756 1.1 jruoho {
757 1.1 jruoho Offset(0x2),
758 1.1 jruoho ,5,
759 1.1 jruoho VGAS,2,
760 1.1 jruoho Offset(0x4),
761 1.1 jruoho ,4,
762 1.1 jruoho DCKE,1,
763 1.1 jruoho Offset(0x5),
764 1.1 jruoho ,6,
765 1.1 jruoho ACPW,1,
766 1.1 jruoho
767 1.1 jruoho Offset(0xA),
768 1.1 jruoho B1P,1,
769 1.1 jruoho
770 1.1 jruoho B2P,1,
771 1.1 jruoho
772 1.1 jruoho B1C,1,
773 1.1 jruoho
774 1.1 jruoho B2C,1,
775 1.1 jruoho
776 1.1 jruoho B1ER,1,
777 1.1 jruoho
778 1.1 jruoho B2ER,1,
779 1.1 jruoho
780 1.1 jruoho Offset(0xB),
781 1.1 jruoho B1CP,8,
782 1.1 jruoho
783 1.1 jruoho B2CP,8,
784 1.1 jruoho
785 1.1 jruoho BCP,8,
786 1.1 jruoho
787 1.1 jruoho B1VH,8,
788 1.1 jruoho
789 1.1 jruoho B1VL,8,
790 1.1 jruoho
791 1.1 jruoho B2VH,8,
792 1.1 jruoho
793 1.1 jruoho B2VL,8,
794 1.1 jruoho
795 1.1 jruoho B1TM,8,
796 1.1 jruoho
797 1.1 jruoho B2TM,8,
798 1.1 jruoho
799 1.1 jruoho B1CH,8,
800 1.1 jruoho
801 1.1 jruoho B1CL,8,
802 1.1 jruoho
803 1.1 jruoho B2CH,8,
804 1.1 jruoho
805 1.1 jruoho B2CL,8
806 1.1 jruoho }
807 1.1 jruoho }
808 1.1 jruoho }
809 1.1 jruoho }
810 1.1 jruoho
811 1.1 jruoho Method(RDBT,3,Serialized){
812 1.1 jruoho Store(0x1FFF,Local1)
813 1.1 jruoho If( Arg0 ){
814 1.1 jruoho Store(0x2FFF,Local1)
815 1.1 jruoho }
816 1.1 jruoho Store(0x18,Local2)
817 1.1 jruoho If( Arg1 ){
818 1.1 jruoho Store(0x10,Local2)
819 1.1 jruoho }
820 1.1 jruoho If(LNot(SMRE(0x09,0x15,1,RefOf(Local0)))){
821 1.1 jruoho If(LNot(SMWE(0x08,0x14,1,Local1))){
822 1.1 jruoho If(LNot(SMRE(0x09,0x17,Local2,RefOf(Local3)))){
823 1.1 jruoho Store(Local1,Arg2)
824 1.1 jruoho }
825 1.1 jruoho }
826 1.1 jruoho Or(Local0,0xFFF,Local0)
827 1.1 jruoho SMWE(0x08,0x14,1,Local0)
828 1.1 jruoho }
829 1.1 jruoho }
830 1.1 jruoho Method(MKWD,2)
831 1.1 jruoho {
832 1.1 jruoho If(And(Arg1,0x80)) {
833 1.1 jruoho Or(0xFFFF0000,Arg0,Local0)
834 1.1 jruoho Or(Local0,ShiftLeft(Arg1,8),Local0)
835 1.1 jruoho Subtract(Zero,Local0,Local0)
836 1.1 jruoho } else {
837 1.1 jruoho Store(Arg0,Local0)
838 1.1 jruoho Or(Local0,ShiftLeft(Arg1,8),Local0)
839 1.1 jruoho }
840 1.1 jruoho Return(Local0)
841 1.1 jruoho }
842 1.1 jruoho
843 1.1 jruoho Device(CMB1)
844 1.1 jruoho {
845 1.1 jruoho Name(_HID,EISAID("PNP0C0A"))
846 1.1 jruoho Name(_UID,0x1)
847 1.1 jruoho Alias(\_SB.PCI0.EIO.B1P,\_SB_.PCI0.XXXX)
848 1.1 jruoho Alias(\_SB.PCI0.EIO.B1P,B1P)
849 1.1 jruoho Alias(\_SB.PCI0.EIO.B1C,B1C)
850 1.1 jruoho Alias(\_SB.PCI0.EIO.B1CH,B1CH)
851 1.1 jruoho Alias(\_SB.PCI0.EIO.B1CL,B1CL)
852 1.1 jruoho Alias(\_SB.PCI0.EIO.B1VH,B1VH)
853 1.1 jruoho Alias(\_SB.PCI0.EIO.B1VL,B1VL)
854 1.1 jruoho Alias(\_SB.PCI0.EIO.B1CP,B1CP)
855 1.1 jruoho
856 1.1 jruoho Method(_INI)
857 1.1 jruoho {
858 1.1 jruoho Store(B1P, B1PS)
859 1.1 jruoho Store(B1CP,B1RS)
860 1.1 jruoho Store(B1C, B1CS)
861 1.1 jruoho }
862 1.1 jruoho
863 1.1 jruoho Method(_BIF){
864 1.1 jruoho RDBT(Zero,Zero,RefOf(B1DC))
865 1.1 jruoho RDBT(Zero,One,RefOf(B1LF))
866 1.1 jruoho Store(B1DC,Index(RBIF,1))
867 1.1 jruoho Store(B1LF,Index(RBIF,2))
868 1.1 jruoho Store("CA54200-5003/5",Index(RBIF,9))
869 1.1 jruoho Store("1",Index(RBIF,10))
870 1.1 jruoho Return(RBIF)
871 1.1 jruoho }
872 1.1 jruoho
873 1.1.1.3 christos Method(_BST,, Serialized) {
874 1.1 jruoho
875 1.1 jruoho _INI()
876 1.1 jruoho
877 1.1 jruoho Store(Zero,Local0)
878 1.1 jruoho
879 1.1 jruoho if (LAnd(B1P,LNot(B1C))){
880 1.1 jruoho Or(Local0,1,Local0)
881 1.1 jruoho }
882 1.1 jruoho
883 1.1 jruoho if (LAnd(B1P,B1C)) {
884 1.1 jruoho Or(Local0,2,Local0)
885 1.1 jruoho }
886 1.1 jruoho
887 1.1 jruoho if (LLessEqual(B1CP,1)) {
888 1.1 jruoho Or(Local0,4,Local0)
889 1.1 jruoho }
890 1.1 jruoho
891 1.1 jruoho Store(MKWD(B1CL,B1CH),Local1)
892 1.1 jruoho
893 1.1 jruoho Store(Divide(Add(Multiply(B1CP,B1LF),99),100),Local2)
894 1.1 jruoho
895 1.1 jruoho Store(MKWD(B1VL,B1VH),Local3)
896 1.1 jruoho
897 1.1 jruoho Name(STAT,Package(4){})
898 1.1 jruoho Store(Local0,Index(STAT,0))
899 1.1 jruoho Store(Local1,Index(STAT,1))
900 1.1 jruoho Store(Local2,Index(STAT,2))
901 1.1 jruoho Store(Local3,Index(STAT,3))
902 1.1 jruoho
903 1.1 jruoho If(LNot(BPIF)){
904 1.1 jruoho // \_SB.PCI0.EIO.EC0.IECT()
905 1.1 jruoho // \_SB.PCI0.EIO.EC0.SECT()
906 1.1 jruoho Store(One,BPIF)
907 1.1 jruoho }
908 1.1 jruoho return(STAT)
909 1.1 jruoho }
910 1.1 jruoho
911 1.1 jruoho }
912 1.1 jruoho
913 1.1 jruoho Device (DEV1)
914 1.1 jruoho {
915 1.1 jruoho }
916 1.1 jruoho
917 1.1 jruoho Scope(\_TZ)
918 1.1 jruoho {
919 1.1 jruoho ThermalZone(TZ1)
920 1.1 jruoho {
921 1.1 jruoho Name(_PSL,Package()
922 1.1 jruoho {
923 1.1 jruoho \_PR.CPU0
924 1.1 jruoho })
925 1.1 jruoho }
926 1.1 jruoho }
927 1.1 jruoho
928 1.1 jruoho Method (TZ2, 0, SERIALIZED)
929 1.1 jruoho {
930 1.1 jruoho Name(_PSL,Package()
931 1.1 jruoho {
932 1.1 jruoho \_PR.CPU0
933 1.1 jruoho })
934 1.1 jruoho
935 1.1 jruoho Return (_PSL)
936 1.1 jruoho }
937 1.1 jruoho
938 1.1 jruoho ThermalZone (THM1)
939 1.1 jruoho {
940 1.1 jruoho }
941 1.1 jruoho
942 1.1 jruoho Method (NOTI)
943 1.1 jruoho {
944 1.1 jruoho Notify (\DEV1, 0)
945 1.1 jruoho Notify (\THM1, 0)
946 1.1 jruoho Notify (\_PR.CPU0, 0)
947 1.1 jruoho }
948 1.1 jruoho
949 1.1 jruoho Method (_ERR, 2)
950 1.1 jruoho {
951 1.1 jruoho Increment (ERRS)
952 1.1 jruoho Store ("Run-time exception:", Debug)
953 1.1 jruoho Store (Arg0, Debug)
954 1.1 jruoho Store (Arg1, Debug)
955 1.1 jruoho
956 1.1 jruoho Return (0) // Map error to AE_OK
957 1.1 jruoho }
958 1.1 jruoho
959 1.1 jruoho Method (DIV0)
960 1.1 jruoho {
961 1.1 jruoho Store (1, Local0)
962 1.1 jruoho Store (0, Local1)
963 1.1 jruoho Divide (Local0, Local1, Local3)
964 1.1 jruoho
965 1.1 jruoho Store ("DIV0 - noabort", Debug)
966 1.1 jruoho }
967 1.1 jruoho
968 1.1 jruoho Method (ERR_, 1)
969 1.1 jruoho {
970 1.1 jruoho if (LEqual (Arg0, 0))
971 1.1 jruoho {
972 1.1 jruoho Store ("+*+*+*+* MTHD_ERROR: Results not equal!", Debug)
973 1.1 jruoho }
974 1.1 jruoho if (LEqual (Arg0, 1))
975 1.1 jruoho {
976 1.1 jruoho Store ("+*+*+*+* MTHD_ERROR: Numeric result is incorrect!", Debug)
977 1.1 jruoho }
978 1.1 jruoho if (LEqual (Arg0, 2))
979 1.1 jruoho {
980 1.1 jruoho Store ("+*+*+*+* MTHD_ERROR: Operand was clobbered!", Debug)
981 1.1 jruoho }
982 1.1 jruoho
983 1.1 jruoho Notify (DEV1, Arg0)
984 1.1 jruoho Increment (ERRS)
985 1.1 jruoho }
986 1.1 jruoho
987 1.1 jruoho Method (R226, 2)
988 1.1 jruoho {
989 1.1 jruoho }
990 1.1 jruoho Method (R225, 2)
991 1.1 jruoho {
992 1.1 jruoho R226 (Arg0, Arg1)
993 1.1 jruoho }
994 1.1 jruoho Method (R224, 2)
995 1.1 jruoho {
996 1.1 jruoho R225 (Arg1, Arg0)
997 1.1 jruoho }
998 1.1 jruoho Method (R223, 2)
999 1.1 jruoho {
1000 1.1 jruoho R224 (Arg0, Arg1)
1001 1.1 jruoho }
1002 1.1 jruoho Method (R222, 2)
1003 1.1 jruoho {
1004 1.1 jruoho R223 (Arg1, Arg0)
1005 1.1 jruoho }
1006 1.1 jruoho Method (R111)
1007 1.1 jruoho {
1008 1.1 jruoho Store (0x01010101, Local0)
1009 1.1 jruoho R222 (0xABAB, Local0)
1010 1.1 jruoho Store (Local0, Local1)
1011 1.1 jruoho }
1012 1.1 jruoho
1013 1.1 jruoho Method (MAIN)
1014 1.1 jruoho {
1015 1.1 jruoho
1016 1.1 jruoho // SIZE()
1017 1.1 jruoho Store (NUM1(), Local0)
1018 1.1 jruoho \CMB1._BST()
1019 1.1 jruoho RDBT(1,2,3)
1020 1.1 jruoho OBJ1(1)
1021 1.1 jruoho OBJ2(2)
1022 1.1 jruoho CHEK()
1023 1.1 jruoho RETZ()
1024 1.1 jruoho BITZ()
1025 1.1 jruoho LOGS()
1026 1.1 jruoho REFS()
1027 1.1 jruoho COND()
1028 1.1 jruoho TZ2()
1029 1.1 jruoho
1030 1.1 jruoho //
1031 1.1 jruoho // iPCO tests added
1032 1.1 jruoho //
1033 1.1 jruoho Store (\IFEL.TEST(), Local0)
1034 1.1 jruoho if (LGreater (Local0, 0))
1035 1.1 jruoho {
1036 1.1 jruoho ERR_ (1)
1037 1.1 jruoho Return(Local0)
1038 1.1 jruoho }
1039 1.1 jruoho
1040 1.1 jruoho Store (\NOSV.TEST(), Local0)
1041 1.1 jruoho if (LGreater (Local0, 0))
1042 1.1 jruoho {
1043 1.1 jruoho ERR_ (1)
1044 1.1 jruoho Return(Local0)
1045 1.1 jruoho }
1046 1.1 jruoho
1047 1.1 jruoho Store (\IDXF.TEST(), Local0)
1048 1.1 jruoho if (LGreater (Local0, 0))
1049 1.1 jruoho {
1050 1.1 jruoho ERR_ (1)
1051 1.1 jruoho Return(Local0)
1052 1.1 jruoho }
1053 1.1 jruoho
1054 1.1 jruoho Store (\_SB_.NSTL.TEST(), Local0)
1055 1.1 jruoho if (LGreater (Local0, 0))
1056 1.1 jruoho {
1057 1.1 jruoho ERR_ (1)
1058 1.1 jruoho Return(Local0)
1059 1.1 jruoho }
1060 1.1 jruoho
1061 1.1 jruoho Store (\RTBF.TEST(), Local0)
1062 1.1 jruoho if (LGreater (Local0, 0))
1063 1.1 jruoho {
1064 1.1 jruoho ERR_ (1)
1065 1.1 jruoho Return(Local0)
1066 1.1 jruoho }
1067 1.1 jruoho
1068 1.1 jruoho Store (\_SB_.RTLV.TEST(), Local0)
1069 1.1 jruoho if (LGreater (Local0, 0))
1070 1.1 jruoho {
1071 1.1 jruoho ERR_ (1)
1072 1.1 jruoho Return(Local0)
1073 1.1 jruoho }
1074 1.1 jruoho
1075 1.1 jruoho Store (\_SB_.RETP.TEST(), Local0)
1076 1.1 jruoho if (LGreater (Local0, 0))
1077 1.1 jruoho {
1078 1.1 jruoho ERR_ (1)
1079 1.1 jruoho Return(Local0)
1080 1.1 jruoho }
1081 1.1 jruoho
1082 1.1 jruoho Store (\WHLR.TEST(), Local0)
1083 1.1 jruoho if (LGreater (Local0, 0))
1084 1.1 jruoho {
1085 1.1 jruoho ERR_ (1)
1086 1.1 jruoho Return(Local0)
1087 1.1 jruoho }
1088 1.1 jruoho
1089 1.1 jruoho Store (\ANDO.TEST(), Local0)
1090 1.1 jruoho if (LGreater (Local0, 0))
1091 1.1 jruoho {
1092 1.1 jruoho ERR_ (1)
1093 1.1 jruoho Return(Local0)
1094 1.1 jruoho }
1095 1.1 jruoho
1096 1.1 jruoho Store (\BRKP.TEST(), Local0)
1097 1.1 jruoho if (LGreater (Local0, 0))
1098 1.1 jruoho {
1099 1.1 jruoho ERR_ (1)
1100 1.1 jruoho Return(Local0)
1101 1.1 jruoho }
1102 1.1 jruoho
1103 1.1 jruoho Store (\ADSU.TEST(), Local0)
1104 1.1 jruoho if (LGreater (Local0, 0))
1105 1.1 jruoho {
1106 1.1 jruoho ERR_ (1)
1107 1.1 jruoho Return(Local0)
1108 1.1 jruoho }
1109 1.1 jruoho
1110 1.1 jruoho Store (\INDC.TEST(), Local0)
1111 1.1 jruoho if (LGreater (Local0, 0))
1112 1.1 jruoho {
1113 1.1 jruoho ERR_ (1)
1114 1.1 jruoho Return(Local0)
1115 1.1 jruoho }
1116 1.1 jruoho
1117 1.1 jruoho Store (\LOPS.TEST(), Local0)
1118 1.1 jruoho if (LGreater (Local0, 0))
1119 1.1 jruoho {
1120 1.1 jruoho ERR_ (1)
1121 1.1 jruoho Return(Local0)
1122 1.1 jruoho }
1123 1.1 jruoho
1124 1.1 jruoho Store (\FDSO.TEST(), Local0)
1125 1.1 jruoho if (LGreater (Local0, 0))
1126 1.1 jruoho {
1127 1.1 jruoho ERR_ (1)
1128 1.1 jruoho Return(Local0)
1129 1.1 jruoho }
1130 1.1 jruoho
1131 1.1 jruoho Store (\MLDV.TEST(), Local0)
1132 1.1 jruoho if (LGreater (Local0, 0))
1133 1.1 jruoho {
1134 1.1 jruoho ERR_ (1)
1135 1.1 jruoho Return(Local0)
1136 1.1 jruoho }
1137 1.1 jruoho
1138 1.1 jruoho Store (\NBIT.TEST(), Local0)
1139 1.1 jruoho if (LGreater (Local0, 0))
1140 1.1 jruoho {
1141 1.1 jruoho ERR_ (1)
1142 1.1 jruoho Return(Local0)
1143 1.1 jruoho }
1144 1.1 jruoho
1145 1.1 jruoho Store (\SHFT.TEST(), Local0)
1146 1.1 jruoho if (LGreater (Local0, 0))
1147 1.1 jruoho {
1148 1.1 jruoho ERR_ (1)
1149 1.1 jruoho Return(Local0)
1150 1.1 jruoho }
1151 1.1 jruoho
1152 1.1 jruoho Store (\XORD.TEST(), Local0)
1153 1.1 jruoho if (LGreater (Local0, 0))
1154 1.1 jruoho {
1155 1.1 jruoho ERR_ (1)
1156 1.1 jruoho Return(Local0)
1157 1.1 jruoho }
1158 1.1 jruoho
1159 1.1 jruoho Store (\CRBF.TEST(), Local0)
1160 1.1 jruoho if (LGreater (Local0, 0))
1161 1.1 jruoho {
1162 1.1 jruoho ERR_ (1)
1163 1.1 jruoho Return(Local0)
1164 1.1 jruoho }
1165 1.1 jruoho
1166 1.1 jruoho Store (\IDX4.TEST(), Local0)
1167 1.1 jruoho if (LGreater (Local0, 0))
1168 1.1 jruoho {
1169 1.1 jruoho ERR_ (1)
1170 1.1 jruoho Return(Local0)
1171 1.1 jruoho }
1172 1.1 jruoho
1173 1.1 jruoho Store (\EVNT.TEST(), Local0)
1174 1.1 jruoho if (LGreater (Local0, 0))
1175 1.1 jruoho {
1176 1.1 jruoho ERR_ (1)
1177 1.1 jruoho Return(Local0)
1178 1.1 jruoho }
1179 1.1 jruoho
1180 1.1 jruoho Store (\SZLV.TEST(), Local0)
1181 1.1 jruoho if (LGreater (Local0, 0))
1182 1.1 jruoho {
1183 1.1 jruoho ERR_ (1)
1184 1.1 jruoho Return(Local0)
1185 1.1 jruoho }
1186 1.1 jruoho
1187 1.1 jruoho Store (\_SB_.BYTF.TEST(), Local0)
1188 1.1 jruoho if (LGreater (Local0, 0))
1189 1.1 jruoho {
1190 1.1 jruoho ERR_ (1)
1191 1.1 jruoho Return(Local0)
1192 1.1 jruoho }
1193 1.1 jruoho
1194 1.1 jruoho Store (\DWDF.TEST(), Local0)
1195 1.1 jruoho if (LGreater (Local0, 0))
1196 1.1 jruoho {
1197 1.1 jruoho ERR_ (1)
1198 1.1 jruoho Return(Local0)
1199 1.1 jruoho }
1200 1.1 jruoho
1201 1.1 jruoho Store (\DVAX.TEST(), Local0)
1202 1.1 jruoho if (LGreater (Local0, 0))
1203 1.1 jruoho {
1204 1.1 jruoho ERR_ (1)
1205 1.1 jruoho Return(Local0)
1206 1.1 jruoho }
1207 1.1 jruoho
1208 1.1 jruoho Store (\IDX6.TEST(), Local0)
1209 1.1 jruoho if (LGreater (Local0, 0))
1210 1.1 jruoho {
1211 1.1 jruoho ERR_ (1)
1212 1.1 jruoho Return(Local0)
1213 1.1 jruoho }
1214 1.1 jruoho
1215 1.1 jruoho Store (\IDX5.TEST(), Local0)
1216 1.1 jruoho if (LGreater (Local0, 0))
1217 1.1 jruoho {
1218 1.1 jruoho ERR_ (1)
1219 1.1 jruoho Return(Local0)
1220 1.1 jruoho }
1221 1.1 jruoho
1222 1.1 jruoho Store (\_SB_.IDX0.TEST(), Local0)
1223 1.1 jruoho if (LGreater (Local0, 0))
1224 1.1 jruoho {
1225 1.1 jruoho ERR_ (1)
1226 1.1 jruoho Return(Local0)
1227 1.1 jruoho }
1228 1.1 jruoho
1229 1.1 jruoho Store (\_SB_.IDX3.TEST(), Local0)
1230 1.1 jruoho if (LGreater (Local0, 0))
1231 1.1 jruoho {
1232 1.1 jruoho ERR_ (1)
1233 1.1 jruoho Return(Local0)
1234 1.1 jruoho }
1235 1.1 jruoho
1236 1.1 jruoho Store (\IDX7.TEST(), Local0)
1237 1.1 jruoho if (LGreater (Local0, 0))
1238 1.1 jruoho {
1239 1.1 jruoho ERR_ (1)
1240 1.1 jruoho Return(Local0)
1241 1.1 jruoho }
1242 1.1 jruoho
1243 1.1 jruoho Store (\MTCH.TEST(), Local0)
1244 1.1 jruoho if (LGreater (Local0, 0))
1245 1.1 jruoho {
1246 1.1 jruoho ERR_ (1)
1247 1.1 jruoho Return(Local0)
1248 1.1 jruoho }
1249 1.1 jruoho
1250 1.1 jruoho Store (\WHLB.TEST(), Local0)
1251 1.1 jruoho if (LGreater (Local0, 0))
1252 1.1 jruoho {
1253 1.1 jruoho ERR_ (1)
1254 1.1 jruoho Return(Local0)
1255 1.1 jruoho }
1256 1.1 jruoho
1257 1.1 jruoho Store (\_SB_.IDX2.TEST(), Local0)
1258 1.1 jruoho if (LGreater (Local0, 0))
1259 1.1 jruoho {
1260 1.1 jruoho ERR_ (1)
1261 1.1 jruoho Return(Local0)
1262 1.1 jruoho }
1263 1.1 jruoho
1264 1.1 jruoho Store (\SIZO.TEST(), Local0)
1265 1.1 jruoho if (LGreater (Local0, 0))
1266 1.1 jruoho {
1267 1.1 jruoho ERR_ (1)
1268 1.1 jruoho Return(Local0)
1269 1.1 jruoho }
1270 1.1 jruoho
1271 1.1 jruoho Store (\_SB_.SMIS.TEST(), Local0)
1272 1.1 jruoho if (LGreater (Local0, 0))
1273 1.1 jruoho {
1274 1.1 jruoho ERR_ (1)
1275 1.1 jruoho Return(Local0)
1276 1.1 jruoho }
1277 1.1 jruoho
1278 1.1 jruoho if (LGreater (ERRS, 0))
1279 1.1 jruoho {
1280 1.1 jruoho Store ("****** There were errors during the execution of the test ******", Debug)
1281 1.1 jruoho }
1282 1.1 jruoho
1283 1.1 jruoho //
1284 1.1 jruoho // Last Test
1285 1.1 jruoho //
1286 1.1 jruoho
1287 1.1 jruoho Return(0) // Success
1288 1.1 jruoho }
1289 1.1 jruoho
1290 1.1 jruoho
1291 1.1 jruoho Method (OBJ1, 1, SERIALIZED)
1292 1.1 jruoho {
1293 1.1 jruoho
1294 1.1 jruoho Store (3, Local0)
1295 1.1 jruoho Name(BUFR, Buffer (Local0) {})
1296 1.1 jruoho Name(BUF1, Buffer (4) {1,2,3,4})
1297 1.1 jruoho Name(BUF2, Buffer (4) {})
1298 1.1 jruoho
1299 1.1 jruoho Store (BUF1, BUF2)
1300 1.1 jruoho Mutex (MTX1, 4)
1301 1.1 jruoho
1302 1.1 jruoho Alias (MTX1, MTX2)
1303 1.1 jruoho }
1304 1.1 jruoho
1305 1.1 jruoho
1306 1.1 jruoho Mutex (MTXT, 0)
1307 1.1 jruoho Mutex (MTXX, 0)
1308 1.1 jruoho
1309 1.1 jruoho /*
1310 1.1 jruoho * Field Creation
1311 1.1 jruoho */
1312 1.1 jruoho
1313 1.1.1.3 christos Method (FLDS,, Serialized)
1314 1.1 jruoho {
1315 1.1 jruoho Store ("++++++++ Creating BufferFields", Debug)
1316 1.1 jruoho Name (BUF2, Buffer (128) {})
1317 1.1 jruoho
1318 1.1 jruoho CreateBitField (BUF2, 3, BIT2)
1319 1.1 jruoho CreateByteField (BUF2, 1, BYT2)
1320 1.1 jruoho CreateWordField (BUF2, 2, WRD2)
1321 1.1 jruoho CreateDwordField (BUF2, 4, DWD2)
1322 1.1 jruoho CreateQwordField (BUF2, 8, QWD2)
1323 1.1 jruoho CreateField (BUF2, 128, 12, FLD2)
1324 1.1 jruoho CreateField (BUF2, 148, 96, FLD3)
1325 1.1 jruoho
1326 1.1 jruoho Store (0x1, BIT2)
1327 1.1 jruoho Store (BIT2, Local0)
1328 1.1 jruoho if (LNotEqual (Local0, 0x1))
1329 1.1 jruoho {
1330 1.1 jruoho ERR_ (1)
1331 1.1 jruoho }
1332 1.1 jruoho else
1333 1.1 jruoho {
1334 1.1 jruoho Store (DerefOf (Index (BUF2, 0)), Local0)
1335 1.1 jruoho if (LNotEqual (Local0, 0x08))
1336 1.1 jruoho {
1337 1.1 jruoho ERR_ (1)
1338 1.1 jruoho }
1339 1.1 jruoho else
1340 1.1 jruoho {
1341 1.1 jruoho Store ("++++++++ Bit BufferField I/O PASS", Debug)
1342 1.1 jruoho }
1343 1.1 jruoho }
1344 1.1 jruoho
1345 1.1 jruoho Store (0x1A, BYT2)
1346 1.1 jruoho Store (BYT2, Local0)
1347 1.1 jruoho if (LNotEqual (Local0, 0x1A))
1348 1.1 jruoho {
1349 1.1 jruoho ERR_ (1)
1350 1.1 jruoho }
1351 1.1 jruoho else
1352 1.1 jruoho {
1353 1.1 jruoho Store ("++++++++ Byte BufferField I/O PASS", Debug)
1354 1.1 jruoho }
1355 1.1 jruoho
1356 1.1 jruoho Store (0x1234, WRD2)
1357 1.1 jruoho Store (WRD2, Local0)
1358 1.1 jruoho if (LNotEqual (Local0, 0x1234))
1359 1.1 jruoho {
1360 1.1 jruoho ERR_ (1)
1361 1.1 jruoho }
1362 1.1 jruoho else
1363 1.1 jruoho {
1364 1.1 jruoho Store ("++++++++ Word BufferField I/O PASS", Debug)
1365 1.1 jruoho }
1366 1.1 jruoho
1367 1.1 jruoho Store (0x123, FLD2)
1368 1.1 jruoho Store (FLD2, Local0)
1369 1.1 jruoho if (LNotEqual (Local0, 0x123))
1370 1.1 jruoho {
1371 1.1 jruoho ERR_ (1)
1372 1.1 jruoho }
1373 1.1 jruoho else
1374 1.1 jruoho {
1375 1.1 jruoho Store ("++++++++ 12-bit BufferField I/O PASS", Debug)
1376 1.1 jruoho }
1377 1.1 jruoho
1378 1.1 jruoho Store (0x12345678, DWD2)
1379 1.1 jruoho Store (DWD2, Local0)
1380 1.1 jruoho if (LNotEqual (Local0, 0x12345678))
1381 1.1 jruoho {
1382 1.1 jruoho ERR_ (1)
1383 1.1 jruoho }
1384 1.1 jruoho else
1385 1.1 jruoho {
1386 1.1 jruoho Store ("++++++++ Dword BufferField I/O PASS", Debug)
1387 1.1 jruoho }
1388 1.1 jruoho
1389 1.1 jruoho Store (0x1234567887654321, QWD2)
1390 1.1 jruoho Store (QWD2, Local0)
1391 1.1 jruoho if (LNotEqual (Local0, 0x1234567887654321))
1392 1.1 jruoho {
1393 1.1 jruoho ERR_ (1)
1394 1.1 jruoho }
1395 1.1 jruoho else
1396 1.1 jruoho {
1397 1.1 jruoho Store ("++++++++ Qword BufferField I/O PASS", Debug)
1398 1.1 jruoho }
1399 1.1 jruoho }
1400 1.1 jruoho
1401 1.1 jruoho
1402 1.1 jruoho /* Field execution */
1403 1.1 jruoho
1404 1.1.1.3 christos Method (FLDX,, Serialized)
1405 1.1 jruoho {
1406 1.1 jruoho Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
1407 1.1 jruoho { // Field: SMEM overlay using 32-bit field elements
1408 1.1 jruoho SMD0, 32, // 32-bits
1409 1.1 jruoho SMD1, 32, // 32-bits
1410 1.1 jruoho SMD2, 32, // 32-bits
1411 1.1 jruoho SMD3, 32 // 32-bits
1412 1.1 jruoho } // Field: SMEM overlay using 32-bit field elements
1413 1.1 jruoho Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
1414 1.1 jruoho { // Field: SMEM overlay using greater than 32-bit field elements
1415 1.1 jruoho SME0, 69, // larger than an integer (32 or 64)
1416 1.1 jruoho SME1, 97 // larger than an integer
1417 1.1 jruoho } // Field: SMEM overlay using greater than 32-bit field elements
1418 1.1 jruoho }
1419 1.1 jruoho
1420 1.1 jruoho
1421 1.1 jruoho Method (MTX_, )
1422 1.1 jruoho {
1423 1.1 jruoho /* Test "Force release" of mutex on method exit */
1424 1.1 jruoho
1425 1.1 jruoho Acquire (MTXT, 0xFFFF)
1426 1.1 jruoho Acquire (MTXX, 0xFFFF)
1427 1.1 jruoho
1428 1.1 jruoho Store ("++++++++ Acquiring Mutex MTX2", Debug)
1429 1.1 jruoho Acquire (_GL_, 0xFFFF)
1430 1.1 jruoho
1431 1.1 jruoho
1432 1.1 jruoho Store ("++++++++ Releasing Mutex MTX2", Debug)
1433 1.1 jruoho Release (_GL_)
1434 1.1 jruoho }
1435 1.1 jruoho
1436 1.1 jruoho
1437 1.1.1.3 christos Method (OBJ2, 1, Serialized)
1438 1.1 jruoho {
1439 1.1 jruoho Store ("++++++++ Creating Buffer BUFO", Debug)
1440 1.1 jruoho Name (BUFO, Buffer (32) {})
1441 1.1 jruoho
1442 1.1 jruoho Store ("++++++++ Creating OpRegion OPR2", Debug)
1443 1.1 jruoho OperationRegion (OPR2, SystemMemory, Arg0, 256)
1444 1.1 jruoho
1445 1.1 jruoho Store ("++++++++ Creating Field(s) in OpRegion OPR2", Debug)
1446 1.1 jruoho Field (OPR2, ByteAcc, NoLock, Preserve)
1447 1.1 jruoho {
1448 1.1 jruoho IDX2, 8,
1449 1.1 jruoho DAT2, 8,
1450 1.1 jruoho BNK2, 4
1451 1.1 jruoho }
1452 1.1 jruoho
1453 1.1 jruoho Store ("++++++++ Creating BankField BNK2 in OpRegion OPR2", Debug)
1454 1.1 jruoho //
1455 1.1 jruoho // mcw 3/20/00 - changed FET0, 4, FET1, 3 to FET0, 1, FET1, 1
1456 1.1 jruoho //
1457 1.1 jruoho BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
1458 1.1 jruoho {
1459 1.1 jruoho FET0, 4,
1460 1.1 jruoho FET1, 3
1461 1.1 jruoho }
1462 1.1 jruoho
1463 1.1 jruoho Store ("++++++++ Creating IndexField", Debug)
1464 1.1 jruoho IndexField (IDX2, DAT2, ByteAcc, NoLock, Preserve)
1465 1.1 jruoho {
1466 1.1 jruoho FET2, 4,
1467 1.1 jruoho FET3, 3
1468 1.1 jruoho }
1469 1.1 jruoho
1470 1.1 jruoho Store ("++++++++ SizeOf (BUFO)", Debug)
1471 1.1 jruoho SizeOf (BUFO)
1472 1.1 jruoho
1473 1.1 jruoho Store ("++++++++ Store (SizeOf (BUFO), Local0)", Debug)
1474 1.1 jruoho Store (SizeOf (BUFO), Local0)
1475 1.1 jruoho
1476 1.1 jruoho Store ("++++++++ Concatenate (\"abd\", \"def\", Local0)", Debug)
1477 1.1 jruoho Concatenate ("abd", "def", Local0)
1478 1.1 jruoho Store (Local0, Debug)
1479 1.1 jruoho
1480 1.1 jruoho Store ("++++++++ Concatenate (\"abd\", 0x7B, Local0)", Debug)
1481 1.1 jruoho Concatenate ("abd", 0x7B, Local0)
1482 1.1 jruoho Store (Local0, Debug)
1483 1.1 jruoho
1484 1.1 jruoho Store ("++++++++ Creating Event EVT2", Debug)
1485 1.1 jruoho Event (EVT2)
1486 1.1 jruoho
1487 1.1 jruoho Store ("++++++++ Creating Mutex MTX2", Debug)
1488 1.1 jruoho Mutex (MTX2, 0)
1489 1.1 jruoho
1490 1.1 jruoho Store ("++++++++ Creating Alias MTXA to MTX2", Debug)
1491 1.1 jruoho Alias (MTX2, MTXA)
1492 1.1 jruoho
1493 1.1 jruoho Store ("++++++++ Acquiring Mutex MTX2", Debug)
1494 1.1 jruoho Acquire (MTX2, 0xFFFF)
1495 1.1 jruoho
1496 1.1 jruoho Store ("++++++++ Acquiring Mutex MTX2 (2nd acquire)", Debug)
1497 1.1 jruoho Acquire (MTX2, 1)
1498 1.1 jruoho
1499 1.1 jruoho Store ("++++++++ Releasing Mutex MTX2", Debug)
1500 1.1 jruoho Release (MTX2)
1501 1.1 jruoho
1502 1.1 jruoho // Type 1 opcodes
1503 1.1 jruoho
1504 1.1 jruoho Store ("++++++++ Signalling Event EVT2", Debug)
1505 1.1 jruoho Signal (EVT2)
1506 1.1 jruoho
1507 1.1 jruoho Store ("++++++++ Resetting Event EVT2", Debug)
1508 1.1 jruoho Reset (EVT2)
1509 1.1 jruoho
1510 1.1 jruoho Store ("++++++++ Signalling Event EVT2", Debug)
1511 1.1 jruoho Signal (EVT2)
1512 1.1 jruoho
1513 1.1 jruoho Store ("++++++++ Waiting Event EVT2", Debug)
1514 1.1 jruoho Wait (EVT2, 0xFFFF)
1515 1.1 jruoho
1516 1.1 jruoho Store ("++++++++ Sleep", Debug)
1517 1.1 jruoho Sleep (100)
1518 1.1 jruoho
1519 1.1 jruoho Store ("++++++++ Stall", Debug)
1520 1.1 jruoho Stall (254)
1521 1.1 jruoho
1522 1.1 jruoho Store ("++++++++ NoOperation", Debug)
1523 1.1 jruoho Noop
1524 1.1 jruoho
1525 1.1 jruoho // Type 2 Opcodes
1526 1.1 jruoho
1527 1.1 jruoho Store ("++++++++ Return from Method OBJ2", Debug)
1528 1.1 jruoho return (4)
1529 1.1 jruoho }
1530 1.1 jruoho
1531 1.1 jruoho
1532 1.1 jruoho Method (NUM1, 0)
1533 1.1 jruoho {
1534 1.1 jruoho /* ADD */
1535 1.1 jruoho
1536 1.1 jruoho Store ("++++++++ Add (0x12345678, 0x11111111, Local0)", Debug)
1537 1.1 jruoho Add (0x12345678, 0x11111111, Local0)
1538 1.1 jruoho
1539 1.1 jruoho Store ("++++++++ Store (Add (0x12345678, 0x11111111), Local1)", Debug)
1540 1.1 jruoho Store (Add (0x12345678, 0x11111111), Local1)
1541 1.1 jruoho
1542 1.1 jruoho Store ("++++++++ Checking result from ADD", Debug)
1543 1.1 jruoho if (LNotEqual (Local0, Local1))
1544 1.1 jruoho {
1545 1.1 jruoho ERR_ (0)
1546 1.1 jruoho }
1547 1.1 jruoho
1548 1.1 jruoho
1549 1.1 jruoho /* SUBTRACT */
1550 1.1 jruoho
1551 1.1 jruoho Store ("++++++++ Subtract (0x87654321, 0x11111111, Local4)", Debug)
1552 1.1 jruoho Subtract (0x87654321, 0x11111111, Local4)
1553 1.1 jruoho
1554 1.1 jruoho Store ("++++++++ Store (Subtract (0x87654321, 0x11111111), Local5)", Debug)
1555 1.1 jruoho Store (Subtract (0x87654321, 0x11111111), Local5)
1556 1.1 jruoho
1557 1.1 jruoho Store ("++++++++ Checking result from SUBTRACT", Debug)
1558 1.1 jruoho if (LNotEqual (Local4, Local5))
1559 1.1 jruoho {
1560 1.1 jruoho ERR_ (0)
1561 1.1 jruoho }
1562 1.1 jruoho
1563 1.1 jruoho
1564 1.1 jruoho /* MULTIPLY */
1565 1.1 jruoho
1566 1.1 jruoho Store ("++++++++ Multiply (33, 10, Local6)", Debug)
1567 1.1 jruoho Multiply (33, 10, Local6)
1568 1.1 jruoho
1569 1.1 jruoho Store ("++++++++ Store (Multiply (33, 10), Local7)", Debug)
1570 1.1 jruoho Store (Multiply (33, 10), Local7)
1571 1.1 jruoho
1572 1.1 jruoho
1573 1.1 jruoho Store ("++++++++ Checking result from MULTIPLY", Debug)
1574 1.1 jruoho if (LNotEqual (Local6, Local7))
1575 1.1 jruoho {
1576 1.1 jruoho ERR_ (0)
1577 1.1 jruoho }
1578 1.1 jruoho
1579 1.1 jruoho
1580 1.1 jruoho /* DIVIDE */
1581 1.1 jruoho
1582 1.1 jruoho Store ("++++++++ Divide (100, 9, Local1, Local2)", Debug)
1583 1.1 jruoho Divide (100, 9, Local1, Local2)
1584 1.1 jruoho
1585 1.1 jruoho Store ("++++++++ Store (Divide (100, 9), Local3)", Debug)
1586 1.1 jruoho Store (Divide (100, 9), Local3)
1587 1.1 jruoho
1588 1.1 jruoho Store ("++++++++ Checking (quotient) result from DIVIDE", Debug)
1589 1.1 jruoho if (LNotEqual (Local2, Local3))
1590 1.1 jruoho {
1591 1.1 jruoho ERR_ (0)
1592 1.1 jruoho }
1593 1.1 jruoho
1594 1.1 jruoho
1595 1.1 jruoho /* INCREMENT */
1596 1.1 jruoho
1597 1.1 jruoho Store ("++++++++ Increment (Local0)", Debug)
1598 1.1 jruoho Store (1, Local0)
1599 1.1 jruoho Store (2, Local1)
1600 1.1 jruoho Increment (Local0)
1601 1.1 jruoho
1602 1.1 jruoho Store ("++++++++ Checking result from INCREMENT", Debug)
1603 1.1 jruoho if (LNotEqual (Local0, Local1))
1604 1.1 jruoho {
1605 1.1 jruoho ERR_ (0)
1606 1.1 jruoho }
1607 1.1 jruoho
1608 1.1 jruoho
1609 1.1 jruoho /* DECREMENT */
1610 1.1 jruoho
1611 1.1 jruoho Store ("++++++++ Decrement (Local0)", Debug)
1612 1.1 jruoho Store (2, Local0)
1613 1.1 jruoho Store (1, Local1)
1614 1.1 jruoho Decrement (Local0)
1615 1.1 jruoho
1616 1.1 jruoho Store ("++++++++ Checking result from DECREMENT", Debug)
1617 1.1 jruoho if (LNotEqual (Local0, Local1))
1618 1.1 jruoho {
1619 1.1 jruoho ERR_ (0)
1620 1.1 jruoho }
1621 1.1 jruoho
1622 1.1 jruoho
1623 1.1 jruoho /* TOBCD */
1624 1.1 jruoho /* FROMBCD */
1625 1.1 jruoho
1626 1.1 jruoho Store ("++++++++ ToBCD (0x1234, Local5)", Debug)
1627 1.1 jruoho ToBCD (0x1234, Local5)
1628 1.1 jruoho
1629 1.1 jruoho Store ("++++++++ FromBCD (Local5, Local6)", Debug)
1630 1.1 jruoho FromBCD (Local5, Local6)
1631 1.1 jruoho
1632 1.1 jruoho Store ("++++++++ Return (Local6)", Debug)
1633 1.1 jruoho Return (Local6)
1634 1.1 jruoho }
1635 1.1 jruoho
1636 1.1 jruoho
1637 1.1 jruoho Method (CHEK)
1638 1.1 jruoho {
1639 1.1 jruoho
1640 1.1 jruoho Store (3, Local0)
1641 1.1 jruoho Store (3, Debug)
1642 1.1 jruoho Store (Local0, Debug)
1643 1.1 jruoho Store (7, Local1)
1644 1.1 jruoho
1645 1.1 jruoho Add (Local0, Local1)
1646 1.1 jruoho if (LNotEqual (Local0, 3))
1647 1.1 jruoho {
1648 1.1 jruoho ERR_ (2)
1649 1.1 jruoho }
1650 1.1 jruoho if (LNotEqual (Local1, 7))
1651 1.1 jruoho {
1652 1.1 jruoho ERR_ (2)
1653 1.1 jruoho }
1654 1.1 jruoho
1655 1.1 jruoho
1656 1.1 jruoho Add (Local0, Local1, Local2)
1657 1.1 jruoho if (LNotEqual (Local0, 3))
1658 1.1 jruoho {
1659 1.1 jruoho ERR_ (2)
1660 1.1 jruoho }
1661 1.1 jruoho if (LNotEqual (Local1, 7))
1662 1.1 jruoho {
1663 1.1 jruoho ERR_ (2)
1664 1.1 jruoho }
1665 1.1 jruoho }
1666 1.1 jruoho
1667 1.1 jruoho
1668 1.1 jruoho Method (RET1)
1669 1.1 jruoho {
1670 1.1 jruoho Store (3, Local0)
1671 1.1 jruoho Return (Local0)
1672 1.1 jruoho }
1673 1.1 jruoho
1674 1.1 jruoho Method (RET2)
1675 1.1 jruoho {
1676 1.1 jruoho Return (RET1())
1677 1.1 jruoho }
1678 1.1 jruoho
1679 1.1 jruoho Method (RETZ)
1680 1.1 jruoho {
1681 1.1 jruoho RET2 ()
1682 1.1 jruoho }
1683 1.1 jruoho
1684 1.1 jruoho
1685 1.1 jruoho Method (BITZ)
1686 1.1 jruoho {
1687 1.1 jruoho Store ("++++++++ FindSetLeftBit (0x00100100, Local0)", Debug)
1688 1.1 jruoho FindSetLeftBit (0x00100100, Local0)
1689 1.1 jruoho if (LNotEqual (Local0, 21))
1690 1.1 jruoho {
1691 1.1 jruoho ERR_ (1)
1692 1.1 jruoho }
1693 1.1 jruoho
1694 1.1 jruoho Store ("++++++++ FindSetRightBit (0x00100100, Local1)", Debug)
1695 1.1 jruoho FindSetRightBit (0x00100100, Local1)
1696 1.1 jruoho if (LNotEqual (Local1, 9))
1697 1.1 jruoho {
1698 1.1 jruoho ERR_ (1)
1699 1.1 jruoho }
1700 1.1 jruoho
1701 1.1 jruoho Store ("++++++++ And (0xF0F0F0F0, 0x11111111, Local2)", Debug)
1702 1.1 jruoho And (0xF0F0F0F0, 0x11111111, Local2)
1703 1.1 jruoho if (LNotEqual (Local2, 0x10101010))
1704 1.1 jruoho {
1705 1.1 jruoho ERR_ (1)
1706 1.1 jruoho }
1707 1.1 jruoho
1708 1.1 jruoho Store ("++++++++ NAnd (0xF0F0F0F0, 0x11111111, Local3)", Debug)
1709 1.1 jruoho NAnd (0xF0F0F0F0, 0x11111111, Local3)
1710 1.1 jruoho if (LNotEqual (Local3, 0xEFEFEFEF))
1711 1.1 jruoho {
1712 1.1 jruoho ERR_ (1)
1713 1.1 jruoho }
1714 1.1 jruoho
1715 1.1 jruoho Store ("++++++++ Or (0x11111111, 0x22222222, Local4)", Debug)
1716 1.1 jruoho Or (0x11111111, 0x22222222, Local4)
1717 1.1 jruoho if (LNotEqual (Local4, 0x33333333))
1718 1.1 jruoho {
1719 1.1 jruoho ERR_ (1)
1720 1.1 jruoho }
1721 1.1 jruoho
1722 1.1 jruoho Store ("++++++++ NOr (0x11111111, 0x22222222, Local5)", Debug)
1723 1.1 jruoho NOr (0x11111111, 0x22222222, Local5)
1724 1.1 jruoho if (LNotEqual (Local5, 0xCCCCCCCC))
1725 1.1 jruoho {
1726 1.1 jruoho ERR_ (1)
1727 1.1 jruoho }
1728 1.1 jruoho
1729 1.1 jruoho Store ("++++++++ XOr (0x11113333, 0x22222222, Local6)", Debug)
1730 1.1 jruoho XOr (0x11113333, 0x22222222, Local6)
1731 1.1 jruoho if (LNotEqual (Local6, 0x33331111))
1732 1.1 jruoho {
1733 1.1 jruoho ERR_ (1)
1734 1.1 jruoho }
1735 1.1 jruoho
1736 1.1 jruoho Store ("++++++++ ShiftLeft (0x11112222, 2, Local7)", Debug)
1737 1.1 jruoho ShiftLeft (0x11112222, 2, Local7)
1738 1.1 jruoho if (LNotEqual (Local7, 0x44448888))
1739 1.1 jruoho {
1740 1.1 jruoho ERR_ (1)
1741 1.1 jruoho }
1742 1.1 jruoho
1743 1.1 jruoho Store ("++++++++ ShiftRight (Local7, 2, Local7)", Debug)
1744 1.1 jruoho ShiftRight (Local7, 2, Local7)
1745 1.1 jruoho if (LNotEqual (Local7, 0x11112222))
1746 1.1 jruoho {
1747 1.1 jruoho ERR_ (1)
1748 1.1 jruoho }
1749 1.1 jruoho
1750 1.1 jruoho
1751 1.1 jruoho Store ("++++++++ Not (Local0, Local1)", Debug)
1752 1.1 jruoho Store (0x22224444, Local0)
1753 1.1 jruoho Not (Local0, Local1)
1754 1.1 jruoho if (LNotEqual (Local0, 0x22224444))
1755 1.1 jruoho {
1756 1.1 jruoho ERR_ (2)
1757 1.1 jruoho }
1758 1.1 jruoho
1759 1.1 jruoho if (LNotEqual (Local1, 0xDDDDBBBB))
1760 1.1 jruoho {
1761 1.1 jruoho ERR_ (1)
1762 1.1 jruoho }
1763 1.1 jruoho
1764 1.1 jruoho Return (Local7)
1765 1.1 jruoho }
1766 1.1 jruoho
1767 1.1 jruoho
1768 1.1 jruoho Method (LOGS)
1769 1.1 jruoho {
1770 1.1 jruoho
1771 1.1 jruoho Store ("++++++++ Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)", Debug)
1772 1.1 jruoho Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)
1773 1.1 jruoho
1774 1.1 jruoho Store ("++++++++ Store (LEqual (0xFFFFFFFF, 0x11111111), Local)", Debug)
1775 1.1 jruoho Store (LEqual (0xFFFFFFFF, 0x11111111), Local1)
1776 1.1 jruoho
1777 1.1 jruoho Store ("++++++++ Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)", Debug)
1778 1.1 jruoho Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)
1779 1.1 jruoho
1780 1.1 jruoho Store ("++++++++ Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)", Debug)
1781 1.1 jruoho Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)
1782 1.1 jruoho
1783 1.1 jruoho Store ("++++++++ Store (LLess (0xFFFFFFFF, 0x11111111), Local4)", Debug)
1784 1.1 jruoho Store (LLess (0xFFFFFFFF, 0x11111111), Local4)
1785 1.1 jruoho
1786 1.1 jruoho Store ("++++++++ Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)", Debug)
1787 1.1 jruoho Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)
1788 1.1 jruoho
1789 1.1 jruoho Store ("++++++++ Store (LNot (0x31313131), Local6)", Debug)
1790 1.1 jruoho Store (0x00001111, Local6)
1791 1.1 jruoho Store (LNot (Local6), Local7)
1792 1.1 jruoho if (LNotEqual (Local6, 0x00001111))
1793 1.1 jruoho {
1794 1.1 jruoho ERR_ (2)
1795 1.1 jruoho }
1796 1.1 jruoho
1797 1.1 jruoho if (LNotEqual (Local7, 0x0))
1798 1.1 jruoho {
1799 1.1 jruoho ERR_ (1)
1800 1.1 jruoho }
1801 1.1 jruoho
1802 1.1 jruoho
1803 1.1 jruoho Store ("++++++++ Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)", Debug)
1804 1.1 jruoho Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)
1805 1.1 jruoho
1806 1.1 jruoho Store ("++++++++ Lor (0x0, 0x1)", Debug)
1807 1.1 jruoho if (Lor (0x0, 0x1))
1808 1.1 jruoho {
1809 1.1 jruoho Store ("+_+_+_+_+ Lor (0x0, 0x1) returned TRUE", Debug)
1810 1.1 jruoho }
1811 1.1 jruoho
1812 1.1 jruoho return (Local7)
1813 1.1 jruoho }
1814 1.1 jruoho
1815 1.1 jruoho
1816 1.1 jruoho Method (COND)
1817 1.1 jruoho {
1818 1.1 jruoho Store ("++++++++ Store (0x4, Local0)", Debug)
1819 1.1 jruoho Store (0x4, Local0)
1820 1.1 jruoho
1821 1.1 jruoho Store ("++++++++ While (Local0)", Debug)
1822 1.1 jruoho While (Local0)
1823 1.1 jruoho {
1824 1.1 jruoho Store ("++++++++ Decrement (Local0)", Debug)
1825 1.1 jruoho Decrement (Local0)
1826 1.1 jruoho }
1827 1.1 jruoho
1828 1.1 jruoho
1829 1.1 jruoho Store ("++++++++ Store (0x3, Local6)", Debug)
1830 1.1 jruoho Store (0x3, Local6)
1831 1.1 jruoho
1832 1.1 jruoho Store ("++++++++ While (Subtract (Local6, 1))", Debug)
1833 1.1 jruoho While (Subtract (Local6, 1))
1834 1.1 jruoho {
1835 1.1 jruoho Store ("++++++++ Decrement (Local6)", Debug)
1836 1.1 jruoho Decrement (Local6)
1837 1.1 jruoho }
1838 1.1 jruoho
1839 1.1 jruoho
1840 1.1 jruoho Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
1841 1.1 jruoho If (LGreater (0x2, 0x1))
1842 1.1 jruoho {
1843 1.1 jruoho Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
1844 1.1 jruoho If (LEqual (0x11111111, 0x22222222))
1845 1.1 jruoho {
1846 1.1 jruoho Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
1847 1.1 jruoho }
1848 1.1 jruoho
1849 1.1 jruoho else
1850 1.1 jruoho {
1851 1.1 jruoho Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
1852 1.1 jruoho If (LNot (0x0))
1853 1.1 jruoho {
1854 1.1 jruoho Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
1855 1.1 jruoho If (LAnd (0xEEEEEEEE, 0x2))
1856 1.1 jruoho {
1857 1.1 jruoho Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
1858 1.1 jruoho If (LLess (0x44444444, 0x3))
1859 1.1 jruoho {
1860 1.1 jruoho Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
1861 1.1 jruoho }
1862 1.1 jruoho
1863 1.1 jruoho else
1864 1.1 jruoho {
1865 1.1 jruoho Store ("++++++++ Exiting from nested IF/ELSE statements", Debug)
1866 1.1 jruoho }
1867 1.1 jruoho }
1868 1.1 jruoho }
1869 1.1 jruoho }
1870 1.1 jruoho }
1871 1.1 jruoho
1872 1.1 jruoho
1873 1.1 jruoho Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
1874 1.1 jruoho If (LGreater (0x2, 0x1))
1875 1.1 jruoho {
1876 1.1 jruoho Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
1877 1.1 jruoho If (LEqual (0x11111111, 0x22222222))
1878 1.1 jruoho {
1879 1.1 jruoho Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
1880 1.1 jruoho }
1881 1.1 jruoho
1882 1.1 jruoho else
1883 1.1 jruoho {
1884 1.1 jruoho Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
1885 1.1 jruoho If (LNot (0x0))
1886 1.1 jruoho {
1887 1.1 jruoho Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
1888 1.1 jruoho If (LAnd (0xEEEEEEEE, 0x2))
1889 1.1 jruoho {
1890 1.1 jruoho Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
1891 1.1 jruoho If (LLess (0x44444444, 0x3))
1892 1.1 jruoho {
1893 1.1 jruoho Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
1894 1.1 jruoho }
1895 1.1 jruoho
1896 1.1 jruoho else
1897 1.1 jruoho {
1898 1.1 jruoho Store ("++++++++ Returning from nested IF/ELSE statements", Debug)
1899 1.1 jruoho Return (Local6)
1900 1.1 jruoho }
1901 1.1 jruoho }
1902 1.1 jruoho }
1903 1.1 jruoho }
1904 1.1 jruoho }
1905 1.1 jruoho
1906 1.1 jruoho }
1907 1.1 jruoho
1908 1.1 jruoho
1909 1.1.1.3 christos Method (REFS,, Serialized)
1910 1.1 jruoho {
1911 1.1 jruoho Name (BBUF, Buffer() {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7})
1912 1.1 jruoho
1913 1.1 jruoho Name (NEST, Package ()
1914 1.1 jruoho {
1915 1.1 jruoho Package ()
1916 1.1 jruoho {
1917 1.1 jruoho 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
1918 1.1 jruoho },
1919 1.1 jruoho Package ()
1920 1.1 jruoho {
1921 1.1 jruoho 0x11, 0x12, 0x12, 0x14, 0x15, 0x16
1922 1.1 jruoho }
1923 1.1 jruoho })
1924 1.1 jruoho
1925 1.1 jruoho /* Parser thinks this is a method invocation!! */
1926 1.1 jruoho
1927 1.1 jruoho Store (RefOf (MAIN), Local5)
1928 1.1 jruoho
1929 1.1 jruoho // For this to work, ABCD must NOT exist.
1930 1.1 jruoho
1931 1.1 jruoho Store (CondRefOf (ABCD, Local0), Local1)
1932 1.1 jruoho if (LNotEqual (Local1, 0))
1933 1.1 jruoho {
1934 1.1 jruoho ERR_ (2)
1935 1.1 jruoho }
1936 1.1 jruoho
1937 1.1 jruoho Store (CondRefOf (BBUF, Local0), Local1)
1938 1.1 jruoho if (LNotEqual (Local1, Ones))
1939 1.1 jruoho {
1940 1.1 jruoho ERR_ (2)
1941 1.1 jruoho }
1942 1.1 jruoho
1943 1.1 jruoho Store (DeRefOf (Index (BBUF, 3)), Local6)
1944 1.1 jruoho if (LNotEqual (Local6, 0xB3))
1945 1.1 jruoho {
1946 1.1 jruoho ERR_ (2)
1947 1.1 jruoho }
1948 1.1 jruoho
1949 1.1 jruoho Store (DeRefOf (Index (DeRefOf (Index (NEST, 1)), 3)), Local0)
1950 1.1 jruoho if (LNotEqual (Local0, 0x14))
1951 1.1 jruoho {
1952 1.1 jruoho ERR_ (2)
1953 1.1 jruoho }
1954 1.1 jruoho
1955 1.1 jruoho
1956 1.1 jruoho Store (0x11223344, Local0)
1957 1.1 jruoho Store (RefOf (Local0), Local1)
1958 1.1 jruoho
1959 1.1 jruoho Store (DerefOf (Local1), Local2)
1960 1.1 jruoho If (LNotEqual (Local2, 0x11223344))
1961 1.1 jruoho {
1962 1.1 jruoho ERR_ (2)
1963 1.1 jruoho }
1964 1.1 jruoho
1965 1.1 jruoho
1966 1.1 jruoho /* Parser thinks this is a method invocation!! */
1967 1.1 jruoho
1968 1.1 jruoho // RefOf (MAIN)
1969 1.1 jruoho
1970 1.1 jruoho
1971 1.1 jruoho // RefOf (R___)
1972 1.1 jruoho // RefOf (BBUF)
1973 1.1 jruoho
1974 1.1 jruoho // Store (RefOf (Local0), Local1)
1975 1.1 jruoho
1976 1.1 jruoho // CondRefOf (BBUF, Local2)
1977 1.1 jruoho // CondRefOf (R___, Local3)
1978 1.1 jruoho
1979 1.1 jruoho // Store (DerefOf (Local1), Local4)
1980 1.1 jruoho
1981 1.1 jruoho // Return (Local4)
1982 1.1 jruoho }
1983 1.1 jruoho
1984 1.1 jruoho
1985 1.1.1.3 christos Method (INDX, 0, Serialized)
1986 1.1 jruoho {
1987 1.1 jruoho Name(STAT,Package(4){})
1988 1.1 jruoho Store(0x44443333,Index(STAT,0))
1989 1.1 jruoho }
1990 1.1 jruoho
1991 1.1 jruoho //=================================================================
1992 1.1 jruoho //=================================================================
1993 1.1 jruoho //===================== iPCO TESTS ================================
1994 1.1 jruoho //=================================================================
1995 1.1 jruoho //=================================================================
1996 1.1 jruoho //
1997 1.1 jruoho //
1998 1.1 jruoho // test IfElseOp.asl
1999 1.1 jruoho //
2000 1.1 jruoho // test for IfOp and ElseOp, including validation of object stack cleanup
2001 1.1 jruoho //
2002 1.1 jruoho Device (IFEL)
2003 1.1 jruoho {
2004 1.1 jruoho Name (DWRD, 1)
2005 1.1 jruoho Name (RSLT, 0)
2006 1.1 jruoho
2007 1.1 jruoho // IFNR control method executes IfOp branch with NO nested Return
2008 1.1 jruoho // and no Else branch
2009 1.1 jruoho Method (IFNR)
2010 1.1 jruoho {
2011 1.1 jruoho Store (DWRD, RSLT)
2012 1.1 jruoho If (LEqual (DWRD, 1))
2013 1.1 jruoho {
2014 1.1 jruoho Store (0, RSLT)
2015 1.1 jruoho }
2016 1.1 jruoho } // IFNR
2017 1.1 jruoho
2018 1.1 jruoho // NINR control method does not execute If branch and has no Else branch
2019 1.1 jruoho Method (NINR)
2020 1.1 jruoho {
2021 1.1 jruoho Store (0, RSLT)
2022 1.1 jruoho If (LNotEqual (DWRD, 1))
2023 1.1 jruoho {
2024 1.1 jruoho Store (DWRD, RSLT)
2025 1.1 jruoho }
2026 1.1 jruoho } // NINR
2027 1.1 jruoho
2028 1.1 jruoho // IENR control method executes IfOp branch with NO nested Return
2029 1.1 jruoho Method (IENR)
2030 1.1 jruoho {
2031 1.1 jruoho If (LEqual (DWRD, 1))
2032 1.1 jruoho {
2033 1.1 jruoho Store (0, RSLT)
2034 1.1 jruoho }
2035 1.1 jruoho Else
2036 1.1 jruoho {
2037 1.1 jruoho Store (DWRD, RSLT)
2038 1.1 jruoho }
2039 1.1 jruoho } // IENR
2040 1.1 jruoho
2041 1.1 jruoho // ELNR control method executes ElseOp branch with NO nested Return
2042 1.1 jruoho Method (ELNR)
2043 1.1 jruoho {
2044 1.1 jruoho If (LNotEqual (DWRD, 1))
2045 1.1 jruoho {
2046 1.1 jruoho Store (DWRD, RSLT)
2047 1.1 jruoho }
2048 1.1 jruoho Else
2049 1.1 jruoho {
2050 1.1 jruoho Store (0, RSLT)
2051 1.1 jruoho }
2052 1.1 jruoho } // ELNR
2053 1.1 jruoho
2054 1.1 jruoho // IFRT control method executes IfOp branch with nested Return with
2055 1.1 jruoho // no Else branch
2056 1.1 jruoho Method (IFRT)
2057 1.1 jruoho
2058 1.1 jruoho {
2059 1.1 jruoho If (LEqual (DWRD, 1))
2060 1.1 jruoho {
2061 1.1 jruoho Return (0)
2062 1.1 jruoho }
2063 1.1 jruoho Return (DWRD)
2064 1.1 jruoho } // IFRT
2065 1.1 jruoho
2066 1.1 jruoho // IERT control method executes IfOp branch with nested Return with
2067 1.1 jruoho // Else branch
2068 1.1 jruoho Method (IERT)
2069 1.1 jruoho {
2070 1.1 jruoho If (LEqual (DWRD, 1))
2071 1.1 jruoho {
2072 1.1 jruoho Return (0)
2073 1.1 jruoho }
2074 1.1 jruoho Else
2075 1.1 jruoho {
2076 1.1 jruoho Return (DWRD)
2077 1.1 jruoho }
2078 1.1 jruoho } // IERT
2079 1.1 jruoho
2080 1.1 jruoho // ELRT control method executes ElseOp branch with nested Return
2081 1.1 jruoho Method (ELRT)
2082 1.1 jruoho {
2083 1.1 jruoho If (LNotEqual (DWRD, 1))
2084 1.1 jruoho {
2085 1.1 jruoho Return (DWRD)
2086 1.1 jruoho }
2087 1.1 jruoho Else
2088 1.1 jruoho {
2089 1.1 jruoho Return (0)
2090 1.1 jruoho }
2091 1.1 jruoho } // ELRT
2092 1.1 jruoho
2093 1.1 jruoho Method (TEST)
2094 1.1 jruoho {
2095 1.1 jruoho Store ("++++++++ IfElseOp Test", Debug)
2096 1.1 jruoho
2097 1.1 jruoho // IfOp with NO return value
2098 1.1 jruoho IFNR()
2099 1.1 jruoho If (LNotEqual (RSLT, 0))
2100 1.1 jruoho {
2101 1.1 jruoho Return (RSLT)
2102 1.1 jruoho }
2103 1.1 jruoho
2104 1.1 jruoho // IfOp with NO return value
2105 1.1 jruoho NINR()
2106 1.1 jruoho If (LNotEqual (RSLT, 0))
2107 1.1 jruoho {
2108 1.1 jruoho Return (RSLT)
2109 1.1 jruoho }
2110 1.1 jruoho
2111 1.1 jruoho // IfOp with NO return value
2112 1.1 jruoho IENR()
2113 1.1 jruoho If (LNotEqual (RSLT, 0))
2114 1.1 jruoho {
2115 1.1 jruoho Return (RSLT)
2116 1.1 jruoho }
2117 1.1 jruoho
2118 1.1 jruoho // ElseOp with NO return value
2119 1.1 jruoho ELNR()
2120 1.1 jruoho If (LNotEqual (RSLT, 0))
2121 1.1 jruoho {
2122 1.1 jruoho Return (RSLT)
2123 1.1 jruoho }
2124 1.1 jruoho
2125 1.1 jruoho // IfOp with return value
2126 1.1 jruoho Store (IFRT, RSLT)
2127 1.1 jruoho If (LNotEqual (RSLT, 0))
2128 1.1 jruoho {
2129 1.1 jruoho Return (RSLT)
2130 1.1 jruoho }
2131 1.1 jruoho
2132 1.1 jruoho // IfOp with return value
2133 1.1 jruoho Store (IERT, RSLT)
2134 1.1 jruoho If (LNotEqual (RSLT, 0))
2135 1.1 jruoho {
2136 1.1 jruoho Return (RSLT)
2137 1.1 jruoho }
2138 1.1 jruoho
2139 1.1 jruoho // ElseOp with return value
2140 1.1 jruoho Store (ELRT, RSLT)
2141 1.1 jruoho If (LNotEqual (RSLT, 0))
2142 1.1 jruoho {
2143 1.1 jruoho Return (RSLT)
2144 1.1 jruoho }
2145 1.1 jruoho
2146 1.1 jruoho Return (0)
2147 1.1 jruoho } // TEST
2148 1.1 jruoho } // IFEL
2149 1.1 jruoho
2150 1.1 jruoho //
2151 1.1 jruoho // test NoSave.asl
2152 1.1 jruoho //
2153 1.1 jruoho //
2154 1.1 jruoho // Internal test cases to validate IfOp (Operator (,,)) where Operator
2155 1.1 jruoho // target is ZeroOp to throw away the results.
2156 1.1 jruoho // Includes internal test cases for logical operators with no destination
2157 1.1 jruoho // operands.
2158 1.1 jruoho //
2159 1.1 jruoho Device (NOSV)
2160 1.1 jruoho {
2161 1.1.1.3 christos Method (TEST,, Serialized)
2162 1.1 jruoho {
2163 1.1 jruoho Store ("++++++++ NoSave Test", Debug)
2164 1.1 jruoho
2165 1.1 jruoho Name (WRD, 0x1234)
2166 1.1 jruoho
2167 1.1 jruoho //
2168 1.1 jruoho // Begin test of nested operators without saving results
2169 1.1 jruoho //
2170 1.1 jruoho
2171 1.1 jruoho // Test If (And ()) with no save of And result
2172 1.1 jruoho If (And (3, 1, ))
2173 1.1 jruoho {
2174 1.1 jruoho Store (1, WRD) // pass -- just do something
2175 1.1 jruoho }
2176 1.1 jruoho else
2177 1.1 jruoho {
2178 1.1 jruoho Return (1) // fail
2179 1.1 jruoho }
2180 1.1 jruoho
2181 1.1 jruoho // Test If (And ()) with no save of And result
2182 1.1 jruoho If (And (4, 1, ))
2183 1.1 jruoho {
2184 1.1 jruoho Return (2) // fail
2185 1.1 jruoho }
2186 1.1 jruoho else
2187 1.1 jruoho {
2188 1.1 jruoho Store (2, WRD) // pass -- just do something
2189 1.1 jruoho }
2190 1.1 jruoho
2191 1.1 jruoho
2192 1.1 jruoho // Test If (NAnd ()) with no save of NAnd result
2193 1.1 jruoho If (NAnd (3, 1, ))
2194 1.1 jruoho {
2195 1.1 jruoho Store (3, WRD) // pass -- just do something
2196 1.1 jruoho }
2197 1.1 jruoho else
2198 1.1 jruoho {
2199 1.1 jruoho Return (3) // fail
2200 1.1 jruoho }
2201 1.1 jruoho
2202 1.1 jruoho // Test If (NAnd ()) with no save of NAnd result
2203 1.1 jruoho If (NAnd (0xFFFFFFFF, 0xFFFFFFFF, ))
2204 1.1 jruoho {
2205 1.1 jruoho Return (4) // fail
2206 1.1 jruoho }
2207 1.1 jruoho else
2208 1.1 jruoho {
2209 1.1 jruoho Store (4, WRD) // pass -- just do something
2210 1.1 jruoho }
2211 1.1 jruoho
2212 1.1 jruoho
2213 1.1 jruoho // Test If (NOr ()) with no save of NOr result
2214 1.1 jruoho If (NOr (0, 1, ))
2215 1.1 jruoho {
2216 1.1 jruoho Store (5, WRD) // pass -- just do something
2217 1.1 jruoho }
2218 1.1 jruoho else
2219 1.1 jruoho {
2220 1.1 jruoho Return (5) // fail
2221 1.1 jruoho }
2222 1.1 jruoho
2223 1.1 jruoho // Test If (NOr ()) with no save of NOr result
2224 1.1 jruoho If (NOr (0xFFFFFFFE, 1, ))
2225 1.1 jruoho {
2226 1.1 jruoho Return (6) // fail
2227 1.1 jruoho }
2228 1.1 jruoho else
2229 1.1 jruoho {
2230 1.1 jruoho Store (6, WRD) // pass -- just do something
2231 1.1 jruoho }
2232 1.1 jruoho
2233 1.1 jruoho
2234 1.1 jruoho // Test If (Not ()) with no save of Not result
2235 1.1 jruoho If (Not (1, ))
2236 1.1 jruoho {
2237 1.1 jruoho Store (7, WRD) // pass -- just do something
2238 1.1 jruoho }
2239 1.1 jruoho else
2240 1.1 jruoho {
2241 1.1 jruoho Return (7) // fail
2242 1.1 jruoho }
2243 1.1 jruoho
2244 1.1 jruoho // Test If (Not ()) with no save of Not result
2245 1.1 jruoho If (Not (0xFFFFFFFF, ))
2246 1.1 jruoho {
2247 1.1 jruoho Return (8) // fail
2248 1.1 jruoho }
2249 1.1 jruoho else
2250 1.1 jruoho {
2251 1.1 jruoho Store (8, WRD) // pass -- just do something
2252 1.1 jruoho }
2253 1.1 jruoho
2254 1.1 jruoho
2255 1.1 jruoho // Test If (Or ()) with no save of Or result
2256 1.1 jruoho If (Or (3, 1, ))
2257 1.1 jruoho {
2258 1.1 jruoho Store (9, WRD) // pass -- just do something
2259 1.1 jruoho }
2260 1.1 jruoho else
2261 1.1 jruoho {
2262 1.1 jruoho Return (9) // fail
2263 1.1 jruoho }
2264 1.1 jruoho
2265 1.1 jruoho // Test If (Or ()) with no save of Or result
2266 1.1 jruoho If (Or (0, 0, ))
2267 1.1 jruoho {
2268 1.1 jruoho Return (10) // fail
2269 1.1 jruoho }
2270 1.1 jruoho else
2271 1.1 jruoho {
2272 1.1 jruoho Store (10, WRD) // pass -- just do something
2273 1.1 jruoho }
2274 1.1 jruoho
2275 1.1 jruoho
2276 1.1 jruoho // Test If (XOr ()) with no save of XOr result
2277 1.1 jruoho If (XOr (3, 1, ))
2278 1.1 jruoho {
2279 1.1 jruoho Store (11, WRD) // pass -- just do something
2280 1.1 jruoho }
2281 1.1 jruoho else
2282 1.1 jruoho {
2283 1.1 jruoho Return (11) // fail
2284 1.1 jruoho }
2285 1.1 jruoho
2286 1.1 jruoho // Test If (XOr ()) with no save of XOr result
2287 1.1 jruoho If (XOr (3, 3, ))
2288 1.1 jruoho {
2289 1.1 jruoho Return (12) // fail
2290 1.1 jruoho }
2291 1.1 jruoho else
2292 1.1 jruoho {
2293 1.1 jruoho Store (12, WRD) // pass -- just do something
2294 1.1 jruoho }
2295 1.1 jruoho
2296 1.1 jruoho
2297 1.1 jruoho //
2298 1.1 jruoho // Begin test of logical operators with no destination operands
2299 1.1 jruoho //
2300 1.1 jruoho
2301 1.1 jruoho // Test If (LAnd ()) with no save of LAnd result
2302 1.1 jruoho If (LAnd (3, 3))
2303 1.1 jruoho {
2304 1.1 jruoho Store (21, WRD) // pass -- just do something
2305 1.1 jruoho }
2306 1.1 jruoho else
2307 1.1 jruoho {
2308 1.1 jruoho Return (21) // fail
2309 1.1 jruoho }
2310 1.1 jruoho
2311 1.1 jruoho // Test If (LAnd ()) with no save of LAnd result
2312 1.1 jruoho If (LAnd (3, 0))
2313 1.1 jruoho {
2314 1.1 jruoho Return (22) // fail
2315 1.1 jruoho }
2316 1.1 jruoho else
2317 1.1 jruoho {
2318 1.1 jruoho Store (22, WRD) // pass -- just do something
2319 1.1 jruoho }
2320 1.1 jruoho
2321 1.1 jruoho // Test If (LAnd ()) with no save of LAnd result
2322 1.1 jruoho If (LAnd (0, 3))
2323 1.1 jruoho {
2324 1.1 jruoho Return (23) // fail
2325 1.1 jruoho }
2326 1.1 jruoho else
2327 1.1 jruoho {
2328 1.1 jruoho Store (23, WRD) // pass -- just do something
2329 1.1 jruoho }
2330 1.1 jruoho
2331 1.1 jruoho // Test If (LAnd ()) with no save of LAnd result
2332 1.1 jruoho If (LAnd (0, 0))
2333 1.1 jruoho {
2334 1.1 jruoho Return (24) // fail
2335 1.1 jruoho }
2336 1.1 jruoho else
2337 1.1 jruoho {
2338 1.1 jruoho Store (24, WRD) // pass -- just do something
2339 1.1 jruoho }
2340 1.1 jruoho
2341 1.1 jruoho
2342 1.1 jruoho // Test If (LEqual ()) with no save of LEqual result
2343 1.1 jruoho If (LEqual (3, 3))
2344 1.1 jruoho {
2345 1.1 jruoho Store (31, WRD) // pass -- just do something
2346 1.1 jruoho }
2347 1.1 jruoho else
2348 1.1 jruoho {
2349 1.1 jruoho Return (31) // fail
2350 1.1 jruoho }
2351 1.1 jruoho
2352 1.1 jruoho // Test If (LEqual ()) with no save of LEqual result
2353 1.1 jruoho If (LEqual (1, 3))
2354 1.1 jruoho {
2355 1.1 jruoho Return (32) // fail
2356 1.1 jruoho }
2357 1.1 jruoho else
2358 1.1 jruoho {
2359 1.1 jruoho Store (32, WRD) // pass -- just do something
2360 1.1 jruoho }
2361 1.1 jruoho
2362 1.1 jruoho
2363 1.1 jruoho // Test If (LGreater ()) with no save of LGreater result
2364 1.1 jruoho If (LGreater (3, 1))
2365 1.1 jruoho {
2366 1.1 jruoho Store (41, WRD) // pass -- just do something
2367 1.1 jruoho }
2368 1.1 jruoho else
2369 1.1 jruoho {
2370 1.1 jruoho Return (41) // fail
2371 1.1 jruoho }
2372 1.1 jruoho
2373 1.1 jruoho // Test If (LGreater ()) with no save of LGreater result
2374 1.1 jruoho If (LGreater (4, 4))
2375 1.1 jruoho {
2376 1.1 jruoho Return (42) // fail
2377 1.1 jruoho }
2378 1.1 jruoho else
2379 1.1 jruoho {
2380 1.1 jruoho Store (42, WRD) // pass -- just do something
2381 1.1 jruoho }
2382 1.1 jruoho
2383 1.1 jruoho // Test If (LGreater ()) with no save of LGreater result
2384 1.1 jruoho If (LGreater (1, 4))
2385 1.1 jruoho {
2386 1.1 jruoho Return (43) // fail
2387 1.1 jruoho }
2388 1.1 jruoho else
2389 1.1 jruoho {
2390 1.1 jruoho Store (43, WRD) // pass -- just do something
2391 1.1 jruoho }
2392 1.1 jruoho
2393 1.1 jruoho // Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2394 1.1 jruoho If (LGreaterEqual (3, 1))
2395 1.1 jruoho {
2396 1.1 jruoho Store (44, WRD) // pass -- just do something
2397 1.1 jruoho }
2398 1.1 jruoho else
2399 1.1 jruoho {
2400 1.1 jruoho Return (44) // fail
2401 1.1 jruoho }
2402 1.1 jruoho
2403 1.1 jruoho // Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2404 1.1 jruoho If (LGreaterEqual (3, 3))
2405 1.1 jruoho {
2406 1.1 jruoho Store (45, WRD) // pass -- just do something
2407 1.1 jruoho }
2408 1.1 jruoho else
2409 1.1 jruoho {
2410 1.1 jruoho Return (45) // fail
2411 1.1 jruoho }
2412 1.1 jruoho
2413 1.1 jruoho // Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2414 1.1 jruoho If (LGreaterEqual (3, 4))
2415 1.1 jruoho {
2416 1.1 jruoho Return (46) // fail
2417 1.1 jruoho }
2418 1.1 jruoho else
2419 1.1 jruoho {
2420 1.1 jruoho Store (46, WRD) // pass -- just do something
2421 1.1 jruoho }
2422 1.1 jruoho
2423 1.1 jruoho
2424 1.1 jruoho // Test If (LLess ()) with no save of LLess result
2425 1.1 jruoho If (LLess (1, 3))
2426 1.1 jruoho {
2427 1.1 jruoho Store (51, WRD) // pass -- just do something
2428 1.1 jruoho }
2429 1.1 jruoho else
2430 1.1 jruoho {
2431 1.1 jruoho Return (51) // fail
2432 1.1 jruoho }
2433 1.1 jruoho
2434 1.1 jruoho // Test If (LLess ()) with no save of LLess result
2435 1.1 jruoho If (LLess (2, 2))
2436 1.1 jruoho {
2437 1.1 jruoho Return (52) // fail
2438 1.1 jruoho }
2439 1.1 jruoho else
2440 1.1 jruoho {
2441 1.1 jruoho Store (52, WRD) // pass -- just do something
2442 1.1 jruoho }
2443 1.1 jruoho
2444 1.1 jruoho // Test If (LLess ()) with no save of LLess result
2445 1.1 jruoho If (LLess (4, 2))
2446 1.1 jruoho {
2447 1.1 jruoho Return (53) // fail
2448 1.1 jruoho }
2449 1.1 jruoho else
2450 1.1 jruoho {
2451 1.1 jruoho Store (53, WRD) // pass -- just do something
2452 1.1 jruoho }
2453 1.1 jruoho
2454 1.1 jruoho
2455 1.1 jruoho // Test If (LLessEqual ()) with no save of LLessEqual result
2456 1.1 jruoho If (LLessEqual (1, 3))
2457 1.1 jruoho {
2458 1.1 jruoho Store (54, WRD) // pass -- just do something
2459 1.1 jruoho }
2460 1.1 jruoho else
2461 1.1 jruoho {
2462 1.1 jruoho Return (54) // fail
2463 1.1 jruoho }
2464 1.1 jruoho
2465 1.1 jruoho // Test If (LLessEqual ()) with no save of LLessEqual result
2466 1.1 jruoho If (LLessEqual (2, 2))
2467 1.1 jruoho {
2468 1.1 jruoho Store (55, WRD) // pass -- just do something
2469 1.1 jruoho }
2470 1.1 jruoho else
2471 1.1 jruoho {
2472 1.1 jruoho Return (55) // fail
2473 1.1 jruoho }
2474 1.1 jruoho
2475 1.1 jruoho // Test If (LLessEqual ()) with no save of LLessEqual result
2476 1.1 jruoho If (LLessEqual (4, 2))
2477 1.1 jruoho {
2478 1.1 jruoho Return (56) // fail
2479 1.1 jruoho }
2480 1.1 jruoho else
2481 1.1 jruoho {
2482 1.1 jruoho Store (56, WRD) // pass -- just do something
2483 1.1 jruoho }
2484 1.1 jruoho
2485 1.1 jruoho
2486 1.1 jruoho // Test If (LNot ()) with no save of LNot result
2487 1.1 jruoho If (LNot (0))
2488 1.1 jruoho {
2489 1.1 jruoho Store (61, WRD) // pass -- just do something
2490 1.1 jruoho }
2491 1.1 jruoho else
2492 1.1 jruoho {
2493 1.1 jruoho Return (61) // fail
2494 1.1 jruoho }
2495 1.1 jruoho
2496 1.1 jruoho // Test If (LNot ()) with no save of LNot result
2497 1.1 jruoho If (LNot (1))
2498 1.1 jruoho {
2499 1.1 jruoho Return (62) // fail
2500 1.1 jruoho }
2501 1.1 jruoho else
2502 1.1 jruoho {
2503 1.1 jruoho Store (62, WRD) // pass -- just do something
2504 1.1 jruoho }
2505 1.1 jruoho
2506 1.1 jruoho
2507 1.1 jruoho // Test If (LNotEqual ()) with no save of LNotEqual result
2508 1.1 jruoho If (LNotEqual (3, 3))
2509 1.1 jruoho {
2510 1.1 jruoho Return (63) // fail
2511 1.1 jruoho }
2512 1.1 jruoho else
2513 1.1 jruoho {
2514 1.1 jruoho Store (63, WRD) // pass -- just do something
2515 1.1 jruoho }
2516 1.1 jruoho
2517 1.1 jruoho // Test If (LNotEqual ()) with no save of LNotEqual result
2518 1.1 jruoho If (LNotEqual (1, 3))
2519 1.1 jruoho {
2520 1.1 jruoho Store (64, WRD) // pass -- just do something
2521 1.1 jruoho }
2522 1.1 jruoho else
2523 1.1 jruoho {
2524 1.1 jruoho Return (64) // fail
2525 1.1 jruoho }
2526 1.1 jruoho
2527 1.1 jruoho
2528 1.1 jruoho // Test If (LOr ()) with no save of LOr result
2529 1.1 jruoho If (LOr (3, 1))
2530 1.1 jruoho {
2531 1.1 jruoho Store (71, WRD) // pass -- just do something
2532 1.1 jruoho }
2533 1.1 jruoho else
2534 1.1 jruoho {
2535 1.1 jruoho Return (71) // fail
2536 1.1 jruoho }
2537 1.1 jruoho
2538 1.1 jruoho // Test If (LOr ()) with no save of LOr result
2539 1.1 jruoho If (LOr (0, 1))
2540 1.1 jruoho {
2541 1.1 jruoho Store (72, WRD) // pass -- just do something
2542 1.1 jruoho }
2543 1.1 jruoho else
2544 1.1 jruoho {
2545 1.1 jruoho Return (72) // fail
2546 1.1 jruoho }
2547 1.1 jruoho
2548 1.1 jruoho // Test If (LOr ()) with no save of LOr result
2549 1.1 jruoho If (LOr (3, 0))
2550 1.1 jruoho {
2551 1.1 jruoho Store (73, WRD) // pass -- just do something
2552 1.1 jruoho }
2553 1.1 jruoho else
2554 1.1 jruoho {
2555 1.1 jruoho Return (73) // fail
2556 1.1 jruoho }
2557 1.1 jruoho
2558 1.1 jruoho // Test If (LOr ()) with no save of LOr result
2559 1.1 jruoho If (LOr (0, 0))
2560 1.1 jruoho {
2561 1.1 jruoho Return (74) // fail
2562 1.1 jruoho }
2563 1.1 jruoho else
2564 1.1 jruoho {
2565 1.1 jruoho Store (74, WRD) // pass -- just do something
2566 1.1 jruoho }
2567 1.1 jruoho
2568 1.1 jruoho Return (0)
2569 1.1 jruoho } // TEST
2570 1.1 jruoho } // NOSV
2571 1.1 jruoho
2572 1.1 jruoho
2573 1.1 jruoho //
2574 1.1 jruoho // test IndxFld.asl
2575 1.1 jruoho //
2576 1.1 jruoho // IndexFld test
2577 1.1 jruoho // This is just a subset of the many RegionOp/Index Field test cases.
2578 1.1 jruoho // Tests index field element AccessAs macro.
2579 1.1 jruoho //
2580 1.1 jruoho Device (IDXF)
2581 1.1 jruoho { // Test device name
2582 1.1 jruoho
2583 1.1 jruoho OperationRegion (SIO, SystemIO, 0x100, 2)
2584 1.1 jruoho Field (SIO, ByteAcc, NoLock, Preserve)
2585 1.1 jruoho {
2586 1.1 jruoho INDX, 8,
2587 1.1 jruoho DATA, 8
2588 1.1 jruoho }
2589 1.1 jruoho IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
2590 1.1 jruoho {
2591 1.1 jruoho AccessAs (ByteAcc, 0),
2592 1.1 jruoho IFE0, 8,
2593 1.1 jruoho IFE1, 8,
2594 1.1 jruoho IFE2, 8,
2595 1.1 jruoho IFE3, 8,
2596 1.1 jruoho IFE4, 8,
2597 1.1 jruoho IFE5, 8,
2598 1.1 jruoho IFE6, 8,
2599 1.1 jruoho IFE7, 8,
2600 1.1 jruoho IFE8, 8,
2601 1.1 jruoho IFE9, 8,
2602 1.1 jruoho }
2603 1.1 jruoho
2604 1.1 jruoho Method (TEST)
2605 1.1 jruoho {
2606 1.1 jruoho Store ("++++++++ IndxFld Test", Debug)
2607 1.1 jruoho
2608 1.1 jruoho Store (IFE0, Local0)
2609 1.1 jruoho Store (IFE1, Local1)
2610 1.1 jruoho Store (IFE2, Local2)
2611 1.1 jruoho
2612 1.1 jruoho Return (0)
2613 1.1 jruoho } // TEST
2614 1.1 jruoho } // IDXF
2615 1.1 jruoho
2616 1.1 jruoho //
2617 1.1 jruoho // test NestdLor.asl
2618 1.1 jruoho //
2619 1.1 jruoho Scope (\_SB) // System Bus
2620 1.1 jruoho { // _SB system bus
2621 1.1 jruoho
2622 1.1 jruoho Name (ZER0, 0)
2623 1.1 jruoho Name (ZER1, 0)
2624 1.1 jruoho Name (ZER2, 0)
2625 1.1 jruoho Name (ONE0, 1)
2626 1.1 jruoho
2627 1.1 jruoho Device (NSTL)
2628 1.1 jruoho {
2629 1.1 jruoho Method (TEST)
2630 1.1 jruoho {
2631 1.1 jruoho Store ("++++++++ NestdLor Test", Debug)
2632 1.1 jruoho
2633 1.1 jruoho If (Lor (ZER0, Lor (ZER1, Lor (ZER2, ONE0))))
2634 1.1 jruoho { // Indicate Pass
2635 1.1 jruoho Store (0x00, Local0)
2636 1.1 jruoho }
2637 1.1 jruoho
2638 1.1 jruoho Else
2639 1.1 jruoho { // Indicate Fail
2640 1.1 jruoho Store (0x01, Local0)
2641 1.1 jruoho }
2642 1.1 jruoho
2643 1.1 jruoho Return (Local0)
2644 1.1 jruoho } // End Method TEST
2645 1.1 jruoho } // Device NSTL
2646 1.1 jruoho } // _SB system bus
2647 1.1 jruoho
2648 1.1 jruoho //
2649 1.1 jruoho // test RetBuf.asl
2650 1.1 jruoho //
2651 1.1 jruoho // Test ReturnOp(Buffer)
2652 1.1 jruoho // This is required to support Control Method Batteries on
2653 1.1 jruoho // Dell Latitude Laptops (e.g., CP1-A)
2654 1.1 jruoho //
2655 1.1 jruoho Device (RTBF)
2656 1.1 jruoho {
2657 1.1 jruoho Method (SUBR, 1)
2658 1.1 jruoho {
2659 1.1 jruoho Return (Arg0)
2660 1.1 jruoho }
2661 1.1 jruoho
2662 1.1.1.3 christos Method (RBUF,, Serialized)
2663 1.1 jruoho { // RBUF: Return Buffer from local variable
2664 1.1 jruoho Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
2665 1.1 jruoho
2666 1.1 jruoho // store local buffer ABUF into Local0
2667 1.1 jruoho Store (ABUF, Local0)
2668 1.1 jruoho
2669 1.1 jruoho // save Local0 object type value into Local1
2670 1.1 jruoho Store (ObjectType (Local0), Local1)
2671 1.1 jruoho
2672 1.1 jruoho // validate Local0 is a Buffer
2673 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer type is 3
2674 1.1 jruoho {
2675 1.1 jruoho Return (1) // failure
2676 1.1 jruoho }
2677 1.1 jruoho
2678 1.1 jruoho // store value returned by control method SUBR into Local0
2679 1.1 jruoho Store (SUBR (ABUF), Local0)
2680 1.1 jruoho
2681 1.1 jruoho // save Local0 object type value into Local1
2682 1.1 jruoho Store (ObjectType (Local0), Local1)
2683 1.1 jruoho
2684 1.1 jruoho // validate Local0 is a Buffer
2685 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer type is 3
2686 1.1 jruoho {
2687 1.1 jruoho Return (2) // failure
2688 1.1 jruoho }
2689 1.1 jruoho
2690 1.1 jruoho // allocate buffer using Local1 as buffer size (run-time evaluation)
2691 1.1 jruoho Store (5, Local1)
2692 1.1 jruoho Name (BUFR, Buffer(Local1) {})
2693 1.1 jruoho
2694 1.1 jruoho // store value returned by control method SUBR into Local0
2695 1.1 jruoho Store (SUBR (BUFR), Local0)
2696 1.1 jruoho
2697 1.1 jruoho // save Local0 object type value into Local1
2698 1.1 jruoho Store (ObjectType (Local0), Local1)
2699 1.1 jruoho
2700 1.1 jruoho // validate Local0 is a Buffer
2701 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer type is 3
2702 1.1 jruoho {
2703 1.1 jruoho Return (3) // failure
2704 1.1 jruoho }
2705 1.1 jruoho
2706 1.1 jruoho // store BUFR Buffer into Local0
2707 1.1 jruoho Store (BUFR, Local0)
2708 1.1 jruoho
2709 1.1 jruoho // save Local0 object type value into Local1
2710 1.1 jruoho Store (ObjectType (Local0), Local1)
2711 1.1 jruoho
2712 1.1 jruoho // validate Local0 is a Buffer
2713 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer type is 3
2714 1.1 jruoho {
2715 1.1 jruoho Return (4) // failure
2716 1.1 jruoho }
2717 1.1 jruoho
2718 1.1 jruoho
2719 1.1 jruoho // return Local0 Buffer
2720 1.1 jruoho Return (Local0)
2721 1.1 jruoho } // RBUF
2722 1.1 jruoho
2723 1.1 jruoho Method (TEST)
2724 1.1 jruoho {
2725 1.1 jruoho Store ("++++++++ RetBuf Test", Debug)
2726 1.1 jruoho
2727 1.1 jruoho // store RBUF Buffer return value into Local0
2728 1.1 jruoho Store (RBUF, Local0)
2729 1.1 jruoho
2730 1.1 jruoho // save Local0 object type value into Local1
2731 1.1 jruoho Store (ObjectType (Local0), Local1)
2732 1.1 jruoho
2733 1.1 jruoho // validate Local0 is a Buffer
2734 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer type is 3
2735 1.1 jruoho {
2736 1.1 jruoho Return (10) // failure
2737 1.1 jruoho }
2738 1.1 jruoho Else
2739 1.1 jruoho {
2740 1.1 jruoho Return (0) // success
2741 1.1 jruoho }
2742 1.1 jruoho } // TEST
2743 1.1 jruoho } // RTBF
2744 1.1 jruoho
2745 1.1 jruoho //
2746 1.1 jruoho // test RetLVal.asl
2747 1.1 jruoho //
2748 1.1 jruoho // Test ReturnOp(Lvalue)
2749 1.1 jruoho // This is required to support _PSR on IBM ThinkPad 560D and
2750 1.1 jruoho // _DCK on Toshiba Tecra 8000.
2751 1.1 jruoho //
2752 1.1 jruoho
2753 1.1 jruoho Device (GPE2)
2754 1.1 jruoho {
2755 1.1 jruoho Method (_L03)
2756 1.1 jruoho {
2757 1.1 jruoho Store ("Method GPE2._L03 invoked", Debug)
2758 1.1 jruoho Return ()
2759 1.1 jruoho }
2760 1.1 jruoho
2761 1.1 jruoho Method (_E05)
2762 1.1 jruoho {
2763 1.1 jruoho Store ("Method GPE2._E05 invoked", Debug)
2764 1.1 jruoho Return ()
2765 1.1 jruoho }
2766 1.1 jruoho }
2767 1.1 jruoho
2768 1.1 jruoho Device (PRW2)
2769 1.1 jruoho {
2770 1.1 jruoho Name (_PRW, Package(2) {Package(2){\GPE2, 0x05}, 3})
2771 1.1 jruoho }
2772 1.1 jruoho
2773 1.1 jruoho
2774 1.1 jruoho Scope (\_GPE)
2775 1.1 jruoho {
2776 1.1 jruoho Name (ACST, 0xFF)
2777 1.1 jruoho
2778 1.1 jruoho Method (_L08)
2779 1.1 jruoho {
2780 1.1 jruoho Store ("Method _GPE._L08 invoked", Debug)
2781 1.1 jruoho Return ()
2782 1.1 jruoho }
2783 1.1 jruoho
2784 1.1 jruoho Method (_E09)
2785 1.1 jruoho {
2786 1.1 jruoho Store ("Method _GPE._E09 invoked", Debug)
2787 1.1 jruoho Return ()
2788 1.1 jruoho }
2789 1.1 jruoho
2790 1.1 jruoho Method (_E11)
2791 1.1 jruoho {
2792 1.1 jruoho Store ("Method _GPE._E11 invoked", Debug)
2793 1.1 jruoho Notify (\PRW1, 2)
2794 1.1 jruoho }
2795 1.1 jruoho
2796 1.1 jruoho Method (_L22)
2797 1.1 jruoho {
2798 1.1 jruoho Store ("Method _GPE._L22 invoked", Debug)
2799 1.1 jruoho Return ()
2800 1.1 jruoho }
2801 1.1 jruoho
2802 1.1 jruoho Method (_L33)
2803 1.1 jruoho {
2804 1.1 jruoho Store ("Method _GPE._L33 invoked", Debug)
2805 1.1 jruoho Return ()
2806 1.1 jruoho }
2807 1.1 jruoho
2808 1.1 jruoho Method (_E64)
2809 1.1 jruoho {
2810 1.1 jruoho Store ("Method _GPE._E64 invoked", Debug)
2811 1.1 jruoho Return ()
2812 1.1 jruoho }
2813 1.1 jruoho
2814 1.1 jruoho } // _GPE
2815 1.1 jruoho
2816 1.1 jruoho Device (PRW1)
2817 1.1 jruoho {
2818 1.1 jruoho Name (_PRW, Package(2) {0x11, 3})
2819 1.1 jruoho }
2820 1.1 jruoho
2821 1.1 jruoho Device (PWRB)
2822 1.1 jruoho {
2823 1.1 jruoho Name (_HID, EISAID("PNP0C0C"))
2824 1.1 jruoho Name (_PRW, Package(2) {0x33, 3})
2825 1.1 jruoho }
2826 1.1 jruoho
2827 1.1 jruoho
2828 1.1 jruoho Scope (\_SB) // System Bus
2829 1.1 jruoho { // _SB system bus
2830 1.1 jruoho
2831 1.1 jruoho Device (ACAD)
2832 1.1 jruoho { // ACAD: AC adapter device
2833 1.1 jruoho Name (_HID, "ACPI0003") // AC adapter device
2834 1.1 jruoho
2835 1.1 jruoho Name (_PCL, Package () {\_SB})
2836 1.1 jruoho
2837 1.1 jruoho OperationRegion (AREG, SystemIO, 0x0372, 2)
2838 1.1 jruoho Field (AREG, ByteAcc, NoLock, Preserve)
2839 1.1 jruoho {
2840 1.1 jruoho AIDX, 8,
2841 1.1 jruoho ADAT, 8
2842 1.1 jruoho }
2843 1.1 jruoho IndexField (AIDX, ADAT, ByteAcc, NoLock, Preserve)
2844 1.1 jruoho {
2845 1.1 jruoho , 1, // skips
2846 1.1 jruoho ACIN, 1,
2847 1.1 jruoho , 2, // skips
2848 1.1 jruoho CHAG, 1,
2849 1.1 jruoho , 3, // skips
2850 1.1 jruoho , 7, // skips
2851 1.1 jruoho ABAT, 1,
2852 1.1 jruoho } // IndexField
2853 1.1 jruoho
2854 1.1 jruoho Method (_PSR)
2855 1.1 jruoho {
2856 1.1 jruoho Store (\_GPE.ACST, Local0)
2857 1.1 jruoho Store (ACIN, Local1)
2858 1.1 jruoho If (LNotEqual (\_GPE.ACST, Local1))
2859 1.1 jruoho {
2860 1.1 jruoho Store (Local1, \_GPE.ACST)
2861 1.1 jruoho // This Notify is commented because it causes a
2862 1.1 jruoho // method error when running on a system without the
2863 1.1 jruoho // specific device.
2864 1.1 jruoho // Notify (\_SB_.ACAD, 0)
2865 1.1 jruoho }
2866 1.1 jruoho Return (Local0)
2867 1.1 jruoho } // _PSR
2868 1.1 jruoho
2869 1.1 jruoho Method (_STA)
2870 1.1 jruoho {
2871 1.1 jruoho Return (0x0F)
2872 1.1 jruoho }
2873 1.1 jruoho
2874 1.1 jruoho Method (_INI)
2875 1.1 jruoho {
2876 1.1 jruoho Store (ACIN, \_GPE.ACST)
2877 1.1 jruoho }
2878 1.1 jruoho } // ACAD: AC adapter device
2879 1.1 jruoho
2880 1.1 jruoho // test implicit return from control method
2881 1.1 jruoho Method (DIS_, 1)
2882 1.1 jruoho {
2883 1.1 jruoho Store (Arg0, Local0)
2884 1.1 jruoho }
2885 1.1 jruoho
2886 1.1 jruoho Device (RTLV)
2887 1.1 jruoho {
2888 1.1 jruoho // test implicit return inside nested if with explicit return of Lvalue
2889 1.1 jruoho Method (_DCK, 1)
2890 1.1 jruoho // Arg0: 1 == dock, 0 == undock
2891 1.1 jruoho {
2892 1.1 jruoho If (Arg0)
2893 1.1 jruoho { // dock
2894 1.1 jruoho Store (0x87, Local0)
2895 1.1 jruoho
2896 1.1 jruoho If (Local0)
2897 1.1 jruoho {
2898 1.1 jruoho DIS_ (0x23)
2899 1.1 jruoho Return (1)
2900 1.1 jruoho }
2901 1.1 jruoho
2902 1.1 jruoho Return (0)
2903 1.1 jruoho } // dock
2904 1.1 jruoho Else
2905 1.1 jruoho { // undock
2906 1.1 jruoho Store (Arg0, Local0)
2907 1.1 jruoho
2908 1.1 jruoho If (Local0)
2909 1.1 jruoho {
2910 1.1 jruoho DIS_ (0x23)
2911 1.1 jruoho Return (1)
2912 1.1 jruoho }
2913 1.1 jruoho
2914 1.1 jruoho Return (0)
2915 1.1 jruoho } // undock
2916 1.1 jruoho } // _DCK control method
2917 1.1 jruoho
2918 1.1 jruoho Method (TEST)
2919 1.1 jruoho {
2920 1.1 jruoho Store ("++++++++ RetLVal Test", Debug)
2921 1.1 jruoho
2922 1.1 jruoho // store _PSR return value into Local0
2923 1.1 jruoho Store (\_SB_.ACAD._PSR, Local0)
2924 1.1 jruoho
2925 1.1 jruoho // save Local0 object type value into Local1
2926 1.1 jruoho Store (ObjectType (Local0), Local1)
2927 1.1 jruoho
2928 1.1 jruoho // validate Local0 is a Number
2929 1.1 jruoho If (LNotEqual (Local1, 1)) // Number/Integer type is 1
2930 1.1 jruoho {
2931 1.1 jruoho Return (1) // failure
2932 1.1 jruoho }
2933 1.1 jruoho
2934 1.1 jruoho // test implicit return inside nested if with explicit return of Lvalue
2935 1.1 jruoho Store (_DCK (1), Local2)
2936 1.1 jruoho
2937 1.1 jruoho // save Local2 object type value into Local3
2938 1.1 jruoho Store (ObjectType (Local2), Local3)
2939 1.1 jruoho
2940 1.1 jruoho // validate Local2 is a Number
2941 1.1 jruoho If (LNotEqual (Local3, 1)) // Number/Integer type is 1
2942 1.1 jruoho {
2943 1.1 jruoho Return (2) // failure
2944 1.1 jruoho }
2945 1.1 jruoho
2946 1.1 jruoho If (LNotEqual (Local2, 1))
2947 1.1 jruoho {
2948 1.1 jruoho Return (3) // failure
2949 1.1 jruoho }
2950 1.1 jruoho
2951 1.1 jruoho Return (0) // success
2952 1.1 jruoho } // TEST
2953 1.1 jruoho } // RTLV
2954 1.1 jruoho } // _SB system bus
2955 1.1 jruoho
2956 1.1 jruoho //
2957 1.1 jruoho // test RetPkg.asl
2958 1.1 jruoho //
2959 1.1 jruoho // Test ReturnOp(Package)
2960 1.1 jruoho // This is required to support _PRT on Dell Optiplex Workstations (e.g. GX1)
2961 1.1 jruoho //
2962 1.1 jruoho
2963 1.1 jruoho Scope (\_SB) // System Bus
2964 1.1 jruoho { // _SB system bus
2965 1.1 jruoho Device(LNKA)
2966 1.1 jruoho {
2967 1.1 jruoho Name (_HID, EISAID("PNP0C0F")) // PCI interrupt link
2968 1.1 jruoho Name (_UID, 1)
2969 1.1 jruoho }
2970 1.1 jruoho Device(LNKB)
2971 1.1 jruoho {
2972 1.1 jruoho Name (_HID, EISAID("PNP0C0F")) // PCI interrupt link
2973 1.1 jruoho Name (_UID, 2)
2974 1.1 jruoho }
2975 1.1 jruoho Device(LNKC)
2976 1.1 jruoho {
2977 1.1 jruoho Name (_HID, EISAID("PNP0C0F")) // PCI interrupt link
2978 1.1 jruoho Name (_UID, 3)
2979 1.1 jruoho }
2980 1.1 jruoho Device(LNKD)
2981 1.1 jruoho {
2982 1.1 jruoho Name (_HID, EISAID("PNP0C0F")) // PCI interrupt link
2983 1.1 jruoho Name (_UID, 4)
2984 1.1 jruoho }
2985 1.1 jruoho
2986 1.1 jruoho Device (PCI1)
2987 1.1 jruoho { // PCI1: Root PCI Bus
2988 1.1 jruoho Name (_HID, "PNP0A03") // Need _HID for root device (String format)
2989 1.1 jruoho Name (_ADR,0x00000000)
2990 1.1 jruoho Name (_CRS,0)
2991 1.1 jruoho
2992 1.1 jruoho Name (_PRT, Package ()
2993 1.1 jruoho {
2994 1.1 jruoho Package () {0x0004ffff, 0, LNKA, 0}, // Slot 1, INTA
2995 1.1 jruoho Package () {0x0004ffff, 1, LNKB, 0}, // Slot 1, INTB
2996 1.1 jruoho Package () {0x0004ffff, 2, LNKC, 0}, // Slot 1, INTC
2997 1.1 jruoho Package () {0x0004ffff, 3, LNKD, 0}, // Slot 1, INTD
2998 1.1 jruoho Package () {0x0005ffff, 0, \_SB_.LNKB, 0}, // Slot 2, INTA
2999 1.1 jruoho Package () {0x0005ffff, 1, \_SB_.LNKC, 0}, // Slot 2, INTB
3000 1.1 jruoho Package () {0x0005ffff, 2, \_SB_.LNKD, 0}, // Slot 2, INTC
3001 1.1 jruoho Package () {0x0006ffff, 3, \_SB_.LNKA, 0}, // Slot 2, INTD
3002 1.1 jruoho Package () {0x0006ffff, 0, LNKC, 0}, // Slot 3, INTA
3003 1.1 jruoho Package () {0x0006ffff, 1, LNKD, 0}, // Slot 3, INTB
3004 1.1 jruoho Package () {0x0006ffff, 2, LNKA, 0}, // Slot 3, INTC
3005 1.1 jruoho Package () {0x0006ffff, 3, LNKB, 0}, // Slot 3, INTD
3006 1.1 jruoho })
3007 1.1 jruoho
3008 1.1 jruoho Device (PX40)
3009 1.1 jruoho { // Map f0 space, Start PX40
3010 1.1 jruoho Name (_ADR,0x00070000) // Address+function.
3011 1.1 jruoho }
3012 1.1 jruoho } // PCI0: Root PCI Bus
3013 1.1 jruoho
3014 1.1 jruoho Device (RETP)
3015 1.1 jruoho {
3016 1.1 jruoho Method (RPKG)
3017 1.1 jruoho { // RPKG: Return Package from local variable
3018 1.1 jruoho
3019 1.1 jruoho // store _PRT package into Local0
3020 1.1 jruoho Store (\_SB_.PCI1._PRT, Local0)
3021 1.1 jruoho
3022 1.1 jruoho // return Local0 Package
3023 1.1 jruoho Return (Local0)
3024 1.1 jruoho } // RPKG
3025 1.1 jruoho
3026 1.1 jruoho Method (TEST)
3027 1.1 jruoho {
3028 1.1 jruoho Store ("++++++++ RetPkg Test", Debug)
3029 1.1 jruoho
3030 1.1 jruoho // store RPKG package return value into Local0
3031 1.1 jruoho Store (RPKG, Local0)
3032 1.1 jruoho
3033 1.1 jruoho // save Local0 object type value into Local1
3034 1.1 jruoho Store (ObjectType (Local0), Local1)
3035 1.1 jruoho
3036 1.1 jruoho // validate Local0 is a Package
3037 1.1 jruoho If (LNotEqual (Local1, 4)) // Package type is 4
3038 1.1 jruoho { Return (1) } // failure
3039 1.1 jruoho Else
3040 1.1 jruoho { Return (0) } // success
3041 1.1 jruoho } // TEST
3042 1.1 jruoho } // RETP
3043 1.1 jruoho } // _SB_
3044 1.1 jruoho
3045 1.1 jruoho //
3046 1.1 jruoho // test WhileRet.asl
3047 1.1 jruoho //
3048 1.1 jruoho // WhileRet.asl tests a ReturnOp nested in a IfOp nested in a WhileOp.
3049 1.1 jruoho //
3050 1.1 jruoho Device (WHLR)
3051 1.1 jruoho {
3052 1.1 jruoho Name (LCNT, 0)
3053 1.1 jruoho Method (WIR)
3054 1.1 jruoho { // WIR: control method that returns inside of IfOp inside of WhileOp
3055 1.1 jruoho While (LLess (LCNT, 4))
3056 1.1 jruoho {
3057 1.1 jruoho If (LEqual (LCNT, 2))
3058 1.1 jruoho {
3059 1.1 jruoho Return (0)
3060 1.1 jruoho }
3061 1.1 jruoho
3062 1.1 jruoho Increment (LCNT)
3063 1.1 jruoho }
3064 1.1 jruoho
3065 1.1 jruoho Return (LCNT)
3066 1.1 jruoho } // WIR: control method that returns inside of IfOp inside of WhileOp
3067 1.1 jruoho
3068 1.1 jruoho Method (TEST)
3069 1.1 jruoho {
3070 1.1 jruoho Store ("++++++++ WhileRet Test", Debug)
3071 1.1 jruoho
3072 1.1 jruoho Store (WIR, Local0)
3073 1.1 jruoho
3074 1.1 jruoho Return (Local0)
3075 1.1 jruoho } // TEST
3076 1.1 jruoho } // WHLR
3077 1.1 jruoho
3078 1.1 jruoho //
3079 1.1 jruoho // test AndOrOp.asl
3080 1.1 jruoho //
3081 1.1 jruoho //This code tests the bitwise AndOp and OrOp Operator terms
3082 1.1 jruoho //
3083 1.1 jruoho //Syntax of Andop term
3084 1.1 jruoho //And - Bitwise And
3085 1.1 jruoho //AndTerm := And(
3086 1.1 jruoho // Source1, //TermArg=>Integer
3087 1.1 jruoho // Source2, //TermArg=>Integer
3088 1.1 jruoho // Result //Nothing | SuperName
3089 1.1 jruoho //) => Integer
3090 1.1 jruoho //Source1 and Source2 are evaluated as integer data types,
3091 1.1 jruoho // a bit-wise AND is performed, and the result is optionally
3092 1.1 jruoho //stored into Result.
3093 1.1 jruoho //
3094 1.1 jruoho //
3095 1.1 jruoho //Syntax of OrOp
3096 1.1 jruoho //Or - Bit-wise Or
3097 1.1 jruoho //OrTerm := Or(
3098 1.1 jruoho // Source1, //TermArg=>Integer
3099 1.1 jruoho // Source2 //TermArg=>Integer
3100 1.1 jruoho // Result //Nothing | SuperName
3101 1.1 jruoho //) => Integer
3102 1.1 jruoho //Source1 and Source2 are evaluated as integer data types,
3103 1.1 jruoho // a bit-wide OR is performed, and the result is optionally
3104 1.1 jruoho //stored in Result
3105 1.1 jruoho //
3106 1.1 jruoho Device (ANDO)
3107 1.1 jruoho {
3108 1.1 jruoho OperationRegion (TMEM, SystemMemory, 0xC4, 0x02)
3109 1.1 jruoho Field (TMEM, ByteAcc, NoLock, Preserve)
3110 1.1 jruoho {
3111 1.1 jruoho , 3,
3112 1.1 jruoho TOUD, 13
3113 1.1 jruoho }
3114 1.1 jruoho
3115 1.1 jruoho //Create System Memory Operation Region and field overlays
3116 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3117 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
3118 1.1 jruoho {
3119 1.1 jruoho SMDW, 32, // 32-bit DWORD
3120 1.1 jruoho SMWD, 16, // 16-bit WORD
3121 1.1 jruoho SMBY, 8, // 8-bit BYTE
3122 1.1 jruoho }// Field(RAM)
3123 1.1 jruoho
3124 1.1 jruoho
3125 1.1 jruoho //And with Byte Data
3126 1.1 jruoho Name (BYT1, 0xff)
3127 1.1 jruoho Name (BYT2, 0xff)
3128 1.1 jruoho Name (BRSL, 0x00)
3129 1.1 jruoho
3130 1.1 jruoho //And with Word Data
3131 1.1 jruoho Name (WRD1, 0xffff)
3132 1.1 jruoho Name (WRD2, 0xffff)
3133 1.1 jruoho Name (WRSL, 0x0000)
3134 1.1 jruoho
3135 1.1 jruoho //And with DWord Data
3136 1.1 jruoho Name (DWD1, 0xffffffff)
3137 1.1 jruoho Name (DWD2, 0xffffffff)
3138 1.1 jruoho Name (DRSL, 0x00000000)
3139 1.1 jruoho
3140 1.1 jruoho Method (ANDP)
3141 1.1 jruoho {
3142 1.1 jruoho //Check with 1 And 1 on byte data
3143 1.1 jruoho And(BYT1, BYT2, BRSL)
3144 1.1 jruoho if(LNotEqual(BRSL,0xff))
3145 1.1 jruoho {Return(1)}
3146 1.1 jruoho
3147 1.1 jruoho //Check with 1 And 1 on Word data
3148 1.1 jruoho And(WRD1, WRD2, WRSL)
3149 1.1 jruoho if(LNotEqual(WRSL,0xffff))
3150 1.1 jruoho {
3151 1.1 jruoho Return (1) // failure
3152 1.1 jruoho }
3153 1.1 jruoho
3154 1.1 jruoho //Check with 1 And 1 Dword
3155 1.1 jruoho And(DWD1, DWD2, DRSL)
3156 1.1 jruoho if(LNotEqual(DRSL,0xffffffff))
3157 1.1 jruoho {
3158 1.1 jruoho Return (1) // failure
3159 1.1 jruoho }
3160 1.1 jruoho
3161 1.1 jruoho //Check with 0 And 0 on byte data
3162 1.1 jruoho Store(0x00,BYT1)
3163 1.1 jruoho Store(0x00,BYT2)
3164 1.1 jruoho Store(0x00,BRSL)
3165 1.1 jruoho And(BYT1, BYT2, BRSL)
3166 1.1 jruoho if(LNotEqual(BRSL,0x00))
3167 1.1 jruoho {
3168 1.1 jruoho Return (1) // failure
3169 1.1 jruoho }
3170 1.1 jruoho
3171 1.1 jruoho //Check with 0 And 0 on Word data
3172 1.1 jruoho Store (0x0000,WRD1)
3173 1.1 jruoho Store (0x0000,WRD2)
3174 1.1 jruoho Store (0x0000,WRSL)
3175 1.1 jruoho And(WRD1, WRD2, WRSL)
3176 1.1 jruoho if(LNotEqual(WRSL,0x0000))
3177 1.1 jruoho {
3178 1.1 jruoho Return (1) // failure
3179 1.1 jruoho }
3180 1.1 jruoho
3181 1.1 jruoho //Check with 0 And 0 Dword
3182 1.1 jruoho Store (0x00000000,DWD1)
3183 1.1 jruoho Store (0x00000000,DWD2)
3184 1.1 jruoho Store (0x00000000,DRSL)
3185 1.1 jruoho And(DWD1, DWD2, DRSL)
3186 1.1 jruoho if(LNotEqual(DRSL,0x00000000))
3187 1.1 jruoho {
3188 1.1 jruoho Return (1) // failure
3189 1.1 jruoho }
3190 1.1 jruoho
3191 1.1 jruoho
3192 1.1 jruoho //Check with 1 And 0 on byte data
3193 1.1 jruoho Store(0x55,BYT1)
3194 1.1 jruoho Store(0xAA,BYT2)
3195 1.1 jruoho Store(0x00,BRSL)
3196 1.1 jruoho And(BYT1, BYT2, BRSL)
3197 1.1 jruoho if(LNotEqual(BRSL,0x00))
3198 1.1 jruoho {
3199 1.1 jruoho Return (1) // failure
3200 1.1 jruoho }
3201 1.1 jruoho
3202 1.1 jruoho //Check with 1 And 0 on Word data
3203 1.1 jruoho Store (0x5555,WRD1)
3204 1.1 jruoho Store (0xAAAA,WRD2)
3205 1.1 jruoho Store (0x0000,WRSL)
3206 1.1 jruoho And(WRD1, WRD2, WRSL)
3207 1.1 jruoho if(LNotEqual(WRSL,0x0000))
3208 1.1 jruoho {
3209 1.1 jruoho Return (1) // failure
3210 1.1 jruoho }
3211 1.1 jruoho
3212 1.1 jruoho //Check with 1 And 0 on Dword
3213 1.1 jruoho Store (0x55555555,DWD1)
3214 1.1 jruoho Store (0xAAAAAAAA,DWD2)
3215 1.1 jruoho Store (0x00000000,DRSL)
3216 1.1 jruoho And(DWD1, DWD2, DRSL)
3217 1.1 jruoho if(LNotEqual(DRSL,0x00000000))
3218 1.1 jruoho {
3219 1.1 jruoho Return (1) // failure
3220 1.1 jruoho }
3221 1.1 jruoho
3222 1.1 jruoho Store (0x1FFF, TOUD)
3223 1.1 jruoho Store (TOUD, Local0)
3224 1.1 jruoho if(LNotEqual(Local0,0x1FFF))
3225 1.1 jruoho {
3226 1.1 jruoho Return (1) // failure
3227 1.1 jruoho }
3228 1.1 jruoho
3229 1.1 jruoho //TBD- Do We need to check for system memory data also for each test case ??
3230 1.1 jruoho
3231 1.1 jruoho Return(0)
3232 1.1 jruoho
3233 1.1 jruoho }//ANDP
3234 1.1 jruoho
3235 1.1 jruoho Method (OROP)
3236 1.1 jruoho {
3237 1.1 jruoho
3238 1.1 jruoho //Check with 1 Ored with 1 on byte data
3239 1.1 jruoho Store(0xff,BYT1)
3240 1.1 jruoho Store(0xff,BYT2)
3241 1.1 jruoho Store(0x00,BRSL)
3242 1.1 jruoho Or(BYT1, BYT2, BRSL)
3243 1.1 jruoho if(LNotEqual(BRSL,0xff))
3244 1.1 jruoho {
3245 1.1 jruoho Return (1) // failure
3246 1.1 jruoho }
3247 1.1 jruoho
3248 1.1 jruoho
3249 1.1 jruoho //Check with 1 Ored with 1 on Word data
3250 1.1 jruoho Store(0xffff,WRD1)
3251 1.1 jruoho Store(0xffff,WRD2)
3252 1.1 jruoho Store(0x0000,WRSL)
3253 1.1 jruoho Or(WRD1, WRD2, WRSL)
3254 1.1 jruoho if(LNotEqual(WRSL,0xffff))
3255 1.1 jruoho {
3256 1.1 jruoho Return (1) // failure
3257 1.1 jruoho }
3258 1.1 jruoho
3259 1.1 jruoho //Check with 1 Ored with 1 on Dword data
3260 1.1 jruoho Store(0xffffffff,DWD1)
3261 1.1 jruoho Store(0xffffffff,DWD2)
3262 1.1 jruoho Store(0x00000000,DRSL)
3263 1.1 jruoho Or(DWD1, DWD2, DRSL)
3264 1.1 jruoho if(LNotEqual(DRSL,0xffffffff))
3265 1.1 jruoho {
3266 1.1 jruoho Return (1) // failure
3267 1.1 jruoho }
3268 1.1 jruoho
3269 1.1 jruoho //Check with 0 Ored with 0 on byte data
3270 1.1 jruoho Store(0x00,BYT1)
3271 1.1 jruoho Store(0x00,BYT2)
3272 1.1 jruoho Store(0x00,BRSL)
3273 1.1 jruoho Or(BYT1, BYT2, BRSL)
3274 1.1 jruoho if(LNotEqual(BRSL,0x00))
3275 1.1 jruoho {
3276 1.1 jruoho Return (1) // failure
3277 1.1 jruoho }
3278 1.1 jruoho
3279 1.1 jruoho //Check with 0 Ored with 0 on Word data
3280 1.1 jruoho Store (0x0000,WRD1)
3281 1.1 jruoho Store (0x0000,WRD2)
3282 1.1 jruoho Store (0x0000,WRSL)
3283 1.1 jruoho Or(WRD1, WRD2, WRSL)
3284 1.1 jruoho if(LNotEqual(WRSL,0x0000))
3285 1.1 jruoho {
3286 1.1 jruoho Return (1) // failure
3287 1.1 jruoho }
3288 1.1 jruoho
3289 1.1 jruoho //Check with 0 Ored with 0 Dword data
3290 1.1 jruoho Store (0x00000000,DWD1)
3291 1.1 jruoho Store (0x00000000,DWD2)
3292 1.1 jruoho Store (0x00000000,DRSL)
3293 1.1 jruoho Or(DWD1, DWD2, DRSL)
3294 1.1 jruoho if(LNotEqual(DRSL,0x00000000))
3295 1.1 jruoho {
3296 1.1 jruoho Return (1) // failure
3297 1.1 jruoho }
3298 1.1 jruoho
3299 1.1 jruoho
3300 1.1 jruoho //Check with 1 Ored with 0 on byte data
3301 1.1 jruoho Store(0x55,BYT1)
3302 1.1 jruoho Store(0xAA,BYT2)
3303 1.1 jruoho Store(0x00,BRSL)
3304 1.1 jruoho Or(BYT1, BYT2, BRSL)
3305 1.1 jruoho if(LNotEqual(BRSL,0xff))
3306 1.1 jruoho {
3307 1.1 jruoho Return (1) // failure
3308 1.1 jruoho }
3309 1.1 jruoho
3310 1.1 jruoho //Check with 1 Ored with 0 on Word data
3311 1.1 jruoho Store (0x5555,WRD1)
3312 1.1 jruoho Store (0xAAAA,WRD2)
3313 1.1 jruoho Store (0x0000,WRSL)
3314 1.1 jruoho Or(WRD1, WRD2, WRSL)
3315 1.1 jruoho if(LNotEqual(WRSL,0xffff))
3316 1.1 jruoho {
3317 1.1 jruoho Return (1) // failure
3318 1.1 jruoho }
3319 1.1 jruoho
3320 1.1 jruoho //Check with 1 Ored with 0 on Dword data
3321 1.1 jruoho Store (0x55555555,DWD1)
3322 1.1 jruoho Store (0xAAAAAAAA,DWD2)
3323 1.1 jruoho Store (0x00000000,DRSL)
3324 1.1 jruoho Or(DWD1, DWD2, DRSL)
3325 1.1 jruoho if(LNotEqual(DRSL,0xffffffff))
3326 1.1 jruoho {
3327 1.1 jruoho Return (1) // failure
3328 1.1 jruoho }
3329 1.1 jruoho
3330 1.1 jruoho //TBD - Do We need to check for system memory data also for each test case ??
3331 1.1 jruoho
3332 1.1 jruoho Return(0)
3333 1.1 jruoho
3334 1.1 jruoho }//OROP
3335 1.1 jruoho
3336 1.1.1.3 christos Method(TEST,, Serialized)
3337 1.1 jruoho {
3338 1.1 jruoho Store ("++++++++ AndOrOp Test", Debug)
3339 1.1 jruoho
3340 1.1 jruoho Name(RSLT,1)
3341 1.1 jruoho //Call Andop method
3342 1.1 jruoho Store(ANDP,RSLT)
3343 1.1 jruoho if(LEqual(RSLT,1))
3344 1.1 jruoho {
3345 1.1 jruoho Return (RSLT)
3346 1.1 jruoho }
3347 1.1 jruoho
3348 1.1 jruoho //Call OrOp Method
3349 1.1 jruoho Store(OROP,RSLT)
3350 1.1 jruoho if(LEqual(RSLT,1))
3351 1.1 jruoho {
3352 1.1 jruoho Return(RSLT)
3353 1.1 jruoho }
3354 1.1 jruoho
3355 1.1 jruoho //
3356 1.1 jruoho // Return original conditions to allow iterative execution
3357 1.1 jruoho //
3358 1.1 jruoho Store(0xff,BYT1)
3359 1.1 jruoho Store(0xff,BYT2)
3360 1.1 jruoho Store(0x00,BRSL)
3361 1.1 jruoho Store (0xffff,WRD1)
3362 1.1 jruoho Store (0xffff,WRD2)
3363 1.1 jruoho Store (0x0000,WRSL)
3364 1.1 jruoho Store (0xffffffff,DWD1)
3365 1.1 jruoho Store (0xffffffff,DWD2)
3366 1.1 jruoho Store (0x00000000,DRSL)
3367 1.1 jruoho
3368 1.1 jruoho Return(0)
3369 1.1 jruoho } //TEST
3370 1.1 jruoho } //ANDO
3371 1.1 jruoho
3372 1.1 jruoho //
3373 1.1 jruoho // test BreakPnt.asl
3374 1.1 jruoho //
3375 1.1 jruoho // This code tests the BreakPoint opcode term. The syntax of BreakPoint Term is
3376 1.1 jruoho // BreakPointTerm := BreakPoint
3377 1.1 jruoho // Used for debugging, the Breakpoint opcode stops the execution and enters the AML debugger.
3378 1.1 jruoho // In the non-debug version of the interpreter, BreakPoint is equivalent to Noop.
3379 1.1 jruoho //
3380 1.1 jruoho Device (BRKP)
3381 1.1 jruoho {
3382 1.1 jruoho Name(CNT0,0)
3383 1.1 jruoho
3384 1.1 jruoho Method (BK1)
3385 1.1 jruoho {
3386 1.1 jruoho BreakPoint
3387 1.1 jruoho Return(0)
3388 1.1 jruoho }
3389 1.1 jruoho
3390 1.1 jruoho Method (TEST)
3391 1.1 jruoho {
3392 1.1 jruoho Store ("++++++++ BreakPnt Test", Debug)
3393 1.1 jruoho
3394 1.1 jruoho Store(0,CNT0)
3395 1.1 jruoho
3396 1.1 jruoho //Check BreakPoint statement
3397 1.1 jruoho While(LLess(CNT0,10))
3398 1.1 jruoho {
3399 1.1 jruoho Increment(CNT0)
3400 1.1 jruoho }
3401 1.1 jruoho
3402 1.1 jruoho //Check the BreakPoint statement
3403 1.1 jruoho If(LEqual(CNT0,10))
3404 1.1 jruoho {
3405 1.1 jruoho // BreakPoint
3406 1.1 jruoho Return(0)
3407 1.1 jruoho }
3408 1.1 jruoho
3409 1.1 jruoho //failed
3410 1.1 jruoho Return(1)
3411 1.1 jruoho }
3412 1.1 jruoho }
3413 1.1 jruoho
3414 1.1 jruoho //
3415 1.1 jruoho // test AddSubOp.asl
3416 1.1 jruoho //
3417 1.1 jruoho Device (ADSU)
3418 1.1 jruoho {
3419 1.1 jruoho // create System Memory Operation Region and field overlays
3420 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3421 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
3422 1.1 jruoho {
3423 1.1 jruoho SMDW, 32, // 32-bit DWORD
3424 1.1 jruoho SMWD, 16, // 16-bit WORD
3425 1.1 jruoho SMBY, 8, // 8-bit BYTE
3426 1.1 jruoho } // Field(RAM)
3427 1.1 jruoho
3428 1.1.1.3 christos Method (TEST,, Serialized)
3429 1.1 jruoho {
3430 1.1 jruoho Store ("++++++++ AddSubOp Test", Debug)
3431 1.1 jruoho
3432 1.1 jruoho Name (DWRD, 0x12345678)
3433 1.1 jruoho Name (WRD, 0x1234)
3434 1.1 jruoho Name (BYT, 0x12)
3435 1.1 jruoho
3436 1.1 jruoho // Test AddOp with DWORD data
3437 1.1 jruoho Store (0x12345678, DWRD)
3438 1.1 jruoho Add (DWRD, 7, DWRD)
3439 1.1 jruoho If (LNotEqual (DWRD, 0x1234567F))
3440 1.1 jruoho { Return (DWRD) }
3441 1.1 jruoho
3442 1.1 jruoho // Test AddOp with WORD data
3443 1.1 jruoho Add (WRD, 5, WRD)
3444 1.1 jruoho If (LNotEqual (WRD, 0x1239))
3445 1.1 jruoho { Return (WRD) }
3446 1.1 jruoho
3447 1.1 jruoho // Test AddOp with BYTE data
3448 1.1 jruoho Add (BYT, 3, BYT)
3449 1.1 jruoho If (LNotEqual (BYT, 0x15))
3450 1.1 jruoho { Return (BYT) }
3451 1.1 jruoho
3452 1.1 jruoho // Test SubtractOp with DWORD data
3453 1.1 jruoho Subtract (DWRD, 7, DWRD)
3454 1.1 jruoho If (LNotEqual (DWRD, 0x12345678))
3455 1.1 jruoho { Return (DWRD) }
3456 1.1 jruoho
3457 1.1 jruoho // Test SubtractOp with WORD data
3458 1.1 jruoho Subtract (WRD, 3, WRD)
3459 1.1 jruoho If (LNotEqual (WRD, 0x1236))
3460 1.1 jruoho { Return (WRD) }
3461 1.1 jruoho
3462 1.1 jruoho // Test SubtractOp with BYTE data
3463 1.1 jruoho Subtract (BYT, 3, BYT)
3464 1.1 jruoho If (LNotEqual (BYT, 0x12))
3465 1.1 jruoho { Return (BYT) }
3466 1.1 jruoho
3467 1.1 jruoho
3468 1.1 jruoho // test AddOp with DWORD SystemMemory OpRegion
3469 1.1 jruoho Store (0x01234567, SMDW)
3470 1.1 jruoho Add (SMDW, 8, SMDW)
3471 1.1 jruoho If (LNotEqual (SMDW, 0x0123456F))
3472 1.1 jruoho { Return (SMDW) }
3473 1.1 jruoho
3474 1.1 jruoho // test SubtractOp with DWORD SystemMemory OpRegion
3475 1.1 jruoho Subtract (SMDW, 7, SMDW)
3476 1.1 jruoho If (LNotEqual (SMDW, 0x01234568))
3477 1.1 jruoho { Return (SMDW) }
3478 1.1 jruoho
3479 1.1 jruoho
3480 1.1 jruoho // test AddOp with WORD SystemMemory OpRegion
3481 1.1 jruoho Store (0x0123, SMWD)
3482 1.1 jruoho Add (SMWD, 6, SMWD)
3483 1.1 jruoho If (LNotEqual (SMWD, 0x0129))
3484 1.1 jruoho { Return (SMWD) }
3485 1.1 jruoho
3486 1.1 jruoho // test SubtractOp with WORD SystemMemory OpRegion
3487 1.1 jruoho Subtract (SMWD, 5, SMWD)
3488 1.1 jruoho If (LNotEqual (SMWD, 0x0124))
3489 1.1 jruoho { Return (SMWD) }
3490 1.1 jruoho
3491 1.1 jruoho
3492 1.1 jruoho // test AddOp with BYTE SystemMemory OpRegion
3493 1.1 jruoho Store (0x01, SMBY)
3494 1.1 jruoho Add (SMBY, 4, SMBY)
3495 1.1 jruoho If (LNotEqual (SMBY, 0x05))
3496 1.1 jruoho { Return (SMBY) }
3497 1.1 jruoho
3498 1.1 jruoho // test SubtractOp with BYTE SystemMemory OpRegion
3499 1.1 jruoho Subtract (SMBY, 3, SMBY)
3500 1.1 jruoho If (LNotEqual (SMBY, 0x02))
3501 1.1 jruoho { Return (SMBY) }
3502 1.1 jruoho
3503 1.1 jruoho Return (0)
3504 1.1 jruoho } // TEST
3505 1.1 jruoho } // ADSU
3506 1.1 jruoho
3507 1.1 jruoho //
3508 1.1 jruoho // test IncDecOp.asl
3509 1.1 jruoho //
3510 1.1 jruoho Device (INDC)
3511 1.1 jruoho {
3512 1.1 jruoho // create System Memory Operation Region and field overlays
3513 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3514 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
3515 1.1 jruoho {
3516 1.1 jruoho SMDW, 32, // 32-bit DWORD
3517 1.1 jruoho SMWD, 16, // 16-bit WORD
3518 1.1 jruoho SMBY, 8, // 8-bit BYTE
3519 1.1 jruoho } // Field(RAM)
3520 1.1 jruoho
3521 1.1.1.3 christos Method (TEST,, Serialized)
3522 1.1 jruoho {
3523 1.1 jruoho Store ("++++++++ IncDecOp Test", Debug)
3524 1.1 jruoho
3525 1.1 jruoho Name (DWRD, 0x12345678)
3526 1.1 jruoho Name (WRD, 0x1234)
3527 1.1 jruoho Name (BYT, 0x12)
3528 1.1 jruoho
3529 1.1 jruoho // Test IncrementOp with DWORD data
3530 1.1 jruoho Store (0x12345678, DWRD)
3531 1.1 jruoho Increment (DWRD)
3532 1.1 jruoho If (LNotEqual (DWRD, 0x12345679))
3533 1.1 jruoho { Return (DWRD) }
3534 1.1 jruoho
3535 1.1 jruoho // Test IncrementOp with WORD data
3536 1.1 jruoho Increment (WRD)
3537 1.1 jruoho If (LNotEqual (WRD, 0x1235))
3538 1.1 jruoho { Return (WRD) }
3539 1.1 jruoho
3540 1.1 jruoho // Test IncrementOp with BYTE data
3541 1.1 jruoho Increment (BYT)
3542 1.1 jruoho If (LNotEqual (BYT, 0x13))
3543 1.1 jruoho { Return (BYT) }
3544 1.1 jruoho
3545 1.1 jruoho // Test DecrementOp with DWORD data
3546 1.1 jruoho Decrement (DWRD)
3547 1.1 jruoho If (LNotEqual (DWRD, 0x12345678))
3548 1.1 jruoho { Return (DWRD) }
3549 1.1 jruoho
3550 1.1 jruoho // Test DecrementOp with WORD data
3551 1.1 jruoho Decrement (WRD)
3552 1.1 jruoho If (LNotEqual (WRD, 0x1234))
3553 1.1 jruoho { Return (WRD) }
3554 1.1 jruoho
3555 1.1 jruoho // Test DecrementOp with BYTE data
3556 1.1 jruoho Decrement (BYT)
3557 1.1 jruoho If (LNotEqual (BYT, 0x12))
3558 1.1 jruoho { Return (BYT) }
3559 1.1 jruoho
3560 1.1 jruoho
3561 1.1 jruoho // test IncrementOp with DWORD SystemMemory OpRegion
3562 1.1 jruoho Store (0x01234567, SMDW)
3563 1.1 jruoho Increment (SMDW)
3564 1.1 jruoho If (LNotEqual (SMDW, 0x01234568))
3565 1.1 jruoho { Return (SMDW) }
3566 1.1 jruoho
3567 1.1 jruoho // test DecrementOp with DWORD SystemMemory OpRegion
3568 1.1 jruoho Decrement (SMDW)
3569 1.1 jruoho If (LNotEqual (SMDW, 0x01234567))
3570 1.1 jruoho { Return (SMDW) }
3571 1.1 jruoho
3572 1.1 jruoho
3573 1.1 jruoho // test IncrementOp with WORD SystemMemory OpRegion
3574 1.1 jruoho Store (0x0123, SMWD)
3575 1.1 jruoho Increment (SMWD)
3576 1.1 jruoho If (LNotEqual (SMWD, 0x0124))
3577 1.1 jruoho { Return (SMWD) }
3578 1.1 jruoho
3579 1.1 jruoho // test DecrementOp with WORD SystemMemory OpRegion
3580 1.1 jruoho Decrement (SMWD)
3581 1.1 jruoho If (LNotEqual (SMWD, 0x0123))
3582 1.1 jruoho { Return (SMWD) }
3583 1.1 jruoho
3584 1.1 jruoho
3585 1.1 jruoho // test IncrementOp with BYTE SystemMemory OpRegion
3586 1.1 jruoho Store (0x01, SMBY)
3587 1.1 jruoho Increment (SMBY)
3588 1.1 jruoho If (LNotEqual (SMBY, 0x02))
3589 1.1 jruoho { Return (SMBY) }
3590 1.1 jruoho
3591 1.1 jruoho // test DecrementOp with BYTE SystemMemory OpRegion
3592 1.1 jruoho Decrement (SMBY)
3593 1.1 jruoho If (LNotEqual (SMBY, 0x01))
3594 1.1 jruoho { Return (SMBY) }
3595 1.1 jruoho
3596 1.1 jruoho Return (0)
3597 1.1 jruoho } // TEST
3598 1.1 jruoho } // INDC
3599 1.1 jruoho
3600 1.1 jruoho //
3601 1.1 jruoho // test LOps.asl
3602 1.1 jruoho //
3603 1.1 jruoho //This source tests all the logical operators. Logical operators in ASL are as follows.
3604 1.1 jruoho //LAnd, LEqual, LGreater, LLess, LNot, LNotEqual, LOr.
3605 1.1 jruoho // Success will return 0 and failure will return a non zero number. Check the source code for
3606 1.1 jruoho // non zero number to find where the test failed
3607 1.1 jruoho
3608 1.1 jruoho Device (LOPS)
3609 1.1 jruoho {
3610 1.1 jruoho //Create System Memory Operation Region and field overlays
3611 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3612 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
3613 1.1 jruoho {
3614 1.1 jruoho SMDW, 32, // 32-bit DWORD
3615 1.1 jruoho SMWD, 16, // 16-bit WORD
3616 1.1 jruoho SMBY, 8, // 8-bit BYTE
3617 1.1 jruoho }// Field(RAM)
3618 1.1 jruoho
3619 1.1 jruoho //And with Byte Data
3620 1.1 jruoho Name (BYT1, 0xff)
3621 1.1 jruoho Name (BYT2, 0xff)
3622 1.1 jruoho Name (BRSL, 0x00)
3623 1.1 jruoho
3624 1.1 jruoho //And with Word Data
3625 1.1 jruoho Name (WRD1, 0xffff)
3626 1.1 jruoho Name (WRD2, 0xffff)
3627 1.1 jruoho Name (WRSL, 0x0000)
3628 1.1 jruoho
3629 1.1 jruoho //And with DWord Data
3630 1.1 jruoho Name (DWD1, 0xffffffff)
3631 1.1 jruoho Name (DWD2, 0xffffffff)
3632 1.1 jruoho Name (DRSL, 0x00000000)
3633 1.1 jruoho
3634 1.1 jruoho Name(RSLT,1)
3635 1.1 jruoho
3636 1.1 jruoho Method (ANDL,2) // Test Logical And
3637 1.1 jruoho {
3638 1.1 jruoho //test with the arguments passed
3639 1.1 jruoho if(LEqual(Arg0,Arg1))
3640 1.1 jruoho { Store(LAnd(Arg0,Arg1),RSLT)
3641 1.1 jruoho if(LNotEqual(Ones,RSLT))
3642 1.1 jruoho {Return(11)}
3643 1.1 jruoho }
3644 1.1 jruoho
3645 1.1 jruoho //test with he locals
3646 1.1 jruoho Store(Arg0,Local0)
3647 1.1 jruoho Store(Arg1,Local1)
3648 1.1 jruoho
3649 1.1 jruoho if(LEqual(Local0,Local1))
3650 1.1 jruoho {
3651 1.1 jruoho Store(LAnd(Local0,Local1),RSLT)
3652 1.1 jruoho if(LNotEqual(Ones,RSLT))
3653 1.1 jruoho {Return(12)}
3654 1.1 jruoho }
3655 1.1 jruoho
3656 1.1 jruoho //test with BYTE data
3657 1.1 jruoho if(LEqual(BYT1,BYT2))
3658 1.1 jruoho { Store(LAnd(BYT1,BYT2),BRSL)
3659 1.1 jruoho if(LNotEqual(Ones,BRSL))
3660 1.1 jruoho {Return(13)}
3661 1.1 jruoho }
3662 1.1 jruoho
3663 1.1 jruoho //test with WORD data
3664 1.1 jruoho if(LEqual(WRD1,WRD2))
3665 1.1 jruoho { Store(LAnd(WRD1,WRD2),WRSL)
3666 1.1 jruoho if(LNotEqual(Ones,WRSL))
3667 1.1 jruoho {Return(14)}
3668 1.1 jruoho }
3669 1.1 jruoho
3670 1.1 jruoho //test with DWORD data
3671 1.1 jruoho if(LEqual(DWD1,DWD2))
3672 1.1 jruoho { Store(LAnd(DWD1,DWD2),DRSL)
3673 1.1 jruoho if(LNotEqual(Ones,DRSL))
3674 1.1 jruoho {Return(15)}
3675 1.1 jruoho }
3676 1.1 jruoho
3677 1.1 jruoho //Test for system memory data for each test case.
3678 1.1 jruoho
3679 1.1 jruoho Store(0xff,BYT1)
3680 1.1 jruoho Store(0xff,SMBY)
3681 1.1 jruoho Store(0x00,BRSL)
3682 1.1 jruoho
3683 1.1 jruoho //test with BYTE system memory data
3684 1.1 jruoho if(LEqual(BYT1,SMBY))
3685 1.1 jruoho { Store(LAnd(BYT1,SMBY),BRSL)
3686 1.1 jruoho if(LNotEqual(Ones,BRSL))
3687 1.1 jruoho {Return(16)}
3688 1.1 jruoho }
3689 1.1 jruoho
3690 1.1 jruoho Store (0xffff,WRD1)
3691 1.1 jruoho Store(0xffff,SMWD)
3692 1.1 jruoho Store(0x0000,WRSL)
3693 1.1 jruoho //test with WORD system memory data
3694 1.1 jruoho if(LEqual(WRD1,SMWD))
3695 1.1 jruoho { Store(LAnd(WRD1,SMWD),WRSL)
3696 1.1 jruoho if(LNotEqual(Ones,WRSL))
3697 1.1 jruoho {Return(17)}
3698 1.1 jruoho }
3699 1.1 jruoho
3700 1.1 jruoho Store(0x000000,DRSL)
3701 1.1 jruoho Store (0xffffff,DWD1)
3702 1.1 jruoho Store(0xffffff,SMDW)
3703 1.1 jruoho
3704 1.1 jruoho //test with DWORD system memory data
3705 1.1 jruoho if(LEqual(DWD1,SMDW))
3706 1.1 jruoho { Store(LAnd(DWD1,SMDW),DRSL)
3707 1.1 jruoho if(LNotEqual(Ones,DRSL))
3708 1.1 jruoho {Return(18)}
3709 1.1 jruoho }
3710 1.1 jruoho
3711 1.1 jruoho Return(0)
3712 1.1 jruoho
3713 1.1 jruoho }//ANDL
3714 1.1 jruoho
3715 1.1 jruoho //Test the LOr Operator
3716 1.1 jruoho
3717 1.1 jruoho Method (ORL_,2)
3718 1.1 jruoho {//ORL_
3719 1.1 jruoho
3720 1.1 jruoho //test with the arguments passed
3721 1.1 jruoho if(LEqual(Arg0,Arg1))
3722 1.1 jruoho {
3723 1.1 jruoho Store(LOr(Arg0,Arg1),RSLT)
3724 1.1 jruoho if(LNotEqual(Ones,RSLT))
3725 1.1 jruoho {
3726 1.1 jruoho Return(21)
3727 1.1 jruoho }
3728 1.1 jruoho }
3729 1.1 jruoho
3730 1.1 jruoho //test with he locals
3731 1.1 jruoho Store(Arg0,Local0)
3732 1.1 jruoho Store(Arg1,Local1)
3733 1.1 jruoho
3734 1.1 jruoho if(LEqual(Local0,Local1))
3735 1.1 jruoho {
3736 1.1 jruoho Store(LOr(Local0,Local1),RSLT)
3737 1.1 jruoho if(LNotEqual(Ones,RSLT))
3738 1.1 jruoho {Return(22)}
3739 1.1 jruoho }
3740 1.1 jruoho
3741 1.1 jruoho //Check with 1 LOred with 0 on byte data
3742 1.1 jruoho Store(0xff,BYT1)
3743 1.1 jruoho Store(0x00,BYT2)
3744 1.1 jruoho Store(0x00,BRSL)
3745 1.1 jruoho
3746 1.1 jruoho if(LNotEqual(BYT1, BYT2))
3747 1.1 jruoho {
3748 1.1 jruoho Store(LOr(BYT1, BYT2), BRSL)
3749 1.1 jruoho if(LNotEqual(Ones,BRSL))
3750 1.1 jruoho {Return(23)}
3751 1.1 jruoho }
3752 1.1 jruoho
3753 1.1 jruoho //Check with 1 LOred with 0 on WORD data
3754 1.1 jruoho Store(0xffff,WRD1)
3755 1.1 jruoho Store(0x0000,WRD2)
3756 1.1 jruoho Store(0x0000,WRSL)
3757 1.1 jruoho
3758 1.1 jruoho if(LNotEqual(WRD1, WRD2))
3759 1.1 jruoho {
3760 1.1 jruoho Store(LOr(WRD1, WRD2), WRSL)
3761 1.1 jruoho if(LNotEqual(Ones,WRSL))
3762 1.1 jruoho {Return(24)}
3763 1.1 jruoho }
3764 1.1 jruoho
3765 1.1 jruoho //Check with 1 LOred with 0 on DWORD data
3766 1.1 jruoho Store(0xffffffff,DWD1)
3767 1.1 jruoho Store(0x00000000,DWD2)
3768 1.1 jruoho Store(0x00000000,DRSL)
3769 1.1 jruoho
3770 1.1 jruoho if(LNotEqual(DWD1, DWD2))
3771 1.1 jruoho {
3772 1.1 jruoho Store(LOr(DWD1, DWD2), DRSL)
3773 1.1 jruoho if(LNotEqual(Ones,DRSL))
3774 1.1 jruoho {Return(25)}
3775 1.1 jruoho }
3776 1.1 jruoho
3777 1.1 jruoho Store(0x00,BYT1)
3778 1.1 jruoho Store(0xff,SMBY)
3779 1.1 jruoho Store(0x00,BRSL)
3780 1.1 jruoho
3781 1.1 jruoho //test with BYTE system memory data
3782 1.1 jruoho if(LEqual(BYT1,SMBY))
3783 1.1 jruoho { Store(LOr(BYT1,SMBY),BRSL)
3784 1.1 jruoho if(LNotEqual(Ones,BRSL))
3785 1.1 jruoho {Return(26)}
3786 1.1 jruoho }
3787 1.1 jruoho
3788 1.1 jruoho Store (0x0000,WRD1)
3789 1.1 jruoho Store(0xffff,SMWD)
3790 1.1 jruoho Store(0x0000,WRSL)
3791 1.1 jruoho
3792 1.1 jruoho //test with WORD system memory data
3793 1.1 jruoho if(LEqual(WRD1,SMWD))
3794 1.1 jruoho { Store(LOr(WRD1,SMWD),WRSL)
3795 1.1 jruoho if(LNotEqual(Ones,WRSL))
3796 1.1 jruoho {Return(27)}
3797 1.1 jruoho }
3798 1.1 jruoho
3799 1.1 jruoho
3800 1.1 jruoho Store(0x00000000,DWD1)
3801 1.1 jruoho Store(0xffffffff,SMDW)
3802 1.1 jruoho Store(0x00000000,DRSL)
3803 1.1 jruoho
3804 1.1 jruoho //test with DWORD system memory data
3805 1.1 jruoho if(LEqual(DWD1,SMDW))
3806 1.1 jruoho { Store(LAnd(DWD1,SMDW),DRSL)
3807 1.1 jruoho if(LNotEqual(Ones,DRSL))
3808 1.1 jruoho {Return(28)}
3809 1.1 jruoho }
3810 1.1 jruoho Return(0)
3811 1.1 jruoho
3812 1.1 jruoho }//ORL_
3813 1.1 jruoho
3814 1.1 jruoho //This method tests LGreater and LNot operator
3815 1.1 jruoho Method(LSGR,2)
3816 1.1 jruoho {//LSGR
3817 1.1 jruoho
3818 1.1 jruoho //Test on arguements passed
3819 1.1 jruoho
3820 1.1 jruoho //in test data, Arg1 > Arg0
3821 1.1 jruoho if(LEqual(Ones,LNot(LGreater(Arg1,Arg0))))
3822 1.1 jruoho {Return(31)}
3823 1.1 jruoho
3824 1.1 jruoho //test LLessEqual
3825 1.1 jruoho if(LEqual(Ones,LNot(LGreaterEqual(Arg1,Arg0))))
3826 1.1 jruoho {Return(32)}
3827 1.1 jruoho
3828 1.1 jruoho if(LEqual(Ones,LLess(Arg1,Arg0)))
3829 1.1 jruoho {Return(33)}
3830 1.1 jruoho
3831 1.1 jruoho //test LLessEqual
3832 1.1 jruoho if(LEqual(Ones,LLessEqual(Arg1,Arg0)))
3833 1.1 jruoho {Return(34)}
3834 1.1 jruoho
3835 1.1 jruoho Store(Arg0,Local0)
3836 1.1 jruoho Store(Arg1,Local1)
3837 1.1 jruoho
3838 1.1 jruoho //test with the locals
3839 1.1 jruoho if(LNot(LGreater(Local1,Local0)))
3840 1.1 jruoho {Return(35)}
3841 1.1 jruoho
3842 1.1 jruoho //test on Byte data
3843 1.1 jruoho Store(0x12,BYT1)
3844 1.1 jruoho Store(0x21,BYT2)
3845 1.1 jruoho
3846 1.1 jruoho if(LNot(LGreater(BYT2,BYT1)))
3847 1.1 jruoho {Return(36)}
3848 1.1 jruoho
3849 1.1 jruoho if(LNot(LLess(BYT1,BYT2)))
3850 1.1 jruoho {Return(37)}
3851 1.1 jruoho
3852 1.1 jruoho //test LGreaterEqual with byte data
3853 1.1 jruoho if(LNot(LGreaterEqual(BYT2,BYT1)))
3854 1.1 jruoho {Return(38)}
3855 1.1 jruoho
3856 1.1 jruoho //test LLessEqual byte data
3857 1.1 jruoho if(LNot(LLessEqual(BYT1,BYT2)))
3858 1.1 jruoho {Return(39)}
3859 1.1 jruoho
3860 1.1 jruoho
3861 1.1 jruoho //test on Word data
3862 1.1 jruoho Store(0x1212,WRD1)
3863 1.1 jruoho Store(0x2121,WRD2)
3864 1.1 jruoho
3865 1.1 jruoho if(LNot(LGreater(WRD2,WRD1)))
3866 1.1 jruoho {Return(310)}
3867 1.1 jruoho
3868 1.1 jruoho if(LNot(LLess(WRD1,WRD2)))
3869 1.1 jruoho {Return(311)}
3870 1.1 jruoho
3871 1.1 jruoho //Test LGreaterEqual with Word Data
3872 1.1 jruoho if(LNot(LGreaterEqual(WRD2,WRD1)))
3873 1.1 jruoho {Return(312)}
3874 1.1 jruoho
3875 1.1 jruoho
3876 1.1 jruoho //Test LLessEqual with Word Data
3877 1.1 jruoho if(LNot(LLessEqual(WRD1,WRD2)))
3878 1.1 jruoho {Return(313)}
3879 1.1 jruoho
3880 1.1 jruoho //test on DWord data
3881 1.1 jruoho Store(0x12121212,DWD1)
3882 1.1 jruoho Store(0x21212121,DWD2)
3883 1.1 jruoho
3884 1.1 jruoho if(LNot(LGreater(DWD2,DWD1)))
3885 1.1 jruoho {Return(314)}
3886 1.1 jruoho
3887 1.1 jruoho if(LNot(LLess(DWD1,DWD2)))
3888 1.1 jruoho {Return(315)}
3889 1.1 jruoho
3890 1.1 jruoho
3891 1.1 jruoho //Test LGreaterEqual with Dword
3892 1.1 jruoho if(LNot(LGreaterEqual(DWD2,DWD1)))
3893 1.1 jruoho {Return(316)}
3894 1.1 jruoho
3895 1.1 jruoho //Test LLessEqual DWord
3896 1.1 jruoho if(LNot(LLessEqual(DWD1,DWD2)))
3897 1.1 jruoho {Return(317)}
3898 1.1 jruoho
3899 1.1 jruoho Return(0)
3900 1.1 jruoho }//LSGR
3901 1.1 jruoho
3902 1.1 jruoho //The test method
3903 1.1 jruoho Method(TEST)
3904 1.1 jruoho {
3905 1.1 jruoho Store ("++++++++ LOps Test", Debug)
3906 1.1 jruoho
3907 1.1 jruoho Store(0,RSLT)
3908 1.1 jruoho //Call LAndOp method
3909 1.1 jruoho Store(ANDL(2,2),RSLT)
3910 1.1 jruoho if(LNotEqual(RSLT,0))
3911 1.1 jruoho {Return(RSLT)}
3912 1.1 jruoho
3913 1.1 jruoho //Call LOrOp Method
3914 1.1 jruoho Store(ORL_(5,5),RSLT)
3915 1.1 jruoho if(LNotEqual(RSLT,0))
3916 1.1 jruoho {Return(RSLT)}
3917 1.1 jruoho
3918 1.1 jruoho //Call LSGR Method
3919 1.1 jruoho Store(LSGR(5,7),RSLT)
3920 1.1 jruoho if(LNotEqual(RSLT,0))
3921 1.1 jruoho {Return(RSLT)}
3922 1.1 jruoho
3923 1.1 jruoho Return(0)
3924 1.1 jruoho }//TEST
3925 1.1 jruoho }//LOPS
3926 1.1 jruoho
3927 1.1 jruoho //
3928 1.1 jruoho // test FdSetOps.asl
3929 1.1 jruoho //
3930 1.1 jruoho // FindSetLeftBit - Find Set Left Bit
3931 1.1 jruoho // FindSetLeftBitTerm := FindSetLeftBit
3932 1.1 jruoho // ( Source, //TermArg=>Integer
3933 1.1 jruoho // Result //Nothing | SuperName
3934 1.1 jruoho // ) => Integer
3935 1.1 jruoho // Source is evaluated as integer data type, and the one-based bit location of
3936 1.1 jruoho // the first MSb (most significant set bit) is optionally stored into Result.
3937 1.1 jruoho // The result of 0 means no bit was set, 1 means the left-most bit set is the
3938 1.1 jruoho // first bit, 2 means the left-most bit set is the second bit, and so on.
3939 1.1 jruoho // FindSetRightBit - Find Set Right Bit
3940 1.1 jruoho
3941 1.1 jruoho // FindSetRightBitTerm := FindSetRightBit
3942 1.1 jruoho // ( Source, //TermArg=>Integer
3943 1.1 jruoho // Result //Nothing | SuperName
3944 1.1 jruoho // ) => Integer
3945 1.1 jruoho // Source is evaluated as integer data type, and the one-based bit location of
3946 1.1 jruoho // the most LSb (least significant set bit) is optionally stored in Result.
3947 1.1 jruoho // The result of 0 means no bit was set, 32 means the first bit set is the
3948 1.1 jruoho // 32nd bit, 31 means the first bit set is the 31st bit, and so on.
3949 1.1 jruoho
3950 1.1 jruoho // If the Control method is success Zero is returned. Otherwise a non-zero
3951 1.1 jruoho // number is returned.
3952 1.1 jruoho //
3953 1.1 jruoho Device (FDSO)
3954 1.1 jruoho { // FDSO
3955 1.1 jruoho
3956 1.1 jruoho // Create System Memory Operation Region and field overlays
3957 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3958 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
3959 1.1 jruoho {
3960 1.1 jruoho SMDW, 32, // 32-bit DWORD
3961 1.1 jruoho SMWD, 16, // 16-bit WORD
3962 1.1 jruoho SMBY, 8, // 8-bit BYTE
3963 1.1 jruoho } // Field(RAM)
3964 1.1 jruoho
3965 1.1 jruoho // Byte Data
3966 1.1 jruoho Name (BYT1, 1)
3967 1.1 jruoho Name (BRSL, 0x00)
3968 1.1 jruoho
3969 1.1 jruoho // Word Data
3970 1.1 jruoho Name (WRD1, 0x100)
3971 1.1 jruoho Name (WRSL, 0x0000)
3972 1.1 jruoho
3973 1.1 jruoho // DWord Data
3974 1.1 jruoho Name (DWD1, 0x10000)
3975 1.1 jruoho Name (DRSL, 0x00000000)
3976 1.1 jruoho Name (RSLT, 1)
3977 1.1 jruoho Name (CNTR, 1)
3978 1.1 jruoho
3979 1.1 jruoho Method (SHFT,2)
3980 1.1 jruoho // Arg0 is the actual data and Arg1 is the bit position
3981 1.1 jruoho { // SHFT
3982 1.1 jruoho Store (Arg0, Local0)
3983 1.1 jruoho Store (Arg1, Local1)
3984 1.1 jruoho
3985 1.1 jruoho FindSetLeftBit (Arg0, BRSL)
3986 1.1 jruoho If (LNotEqual (BRSL, Arg1))
3987 1.1 jruoho { Return (0x11) }
3988 1.1 jruoho If (LNotEqual (Arg0, Local0))
3989 1.1 jruoho { Return (0x12) }
3990 1.1 jruoho
3991 1.1 jruoho FindSetLeftBit (Local0, BRSL)
3992 1.1 jruoho If (LNotEqual (BRSL, Local1))
3993 1.1 jruoho { Return (0x13) }
3994 1.1 jruoho If (LNotEqual (Arg0, Local0))
3995 1.1 jruoho { Return (0x14) }
3996 1.1 jruoho
3997 1.1 jruoho // test the byte value for SetLeftBit
3998 1.1 jruoho Store (7, BYT1)
3999 1.1 jruoho FindSetLeftBit (BYT1, BRSL)
4000 1.1 jruoho If (LNotEqual (BRSL, 3))
4001 1.1 jruoho { Return (0x15) }
4002 1.1 jruoho If (LNotEqual (BYT1, 7))
4003 1.1 jruoho { Return (0x16) }
4004 1.1 jruoho
4005 1.1 jruoho Store (1, BYT1)
4006 1.1 jruoho Store (1, CNTR)
4007 1.1 jruoho While (LLessEqual (CNTR, 8))
4008 1.1 jruoho { // FindSetLeftBit check loop for byte data
4009 1.1 jruoho FindSetLeftBit (BYT1, BRSL)
4010 1.1 jruoho If (LNotEqual (BRSL, CNTR))
4011 1.1 jruoho { Return (0x17) }
4012 1.1 jruoho
4013 1.1 jruoho // Shift the bits to check the same
4014 1.1 jruoho ShiftLeft (BYT1, 1, BYT1)
4015 1.1 jruoho Increment (CNTR)
4016 1.1 jruoho } // FindSetLeftBit check loop for byte data
4017 1.1 jruoho
4018 1.1 jruoho
4019 1.1 jruoho // Check BYTE value for SetRightBit
4020 1.1 jruoho Store (7, BYT1)
4021 1.1 jruoho FindSetRightBit (BYT1, BRSL)
4022 1.1 jruoho If (LNotEqual (BRSL, 1))
4023 1.1 jruoho { Return (0x21) }
4024 1.1 jruoho If (LNotEqual (BYT1, 7))
4025 1.1 jruoho { Return (0x22) }
4026 1.1 jruoho
4027 1.1 jruoho Store (1, CNTR)
4028 1.1 jruoho Store (0xFF, BYT1)
4029 1.1 jruoho While (LLessEqual (CNTR, 8))
4030 1.1 jruoho { // FindSetRightBit check loop for byte data
4031 1.1 jruoho FindSetRightBit (BYT1, BRSL)
4032 1.1 jruoho If (LNotEqual (BRSL, CNTR))
4033 1.1 jruoho { Return (0x23) }
4034 1.1 jruoho
4035 1.1 jruoho ShiftLeft (BYT1, 1, BYT1)
4036 1.1 jruoho Increment (CNTR)
4037 1.1 jruoho } // FindSetRightBit check loop for byte data
4038 1.1 jruoho
4039 1.1 jruoho
4040 1.1 jruoho // Test Word value for SetLeftBit
4041 1.1 jruoho Store (9, CNTR)
4042 1.1 jruoho Store (0x100, WRD1)
4043 1.1 jruoho While (LLessEqual (CNTR, 16))
4044 1.1 jruoho {
4045 1.1 jruoho // FindSetLeftBit check loop for Word data
4046 1.1 jruoho FindSetLeftBit (WRD1, WRSL)
4047 1.1 jruoho If (LNotEqual (WRSL, CNTR))
4048 1.1 jruoho { Return (0x31) }
4049 1.1 jruoho
4050 1.1 jruoho // Shift the bits to check the same
4051 1.1 jruoho ShiftLeft (WRD1, 1, WRD1)
4052 1.1 jruoho Increment (CNTR)
4053 1.1 jruoho } // FindSetLeftBit check loop for Word data
4054 1.1 jruoho
4055 1.1 jruoho // Check Word value for SetRightBit
4056 1.1 jruoho Store (9, CNTR)
4057 1.1 jruoho Store (0xFF00, WRD1)
4058 1.1 jruoho While (LLessEqual (CNTR, 16))
4059 1.1 jruoho {
4060 1.1 jruoho // FindSetRightBit check loop for Word data
4061 1.1 jruoho FindSetRightBit (WRD1, WRSL)
4062 1.1 jruoho If (LNotEqual (WRSL, CNTR))
4063 1.1 jruoho { Return (0x32) }
4064 1.1 jruoho
4065 1.1 jruoho ShiftLeft (WRD1, 1, WRD1)
4066 1.1 jruoho Increment (CNTR)
4067 1.1 jruoho } // FindSetRightBit check loop for Word data
4068 1.1 jruoho
4069 1.1 jruoho // Test the DWord value for SetLeftBit
4070 1.1 jruoho Store (17, CNTR)
4071 1.1 jruoho Store (0x10000, DWD1)
4072 1.1 jruoho While (LLessEqual (CNTR, 32))
4073 1.1 jruoho {
4074 1.1 jruoho // FindSetLeftBit check loop for Dword
4075 1.1 jruoho FindSetLeftBit (DWD1, DRSL)
4076 1.1 jruoho If (LNotEqual (DRSL, CNTR))
4077 1.1 jruoho { Return (0x41) }
4078 1.1 jruoho
4079 1.1 jruoho // Shift the bits to check the same
4080 1.1 jruoho ShiftLeft (DWD1, 1, DWD1)
4081 1.1 jruoho Increment (CNTR)
4082 1.1 jruoho } // FindSetLeftBit check loop for Dword
4083 1.1 jruoho
4084 1.1 jruoho // Check DWord value for SetRightBit
4085 1.1 jruoho Store (17, CNTR)
4086 1.1 jruoho Store (0xFFFF0000, DWD1)
4087 1.1 jruoho While (LLessEqual (CNTR, 32))
4088 1.1 jruoho { // FindSetRightBit Check loop for DWORD
4089 1.1 jruoho FindSetRightBit (DWD1, DRSL)
4090 1.1 jruoho If (LNotEqual (DRSL, CNTR))
4091 1.1 jruoho { Return (0x42) }
4092 1.1 jruoho
4093 1.1 jruoho ShiftLeft (DWD1, 1, DWD1)
4094 1.1 jruoho Increment (CNTR)
4095 1.1 jruoho } // FindSetRightBit Check loop for DWORD
4096 1.1 jruoho
4097 1.1 jruoho Return (0)
4098 1.1 jruoho } // SHFT
4099 1.1 jruoho
4100 1.1 jruoho // Test method called from amlexec
4101 1.1 jruoho Method (TEST)
4102 1.1 jruoho { // TEST
4103 1.1 jruoho
4104 1.1 jruoho Store ("++++++++ FdSetOps Test", Debug)
4105 1.1 jruoho
4106 1.1 jruoho Store (SHFT (0x80, 8), RSLT)
4107 1.1 jruoho If (LNotEqual (RSLT, 0))
4108 1.1 jruoho { Return (RSLT) }
4109 1.1 jruoho
4110 1.1 jruoho Return (0) // pass
4111 1.1 jruoho } // TEST
4112 1.1 jruoho } // Device FDSO
4113 1.1 jruoho
4114 1.1 jruoho //
4115 1.1 jruoho // test MulDivOp.asl
4116 1.1 jruoho //
4117 1.1 jruoho Device (MLDV)
4118 1.1 jruoho {
4119 1.1 jruoho // create System Memory Operation Region and field overlays
4120 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4121 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
4122 1.1 jruoho {
4123 1.1 jruoho SMDW, 32, // 32-bit DWORD
4124 1.1 jruoho SMWD, 16, // 16-bit WORD
4125 1.1 jruoho SMBY, 8, // 8-bit BYTE
4126 1.1 jruoho } // Field(RAM)
4127 1.1 jruoho
4128 1.1.1.3 christos Method (TEST,, Serialized)
4129 1.1 jruoho {
4130 1.1 jruoho Store ("++++++++ MulDivOp Test", Debug)
4131 1.1 jruoho
4132 1.1 jruoho Name (RMDR, 0)
4133 1.1 jruoho Name (DWRD, 0x12345678)
4134 1.1 jruoho Name (WRD, 0x1234)
4135 1.1 jruoho Name (BYT, 0x12)
4136 1.1 jruoho
4137 1.1 jruoho // Test MultiplyOp with DWORD data
4138 1.1 jruoho Store (0x12345678, DWRD)
4139 1.1 jruoho Multiply (DWRD, 3, DWRD)
4140 1.1 jruoho If (LNotEqual (DWRD, 0x369D0368))
4141 1.1 jruoho { Return (DWRD) }
4142 1.1 jruoho
4143 1.1 jruoho // Test MultiplyOp with WORD data
4144 1.1 jruoho Multiply (WRD, 4, WRD)
4145 1.1 jruoho If (LNotEqual (WRD, 0x48D0))
4146 1.1 jruoho { Return (WRD) }
4147 1.1 jruoho
4148 1.1 jruoho // Test MultiplyOp with BYTE data
4149 1.1 jruoho Multiply (BYT, 5, BYT)
4150 1.1 jruoho If (LNotEqual (BYT, 0x5A))
4151 1.1 jruoho { Return (BYT) }
4152 1.1 jruoho
4153 1.1 jruoho // Test DivideOp with DWORD data
4154 1.1 jruoho Divide (DWRD, 3, DWRD, RMDR)
4155 1.1 jruoho If (LNotEqual (DWRD, 0x12345678))
4156 1.1 jruoho { Return (DWRD) }
4157 1.1 jruoho If (LNotEqual (RMDR, 0))
4158 1.1 jruoho { Return (RMDR) }
4159 1.1 jruoho
4160 1.1 jruoho // Test DivideOp with WORD data
4161 1.1 jruoho Divide (WRD, 4, WRD, RMDR)
4162 1.1 jruoho If (LNotEqual (WRD, 0x1234))
4163 1.1 jruoho { Return (WRD) }
4164 1.1 jruoho If (LNotEqual (RMDR, 0))
4165 1.1 jruoho { Return (RMDR) }
4166 1.1 jruoho
4167 1.1 jruoho // Test DivideOp with BYTE data
4168 1.1 jruoho Divide (BYT, 5, BYT, RMDR)
4169 1.1 jruoho If (LNotEqual (BYT, 0x12))
4170 1.1 jruoho { Return (BYT) }
4171 1.1 jruoho If (LNotEqual (RMDR, 0))
4172 1.1 jruoho { Return (RMDR) }
4173 1.1 jruoho
4174 1.1 jruoho
4175 1.1 jruoho // test MultiplyOp with DWORD SystemMemory OpRegion
4176 1.1 jruoho Store (0x01234567, SMDW)
4177 1.1 jruoho Multiply (SMDW, 2, SMDW)
4178 1.1 jruoho If (LNotEqual (SMDW, 0x02468ACE))
4179 1.1 jruoho { Return (SMDW) }
4180 1.1 jruoho
4181 1.1 jruoho // test DivideOp with DWORD SystemMemory OpRegion
4182 1.1 jruoho Divide (SMDW, 3, SMDW, RMDR)
4183 1.1 jruoho If (LNotEqual (SMDW, 0x00C22E44))
4184 1.1 jruoho { Return (SMDW) }
4185 1.1 jruoho If (LNotEqual (RMDR, 2))
4186 1.1 jruoho { Return (RMDR) }
4187 1.1 jruoho
4188 1.1 jruoho
4189 1.1 jruoho // test MultiplyOp with WORD SystemMemory OpRegion
4190 1.1 jruoho Store (0x0123, SMWD)
4191 1.1 jruoho Multiply (SMWD, 3, SMWD)
4192 1.1 jruoho If (LNotEqual (SMWD, 0x369))
4193 1.1 jruoho { Return (SMWD) }
4194 1.1 jruoho
4195 1.1 jruoho // test DivideOp with WORD SystemMemory OpRegion
4196 1.1 jruoho Divide (SMWD, 2, SMWD, RMDR)
4197 1.1 jruoho If (LNotEqual (SMWD, 0x01B4))
4198 1.1 jruoho { Return (SMWD) }
4199 1.1 jruoho If (LNotEqual (RMDR, 1))
4200 1.1 jruoho { Return (RMDR) }
4201 1.1 jruoho
4202 1.1 jruoho
4203 1.1 jruoho // test MultiplyOp with BYTE SystemMemory OpRegion
4204 1.1 jruoho Store (0x01, SMBY)
4205 1.1 jruoho Multiply (SMBY, 7, SMBY)
4206 1.1 jruoho If (LNotEqual (SMBY, 0x07))
4207 1.1 jruoho { Return (SMBY) }
4208 1.1 jruoho
4209 1.1 jruoho // test DivideOp with BYTE SystemMemory OpRegion
4210 1.1 jruoho Divide (SMBY, 4, SMBY, RMDR)
4211 1.1 jruoho If (LNotEqual (SMBY, 0x01))
4212 1.1 jruoho { Return (SMBY) }
4213 1.1 jruoho If (LNotEqual (RMDR, 3))
4214 1.1 jruoho { Return (RMDR) }
4215 1.1 jruoho
4216 1.1 jruoho Return (0)
4217 1.1 jruoho } // TEST
4218 1.1 jruoho } // MLDV
4219 1.1 jruoho
4220 1.1 jruoho //
4221 1.1 jruoho // test NBitOps.asl
4222 1.1 jruoho //
4223 1.1 jruoho //NAnd - Bit-wise NAnd
4224 1.1 jruoho //NAndTerm := NAnd(
4225 1.1 jruoho // Source1, //TermArg=>Integer
4226 1.1 jruoho // Source2 //TermArg=>Integer
4227 1.1 jruoho // Result //Nothing | SuperName
4228 1.1 jruoho //) => Integer
4229 1.1 jruoho //Source1 and Source2 are evaluated as integer data types, a bit-wise NAND is performed, and the result is optionally
4230 1.1 jruoho //stored in Result.
4231 1.1 jruoho
4232 1.1 jruoho //NOr - Bitwise NOr
4233 1.1 jruoho //NOrTerm := NOr(
4234 1.1 jruoho // Source1, //TermArg=>Integer
4235 1.1 jruoho // Source2 //TermArg=>Integer
4236 1.1 jruoho // Result //Nothing | SuperName
4237 1.1 jruoho //) => Integer
4238 1.1 jruoho //Source1 and Source2 are evaluated as integer data types, a bit-wise NOR is performed, and the result is optionally
4239 1.1 jruoho //stored in Result.
4240 1.1 jruoho // Not - Not
4241 1.1 jruoho //NotTerm := Not(
4242 1.1 jruoho // Source, //TermArg=>Integer
4243 1.1 jruoho // Result //Nothing | SuperName
4244 1.1 jruoho //) => Integer
4245 1.1 jruoho //Source1 is evaluated as an integer data type, a bit-wise NOT is performed, and the result is optionally stored in
4246 1.1 jruoho //Result.
4247 1.1 jruoho
4248 1.1 jruoho //If the Control method is success Zero is returned else a non-zero number is returned
4249 1.1 jruoho
4250 1.1 jruoho Device (NBIT)
4251 1.1 jruoho {//NBIT
4252 1.1 jruoho
4253 1.1 jruoho //Create System Memory Operation Region and field overlays
4254 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4255 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
4256 1.1 jruoho {
4257 1.1 jruoho SMDW, 32, // 32-bit DWORD
4258 1.1 jruoho SMWD, 16, // 16-bit WORD
4259 1.1 jruoho SMBY, 8, // 8-bit BYTE
4260 1.1 jruoho }// Field(RAM)
4261 1.1 jruoho
4262 1.1 jruoho
4263 1.1 jruoho //And with Byte Data
4264 1.1 jruoho Name (BYT1, 0xff)
4265 1.1 jruoho Name (BYT2, 0xff)
4266 1.1 jruoho Name (BRSL, 0x00)
4267 1.1 jruoho
4268 1.1 jruoho //And with Word Data
4269 1.1 jruoho Name (WRD1, 0xffff)
4270 1.1 jruoho Name (WRD2, 0xffff)
4271 1.1 jruoho Name (WRSL, 0x0000)
4272 1.1 jruoho
4273 1.1 jruoho //And with DWord Data
4274 1.1 jruoho Name (DWD1, 0xffffffff)
4275 1.1 jruoho Name (DWD2, 0xffffffff)
4276 1.1 jruoho Name (DRSL, 0x00000000)
4277 1.1 jruoho Name(RSLT,1)
4278 1.1 jruoho
4279 1.1 jruoho
4280 1.1 jruoho Name(ARSL,0x00)
4281 1.1 jruoho Name(LRSL,0x00)
4282 1.1 jruoho
4283 1.1 jruoho Method(NNDB,2)
4284 1.1 jruoho {//NNDB
4285 1.1 jruoho
4286 1.1 jruoho Store(0xffffffff,SMDW)
4287 1.1 jruoho Store(0xffff,SMWD)
4288 1.1 jruoho Store(0xff,SMBY)
4289 1.1 jruoho
4290 1.1 jruoho
4291 1.1 jruoho NAnd(Arg0,Arg1,ARSL)
4292 1.1 jruoho if(LNotEqual(ARSL,0xfffffffd))
4293 1.1 jruoho {Return(11)}
4294 1.1 jruoho
4295 1.1 jruoho Store(Arg0,local0)
4296 1.1 jruoho Store(Arg1,Local1)
4297 1.1 jruoho
4298 1.1 jruoho NAnd(Local0,Local1,LRSL)
4299 1.1 jruoho if(LNotEqual(LRSL,0xfffffffd))
4300 1.1 jruoho {Return(12)}
4301 1.1 jruoho
4302 1.1 jruoho
4303 1.1 jruoho //Byte data
4304 1.1 jruoho NAnd(BYT1,BYT2,BRSL)
4305 1.1 jruoho if(LNotEqual(BRSL,0xffffff00))
4306 1.1 jruoho {Return(13)}
4307 1.1 jruoho
4308 1.1 jruoho //Word Data
4309 1.1 jruoho NAnd(WRD1,WRD2,WRSL)
4310 1.1 jruoho if(LNotEqual(WRSL,0xffff0000))
4311 1.1 jruoho {Return(14)}
4312 1.1 jruoho
4313 1.1 jruoho //DWord Data
4314 1.1 jruoho NAnd(DWD1,DWD2,DRSL)
4315 1.1 jruoho if(LNotEqual(DRSL,0x00000000))
4316 1.1 jruoho {Return(15)}
4317 1.1 jruoho
4318 1.1 jruoho //Byte data
4319 1.1 jruoho NAnd(SMBY,0xff,BRSL)
4320 1.1 jruoho if(LNotEqual(BRSL,0xffffff00))
4321 1.1 jruoho {Return(16)}
4322 1.1 jruoho
4323 1.1 jruoho //Word Data
4324 1.1 jruoho NAnd(SMWD,0xffff,WRSL)
4325 1.1 jruoho if(LNotEqual(WRSL,0xffff0000))
4326 1.1 jruoho {Return(17)}
4327 1.1 jruoho
4328 1.1 jruoho //DWord Data
4329 1.1 jruoho NAnd(SMDW,0xffffffff,DRSL)
4330 1.1 jruoho if(LNotEqual(DRSL,0x00000000))
4331 1.1 jruoho {Return(18)}
4332 1.1 jruoho
4333 1.1 jruoho Return(0)
4334 1.1 jruoho
4335 1.1 jruoho }//NNDB
4336 1.1 jruoho
4337 1.1 jruoho Method(NNOR,2)
4338 1.1 jruoho {//NNOR
4339 1.1 jruoho
4340 1.1 jruoho NOr(Arg0,Arg1,ARSL)
4341 1.1 jruoho if(LNotEqual(ARSL,0xfffffffd))
4342 1.1 jruoho {Return(21)}
4343 1.1 jruoho
4344 1.1 jruoho Store(Arg0,local0)
4345 1.1 jruoho Store(Arg1,Local1)
4346 1.1 jruoho
4347 1.1 jruoho NOr(Local0,Local1,LRSL)
4348 1.1 jruoho if(LNotEqual(LRSL,0xfffffffd))
4349 1.1 jruoho {Return(22)}
4350 1.1 jruoho
4351 1.1 jruoho
4352 1.1 jruoho //Byte data
4353 1.1 jruoho NOr(BYT1,BYT2,BRSL)
4354 1.1 jruoho if(LNotEqual(BRSL,0xffffff00))
4355 1.1 jruoho {Return(23)}
4356 1.1 jruoho
4357 1.1 jruoho //Word Data
4358 1.1 jruoho NOr(WRD1,WRD2,WRSL)
4359 1.1 jruoho if(LNotEqual(WRSL,0xffff0000))
4360 1.1 jruoho {Return(24)}
4361 1.1 jruoho
4362 1.1 jruoho //DWord Data
4363 1.1 jruoho NOr(DWD1,DWD2,DRSL)
4364 1.1 jruoho if(LNotEqual(DRSL,0x00000000))
4365 1.1 jruoho {Return(25)}
4366 1.1 jruoho
4367 1.1 jruoho //System Memory Byte data
4368 1.1 jruoho NOr(SMBY,0xff,BRSL)
4369 1.1 jruoho if(LNotEqual(BRSL,0xffffff00))
4370 1.1 jruoho {Return(26)}
4371 1.1 jruoho
4372 1.1 jruoho //System Memory Word Data
4373 1.1 jruoho NOr(SMWD,0xffff,WRSL)
4374 1.1 jruoho if(LNotEqual(WRSL,0xffff0000))
4375 1.1 jruoho {Return(27)}
4376 1.1 jruoho
4377 1.1 jruoho //System Memory DWord Data
4378 1.1 jruoho NOr(SMDW,0xffffffff,DRSL)
4379 1.1 jruoho if(LNotEqual(DRSL,0x00000000))
4380 1.1 jruoho {Return(28)}
4381 1.1 jruoho
4382 1.1 jruoho Return(0)
4383 1.1 jruoho
4384 1.1 jruoho }//NNOR
4385 1.1 jruoho
4386 1.1 jruoho Method(NNOT,2)
4387 1.1 jruoho {//NNOT
4388 1.1 jruoho
4389 1.1 jruoho Or(Arg0,Arg1,ARSL)
4390 1.1 jruoho Not(ARSL,ARSL)
4391 1.1 jruoho if(LNotEqual(ARSL,0xfffffffd))
4392 1.1 jruoho {Return(31)}
4393 1.1 jruoho
4394 1.1 jruoho Store(Arg0,local0)
4395 1.1 jruoho Store(Arg1,Local1)
4396 1.1 jruoho
4397 1.1 jruoho Or(Local0,Local1,LRSL)
4398 1.1 jruoho Not(LRSL,LRSL)
4399 1.1 jruoho if(LNotEqual(LRSL,0xfffffffd))
4400 1.1 jruoho {Return(32)}
4401 1.1 jruoho
4402 1.1 jruoho
4403 1.1 jruoho //Byte data
4404 1.1 jruoho Or(BYT1,BYT2,BRSL)
4405 1.1 jruoho Not(BRSL,BRSL)
4406 1.1 jruoho if(LNotEqual(BRSL,0xffffff00))
4407 1.1 jruoho {Return(33)}
4408 1.1 jruoho
4409 1.1 jruoho //Word Data
4410 1.1 jruoho Or(WRD1,WRD2,WRSL)
4411 1.1 jruoho Not(WRSL,WRSL)
4412 1.1 jruoho if(LNotEqual(WRSL,0xffff0000))
4413 1.1 jruoho {Return(34)}
4414 1.1 jruoho
4415 1.1 jruoho //DWord Data
4416 1.1 jruoho Or(DWD1,DWD2,DRSL)
4417 1.1 jruoho Not(DRSL,DRSL)
4418 1.1 jruoho if(LNotEqual(DRSL,0x00000000))
4419 1.1 jruoho {Return(35)}
4420 1.1 jruoho
4421 1.1 jruoho //System Memory Byte data
4422 1.1 jruoho Or(SMBY,0xff,BRSL)
4423 1.1 jruoho Not(BRSL,BRSL)
4424 1.1 jruoho if(LNotEqual(BRSL,0xffffff00))
4425 1.1 jruoho {Return(36)}
4426 1.1 jruoho
4427 1.1 jruoho //System Memory Word Data
4428 1.1 jruoho Or(SMWD,0xffff,WRSL)
4429 1.1 jruoho Not(WRSL,WRSL)
4430 1.1 jruoho if(LNotEqual(WRSL,0xffff0000))
4431 1.1 jruoho {Return(37)}
4432 1.1 jruoho
4433 1.1 jruoho //System Memory DWord Data
4434 1.1 jruoho Or(SMDW,0xffffffff,DRSL)
4435 1.1 jruoho Not(DRSL,DRSL)
4436 1.1 jruoho if(LNotEqual(DRSL,0x00000000))
4437 1.1 jruoho {Return(38)}
4438 1.1 jruoho
4439 1.1 jruoho Return(0)
4440 1.1 jruoho }//NNOT
4441 1.1 jruoho
4442 1.1 jruoho
4443 1.1 jruoho Method(TEST)
4444 1.1 jruoho {
4445 1.1 jruoho
4446 1.1 jruoho Store ("++++++++ NBitOps Test", Debug)
4447 1.1 jruoho
4448 1.1 jruoho Store(NNDB(2,2),RSLT)
4449 1.1 jruoho if(LNotEqual(RSLT,0))
4450 1.1 jruoho {Return(RSLT)}
4451 1.1 jruoho
4452 1.1 jruoho Store(NNOR(2,2),RSLT)
4453 1.1 jruoho if(LNotEqual(RSLT,0))
4454 1.1 jruoho {Return(RSLT)}
4455 1.1 jruoho
4456 1.1 jruoho Store(NNOT(2,2),RSLT)
4457 1.1 jruoho if(LNotEqual(RSLT,0))
4458 1.1 jruoho {Return(RSLT)}
4459 1.1 jruoho
4460 1.1 jruoho
4461 1.1 jruoho Return(0)
4462 1.1 jruoho }
4463 1.1 jruoho
4464 1.1 jruoho }//Device NBIT
4465 1.1 jruoho
4466 1.1 jruoho //
4467 1.1 jruoho // test ShftOp.asl
4468 1.1 jruoho //
4469 1.1 jruoho //ShiftRightTerm := ShiftRight(
4470 1.1 jruoho // Source, //TermArg=>Integer
4471 1.1 jruoho // ShiftCount //TermArg=>Integer
4472 1.1 jruoho // Result //Nothing | SuperName
4473 1.1 jruoho //) => Integer
4474 1.1 jruoho //Source and ShiftCount are evaluated as integer data types. Source is shifted right with the most significant bit
4475 1.1 jruoho //zeroed ShiftCount times. The result is optionally stored into Result.
4476 1.1 jruoho
4477 1.1 jruoho //ShiftLeft(
4478 1.1 jruoho // Source, //TermArg=>Integer
4479 1.1 jruoho // ShiftCount //TermArg=>Integer
4480 1.1 jruoho // Result //Nothing | SuperName
4481 1.1 jruoho //) => Integer
4482 1.1 jruoho //Source and ShiftCount are evaluated as integer data types. Source is shifted left with the least significant
4483 1.1 jruoho //bit zeroed ShiftCount times. The result is optionally stored into Result.
4484 1.1 jruoho
4485 1.1 jruoho //If the Control method is success Zero is returned else a non-zero number is returned
4486 1.1 jruoho Device (SHFT)
4487 1.1 jruoho {//SHFT
4488 1.1 jruoho
4489 1.1 jruoho //Create System Memory Operation Region and field overlays
4490 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4491 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
4492 1.1 jruoho {
4493 1.1 jruoho SMDW, 32, // 32-bit DWORD
4494 1.1 jruoho SMWD, 16, // 16-bit WORD
4495 1.1 jruoho SMBY, 8, // 8-bit BYTE
4496 1.1 jruoho }// Field(RAM)
4497 1.1 jruoho
4498 1.1 jruoho
4499 1.1 jruoho Name(SHFC,0x00)
4500 1.1 jruoho
4501 1.1 jruoho //And with Byte Data
4502 1.1 jruoho Name (BYT1, 0xff)
4503 1.1 jruoho Name (BRSL, 0x00)
4504 1.1 jruoho
4505 1.1 jruoho //And with Word Data
4506 1.1 jruoho Name (WRD1, 0xffff)
4507 1.1 jruoho Name (WRSL, 0x0000)
4508 1.1 jruoho
4509 1.1 jruoho //And with DWord Data
4510 1.1 jruoho Name (DWD1, 0xffffffff)
4511 1.1 jruoho Name (DRSL, 0x00000000)
4512 1.1 jruoho
4513 1.1 jruoho Name(RSLT,1)
4514 1.1 jruoho
4515 1.1 jruoho Name(ARSL,0x00)
4516 1.1 jruoho Name(LRSL,0x00)
4517 1.1 jruoho
4518 1.1 jruoho Method(SLFT,2)
4519 1.1 jruoho {//SLFT
4520 1.1 jruoho
4521 1.1 jruoho Store(0xffffffff,SMDW)
4522 1.1 jruoho Store(0xffff,SMWD)
4523 1.1 jruoho Store(0xff,SMBY)
4524 1.1 jruoho
4525 1.1 jruoho
4526 1.1 jruoho //Arg0-> 2 & Arg1->2
4527 1.1 jruoho ShiftLeft(Arg0,Arg1,ARSL)
4528 1.1 jruoho if(LNotEqual(ARSL,8))
4529 1.1 jruoho {Return(11)}
4530 1.1 jruoho
4531 1.1 jruoho Store(Arg0,local0)
4532 1.1 jruoho Store(Arg1,Local1)
4533 1.1 jruoho
4534 1.1 jruoho //Local0->8 and Local1->2
4535 1.1 jruoho ShiftLeft(Local0,Local1,LRSL)
4536 1.1 jruoho if(LNotEqual(LRSL,8))
4537 1.1 jruoho {Return(12)}
4538 1.1 jruoho
4539 1.1 jruoho Store(2,SHFC)
4540 1.1 jruoho //Byte data
4541 1.1 jruoho ShiftLeft(BYT1,SHFC,BRSL)
4542 1.1 jruoho if(LNotEqual(BRSL,0x3FC))
4543 1.1 jruoho {Return(13)}
4544 1.1 jruoho
4545 1.1 jruoho Store(4,SHFC)
4546 1.1 jruoho //Word Data
4547 1.1 jruoho ShiftLeft(WRD1,SHFC,WRSL)
4548 1.1 jruoho if(LNotEqual(WRSL,0xFFFF0))
4549 1.1 jruoho {Return(14)}
4550 1.1 jruoho
4551 1.1 jruoho Store(8,SHFC)
4552 1.1 jruoho //DWord Data
4553 1.1 jruoho ShiftLeft(DWD1,SHFC,DRSL)
4554 1.1 jruoho if(LNotEqual(DRSL,0xFFFFFF00))
4555 1.1 jruoho {Return(15)}
4556 1.1 jruoho
4557 1.1 jruoho
4558 1.1 jruoho //System Memory Byte data
4559 1.1 jruoho Store(4,SHFC)
4560 1.1 jruoho ShiftLeft(SMBY,SHFC,BRSL)
4561 1.1 jruoho if(LNotEqual(BRSL,0xFF0))
4562 1.1 jruoho {Return(16)}
4563 1.1 jruoho
4564 1.1 jruoho //Word Data
4565 1.1 jruoho Store(4,SHFC)
4566 1.1 jruoho ShiftLeft(SMWD,SHFC,WRSL)
4567 1.1 jruoho if(LNotEqual(WRSL,0xffff0))
4568 1.1 jruoho {Return(17)}
4569 1.1 jruoho
4570 1.1 jruoho //DWord Data
4571 1.1 jruoho Store(8,SHFC)
4572 1.1 jruoho ShiftLeft(SMDW,SHFC,DRSL)
4573 1.1 jruoho if(LNotEqual(DRSL,0xFFFFFF00))
4574 1.1 jruoho {Return(18)}
4575 1.1 jruoho
4576 1.1 jruoho Return(0)
4577 1.1 jruoho
4578 1.1 jruoho }//SLFT
4579 1.1 jruoho
4580 1.1 jruoho Method(SRGT,2)
4581 1.1 jruoho {//SRGT
4582 1.1 jruoho //And with Byte Data
4583 1.1 jruoho Store (0xff,BYT1)
4584 1.1 jruoho Store (0x00,BRSL)
4585 1.1 jruoho
4586 1.1 jruoho //And with Word Data
4587 1.1 jruoho Store (0xffff,WRD1)
4588 1.1 jruoho Store (0x0000,WRSL)
4589 1.1 jruoho
4590 1.1 jruoho //And with DWord Data
4591 1.1 jruoho Store(0xffffffff,DWD1)
4592 1.1 jruoho Store (0x00000000,DRSL)
4593 1.1 jruoho
4594 1.1 jruoho //Reinitialize the result objects
4595 1.1 jruoho Store(0x00,ARSL)
4596 1.1 jruoho Store(0x00,LRSL)
4597 1.1 jruoho
4598 1.1 jruoho Store(0xffffffff,SMDW)
4599 1.1 jruoho Store(0xffff,SMWD)
4600 1.1 jruoho Store(0xff,SMBY)
4601 1.1 jruoho
4602 1.1 jruoho //Arg0-> 2 & Arg1->2
4603 1.1 jruoho ShiftRight(Arg0,Arg1,ARSL)
4604 1.1 jruoho if(LNotEqual(ARSL,0))
4605 1.1 jruoho {Return(21)}
4606 1.1 jruoho
4607 1.1 jruoho Store(Arg0,local0)
4608 1.1 jruoho Store(Arg1,Local1)
4609 1.1 jruoho
4610 1.1 jruoho //Local0->8 and Local1->2
4611 1.1 jruoho ShiftRight(Local0,Local1,LRSL)
4612 1.1 jruoho if(LNotEqual(LRSL,0))
4613 1.1 jruoho {Return(22)}
4614 1.1 jruoho
4615 1.1 jruoho Store(2,SHFC)
4616 1.1 jruoho //Byte data
4617 1.1 jruoho ShiftRight(BYT1,SHFC,BRSL)
4618 1.1 jruoho if(LNotEqual(BRSL,0x3F))
4619 1.1 jruoho {Return(23)}
4620 1.1 jruoho
4621 1.1 jruoho Store(4,SHFC)
4622 1.1 jruoho //Word Data
4623 1.1 jruoho ShiftRight(WRD1,SHFC,WRSL)
4624 1.1 jruoho if(LNotEqual(WRSL,0xFFF))
4625 1.1 jruoho {Return(24)}
4626 1.1 jruoho
4627 1.1 jruoho Store(8,SHFC)
4628 1.1 jruoho //DWord Data
4629 1.1 jruoho ShiftRight(DWD1,SHFC,DRSL)
4630 1.1 jruoho if(LNotEqual(DRSL,0xFFFFFF))
4631 1.1 jruoho {Return(25)}
4632 1.1 jruoho
4633 1.1 jruoho //System Memory Byte data
4634 1.1 jruoho Store(4,SHFC)
4635 1.1 jruoho ShiftRight(SMBY,SHFC,BRSL)
4636 1.1 jruoho if(LNotEqual(BRSL,0xF))
4637 1.1 jruoho {Return(26)}
4638 1.1 jruoho
4639 1.1 jruoho //Word Data
4640 1.1 jruoho Store(4,SHFC)
4641 1.1 jruoho ShiftRight(SMWD,SHFC,WRSL)
4642 1.1 jruoho if(LNotEqual(WRSL,0xFFF))
4643 1.1 jruoho {Return(27)}
4644 1.1 jruoho
4645 1.1 jruoho //DWord Data
4646 1.1 jruoho Store(8,SHFC)
4647 1.1 jruoho ShiftRight(SMDW,SHFC,DRSL)
4648 1.1 jruoho if(LNotEqual(DRSL,0xFFFFFF))
4649 1.1 jruoho {Return(28)}
4650 1.1 jruoho
4651 1.1 jruoho Return(0)
4652 1.1 jruoho }//SRGT
4653 1.1 jruoho
4654 1.1 jruoho //Test method called from amlexec
4655 1.1 jruoho Method(TEST)
4656 1.1 jruoho {
4657 1.1 jruoho Store ("++++++++ ShftOp Test", Debug)
4658 1.1 jruoho
4659 1.1 jruoho Store(SLFT(2,2),RSLT)
4660 1.1 jruoho if(LNotEqual(RSLT,0))
4661 1.1 jruoho {Return(RSLT)}
4662 1.1 jruoho Store(SRGT(2,2),RSLT)
4663 1.1 jruoho if(LNotEqual(RSLT,0))
4664 1.1 jruoho {Return(RSLT)}
4665 1.1 jruoho Return(0)
4666 1.1 jruoho }
4667 1.1 jruoho
4668 1.1 jruoho }//Device SHFT
4669 1.1 jruoho
4670 1.1 jruoho //
4671 1.1 jruoho // test Xor.asl and slightly modified
4672 1.1 jruoho //
4673 1.1 jruoho //This code tests the XOR opcode term
4674 1.1 jruoho //Syntax of XOR term
4675 1.1 jruoho // XOr(
4676 1.1 jruoho // Source1 //TermArg=>BufferTerm
4677 1.1 jruoho // Source2 //TermArg=>Integer
4678 1.1 jruoho // Result //NameString
4679 1.1 jruoho // )
4680 1.1 jruoho //"Source1" and "Source2" are evaluated as integers, a bit-wise XOR is performed, and the result is optionally stored in
4681 1.1 jruoho // Result
4682 1.1 jruoho Device (XORD)
4683 1.1 jruoho {
4684 1.1 jruoho //This Method tests XOr operator for all the data types i.e. BYTE, WORD and DWORD
4685 1.1.1.3 christos Method (TEST,, Serialized)
4686 1.1 jruoho {
4687 1.1 jruoho Store ("++++++++ Xor Test", Debug)
4688 1.1 jruoho
4689 1.1 jruoho //Overlay in system memory
4690 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x800000, 256)
4691 1.1 jruoho Field (RAM, ByteAcc, NoLock, Preserve)
4692 1.1 jruoho {
4693 1.1 jruoho RES1, 1, //Offset
4694 1.1 jruoho BYT1, 8, //First BYTE
4695 1.1 jruoho BYT2, 8, //Second BYTE
4696 1.1 jruoho RBYT, 8, //Result Byte
4697 1.1 jruoho RES2, 1, //Offset
4698 1.1 jruoho WRD1, 16, //First WORD field
4699 1.1 jruoho WRD2, 16, //Second WORD field
4700 1.1 jruoho RWRD, 16, //RSLT WORD field
4701 1.1 jruoho RES3, 1, //Offset
4702 1.1 jruoho DWD1, 32, //First Dword
4703 1.1 jruoho DWD2, 32, //Second Dword
4704 1.1 jruoho RDWD, 32, //Result Dword
4705 1.1 jruoho RES4, 1, //Offset
4706 1.1 jruoho }
4707 1.1 jruoho
4708 1.1 jruoho // Store bits in the single bit fields for checking
4709 1.1 jruoho // at the end
4710 1.1 jruoho Store(1, RES1)
4711 1.1 jruoho Store(1, RES2)
4712 1.1 jruoho Store(1, RES3)
4713 1.1 jruoho Store(1, RES4)
4714 1.1 jruoho
4715 1.1 jruoho // Check the stored single bits
4716 1.1 jruoho if(LNotEqual(RES1, 1))
4717 1.1 jruoho {
4718 1.1 jruoho Return(1)
4719 1.1 jruoho }
4720 1.1 jruoho
4721 1.1 jruoho if(LNotEqual(RES2, 1))
4722 1.1 jruoho {
4723 1.1 jruoho Return(1)
4724 1.1 jruoho }
4725 1.1 jruoho
4726 1.1 jruoho if(LNotEqual(RES3, 1))
4727 1.1 jruoho {
4728 1.1 jruoho Return(1)
4729 1.1 jruoho }
4730 1.1 jruoho
4731 1.1 jruoho if(LNotEqual(RES4, 1))
4732 1.1 jruoho {
4733 1.1 jruoho Return(1)
4734 1.1 jruoho }
4735 1.1 jruoho
4736 1.1 jruoho //************************************************
4737 1.1 jruoho // (BYT1) Bit1 ->0 and (BYT2)Bit2 -> 0 condition
4738 1.1 jruoho Store(0x00,BYT1)
4739 1.1 jruoho Store(0x00,BYT2)
4740 1.1 jruoho XOr(BYT1,BYT2,Local0)
4741 1.1 jruoho Store (Local0, RBYT)
4742 1.1 jruoho if(LNotEqual(RBYT,0))
4743 1.1 jruoho { Return(1)}
4744 1.1 jruoho
4745 1.1 jruoho // (BYT1) Bit1 ->1 and (BYT2)Bit2 -> 1 condition
4746 1.1 jruoho Store(0xff,BYT1)
4747 1.1 jruoho Store(0xff,BYT2)
4748 1.1 jruoho XOr(BYT1,BYT2,Local0)
4749 1.1 jruoho Store (Local0, RBYT)
4750 1.1 jruoho if(LNotEqual(RBYT,0))
4751 1.1 jruoho { Return(1)}
4752 1.1 jruoho
4753 1.1 jruoho // (BYT1) Bit1 ->1 and (BYT)Bit2 -> 0 condition
4754 1.1 jruoho Store(0x55,BYT1)
4755 1.1 jruoho Store(0xAA,BYT2)
4756 1.1 jruoho XOr(BYT1,BYT2,Local0)
4757 1.1 jruoho Store (Local0, RBYT)
4758 1.1 jruoho if(LNotEqual(RBYT,0xFF))
4759 1.1 jruoho { Return(1)}
4760 1.1 jruoho
4761 1.1 jruoho //(BYT1) Bit1 ->0 and (BYT2)Bit2 -> 1 condition
4762 1.1 jruoho Store(0xAA,BYT1)
4763 1.1 jruoho Store(0x55,BYT2)
4764 1.1 jruoho XOr(BYT1,BYT2,Local0)
4765 1.1 jruoho Store (Local0, RBYT)
4766 1.1 jruoho if(LNotEqual(RBYT,0xFF))
4767 1.1 jruoho { Return(1)}
4768 1.1 jruoho
4769 1.1 jruoho Store(0x12,BYT1)
4770 1.1 jruoho Store(0xED,BYT2)
4771 1.1 jruoho
4772 1.1 jruoho XOr(BYT1,BYT2,Local0)
4773 1.1 jruoho Store (Local0, RBYT)
4774 1.1 jruoho if(LNotEqual(RBYT,0xFF))
4775 1.1 jruoho {
4776 1.1 jruoho Return(1)
4777 1.1 jruoho }
4778 1.1 jruoho
4779 1.1 jruoho // Store known values for checking later
4780 1.1 jruoho Store(0x12, BYT1)
4781 1.1 jruoho if(LNotEqual(BYT1, 0x12))
4782 1.1 jruoho {
4783 1.1 jruoho Return(1)
4784 1.1 jruoho }
4785 1.1 jruoho
4786 1.1 jruoho Store(0xFE, BYT2)
4787 1.1 jruoho if(LNotEqual(BYT2, 0xFE))
4788 1.1 jruoho {
4789 1.1 jruoho Return(1)
4790 1.1 jruoho }
4791 1.1 jruoho
4792 1.1 jruoho Store(0xAB, RBYT)
4793 1.1 jruoho if(LNotEqual(RBYT, 0xAB))
4794 1.1 jruoho {
4795 1.1 jruoho Return(1)
4796 1.1 jruoho }
4797 1.1 jruoho
4798 1.1 jruoho //***********************************************
4799 1.1 jruoho // (WRD1) Bit1 ->0 and (WRD2)Bit2 -> 0 condition
4800 1.1 jruoho Store(0x0000,WRD1)
4801 1.1 jruoho Store(0x0000,WRD2)
4802 1.1 jruoho XOr(WRD1,WRD2,RWRD)
4803 1.1 jruoho if(LNotEqual(RWRD,0))
4804 1.1 jruoho { Return(1)}
4805 1.1 jruoho
4806 1.1 jruoho // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 1 condition
4807 1.1 jruoho Store(0xffff,WRD1)
4808 1.1 jruoho Store(0xffff,WRD2)
4809 1.1 jruoho XOr(WRD1,WRD2,RWRD)
4810 1.1 jruoho if(LNotEqual(RWRD,0))
4811 1.1 jruoho { Return(1)}
4812 1.1 jruoho
4813 1.1 jruoho // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 0 condition
4814 1.1 jruoho Store(0x5555,WRD1)
4815 1.1 jruoho Store(0xAAAA,WRD2)
4816 1.1 jruoho XOr(WRD1,WRD2,RWRD)
4817 1.1 jruoho if(LNotEqual(RWRD,0xFFFF))
4818 1.1 jruoho { Return(1)}
4819 1.1 jruoho
4820 1.1 jruoho //(WRD1) Bit1 ->0 and (WRD2)Bit2 -> 1 condition
4821 1.1 jruoho Store(0xAAAA,WRD1)
4822 1.1 jruoho Store(0x5555,WRD2)
4823 1.1 jruoho XOr(WRD1,WRD2,RWRD)
4824 1.1 jruoho if(LNotEqual(RWRD,0xFFFF))
4825 1.1 jruoho { Return(1)}
4826 1.1 jruoho
4827 1.1 jruoho Store(0x1234,WRD1)
4828 1.1 jruoho Store(0xEDCB,WRD2)
4829 1.1 jruoho XOr(WRD1,WRD2,RWRD)
4830 1.1 jruoho if(LNotEqual(RWRD,0xFFFF))
4831 1.1 jruoho { Return(1)}
4832 1.1 jruoho
4833 1.1 jruoho // Store known values for checking later
4834 1.1 jruoho Store(0x1234, WRD1)
4835 1.1 jruoho if(LNotEqual(WRD1, 0x1234))
4836 1.1 jruoho {
4837 1.1 jruoho Return(1)
4838 1.1 jruoho }
4839 1.1 jruoho
4840 1.1 jruoho Store(0xFEDC, WRD2)
4841 1.1 jruoho if(LNotEqual(WRD2, 0xFEDC))
4842 1.1 jruoho {
4843 1.1 jruoho Return(1)
4844 1.1 jruoho }
4845 1.1 jruoho
4846 1.1 jruoho Store(0x87AB, RWRD)
4847 1.1 jruoho if(LNotEqual(RWRD, 0x87AB))
4848 1.1 jruoho {
4849 1.1 jruoho Return(1)
4850 1.1 jruoho }
4851 1.1 jruoho
4852 1.1 jruoho
4853 1.1 jruoho //**************************************************
4854 1.1 jruoho // (DWD1) Bit1 ->0 and (DWD2)Bit2 -> 0 condition
4855 1.1 jruoho Store(0x00000000,DWD1)
4856 1.1 jruoho Store(0x00000000,DWD2)
4857 1.1 jruoho XOr(DWD1,DWD2,RDWD)
4858 1.1 jruoho if(LNotEqual(RDWD,0))
4859 1.1 jruoho { Return(1)}
4860 1.1 jruoho
4861 1.1 jruoho // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 1 condition
4862 1.1 jruoho Store(0xffffffff,DWD1)
4863 1.1 jruoho Store(0xffffffff,DWD2)
4864 1.1 jruoho XOr(DWD1,DWD2,RDWD)
4865 1.1 jruoho if(LNotEqual(RDWD,0))
4866 1.1 jruoho { Return(1)}
4867 1.1 jruoho
4868 1.1 jruoho // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
4869 1.1 jruoho Store(0x55555555,DWD1)
4870 1.1 jruoho Store(0xAAAAAAAA,DWD2)
4871 1.1 jruoho XOr(DWD1,DWD2,RDWD)
4872 1.1 jruoho if(LNotEqual(RDWD,0xFFFFFFFF))
4873 1.1 jruoho { Return(1)}
4874 1.1 jruoho
4875 1.1 jruoho //(DWD1) Bit1 ->0 and (DWD2)Bit2 -> 1 condition
4876 1.1 jruoho Store(0xAAAAAAAA,DWD1)
4877 1.1 jruoho Store(0x55555555,DWD2)
4878 1.1 jruoho XOr(DWD1,DWD2,RDWD)
4879 1.1 jruoho if(LNotEqual(RDWD,0xFFFFFFFF))
4880 1.1 jruoho { Return(1)}
4881 1.1 jruoho
4882 1.1 jruoho // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
4883 1.1 jruoho Store(0x12345678,DWD1)
4884 1.1 jruoho Store(0xEDCBA987,DWD2)
4885 1.1 jruoho XOr(DWD1,DWD2,RDWD)
4886 1.1 jruoho if(LNotEqual(RDWD,0xFFFFFFFF))
4887 1.1 jruoho { Return(1)}
4888 1.1 jruoho
4889 1.1 jruoho Store(0x12345678,DWD1)
4890 1.1 jruoho if(LNotEqual(DWD1,0x12345678))
4891 1.1 jruoho {
4892 1.1 jruoho Return(1)
4893 1.1 jruoho }
4894 1.1 jruoho
4895 1.1 jruoho Store(0xFEDCBA98,DWD2)
4896 1.1 jruoho if(LNotEqual(DWD2,0xFEDCBA98))
4897 1.1 jruoho {
4898 1.1 jruoho Return(1)
4899 1.1 jruoho }
4900 1.1 jruoho
4901 1.1 jruoho Store(0x91827364,RDWD)
4902 1.1 jruoho if(LNotEqual(RDWD,0x91827364))
4903 1.1 jruoho {
4904 1.1 jruoho Return(1)
4905 1.1 jruoho }
4906 1.1 jruoho
4907 1.1 jruoho //****************************************************
4908 1.1 jruoho // Check the stored single bits
4909 1.1 jruoho if(LNotEqual(RES1, 1))
4910 1.1 jruoho {
4911 1.1 jruoho Return(1)
4912 1.1 jruoho }
4913 1.1 jruoho
4914 1.1 jruoho if(LNotEqual(RES2, 1))
4915 1.1 jruoho {
4916 1.1 jruoho Return(1)
4917 1.1 jruoho }
4918 1.1 jruoho
4919 1.1 jruoho if(LNotEqual(RES3, 1))
4920 1.1 jruoho {
4921 1.1 jruoho Return(1)
4922 1.1 jruoho }
4923 1.1 jruoho
4924 1.1 jruoho if(LNotEqual(RES4, 1))
4925 1.1 jruoho {
4926 1.1 jruoho Return(1)
4927 1.1 jruoho }
4928 1.1 jruoho
4929 1.1 jruoho // Change all of the single bit fields to zero
4930 1.1 jruoho Store(0, RES1)
4931 1.1 jruoho Store(0, RES2)
4932 1.1 jruoho Store(0, RES3)
4933 1.1 jruoho Store(0, RES4)
4934 1.1 jruoho
4935 1.1 jruoho // Now, check all of the fields
4936 1.1 jruoho
4937 1.1 jruoho // Byte
4938 1.1 jruoho if(LNotEqual(BYT1, 0x12))
4939 1.1 jruoho {
4940 1.1 jruoho Return(1)
4941 1.1 jruoho }
4942 1.1 jruoho
4943 1.1 jruoho if(LNotEqual(BYT2, 0xFE))
4944 1.1 jruoho {
4945 1.1 jruoho Return(1)
4946 1.1 jruoho }
4947 1.1 jruoho
4948 1.1 jruoho if(LNotEqual(RBYT, 0xAB))
4949 1.1 jruoho {
4950 1.1 jruoho Return(1)
4951 1.1 jruoho }
4952 1.1 jruoho
4953 1.1 jruoho // Word
4954 1.1 jruoho if(LNotEqual(WRD1, 0x1234))
4955 1.1 jruoho {
4956 1.1 jruoho Return(1)
4957 1.1 jruoho }
4958 1.1 jruoho
4959 1.1 jruoho if(LNotEqual(WRD2, 0xFEDC))
4960 1.1 jruoho {
4961 1.1 jruoho Return(1)
4962 1.1 jruoho }
4963 1.1 jruoho
4964 1.1 jruoho if(LNotEqual(RWRD, 0x87AB))
4965 1.1 jruoho {
4966 1.1 jruoho Return(1)
4967 1.1 jruoho }
4968 1.1 jruoho
4969 1.1 jruoho // Dword
4970 1.1 jruoho if(LNotEqual(DWD1, 0x12345678))
4971 1.1 jruoho {
4972 1.1 jruoho Return(1)
4973 1.1 jruoho }
4974 1.1 jruoho
4975 1.1 jruoho if(LNotEqual(DWD2, 0xFEDCBA98))
4976 1.1 jruoho {
4977 1.1 jruoho Return(1)
4978 1.1 jruoho }
4979 1.1 jruoho
4980 1.1 jruoho if(LNotEqual(RDWD, 0x91827364))
4981 1.1 jruoho {
4982 1.1 jruoho Return(1)
4983 1.1 jruoho }
4984 1.1 jruoho
4985 1.1 jruoho // Bits
4986 1.1 jruoho if(LNotEqual(RES1, 0))
4987 1.1 jruoho {
4988 1.1 jruoho Return(1)
4989 1.1 jruoho }
4990 1.1 jruoho
4991 1.1 jruoho if(LNotEqual(RES2, 0))
4992 1.1 jruoho {
4993 1.1 jruoho Return(1)
4994 1.1 jruoho }
4995 1.1 jruoho
4996 1.1 jruoho if(LNotEqual(RES3, 0))
4997 1.1 jruoho {
4998 1.1 jruoho Return(1)
4999 1.1 jruoho }
5000 1.1 jruoho
5001 1.1 jruoho if(LNotEqual(RES4, 0))
5002 1.1 jruoho {
5003 1.1 jruoho Return(1)
5004 1.1 jruoho }
5005 1.1 jruoho
5006 1.1 jruoho
5007 1.1 jruoho Return(0)
5008 1.1 jruoho } // TEST
5009 1.1 jruoho } // XORD
5010 1.1 jruoho
5011 1.1 jruoho //
5012 1.1 jruoho // test CrBytFld.asl
5013 1.1 jruoho //
5014 1.1 jruoho // CrBytFld test
5015 1.1 jruoho // Test for CreateByteField.
5016 1.1 jruoho // Tests creating byte field overlay of buffer stored in Local0.
5017 1.1 jruoho // Tests need to be added for Arg0 and Name buffers.
5018 1.1 jruoho //
5019 1.1 jruoho Device (CRBF)
5020 1.1 jruoho { // Test device name
5021 1.1 jruoho Method (TEST)
5022 1.1 jruoho {
5023 1.1 jruoho Store ("++++++++ CrBytFld Test", Debug)
5024 1.1 jruoho
5025 1.1 jruoho // Local0 is unitialized buffer with 4 elements
5026 1.1 jruoho Store (Buffer (4) {}, Local0)
5027 1.1 jruoho
5028 1.1 jruoho // create Byte Field named BF0 based on Local0 element 0
5029 1.1 jruoho CreateByteField (Local0, 0, BF0)
5030 1.1 jruoho
5031 1.1 jruoho // validate CreateByteField did not alter Local0
5032 1.1 jruoho Store (ObjectType (Local0), Local1) // Local1 = Local0 object type
5033 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer object type value is 3
5034 1.1 jruoho { Return (2) }
5035 1.1 jruoho
5036 1.1 jruoho // store something into BF0
5037 1.1 jruoho Store (1, BF0)
5038 1.1 jruoho
5039 1.1 jruoho // validate Store did not alter Local0 object type
5040 1.1 jruoho Store (ObjectType (Local0), Local1) // Local1 = Local0 object type
5041 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer object type value is 3
5042 1.1 jruoho { Return (3) }
5043 1.1 jruoho
5044 1.1 jruoho // verify that the Store into BF0 was successful
5045 1.1 jruoho If (LNotEqual (BF0, 1))
5046 1.1 jruoho { Return (4) }
5047 1.1 jruoho
5048 1.1 jruoho
5049 1.1 jruoho // create Byte Field named BF1 based on Local0 element 1
5050 1.1 jruoho CreateByteField (Local0, 1, BF1)
5051 1.1 jruoho
5052 1.1 jruoho // validate CreateByteField did not alter Local0
5053 1.1 jruoho Store (ObjectType (Local0), Local1) // Local1 = Local0 object type
5054 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer object type value is 3
5055 1.1 jruoho { Return (10) }
5056 1.1 jruoho
5057 1.1 jruoho // store something into BF1
5058 1.1 jruoho Store (5, BF1)
5059 1.1 jruoho
5060 1.1 jruoho // validate Store did not alter Local0 object type
5061 1.1 jruoho Store (ObjectType (Local0), Local1) // Local1 = Local0 object type
5062 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer object type value is 3
5063 1.1 jruoho { Return (11) }
5064 1.1 jruoho
5065 1.1 jruoho // verify that the Store into BF1 was successful
5066 1.1 jruoho If (LNotEqual (BF1, 5))
5067 1.1 jruoho { Return (12) }
5068 1.1 jruoho
5069 1.1 jruoho // verify that the Store into BF1 did not alter BF0
5070 1.1 jruoho If (LNotEqual (BF0, 1))
5071 1.1 jruoho { Return (13) }
5072 1.1 jruoho
5073 1.1 jruoho
5074 1.1 jruoho // store something into BF0
5075 1.1 jruoho Store (0xFFFF, BF0)
5076 1.1 jruoho
5077 1.1 jruoho // verify that the Store into BF0 was successful
5078 1.1 jruoho If (LNotEqual (BF0, 0xFF))
5079 1.1 jruoho { Return (20) }
5080 1.1 jruoho
5081 1.1 jruoho // verify that the Store into BF0 did not alter BF1
5082 1.1 jruoho If (LNotEqual (BF1, 5))
5083 1.1 jruoho { Return (21) }
5084 1.1 jruoho
5085 1.1 jruoho
5086 1.1 jruoho Return (0)
5087 1.1 jruoho } // TEST
5088 1.1 jruoho } // CRBF
5089 1.1 jruoho
5090 1.1 jruoho //
5091 1.1 jruoho // test IndexOp4.asl
5092 1.1 jruoho //
5093 1.1 jruoho // IndexOp4 test
5094 1.1 jruoho // This is just a subset of the many RegionOp/Index Field test cases.
5095 1.1 jruoho // Tests access of index fields smaller than 8 bits.
5096 1.1 jruoho //
5097 1.1 jruoho Device (IDX4)
5098 1.1 jruoho { // Test device name
5099 1.1 jruoho
5100 1.1 jruoho // MADM: Misaligned Dynamic RAM SystemMemory OperationRegion
5101 1.1 jruoho // Tests OperationRegion memory access using misaligned BYTE,
5102 1.1 jruoho // WORD, and DWORD field element accesses. Validation is performed
5103 1.1 jruoho // using both misaligned field entries and aligned field entries.
5104 1.1 jruoho //
5105 1.1 jruoho // MADM returns 0 if all test cases pass or non-zero identifying
5106 1.1 jruoho // the failing test case for debug purposes. This non-zero numbers
5107 1.1 jruoho // are not guaranteed to be in perfect sequence (i.e., test case
5108 1.1 jruoho // index), but are guaranteed to be unique so the failing test
5109 1.1 jruoho // case can be uniquely identified.
5110 1.1 jruoho //
5111 1.1.1.3 christos Method (MADM, 1, Serialized) // Misaligned Dynamic RAM SystemMemory OperationRegion
5112 1.1 jruoho // Arg0 -- SystemMemory OperationRegion base address
5113 1.1 jruoho { // MADM: Misaligned Dynamic RAM SystemMemory OperationRegion
5114 1.1 jruoho OperationRegion (RAM, SystemMemory, Arg0, 0x100)
5115 1.1 jruoho Field (RAM, DwordAcc, NoLock, Preserve)
5116 1.1 jruoho { // aligned field definition (for verification)
5117 1.1 jruoho DWD0, 32, // aligned DWORD field
5118 1.1 jruoho DWD1, 32 // aligned DWORD field
5119 1.1 jruoho }
5120 1.1 jruoho Field (RAM, ByteAcc, NoLock, Preserve)
5121 1.1 jruoho { // bit access field definition
5122 1.1 jruoho BIT0, 1, // single bit field entry
5123 1.1 jruoho BIT1, 1, // single bit field entry
5124 1.1 jruoho BIT2, 1, // single bit field entry
5125 1.1 jruoho BIT3, 1, // single bit field entry
5126 1.1 jruoho BIT4, 1, // single bit field entry
5127 1.1 jruoho BIT5, 1, // single bit field entry
5128 1.1 jruoho BIT6, 1, // single bit field entry
5129 1.1 jruoho BIT7, 1, // single bit field entry
5130 1.1 jruoho BIT8, 1, // single bit field entry
5131 1.1 jruoho BIT9, 1, // single bit field entry
5132 1.1 jruoho BITA, 1, // single bit field entry
5133 1.1 jruoho BITB, 1, // single bit field entry
5134 1.1 jruoho BITC, 1, // single bit field entry
5135 1.1 jruoho BITD, 1, // single bit field entry
5136 1.1 jruoho BITE, 1, // single bit field entry
5137 1.1 jruoho BITF, 1, // single bit field entry
5138 1.1 jruoho BI10, 1, // single bit field entry
5139 1.1 jruoho BI11, 1, // single bit field entry
5140 1.1 jruoho BI12, 1, // single bit field entry
5141 1.1 jruoho BI13, 1, // single bit field entry
5142 1.1 jruoho BI14, 1, // single bit field entry
5143 1.1 jruoho BI15, 1, // single bit field entry
5144 1.1 jruoho BI16, 1, // single bit field entry
5145 1.1 jruoho BI17, 1, // single bit field entry
5146 1.1 jruoho BI18, 1, // single bit field entry
5147 1.1 jruoho BI19, 1, // single bit field entry
5148 1.1 jruoho BI1A, 1, // single bit field entry
5149 1.1 jruoho BI1B, 1, // single bit field entry
5150 1.1 jruoho BI1C, 1, // single bit field entry
5151 1.1 jruoho BI1D, 1, // single bit field entry
5152 1.1 jruoho BI1E, 1, // single bit field entry
5153 1.1 jruoho BI1F, 1 // single bit field entry
5154 1.1 jruoho } // bit access field definition
5155 1.1 jruoho
5156 1.1 jruoho Field (RAM, ByteAcc, NoLock, Preserve)
5157 1.1 jruoho { // two-bit access field definition
5158 1.1 jruoho B2_0, 2, // single bit field entry
5159 1.1 jruoho B2_1, 2, // single bit field entry
5160 1.1 jruoho B2_2, 2, // single bit field entry
5161 1.1 jruoho B2_3, 2, // single bit field entry
5162 1.1 jruoho B2_4, 2, // single bit field entry
5163 1.1 jruoho B2_5, 2, // single bit field entry
5164 1.1 jruoho B2_6, 2, // single bit field entry
5165 1.1 jruoho B2_7, 2, // single bit field entry
5166 1.1 jruoho B2_8, 2, // single bit field entry
5167 1.1 jruoho B2_9, 2, // single bit field entry
5168 1.1 jruoho B2_A, 2, // single bit field entry
5169 1.1 jruoho B2_B, 2, // single bit field entry
5170 1.1 jruoho B2_C, 2, // single bit field entry
5171 1.1 jruoho B2_D, 2, // single bit field entry
5172 1.1 jruoho B2_E, 2, // single bit field entry
5173 1.1 jruoho B2_F, 2 // single bit field entry
5174 1.1 jruoho } // bit access field definition
5175 1.1 jruoho
5176 1.1 jruoho // initialize memory contents using aligned field entries
5177 1.1 jruoho Store (0x5AA55AA5, DWD0)
5178 1.1 jruoho Store (0x5AA55AA5, DWD1)
5179 1.1 jruoho
5180 1.1 jruoho // set memory contents to known values using misaligned field entries
5181 1.1 jruoho Store (0, BIT0)
5182 1.1 jruoho // verify memory contents using misaligned field entries
5183 1.1 jruoho If (LNotEqual (BIT0, 0))
5184 1.1 jruoho { Return (1) }
5185 1.1 jruoho // verify memory contents using aligned field entries
5186 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55AA4))
5187 1.1 jruoho { Return (2) }
5188 1.1 jruoho
5189 1.1 jruoho // set memory contents to known values using misaligned field entries
5190 1.1 jruoho Store (1, BIT1)
5191 1.1 jruoho // verify memory contents using misaligned field entries
5192 1.1 jruoho If (LNotEqual (BIT1, 1))
5193 1.1 jruoho { Return (3) }
5194 1.1 jruoho // verify memory contents using aligned field entries
5195 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55AA6))
5196 1.1 jruoho { Return (4) }
5197 1.1 jruoho
5198 1.1 jruoho // set memory contents to known values using misaligned field entries
5199 1.1 jruoho Store (0, BIT2)
5200 1.1 jruoho // verify memory contents using misaligned field entries
5201 1.1 jruoho If (LNotEqual (BIT2, 0))
5202 1.1 jruoho { Return (5) }
5203 1.1 jruoho // verify memory contents using aligned field entries
5204 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55AA2))
5205 1.1 jruoho { Return (6) }
5206 1.1 jruoho
5207 1.1 jruoho // set memory contents to known values using misaligned field entries
5208 1.1 jruoho Store (1, BIT3)
5209 1.1 jruoho // verify memory contents using misaligned field entries
5210 1.1 jruoho If (LNotEqual (BIT3, 1))
5211 1.1 jruoho { Return (7) }
5212 1.1 jruoho // verify memory contents using aligned field entries
5213 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55AAA))
5214 1.1 jruoho { Return (8) }
5215 1.1 jruoho
5216 1.1 jruoho // set memory contents to known values using misaligned field entries
5217 1.1 jruoho Store (1, BIT4)
5218 1.1 jruoho // verify memory contents using misaligned field entries
5219 1.1 jruoho If (LNotEqual (BIT4, 1))
5220 1.1 jruoho { Return (9) }
5221 1.1 jruoho // verify memory contents using aligned field entries
5222 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55ABA))
5223 1.1 jruoho { Return (10) }
5224 1.1 jruoho
5225 1.1 jruoho // set memory contents to known values using misaligned field entries
5226 1.1 jruoho Store (0, BIT5)
5227 1.1 jruoho // verify memory contents using misaligned field entries
5228 1.1 jruoho If (LNotEqual (BIT5, 0))
5229 1.1 jruoho { Return (11) }
5230 1.1 jruoho // verify memory contents using aligned field entries
5231 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55A9A))
5232 1.1 jruoho { Return (12) }
5233 1.1 jruoho
5234 1.1 jruoho // set memory contents to known values using misaligned field entries
5235 1.1 jruoho Store (1, BIT6)
5236 1.1 jruoho // verify memory contents using misaligned field entries
5237 1.1 jruoho If (LNotEqual (BIT6, 1))
5238 1.1 jruoho { Return (13) }
5239 1.1 jruoho // verify memory contents using aligned field entries
5240 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55ADA))
5241 1.1 jruoho { Return (14) }
5242 1.1 jruoho
5243 1.1 jruoho // set memory contents to known values using misaligned field entries
5244 1.1 jruoho Store (0, BIT7)
5245 1.1 jruoho // verify memory contents using misaligned field entries
5246 1.1 jruoho If (LNotEqual (BIT7, 0))
5247 1.1 jruoho { Return (15) }
5248 1.1 jruoho // verify memory contents using aligned field entries
5249 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55A5A))
5250 1.1 jruoho { Return (16) }
5251 1.1 jruoho
5252 1.1 jruoho // set memory contents to known values using misaligned field entries
5253 1.1 jruoho Store (1, BIT8)
5254 1.1 jruoho // verify memory contents using misaligned field entries
5255 1.1 jruoho If (LNotEqual (BIT8, 1))
5256 1.1 jruoho { Return (17) }
5257 1.1 jruoho // verify memory contents using aligned field entries
5258 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55B5A))
5259 1.1 jruoho { Return (18) }
5260 1.1 jruoho
5261 1.1 jruoho // set memory contents to known values using misaligned field entries
5262 1.1 jruoho Store (0, BIT9)
5263 1.1 jruoho // verify memory contents using misaligned field entries
5264 1.1 jruoho If (LNotEqual (BIT9, 0))
5265 1.1 jruoho { Return (19) }
5266 1.1 jruoho // verify memory contents using aligned field entries
5267 1.1 jruoho If (LNotEqual (DWD0, 0x5AA5595A))
5268 1.1 jruoho { Return (20) }
5269 1.1 jruoho
5270 1.1 jruoho // set memory contents to known values using misaligned field entries
5271 1.1 jruoho Store (1, BITA)
5272 1.1 jruoho // verify memory contents using misaligned field entries
5273 1.1 jruoho If (LNotEqual (BITA, 1))
5274 1.1 jruoho { Return (21) }
5275 1.1 jruoho // verify memory contents using aligned field entries
5276 1.1 jruoho If (LNotEqual (DWD0, 0x5AA55D5A))
5277 1.1 jruoho { Return (22) }
5278 1.1 jruoho
5279 1.1 jruoho // set memory contents to known values using misaligned field entries
5280 1.1 jruoho Store (0, BITB)
5281 1.1 jruoho // verify memory contents using misaligned field entries
5282 1.1 jruoho If (LNotEqual (BITB, 0))
5283 1.1 jruoho { Return (23) }
5284 1.1 jruoho // verify memory contents using aligned field entries
5285 1.1 jruoho If (LNotEqual (DWD0, 0x5AA5555A))
5286 1.1 jruoho { Return (24) }
5287 1.1 jruoho
5288 1.1 jruoho // set memory contents to known values using misaligned field entries
5289 1.1 jruoho Store (0, BITC)
5290 1.1 jruoho // verify memory contents using misaligned field entries
5291 1.1 jruoho If (LNotEqual (BITC, 0))
5292 1.1 jruoho { Return (25) }
5293 1.1 jruoho // verify memory contents using aligned field entries
5294 1.1 jruoho If (LNotEqual (DWD0, 0x5AA5455A))
5295 1.1 jruoho { Return (26) }
5296 1.1 jruoho
5297 1.1 jruoho // set memory contents to known values using misaligned field entries
5298 1.1 jruoho Store (1, BITD)
5299 1.1 jruoho // verify memory contents using misaligned field entries
5300 1.1 jruoho If (LNotEqual (BITD, 1))
5301 1.1 jruoho { Return (27) }
5302 1.1 jruoho // verify memory contents using aligned field entries
5303 1.1 jruoho If (LNotEqual (DWD0, 0x5AA5655A))
5304 1.1 jruoho { Return (28) }
5305 1.1 jruoho
5306 1.1 jruoho // set memory contents to known values using misaligned field entries
5307 1.1 jruoho Store (0, BITE)
5308 1.1 jruoho // verify memory contents using misaligned field entries
5309 1.1 jruoho If (LNotEqual (BITE, 0))
5310 1.1 jruoho { Return (29) }
5311 1.1 jruoho // verify memory contents using aligned field entries
5312 1.1 jruoho If (LNotEqual (DWD0, 0x5AA5255A))
5313 1.1 jruoho { Return (30) }
5314 1.1 jruoho
5315 1.1 jruoho // set memory contents to known values using misaligned field entries
5316 1.1 jruoho Store (1, BITF)
5317 1.1 jruoho // verify memory contents using misaligned field entries
5318 1.1 jruoho If (LNotEqual (BITF, 1))
5319 1.1 jruoho { Return (31) }
5320 1.1 jruoho // verify memory contents using aligned field entries
5321 1.1 jruoho If (LNotEqual (DWD0, 0x5AA5A55A))
5322 1.1 jruoho { Return (32) }
5323 1.1 jruoho
5324 1.1 jruoho // set memory contents to known values using misaligned field entries
5325 1.1 jruoho Store (0, BI10)
5326 1.1 jruoho // verify memory contents using misaligned field entries
5327 1.1 jruoho If (LNotEqual (BI10, 0))
5328 1.1 jruoho { Return (33) }
5329 1.1 jruoho // verify memory contents using aligned field entries
5330 1.1 jruoho If (LNotEqual (DWD0, 0x5AA4A55A))
5331 1.1 jruoho { Return (34) }
5332 1.1 jruoho
5333 1.1 jruoho // set memory contents to known values using misaligned field entries
5334 1.1 jruoho Store (1, BI11)
5335 1.1 jruoho // verify memory contents using misaligned field entries
5336 1.1 jruoho If (LNotEqual (BI11, 1))
5337 1.1 jruoho { Return (35) }
5338 1.1 jruoho // verify memory contents using aligned field entries
5339 1.1 jruoho If (LNotEqual (DWD0, 0x5AA6A55A))
5340 1.1 jruoho { Return (36) }
5341 1.1 jruoho
5342 1.1 jruoho // set memory contents to known values using misaligned field entries
5343 1.1 jruoho Store (0, BI12)
5344 1.1 jruoho // verify memory contents using misaligned field entries
5345 1.1 jruoho If (LNotEqual (BI12, 0))
5346 1.1 jruoho { Return (37) }
5347 1.1 jruoho // verify memory contents using aligned field entries
5348 1.1 jruoho If (LNotEqual (DWD0, 0x5AA2A55A))
5349 1.1 jruoho { Return (38) }
5350 1.1 jruoho
5351 1.1 jruoho // set memory contents to known values using misaligned field entries
5352 1.1 jruoho Store (1, BI13)
5353 1.1 jruoho // verify memory contents using misaligned field entries
5354 1.1 jruoho If (LNotEqual (BI13, 1))
5355 1.1 jruoho { Return (39) }
5356 1.1 jruoho // verify memory contents using aligned field entries
5357 1.1 jruoho If (LNotEqual (DWD0, 0x5AAAA55A))
5358 1.1 jruoho { Return (40) }
5359 1.1 jruoho
5360 1.1 jruoho // set memory contents to known values using misaligned field entries
5361 1.1 jruoho Store (1, BI14)
5362 1.1 jruoho // verify memory contents using misaligned field entries
5363 1.1 jruoho If (LNotEqual (BI14, 1))
5364 1.1 jruoho { Return (41) }
5365 1.1 jruoho // verify memory contents using aligned field entries
5366 1.1 jruoho If (LNotEqual (DWD0, 0x5ABAA55A))
5367 1.1 jruoho { Return (42) }
5368 1.1 jruoho
5369 1.1 jruoho // set memory contents to known values using misaligned field entries
5370 1.1 jruoho Store (0, BI15)
5371 1.1 jruoho // verify memory contents using misaligned field entries
5372 1.1 jruoho If (LNotEqual (BI15, 0))
5373 1.1 jruoho { Return (43) }
5374 1.1 jruoho // verify memory contents using aligned field entries
5375 1.1 jruoho If (LNotEqual (DWD0, 0x5A9AA55A))
5376 1.1 jruoho { Return (44) }
5377 1.1 jruoho
5378 1.1 jruoho // set memory contents to known values using misaligned field entries
5379 1.1 jruoho Store (1, BI16)
5380 1.1 jruoho // verify memory contents using misaligned field entries
5381 1.1 jruoho If (LNotEqual (BI16, 1))
5382 1.1 jruoho { Return (45) }
5383 1.1 jruoho // verify memory contents using aligned field entries
5384 1.1 jruoho If (LNotEqual (DWD0, 0x5ADAA55A))
5385 1.1 jruoho { Return (46) }
5386 1.1 jruoho
5387 1.1 jruoho // set memory contents to known values using misaligned field entries
5388 1.1 jruoho Store (0, BI17)
5389 1.1 jruoho // verify memory contents using misaligned field entries
5390 1.1 jruoho If (LNotEqual (BI17, 0))
5391 1.1 jruoho { Return (47) }
5392 1.1 jruoho // verify memory contents using aligned field entries
5393 1.1 jruoho If (LNotEqual (DWD0, 0x5A5AA55A))
5394 1.1 jruoho { Return (48) }
5395 1.1 jruoho
5396 1.1 jruoho // set memory contents to known values using misaligned field entries
5397 1.1 jruoho Store (1, BI18)
5398 1.1 jruoho // verify memory contents using misaligned field entries
5399 1.1 jruoho If (LNotEqual (BI18, 1))
5400 1.1 jruoho { Return (49) }
5401 1.1 jruoho // verify memory contents using aligned field entries
5402 1.1 jruoho If (LNotEqual (DWD0, 0x5B5AA55A))
5403 1.1 jruoho { Return (50) }
5404 1.1 jruoho
5405 1.1 jruoho // set memory contents to known values using misaligned field entries
5406 1.1 jruoho Store (0, BI19)
5407 1.1 jruoho // verify memory contents using misaligned field entries
5408 1.1 jruoho If (LNotEqual (BI19, 0))
5409 1.1 jruoho { Return (51) }
5410 1.1 jruoho // verify memory contents using aligned field entries
5411 1.1 jruoho If (LNotEqual (DWD0, 0x595AA55A))
5412 1.1 jruoho { Return (52) }
5413 1.1 jruoho
5414 1.1 jruoho // set memory contents to known values using misaligned field entries
5415 1.1 jruoho Store (1, BI1A)
5416 1.1 jruoho // verify memory contents using misaligned field entries
5417 1.1 jruoho If (LNotEqual (BI1A, 1))
5418 1.1 jruoho { Return (53) }
5419 1.1 jruoho // verify memory contents using aligned field entries
5420 1.1 jruoho If (LNotEqual (DWD0, 0x5D5AA55A))
5421 1.1 jruoho { Return (54) }
5422 1.1 jruoho
5423 1.1 jruoho // set memory contents to known values using misaligned field entries
5424 1.1 jruoho Store (0, BI1B)
5425 1.1 jruoho // verify memory contents using misaligned field entries
5426 1.1 jruoho If (LNotEqual (BI1B, 0))
5427 1.1 jruoho { Return (55) }
5428 1.1 jruoho // verify memory contents using aligned field entries
5429 1.1 jruoho If (LNotEqual (DWD0, 0x555AA55A))
5430 1.1 jruoho { Return (56) }
5431 1.1 jruoho
5432 1.1 jruoho // set memory contents to known values using misaligned field entries
5433 1.1 jruoho Store (0, BI1C)
5434 1.1 jruoho // verify memory contents using misaligned field entries
5435 1.1 jruoho If (LNotEqual (BI1C, 0))
5436 1.1 jruoho { Return (57) }
5437 1.1 jruoho // verify memory contents using aligned field entries
5438 1.1 jruoho If (LNotEqual (DWD0, 0x455AA55A))
5439 1.1 jruoho { Return (58) }
5440 1.1 jruoho
5441 1.1 jruoho // set memory contents to known values using misaligned field entries
5442 1.1 jruoho Store (1, BI1D)
5443 1.1 jruoho // verify memory contents using misaligned field entries
5444 1.1 jruoho If (LNotEqual (BI1D, 1))
5445 1.1 jruoho { Return (59) }
5446 1.1 jruoho // verify memory contents using aligned field entries
5447 1.1 jruoho If (LNotEqual (DWD0, 0x655AA55A))
5448 1.1 jruoho { Return (60) }
5449 1.1 jruoho
5450 1.1 jruoho // set memory contents to known values using misaligned field entries
5451 1.1 jruoho Store (0, BI1E)
5452 1.1 jruoho // verify memory contents using misaligned field entries
5453 1.1 jruoho If (LNotEqual (BI1E, 0))
5454 1.1 jruoho { Return (61) }
5455 1.1 jruoho // verify memory contents using aligned field entries
5456 1.1 jruoho If (LNotEqual (DWD0, 0x255AA55A))
5457 1.1 jruoho { Return (62) }
5458 1.1 jruoho
5459 1.1 jruoho // set memory contents to known values using misaligned field entries
5460 1.1 jruoho Store (1, BI1F)
5461 1.1 jruoho // verify memory contents using misaligned field entries
5462 1.1 jruoho If (LNotEqual (BI1F, 1))
5463 1.1 jruoho { Return (63) }
5464 1.1 jruoho // verify memory contents using aligned field entries
5465 1.1 jruoho If (LNotEqual (DWD0, 0xA55AA55A))
5466 1.1 jruoho { Return (64) }
5467 1.1 jruoho
5468 1.1 jruoho
5469 1.1 jruoho // set memory contents to known values using misaligned field entries
5470 1.1 jruoho Store (3, B2_0)
5471 1.1 jruoho // verify memory contents using misaligned field entries
5472 1.1 jruoho If (LNotEqual (B2_0, 3))
5473 1.1 jruoho { Return (65) }
5474 1.1 jruoho // verify memory contents using aligned field entries
5475 1.1 jruoho If (LNotEqual (DWD0, 0xA55AA55B))
5476 1.1 jruoho { Return (66) }
5477 1.1 jruoho
5478 1.1 jruoho // set memory contents to known values using misaligned field entries
5479 1.1 jruoho Store (1, B2_1)
5480 1.1 jruoho // verify memory contents using misaligned field entries
5481 1.1 jruoho If (LNotEqual (B2_1, 1))
5482 1.1 jruoho { Return (67) }
5483 1.1 jruoho // verify memory contents using aligned field entries
5484 1.1 jruoho If (LNotEqual (DWD0, 0xA55AA557))
5485 1.1 jruoho { Return (68) }
5486 1.1 jruoho
5487 1.1 jruoho // set memory contents to known values using misaligned field entries
5488 1.1 jruoho Store (0, B2_2)
5489 1.1 jruoho // verify memory contents using misaligned field entries
5490 1.1 jruoho If (LNotEqual (B2_2, 0))
5491 1.1 jruoho { Return (69) }
5492 1.1 jruoho // verify memory contents using aligned field entries
5493 1.1 jruoho If (LNotEqual (DWD0, 0xA55AA547))
5494 1.1 jruoho { Return (70) }
5495 1.1 jruoho
5496 1.1 jruoho // set memory contents to known values using misaligned field entries
5497 1.1 jruoho Store (3, B2_3)
5498 1.1 jruoho // verify memory contents using misaligned field entries
5499 1.1 jruoho If (LNotEqual (B2_3, 3))
5500 1.1 jruoho { Return (71) }
5501 1.1 jruoho // verify memory contents using aligned field entries
5502 1.1 jruoho If (LNotEqual (DWD0, 0xA55AA5C7))
5503 1.1 jruoho { Return (72) }
5504 1.1 jruoho
5505 1.1 jruoho // set memory contents to known values using misaligned field entries
5506 1.1 jruoho Store (3, B2_4)
5507 1.1 jruoho // verify memory contents using misaligned field entries
5508 1.1 jruoho If (LNotEqual (B2_4, 3))
5509 1.1 jruoho { Return (73) }
5510 1.1 jruoho // verify memory contents using aligned field entries
5511 1.1 jruoho If (LNotEqual (DWD0, 0xA55AA7C7))
5512 1.1 jruoho { Return (74) }
5513 1.1 jruoho
5514 1.1 jruoho // set memory contents to known values using misaligned field entries
5515 1.1 jruoho Store (0, B2_5)
5516 1.1 jruoho // verify memory contents using misaligned field entries
5517 1.1 jruoho If (LNotEqual (B2_5, 0))
5518 1.1 jruoho { Return (75) }
5519 1.1 jruoho // verify memory contents using aligned field entries
5520 1.1 jruoho If (LNotEqual (DWD0, 0xA55AA3C7))
5521 1.1 jruoho { Return (76) }
5522 1.1 jruoho
5523 1.1 jruoho // set memory contents to known values using misaligned field entries
5524 1.1 jruoho Store (1, B2_6)
5525 1.1 jruoho // verify memory contents using misaligned field entries
5526 1.1 jruoho If (LNotEqual (B2_6, 1))
5527 1.1 jruoho { Return (77) }
5528 1.1 jruoho // verify memory contents using aligned field entries
5529 1.1 jruoho If (LNotEqual (DWD0, 0xA55A93C7))
5530 1.1 jruoho { Return (78) }
5531 1.1 jruoho
5532 1.1 jruoho // set memory contents to known values using misaligned field entries
5533 1.1 jruoho Store (1, B2_7)
5534 1.1 jruoho // verify memory contents using misaligned field entries
5535 1.1 jruoho If (LNotEqual (B2_7, 1))
5536 1.1 jruoho { Return (79) }
5537 1.1 jruoho // verify memory contents using aligned field entries
5538 1.1 jruoho If (LNotEqual (DWD0, 0xA55A53C7))
5539 1.1 jruoho { Return (80) }
5540 1.1 jruoho
5541 1.1 jruoho // set memory contents to known values using misaligned field entries
5542 1.1 jruoho Store (0, B2_8)
5543 1.1 jruoho // verify memory contents using misaligned field entries
5544 1.1 jruoho If (LNotEqual (B2_8, 0))
5545 1.1 jruoho { Return (81) }
5546 1.1 jruoho // verify memory contents using aligned field entries
5547 1.1 jruoho If (LNotEqual (DWD0, 0xA55853C7))
5548 1.1 jruoho { Return (82) }
5549 1.1 jruoho
5550 1.1 jruoho // set memory contents to known values using misaligned field entries
5551 1.1 jruoho Store (1, B2_9)
5552 1.1 jruoho // verify memory contents using misaligned field entries
5553 1.1 jruoho If (LNotEqual (B2_9, 1))
5554 1.1 jruoho { Return (83) }
5555 1.1 jruoho // verify memory contents using aligned field entries
5556 1.1 jruoho If (LNotEqual (DWD0, 0xA55453C7))
5557 1.1 jruoho { Return (84) }
5558 1.1 jruoho
5559 1.1 jruoho // set memory contents to known values using misaligned field entries
5560 1.1 jruoho Store (2, B2_A)
5561 1.1 jruoho // verify memory contents using misaligned field entries
5562 1.1 jruoho If (LNotEqual (B2_A, 2))
5563 1.1 jruoho { Return (85) }
5564 1.1 jruoho // verify memory contents using aligned field entries
5565 1.1 jruoho If (LNotEqual (DWD0, 0xA56453C7))
5566 1.1 jruoho { Return (86) }
5567 1.1 jruoho
5568 1.1 jruoho // set memory contents to known values using misaligned field entries
5569 1.1 jruoho Store (2, B2_B)
5570 1.1 jruoho // verify memory contents using misaligned field entries
5571 1.1 jruoho If (LNotEqual (B2_B, 2))
5572 1.1 jruoho { Return (87) }
5573 1.1 jruoho // verify memory contents using aligned field entries
5574 1.1 jruoho If (LNotEqual (DWD0, 0xA5A453C7))
5575 1.1 jruoho { Return (88) }
5576 1.1 jruoho
5577 1.1 jruoho // set memory contents to known values using misaligned field entries
5578 1.1 jruoho Store (3, B2_C)
5579 1.1 jruoho // verify memory contents using misaligned field entries
5580 1.1 jruoho If (LNotEqual (B2_C, 3))
5581 1.1 jruoho { Return (89) }
5582 1.1 jruoho // verify memory contents using aligned field entries
5583 1.1 jruoho If (LNotEqual (DWD0, 0xA7A453C7))
5584 1.1 jruoho { Return (90) }
5585 1.1 jruoho
5586 1.1 jruoho // set memory contents to known values using misaligned field entries
5587 1.1 jruoho Store (3, B2_D)
5588 1.1 jruoho // verify memory contents using misaligned field entries
5589 1.1 jruoho If (LNotEqual (B2_D, 3))
5590 1.1 jruoho { Return (91) }
5591 1.1 jruoho // verify memory contents using aligned field entries
5592 1.1 jruoho If (LNotEqual (DWD0, 0xAFA453C7))
5593 1.1 jruoho { Return (92) }
5594 1.1 jruoho
5595 1.1 jruoho // set memory contents to known values using misaligned field entries
5596 1.1 jruoho Store (1, B2_E)
5597 1.1 jruoho // verify memory contents using misaligned field entries
5598 1.1 jruoho If (LNotEqual (B2_E, 1))
5599 1.1 jruoho { Return (93) }
5600 1.1 jruoho // verify memory contents using aligned field entries
5601 1.1 jruoho If (LNotEqual (DWD0, 0x9FA453C7))
5602 1.1 jruoho { Return (94) }
5603 1.1 jruoho
5604 1.1 jruoho // set memory contents to known values using misaligned field entries
5605 1.1 jruoho Store (0, B2_F)
5606 1.1 jruoho // verify memory contents using misaligned field entries
5607 1.1 jruoho If (LNotEqual (B2_F, 0))
5608 1.1 jruoho { Return (95) }
5609 1.1 jruoho // verify memory contents using aligned field entries
5610 1.1 jruoho If (LNotEqual (DWD0, 0x1FA453C7))
5611 1.1 jruoho { Return (96) }
5612 1.1 jruoho
5613 1.1 jruoho
5614 1.1 jruoho Return (0) // pass
5615 1.1 jruoho } // MADM: Misaligned Dynamic RAM SystemMemory OperationRegion
5616 1.1 jruoho
5617 1.1 jruoho Method (TEST)
5618 1.1 jruoho {
5619 1.1 jruoho Store ("++++++++ IndexOp4 Test", Debug)
5620 1.1 jruoho
5621 1.1 jruoho // MADM (Misaligned Dynamic RAM SystemMemory OperationRegion) arguments:
5622 1.1 jruoho // Arg0 -- SystemMemory OperationRegion base address
5623 1.1 jruoho Store (MADM (0x800000), Local0)
5624 1.1 jruoho If (LNotEqual (Local0, 0)) // MADM returns zero if successful
5625 1.1 jruoho { Return (Local0) } // failure: return MADM error code
5626 1.1 jruoho
5627 1.1 jruoho Return (Local0)
5628 1.1 jruoho } // TEST
5629 1.1 jruoho } // IDX4
5630 1.1 jruoho
5631 1.1 jruoho //
5632 1.1 jruoho // test Event.asl
5633 1.1 jruoho //
5634 1.1 jruoho // EventOp, ResetOp, SignalOp, and WaitOp test cases.
5635 1.1 jruoho //
5636 1.1 jruoho Device (EVNT)
5637 1.1 jruoho {
5638 1.1 jruoho Event (EVNT) // event synchronization object
5639 1.1 jruoho
5640 1.1 jruoho Method (TEVN, 1)
5641 1.1 jruoho // Arg0: time to Wait for event in milliseconds
5642 1.1 jruoho { // TEVN control method to test ResetOp, SignalOp, and WaitOp
5643 1.1 jruoho // reset EVNT to initialization (zero) state
5644 1.1 jruoho Reset (EVNT)
5645 1.1 jruoho
5646 1.1 jruoho // prime EVNT with two outstanding signals
5647 1.1 jruoho Signal (EVNT)
5648 1.1 jruoho Signal (EVNT)
5649 1.1 jruoho
5650 1.1 jruoho
5651 1.1 jruoho // acquire existing signal
5652 1.1 jruoho Store (Wait (EVNT, Arg0), Local0)
5653 1.1 jruoho
5654 1.1 jruoho // validate Local0 is a Number
5655 1.1 jruoho Store (ObjectType (Local0), Local1)
5656 1.1 jruoho If (LNotEqual (Local1, 1)) // Number is type 1
5657 1.1 jruoho { Return (0x21) } // Local1 indicates Local0 is not a Number
5658 1.1 jruoho
5659 1.1 jruoho If (LNotEqual (Local0, 0)) // Number is type 1
5660 1.1 jruoho { Return (0x22) } // timeout occurred without acquiring signal
5661 1.1 jruoho
5662 1.1 jruoho Store ("Acquire 1st existing signal PASS", Debug)
5663 1.1 jruoho
5664 1.1 jruoho
5665 1.1 jruoho // acquire existing signal
5666 1.1 jruoho Store (Wait (EVNT, Arg0), Local0)
5667 1.1 jruoho
5668 1.1 jruoho // validate Local0 is a Number
5669 1.1 jruoho Store (ObjectType (Local0), Local1)
5670 1.1 jruoho If (LNotEqual (Local1, 1)) // Number is type 1
5671 1.1 jruoho { Return (0x31) } // Local1 indicates Local0 is not a Number
5672 1.1 jruoho
5673 1.1 jruoho If (LNotEqual (Local0, 0)) // Number is type 1
5674 1.1 jruoho { Return (0x32) } // timeout occurred without acquiring signal
5675 1.1 jruoho
5676 1.1 jruoho Store ("Acquire 2nd existing signal PASS", Debug)
5677 1.1 jruoho
5678 1.1 jruoho
5679 1.1 jruoho // ensure WaitOp timeout test cases do not hang
5680 1.1 jruoho if (LEqual (Arg0, 0xFFFF))
5681 1.1 jruoho { Store (0xFFFE, Arg0) }
5682 1.1 jruoho
5683 1.1 jruoho // acquire non-existing signal
5684 1.1 jruoho Store (Wait (EVNT, Arg0), Local0)
5685 1.1 jruoho
5686 1.1 jruoho // validate Local0 is a Number
5687 1.1 jruoho Store (ObjectType (Local0), Local1)
5688 1.1 jruoho If (LNotEqual (Local1, 1)) // Number is type 1
5689 1.1 jruoho { Return (0x41) } // Local1 indicates Local0 is not a Number
5690 1.1 jruoho
5691 1.1 jruoho If (LEqual (Local0, 0)) // Number is type 1
5692 1.1 jruoho { Return (0x42) } // non-existant signal was acquired
5693 1.1 jruoho
5694 1.1 jruoho Store ("Acquire signal timeout PASS", Debug)
5695 1.1 jruoho
5696 1.1 jruoho
5697 1.1 jruoho // prime EVNT with two outstanding signals
5698 1.1 jruoho Signal (EVNT)
5699 1.1 jruoho Signal (EVNT)
5700 1.1 jruoho
5701 1.1 jruoho // reset EVNT to initialization (zero) state
5702 1.1 jruoho Reset (EVNT)
5703 1.1 jruoho
5704 1.1 jruoho // acquire non-existing signal
5705 1.1 jruoho Store (Wait (EVNT, Arg0), Local0)
5706 1.1 jruoho
5707 1.1 jruoho // validate Local0 is a Number
5708 1.1 jruoho Store (ObjectType (Local0), Local1)
5709 1.1 jruoho If (LNotEqual (Local1, 1)) // Number is type 1
5710 1.1 jruoho { Return (0x51) } // Local1 indicates Local0 is not a Number
5711 1.1 jruoho
5712 1.1 jruoho If (LEqual (Local0, 0)) // Number is type 1
5713 1.1 jruoho { Return (0x52) } // non-existant signal was acquired
5714 1.1 jruoho
5715 1.1 jruoho Store ("Reset signal PASS", Debug)
5716 1.1 jruoho
5717 1.1 jruoho
5718 1.1 jruoho // acquire non-existing signal using Lvalue timeout
5719 1.1 jruoho Store (Wait (EVNT, Zero), Local0)
5720 1.1 jruoho
5721 1.1 jruoho // validate Local0 is a Number
5722 1.1 jruoho Store (ObjectType (Local0), Local1)
5723 1.1 jruoho If (LNotEqual (Local1, 1)) // Number is type 1
5724 1.1 jruoho { Return (0x61) } // Local1 indicates Local0 is not a Number
5725 1.1 jruoho
5726 1.1 jruoho If (LEqual (Local0, 0)) // Number is type 1
5727 1.1 jruoho { Return (0x62) } // non-existant signal was acquired
5728 1.1 jruoho
5729 1.1 jruoho Store ("Zero Lvalue PASS", Debug)
5730 1.1 jruoho
5731 1.1 jruoho
5732 1.1 jruoho // acquire non-existing signal using Lvalue timeout
5733 1.1 jruoho Store (Wait (EVNT, One), Local0)
5734 1.1 jruoho
5735 1.1 jruoho // validate Local0 is a Number
5736 1.1 jruoho Store (ObjectType (Local0), Local1)
5737 1.1 jruoho If (LNotEqual (Local1, 1)) // Number is type 1
5738 1.1 jruoho { Return (0x71) } // Local1 indicates Local0 is not a Number
5739 1.1 jruoho
5740 1.1 jruoho If (LEqual (Local0, 0)) // Number is type 1
5741 1.1 jruoho { Return (0x72) } // non-existant signal was acquired
5742 1.1 jruoho
5743 1.1 jruoho Store ("One Lvalue PASS", Debug)
5744 1.1 jruoho
5745 1.1 jruoho // Lvalue Event test cases
5746 1.1 jruoho // ILLEGAL SOURCE OPERAND Store (EVNT, Local2)
5747 1.1 jruoho
5748 1.1 jruoho // validate Local2 is an Event
5749 1.1 jruoho Store (ObjectType (EVNT), Local1)
5750 1.1 jruoho If (LNotEqual (Local1, 7)) // Event is type 7
5751 1.1 jruoho { Return (0x81) } // Local1 indicates Local0 is not a Number
5752 1.1 jruoho
5753 1.1 jruoho // reset EVNT to initialization (zero) state
5754 1.1 jruoho Reset (EVNT)
5755 1.1 jruoho
5756 1.1 jruoho // prime EVNT with two outstanding signals
5757 1.1 jruoho Signal (EVNT)
5758 1.1 jruoho
5759 1.1 jruoho // acquire existing signal
5760 1.1 jruoho Store (Wait (EVNT, Arg0), Local0)
5761 1.1 jruoho
5762 1.1 jruoho // validate Local0 is a Number
5763 1.1 jruoho Store (ObjectType (Local0), Local1)
5764 1.1 jruoho If (LNotEqual (Local1, 1)) // Number is type 1
5765 1.1 jruoho { Return (0x82) } // Local1 indicates Local0 is not a Number
5766 1.1 jruoho
5767 1.1 jruoho If (LNotEqual (Local0, 0)) // Number is type 1
5768 1.1 jruoho { Return (0x83) } // timeout occurred without acquiring signal
5769 1.1 jruoho
5770 1.1 jruoho Store ("Acquire Lvalue existing signal PASS", Debug)
5771 1.1 jruoho
5772 1.1 jruoho
5773 1.1 jruoho // acquire non-existing signal
5774 1.1 jruoho Store (Wait (EVNT, Arg0), Local0)
5775 1.1 jruoho
5776 1.1 jruoho // validate Local0 is a Number
5777 1.1 jruoho Store (ObjectType (Local0), Local1)
5778 1.1 jruoho If (LNotEqual (Local1, 1)) // Number is type 1
5779 1.1 jruoho { Return (0x84) } // Local1 indicates Local0 is not a Number
5780 1.1 jruoho
5781 1.1 jruoho If (LEqual (Local0, 0)) // Number is type 1
5782 1.1 jruoho { Return (0x85) } // non-existant signal was acquired
5783 1.1 jruoho
5784 1.1 jruoho Store ("Acquire Lvalue signal timeout PASS", Debug)
5785 1.1 jruoho
5786 1.1 jruoho
5787 1.1 jruoho Return (0) // success
5788 1.1 jruoho } // TEVN control method to test ResetOp, SignalOp, and WaitOp
5789 1.1 jruoho
5790 1.1 jruoho Method (TEST)
5791 1.1 jruoho {
5792 1.1 jruoho Store ("++++++++ Event Test", Debug)
5793 1.1 jruoho
5794 1.1 jruoho Store (TEVN (100), Local0)
5795 1.1 jruoho
5796 1.1 jruoho Return (Local0)
5797 1.1 jruoho } // TEST
5798 1.1 jruoho } // EVNT
5799 1.1 jruoho
5800 1.1 jruoho //
5801 1.1 jruoho // test SizeOfLv.asl
5802 1.1 jruoho //
5803 1.1 jruoho // Test for SizeOf (Lvalue)
5804 1.1 jruoho //
5805 1.1 jruoho // This next section will contain the packages that the SizeOfOp will be
5806 1.1 jruoho // exercised on. The first one, PKG0, is a regular package of 3 elements.
5807 1.1 jruoho // The 2nd one, PKG1, is a nested package with 3 packages inside it, each
5808 1.1 jruoho // with 3 elements. It is expected that SizeOf operator will return the
5809 1.1 jruoho // same value for these two packages since they both have 3 elements. The
5810 1.1 jruoho // final package, PKG2, has 4 elements and the SizeOf operator is expected
5811 1.1 jruoho // to return different results for this package.
5812 1.1 jruoho
5813 1.1 jruoho Name (PKG0,
5814 1.1 jruoho Package (3)
5815 1.1 jruoho {0x0123, 0x4567, 0x89AB}
5816 1.1 jruoho ) // PKG0
5817 1.1 jruoho
5818 1.1 jruoho Name (PKG1,
5819 1.1 jruoho Package (3)
5820 1.1 jruoho {
5821 1.1 jruoho Package (3) {0x0123, 0x4567, 0x89AB},
5822 1.1 jruoho Package (3) {0xCDEF, 0xFEDC, 0xBA98},
5823 1.1 jruoho Package (3) {0x7654, 0x3210, 0x1234}
5824 1.1 jruoho }
5825 1.1 jruoho ) // PKG1
5826 1.1 jruoho
5827 1.1 jruoho Name (PKG2,
5828 1.1 jruoho Package (4)
5829 1.1 jruoho {0x0123, 0x4567, 0x89AB, 0x8888}
5830 1.1 jruoho ) // PKG2
5831 1.1 jruoho
5832 1.1 jruoho Name (PKG3,
5833 1.1 jruoho Package (5)
5834 1.1 jruoho {0x0123, 0x4567, 0x89AB, 0x8888, 0x7777}
5835 1.1 jruoho ) // PKG3
5836 1.1 jruoho
5837 1.1 jruoho // End Packages **********************************************************
5838 1.1 jruoho
5839 1.1 jruoho // The following section will declare the data strings that will be used to
5840 1.1 jruoho // exercise the SizeOf operator. STR0 and STR1 are expected to be equal,
5841 1.1 jruoho // STR2 is expected to have a different SizeOf value than STR0 and STR1.
5842 1.1 jruoho
5843 1.1 jruoho Name (STR0, "ACPI permits very flexible methods of expressing a system")
5844 1.1 jruoho
5845 1.1 jruoho Name (STR1, "MIKE permits very flexible methods of expressing a system")
5846 1.1 jruoho
5847 1.1 jruoho Name (STR2, "Needless to say, Mike and ACPI are frequently at odds")
5848 1.1 jruoho
5849 1.1 jruoho // This string is being made in case we want to do a SizeOf comparison
5850 1.1 jruoho // between strings and packages or buffers
5851 1.1 jruoho Name (STR3, "12345")
5852 1.1 jruoho
5853 1.1 jruoho // End Strings **********************************************************
5854 1.1 jruoho
5855 1.1 jruoho // The following section will declare the buffers that will be used to exercise
5856 1.1 jruoho // the SizeOf operator.
5857 1.1 jruoho
5858 1.1 jruoho Name (BUF0, Buffer (10) {})
5859 1.1 jruoho Name (BUF1, Buffer (10) {})
5860 1.1 jruoho Name (BUF2, Buffer (8) {})
5861 1.1 jruoho Name (BUF3, Buffer (5) {})
5862 1.1 jruoho
5863 1.1 jruoho // End Buffers **********************************************************
5864 1.1 jruoho Device (SZLV)
5865 1.1 jruoho {
5866 1.1 jruoho
5867 1.1 jruoho Method (CMPR, 2)
5868 1.1 jruoho {
5869 1.1 jruoho // CMPR is passed two arguments. If unequal, return 1 to indicate
5870 1.1 jruoho // that, otherwise return 0 to indicate SizeOf each is equal.
5871 1.1 jruoho
5872 1.1 jruoho Store (0x01, Local0)
5873 1.1 jruoho
5874 1.1 jruoho if (LEqual (SizeOf(Arg0), SizeOf(Arg1)))
5875 1.1 jruoho {
5876 1.1 jruoho Store (0x00, Local0)
5877 1.1 jruoho }
5878 1.1 jruoho
5879 1.1 jruoho return (Local0)
5880 1.1 jruoho } // CMPR
5881 1.1 jruoho
5882 1.1 jruoho
5883 1.1 jruoho Method (TEST)
5884 1.1 jruoho {
5885 1.1 jruoho
5886 1.1 jruoho Store ("++++++++ SizeOfLv Test", Debug)
5887 1.1 jruoho
5888 1.1 jruoho // TBD: SizeOf ("string")
5889 1.1 jruoho // SizeOf (Buffer)
5890 1.1 jruoho // SizeOf (Package)
5891 1.1 jruoho // SizeOf (String)
5892 1.1 jruoho // SizeOf (STR0) -- where Name (STR0,...) -- lot's of cases
5893 1.1 jruoho // buffer, string, package,
5894 1.1 jruoho // SizeOf (METH) -- where METH control method returns
5895 1.1 jruoho // buffer, string, package,
5896 1.1 jruoho
5897 1.1 jruoho // TBD: SLOC [SizeOf (Local0)] -- dup SARG
5898 1.1 jruoho
5899 1.1 jruoho // Compare the elements that we expect to be the same. Exit out with an error
5900 1.1 jruoho // code on the first failure.
5901 1.1 jruoho if (LNotEqual (0x00, CMPR (STR0, STR1)))
5902 1.1 jruoho {
5903 1.1 jruoho Return (0x01)
5904 1.1 jruoho }
5905 1.1 jruoho
5906 1.1 jruoho if (LNotEqual (0x00, CMPR (STR3, BUF3)))
5907 1.1 jruoho {
5908 1.1 jruoho Return (0x02)
5909 1.1 jruoho }
5910 1.1 jruoho
5911 1.1 jruoho if (LNotEqual (0x00, CMPR (STR3, PKG3)))
5912 1.1 jruoho {
5913 1.1 jruoho Return (0x03)
5914 1.1 jruoho }
5915 1.1 jruoho
5916 1.1 jruoho // In the following section, this test will cover the SizeOf
5917 1.1 jruoho // operator for Local values.
5918 1.1 jruoho // In this case, both Local0 and Local1 should have the same Size
5919 1.1 jruoho Store (STR0, Local0)
5920 1.1 jruoho Store (STR1, Local1)
5921 1.1 jruoho
5922 1.1 jruoho if (LNotEqual (SizeOf (Local0), SizeOf (Local1)))
5923 1.1 jruoho {
5924 1.1 jruoho Return (0x04)
5925 1.1 jruoho }
5926 1.1 jruoho
5927 1.1 jruoho // Now create a case where Local0 and Local1 are different
5928 1.1 jruoho Store (STR2, Local1)
5929 1.1 jruoho
5930 1.1 jruoho if (LEqual (SizeOf (Local0), SizeOf (Local1)))
5931 1.1 jruoho {
5932 1.1 jruoho Return (0x05)
5933 1.1 jruoho }
5934 1.1 jruoho
5935 1.1 jruoho // Finally, check for the return of SizeOf for a known Buffer. Just
5936 1.1 jruoho // in case we magically pass above cases due to all Buffers being Zero
5937 1.1 jruoho // bytes in size, or Infinity, etc.
5938 1.1 jruoho if (LNotEqual (0x05, SizeOf (BUF3)))
5939 1.1 jruoho {
5940 1.1 jruoho Return (0x06)
5941 1.1 jruoho }
5942 1.1 jruoho
5943 1.1 jruoho Return (0)
5944 1.1 jruoho } // TEST
5945 1.1 jruoho } // SZLV
5946 1.1 jruoho
5947 1.1 jruoho
5948 1.1 jruoho //
5949 1.1 jruoho // test BytField.asl
5950 1.1 jruoho //
5951 1.1 jruoho // BytField test
5952 1.1 jruoho // This is just a subset of the many RegionOp/Index Field test cases.
5953 1.1 jruoho // Tests access of TBD.
5954 1.1 jruoho //
5955 1.1 jruoho Scope (\_SB) // System Bus
5956 1.1 jruoho { // _SB system bus
5957 1.1 jruoho Device (BYTF)
5958 1.1 jruoho { // Test device name
5959 1.1 jruoho Method (TEST)
5960 1.1 jruoho {
5961 1.1 jruoho Store ("++++++++ BytField Test", Debug)
5962 1.1 jruoho
5963 1.1 jruoho Return (\_TZ.C19B.RSLT)
5964 1.1 jruoho } // TEST
5965 1.1 jruoho } // BYTF
5966 1.1 jruoho
5967 1.1 jruoho Device (C005)
5968 1.1 jruoho { // Device C005
5969 1.1 jruoho Device (C013)
5970 1.1 jruoho { // Device C013
5971 1.1 jruoho } // Device C013
5972 1.1 jruoho } // Device C005
5973 1.1 jruoho
5974 1.1 jruoho Method (C115)
5975 1.1 jruoho { // C115 control method
5976 1.1 jruoho Acquire (\_GL, 0xFFFF)
5977 1.1 jruoho Store (\_SB.C005.C013.C058.C07E, Local0)
5978 1.1 jruoho Release (\_GL)
5979 1.1 jruoho And (Local0, 16, Local0)
5980 1.1 jruoho Store (ShiftRight (Local0, 4, ), Local1)
5981 1.1 jruoho If (LEqual (Local1, 0))
5982 1.1 jruoho { Return (1) }
5983 1.1 jruoho Else
5984 1.1 jruoho { Return (0) }
5985 1.1 jruoho } // C115 control method
5986 1.1 jruoho } // _SB system bus
5987 1.1 jruoho
5988 1.1 jruoho OperationRegion (C018, SystemIO, 0x5028, 4)
5989 1.1 jruoho Field (C018, AnyAcc, NoLock, Preserve)
5990 1.1 jruoho { // Field overlaying C018
5991 1.1 jruoho C019, 32
5992 1.1 jruoho } // Field overlaying C018
5993 1.1 jruoho
5994 1.1 jruoho OperationRegion (C01A, SystemIO, 0x5030, 4)
5995 1.1 jruoho Field (C01A, ByteAcc, NoLock, Preserve)
5996 1.1 jruoho { // Field overlaying C01A
5997 1.1 jruoho C01B, 8,
5998 1.1 jruoho C01C, 8,
5999 1.1 jruoho C01D, 8,
6000 1.1 jruoho C01E, 8
6001 1.1 jruoho } // Field overlaying C01A
6002 1.1 jruoho
6003 1.1 jruoho Mutex (\C01F, 0)
6004 1.1 jruoho Name (\C020, 0)
6005 1.1 jruoho Name (\C021, 0)
6006 1.1 jruoho
6007 1.1 jruoho Method (\C022, 0)
6008 1.1 jruoho { // \C022 control method
6009 1.1 jruoho Acquire (\C01F, 0xFFFF)
6010 1.1 jruoho If (LEqual (\C021, 0))
6011 1.1 jruoho {
6012 1.1 jruoho Store (C019, Local0)
6013 1.1 jruoho And (Local0, 0xFFFEFFFE, Local0)
6014 1.1 jruoho Store (Local0, C019)
6015 1.1 jruoho Increment (\C021)
6016 1.1 jruoho }
6017 1.1 jruoho Release (\C01F)
6018 1.1 jruoho } // \C022 control method
6019 1.1 jruoho
6020 1.1 jruoho Scope (\_SB.C005.C013)
6021 1.1 jruoho { // Scope \_SB.C005.C013
6022 1.1 jruoho Device (C058)
6023 1.1 jruoho { // Device C058
6024 1.1 jruoho Name (_HID, "*PNP0A06")
6025 1.1 jruoho
6026 1.1 jruoho OperationRegion (C059, SystemIO, 0xE0, 2)
6027 1.1 jruoho Field (C059, ByteAcc, NoLock, Preserve)
6028 1.1 jruoho { // Field overlaying C059
6029 1.1 jruoho C05A, 8,
6030 1.1 jruoho C05B, 8
6031 1.1 jruoho } // Field overlaying C059
6032 1.1 jruoho
6033 1.1 jruoho OperationRegion (C05C, SystemIO, 0xE2, 2)
6034 1.1 jruoho Field (C05C, ByteAcc, NoLock, Preserve)
6035 1.1 jruoho { // Field overlaying C05C
6036 1.1 jruoho C05D, 8,
6037 1.1 jruoho C05E, 8
6038 1.1 jruoho } // Field overlaying C05C
6039 1.1 jruoho IndexField (C05D, C05E, ByteAcc, NoLock, Preserve)
6040 1.1 jruoho { // IndexField overlaying C05D/C05E
6041 1.1 jruoho , 0x410, // skip
6042 1.1 jruoho C05F, 8,
6043 1.1 jruoho C060, 8,
6044 1.1 jruoho C061, 8,
6045 1.1 jruoho C062, 8,
6046 1.1 jruoho C063, 8,
6047 1.1 jruoho C064, 8,
6048 1.1 jruoho C065, 8,
6049 1.1 jruoho C066, 8,
6050 1.1 jruoho C067, 8,
6051 1.1 jruoho C068, 8,
6052 1.1 jruoho C069, 8,
6053 1.1 jruoho C06A, 8,
6054 1.1 jruoho C06B, 8,
6055 1.1 jruoho C06C, 8,
6056 1.1 jruoho C06D, 8,
6057 1.1 jruoho C06E, 8,
6058 1.1 jruoho , 0x70, // skip
6059 1.1 jruoho C06F, 8,
6060 1.1 jruoho C070, 8,
6061 1.1 jruoho C071, 8,
6062 1.1 jruoho C072, 8,
6063 1.1 jruoho C073, 8,
6064 1.1 jruoho C074, 8,
6065 1.1 jruoho C075, 8,
6066 1.1 jruoho C076, 8,
6067 1.1 jruoho C077, 8,
6068 1.1 jruoho C078, 8,
6069 1.1 jruoho C079, 8,
6070 1.1 jruoho C07A, 8,
6071 1.1 jruoho C07B, 8,
6072 1.1 jruoho C07C, 8,
6073 1.1 jruoho C07D, 8,
6074 1.1 jruoho C07E, 8
6075 1.1 jruoho } // IndexField overlaying C05D/C05E
6076 1.1 jruoho
6077 1.1 jruoho OperationRegion (C07F, SystemIO, 0xE4, 2)
6078 1.1 jruoho Field (C07F, ByteAcc, NoLock, Preserve)
6079 1.1 jruoho { // Field overlaying C07F
6080 1.1 jruoho C080, 8,
6081 1.1 jruoho C081, 8
6082 1.1 jruoho } // Field overlaying C07F
6083 1.1 jruoho
6084 1.1 jruoho OperationRegion (C082, SystemIO, 0xE0, 1)
6085 1.1 jruoho Field (C082, ByteAcc, NoLock, Preserve)
6086 1.1 jruoho { // Field overlaying C082
6087 1.1 jruoho C083, 8
6088 1.1 jruoho } // Field overlaying C082
6089 1.1 jruoho
6090 1.1 jruoho OperationRegion (C084, SystemIO, 0xFF, 1)
6091 1.1 jruoho Field (C084, ByteAcc, NoLock, Preserve)
6092 1.1 jruoho { // Field overlaying C084
6093 1.1 jruoho C085, 8
6094 1.1 jruoho } // Field overlaying C084
6095 1.1 jruoho
6096 1.1 jruoho OperationRegion (C086, SystemIO, 0xFD, 1)
6097 1.1 jruoho Field (C086, ByteAcc, NoLock, Preserve)
6098 1.1 jruoho { // Field overlaying C086
6099 1.1 jruoho C087, 8
6100 1.1 jruoho } // Field overlaying C086
6101 1.1 jruoho
6102 1.1 jruoho Mutex (C088, 0)
6103 1.1 jruoho Mutex (C089, 0)
6104 1.1 jruoho Mutex (C08A, 0)
6105 1.1 jruoho Mutex (C08B, 0)
6106 1.1 jruoho Mutex (C08C, 0)
6107 1.1 jruoho Mutex (C08D, 0)
6108 1.1 jruoho
6109 1.1 jruoho Name (C08E, 0xFFFFFFFD)
6110 1.1 jruoho Name (C08F, 0)
6111 1.1 jruoho
6112 1.1 jruoho Method (C0AA, 4)
6113 1.1 jruoho { // C0AA control method
6114 1.1 jruoho Store (Buffer (4) {}, Local7)
6115 1.1 jruoho CreateByteField (Local7, 0, C0AB)
6116 1.1 jruoho CreateByteField (Local7, 1, C0AC)
6117 1.1 jruoho CreateByteField (Local7, 2, C0AD)
6118 1.1 jruoho CreateByteField (Local7, 3, C0AE)
6119 1.1 jruoho Acquire (^C08B, 0xFFFF)
6120 1.1 jruoho Acquire (\_GL, 0xFFFF)
6121 1.1 jruoho \C022 ()
6122 1.1 jruoho Store (1, \_SB.C005.C013.C058.C06B)
6123 1.1 jruoho While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
6124 1.1 jruoho { Stall (100) }
6125 1.1 jruoho Store (Arg3, \_SB.C005.C013.C058.C06E)
6126 1.1 jruoho Store (Arg2, \_SB.C005.C013.C058.C06D)
6127 1.1 jruoho Store (Arg1, \_SB.C005.C013.C058.C06C)
6128 1.1 jruoho Store (Arg0, \_SB.C005.C013.C058.C06B)
6129 1.1 jruoho While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
6130 1.1 jruoho { Stall (100) }
6131 1.1 jruoho Store (\_SB.C005.C013.C058.C06E, C0AB)
6132 1.1 jruoho Store (\_SB.C005.C013.C058.C06D, C0AC)
6133 1.1 jruoho Store (\_SB.C005.C013.C058.C06C, C0AD)
6134 1.1 jruoho Store (\_SB.C005.C013.C058.C06B, C0AE)
6135 1.1 jruoho If (LNot (LEqual (Arg0, 23)))
6136 1.1 jruoho {
6137 1.1 jruoho Store (2, \_SB.C005.C013.C058.C06B)
6138 1.1 jruoho Stall (100)
6139 1.1 jruoho }
6140 1.1 jruoho Release (\_GL)
6141 1.1 jruoho Release (^C08B)
6142 1.1 jruoho Return (Local7)
6143 1.1 jruoho } // C0AA control method
6144 1.1 jruoho } // Device C058
6145 1.1 jruoho } // Scope \_SB.C005.C013
6146 1.1 jruoho
6147 1.1 jruoho Scope (\_TZ)
6148 1.1 jruoho { // \_TZ thermal zone scope
6149 1.1 jruoho Name (C18B, Package (2)
6150 1.1 jruoho {
6151 1.1 jruoho Package (2)
6152 1.1 jruoho {
6153 1.1 jruoho Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
6154 1.1 jruoho Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
6155 1.1 jruoho },
6156 1.1 jruoho Package (2)
6157 1.1 jruoho {
6158 1.1 jruoho Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
6159 1.1 jruoho Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
6160 1.1 jruoho }
6161 1.1 jruoho }) // C18B
6162 1.1 jruoho
6163 1.1 jruoho Name (C18C, Package (2)
6164 1.1 jruoho {
6165 1.1 jruoho Package (2)
6166 1.1 jruoho {
6167 1.1 jruoho Package (3) {0x64, 0x4B, 0x32},
6168 1.1 jruoho Package (3) {0x64, 0x4B, 0x32}
6169 1.1 jruoho }
6170 1.1 jruoho }) // C81C
6171 1.1 jruoho
6172 1.1 jruoho Name (C18D, 0)
6173 1.1 jruoho Name (C18E, 0)
6174 1.1 jruoho Name (C18F, 0)
6175 1.1 jruoho Name (C190, 0)
6176 1.1 jruoho Name (C191, 3)
6177 1.1 jruoho Name (C192, 0)
6178 1.1 jruoho Name (C193, 1)
6179 1.1 jruoho Name (C194, 2)
6180 1.1 jruoho Mutex (C195, 0)
6181 1.1 jruoho Name (C196, 1)
6182 1.1 jruoho Name (C197, 0x0B9C)
6183 1.1 jruoho Name (C198, 0x0B9C)
6184 1.1 jruoho Name (C199, 0xFFFFFFFD)
6185 1.1 jruoho Name (C19A, 0)
6186 1.1 jruoho
6187 1.1 jruoho Device (C19B)
6188 1.1 jruoho { // Device C19B
6189 1.1 jruoho Name (RSLT, 0) // default to zero
6190 1.1 jruoho
6191 1.1 jruoho Method (XINI)
6192 1.1 jruoho { // _INI control method (Uses Global Lock -- can't run under AcpiExec)
6193 1.1 jruoho Store (\_SB.C115, C19A)
6194 1.1 jruoho \_TZ.C19C._SCP (0)
6195 1.1 jruoho Subtract (0x0EB2, 0x0AAC, Local1) // Local1 = AACh - EB2h
6196 1.1 jruoho Divide (Local1, 10, Local0, Local2) // Local0 = Local1 / 10
6197 1.1 jruoho // Local2 = Local1 % 10
6198 1.1 jruoho \_SB.C005.C013.C058.C0AA (14, Local2, 0, 0)
6199 1.1 jruoho Store
6200 1.1 jruoho (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 0, )), C18D)
6201 1.1 jruoho Store
6202 1.1 jruoho (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 1, )), C18E)
6203 1.1 jruoho Store
6204 1.1 jruoho (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 2, )), C18F)
6205 1.1 jruoho
6206 1.1 jruoho Store (1, RSLT) // set RSLT to 1 if _INI control method completes
6207 1.1 jruoho } // _INI control method
6208 1.1 jruoho
6209 1.1 jruoho // PowerResource (C19D) {...}
6210 1.1 jruoho } // Device C19B
6211 1.1 jruoho
6212 1.1 jruoho ThermalZone (C19C)
6213 1.1 jruoho {
6214 1.1 jruoho Method (_SCP, 1)
6215 1.1 jruoho { // _SCP control method
6216 1.1 jruoho Store (Arg0, Local0)
6217 1.1 jruoho If (LEqual (Local0, 0))
6218 1.1 jruoho {
6219 1.1 jruoho Store (0, \_TZ.C192)
6220 1.1 jruoho Store (1, \_TZ.C193)
6221 1.1 jruoho Store (2, \_TZ.C194)
6222 1.1 jruoho Store (3, \_TZ.C191)
6223 1.1 jruoho }
6224 1.1 jruoho Else
6225 1.1 jruoho {
6226 1.1 jruoho Store (0, \_TZ.C191)
6227 1.1 jruoho Store (1, \_TZ.C192)
6228 1.1 jruoho Store (2, \_TZ.C193)
6229 1.1 jruoho Store (3, \_TZ.C194)
6230 1.1 jruoho }
6231 1.1 jruoho } // _SCP control method
6232 1.1 jruoho } // ThermalZone C19C
6233 1.1 jruoho } // \_TZ thermal zone scope
6234 1.1 jruoho
6235 1.1 jruoho
6236 1.1 jruoho //
6237 1.1 jruoho // test DwrdFld.asl
6238 1.1 jruoho //
6239 1.1 jruoho Name (BUFR, buffer(10) {0,0,0,0,0,0,0,0,0,0} )
6240 1.1 jruoho
6241 1.1 jruoho Device (DWDF)
6242 1.1 jruoho {
6243 1.1 jruoho Method (TEST)
6244 1.1 jruoho {
6245 1.1 jruoho Store ("++++++++ DwrdFld Test", Debug)
6246 1.1 jruoho
6247 1.1 jruoho CreateByteField (BUFR, 0, BYTE)
6248 1.1 jruoho Store (0xAA, BYTE)
6249 1.1 jruoho
6250 1.1 jruoho CreateWordField (BUFR, 1, WORD)
6251 1.1 jruoho Store (0xBBCC, WORD)
6252 1.1 jruoho
6253 1.1 jruoho CreateDWordField (BUFR, 3, DWRD)
6254 1.1 jruoho Store (0xDDEEFF00, DWRD)
6255 1.1 jruoho
6256 1.1 jruoho CreateByteField (BUFR, 7, BYT2)
6257 1.1 jruoho Store (0x11, BYT2)
6258 1.1 jruoho
6259 1.1 jruoho CreateWordField (BUFR, 8, WRD2)
6260 1.1 jruoho Store (0x2233, WRD2)
6261 1.1 jruoho
6262 1.1 jruoho Return (0)
6263 1.1 jruoho
6264 1.1 jruoho } // End Method TEST
6265 1.1 jruoho } // Device DWDF
6266 1.1 jruoho
6267 1.1 jruoho //
6268 1.1 jruoho // test DivAddx.asl
6269 1.1 jruoho //
6270 1.1 jruoho Name (B1LO, 0xAA)
6271 1.1 jruoho Name (B1HI, 0xBB)
6272 1.1 jruoho
6273 1.1 jruoho Method (MKW_, 2)
6274 1.1 jruoho { // This control method will take two bytes and make them into a WORD
6275 1.1 jruoho
6276 1.1 jruoho Multiply (B1HI, 256, Local0) // Make high byte.....high
6277 1.1 jruoho Or (Local0, B1LO, Local0) // OR in the low byte
6278 1.1 jruoho Return (Local0) // Return the WORD
6279 1.1 jruoho
6280 1.1 jruoho } // MKW_
6281 1.1 jruoho
6282 1.1 jruoho Device (DVAX)
6283 1.1 jruoho {
6284 1.1 jruoho Method (TEST)
6285 1.1 jruoho {
6286 1.1 jruoho
6287 1.1 jruoho Store ("++++++++ DivAddx Test", Debug)
6288 1.1 jruoho
6289 1.1 jruoho Store (25, B1LO)
6290 1.1 jruoho Store (0, B1HI)
6291 1.1 jruoho
6292 1.1 jruoho // We'll multiply 25 * 3 to get 75, add 99 to it then divide
6293 1.1 jruoho // by 100. We expect to get 74 for the remainder and 1 for
6294 1.1 jruoho // the quotient.
6295 1.1 jruoho Divide(
6296 1.1 jruoho Add (Multiply (3, MKW_ (B1LO, B1HI)), 0x63),
6297 1.1 jruoho // Dividend,
6298 1.1 jruoho 100, // Divisor
6299 1.1 jruoho Local4, // Remainder
6300 1.1 jruoho Local2) // Quotient
6301 1.1 jruoho
6302 1.1 jruoho If (LAnd (LEqual (74, Local4), LEqual (1, Local2)))
6303 1.1 jruoho { // Indicate Pass
6304 1.1 jruoho Store (0x00, Local0)
6305 1.1 jruoho }
6306 1.1 jruoho
6307 1.1 jruoho Else
6308 1.1 jruoho { // Indicate Fail
6309 1.1 jruoho Store (0x01, Local0)
6310 1.1 jruoho }
6311 1.1 jruoho
6312 1.1 jruoho Return (Local0)
6313 1.1 jruoho } // End Method TEST
6314 1.1 jruoho } // Device DVAX
6315 1.1 jruoho
6316 1.1 jruoho //
6317 1.1 jruoho // test IndexFld.asl (IndexOp6.asl)
6318 1.1 jruoho //
6319 1.1 jruoho // IndexFld test
6320 1.1 jruoho // This is just a subset of the many RegionOp/Index Field test cases.
6321 1.1 jruoho // Tests index field element AccessAs macro.
6322 1.1 jruoho // Also tests name resolution of index field elements with same names
6323 1.1 jruoho // but different namespace scopes.
6324 1.1 jruoho //
6325 1.1 jruoho Device (IDX6)
6326 1.1 jruoho { // Test device name
6327 1.1 jruoho
6328 1.1 jruoho OperationRegion (SIO, SystemIO, 0x100, 2)
6329 1.1 jruoho Field (SIO, ByteAcc, NoLock, Preserve)
6330 1.1 jruoho {
6331 1.1 jruoho INDX, 8,
6332 1.1 jruoho DATA, 8
6333 1.1 jruoho }
6334 1.1 jruoho IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
6335 1.1 jruoho {
6336 1.1 jruoho AccessAs (ByteAcc, 0),
6337 1.1 jruoho IFE0, 8,
6338 1.1 jruoho IFE1, 8,
6339 1.1 jruoho IFE2, 8,
6340 1.1 jruoho IFE3, 8,
6341 1.1 jruoho IFE4, 8,
6342 1.1 jruoho IFE5, 8,
6343 1.1 jruoho IFE6, 8,
6344 1.1 jruoho IFE7, 8,
6345 1.1 jruoho IFE8, 8,
6346 1.1 jruoho IFE9, 8,
6347 1.1 jruoho }
6348 1.1 jruoho
6349 1.1 jruoho Device (TST_)
6350 1.1 jruoho { // TST_: provides a different namespace scope for IFE0 and IFE1
6351 1.1 jruoho OperationRegion (SIO2, SystemIO, 0x100, 2)
6352 1.1 jruoho Field (SIO2, ByteAcc, NoLock, Preserve)
6353 1.1 jruoho {
6354 1.1 jruoho IND2, 8,
6355 1.1 jruoho DAT2, 8
6356 1.1 jruoho }
6357 1.1 jruoho IndexField (IND2, DAT2, AnyAcc, NoLock, WriteAsOnes)
6358 1.1 jruoho {
6359 1.1 jruoho IFE0, 8, // duplicate IndexField name with different scope
6360 1.1 jruoho IFE1, 8
6361 1.1 jruoho }
6362 1.1 jruoho } // TST_: provides a different namespace scope for IFE0 and IFE1
6363 1.1 jruoho
6364 1.1 jruoho Method (TEST)
6365 1.1 jruoho {
6366 1.1 jruoho Store ("++++++++ IndexOp6 Test", Debug)
6367 1.1 jruoho
6368 1.1 jruoho Store (IFE0, Local0)
6369 1.1 jruoho Store (IFE1, Local1)
6370 1.1 jruoho Store (IFE2, Local2)
6371 1.1 jruoho
6372 1.1 jruoho // validate name resolution of IndexFields with different scopes
6373 1.1 jruoho Store (\IDX6.IFE0, Local3)
6374 1.1 jruoho Store (\IDX6.IFE1, Local4)
6375 1.1 jruoho // verioading of namespace can resolve following names
6376 1.1 jruoho Store (\IDX6.TST_.IFE0, Local5)
6377 1.1 jruoho Store (\IDX6.TST_.IFE1, Local6)
6378 1.1 jruoho
6379 1.1 jruoho Return (0)
6380 1.1 jruoho } // TEST
6381 1.1 jruoho } // IDX6
6382 1.1 jruoho
6383 1.1 jruoho //
6384 1.1 jruoho // test IndexOp5.asl
6385 1.1 jruoho //
6386 1.1 jruoho // IndexOp5 test
6387 1.1 jruoho // This is just a subset of the many RegionOp/Index Field test cases.
6388 1.1 jruoho // Tests copying string into buffer then performing IndexOp on result.
6389 1.1 jruoho //
6390 1.1 jruoho Device (IDX5)
6391 1.1 jruoho { // Test device name
6392 1.1 jruoho
6393 1.1 jruoho Name (OSFL, 0) // 0 == Windows 98, 1 == Windows NT
6394 1.1 jruoho
6395 1.1 jruoho // MCTH is a control method to compare two strings. It returns
6396 1.1 jruoho // zero if the strings mismatch, or 1 if the strings match.
6397 1.1 jruoho // This exercises the test case of copying a string into a buffer
6398 1.1 jruoho // and performing an IndexOp on the resulting buffer.
6399 1.1.1.3 christos Method (MCTH, 2, Serialized) // Control Method to compare two strings
6400 1.1 jruoho { // MCTH: Control Method to compare two strings
6401 1.1 jruoho // Arg0: first string to compare
6402 1.1 jruoho // Arg1: second string to compare
6403 1.1 jruoho // Return: zero if strings mismatch, 1 if strings match
6404 1.1 jruoho
6405 1.1 jruoho // check if first string's length is less than second string's length
6406 1.1 jruoho If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
6407 1.1 jruoho { Return (0) }
6408 1.1 jruoho
6409 1.1 jruoho // increment length to include NULL termination character
6410 1.1 jruoho Add (SizeOf (Arg0), 1, Local0) // Local0 = strlen(Arg0) + 1
6411 1.1 jruoho
6412 1.1 jruoho // create two buffers of size Local0 [strlen(Arg0)+1]
6413 1.1 jruoho Name (BUF0, Buffer (Local0) {})
6414 1.1 jruoho Name (BUF1, Buffer (Local0) {})
6415 1.1 jruoho
6416 1.1 jruoho // copy strings into buffers
6417 1.1 jruoho Store (Arg0, BUF0)
6418 1.1 jruoho Store (Arg1, BUF1)
6419 1.1 jruoho
6420 1.1 jruoho // validate BUF0 and BUF1 are still buffers
6421 1.1 jruoho Store (ObjectType (BUF0), Local1)
6422 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer is type 3
6423 1.1 jruoho { Return (20) }
6424 1.1 jruoho Store (ObjectType (BUF1), Local1)
6425 1.1 jruoho If (LNotEqual (Local1, 3)) // Buffer is type 3
6426 1.1 jruoho { Return (21) }
6427 1.1 jruoho
6428 1.1 jruoho // Decrement because the Index base below is zero based
6429 1.1 jruoho // while Local0 length is one based.
6430 1.1 jruoho Decrement (Local0)
6431 1.1 jruoho
6432 1.1 jruoho While (Local0)
6433 1.1 jruoho { // loop through all BUF0 buffer elements
6434 1.1 jruoho Decrement (Local0)
6435 1.1 jruoho
6436 1.1 jruoho // check if BUF0[n] == BUF1[n]
6437 1.1 jruoho If (LEqual (DerefOf (Index (BUF0, Local0, )),
6438 1.1 jruoho DerefOf (Index (BUF1, Local0, ))))
6439 1.1 jruoho { } // this is how the code was really implemented
6440 1.1 jruoho Else
6441 1.1 jruoho { Return (Zero) }
6442 1.1 jruoho } // loop through all BUF0 buffer elements
6443 1.1 jruoho
6444 1.1 jruoho Return (One) // strings / buffers match
6445 1.1 jruoho } // MCTH: Control Method to compare two strings
6446 1.1 jruoho
6447 1.1 jruoho
6448 1.1 jruoho Method (TEST)
6449 1.1 jruoho {
6450 1.1 jruoho Store ("++++++++ IndexOp5 Test", Debug)
6451 1.1 jruoho
6452 1.1 jruoho If (MCTH (\_OS, "Microsoft Windows NT"))
6453 1.1 jruoho { Store (1, OSFL) }
6454 1.1 jruoho
6455 1.1 jruoho If (LNotEqual (OSFL, 1))
6456 1.1 jruoho { Return (11) }
6457 1.1 jruoho
6458 1.1 jruoho Return (0)
6459 1.1 jruoho } // TEST
6460 1.1 jruoho } // IDX5
6461 1.1 jruoho
6462 1.1 jruoho //
6463 1.1 jruoho // test IndexOp.asl
6464 1.1 jruoho //
6465 1.1 jruoho Scope (\_SB) // System Bus
6466 1.1 jruoho { // _SB system bus
6467 1.1 jruoho
6468 1.1 jruoho Method (C097)
6469 1.1 jruoho { Return (1) }
6470 1.1 jruoho
6471 1.1 jruoho Device (PCI2)
6472 1.1 jruoho { // Root PCI Bus
6473 1.1 jruoho Name (_HID, EISAID("PNP0A03"))
6474 1.1 jruoho Name (_ADR, 0x00000000)
6475 1.1 jruoho Name (_CRS, Buffer(26) {"\_SB_.PCI2._CRS..........."})
6476 1.1 jruoho Method (_STA) {Return (0x0F)}
6477 1.1 jruoho
6478 1.1 jruoho Device (ISA)
6479 1.1 jruoho { // ISA bridge
6480 1.1 jruoho Name (_ADR, 0x00030000) // ISA bus ID
6481 1.1 jruoho
6482 1.1 jruoho Device (EC0)
6483 1.1 jruoho { // Embedded Controller
6484 1.1 jruoho Name (_GPE, 0) // EC use GPE0
6485 1.1 jruoho Name (_ADR, 0x0030000) // PCI address
6486 1.1 jruoho
6487 1.1 jruoho Method (_STA,0) // EC Status
6488 1.1 jruoho { Return(0xF) } // EC is functioning
6489 1.1 jruoho
6490 1.1 jruoho Name (_CRS, ResourceTemplate()
6491 1.1 jruoho {
6492 1.1 jruoho IO (Decode16, 0x62, 0x62, 1, 1)
6493 1.1 jruoho IO (Decode16, 0x66, 0x66, 1, 1)
6494 1.1 jruoho }
6495 1.1 jruoho )
6496 1.1 jruoho
6497 1.1 jruoho // create EC's region and field
6498 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
6499 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
6500 1.1 jruoho {
6501 1.1 jruoho // AC information
6502 1.1 jruoho ADP, 1, // AC Adapter 1:On-line, 0:Off-line
6503 1.1 jruoho AFLT, 1, // AC Adapter Fault 1:Fault 0:Normal
6504 1.1 jruoho BAT0, 1, // BAT0 1:present, 0:not present
6505 1.1 jruoho , 1, // reserved
6506 1.1 jruoho , 28, // filler to force DWORD alignment
6507 1.1 jruoho
6508 1.1 jruoho // CMBatt information
6509 1.1 jruoho BPU0, 32, // Power Unit
6510 1.1 jruoho BDC0, 32, // Designed Capacity
6511 1.1 jruoho BFC0, 32, // Last Full Charge Capacity
6512 1.1 jruoho BTC0, 32, // Battery Technology
6513 1.1 jruoho BDV0, 32, // Design Voltage
6514 1.1 jruoho BST0, 32, // Battery State
6515 1.1 jruoho BPR0, 32, // Battery Present Rate
6516 1.1 jruoho // (Designed Capacity)x(%)/{(h)x100}
6517 1.1 jruoho BRC0, 32, // Battery Remaining Capacity
6518 1.1 jruoho // (Designed Capacity)(%)^100
6519 1.1 jruoho BPV0, 32, // Battery Present Voltage
6520 1.1 jruoho BTP0, 32, // Trip Point
6521 1.1 jruoho BCW0, 32, // Design capacity of Warning
6522 1.1 jruoho BCL0, 32, // Design capacity of Low
6523 1.1 jruoho BCG0, 32, // capacity granularity 1
6524 1.1 jruoho BG20, 32, // capacity granularity 2
6525 1.1 jruoho BMO0, 32, // Battery model number field
6526 1.1 jruoho BIF0, 32, // OEM Information(00h)
6527 1.1 jruoho BSN0, 32, // Battery Serial Number
6528 1.1 jruoho BTY0, 32, // Battery Type (e.g., "Li-Ion")
6529 1.1 jruoho BTY1, 32 // Battery Type (e.g., "Li-Ion")
6530 1.1 jruoho } // Field
6531 1.1 jruoho } // EC0: Embedded Controller
6532 1.1 jruoho } // ISA bridge
6533 1.1 jruoho } // PCI2 Root PCI Bus
6534 1.1 jruoho
6535 1.1 jruoho Device (IDX0)
6536 1.1 jruoho { // Test device name
6537 1.1 jruoho Name (_HID, EISAID ("PNP0C0A")) // Control Method Battey ID
6538 1.1 jruoho Name (_PCL, Package() {\_SB})
6539 1.1 jruoho Method (_STA)
6540 1.1 jruoho {
6541 1.1 jruoho // _STA bits 0-3 indicate existence of battery slot
6542 1.1 jruoho // _STA bit 4 indicates battery (not) present
6543 1.1 jruoho If (\_SB.PCI2.ISA.EC0.BAT0)
6544 1.1 jruoho { Return (0x1F) } // Battery present
6545 1.1 jruoho else
6546 1.1 jruoho { Return (0x0F) } // Battery not present
6547 1.1 jruoho } // _STA
6548 1.1 jruoho
6549 1.1.1.3 christos Method (_BIF,, Serialized)
6550 1.1 jruoho {
6551 1.1 jruoho Name (BUFR, Package(13) {})
6552 1.1 jruoho Store (\_SB.PCI2.ISA.EC0.BPU0, Index (BUFR,0)) // Power Unit
6553 1.1 jruoho Store (\_SB.PCI2.ISA.EC0.BDC0, Index (BUFR,1)) // Designed Capacity
6554 1.1 jruoho Store (\_SB.PCI2.ISA.EC0.BFC0, Index (BUFR,2)) // Last Full Charge Capa.
6555 1.1 jruoho Store (\_SB.PCI2.ISA.EC0.BTC0, Index (BUFR,3)) // Battery Technology
6556 1.1 jruoho Store (\_SB.PCI2.ISA.EC0.BDV0, Index (BUFR,4)) // Designed Voltage
6557 1.1 jruoho Store (\_SB.PCI2.ISA.EC0.BCW0, Index (BUFR,5)) // Designed warning level
6558 1.1 jruoho Store (\_SB.PCI2.ISA.EC0.BCL0, Index (BUFR,6)) // Designed Low level
6559 1.1 jruoho Store (\_SB.PCI2.ISA.EC0.BCG0, Index (BUFR,7)) // Capacity granularity 1
6560 1.1 jruoho Store (\_SB.PCI2.ISA.EC0.BG20, Index (BUFR,8)) // Capacity granularity 2
6561 1.1 jruoho
6562 1.1 jruoho Store ("", Index (BUFR,9)) // Model Number
6563 1.1 jruoho
6564 1.1 jruoho Store ("", Index (BUFR,10)) // Serial Number
6565 1.1 jruoho
6566 1.1 jruoho Store ("LiOn", Index (BUFR,11)) // Battery Type
6567 1.1 jruoho
6568 1.1 jruoho Store ("Chicony", Index (BUFR,12)) // OEM Information
6569 1.1 jruoho
6570 1.1 jruoho Return (BUFR)
6571 1.1 jruoho } // _BIF
6572 1.1 jruoho
6573 1.1.1.3 christos Method (_BST,, Serialized)
6574 1.1 jruoho {
6575 1.1 jruoho Name (BUFR, Package(4) {1, 0x100, 0x76543210, 0x180})
6576 1.1 jruoho Return (BUFR)
6577 1.1 jruoho } // _BST
6578 1.1 jruoho
6579 1.1 jruoho Method (_BTP,1)
6580 1.1 jruoho {
6581 1.1 jruoho Store (arg0, \_SB.PCI2.ISA.EC0.BTP0) // Set Battery Trip point
6582 1.1 jruoho }
6583 1.1 jruoho
6584 1.1.1.3 christos Method (TEST,, Serialized)
6585 1.1 jruoho {
6586 1.1 jruoho
6587 1.1 jruoho Store ("++++++++ IndexOp Test", Debug)
6588 1.1 jruoho
6589 1.1 jruoho // test storing into uninitialized package elements
6590 1.1 jruoho Name (PBUF, Package(4) {}) // leave unitialized
6591 1.1 jruoho Store (0x01234567, Index (PBUF,0))
6592 1.1 jruoho Store (0x89ABCDEF, Index (PBUF,1))
6593 1.1 jruoho Store (0xFEDCBA98, Index (PBUF,2))
6594 1.1 jruoho Store (0x76543210, Index (PBUF,3))
6595 1.1 jruoho
6596 1.1 jruoho // verify values stored into uninitialized package elements
6597 1.1 jruoho If (LNotEqual (DerefOf (Index (PBUF,0)), 0x01234567))
6598 1.1 jruoho { Return (0x10) }
6599 1.1 jruoho
6600 1.1 jruoho If (LNotEqual (DerefOf (Index (PBUF,1)), 0x89ABCDEF))
6601 1.1 jruoho { Return (0x11) }
6602 1.1 jruoho
6603 1.1 jruoho If (LNotEqual (DerefOf (Index (PBUF,2)), 0xFEDCBA98))
6604 1.1 jruoho { Return (0x12) }
6605 1.1 jruoho
6606 1.1 jruoho If (LNotEqual (DerefOf (Index (PBUF,3)), 0x76543210))
6607 1.1 jruoho { Return (0x13) }
6608 1.1 jruoho
6609 1.1 jruoho
6610 1.1 jruoho // store _BIF package return value into Local0
6611 1.1 jruoho Store (_BIF, Local0)
6612 1.1 jruoho
6613 1.1 jruoho // save Local0 object type value into Local1
6614 1.1 jruoho Store (ObjectType (Local0), Local1)
6615 1.1 jruoho
6616 1.1 jruoho // validate Local0 is a Package
6617 1.1 jruoho If (LNotEqual (Local1, 4)) // Package type is 4
6618 1.1 jruoho { Return (0x21) } // failure
6619 1.1 jruoho
6620 1.1 jruoho
6621 1.1 jruoho // test storing into buffer field elements
6622 1.1 jruoho Name (BUFR, Buffer(16)
6623 1.1 jruoho { // initial values
6624 1.1 jruoho 00, 00, 00, 00, 00, 00, 00, 00,
6625 1.1 jruoho 00, 00, 00, 00, 00, 00, 00, 00,
6626 1.1 jruoho }
6627 1.1 jruoho ) // BUFR
6628 1.1 jruoho // test storing into buffer field elements
6629 1.1 jruoho Store (0x01234567, Index (BUFR,0)) // should only store 0x67
6630 1.1 jruoho Store (0x89ABCDEF, Index (BUFR,4)) // should only store 0xEF
6631 1.1 jruoho Store (0xFEDCBA98, Index (BUFR,8)) // should only store 0x98
6632 1.1 jruoho Store (0x76543210, Index (BUFR,12)) // should only store 0x10
6633 1.1 jruoho
6634 1.1 jruoho // verify storing into buffer field elements
6635 1.1 jruoho If (LNotEqual (DerefOf (Index (BUFR,0)), 0x67))
6636 1.1 jruoho { Return (0x30) }
6637 1.1 jruoho
6638 1.1 jruoho If (LNotEqual (DerefOf (Index (BUFR,1)), 0))
6639 1.1 jruoho { Return (0x31) }
6640 1.1 jruoho
6641 1.1 jruoho If (LNotEqual (DerefOf (Index (BUFR,4)), 0xEF))
6642 1.1 jruoho { Return (0x34) }
6643 1.1 jruoho
6644 1.1 jruoho If (LNotEqual (DerefOf (Index (BUFR,8)), 0x98))
6645 1.1 jruoho { Return (0x38) }
6646 1.1 jruoho
6647 1.1 jruoho If (LNotEqual (DerefOf (Index (BUFR,12)), 0x10))
6648 1.1 jruoho { Return (0x3C) }
6649 1.1 jruoho
6650 1.1 jruoho
6651 1.1 jruoho Return (0) // pass
6652 1.1 jruoho } // TEST
6653 1.1 jruoho } // IDX0
6654 1.1 jruoho } // _SB system bus
6655 1.1 jruoho
6656 1.1 jruoho //
6657 1.1 jruoho // test BitIndex.asl
6658 1.1 jruoho //
6659 1.1 jruoho // BitIndex test
6660 1.1 jruoho // This is a test case for accessing fields defined as single bits in
6661 1.1 jruoho // memory. This is done by creating two index fields that overlay the
6662 1.1 jruoho // same DWORD in memory. One field accesses the DWORD as a DWORD, the
6663 1.1 jruoho // other accesses individual bits of the same DWORD field in memory.
6664 1.1 jruoho //
6665 1.1 jruoho Scope (\_SB) // System Bus
6666 1.1 jruoho { // _SB system bus
6667 1.1 jruoho OperationRegion (RAM, SystemMemory, 0x800000, 0x100)
6668 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
6669 1.1 jruoho { // Any access
6670 1.1 jruoho TREE, 3,
6671 1.1 jruoho WRD0, 16,
6672 1.1 jruoho WRD1, 16,
6673 1.1 jruoho WRD2, 16,
6674 1.1 jruoho WRD3, 16,
6675 1.1 jruoho WRD4, 16,
6676 1.1 jruoho DWRD, 32, // DWORD field
6677 1.1 jruoho }
6678 1.1 jruoho Field (RAM, AnyAcc, NoLock, Preserve)
6679 1.1 jruoho { // Any access
6680 1.1 jruoho THRE, 3,
6681 1.1 jruoho WD00, 16,
6682 1.1 jruoho WD01, 16,
6683 1.1 jruoho WD02, 16,
6684 1.1 jruoho WD03, 16,
6685 1.1 jruoho WD04, 16,
6686 1.1 jruoho BYT0, 8, // Start off with a BYTE
6687 1.1 jruoho BIT0, 1, // single-bit field
6688 1.1 jruoho BIT1, 1, // single-bit field
6689 1.1 jruoho BIT2, 1, // single-bit field
6690 1.1 jruoho BIT3, 1, // single-bit field
6691 1.1 jruoho BIT4, 1, // single-bit field
6692 1.1 jruoho BIT5, 1, // single-bit field
6693 1.1 jruoho BIT6, 1, // single-bit field
6694 1.1 jruoho BIT7, 1, // single-bit field
6695 1.1 jruoho BIT8, 1, // single-bit field
6696 1.1 jruoho BIT9, 1, // single-bit field
6697 1.1 jruoho BITA, 1, // single-bit field
6698 1.1 jruoho BITB, 1, // single-bit field
6699 1.1 jruoho BITC, 1, // single-bit field
6700 1.1 jruoho BITD, 1, // single-bit field
6701 1.1 jruoho BITE, 1, // single-bit field
6702 1.1 jruoho BITF, 1, // single-bit field
6703 1.1 jruoho BYTZ, 8, // End with a BYTE for a total of 32 bits
6704 1.1 jruoho }
6705 1.1 jruoho
6706 1.1 jruoho Device (BITI)
6707 1.1 jruoho { // Test device name
6708 1.1 jruoho
6709 1.1 jruoho Method (MBIT) // Test single bit memory accesses
6710 1.1 jruoho {
6711 1.1 jruoho
6712 1.1 jruoho If (LNotEqual (DWRD, 0x00))
6713 1.1 jruoho {
6714 1.1 jruoho Store (0xFF00, Local0)
6715 1.1 jruoho }
6716 1.1 jruoho Else
6717 1.1 jruoho {
6718 1.1 jruoho // Prime Local0 with 0...assume passing condition
6719 1.1 jruoho Store (0, Local0)
6720 1.1 jruoho
6721 1.1 jruoho // set memory contents to known values using DWORD field
6722 1.1 jruoho Store (0x5A5A5A5A, DWRD)
6723 1.1 jruoho
6724 1.1 jruoho // Given the value programmed into DWRD, only the odd bits
6725 1.1 jruoho // of the lower nibble should be set. BIT1, BIT3 should be set.
6726 1.1 jruoho // BIT0 and BIT2 should be clear
6727 1.1 jruoho
6728 1.1 jruoho If (BIT0)
6729 1.1 jruoho {
6730 1.1 jruoho Or (Local0, 0x01, Local0)
6731 1.1 jruoho }
6732 1.1 jruoho
6733 1.1 jruoho If (LNot (BIT1))
6734 1.1 jruoho {
6735 1.1 jruoho Or (Local0, 0x02, Local0)
6736 1.1 jruoho }
6737 1.1 jruoho
6738 1.1 jruoho If (BIT2)
6739 1.1 jruoho {
6740 1.1 jruoho Or (Local0, 0x04, Local0)
6741 1.1 jruoho }
6742 1.1 jruoho
6743 1.1 jruoho If (LNot (BIT3))
6744 1.1 jruoho {
6745 1.1 jruoho Or (Local0, 0x08, Local0)
6746 1.1 jruoho }
6747 1.1 jruoho
6748 1.1 jruoho // Now check the upper nibble. Only the "even" bits should
6749 1.1 jruoho // be set. BIT4, BIT6. BIT5 and BIT7 should be clear.
6750 1.1 jruoho If (LNot (BIT4))
6751 1.1 jruoho {
6752 1.1 jruoho Or (Local0, 0x10, Local0)
6753 1.1 jruoho }
6754 1.1 jruoho
6755 1.1 jruoho If (BIT5)
6756 1.1 jruoho {
6757 1.1 jruoho Or (Local0, 0x20, Local0)
6758 1.1 jruoho }
6759 1.1 jruoho
6760 1.1 jruoho If (LNot (BIT6))
6761 1.1 jruoho {
6762 1.1 jruoho Or (Local0, 0x40, Local0)
6763 1.1 jruoho }
6764 1.1 jruoho
6765 1.1 jruoho If (BIT7)
6766 1.1 jruoho {
6767 1.1 jruoho Or (Local0, 0x80, Local0)
6768 1.1 jruoho }
6769 1.1 jruoho } // End Else DWRD zeroed out
6770 1.1 jruoho
6771 1.1 jruoho Return (Local0)
6772 1.1 jruoho } // MBIT: Test single bit memory accesses
6773 1.1 jruoho
6774 1.1 jruoho Method (TEST)
6775 1.1 jruoho {
6776 1.1 jruoho
6777 1.1 jruoho Store ("++++++++ BitIndex Test", Debug)
6778 1.1 jruoho
6779 1.1 jruoho // Zero out DWRD
6780 1.1 jruoho Store (0x00000000, DWRD)
6781 1.1 jruoho
6782 1.1 jruoho // MBIT returns zero if successful
6783 1.1 jruoho // This may be causing problems -- Return (MBIT)
6784 1.1 jruoho Store (MBIT, Local0)
6785 1.1 jruoho
6786 1.1 jruoho Return (Local0)
6787 1.1 jruoho } // TEST
6788 1.1 jruoho } // BITI
6789 1.1 jruoho } // _SB system bus
6790 1.1 jruoho
6791 1.1 jruoho //
6792 1.1 jruoho // test IndexOp3.asl
6793 1.1 jruoho //
6794 1.1 jruoho // Additional IndexOp test cases to support ACPICMB (control method battery
6795 1.1 jruoho // test) on Compaq laptops. Test cases include storing a package into
6796 1.1 jruoho // an IndexOp target and validating that changing source and destination
6797 1.1 jruoho // package contents are independent of each other.
6798 1.1 jruoho //
6799 1.1 jruoho Scope (\_SB) // System Bus
6800 1.1 jruoho { // _SB system bus
6801 1.1 jruoho
6802 1.1 jruoho Name (C174, 13)
6803 1.1 jruoho Name (C175, 8)
6804 1.1 jruoho
6805 1.1 jruoho Device (C158)
6806 1.1 jruoho { // C158: AC Adapter device
6807 1.1 jruoho Name (_HID, "ACPI0003") // AC Adapter device
6808 1.1 jruoho Name (_PCL, Package (1) {\_SB})
6809 1.1 jruoho
6810 1.1 jruoho Method (_PSR)
6811 1.1 jruoho {
6812 1.1 jruoho Acquire (\_GL, 0xFFFF)
6813 1.1 jruoho Release (\_GL)
6814 1.1 jruoho And (Local0, 1, Local0) // Local0 &= 1
6815 1.1 jruoho Return (Local0)
6816 1.1 jruoho } // _PSR
6817 1.1 jruoho } // C158: AC Adapter device
6818 1.1 jruoho
6819 1.1 jruoho Name (C176, Package (4) {"Primary", "MultiBay", "DockRight", "DockLeft"})
6820 1.1 jruoho
6821 1.1 jruoho Name (C177, Package (4) {0x99F5, 0x99F5, 0x995F, 0x995F})
6822 1.1 jruoho
6823 1.1 jruoho Name (C178, Package (4)
6824 1.1 jruoho {
6825 1.1 jruoho Package (4) {0, 0, 0x966B, 0x4190},
6826 1.1 jruoho Package (4) {0, 0, 0x966B, 0x4190},
6827 1.1 jruoho Package (4) {0, 0, 0x966B, 0x4190},
6828 1.1 jruoho Package (4) {0, 0, 0x966B, 0x4190}
6829 1.1 jruoho }) // C178
6830 1.1 jruoho
6831 1.1 jruoho Name (C179, Package (4) {0, 0, 0x966B, 0x4190})
6832 1.1 jruoho
6833 1.1 jruoho Name (C17A, Package (4)
6834 1.1 jruoho {
6835 1.1 jruoho Package (3) {0, 0, 0},
6836 1.1 jruoho Package (3) {0, 0, 0},
6837 1.1 jruoho Package (3) {0, 0, 0},
6838 1.1 jruoho Package (3) {0, 0, 0}
6839 1.1 jruoho }) // C17A
6840 1.1 jruoho
6841 1.1.1.3 christos Method (C17B, 1, Serialized)
6842 1.1 jruoho { // C17B: _BIF implementation
6843 1.1 jruoho Name (C17C, Package (13)
6844 1.1 jruoho { // C17C: _BIF control method return package
6845 1.1 jruoho 0, // Power Unit (0 ==> mWh and mW)
6846 1.1 jruoho 0x99F5, // Design Capacity
6847 1.1 jruoho 0x99F5, // Last Full Charge Capacity
6848 1.1 jruoho 1, // Battery Technology (1 ==> rechargeable)
6849 1.1 jruoho 0x3840, // Design Voltage
6850 1.1 jruoho 0x1280, // Design Capacity of Warning
6851 1.1 jruoho 0x0AC7, // Design Capacity of Low
6852 1.1 jruoho 1, // Battery Capacity Granularity 1 (Low -- Warning)
6853 1.1 jruoho 1, // Battery Capacity Granularity 2 (Warning -- Full)
6854 1.1 jruoho "2891", // Model Number (ASCIIZ)
6855 1.1 jruoho "(-Unknown-)", // Serial Number (ASCIIZ)
6856 1.1 jruoho "LIon", // Battery Type (ASCIIZ)
6857 1.1 jruoho 0 // OEM Information (ASCIIZ)
6858 1.1 jruoho }) // C17C: _BIF control method return package
6859 1.1 jruoho
6860 1.1 jruoho And (Arg0, 7, Local0) // Local0 = Arg0 & 7
6861 1.1 jruoho
6862 1.1 jruoho ShiftRight (Local0, 1, Local4) // Local4 = Local0 >> 1
6863 1.1 jruoho
6864 1.1 jruoho Store (C179, Index (C178, Local4, )) // C178->Local4 = C179
6865 1.1 jruoho
6866 1.1 jruoho // verify source and destination packages can be altered independent
6867 1.1 jruoho // of each other (i.e., changing one's contents does NOT change other's
6868 1.1 jruoho // contents)
6869 1.1 jruoho Store (0x1234, Index (C179, 2, )) // C179[2] = 0x1234
6870 1.1 jruoho Store (DerefOf (Index (C179, 2, )), Local2) // Local2 = C179[2]
6871 1.1 jruoho if (LNotEqual (Local2, 0x1234))
6872 1.1 jruoho { Return (0x1234) }
6873 1.1 jruoho // Local2 = C178[0,2]
6874 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 2, )), Local2)
6875 1.1 jruoho if (LNotEqual (Local2, 0x966B))
6876 1.1 jruoho { Return (0x1234) }
6877 1.1 jruoho
6878 1.1 jruoho // Restore data to allow iterative execution
6879 1.1 jruoho Store (0x966B, Index (C179, 2, )) // C179[2] = 0x966B
6880 1.1 jruoho
6881 1.1 jruoho // C178[0,3] = 0x5678
6882 1.1 jruoho Store (0x5678, Index (DerefOf (Index (C178, 0, )), 3, ))
6883 1.1 jruoho // Local2 = C178[0,3]
6884 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 3, )), Local2)
6885 1.1 jruoho if (LNotEqual (Local2, 0x5678))
6886 1.1 jruoho { Return (0x5678) }
6887 1.1 jruoho
6888 1.1 jruoho Store (DerefOf (Index (C179, 3, )), Local2) // Local2 = C179[3]
6889 1.1 jruoho if (LNotEqual (Local2, 0x4190))
6890 1.1 jruoho { Return (0x5678) }
6891 1.1 jruoho
6892 1.1 jruoho // Restore data to allow iterative execution
6893 1.1 jruoho Store (0x4190, Index (DerefOf (Index (C178, 0, )), 3, )) // C179[2] = 0x4190
6894 1.1 jruoho
6895 1.1 jruoho Return (C17C)
6896 1.1 jruoho } // C17B: _BIF implementation
6897 1.1 jruoho
6898 1.1 jruoho Device (C154)
6899 1.1 jruoho { // C154: Battery 0
6900 1.1 jruoho Name (_HID, "*PNP0C0A") // Control Method Battey ID
6901 1.1 jruoho Name (_UID, 0) // first instance
6902 1.1 jruoho
6903 1.1 jruoho Method (_BIF)
6904 1.1 jruoho { // _BIF
6905 1.1 jruoho Return (C17B (48))
6906 1.1 jruoho } // _BIF
6907 1.1 jruoho } // C154: Battery 0
6908 1.1 jruoho
6909 1.1 jruoho Device (IDX3)
6910 1.1 jruoho {
6911 1.1.1.3 christos Method (LCLB,, Serialized)
6912 1.1 jruoho { // LCLB control method: test Index(Local#) where Local# is buffer
6913 1.1 jruoho // Local0 is index counter
6914 1.1 jruoho // Local1 is buffer
6915 1.1 jruoho // Local2 receives BUFR[Local0] via Deref(Index(Local1...))
6916 1.1 jruoho // Local3 is Local1 or Local2 object type
6917 1.1 jruoho // Local4 is return error code
6918 1.1 jruoho
6919 1.1 jruoho Name (BUFR, Buffer () {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
6920 1.1 jruoho
6921 1.1 jruoho // save PKG into Local1
6922 1.1 jruoho Store (BUFR, Local1)
6923 1.1 jruoho
6924 1.1 jruoho // save Local2 object type value into Local3
6925 1.1 jruoho Store (ObjectType (Local1), Local3)
6926 1.1 jruoho
6927 1.1 jruoho // validate Local1 is a Buffer
6928 1.1 jruoho If (LNotEqual (Local3, 3)) // Buffer type is 3
6929 1.1 jruoho { Return (0x9F) }
6930 1.1 jruoho
6931 1.1 jruoho
6932 1.1 jruoho Store (0, Local0)
6933 1.1 jruoho While (LLess (Local0, 5))
6934 1.1 jruoho { // While (Local0 < 5)
6935 1.1 jruoho // Local2 = Local1[Local0]
6936 1.1 jruoho Store (DerefOf (Index (Local1, Local0, )), Local2)
6937 1.1 jruoho
6938 1.1 jruoho // save Local2 object type value into Local3
6939 1.1 jruoho Store (ObjectType (Local2), Local3)
6940 1.1 jruoho
6941 1.1 jruoho // validate Local2 is a Number
6942 1.1 jruoho If (LNotEqual (Local3, 1)) // Number type is 1
6943 1.1 jruoho { Return (0x9E) }
6944 1.1 jruoho
6945 1.1 jruoho // validate Local1[Local0] value == Local0
6946 1.1 jruoho If (LNotEqual (Local0, Local2))
6947 1.1 jruoho { // Local0 != Local2 == PKG[Local0]
6948 1.1 jruoho // Local4 = 0x90 + loop index (Local0)
6949 1.1 jruoho Add (0x90, Local0, Local4)
6950 1.1 jruoho
6951 1.1 jruoho // return 0x90 + loop index
6952 1.1 jruoho Return (Local4)
6953 1.1 jruoho }
6954 1.1 jruoho
6955 1.1 jruoho Increment (Local0)
6956 1.1 jruoho } // While (Local0 < 5)
6957 1.1 jruoho
6958 1.1 jruoho Store ("DerefOf(Index(LocalBuffer,,)) PASS", Debug)
6959 1.1 jruoho
6960 1.1 jruoho Return (0) // Pass
6961 1.1 jruoho } // LCLB control method: test Index(Local#) where Local# is buffer
6962 1.1 jruoho
6963 1.1.1.3 christos Method (LCLP,, Serialized)
6964 1.1 jruoho { // LCLP control method: test Index(Local#) where Local# is package
6965 1.1 jruoho // Local0 is index counter
6966 1.1 jruoho // Local1 is package
6967 1.1 jruoho // Local2 receives PKG[Local0] via Deref(Index(Local1...))
6968 1.1 jruoho // Local3 is Local1 or Local2 object type
6969 1.1 jruoho // Local4 is return error code
6970 1.1 jruoho
6971 1.1 jruoho Name (PKG, Package () {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
6972 1.1 jruoho
6973 1.1 jruoho // save PKG into Local1
6974 1.1 jruoho Store (PKG, Local1)
6975 1.1 jruoho
6976 1.1 jruoho // save Local2 object type value into Local3
6977 1.1 jruoho Store (ObjectType (Local1), Local3)
6978 1.1 jruoho
6979 1.1 jruoho // validate Local1 is a Package
6980 1.1 jruoho If (LNotEqual (Local3, 4)) // Package type is 4
6981 1.1 jruoho { Return (0x8F) }
6982 1.1 jruoho
6983 1.1 jruoho
6984 1.1 jruoho Store (0, Local0)
6985 1.1 jruoho While (LLess (Local0, 5))
6986 1.1 jruoho { // While (Local0 < 5)
6987 1.1 jruoho // Local2 = Local1[Local0]
6988 1.1 jruoho Store (DerefOf (Index (Local1, Local0, )), Local2)
6989 1.1 jruoho
6990 1.1 jruoho // save Local2 object type value into Local3
6991 1.1 jruoho Store (ObjectType (Local2), Local3)
6992 1.1 jruoho
6993 1.1 jruoho // validate Local2 is a Number
6994 1.1 jruoho If (LNotEqual (Local3, 1)) // Number type is 1
6995 1.1 jruoho { Return (0x8E) }
6996 1.1 jruoho
6997 1.1 jruoho // validate Local1[Local0] value == Local0
6998 1.1 jruoho If (LNotEqual (Local0, Local2))
6999 1.1 jruoho { // Local0 != Local2 == PKG[Local0]
7000 1.1 jruoho // Local4 = 0x80 + loop index (Local0)
7001 1.1 jruoho Add (0x80, Local0, Local4)
7002 1.1 jruoho
7003 1.1 jruoho // return 0x80 + loop index
7004 1.1 jruoho Return (Local4)
7005 1.1 jruoho }
7006 1.1 jruoho
7007 1.1 jruoho Increment (Local0)
7008 1.1 jruoho } // While (Local0 < 5)
7009 1.1 jruoho
7010 1.1 jruoho Store ("DerefOf(Index(LocalPackage,,)) PASS", Debug)
7011 1.1 jruoho
7012 1.1 jruoho Return (0) // Pass
7013 1.1 jruoho } // LCLP control method: test Index(Local#) where Local# is package
7014 1.1 jruoho
7015 1.1 jruoho Method (TEST)
7016 1.1 jruoho {
7017 1.1 jruoho
7018 1.1 jruoho Store ("++++++++ IndexOp3 Test", Debug)
7019 1.1 jruoho
7020 1.1 jruoho // store _BIF package return value into Local0
7021 1.1 jruoho Store (\_SB.C154._BIF, Local0)
7022 1.1 jruoho
7023 1.1 jruoho // save Local0 object type value into Local1
7024 1.1 jruoho Store (ObjectType (Local0), Local1)
7025 1.1 jruoho
7026 1.1 jruoho // validate Local0 is a Package
7027 1.1 jruoho If (LNotEqual (Local1, 4)) // Package type is 4
7028 1.1 jruoho { // failure: did not return a Package (type 4)
7029 1.1 jruoho // if Local0 is a Number, it contains an error code
7030 1.1 jruoho If (LEqual (Local1, 1)) // Number type is 1
7031 1.1 jruoho { Return (Local0) } // return Local0 error code
7032 1.1 jruoho Else // Local0 is not a Number
7033 1.1 jruoho { Return (1) } // return default error code
7034 1.1 jruoho } // failure: did not return a Package (type 4)
7035 1.1 jruoho
7036 1.1 jruoho // save LCLB control method return value into Local2
7037 1.1 jruoho Store (LCLB, Local2)
7038 1.1 jruoho If (LNotEqual (Local2, 0))
7039 1.1 jruoho { Return (Local2) } // return failure code
7040 1.1 jruoho
7041 1.1 jruoho // save LCLP control method return value into Local2
7042 1.1 jruoho Store (LCLP, Local2)
7043 1.1 jruoho If (LNotEqual (Local2, 0))
7044 1.1 jruoho { Return (Local2) } // return failure code
7045 1.1 jruoho
7046 1.1 jruoho Return (0) // Pass
7047 1.1 jruoho } // TEST
7048 1.1 jruoho } // IDX3: Test device name
7049 1.1 jruoho } // _SB system bus
7050 1.1 jruoho
7051 1.1 jruoho //
7052 1.1 jruoho // MTL developed test to exercise Indexes into buffers
7053 1.1 jruoho //
7054 1.1 jruoho Device(IDX7)
7055 1.1 jruoho {
7056 1.1 jruoho
7057 1.1 jruoho Name (PKG4, Package() {
7058 1.1 jruoho 0x2,
7059 1.1 jruoho "A short string",
7060 1.1 jruoho Buffer() {0xA, 0xB, 0xC, 0xD},
7061 1.1 jruoho 0x1234,
7062 1.1 jruoho Package() {IDX7, 0x3}
7063 1.1 jruoho })
7064 1.1 jruoho
7065 1.1 jruoho //
7066 1.1 jruoho // Generic Test method
7067 1.1 jruoho //
7068 1.1 jruoho // This test returns 0xE (14) - ObjectType = Buffer Field
7069 1.1.1.3 christos Method(TST1,, Serialized)
7070 1.1 jruoho {
7071 1.1 jruoho Name (DEST, Buffer () // 62 characters plus NULL
7072 1.1 jruoho {"Destination buffer that is longer than the short source buffer"})
7073 1.1 jruoho
7074 1.1 jruoho // verify object type returned by Index(Buffer,Element,)
7075 1.1 jruoho Store (Index (DEST, 2, ), Local1)
7076 1.1 jruoho Store (ObjectType (Local1), Local2)
7077 1.1 jruoho If (LEqual(Local2, 14))
7078 1.1 jruoho {
7079 1.1 jruoho Return(0)
7080 1.1 jruoho }
7081 1.1 jruoho Else
7082 1.1 jruoho {
7083 1.1 jruoho Return(0x1)
7084 1.1 jruoho }
7085 1.1 jruoho
7086 1.1 jruoho }
7087 1.1 jruoho
7088 1.1.1.3 christos Method(TST2,, Serialized)
7089 1.1 jruoho {
7090 1.1 jruoho Name (BUF0, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
7091 1.1 jruoho Store(0x55, Index(BUF0, 2))
7092 1.1 jruoho Store(DerefOf(Index(BUF0, 2)), Local0)
7093 1.1 jruoho If (LEqual(Local0, 0x55))
7094 1.1 jruoho {
7095 1.1 jruoho Return(0)
7096 1.1 jruoho }
7097 1.1 jruoho Else
7098 1.1 jruoho {
7099 1.1 jruoho Return(0x2)
7100 1.1 jruoho }
7101 1.1 jruoho
7102 1.1 jruoho
7103 1.1 jruoho }
7104 1.1 jruoho
7105 1.1.1.3 christos Method(TST3,, Serialized)
7106 1.1 jruoho {
7107 1.1 jruoho Name (BUF1, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
7108 1.1 jruoho Store(Index(BUF1, 1), Local0)
7109 1.1 jruoho Store(DerefOf(Local0), Local1)
7110 1.1 jruoho If (LEqual(Local1, 0x2))
7111 1.1 jruoho {
7112 1.1 jruoho Return(0)
7113 1.1 jruoho }
7114 1.1 jruoho Else
7115 1.1 jruoho {
7116 1.1 jruoho Return(0x3)
7117 1.1 jruoho }
7118 1.1 jruoho
7119 1.1 jruoho }
7120 1.1 jruoho
7121 1.1 jruoho Method(TST4)
7122 1.1 jruoho {
7123 1.1 jruoho // Index (PKG4, 0) is a Number
7124 1.1 jruoho Store (Index (PKG4, 0), Local0)
7125 1.1 jruoho Store (ObjectType(Local0), Local1)
7126 1.1 jruoho If (LEqual(Local1, 0x1))
7127 1.1 jruoho {
7128 1.1 jruoho Return(0)
7129 1.1 jruoho }
7130 1.1 jruoho Else
7131 1.1 jruoho {
7132 1.1 jruoho Return(0x4)
7133 1.1 jruoho }
7134 1.1 jruoho
7135 1.1 jruoho }
7136 1.1 jruoho
7137 1.1 jruoho Method(TST5)
7138 1.1 jruoho {
7139 1.1 jruoho // Index (PKG4, 1) is a String
7140 1.1 jruoho Store (Index (PKG4, 1), Local0)
7141 1.1 jruoho Store (ObjectType(Local0), Local1)
7142 1.1 jruoho If (LEqual(Local1, 0x2))
7143 1.1 jruoho {
7144 1.1 jruoho Return(0)
7145 1.1 jruoho }
7146 1.1 jruoho Else
7147 1.1 jruoho {
7148 1.1 jruoho Return(0x5)
7149 1.1 jruoho }
7150 1.1 jruoho
7151 1.1 jruoho }
7152 1.1 jruoho
7153 1.1 jruoho Method(TST6)
7154 1.1 jruoho {
7155 1.1 jruoho // Index (PKG4, 2) is a Buffer
7156 1.1 jruoho Store (Index (PKG4, 2), Local0)
7157 1.1 jruoho Store (ObjectType(Local0), Local1)
7158 1.1 jruoho If (LEqual(Local1, 0x3))
7159 1.1 jruoho {
7160 1.1 jruoho Return(0)
7161 1.1 jruoho }
7162 1.1 jruoho Else
7163 1.1 jruoho {
7164 1.1 jruoho Return(0x6)
7165 1.1 jruoho }
7166 1.1 jruoho
7167 1.1 jruoho }
7168 1.1 jruoho
7169 1.1 jruoho Method(TST7)
7170 1.1 jruoho {
7171 1.1 jruoho // Index (PKG4, 3) is a Number
7172 1.1 jruoho Store (Index (PKG4, 3), Local0)
7173 1.1 jruoho Store (ObjectType(Local0), Local1)
7174 1.1 jruoho If (LEqual(Local1, 0x1))
7175 1.1 jruoho {
7176 1.1 jruoho Return(0)
7177 1.1 jruoho }
7178 1.1 jruoho Else
7179 1.1 jruoho {
7180 1.1 jruoho Return(0x7)
7181 1.1 jruoho }
7182 1.1 jruoho
7183 1.1 jruoho }
7184 1.1 jruoho
7185 1.1 jruoho Method(TST8)
7186 1.1 jruoho {
7187 1.1 jruoho // Index (PKG4, 4) is a Package
7188 1.1 jruoho Store (Index (PKG4, 4), Local0)
7189 1.1 jruoho Store (ObjectType(Local0), Local1)
7190 1.1 jruoho If (LEqual(Local1, 0x4))
7191 1.1 jruoho {
7192 1.1 jruoho Return(0)
7193 1.1 jruoho }
7194 1.1 jruoho Else
7195 1.1 jruoho {
7196 1.1 jruoho Return(0x8)
7197 1.1 jruoho }
7198 1.1 jruoho
7199 1.1 jruoho }
7200 1.1 jruoho
7201 1.1 jruoho Method(TST9)
7202 1.1 jruoho {
7203 1.1 jruoho // DerefOf (Index (PKG4, 0)) is a Number
7204 1.1 jruoho Store (DerefOf (Index (PKG4, 0)), Local0)
7205 1.1 jruoho If (LEqual(Local0, 0x2))
7206 1.1 jruoho {
7207 1.1 jruoho Return(0)
7208 1.1 jruoho }
7209 1.1 jruoho Else
7210 1.1 jruoho {
7211 1.1 jruoho Return(0x9)
7212 1.1 jruoho }
7213 1.1 jruoho
7214 1.1 jruoho }
7215 1.1 jruoho
7216 1.1 jruoho Method(TSTA)
7217 1.1 jruoho {
7218 1.1 jruoho // DerefOf (Index (PKG4, 1)) is a String
7219 1.1 jruoho Store (DerefOf (Index (PKG4, 1)), Local0)
7220 1.1 jruoho Store (SizeOf(Local0), Local1)
7221 1.1 jruoho If (LEqual(Local1, 0xE))
7222 1.1 jruoho {
7223 1.1 jruoho Return(0)
7224 1.1 jruoho }
7225 1.1 jruoho Else
7226 1.1 jruoho {
7227 1.1 jruoho Return(0xA)
7228 1.1 jruoho }
7229 1.1 jruoho
7230 1.1 jruoho }
7231 1.1 jruoho
7232 1.1 jruoho Method(TSTB)
7233 1.1 jruoho {
7234 1.1 jruoho // DerefOf (Index (PKG4, 2)) is a Buffer
7235 1.1 jruoho Store (DerefOf (Index (PKG4, 2)), Local0)
7236 1.1 jruoho Store (SizeOf(Local0), Local1)
7237 1.1 jruoho If (LEqual(Local1, 0x4))
7238 1.1 jruoho {
7239 1.1 jruoho Return(0)
7240 1.1 jruoho }
7241 1.1 jruoho Else
7242 1.1 jruoho {
7243 1.1 jruoho Return(0xB)
7244 1.1 jruoho }
7245 1.1 jruoho
7246 1.1 jruoho }
7247 1.1 jruoho
7248 1.1 jruoho Method(TSTC)
7249 1.1 jruoho {
7250 1.1 jruoho // DerefOf (Index (PKG4, 3)) is a Number
7251 1.1 jruoho Store (DerefOf (Index (PKG4, 3)), Local0)
7252 1.1 jruoho If (LEqual(Local0, 0x1234))
7253 1.1 jruoho {
7254 1.1 jruoho Return(0)
7255 1.1 jruoho }
7256 1.1 jruoho Else
7257 1.1 jruoho {
7258 1.1 jruoho Return(0xC)
7259 1.1 jruoho }
7260 1.1 jruoho
7261 1.1 jruoho }
7262 1.1 jruoho
7263 1.1 jruoho Method(TSTD)
7264 1.1 jruoho {
7265 1.1 jruoho // DerefOf (Index (PKG4, 4)) is a Package
7266 1.1 jruoho Store (DerefOf (Index (PKG4, 4)), Local0)
7267 1.1 jruoho Store (SizeOf(Local0), Local1)
7268 1.1 jruoho If (LEqual(Local1, 0x2))
7269 1.1 jruoho {
7270 1.1 jruoho Return(0)
7271 1.1 jruoho }
7272 1.1 jruoho Else
7273 1.1 jruoho {
7274 1.1 jruoho Return(0xD)
7275 1.1 jruoho }
7276 1.1 jruoho
7277 1.1 jruoho }
7278 1.1 jruoho
7279 1.1 jruoho Method(TSTE)
7280 1.1 jruoho {
7281 1.1 jruoho // DerefOf (Index (PKG4, 2)) is a Buffer
7282 1.1 jruoho Store (DerefOf (Index (PKG4, 2)), Local0)
7283 1.1 jruoho // DerefOf (Index (Local0, 1)) is a Number
7284 1.1 jruoho Store (DerefOf (Index (Local0, 1)), Local1)
7285 1.1 jruoho If (LEqual(Local1, 0xB))
7286 1.1 jruoho {
7287 1.1 jruoho Return(0)
7288 1.1 jruoho }
7289 1.1 jruoho Else
7290 1.1 jruoho {
7291 1.1 jruoho Return(0xE)
7292 1.1 jruoho }
7293 1.1 jruoho
7294 1.1 jruoho }
7295 1.1 jruoho
7296 1.1.1.3 christos Method (TSTF,, Serialized)
7297 1.1 jruoho {
7298 1.1 jruoho Name (SRCB, Buffer (12) {}) // 12 characters
7299 1.1 jruoho Store ("Short Buffer", SRCB)
7300 1.1 jruoho
7301 1.1 jruoho Name (DEST, Buffer () // 62 characters plus NULL
7302 1.1 jruoho {"Destination buffer that is longer than the short source buffer"})
7303 1.1 jruoho
7304 1.1 jruoho // overwrite DEST contents, starting at buffer position 2
7305 1.1 jruoho Store (SRCB, Index (DEST, 2))
7306 1.1 jruoho
7307 1.1 jruoho //
7308 1.1 jruoho // The DEST buffer element should be replaced with the last element of
7309 1.1 jruoho // the SRCB element (i.e. 's'->'r')
7310 1.1 jruoho Store (DerefOf (Index (DEST, 2)), Local0)
7311 1.1 jruoho
7312 1.1 jruoho If (LNotEqual (Local0, 0x72)) // 'r'
7313 1.1 jruoho {
7314 1.1 jruoho // DEST element does not match the value from SRCB
7315 1.1 jruoho Return(Or(Local0, 0x1000))
7316 1.1 jruoho }
7317 1.1 jruoho
7318 1.1 jruoho Return(0)
7319 1.1 jruoho }
7320 1.1 jruoho
7321 1.1.1.3 christos Method (TSTG,, Serialized)
7322 1.1 jruoho {
7323 1.1 jruoho
7324 1.1 jruoho Name (SRCB, Buffer (12) {}) // 12 characters
7325 1.1 jruoho Store ("Short Buffer", SRCB)
7326 1.1 jruoho
7327 1.1 jruoho Name (DEST, Buffer () // 62 characters plus NULL
7328 1.1 jruoho {"Destination buffer that is longer than the short source buffer"})
7329 1.1 jruoho
7330 1.1 jruoho // overwrite DEST contents, starting at buffer position 2
7331 1.1 jruoho Store (SRCB, Index (DEST, 2))
7332 1.1 jruoho
7333 1.1 jruoho //
7334 1.1 jruoho // The next element of DEST should be unchanged
7335 1.1 jruoho //
7336 1.1 jruoho Store (DerefOf (Index (DEST, 3)), Local0)
7337 1.1 jruoho
7338 1.1 jruoho If (LNotEqual (Local0, 0x74)) // 't'
7339 1.1 jruoho {
7340 1.1 jruoho // DEST has been changed
7341 1.1 jruoho Return(Or(Local0, 0x2000))
7342 1.1 jruoho }
7343 1.1 jruoho
7344 1.1 jruoho //
7345 1.1 jruoho // The next element of DEST should be unchanged
7346 1.1 jruoho //
7347 1.1 jruoho Store (DerefOf (Index (DEST, 4)), Local0)
7348 1.1 jruoho
7349 1.1 jruoho If (LNotEqual (Local0, 0x69)) // 'i'
7350 1.1 jruoho {
7351 1.1 jruoho // DEST has been changed
7352 1.1 jruoho Return(Or(Local0, 0x2100))
7353 1.1 jruoho }
7354 1.1 jruoho
7355 1.1 jruoho //
7356 1.1 jruoho // The next element of DEST should be unchanged
7357 1.1 jruoho //
7358 1.1 jruoho Store (DerefOf (Index (DEST, 5)), Local0)
7359 1.1 jruoho
7360 1.1 jruoho If (LNotEqual (Local0, 0x6E)) // 'n'
7361 1.1 jruoho {
7362 1.1 jruoho // DEST has been changed
7363 1.1 jruoho Return(Or(Local0, 0x2200))
7364 1.1 jruoho }
7365 1.1 jruoho
7366 1.1 jruoho //
7367 1.1 jruoho // The next element of DEST should be unchanged
7368 1.1 jruoho //
7369 1.1 jruoho Store (DerefOf (Index (DEST, 6)), Local0)
7370 1.1 jruoho
7371 1.1 jruoho If (LNotEqual (Local0, 0x61)) // 'a'
7372 1.1 jruoho {
7373 1.1 jruoho // DEST has been changed
7374 1.1 jruoho Return(Or(Local0, 0x2300))
7375 1.1 jruoho }
7376 1.1 jruoho
7377 1.1 jruoho //
7378 1.1 jruoho // The next element of DEST should be unchanged
7379 1.1 jruoho //
7380 1.1 jruoho Store (DerefOf (Index (DEST, 7)), Local0)
7381 1.1 jruoho
7382 1.1 jruoho If (LNotEqual (Local0, 0x74)) // 't'
7383 1.1 jruoho {
7384 1.1 jruoho // DEST has been changed
7385 1.1 jruoho Return(Or(Local0, 0x2400))
7386 1.1 jruoho }
7387 1.1 jruoho
7388 1.1 jruoho //
7389 1.1 jruoho // Verify DEST elements beyond end of SRCB buffer copy
7390 1.1 jruoho // have not been changed
7391 1.1 jruoho Store (DerefOf (Index (DEST, 14)), Local0)
7392 1.1 jruoho
7393 1.1 jruoho If (LNotEqual (Local0, 0x66)) // 'f'
7394 1.1 jruoho {
7395 1.1 jruoho // DEST has been changed
7396 1.1 jruoho Return(Or(Local0, 0x2400))
7397 1.1 jruoho }
7398 1.1 jruoho
7399 1.1 jruoho Return(0)
7400 1.1 jruoho }
7401 1.1 jruoho
7402 1.1 jruoho //
7403 1.1 jruoho // This test shows that MS ACPI.SYS stores only the lower 8-bits of a 32-bit
7404 1.1 jruoho // number into the index'ed buffer
7405 1.1 jruoho //
7406 1.1.1.3 christos Method (TSTH,, Serialized)
7407 1.1 jruoho {
7408 1.1 jruoho // Create a Destination Buffer
7409 1.1 jruoho Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7410 1.1 jruoho
7411 1.1 jruoho // Store a number > UINT8 into an index of the buffer
7412 1.1 jruoho Store (0x12345678, Index(DBUF, 2))
7413 1.1 jruoho
7414 1.1 jruoho // Check the results
7415 1.1 jruoho Store (DerefOf (Index (DBUF, 2)), Local0)
7416 1.1 jruoho If (LNotEqual (Local0, 0x78)) // 0x78
7417 1.1 jruoho {
7418 1.1 jruoho Return(Or(Local0, 0x3000))
7419 1.1 jruoho }
7420 1.1 jruoho
7421 1.1 jruoho Store (DerefOf (Index (DBUF, 3)), Local0)
7422 1.1 jruoho If (LNotEqual (Local0, 0x64)) // 'd'
7423 1.1 jruoho {
7424 1.1 jruoho Return(Or(Local0, 0x3100))
7425 1.1 jruoho }
7426 1.1 jruoho
7427 1.1 jruoho Store (DerefOf (Index (DBUF, 4)), Local0)
7428 1.1 jruoho If (LNotEqual (Local0, 0x65)) // 'e'
7429 1.1 jruoho {
7430 1.1 jruoho Return(Or(Local0, 0x3200))
7431 1.1 jruoho }
7432 1.1 jruoho
7433 1.1 jruoho Store (DerefOf (Index (DBUF, 5)), Local0)
7434 1.1 jruoho If (LNotEqual (Local0, 0x66)) // 'f'
7435 1.1 jruoho {
7436 1.1 jruoho Return(Or(Local0, 0x3300))
7437 1.1 jruoho }
7438 1.1 jruoho
7439 1.1 jruoho Return(0)
7440 1.1 jruoho }
7441 1.1 jruoho
7442 1.1.1.3 christos Method (TSTI,, Serialized)
7443 1.1 jruoho {
7444 1.1 jruoho // Create a Destination Buffer
7445 1.1 jruoho Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7446 1.1 jruoho
7447 1.1 jruoho // Store a String into an index of the buffer
7448 1.1 jruoho Store ("ABCDEFGH", Index(DBUF, 2))
7449 1.1 jruoho
7450 1.1 jruoho // Check the results
7451 1.1 jruoho Store (DerefOf (Index (DBUF, 2)), Local0)
7452 1.1 jruoho If (LNotEqual (Local0, 0x48)) // 'H'
7453 1.1 jruoho {
7454 1.1 jruoho Return(Or(Local0, 0x4000))
7455 1.1 jruoho }
7456 1.1 jruoho
7457 1.1 jruoho Store (DerefOf (Index (DBUF, 3)), Local0)
7458 1.1 jruoho If (LNotEqual (Local0, 0x64)) // 'd'
7459 1.1 jruoho {
7460 1.1 jruoho Return(Or(Local0, 0x4100))
7461 1.1 jruoho }
7462 1.1 jruoho
7463 1.1 jruoho Store (DerefOf (Index (DBUF, 4)), Local0)
7464 1.1 jruoho If (LNotEqual (Local0, 0x65)) // 'e'
7465 1.1 jruoho {
7466 1.1 jruoho Return(Or(Local0, 0x4200))
7467 1.1 jruoho }
7468 1.1 jruoho
7469 1.1 jruoho Store (DerefOf (Index (DBUF, 5)), Local0)
7470 1.1 jruoho If (LNotEqual (Local0, 0x66)) // 'f'
7471 1.1 jruoho {
7472 1.1 jruoho Return(Or(Local0, 0x4300))
7473 1.1 jruoho }
7474 1.1 jruoho
7475 1.1 jruoho Return(0)
7476 1.1 jruoho }
7477 1.1 jruoho
7478 1.1.1.3 christos Method(TSTJ,, Serialized)
7479 1.1 jruoho {
7480 1.1 jruoho // Create a Destination Buffer
7481 1.1 jruoho Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7482 1.1 jruoho
7483 1.1 jruoho // Store a number > UINT8 into an index of the buffer
7484 1.1 jruoho Store (0x1234, Index(DBUF, 2))
7485 1.1 jruoho
7486 1.1 jruoho // Check the results
7487 1.1 jruoho Store (DerefOf (Index (DBUF, 2)), Local0)
7488 1.1 jruoho If (LNotEqual (Local0, 0x34)) // 0x34
7489 1.1 jruoho {
7490 1.1 jruoho Return(Or(Local0, 0x3000))
7491 1.1 jruoho }
7492 1.1 jruoho
7493 1.1 jruoho Store (DerefOf (Index (DBUF, 3)), Local0)
7494 1.1 jruoho If (LNotEqual (Local0, 0x64)) // 'd'
7495 1.1 jruoho {
7496 1.1 jruoho Return(Or(Local0, 0x3100))
7497 1.1 jruoho }
7498 1.1 jruoho
7499 1.1 jruoho Store (DerefOf (Index (DBUF, 4)), Local0)
7500 1.1 jruoho If (LNotEqual (Local0, 0x65)) // 'e'
7501 1.1 jruoho {
7502 1.1 jruoho Return(Or(Local0, 0x3200))
7503 1.1 jruoho }
7504 1.1 jruoho
7505 1.1 jruoho Store (DerefOf (Index (DBUF, 5)), Local0)
7506 1.1 jruoho If (LNotEqual (Local0, 0x66)) // 'f'
7507 1.1 jruoho {
7508 1.1 jruoho Return(Or(Local0, 0x3300))
7509 1.1 jruoho }
7510 1.1 jruoho
7511 1.1 jruoho Return(0)
7512 1.1 jruoho }
7513 1.1 jruoho
7514 1.1.1.3 christos Method(TSTK,, Serialized)
7515 1.1 jruoho {
7516 1.1 jruoho // Create a Destination Buffer
7517 1.1 jruoho Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7518 1.1 jruoho
7519 1.1 jruoho // Store a number > UINT8 into an index of the buffer
7520 1.1 jruoho Store (0x123456, Index(DBUF, 2))
7521 1.1 jruoho
7522 1.1 jruoho // Check the results
7523 1.1 jruoho Store (DerefOf (Index (DBUF, 2)), Local0)
7524 1.1 jruoho If (LNotEqual (Local0, 0x56)) // 0x56
7525 1.1 jruoho {
7526 1.1 jruoho Return(Or(Local0, 0x3000))
7527 1.1 jruoho }
7528 1.1 jruoho
7529 1.1 jruoho Store (DerefOf (Index (DBUF, 3)), Local0)
7530 1.1 jruoho If (LNotEqual (Local0, 0x64)) // 'd'
7531 1.1 jruoho {
7532 1.1 jruoho Return(Or(Local0, 0x3100))
7533 1.1 jruoho }
7534 1.1 jruoho
7535 1.1 jruoho Store (DerefOf (Index (DBUF, 4)), Local0)
7536 1.1 jruoho If (LNotEqual (Local0, 0x65)) // 'e'
7537 1.1 jruoho {
7538 1.1 jruoho Return(Or(Local0, 0x3200))
7539 1.1 jruoho }
7540 1.1 jruoho
7541 1.1 jruoho Store (DerefOf (Index (DBUF, 5)), Local0)
7542 1.1 jruoho If (LNotEqual (Local0, 0x66)) // 'f'
7543 1.1 jruoho {
7544 1.1 jruoho Return(Or(Local0, 0x3300))
7545 1.1 jruoho }
7546 1.1 jruoho
7547 1.1 jruoho Return(0)
7548 1.1 jruoho }
7549 1.1 jruoho
7550 1.1.1.3 christos Method(TSTL,, Serialized)
7551 1.1 jruoho {
7552 1.1 jruoho // Create a Destination Buffer
7553 1.1 jruoho Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7554 1.1 jruoho
7555 1.1 jruoho // Store a number > UINT8 into an index of the buffer
7556 1.1 jruoho Store (0x12, Index(DBUF, 2))
7557 1.1 jruoho
7558 1.1 jruoho // Check the results
7559 1.1 jruoho Store (DerefOf (Index (DBUF, 2)), Local0)
7560 1.1 jruoho If (LNotEqual (Local0, 0x12)) // 0x12
7561 1.1 jruoho {
7562 1.1 jruoho Return(Or(Local0, 0x3000))
7563 1.1 jruoho }
7564 1.1 jruoho
7565 1.1 jruoho Store (DerefOf (Index (DBUF, 3)), Local0)
7566 1.1 jruoho If (LNotEqual (Local0, 0x64)) // 'd'
7567 1.1 jruoho {
7568 1.1 jruoho Return(Or(Local0, 0x3100))
7569 1.1 jruoho }
7570 1.1 jruoho
7571 1.1 jruoho Store (DerefOf (Index (DBUF, 4)), Local0)
7572 1.1 jruoho If (LNotEqual (Local0, 0x65)) // 'e'
7573 1.1 jruoho {
7574 1.1 jruoho Return(Or(Local0, 0x3200))
7575 1.1 jruoho }
7576 1.1 jruoho
7577 1.1 jruoho Store (DerefOf (Index (DBUF, 5)), Local0)
7578 1.1 jruoho If (LNotEqual (Local0, 0x66)) // 'f'
7579 1.1 jruoho {
7580 1.1 jruoho Return(Or(Local0, 0x3300))
7581 1.1 jruoho }
7582 1.1 jruoho
7583 1.1 jruoho Return(0)
7584 1.1 jruoho }
7585 1.1 jruoho
7586 1.1 jruoho Method(TEST)
7587 1.1 jruoho {
7588 1.1 jruoho Store ("++++++++ IndexOp7 Test", Debug)
7589 1.1 jruoho
7590 1.1 jruoho Store(TST1(), Local0)
7591 1.1 jruoho if (LGreater (Local0, 0))
7592 1.1 jruoho {
7593 1.1 jruoho Return(Local0)
7594 1.1 jruoho }
7595 1.1 jruoho
7596 1.1 jruoho Store(TST2(), Local0)
7597 1.1 jruoho if (LGreater (Local0, 0))
7598 1.1 jruoho {
7599 1.1 jruoho Return(Local0)
7600 1.1 jruoho }
7601 1.1 jruoho
7602 1.1 jruoho Store(TST3(), Local0)
7603 1.1 jruoho if (LGreater (Local0, 0))
7604 1.1 jruoho {
7605 1.1 jruoho Return(Local0)
7606 1.1 jruoho }
7607 1.1 jruoho
7608 1.1 jruoho Store(TST4(), Local0)
7609 1.1 jruoho if (LGreater (Local0, 0))
7610 1.1 jruoho {
7611 1.1 jruoho Return(Local0)
7612 1.1 jruoho }
7613 1.1 jruoho
7614 1.1 jruoho Store(TST5(), Local0)
7615 1.1 jruoho if (LGreater (Local0, 0))
7616 1.1 jruoho {
7617 1.1 jruoho Return(Local0)
7618 1.1 jruoho }
7619 1.1 jruoho
7620 1.1 jruoho Store(TST6(), Local0)
7621 1.1 jruoho if (LGreater (Local0, 0))
7622 1.1 jruoho {
7623 1.1 jruoho Return(Local0)
7624 1.1 jruoho }
7625 1.1 jruoho
7626 1.1 jruoho Store(TST7(), Local0)
7627 1.1 jruoho if (LGreater (Local0, 0))
7628 1.1 jruoho {
7629 1.1 jruoho Return(Local0)
7630 1.1 jruoho }
7631 1.1 jruoho
7632 1.1 jruoho Store(TST8(), Local0)
7633 1.1 jruoho if (LGreater (Local0, 0))
7634 1.1 jruoho {
7635 1.1 jruoho Return(Local0)
7636 1.1 jruoho }
7637 1.1 jruoho
7638 1.1 jruoho Store(TST9(), Local0)
7639 1.1 jruoho if (LGreater (Local0, 0))
7640 1.1 jruoho {
7641 1.1 jruoho Return(Local0)
7642 1.1 jruoho }
7643 1.1 jruoho
7644 1.1 jruoho Store(TSTA(), Local0)
7645 1.1 jruoho if (LGreater (Local0, 0))
7646 1.1 jruoho {
7647 1.1 jruoho Return(Local0)
7648 1.1 jruoho }
7649 1.1 jruoho
7650 1.1 jruoho Store(TSTB(), Local0)
7651 1.1 jruoho if (LGreater (Local0, 0))
7652 1.1 jruoho {
7653 1.1 jruoho Return(Local0)
7654 1.1 jruoho }
7655 1.1 jruoho
7656 1.1 jruoho Store(TSTC(), Local0)
7657 1.1 jruoho if (LGreater (Local0, 0))
7658 1.1 jruoho {
7659 1.1 jruoho Return(Local0)
7660 1.1 jruoho }
7661 1.1 jruoho
7662 1.1 jruoho Store(TSTD(), Local0)
7663 1.1 jruoho if (LGreater (Local0, 0))
7664 1.1 jruoho {
7665 1.1 jruoho Return(Local0)
7666 1.1 jruoho }
7667 1.1 jruoho
7668 1.1 jruoho Store(TSTE(), Local0)
7669 1.1 jruoho if (LGreater (Local0, 0))
7670 1.1 jruoho {
7671 1.1 jruoho Return(Local0)
7672 1.1 jruoho }
7673 1.1 jruoho
7674 1.1 jruoho /* No longer ACPI compliant */
7675 1.1 jruoho /*
7676 1.1 jruoho Store(TSTF(), Local0)
7677 1.1 jruoho if (LGreater (Local0, 0))
7678 1.1 jruoho {
7679 1.1 jruoho Return(Local0)
7680 1.1 jruoho }
7681 1.1 jruoho */
7682 1.1 jruoho
7683 1.1 jruoho Store(TSTG(), Local0)
7684 1.1 jruoho if (LGreater (Local0, 0))
7685 1.1 jruoho {
7686 1.1 jruoho Return(Local0)
7687 1.1 jruoho }
7688 1.1 jruoho
7689 1.1 jruoho Store(TSTH(), Local0)
7690 1.1 jruoho if (LGreater (Local0, 0))
7691 1.1 jruoho {
7692 1.1 jruoho Return(Local0)
7693 1.1 jruoho }
7694 1.1 jruoho
7695 1.1 jruoho /* No longer ACPI compliant */
7696 1.1 jruoho /*
7697 1.1 jruoho Store(TSTI(), Local0)
7698 1.1 jruoho if (LGreater (Local0, 0))
7699 1.1 jruoho {
7700 1.1 jruoho Return(Local0)
7701 1.1 jruoho }
7702 1.1 jruoho */
7703 1.1 jruoho Store(TSTJ(), Local0)
7704 1.1 jruoho if (LGreater (Local0, 0))
7705 1.1 jruoho {
7706 1.1 jruoho Return(Local0)
7707 1.1 jruoho }
7708 1.1 jruoho
7709 1.1 jruoho Store(TSTK(), Local0)
7710 1.1 jruoho if (LGreater (Local0, 0))
7711 1.1 jruoho {
7712 1.1 jruoho Return(Local0)
7713 1.1 jruoho }
7714 1.1 jruoho
7715 1.1 jruoho Store(TSTL(), Local0)
7716 1.1 jruoho if (LGreater (Local0, 0))
7717 1.1 jruoho {
7718 1.1 jruoho Return(Local0)
7719 1.1 jruoho }
7720 1.1 jruoho
7721 1.1 jruoho Return(Local0)
7722 1.1 jruoho
7723 1.1 jruoho }
7724 1.1 jruoho
7725 1.1 jruoho } // Device(IDX7)
7726 1.1 jruoho
7727 1.1 jruoho //
7728 1.1 jruoho // test MatchOp.asl
7729 1.1 jruoho //
7730 1.1 jruoho // MatchOp test cases that utilize nested DerefOf(Index(...)) to validate
7731 1.1 jruoho // MatchOp, DerefOfOp, and IndexOp of nested packages.
7732 1.1 jruoho //
7733 1.1 jruoho Device (MTCH)
7734 1.1 jruoho {
7735 1.1 jruoho
7736 1.1.1.3 christos Method (TEST,, Serialized)
7737 1.1 jruoho {
7738 1.1 jruoho Store ("++++++++ MatchOp Test", Debug)
7739 1.1 jruoho
7740 1.1 jruoho Name (TIM0, Package ()
7741 1.1 jruoho {
7742 1.1 jruoho Package () {0x78, 0xB4, 0xF0, 0x0384},
7743 1.1 jruoho Package () {0x23, 0x21, 0x10, 0},
7744 1.1 jruoho Package () {0x0B, 9, 4, 0},
7745 1.1 jruoho Package () {0x70, 0x49, 0x36, 0x27, 0x19},
7746 1.1 jruoho Package () {0, 1, 2, 1, 2},
7747 1.1 jruoho Package () {0, 0, 0, 1, 1},
7748 1.1 jruoho Package () {4, 3, 2, 0},
7749 1.1 jruoho Package () {2, 1, 0, 0}
7750 1.1 jruoho }) // TIM0
7751 1.1 jruoho
7752 1.1 jruoho Name (TMD0, Buffer (20) {0xFF, 0xFF, 0xFF, 0xFF })
7753 1.1 jruoho CreateDWordField (TMD0, 0, PIO0) // 0xFFFFFFFF
7754 1.1 jruoho CreateDWordField (TMD0, 4, DMA0)
7755 1.1 jruoho CreateDWordField (TMD0, 8, PIO1)
7756 1.1 jruoho CreateDWordField (TMD0, 12, DMA1)
7757 1.1 jruoho CreateDWordField (TMD0, 16, CHNF)
7758 1.1 jruoho
7759 1.1 jruoho
7760 1.1 jruoho // validate PIO0 value
7761 1.1 jruoho Store (PIO0, Local3)
7762 1.1 jruoho
7763 1.1 jruoho // save Local3 object type value into Local2
7764 1.1 jruoho Store (ObjectType (Local3), Local2)
7765 1.1 jruoho
7766 1.1 jruoho // validate Local3 is a Number
7767 1.1 jruoho If (LNotEqual (Local2, 1)) // Number type is 1
7768 1.1 jruoho { Return (2) } // failure
7769 1.1 jruoho
7770 1.1 jruoho // validate Local3 Number value
7771 1.1 jruoho If (LNotEqual (Local3, 0xFFFFFFFF)) // Number value 0xFFFFFFFF
7772 1.1 jruoho { Return (3) } // failure
7773 1.1 jruoho
7774 1.1 jruoho Store ("DWordField PASS", Debug)
7775 1.1 jruoho
7776 1.1 jruoho
7777 1.1 jruoho Store (0, Local5)
7778 1.1 jruoho Store (Match (DerefOf (Index (TIM0, 1, )), MLE, Local5, MTR, 0, 0), Local6)
7779 1.1 jruoho
7780 1.1 jruoho // save Local6 object type value into Local2
7781 1.1 jruoho Store (ObjectType (Local6), Local2)
7782 1.1 jruoho
7783 1.1 jruoho // validate Local6 is a Number
7784 1.1 jruoho If (LNotEqual (Local2, 1)) // Number type is 1
7785 1.1 jruoho { Return (4) } // failure
7786 1.1 jruoho
7787 1.1 jruoho Store ("Match(DerefOf(Index(TIM0,1)),... PASS", Debug)
7788 1.1 jruoho
7789 1.1 jruoho
7790 1.1 jruoho // validate following produces a nested package to validate
7791 1.1 jruoho // that MatchOp did not corrupt SearchPackage (TIM0)
7792 1.1 jruoho Store (DerefOf (Index (TIM0, 1, )), Local4)
7793 1.1 jruoho
7794 1.1 jruoho // save Local4 object type value into Local2
7795 1.1 jruoho Store (ObjectType (Local4), Local2)
7796 1.1 jruoho
7797 1.1 jruoho // validate Local4 is a Package
7798 1.1 jruoho If (LNotEqual (Local2, 4)) // Package type is 4
7799 1.1 jruoho { Return (5) } // failure
7800 1.1 jruoho
7801 1.1 jruoho Store ("DerefOf(Index(TIM0,1)),... PASS", Debug)
7802 1.1 jruoho
7803 1.1 jruoho
7804 1.1 jruoho And (Match (DerefOf (Index (TIM0, 0, )), MGE, PIO0, MTR, 0, 0), 3, Local0)
7805 1.1 jruoho
7806 1.1 jruoho // save Local0 object type value into Local2
7807 1.1 jruoho Store (ObjectType (Local0), Local2)
7808 1.1 jruoho
7809 1.1 jruoho // validate Local0 is a Number
7810 1.1 jruoho If (LNotEqual (Local2, 1)) // Number type is 1
7811 1.1 jruoho { Return (6) } // failure
7812 1.1 jruoho
7813 1.1 jruoho // validate Local0 Number value
7814 1.1 jruoho If (LNotEqual (Local0, 3)) // Number value 3
7815 1.1 jruoho { Return (7) } // failure
7816 1.1 jruoho
7817 1.1 jruoho Store ("And(Match(DerefOf(Index(TIM0,0)),... PASS", Debug)
7818 1.1 jruoho
7819 1.1 jruoho
7820 1.1 jruoho // again, validate following produces a nested package
7821 1.1 jruoho Store (DerefOf (Index (TIM0, 1, )), Local4)
7822 1.1 jruoho
7823 1.1 jruoho // save Local4 object type value into Local2
7824 1.1 jruoho Store (ObjectType (Local4), Local2)
7825 1.1 jruoho
7826 1.1 jruoho // validate Local4 is a Package
7827 1.1 jruoho If (LNotEqual (Local2, 4)) // Package type is 4
7828 1.1 jruoho { Return (8) } // failure
7829 1.1 jruoho
7830 1.1 jruoho Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7831 1.1 jruoho
7832 1.1 jruoho
7833 1.1 jruoho // again, validate following produces a nested package
7834 1.1 jruoho Store (DerefOf (Index (TIM0, 1, )), Local4)
7835 1.1 jruoho
7836 1.1 jruoho // save Local4 object type value into Local2
7837 1.1 jruoho Store (ObjectType (Local4), Local2)
7838 1.1 jruoho
7839 1.1 jruoho // validate Local4 is a Package
7840 1.1 jruoho If (LNotEqual (Local2, 4)) // Package type is 4
7841 1.1 jruoho { Return (9) } // failure
7842 1.1 jruoho
7843 1.1 jruoho Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7844 1.1 jruoho
7845 1.1 jruoho
7846 1.1 jruoho // test nested DerefOf(Index) operators
7847 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
7848 1.1 jruoho
7849 1.1 jruoho // save Local1 object type value into Local2
7850 1.1 jruoho Store (ObjectType (Local1), Local2)
7851 1.1 jruoho
7852 1.1 jruoho // validate Local1 is a Number
7853 1.1 jruoho If (LNotEqual (Local2, 1)) // Number type is 1
7854 1.1 jruoho { Return (10) } // failure
7855 1.1 jruoho
7856 1.1 jruoho // zero indicates pass, non-zero is an error code
7857 1.1 jruoho If (LNotEqual (Local1, 0))
7858 1.1 jruoho { Return (11) } // failure
7859 1.1 jruoho
7860 1.1 jruoho Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS", Debug)
7861 1.1 jruoho
7862 1.1 jruoho
7863 1.1 jruoho // again, validate following produces a nested package
7864 1.1 jruoho Store (DerefOf (Index (TIM0, 1, )), Local4)
7865 1.1 jruoho
7866 1.1 jruoho // save Local4 object type value into Local2
7867 1.1 jruoho Store (ObjectType (Local4), Local2)
7868 1.1 jruoho
7869 1.1 jruoho // validate Local4 is a Package
7870 1.1 jruoho If (LNotEqual (Local2, 4)) // Package type is 4
7871 1.1 jruoho { Return (12) } // failure
7872 1.1 jruoho
7873 1.1 jruoho Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7874 1.1 jruoho
7875 1.1 jruoho
7876 1.1 jruoho // retest nested DerefOf(Index) operators
7877 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
7878 1.1 jruoho
7879 1.1 jruoho // save Local1 object type value into Local2
7880 1.1 jruoho Store (ObjectType (Local1), Local2)
7881 1.1 jruoho
7882 1.1 jruoho // validate Local1 is a Number
7883 1.1 jruoho If (LNotEqual (Local2, 1)) // Number type is 1
7884 1.1 jruoho { Return (13) } // failure
7885 1.1 jruoho
7886 1.1 jruoho // zero indicates pass, non-zero is an error code
7887 1.1 jruoho If (LNotEqual (Local1, 0))
7888 1.1 jruoho { Return (14) } // failure
7889 1.1 jruoho
7890 1.1 jruoho Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS again", Debug)
7891 1.1 jruoho
7892 1.1 jruoho
7893 1.1 jruoho // again, validate following produces a nested package
7894 1.1 jruoho Store (DerefOf (Index (TIM0, 1, )), Local4)
7895 1.1 jruoho
7896 1.1 jruoho // save Local4 object type value into Local2
7897 1.1 jruoho Store (ObjectType (Local4), Local2)
7898 1.1 jruoho
7899 1.1 jruoho // validate Local4 is a Package
7900 1.1 jruoho If (LNotEqual (Local2, 4)) // Package type is 4
7901 1.1 jruoho { Return (15) } // failure
7902 1.1 jruoho
7903 1.1 jruoho Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7904 1.1 jruoho
7905 1.1 jruoho
7906 1.1 jruoho Return (0) // pass
7907 1.1 jruoho } // TEST
7908 1.1 jruoho } // MTCH
7909 1.1 jruoho
7910 1.1 jruoho //
7911 1.1 jruoho // test WhileBrk.asl
7912 1.1 jruoho //
7913 1.1 jruoho // This code tests the Break term and While term
7914 1.1 jruoho //
7915 1.1 jruoho // Syntax of Break term
7916 1.1 jruoho // BreakTerm := Break
7917 1.1 jruoho // The break operation causes the current package execution to complete.
7918 1.1 jruoho //
7919 1.1 jruoho // Syntax of While Term
7920 1.1 jruoho // WhileTerm := While(
7921 1.1 jruoho // Predicate //TermArg=>Integer
7922 1.1 jruoho // ) {TermList}
7923 1.1 jruoho // Predicate is evaluated as an integer.
7924 1.1 jruoho // If the integer is non-zero, the list of terms in TermList is executed.
7925 1.1 jruoho // The operation repeats until the Predicate evaluates to zero.
7926 1.1 jruoho //
7927 1.1 jruoho // MTL NOTE: This test has been modified to reflect ACPI 2.0 break
7928 1.1 jruoho // NOTE: This test, when run under the MS ACPI.SYS grinds the system to
7929 1.1 jruoho // a halt.
7930 1.1 jruoho //
7931 1.1 jruoho Device (WHLB)
7932 1.1 jruoho {
7933 1.1 jruoho Name (CNT0, 0)
7934 1.1 jruoho Name (CNT1, 0)
7935 1.1 jruoho
7936 1.1 jruoho Method (TEST)
7937 1.1 jruoho {
7938 1.1 jruoho // Check Break statement nested in If nested in While nested in
7939 1.1 jruoho // While only exits inner-most While loop
7940 1.1 jruoho Store (0, CNT0)
7941 1.1 jruoho
7942 1.1 jruoho While (LLess (CNT0, 4))
7943 1.1 jruoho {
7944 1.1 jruoho Store (0, CNT1)
7945 1.1 jruoho While (LLess (CNT1, 10))
7946 1.1 jruoho {
7947 1.1 jruoho if (LEqual (CNT1, 1))
7948 1.1 jruoho {
7949 1.1 jruoho Break // exit encompassing loop
7950 1.1 jruoho }
7951 1.1 jruoho
7952 1.1 jruoho Increment (CNT1)
7953 1.1 jruoho }
7954 1.1 jruoho
7955 1.1 jruoho If (LNotEqual (CNT1, 1))
7956 1.1 jruoho {
7957 1.1 jruoho // failure
7958 1.1 jruoho Return (7)
7959 1.1 jruoho }
7960 1.1 jruoho
7961 1.1 jruoho Increment (CNT0)
7962 1.1 jruoho }
7963 1.1 jruoho
7964 1.1 jruoho // Verify Break only exited inner-most While loop
7965 1.1 jruoho
7966 1.1 jruoho If (LNotEqual (CNT0, 4))
7967 1.1 jruoho {
7968 1.1 jruoho // failure
7969 1.1 jruoho Return (8)
7970 1.1 jruoho }
7971 1.1 jruoho
7972 1.1 jruoho Store ("While/While/If/Break PASS", Debug)
7973 1.1 jruoho
7974 1.1 jruoho Store ("++++++++ WhileBrk Test", Debug)
7975 1.1 jruoho
7976 1.1 jruoho // Check Break statement nested in While
7977 1.1 jruoho Store (0, CNT0)
7978 1.1 jruoho
7979 1.1 jruoho While (LLess (CNT0, 10))
7980 1.1 jruoho {
7981 1.1 jruoho Break // exit encompassing package
7982 1.1 jruoho Increment (CNT0)
7983 1.1 jruoho }
7984 1.1 jruoho
7985 1.1 jruoho If (LNotEqual (CNT0, 0)) // instruction after Break executed
7986 1.1 jruoho {
7987 1.1 jruoho Return (4)
7988 1.1 jruoho }
7989 1.1 jruoho
7990 1.1 jruoho
7991 1.1 jruoho Store (0, CNT0)
7992 1.1 jruoho
7993 1.1 jruoho // Test While Term
7994 1.1 jruoho While (LLess (CNT0, 10))
7995 1.1 jruoho {
7996 1.1 jruoho Increment (CNT0)
7997 1.1 jruoho }
7998 1.1 jruoho
7999 1.1 jruoho // Check if the while loop was executed until the condition is satisfied.
8000 1.1 jruoho If (LNotEqual (CNT0, 10))
8001 1.1 jruoho {
8002 1.1 jruoho Return (1)
8003 1.1 jruoho }
8004 1.1 jruoho
8005 1.1 jruoho
8006 1.1 jruoho // While loop in a reverse order
8007 1.1 jruoho While (LGreater (CNT0, 0))
8008 1.1 jruoho {
8009 1.1 jruoho Decrement (CNT0)
8010 1.1 jruoho }
8011 1.1 jruoho
8012 1.1 jruoho // Check if the while loop was executed until the condition is satisfied.
8013 1.1 jruoho If (LNotEqual (CNT0, 0))
8014 1.1 jruoho {
8015 1.1 jruoho Return (2)
8016 1.1 jruoho }
8017 1.1 jruoho
8018 1.1 jruoho
8019 1.1 jruoho Store ("While/Break PASS", Debug)
8020 1.1 jruoho
8021 1.1 jruoho
8022 1.1 jruoho // Check Break statement nested in If nested in While
8023 1.1 jruoho Store (0, CNT0)
8024 1.1 jruoho
8025 1.1 jruoho While (LLess (CNT0, 10))
8026 1.1 jruoho {
8027 1.1 jruoho if (LEqual (CNT0, 5))
8028 1.1 jruoho {
8029 1.1 jruoho Break // exit encompassing Package (If)
8030 1.1 jruoho
8031 1.1 jruoho // if we execute the next instruction,
8032 1.1 jruoho // Break did not exit the loop
8033 1.1 jruoho Store (20, CNT0) // exit While loop with value larger
8034 1.1 jruoho // than above
8035 1.1 jruoho }
8036 1.1 jruoho
8037 1.1 jruoho Increment (CNT0) // check if Break exited both If and While
8038 1.1 jruoho } // While
8039 1.1 jruoho
8040 1.1 jruoho If (LGreater (CNT0, 19))
8041 1.1 jruoho { // instruction after Break inside IfOp executed
8042 1.1 jruoho Return (5)
8043 1.1 jruoho }
8044 1.1 jruoho
8045 1.1 jruoho //
8046 1.1 jruoho // Break will exit out of the while loop, therefore
8047 1.1 jruoho // the CNT0 counter should still Increment until 5
8048 1.1 jruoho //
8049 1.1 jruoho If (LNotEqual (CNT0, 5))
8050 1.1 jruoho { // instruction after Break inside WhileOp executed
8051 1.1 jruoho Return (6)
8052 1.1 jruoho }
8053 1.1 jruoho Store ("While/If/Break PASS", Debug)
8054 1.1 jruoho
8055 1.1 jruoho
8056 1.1 jruoho // All the conditions passed
8057 1.1 jruoho Return (0)
8058 1.1 jruoho } // TEST
8059 1.1 jruoho } // WHLB
8060 1.1 jruoho
8061 1.1 jruoho
8062 1.1 jruoho //
8063 1.1 jruoho // test IndexOp2.asl
8064 1.1 jruoho //
8065 1.1 jruoho // Additional IndexOp test cases to support ACPICMB (control method battery
8066 1.1 jruoho // test) on Toshiba Portege 7020CT. Test cases include appropriate bit
8067 1.1 jruoho // shifting of Field elements and reading Field elements greater than 64 bits.
8068 1.1 jruoho //
8069 1.1 jruoho // MTL NOTE: This test has been modified slightly from the original test
8070 1.1 jruoho // to take into account ACPI specification limitations.
8071 1.1 jruoho //
8072 1.1 jruoho Scope (\_SB) // System Bus
8073 1.1 jruoho { // _SB system bus
8074 1.1 jruoho
8075 1.1 jruoho Device (MEM)
8076 1.1 jruoho { // MEM
8077 1.1 jruoho Name (_HID, 0x010CD041)
8078 1.1 jruoho Name (_STA, 0x0F)
8079 1.1 jruoho
8080 1.1 jruoho OperationRegion (SMEM, SystemMemory, 0x800000, 0x100)
8081 1.1 jruoho Field (SMEM, AnyAcc, NoLock, Preserve)
8082 1.1 jruoho { // Field: SMEM overlay using 32-bit field elements
8083 1.1 jruoho SMD0, 32, // 32-bits
8084 1.1 jruoho SMD1, 32, // 32-bits
8085 1.1 jruoho SMD2, 32, // 32-bits
8086 1.1 jruoho SMD3, 32 // 32-bits
8087 1.1 jruoho } // Field: SMEM overlay using 32-bit field elements
8088 1.1 jruoho Field (SMEM, AnyAcc, NoLock, Preserve)
8089 1.1 jruoho { // Field: SMEM overlay using greater than 32-bit field elements
8090 1.1 jruoho SME0, 69, // larger than an integer (32 or 64)
8091 1.1 jruoho SME1, 97 // larger than an integer
8092 1.1 jruoho } // Field: SMEM overlay using greater than 32-bit field elements
8093 1.1 jruoho
8094 1.1 jruoho OperationRegion (SRAM, SystemMemory, 0x100B0000, 0xF000)
8095 1.1 jruoho Field (SRAM, AnyAcc, NoLock, Preserve)
8096 1.1 jruoho { // Field: SRAM overlay
8097 1.1 jruoho , 0x34000, // skip
8098 1.1 jruoho IEAX, 0x20,
8099 1.1 jruoho IEBX, 0x20,
8100 1.1 jruoho IECX, 0x20,
8101 1.1 jruoho IEDX, 0x20,
8102 1.1 jruoho IESI, 0x20,
8103 1.1 jruoho IEDI, 0x20,
8104 1.1 jruoho IEBP, 0x20,
8105 1.1 jruoho , 0x20,
8106 1.1 jruoho OEAX, 0x20,
8107 1.1 jruoho OEBX, 0x20,
8108 1.1 jruoho OECX, 0x20,
8109 1.1 jruoho OEDX, 0x20,
8110 1.1 jruoho OESI, 0x20,
8111 1.1 jruoho OEDI, 0x20,
8112 1.1 jruoho OEBP, 0x20,
8113 1.1 jruoho , 0x618, // skip
8114 1.1 jruoho ACST, 1,
8115 1.1 jruoho BES1, 1,
8116 1.1 jruoho BES2, 1,
8117 1.1 jruoho , 5, // skip
8118 1.1 jruoho BMN1, 0x68,
8119 1.1 jruoho BSN1, 0x58,
8120 1.1 jruoho BTP1, 0x48,
8121 1.1 jruoho BPU1, 0x20,
8122 1.1 jruoho BDC1, 0x20,
8123 1.1 jruoho BLF1, 0x20,
8124 1.1 jruoho BTC1, 0x20,
8125 1.1 jruoho BDV1, 0x20,
8126 1.1 jruoho BST1, 0x20,
8127 1.1 jruoho BPR1, 0x20,
8128 1.1 jruoho BRC1, 0x20,
8129 1.1 jruoho BPV1, 0x20,
8130 1.1 jruoho , 0x20,
8131 1.1 jruoho BCW1, 0x20,
8132 1.1 jruoho BCL1, 0x20,
8133 1.1 jruoho BG11, 0x20,
8134 1.1 jruoho BG21, 0x20,
8135 1.1 jruoho BOI1, 0x20,
8136 1.1 jruoho , 0x530, // skip
8137 1.1 jruoho BMN2, 0x68,
8138 1.1 jruoho BSN2, 0x58,
8139 1.1 jruoho BTP2, 0x48,
8140 1.1 jruoho BPU2, 0x20,
8141 1.1 jruoho BDC2, 0x20,
8142 1.1 jruoho BLF2, 0x20,
8143 1.1 jruoho BTC2, 0x20,
8144 1.1 jruoho BDV2, 0x20,
8145 1.1 jruoho BST2, 0x20,
8146 1.1 jruoho BPR2, 0x20,
8147 1.1 jruoho BRC2, 0x20,
8148 1.1 jruoho BPV2, 0x20,
8149 1.1 jruoho , 0x20,
8150 1.1 jruoho BCW2, 0x20,
8151 1.1 jruoho BCL2, 0x20,
8152 1.1 jruoho BG12, 0x20,
8153 1.1 jruoho BG22, 0x20,
8154 1.1 jruoho BOI2, 0x20,
8155 1.1 jruoho , 0x518, // skip
8156 1.1 jruoho AC01, 0x10,
8157 1.1 jruoho AC11, 0x10,
8158 1.1 jruoho PSV1, 0x10,
8159 1.1 jruoho CRT1, 0x10,
8160 1.1 jruoho TMP1, 0x10,
8161 1.1 jruoho AST1, 0x10,
8162 1.1 jruoho AC21, 0x10,
8163 1.1 jruoho AC31, 0x10,
8164 1.1 jruoho AC02, 0x10,
8165 1.1 jruoho AC12, 0x10,
8166 1.1 jruoho PSV2, 0x10,
8167 1.1 jruoho CRT2, 0x10,
8168 1.1 jruoho TMP2, 0x10,
8169 1.1 jruoho AST2, 0x10,
8170 1.1 jruoho AC22, 0x10,
8171 1.1 jruoho AC32, 0x10,
8172 1.1 jruoho AC03, 0x10,
8173 1.1 jruoho AC13, 0x10,
8174 1.1 jruoho PSV3, 0x10,
8175 1.1 jruoho CRT3, 0x10,
8176 1.1 jruoho TMP3, 0x10,
8177 1.1 jruoho AST3, 0x10,
8178 1.1 jruoho AC23, 0x10,
8179 1.1 jruoho AC33, 0x10,
8180 1.1 jruoho , 0x80, // skip
8181 1.1 jruoho TMPF, 0x10,
8182 1.1 jruoho , 0x570, // skip
8183 1.1 jruoho FANH, 1,
8184 1.1 jruoho FANL, 7,
8185 1.1 jruoho TF11, 1,
8186 1.1 jruoho TF21, 1,
8187 1.1 jruoho TF31, 1,
8188 1.1 jruoho , 1,
8189 1.1 jruoho TF10, 1,
8190 1.1 jruoho TF20, 1,
8191 1.1 jruoho TF30, 1,
8192 1.1 jruoho , 1,
8193 1.1 jruoho TP11, 1,
8194 1.1 jruoho TP21, 1,
8195 1.1 jruoho TP31, 1,
8196 1.1 jruoho , 0x6D, // 109
8197 1.1 jruoho GP50, 1,
8198 1.1 jruoho GP51, 1,
8199 1.1 jruoho GP52, 1,
8200 1.1 jruoho GP53, 1,
8201 1.1 jruoho , 4,
8202 1.1 jruoho GP60, 1,
8203 1.1 jruoho GP61, 1,
8204 1.1 jruoho GP62, 1,
8205 1.1 jruoho GP63, 1,
8206 1.1 jruoho GP64, 1,
8207 1.1 jruoho GP65, 1,
8208 1.1 jruoho GP66, 1,
8209 1.1 jruoho , 1,
8210 1.1 jruoho GP70, 1,
8211 1.1 jruoho GP71, 1,
8212 1.1 jruoho GP72, 1,
8213 1.1 jruoho GP73, 1,
8214 1.1 jruoho GP74, 1,
8215 1.1 jruoho GP75, 1,
8216 1.1 jruoho GP76, 1,
8217 1.1 jruoho , 1,
8218 1.1 jruoho WED0, 1,
8219 1.1 jruoho WED1, 1,
8220 1.1 jruoho WED2, 1,
8221 1.1 jruoho WED3, 1,
8222 1.1 jruoho WED4, 1,
8223 1.1 jruoho , 3,
8224 1.1 jruoho SBL0, 1,
8225 1.1 jruoho SBL1, 1,
8226 1.1 jruoho SBL2, 1,
8227 1.1 jruoho SBL3, 1,
8228 1.1 jruoho , 4,
8229 1.1 jruoho LIDS, 1,
8230 1.1 jruoho VALF, 1,
8231 1.1 jruoho , 2,
8232 1.1 jruoho DCKI, 1,
8233 1.1 jruoho DCKF, 1,
8234 1.1 jruoho BT1F, 1,
8235 1.1 jruoho BT2F, 1,
8236 1.1 jruoho , 0x7D0, // skip
8237 1.1 jruoho HKCD, 8,
8238 1.1 jruoho , 8,
8239 1.1 jruoho DLID, 0x20,
8240 1.1 jruoho DSRN, 0x20,
8241 1.1 jruoho , 0x20,
8242 1.1 jruoho BDID, 0x20,
8243 1.1 jruoho DSPW, 1,
8244 1.1 jruoho VGAF, 1,
8245 1.1 jruoho VWE0, 1,
8246 1.1 jruoho VWE1, 1,
8247 1.1 jruoho PPSC, 1,
8248 1.1 jruoho SPSC, 1,
8249 1.1 jruoho EWLD, 1,
8250 1.1 jruoho EWPS, 1,
8251 1.1 jruoho , 0x1768, // skip
8252 1.1 jruoho PRES, 0x8000
8253 1.1 jruoho } // Field: SRAM overlay
8254 1.1 jruoho } // MEM
8255 1.1 jruoho
8256 1.1 jruoho Device (BAT1)
8257 1.1 jruoho { // BAT1
8258 1.1 jruoho Name (_HID, EISAID ("PNP0C0A")) // Control Method Battey ID
8259 1.1 jruoho Name (_UID, 1)
8260 1.1 jruoho Name (_PCL, Package (1) {\_SB})
8261 1.1 jruoho
8262 1.1 jruoho Method (_STA)
8263 1.1 jruoho { // _STA
8264 1.1 jruoho If (\_SB.MEM.BES1)
8265 1.1 jruoho { Return (0x1F) } // battery present
8266 1.1 jruoho Else
8267 1.1 jruoho { Return (0x0F) } // battery not present
8268 1.1 jruoho } // _STA
8269 1.1 jruoho
8270 1.1.1.3 christos Method (_BIF,, Serialized)
8271 1.1 jruoho { // _BIF
8272 1.1 jruoho Name (BUFR, Package (13) {})
8273 1.1 jruoho
8274 1.1 jruoho Store (\_SB.MEM.BPU1, Index (BUFR, 0))
8275 1.1 jruoho Store (\_SB.MEM.BDC1, Index (BUFR, 1))
8276 1.1 jruoho Store (\_SB.MEM.BLF1, Index (BUFR, 2))
8277 1.1 jruoho Store (\_SB.MEM.BTC1, Index (BUFR, 3))
8278 1.1 jruoho Store (\_SB.MEM.BDV1, Index (BUFR, 4))
8279 1.1 jruoho Store (\_SB.MEM.BCW1, Index (BUFR, 5))
8280 1.1 jruoho Store (\_SB.MEM.BCL1, Index (BUFR, 6))
8281 1.1 jruoho Store (\_SB.MEM.BG11, Index (BUFR, 7))
8282 1.1 jruoho Store (\_SB.MEM.BG21, Index (BUFR, 8))
8283 1.1 jruoho Store (\_SB.MEM.BMN1, Index (BUFR, 9))
8284 1.1 jruoho Store (\_SB.MEM.BSN1, Index (BUFR, 10))
8285 1.1 jruoho Store (\_SB.MEM.BTP1, Index (BUFR, 11))
8286 1.1 jruoho Store (\_SB.MEM.BOI1, Index (BUFR, 12))
8287 1.1 jruoho
8288 1.1 jruoho Return (BUFR)
8289 1.1 jruoho } // _BIF
8290 1.1 jruoho } // BAT1
8291 1.1 jruoho
8292 1.1 jruoho Device (IDX2)
8293 1.1 jruoho {
8294 1.1.1.3 christos Method (B2IB,, Serialized)
8295 1.1 jruoho { // B2IB: store from Buffer into Index'ed Buffer
8296 1.1 jruoho
8297 1.1 jruoho Name (SRCB, Buffer () {"Short Buffer"}) // 12 characters plus NULL
8298 1.1 jruoho
8299 1.1 jruoho Name (DEST, Buffer () // 62 characters plus NULL
8300 1.1 jruoho {"Destination buffer that is longer than the short source buffer"})
8301 1.1 jruoho
8302 1.1 jruoho
8303 1.1 jruoho // verify object type returned by Index(Buffer,Element,)
8304 1.1 jruoho
8305 1.1 jruoho Store (Index (DEST, 2, ), Local1)
8306 1.1 jruoho Store (ObjectType (Local1), Local2)
8307 1.1 jruoho
8308 1.1 jruoho If (LNotEqual (Local2, 14)) // Buffer Field is type 14
8309 1.1 jruoho {
8310 1.1 jruoho // Local2 indicates Local1 is not a Buffer Field
8311 1.1 jruoho
8312 1.1 jruoho Return (0x61)
8313 1.1 jruoho }
8314 1.1 jruoho
8315 1.1 jruoho // verify object type and value returned by DerefOf(Index(Buffer,Element,))
8316 1.1 jruoho // should return Number containing element value
8317 1.1 jruoho
8318 1.1 jruoho Store (DerefOf (Local1), Local3)
8319 1.1 jruoho Store (ObjectType (Local3), Local4)
8320 1.1 jruoho
8321 1.1 jruoho If (LNotEqual (Local4, 1)) // Number is type 1
8322 1.1 jruoho {
8323 1.1 jruoho // Local2 indicates Local1 is not a Number
8324 1.1 jruoho Return (0x62)
8325 1.1 jruoho }
8326 1.1 jruoho Else
8327 1.1 jruoho {
8328 1.1 jruoho If (LNotEqual (Local3, 0x73)) // expect 's' element from DEST
8329 1.1 jruoho {
8330 1.1 jruoho Return (0x63)
8331 1.1 jruoho }
8332 1.1 jruoho }
8333 1.1 jruoho
8334 1.1 jruoho Store ("DerefOf(Index(Buffer,,)) PASS", Debug)
8335 1.1 jruoho
8336 1.1 jruoho
8337 1.1 jruoho //
8338 1.1 jruoho // The following sections have been rewritten because storing into
8339 1.1 jruoho // an Indexed buffer only changes one byte - the FIRST byte of the
8340 1.1 jruoho // buffer is written to the source index. This is the ONLY byte
8341 1.1 jruoho // written -- as per ACPI 2.0
8342 1.1 jruoho //
8343 1.1 jruoho // Overwrite DEST contents, at buffer position 2 [only]
8344 1.1 jruoho
8345 1.1 jruoho Store (SRCB, Index (DEST, 2, ))
8346 1.1 jruoho
8347 1.1 jruoho //
8348 1.1 jruoho // Check that the next byte is not changed
8349 1.1 jruoho //
8350 1.1 jruoho Store (DerefOf (Index (DEST, 3, )), Local0)
8351 1.1 jruoho If (LNotEqual (Local0, 0x74)) // 't'
8352 1.1 jruoho {
8353 1.1 jruoho // DEST element is not matching original value
8354 1.1 jruoho If (LEqual (Local0, 0x68))
8355 1.1 jruoho {
8356 1.1 jruoho // DEST element was altered to 'h'
8357 1.1 jruoho Return (0x68)
8358 1.1 jruoho }
8359 1.1 jruoho Else
8360 1.1 jruoho {
8361 1.1 jruoho // DEST element is an unknown value
8362 1.1 jruoho Return (0x69)
8363 1.1 jruoho }
8364 1.1 jruoho }
8365 1.1 jruoho
8366 1.1 jruoho //
8367 1.1 jruoho // Check that the elements beyond the SRCB buffer copy
8368 1.1 jruoho // have not been altered.
8369 1.1 jruoho //
8370 1.1 jruoho Store (DerefOf (Index (DEST, 14)), Local0)
8371 1.1 jruoho
8372 1.1 jruoho //
8373 1.1 jruoho // This should be an 'f'.
8374 1.1 jruoho //
8375 1.1 jruoho If (LNotEqual (Local0, 0x66))
8376 1.1 jruoho {
8377 1.1 jruoho // DEST element was zero'd by buffer copy
8378 1.1 jruoho If (LEqual (Local0, 0))
8379 1.1 jruoho {
8380 1.1 jruoho // DEST element is zero
8381 1.1 jruoho Return (0x6A)
8382 1.1 jruoho }
8383 1.1 jruoho Else
8384 1.1 jruoho {
8385 1.1 jruoho // DEST element is unknown value
8386 1.1 jruoho Return (0x6B)
8387 1.1 jruoho }
8388 1.1 jruoho }
8389 1.1 jruoho
8390 1.1 jruoho Store ("Store(SRCB,Index(Buffer,,)) PASS", Debug)
8391 1.1 jruoho
8392 1.1 jruoho //
8393 1.1 jruoho // verify altering SRCB does NOT alter DEST
8394 1.1 jruoho //
8395 1.1 jruoho Store (0x6A, Index (SRCB, 1)) // SRCB = "Sjort Buffer"
8396 1.1 jruoho
8397 1.1 jruoho Store (DerefOf (Index (SRCB, 1)), Local0)
8398 1.1 jruoho
8399 1.1 jruoho If (LNotEqual (Local0, 0x6A)) // 'j'
8400 1.1 jruoho {
8401 1.1 jruoho // SRCB element is unaltered
8402 1.1 jruoho Return (0x71)
8403 1.1 jruoho }
8404 1.1 jruoho
8405 1.1 jruoho Store (DerefOf (Index (DEST, 3)), Local0) // DEST = "Destination buffer that...
8406 1.1 jruoho
8407 1.1 jruoho If (LNotEqual (Local0, 0x74)) // 't'
8408 1.1 jruoho {
8409 1.1 jruoho // DEST element is altered
8410 1.1 jruoho If (LEqual (Local0, 0x6A)) // 'j'
8411 1.1 jruoho {
8412 1.1 jruoho // SRCB change altered DEST element
8413 1.1 jruoho Return (0x72)
8414 1.1 jruoho }
8415 1.1 jruoho Else
8416 1.1 jruoho {
8417 1.1 jruoho // DEST element is unknown value
8418 1.1 jruoho Return (0x73)
8419 1.1 jruoho }
8420 1.1 jruoho }
8421 1.1 jruoho
8422 1.1 jruoho // verify altering DEST does NOT alter SRCB
8423 1.1 jruoho
8424 1.1 jruoho Store (0x6B, Index (DEST, 4, )) // DEST = "DeSkination buffer..."
8425 1.1 jruoho
8426 1.1 jruoho Store (DerefOf (Index (DEST, 4, )), Local0)
8427 1.1 jruoho
8428 1.1 jruoho If (LNotEqual (Local0, 0x6B)) // 'k'
8429 1.1 jruoho {
8430 1.1 jruoho // DEST element is unaltered
8431 1.1 jruoho Return (0x74)
8432 1.1 jruoho }
8433 1.1 jruoho
8434 1.1 jruoho Store (DerefOf (Index (SRCB, 2, )), Local0)
8435 1.1 jruoho
8436 1.1 jruoho If (LNotEqual (Local0, 0x6F)) // 'o'
8437 1.1 jruoho { // SRC element is altered
8438 1.1 jruoho If (LEqual (Local0, 0x6B)) // 'k'
8439 1.1 jruoho {
8440 1.1 jruoho // DEST change altered SRCB element
8441 1.1 jruoho Return (0x75)
8442 1.1 jruoho }
8443 1.1 jruoho Else
8444 1.1 jruoho {
8445 1.1 jruoho // SRCB element is unknown value
8446 1.1 jruoho Return (0x76)
8447 1.1 jruoho }
8448 1.1 jruoho }
8449 1.1 jruoho
8450 1.1 jruoho Store ("SRCB and DEST independent PASS", Debug)
8451 1.1 jruoho
8452 1.1 jruoho
8453 1.1 jruoho // verify string can be written to Index target/destination
8454 1.1 jruoho // Only FIRST byte is written
8455 1.1 jruoho
8456 1.1 jruoho Store ("New Buff", Index (DEST, 2, )) // DEST = "DeNkination buffer..."
8457 1.1 jruoho
8458 1.1 jruoho Store (DerefOf (Index (DEST, 2, )), Local0)
8459 1.1 jruoho
8460 1.1 jruoho If (LNotEqual (Local0, 0x4E)) // 'N'
8461 1.1 jruoho {
8462 1.1 jruoho // DEST element is unaltered
8463 1.1 jruoho Return (0x81)
8464 1.1 jruoho }
8465 1.1 jruoho
8466 1.1 jruoho Store (DerefOf (Index (DEST, 6, )), Local0)
8467 1.1 jruoho
8468 1.1 jruoho If (LNotEqual (Local0, 0x61)) // 'a'
8469 1.1 jruoho {
8470 1.1 jruoho // DEST element is unaltered
8471 1.1 jruoho Return (0x82)
8472 1.1 jruoho }
8473 1.1 jruoho
8474 1.1 jruoho Store (DerefOf (Index (DEST, 10, )), Local0)
8475 1.1 jruoho
8476 1.1 jruoho If (LNotEqual (Local0, 0x6E)) // 'n'
8477 1.1 jruoho {
8478 1.1 jruoho // DEST element is unaltered
8479 1.1 jruoho Return (0x83)
8480 1.1 jruoho }
8481 1.1 jruoho
8482 1.1 jruoho Store ("Store(String,Index) PASS", Debug)
8483 1.1 jruoho
8484 1.1 jruoho
8485 1.1 jruoho Return (0) // pass
8486 1.1 jruoho } // B2IB: store from Buffer into Index'ed Buffer
8487 1.1 jruoho
8488 1.1.1.3 christos Method (FB2P,, Serialized)
8489 1.1 jruoho { // FB2P: store from Field Buffer into Index'ed Package
8490 1.1 jruoho Name (DEST, Package (2) {})
8491 1.1 jruoho
8492 1.1 jruoho // initialize memory using 32-bit field elements
8493 1.1 jruoho Store (0x01234567, \_SB.MEM.SMD0)
8494 1.1 jruoho Store (0x89ABCDEF, \_SB.MEM.SMD1)
8495 1.1 jruoho Store (0xFEDCBA98, \_SB.MEM.SMD2)
8496 1.1 jruoho Store (0x76543210, \_SB.MEM.SMD3)
8497 1.1 jruoho
8498 1.1 jruoho // move greater than 64-bit buffers into DEST package
8499 1.1 jruoho Store (\_SB.MEM.SME0, Index (DEST, 0))
8500 1.1 jruoho Store (\_SB.MEM.SME1, Index (DEST, 1))
8501 1.1 jruoho
8502 1.1 jruoho // validate DEST contents
8503 1.1 jruoho Store (DerefOf (Index (DEST, 0, )), Local0)
8504 1.1 jruoho Store (DerefOf (Index (DEST, 1, )), Local1)
8505 1.1 jruoho
8506 1.1 jruoho // verify Local0 and Local1 are Buffers
8507 1.1 jruoho Store (ObjectType (Local0), Local2)
8508 1.1 jruoho if (LNotEqual (Local2, 3)) // Buffer type is 3
8509 1.1 jruoho {
8510 1.1 jruoho Return (0x11)
8511 1.1 jruoho }
8512 1.1 jruoho
8513 1.1 jruoho Store (ObjectType (Local1), Local3)
8514 1.1 jruoho if (LNotEqual (Local3, 3)) // Buffer type is 3
8515 1.1 jruoho {
8516 1.1 jruoho Return (0x12)
8517 1.1 jruoho }
8518 1.1 jruoho
8519 1.1 jruoho // validate DEST buffer contents
8520 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 0)), Local4)
8521 1.1 jruoho If (LNotEqual (Local4, 0x67))
8522 1.1 jruoho {
8523 1.1 jruoho Return (0x13)
8524 1.1 jruoho }
8525 1.1 jruoho
8526 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 1)), Local4)
8527 1.1 jruoho If (LNotEqual (Local4, 0x45))
8528 1.1 jruoho {
8529 1.1 jruoho Return (0x14)
8530 1.1 jruoho }
8531 1.1 jruoho
8532 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 4)), Local4)
8533 1.1 jruoho If (LNotEqual (Local4, 0xEF))
8534 1.1 jruoho {
8535 1.1 jruoho Return (0x15)
8536 1.1 jruoho }
8537 1.1 jruoho
8538 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 5, )), Local4)
8539 1.1 jruoho If (LNotEqual (Local4, 0xCD))
8540 1.1 jruoho {
8541 1.1 jruoho Return (0x16)
8542 1.1 jruoho }
8543 1.1 jruoho
8544 1.1 jruoho Store ("Store(Mem,PkgElement) PASS", Debug)
8545 1.1 jruoho
8546 1.1 jruoho
8547 1.1 jruoho // validate changing source \_SB.MEM.SMD* does not impact DEST
8548 1.1 jruoho Store (0x12345678, \_SB.MEM.SMD0)
8549 1.1 jruoho
8550 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 0, )), Local5)
8551 1.1 jruoho If (LNotEqual (Local5, 0x67))
8552 1.1 jruoho {
8553 1.1 jruoho Return (0x21)
8554 1.1 jruoho }
8555 1.1 jruoho
8556 1.1 jruoho Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 1, )), Local5)
8557 1.1 jruoho If (LNotEqual (Local5, 0x45))
8558 1.1 jruoho {
8559 1.1 jruoho Return (0x22)
8560 1.1 jruoho }
8561 1.1 jruoho
8562 1.1 jruoho // validate changing DEST does not impact source \_SB.MEM.SMD*
8563 1.1 jruoho Store (0x30, Index (DerefOf (Index (DEST, 0)), 0))
8564 1.1 jruoho
8565 1.1 jruoho Store (DerefOf(Index (DerefOf (Index (DEST, 0)), 0)), Local5)
8566 1.1 jruoho If (LNotEqual (Local5, 0x30))
8567 1.1 jruoho {
8568 1.1 jruoho Return (0x23)
8569 1.1 jruoho }
8570 1.1 jruoho
8571 1.1 jruoho //
8572 1.1 jruoho // This section was modified from the original iPCO code because
8573 1.1 jruoho // it attempted to compare two buffers. This is not allowed until
8574 1.1 jruoho // ACPI v2.0, so the test has been modified to just check the
8575 1.1 jruoho // changed \_SB.MEM.SMD0
8576 1.1 jruoho //
8577 1.1 jruoho Store (\_SB.MEM.SMD0, Local5)
8578 1.1 jruoho
8579 1.1 jruoho If(LNotEqual(Local5, 0x12345678))
8580 1.1 jruoho {
8581 1.1 jruoho Return (0x24)
8582 1.1 jruoho }
8583 1.1 jruoho
8584 1.1 jruoho Store ("Mem and Pkg independent PASS", Debug)
8585 1.1 jruoho
8586 1.1 jruoho
8587 1.1 jruoho Return (0)
8588 1.1 jruoho } // FB2P: store from Field Buffer into Index'ed Package
8589 1.1 jruoho
8590 1.1 jruoho Method (TEST)
8591 1.1 jruoho {
8592 1.1 jruoho Store ("++++++++ IndexOp2 Test", Debug)
8593 1.1 jruoho
8594 1.1 jruoho // store _BIF package return value into Local0
8595 1.1 jruoho
8596 1.1 jruoho Store (\_SB.BAT1._BIF, Local0)
8597 1.1 jruoho
8598 1.1 jruoho // save Local0 object type value into Local1
8599 1.1 jruoho Store (ObjectType (Local0), Local1)
8600 1.1 jruoho
8601 1.1 jruoho // validate Local0 is a Package
8602 1.1 jruoho If (LNotEqual (Local1, 4)) // Package type is 4
8603 1.1 jruoho {
8604 1.1 jruoho // failure
8605 1.1 jruoho Return (2)
8606 1.1 jruoho }
8607 1.1 jruoho
8608 1.1 jruoho // validate source and destination buffers are independent of each
8609 1.1 jruoho // of each other (i.e., changing one's contents does not change
8610 1.1 jruoho // other's contents) using B2IB (store from Buffer into Index'ed
8611 1.1 jruoho // Buffer) and FB2P (store from Field Buffer into Index'ed Package)
8612 1.1 jruoho
8613 1.1 jruoho // call B2IB (store from Buffer into Index'ed Buffer)
8614 1.1 jruoho Store (B2IB, Local2) // Local2 is B2IB return value
8615 1.1 jruoho
8616 1.1 jruoho // save Local2 object type value into Local3
8617 1.1 jruoho Store (ObjectType (Local2), Local3)
8618 1.1 jruoho
8619 1.1 jruoho // validate Local2 is a Number
8620 1.1 jruoho If (LNotEqual (Local3, 1)) // Number type is 1
8621 1.1 jruoho {
8622 1.1 jruoho // failure
8623 1.1 jruoho Return (4)
8624 1.1 jruoho }
8625 1.1 jruoho
8626 1.1 jruoho // zero indicates pass, non-zero is an error code
8627 1.1 jruoho If (LNotEqual (Local2, 0))
8628 1.1 jruoho {
8629 1.1 jruoho // return B2IB error code
8630 1.1 jruoho Return (Local2)
8631 1.1 jruoho }
8632 1.1 jruoho
8633 1.1 jruoho // call FB2P (store from Field Buffer into Index'ed Package)
8634 1.1 jruoho Store (FB2P, Local2) // Local2 is FB2P return value
8635 1.1 jruoho
8636 1.1 jruoho // save Local2 object type value into Local3
8637 1.1 jruoho Store (ObjectType (Local2), Local3)
8638 1.1 jruoho
8639 1.1 jruoho // validate Local2 is a Number
8640 1.1 jruoho If (LNotEqual (Local3, 1)) // Number type is 1
8641 1.1 jruoho {
8642 1.1 jruoho // failure
8643 1.1 jruoho Return (5)
8644 1.1 jruoho }
8645 1.1 jruoho
8646 1.1 jruoho // zero indicates pass, non-zero is an error code
8647 1.1 jruoho If (LNotEqual (Local2, 0))
8648 1.1 jruoho {
8649 1.1 jruoho // return FB2P error code
8650 1.1 jruoho Return (Local2)
8651 1.1 jruoho }
8652 1.1 jruoho
8653 1.1 jruoho
8654 1.1 jruoho Return (0)
8655 1.1 jruoho } // TEST
8656 1.1 jruoho } // IDX2: Test device name
8657 1.1 jruoho } // _SB system bus
8658 1.1 jruoho
8659 1.1 jruoho //
8660 1.1 jruoho // test SizeOf.asl
8661 1.1 jruoho //
8662 1.1 jruoho // Test for SizeOf
8663 1.1 jruoho // test cases include following SizeOf arguments:
8664 1.1 jruoho // buffer, buffer field;
8665 1.1 jruoho // control method argument, control method local variable;
8666 1.1 jruoho // control method return values;
8667 1.1 jruoho // direct string, string;
8668 1.1 jruoho // package;
8669 1.1 jruoho // buffer, package, and string package elements
8670 1.1 jruoho //
8671 1.1 jruoho // MTL NOTE: This test has been modified to remove any SizeOf(Index(Buff,...
8672 1.1 jruoho // calls because it is not legal to perform a SizeOf operation on a Buffer Field.
8673 1.1 jruoho // This test has also been extended to test additional Package element sizes.
8674 1.1 jruoho //
8675 1.1 jruoho Device (SIZO)
8676 1.1 jruoho {
8677 1.1 jruoho // SAR0 control method validates SizeOf(Arg)
8678 1.1 jruoho // SAR0 should only be called by SARG
8679 1.1 jruoho Method (SAR0, 2)
8680 1.1 jruoho // Arg0 object to determine size of
8681 1.1 jruoho // Arg1 expected Arg length
8682 1.1 jruoho { // SAR0: SizeOf(Arg) test control method
8683 1.1 jruoho // Local0 Arg0 length
8684 1.1 jruoho // Local1 Local0 object type
8685 1.1 jruoho
8686 1.1 jruoho // Store first string size (Arg0) into Local7
8687 1.1 jruoho Store (SizeOf (Arg0), Local0)
8688 1.1 jruoho
8689 1.1 jruoho // save Local0 object type value into Local1
8690 1.1 jruoho Store (ObjectType (Local0), Local1)
8691 1.1 jruoho
8692 1.1 jruoho // validate Local0 is a Number
8693 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8694 1.1 jruoho { Return (0x21) }
8695 1.1 jruoho
8696 1.1 jruoho // If strings are not of equal size, return error code
8697 1.1 jruoho If (LNotEqual (Local0, Arg1))
8698 1.1 jruoho { Return (0x22) }
8699 1.1 jruoho
8700 1.1 jruoho Return (0)
8701 1.1 jruoho } // SAR0: SizeOf(Arg) test control method
8702 1.1 jruoho
8703 1.1.1.3 christos Method (SARG,, Serialized)
8704 1.1 jruoho { // SARG: SizeOf(Arg) test control method
8705 1.1 jruoho Name (BUFR, Buffer (12) {}) // uninitialized Buffer
8706 1.1 jruoho Name (BUF1, Buffer() {0x01, 0x02, 0x03, 0x04, 0x05})
8707 1.1 jruoho Name (PKG0, Package (4) {}) // uninitialized Package
8708 1.1 jruoho Name (STR0, "String")
8709 1.1 jruoho Name (PKG1, Package (4)
8710 1.1 jruoho {
8711 1.1 jruoho BUFR,
8712 1.1 jruoho "String2",
8713 1.1 jruoho STR0,
8714 1.1 jruoho PKG0
8715 1.1 jruoho }) // PKG1
8716 1.1 jruoho
8717 1.1 jruoho Name (PKG2, Package (4)
8718 1.1 jruoho {
8719 1.1 jruoho Buffer (15) {},
8720 1.1 jruoho "String 1",
8721 1.1 jruoho Package (2) {}
8722 1.1 jruoho }) // PKG2
8723 1.1 jruoho
8724 1.1 jruoho // Namespace entry buffer reference
8725 1.1 jruoho Store (SAR0 (BUFR, 12), Local0)
8726 1.1 jruoho
8727 1.1 jruoho // save Local0 object type value into Local1
8728 1.1 jruoho Store (ObjectType (Local0), Local1)
8729 1.1 jruoho
8730 1.1 jruoho // validate Local0 is a Number
8731 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8732 1.1 jruoho {
8733 1.1 jruoho Return (0x23)
8734 1.1 jruoho }
8735 1.1 jruoho
8736 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8737 1.1 jruoho {
8738 1.1 jruoho Return (Local0)
8739 1.1 jruoho }
8740 1.1 jruoho
8741 1.1 jruoho Store ("SizeOf(Arg=BUFR) PASS", Debug)
8742 1.1 jruoho
8743 1.1 jruoho
8744 1.1 jruoho // Namespace entry package reference
8745 1.1 jruoho Store (SAR0 (PKG0, 4), Local0)
8746 1.1 jruoho
8747 1.1 jruoho // save Local0 object type value into Local1
8748 1.1 jruoho Store (ObjectType (Local0), Local1)
8749 1.1 jruoho
8750 1.1 jruoho // validate Local0 is a Number
8751 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8752 1.1 jruoho {
8753 1.1 jruoho Return (0x24)
8754 1.1 jruoho }
8755 1.1 jruoho
8756 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8757 1.1 jruoho {
8758 1.1 jruoho Return (Local0)
8759 1.1 jruoho }
8760 1.1 jruoho
8761 1.1 jruoho Store ("SizeOf(Arg=PKG0) PASS", Debug)
8762 1.1 jruoho
8763 1.1 jruoho
8764 1.1 jruoho // Namespace entry string reference
8765 1.1 jruoho Store (SAR0 (STR0, 6), Local0)
8766 1.1 jruoho
8767 1.1 jruoho // save Local0 object type value into Local1
8768 1.1 jruoho Store (ObjectType (Local0), Local1)
8769 1.1 jruoho
8770 1.1 jruoho // validate Local0 is a Number
8771 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8772 1.1 jruoho {
8773 1.1 jruoho Return (0x25)
8774 1.1 jruoho }
8775 1.1 jruoho
8776 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8777 1.1 jruoho {
8778 1.1 jruoho Return (Local0)
8779 1.1 jruoho }
8780 1.1 jruoho
8781 1.1 jruoho Store ("SizeOf(Arg=STR0) PASS", Debug)
8782 1.1 jruoho
8783 1.1 jruoho
8784 1.1 jruoho // direct string reference
8785 1.1 jruoho Store (SAR0 ("String", 6), Local0)
8786 1.1 jruoho
8787 1.1 jruoho // save Local0 object type value into Local1
8788 1.1 jruoho Store (ObjectType (Local0), Local1)
8789 1.1 jruoho
8790 1.1 jruoho // validate Local0 is a Number
8791 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8792 1.1 jruoho {
8793 1.1 jruoho Return (0x26)
8794 1.1 jruoho }
8795 1.1 jruoho
8796 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8797 1.1 jruoho {
8798 1.1 jruoho Return (Local0)
8799 1.1 jruoho }
8800 1.1 jruoho
8801 1.1 jruoho Store ("SizeOf(Arg=String) PASS", Debug)
8802 1.1 jruoho
8803 1.1 jruoho Store (0x55, Index (BUF1, 2))
8804 1.1 jruoho
8805 1.1 jruoho /****************************************************
8806 1.1 jruoho //
8807 1.1 jruoho // This section is commented because it is illegal to
8808 1.1 jruoho // perform a SizeOf operation on a Buffer Field
8809 1.1 jruoho //
8810 1.1 jruoho // Namespace BufferField reference
8811 1.1 jruoho Store (SAR0 (Index (BUFR, 2, ), 10), Local0)
8812 1.1 jruoho
8813 1.1 jruoho // save Local0 object type value into Local1
8814 1.1 jruoho Store (ObjectType (Local0), Local1)
8815 1.1 jruoho
8816 1.1 jruoho // validate Local0 is a Number
8817 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8818 1.1 jruoho { Return (0x27) }
8819 1.1 jruoho
8820 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8821 1.1 jruoho { Return (Local0) }
8822 1.1 jruoho
8823 1.1 jruoho Store ("SizeOf(Arg=BufferField) PASS", Debug)
8824 1.1 jruoho ****************************************************/
8825 1.1 jruoho
8826 1.1 jruoho // Namespace BufferPackageElement reference
8827 1.1 jruoho //
8828 1.1 jruoho Store (SAR0 (Index(PKG1, 0), 12), Local0)
8829 1.1 jruoho
8830 1.1 jruoho // save Local0 object type value into Local1
8831 1.1 jruoho Store (ObjectType (Local0), Local1)
8832 1.1 jruoho
8833 1.1 jruoho // validate Local0 is a Number
8834 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8835 1.1 jruoho {
8836 1.1 jruoho Return (0x28)
8837 1.1 jruoho }
8838 1.1 jruoho
8839 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8840 1.1 jruoho {
8841 1.1 jruoho Return (Local0)
8842 1.1 jruoho }
8843 1.1 jruoho
8844 1.1 jruoho Store ("SizeOf(Arg=PackageBuffer NTE Reference Element) PASS", Debug)
8845 1.1 jruoho
8846 1.1 jruoho
8847 1.1 jruoho // Namespace StringPackageElement reference
8848 1.1 jruoho Store (SAR0 (Index (PKG1, 1, ), 7), Local0)
8849 1.1 jruoho
8850 1.1 jruoho // save Local0 object type value into Local1
8851 1.1 jruoho Store (ObjectType (Local0), Local1)
8852 1.1 jruoho
8853 1.1 jruoho // validate Local0 is a Number
8854 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8855 1.1 jruoho {
8856 1.1 jruoho Return (0x29)
8857 1.1 jruoho }
8858 1.1 jruoho
8859 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8860 1.1 jruoho {
8861 1.1 jruoho Return (Local0)
8862 1.1 jruoho }
8863 1.1 jruoho
8864 1.1 jruoho Store ("SizeOf(Arg=Package String Element) PASS", Debug)
8865 1.1 jruoho
8866 1.1 jruoho
8867 1.1 jruoho // Namespace StringPackageElement reference
8868 1.1 jruoho Store (SAR0 (Index (PKG1, 2, ), 6), Local0)
8869 1.1 jruoho
8870 1.1 jruoho // save Local0 object type value into Local1
8871 1.1 jruoho Store (ObjectType (Local0), Local1)
8872 1.1 jruoho
8873 1.1 jruoho // validate Local0 is a Number
8874 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8875 1.1 jruoho {
8876 1.1 jruoho Return (0x2A)
8877 1.1 jruoho }
8878 1.1 jruoho
8879 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8880 1.1 jruoho {
8881 1.1 jruoho Return (Local0)
8882 1.1 jruoho }
8883 1.1 jruoho
8884 1.1 jruoho Store ("SizeOf(Arg=Package String NTE Reference Element) PASS", Debug)
8885 1.1 jruoho
8886 1.1 jruoho
8887 1.1 jruoho // Namespace PackagePackageElement reference
8888 1.1 jruoho Store (SAR0 (Index (PKG1, 3, ), 4), Local0)
8889 1.1 jruoho
8890 1.1 jruoho // save Local0 object type value into Local1
8891 1.1 jruoho Store (ObjectType (Local0), Local1)
8892 1.1 jruoho
8893 1.1 jruoho // validate Local0 is a Number
8894 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8895 1.1 jruoho {
8896 1.1 jruoho Return (0x2B)
8897 1.1 jruoho }
8898 1.1 jruoho
8899 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8900 1.1 jruoho {
8901 1.1 jruoho Return (Local0)
8902 1.1 jruoho }
8903 1.1 jruoho
8904 1.1 jruoho Store ("SizeOf(Arg=Package Package NTE Reference Element) PASS", Debug)
8905 1.1 jruoho
8906 1.1 jruoho // Package Buffer Element
8907 1.1 jruoho Store (SAR0 (Index (PKG2, 0), 15), Local0)
8908 1.1 jruoho
8909 1.1 jruoho // save Local0 object type value into Local1
8910 1.1 jruoho Store (ObjectType (Local0), Local1)
8911 1.1 jruoho
8912 1.1 jruoho // validate Local0 is a Number
8913 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8914 1.1 jruoho {
8915 1.1 jruoho Return (0x2B)
8916 1.1 jruoho }
8917 1.1 jruoho
8918 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8919 1.1 jruoho {
8920 1.1 jruoho Return (Local0)
8921 1.1 jruoho }
8922 1.1 jruoho
8923 1.1 jruoho Store ("SizeOf(Arg=Package Buffer Element) PASS", Debug)
8924 1.1 jruoho
8925 1.1 jruoho // Package String Element
8926 1.1 jruoho Store (SAR0 (Index (PKG2, 1), 8), Local0)
8927 1.1 jruoho
8928 1.1 jruoho // save Local0 object type value into Local1
8929 1.1 jruoho Store (ObjectType (Local0), Local1)
8930 1.1 jruoho
8931 1.1 jruoho // validate Local0 is a Number
8932 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8933 1.1 jruoho {
8934 1.1 jruoho Return (0x2B)
8935 1.1 jruoho }
8936 1.1 jruoho
8937 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8938 1.1 jruoho {
8939 1.1 jruoho Return (Local0)
8940 1.1 jruoho }
8941 1.1 jruoho
8942 1.1 jruoho Store ("SizeOf(Arg=Package String Element) PASS", Debug)
8943 1.1 jruoho
8944 1.1 jruoho // Package Package Element
8945 1.1 jruoho Store (SAR0 (Index (PKG2, 2), 2), Local0)
8946 1.1 jruoho
8947 1.1 jruoho // save Local0 object type value into Local1
8948 1.1 jruoho Store (ObjectType (Local0), Local1)
8949 1.1 jruoho
8950 1.1 jruoho // validate Local0 is a Number
8951 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8952 1.1 jruoho {
8953 1.1 jruoho Return (0x2B)
8954 1.1 jruoho }
8955 1.1 jruoho
8956 1.1 jruoho If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8957 1.1 jruoho {
8958 1.1 jruoho Return (Local0)
8959 1.1 jruoho }
8960 1.1 jruoho
8961 1.1 jruoho Store ("SizeOf(Arg=Package Package Element) PASS", Debug)
8962 1.1 jruoho
8963 1.1 jruoho Store ("SizeOf(Arg) PASS", Debug)
8964 1.1 jruoho
8965 1.1 jruoho Return (0)
8966 1.1 jruoho } // SARG: SizeOf(Arg) test control method
8967 1.1 jruoho
8968 1.1.1.3 christos Method (SBUF,, Serialized)
8969 1.1 jruoho { // SBUF: SizeOf(Buffer) test control method
8970 1.1 jruoho Name (BUFR, Buffer (12) {})
8971 1.1 jruoho
8972 1.1 jruoho // store size of BUFR buffer into Local0
8973 1.1 jruoho Store (SizeOf (BUFR), Local0)
8974 1.1 jruoho
8975 1.1 jruoho // save Local0 object type value into Local1
8976 1.1 jruoho Store (ObjectType (Local0), Local1)
8977 1.1 jruoho
8978 1.1 jruoho // validate Local0 is a Number
8979 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
8980 1.1 jruoho {
8981 1.1 jruoho Return (0x31)
8982 1.1 jruoho }
8983 1.1 jruoho
8984 1.1 jruoho If (LNotEqual (Local0, 12)) // BUFR size is 12
8985 1.1 jruoho {
8986 1.1 jruoho Return (0x32)
8987 1.1 jruoho }
8988 1.1 jruoho
8989 1.1 jruoho Store ("SizeOf(BUFR) PASS", Debug)
8990 1.1 jruoho
8991 1.1 jruoho Return (0)
8992 1.1 jruoho } // SBUF: SizeOf(Buffer) test control method
8993 1.1 jruoho
8994 1.1 jruoho
8995 1.1 jruoho /****************************************************
8996 1.1 jruoho //
8997 1.1 jruoho // This section is commented because it is illegal to
8998 1.1 jruoho // perform a SizeOf operation on a Buffer Field
8999 1.1 jruoho //
9000 1.1 jruoho Method (SIND)
9001 1.1 jruoho { // SIND: SizeOf(Index(,,)) test control method
9002 1.1 jruoho Name (BUFR, Buffer (12) {})
9003 1.1 jruoho
9004 1.1 jruoho // store size of Index(BUFR,2,) buffer into Local0
9005 1.1 jruoho Store (SizeOf (Index (BUFR, 2, )), Local0)
9006 1.1 jruoho
9007 1.1 jruoho // save Local0 object type value into Local1
9008 1.1 jruoho Store (ObjectType (Local0), Local1)
9009 1.1 jruoho
9010 1.1 jruoho // validate Local0 is a Number
9011 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
9012 1.1 jruoho {
9013 1.1 jruoho Return (0x41)
9014 1.1 jruoho }
9015 1.1 jruoho
9016 1.1 jruoho If (LNotEqual (Local0, 10)) // 12 - 2 = 10
9017 1.1 jruoho {
9018 1.1 jruoho Return (0x42)
9019 1.1 jruoho }
9020 1.1 jruoho
9021 1.1 jruoho Store ("SizeOf(Index(BUFR,,)) PASS", Debug)
9022 1.1 jruoho
9023 1.1 jruoho // TBD: strings and packages
9024 1.1 jruoho
9025 1.1 jruoho Return (0)
9026 1.1 jruoho } // SIND: SizeOf(Index(,,)) test control method
9027 1.1 jruoho ****************************************************/
9028 1.1 jruoho
9029 1.1.1.3 christos Method (SLOC,, Serialized)
9030 1.1 jruoho { // SLOC: SizeOf(Local) test control method
9031 1.1 jruoho Name (BUFR, Buffer (12) {}) // uninitialized Buffer
9032 1.1 jruoho Name (STR0, "String")
9033 1.1 jruoho Name (PKG0, Package (4) {}) // uninitialized Package
9034 1.1 jruoho
9035 1.1 jruoho
9036 1.1 jruoho // store BUFR Buffer into Local2
9037 1.1 jruoho Store (BUFR, Local2)
9038 1.1 jruoho
9039 1.1 jruoho // store size of BUFR buffer into Local0
9040 1.1 jruoho Store (SizeOf (Local2), Local0)
9041 1.1 jruoho
9042 1.1 jruoho // save Local0 object type value into Local1
9043 1.1 jruoho Store (ObjectType (Local0), Local1)
9044 1.1 jruoho
9045 1.1 jruoho // validate Local0 is a Number
9046 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
9047 1.1 jruoho {
9048 1.1 jruoho Return (0x51)
9049 1.1 jruoho }
9050 1.1 jruoho
9051 1.1 jruoho If (LNotEqual (Local0, 12)) // BUFR size is 12
9052 1.1 jruoho {
9053 1.1 jruoho Return (0x52)
9054 1.1 jruoho }
9055 1.1 jruoho
9056 1.1 jruoho Store ("SizeOf(Local2=Buffer) PASS", Debug)
9057 1.1 jruoho
9058 1.1 jruoho
9059 1.1 jruoho // store STR0 string into Local2
9060 1.1 jruoho Store (STR0, Local2)
9061 1.1 jruoho
9062 1.1 jruoho // store size of STR0 buffer into Local0
9063 1.1 jruoho Store (SizeOf (Local2), Local0)
9064 1.1 jruoho
9065 1.1 jruoho // save Local0 object type value into Local1
9066 1.1 jruoho Store (ObjectType (Local0), Local1)
9067 1.1 jruoho
9068 1.1 jruoho // validate Local0 is a Number
9069 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
9070 1.1 jruoho {
9071 1.1 jruoho Return (0x53)
9072 1.1 jruoho }
9073 1.1 jruoho
9074 1.1 jruoho If (LNotEqual (Local0, 6)) // STR0 size is 6
9075 1.1 jruoho {
9076 1.1 jruoho Return (0x54)
9077 1.1 jruoho }
9078 1.1 jruoho
9079 1.1 jruoho Store ("SizeOf(Local2=String) PASS", Debug)
9080 1.1 jruoho
9081 1.1 jruoho
9082 1.1 jruoho // store PKG0 Package into Local2
9083 1.1 jruoho Store (PKG0, Local2)
9084 1.1 jruoho
9085 1.1 jruoho // store size of PKG0 buffer into Local0
9086 1.1 jruoho Store (SizeOf (Local2), Local0)
9087 1.1 jruoho
9088 1.1 jruoho // save Local0 object type value into Local1
9089 1.1 jruoho Store (ObjectType (Local0), Local1)
9090 1.1 jruoho
9091 1.1 jruoho // validate Local0 is a Number
9092 1.1 jruoho If (LNotEqual (Local1, 1)) // Number type is 1
9093 1.1 jruoho {
9094 1.1 jruoho Return (0x55)
9095 1.1 jruoho }
9096 1.1 jruoho
9097 1.1 jruoho If (LNotEqual (Local0, 4)) // PKG0 size is 4
9098 1.1 jruoho {
9099 1.1 jruoho Return (0x56)
9100 1.1 jruoho }
9101 1.1 jruoho
9102 1.1 jruoho Store ("SizeOf(Local2=Package) PASS", Debug)
9103 1.1 jruoho
9104 1.1 jruoho
9105 1.1 jruoho Return (0)
9106 1.1 jruoho } // SLOC: SizeOf(Local) test control method
9107 1.1 jruoho
9108 1.1 jruoho Method (TEST)
9109 1.1 jruoho {
9110 1.1 jruoho Store ("++++++++ SizeOf Test", Debug)
9111 1.1 jruoho
9112 1.1 jruoho // Store current operating system string into Local0
9113 1.1 jruoho Store (_OS, Local0)
9114 1.1 jruoho
9115 1.1 jruoho Store (SizeOf (_OS), Local3)
9116 1.1 jruoho
9117 1.1 jruoho // save Local3 object type value into Local4
9118 1.1 jruoho Store (ObjectType (Local3), Local4)
9119 1.1 jruoho
9120 1.1 jruoho // validate Local3 is a Number
9121 1.1 jruoho If (LNotEqual (Local4, 1)) // Number type is 1
9122 1.1 jruoho {
9123 1.1 jruoho // failure
9124 1.1 jruoho Return (0x61)
9125 1.1 jruoho }
9126 1.1 jruoho
9127 1.1 jruoho // Store current operating system string into Local0
9128 1.1 jruoho // This verifies above SizeOf(_OS) did not corrupt ACPI namespace
9129 1.1 jruoho Store (_OS, Local0)
9130 1.1 jruoho
9131 1.1 jruoho // Store SARG [Validate SizeOf(Arg)] return value into Local1
9132 1.1 jruoho Store (SARG, Local1)
9133 1.1 jruoho
9134 1.1 jruoho // save Local1 object type value into Local2
9135 1.1 jruoho Store (ObjectType (Local1), Local2)
9136 1.1 jruoho
9137 1.1 jruoho // validate Local1 is a Number
9138 1.1 jruoho If (LNotEqual (Local2, 1)) // Number type is 1
9139 1.1 jruoho {
9140 1.1 jruoho // failure
9141 1.1 jruoho Return (0x62)
9142 1.1 jruoho }
9143 1.1 jruoho
9144 1.1 jruoho // zero indicates pass, non-zero is an error code
9145 1.1 jruoho If (LNotEqual (Local1, 0))
9146 1.1 jruoho {
9147 1.1 jruoho // return SARG error code
9148 1.1 jruoho Return (Local1)
9149 1.1 jruoho }
9150 1.1 jruoho
9151 1.1 jruoho
9152 1.1 jruoho // Store SBUF [Validate SizeOf(Buffer)] return value into Local1
9153 1.1 jruoho Store (SBUF, Local1)
9154 1.1 jruoho
9155 1.1 jruoho // save Local1 object type value into Local2
9156 1.1 jruoho Store (ObjectType (Local1), Local2)
9157 1.1 jruoho
9158 1.1 jruoho // validate Local1 is a Number
9159 1.1 jruoho If (LNotEqual (Local2, 1)) // Number type is 1
9160 1.1 jruoho {
9161 1.1 jruoho // failure
9162 1.1 jruoho Return (0x63)
9163 1.1 jruoho }
9164 1.1 jruoho
9165 1.1 jruoho // zero indicates pass, non-zero is an error code
9166 1.1 jruoho If (LNotEqual (Local1, 0))
9167 1.1 jruoho {
9168 1.1 jruoho // return SBUF error code
9169 1.1 jruoho Return (Local1)
9170 1.1 jruoho }
9171 1.1 jruoho
9172 1.1 jruoho /****************************************************
9173 1.1 jruoho //
9174 1.1 jruoho // This section is commented because it is illegal to
9175 1.1 jruoho // perform a SizeOf operation on a Buffer Field
9176 1.1 jruoho //
9177 1.1 jruoho // Store SIND [verify SizeOf(Index(,,))] return value into Local1
9178 1.1 jruoho Store (SIND, Local1)
9179 1.1 jruoho
9180 1.1 jruoho // save Local1 object type value into Local2
9181 1.1 jruoho Store (ObjectType (Local1), Local2)
9182 1.1 jruoho
9183 1.1 jruoho // validate Local1 is a Number
9184 1.1 jruoho If (LNotEqual (Local2, 1)) // Number type is 1
9185 1.1 jruoho {
9186 1.1 jruoho // failure
9187 1.1 jruoho Return (0x64)
9188 1.1 jruoho }
9189 1.1 jruoho
9190 1.1 jruoho // zero indicates pass, non-zero is an error code
9191 1.1 jruoho If (LNotEqual (Local1, 0))
9192 1.1 jruoho {
9193 1.1 jruoho // return SARG error code
9194 1.1 jruoho Return (Local1)
9195 1.1 jruoho }
9196 1.1 jruoho ****************************************************/
9197 1.1 jruoho
9198 1.1 jruoho // Store SLOC [verify SizeOf(Local)] return value into Local1
9199 1.1 jruoho Store (SLOC, Local1)
9200 1.1 jruoho
9201 1.1 jruoho // save Local1 object type value into Local2
9202 1.1 jruoho Store (ObjectType (Local1), Local2)
9203 1.1 jruoho
9204 1.1 jruoho // validate Local1 is a Number
9205 1.1 jruoho If (LNotEqual (Local2, 1)) // Number type is 1
9206 1.1 jruoho {
9207 1.1 jruoho // failure
9208 1.1 jruoho Return (0x65)
9209 1.1 jruoho }
9210 1.1 jruoho
9211 1.1 jruoho // zero indicates pass, non-zero is an error code
9212 1.1 jruoho If (LNotEqual (Local1, 0))
9213 1.1 jruoho {
9214 1.1 jruoho // return SLOC error code
9215 1.1 jruoho Return (Local1)
9216 1.1 jruoho }
9217 1.1 jruoho
9218 1.1 jruoho
9219 1.1 jruoho // TBD: SizeOf (METH) -- where METH control method returns
9220 1.1 jruoho // buffer, BufferField, string, package, package element
9221 1.1 jruoho
9222 1.1 jruoho
9223 1.1 jruoho Return (0)
9224 1.1 jruoho } // TEST
9225 1.1 jruoho } // SIZO
9226 1.1 jruoho
9227 1.1 jruoho //
9228 1.1 jruoho // test SmiShare.asl
9229 1.1 jruoho //
9230 1.1 jruoho Scope (\_SB) // System Bus
9231 1.1 jruoho { // _SB system bus
9232 1.1 jruoho // Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
9233 1.1 jruoho OperationRegion(RAM1, SystemMemory, 0x400000, 0xA)
9234 1.1 jruoho
9235 1.1 jruoho Field (RAM1, AnyAcc, NoLock, Preserve)
9236 1.1 jruoho {
9237 1.1 jruoho BI1T, 1, // Create some bits in memory to access
9238 1.1 jruoho BI2T, 2,
9239 1.1 jruoho BI3T, 3,
9240 1.1 jruoho LST2, 2
9241 1.1 jruoho } // End Field RAM1
9242 1.1 jruoho
9243 1.1 jruoho Field (RAM1, WordAcc, NoLock, WriteAsZeros)
9244 1.1 jruoho {
9245 1.1 jruoho WRD, 16
9246 1.1 jruoho } // End 2nd Field RAM1
9247 1.1 jruoho
9248 1.1 jruoho Field (RAM1, ByteAcc, NoLock, WriteAsOnes)
9249 1.1 jruoho {
9250 1.1 jruoho BYTE, 8
9251 1.1 jruoho } // End 3rd Field RAM1
9252 1.1 jruoho
9253 1.1 jruoho Field (RAM1, ByteAcc, NoLock, Preserve)
9254 1.1 jruoho {
9255 1.1 jruoho SMIC, 8,
9256 1.1 jruoho SMID, 8
9257 1.1 jruoho }
9258 1.1 jruoho
9259 1.1 jruoho Device (MBIT)
9260 1.1 jruoho {
9261 1.1 jruoho Method (_INI)
9262 1.1 jruoho {
9263 1.1 jruoho Store (0, BI1T)
9264 1.1 jruoho Store (3, BI2T)
9265 1.1 jruoho Store (7, BI3T)
9266 1.1 jruoho Store (0, LST2)
9267 1.1 jruoho } // End _INI Method
9268 1.1 jruoho } // End Device MBIT
9269 1.1 jruoho
9270 1.1 jruoho Device (MWRD)
9271 1.1 jruoho {
9272 1.1 jruoho Method (_INI)
9273 1.1 jruoho {
9274 1.1 jruoho Store (0, WRD)
9275 1.1 jruoho } // End _INI Method
9276 1.1 jruoho } // End Device MWRD
9277 1.1 jruoho
9278 1.1 jruoho Device (MBYT)
9279 1.1 jruoho {
9280 1.1 jruoho Method (_INI)
9281 1.1 jruoho {
9282 1.1 jruoho Store (0, BYTE)
9283 1.1 jruoho Store (0xC, SMIC)
9284 1.1 jruoho Store (0xD, SMID)
9285 1.1 jruoho } // End _INI Method
9286 1.1 jruoho } // End Device MBYT
9287 1.1 jruoho
9288 1.1 jruoho /*
9289 1.1 jruoho // Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
9290 1.1 jruoho OperationRegion(\RAM1, SystemMemory, 0x400000, 0xA)
9291 1.1 jruoho
9292 1.1 jruoho Field (\RAM1, AnyAcc, NoLock, Preserve)
9293 1.1 jruoho {
9294 1.1 jruoho BI1T, 1, // Create some bits in memory to access
9295 1.1 jruoho BI2T, 2,
9296 1.1 jruoho BI3T, 3,
9297 1.1 jruoho LST2, 2
9298 1.1 jruoho } // End Field RAM1
9299 1.1 jruoho
9300 1.1 jruoho Field (\RAM1, WordAcc, NoLock, WriteAsZeros)
9301 1.1 jruoho {
9302 1.1 jruoho WRD, 16
9303 1.1 jruoho } // End 2nd Field RAM1
9304 1.1 jruoho
9305 1.1 jruoho Field (\RAM1, ByteAcc, NoLock, WriteAsOnes)
9306 1.1 jruoho {
9307 1.1 jruoho BYTE, 8
9308 1.1 jruoho } // End 3rd Field RAM1
9309 1.1 jruoho
9310 1.1 jruoho Field (\RAM1, ByteAcc, NoLock, Preserve)
9311 1.1 jruoho {
9312 1.1 jruoho SMIC, 8,
9313 1.1 jruoho SMID, 8
9314 1.1 jruoho }
9315 1.1 jruoho */
9316 1.1 jruoho Method (SMIX)
9317 1.1 jruoho {
9318 1.1 jruoho Return (BYTE)
9319 1.1 jruoho } // End SMIX
9320 1.1 jruoho
9321 1.1 jruoho Method (EVNT)
9322 1.1 jruoho {
9323 1.1 jruoho Store (SMIX, Local0)
9324 1.1 jruoho
9325 1.1.1.3 christos Notify (\_SB_, 0x29)
9326 1.1 jruoho If (And (Local0, 0x01))
9327 1.1 jruoho { Notify (\_SB_.SMIS, 0x21)}
9328 1.1 jruoho
9329 1.1 jruoho If (And (Local0, 0x02))
9330 1.1 jruoho { Notify (\_SB_.SMIS, 0x22)}
9331 1.1 jruoho
9332 1.1 jruoho If (And (Local0, 0x04))
9333 1.1 jruoho { Notify (\_SB_.SMIS, 0x24)}
9334 1.1 jruoho
9335 1.1 jruoho If (And (Local0, 0x08))
9336 1.1 jruoho { Notify (\_SB_.SMIS, 0x28)}
9337 1.1 jruoho
9338 1.1 jruoho } // End Method EVNT
9339 1.1 jruoho
9340 1.1.1.3 christos Method (NTFY)
9341 1.1.1.3 christos {
9342 1.1.1.3 christos Notify (\_SB_, 1)
9343 1.1.1.3 christos Notify (\_TZ_.TZ1, 2)
9344 1.1.1.3 christos Notify (\_PR_.CPU0, 3)
9345 1.1.1.3 christos
9346 1.1.1.3 christos Notify (\_SB_, 0x81)
9347 1.1.1.3 christos Notify (\_TZ_.TZ1, 0x82)
9348 1.1.1.3 christos Notify (\_PR_.CPU0, 0x83)
9349 1.1.1.3 christos }
9350 1.1.1.3 christos
9351 1.1 jruoho Device (SMIS)
9352 1.1 jruoho {
9353 1.1 jruoho Method (BINK)
9354 1.1 jruoho {
9355 1.1 jruoho Store (0, Local0) // Zero out Local0
9356 1.1 jruoho
9357 1.1 jruoho If (LNotEqual (SMID, 0xD))
9358 1.1 jruoho { Or (0x80, Local0, Local0)}
9359 1.1 jruoho
9360 1.1 jruoho If (LNotEqual (SMIC, 0xC))
9361 1.1 jruoho { Or (0x40, Local0, Local0)}
9362 1.1 jruoho
9363 1.1 jruoho If (LNotEqual (BYTE, 0))
9364 1.1 jruoho { Or (0x20, Local0, Local0)}
9365 1.1 jruoho
9366 1.1 jruoho If (LNotEqual (WRD, 0))
9367 1.1 jruoho { Or (0x10, Local0, Local0)}
9368 1.1 jruoho
9369 1.1 jruoho If (LNotEqual (LST2, 0))
9370 1.1 jruoho { Or (0x8, Local0, Local0)}
9371 1.1 jruoho
9372 1.1 jruoho If (LNotEqual (BI3T, 0x7))
9373 1.1 jruoho { Or (0x4, Local0, Local0)}
9374 1.1 jruoho
9375 1.1 jruoho If (LNotEqual (BI2T, 0x3))
9376 1.1 jruoho { Or (0x2, Local0, Local0)}
9377 1.1 jruoho
9378 1.1 jruoho If (LNotEqual (BI1T, 0))
9379 1.1 jruoho { Or (0x1, Local0, Local0)}
9380 1.1 jruoho
9381 1.1 jruoho Return (Local0)
9382 1.1 jruoho } // End Method BINK
9383 1.1 jruoho
9384 1.1 jruoho Method (TEST)
9385 1.1 jruoho {
9386 1.1 jruoho Store ("++++++++ SmiShare Test", Debug)
9387 1.1 jruoho
9388 1.1 jruoho // Expect EVNT to generate Notify value we just previously
9389 1.1 jruoho // stored in BYTE
9390 1.1.1.3 christos
9391 1.1 jruoho Store (0x20, BYTE)
9392 1.1 jruoho EVNT ()
9393 1.1 jruoho Store (0x21, BYTE)
9394 1.1 jruoho EVNT ()
9395 1.1 jruoho Store (0x22, BYTE)
9396 1.1 jruoho EVNT ()
9397 1.1 jruoho Store (0x23, BYTE)
9398 1.1 jruoho EVNT ()
9399 1.1 jruoho
9400 1.1.1.3 christos NTFY ()
9401 1.1 jruoho Return (0) // pass
9402 1.1 jruoho } // End Method TEST
9403 1.1 jruoho } // Device SMIS
9404 1.1 jruoho
9405 1.1 jruoho Device(CNDT)
9406 1.1 jruoho {
9407 1.1 jruoho Method(TEST)
9408 1.1 jruoho {
9409 1.1 jruoho If (ECOK)
9410 1.1 jruoho {
9411 1.1 jruoho return("Broken")
9412 1.1 jruoho }
9413 1.1 jruoho Else
9414 1.1 jruoho {
9415 1.1 jruoho return("Works")
9416 1.1 jruoho }
9417 1.1 jruoho }
9418 1.1 jruoho
9419 1.1 jruoho Method(ECOK)
9420 1.1 jruoho {
9421 1.1 jruoho Return(0x0)
9422 1.1 jruoho }
9423 1.1 jruoho }
9424 1.1 jruoho
9425 1.1 jruoho } // _SB system bus
9426 1.1 jruoho
9427 1.1 jruoho
9428 1.1 jruoho /* Test a very big buffer */
9429 1.1 jruoho
9430 1.1 jruoho Name(WQAB, Buffer(6756)
9431 1.1 jruoho {
9432 1.1 jruoho 0x46,0x4F,0x4D,0x42,0x01,0x00,0x00,0x00,
9433 1.1 jruoho 0x54,0x1A,0x00,0x00,0xBA,0xAD,0x00,0x00,
9434 1.1 jruoho 0x44,0x53,0x00,0x01,0x1A,0x7D,0xDA,0x54,
9435 1.1 jruoho 0x98,0xBD,0x92,0x00,0x01,0x06,0x18,0x42,
9436 1.1 jruoho 0x10,0x47,0x10,0x92,0x46,0x62,0x02,0x89,
9437 1.1 jruoho 0x80,0x90,0x18,0x18,0x14,0x81,0x85,0x00,
9438 1.1 jruoho 0x49,0x02,0x88,0xC4,0x41,0xE1,0x20,0xD4,
9439 1.1 jruoho 0x9F,0x40,0x7E,0x05,0x20,0x74,0x28,0x40,
9440 1.1 jruoho 0xA6,0x00,0x83,0x02,0x9C,0x22,0x88,0xA0,
9441 1.1 jruoho 0x57,0x01,0x36,0x05,0x98,0x14,0x60,0x51,
9442 1.1 jruoho 0x80,0x76,0x01,0x96,0x05,0xE8,0x16,0x20,
9443 1.1 jruoho 0x1D,0x96,0x88,0x04,0x47,0x89,0x01,0x47,
9444 1.1 jruoho 0xE9,0xC4,0x16,0x6E,0xD8,0xE0,0x85,0xA2,
9445 1.1 jruoho 0x68,0x06,0x51,0x12,0x94,0x8B,0x20,0x5D,
9446 1.1 jruoho 0x10,0x52,0x2E,0xC0,0x37,0x82,0x06,0x10,
9447 1.1 jruoho 0xA5,0x77,0x01,0xB6,0x05,0x98,0x86,0x27,
9448 1.1 jruoho 0xD2,0x20,0xE4,0x60,0x08,0x54,0xCE,0x80,
9449 1.1 jruoho 0x20,0x69,0x44,0x21,0x1E,0xA7,0x44,0x08,
9450 1.1 jruoho 0x0A,0x84,0x90,0xD4,0xF1,0xA0,0xA0,0x71,
9451 1.1 jruoho 0x88,0xAD,0xCE,0x46,0x93,0xA9,0x74,0x7E,
9452 1.1 jruoho 0x48,0x82,0x70,0xC6,0x2A,0x7E,0x3A,0x9A,
9453 1.1 jruoho 0xD0,0xD9,0x9C,0x60,0xE7,0x18,0x72,0x3C,
9454 1.1 jruoho 0x48,0xF4,0x20,0xB8,0x00,0x0F,0x1C,0x2C,
9455 1.1 jruoho 0x34,0x84,0x22,0x6B,0x80,0xC1,0x8C,0xDD,
9456 1.1 jruoho 0x63,0xB1,0x0B,0x4E,0x0A,0xEC,0x61,0xB3,
9457 1.1 jruoho 0x01,0x19,0xA2,0x24,0x38,0xD4,0x11,0xC0,
9458 1.1 jruoho 0x12,0x05,0x98,0x1F,0x87,0x0C,0x0F,0x95,
9459 1.1 jruoho 0x8C,0x25,0x24,0x1B,0xAB,0x87,0xC2,0xA5,
9460 1.1 jruoho 0x40,0x68,0x6C,0x27,0xED,0x19,0x45,0x2C,
9461 1.1 jruoho 0x79,0x4A,0x82,0x49,0xE0,0x51,0x44,0x36,
9462 1.1 jruoho 0x1A,0x27,0x28,0x1B,0x1A,0x25,0x03,0x42,
9463 1.1 jruoho 0x9E,0x05,0x58,0x07,0x26,0x04,0x76,0x2F,
9464 1.1 jruoho 0xC0,0x9A,0x00,0x73,0xB3,0x90,0xB1,0xB9,
9465 1.1 jruoho 0xE8,0xFF,0x0F,0x71,0xB0,0x31,0xDA,0x9A,
9466 1.1 jruoho 0xAE,0x90,0xC2,0xC4,0x88,0x12,0x2C,0x5E,
9467 1.1 jruoho 0xC5,0xC3,0x10,0xCA,0x93,0x42,0xA8,0x48,
9468 1.1 jruoho 0x95,0xA1,0x68,0xB4,0x51,0x2A,0x14,0xE0,
9469 1.1 jruoho 0x4C,0x80,0x30,0x5C,0x1D,0x03,0x82,0x46,
9470 1.1 jruoho 0x88,0x15,0x29,0x56,0xFB,0x83,0x20,0xF1,
9471 1.1 jruoho 0x2D,0x40,0x54,0x01,0xA2,0x48,0xA3,0x41,
9472 1.1 jruoho 0x9D,0x03,0x3C,0x5C,0x0F,0xF5,0xF0,0x3D,
9473 1.1 jruoho 0xF6,0x93,0x0C,0x72,0x90,0x67,0xF1,0xA8,
9474 1.1 jruoho 0x70,0x9C,0x06,0x49,0xE0,0x0B,0x80,0x4F,
9475 1.1 jruoho 0x08,0x1E,0x38,0xDE,0x35,0xA0,0x66,0x7C,
9476 1.1 jruoho 0xBC,0x4C,0x10,0x1C,0x6A,0x88,0x1E,0x68,
9477 1.1 jruoho 0xB8,0x13,0x38,0x44,0x06,0xE8,0x49,0x3D,
9478 1.1 jruoho 0x52,0x60,0x07,0x77,0x32,0xEF,0x01,0xAF,
9479 1.1 jruoho 0x0A,0xCD,0x5E,0x12,0x08,0xC1,0xF1,0xF8,
9480 1.1 jruoho 0x7E,0xC0,0x26,0x9C,0xC0,0xF2,0x07,0x81,
9481 1.1 jruoho 0x1A,0x99,0xA1,0x3D,0xCA,0xD3,0x8A,0x19,
9482 1.1 jruoho 0xF2,0x31,0xC1,0x04,0x16,0x0B,0x21,0x05,
9483 1.1 jruoho 0x10,0x1A,0x0F,0xF8,0x6F,0x00,0x8F,0x17,
9484 1.1 jruoho 0xBE,0x12,0xC4,0xF6,0x80,0x12,0x0C,0x0B,
9485 1.1 jruoho 0x21,0x23,0xAB,0xF0,0x78,0xE8,0x28,0x7C,
9486 1.1 jruoho 0x95,0x38,0x9C,0xD3,0x8A,0x67,0x82,0xE1,
9487 1.1 jruoho 0x20,0xF4,0x05,0x90,0x00,0x51,0xE7,0x0C,
9488 1.1 jruoho 0xD4,0x61,0xC1,0xE7,0x04,0x76,0x33,0x38,
9489 1.1 jruoho 0x83,0x47,0x00,0x8F,0xE4,0x84,0xFC,0x2B,
9490 1.1 jruoho 0xF1,0xC0,0xE0,0x03,0xE2,0xEF,0x1F,0xA7,
9491 1.1 jruoho 0xEC,0x11,0x9C,0xA9,0x01,0x7D,0x1C,0xF0,
9492 1.1 jruoho 0xFF,0x7F,0x28,0x7C,0x88,0x1E,0xDF,0x29,
9493 1.1 jruoho 0x1F,0xAF,0x4F,0x17,0x96,0x35,0x4E,0xE8,
9494 1.1 jruoho 0x77,0x08,0x9F,0x38,0x7C,0x64,0x71,0x44,
9495 1.1 jruoho 0x08,0x39,0x39,0x05,0xA0,0x81,0x4F,0xF7,
9496 1.1 jruoho 0xEC,0x22,0x9C,0xAE,0x27,0xE5,0x40,0xC3,
9497 1.1 jruoho 0xA0,0xE3,0x04,0xC7,0x79,0x00,0x1C,0xE3,
9498 1.1 jruoho 0x84,0x7F,0x2E,0x80,0x3F,0x40,0x7E,0xCA,
9499 1.1 jruoho 0x78,0xC5,0x48,0xE0,0x98,0x23,0x44,0x9F,
9500 1.1 jruoho 0x6B,0x3C,0x42,0x2C,0xFC,0x53,0x45,0xE1,
9501 1.1 jruoho 0x03,0x21,0x63,0x04,0x17,0xA0,0xC7,0x08,
9502 1.1 jruoho 0x7C,0x03,0x8E,0x11,0x7D,0x94,0xE0,0xEA,
9503 1.1 jruoho 0x0F,0x1A,0x74,0x80,0xB8,0xFF,0xFF,0x00,
9504 1.1 jruoho 0xE1,0x83,0x7A,0x80,0xC0,0x37,0xFA,0xD1,
9505 1.1 jruoho 0x03,0x3D,0x2E,0x8B,0x3E,0x0F,0xC8,0xF8,
9506 1.1 jruoho 0x89,0x46,0xF3,0xE2,0xA7,0x03,0x7E,0xF8,
9507 1.1 jruoho 0x00,0x0F,0xA8,0x87,0x84,0x03,0xC5,0x4C,
9508 1.1 jruoho 0x9B,0x83,0x3E,0xBB,0x1C,0x3A,0x76,0xB8,
9509 1.1 jruoho 0xE0,0x3F,0x81,0x80,0x4B,0xDE,0x21,0x0C,
9510 1.1 jruoho 0x14,0x23,0xC6,0x9F,0x83,0x7C,0x0A,0x03,
9511 1.1 jruoho 0xFF,0xFF,0xFF,0x14,0x06,0xFE,0xE1,0xF0,
9512 1.1 jruoho 0x20,0x4F,0x07,0x9F,0xB6,0xA8,0x74,0x18,
9513 1.1 jruoho 0xD4,0x81,0x0B,0xB0,0x32,0x89,0x08,0xCF,
9514 1.1 jruoho 0x12,0xB5,0x41,0xE8,0xD4,0xF0,0x36,0xF1,
9515 1.1 jruoho 0xB6,0xE5,0x5B,0x40,0x9C,0xD3,0xEC,0xED,
9516 1.1 jruoho 0xC0,0x45,0x30,0x22,0xD4,0x0C,0x45,0x4E,
9517 1.1 jruoho 0x5A,0x11,0x63,0x44,0x79,0xDC,0x32,0xCA,
9518 1.1 jruoho 0xDB,0xD6,0x0B,0x40,0xBC,0x13,0x7B,0xDE,
9519 1.1 jruoho 0x32,0x46,0xF0,0xC8,0x0F,0x5C,0x2C,0xC6,
9520 1.1 jruoho 0xEA,0xF5,0x5F,0xF3,0x81,0x0B,0x70,0xF6,
9521 1.1 jruoho 0xFF,0x3F,0x70,0x01,0x1C,0x0A,0x7A,0x18,
9522 1.1 jruoho 0x42,0x0F,0xC3,0x53,0x39,0x97,0x87,0xC8,
9523 1.1 jruoho 0x53,0x89,0x18,0x35,0x4C,0xD4,0x67,0x28,
9524 1.1 jruoho 0xDF,0x2D,0x7C,0x20,0x02,0xDF,0x99,0x0B,
9525 1.1 jruoho 0xF8,0xFD,0xFF,0x0F,0x44,0x70,0x8E,0x29,
9526 1.1 jruoho 0xB8,0x33,0x0D,0x78,0x7C,0xCE,0x40,0x20,
9527 1.1 jruoho 0xA7,0xE2,0x43,0x0D,0x60,0x41,0xF4,0x13,
9528 1.1 jruoho 0xC2,0x27,0x1A,0x2A,0x13,0x06,0x75,0xA8,
9529 1.1 jruoho 0x01,0xAC,0x5C,0x61,0x9E,0x46,0xCF,0xF9,
9530 1.1 jruoho 0x59,0xC6,0xA7,0x1A,0x1F,0x4A,0x8D,0x63,
9531 1.1 jruoho 0x88,0x97,0x99,0x87,0x1A,0x1F,0x0B,0x5E,
9532 1.1 jruoho 0x49,0x7D,0xA8,0x31,0x54,0x9C,0x87,0x1A,
9533 1.1 jruoho 0x0F,0x37,0x50,0xD4,0x37,0x9B,0x67,0x1B,
9534 1.1 jruoho 0xA3,0xC7,0xF7,0x0D,0xD5,0x10,0x0F,0x35,
9535 1.1 jruoho 0x4C,0xF2,0x4A,0x35,0x16,0x1F,0x6A,0xC0,
9536 1.1 jruoho 0xF1,0xFF,0x3F,0xD4,0x00,0xFC,0xFF,0xFF,
9537 1.1 jruoho 0x1F,0x6A,0x00,0x47,0x47,0x03,0x38,0x47,
9538 1.1 jruoho 0x46,0xDC,0xD1,0x00,0x5C,0x87,0x52,0xE0,
9539 1.1 jruoho 0x70,0x34,0x00,0x1E,0x47,0x21,0x30,0x5F,
9540 1.1 jruoho 0x68,0x7C,0x14,0x02,0x16,0xFF,0xFF,0xA3,
9541 1.1 jruoho 0x10,0xF8,0x65,0x9F,0x83,0x50,0x42,0x8F,
9542 1.1 jruoho 0x42,0x80,0xA0,0xDB,0xCF,0x53,0xC4,0xB3,
9543 1.1 jruoho 0x8F,0x2F,0x3F,0x0F,0x04,0x11,0x5E,0xF3,
9544 1.1 jruoho 0x7D,0x0A,0xF2,0x21,0xDF,0x47,0x21,0x06,
9545 1.1 jruoho 0x63,0x28,0x5F,0x83,0x7C,0x14,0x62,0x50,
9546 1.1 jruoho 0xAF,0x41,0xBE,0xEF,0x1B,0xE4,0xF1,0x22,
9547 1.1 jruoho 0x48,0xEC,0x67,0x02,0x1F,0x85,0x98,0xE8,
9548 1.1 jruoho 0xA3,0x10,0xA0,0xF0,0xFF,0x7F,0x14,0x02,
9549 1.1 jruoho 0xF8,0xFF,0xFF,0x3F,0x0A,0x01,0xCE,0x02,
9550 1.1 jruoho 0x1C,0x0D,0x40,0x37,0xAD,0x47,0x21,0xF0,
9551 1.1 jruoho 0xDE,0x59,0x4E,0xFB,0x04,0x7C,0x16,0x02,
9552 1.1 jruoho 0xCC,0xFE,0xFF,0xCF,0x42,0xC0,0xEC,0x28,
9553 1.1 jruoho 0x74,0x14,0x67,0xF9,0x2A,0xF4,0x04,0xF0,
9554 1.1 jruoho 0x02,0x10,0x23,0xCC,0x3B,0xD0,0x4B,0x26,
9555 1.1 jruoho 0xBB,0x8B,0x1B,0xE7,0xC9,0xE5,0x2C,0x9E,
9556 1.1 jruoho 0xC4,0x7D,0x09,0xF2,0x81,0xE2,0x59,0xC8,
9557 1.1 jruoho 0x50,0xA7,0x1B,0xF4,0x8D,0xDC,0x03,0x8B,
9558 1.1 jruoho 0x19,0x3F,0xC4,0xF3,0x90,0x21,0x9E,0x85,
9559 1.1 jruoho 0x00,0x76,0xFD,0xFF,0xCF,0x42,0x00,0xFF,
9560 1.1 jruoho 0xFF,0xFF,0x47,0x03,0xF8,0x2F,0x00,0x9F,
9561 1.1 jruoho 0x85,0x80,0xE7,0x09,0xE0,0x41,0xDB,0x67,
9562 1.1 jruoho 0x21,0x80,0x33,0x87,0xCB,0xF3,0x7F,0x05,
9563 1.1 jruoho 0x3A,0x96,0xF7,0x08,0xCF,0xFA,0x24,0x5F,
9564 1.1 jruoho 0x2F,0x3D,0xD3,0x87,0x82,0x67,0x21,0x86,
9565 1.1 jruoho 0x75,0x18,0x3E,0x0B,0x31,0x88,0x17,0x4D,
9566 1.1 jruoho 0x43,0xBC,0x70,0xFA,0x30,0xE0,0xFF,0x3F,
9567 1.1 jruoho 0x5E,0xE0,0x57,0x4E,0x03,0x05,0x09,0xF4,
9568 1.1 jruoho 0x2C,0x04,0x30,0xFE,0xFF,0x7F,0x16,0x02,
9569 1.1 jruoho 0xC8,0xB8,0x46,0x9D,0x85,0x80,0xE5,0x6D,
9570 1.1 jruoho 0xE5,0x19,0xDB,0xA7,0x95,0x04,0xFF,0xFF,
9571 1.1 jruoho 0x67,0x21,0xC0,0x41,0x2E,0x23,0x07,0x21,
9572 1.1 jruoho 0x4C,0xC4,0x87,0x83,0x8F,0x99,0x80,0x9E,
9573 1.1 jruoho 0x29,0xBE,0xB8,0x1B,0xE3,0x09,0xE0,0x45,
9574 1.1 jruoho 0xE2,0x31,0x93,0x1D,0x35,0x0D,0xF3,0x2C,
9575 1.1 jruoho 0x64,0xBC,0xB3,0x78,0x0D,0x78,0x82,0xF7,
9576 1.1 jruoho 0xE4,0x9F,0x85,0x18,0xD8,0x61,0x05,0x7B,
9577 1.1 jruoho 0x14,0x32,0xA8,0xC1,0x63,0x87,0x08,0x13,
9578 1.1 jruoho 0xE8,0x59,0x88,0xC5,0x7D,0xAE,0xE8,0x3C,
9579 1.1 jruoho 0xE1,0xB3,0x10,0xF0,0xFE,0xFF,0x9F,0x25,
9580 1.1 jruoho 0xE0,0x5E,0x0D,0x9E,0x85,0x00,0x13,0x87,
9581 1.1 jruoho 0x0D,0x9F,0x35,0xC0,0x33,0x7C,0x8F,0xEA,
9582 1.1 jruoho 0x1C,0x1E,0x8F,0x81,0x7F,0x56,0x1D,0xE7,
9583 1.1 jruoho 0x04,0x96,0x7B,0xD1,0xB2,0x71,0xA0,0xA1,
9584 1.1 jruoho 0x23,0xB2,0x3A,0x20,0x8D,0x0D,0x73,0x29,
9585 1.1 jruoho 0x89,0x7C,0x72,0x6C,0xD4,0x56,0x04,0xA7,
9586 1.1 jruoho 0x33,0x93,0x4F,0x00,0xD6,0x42,0x21,0x05,
9587 1.1 jruoho 0x34,0x1A,0x8B,0xE1,0x9D,0xF9,0xE8,0x44,
9588 1.1 jruoho 0x41,0x0C,0xE8,0xE3,0x90,0x6D,0x1C,0x0A,
9589 1.1 jruoho 0x50,0x7B,0xD1,0x14,0xC8,0x39,0x07,0xA3,
9590 1.1 jruoho 0x7F,0x76,0x74,0x36,0xBE,0x13,0x70,0x0D,
9591 1.1 jruoho 0x10,0x3A,0x25,0x18,0xDA,0x6A,0x04,0xFC,
9592 1.1 jruoho 0xFF,0x67,0x89,0x01,0x33,0xFE,0x53,0x8C,
9593 1.1 jruoho 0x09,0x7C,0x8E,0xC1,0x1F,0x0C,0xF0,0x03,
9594 1.1 jruoho 0x7F,0x31,0xA8,0xFA,0x5E,0xA0,0xFB,0x82,
9595 1.1 jruoho 0xD5,0xDD,0x64,0x20,0xCC,0xC8,0x04,0xF5,
9596 1.1 jruoho 0x9D,0x0E,0x40,0x01,0xE4,0x0B,0x81,0xCF,
9597 1.1 jruoho 0x51,0x0F,0x05,0x6C,0x22,0x21,0xC2,0x44,
9598 1.1 jruoho 0x33,0x3A,0x62,0xC2,0xA8,0xE8,0x13,0xA6,
9599 1.1 jruoho 0x20,0x9E,0xB0,0x63,0x4D,0x18,0x3D,0x13,
9600 1.1 jruoho 0x5F,0x74,0xD8,0x88,0x31,0x21,0xAE,0x1E,
9601 1.1 jruoho 0xD0,0x26,0x18,0xD4,0x97,0x22,0x58,0x43,
9602 1.1 jruoho 0xE6,0x63,0xF1,0x05,0x02,0x37,0x65,0x30,
9603 1.1 jruoho 0xCE,0x89,0x5D,0x13,0x7C,0xD9,0xC1,0xCD,
9604 1.1 jruoho 0x19,0x8C,0xF0,0x98,0xBB,0x18,0xBF,0x3A,
9605 1.1 jruoho 0x79,0x74,0xFC,0xA0,0xE0,0x1B,0x0E,0xC3,
9606 1.1 jruoho 0x7E,0x32,0xF3,0x8C,0xDE,0xCB,0x7C,0x8D,
9607 1.1 jruoho 0xC3,0xC0,0x7A,0xBC,0x1C,0xD6,0x68,0x61,
9608 1.1 jruoho 0x0F,0xED,0x3D,0xC4,0xFF,0xFF,0x43,0x8C,
9609 1.1 jruoho 0xCF,0x13,0xC6,0x08,0xEB,0xDB,0x0B,0x38,
9610 1.1 jruoho 0xEE,0x59,0xF0,0xEF,0x1A,0xE0,0xB9,0x84,
9611 1.1 jruoho 0xF8,0xAE,0x01,0x30,0xF0,0xFF,0x7F,0xD7,
9612 1.1 jruoho 0x00,0x4E,0xD7,0x04,0xDF,0x35,0x80,0xF7,
9613 1.1 jruoho 0xD0,0x7D,0xD7,0x00,0xAE,0xD9,0xEF,0x1A,
9614 1.1 jruoho 0xA8,0x63,0x80,0x15,0xDE,0x35,0xA0,0x5D,
9615 1.1 jruoho 0xD9,0xDE,0xD7,0x9E,0xB0,0xAC,0xE9,0xB2,
9616 1.1 jruoho 0x81,0x52,0x73,0xD9,0x00,0x14,0xFC,0xFF,
9617 1.1 jruoho 0x2F,0x1B,0x80,0x01,0x29,0x13,0x46,0x85,
9618 1.1 jruoho 0x9F,0x30,0x05,0xF1,0x84,0x1D,0xEC,0xB2,
9619 1.1 jruoho 0x01,0x8A,0x18,0x97,0x0D,0xD0,0x8F,0xED,
9620 1.1 jruoho 0x65,0x03,0x18,0xDC,0x13,0xF8,0x6D,0x03,
9621 1.1 jruoho 0x78,0x43,0xFA,0xB6,0x01,0xD6,0xFF,0xFF,
9622 1.1 jruoho 0x6D,0x03,0xAC,0xF9,0x6F,0x1B,0x28,0x0E,
9623 1.1 jruoho 0xAB,0xBC,0x6D,0x40,0x3C,0xC9,0x33,0x02,
9624 1.1 jruoho 0xAB,0xBA,0x6E,0xA0,0xF4,0x5C,0x37,0x00,
9625 1.1 jruoho 0x12,0x88,0x99,0x30,0x2A,0xFE,0x84,0x29,
9626 1.1 jruoho 0x88,0x27,0xEC,0x68,0xD7,0x0D,0x50,0x04,
9627 1.1 jruoho 0xB9,0x6E,0x80,0x7E,0x5E,0x09,0xFE,0xFF,
9628 1.1 jruoho 0xAF,0x1B,0xC0,0xE0,0xA2,0x80,0xB9,0x6F,
9629 1.1 jruoho 0x00,0x6F,0x58,0x7E,0xDF,0x00,0x7C,0xDC,
9630 1.1 jruoho 0xC4,0x31,0xF7,0x0D,0xC0,0xCC,0xFF,0xFF,
9631 1.1 jruoho 0xBE,0x01,0xB0,0xE7,0xA2,0x80,0xBB,0x6F,
9632 1.1 jruoho 0x00,0xEF,0x8B,0xB4,0xEF,0x1B,0x60,0xFE,
9633 1.1 jruoho 0xFF,0xDF,0x37,0xC0,0x28,0x6D,0xFD,0x1E,
9634 1.1 jruoho 0x1C,0x3D,0x21,0x78,0x7C,0xB8,0xFB,0xA5,
9635 1.1 jruoho 0xC7,0xE7,0xBB,0x39,0x38,0x06,0x79,0x8C,
9636 1.1 jruoho 0x87,0x76,0xC0,0xAF,0xEF,0x9E,0x98,0xEF,
9637 1.1 jruoho 0xE6,0xC0,0xFF,0x4C,0x70,0x3C,0x18,0x68,
9638 1.1 jruoho 0x1C,0x62,0xAB,0x97,0x06,0x72,0x34,0x38,
9639 1.1 jruoho 0x3F,0xDC,0x19,0x81,0x61,0x15,0x7F,0xF2,
9640 1.1 jruoho 0x47,0x38,0xC7,0xD0,0xD9,0xE1,0x20,0xB1,
9641 1.1 jruoho 0x83,0xE0,0xC1,0x56,0x6D,0x02,0x85,0x86,
9642 1.1 jruoho 0x50,0x14,0x18,0x14,0x8B,0x0F,0x18,0xF8,
9643 1.1 jruoho 0x61,0xB3,0xB3,0x00,0x93,0x04,0x87,0x3A,
9644 1.1 jruoho 0x02,0xF8,0x3E,0xD1,0xFC,0x38,0x74,0x37,
9645 1.1 jruoho 0x38,0x54,0x8F,0xE5,0xA1,0x80,0x9E,0x01,
9646 1.1 jruoho 0x71,0xC7,0x0C,0x32,0x69,0xCF,0x28,0xE2,
9647 1.1 jruoho 0x53,0xC2,0x29,0x85,0x49,0xE0,0xF3,0x03,
9648 1.1 jruoho 0x43,0xE3,0x04,0xAF,0x0D,0xA1,0xF9,0xFF,
9649 1.1 jruoho 0xFF,0xA4,0xC0,0x3C,0xDF,0x31,0x04,0x6C,
9650 1.1 jruoho 0x02,0xBB,0xBF,0x64,0xC8,0xDA,0xC0,0x75,
9651 1.1 jruoho 0x4B,0x32,0x44,0x6F,0x38,0xB2,0x85,0xA2,
9652 1.1 jruoho 0xE9,0x44,0x79,0xDF,0x88,0x62,0x67,0x08,
9653 1.1 jruoho 0xC2,0x88,0x12,0x2C,0xC8,0xA3,0x42,0xAC,
9654 1.1 jruoho 0x28,0x2F,0x05,0x46,0x88,0x18,0xE2,0x95,
9655 1.1 jruoho 0x23,0xD0,0x09,0x87,0x0F,0xF2,0xD8,0x14,
9656 1.1 jruoho 0xA7,0xFD,0x41,0x90,0x58,0x4F,0x02,0x8D,
9657 1.1 jruoho 0xC5,0x91,0x46,0x83,0x3A,0x07,0x78,0xB8,
9658 1.1 jruoho 0x3E,0xC4,0x78,0xF8,0x0F,0x21,0x06,0x39,
9659 1.1 jruoho 0xC8,0x73,0x7B,0x54,0x38,0x4E,0x5F,0x25,
9660 1.1 jruoho 0x4C,0xF0,0x02,0xE0,0x83,0x0A,0x1C,0xD7,
9661 1.1 jruoho 0x80,0x9A,0xF1,0x33,0x06,0x58,0x8E,0xE3,
9662 1.1 jruoho 0x3E,0xA9,0xC0,0x1D,0x8F,0xEF,0x07,0x6C,
9663 1.1 jruoho 0xC2,0x09,0x2C,0x7F,0x10,0xA8,0xE3,0x0C,
9664 1.1 jruoho 0x9F,0xE7,0x0B,0x8B,0x21,0x1F,0x13,0x4C,
9665 1.1 jruoho 0x60,0xB1,0x27,0x1B,0x3A,0x1E,0xF0,0xDF,
9666 1.1 jruoho 0x63,0x1E,0x2F,0x7C,0x32,0xF1,0x7C,0x4D,
9667 1.1 jruoho 0x30,0x22,0x84,0x9C,0x8C,0x07,0x7D,0x87,
9668 1.1 jruoho 0xC0,0x5C,0x6F,0xD8,0xB9,0x85,0x8B,0x3A,
9669 1.1 jruoho 0x68,0xA0,0x4E,0x0B,0x3E,0x28,0xB0,0x9B,
9670 1.1 jruoho 0x11,0xE6,0xB8,0xCE,0xCF,0x2A,0x60,0xF8,
9671 1.1 jruoho 0xFF,0x9F,0x55,0x60,0x8F,0x10,0xFE,0xED,
9672 1.1 jruoho 0xC1,0xF3,0xF2,0x95,0xE1,0xD5,0x21,0x81,
9673 1.1 jruoho 0x43,0x8E,0x10,0x3D,0x2E,0x8F,0x10,0x73,
9674 1.1 jruoho 0x3E,0xC2,0x0C,0x11,0x5C,0x67,0x01,0x70,
9675 1.1 jruoho 0x0C,0x11,0xF8,0x1C,0x70,0xC0,0x71,0x69,
9676 1.1 jruoho 0xE2,0x03,0xF5,0x01,0x07,0x70,0x70,0x4D,
9677 1.1 jruoho 0xC3,0x1D,0x70,0xC0,0x71,0x16,0x60,0xFF,
9678 1.1 jruoho 0xFF,0xC3,0x0D,0x2C,0x49,0x26,0x0E,0x23,
9679 1.1 jruoho 0x18,0x11,0x30,0x28,0x02,0x02,0xA4,0xB3,
9680 1.1 jruoho 0x80,0x0F,0x29,0x00,0x1F,0xAE,0x0C,0x0F,
9681 1.1 jruoho 0x29,0xD8,0x93,0x86,0x07,0x8E,0x1B,0x85,
9682 1.1 jruoho 0x07,0x8D,0x0B,0x30,0x68,0x7A,0xE2,0x80,
9683 1.1 jruoho 0x7F,0x4C,0xF0,0x19,0x05,0x1C,0xE3,0x06,
9684 1.1 jruoho 0xDF,0x2A,0x0C,0xFC,0xFF,0x3F,0x30,0xCC,
9685 1.1 jruoho 0xE1,0xC2,0x63,0x39,0x8A,0xA0,0x07,0x1E,
9686 1.1 jruoho 0xD4,0xF7,0x8C,0x33,0xF7,0x24,0x8F,0xD1,
9687 1.1 jruoho 0x51,0x0F,0x27,0xF4,0xE4,0x85,0x3B,0x57,
9688 1.1 jruoho 0xF9,0x0A,0x71,0x14,0x18,0xB8,0x77,0x29,
9689 1.1 jruoho 0x8F,0xCF,0x17,0x2B,0xC3,0x63,0x46,0xFB,
9690 1.1 jruoho 0x1E,0x72,0xD6,0x11,0x02,0xE2,0x2F,0x75,
9691 1.1 jruoho 0x6C,0xC0,0x60,0x39,0x18,0x00,0x87,0x01,
9692 1.1 jruoho 0xE3,0x13,0x0D,0x58,0x67,0x1B,0x3C,0xF4,
9693 1.1 jruoho 0x69,0x31,0xC4,0xE3,0x0B,0xFB,0x56,0x61,
9694 1.1 jruoho 0x82,0xEA,0x41,0x75,0x12,0xF4,0xD0,0xC0,
9695 1.1 jruoho 0x01,0xE8,0xA1,0xC1,0x3F,0xB9,0x90,0xFB,
9696 1.1 jruoho 0x2B,0x1D,0x82,0xB5,0xE2,0x69,0xDE,0x47,
9697 1.1 jruoho 0x1E,0xF3,0xDC,0xA2,0xBC,0x0D,0x3C,0x07,
9698 1.1 jruoho 0xF0,0xD3,0x82,0x87,0xE3,0x63,0x81,0xC7,
9699 1.1 jruoho 0xE9,0x4B,0x58,0x82,0xF7,0x1A,0x9F,0x6C,
9700 1.1 jruoho 0x1E,0x5C,0x58,0xB2,0x21,0xA0,0x06,0xEB,
9701 1.1 jruoho 0x21,0x60,0xA6,0x9A,0xC0,0x49,0x46,0x80,
9702 1.1 jruoho 0xCA,0x00,0xA1,0x1B,0xCB,0xE9,0x3E,0x8B,
9703 1.1 jruoho 0x84,0x38,0xCD,0x47,0x99,0xC7,0x02,0x8F,
9704 1.1 jruoho 0xF5,0xC1,0xC0,0xFF,0x7F,0xCD,0x23,0xD4,
9705 1.1 jruoho 0x7D,0xCD,0x33,0x7B,0x3A,0xC0,0xAC,0x22,
9706 1.1 jruoho 0xDC,0x7B,0xCE,0x1B,0x86,0xD1,0x9E,0x2D,
9707 1.1 jruoho 0x7C,0xCD,0x78,0xD6,0x34,0x42,0x38,0x76,
9708 1.1 jruoho 0x83,0xF3,0x48,0x8C,0xF0,0x82,0xC0,0x4E,
9709 1.1 jruoho 0x0C,0x0F,0x30,0xC6,0x39,0x79,0xC3,0xFA,
9710 1.1 jruoho 0xC2,0xCB,0x40,0x83,0x19,0xDB,0x97,0x01,
9711 1.1 jruoho 0x36,0x2A,0xDF,0x88,0xC0,0x97,0xFC,0x62,
9712 1.1 jruoho 0x00,0x65,0x16,0xBE,0x9E,0xF8,0xA0,0xC4,
9713 1.1 jruoho 0x2E,0x06,0x2C,0xE5,0xC5,0x00,0x54,0x37,
9714 1.1 jruoho 0x0C,0x5F,0x0C,0xE0,0x5F,0x89,0x5E,0x0C,
9715 1.1 jruoho 0xC0,0x70,0x71,0xF2,0x3D,0xC0,0x1E,0xEE,
9716 1.1 jruoho 0xA3,0x74,0x9C,0xBE,0xFD,0xBD,0x19,0xF8,
9717 1.1 jruoho 0x6C,0xC0,0x60,0x3C,0xC3,0x30,0xC6,0x08,
9718 1.1 jruoho 0xE3,0x51,0x86,0x31,0xC1,0xDC,0xB7,0x03,
9719 1.1 jruoho 0xE8,0x39,0x87,0x81,0x4A,0x78,0x3B,0x80,
9720 1.1 jruoho 0x72,0x0E,0xE8,0xF2,0x68,0x42,0x4F,0x01,
9721 1.1 jruoho 0x4F,0x07,0x3E,0x29,0x1A,0xA2,0xAF,0xB1,
9722 1.1 jruoho 0x0A,0x26,0x50,0xC4,0x07,0x0D,0x3E,0xB5,
9723 1.1 jruoho 0x28,0x3E,0x15,0x78,0x2D,0xCF,0x4E,0xE1,
9724 1.1 jruoho 0xE2,0x9C,0x89,0xA7,0x6A,0x38,0x03,0xBD,
9725 1.1 jruoho 0xE6,0x86,0x63,0xFF,0x7F,0x38,0xFC,0xA9,
9726 1.1 jruoho 0xE0,0x35,0x80,0x1D,0x24,0x3D,0x2D,0x23,
9727 1.1 jruoho 0xC2,0x38,0xA4,0x3C,0x32,0xF8,0xB6,0x18,
9728 1.1 jruoho 0xC7,0x90,0x0F,0x91,0xBE,0x13,0x18,0xF2,
9729 1.1 jruoho 0x21,0xEF,0x79,0xC7,0xC0,0xAF,0x08,0x71,
9730 1.1 jruoho 0x9E,0xB2,0x7C,0x67,0xF0,0x65,0x01,0x7C,
9731 1.1 jruoho 0x91,0x2E,0x0B,0x68,0x68,0x9F,0x64,0x7C,
9732 1.1 jruoho 0x41,0x30,0xEC,0x89,0xB3,0x00,0x77,0x05,
9733 1.1 jruoho 0x50,0x81,0xFA,0xAE,0x00,0xFF,0x42,0xF0,
9734 1.1 jruoho 0xAE,0x00,0x86,0x79,0xF9,0x56,0xC0,0x35,
9735 1.1 jruoho 0x1D,0x4A,0xD0,0x67,0x12,0x5F,0x17,0x70,
9736 1.1 jruoho 0x53,0x64,0xA9,0x8E,0x0A,0xD0,0x53,0x4C,
9737 1.1 jruoho 0x02,0x75,0x47,0xF7,0x51,0x01,0xC6,0x4D,
9738 1.1 jruoho 0xD9,0x07,0x54,0x76,0x5A,0x60,0x67,0x21,
9739 1.1 jruoho 0x76,0x1D,0xC1,0x5D,0x49,0x18,0xCA,0xB3,
9740 1.1 jruoho 0x81,0x2F,0x59,0xFC,0x70,0x00,0x03,0xDC,
9741 1.1 jruoho 0xB3,0x38,0xC4,0x08,0xB1,0xD9,0x81,0xEB,
9742 1.1 jruoho 0x75,0xD2,0x70,0x2F,0x44,0xEC,0xFF,0x7F,
9743 1.1 jruoho 0x32,0x00,0xE3,0x51,0x1B,0x1C,0x27,0x9D,
9744 1.1 jruoho 0xF0,0x91,0x9E,0x59,0xF8,0x49,0x19,0x30,
9745 1.1 jruoho 0x71,0xF2,0x03,0xE3,0xC9,0x1A,0xC6,0x00,
9746 1.1 jruoho 0xB8,0xBC,0x57,0x95,0x81,0xFC,0x43,0x90,
9747 1.1 jruoho 0x20,0x18,0xD4,0x29,0x19,0x38,0x1C,0xC5,
9748 1.1 jruoho 0x70,0xA7,0x64,0x78,0x50,0xF8,0xC3,0x00,
9749 1.1 jruoho 0xE6,0x46,0xE8,0x7B,0x82,0xA1,0xDE,0x93,
9750 1.1 jruoho 0x0E,0xE3,0x91,0xD0,0x04,0x3E,0x2D,0xC3,
9751 1.1 jruoho 0xFA,0xFF,0x9F,0x96,0x81,0xD5,0xB1,0xDD,
9752 1.1 jruoho 0x43,0xF6,0x59,0x01,0x77,0x76,0x80,0x3B,
9753 1.1 jruoho 0x3D,0x7E,0x7A,0x00,0x9C,0x00,0x3D,0x3D,
9754 1.1 jruoho 0x80,0xED,0xBC,0x01,0xF7,0x40,0x80,0x38,
9755 1.1 jruoho 0xFE,0xA3,0x82,0x5F,0x59,0x28,0x1C,0x3F,
9756 1.1 jruoho 0xB6,0xF3,0x63,0x09,0xEE,0x70,0xE0,0x23,
9757 1.1 jruoho 0x83,0x0F,0x90,0xB8,0xA1,0xF8,0x50,0x81,
9758 1.1 jruoho 0x3C,0x0B,0x80,0x62,0xF4,0x6C,0x04,0xEC,
9759 1.1 jruoho 0x06,0xF3,0xD2,0x12,0xE5,0xFF,0xFF,0xDE,
9760 1.1 jruoho 0xC0,0x4E,0x29,0xB8,0x83,0x00,0xF8,0x8E,
9761 1.1 jruoho 0x01,0xE0,0x1D,0x0C,0x97,0x35,0x66,0x94,
9762 1.1 jruoho 0x10,0x18,0x8D,0x19,0x77,0x08,0xE1,0x27,
9763 1.1 jruoho 0x02,0xDC,0x98,0x3D,0x6E,0x8F,0x19,0x77,
9764 1.1 jruoho 0x9C,0xE5,0xA3,0x7A,0xCA,0x08,0xE5,0x03,
9765 1.1 jruoho 0x07,0x3B,0x67,0xBC,0x11,0xF0,0xA1,0x03,
9766 1.1 jruoho 0x8F,0x03,0x0C,0xEE,0x48,0x01,0xC6,0xCB,
9767 1.1 jruoho 0x01,0x1B,0x3B,0xB8,0x83,0x90,0x53,0x20,
9768 1.1 jruoho 0x4B,0x87,0xD1,0xD8,0x71,0xB2,0x81,0x74,
9769 1.1 jruoho 0x8C,0xF1,0x21,0xD7,0x63,0xC7,0x0D,0xD6,
9770 1.1 jruoho 0x63,0xC7,0x1D,0x5F,0xB0,0xFF,0xFF,0xE3,
9771 1.1 jruoho 0x0B,0x18,0xC6,0xC0,0xC5,0x0F,0x03,0x7D,
9772 1.1 jruoho 0xF3,0xF3,0xE8,0x0C,0xEE,0x61,0xFB,0x04,
9773 1.1 jruoho 0x13,0xE3,0xF9,0x25,0xC4,0x23,0xCC,0x8B,
9774 1.1 jruoho 0x4B,0x84,0xA3,0x08,0xF2,0xE6,0x12,0xE7,
9775 1.1 jruoho 0xD5,0x20,0xCC,0x63,0x4B,0x94,0x10,0x11,
9776 1.1 jruoho 0x0E,0x26,0xCE,0x13,0x8C,0x11,0x0E,0x3C,
9777 1.1 jruoho 0x8A,0x21,0x22,0x9C,0x40,0x88,0x93,0x3E,
9778 1.1 jruoho 0xD9,0x20,0xE1,0x63,0x84,0x8D,0xF6,0x04,
9779 1.1 jruoho 0xC3,0xC7,0xC2,0xCF,0x2B,0x1E,0x3C,0x3F,
9780 1.1 jruoho 0xAD,0xF9,0x2E,0xE8,0xC9,0x9C,0xE3,0x43,
9781 1.1 jruoho 0x96,0xA7,0xF6,0x38,0xE9,0xC3,0x2C,0x6E,
9782 1.1 jruoho 0x50,0x0F,0x8E,0xEC,0xAE,0xE3,0xE3,0x35,
9783 1.1 jruoho 0xF6,0x14,0xE4,0x21,0xF0,0x13,0x81,0x2F,
9784 1.1 jruoho 0x88,0x9E,0xAC,0xEF,0x7A,0xEC,0x5E,0x66,
9785 1.1 jruoho 0x8C,0xEA,0xA7,0x80,0x3A,0xA6,0x9C,0xC1,
9786 1.1 jruoho 0x2B,0x04,0xBB,0xE7,0xF9,0x90,0xED,0xBB,
9787 1.1 jruoho 0x24,0x1B,0x05,0xEE,0x90,0xE0,0x33,0x12,
9788 1.1 jruoho 0x3F,0x55,0x78,0x18,0x1E,0x05,0x8C,0x19,
9789 1.1 jruoho 0xBC,0x23,0x1C,0x5A,0x88,0x03,0x7E,0xDF,
9790 1.1 jruoho 0x65,0x43,0x8D,0x71,0x7A,0x3E,0x7F,0xB0,
9791 1.1 jruoho 0x41,0xC0,0x87,0x3A,0x54,0x0F,0xF3,0xA8,
9792 1.1 jruoho 0x5E,0x0A,0x19,0xCE,0xD9,0xC1,0x1D,0x04,
9793 1.1 jruoho 0xF6,0xF8,0xE1,0x41,0xF0,0x9B,0x25,0x1F,
9794 1.1 jruoho 0x04,0x3B,0xDF,0xBC,0xC1,0x19,0xE4,0xFF,
9795 1.1 jruoho 0x7F,0x0C,0xB0,0xCF,0x54,0x3E,0x9A,0x20,
9796 1.1 jruoho 0x8E,0x80,0xE8,0xF3,0x87,0xC7,0xF0,0x26,
9797 1.1 jruoho 0xC7,0x87,0x83,0x3D,0x7A,0xE0,0x4E,0x22,
9798 1.1 jruoho 0x70,0x8F,0x5D,0x07,0xED,0x6B,0x9C,0x2F,
9799 1.1 jruoho 0x5A,0x30,0xEE,0x7B,0xCF,0x22,0xE0,0xC7,
9800 1.1 jruoho 0x78,0x6C,0x01,0xC7,0xA1,0x04,0xDC,0xC1,
9801 1.1 jruoho 0x8E,0x6B,0x1C,0x42,0x51,0x60,0x74,0x28,
9802 1.1 jruoho 0xC1,0xC5,0x00,0x12,0x8C,0x63,0x9C,0xD1,
9803 1.1 jruoho 0xD0,0x97,0x48,0x1F,0xD2,0xE0,0x0C,0x1A,
9804 1.1 jruoho 0xF6,0x3C,0x9F,0x50,0xB8,0x3D,0x01,0x8A,
9805 1.1 jruoho 0x4E,0x28,0x20,0xC3,0x7D,0x06,0xC1,0x9E,
9806 1.1 jruoho 0x10,0xF8,0x19,0x84,0xFD,0xFF,0x0F,0x8E,
9807 1.1 jruoho 0x1E,0xF7,0x7B,0xA3,0x4F,0x8D,0x6C,0xEE,
9808 1.1 jruoho 0x0F,0x01,0x27,0x70,0xEE,0xEC,0xD4,0x8C,
9809 1.1 jruoho 0x3B,0x33,0x60,0xCF,0x1F,0x1E,0x02,0x3F,
9810 1.1 jruoho 0x17,0x78,0xF8,0x1E,0x02,0x7E,0xF0,0x0F,
9811 1.1 jruoho 0xCC,0x06,0x07,0xE3,0x29,0xC2,0xD7,0x0E,
9812 1.1 jruoho 0x0E,0xCE,0x4F,0x03,0x06,0xE7,0xAF,0x50,
9813 1.1 jruoho 0x9F,0xE7,0x19,0x38,0xF6,0xD4,0xEB,0x7B,
9814 1.1 jruoho 0x87,0xE7,0xEB,0x43,0x05,0xFE,0xA6,0xE7,
9815 1.1 jruoho 0x43,0x05,0x38,0x0E,0x0F,0xFC,0xB0,0xC2,
9816 1.1 jruoho 0x86,0xF0,0x28,0x80,0x3F,0xB5,0xF8,0xF8,
9817 1.1 jruoho 0x17,0xE7,0x29,0x82,0xDD,0x46,0xB0,0x87,
9818 1.1 jruoho 0x0B,0xC0,0x51,0xB4,0xB3,0x18,0x2A,0xCC,
9819 1.1 jruoho 0x59,0x8C,0xFC,0xFF,0xCF,0x51,0xA8,0xB3,
9820 1.1 jruoho 0x18,0x3D,0x5C,0x00,0x2E,0x04,0x1F,0x0F,
9821 1.1 jruoho 0x40,0x73,0x10,0x78,0x5C,0xF0,0x85,0xE0,
9822 1.1 jruoho 0x48,0x0E,0xE4,0xE9,0x00,0xF0,0x19,0x4A,
9823 1.1 jruoho 0xC3,0xA1,0x09,0x13,0x03,0x06,0x75,0x3E,
9824 1.1 jruoho 0xF0,0x09,0xC5,0xC7,0x0E,0x7E,0x36,0xF0,
9825 1.1 jruoho 0x8D,0xDC,0x43,0xE5,0xA7,0x66,0x5F,0xF2,
9826 1.1 jruoho 0x11,0xE0,0x02,0x75,0xA0,0x61,0xA0,0x46,
9827 1.1 jruoho 0xE4,0x23,0xD2,0xFF,0xFF,0xB9,0x0D,0x1B,
9828 1.1 jruoho 0x60,0x68,0xF4,0x1C,0x0E,0xE3,0x80,0xEB,
9829 1.1 jruoho 0x73,0x38,0x76,0x40,0x3E,0x87,0xC3,0x3F,
9830 1.1 jruoho 0x47,0xC3,0x1F,0x1B,0x3B,0xDD,0xF3,0x81,
9831 1.1 jruoho 0xC1,0xBA,0x7E,0x63,0x06,0x06,0xB6,0x6F,
9832 1.1 jruoho 0x91,0x07,0x06,0x1C,0x51,0xCF,0xC6,0x57,
9833 1.1 jruoho 0x08,0x0F,0x0C,0x6C,0x80,0x1E,0x18,0xF0,
9834 1.1 jruoho 0x89,0x05,0x21,0x27,0x03,0x43,0x9D,0x32,
9835 1.1 jruoho 0x8C,0x1C,0xF3,0x89,0xC3,0xC3,0xF0,0xA1,
9836 1.1 jruoho 0x22,0xEA,0x33,0xC0,0x23,0x1E,0x1B,0x1B,
9837 1.1 jruoho 0xFB,0xFF,0x8F,0x0D,0x2C,0xC7,0x16,0x8F,
9838 1.1 jruoho 0x0D,0xFC,0x47,0x78,0xFC,0xD8,0xE0,0x8C,
9839 1.1 jruoho 0xE5,0xD1,0xC4,0x97,0x99,0x23,0x3B,0x8D,
9840 1.1 jruoho 0x33,0x7B,0x0D,0xF1,0xD1,0xEE,0xF1,0xDB,
9841 1.1 jruoho 0x63,0x03,0x97,0x85,0xB1,0x01,0xA5,0x90,
9842 1.1 jruoho 0x63,0x43,0x1F,0x52,0x7C,0x0A,0xB0,0x71,
9843 1.1 jruoho 0x54,0x32,0x0F,0x1F,0xAF,0x7C,0x62,0x38,
9844 1.1 jruoho 0xBA,0x20,0x6F,0xE8,0xBE,0x5C,0xF8,0x48,
9845 1.1 jruoho 0x63,0x30,0x5F,0x5A,0x7C,0x06,0xE5,0x43,
9846 1.1 jruoho 0x04,0xD7,0x57,0xC5,0x43,0x04,0x3E,0xA1,
9847 1.1 jruoho 0x86,0x88,0x1E,0xCF,0xFF,0xFF,0x11,0xCC,
9848 1.1 jruoho 0x43,0x64,0x43,0x03,0xAF,0x87,0xA1,0x01,
9849 1.1 jruoho 0xA5,0x98,0xC0,0x5E,0x85,0x87,0x46,0x4F,
9850 1.1 jruoho 0x3F,0x3E,0x04,0x30,0x08,0xDF,0x06,0xD8,
9851 1.1 jruoho 0x55,0xC0,0x57,0x21,0x83,0x24,0x18,0xE7,
9852 1.1 jruoho 0x64,0x41,0x07,0x07,0x8E,0x21,0x79,0x70,
9853 1.1 jruoho 0xF0,0x07,0xE3,0x21,0x70,0x60,0xCF,0xE0,
9854 1.1 jruoho 0xB9,0xE8,0x31,0xD8,0xA7,0x1D,0x9F,0x4A,
9855 1.1 jruoho 0xC0,0x77,0xE6,0x04,0xC7,0xE9,0x1D,0x7B,
9856 1.1 jruoho 0x29,0xF0,0x08,0x1E,0xAD,0x3C,0x02,0x7E,
9857 1.1 jruoho 0xB4,0x02,0x66,0xFF,0xFF,0xA3,0x15,0x30,
9858 1.1 jruoho 0x09,0x7A,0xE6,0xA4,0x03,0x77,0x34,0x18,
9859 1.1 jruoho 0xD4,0xD1,0x0A,0x5C,0x11,0xC0,0x75,0xDC,
9860 1.1 jruoho 0xF0,0xD1,0x02,0xCE,0x50,0x0F,0xDA,0x07,
9861 1.1 jruoho 0x65,0xCF,0xDA,0x97,0x21,0x76,0xB4,0x00,
9862 1.1 jruoho 0x97,0x89,0x43,0x08,0xD0,0x04,0x3E,0x89,
9863 1.1 jruoho 0x67,0xEF,0x43,0x03,0xB3,0x8A,0xA1,0x01,
9864 1.1 jruoho 0xA5,0xA3,0x01,0xEE,0x44,0x81,0xFD,0xFF,
9865 1.1 jruoho 0x9F,0x28,0x60,0xDE,0x30,0x70,0x07,0x0A,
9866 1.1 jruoho 0xC0,0xCD,0xE9,0xDB,0xE3,0xE2,0xD0,0x38,
9867 1.1 jruoho 0xC4,0xE7,0xA7,0x73,0xF6,0xD1,0xE8,0x4C,
9868 1.1 jruoho 0x71,0x67,0x11,0x30,0x9C,0x7D,0x11,0x8F,
9869 1.1 jruoho 0x18,0x03,0xF9,0x81,0x21,0x59,0x30,0x28,
9870 1.1 jruoho 0x16,0x0F,0xC5,0x07,0x03,0x0E,0xEC,0x23,
9871 1.1 jruoho 0x02,0x3B,0x17,0xB0,0x73,0xAD,0xE1,0xF8,
9872 1.1 jruoho 0x59,0xC0,0xA7,0x84,0xB7,0xA6,0x17,0x7B,
9873 1.1 jruoho 0x9F,0xD7,0x7D,0xD6,0x08,0xC9,0xCE,0xF4,
9874 1.1 jruoho 0x3E,0x89,0xE2,0x0E,0xA2,0x70,0x4E,0x9F,
9875 1.1 jruoho 0xE0,0x22,0xF0,0x65,0xDF,0xA3,0xE0,0xA7,
9876 1.1 jruoho 0x07,0xCF,0xF1,0x8D,0xC1,0xA7,0x07,0xE6,
9877 1.1 jruoho 0x7E,0xF8,0x9A,0xF1,0x33,0xC3,0xE3,0x43,
9878 1.1 jruoho 0x88,0x27,0xE2,0xDA,0xA6,0x20,0x5B,0x18,
9879 1.1 jruoho 0x42,0x09,0xF4,0xFF,0x8F,0x10,0xE5,0x6D,
9880 1.1 jruoho 0x20,0xCA,0x29,0x44,0x88,0x12,0xA4,0xB1,
9881 1.1 jruoho 0xC9,0x0B,0x35,0xCA,0xD9,0x45,0x6E,0x6D,
9882 1.1 jruoho 0xF6,0x82,0x0B,0x14,0x2A,0x66,0x9C,0x28,
9883 1.1 jruoho 0xEF,0x10,0xB1,0xDA,0x1F,0x04,0x91,0xF4,
9884 1.1 jruoho 0x32,0xD0,0x71,0xC9,0x91,0x0E,0x7D,0xE8,
9885 1.1 jruoho 0x61,0xFB,0x04,0x8C,0x3F,0x48,0xE2,0xAE,
9886 1.1 jruoho 0x2A,0x3E,0x28,0xF8,0x00,0x80,0x77,0x09,
9887 1.1 jruoho 0xA8,0x5B,0x9D,0xC7,0xED,0xF3,0x06,0xF8,
9888 1.1 jruoho 0xAF,0x17,0x58,0x82,0xF2,0x07,0x81,0x1A,
9889 1.1 jruoho 0x99,0xA1,0x3D,0xCC,0xB7,0x19,0x43,0xBE,
9890 1.1 jruoho 0x07,0x1C,0x16,0x3B,0x27,0xF9,0xF0,0x08,
9891 1.1 jruoho 0x1C,0x8E,0x01,0x4F,0x1B,0xBE,0x51,0x7B,
9892 1.1 jruoho 0xBE,0x3E,0x62,0x01,0x8E,0xFE,0xFF,0x47,
9893 1.1 jruoho 0x2C,0x30,0x9D,0xDF,0x7D,0x82,0x01,0xC7,
9894 1.1 jruoho 0xCD,0x82,0x9F,0x61,0x00,0x67,0x40,0xCF,
9895 1.1 jruoho 0x30,0x60,0x1F,0x2A,0x6E,0x08,0x5C,0xEE,
9896 1.1 jruoho 0x8A,0x28,0x90,0x05,0xC2,0xA0,0x0E,0xFD,
9897 1.1 jruoho 0xE4,0x08,0x42,0xCF,0x9C,0x70,0x86,0x72,
9898 1.1 jruoho 0xB2,0xBD,0x5F,0x1D,0xC8,0x2D,0xC2,0x43,
9899 1.1 jruoho 0x3D,0x8B,0xC7,0x04,0x76,0xDA,0x02,0x36,
9900 1.1 jruoho 0xFF,0xFF,0xE3,0x29,0xB0,0x98,0xF7,0xD3,
9901 1.1 jruoho 0x69,0x84,0x63,0x03,0xFB,0x71,0x0B,0x38,
9902 1.1 jruoho 0x1D,0xCC,0xE0,0xDC,0x7F,0xD8,0x2D,0x1A,
9903 1.1 jruoho 0x37,0x34,0xB0,0x0D,0xCC,0x43,0x03,0x3E,
9904 1.1 jruoho 0x27,0x47,0x30,0x9E,0x98,0xF8,0x55,0xE2,
9905 1.1 jruoho 0xE1,0x89,0x1F,0x43,0xC0,0xFA,0xFF,0x3F,
9906 1.1 jruoho 0x99,0x01,0xF6,0x84,0x1E,0xCB,0x50,0xD2,
9907 1.1 jruoho 0x4E,0x66,0x80,0xC0,0xFB,0xD8,0x3B,0xC3,
9908 1.1 jruoho 0x4B,0x83,0xE7,0x74,0xD2,0xCF,0x62,0x3E,
9909 1.1 jruoho 0x99,0x19,0x21,0x0A,0xBB,0x8F,0x19,0xAD,
9910 1.1 jruoho 0x37,0x14,0xCD,0x3C,0xE8,0x3B,0x99,0x51,
9911 1.1 jruoho 0x62,0x46,0x6A,0x0E,0x4C,0x48,0x11,0x0F,
9912 1.1 jruoho 0x27,0x4A,0x88,0x60,0xAF,0x13,0x6F,0x67,
9913 1.1 jruoho 0x4F,0x66,0x4C,0xD6,0xC9,0x0C,0x24,0xFF,
9914 1.1 jruoho 0xFF,0x93,0x19,0x98,0x5C,0x9F,0xCC,0x80,
9915 1.1 jruoho 0xCA,0x39,0x0A,0x7F,0x32,0x03,0x78,0x74,
9916 1.1 jruoho 0xC0,0xC2,0x9D,0xCC,0xC0,0xF2,0xFF,0x3F,
9917 1.1 jruoho 0xC4,0x00,0xCE,0xC7,0x0A,0x63,0x0C,0x3C,
9918 1.1 jruoho 0xDA,0xC1,0x0C,0x15,0xE6,0x6C,0x86,0x0E,
9919 1.1 jruoho 0x72,0x08,0xA1,0xC1,0x0E,0x21,0x50,0xE6,
9920 1.1 jruoho 0x72,0xA0,0xA7,0xF0,0x9A,0xE0,0x73,0x14,
9921 1.1 jruoho 0xD8,0x0F,0x67,0xC0,0xE1,0xD4,0x80,0x0F,
9922 1.1 jruoho 0x74,0xE2,0x42,0x8F,0xC2,0x23,0x0E,0x58,
9923 1.1 jruoho 0xFD,0xC0,0xC8,0xFF,0xFF,0x64,0x06,0x18,
9924 1.1 jruoho 0x78,0x6A,0xF8,0x40,0x82,0x63,0x31,0xEA,
9925 1.1 jruoho 0x1B,0xC4,0x21,0xBE,0x8D,0xF8,0xE8,0xFE,
9926 1.1 jruoho 0x6A,0xE2,0x4B,0x00,0xE6,0x42,0xE2,0xD3,
9927 1.1 jruoho 0x09,0xB3,0x70,0x38,0x03,0x5A,0x43,0x60,
9928 1.1 jruoho 0x57,0x26,0xCF,0x9C,0x0F,0xE1,0x6C,0x3C,
9929 1.1 jruoho 0x7A,0xDC,0xE9,0x04,0xDE,0x38,0x7C,0x3A,
9930 1.1 jruoho 0x01,0x5E,0x07,0x0C,0xCC,0x0C,0xC2,0x3F,
9931 1.1 jruoho 0x84,0xB0,0x21,0x9C,0xAA,0xC7,0x70,0xEE,
9932 1.1 jruoho 0xAF,0x38,0x3E,0x9D,0x80,0xF3,0xFF,0x7F,
9933 1.1 jruoho 0x62,0x03,0x0C,0x0A,0x7E,0x32,0xF8,0xB8,
9934 1.1 jruoho 0x46,0x25,0xC2,0xA0,0x8E,0xE6,0x80,0x7B,
9935 1.1 jruoho 0x98,0x27,0x36,0x26,0x6F,0xC5,0x1A,0x8B,
9936 1.1 jruoho 0x4F,0x6C,0x30,0xFF,0xFF,0x27,0x36,0x80,
9937 1.1 jruoho 0xD1,0x87,0x20,0xB0,0xFD,0xFF,0x0F,0x41,
9938 1.1 jruoho 0x60,0x1C,0xA0,0x0F,0x41,0x80,0x9B,0xD3,
9939 1.1 jruoho 0x09,0xEE,0xC4,0x07,0xB6,0x63,0x10,0x60,
9940 1.1 jruoho 0x6D,0xE8,0x3E,0x06,0x81,0xF9,0xFF,0x3F,
9941 1.1 jruoho 0x5A,0x98,0xA3,0xE0,0xC2,0x8E,0x7C,0x28,
9942 1.1 jruoho 0x29,0xA7,0x3E,0xB4,0x0C,0x20,0x69,0x38,
9943 1.1 jruoho 0xC9,0x01,0x9D,0xD3,0x3D,0x70,0x92,0x75,
9944 1.1 jruoho 0xEA,0x40,0x8F,0xC7,0xA0,0xAF,0x1C,0xBE,
9945 1.1 jruoho 0x12,0xF0,0x23,0x07,0x93,0x00,0xAA,0x41,
9946 1.1 jruoho 0xFA,0xCC,0x07,0x9C,0x8E,0x1C,0xE0,0x38,
9947 1.1 jruoho 0x26,0x05,0xC6,0xDE,0x0E,0xDE,0x22,0x3D,
9948 1.1 jruoho 0x89,0xA7,0xA1,0xE3,0x0C,0x51,0x38,0x26,
9949 1.1 jruoho 0x39,0x18,0x44,0x7A,0x95,0x62,0x03,0x7C,
9950 1.1 jruoho 0xAB,0xF1,0xD9,0xC8,0x07,0x10,0x78,0xE3,
9951 1.1 jruoho 0xF6,0xD8,0x61,0xFF,0xFF,0x0F,0x75,0xC0,
9952 1.1 jruoho 0x01,0xE2,0xA4,0xF8,0x21,0xC3,0x98,0x67,
9953 1.1 jruoho 0xC5,0x0F,0x75,0x80,0xF5,0x18,0x27,0x3A,
9954 1.1 jruoho 0x94,0xF0,0x43,0x1D,0x20,0xE8,0xFF,0x7F,
9955 1.1 jruoho 0xA8,0x03,0x86,0x38,0x6F,0x24,0xD1,0x1E,
9956 1.1 jruoho 0xEA,0x98,0xE8,0x43,0x1D,0x40,0xC8,0xFF,
9957 1.1 jruoho 0xFF,0xA1,0x0E,0x18,0x9E,0x87,0x00,0xAE,
9958 1.1 jruoho 0x9C,0xEF,0xC0,0x7C,0x22,0x02,0xEF,0xFF,
9959 1.1 jruoho 0xFF,0x7C,0x07,0xB8,0x1B,0x2D,0xCC,0x51,
9960 1.1 jruoho 0x70,0x41,0xAF,0x0E,0x03,0x51,0x09,0x30,
9961 1.1 jruoho 0x28,0x02,0xC7,0x5F,0x9B,0x60,0x1C,0xEA,
9962 1.1 jruoho 0x7C,0x87,0x3E,0x2F,0x78,0xD8,0x4F,0x05,
9963 1.1 jruoho 0x9E,0xC4,0xA9,0xFA,0x5A,0x70,0x14,0x4F,
9964 1.1 jruoho 0x00,0x3E,0xE1,0x01,0xFF,0xA1,0xC1,0x9A,
9965 1.1 jruoho 0x44,0xF1,0x43,0x03,0xF5,0x11,0xE4,0xFF,
9966 1.1 jruoho 0x7F,0x68,0xC0,0x28,0xEA,0xF9,0x06,0x7D,
9967 1.1 jruoho 0xCC,0xF2,0xD9,0x20,0xE6,0x0B,0x48,0x84,
9968 1.1 jruoho 0x07,0x10,0x5F,0x1F,0xD8,0x71,0xD2,0x67,
9969 1.1 jruoho 0xA0,0x40,0x51,0xDE,0x37,0xF8,0x09,0x07,
9970 1.1 jruoho 0x5C,0x83,0xF3,0x09,0x07,0xBC,0x87,0x23,
9971 1.1 jruoho 0x1F,0x4B,0xC0,0x77,0xD0,0x84,0x73,0x81,
9972 1.1 jruoho 0xF1,0x8D,0x8D,0x9D,0x06,0xC0,0x76,0x00,
9973 1.1 jruoho 0x06,0xDF,0x69,0x00,0x1C,0xC7,0x24,0x7E,
9974 1.1 jruoho 0x3A,0x04,0x13,0xCC,0xC1,0xBC,0x34,0xFB,
9975 1.1 jruoho 0xFF,0xEF,0xFD,0x94,0x43,0xCF,0x86,0x80,
9976 1.1 jruoho 0x75,0x49,0x07,0x43,0x94,0x88,0xB3,0x21,
9977 1.1 jruoho 0x20,0xFD,0xFF,0x7F,0x36,0xC4,0x20,0xC4,
9978 1.1 jruoho 0x09,0xFC,0x12,0xD1,0xDC,0xD9,0x90,0xAE,
9979 1.1 jruoho 0xD8,0x67,0x43,0x80,0xE1,0xFF,0xFF,0x23,
9980 1.1 jruoho 0x00,0xF6,0x7C,0x04,0x38,0x3D,0x64,0x83,
9981 1.1 jruoho 0xE7,0x14,0x08,0xE3,0xE4,0x03,0x38,0xFE,
9982 1.1 jruoho 0xFF,0x8F,0x15,0xE6,0x18,0x78,0xEA,0x97,
9983 1.1 jruoho 0x9B,0x8F,0x03,0x54,0xD4,0x2B,0xC2,0x30,
9984 1.1 jruoho 0x94,0xC5,0x87,0x05,0x1F,0x11,0xF8,0x61,
9985 1.1 jruoho 0xC1,0x23,0xA8,0x78,0x9C,0xF4,0x74,0xE3,
9986 1.1 jruoho 0x33,0x21,0x3B,0x24,0x38,0xFC,0x20,0xE9,
9987 1.1 jruoho 0x41,0x13,0x3C,0xE7,0x23,0x78,0xB7,0x1E,
9988 1.1 jruoho 0x38,0xA7,0x02,0xC0,0x4D,0xAE,0x27,0xA3,
9989 1.1 jruoho 0x4E,0x17,0x0E,0x70,0x8E,0x92,0x8D,0x63,
9990 1.1 jruoho 0x08,0xE5,0x70,0xCC,0xB7,0x87,0xA6,0xC9,
9991 1.1 jruoho 0x4E,0x56,0x30,0x63,0x41,0xEA,0x24,0xE0,
9992 1.1 jruoho 0x01,0x38,0x10,0x8C,0xB4,0x93,0x68,0x34,
9993 1.1 jruoho 0x86,0xB3,0x5A,0x18,0xC1,0x19,0xC4,0xC7,
9994 1.1 jruoho 0x11,0xE7,0x3A,0x19,0xA1,0x3F,0x07,0x3E,
9995 1.1 jruoho 0x15,0x61,0x82,0xDC,0x4B,0xE8,0xBC,0x7D,
9996 1.1 jruoho 0x37,0xE0,0x57,0x61,0x8F,0xC5,0xFF,0x7F,
9997 1.1 jruoho 0x60,0xDF,0x4E,0xC0,0x31,0x17,0xAB,0x01,
9998 1.1 jruoho 0x45,0x0D,0xC0,0x68,0x98,0x53,0xC0,0x53,
9999 1.1 jruoho 0x09,0xB8,0x82,0xCD,0x0D,0x7D,0x61,0xB1,
10000 1.1 jruoho 0xD6,0xA9,0xE8,0x14,0xF4,0x3E,0x70,0x70,
10001 1.1 jruoho 0xC0,0x63,0xF6,0x1E,0x1C,0x2C,0x34,0x0F,
10002 1.1 jruoho 0x0E,0x6C,0xD9,0x06,0x87,0x56,0x72,0x17,
10003 1.1 jruoho 0x21,0x87,0x0F,0xFC,0xEC,0x80,0x03,0xA0,
10004 1.1 jruoho 0x67,0x07,0x0B,0xC9,0xB3,0x03,0x9B,0xBE,
10005 1.1 jruoho 0xB3,0x08,0x28,0x70,0xFE,0xFF,0x11,0xDE,
10006 1.1 jruoho 0x3B,0x7C,0x6E,0x79,0xF6,0x60,0x63,0x78,
10007 1.1 jruoho 0x74,0x31,0x9A,0xD1,0xB9,0xA6,0xDB,0x04,
10008 1.1 jruoho 0x4A,0xC5,0x6D,0x82,0x82,0xF8,0x06,0xE0,
10009 1.1 jruoho 0x84,0x34,0xBA,0x75,0xE2,0x66,0x62,0xFC,
10010 1.1 jruoho 0x47,0x0C,0x1F,0x11,0x0E,0xE9,0x6C,0x4D,
10011 1.1 jruoho 0x30,0x0F,0xA4,0x9E,0x81,0xBE,0xB3,0xE1,
10012 1.1 jruoho 0x67,0x1F,0xF2,0xC1,0xC5,0xD3,0xF0,0xF5,
10013 1.1 jruoho 0x86,0xDC,0x3B,0xE8,0xB4,0x7D,0x66,0xC0,
10014 1.1 jruoho 0x1C,0x74,0x7D,0x9D,0x7A,0x83,0x27,0x57,
10015 1.1 jruoho 0x09,0xEA,0xE1,0x02,0x42,0x2F,0x34,0xBE,
10016 1.1 jruoho 0xDC,0x25,0x78,0xE0,0xF4,0xE9,0xEE,0xBD,
10017 1.1 jruoho 0x84,0x9D,0xF1,0x12,0xBC,0xE0,0x25,0x98,
10018 1.1 jruoho 0x77,0x10,0xA8,0x51,0x79,0x10,0x98,0xAB,
10019 1.1 jruoho 0x3C,0xCB,0x37,0x06,0x54,0xB2,0x8B,0x16,
10020 1.1 jruoho 0x3D,0xC3,0xBC,0xC3,0xF8,0x92,0xE0,0xEB,
10021 1.1 jruoho 0x87,0xCF,0x2D,0x5E,0xC0,0xEB,0x16,0x0C,
10022 1.1 jruoho 0x82,0x67,0xA0,0x57,0x17,0xDF,0xD9,0x0D,
10023 1.1 jruoho 0xFC,0x2A,0xF0,0x46,0x13,0x22,0x98,0x61,
10024 1.1 jruoho 0x0F,0xFF,0xDD,0xDD,0xA8,0xBE,0xE9,0x18,
10025 1.1 jruoho 0xEB,0x75,0xC4,0x23,0xE5,0xC7,0x96,0x03,
10026 1.1 jruoho 0x8A,0xF4,0xF2,0xE6,0x09,0xF8,0x2C,0xE3,
10027 1.1 jruoho 0x53,0xDD,0x49,0xF9,0x7A,0x68,0xF4,0x57,
10028 1.1 jruoho 0x08,0x1F,0x7E,0x8C,0xEC,0x73,0x0E,0x3B,
10029 1.1 jruoho 0xDF,0xB1,0x41,0x71,0xC4,0x07,0x86,0x97,
10030 1.1 jruoho 0x1A,0x4F,0x85,0x9D,0xBB,0x60,0x1C,0x1C,
10031 1.1 jruoho 0xD8,0xB1,0x08,0x73,0x7C,0x05,0xD7,0xC9,
10032 1.1 jruoho 0xE6,0xFF,0xFF,0xE4,0x00,0x6E,0x78,0xCC,
10033 1.1 jruoho 0xC1,0xD7,0xE7,0x0D,0xDF,0x0C,0x3C,0x2E,
10034 1.1 jruoho 0x7E,0xE4,0xF0,0x49,0xE3,0xA5,0xD3,0xD8,
10035 1.1 jruoho 0xA7,0xE9,0xA3,0xD1,0xCB,0x9B,0x4F,0x2F,
10036 1.1 jruoho 0x18,0x58,0x5F,0x1A,0x38,0xAC,0xD1,0xC2,
10037 1.1 jruoho 0x3E,0x06,0x9C,0xB9,0x2F,0x44,0xB8,0xC3,
10038 1.1 jruoho 0x23,0x58,0x00,0xF1,0xB7,0x92,0x47,0x0E,
10039 1.1 jruoho 0x4F,0xC0,0x80,0x4C,0xD3,0xBA,0x74,0x20,
10040 1.1 jruoho 0xE2,0xA7,0x3C,0x2B,0x5F,0x99,0x2E,0x43,
10041 1.1 jruoho 0x0C,0xE3,0xA9,0xF2,0xF1,0xC3,0xB3,0xF1,
10042 1.1 jruoho 0x51,0xC0,0xC7,0x28,0xCF,0xFC,0x8C,0x22,
10043 1.1 jruoho 0xBD,0x32,0x10,0x50,0x9D,0x88,0xB8,0x42,
10044 1.1 jruoho 0x18,0x89,0xA1,0xD1,0x9D,0x83,0xC7,0x1F,
10045 1.1 jruoho 0x22,0x05,0x31,0xA0,0x6F,0x2E,0xC0,0xF4,
10046 1.1 jruoho 0x4C,0x04,0x5C,0xFE,0xFF,0x37,0x17,0x80,
10047 1.1 jruoho 0xFF,0xFF,0xFF,0x9B,0x0B,0xE0,0xE6,0xFE,
10048 1.1 jruoho 0xE0,0x9B,0x0B,0x70,0x8D,0xB4,0x2A,0x7A,
10049 1.1 jruoho 0x61,0x77,0x08,0x18,0xD4,0x9D,0x1D,0x70,
10050 1.1 jruoho 0x78,0x2B,0x78,0x67,0x87,0xF5,0xFF,0xBF,
10051 1.1 jruoho 0xB3,0xC3,0xC3,0x8C,0x13,0xE5,0x85,0x21,
10052 1.1 jruoho 0xC6,0x3B,0x3B,0x0B,0xF0,0x26,0xD0,0x51,
10053 1.1 jruoho 0xC6,0x77,0x76,0x80,0x1F,0x67,0xD8,0x77,
10054 1.1 jruoho 0x69,0xF0,0x5E,0x75,0x81,0xF5,0xFF,0xFF,
10055 1.1 jruoho 0xAA,0x0B,0x3C,0x04,0xDF,0xA7,0x41,0x3E,
10056 1.1 jruoho 0x5E,0x30,0x8C,0x83,0x2B,0x27,0xA1,0xC7,
10057 1.1 jruoho 0x02,0x6B,0x85,0x41,0xDD,0xA9,0xC1,0xA5,
10058 1.1 jruoho 0x09,0x5C,0x17,0x5F,0x1F,0x6A,0x7C,0xA4,
10059 1.1 jruoho 0xC5,0x9F,0x2F,0x70,0x01,0x86,0x4C,0x4F,
10060 1.1 jruoho 0x65,0x30,0xAE,0x29,0x3E,0x95,0x61,0xEE,
10061 1.1 jruoho 0x0E,0x1E,0x90,0x8F,0x18,0xC0,0x67,0x15,
10062 1.1 jruoho 0x1E,0x18,0xEE,0xB4,0xE0,0x9B,0x92,0x41,
10063 1.1 jruoho 0xCF,0x31,0xA8,0x8F,0x3C,0x27,0xEF,0x7B,
10064 1.1 jruoho 0xC2,0xE3,0x84,0xA3,0x9E,0x83,0xE8,0xD8,
10065 1.1 jruoho 0xC0,0x71,0xDC,0xC0,0xFD,0xFF,0xC7,0x06,
10066 1.1 jruoho 0xEF,0x70,0x83,0x3B,0xE8,0xF8,0x62,0x70,
10067 1.1 jruoho 0x5C,0x18,0xB8,0xE7,0x02,0x0F,0xC3,0x37,
10068 1.1 jruoho 0x1D,0x8F,0x08,0x33,0xFE,0xD7,0x3F,0x23,
10069 1.1 jruoho 0x04,0xC4,0x5F,0x8C,0xD8,0x80,0xC1,0x78,
10070 1.1 jruoho 0x6B,0xF3,0xF5,0x0D,0x37,0x60,0x5F,0x1D,
10071 1.1 jruoho 0x7C,0xC1,0xF0,0x09,0xCC,0xE8,0x2F,0x30,
10072 1.1 jruoho 0x4F,0x62,0x3E,0x36,0x90,0x0B,0x1C,0x1D,
10073 1.1 jruoho 0x30,0x38,0x00,0x3D,0x60,0xF8,0x87,0x8B,
10074 1.1 jruoho 0x77,0x39,0x30,0x5C,0x05,0x7D,0x5C,0xF0,
10075 1.1 jruoho 0xB1,0xC7,0x8A,0xEE,0x72,0xE8,0x9B,0x9C,
10076 1.1 jruoho 0x61,0xE2,0x18,0xE2,0x0D,0x8C,0xDD,0x25,
10077 1.1 jruoho 0xC8,0x61,0x0E,0xEA,0x5D,0xC2,0x73,0xE0,
10078 1.1 jruoho 0x67,0x0B,0x9F,0xE0,0x7C,0xF3,0x09,0x71,
10079 1.1 jruoho 0xAA,0x8F,0x56,0xEF,0x01,0x3E,0x7A,0xBC,
10080 1.1 jruoho 0x77,0xF9,0xEC,0xC4,0x2E,0x02,0x3E,0x72,
10081 1.1 jruoho 0x19,0xC7,0xD3,0xF4,0x15,0xD0,0x43,0x36,
10082 1.1 jruoho 0xD8,0xAB,0x86,0x4F,0x60,0x3E,0xBA,0xE1,
10083 1.1 jruoho 0x8E,0x51,0x9E,0x89,0xA7,0xEF,0x3B,0x08,
10084 1.1 jruoho 0x3B,0x92,0x1C,0x75,0xA8,0x6B,0x7A,0x44,
10085 1.1 jruoho 0xF9,0xFF,0x9F,0xD0,0x81,0xF8,0xD6,0x06,
10086 1.1 jruoho 0xCE,0x68,0xF7,0x0F,0xF4,0x36,0x3D,0x32,
10087 1.1 jruoho 0xCC,0xD1,0x00,0xD6,0x25,0x04,0x5C,0x77,
10088 1.1 jruoho 0x0C,0x5F,0x42,0x80,0x4F,0xD0,0x4B,0x04,
10089 1.1 jruoho 0xFA,0x9A,0xE1,0xD1,0x3D,0x02,0x60,0xAE,
10090 1.1 jruoho 0x18,0xEC,0x58,0xE0,0xC3,0x86,0xAF,0x01,
10091 1.1 jruoho 0xEC,0x5E,0xE0,0x30,0xF7,0x08,0x50,0x81,
10092 1.1 jruoho 0x7A,0x78,0xF0,0xD5,0xDE,0x23,0x40,0x71,
10093 1.1 jruoho 0xB2,0xF4,0xA1,0xC1,0x03,0xB5,0xAA,0x33,
10094 1.1 jruoho 0x26,0x94,0x23,0x26,0x3F,0x9B,0xF9,0x26,
10095 1.1 jruoho 0x81,0xB9,0x5D,0xFA,0x26,0x01,0x37,0xCF,
10096 1.1 jruoho 0x2C,0x50,0x49,0x20,0xF4,0xFF,0xBF,0x49,
10097 1.1 jruoho 0xC0,0x85,0xE9,0xF2,0x32,0x43,0xE7,0x7F,
10098 1.1 jruoho 0xE0,0xBE,0xD5,0x79,0x84,0x3E,0x44,0x30,
10099 1.1 jruoho 0x94,0xF7,0x3C,0x9F,0xC2,0xF8,0x19,0xC2,
10100 1.1 jruoho 0x07,0x4C,0x76,0xA6,0xE0,0x67,0x4D,0xDC,
10101 1.1 jruoho 0x1D,0xC0,0x28,0x6F,0x9E,0x9E,0x00,0x3B,
10102 1.1 jruoho 0x7F,0x1A,0xF9,0xDD,0xE0,0x5D,0xC0,0xD3,
10103 1.1 jruoho 0xF7,0xBD,0x88,0x9F,0x28,0xC0,0x17,0xEC,
10104 1.1 jruoho 0x4E,0x07,0x05,0xFA,0x84,0x3C,0x22,0xA3,
10105 1.1 jruoho 0xFA,0x88,0xC0,0x2F,0x49,0x60,0x3C,0x92,
10106 1.1 jruoho 0xF8,0x40,0x01,0x84,0xEE,0x05,0xA8,0xD3,
10107 1.1 jruoho 0x07,0x47,0x3D,0xE3,0x17,0x54,0x63,0xBE,
10108 1.1 jruoho 0x5B,0x3D,0xC2,0x79,0x72,0x98,0xCB,0x01,
10109 1.1 jruoho 0x8B,0x73,0x4D,0x02,0xD5,0x71,0x97,0x8F,
10110 1.1 jruoho 0x0E,0xEE,0xB5,0x15,0xFB,0xFF,0x27,0x38,
10111 1.1 jruoho 0xB8,0x77,0x96,0x77,0x3E,0x43,0x79,0x90,
10112 1.1 jruoho 0xE0,0xBB,0xB6,0x82,0xE3,0xAA,0x06,0xE3,
10113 1.1 jruoho 0xD8,0xC2,0x2F,0x79,0x80,0x9D,0x61,0x71,
10114 1.1 jruoho 0xC1,0x7F,0x0F,0x03,0x51,0x89,0x30,0x28,
10115 1.1 jruoho 0x02,0xCB,0xBB,0xB7,0x52,0xF8,0x43,0x06,
10116 1.1 jruoho 0xE3,0x4D,0x81,0x4F,0x1A,0x3B,0x6A,0xE0,
10117 1.1 jruoho 0xFB,0xFF,0x1F,0x35,0xD8,0x86,0x8A,0xBB,
10118 1.1 jruoho 0x29,0x82,0x75,0xAA,0x98,0x21,0xF0,0x60,
10119 1.1 jruoho 0x0F,0x00,0x9F,0xAF,0x7C,0x06,0x50,0x14,
10120 1.1 jruoho 0x18,0xD4,0xA1,0x1D,0xCE,0x6D,0x18,0x70,
10121 1.1 jruoho 0x30,0x62,0xDC,0xA5,0x10,0xEE,0x94,0xDF,
10122 1.1 jruoho 0x51,0x62,0x3F,0x97,0xB3,0xE9,0xE2,0xAE,
10123 1.1 jruoho 0xE6,0x3E,0x9D,0xB0,0x0B,0x32,0x8C,0xB3,
10124 1.1 jruoho 0xC0,0x23,0xC0,0xAB,0x39,0xBF,0x20,0x3F,
10125 1.1 jruoho 0x17,0xBF,0x10,0x3C,0x26,0x85,0x78,0x53,
10126 1.1 jruoho 0x7A,0x25,0x36,0xC6,0x93,0x71,0x73,0xB7,
10127 1.1 jruoho 0x62,0x72,0xDE,0x79,0x41,0x36,0xC6,0xD1,
10128 1.1 jruoho 0x44,0x8C,0x72,0x6E,0x0F,0x03,0x91,0x5F,
10129 1.1 jruoho 0x90,0x7D,0x3F,0x79,0x21,0x88,0x18,0xCD,
10130 1.1 jruoho 0x10,0x41,0x9F,0x97,0x8D,0x15,0x28,0xDE,
10131 1.1 jruoho 0x0B,0x32,0x13,0xF8,0x56,0xD0,0xC1,0xC5,
10132 1.1 jruoho 0x17,0x64,0xEC,0xFF,0xFF,0x82,0x0C,0x30,
10133 1.1 jruoho 0xE2,0x64,0x04,0xF8,0x3C,0x71,0xE0,0xCE,
10134 1.1 jruoho 0x35,0x30,0xFE,0xFF,0x97,0x6A,0xD8,0x27,
10135 1.1 jruoho 0x1B,0xC0,0xD9,0xD0,0x7D,0xB2,0x01,0xF7,
10136 1.1 jruoho 0x68,0xE1,0x1D,0x4D,0x10,0x27,0x1B,0x0A,
10137 1.1 jruoho 0xE4,0xE0,0xEB,0xA2,0x70,0x3C,0xF4,0x49,
10138 1.1 jruoho 0x84,0x1E,0x9D,0x7C,0x94,0xC4,0x9D,0x19,
10139 1.1 jruoho 0x3C,0x91,0x77,0x16,0x8F,0xE2,0x65,0xD0,
10140 1.1 jruoho 0xF7,0x82,0x13,0x79,0x7D,0xB0,0x9C,0x63,
10141 1.1 jruoho 0x24,0xA8,0x46,0xE2,0xE3,0x03,0xFC,0xEB,
10142 1.1 jruoho 0x8B,0x8F,0x91,0xF0,0xF9,0xFC,0xC3,0xF2,
10143 1.1 jruoho 0x60,0x0C,0xF9,0xFF,0x7F,0x8A,0xC4,0x80,
10144 1.1 jruoho 0x3C,0xBB,0x3C,0x86,0xF0,0x0B,0x24,0xDC,
10145 1.1 jruoho 0xD3,0xCC,0x01,0x60,0x64,0x5D,0x1E,0xD1,
10146 1.1 jruoho 0x67,0x47,0x8E,0x11,0xD7,0x17,0x45,0x5F,
10147 1.1 jruoho 0x81,0x7D,0x10,0x38,0x9F,0xE7,0x44,0xB0,
10148 1.1 jruoho 0x8E,0x9A,0x1F,0x6D,0xF8,0xF8,0x39,0xF8,
10149 1.1 jruoho 0x5B,0xC1,0x03,0xA5,0x8F,0x45,0x21,0x1E,
10150 1.1 jruoho 0x91,0xF8,0x39,0x11,0x5C,0x26,0xCE,0x89,
10151 1.1 jruoho 0x40,0xE2,0xD0,0x0B,0xE3,0xB4,0x80,0x1B,
10152 1.1 jruoho 0x88,0xCF,0x94,0xD8,0x29,0x9F,0x08,0x3B,
10153 1.1 jruoho 0x97,0x60,0x46,0x07,0xAE,0xCB,0xBD,0x47,
10154 1.1 jruoho 0x07,0xFE,0x93,0x00,0x1E,0xEB,0xFF,0xFF,
10155 1.1 jruoho 0x78,0x07,0xBE,0x93,0xBA,0xEF,0x26,0xBE,
10156 1.1 jruoho 0xC8,0xF8,0x50,0xF4,0x7C,0x07,0xF8,0x0F,
10157 1.1 jruoho 0x77,0xB8,0x43,0xC5,0x39,0xDF,0x01,0xD2,
10158 1.1 jruoho 0xFE,0xFF,0xE7,0x3B,0x60,0x79,0xB6,0x7E,
10159 1.1 jruoho 0xBE,0x03,0xBB,0xC8,0xF3,0x1D,0x40,0xAC,
10160 1.1 jruoho 0xFF,0xFF,0xF9,0x0E,0xB0,0x73,0x46,0xC3,
10161 1.1 jruoho 0x9D,0xEF,0xC0,0x76,0xB4,0x01,0xCC,0x4D,
10162 1.1 jruoho 0xE3,0xD1,0x06,0xDC,0xC3,0x85,0x3D,0x0C,
10163 1.1 jruoho 0xAE,0xD0,0xA6,0x4F,0x8D,0x46,0xAD,0x1A,
10164 1.1 jruoho 0x94,0xA9,0x51,0xE6,0xFF,0xDF,0xA0,0x56,
10165 1.1 jruoho 0x9F,0x4A,0x8D,0x19,0xCB,0x0E,0xA5,0x80,
10166 1.1 jruoho 0x8F,0x0A,0x8D,0xCD,0xF2,0x28,0x04,0x62,
10167 1.1 jruoho 0x31,0xAF,0x06,0x81,0x38,0x2C,0x08,0x8D,
10168 1.1 jruoho 0xF4,0xCA,0x11,0x88,0x25,0x3F,0xFB,0x05,
10169 1.1 jruoho 0x62,0xB9,0x6F,0x06,0x81,0x38,0xE0,0x1B,
10170 1.1 jruoho 0x4C,0xE0,0xE4,0x61,0x25,0x70,0xF2,0x6E,
10171 1.1 jruoho 0x10,0x88,0x23,0x83,0x50,0xA1,0x3A,0x40,
10172 1.1 jruoho 0x58,0x4C,0x10,0x1A,0xCA,0x07,0x08,0x93,
10173 1.1 jruoho 0xFE,0x48,0x10,0x20,0x31,0x02,0xC2,0xC2,
10174 1.1 jruoho 0xBD,0xBF,0x04,0x62,0x69,0xEF,0x09,0x81,
10175 1.1 jruoho 0x58,0x88,0x15,0x10,0x16,0x17,0x84,0x86,
10176 1.1 jruoho 0xD3,0x02,0xC2,0x24,0x99,0x01,0x61,0x81,
10177 1.1 jruoho 0x40,0xA8,0x7C,0x35,0x20,0x4C,0xA4,0x1B,
10178 1.1 jruoho 0x40,0xBA,0x7A,0x81,0x38,0x88,0x1E,0x10,
10179 1.1 jruoho 0x26,0xC3,0x0F,0x08,0x0B,0x0D,0x42,0xA3,
10180 1.1 jruoho 0x3D,0x30,0x04,0x48,0x0C,0x81,0xB0,0xF8,
10181 1.1 jruoho 0x8E,0x40,0x98,0xF8,0x57,0x91,0x40,0x9C,
10182 1.1 jruoho 0xDF,0x12,0xC4,0x4D,0x69,0x88,0x35,0x01,
10183 1.1 jruoho 0x31,0x0D,0x9E,0x80,0x98,0x22,0x10,0x01,
10184 1.1 jruoho 0x39,0xF6,0xD3,0x43,0x40,0xD6,0x60,0x0A,
10185 1.1 jruoho 0x88,0x45,0x07,0x11,0x90,0x85,0xA8,0x02,
10186 1.1 jruoho 0x62,0x79,0x5D,0x01,0xB1,0xF0,0x20,0x02,
10187 1.1 jruoho 0x72,0xE6,0x97,0x9F,0x80,0xAC,0xE0,0xA5,
10188 1.1 jruoho 0xF3,0x10,0xC0,0xDE,0x10,0x81,0x48,0x72,
10189 1.1 jruoho 0x10,0x01,0x39,0xB0,0x2F,0x20,0x16,0x1F,
10190 1.1 jruoho 0x44,0x40,0xCE,0xFA,0x28,0x14,0x90,0x83,
10191 1.1 jruoho 0x83,0x68,0x10,0xE4,0x6B,0x26,0x20,0xA7,
10192 1.1 jruoho 0x07,0x11,0x10,0xF9,0x04,0x05,0x21,0x6A,
10193 1.1 jruoho 0xBD,0x81,0x30,0x3D,0x8F,0x42,0x0D,0x85,
10194 1.1 jruoho 0x80,0x50,0xE5,0xEA,0xCE,0x31,0x2C,0x07,
10195 1.1 jruoho 0x08,0xCD,0x05,0x22,0x30,0xAB,0x70,0x07,
10196 1.1 jruoho 0xC4,0x54,0x81,0x08,0xC8,0x09,0x80,0xC8,
10197 1.1 jruoho 0xFF,0x9F,0x60,0x2A,0x10,0x9A,0x12,0x8C,
10198 1.1 jruoho 0xEA,0x92,0x07,0xC4,0x12,0x80,0xD0,0x54,
10199 1.1 jruoho 0x20,0x34,0x25,0x88,0x00,0xAD,0xCA,0x1E,
10200 1.1 jruoho 0x10,0x53,0x0A,0x42,0x95,0x83,0xD0,0x74,
10201 1.1 jruoho 0x20,0x54,0xB6,0xBE,0xC3,0x02,0x05,0x11,
10202 1.1 jruoho 0x90,0xA3,0x83,0x50,0xE1,0xFE,0x40,0x98,
10203 1.1 jruoho 0xDE,0x97,0x86,0x00,0x9D,0x0E,0x44,0x40,
10204 1.1 jruoho 0x4E,0x0C,0x42,0x15,0x7C,0x32,0x82,0x10,
10205 1.1 jruoho 0xB1,0x20,0x54,0xC1,0x27,0x23,0x28,0xD1,
10206 1.1 jruoho 0xF2,0xB2,0x13,0x90,0xF5,0x81,0x50,0xBD,
10207 1.1 jruoho 0x20,0x02,0x73,0x36,0x20,0x9A,0x17,0x84,
10208 1.1 jruoho 0xE6,0x07,0xA3,0x5A,0x8D,0x02,0x31,0xFD,
10209 1.1 jruoho 0x20,0x34,0x0F,0x88,0xC0,0xAC,0xE0,0xF9,
10210 1.1 jruoho 0x71,0xC0,0x0C,0x84,0xAA,0x04,0x11,0x98,
10211 1.1 jruoho 0x73,0x01,0xD1,0xAC,0x20,0x34,0x3B,0x18,
10212 1.1 jruoho 0xD5,0xFE,0x0F,0xD1,0x00,0x08,0x08,0xCD,
10213 1.1 jruoho 0x07,0xA2,0xC3,0x00,0x79,0x96,0x09,0xC8,
10214 1.1 jruoho 0x1A,0x41,0xA8,0x66,0x10,0x81,0x39,0x27,
10215 1.1 jruoho 0x10,0xCD,0x0E,0x42,0x95,0xFD,0x4D,0x82,
10216 1.1 jruoho 0x91,0x8C,0x0F,0xD0,0x40,0x24,0x37,0x08,
10217 1.1 jruoho 0xD5,0xF1,0x0C,0x0A,0x46,0x74,0x83,0x08,
10218 1.1 jruoho 0xC8,0x59,0x40,0x68,0x36,0x30,0x9A,0x4C,
10219 1.1 jruoho 0xED,0x91,0x80,0xBA,0x05,0x61,0xE9,0x41,
10220 1.1 jruoho 0x68,0x3A,0xBB,0x83,0xA7,0x20,0x54,0x81,
10221 1.1 jruoho 0x5E,0x30,0xA6,0x19,0x44,0x87,0x05,0x02,
10222 1.1 jruoho 0x42,0x73,0x81,0x51,0x1D,0xAF,0x96,0x40,
10223 1.1 jruoho 0x44,0x1B,0x08,0xD5,0x0A,0xA2,0x81,0x93,
10224 1.1 jruoho 0x1F,0x53,0x10,0x92,0x14,0x84,0xFC,0xFF,
10225 1.1 jruoho 0x07,0xAA,0xC7,0x9C,0x40,0xAC,0xFA,0x5B,
10226 1.1 jruoho 0x25,0x50,0x27,0x01,0xA1,0xC9,0x40,0x74,
10227 1.1 jruoho 0x7C,0x20,0x0F,0xB8,0x83,0x64,0x20,0x54,
10228 1.1 jruoho 0x29,0x88,0xC0,0xAC,0xF4,0x63,0xA4,0x23,
10229 1.1 jruoho 0x05,0x51,0x7D,0xBC,0xA0,0x20,0x34,0xD1,
10230 1.1 jruoho 0x3B,0x2C,0x08,0x7B,0xB8,0x69,0xA8,0xE4,
10231 1.1 jruoho 0x59,0xA5,0xA1,0x12,0x10,0x9A,0x0D,0x44,
10232 1.1 jruoho 0xC7,0x04,0xF2,0xAA,0x79,0x4C,0x60,0x20,
10233 1.1 jruoho 0x54,0x2F,0x08,0xCD,0x01,0x42,0x13,0x83,
10234 1.1 jruoho 0x08,0xD4,0xA9,0xBF,0x37,0x1A,0x2A,0xF9,
10235 1.1 jruoho 0x5B,0x09,0xC4,0xCA,0x5E,0x69,0x02,0xB1,
10236 1.1 jruoho 0xDE,0xA7,0x4E,0x20,0xE6,0x1D,0x98,0xA9,
10237 1.1 jruoho 0x05,0xA1,0xEA,0x41,0x04,0xE6,0xB4,0x40,
10238 1.1 jruoho 0x54,0x81,0x78,0x10,0xA6,0x08,0x44,0x60,
10239 1.1 jruoho 0x4E,0x02,0x44,0xD3,0x81,0xD0,0xEC,0x60,
10240 1.1 jruoho 0x54,0xE7,0xA3,0x4D,0x40,0xD6,0x0E,0x42,
10241 1.1 jruoho 0xB3,0x80,0x08,0xCC,0x59,0x1E,0x69,0x02,
10242 1.1 jruoho 0xB1,0x92,0x2F,0x9D,0x0E,0x24,0x04,0x84,
10243 1.1 jruoho 0x26,0xD3,0x7F,0x68,0xA1,0x05,0x80,0x99,
10244 1.1 jruoho 0x84,0x04,0x20,0x4C,0x16,0x88,0x0E,0x27,
10245 1.1 jruoho 0xD6,0x08,0x22,0x40,0xC7,0x01,0xA3,0xD1,
10246 1.1 jruoho 0x40,0x68,0x5C,0x40,0x9A,0x1D,0x90,0x2A,
10247 1.1 jruoho 0x6D,0x00,0xC6,0x54,0x83,0xD0,0x24,0x20,
10248 1.1 jruoho 0x02,0x74,0x2C,0x10,0x01,0x5A,0x74,0x04,
10249 1.1 jruoho 0x30,0x16,0x01,0x84,0x46,0x05,0xA1,0xC9,
10250 1.1 jruoho 0x2A,0x80,0xB2,0x9C,0x20,0x1A,0x20,0xC9,
10251 1.1 jruoho 0x30,0x60,0x0A,0x42,0x33,0x81,0xD0,0x8C,
10252 1.1 jruoho 0x20,0x54,0x7C,0x07,0x10,0x16,0x04,0x84,
10253 1.1 jruoho 0x86,0x03,0xD1,0x00,0xFE,0xFF,0x8F,0x0C,
10254 1.1 jruoho 0x02,0xD1,0x00,0x9C,0x23,0xC4,0x61,0x85,
10255 1.1 jruoho 0x82,0xD0,0xF4,0x20,0x34,0x6C,0x09,0x50,
10256 1.1 jruoho 0x16,0x1D,0x44,0xC7,0x23,0x92,0x02,0x8C,
10257 1.1 jruoho 0x05,0x02,0xA1,0x31,0x41,0x68,0x6C,0x10,
10258 1.1 jruoho 0x1A,0x29,0x06,0x28,0x13,0x54,0xE3,0x50,
10259 1.1 jruoho 0x44,0x7B,0x80,0x31,0x99,0x20,0x54,0x36,
10260 1.1 jruoho 0x88,0xC0,0x1C,0x14,0x88,0x86,0x07,0xA1,
10261 1.1 jruoho 0x62,0x82,0x00,0x52,0x10,0x01,0x12,0x20,
10262 1.1 jruoho 0x1A,0x1E,0x84,0x8A,0x29,0x32,0x74,0x0A,
10263 1.1 jruoho 0x42,0x55,0x24,0x39,0x9A,0x50,0x10,0x1D,
10264 1.1 jruoho 0x4D,0x08,0x08,0xCD,0x07,0x46,0x75,0x35,
10265 1.1 jruoho 0x39,0x6E,0x50,0x10,0xAA,0x1D,0x84,0x06,
10266 1.1 jruoho 0x05,0xA1,0x39,0xA2,0x80,0xB2,0xEC,0x20,
10267 1.1 jruoho 0x02,0xB2,0x9E,0x2A,0x87,0x0A,0x0A,0x22,
10268 1.1 jruoho 0x30,0xA7,0x02,0xA2,0x49,0x41,0xA8,0x8E,
10269 1.1 jruoho 0x2C,0x47,0x0A,0x9A,0x06,0x84,0x25,0x06,
10270 1.1 jruoho 0xA1,0xC9,0xDA,0x80,0xB0,0x0C,0x75,0x0E,
10271 1.1 jruoho 0x24,0x14,0x84,0xE6,0x04,0xA1,0x4A,0xF2,
10272 1.1 jruoho 0x0C,0x8F,0x82,0xE8,0x38,0x42,0x80,0x68,
10273 1.1 jruoho 0x7A,0x10,0xAA,0xA6,0xCF,0x00,0x28,0x88,
10274 1.1 jruoho 0x06,0x40,0x40,0x68,0x4E,0x30,0xAA,0xA8,
10275 1.1 jruoho 0xD1,0xD1,0x84,0x82,0x50,0xDD,0x2F,0x4E,
10276 1.1 jruoho 0x81,0xF8,0xFF,0x0F,
10277 1.1 jruoho }) // END MBUF
10278 1.1 jruoho
10279 1.1 jruoho } //end DefinitionBlock
10280 1.1 jruoho
10281