2 * Some or all of this work - Copyright (c) 2006 - 2013, Intel Corp.
5 * Redistribution and use in source and binary forms, with or without modification,
6 * are permitted provided that the following conditions are met:
8 * Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 * Redistributions in binary form must reproduce the above copyright notice,
11 * this list of conditions and the following disclaimer in the documentation
12 * and/or other materials provided with the distribution.
13 * Neither the name of Intel Corporation nor the names of its contributors
14 * may be used to endorse or promote products derived from this software
15 * without specific prior written permission.
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 // Grammar.asl - Minimally excercises most ASL constructs
33 // NOTE -- use: iasl -f -of grammar.asl to compile
35 // This 1) Ignores errors (checks compiler error handling)
36 // 2) Disables constant folding
40 /*******************************************************************************
41 Compilation should look like this:
43 C:\acpica\tests\misc>iasl -f -of grammar.asl
45 Intel ACPI Component Architecture
46 ASL Optimizing Compiler version 20090422 [Apr 22 2009]
47 Copyright (C) 2000 - 2009 Intel Corporation
48 Supports ACPI Specification Revision 3.0a
50 grammar.asl 187: Name (_NPK, Package (8)
51 Warning 1098 - ^ Unknown reserved name (_NPK)
53 grammar.asl 510: NAME (ESC1, "abcdefg\x00hijklmn")
54 Warning 1042 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
56 grammar.asl 511: NAME (ESC2, "abcdefg\000hijklmn")
57 Warning 1042 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
59 grammar.asl 601: Method (RCIV, 1)
60 Warning 1087 - ^ Not all control paths return a value (RCIV)
62 grammar.asl 608: RCIV (Subtract (Arg0, 1))
63 Remark 5073 - ^ Recursive method call (RCIV)
65 grammar.asl 937: Method (_ERR, 2)
66 Warning 1077 - ^ Reserved method has too few arguments (_ERR requires 3)
68 grammar.asl 1377: Store (0x1234567887654321, QWD2)
69 Warning 1032 - ^ 64-bit integer in 32-bit table, truncating
71 grammar.asl 1379: if (LNotEqual (Local0, 0x1234567887654321))
72 Warning 1032 - 64-bit integer in 32-bit table, truncating ^
74 grammar.asl 1459: SizeOf (BUFO)
75 Warning 1105 - ^ Result is not used, operator has no effect
77 grammar.asl 1485: Acquire (MTX2, 1)
78 Warning 1104 - ^ Possible operator timeout is ignored
80 grammar.asl 1633: Add (Local0, Local1)
81 Warning 1105 - ^ Result is not used, operator has no effect
83 grammar.asl 1804: Method (COND)
84 Warning 1087 - ^ Not all control paths return a value (COND)
86 grammar.asl 6010: Name (_HID, "*PNP0A06")
87 Error 4001 - ^ String must be entirely alphanumeric (*PNP0A06)
89 grammar.asl 6461: Name (_CRS, Buffer(26) {"\_SB_.PCI2._CRS..........."})
90 Warning 1038 - Invalid or unknown escape sequence ^
92 grammar.asl 6800: And (Local0, 1, Local0) // Local0 &= 1
93 Error 4050 - ^ Method local variable is not initialized (Local0)
95 grammar.asl 6886: Name (_HID, "*PNP0C0A") // Control Method Battey ID
96 Error 4001 - ^ String must be entirely alphanumeric (*PNP0C0A)
98 ASL Input: grammar.asl - 10254 lines, 322162 bytes, 4810 keywords
99 AML Output: grammar.aml - 43392 bytes, 669 named objects, 4141 executable opcodes
101 Compilation complete. 3 Errors, 12 Warnings, 1 Remarks, 1101 Optimizations
103 ***************************************************************************************************/
106 "grammar.aml", //Output filename
108 0x01, //DSDT Revision ---> 32-bit table
110 "GRMTEST", //TABLE ID
111 0x20090511 //OEM Revision
115 External (\ABCD, UnknownObj)
118 /* Device with _STA and _INI */
133 /* Device with no _STA, has _INI */
143 /* Device with _STA, no _INI */
153 /* Device with _STA and _INI, but not present */
169 /* Resource descriptors */
173 Name (PRT0, ResourceTemplate ()
175 IRQ (Edge, ActiveHigh, Exclusive) {3,4,5,6,7,9,10,11,14,15}
177 StartDependentFn (1,1)
179 IRQNoFlags () {0,1,2}
184 Method (_CRS, 0, NotSerialized)
186 Store ("_CRS:", Debug)
191 Method (_SRS, 1, Serialized)
193 Store ("_SRS:", Debug)
199 Name (_NPK, Package ()
210 Name (_PRT, Package (0x04)
245 Method (_CRS, 0, Serialized)
247 Name (PRT0, ResourceTemplate ()
249 WordBusNumber (ResourceConsumer, MinFixed, MaxFixed, SubDecode,
250 0x0000, // Address Space Granularity
251 0xFFF2, // Address Range Minimum
252 0xFFF3, // Address Range Maximum
253 0x0032, // Address Translation Offset
255 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
256 0x0000, // Address Space Granularity
257 0x0000, // Address Range Minimum
258 0x00FF, // Address Range Maximum
259 0x0000, // Address Translation Offset
261 WordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
262 0x0000, // Address Space Granularity
263 0xA000, // Address Range Minimum
264 0xBFFF, // Address Range Maximum
265 0x0000, // Address Translation Offset
267 IO (Decode16, 0x0CF8, 0x0CFF, 0x01, 0x08)
268 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
269 0x0000, // Address Space Granularity
270 0x0000, // Address Range Minimum
271 0x0CF7, // Address Range Maximum
272 0x0000, // Address Translation Offset
275 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
276 0x0000, // Address Space Granularity
277 0x0D00, // Address Range Minimum
278 0xFFFF, // Address Range Maximum
279 0x0000, // Address Translation Offset
282 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
283 0x00000000, // Address Space Granularity
284 0x00000000, // Address Range Minimum
285 0x00000CF7, // Address Range Maximum
286 0x00000000, // Address Translation Offset
289 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
290 0x00000000, // Address Space Granularity
291 0x000C8000, // Address Range Minimum
292 0x000EFFFF, // Address Range Maximum
293 0x00000000, // Address Translation Offset
295 , AddressRangeMemory, TypeStatic)
296 DWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
297 0x00000000, // Address Space Granularity
298 0x000C8000, // Address Range Minimum
299 0x000EFFFF, // Address Range Maximum
300 0x00000000, // Address Translation Offset
302 QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
303 0x0000000000000000, // Address Space Granularity
304 0x0000000000000000, // Address Range Minimum
305 0x0000000000000CF7, // Address Range Maximum
306 0x0000000000000000, // Address Translation Offset
307 0x0000000000000CF8, 0x44, "This is a ResouceSource string",
309 QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
310 0x0000000000000000, // Address Space Granularity
311 0x0000000000000000, // Address Range Minimum
312 0x0000000000000CF7, // Address Range Maximum
313 0x0000000000000000, // Address Translation Offset
314 0x0000000000000CF8,,,
316 QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
317 0x0000000000000000, // Address Space Granularity
318 0x0000000000100000, // Address Range Minimum
319 0x00000000FFDFFFFF, // Address Range Maximum
320 0x0000000000000000, // Address Translation Offset
321 0x00000000FFD00000,,,
322 , AddressRangeMemory, TypeStatic)
323 QWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
324 0x0000000000000000, // Address Space Granularity
325 0x0000000000000000, // Address Range Minimum
326 0x0000000000000CF7, // Address Range Maximum
327 0x0000000000000000, // Address Translation Offset
328 0x0000000000000CF8,,,)
329 ExtendedIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
330 0x0000000000000000, // Address Space Granularity
331 0x0000000000000000, // Address Range Minimum
332 0x0000000000000CF7, // Address Range Maximum
333 0x0000000000000000, // Address Translation Offset
334 0x0000000000000CF8, // Address Length
335 0x0000000000000000, // Type Specific Attributes
337 ExtendedMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
338 0x0000000000000000, // Address Space Granularity
339 0x0000000000100000, // Address Range Minimum
340 0x00000000FFDFFFFF, // Address Range Maximum
341 0x0000000000000000, // Address Translation Offset
342 0x00000000FFD00000, // Address Length
343 0x0000000000000000, // Type Specific Attributes
344 , AddressRangeMemory, TypeStatic)
345 ExtendedSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0xA3,
346 0x0000000000000000, // Address Space Granularity
347 0x0000000000100000, // Address Range Minimum
348 0x00000000FFDFFFFF, // Address Range Maximum
349 0x0000000000000000, // Address Translation Offset
350 0x00000000FFD00000, // Address Length
351 0x0000000000000000) // Type Specific Attributes
352 IO (Decode16, 0x0010, 0x0020, 0x01, 0x10)
353 IO (Decode16, 0x0090, 0x00A0, 0x01, 0x10)
354 FixedIO (0x0061, 0x01)
356 DMA (Compatibility, BusMaster, Transfer8_16) {4}
357 DMA (Compatibility, BusMaster, Transfer8) {2,5,7}
358 Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
359 Memory32Fixed (ReadOnly, 0xFFFE0000, 0x00020000)
360 Memory32 (ReadOnly, 0x00020000, 0xFFFE0000, 0x00000004, 0x00000200)
361 Memory24 (ReadOnly, 0x1111, 0x2222, 0x0004, 0x0200)
362 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, 0xE, "\\_SB_.TEST")
366 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0x6, "xxxx")
373 Interrupt (ResourceProducer, Edge, ActiveHigh, Exclusive)
383 VendorShort () {0x01, 0x02, 0x03}
386 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
389 Register (SystemIO, 0x08, 0x00, 0x00000000000000B2, , R000)
390 Register (SystemMemory, 0x08, 0x00, 0x00000000000000B2)
391 StartDependentFnNoPri ()
393 IRQNoFlags () {0,1,2}
394 IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,14,15}
398 CreateWordField (PRT0, 0x08, BMIN)
399 CreateByteField (PRT0, R000._ASZ, RSIZ)
404 Method (_PRS, 0, Serialized)
406 Name (BUF0, ResourceTemplate ()
408 StartDependentFn (0x01, 0x02)
410 IO (Decode16, 0x03D8, 0x03F8, 0x01, 0x08)
413 StartDependentFn (0x02, 0x01)
415 IO (Decode16, 0x03D8, 0x03E8, 0x01, 0x08)
418 StartDependentFn (0x00, 0x02)
420 IO (Decode16, 0x02E8, 0x02F8, 0x01, 0x08)
423 StartDependentFn (0x00, 0x02)
425 IO (Decode16, 0x02D8, 0x02E8, 0x01, 0x08)
428 StartDependentFn (0x02, 0x00)
430 IO (Decode16, 0x0100, 0x03F8, 0x08, 0x08)
431 IRQNoFlags () {1,3,4,5,6,7,8,10,11,12,13,14,15}
438 Method (_SRS, 1, Serialized)
445 Name(\_S0,Package(0x04){
451 Name(\_S3,Package(0x04){
457 Name(\_S4,Package(0x04){
463 Name(\_S5,Package(0x04){
470 /* Examine this table header (DSDT) */
473 DataTableRegion (HDR, "DSDT", "", "")
474 Field (HDR, AnyAcc, NoLock, Preserve)
491 Store ("32-bit table", Debug)
495 Store ("64-bit table", Debug)
503 /* Custom operation region */
505 OperationRegion(MYOP,0x80,0xFD60,0x6)
506 Field(MYOP,ByteAcc,NoLock,Preserve)
511 Method (TCOP,, Serialized)
513 Name (_STR, Unicode ("test"))
520 /* Warning should be issued for premature string termination */
522 NAME (ESC1, "abcdefg\x00hijklmn")
523 NAME (ESC2, "abcdefg\000hijklmn")
524 Name (ESC3, "abc\a\bdef\f\n\r\t\v\x03ffff\432")
527 Name(CRSA,ResourceTemplate()
529 WORDBusNumber(ResourceProducer,MinFixed,MaxFixed,PosDecode,0x0000,0x0019,0x001D,0x0000,0x0005)
530 WORDIO(ResourceProducer,MinFixed,MaxFixed,PosDecode,NonISAOnlyRanges,0x0000,0xC000,0xCFFF,0x0000,0x1000)
531 DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
534 Name(CRSB,ResourceTemplate()
536 DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
540 Name(CRSC,ResourceTemplate()
542 VendorShort () {0x1, 0x2, 0x3}
544 Name(CRSD,ResourceTemplate()
546 VendorLong (VNDL) {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9}
549 Name(CRSE,ResourceTemplate()
551 IRQNoFlags(){3,4,10,11}
552 IRQNoFlags(xxxt){3,4,10,11}
554 Name(CRSR, Buffer (Add (SizeOf(CRSA),SizeOf(CRSB))){})
555 Method(_CRS,0,NotSerialized)
566 Name(Bxxx,0xFFFFFFFF)
571 PowerResource(LANP,1,0)
574 If(LEqual(And(LANS,0x30),0x30)){
593 /* Can a method define another method? */
595 /**********************************
596 Method (TASK, 2, SERIALIZED)
609 ************************************/
611 /* A recursive method */
616 If (Lequal (Arg0, 0))
620 RCIV (Subtract (Arg0, 1))
631 Processor(CPU0,0x0,0xFFFFFFFF,0x0) {}
634 Name(B1TP,0xFFFFFFFF)
636 Name(B2TP,0xFFFFFFFF)
637 Name(ADPS,0xFFFFFFFF)
638 Name(B1PS,0xFFFFFFFF)
639 Name(B1RS,0xFFFFFFFF)
640 Name(B1CS,0xFFFFFFFF)
641 Name(B2PS,0xFFFFFFFF)
642 Name(B2RS,0xFFFFFFFF)
643 Name(B2CS,0xFFFFFFFF)
679 Method(RDBT,0,Serialized){
680 If(LNot(SMWE(0x09,0x15,1,1))){
688 Name (SBUF, Buffer (128) {})
690 CreateBitField (SBUF, 3, BITY)
691 CreateByteField (SBUF, 1, BYTY)
692 CreateWordField (SBUF, 2, WRDZ)
693 CreateDwordField (SBUF, 4, DWDZ)
694 CreateQwordField (SBUF, 8, QWDZ)
695 CreateField (SBUF, 128, 12, FLDZ)
696 CreateField (SBUF, 148, 96, FLDY)
697 CreateField (SBUF, 148, 96, \_SB_.FLDW)
701 CreateField (\_SB_.SBUF, 148, 96, FLDV)
707 Name(_HID,EISAID("PNP0A03"))
710 Method(_CRS,, Serialized)
712 Name(PRT0, ResourceTemplate() {
713 WORDBusNumber( // Bus number resource(0)
714 ResourceConsumer, // bit 0 of general flags is 1
715 MinFixed, // Range is notfixed
716 MaxFixed, // Range is not fixed
717 SubDecode, // SubDecode
718 0x0000, // Granularity
721 0x0032, // Translation
722 0x0002,,, // Range Length
726 CreateWordField(PRT0, BUS0._MIN, BMIN) //Minimum bus number suported under this bridge.
740 OperationRegion(FJIO,SystemIO,0xFD60,0x6)
741 Field(FJIO,ByteAcc,NoLock,Preserve)
755 IndexField(GIDX,GDTA,ByteAcc,NoLock,Preserve)
811 Method(RDBT,3,Serialized){
820 If(LNot(SMRE(0x09,0x15,1,RefOf(Local0)))){
821 If(LNot(SMWE(0x08,0x14,1,Local1))){
822 If(LNot(SMRE(0x09,0x17,Local2,RefOf(Local3)))){
826 Or(Local0,0xFFF,Local0)
827 SMWE(0x08,0x14,1,Local0)
833 Or(0xFFFF0000,Arg0,Local0)
834 Or(Local0,ShiftLeft(Arg1,8),Local0)
835 Subtract(Zero,Local0,Local0)
838 Or(Local0,ShiftLeft(Arg1,8),Local0)
845 Name(_HID,EISAID("PNP0C0A"))
847 Alias(\_SB.PCI0.EIO.B1P,\_SB_.PCI0.XXXX)
848 Alias(\_SB.PCI0.EIO.B1P,B1P)
849 Alias(\_SB.PCI0.EIO.B1C,B1C)
850 Alias(\_SB.PCI0.EIO.B1CH,B1CH)
851 Alias(\_SB.PCI0.EIO.B1CL,B1CL)
852 Alias(\_SB.PCI0.EIO.B1VH,B1VH)
853 Alias(\_SB.PCI0.EIO.B1VL,B1VL)
854 Alias(\_SB.PCI0.EIO.B1CP,B1CP)
864 RDBT(Zero,Zero,RefOf(B1DC))
865 RDBT(Zero,One,RefOf(B1LF))
866 Store(B1DC,Index(RBIF,1))
867 Store(B1LF,Index(RBIF,2))
868 Store("CA54200-5003/5",Index(RBIF,9))
869 Store("1",Index(RBIF,10))
873 Method(_BST,, Serialized) {
879 if (LAnd(B1P,LNot(B1C))){
887 if (LLessEqual(B1CP,1)) {
891 Store(MKWD(B1CL,B1CH),Local1)
893 Store(Divide(Add(Multiply(B1CP,B1LF),99),100),Local2)
895 Store(MKWD(B1VL,B1VH),Local3)
897 Name(STAT,Package(4){})
898 Store(Local0,Index(STAT,0))
899 Store(Local1,Index(STAT,1))
900 Store(Local2,Index(STAT,2))
901 Store(Local3,Index(STAT,3))
904 // \_SB.PCI0.EIO.EC0.IECT()
905 // \_SB.PCI0.EIO.EC0.SECT()
928 Method (TZ2, 0, SERIALIZED)
946 Notify (\_PR.CPU0, 0)
952 Store ("Run-time exception:", Debug)
956 Return (0) // Map error to AE_OK
963 Divide (Local0, Local1, Local3)
965 Store ("DIV0 - noabort", Debug)
970 if (LEqual (Arg0, 0))
972 Store ("+*+*+*+* MTHD_ERROR: Results not equal!", Debug)
974 if (LEqual (Arg0, 1))
976 Store ("+*+*+*+* MTHD_ERROR: Numeric result is incorrect!", Debug)
978 if (LEqual (Arg0, 2))
980 Store ("+*+*+*+* MTHD_ERROR: Operand was clobbered!", Debug)
1008 Store (0x01010101, Local0)
1009 R222 (0xABAB, Local0)
1010 Store (Local0, Local1)
1017 Store (NUM1(), Local0)
1033 Store (\IFEL.TEST(), Local0)
1034 if (LGreater (Local0, 0))
1040 Store (\NOSV.TEST(), Local0)
1041 if (LGreater (Local0, 0))
1047 Store (\IDXF.TEST(), Local0)
1048 if (LGreater (Local0, 0))
1054 Store (\_SB_.NSTL.TEST(), Local0)
1055 if (LGreater (Local0, 0))
1061 Store (\RTBF.TEST(), Local0)
1062 if (LGreater (Local0, 0))
1068 Store (\_SB_.RTLV.TEST(), Local0)
1069 if (LGreater (Local0, 0))
1075 Store (\_SB_.RETP.TEST(), Local0)
1076 if (LGreater (Local0, 0))
1082 Store (\WHLR.TEST(), Local0)
1083 if (LGreater (Local0, 0))
1089 Store (\ANDO.TEST(), Local0)
1090 if (LGreater (Local0, 0))
1096 Store (\BRKP.TEST(), Local0)
1097 if (LGreater (Local0, 0))
1103 Store (\ADSU.TEST(), Local0)
1104 if (LGreater (Local0, 0))
1110 Store (\INDC.TEST(), Local0)
1111 if (LGreater (Local0, 0))
1117 Store (\LOPS.TEST(), Local0)
1118 if (LGreater (Local0, 0))
1124 Store (\FDSO.TEST(), Local0)
1125 if (LGreater (Local0, 0))
1131 Store (\MLDV.TEST(), Local0)
1132 if (LGreater (Local0, 0))
1138 Store (\NBIT.TEST(), Local0)
1139 if (LGreater (Local0, 0))
1145 Store (\SHFT.TEST(), Local0)
1146 if (LGreater (Local0, 0))
1152 Store (\XORD.TEST(), Local0)
1153 if (LGreater (Local0, 0))
1159 Store (\CRBF.TEST(), Local0)
1160 if (LGreater (Local0, 0))
1166 Store (\IDX4.TEST(), Local0)
1167 if (LGreater (Local0, 0))
1173 Store (\EVNT.TEST(), Local0)
1174 if (LGreater (Local0, 0))
1180 Store (\SZLV.TEST(), Local0)
1181 if (LGreater (Local0, 0))
1187 Store (\_SB_.BYTF.TEST(), Local0)
1188 if (LGreater (Local0, 0))
1194 Store (\DWDF.TEST(), Local0)
1195 if (LGreater (Local0, 0))
1201 Store (\DVAX.TEST(), Local0)
1202 if (LGreater (Local0, 0))
1208 Store (\IDX6.TEST(), Local0)
1209 if (LGreater (Local0, 0))
1215 Store (\IDX5.TEST(), Local0)
1216 if (LGreater (Local0, 0))
1222 Store (\_SB_.IDX0.TEST(), Local0)
1223 if (LGreater (Local0, 0))
1229 Store (\_SB_.IDX3.TEST(), Local0)
1230 if (LGreater (Local0, 0))
1236 Store (\IDX7.TEST(), Local0)
1237 if (LGreater (Local0, 0))
1243 Store (\MTCH.TEST(), Local0)
1244 if (LGreater (Local0, 0))
1250 Store (\WHLB.TEST(), Local0)
1251 if (LGreater (Local0, 0))
1257 Store (\_SB_.IDX2.TEST(), Local0)
1258 if (LGreater (Local0, 0))
1264 Store (\SIZO.TEST(), Local0)
1265 if (LGreater (Local0, 0))
1271 Store (\_SB_.SMIS.TEST(), Local0)
1272 if (LGreater (Local0, 0))
1278 if (LGreater (ERRS, 0))
1280 Store ("****** There were errors during the execution of the test ******", Debug)
1287 Return(0) // Success
1291 Method (OBJ1, 1, SERIALIZED)
1295 Name(BUFR, Buffer (Local0) {})
1296 Name(BUF1, Buffer (4) {1,2,3,4})
1297 Name(BUF2, Buffer (4) {})
1313 Method (FLDS,, Serialized)
1315 Store ("++++++++ Creating BufferFields", Debug)
1316 Name (BUF2, Buffer (128) {})
1318 CreateBitField (BUF2, 3, BIT2)
1319 CreateByteField (BUF2, 1, BYT2)
1320 CreateWordField (BUF2, 2, WRD2)
1321 CreateDwordField (BUF2, 4, DWD2)
1322 CreateQwordField (BUF2, 8, QWD2)
1323 CreateField (BUF2, 128, 12, FLD2)
1324 CreateField (BUF2, 148, 96, FLD3)
1327 Store (BIT2, Local0)
1328 if (LNotEqual (Local0, 0x1))
1334 Store (DerefOf (Index (BUF2, 0)), Local0)
1335 if (LNotEqual (Local0, 0x08))
1341 Store ("++++++++ Bit BufferField I/O PASS", Debug)
1346 Store (BYT2, Local0)
1347 if (LNotEqual (Local0, 0x1A))
1353 Store ("++++++++ Byte BufferField I/O PASS", Debug)
1356 Store (0x1234, WRD2)
1357 Store (WRD2, Local0)
1358 if (LNotEqual (Local0, 0x1234))
1364 Store ("++++++++ Word BufferField I/O PASS", Debug)
1368 Store (FLD2, Local0)
1369 if (LNotEqual (Local0, 0x123))
1375 Store ("++++++++ 12-bit BufferField I/O PASS", Debug)
1378 Store (0x12345678, DWD2)
1379 Store (DWD2, Local0)
1380 if (LNotEqual (Local0, 0x12345678))
1386 Store ("++++++++ Dword BufferField I/O PASS", Debug)
1389 Store (0x1234567887654321, QWD2)
1390 Store (QWD2, Local0)
1391 if (LNotEqual (Local0, 0x1234567887654321))
1397 Store ("++++++++ Qword BufferField I/O PASS", Debug)
1402 /* Field execution */
1404 Method (FLDX,, Serialized)
1406 Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
1407 { // Field: SMEM overlay using 32-bit field elements
1408 SMD0, 32, // 32-bits
1409 SMD1, 32, // 32-bits
1410 SMD2, 32, // 32-bits
1412 } // Field: SMEM overlay using 32-bit field elements
1413 Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
1414 { // Field: SMEM overlay using greater than 32-bit field elements
1415 SME0, 69, // larger than an integer (32 or 64)
1416 SME1, 97 // larger than an integer
1417 } // Field: SMEM overlay using greater than 32-bit field elements
1423 /* Test "Force release" of mutex on method exit */
1425 Acquire (MTXT, 0xFFFF)
1426 Acquire (MTXX, 0xFFFF)
1428 Store ("++++++++ Acquiring Mutex MTX2", Debug)
1429 Acquire (_GL_, 0xFFFF)
1432 Store ("++++++++ Releasing Mutex MTX2", Debug)
1437 Method (OBJ2, 1, Serialized)
1439 Store ("++++++++ Creating Buffer BUFO", Debug)
1440 Name (BUFO, Buffer (32) {})
1442 Store ("++++++++ Creating OpRegion OPR2", Debug)
1443 OperationRegion (OPR2, SystemMemory, Arg0, 256)
1445 Store ("++++++++ Creating Field(s) in OpRegion OPR2", Debug)
1446 Field (OPR2, ByteAcc, NoLock, Preserve)
1453 Store ("++++++++ Creating BankField BNK2 in OpRegion OPR2", Debug)
1455 // mcw 3/20/00 - changed FET0, 4, FET1, 3 to FET0, 1, FET1, 1
1457 BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
1463 Store ("++++++++ Creating IndexField", Debug)
1464 IndexField (IDX2, DAT2, ByteAcc, NoLock, Preserve)
1470 Store ("++++++++ SizeOf (BUFO)", Debug)
1473 Store ("++++++++ Store (SizeOf (BUFO), Local0)", Debug)
1474 Store (SizeOf (BUFO), Local0)
1476 Store ("++++++++ Concatenate (\"abd\", \"def\", Local0)", Debug)
1477 Concatenate ("abd", "def", Local0)
1478 Store (Local0, Debug)
1480 Store ("++++++++ Concatenate (\"abd\", 0x7B, Local0)", Debug)
1481 Concatenate ("abd", 0x7B, Local0)
1482 Store (Local0, Debug)
1484 Store ("++++++++ Creating Event EVT2", Debug)
1487 Store ("++++++++ Creating Mutex MTX2", Debug)
1490 Store ("++++++++ Creating Alias MTXA to MTX2", Debug)
1493 Store ("++++++++ Acquiring Mutex MTX2", Debug)
1494 Acquire (MTX2, 0xFFFF)
1496 Store ("++++++++ Acquiring Mutex MTX2 (2nd acquire)", Debug)
1499 Store ("++++++++ Releasing Mutex MTX2", Debug)
1504 Store ("++++++++ Signalling Event EVT2", Debug)
1507 Store ("++++++++ Resetting Event EVT2", Debug)
1510 Store ("++++++++ Signalling Event EVT2", Debug)
1513 Store ("++++++++ Waiting Event EVT2", Debug)
1516 Store ("++++++++ Sleep", Debug)
1519 Store ("++++++++ Stall", Debug)
1522 Store ("++++++++ NoOperation", Debug)
1527 Store ("++++++++ Return from Method OBJ2", Debug)
1536 Store ("++++++++ Add (0x12345678, 0x11111111, Local0)", Debug)
1537 Add (0x12345678, 0x11111111, Local0)
1539 Store ("++++++++ Store (Add (0x12345678, 0x11111111), Local1)", Debug)
1540 Store (Add (0x12345678, 0x11111111), Local1)
1542 Store ("++++++++ Checking result from ADD", Debug)
1543 if (LNotEqual (Local0, Local1))
1551 Store ("++++++++ Subtract (0x87654321, 0x11111111, Local4)", Debug)
1552 Subtract (0x87654321, 0x11111111, Local4)
1554 Store ("++++++++ Store (Subtract (0x87654321, 0x11111111), Local5)", Debug)
1555 Store (Subtract (0x87654321, 0x11111111), Local5)
1557 Store ("++++++++ Checking result from SUBTRACT", Debug)
1558 if (LNotEqual (Local4, Local5))
1566 Store ("++++++++ Multiply (33, 10, Local6)", Debug)
1567 Multiply (33, 10, Local6)
1569 Store ("++++++++ Store (Multiply (33, 10), Local7)", Debug)
1570 Store (Multiply (33, 10), Local7)
1573 Store ("++++++++ Checking result from MULTIPLY", Debug)
1574 if (LNotEqual (Local6, Local7))
1582 Store ("++++++++ Divide (100, 9, Local1, Local2)", Debug)
1583 Divide (100, 9, Local1, Local2)
1585 Store ("++++++++ Store (Divide (100, 9), Local3)", Debug)
1586 Store (Divide (100, 9), Local3)
1588 Store ("++++++++ Checking (quotient) result from DIVIDE", Debug)
1589 if (LNotEqual (Local2, Local3))
1597 Store ("++++++++ Increment (Local0)", Debug)
1602 Store ("++++++++ Checking result from INCREMENT", Debug)
1603 if (LNotEqual (Local0, Local1))
1611 Store ("++++++++ Decrement (Local0)", Debug)
1616 Store ("++++++++ Checking result from DECREMENT", Debug)
1617 if (LNotEqual (Local0, Local1))
1626 Store ("++++++++ ToBCD (0x1234, Local5)", Debug)
1627 ToBCD (0x1234, Local5)
1629 Store ("++++++++ FromBCD (Local5, Local6)", Debug)
1630 FromBCD (Local5, Local6)
1632 Store ("++++++++ Return (Local6)", Debug)
1642 Store (Local0, Debug)
1645 Add (Local0, Local1)
1646 if (LNotEqual (Local0, 3))
1650 if (LNotEqual (Local1, 7))
1656 Add (Local0, Local1, Local2)
1657 if (LNotEqual (Local0, 3))
1661 if (LNotEqual (Local1, 7))
1687 Store ("++++++++ FindSetLeftBit (0x00100100, Local0)", Debug)
1688 FindSetLeftBit (0x00100100, Local0)
1689 if (LNotEqual (Local0, 21))
1694 Store ("++++++++ FindSetRightBit (0x00100100, Local1)", Debug)
1695 FindSetRightBit (0x00100100, Local1)
1696 if (LNotEqual (Local1, 9))
1701 Store ("++++++++ And (0xF0F0F0F0, 0x11111111, Local2)", Debug)
1702 And (0xF0F0F0F0, 0x11111111, Local2)
1703 if (LNotEqual (Local2, 0x10101010))
1708 Store ("++++++++ NAnd (0xF0F0F0F0, 0x11111111, Local3)", Debug)
1709 NAnd (0xF0F0F0F0, 0x11111111, Local3)
1710 if (LNotEqual (Local3, 0xEFEFEFEF))
1715 Store ("++++++++ Or (0x11111111, 0x22222222, Local4)", Debug)
1716 Or (0x11111111, 0x22222222, Local4)
1717 if (LNotEqual (Local4, 0x33333333))
1722 Store ("++++++++ NOr (0x11111111, 0x22222222, Local5)", Debug)
1723 NOr (0x11111111, 0x22222222, Local5)
1724 if (LNotEqual (Local5, 0xCCCCCCCC))
1729 Store ("++++++++ XOr (0x11113333, 0x22222222, Local6)", Debug)
1730 XOr (0x11113333, 0x22222222, Local6)
1731 if (LNotEqual (Local6, 0x33331111))
1736 Store ("++++++++ ShiftLeft (0x11112222, 2, Local7)", Debug)
1737 ShiftLeft (0x11112222, 2, Local7)
1738 if (LNotEqual (Local7, 0x44448888))
1743 Store ("++++++++ ShiftRight (Local7, 2, Local7)", Debug)
1744 ShiftRight (Local7, 2, Local7)
1745 if (LNotEqual (Local7, 0x11112222))
1751 Store ("++++++++ Not (Local0, Local1)", Debug)
1752 Store (0x22224444, Local0)
1753 Not (Local0, Local1)
1754 if (LNotEqual (Local0, 0x22224444))
1759 if (LNotEqual (Local1, 0xDDDDBBBB))
1771 Store ("++++++++ Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)", Debug)
1772 Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)
1774 Store ("++++++++ Store (LEqual (0xFFFFFFFF, 0x11111111), Local)", Debug)
1775 Store (LEqual (0xFFFFFFFF, 0x11111111), Local1)
1777 Store ("++++++++ Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)", Debug)
1778 Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)
1780 Store ("++++++++ Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)", Debug)
1781 Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)
1783 Store ("++++++++ Store (LLess (0xFFFFFFFF, 0x11111111), Local4)", Debug)
1784 Store (LLess (0xFFFFFFFF, 0x11111111), Local4)
1786 Store ("++++++++ Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)", Debug)
1787 Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)
1789 Store ("++++++++ Store (LNot (0x31313131), Local6)", Debug)
1790 Store (0x00001111, Local6)
1791 Store (LNot (Local6), Local7)
1792 if (LNotEqual (Local6, 0x00001111))
1797 if (LNotEqual (Local7, 0x0))
1803 Store ("++++++++ Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)", Debug)
1804 Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)
1806 Store ("++++++++ Lor (0x0, 0x1)", Debug)
1809 Store ("+_+_+_+_+ Lor (0x0, 0x1) returned TRUE", Debug)
1818 Store ("++++++++ Store (0x4, Local0)", Debug)
1821 Store ("++++++++ While (Local0)", Debug)
1824 Store ("++++++++ Decrement (Local0)", Debug)
1829 Store ("++++++++ Store (0x3, Local6)", Debug)
1832 Store ("++++++++ While (Subtract (Local6, 1))", Debug)
1833 While (Subtract (Local6, 1))
1835 Store ("++++++++ Decrement (Local6)", Debug)
1840 Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
1841 If (LGreater (0x2, 0x1))
1843 Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
1844 If (LEqual (0x11111111, 0x22222222))
1846 Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
1851 Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
1854 Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
1855 If (LAnd (0xEEEEEEEE, 0x2))
1857 Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
1858 If (LLess (0x44444444, 0x3))
1860 Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
1865 Store ("++++++++ Exiting from nested IF/ELSE statements", Debug)
1873 Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
1874 If (LGreater (0x2, 0x1))
1876 Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
1877 If (LEqual (0x11111111, 0x22222222))
1879 Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
1884 Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
1887 Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
1888 If (LAnd (0xEEEEEEEE, 0x2))
1890 Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
1891 If (LLess (0x44444444, 0x3))
1893 Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
1898 Store ("++++++++ Returning from nested IF/ELSE statements", Debug)
1909 Method (REFS,, Serialized)
1911 Name (BBUF, Buffer() {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7})
1913 Name (NEST, Package ()
1917 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
1921 0x11, 0x12, 0x12, 0x14, 0x15, 0x16
1925 /* Parser thinks this is a method invocation!! */
1927 Store (RefOf (MAIN), Local5)
1929 // For this to work, ABCD must NOT exist.
1931 Store (CondRefOf (ABCD, Local0), Local1)
1932 if (LNotEqual (Local1, 0))
1937 Store (CondRefOf (BBUF, Local0), Local1)
1938 if (LNotEqual (Local1, Ones))
1943 Store (DeRefOf (Index (BBUF, 3)), Local6)
1944 if (LNotEqual (Local6, 0xB3))
1949 Store (DeRefOf (Index (DeRefOf (Index (NEST, 1)), 3)), Local0)
1950 if (LNotEqual (Local0, 0x14))
1956 Store (0x11223344, Local0)
1957 Store (RefOf (Local0), Local1)
1959 Store (DerefOf (Local1), Local2)
1960 If (LNotEqual (Local2, 0x11223344))
1966 /* Parser thinks this is a method invocation!! */
1974 // Store (RefOf (Local0), Local1)
1976 // CondRefOf (BBUF, Local2)
1977 // CondRefOf (R___, Local3)
1979 // Store (DerefOf (Local1), Local4)
1985 Method (INDX, 0, Serialized)
1987 Name(STAT,Package(4){})
1988 Store(0x44443333,Index(STAT,0))
1991 //=================================================================
1992 //=================================================================
1993 //===================== iPCO TESTS ================================
1994 //=================================================================
1995 //=================================================================
1998 // test IfElseOp.asl
2000 // test for IfOp and ElseOp, including validation of object stack cleanup
2007 // IFNR control method executes IfOp branch with NO nested Return
2008 // and no Else branch
2012 If (LEqual (DWRD, 1))
2018 // NINR control method does not execute If branch and has no Else branch
2022 If (LNotEqual (DWRD, 1))
2028 // IENR control method executes IfOp branch with NO nested Return
2031 If (LEqual (DWRD, 1))
2041 // ELNR control method executes ElseOp branch with NO nested Return
2044 If (LNotEqual (DWRD, 1))
2054 // IFRT control method executes IfOp branch with nested Return with
2059 If (LEqual (DWRD, 1))
2066 // IERT control method executes IfOp branch with nested Return with
2070 If (LEqual (DWRD, 1))
2080 // ELRT control method executes ElseOp branch with nested Return
2083 If (LNotEqual (DWRD, 1))
2095 Store ("++++++++ IfElseOp Test", Debug)
2097 // IfOp with NO return value
2099 If (LNotEqual (RSLT, 0))
2104 // IfOp with NO return value
2106 If (LNotEqual (RSLT, 0))
2111 // IfOp with NO return value
2113 If (LNotEqual (RSLT, 0))
2118 // ElseOp with NO return value
2120 If (LNotEqual (RSLT, 0))
2125 // IfOp with return value
2127 If (LNotEqual (RSLT, 0))
2132 // IfOp with return value
2134 If (LNotEqual (RSLT, 0))
2139 // ElseOp with return value
2141 If (LNotEqual (RSLT, 0))
2154 // Internal test cases to validate IfOp (Operator (,,)) where Operator
2155 // target is ZeroOp to throw away the results.
2156 // Includes internal test cases for logical operators with no destination
2161 Method (TEST,, Serialized)
2163 Store ("++++++++ NoSave Test", Debug)
2168 // Begin test of nested operators without saving results
2171 // Test If (And ()) with no save of And result
2174 Store (1, WRD) // pass -- just do something
2181 // Test If (And ()) with no save of And result
2188 Store (2, WRD) // pass -- just do something
2192 // Test If (NAnd ()) with no save of NAnd result
2195 Store (3, WRD) // pass -- just do something
2202 // Test If (NAnd ()) with no save of NAnd result
2203 If (NAnd (0xFFFFFFFF, 0xFFFFFFFF, ))
2209 Store (4, WRD) // pass -- just do something
2213 // Test If (NOr ()) with no save of NOr result
2216 Store (5, WRD) // pass -- just do something
2223 // Test If (NOr ()) with no save of NOr result
2224 If (NOr (0xFFFFFFFE, 1, ))
2230 Store (6, WRD) // pass -- just do something
2234 // Test If (Not ()) with no save of Not result
2237 Store (7, WRD) // pass -- just do something
2244 // Test If (Not ()) with no save of Not result
2245 If (Not (0xFFFFFFFF, ))
2251 Store (8, WRD) // pass -- just do something
2255 // Test If (Or ()) with no save of Or result
2258 Store (9, WRD) // pass -- just do something
2265 // Test If (Or ()) with no save of Or result
2272 Store (10, WRD) // pass -- just do something
2276 // Test If (XOr ()) with no save of XOr result
2279 Store (11, WRD) // pass -- just do something
2286 // Test If (XOr ()) with no save of XOr result
2293 Store (12, WRD) // pass -- just do something
2298 // Begin test of logical operators with no destination operands
2301 // Test If (LAnd ()) with no save of LAnd result
2304 Store (21, WRD) // pass -- just do something
2311 // Test If (LAnd ()) with no save of LAnd result
2318 Store (22, WRD) // pass -- just do something
2321 // Test If (LAnd ()) with no save of LAnd result
2328 Store (23, WRD) // pass -- just do something
2331 // Test If (LAnd ()) with no save of LAnd result
2338 Store (24, WRD) // pass -- just do something
2342 // Test If (LEqual ()) with no save of LEqual result
2345 Store (31, WRD) // pass -- just do something
2352 // Test If (LEqual ()) with no save of LEqual result
2359 Store (32, WRD) // pass -- just do something
2363 // Test If (LGreater ()) with no save of LGreater result
2364 If (LGreater (3, 1))
2366 Store (41, WRD) // pass -- just do something
2373 // Test If (LGreater ()) with no save of LGreater result
2374 If (LGreater (4, 4))
2380 Store (42, WRD) // pass -- just do something
2383 // Test If (LGreater ()) with no save of LGreater result
2384 If (LGreater (1, 4))
2390 Store (43, WRD) // pass -- just do something
2393 // Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2394 If (LGreaterEqual (3, 1))
2396 Store (44, WRD) // pass -- just do something
2403 // Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2404 If (LGreaterEqual (3, 3))
2406 Store (45, WRD) // pass -- just do something
2413 // Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2414 If (LGreaterEqual (3, 4))
2420 Store (46, WRD) // pass -- just do something
2424 // Test If (LLess ()) with no save of LLess result
2427 Store (51, WRD) // pass -- just do something
2434 // Test If (LLess ()) with no save of LLess result
2441 Store (52, WRD) // pass -- just do something
2444 // Test If (LLess ()) with no save of LLess result
2451 Store (53, WRD) // pass -- just do something
2455 // Test If (LLessEqual ()) with no save of LLessEqual result
2456 If (LLessEqual (1, 3))
2458 Store (54, WRD) // pass -- just do something
2465 // Test If (LLessEqual ()) with no save of LLessEqual result
2466 If (LLessEqual (2, 2))
2468 Store (55, WRD) // pass -- just do something
2475 // Test If (LLessEqual ()) with no save of LLessEqual result
2476 If (LLessEqual (4, 2))
2482 Store (56, WRD) // pass -- just do something
2486 // Test If (LNot ()) with no save of LNot result
2489 Store (61, WRD) // pass -- just do something
2496 // Test If (LNot ()) with no save of LNot result
2503 Store (62, WRD) // pass -- just do something
2507 // Test If (LNotEqual ()) with no save of LNotEqual result
2508 If (LNotEqual (3, 3))
2514 Store (63, WRD) // pass -- just do something
2517 // Test If (LNotEqual ()) with no save of LNotEqual result
2518 If (LNotEqual (1, 3))
2520 Store (64, WRD) // pass -- just do something
2528 // Test If (LOr ()) with no save of LOr result
2531 Store (71, WRD) // pass -- just do something
2538 // Test If (LOr ()) with no save of LOr result
2541 Store (72, WRD) // pass -- just do something
2548 // Test If (LOr ()) with no save of LOr result
2551 Store (73, WRD) // pass -- just do something
2558 // Test If (LOr ()) with no save of LOr result
2565 Store (74, WRD) // pass -- just do something
2577 // This is just a subset of the many RegionOp/Index Field test cases.
2578 // Tests index field element AccessAs macro.
2581 { // Test device name
2583 OperationRegion (SIO, SystemIO, 0x100, 2)
2584 Field (SIO, ByteAcc, NoLock, Preserve)
2589 IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
2591 AccessAs (ByteAcc, 0),
2606 Store ("++++++++ IndxFld Test", Debug)
2608 Store (IFE0, Local0)
2609 Store (IFE1, Local1)
2610 Store (IFE2, Local2)
2617 // test NestdLor.asl
2619 Scope (\_SB) // System Bus
2631 Store ("++++++++ NestdLor Test", Debug)
2633 If (Lor (ZER0, Lor (ZER1, Lor (ZER2, ONE0))))
2635 Store (0x00, Local0)
2640 Store (0x01, Local0)
2644 } // End Method TEST
2651 // Test ReturnOp(Buffer)
2652 // This is required to support Control Method Batteries on
2653 // Dell Latitude Laptops (e.g., CP1-A)
2662 Method (RBUF,, Serialized)
2663 { // RBUF: Return Buffer from local variable
2664 Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
2666 // store local buffer ABUF into Local0
2667 Store (ABUF, Local0)
2669 // save Local0 object type value into Local1
2670 Store (ObjectType (Local0), Local1)
2672 // validate Local0 is a Buffer
2673 If (LNotEqual (Local1, 3)) // Buffer type is 3
2675 Return (1) // failure
2678 // store value returned by control method SUBR into Local0
2679 Store (SUBR (ABUF), Local0)
2681 // save Local0 object type value into Local1
2682 Store (ObjectType (Local0), Local1)
2684 // validate Local0 is a Buffer
2685 If (LNotEqual (Local1, 3)) // Buffer type is 3
2687 Return (2) // failure
2690 // allocate buffer using Local1 as buffer size (run-time evaluation)
2692 Name (BUFR, Buffer(Local1) {})
2694 // store value returned by control method SUBR into Local0
2695 Store (SUBR (BUFR), Local0)
2697 // save Local0 object type value into Local1
2698 Store (ObjectType (Local0), Local1)
2700 // validate Local0 is a Buffer
2701 If (LNotEqual (Local1, 3)) // Buffer type is 3
2703 Return (3) // failure
2706 // store BUFR Buffer into Local0
2707 Store (BUFR, Local0)
2709 // save Local0 object type value into Local1
2710 Store (ObjectType (Local0), Local1)
2712 // validate Local0 is a Buffer
2713 If (LNotEqual (Local1, 3)) // Buffer type is 3
2715 Return (4) // failure
2719 // return Local0 Buffer
2725 Store ("++++++++ RetBuf Test", Debug)
2727 // store RBUF Buffer return value into Local0
2728 Store (RBUF, Local0)
2730 // save Local0 object type value into Local1
2731 Store (ObjectType (Local0), Local1)
2733 // validate Local0 is a Buffer
2734 If (LNotEqual (Local1, 3)) // Buffer type is 3
2736 Return (10) // failure
2740 Return (0) // success
2748 // Test ReturnOp(Lvalue)
2749 // This is required to support _PSR on IBM ThinkPad 560D and
2750 // _DCK on Toshiba Tecra 8000.
2757 Store ("Method GPE2._L03 invoked", Debug)
2763 Store ("Method GPE2._E05 invoked", Debug)
2770 Name (_PRW, Package(2) {Package(2){\GPE2, 0x05}, 3})
2780 Store ("Method _GPE._L08 invoked", Debug)
2786 Store ("Method _GPE._E09 invoked", Debug)
2792 Store ("Method _GPE._E11 invoked", Debug)
2798 Store ("Method _GPE._L22 invoked", Debug)
2804 Store ("Method _GPE._L33 invoked", Debug)
2810 Store ("Method _GPE._E64 invoked", Debug)
2818 Name (_PRW, Package(2) {0x11, 3})
2823 Name (_HID, EISAID("PNP0C0C"))
2824 Name (_PRW, Package(2) {0x33, 3})
2828 Scope (\_SB) // System Bus
2832 { // ACAD: AC adapter device
2833 Name (_HID, "ACPI0003") // AC adapter device
2835 Name (_PCL, Package () {\_SB})
2837 OperationRegion (AREG, SystemIO, 0x0372, 2)
2838 Field (AREG, ByteAcc, NoLock, Preserve)
2843 IndexField (AIDX, ADAT, ByteAcc, NoLock, Preserve)
2856 Store (\_GPE.ACST, Local0)
2857 Store (ACIN, Local1)
2858 If (LNotEqual (\_GPE.ACST, Local1))
2860 Store (Local1, \_GPE.ACST)
2861 // This Notify is commented because it causes a
2862 // method error when running on a system without the
2864 // Notify (\_SB_.ACAD, 0)
2876 Store (ACIN, \_GPE.ACST)
2878 } // ACAD: AC adapter device
2880 // test implicit return from control method
2883 Store (Arg0, Local0)
2888 // test implicit return inside nested if with explicit return of Lvalue
2890 // Arg0: 1 == dock, 0 == undock
2894 Store (0x87, Local0)
2906 Store (Arg0, Local0)
2916 } // _DCK control method
2920 Store ("++++++++ RetLVal Test", Debug)
2922 // store _PSR return value into Local0
2923 Store (\_SB_.ACAD._PSR, Local0)
2925 // save Local0 object type value into Local1
2926 Store (ObjectType (Local0), Local1)
2928 // validate Local0 is a Number
2929 If (LNotEqual (Local1, 1)) // Number/Integer type is 1
2931 Return (1) // failure
2934 // test implicit return inside nested if with explicit return of Lvalue
2935 Store (_DCK (1), Local2)
2937 // save Local2 object type value into Local3
2938 Store (ObjectType (Local2), Local3)
2940 // validate Local2 is a Number
2941 If (LNotEqual (Local3, 1)) // Number/Integer type is 1
2943 Return (2) // failure
2946 If (LNotEqual (Local2, 1))
2948 Return (3) // failure
2951 Return (0) // success
2959 // Test ReturnOp(Package)
2960 // This is required to support _PRT on Dell Optiplex Workstations (e.g. GX1)
2963 Scope (\_SB) // System Bus
2967 Name (_HID, EISAID("PNP0C0F")) // PCI interrupt link
2972 Name (_HID, EISAID("PNP0C0F")) // PCI interrupt link
2977 Name (_HID, EISAID("PNP0C0F")) // PCI interrupt link
2982 Name (_HID, EISAID("PNP0C0F")) // PCI interrupt link
2987 { // PCI1: Root PCI Bus
2988 Name (_HID, "PNP0A03") // Need _HID for root device (String format)
2989 Name (_ADR,0x00000000)
2992 Name (_PRT, Package ()
2994 Package () {0x0004ffff, 0, LNKA, 0}, // Slot 1, INTA
2995 Package () {0x0004ffff, 1, LNKB, 0}, // Slot 1, INTB
2996 Package () {0x0004ffff, 2, LNKC, 0}, // Slot 1, INTC
2997 Package () {0x0004ffff, 3, LNKD, 0}, // Slot 1, INTD
2998 Package () {0x0005ffff, 0, \_SB_.LNKB, 0}, // Slot 2, INTA
2999 Package () {0x0005ffff, 1, \_SB_.LNKC, 0}, // Slot 2, INTB
3000 Package () {0x0005ffff, 2, \_SB_.LNKD, 0}, // Slot 2, INTC
3001 Package () {0x0006ffff, 3, \_SB_.LNKA, 0}, // Slot 2, INTD
3002 Package () {0x0006ffff, 0, LNKC, 0}, // Slot 3, INTA
3003 Package () {0x0006ffff, 1, LNKD, 0}, // Slot 3, INTB
3004 Package () {0x0006ffff, 2, LNKA, 0}, // Slot 3, INTC
3005 Package () {0x0006ffff, 3, LNKB, 0}, // Slot 3, INTD
3009 { // Map f0 space, Start PX40
3010 Name (_ADR,0x00070000) // Address+function.
3012 } // PCI0: Root PCI Bus
3017 { // RPKG: Return Package from local variable
3019 // store _PRT package into Local0
3020 Store (\_SB_.PCI1._PRT, Local0)
3022 // return Local0 Package
3028 Store ("++++++++ RetPkg Test", Debug)
3030 // store RPKG package return value into Local0
3031 Store (RPKG, Local0)
3033 // save Local0 object type value into Local1
3034 Store (ObjectType (Local0), Local1)
3036 // validate Local0 is a Package
3037 If (LNotEqual (Local1, 4)) // Package type is 4
3038 { Return (1) } // failure
3040 { Return (0) } // success
3046 // test WhileRet.asl
3048 // WhileRet.asl tests a ReturnOp nested in a IfOp nested in a WhileOp.
3054 { // WIR: control method that returns inside of IfOp inside of WhileOp
3055 While (LLess (LCNT, 4))
3057 If (LEqual (LCNT, 2))
3066 } // WIR: control method that returns inside of IfOp inside of WhileOp
3070 Store ("++++++++ WhileRet Test", Debug)
3081 //This code tests the bitwise AndOp and OrOp Operator terms
3083 //Syntax of Andop term
3086 // Source1, //TermArg=>Integer
3087 // Source2, //TermArg=>Integer
3088 // Result //Nothing | SuperName
3090 //Source1 and Source2 are evaluated as integer data types,
3091 // a bit-wise AND is performed, and the result is optionally
3092 //stored into Result.
3098 // Source1, //TermArg=>Integer
3099 // Source2 //TermArg=>Integer
3100 // Result //Nothing | SuperName
3102 //Source1 and Source2 are evaluated as integer data types,
3103 // a bit-wide OR is performed, and the result is optionally
3108 OperationRegion (TMEM, SystemMemory, 0xC4, 0x02)
3109 Field (TMEM, ByteAcc, NoLock, Preserve)
3115 //Create System Memory Operation Region and field overlays
3116 OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3117 Field (RAM, AnyAcc, NoLock, Preserve)
3119 SMDW, 32, // 32-bit DWORD
3120 SMWD, 16, // 16-bit WORD
3121 SMBY, 8, // 8-bit BYTE
3125 //And with Byte Data
3130 //And with Word Data
3135 //And with DWord Data
3136 Name (DWD1, 0xffffffff)
3137 Name (DWD2, 0xffffffff)
3138 Name (DRSL, 0x00000000)
3142 //Check with 1 And 1 on byte data
3143 And(BYT1, BYT2, BRSL)
3144 if(LNotEqual(BRSL,0xff))
3147 //Check with 1 And 1 on Word data
3148 And(WRD1, WRD2, WRSL)
3149 if(LNotEqual(WRSL,0xffff))
3151 Return (1) // failure
3154 //Check with 1 And 1 Dword
3155 And(DWD1, DWD2, DRSL)
3156 if(LNotEqual(DRSL,0xffffffff))
3158 Return (1) // failure
3161 //Check with 0 And 0 on byte data
3165 And(BYT1, BYT2, BRSL)
3166 if(LNotEqual(BRSL,0x00))
3168 Return (1) // failure
3171 //Check with 0 And 0 on Word data
3175 And(WRD1, WRD2, WRSL)
3176 if(LNotEqual(WRSL,0x0000))
3178 Return (1) // failure
3181 //Check with 0 And 0 Dword
3182 Store (0x00000000,DWD1)
3183 Store (0x00000000,DWD2)
3184 Store (0x00000000,DRSL)
3185 And(DWD1, DWD2, DRSL)
3186 if(LNotEqual(DRSL,0x00000000))
3188 Return (1) // failure
3192 //Check with 1 And 0 on byte data
3196 And(BYT1, BYT2, BRSL)
3197 if(LNotEqual(BRSL,0x00))
3199 Return (1) // failure
3202 //Check with 1 And 0 on Word data
3206 And(WRD1, WRD2, WRSL)
3207 if(LNotEqual(WRSL,0x0000))
3209 Return (1) // failure
3212 //Check with 1 And 0 on Dword
3213 Store (0x55555555,DWD1)
3214 Store (0xAAAAAAAA,DWD2)
3215 Store (0x00000000,DRSL)
3216 And(DWD1, DWD2, DRSL)
3217 if(LNotEqual(DRSL,0x00000000))
3219 Return (1) // failure
3222 Store (0x1FFF, TOUD)
3223 Store (TOUD, Local0)
3224 if(LNotEqual(Local0,0x1FFF))
3226 Return (1) // failure
3229 //TBD- Do We need to check for system memory data also for each test case ??
3238 //Check with 1 Ored with 1 on byte data
3242 Or(BYT1, BYT2, BRSL)
3243 if(LNotEqual(BRSL,0xff))
3245 Return (1) // failure
3249 //Check with 1 Ored with 1 on Word data
3253 Or(WRD1, WRD2, WRSL)
3254 if(LNotEqual(WRSL,0xffff))
3256 Return (1) // failure
3259 //Check with 1 Ored with 1 on Dword data
3260 Store(0xffffffff,DWD1)
3261 Store(0xffffffff,DWD2)
3262 Store(0x00000000,DRSL)
3263 Or(DWD1, DWD2, DRSL)
3264 if(LNotEqual(DRSL,0xffffffff))
3266 Return (1) // failure
3269 //Check with 0 Ored with 0 on byte data
3273 Or(BYT1, BYT2, BRSL)
3274 if(LNotEqual(BRSL,0x00))
3276 Return (1) // failure
3279 //Check with 0 Ored with 0 on Word data
3283 Or(WRD1, WRD2, WRSL)
3284 if(LNotEqual(WRSL,0x0000))
3286 Return (1) // failure
3289 //Check with 0 Ored with 0 Dword data
3290 Store (0x00000000,DWD1)
3291 Store (0x00000000,DWD2)
3292 Store (0x00000000,DRSL)
3293 Or(DWD1, DWD2, DRSL)
3294 if(LNotEqual(DRSL,0x00000000))
3296 Return (1) // failure
3300 //Check with 1 Ored with 0 on byte data
3304 Or(BYT1, BYT2, BRSL)
3305 if(LNotEqual(BRSL,0xff))
3307 Return (1) // failure
3310 //Check with 1 Ored with 0 on Word data
3314 Or(WRD1, WRD2, WRSL)
3315 if(LNotEqual(WRSL,0xffff))
3317 Return (1) // failure
3320 //Check with 1 Ored with 0 on Dword data
3321 Store (0x55555555,DWD1)
3322 Store (0xAAAAAAAA,DWD2)
3323 Store (0x00000000,DRSL)
3324 Or(DWD1, DWD2, DRSL)
3325 if(LNotEqual(DRSL,0xffffffff))
3327 Return (1) // failure
3330 //TBD - Do We need to check for system memory data also for each test case ??
3336 Method(TEST,, Serialized)
3338 Store ("++++++++ AndOrOp Test", Debug)
3356 // Return original conditions to allow iterative execution
3364 Store (0xffffffff,DWD1)
3365 Store (0xffffffff,DWD2)
3366 Store (0x00000000,DRSL)
3373 // test BreakPnt.asl
3375 // This code tests the BreakPoint opcode term. The syntax of BreakPoint Term is
3376 // BreakPointTerm := BreakPoint
3377 // Used for debugging, the Breakpoint opcode stops the execution and enters the AML debugger.
3378 // In the non-debug version of the interpreter, BreakPoint is equivalent to Noop.
3392 Store ("++++++++ BreakPnt Test", Debug)
3396 //Check BreakPoint statement
3397 While(LLess(CNT0,10))
3402 //Check the BreakPoint statement
3415 // test AddSubOp.asl
3419 // create System Memory Operation Region and field overlays
3420 OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3421 Field (RAM, AnyAcc, NoLock, Preserve)
3423 SMDW, 32, // 32-bit DWORD
3424 SMWD, 16, // 16-bit WORD
3425 SMBY, 8, // 8-bit BYTE
3428 Method (TEST,, Serialized)
3430 Store ("++++++++ AddSubOp Test", Debug)
3432 Name (DWRD, 0x12345678)
3436 // Test AddOp with DWORD data
3437 Store (0x12345678, DWRD)
3439 If (LNotEqual (DWRD, 0x1234567F))
3442 // Test AddOp with WORD data
3444 If (LNotEqual (WRD, 0x1239))
3447 // Test AddOp with BYTE data
3449 If (LNotEqual (BYT, 0x15))
3452 // Test SubtractOp with DWORD data
3453 Subtract (DWRD, 7, DWRD)
3454 If (LNotEqual (DWRD, 0x12345678))
3457 // Test SubtractOp with WORD data
3458 Subtract (WRD, 3, WRD)
3459 If (LNotEqual (WRD, 0x1236))
3462 // Test SubtractOp with BYTE data
3463 Subtract (BYT, 3, BYT)
3464 If (LNotEqual (BYT, 0x12))
3468 // test AddOp with DWORD SystemMemory OpRegion
3469 Store (0x01234567, SMDW)
3471 If (LNotEqual (SMDW, 0x0123456F))
3474 // test SubtractOp with DWORD SystemMemory OpRegion
3475 Subtract (SMDW, 7, SMDW)
3476 If (LNotEqual (SMDW, 0x01234568))
3480 // test AddOp with WORD SystemMemory OpRegion
3481 Store (0x0123, SMWD)
3483 If (LNotEqual (SMWD, 0x0129))
3486 // test SubtractOp with WORD SystemMemory OpRegion
3487 Subtract (SMWD, 5, SMWD)
3488 If (LNotEqual (SMWD, 0x0124))
3492 // test AddOp with BYTE SystemMemory OpRegion
3495 If (LNotEqual (SMBY, 0x05))
3498 // test SubtractOp with BYTE SystemMemory OpRegion
3499 Subtract (SMBY, 3, SMBY)
3500 If (LNotEqual (SMBY, 0x02))
3508 // test IncDecOp.asl
3512 // create System Memory Operation Region and field overlays
3513 OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3514 Field (RAM, AnyAcc, NoLock, Preserve)
3516 SMDW, 32, // 32-bit DWORD
3517 SMWD, 16, // 16-bit WORD
3518 SMBY, 8, // 8-bit BYTE
3521 Method (TEST,, Serialized)
3523 Store ("++++++++ IncDecOp Test", Debug)
3525 Name (DWRD, 0x12345678)
3529 // Test IncrementOp with DWORD data
3530 Store (0x12345678, DWRD)
3532 If (LNotEqual (DWRD, 0x12345679))
3535 // Test IncrementOp with WORD data
3537 If (LNotEqual (WRD, 0x1235))
3540 // Test IncrementOp with BYTE data
3542 If (LNotEqual (BYT, 0x13))
3545 // Test DecrementOp with DWORD data
3547 If (LNotEqual (DWRD, 0x12345678))
3550 // Test DecrementOp with WORD data
3552 If (LNotEqual (WRD, 0x1234))
3555 // Test DecrementOp with BYTE data
3557 If (LNotEqual (BYT, 0x12))
3561 // test IncrementOp with DWORD SystemMemory OpRegion
3562 Store (0x01234567, SMDW)
3564 If (LNotEqual (SMDW, 0x01234568))
3567 // test DecrementOp with DWORD SystemMemory OpRegion
3569 If (LNotEqual (SMDW, 0x01234567))
3573 // test IncrementOp with WORD SystemMemory OpRegion
3574 Store (0x0123, SMWD)
3576 If (LNotEqual (SMWD, 0x0124))
3579 // test DecrementOp with WORD SystemMemory OpRegion
3581 If (LNotEqual (SMWD, 0x0123))
3585 // test IncrementOp with BYTE SystemMemory OpRegion
3588 If (LNotEqual (SMBY, 0x02))
3591 // test DecrementOp with BYTE SystemMemory OpRegion
3593 If (LNotEqual (SMBY, 0x01))
3603 //This source tests all the logical operators. Logical operators in ASL are as follows.
3604 //LAnd, LEqual, LGreater, LLess, LNot, LNotEqual, LOr.
3605 // Success will return 0 and failure will return a non zero number. Check the source code for
3606 // non zero number to find where the test failed
3610 //Create System Memory Operation Region and field overlays
3611 OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3612 Field (RAM, AnyAcc, NoLock, Preserve)
3614 SMDW, 32, // 32-bit DWORD
3615 SMWD, 16, // 16-bit WORD
3616 SMBY, 8, // 8-bit BYTE
3619 //And with Byte Data
3624 //And with Word Data
3629 //And with DWord Data
3630 Name (DWD1, 0xffffffff)
3631 Name (DWD2, 0xffffffff)
3632 Name (DRSL, 0x00000000)
3636 Method (ANDL,2) // Test Logical And
3638 //test with the arguments passed
3639 if(LEqual(Arg0,Arg1))
3640 { Store(LAnd(Arg0,Arg1),RSLT)
3641 if(LNotEqual(Ones,RSLT))
3645 //test with he locals
3649 if(LEqual(Local0,Local1))
3651 Store(LAnd(Local0,Local1),RSLT)
3652 if(LNotEqual(Ones,RSLT))
3656 //test with BYTE data
3657 if(LEqual(BYT1,BYT2))
3658 { Store(LAnd(BYT1,BYT2),BRSL)
3659 if(LNotEqual(Ones,BRSL))
3663 //test with WORD data
3664 if(LEqual(WRD1,WRD2))
3665 { Store(LAnd(WRD1,WRD2),WRSL)
3666 if(LNotEqual(Ones,WRSL))
3670 //test with DWORD data
3671 if(LEqual(DWD1,DWD2))
3672 { Store(LAnd(DWD1,DWD2),DRSL)
3673 if(LNotEqual(Ones,DRSL))
3677 //Test for system memory data for each test case.
3683 //test with BYTE system memory data
3684 if(LEqual(BYT1,SMBY))
3685 { Store(LAnd(BYT1,SMBY),BRSL)
3686 if(LNotEqual(Ones,BRSL))
3693 //test with WORD system memory data
3694 if(LEqual(WRD1,SMWD))
3695 { Store(LAnd(WRD1,SMWD),WRSL)
3696 if(LNotEqual(Ones,WRSL))
3700 Store(0x000000,DRSL)
3701 Store (0xffffff,DWD1)
3702 Store(0xffffff,SMDW)
3704 //test with DWORD system memory data
3705 if(LEqual(DWD1,SMDW))
3706 { Store(LAnd(DWD1,SMDW),DRSL)
3707 if(LNotEqual(Ones,DRSL))
3715 //Test the LOr Operator
3720 //test with the arguments passed
3721 if(LEqual(Arg0,Arg1))
3723 Store(LOr(Arg0,Arg1),RSLT)
3724 if(LNotEqual(Ones,RSLT))
3730 //test with he locals
3734 if(LEqual(Local0,Local1))
3736 Store(LOr(Local0,Local1),RSLT)
3737 if(LNotEqual(Ones,RSLT))
3741 //Check with 1 LOred with 0 on byte data
3746 if(LNotEqual(BYT1, BYT2))
3748 Store(LOr(BYT1, BYT2), BRSL)
3749 if(LNotEqual(Ones,BRSL))
3753 //Check with 1 LOred with 0 on WORD data
3758 if(LNotEqual(WRD1, WRD2))
3760 Store(LOr(WRD1, WRD2), WRSL)
3761 if(LNotEqual(Ones,WRSL))
3765 //Check with 1 LOred with 0 on DWORD data
3766 Store(0xffffffff,DWD1)
3767 Store(0x00000000,DWD2)
3768 Store(0x00000000,DRSL)
3770 if(LNotEqual(DWD1, DWD2))
3772 Store(LOr(DWD1, DWD2), DRSL)
3773 if(LNotEqual(Ones,DRSL))
3781 //test with BYTE system memory data
3782 if(LEqual(BYT1,SMBY))
3783 { Store(LOr(BYT1,SMBY),BRSL)
3784 if(LNotEqual(Ones,BRSL))
3792 //test with WORD system memory data
3793 if(LEqual(WRD1,SMWD))
3794 { Store(LOr(WRD1,SMWD),WRSL)
3795 if(LNotEqual(Ones,WRSL))
3800 Store(0x00000000,DWD1)
3801 Store(0xffffffff,SMDW)
3802 Store(0x00000000,DRSL)
3804 //test with DWORD system memory data
3805 if(LEqual(DWD1,SMDW))
3806 { Store(LAnd(DWD1,SMDW),DRSL)
3807 if(LNotEqual(Ones,DRSL))
3814 //This method tests LGreater and LNot operator
3818 //Test on arguements passed
3820 //in test data, Arg1 > Arg0
3821 if(LEqual(Ones,LNot(LGreater(Arg1,Arg0))))
3825 if(LEqual(Ones,LNot(LGreaterEqual(Arg1,Arg0))))
3828 if(LEqual(Ones,LLess(Arg1,Arg0)))
3832 if(LEqual(Ones,LLessEqual(Arg1,Arg0)))
3838 //test with the locals
3839 if(LNot(LGreater(Local1,Local0)))
3846 if(LNot(LGreater(BYT2,BYT1)))
3849 if(LNot(LLess(BYT1,BYT2)))
3852 //test LGreaterEqual with byte data
3853 if(LNot(LGreaterEqual(BYT2,BYT1)))
3856 //test LLessEqual byte data
3857 if(LNot(LLessEqual(BYT1,BYT2)))
3865 if(LNot(LGreater(WRD2,WRD1)))
3868 if(LNot(LLess(WRD1,WRD2)))
3871 //Test LGreaterEqual with Word Data
3872 if(LNot(LGreaterEqual(WRD2,WRD1)))
3876 //Test LLessEqual with Word Data
3877 if(LNot(LLessEqual(WRD1,WRD2)))
3880 //test on DWord data
3881 Store(0x12121212,DWD1)
3882 Store(0x21212121,DWD2)
3884 if(LNot(LGreater(DWD2,DWD1)))
3887 if(LNot(LLess(DWD1,DWD2)))
3891 //Test LGreaterEqual with Dword
3892 if(LNot(LGreaterEqual(DWD2,DWD1)))
3895 //Test LLessEqual DWord
3896 if(LNot(LLessEqual(DWD1,DWD2)))
3905 Store ("++++++++ LOps Test", Debug)
3908 //Call LAndOp method
3909 Store(ANDL(2,2),RSLT)
3910 if(LNotEqual(RSLT,0))
3914 Store(ORL_(5,5),RSLT)
3915 if(LNotEqual(RSLT,0))
3919 Store(LSGR(5,7),RSLT)
3920 if(LNotEqual(RSLT,0))
3928 // test FdSetOps.asl
3930 // FindSetLeftBit - Find Set Left Bit
3931 // FindSetLeftBitTerm := FindSetLeftBit
3932 // ( Source, //TermArg=>Integer
3933 // Result //Nothing | SuperName
3935 // Source is evaluated as integer data type, and the one-based bit location of
3936 // the first MSb (most significant set bit) is optionally stored into Result.
3937 // The result of 0 means no bit was set, 1 means the left-most bit set is the
3938 // first bit, 2 means the left-most bit set is the second bit, and so on.
3939 // FindSetRightBit - Find Set Right Bit
3941 // FindSetRightBitTerm := FindSetRightBit
3942 // ( Source, //TermArg=>Integer
3943 // Result //Nothing | SuperName
3945 // Source is evaluated as integer data type, and the one-based bit location of
3946 // the most LSb (least significant set bit) is optionally stored in Result.
3947 // The result of 0 means no bit was set, 32 means the first bit set is the
3948 // 32nd bit, 31 means the first bit set is the 31st bit, and so on.
3950 // If the Control method is success Zero is returned. Otherwise a non-zero
3951 // number is returned.
3956 // Create System Memory Operation Region and field overlays
3957 OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3958 Field (RAM, AnyAcc, NoLock, Preserve)
3960 SMDW, 32, // 32-bit DWORD
3961 SMWD, 16, // 16-bit WORD
3962 SMBY, 8, // 8-bit BYTE
3974 Name (DWD1, 0x10000)
3975 Name (DRSL, 0x00000000)
3980 // Arg0 is the actual data and Arg1 is the bit position
3982 Store (Arg0, Local0)
3983 Store (Arg1, Local1)
3985 FindSetLeftBit (Arg0, BRSL)
3986 If (LNotEqual (BRSL, Arg1))
3988 If (LNotEqual (Arg0, Local0))
3991 FindSetLeftBit (Local0, BRSL)
3992 If (LNotEqual (BRSL, Local1))
3994 If (LNotEqual (Arg0, Local0))
3997 // test the byte value for SetLeftBit
3999 FindSetLeftBit (BYT1, BRSL)
4000 If (LNotEqual (BRSL, 3))
4002 If (LNotEqual (BYT1, 7))
4007 While (LLessEqual (CNTR, 8))
4008 { // FindSetLeftBit check loop for byte data
4009 FindSetLeftBit (BYT1, BRSL)
4010 If (LNotEqual (BRSL, CNTR))
4013 // Shift the bits to check the same
4014 ShiftLeft (BYT1, 1, BYT1)
4016 } // FindSetLeftBit check loop for byte data
4019 // Check BYTE value for SetRightBit
4021 FindSetRightBit (BYT1, BRSL)
4022 If (LNotEqual (BRSL, 1))
4024 If (LNotEqual (BYT1, 7))
4029 While (LLessEqual (CNTR, 8))
4030 { // FindSetRightBit check loop for byte data
4031 FindSetRightBit (BYT1, BRSL)
4032 If (LNotEqual (BRSL, CNTR))
4035 ShiftLeft (BYT1, 1, BYT1)
4037 } // FindSetRightBit check loop for byte data
4040 // Test Word value for SetLeftBit
4043 While (LLessEqual (CNTR, 16))
4045 // FindSetLeftBit check loop for Word data
4046 FindSetLeftBit (WRD1, WRSL)
4047 If (LNotEqual (WRSL, CNTR))
4050 // Shift the bits to check the same
4051 ShiftLeft (WRD1, 1, WRD1)
4053 } // FindSetLeftBit check loop for Word data
4055 // Check Word value for SetRightBit
4057 Store (0xFF00, WRD1)
4058 While (LLessEqual (CNTR, 16))
4060 // FindSetRightBit check loop for Word data
4061 FindSetRightBit (WRD1, WRSL)
4062 If (LNotEqual (WRSL, CNTR))
4065 ShiftLeft (WRD1, 1, WRD1)
4067 } // FindSetRightBit check loop for Word data
4069 // Test the DWord value for SetLeftBit
4071 Store (0x10000, DWD1)
4072 While (LLessEqual (CNTR, 32))
4074 // FindSetLeftBit check loop for Dword
4075 FindSetLeftBit (DWD1, DRSL)
4076 If (LNotEqual (DRSL, CNTR))
4079 // Shift the bits to check the same
4080 ShiftLeft (DWD1, 1, DWD1)
4082 } // FindSetLeftBit check loop for Dword
4084 // Check DWord value for SetRightBit
4086 Store (0xFFFF0000, DWD1)
4087 While (LLessEqual (CNTR, 32))
4088 { // FindSetRightBit Check loop for DWORD
4089 FindSetRightBit (DWD1, DRSL)
4090 If (LNotEqual (DRSL, CNTR))
4093 ShiftLeft (DWD1, 1, DWD1)
4095 } // FindSetRightBit Check loop for DWORD
4100 // Test method called from amlexec
4104 Store ("++++++++ FdSetOps Test", Debug)
4106 Store (SHFT (0x80, 8), RSLT)
4107 If (LNotEqual (RSLT, 0))
4115 // test MulDivOp.asl
4119 // create System Memory Operation Region and field overlays
4120 OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4121 Field (RAM, AnyAcc, NoLock, Preserve)
4123 SMDW, 32, // 32-bit DWORD
4124 SMWD, 16, // 16-bit WORD
4125 SMBY, 8, // 8-bit BYTE
4128 Method (TEST,, Serialized)
4130 Store ("++++++++ MulDivOp Test", Debug)
4133 Name (DWRD, 0x12345678)
4137 // Test MultiplyOp with DWORD data
4138 Store (0x12345678, DWRD)
4139 Multiply (DWRD, 3, DWRD)
4140 If (LNotEqual (DWRD, 0x369D0368))
4143 // Test MultiplyOp with WORD data
4144 Multiply (WRD, 4, WRD)
4145 If (LNotEqual (WRD, 0x48D0))
4148 // Test MultiplyOp with BYTE data
4149 Multiply (BYT, 5, BYT)
4150 If (LNotEqual (BYT, 0x5A))
4153 // Test DivideOp with DWORD data
4154 Divide (DWRD, 3, DWRD, RMDR)
4155 If (LNotEqual (DWRD, 0x12345678))
4157 If (LNotEqual (RMDR, 0))
4160 // Test DivideOp with WORD data
4161 Divide (WRD, 4, WRD, RMDR)
4162 If (LNotEqual (WRD, 0x1234))
4164 If (LNotEqual (RMDR, 0))
4167 // Test DivideOp with BYTE data
4168 Divide (BYT, 5, BYT, RMDR)
4169 If (LNotEqual (BYT, 0x12))
4171 If (LNotEqual (RMDR, 0))
4175 // test MultiplyOp with DWORD SystemMemory OpRegion
4176 Store (0x01234567, SMDW)
4177 Multiply (SMDW, 2, SMDW)
4178 If (LNotEqual (SMDW, 0x02468ACE))
4181 // test DivideOp with DWORD SystemMemory OpRegion
4182 Divide (SMDW, 3, SMDW, RMDR)
4183 If (LNotEqual (SMDW, 0x00C22E44))
4185 If (LNotEqual (RMDR, 2))
4189 // test MultiplyOp with WORD SystemMemory OpRegion
4190 Store (0x0123, SMWD)
4191 Multiply (SMWD, 3, SMWD)
4192 If (LNotEqual (SMWD, 0x369))
4195 // test DivideOp with WORD SystemMemory OpRegion
4196 Divide (SMWD, 2, SMWD, RMDR)
4197 If (LNotEqual (SMWD, 0x01B4))
4199 If (LNotEqual (RMDR, 1))
4203 // test MultiplyOp with BYTE SystemMemory OpRegion
4205 Multiply (SMBY, 7, SMBY)
4206 If (LNotEqual (SMBY, 0x07))
4209 // test DivideOp with BYTE SystemMemory OpRegion
4210 Divide (SMBY, 4, SMBY, RMDR)
4211 If (LNotEqual (SMBY, 0x01))
4213 If (LNotEqual (RMDR, 3))
4223 //NAnd - Bit-wise NAnd
4225 // Source1, //TermArg=>Integer
4226 // Source2 //TermArg=>Integer
4227 // Result //Nothing | SuperName
4229 //Source1 and Source2 are evaluated as integer data types, a bit-wise NAND is performed, and the result is optionally
4234 // Source1, //TermArg=>Integer
4235 // Source2 //TermArg=>Integer
4236 // Result //Nothing | SuperName
4238 //Source1 and Source2 are evaluated as integer data types, a bit-wise NOR is performed, and the result is optionally
4242 // Source, //TermArg=>Integer
4243 // Result //Nothing | SuperName
4245 //Source1 is evaluated as an integer data type, a bit-wise NOT is performed, and the result is optionally stored in
4248 //If the Control method is success Zero is returned else a non-zero number is returned
4253 //Create System Memory Operation Region and field overlays
4254 OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4255 Field (RAM, AnyAcc, NoLock, Preserve)
4257 SMDW, 32, // 32-bit DWORD
4258 SMWD, 16, // 16-bit WORD
4259 SMBY, 8, // 8-bit BYTE
4263 //And with Byte Data
4268 //And with Word Data
4273 //And with DWord Data
4274 Name (DWD1, 0xffffffff)
4275 Name (DWD2, 0xffffffff)
4276 Name (DRSL, 0x00000000)
4286 Store(0xffffffff,SMDW)
4291 NAnd(Arg0,Arg1,ARSL)
4292 if(LNotEqual(ARSL,0xfffffffd))
4298 NAnd(Local0,Local1,LRSL)
4299 if(LNotEqual(LRSL,0xfffffffd))
4304 NAnd(BYT1,BYT2,BRSL)
4305 if(LNotEqual(BRSL,0xffffff00))
4309 NAnd(WRD1,WRD2,WRSL)
4310 if(LNotEqual(WRSL,0xffff0000))
4314 NAnd(DWD1,DWD2,DRSL)
4315 if(LNotEqual(DRSL,0x00000000))
4319 NAnd(SMBY,0xff,BRSL)
4320 if(LNotEqual(BRSL,0xffffff00))
4324 NAnd(SMWD,0xffff,WRSL)
4325 if(LNotEqual(WRSL,0xffff0000))
4329 NAnd(SMDW,0xffffffff,DRSL)
4330 if(LNotEqual(DRSL,0x00000000))
4341 if(LNotEqual(ARSL,0xfffffffd))
4347 NOr(Local0,Local1,LRSL)
4348 if(LNotEqual(LRSL,0xfffffffd))
4354 if(LNotEqual(BRSL,0xffffff00))
4359 if(LNotEqual(WRSL,0xffff0000))
4364 if(LNotEqual(DRSL,0x00000000))
4367 //System Memory Byte data
4369 if(LNotEqual(BRSL,0xffffff00))
4372 //System Memory Word Data
4373 NOr(SMWD,0xffff,WRSL)
4374 if(LNotEqual(WRSL,0xffff0000))
4377 //System Memory DWord Data
4378 NOr(SMDW,0xffffffff,DRSL)
4379 if(LNotEqual(DRSL,0x00000000))
4391 if(LNotEqual(ARSL,0xfffffffd))
4397 Or(Local0,Local1,LRSL)
4399 if(LNotEqual(LRSL,0xfffffffd))
4406 if(LNotEqual(BRSL,0xffffff00))
4412 if(LNotEqual(WRSL,0xffff0000))
4418 if(LNotEqual(DRSL,0x00000000))
4421 //System Memory Byte data
4424 if(LNotEqual(BRSL,0xffffff00))
4427 //System Memory Word Data
4428 Or(SMWD,0xffff,WRSL)
4430 if(LNotEqual(WRSL,0xffff0000))
4433 //System Memory DWord Data
4434 Or(SMDW,0xffffffff,DRSL)
4436 if(LNotEqual(DRSL,0x00000000))
4446 Store ("++++++++ NBitOps Test", Debug)
4448 Store(NNDB(2,2),RSLT)
4449 if(LNotEqual(RSLT,0))
4452 Store(NNOR(2,2),RSLT)
4453 if(LNotEqual(RSLT,0))
4456 Store(NNOT(2,2),RSLT)
4457 if(LNotEqual(RSLT,0))
4469 //ShiftRightTerm := ShiftRight(
4470 // Source, //TermArg=>Integer
4471 // ShiftCount //TermArg=>Integer
4472 // Result //Nothing | SuperName
4474 //Source and ShiftCount are evaluated as integer data types. Source is shifted right with the most significant bit
4475 //zeroed ShiftCount times. The result is optionally stored into Result.
4478 // Source, //TermArg=>Integer
4479 // ShiftCount //TermArg=>Integer
4480 // Result //Nothing | SuperName
4482 //Source and ShiftCount are evaluated as integer data types. Source is shifted left with the least significant
4483 //bit zeroed ShiftCount times. The result is optionally stored into Result.
4485 //If the Control method is success Zero is returned else a non-zero number is returned
4489 //Create System Memory Operation Region and field overlays
4490 OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4491 Field (RAM, AnyAcc, NoLock, Preserve)
4493 SMDW, 32, // 32-bit DWORD
4494 SMWD, 16, // 16-bit WORD
4495 SMBY, 8, // 8-bit BYTE
4501 //And with Byte Data
4505 //And with Word Data
4509 //And with DWord Data
4510 Name (DWD1, 0xffffffff)
4511 Name (DRSL, 0x00000000)
4521 Store(0xffffffff,SMDW)
4526 //Arg0-> 2 & Arg1->2
4527 ShiftLeft(Arg0,Arg1,ARSL)
4528 if(LNotEqual(ARSL,8))
4534 //Local0->8 and Local1->2
4535 ShiftLeft(Local0,Local1,LRSL)
4536 if(LNotEqual(LRSL,8))
4541 ShiftLeft(BYT1,SHFC,BRSL)
4542 if(LNotEqual(BRSL,0x3FC))
4547 ShiftLeft(WRD1,SHFC,WRSL)
4548 if(LNotEqual(WRSL,0xFFFF0))
4553 ShiftLeft(DWD1,SHFC,DRSL)
4554 if(LNotEqual(DRSL,0xFFFFFF00))
4558 //System Memory Byte data
4560 ShiftLeft(SMBY,SHFC,BRSL)
4561 if(LNotEqual(BRSL,0xFF0))
4566 ShiftLeft(SMWD,SHFC,WRSL)
4567 if(LNotEqual(WRSL,0xffff0))
4572 ShiftLeft(SMDW,SHFC,DRSL)
4573 if(LNotEqual(DRSL,0xFFFFFF00))
4582 //And with Byte Data
4586 //And with Word Data
4590 //And with DWord Data
4591 Store(0xffffffff,DWD1)
4592 Store (0x00000000,DRSL)
4594 //Reinitialize the result objects
4598 Store(0xffffffff,SMDW)
4602 //Arg0-> 2 & Arg1->2
4603 ShiftRight(Arg0,Arg1,ARSL)
4604 if(LNotEqual(ARSL,0))
4610 //Local0->8 and Local1->2
4611 ShiftRight(Local0,Local1,LRSL)
4612 if(LNotEqual(LRSL,0))
4617 ShiftRight(BYT1,SHFC,BRSL)
4618 if(LNotEqual(BRSL,0x3F))
4623 ShiftRight(WRD1,SHFC,WRSL)
4624 if(LNotEqual(WRSL,0xFFF))
4629 ShiftRight(DWD1,SHFC,DRSL)
4630 if(LNotEqual(DRSL,0xFFFFFF))
4633 //System Memory Byte data
4635 ShiftRight(SMBY,SHFC,BRSL)
4636 if(LNotEqual(BRSL,0xF))
4641 ShiftRight(SMWD,SHFC,WRSL)
4642 if(LNotEqual(WRSL,0xFFF))
4647 ShiftRight(SMDW,SHFC,DRSL)
4648 if(LNotEqual(DRSL,0xFFFFFF))
4654 //Test method called from amlexec
4657 Store ("++++++++ ShftOp Test", Debug)
4659 Store(SLFT(2,2),RSLT)
4660 if(LNotEqual(RSLT,0))
4662 Store(SRGT(2,2),RSLT)
4663 if(LNotEqual(RSLT,0))
4671 // test Xor.asl and slightly modified
4673 //This code tests the XOR opcode term
4674 //Syntax of XOR term
4676 // Source1 //TermArg=>BufferTerm
4677 // Source2 //TermArg=>Integer
4678 // Result //NameString
4680 //"Source1" and "Source2" are evaluated as integers, a bit-wise XOR is performed, and the result is optionally stored in
4684 //This Method tests XOr operator for all the data types i.e. BYTE, WORD and DWORD
4685 Method (TEST,, Serialized)
4687 Store ("++++++++ Xor Test", Debug)
4689 //Overlay in system memory
4690 OperationRegion (RAM, SystemMemory, 0x800000, 256)
4691 Field (RAM, ByteAcc, NoLock, Preserve)
4694 BYT1, 8, //First BYTE
4695 BYT2, 8, //Second BYTE
4696 RBYT, 8, //Result Byte
4698 WRD1, 16, //First WORD field
4699 WRD2, 16, //Second WORD field
4700 RWRD, 16, //RSLT WORD field
4702 DWD1, 32, //First Dword
4703 DWD2, 32, //Second Dword
4704 RDWD, 32, //Result Dword
4708 // Store bits in the single bit fields for checking
4715 // Check the stored single bits
4716 if(LNotEqual(RES1, 1))
4721 if(LNotEqual(RES2, 1))
4726 if(LNotEqual(RES3, 1))
4731 if(LNotEqual(RES4, 1))
4736 //************************************************
4737 // (BYT1) Bit1 ->0 and (BYT2)Bit2 -> 0 condition
4740 XOr(BYT1,BYT2,Local0)
4741 Store (Local0, RBYT)
4742 if(LNotEqual(RBYT,0))
4745 // (BYT1) Bit1 ->1 and (BYT2)Bit2 -> 1 condition
4748 XOr(BYT1,BYT2,Local0)
4749 Store (Local0, RBYT)
4750 if(LNotEqual(RBYT,0))
4753 // (BYT1) Bit1 ->1 and (BYT)Bit2 -> 0 condition
4756 XOr(BYT1,BYT2,Local0)
4757 Store (Local0, RBYT)
4758 if(LNotEqual(RBYT,0xFF))
4761 //(BYT1) Bit1 ->0 and (BYT2)Bit2 -> 1 condition
4764 XOr(BYT1,BYT2,Local0)
4765 Store (Local0, RBYT)
4766 if(LNotEqual(RBYT,0xFF))
4772 XOr(BYT1,BYT2,Local0)
4773 Store (Local0, RBYT)
4774 if(LNotEqual(RBYT,0xFF))
4779 // Store known values for checking later
4781 if(LNotEqual(BYT1, 0x12))
4787 if(LNotEqual(BYT2, 0xFE))
4793 if(LNotEqual(RBYT, 0xAB))
4798 //***********************************************
4799 // (WRD1) Bit1 ->0 and (WRD2)Bit2 -> 0 condition
4803 if(LNotEqual(RWRD,0))
4806 // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 1 condition
4810 if(LNotEqual(RWRD,0))
4813 // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 0 condition
4817 if(LNotEqual(RWRD,0xFFFF))
4820 //(WRD1) Bit1 ->0 and (WRD2)Bit2 -> 1 condition
4824 if(LNotEqual(RWRD,0xFFFF))
4830 if(LNotEqual(RWRD,0xFFFF))
4833 // Store known values for checking later
4835 if(LNotEqual(WRD1, 0x1234))
4841 if(LNotEqual(WRD2, 0xFEDC))
4847 if(LNotEqual(RWRD, 0x87AB))
4853 //**************************************************
4854 // (DWD1) Bit1 ->0 and (DWD2)Bit2 -> 0 condition
4855 Store(0x00000000,DWD1)
4856 Store(0x00000000,DWD2)
4858 if(LNotEqual(RDWD,0))
4861 // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 1 condition
4862 Store(0xffffffff,DWD1)
4863 Store(0xffffffff,DWD2)
4865 if(LNotEqual(RDWD,0))
4868 // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
4869 Store(0x55555555,DWD1)
4870 Store(0xAAAAAAAA,DWD2)
4872 if(LNotEqual(RDWD,0xFFFFFFFF))
4875 //(DWD1) Bit1 ->0 and (DWD2)Bit2 -> 1 condition
4876 Store(0xAAAAAAAA,DWD1)
4877 Store(0x55555555,DWD2)
4879 if(LNotEqual(RDWD,0xFFFFFFFF))
4882 // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
4883 Store(0x12345678,DWD1)
4884 Store(0xEDCBA987,DWD2)
4886 if(LNotEqual(RDWD,0xFFFFFFFF))
4889 Store(0x12345678,DWD1)
4890 if(LNotEqual(DWD1,0x12345678))
4895 Store(0xFEDCBA98,DWD2)
4896 if(LNotEqual(DWD2,0xFEDCBA98))
4901 Store(0x91827364,RDWD)
4902 if(LNotEqual(RDWD,0x91827364))
4907 //****************************************************
4908 // Check the stored single bits
4909 if(LNotEqual(RES1, 1))
4914 if(LNotEqual(RES2, 1))
4919 if(LNotEqual(RES3, 1))
4924 if(LNotEqual(RES4, 1))
4929 // Change all of the single bit fields to zero
4935 // Now, check all of the fields
4938 if(LNotEqual(BYT1, 0x12))
4943 if(LNotEqual(BYT2, 0xFE))
4948 if(LNotEqual(RBYT, 0xAB))
4954 if(LNotEqual(WRD1, 0x1234))
4959 if(LNotEqual(WRD2, 0xFEDC))
4964 if(LNotEqual(RWRD, 0x87AB))
4970 if(LNotEqual(DWD1, 0x12345678))
4975 if(LNotEqual(DWD2, 0xFEDCBA98))
4980 if(LNotEqual(RDWD, 0x91827364))
4986 if(LNotEqual(RES1, 0))
4991 if(LNotEqual(RES2, 0))
4996 if(LNotEqual(RES3, 0))
5001 if(LNotEqual(RES4, 0))
5012 // test CrBytFld.asl
5015 // Test for CreateByteField.
5016 // Tests creating byte field overlay of buffer stored in Local0.
5017 // Tests need to be added for Arg0 and Name buffers.
5020 { // Test device name
5023 Store ("++++++++ CrBytFld Test", Debug)
5025 // Local0 is unitialized buffer with 4 elements
5026 Store (Buffer (4) {}, Local0)
5028 // create Byte Field named BF0 based on Local0 element 0
5029 CreateByteField (Local0, 0, BF0)
5031 // validate CreateByteField did not alter Local0
5032 Store (ObjectType (Local0), Local1) // Local1 = Local0 object type
5033 If (LNotEqual (Local1, 3)) // Buffer object type value is 3
5036 // store something into BF0
5039 // validate Store did not alter Local0 object type
5040 Store (ObjectType (Local0), Local1) // Local1 = Local0 object type
5041 If (LNotEqual (Local1, 3)) // Buffer object type value is 3
5044 // verify that the Store into BF0 was successful
5045 If (LNotEqual (BF0, 1))
5049 // create Byte Field named BF1 based on Local0 element 1
5050 CreateByteField (Local0, 1, BF1)
5052 // validate CreateByteField did not alter Local0
5053 Store (ObjectType (Local0), Local1) // Local1 = Local0 object type
5054 If (LNotEqual (Local1, 3)) // Buffer object type value is 3
5057 // store something into BF1
5060 // validate Store did not alter Local0 object type
5061 Store (ObjectType (Local0), Local1) // Local1 = Local0 object type
5062 If (LNotEqual (Local1, 3)) // Buffer object type value is 3
5065 // verify that the Store into BF1 was successful
5066 If (LNotEqual (BF1, 5))
5069 // verify that the Store into BF1 did not alter BF0
5070 If (LNotEqual (BF0, 1))
5074 // store something into BF0
5077 // verify that the Store into BF0 was successful
5078 If (LNotEqual (BF0, 0xFF))
5081 // verify that the Store into BF0 did not alter BF1
5082 If (LNotEqual (BF1, 5))
5091 // test IndexOp4.asl
5094 // This is just a subset of the many RegionOp/Index Field test cases.
5095 // Tests access of index fields smaller than 8 bits.
5098 { // Test device name
5100 // MADM: Misaligned Dynamic RAM SystemMemory OperationRegion
5101 // Tests OperationRegion memory access using misaligned BYTE,
5102 // WORD, and DWORD field element accesses. Validation is performed
5103 // using both misaligned field entries and aligned field entries.
5105 // MADM returns 0 if all test cases pass or non-zero identifying
5106 // the failing test case for debug purposes. This non-zero numbers
5107 // are not guaranteed to be in perfect sequence (i.e., test case
5108 // index), but are guaranteed to be unique so the failing test
5109 // case can be uniquely identified.
5111 Method (MADM, 1, Serialized) // Misaligned Dynamic RAM SystemMemory OperationRegion
5112 // Arg0 -- SystemMemory OperationRegion base address
5113 { // MADM: Misaligned Dynamic RAM SystemMemory OperationRegion
5114 OperationRegion (RAM, SystemMemory, Arg0, 0x100)
5115 Field (RAM, DwordAcc, NoLock, Preserve)
5116 { // aligned field definition (for verification)
5117 DWD0, 32, // aligned DWORD field
5118 DWD1, 32 // aligned DWORD field
5120 Field (RAM, ByteAcc, NoLock, Preserve)
5121 { // bit access field definition
5122 BIT0, 1, // single bit field entry
5123 BIT1, 1, // single bit field entry
5124 BIT2, 1, // single bit field entry
5125 BIT3, 1, // single bit field entry
5126 BIT4, 1, // single bit field entry
5127 BIT5, 1, // single bit field entry
5128 BIT6, 1, // single bit field entry
5129 BIT7, 1, // single bit field entry
5130 BIT8, 1, // single bit field entry
5131 BIT9, 1, // single bit field entry
5132 BITA, 1, // single bit field entry
5133 BITB, 1, // single bit field entry
5134 BITC, 1, // single bit field entry
5135 BITD, 1, // single bit field entry
5136 BITE, 1, // single bit field entry
5137 BITF, 1, // single bit field entry
5138 BI10, 1, // single bit field entry
5139 BI11, 1, // single bit field entry
5140 BI12, 1, // single bit field entry
5141 BI13, 1, // single bit field entry
5142 BI14, 1, // single bit field entry
5143 BI15, 1, // single bit field entry
5144 BI16, 1, // single bit field entry
5145 BI17, 1, // single bit field entry
5146 BI18, 1, // single bit field entry
5147 BI19, 1, // single bit field entry
5148 BI1A, 1, // single bit field entry
5149 BI1B, 1, // single bit field entry
5150 BI1C, 1, // single bit field entry
5151 BI1D, 1, // single bit field entry
5152 BI1E, 1, // single bit field entry
5153 BI1F, 1 // single bit field entry
5154 } // bit access field definition
5156 Field (RAM, ByteAcc, NoLock, Preserve)
5157 { // two-bit access field definition
5158 B2_0, 2, // single bit field entry
5159 B2_1, 2, // single bit field entry
5160 B2_2, 2, // single bit field entry
5161 B2_3, 2, // single bit field entry
5162 B2_4, 2, // single bit field entry
5163 B2_5, 2, // single bit field entry
5164 B2_6, 2, // single bit field entry
5165 B2_7, 2, // single bit field entry
5166 B2_8, 2, // single bit field entry
5167 B2_9, 2, // single bit field entry
5168 B2_A, 2, // single bit field entry
5169 B2_B, 2, // single bit field entry
5170 B2_C, 2, // single bit field entry
5171 B2_D, 2, // single bit field entry
5172 B2_E, 2, // single bit field entry
5173 B2_F, 2 // single bit field entry
5174 } // bit access field definition
5176 // initialize memory contents using aligned field entries
5177 Store (0x5AA55AA5, DWD0)
5178 Store (0x5AA55AA5, DWD1)
5180 // set memory contents to known values using misaligned field entries
5182 // verify memory contents using misaligned field entries
5183 If (LNotEqual (BIT0, 0))
5185 // verify memory contents using aligned field entries
5186 If (LNotEqual (DWD0, 0x5AA55AA4))
5189 // set memory contents to known values using misaligned field entries
5191 // verify memory contents using misaligned field entries
5192 If (LNotEqual (BIT1, 1))
5194 // verify memory contents using aligned field entries
5195 If (LNotEqual (DWD0, 0x5AA55AA6))
5198 // set memory contents to known values using misaligned field entries
5200 // verify memory contents using misaligned field entries
5201 If (LNotEqual (BIT2, 0))
5203 // verify memory contents using aligned field entries
5204 If (LNotEqual (DWD0, 0x5AA55AA2))
5207 // set memory contents to known values using misaligned field entries
5209 // verify memory contents using misaligned field entries
5210 If (LNotEqual (BIT3, 1))
5212 // verify memory contents using aligned field entries
5213 If (LNotEqual (DWD0, 0x5AA55AAA))
5216 // set memory contents to known values using misaligned field entries
5218 // verify memory contents using misaligned field entries
5219 If (LNotEqual (BIT4, 1))
5221 // verify memory contents using aligned field entries
5222 If (LNotEqual (DWD0, 0x5AA55ABA))
5225 // set memory contents to known values using misaligned field entries
5227 // verify memory contents using misaligned field entries
5228 If (LNotEqual (BIT5, 0))
5230 // verify memory contents using aligned field entries
5231 If (LNotEqual (DWD0, 0x5AA55A9A))
5234 // set memory contents to known values using misaligned field entries
5236 // verify memory contents using misaligned field entries
5237 If (LNotEqual (BIT6, 1))
5239 // verify memory contents using aligned field entries
5240 If (LNotEqual (DWD0, 0x5AA55ADA))
5243 // set memory contents to known values using misaligned field entries
5245 // verify memory contents using misaligned field entries
5246 If (LNotEqual (BIT7, 0))
5248 // verify memory contents using aligned field entries
5249 If (LNotEqual (DWD0, 0x5AA55A5A))
5252 // set memory contents to known values using misaligned field entries
5254 // verify memory contents using misaligned field entries
5255 If (LNotEqual (BIT8, 1))
5257 // verify memory contents using aligned field entries
5258 If (LNotEqual (DWD0, 0x5AA55B5A))
5261 // set memory contents to known values using misaligned field entries
5263 // verify memory contents using misaligned field entries
5264 If (LNotEqual (BIT9, 0))
5266 // verify memory contents using aligned field entries
5267 If (LNotEqual (DWD0, 0x5AA5595A))
5270 // set memory contents to known values using misaligned field entries
5272 // verify memory contents using misaligned field entries
5273 If (LNotEqual (BITA, 1))
5275 // verify memory contents using aligned field entries
5276 If (LNotEqual (DWD0, 0x5AA55D5A))
5279 // set memory contents to known values using misaligned field entries
5281 // verify memory contents using misaligned field entries
5282 If (LNotEqual (BITB, 0))
5284 // verify memory contents using aligned field entries
5285 If (LNotEqual (DWD0, 0x5AA5555A))
5288 // set memory contents to known values using misaligned field entries
5290 // verify memory contents using misaligned field entries
5291 If (LNotEqual (BITC, 0))
5293 // verify memory contents using aligned field entries
5294 If (LNotEqual (DWD0, 0x5AA5455A))
5297 // set memory contents to known values using misaligned field entries
5299 // verify memory contents using misaligned field entries
5300 If (LNotEqual (BITD, 1))
5302 // verify memory contents using aligned field entries
5303 If (LNotEqual (DWD0, 0x5AA5655A))
5306 // set memory contents to known values using misaligned field entries
5308 // verify memory contents using misaligned field entries
5309 If (LNotEqual (BITE, 0))
5311 // verify memory contents using aligned field entries
5312 If (LNotEqual (DWD0, 0x5AA5255A))
5315 // set memory contents to known values using misaligned field entries
5317 // verify memory contents using misaligned field entries
5318 If (LNotEqual (BITF, 1))
5320 // verify memory contents using aligned field entries
5321 If (LNotEqual (DWD0, 0x5AA5A55A))
5324 // set memory contents to known values using misaligned field entries
5326 // verify memory contents using misaligned field entries
5327 If (LNotEqual (BI10, 0))
5329 // verify memory contents using aligned field entries
5330 If (LNotEqual (DWD0, 0x5AA4A55A))
5333 // set memory contents to known values using misaligned field entries
5335 // verify memory contents using misaligned field entries
5336 If (LNotEqual (BI11, 1))
5338 // verify memory contents using aligned field entries
5339 If (LNotEqual (DWD0, 0x5AA6A55A))
5342 // set memory contents to known values using misaligned field entries
5344 // verify memory contents using misaligned field entries
5345 If (LNotEqual (BI12, 0))
5347 // verify memory contents using aligned field entries
5348 If (LNotEqual (DWD0, 0x5AA2A55A))
5351 // set memory contents to known values using misaligned field entries
5353 // verify memory contents using misaligned field entries
5354 If (LNotEqual (BI13, 1))
5356 // verify memory contents using aligned field entries
5357 If (LNotEqual (DWD0, 0x5AAAA55A))
5360 // set memory contents to known values using misaligned field entries
5362 // verify memory contents using misaligned field entries
5363 If (LNotEqual (BI14, 1))
5365 // verify memory contents using aligned field entries
5366 If (LNotEqual (DWD0, 0x5ABAA55A))
5369 // set memory contents to known values using misaligned field entries
5371 // verify memory contents using misaligned field entries
5372 If (LNotEqual (BI15, 0))
5374 // verify memory contents using aligned field entries
5375 If (LNotEqual (DWD0, 0x5A9AA55A))
5378 // set memory contents to known values using misaligned field entries
5380 // verify memory contents using misaligned field entries
5381 If (LNotEqual (BI16, 1))
5383 // verify memory contents using aligned field entries
5384 If (LNotEqual (DWD0, 0x5ADAA55A))
5387 // set memory contents to known values using misaligned field entries
5389 // verify memory contents using misaligned field entries
5390 If (LNotEqual (BI17, 0))
5392 // verify memory contents using aligned field entries
5393 If (LNotEqual (DWD0, 0x5A5AA55A))
5396 // set memory contents to known values using misaligned field entries
5398 // verify memory contents using misaligned field entries
5399 If (LNotEqual (BI18, 1))
5401 // verify memory contents using aligned field entries
5402 If (LNotEqual (DWD0, 0x5B5AA55A))
5405 // set memory contents to known values using misaligned field entries
5407 // verify memory contents using misaligned field entries
5408 If (LNotEqual (BI19, 0))
5410 // verify memory contents using aligned field entries
5411 If (LNotEqual (DWD0, 0x595AA55A))
5414 // set memory contents to known values using misaligned field entries
5416 // verify memory contents using misaligned field entries
5417 If (LNotEqual (BI1A, 1))
5419 // verify memory contents using aligned field entries
5420 If (LNotEqual (DWD0, 0x5D5AA55A))
5423 // set memory contents to known values using misaligned field entries
5425 // verify memory contents using misaligned field entries
5426 If (LNotEqual (BI1B, 0))
5428 // verify memory contents using aligned field entries
5429 If (LNotEqual (DWD0, 0x555AA55A))
5432 // set memory contents to known values using misaligned field entries
5434 // verify memory contents using misaligned field entries
5435 If (LNotEqual (BI1C, 0))
5437 // verify memory contents using aligned field entries
5438 If (LNotEqual (DWD0, 0x455AA55A))
5441 // set memory contents to known values using misaligned field entries
5443 // verify memory contents using misaligned field entries
5444 If (LNotEqual (BI1D, 1))
5446 // verify memory contents using aligned field entries
5447 If (LNotEqual (DWD0, 0x655AA55A))
5450 // set memory contents to known values using misaligned field entries
5452 // verify memory contents using misaligned field entries
5453 If (LNotEqual (BI1E, 0))
5455 // verify memory contents using aligned field entries
5456 If (LNotEqual (DWD0, 0x255AA55A))
5459 // set memory contents to known values using misaligned field entries
5461 // verify memory contents using misaligned field entries
5462 If (LNotEqual (BI1F, 1))
5464 // verify memory contents using aligned field entries
5465 If (LNotEqual (DWD0, 0xA55AA55A))
5469 // set memory contents to known values using misaligned field entries
5471 // verify memory contents using misaligned field entries
5472 If (LNotEqual (B2_0, 3))
5474 // verify memory contents using aligned field entries
5475 If (LNotEqual (DWD0, 0xA55AA55B))
5478 // set memory contents to known values using misaligned field entries
5480 // verify memory contents using misaligned field entries
5481 If (LNotEqual (B2_1, 1))
5483 // verify memory contents using aligned field entries
5484 If (LNotEqual (DWD0, 0xA55AA557))
5487 // set memory contents to known values using misaligned field entries
5489 // verify memory contents using misaligned field entries
5490 If (LNotEqual (B2_2, 0))
5492 // verify memory contents using aligned field entries
5493 If (LNotEqual (DWD0, 0xA55AA547))
5496 // set memory contents to known values using misaligned field entries
5498 // verify memory contents using misaligned field entries
5499 If (LNotEqual (B2_3, 3))
5501 // verify memory contents using aligned field entries
5502 If (LNotEqual (DWD0, 0xA55AA5C7))
5505 // set memory contents to known values using misaligned field entries
5507 // verify memory contents using misaligned field entries
5508 If (LNotEqual (B2_4, 3))
5510 // verify memory contents using aligned field entries
5511 If (LNotEqual (DWD0, 0xA55AA7C7))
5514 // set memory contents to known values using misaligned field entries
5516 // verify memory contents using misaligned field entries
5517 If (LNotEqual (B2_5, 0))
5519 // verify memory contents using aligned field entries
5520 If (LNotEqual (DWD0, 0xA55AA3C7))
5523 // set memory contents to known values using misaligned field entries
5525 // verify memory contents using misaligned field entries
5526 If (LNotEqual (B2_6, 1))
5528 // verify memory contents using aligned field entries
5529 If (LNotEqual (DWD0, 0xA55A93C7))
5532 // set memory contents to known values using misaligned field entries
5534 // verify memory contents using misaligned field entries
5535 If (LNotEqual (B2_7, 1))
5537 // verify memory contents using aligned field entries
5538 If (LNotEqual (DWD0, 0xA55A53C7))
5541 // set memory contents to known values using misaligned field entries
5543 // verify memory contents using misaligned field entries
5544 If (LNotEqual (B2_8, 0))
5546 // verify memory contents using aligned field entries
5547 If (LNotEqual (DWD0, 0xA55853C7))
5550 // set memory contents to known values using misaligned field entries
5552 // verify memory contents using misaligned field entries
5553 If (LNotEqual (B2_9, 1))
5555 // verify memory contents using aligned field entries
5556 If (LNotEqual (DWD0, 0xA55453C7))
5559 // set memory contents to known values using misaligned field entries
5561 // verify memory contents using misaligned field entries
5562 If (LNotEqual (B2_A, 2))
5564 // verify memory contents using aligned field entries
5565 If (LNotEqual (DWD0, 0xA56453C7))
5568 // set memory contents to known values using misaligned field entries
5570 // verify memory contents using misaligned field entries
5571 If (LNotEqual (B2_B, 2))
5573 // verify memory contents using aligned field entries
5574 If (LNotEqual (DWD0, 0xA5A453C7))
5577 // set memory contents to known values using misaligned field entries
5579 // verify memory contents using misaligned field entries
5580 If (LNotEqual (B2_C, 3))
5582 // verify memory contents using aligned field entries
5583 If (LNotEqual (DWD0, 0xA7A453C7))
5586 // set memory contents to known values using misaligned field entries
5588 // verify memory contents using misaligned field entries
5589 If (LNotEqual (B2_D, 3))
5591 // verify memory contents using aligned field entries
5592 If (LNotEqual (DWD0, 0xAFA453C7))
5595 // set memory contents to known values using misaligned field entries
5597 // verify memory contents using misaligned field entries
5598 If (LNotEqual (B2_E, 1))
5600 // verify memory contents using aligned field entries
5601 If (LNotEqual (DWD0, 0x9FA453C7))
5604 // set memory contents to known values using misaligned field entries
5606 // verify memory contents using misaligned field entries
5607 If (LNotEqual (B2_F, 0))
5609 // verify memory contents using aligned field entries
5610 If (LNotEqual (DWD0, 0x1FA453C7))
5615 } // MADM: Misaligned Dynamic RAM SystemMemory OperationRegion
5619 Store ("++++++++ IndexOp4 Test", Debug)
5621 // MADM (Misaligned Dynamic RAM SystemMemory OperationRegion) arguments:
5622 // Arg0 -- SystemMemory OperationRegion base address
5623 Store (MADM (0x800000), Local0)
5624 If (LNotEqual (Local0, 0)) // MADM returns zero if successful
5625 { Return (Local0) } // failure: return MADM error code
5634 // EventOp, ResetOp, SignalOp, and WaitOp test cases.
5638 Event (EVNT) // event synchronization object
5641 // Arg0: time to Wait for event in milliseconds
5642 { // TEVN control method to test ResetOp, SignalOp, and WaitOp
5643 // reset EVNT to initialization (zero) state
5646 // prime EVNT with two outstanding signals
5651 // acquire existing signal
5652 Store (Wait (EVNT, Arg0), Local0)
5654 // validate Local0 is a Number
5655 Store (ObjectType (Local0), Local1)
5656 If (LNotEqual (Local1, 1)) // Number is type 1
5657 { Return (0x21) } // Local1 indicates Local0 is not a Number
5659 If (LNotEqual (Local0, 0)) // Number is type 1
5660 { Return (0x22) } // timeout occurred without acquiring signal
5662 Store ("Acquire 1st existing signal PASS", Debug)
5665 // acquire existing signal
5666 Store (Wait (EVNT, Arg0), Local0)
5668 // validate Local0 is a Number
5669 Store (ObjectType (Local0), Local1)
5670 If (LNotEqual (Local1, 1)) // Number is type 1
5671 { Return (0x31) } // Local1 indicates Local0 is not a Number
5673 If (LNotEqual (Local0, 0)) // Number is type 1
5674 { Return (0x32) } // timeout occurred without acquiring signal
5676 Store ("Acquire 2nd existing signal PASS", Debug)
5679 // ensure WaitOp timeout test cases do not hang
5680 if (LEqual (Arg0, 0xFFFF))
5681 { Store (0xFFFE, Arg0) }
5683 // acquire non-existing signal
5684 Store (Wait (EVNT, Arg0), Local0)
5686 // validate Local0 is a Number
5687 Store (ObjectType (Local0), Local1)
5688 If (LNotEqual (Local1, 1)) // Number is type 1
5689 { Return (0x41) } // Local1 indicates Local0 is not a Number
5691 If (LEqual (Local0, 0)) // Number is type 1
5692 { Return (0x42) } // non-existant signal was acquired
5694 Store ("Acquire signal timeout PASS", Debug)
5697 // prime EVNT with two outstanding signals
5701 // reset EVNT to initialization (zero) state
5704 // acquire non-existing signal
5705 Store (Wait (EVNT, Arg0), Local0)
5707 // validate Local0 is a Number
5708 Store (ObjectType (Local0), Local1)
5709 If (LNotEqual (Local1, 1)) // Number is type 1
5710 { Return (0x51) } // Local1 indicates Local0 is not a Number
5712 If (LEqual (Local0, 0)) // Number is type 1
5713 { Return (0x52) } // non-existant signal was acquired
5715 Store ("Reset signal PASS", Debug)
5718 // acquire non-existing signal using Lvalue timeout
5719 Store (Wait (EVNT, Zero), Local0)
5721 // validate Local0 is a Number
5722 Store (ObjectType (Local0), Local1)
5723 If (LNotEqual (Local1, 1)) // Number is type 1
5724 { Return (0x61) } // Local1 indicates Local0 is not a Number
5726 If (LEqual (Local0, 0)) // Number is type 1
5727 { Return (0x62) } // non-existant signal was acquired
5729 Store ("Zero Lvalue PASS", Debug)
5732 // acquire non-existing signal using Lvalue timeout
5733 Store (Wait (EVNT, One), Local0)
5735 // validate Local0 is a Number
5736 Store (ObjectType (Local0), Local1)
5737 If (LNotEqual (Local1, 1)) // Number is type 1
5738 { Return (0x71) } // Local1 indicates Local0 is not a Number
5740 If (LEqual (Local0, 0)) // Number is type 1
5741 { Return (0x72) } // non-existant signal was acquired
5743 Store ("One Lvalue PASS", Debug)
5745 // Lvalue Event test cases
5746 // ILLEGAL SOURCE OPERAND Store (EVNT, Local2)
5748 // validate Local2 is an Event
5749 Store (ObjectType (EVNT), Local1)
5750 If (LNotEqual (Local1, 7)) // Event is type 7
5751 { Return (0x81) } // Local1 indicates Local0 is not a Number
5753 // reset EVNT to initialization (zero) state
5756 // prime EVNT with two outstanding signals
5759 // acquire existing signal
5760 Store (Wait (EVNT, Arg0), Local0)
5762 // validate Local0 is a Number
5763 Store (ObjectType (Local0), Local1)
5764 If (LNotEqual (Local1, 1)) // Number is type 1
5765 { Return (0x82) } // Local1 indicates Local0 is not a Number
5767 If (LNotEqual (Local0, 0)) // Number is type 1
5768 { Return (0x83) } // timeout occurred without acquiring signal
5770 Store ("Acquire Lvalue existing signal PASS", Debug)
5773 // acquire non-existing signal
5774 Store (Wait (EVNT, Arg0), Local0)
5776 // validate Local0 is a Number
5777 Store (ObjectType (Local0), Local1)
5778 If (LNotEqual (Local1, 1)) // Number is type 1
5779 { Return (0x84) } // Local1 indicates Local0 is not a Number
5781 If (LEqual (Local0, 0)) // Number is type 1
5782 { Return (0x85) } // non-existant signal was acquired
5784 Store ("Acquire Lvalue signal timeout PASS", Debug)
5787 Return (0) // success
5788 } // TEVN control method to test ResetOp, SignalOp, and WaitOp
5792 Store ("++++++++ Event Test", Debug)
5794 Store (TEVN (100), Local0)
5801 // test SizeOfLv.asl
5803 // Test for SizeOf (Lvalue)
5805 // This next section will contain the packages that the SizeOfOp will be
5806 // exercised on. The first one, PKG0, is a regular package of 3 elements.
5807 // The 2nd one, PKG1, is a nested package with 3 packages inside it, each
5808 // with 3 elements. It is expected that SizeOf operator will return the
5809 // same value for these two packages since they both have 3 elements. The
5810 // final package, PKG2, has 4 elements and the SizeOf operator is expected
5811 // to return different results for this package.
5815 {0x0123, 0x4567, 0x89AB}
5821 Package (3) {0x0123, 0x4567, 0x89AB},
5822 Package (3) {0xCDEF, 0xFEDC, 0xBA98},
5823 Package (3) {0x7654, 0x3210, 0x1234}
5829 {0x0123, 0x4567, 0x89AB, 0x8888}
5834 {0x0123, 0x4567, 0x89AB, 0x8888, 0x7777}
5837 // End Packages **********************************************************
5839 // The following section will declare the data strings that will be used to
5840 // exercise the SizeOf operator. STR0 and STR1 are expected to be equal,
5841 // STR2 is expected to have a different SizeOf value than STR0 and STR1.
5843 Name (STR0, "ACPI permits very flexible methods of expressing a system")
5845 Name (STR1, "MIKE permits very flexible methods of expressing a system")
5847 Name (STR2, "Needless to say, Mike and ACPI are frequently at odds")
5849 // This string is being made in case we want to do a SizeOf comparison
5850 // between strings and packages or buffers
5851 Name (STR3, "12345")
5853 // End Strings **********************************************************
5855 // The following section will declare the buffers that will be used to exercise
5856 // the SizeOf operator.
5858 Name (BUF0, Buffer (10) {})
5859 Name (BUF1, Buffer (10) {})
5860 Name (BUF2, Buffer (8) {})
5861 Name (BUF3, Buffer (5) {})
5863 // End Buffers **********************************************************
5869 // CMPR is passed two arguments. If unequal, return 1 to indicate
5870 // that, otherwise return 0 to indicate SizeOf each is equal.
5872 Store (0x01, Local0)
5874 if (LEqual (SizeOf(Arg0), SizeOf(Arg1)))
5876 Store (0x00, Local0)
5886 Store ("++++++++ SizeOfLv Test", Debug)
5888 // TBD: SizeOf ("string")
5892 // SizeOf (STR0) -- where Name (STR0,...) -- lot's of cases
5893 // buffer, string, package,
5894 // SizeOf (METH) -- where METH control method returns
5895 // buffer, string, package,
5897 // TBD: SLOC [SizeOf (Local0)] -- dup SARG
5899 // Compare the elements that we expect to be the same. Exit out with an error
5900 // code on the first failure.
5901 if (LNotEqual (0x00, CMPR (STR0, STR1)))
5906 if (LNotEqual (0x00, CMPR (STR3, BUF3)))
5911 if (LNotEqual (0x00, CMPR (STR3, PKG3)))
5916 // In the following section, this test will cover the SizeOf
5917 // operator for Local values.
5918 // In this case, both Local0 and Local1 should have the same Size
5919 Store (STR0, Local0)
5920 Store (STR1, Local1)
5922 if (LNotEqual (SizeOf (Local0), SizeOf (Local1)))
5927 // Now create a case where Local0 and Local1 are different
5928 Store (STR2, Local1)
5930 if (LEqual (SizeOf (Local0), SizeOf (Local1)))
5935 // Finally, check for the return of SizeOf for a known Buffer. Just
5936 // in case we magically pass above cases due to all Buffers being Zero
5937 // bytes in size, or Infinity, etc.
5938 if (LNotEqual (0x05, SizeOf (BUF3)))
5949 // test BytField.asl
5952 // This is just a subset of the many RegionOp/Index Field test cases.
5953 // Tests access of TBD.
5955 Scope (\_SB) // System Bus
5958 { // Test device name
5961 Store ("++++++++ BytField Test", Debug)
5963 Return (\_TZ.C19B.RSLT)
5975 { // C115 control method
5976 Acquire (\_GL, 0xFFFF)
5977 Store (\_SB.C005.C013.C058.C07E, Local0)
5979 And (Local0, 16, Local0)
5980 Store (ShiftRight (Local0, 4, ), Local1)
5981 If (LEqual (Local1, 0))
5985 } // C115 control method
5988 OperationRegion (C018, SystemIO, 0x5028, 4)
5989 Field (C018, AnyAcc, NoLock, Preserve)
5990 { // Field overlaying C018
5992 } // Field overlaying C018
5994 OperationRegion (C01A, SystemIO, 0x5030, 4)
5995 Field (C01A, ByteAcc, NoLock, Preserve)
5996 { // Field overlaying C01A
6001 } // Field overlaying C01A
6008 { // \C022 control method
6009 Acquire (\C01F, 0xFFFF)
6010 If (LEqual (\C021, 0))
6012 Store (C019, Local0)
6013 And (Local0, 0xFFFEFFFE, Local0)
6014 Store (Local0, C019)
6018 } // \C022 control method
6020 Scope (\_SB.C005.C013)
6021 { // Scope \_SB.C005.C013
6024 Name (_HID, "*PNP0A06")
6026 OperationRegion (C059, SystemIO, 0xE0, 2)
6027 Field (C059, ByteAcc, NoLock, Preserve)
6028 { // Field overlaying C059
6031 } // Field overlaying C059
6033 OperationRegion (C05C, SystemIO, 0xE2, 2)
6034 Field (C05C, ByteAcc, NoLock, Preserve)
6035 { // Field overlaying C05C
6038 } // Field overlaying C05C
6039 IndexField (C05D, C05E, ByteAcc, NoLock, Preserve)
6040 { // IndexField overlaying C05D/C05E
6075 } // IndexField overlaying C05D/C05E
6077 OperationRegion (C07F, SystemIO, 0xE4, 2)
6078 Field (C07F, ByteAcc, NoLock, Preserve)
6079 { // Field overlaying C07F
6082 } // Field overlaying C07F
6084 OperationRegion (C082, SystemIO, 0xE0, 1)
6085 Field (C082, ByteAcc, NoLock, Preserve)
6086 { // Field overlaying C082
6088 } // Field overlaying C082
6090 OperationRegion (C084, SystemIO, 0xFF, 1)
6091 Field (C084, ByteAcc, NoLock, Preserve)
6092 { // Field overlaying C084
6094 } // Field overlaying C084
6096 OperationRegion (C086, SystemIO, 0xFD, 1)
6097 Field (C086, ByteAcc, NoLock, Preserve)
6098 { // Field overlaying C086
6100 } // Field overlaying C086
6109 Name (C08E, 0xFFFFFFFD)
6113 { // C0AA control method
6114 Store (Buffer (4) {}, Local7)
6115 CreateByteField (Local7, 0, C0AB)
6116 CreateByteField (Local7, 1, C0AC)
6117 CreateByteField (Local7, 2, C0AD)
6118 CreateByteField (Local7, 3, C0AE)
6119 Acquire (^C08B, 0xFFFF)
6120 Acquire (\_GL, 0xFFFF)
6122 Store (1, \_SB.C005.C013.C058.C06B)
6123 While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
6125 Store (Arg3, \_SB.C005.C013.C058.C06E)
6126 Store (Arg2, \_SB.C005.C013.C058.C06D)
6127 Store (Arg1, \_SB.C005.C013.C058.C06C)
6128 Store (Arg0, \_SB.C005.C013.C058.C06B)
6129 While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
6131 Store (\_SB.C005.C013.C058.C06E, C0AB)
6132 Store (\_SB.C005.C013.C058.C06D, C0AC)
6133 Store (\_SB.C005.C013.C058.C06C, C0AD)
6134 Store (\_SB.C005.C013.C058.C06B, C0AE)
6135 If (LNot (LEqual (Arg0, 23)))
6137 Store (2, \_SB.C005.C013.C058.C06B)
6143 } // C0AA control method
6145 } // Scope \_SB.C005.C013
6148 { // \_TZ thermal zone scope
6149 Name (C18B, Package (2)
6153 Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
6154 Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
6158 Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
6159 Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
6163 Name (C18C, Package (2)
6167 Package (3) {0x64, 0x4B, 0x32},
6168 Package (3) {0x64, 0x4B, 0x32}
6184 Name (C199, 0xFFFFFFFD)
6189 Name (RSLT, 0) // default to zero
6192 { // _INI control method (Uses Global Lock -- can't run under AcpiExec)
6193 Store (\_SB.C115, C19A)
6195 Subtract (0x0EB2, 0x0AAC, Local1) // Local1 = AACh - EB2h
6196 Divide (Local1, 10, Local0, Local2) // Local0 = Local1 / 10
6197 // Local2 = Local1 % 10
6198 \_SB.C005.C013.C058.C0AA (14, Local2, 0, 0)
6200 (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 0, )), C18D)
6202 (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 1, )), C18E)
6204 (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 2, )), C18F)
6206 Store (1, RSLT) // set RSLT to 1 if _INI control method completes
6207 } // _INI control method
6209 // PowerResource (C19D) {...}
6215 { // _SCP control method
6216 Store (Arg0, Local0)
6217 If (LEqual (Local0, 0))
6219 Store (0, \_TZ.C192)
6220 Store (1, \_TZ.C193)
6221 Store (2, \_TZ.C194)
6222 Store (3, \_TZ.C191)
6226 Store (0, \_TZ.C191)
6227 Store (1, \_TZ.C192)
6228 Store (2, \_TZ.C193)
6229 Store (3, \_TZ.C194)
6231 } // _SCP control method
6232 } // ThermalZone C19C
6233 } // \_TZ thermal zone scope
6239 Name (BUFR, buffer(10) {0,0,0,0,0,0,0,0,0,0} )
6245 Store ("++++++++ DwrdFld Test", Debug)
6247 CreateByteField (BUFR, 0, BYTE)
6250 CreateWordField (BUFR, 1, WORD)
6251 Store (0xBBCC, WORD)
6253 CreateDWordField (BUFR, 3, DWRD)
6254 Store (0xDDEEFF00, DWRD)
6256 CreateByteField (BUFR, 7, BYT2)
6259 CreateWordField (BUFR, 8, WRD2)
6260 Store (0x2233, WRD2)
6264 } // End Method TEST
6274 { // This control method will take two bytes and make them into a WORD
6276 Multiply (B1HI, 256, Local0) // Make high byte.....high
6277 Or (Local0, B1LO, Local0) // OR in the low byte
6278 Return (Local0) // Return the WORD
6287 Store ("++++++++ DivAddx Test", Debug)
6292 // We'll multiply 25 * 3 to get 75, add 99 to it then divide
6293 // by 100. We expect to get 74 for the remainder and 1 for
6296 Add (Multiply (3, MKW_ (B1LO, B1HI)), 0x63),
6299 Local4, // Remainder
6302 If (LAnd (LEqual (74, Local4), LEqual (1, Local2)))
6304 Store (0x00, Local0)
6309 Store (0x01, Local0)
6313 } // End Method TEST
6317 // test IndexFld.asl (IndexOp6.asl)
6320 // This is just a subset of the many RegionOp/Index Field test cases.
6321 // Tests index field element AccessAs macro.
6322 // Also tests name resolution of index field elements with same names
6323 // but different namespace scopes.
6326 { // Test device name
6328 OperationRegion (SIO, SystemIO, 0x100, 2)
6329 Field (SIO, ByteAcc, NoLock, Preserve)
6334 IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
6336 AccessAs (ByteAcc, 0),
6350 { // TST_: provides a different namespace scope for IFE0 and IFE1
6351 OperationRegion (SIO2, SystemIO, 0x100, 2)
6352 Field (SIO2, ByteAcc, NoLock, Preserve)
6357 IndexField (IND2, DAT2, AnyAcc, NoLock, WriteAsOnes)
6359 IFE0, 8, // duplicate IndexField name with different scope
6362 } // TST_: provides a different namespace scope for IFE0 and IFE1
6366 Store ("++++++++ IndexOp6 Test", Debug)
6368 Store (IFE0, Local0)
6369 Store (IFE1, Local1)
6370 Store (IFE2, Local2)
6372 // validate name resolution of IndexFields with different scopes
6373 Store (\IDX6.IFE0, Local3)
6374 Store (\IDX6.IFE1, Local4)
6375 // verioading of namespace can resolve following names
6376 Store (\IDX6.TST_.IFE0, Local5)
6377 Store (\IDX6.TST_.IFE1, Local6)
6384 // test IndexOp5.asl
6387 // This is just a subset of the many RegionOp/Index Field test cases.
6388 // Tests copying string into buffer then performing IndexOp on result.
6391 { // Test device name
6393 Name (OSFL, 0) // 0 == Windows 98, 1 == Windows NT
6395 // MCTH is a control method to compare two strings. It returns
6396 // zero if the strings mismatch, or 1 if the strings match.
6397 // This exercises the test case of copying a string into a buffer
6398 // and performing an IndexOp on the resulting buffer.
6399 Method (MCTH, 2, Serialized) // Control Method to compare two strings
6400 { // MCTH: Control Method to compare two strings
6401 // Arg0: first string to compare
6402 // Arg1: second string to compare
6403 // Return: zero if strings mismatch, 1 if strings match
6405 // check if first string's length is less than second string's length
6406 If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
6409 // increment length to include NULL termination character
6410 Add (SizeOf (Arg0), 1, Local0) // Local0 = strlen(Arg0) + 1
6412 // create two buffers of size Local0 [strlen(Arg0)+1]
6413 Name (BUF0, Buffer (Local0) {})
6414 Name (BUF1, Buffer (Local0) {})
6416 // copy strings into buffers
6420 // validate BUF0 and BUF1 are still buffers
6421 Store (ObjectType (BUF0), Local1)
6422 If (LNotEqual (Local1, 3)) // Buffer is type 3
6424 Store (ObjectType (BUF1), Local1)
6425 If (LNotEqual (Local1, 3)) // Buffer is type 3
6428 // Decrement because the Index base below is zero based
6429 // while Local0 length is one based.
6433 { // loop through all BUF0 buffer elements
6436 // check if BUF0[n] == BUF1[n]
6437 If (LEqual (DerefOf (Index (BUF0, Local0, )),
6438 DerefOf (Index (BUF1, Local0, ))))
6439 { } // this is how the code was really implemented
6442 } // loop through all BUF0 buffer elements
6444 Return (One) // strings / buffers match
6445 } // MCTH: Control Method to compare two strings
6450 Store ("++++++++ IndexOp5 Test", Debug)
6452 If (MCTH (\_OS, "Microsoft Windows NT"))
6455 If (LNotEqual (OSFL, 1))
6465 Scope (\_SB) // System Bus
6473 Name (_HID, EISAID("PNP0A03"))
6474 Name (_ADR, 0x00000000)
6475 Name (_CRS, Buffer(26) {"\_SB_.PCI2._CRS..........."})
6476 Method (_STA) {Return (0x0F)}
6480 Name (_ADR, 0x00030000) // ISA bus ID
6483 { // Embedded Controller
6484 Name (_GPE, 0) // EC use GPE0
6485 Name (_ADR, 0x0030000) // PCI address
6487 Method (_STA,0) // EC Status
6488 { Return(0xF) } // EC is functioning
6490 Name (_CRS, ResourceTemplate()
6492 IO (Decode16, 0x62, 0x62, 1, 1)
6493 IO (Decode16, 0x66, 0x66, 1, 1)
6497 // create EC's region and field
6498 OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
6499 Field (RAM, AnyAcc, NoLock, Preserve)
6502 ADP, 1, // AC Adapter 1:On-line, 0:Off-line
6503 AFLT, 1, // AC Adapter Fault 1:Fault 0:Normal
6504 BAT0, 1, // BAT0 1:present, 0:not present
6506 , 28, // filler to force DWORD alignment
6508 // CMBatt information
6509 BPU0, 32, // Power Unit
6510 BDC0, 32, // Designed Capacity
6511 BFC0, 32, // Last Full Charge Capacity
6512 BTC0, 32, // Battery Technology
6513 BDV0, 32, // Design Voltage
6514 BST0, 32, // Battery State
6515 BPR0, 32, // Battery Present Rate
6516 // (Designed Capacity)x(%)/{(h)x100}
6517 BRC0, 32, // Battery Remaining Capacity
6518 // (Designed Capacity)(%)^100
6519 BPV0, 32, // Battery Present Voltage
6520 BTP0, 32, // Trip Point
6521 BCW0, 32, // Design capacity of Warning
6522 BCL0, 32, // Design capacity of Low
6523 BCG0, 32, // capacity granularity 1
6524 BG20, 32, // capacity granularity 2
6525 BMO0, 32, // Battery model number field
6526 BIF0, 32, // OEM Information(00h)
6527 BSN0, 32, // Battery Serial Number
6528 BTY0, 32, // Battery Type (e.g., "Li-Ion")
6529 BTY1, 32 // Battery Type (e.g., "Li-Ion")
6531 } // EC0: Embedded Controller
6533 } // PCI2 Root PCI Bus
6536 { // Test device name
6537 Name (_HID, EISAID ("PNP0C0A")) // Control Method Battey ID
6538 Name (_PCL, Package() {\_SB})
6541 // _STA bits 0-3 indicate existence of battery slot
6542 // _STA bit 4 indicates battery (not) present
6543 If (\_SB.PCI2.ISA.EC0.BAT0)
6544 { Return (0x1F) } // Battery present
6546 { Return (0x0F) } // Battery not present
6549 Method (_BIF,, Serialized)
6551 Name (BUFR, Package(13) {})
6552 Store (\_SB.PCI2.ISA.EC0.BPU0, Index (BUFR,0)) // Power Unit
6553 Store (\_SB.PCI2.ISA.EC0.BDC0, Index (BUFR,1)) // Designed Capacity
6554 Store (\_SB.PCI2.ISA.EC0.BFC0, Index (BUFR,2)) // Last Full Charge Capa.
6555 Store (\_SB.PCI2.ISA.EC0.BTC0, Index (BUFR,3)) // Battery Technology
6556 Store (\_SB.PCI2.ISA.EC0.BDV0, Index (BUFR,4)) // Designed Voltage
6557 Store (\_SB.PCI2.ISA.EC0.BCW0, Index (BUFR,5)) // Designed warning level
6558 Store (\_SB.PCI2.ISA.EC0.BCL0, Index (BUFR,6)) // Designed Low level
6559 Store (\_SB.PCI2.ISA.EC0.BCG0, Index (BUFR,7)) // Capacity granularity 1
6560 Store (\_SB.PCI2.ISA.EC0.BG20, Index (BUFR,8)) // Capacity granularity 2
6562 Store ("", Index (BUFR,9)) // Model Number
6564 Store ("", Index (BUFR,10)) // Serial Number
6566 Store ("LiOn", Index (BUFR,11)) // Battery Type
6568 Store ("Chicony", Index (BUFR,12)) // OEM Information
6573 Method (_BST,, Serialized)
6575 Name (BUFR, Package(4) {1, 0x100, 0x76543210, 0x180})
6581 Store (arg0, \_SB.PCI2.ISA.EC0.BTP0) // Set Battery Trip point
6584 Method (TEST,, Serialized)
6587 Store ("++++++++ IndexOp Test", Debug)
6589 // test storing into uninitialized package elements
6590 Name (PBUF, Package(4) {}) // leave unitialized
6591 Store (0x01234567, Index (PBUF,0))
6592 Store (0x89ABCDEF, Index (PBUF,1))
6593 Store (0xFEDCBA98, Index (PBUF,2))
6594 Store (0x76543210, Index (PBUF,3))
6596 // verify values stored into uninitialized package elements
6597 If (LNotEqual (DerefOf (Index (PBUF,0)), 0x01234567))
6600 If (LNotEqual (DerefOf (Index (PBUF,1)), 0x89ABCDEF))
6603 If (LNotEqual (DerefOf (Index (PBUF,2)), 0xFEDCBA98))
6606 If (LNotEqual (DerefOf (Index (PBUF,3)), 0x76543210))
6610 // store _BIF package return value into Local0
6611 Store (_BIF, Local0)
6613 // save Local0 object type value into Local1
6614 Store (ObjectType (Local0), Local1)
6616 // validate Local0 is a Package
6617 If (LNotEqual (Local1, 4)) // Package type is 4
6618 { Return (0x21) } // failure
6621 // test storing into buffer field elements
6622 Name (BUFR, Buffer(16)
6624 00, 00, 00, 00, 00, 00, 00, 00,
6625 00, 00, 00, 00, 00, 00, 00, 00,
6628 // test storing into buffer field elements
6629 Store (0x01234567, Index (BUFR,0)) // should only store 0x67
6630 Store (0x89ABCDEF, Index (BUFR,4)) // should only store 0xEF
6631 Store (0xFEDCBA98, Index (BUFR,8)) // should only store 0x98
6632 Store (0x76543210, Index (BUFR,12)) // should only store 0x10
6634 // verify storing into buffer field elements
6635 If (LNotEqual (DerefOf (Index (BUFR,0)), 0x67))
6638 If (LNotEqual (DerefOf (Index (BUFR,1)), 0))
6641 If (LNotEqual (DerefOf (Index (BUFR,4)), 0xEF))
6644 If (LNotEqual (DerefOf (Index (BUFR,8)), 0x98))
6647 If (LNotEqual (DerefOf (Index (BUFR,12)), 0x10))
6657 // test BitIndex.asl
6660 // This is a test case for accessing fields defined as single bits in
6661 // memory. This is done by creating two index fields that overlay the
6662 // same DWORD in memory. One field accesses the DWORD as a DWORD, the
6663 // other accesses individual bits of the same DWORD field in memory.
6665 Scope (\_SB) // System Bus
6667 OperationRegion (RAM, SystemMemory, 0x800000, 0x100)
6668 Field (RAM, AnyAcc, NoLock, Preserve)
6676 DWRD, 32, // DWORD field
6678 Field (RAM, AnyAcc, NoLock, Preserve)
6686 BYT0, 8, // Start off with a BYTE
6687 BIT0, 1, // single-bit field
6688 BIT1, 1, // single-bit field
6689 BIT2, 1, // single-bit field
6690 BIT3, 1, // single-bit field
6691 BIT4, 1, // single-bit field
6692 BIT5, 1, // single-bit field
6693 BIT6, 1, // single-bit field
6694 BIT7, 1, // single-bit field
6695 BIT8, 1, // single-bit field
6696 BIT9, 1, // single-bit field
6697 BITA, 1, // single-bit field
6698 BITB, 1, // single-bit field
6699 BITC, 1, // single-bit field
6700 BITD, 1, // single-bit field
6701 BITE, 1, // single-bit field
6702 BITF, 1, // single-bit field
6703 BYTZ, 8, // End with a BYTE for a total of 32 bits
6707 { // Test device name
6709 Method (MBIT) // Test single bit memory accesses
6712 If (LNotEqual (DWRD, 0x00))
6714 Store (0xFF00, Local0)
6718 // Prime Local0 with 0...assume passing condition
6721 // set memory contents to known values using DWORD field
6722 Store (0x5A5A5A5A, DWRD)
6724 // Given the value programmed into DWRD, only the odd bits
6725 // of the lower nibble should be set. BIT1, BIT3 should be set.
6726 // BIT0 and BIT2 should be clear
6730 Or (Local0, 0x01, Local0)
6735 Or (Local0, 0x02, Local0)
6740 Or (Local0, 0x04, Local0)
6745 Or (Local0, 0x08, Local0)
6748 // Now check the upper nibble. Only the "even" bits should
6749 // be set. BIT4, BIT6. BIT5 and BIT7 should be clear.
6752 Or (Local0, 0x10, Local0)
6757 Or (Local0, 0x20, Local0)
6762 Or (Local0, 0x40, Local0)
6767 Or (Local0, 0x80, Local0)
6769 } // End Else DWRD zeroed out
6772 } // MBIT: Test single bit memory accesses
6777 Store ("++++++++ BitIndex Test", Debug)
6780 Store (0x00000000, DWRD)
6782 // MBIT returns zero if successful
6783 // This may be causing problems -- Return (MBIT)
6784 Store (MBIT, Local0)
6792 // test IndexOp3.asl
6794 // Additional IndexOp test cases to support ACPICMB (control method battery
6795 // test) on Compaq laptops. Test cases include storing a package into
6796 // an IndexOp target and validating that changing source and destination
6797 // package contents are independent of each other.
6799 Scope (\_SB) // System Bus
6806 { // C158: AC Adapter device
6807 Name (_HID, "ACPI0003") // AC Adapter device
6808 Name (_PCL, Package (1) {\_SB})
6812 Acquire (\_GL, 0xFFFF)
6814 And (Local0, 1, Local0) // Local0 &= 1
6817 } // C158: AC Adapter device
6819 Name (C176, Package (4) {"Primary", "MultiBay", "DockRight", "DockLeft"})
6821 Name (C177, Package (4) {0x99F5, 0x99F5, 0x995F, 0x995F})
6823 Name (C178, Package (4)
6825 Package (4) {0, 0, 0x966B, 0x4190},
6826 Package (4) {0, 0, 0x966B, 0x4190},
6827 Package (4) {0, 0, 0x966B, 0x4190},
6828 Package (4) {0, 0, 0x966B, 0x4190}
6831 Name (C179, Package (4) {0, 0, 0x966B, 0x4190})
6833 Name (C17A, Package (4)
6835 Package (3) {0, 0, 0},
6836 Package (3) {0, 0, 0},
6837 Package (3) {0, 0, 0},
6838 Package (3) {0, 0, 0}
6841 Method (C17B, 1, Serialized)
6842 { // C17B: _BIF implementation
6843 Name (C17C, Package (13)
6844 { // C17C: _BIF control method return package
6845 0, // Power Unit (0 ==> mWh and mW)
6846 0x99F5, // Design Capacity
6847 0x99F5, // Last Full Charge Capacity
6848 1, // Battery Technology (1 ==> rechargeable)
6849 0x3840, // Design Voltage
6850 0x1280, // Design Capacity of Warning
6851 0x0AC7, // Design Capacity of Low
6852 1, // Battery Capacity Granularity 1 (Low -- Warning)
6853 1, // Battery Capacity Granularity 2 (Warning -- Full)
6854 "2891", // Model Number (ASCIIZ)
6855 "(-Unknown-)", // Serial Number (ASCIIZ)
6856 "LIon", // Battery Type (ASCIIZ)
6857 0 // OEM Information (ASCIIZ)
6858 }) // C17C: _BIF control method return package
6860 And (Arg0, 7, Local0) // Local0 = Arg0 & 7
6862 ShiftRight (Local0, 1, Local4) // Local4 = Local0 >> 1
6864 Store (C179, Index (C178, Local4, )) // C178->Local4 = C179
6866 // verify source and destination packages can be altered independent
6867 // of each other (i.e., changing one's contents does NOT change other's
6869 Store (0x1234, Index (C179, 2, )) // C179[2] = 0x1234
6870 Store (DerefOf (Index (C179, 2, )), Local2) // Local2 = C179[2]
6871 if (LNotEqual (Local2, 0x1234))
6873 // Local2 = C178[0,2]
6874 Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 2, )), Local2)
6875 if (LNotEqual (Local2, 0x966B))
6878 // Restore data to allow iterative execution
6879 Store (0x966B, Index (C179, 2, )) // C179[2] = 0x966B
6881 // C178[0,3] = 0x5678
6882 Store (0x5678, Index (DerefOf (Index (C178, 0, )), 3, ))
6883 // Local2 = C178[0,3]
6884 Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 3, )), Local2)
6885 if (LNotEqual (Local2, 0x5678))
6888 Store (DerefOf (Index (C179, 3, )), Local2) // Local2 = C179[3]
6889 if (LNotEqual (Local2, 0x4190))
6892 // Restore data to allow iterative execution
6893 Store (0x4190, Index (DerefOf (Index (C178, 0, )), 3, )) // C179[2] = 0x4190
6896 } // C17B: _BIF implementation
6899 { // C154: Battery 0
6900 Name (_HID, "*PNP0C0A") // Control Method Battey ID
6901 Name (_UID, 0) // first instance
6907 } // C154: Battery 0
6911 Method (LCLB,, Serialized)
6912 { // LCLB control method: test Index(Local#) where Local# is buffer
6913 // Local0 is index counter
6915 // Local2 receives BUFR[Local0] via Deref(Index(Local1...))
6916 // Local3 is Local1 or Local2 object type
6917 // Local4 is return error code
6919 Name (BUFR, Buffer () {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
6921 // save PKG into Local1
6922 Store (BUFR, Local1)
6924 // save Local2 object type value into Local3
6925 Store (ObjectType (Local1), Local3)
6927 // validate Local1 is a Buffer
6928 If (LNotEqual (Local3, 3)) // Buffer type is 3
6933 While (LLess (Local0, 5))
6934 { // While (Local0 < 5)
6935 // Local2 = Local1[Local0]
6936 Store (DerefOf (Index (Local1, Local0, )), Local2)
6938 // save Local2 object type value into Local3
6939 Store (ObjectType (Local2), Local3)
6941 // validate Local2 is a Number
6942 If (LNotEqual (Local3, 1)) // Number type is 1
6945 // validate Local1[Local0] value == Local0
6946 If (LNotEqual (Local0, Local2))
6947 { // Local0 != Local2 == PKG[Local0]
6948 // Local4 = 0x90 + loop index (Local0)
6949 Add (0x90, Local0, Local4)
6951 // return 0x90 + loop index
6956 } // While (Local0 < 5)
6958 Store ("DerefOf(Index(LocalBuffer,,)) PASS", Debug)
6961 } // LCLB control method: test Index(Local#) where Local# is buffer
6963 Method (LCLP,, Serialized)
6964 { // LCLP control method: test Index(Local#) where Local# is package
6965 // Local0 is index counter
6966 // Local1 is package
6967 // Local2 receives PKG[Local0] via Deref(Index(Local1...))
6968 // Local3 is Local1 or Local2 object type
6969 // Local4 is return error code
6971 Name (PKG, Package () {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
6973 // save PKG into Local1
6976 // save Local2 object type value into Local3
6977 Store (ObjectType (Local1), Local3)
6979 // validate Local1 is a Package
6980 If (LNotEqual (Local3, 4)) // Package type is 4
6985 While (LLess (Local0, 5))
6986 { // While (Local0 < 5)
6987 // Local2 = Local1[Local0]
6988 Store (DerefOf (Index (Local1, Local0, )), Local2)
6990 // save Local2 object type value into Local3
6991 Store (ObjectType (Local2), Local3)
6993 // validate Local2 is a Number
6994 If (LNotEqual (Local3, 1)) // Number type is 1
6997 // validate Local1[Local0] value == Local0
6998 If (LNotEqual (Local0, Local2))
6999 { // Local0 != Local2 == PKG[Local0]
7000 // Local4 = 0x80 + loop index (Local0)
7001 Add (0x80, Local0, Local4)
7003 // return 0x80 + loop index
7008 } // While (Local0 < 5)
7010 Store ("DerefOf(Index(LocalPackage,,)) PASS", Debug)
7013 } // LCLP control method: test Index(Local#) where Local# is package
7018 Store ("++++++++ IndexOp3 Test", Debug)
7020 // store _BIF package return value into Local0
7021 Store (\_SB.C154._BIF, Local0)
7023 // save Local0 object type value into Local1
7024 Store (ObjectType (Local0), Local1)
7026 // validate Local0 is a Package
7027 If (LNotEqual (Local1, 4)) // Package type is 4
7028 { // failure: did not return a Package (type 4)
7029 // if Local0 is a Number, it contains an error code
7030 If (LEqual (Local1, 1)) // Number type is 1
7031 { Return (Local0) } // return Local0 error code
7032 Else // Local0 is not a Number
7033 { Return (1) } // return default error code
7034 } // failure: did not return a Package (type 4)
7036 // save LCLB control method return value into Local2
7037 Store (LCLB, Local2)
7038 If (LNotEqual (Local2, 0))
7039 { Return (Local2) } // return failure code
7041 // save LCLP control method return value into Local2
7042 Store (LCLP, Local2)
7043 If (LNotEqual (Local2, 0))
7044 { Return (Local2) } // return failure code
7048 } // IDX3: Test device name
7052 // MTL developed test to exercise Indexes into buffers
7057 Name (PKG4, Package() {
7060 Buffer() {0xA, 0xB, 0xC, 0xD},
7062 Package() {IDX7, 0x3}
7066 // Generic Test method
7068 // This test returns 0xE (14) - ObjectType = Buffer Field
7069 Method(TST1,, Serialized)
7071 Name (DEST, Buffer () // 62 characters plus NULL
7072 {"Destination buffer that is longer than the short source buffer"})
7074 // verify object type returned by Index(Buffer,Element,)
7075 Store (Index (DEST, 2, ), Local1)
7076 Store (ObjectType (Local1), Local2)
7077 If (LEqual(Local2, 14))
7088 Method(TST2,, Serialized)
7090 Name (BUF0, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
7091 Store(0x55, Index(BUF0, 2))
7092 Store(DerefOf(Index(BUF0, 2)), Local0)
7093 If (LEqual(Local0, 0x55))
7105 Method(TST3,, Serialized)
7107 Name (BUF1, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
7108 Store(Index(BUF1, 1), Local0)
7109 Store(DerefOf(Local0), Local1)
7110 If (LEqual(Local1, 0x2))
7123 // Index (PKG4, 0) is a Number
7124 Store (Index (PKG4, 0), Local0)
7125 Store (ObjectType(Local0), Local1)
7126 If (LEqual(Local1, 0x1))
7139 // Index (PKG4, 1) is a String
7140 Store (Index (PKG4, 1), Local0)
7141 Store (ObjectType(Local0), Local1)
7142 If (LEqual(Local1, 0x2))
7155 // Index (PKG4, 2) is a Buffer
7156 Store (Index (PKG4, 2), Local0)
7157 Store (ObjectType(Local0), Local1)
7158 If (LEqual(Local1, 0x3))
7171 // Index (PKG4, 3) is a Number
7172 Store (Index (PKG4, 3), Local0)
7173 Store (ObjectType(Local0), Local1)
7174 If (LEqual(Local1, 0x1))
7187 // Index (PKG4, 4) is a Package
7188 Store (Index (PKG4, 4), Local0)
7189 Store (ObjectType(Local0), Local1)
7190 If (LEqual(Local1, 0x4))
7203 // DerefOf (Index (PKG4, 0)) is a Number
7204 Store (DerefOf (Index (PKG4, 0)), Local0)
7205 If (LEqual(Local0, 0x2))
7218 // DerefOf (Index (PKG4, 1)) is a String
7219 Store (DerefOf (Index (PKG4, 1)), Local0)
7220 Store (SizeOf(Local0), Local1)
7221 If (LEqual(Local1, 0xE))
7234 // DerefOf (Index (PKG4, 2)) is a Buffer
7235 Store (DerefOf (Index (PKG4, 2)), Local0)
7236 Store (SizeOf(Local0), Local1)
7237 If (LEqual(Local1, 0x4))
7250 // DerefOf (Index (PKG4, 3)) is a Number
7251 Store (DerefOf (Index (PKG4, 3)), Local0)
7252 If (LEqual(Local0, 0x1234))
7265 // DerefOf (Index (PKG4, 4)) is a Package
7266 Store (DerefOf (Index (PKG4, 4)), Local0)
7267 Store (SizeOf(Local0), Local1)
7268 If (LEqual(Local1, 0x2))
7281 // DerefOf (Index (PKG4, 2)) is a Buffer
7282 Store (DerefOf (Index (PKG4, 2)), Local0)
7283 // DerefOf (Index (Local0, 1)) is a Number
7284 Store (DerefOf (Index (Local0, 1)), Local1)
7285 If (LEqual(Local1, 0xB))
7296 Method (TSTF,, Serialized)
7298 Name (SRCB, Buffer (12) {}) // 12 characters
7299 Store ("Short Buffer", SRCB)
7301 Name (DEST, Buffer () // 62 characters plus NULL
7302 {"Destination buffer that is longer than the short source buffer"})
7304 // overwrite DEST contents, starting at buffer position 2
7305 Store (SRCB, Index (DEST, 2))
7308 // The DEST buffer element should be replaced with the last element of
7309 // the SRCB element (i.e. 's'->'r')
7310 Store (DerefOf (Index (DEST, 2)), Local0)
7312 If (LNotEqual (Local0, 0x72)) // 'r'
7314 // DEST element does not match the value from SRCB
7315 Return(Or(Local0, 0x1000))
7321 Method (TSTG,, Serialized)
7324 Name (SRCB, Buffer (12) {}) // 12 characters
7325 Store ("Short Buffer", SRCB)
7327 Name (DEST, Buffer () // 62 characters plus NULL
7328 {"Destination buffer that is longer than the short source buffer"})
7330 // overwrite DEST contents, starting at buffer position 2
7331 Store (SRCB, Index (DEST, 2))
7334 // The next element of DEST should be unchanged
7336 Store (DerefOf (Index (DEST, 3)), Local0)
7338 If (LNotEqual (Local0, 0x74)) // 't'
7340 // DEST has been changed
7341 Return(Or(Local0, 0x2000))
7345 // The next element of DEST should be unchanged
7347 Store (DerefOf (Index (DEST, 4)), Local0)
7349 If (LNotEqual (Local0, 0x69)) // 'i'
7351 // DEST has been changed
7352 Return(Or(Local0, 0x2100))
7356 // The next element of DEST should be unchanged
7358 Store (DerefOf (Index (DEST, 5)), Local0)
7360 If (LNotEqual (Local0, 0x6E)) // 'n'
7362 // DEST has been changed
7363 Return(Or(Local0, 0x2200))
7367 // The next element of DEST should be unchanged
7369 Store (DerefOf (Index (DEST, 6)), Local0)
7371 If (LNotEqual (Local0, 0x61)) // 'a'
7373 // DEST has been changed
7374 Return(Or(Local0, 0x2300))
7378 // The next element of DEST should be unchanged
7380 Store (DerefOf (Index (DEST, 7)), Local0)
7382 If (LNotEqual (Local0, 0x74)) // 't'
7384 // DEST has been changed
7385 Return(Or(Local0, 0x2400))
7389 // Verify DEST elements beyond end of SRCB buffer copy
7390 // have not been changed
7391 Store (DerefOf (Index (DEST, 14)), Local0)
7393 If (LNotEqual (Local0, 0x66)) // 'f'
7395 // DEST has been changed
7396 Return(Or(Local0, 0x2400))
7403 // This test shows that MS ACPI.SYS stores only the lower 8-bits of a 32-bit
7404 // number into the index'ed buffer
7406 Method (TSTH,, Serialized)
7408 // Create a Destination Buffer
7409 Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7411 // Store a number > UINT8 into an index of the buffer
7412 Store (0x12345678, Index(DBUF, 2))
7414 // Check the results
7415 Store (DerefOf (Index (DBUF, 2)), Local0)
7416 If (LNotEqual (Local0, 0x78)) // 0x78
7418 Return(Or(Local0, 0x3000))
7421 Store (DerefOf (Index (DBUF, 3)), Local0)
7422 If (LNotEqual (Local0, 0x64)) // 'd'
7424 Return(Or(Local0, 0x3100))
7427 Store (DerefOf (Index (DBUF, 4)), Local0)
7428 If (LNotEqual (Local0, 0x65)) // 'e'
7430 Return(Or(Local0, 0x3200))
7433 Store (DerefOf (Index (DBUF, 5)), Local0)
7434 If (LNotEqual (Local0, 0x66)) // 'f'
7436 Return(Or(Local0, 0x3300))
7442 Method (TSTI,, Serialized)
7444 // Create a Destination Buffer
7445 Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7447 // Store a String into an index of the buffer
7448 Store ("ABCDEFGH", Index(DBUF, 2))
7450 // Check the results
7451 Store (DerefOf (Index (DBUF, 2)), Local0)
7452 If (LNotEqual (Local0, 0x48)) // 'H'
7454 Return(Or(Local0, 0x4000))
7457 Store (DerefOf (Index (DBUF, 3)), Local0)
7458 If (LNotEqual (Local0, 0x64)) // 'd'
7460 Return(Or(Local0, 0x4100))
7463 Store (DerefOf (Index (DBUF, 4)), Local0)
7464 If (LNotEqual (Local0, 0x65)) // 'e'
7466 Return(Or(Local0, 0x4200))
7469 Store (DerefOf (Index (DBUF, 5)), Local0)
7470 If (LNotEqual (Local0, 0x66)) // 'f'
7472 Return(Or(Local0, 0x4300))
7478 Method(TSTJ,, Serialized)
7480 // Create a Destination Buffer
7481 Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7483 // Store a number > UINT8 into an index of the buffer
7484 Store (0x1234, Index(DBUF, 2))
7486 // Check the results
7487 Store (DerefOf (Index (DBUF, 2)), Local0)
7488 If (LNotEqual (Local0, 0x34)) // 0x34
7490 Return(Or(Local0, 0x3000))
7493 Store (DerefOf (Index (DBUF, 3)), Local0)
7494 If (LNotEqual (Local0, 0x64)) // 'd'
7496 Return(Or(Local0, 0x3100))
7499 Store (DerefOf (Index (DBUF, 4)), Local0)
7500 If (LNotEqual (Local0, 0x65)) // 'e'
7502 Return(Or(Local0, 0x3200))
7505 Store (DerefOf (Index (DBUF, 5)), Local0)
7506 If (LNotEqual (Local0, 0x66)) // 'f'
7508 Return(Or(Local0, 0x3300))
7514 Method(TSTK,, Serialized)
7516 // Create a Destination Buffer
7517 Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7519 // Store a number > UINT8 into an index of the buffer
7520 Store (0x123456, Index(DBUF, 2))
7522 // Check the results
7523 Store (DerefOf (Index (DBUF, 2)), Local0)
7524 If (LNotEqual (Local0, 0x56)) // 0x56
7526 Return(Or(Local0, 0x3000))
7529 Store (DerefOf (Index (DBUF, 3)), Local0)
7530 If (LNotEqual (Local0, 0x64)) // 'd'
7532 Return(Or(Local0, 0x3100))
7535 Store (DerefOf (Index (DBUF, 4)), Local0)
7536 If (LNotEqual (Local0, 0x65)) // 'e'
7538 Return(Or(Local0, 0x3200))
7541 Store (DerefOf (Index (DBUF, 5)), Local0)
7542 If (LNotEqual (Local0, 0x66)) // 'f'
7544 Return(Or(Local0, 0x3300))
7550 Method(TSTL,, Serialized)
7552 // Create a Destination Buffer
7553 Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7555 // Store a number > UINT8 into an index of the buffer
7556 Store (0x12, Index(DBUF, 2))
7558 // Check the results
7559 Store (DerefOf (Index (DBUF, 2)), Local0)
7560 If (LNotEqual (Local0, 0x12)) // 0x12
7562 Return(Or(Local0, 0x3000))
7565 Store (DerefOf (Index (DBUF, 3)), Local0)
7566 If (LNotEqual (Local0, 0x64)) // 'd'
7568 Return(Or(Local0, 0x3100))
7571 Store (DerefOf (Index (DBUF, 4)), Local0)
7572 If (LNotEqual (Local0, 0x65)) // 'e'
7574 Return(Or(Local0, 0x3200))
7577 Store (DerefOf (Index (DBUF, 5)), Local0)
7578 If (LNotEqual (Local0, 0x66)) // 'f'
7580 Return(Or(Local0, 0x3300))
7588 Store ("++++++++ IndexOp7 Test", Debug)
7590 Store(TST1(), Local0)
7591 if (LGreater (Local0, 0))
7596 Store(TST2(), Local0)
7597 if (LGreater (Local0, 0))
7602 Store(TST3(), Local0)
7603 if (LGreater (Local0, 0))
7608 Store(TST4(), Local0)
7609 if (LGreater (Local0, 0))
7614 Store(TST5(), Local0)
7615 if (LGreater (Local0, 0))
7620 Store(TST6(), Local0)
7621 if (LGreater (Local0, 0))
7626 Store(TST7(), Local0)
7627 if (LGreater (Local0, 0))
7632 Store(TST8(), Local0)
7633 if (LGreater (Local0, 0))
7638 Store(TST9(), Local0)
7639 if (LGreater (Local0, 0))
7644 Store(TSTA(), Local0)
7645 if (LGreater (Local0, 0))
7650 Store(TSTB(), Local0)
7651 if (LGreater (Local0, 0))
7656 Store(TSTC(), Local0)
7657 if (LGreater (Local0, 0))
7662 Store(TSTD(), Local0)
7663 if (LGreater (Local0, 0))
7668 Store(TSTE(), Local0)
7669 if (LGreater (Local0, 0))
7674 /* No longer ACPI compliant */
7676 Store(TSTF(), Local0)
7677 if (LGreater (Local0, 0))
7683 Store(TSTG(), Local0)
7684 if (LGreater (Local0, 0))
7689 Store(TSTH(), Local0)
7690 if (LGreater (Local0, 0))
7695 /* No longer ACPI compliant */
7697 Store(TSTI(), Local0)
7698 if (LGreater (Local0, 0))
7703 Store(TSTJ(), Local0)
7704 if (LGreater (Local0, 0))
7709 Store(TSTK(), Local0)
7710 if (LGreater (Local0, 0))
7715 Store(TSTL(), Local0)
7716 if (LGreater (Local0, 0))
7730 // MatchOp test cases that utilize nested DerefOf(Index(...)) to validate
7731 // MatchOp, DerefOfOp, and IndexOp of nested packages.
7736 Method (TEST,, Serialized)
7738 Store ("++++++++ MatchOp Test", Debug)
7740 Name (TIM0, Package ()
7742 Package () {0x78, 0xB4, 0xF0, 0x0384},
7743 Package () {0x23, 0x21, 0x10, 0},
7744 Package () {0x0B, 9, 4, 0},
7745 Package () {0x70, 0x49, 0x36, 0x27, 0x19},
7746 Package () {0, 1, 2, 1, 2},
7747 Package () {0, 0, 0, 1, 1},
7748 Package () {4, 3, 2, 0},
7749 Package () {2, 1, 0, 0}
7752 Name (TMD0, Buffer (20) {0xFF, 0xFF, 0xFF, 0xFF })
7753 CreateDWordField (TMD0, 0, PIO0) // 0xFFFFFFFF
7754 CreateDWordField (TMD0, 4, DMA0)
7755 CreateDWordField (TMD0, 8, PIO1)
7756 CreateDWordField (TMD0, 12, DMA1)
7757 CreateDWordField (TMD0, 16, CHNF)
7760 // validate PIO0 value
7761 Store (PIO0, Local3)
7763 // save Local3 object type value into Local2
7764 Store (ObjectType (Local3), Local2)
7766 // validate Local3 is a Number
7767 If (LNotEqual (Local2, 1)) // Number type is 1
7768 { Return (2) } // failure
7770 // validate Local3 Number value
7771 If (LNotEqual (Local3, 0xFFFFFFFF)) // Number value 0xFFFFFFFF
7772 { Return (3) } // failure
7774 Store ("DWordField PASS", Debug)
7778 Store (Match (DerefOf (Index (TIM0, 1, )), MLE, Local5, MTR, 0, 0), Local6)
7780 // save Local6 object type value into Local2
7781 Store (ObjectType (Local6), Local2)
7783 // validate Local6 is a Number
7784 If (LNotEqual (Local2, 1)) // Number type is 1
7785 { Return (4) } // failure
7787 Store ("Match(DerefOf(Index(TIM0,1)),... PASS", Debug)
7790 // validate following produces a nested package to validate
7791 // that MatchOp did not corrupt SearchPackage (TIM0)
7792 Store (DerefOf (Index (TIM0, 1, )), Local4)
7794 // save Local4 object type value into Local2
7795 Store (ObjectType (Local4), Local2)
7797 // validate Local4 is a Package
7798 If (LNotEqual (Local2, 4)) // Package type is 4
7799 { Return (5) } // failure
7801 Store ("DerefOf(Index(TIM0,1)),... PASS", Debug)
7804 And (Match (DerefOf (Index (TIM0, 0, )), MGE, PIO0, MTR, 0, 0), 3, Local0)
7806 // save Local0 object type value into Local2
7807 Store (ObjectType (Local0), Local2)
7809 // validate Local0 is a Number
7810 If (LNotEqual (Local2, 1)) // Number type is 1
7811 { Return (6) } // failure
7813 // validate Local0 Number value
7814 If (LNotEqual (Local0, 3)) // Number value 3
7815 { Return (7) } // failure
7817 Store ("And(Match(DerefOf(Index(TIM0,0)),... PASS", Debug)
7820 // again, validate following produces a nested package
7821 Store (DerefOf (Index (TIM0, 1, )), Local4)
7823 // save Local4 object type value into Local2
7824 Store (ObjectType (Local4), Local2)
7826 // validate Local4 is a Package
7827 If (LNotEqual (Local2, 4)) // Package type is 4
7828 { Return (8) } // failure
7830 Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7833 // again, validate following produces a nested package
7834 Store (DerefOf (Index (TIM0, 1, )), Local4)
7836 // save Local4 object type value into Local2
7837 Store (ObjectType (Local4), Local2)
7839 // validate Local4 is a Package
7840 If (LNotEqual (Local2, 4)) // Package type is 4
7841 { Return (9) } // failure
7843 Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7846 // test nested DerefOf(Index) operators
7847 Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
7849 // save Local1 object type value into Local2
7850 Store (ObjectType (Local1), Local2)
7852 // validate Local1 is a Number
7853 If (LNotEqual (Local2, 1)) // Number type is 1
7854 { Return (10) } // failure
7856 // zero indicates pass, non-zero is an error code
7857 If (LNotEqual (Local1, 0))
7858 { Return (11) } // failure
7860 Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS", Debug)
7863 // again, validate following produces a nested package
7864 Store (DerefOf (Index (TIM0, 1, )), Local4)
7866 // save Local4 object type value into Local2
7867 Store (ObjectType (Local4), Local2)
7869 // validate Local4 is a Package
7870 If (LNotEqual (Local2, 4)) // Package type is 4
7871 { Return (12) } // failure
7873 Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7876 // retest nested DerefOf(Index) operators
7877 Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
7879 // save Local1 object type value into Local2
7880 Store (ObjectType (Local1), Local2)
7882 // validate Local1 is a Number
7883 If (LNotEqual (Local2, 1)) // Number type is 1
7884 { Return (13) } // failure
7886 // zero indicates pass, non-zero is an error code
7887 If (LNotEqual (Local1, 0))
7888 { Return (14) } // failure
7890 Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS again", Debug)
7893 // again, validate following produces a nested package
7894 Store (DerefOf (Index (TIM0, 1, )), Local4)
7896 // save Local4 object type value into Local2
7897 Store (ObjectType (Local4), Local2)
7899 // validate Local4 is a Package
7900 If (LNotEqual (Local2, 4)) // Package type is 4
7901 { Return (15) } // failure
7903 Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7911 // test WhileBrk.asl
7913 // This code tests the Break term and While term
7915 // Syntax of Break term
7916 // BreakTerm := Break
7917 // The break operation causes the current package execution to complete.
7919 // Syntax of While Term
7920 // WhileTerm := While(
7921 // Predicate //TermArg=>Integer
7923 // Predicate is evaluated as an integer.
7924 // If the integer is non-zero, the list of terms in TermList is executed.
7925 // The operation repeats until the Predicate evaluates to zero.
7927 // MTL NOTE: This test has been modified to reflect ACPI 2.0 break
7928 // NOTE: This test, when run under the MS ACPI.SYS grinds the system to
7938 // Check Break statement nested in If nested in While nested in
7939 // While only exits inner-most While loop
7942 While (LLess (CNT0, 4))
7945 While (LLess (CNT1, 10))
7947 if (LEqual (CNT1, 1))
7949 Break // exit encompassing loop
7955 If (LNotEqual (CNT1, 1))
7964 // Verify Break only exited inner-most While loop
7966 If (LNotEqual (CNT0, 4))
7972 Store ("While/While/If/Break PASS", Debug)
7974 Store ("++++++++ WhileBrk Test", Debug)
7976 // Check Break statement nested in While
7979 While (LLess (CNT0, 10))
7981 Break // exit encompassing package
7985 If (LNotEqual (CNT0, 0)) // instruction after Break executed
7994 While (LLess (CNT0, 10))
7999 // Check if the while loop was executed until the condition is satisfied.
8000 If (LNotEqual (CNT0, 10))
8006 // While loop in a reverse order
8007 While (LGreater (CNT0, 0))
8012 // Check if the while loop was executed until the condition is satisfied.
8013 If (LNotEqual (CNT0, 0))
8019 Store ("While/Break PASS", Debug)
8022 // Check Break statement nested in If nested in While
8025 While (LLess (CNT0, 10))
8027 if (LEqual (CNT0, 5))
8029 Break // exit encompassing Package (If)
8031 // if we execute the next instruction,
8032 // Break did not exit the loop
8033 Store (20, CNT0) // exit While loop with value larger
8037 Increment (CNT0) // check if Break exited both If and While
8040 If (LGreater (CNT0, 19))
8041 { // instruction after Break inside IfOp executed
8046 // Break will exit out of the while loop, therefore
8047 // the CNT0 counter should still Increment until 5
8049 If (LNotEqual (CNT0, 5))
8050 { // instruction after Break inside WhileOp executed
8053 Store ("While/If/Break PASS", Debug)
8056 // All the conditions passed
8063 // test IndexOp2.asl
8065 // Additional IndexOp test cases to support ACPICMB (control method battery
8066 // test) on Toshiba Portege 7020CT. Test cases include appropriate bit
8067 // shifting of Field elements and reading Field elements greater than 64 bits.
8069 // MTL NOTE: This test has been modified slightly from the original test
8070 // to take into account ACPI specification limitations.
8072 Scope (\_SB) // System Bus
8077 Name (_HID, 0x010CD041)
8080 OperationRegion (SMEM, SystemMemory, 0x800000, 0x100)
8081 Field (SMEM, AnyAcc, NoLock, Preserve)
8082 { // Field: SMEM overlay using 32-bit field elements
8083 SMD0, 32, // 32-bits
8084 SMD1, 32, // 32-bits
8085 SMD2, 32, // 32-bits
8087 } // Field: SMEM overlay using 32-bit field elements
8088 Field (SMEM, AnyAcc, NoLock, Preserve)
8089 { // Field: SMEM overlay using greater than 32-bit field elements
8090 SME0, 69, // larger than an integer (32 or 64)
8091 SME1, 97 // larger than an integer
8092 } // Field: SMEM overlay using greater than 32-bit field elements
8094 OperationRegion (SRAM, SystemMemory, 0x100B0000, 0xF000)
8095 Field (SRAM, AnyAcc, NoLock, Preserve)
8096 { // Field: SRAM overlay
8253 } // Field: SRAM overlay
8258 Name (_HID, EISAID ("PNP0C0A")) // Control Method Battey ID
8260 Name (_PCL, Package (1) {\_SB})
8265 { Return (0x1F) } // battery present
8267 { Return (0x0F) } // battery not present
8270 Method (_BIF,, Serialized)
8272 Name (BUFR, Package (13) {})
8274 Store (\_SB.MEM.BPU1, Index (BUFR, 0))
8275 Store (\_SB.MEM.BDC1, Index (BUFR, 1))
8276 Store (\_SB.MEM.BLF1, Index (BUFR, 2))
8277 Store (\_SB.MEM.BTC1, Index (BUFR, 3))
8278 Store (\_SB.MEM.BDV1, Index (BUFR, 4))
8279 Store (\_SB.MEM.BCW1, Index (BUFR, 5))
8280 Store (\_SB.MEM.BCL1, Index (BUFR, 6))
8281 Store (\_SB.MEM.BG11, Index (BUFR, 7))
8282 Store (\_SB.MEM.BG21, Index (BUFR, 8))
8283 Store (\_SB.MEM.BMN1, Index (BUFR, 9))
8284 Store (\_SB.MEM.BSN1, Index (BUFR, 10))
8285 Store (\_SB.MEM.BTP1, Index (BUFR, 11))
8286 Store (\_SB.MEM.BOI1, Index (BUFR, 12))
8294 Method (B2IB,, Serialized)
8295 { // B2IB: store from Buffer into Index'ed Buffer
8297 Name (SRCB, Buffer () {"Short Buffer"}) // 12 characters plus NULL
8299 Name (DEST, Buffer () // 62 characters plus NULL
8300 {"Destination buffer that is longer than the short source buffer"})
8303 // verify object type returned by Index(Buffer,Element,)
8305 Store (Index (DEST, 2, ), Local1)
8306 Store (ObjectType (Local1), Local2)
8308 If (LNotEqual (Local2, 14)) // Buffer Field is type 14
8310 // Local2 indicates Local1 is not a Buffer Field
8315 // verify object type and value returned by DerefOf(Index(Buffer,Element,))
8316 // should return Number containing element value
8318 Store (DerefOf (Local1), Local3)
8319 Store (ObjectType (Local3), Local4)
8321 If (LNotEqual (Local4, 1)) // Number is type 1
8323 // Local2 indicates Local1 is not a Number
8328 If (LNotEqual (Local3, 0x73)) // expect 's' element from DEST
8334 Store ("DerefOf(Index(Buffer,,)) PASS", Debug)
8338 // The following sections have been rewritten because storing into
8339 // an Indexed buffer only changes one byte - the FIRST byte of the
8340 // buffer is written to the source index. This is the ONLY byte
8341 // written -- as per ACPI 2.0
8343 // Overwrite DEST contents, at buffer position 2 [only]
8345 Store (SRCB, Index (DEST, 2, ))
8348 // Check that the next byte is not changed
8350 Store (DerefOf (Index (DEST, 3, )), Local0)
8351 If (LNotEqual (Local0, 0x74)) // 't'
8353 // DEST element is not matching original value
8354 If (LEqual (Local0, 0x68))
8356 // DEST element was altered to 'h'
8361 // DEST element is an unknown value
8367 // Check that the elements beyond the SRCB buffer copy
8368 // have not been altered.
8370 Store (DerefOf (Index (DEST, 14)), Local0)
8373 // This should be an 'f'.
8375 If (LNotEqual (Local0, 0x66))
8377 // DEST element was zero'd by buffer copy
8378 If (LEqual (Local0, 0))
8380 // DEST element is zero
8385 // DEST element is unknown value
8390 Store ("Store(SRCB,Index(Buffer,,)) PASS", Debug)
8393 // verify altering SRCB does NOT alter DEST
8395 Store (0x6A, Index (SRCB, 1)) // SRCB = "Sjort Buffer"
8397 Store (DerefOf (Index (SRCB, 1)), Local0)
8399 If (LNotEqual (Local0, 0x6A)) // 'j'
8401 // SRCB element is unaltered
8405 Store (DerefOf (Index (DEST, 3)), Local0) // DEST = "Destination buffer that...
8407 If (LNotEqual (Local0, 0x74)) // 't'
8409 // DEST element is altered
8410 If (LEqual (Local0, 0x6A)) // 'j'
8412 // SRCB change altered DEST element
8417 // DEST element is unknown value
8422 // verify altering DEST does NOT alter SRCB
8424 Store (0x6B, Index (DEST, 4, )) // DEST = "DeSkination buffer..."
8426 Store (DerefOf (Index (DEST, 4, )), Local0)
8428 If (LNotEqual (Local0, 0x6B)) // 'k'
8430 // DEST element is unaltered
8434 Store (DerefOf (Index (SRCB, 2, )), Local0)
8436 If (LNotEqual (Local0, 0x6F)) // 'o'
8437 { // SRC element is altered
8438 If (LEqual (Local0, 0x6B)) // 'k'
8440 // DEST change altered SRCB element
8445 // SRCB element is unknown value
8450 Store ("SRCB and DEST independent PASS", Debug)
8453 // verify string can be written to Index target/destination
8454 // Only FIRST byte is written
8456 Store ("New Buff", Index (DEST, 2, )) // DEST = "DeNkination buffer..."
8458 Store (DerefOf (Index (DEST, 2, )), Local0)
8460 If (LNotEqual (Local0, 0x4E)) // 'N'
8462 // DEST element is unaltered
8466 Store (DerefOf (Index (DEST, 6, )), Local0)
8468 If (LNotEqual (Local0, 0x61)) // 'a'
8470 // DEST element is unaltered
8474 Store (DerefOf (Index (DEST, 10, )), Local0)
8476 If (LNotEqual (Local0, 0x6E)) // 'n'
8478 // DEST element is unaltered
8482 Store ("Store(String,Index) PASS", Debug)
8486 } // B2IB: store from Buffer into Index'ed Buffer
8488 Method (FB2P,, Serialized)
8489 { // FB2P: store from Field Buffer into Index'ed Package
8490 Name (DEST, Package (2) {})
8492 // initialize memory using 32-bit field elements
8493 Store (0x01234567, \_SB.MEM.SMD0)
8494 Store (0x89ABCDEF, \_SB.MEM.SMD1)
8495 Store (0xFEDCBA98, \_SB.MEM.SMD2)
8496 Store (0x76543210, \_SB.MEM.SMD3)
8498 // move greater than 64-bit buffers into DEST package
8499 Store (\_SB.MEM.SME0, Index (DEST, 0))
8500 Store (\_SB.MEM.SME1, Index (DEST, 1))
8502 // validate DEST contents
8503 Store (DerefOf (Index (DEST, 0, )), Local0)
8504 Store (DerefOf (Index (DEST, 1, )), Local1)
8506 // verify Local0 and Local1 are Buffers
8507 Store (ObjectType (Local0), Local2)
8508 if (LNotEqual (Local2, 3)) // Buffer type is 3
8513 Store (ObjectType (Local1), Local3)
8514 if (LNotEqual (Local3, 3)) // Buffer type is 3
8519 // validate DEST buffer contents
8520 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 0)), Local4)
8521 If (LNotEqual (Local4, 0x67))
8526 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 1)), Local4)
8527 If (LNotEqual (Local4, 0x45))
8532 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 4)), Local4)
8533 If (LNotEqual (Local4, 0xEF))
8538 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 5, )), Local4)
8539 If (LNotEqual (Local4, 0xCD))
8544 Store ("Store(Mem,PkgElement) PASS", Debug)
8547 // validate changing source \_SB.MEM.SMD* does not impact DEST
8548 Store (0x12345678, \_SB.MEM.SMD0)
8550 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 0, )), Local5)
8551 If (LNotEqual (Local5, 0x67))
8556 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 1, )), Local5)
8557 If (LNotEqual (Local5, 0x45))
8562 // validate changing DEST does not impact source \_SB.MEM.SMD*
8563 Store (0x30, Index (DerefOf (Index (DEST, 0)), 0))
8565 Store (DerefOf(Index (DerefOf (Index (DEST, 0)), 0)), Local5)
8566 If (LNotEqual (Local5, 0x30))
8572 // This section was modified from the original iPCO code because
8573 // it attempted to compare two buffers. This is not allowed until
8574 // ACPI v2.0, so the test has been modified to just check the
8575 // changed \_SB.MEM.SMD0
8577 Store (\_SB.MEM.SMD0, Local5)
8579 If(LNotEqual(Local5, 0x12345678))
8584 Store ("Mem and Pkg independent PASS", Debug)
8588 } // FB2P: store from Field Buffer into Index'ed Package
8592 Store ("++++++++ IndexOp2 Test", Debug)
8594 // store _BIF package return value into Local0
8596 Store (\_SB.BAT1._BIF, Local0)
8598 // save Local0 object type value into Local1
8599 Store (ObjectType (Local0), Local1)
8601 // validate Local0 is a Package
8602 If (LNotEqual (Local1, 4)) // Package type is 4
8608 // validate source and destination buffers are independent of each
8609 // of each other (i.e., changing one's contents does not change
8610 // other's contents) using B2IB (store from Buffer into Index'ed
8611 // Buffer) and FB2P (store from Field Buffer into Index'ed Package)
8613 // call B2IB (store from Buffer into Index'ed Buffer)
8614 Store (B2IB, Local2) // Local2 is B2IB return value
8616 // save Local2 object type value into Local3
8617 Store (ObjectType (Local2), Local3)
8619 // validate Local2 is a Number
8620 If (LNotEqual (Local3, 1)) // Number type is 1
8626 // zero indicates pass, non-zero is an error code
8627 If (LNotEqual (Local2, 0))
8629 // return B2IB error code
8633 // call FB2P (store from Field Buffer into Index'ed Package)
8634 Store (FB2P, Local2) // Local2 is FB2P return value
8636 // save Local2 object type value into Local3
8637 Store (ObjectType (Local2), Local3)
8639 // validate Local2 is a Number
8640 If (LNotEqual (Local3, 1)) // Number type is 1
8646 // zero indicates pass, non-zero is an error code
8647 If (LNotEqual (Local2, 0))
8649 // return FB2P error code
8656 } // IDX2: Test device name
8663 // test cases include following SizeOf arguments:
8664 // buffer, buffer field;
8665 // control method argument, control method local variable;
8666 // control method return values;
8667 // direct string, string;
8669 // buffer, package, and string package elements
8671 // MTL NOTE: This test has been modified to remove any SizeOf(Index(Buff,...
8672 // calls because it is not legal to perform a SizeOf operation on a Buffer Field.
8673 // This test has also been extended to test additional Package element sizes.
8677 // SAR0 control method validates SizeOf(Arg)
8678 // SAR0 should only be called by SARG
8680 // Arg0 object to determine size of
8681 // Arg1 expected Arg length
8682 { // SAR0: SizeOf(Arg) test control method
8683 // Local0 Arg0 length
8684 // Local1 Local0 object type
8686 // Store first string size (Arg0) into Local7
8687 Store (SizeOf (Arg0), Local0)
8689 // save Local0 object type value into Local1
8690 Store (ObjectType (Local0), Local1)
8692 // validate Local0 is a Number
8693 If (LNotEqual (Local1, 1)) // Number type is 1
8696 // If strings are not of equal size, return error code
8697 If (LNotEqual (Local0, Arg1))
8701 } // SAR0: SizeOf(Arg) test control method
8703 Method (SARG,, Serialized)
8704 { // SARG: SizeOf(Arg) test control method
8705 Name (BUFR, Buffer (12) {}) // uninitialized Buffer
8706 Name (BUF1, Buffer() {0x01, 0x02, 0x03, 0x04, 0x05})
8707 Name (PKG0, Package (4) {}) // uninitialized Package
8708 Name (STR0, "String")
8709 Name (PKG1, Package (4)
8717 Name (PKG2, Package (4)
8724 // Namespace entry buffer reference
8725 Store (SAR0 (BUFR, 12), Local0)
8727 // save Local0 object type value into Local1
8728 Store (ObjectType (Local0), Local1)
8730 // validate Local0 is a Number
8731 If (LNotEqual (Local1, 1)) // Number type is 1
8736 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8741 Store ("SizeOf(Arg=BUFR) PASS", Debug)
8744 // Namespace entry package reference
8745 Store (SAR0 (PKG0, 4), Local0)
8747 // save Local0 object type value into Local1
8748 Store (ObjectType (Local0), Local1)
8750 // validate Local0 is a Number
8751 If (LNotEqual (Local1, 1)) // Number type is 1
8756 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8761 Store ("SizeOf(Arg=PKG0) PASS", Debug)
8764 // Namespace entry string reference
8765 Store (SAR0 (STR0, 6), Local0)
8767 // save Local0 object type value into Local1
8768 Store (ObjectType (Local0), Local1)
8770 // validate Local0 is a Number
8771 If (LNotEqual (Local1, 1)) // Number type is 1
8776 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8781 Store ("SizeOf(Arg=STR0) PASS", Debug)
8784 // direct string reference
8785 Store (SAR0 ("String", 6), Local0)
8787 // save Local0 object type value into Local1
8788 Store (ObjectType (Local0), Local1)
8790 // validate Local0 is a Number
8791 If (LNotEqual (Local1, 1)) // Number type is 1
8796 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8801 Store ("SizeOf(Arg=String) PASS", Debug)
8803 Store (0x55, Index (BUF1, 2))
8805 /****************************************************
8807 // This section is commented because it is illegal to
8808 // perform a SizeOf operation on a Buffer Field
8810 // Namespace BufferField reference
8811 Store (SAR0 (Index (BUFR, 2, ), 10), Local0)
8813 // save Local0 object type value into Local1
8814 Store (ObjectType (Local0), Local1)
8816 // validate Local0 is a Number
8817 If (LNotEqual (Local1, 1)) // Number type is 1
8820 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8823 Store ("SizeOf(Arg=BufferField) PASS", Debug)
8824 ****************************************************/
8826 // Namespace BufferPackageElement reference
8828 Store (SAR0 (Index(PKG1, 0), 12), Local0)
8830 // save Local0 object type value into Local1
8831 Store (ObjectType (Local0), Local1)
8833 // validate Local0 is a Number
8834 If (LNotEqual (Local1, 1)) // Number type is 1
8839 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8844 Store ("SizeOf(Arg=PackageBuffer NTE Reference Element) PASS", Debug)
8847 // Namespace StringPackageElement reference
8848 Store (SAR0 (Index (PKG1, 1, ), 7), Local0)
8850 // save Local0 object type value into Local1
8851 Store (ObjectType (Local0), Local1)
8853 // validate Local0 is a Number
8854 If (LNotEqual (Local1, 1)) // Number type is 1
8859 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8864 Store ("SizeOf(Arg=Package String Element) PASS", Debug)
8867 // Namespace StringPackageElement reference
8868 Store (SAR0 (Index (PKG1, 2, ), 6), Local0)
8870 // save Local0 object type value into Local1
8871 Store (ObjectType (Local0), Local1)
8873 // validate Local0 is a Number
8874 If (LNotEqual (Local1, 1)) // Number type is 1
8879 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8884 Store ("SizeOf(Arg=Package String NTE Reference Element) PASS", Debug)
8887 // Namespace PackagePackageElement reference
8888 Store (SAR0 (Index (PKG1, 3, ), 4), Local0)
8890 // save Local0 object type value into Local1
8891 Store (ObjectType (Local0), Local1)
8893 // validate Local0 is a Number
8894 If (LNotEqual (Local1, 1)) // Number type is 1
8899 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8904 Store ("SizeOf(Arg=Package Package NTE Reference Element) PASS", Debug)
8906 // Package Buffer Element
8907 Store (SAR0 (Index (PKG2, 0), 15), Local0)
8909 // save Local0 object type value into Local1
8910 Store (ObjectType (Local0), Local1)
8912 // validate Local0 is a Number
8913 If (LNotEqual (Local1, 1)) // Number type is 1
8918 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8923 Store ("SizeOf(Arg=Package Buffer Element) PASS", Debug)
8925 // Package String Element
8926 Store (SAR0 (Index (PKG2, 1), 8), Local0)
8928 // save Local0 object type value into Local1
8929 Store (ObjectType (Local0), Local1)
8931 // validate Local0 is a Number
8932 If (LNotEqual (Local1, 1)) // Number type is 1
8937 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8942 Store ("SizeOf(Arg=Package String Element) PASS", Debug)
8944 // Package Package Element
8945 Store (SAR0 (Index (PKG2, 2), 2), Local0)
8947 // save Local0 object type value into Local1
8948 Store (ObjectType (Local0), Local1)
8950 // validate Local0 is a Number
8951 If (LNotEqual (Local1, 1)) // Number type is 1
8956 If (LNotEqual (Local0, 0)) // Local0 is SAR0 return error code
8961 Store ("SizeOf(Arg=Package Package Element) PASS", Debug)
8963 Store ("SizeOf(Arg) PASS", Debug)
8966 } // SARG: SizeOf(Arg) test control method
8968 Method (SBUF,, Serialized)
8969 { // SBUF: SizeOf(Buffer) test control method
8970 Name (BUFR, Buffer (12) {})
8972 // store size of BUFR buffer into Local0
8973 Store (SizeOf (BUFR), Local0)
8975 // save Local0 object type value into Local1
8976 Store (ObjectType (Local0), Local1)
8978 // validate Local0 is a Number
8979 If (LNotEqual (Local1, 1)) // Number type is 1
8984 If (LNotEqual (Local0, 12)) // BUFR size is 12
8989 Store ("SizeOf(BUFR) PASS", Debug)
8992 } // SBUF: SizeOf(Buffer) test control method
8995 /****************************************************
8997 // This section is commented because it is illegal to
8998 // perform a SizeOf operation on a Buffer Field
9001 { // SIND: SizeOf(Index(,,)) test control method
9002 Name (BUFR, Buffer (12) {})
9004 // store size of Index(BUFR,2,) buffer into Local0
9005 Store (SizeOf (Index (BUFR, 2, )), Local0)
9007 // save Local0 object type value into Local1
9008 Store (ObjectType (Local0), Local1)
9010 // validate Local0 is a Number
9011 If (LNotEqual (Local1, 1)) // Number type is 1
9016 If (LNotEqual (Local0, 10)) // 12 - 2 = 10
9021 Store ("SizeOf(Index(BUFR,,)) PASS", Debug)
9023 // TBD: strings and packages
9026 } // SIND: SizeOf(Index(,,)) test control method
9027 ****************************************************/
9029 Method (SLOC,, Serialized)
9030 { // SLOC: SizeOf(Local) test control method
9031 Name (BUFR, Buffer (12) {}) // uninitialized Buffer
9032 Name (STR0, "String")
9033 Name (PKG0, Package (4) {}) // uninitialized Package
9036 // store BUFR Buffer into Local2
9037 Store (BUFR, Local2)
9039 // store size of BUFR buffer into Local0
9040 Store (SizeOf (Local2), Local0)
9042 // save Local0 object type value into Local1
9043 Store (ObjectType (Local0), Local1)
9045 // validate Local0 is a Number
9046 If (LNotEqual (Local1, 1)) // Number type is 1
9051 If (LNotEqual (Local0, 12)) // BUFR size is 12
9056 Store ("SizeOf(Local2=Buffer) PASS", Debug)
9059 // store STR0 string into Local2
9060 Store (STR0, Local2)
9062 // store size of STR0 buffer into Local0
9063 Store (SizeOf (Local2), Local0)
9065 // save Local0 object type value into Local1
9066 Store (ObjectType (Local0), Local1)
9068 // validate Local0 is a Number
9069 If (LNotEqual (Local1, 1)) // Number type is 1
9074 If (LNotEqual (Local0, 6)) // STR0 size is 6
9079 Store ("SizeOf(Local2=String) PASS", Debug)
9082 // store PKG0 Package into Local2
9083 Store (PKG0, Local2)
9085 // store size of PKG0 buffer into Local0
9086 Store (SizeOf (Local2), Local0)
9088 // save Local0 object type value into Local1
9089 Store (ObjectType (Local0), Local1)
9091 // validate Local0 is a Number
9092 If (LNotEqual (Local1, 1)) // Number type is 1
9097 If (LNotEqual (Local0, 4)) // PKG0 size is 4
9102 Store ("SizeOf(Local2=Package) PASS", Debug)
9106 } // SLOC: SizeOf(Local) test control method
9110 Store ("++++++++ SizeOf Test", Debug)
9112 // Store current operating system string into Local0
9115 Store (SizeOf (_OS), Local3)
9117 // save Local3 object type value into Local4
9118 Store (ObjectType (Local3), Local4)
9120 // validate Local3 is a Number
9121 If (LNotEqual (Local4, 1)) // Number type is 1
9127 // Store current operating system string into Local0
9128 // This verifies above SizeOf(_OS) did not corrupt ACPI namespace
9131 // Store SARG [Validate SizeOf(Arg)] return value into Local1
9132 Store (SARG, Local1)
9134 // save Local1 object type value into Local2
9135 Store (ObjectType (Local1), Local2)
9137 // validate Local1 is a Number
9138 If (LNotEqual (Local2, 1)) // Number type is 1
9144 // zero indicates pass, non-zero is an error code
9145 If (LNotEqual (Local1, 0))
9147 // return SARG error code
9152 // Store SBUF [Validate SizeOf(Buffer)] return value into Local1
9153 Store (SBUF, Local1)
9155 // save Local1 object type value into Local2
9156 Store (ObjectType (Local1), Local2)
9158 // validate Local1 is a Number
9159 If (LNotEqual (Local2, 1)) // Number type is 1
9165 // zero indicates pass, non-zero is an error code
9166 If (LNotEqual (Local1, 0))
9168 // return SBUF error code
9172 /****************************************************
9174 // This section is commented because it is illegal to
9175 // perform a SizeOf operation on a Buffer Field
9177 // Store SIND [verify SizeOf(Index(,,))] return value into Local1
9178 Store (SIND, Local1)
9180 // save Local1 object type value into Local2
9181 Store (ObjectType (Local1), Local2)
9183 // validate Local1 is a Number
9184 If (LNotEqual (Local2, 1)) // Number type is 1
9190 // zero indicates pass, non-zero is an error code
9191 If (LNotEqual (Local1, 0))
9193 // return SARG error code
9196 ****************************************************/
9198 // Store SLOC [verify SizeOf(Local)] return value into Local1
9199 Store (SLOC, Local1)
9201 // save Local1 object type value into Local2
9202 Store (ObjectType (Local1), Local2)
9204 // validate Local1 is a Number
9205 If (LNotEqual (Local2, 1)) // Number type is 1
9211 // zero indicates pass, non-zero is an error code
9212 If (LNotEqual (Local1, 0))
9214 // return SLOC error code
9219 // TBD: SizeOf (METH) -- where METH control method returns
9220 // buffer, BufferField, string, package, package element
9228 // test SmiShare.asl
9230 Scope (\_SB) // System Bus
9232 // Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
9233 OperationRegion(RAM1, SystemMemory, 0x400000, 0xA)
9235 Field (RAM1, AnyAcc, NoLock, Preserve)
9237 BI1T, 1, // Create some bits in memory to access
9243 Field (RAM1, WordAcc, NoLock, WriteAsZeros)
9246 } // End 2nd Field RAM1
9248 Field (RAM1, ByteAcc, NoLock, WriteAsOnes)
9251 } // End 3rd Field RAM1
9253 Field (RAM1, ByteAcc, NoLock, Preserve)
9267 } // End _INI Method
9268 } // End Device MBIT
9275 } // End _INI Method
9276 } // End Device MWRD
9285 } // End _INI Method
9286 } // End Device MBYT
9289 // Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
9290 OperationRegion(\RAM1, SystemMemory, 0x400000, 0xA)
9292 Field (\RAM1, AnyAcc, NoLock, Preserve)
9294 BI1T, 1, // Create some bits in memory to access
9300 Field (\RAM1, WordAcc, NoLock, WriteAsZeros)
9303 } // End 2nd Field RAM1
9305 Field (\RAM1, ByteAcc, NoLock, WriteAsOnes)
9308 } // End 3rd Field RAM1
9310 Field (\RAM1, ByteAcc, NoLock, Preserve)
9323 Store (SMIX, Local0)
9325 Notify (\_SB_, 0x29)
9326 If (And (Local0, 0x01))
9327 { Notify (\_SB_.SMIS, 0x21)}
9329 If (And (Local0, 0x02))
9330 { Notify (\_SB_.SMIS, 0x22)}
9332 If (And (Local0, 0x04))
9333 { Notify (\_SB_.SMIS, 0x24)}
9335 If (And (Local0, 0x08))
9336 { Notify (\_SB_.SMIS, 0x28)}
9338 } // End Method EVNT
9343 Notify (\_TZ_.TZ1, 2)
9344 Notify (\_PR_.CPU0, 3)
9346 Notify (\_SB_, 0x81)
9347 Notify (\_TZ_.TZ1, 0x82)
9348 Notify (\_PR_.CPU0, 0x83)
9355 Store (0, Local0) // Zero out Local0
9357 If (LNotEqual (SMID, 0xD))
9358 { Or (0x80, Local0, Local0)}
9360 If (LNotEqual (SMIC, 0xC))
9361 { Or (0x40, Local0, Local0)}
9363 If (LNotEqual (BYTE, 0))
9364 { Or (0x20, Local0, Local0)}
9366 If (LNotEqual (WRD, 0))
9367 { Or (0x10, Local0, Local0)}
9369 If (LNotEqual (LST2, 0))
9370 { Or (0x8, Local0, Local0)}
9372 If (LNotEqual (BI3T, 0x7))
9373 { Or (0x4, Local0, Local0)}
9375 If (LNotEqual (BI2T, 0x3))
9376 { Or (0x2, Local0, Local0)}
9378 If (LNotEqual (BI1T, 0))
9379 { Or (0x1, Local0, Local0)}
9382 } // End Method BINK
9386 Store ("++++++++ SmiShare Test", Debug)
9388 // Expect EVNT to generate Notify value we just previously
9402 } // End Method TEST
9428 /* Test a very big buffer */
9430 Name(WQAB, Buffer(6756)
9432 0x46,0x4F,0x4D,0x42,0x01,0x00,0x00,0x00,
9433 0x54,0x1A,0x00,0x00,0xBA,0xAD,0x00,0x00,
9434 0x44,0x53,0x00,0x01,0x1A,0x7D,0xDA,0x54,
9435 0x98,0xBD,0x92,0x00,0x01,0x06,0x18,0x42,
9436 0x10,0x47,0x10,0x92,0x46,0x62,0x02,0x89,
9437 0x80,0x90,0x18,0x18,0x14,0x81,0x85,0x00,
9438 0x49,0x02,0x88,0xC4,0x41,0xE1,0x20,0xD4,
9439 0x9F,0x40,0x7E,0x05,0x20,0x74,0x28,0x40,
9440 0xA6,0x00,0x83,0x02,0x9C,0x22,0x88,0xA0,
9441 0x57,0x01,0x36,0x05,0x98,0x14,0x60,0x51,
9442 0x80,0x76,0x01,0x96,0x05,0xE8,0x16,0x20,
9443 0x1D,0x96,0x88,0x04,0x47,0x89,0x01,0x47,
9444 0xE9,0xC4,0x16,0x6E,0xD8,0xE0,0x85,0xA2,
9445 0x68,0x06,0x51,0x12,0x94,0x8B,0x20,0x5D,
9446 0x10,0x52,0x2E,0xC0,0x37,0x82,0x06,0x10,
9447 0xA5,0x77,0x01,0xB6,0x05,0x98,0x86,0x27,
9448 0xD2,0x20,0xE4,0x60,0x08,0x54,0xCE,0x80,
9449 0x20,0x69,0x44,0x21,0x1E,0xA7,0x44,0x08,
9450 0x0A,0x84,0x90,0xD4,0xF1,0xA0,0xA0,0x71,
9451 0x88,0xAD,0xCE,0x46,0x93,0xA9,0x74,0x7E,
9452 0x48,0x82,0x70,0xC6,0x2A,0x7E,0x3A,0x9A,
9453 0xD0,0xD9,0x9C,0x60,0xE7,0x18,0x72,0x3C,
9454 0x48,0xF4,0x20,0xB8,0x00,0x0F,0x1C,0x2C,
9455 0x34,0x84,0x22,0x6B,0x80,0xC1,0x8C,0xDD,
9456 0x63,0xB1,0x0B,0x4E,0x0A,0xEC,0x61,0xB3,
9457 0x01,0x19,0xA2,0x24,0x38,0xD4,0x11,0xC0,
9458 0x12,0x05,0x98,0x1F,0x87,0x0C,0x0F,0x95,
9459 0x8C,0x25,0x24,0x1B,0xAB,0x87,0xC2,0xA5,
9460 0x40,0x68,0x6C,0x27,0xED,0x19,0x45,0x2C,
9461 0x79,0x4A,0x82,0x49,0xE0,0x51,0x44,0x36,
9462 0x1A,0x27,0x28,0x1B,0x1A,0x25,0x03,0x42,
9463 0x9E,0x05,0x58,0x07,0x26,0x04,0x76,0x2F,
9464 0xC0,0x9A,0x00,0x73,0xB3,0x90,0xB1,0xB9,
9465 0xE8,0xFF,0x0F,0x71,0xB0,0x31,0xDA,0x9A,
9466 0xAE,0x90,0xC2,0xC4,0x88,0x12,0x2C,0x5E,
9467 0xC5,0xC3,0x10,0xCA,0x93,0x42,0xA8,0x48,
9468 0x95,0xA1,0x68,0xB4,0x51,0x2A,0x14,0xE0,
9469 0x4C,0x80,0x30,0x5C,0x1D,0x03,0x82,0x46,
9470 0x88,0x15,0x29,0x56,0xFB,0x83,0x20,0xF1,
9471 0x2D,0x40,0x54,0x01,0xA2,0x48,0xA3,0x41,
9472 0x9D,0x03,0x3C,0x5C,0x0F,0xF5,0xF0,0x3D,
9473 0xF6,0x93,0x0C,0x72,0x90,0x67,0xF1,0xA8,
9474 0x70,0x9C,0x06,0x49,0xE0,0x0B,0x80,0x4F,
9475 0x08,0x1E,0x38,0xDE,0x35,0xA0,0x66,0x7C,
9476 0xBC,0x4C,0x10,0x1C,0x6A,0x88,0x1E,0x68,
9477 0xB8,0x13,0x38,0x44,0x06,0xE8,0x49,0x3D,
9478 0x52,0x60,0x07,0x77,0x32,0xEF,0x01,0xAF,
9479 0x0A,0xCD,0x5E,0x12,0x08,0xC1,0xF1,0xF8,
9480 0x7E,0xC0,0x26,0x9C,0xC0,0xF2,0x07,0x81,
9481 0x1A,0x99,0xA1,0x3D,0xCA,0xD3,0x8A,0x19,
9482 0xF2,0x31,0xC1,0x04,0x16,0x0B,0x21,0x05,
9483 0x10,0x1A,0x0F,0xF8,0x6F,0x00,0x8F,0x17,
9484 0xBE,0x12,0xC4,0xF6,0x80,0x12,0x0C,0x0B,
9485 0x21,0x23,0xAB,0xF0,0x78,0xE8,0x28,0x7C,
9486 0x95,0x38,0x9C,0xD3,0x8A,0x67,0x82,0xE1,
9487 0x20,0xF4,0x05,0x90,0x00,0x51,0xE7,0x0C,
9488 0xD4,0x61,0xC1,0xE7,0x04,0x76,0x33,0x38,
9489 0x83,0x47,0x00,0x8F,0xE4,0x84,0xFC,0x2B,
9490 0xF1,0xC0,0xE0,0x03,0xE2,0xEF,0x1F,0xA7,
9491 0xEC,0x11,0x9C,0xA9,0x01,0x7D,0x1C,0xF0,
9492 0xFF,0x7F,0x28,0x7C,0x88,0x1E,0xDF,0x29,
9493 0x1F,0xAF,0x4F,0x17,0x96,0x35,0x4E,0xE8,
9494 0x77,0x08,0x9F,0x38,0x7C,0x64,0x71,0x44,
9495 0x08,0x39,0x39,0x05,0xA0,0x81,0x4F,0xF7,
9496 0xEC,0x22,0x9C,0xAE,0x27,0xE5,0x40,0xC3,
9497 0xA0,0xE3,0x04,0xC7,0x79,0x00,0x1C,0xE3,
9498 0x84,0x7F,0x2E,0x80,0x3F,0x40,0x7E,0xCA,
9499 0x78,0xC5,0x48,0xE0,0x98,0x23,0x44,0x9F,
9500 0x6B,0x3C,0x42,0x2C,0xFC,0x53,0x45,0xE1,
9501 0x03,0x21,0x63,0x04,0x17,0xA0,0xC7,0x08,
9502 0x7C,0x03,0x8E,0x11,0x7D,0x94,0xE0,0xEA,
9503 0x0F,0x1A,0x74,0x80,0xB8,0xFF,0xFF,0x00,
9504 0xE1,0x83,0x7A,0x80,0xC0,0x37,0xFA,0xD1,
9505 0x03,0x3D,0x2E,0x8B,0x3E,0x0F,0xC8,0xF8,
9506 0x89,0x46,0xF3,0xE2,0xA7,0x03,0x7E,0xF8,
9507 0x00,0x0F,0xA8,0x87,0x84,0x03,0xC5,0x4C,
9508 0x9B,0x83,0x3E,0xBB,0x1C,0x3A,0x76,0xB8,
9509 0xE0,0x3F,0x81,0x80,0x4B,0xDE,0x21,0x0C,
9510 0x14,0x23,0xC6,0x9F,0x83,0x7C,0x0A,0x03,
9511 0xFF,0xFF,0xFF,0x14,0x06,0xFE,0xE1,0xF0,
9512 0x20,0x4F,0x07,0x9F,0xB6,0xA8,0x74,0x18,
9513 0xD4,0x81,0x0B,0xB0,0x32,0x89,0x08,0xCF,
9514 0x12,0xB5,0x41,0xE8,0xD4,0xF0,0x36,0xF1,
9515 0xB6,0xE5,0x5B,0x40,0x9C,0xD3,0xEC,0xED,
9516 0xC0,0x45,0x30,0x22,0xD4,0x0C,0x45,0x4E,
9517 0x5A,0x11,0x63,0x44,0x79,0xDC,0x32,0xCA,
9518 0xDB,0xD6,0x0B,0x40,0xBC,0x13,0x7B,0xDE,
9519 0x32,0x46,0xF0,0xC8,0x0F,0x5C,0x2C,0xC6,
9520 0xEA,0xF5,0x5F,0xF3,0x81,0x0B,0x70,0xF6,
9521 0xFF,0x3F,0x70,0x01,0x1C,0x0A,0x7A,0x18,
9522 0x42,0x0F,0xC3,0x53,0x39,0x97,0x87,0xC8,
9523 0x53,0x89,0x18,0x35,0x4C,0xD4,0x67,0x28,
9524 0xDF,0x2D,0x7C,0x20,0x02,0xDF,0x99,0x0B,
9525 0xF8,0xFD,0xFF,0x0F,0x44,0x70,0x8E,0x29,
9526 0xB8,0x33,0x0D,0x78,0x7C,0xCE,0x40,0x20,
9527 0xA7,0xE2,0x43,0x0D,0x60,0x41,0xF4,0x13,
9528 0xC2,0x27,0x1A,0x2A,0x13,0x06,0x75,0xA8,
9529 0x01,0xAC,0x5C,0x61,0x9E,0x46,0xCF,0xF9,
9530 0x59,0xC6,0xA7,0x1A,0x1F,0x4A,0x8D,0x63,
9531 0x88,0x97,0x99,0x87,0x1A,0x1F,0x0B,0x5E,
9532 0x49,0x7D,0xA8,0x31,0x54,0x9C,0x87,0x1A,
9533 0x0F,0x37,0x50,0xD4,0x37,0x9B,0x67,0x1B,
9534 0xA3,0xC7,0xF7,0x0D,0xD5,0x10,0x0F,0x35,
9535 0x4C,0xF2,0x4A,0x35,0x16,0x1F,0x6A,0xC0,
9536 0xF1,0xFF,0x3F,0xD4,0x00,0xFC,0xFF,0xFF,
9537 0x1F,0x6A,0x00,0x47,0x47,0x03,0x38,0x47,
9538 0x46,0xDC,0xD1,0x00,0x5C,0x87,0x52,0xE0,
9539 0x70,0x34,0x00,0x1E,0x47,0x21,0x30,0x5F,
9540 0x68,0x7C,0x14,0x02,0x16,0xFF,0xFF,0xA3,
9541 0x10,0xF8,0x65,0x9F,0x83,0x50,0x42,0x8F,
9542 0x42,0x80,0xA0,0xDB,0xCF,0x53,0xC4,0xB3,
9543 0x8F,0x2F,0x3F,0x0F,0x04,0x11,0x5E,0xF3,
9544 0x7D,0x0A,0xF2,0x21,0xDF,0x47,0x21,0x06,
9545 0x63,0x28,0x5F,0x83,0x7C,0x14,0x62,0x50,
9546 0xAF,0x41,0xBE,0xEF,0x1B,0xE4,0xF1,0x22,
9547 0x48,0xEC,0x67,0x02,0x1F,0x85,0x98,0xE8,
9548 0xA3,0x10,0xA0,0xF0,0xFF,0x7F,0x14,0x02,
9549 0xF8,0xFF,0xFF,0x3F,0x0A,0x01,0xCE,0x02,
9550 0x1C,0x0D,0x40,0x37,0xAD,0x47,0x21,0xF0,
9551 0xDE,0x59,0x4E,0xFB,0x04,0x7C,0x16,0x02,
9552 0xCC,0xFE,0xFF,0xCF,0x42,0xC0,0xEC,0x28,
9553 0x74,0x14,0x67,0xF9,0x2A,0xF4,0x04,0xF0,
9554 0x02,0x10,0x23,0xCC,0x3B,0xD0,0x4B,0x26,
9555 0xBB,0x8B,0x1B,0xE7,0xC9,0xE5,0x2C,0x9E,
9556 0xC4,0x7D,0x09,0xF2,0x81,0xE2,0x59,0xC8,
9557 0x50,0xA7,0x1B,0xF4,0x8D,0xDC,0x03,0x8B,
9558 0x19,0x3F,0xC4,0xF3,0x90,0x21,0x9E,0x85,
9559 0x00,0x76,0xFD,0xFF,0xCF,0x42,0x00,0xFF,
9560 0xFF,0xFF,0x47,0x03,0xF8,0x2F,0x00,0x9F,
9561 0x85,0x80,0xE7,0x09,0xE0,0x41,0xDB,0x67,
9562 0x21,0x80,0x33,0x87,0xCB,0xF3,0x7F,0x05,
9563 0x3A,0x96,0xF7,0x08,0xCF,0xFA,0x24,0x5F,
9564 0x2F,0x3D,0xD3,0x87,0x82,0x67,0x21,0x86,
9565 0x75,0x18,0x3E,0x0B,0x31,0x88,0x17,0x4D,
9566 0x43,0xBC,0x70,0xFA,0x30,0xE0,0xFF,0x3F,
9567 0x5E,0xE0,0x57,0x4E,0x03,0x05,0x09,0xF4,
9568 0x2C,0x04,0x30,0xFE,0xFF,0x7F,0x16,0x02,
9569 0xC8,0xB8,0x46,0x9D,0x85,0x80,0xE5,0x6D,
9570 0xE5,0x19,0xDB,0xA7,0x95,0x04,0xFF,0xFF,
9571 0x67,0x21,0xC0,0x41,0x2E,0x23,0x07,0x21,
9572 0x4C,0xC4,0x87,0x83,0x8F,0x99,0x80,0x9E,
9573 0x29,0xBE,0xB8,0x1B,0xE3,0x09,0xE0,0x45,
9574 0xE2,0x31,0x93,0x1D,0x35,0x0D,0xF3,0x2C,
9575 0x64,0xBC,0xB3,0x78,0x0D,0x78,0x82,0xF7,
9576 0xE4,0x9F,0x85,0x18,0xD8,0x61,0x05,0x7B,
9577 0x14,0x32,0xA8,0xC1,0x63,0x87,0x08,0x13,
9578 0xE8,0x59,0x88,0xC5,0x7D,0xAE,0xE8,0x3C,
9579 0xE1,0xB3,0x10,0xF0,0xFE,0xFF,0x9F,0x25,
9580 0xE0,0x5E,0x0D,0x9E,0x85,0x00,0x13,0x87,
9581 0x0D,0x9F,0x35,0xC0,0x33,0x7C,0x8F,0xEA,
9582 0x1C,0x1E,0x8F,0x81,0x7F,0x56,0x1D,0xE7,
9583 0x04,0x96,0x7B,0xD1,0xB2,0x71,0xA0,0xA1,
9584 0x23,0xB2,0x3A,0x20,0x8D,0x0D,0x73,0x29,
9585 0x89,0x7C,0x72,0x6C,0xD4,0x56,0x04,0xA7,
9586 0x33,0x93,0x4F,0x00,0xD6,0x42,0x21,0x05,
9587 0x34,0x1A,0x8B,0xE1,0x9D,0xF9,0xE8,0x44,
9588 0x41,0x0C,0xE8,0xE3,0x90,0x6D,0x1C,0x0A,
9589 0x50,0x7B,0xD1,0x14,0xC8,0x39,0x07,0xA3,
9590 0x7F,0x76,0x74,0x36,0xBE,0x13,0x70,0x0D,
9591 0x10,0x3A,0x25,0x18,0xDA,0x6A,0x04,0xFC,
9592 0xFF,0x67,0x89,0x01,0x33,0xFE,0x53,0x8C,
9593 0x09,0x7C,0x8E,0xC1,0x1F,0x0C,0xF0,0x03,
9594 0x7F,0x31,0xA8,0xFA,0x5E,0xA0,0xFB,0x82,
9595 0xD5,0xDD,0x64,0x20,0xCC,0xC8,0x04,0xF5,
9596 0x9D,0x0E,0x40,0x01,0xE4,0x0B,0x81,0xCF,
9597 0x51,0x0F,0x05,0x6C,0x22,0x21,0xC2,0x44,
9598 0x33,0x3A,0x62,0xC2,0xA8,0xE8,0x13,0xA6,
9599 0x20,0x9E,0xB0,0x63,0x4D,0x18,0x3D,0x13,
9600 0x5F,0x74,0xD8,0x88,0x31,0x21,0xAE,0x1E,
9601 0xD0,0x26,0x18,0xD4,0x97,0x22,0x58,0x43,
9602 0xE6,0x63,0xF1,0x05,0x02,0x37,0x65,0x30,
9603 0xCE,0x89,0x5D,0x13,0x7C,0xD9,0xC1,0xCD,
9604 0x19,0x8C,0xF0,0x98,0xBB,0x18,0xBF,0x3A,
9605 0x79,0x74,0xFC,0xA0,0xE0,0x1B,0x0E,0xC3,
9606 0x7E,0x32,0xF3,0x8C,0xDE,0xCB,0x7C,0x8D,
9607 0xC3,0xC0,0x7A,0xBC,0x1C,0xD6,0x68,0x61,
9608 0x0F,0xED,0x3D,0xC4,0xFF,0xFF,0x43,0x8C,
9609 0xCF,0x13,0xC6,0x08,0xEB,0xDB,0x0B,0x38,
9610 0xEE,0x59,0xF0,0xEF,0x1A,0xE0,0xB9,0x84,
9611 0xF8,0xAE,0x01,0x30,0xF0,0xFF,0x7F,0xD7,
9612 0x00,0x4E,0xD7,0x04,0xDF,0x35,0x80,0xF7,
9613 0xD0,0x7D,0xD7,0x00,0xAE,0xD9,0xEF,0x1A,
9614 0xA8,0x63,0x80,0x15,0xDE,0x35,0xA0,0x5D,
9615 0xD9,0xDE,0xD7,0x9E,0xB0,0xAC,0xE9,0xB2,
9616 0x81,0x52,0x73,0xD9,0x00,0x14,0xFC,0xFF,
9617 0x2F,0x1B,0x80,0x01,0x29,0x13,0x46,0x85,
9618 0x9F,0x30,0x05,0xF1,0x84,0x1D,0xEC,0xB2,
9619 0x01,0x8A,0x18,0x97,0x0D,0xD0,0x8F,0xED,
9620 0x65,0x03,0x18,0xDC,0x13,0xF8,0x6D,0x03,
9621 0x78,0x43,0xFA,0xB6,0x01,0xD6,0xFF,0xFF,
9622 0x6D,0x03,0xAC,0xF9,0x6F,0x1B,0x28,0x0E,
9623 0xAB,0xBC,0x6D,0x40,0x3C,0xC9,0x33,0x02,
9624 0xAB,0xBA,0x6E,0xA0,0xF4,0x5C,0x37,0x00,
9625 0x12,0x88,0x99,0x30,0x2A,0xFE,0x84,0x29,
9626 0x88,0x27,0xEC,0x68,0xD7,0x0D,0x50,0x04,
9627 0xB9,0x6E,0x80,0x7E,0x5E,0x09,0xFE,0xFF,
9628 0xAF,0x1B,0xC0,0xE0,0xA2,0x80,0xB9,0x6F,
9629 0x00,0x6F,0x58,0x7E,0xDF,0x00,0x7C,0xDC,
9630 0xC4,0x31,0xF7,0x0D,0xC0,0xCC,0xFF,0xFF,
9631 0xBE,0x01,0xB0,0xE7,0xA2,0x80,0xBB,0x6F,
9632 0x00,0xEF,0x8B,0xB4,0xEF,0x1B,0x60,0xFE,
9633 0xFF,0xDF,0x37,0xC0,0x28,0x6D,0xFD,0x1E,
9634 0x1C,0x3D,0x21,0x78,0x7C,0xB8,0xFB,0xA5,
9635 0xC7,0xE7,0xBB,0x39,0x38,0x06,0x79,0x8C,
9636 0x87,0x76,0xC0,0xAF,0xEF,0x9E,0x98,0xEF,
9637 0xE6,0xC0,0xFF,0x4C,0x70,0x3C,0x18,0x68,
9638 0x1C,0x62,0xAB,0x97,0x06,0x72,0x34,0x38,
9639 0x3F,0xDC,0x19,0x81,0x61,0x15,0x7F,0xF2,
9640 0x47,0x38,0xC7,0xD0,0xD9,0xE1,0x20,0xB1,
9641 0x83,0xE0,0xC1,0x56,0x6D,0x02,0x85,0x86,
9642 0x50,0x14,0x18,0x14,0x8B,0x0F,0x18,0xF8,
9643 0x61,0xB3,0xB3,0x00,0x93,0x04,0x87,0x3A,
9644 0x02,0xF8,0x3E,0xD1,0xFC,0x38,0x74,0x37,
9645 0x38,0x54,0x8F,0xE5,0xA1,0x80,0x9E,0x01,
9646 0x71,0xC7,0x0C,0x32,0x69,0xCF,0x28,0xE2,
9647 0x53,0xC2,0x29,0x85,0x49,0xE0,0xF3,0x03,
9648 0x43,0xE3,0x04,0xAF,0x0D,0xA1,0xF9,0xFF,
9649 0xFF,0xA4,0xC0,0x3C,0xDF,0x31,0x04,0x6C,
9650 0x02,0xBB,0xBF,0x64,0xC8,0xDA,0xC0,0x75,
9651 0x4B,0x32,0x44,0x6F,0x38,0xB2,0x85,0xA2,
9652 0xE9,0x44,0x79,0xDF,0x88,0x62,0x67,0x08,
9653 0xC2,0x88,0x12,0x2C,0xC8,0xA3,0x42,0xAC,
9654 0x28,0x2F,0x05,0x46,0x88,0x18,0xE2,0x95,
9655 0x23,0xD0,0x09,0x87,0x0F,0xF2,0xD8,0x14,
9656 0xA7,0xFD,0x41,0x90,0x58,0x4F,0x02,0x8D,
9657 0xC5,0x91,0x46,0x83,0x3A,0x07,0x78,0xB8,
9658 0x3E,0xC4,0x78,0xF8,0x0F,0x21,0x06,0x39,
9659 0xC8,0x73,0x7B,0x54,0x38,0x4E,0x5F,0x25,
9660 0x4C,0xF0,0x02,0xE0,0x83,0x0A,0x1C,0xD7,
9661 0x80,0x9A,0xF1,0x33,0x06,0x58,0x8E,0xE3,
9662 0x3E,0xA9,0xC0,0x1D,0x8F,0xEF,0x07,0x6C,
9663 0xC2,0x09,0x2C,0x7F,0x10,0xA8,0xE3,0x0C,
9664 0x9F,0xE7,0x0B,0x8B,0x21,0x1F,0x13,0x4C,
9665 0x60,0xB1,0x27,0x1B,0x3A,0x1E,0xF0,0xDF,
9666 0x63,0x1E,0x2F,0x7C,0x32,0xF1,0x7C,0x4D,
9667 0x30,0x22,0x84,0x9C,0x8C,0x07,0x7D,0x87,
9668 0xC0,0x5C,0x6F,0xD8,0xB9,0x85,0x8B,0x3A,
9669 0x68,0xA0,0x4E,0x0B,0x3E,0x28,0xB0,0x9B,
9670 0x11,0xE6,0xB8,0xCE,0xCF,0x2A,0x60,0xF8,
9671 0xFF,0x9F,0x55,0x60,0x8F,0x10,0xFE,0xED,
9672 0xC1,0xF3,0xF2,0x95,0xE1,0xD5,0x21,0x81,
9673 0x43,0x8E,0x10,0x3D,0x2E,0x8F,0x10,0x73,
9674 0x3E,0xC2,0x0C,0x11,0x5C,0x67,0x01,0x70,
9675 0x0C,0x11,0xF8,0x1C,0x70,0xC0,0x71,0x69,
9676 0xE2,0x03,0xF5,0x01,0x07,0x70,0x70,0x4D,
9677 0xC3,0x1D,0x70,0xC0,0x71,0x16,0x60,0xFF,
9678 0xFF,0xC3,0x0D,0x2C,0x49,0x26,0x0E,0x23,
9679 0x18,0x11,0x30,0x28,0x02,0x02,0xA4,0xB3,
9680 0x80,0x0F,0x29,0x00,0x1F,0xAE,0x0C,0x0F,
9681 0x29,0xD8,0x93,0x86,0x07,0x8E,0x1B,0x85,
9682 0x07,0x8D,0x0B,0x30,0x68,0x7A,0xE2,0x80,
9683 0x7F,0x4C,0xF0,0x19,0x05,0x1C,0xE3,0x06,
9684 0xDF,0x2A,0x0C,0xFC,0xFF,0x3F,0x30,0xCC,
9685 0xE1,0xC2,0x63,0x39,0x8A,0xA0,0x07,0x1E,
9686 0xD4,0xF7,0x8C,0x33,0xF7,0x24,0x8F,0xD1,
9687 0x51,0x0F,0x27,0xF4,0xE4,0x85,0x3B,0x57,
9688 0xF9,0x0A,0x71,0x14,0x18,0xB8,0x77,0x29,
9689 0x8F,0xCF,0x17,0x2B,0xC3,0x63,0x46,0xFB,
9690 0x1E,0x72,0xD6,0x11,0x02,0xE2,0x2F,0x75,
9691 0x6C,0xC0,0x60,0x39,0x18,0x00,0x87,0x01,
9692 0xE3,0x13,0x0D,0x58,0x67,0x1B,0x3C,0xF4,
9693 0x69,0x31,0xC4,0xE3,0x0B,0xFB,0x56,0x61,
9694 0x82,0xEA,0x41,0x75,0x12,0xF4,0xD0,0xC0,
9695 0x01,0xE8,0xA1,0xC1,0x3F,0xB9,0x90,0xFB,
9696 0x2B,0x1D,0x82,0xB5,0xE2,0x69,0xDE,0x47,
9697 0x1E,0xF3,0xDC,0xA2,0xBC,0x0D,0x3C,0x07,
9698 0xF0,0xD3,0x82,0x87,0xE3,0x63,0x81,0xC7,
9699 0xE9,0x4B,0x58,0x82,0xF7,0x1A,0x9F,0x6C,
9700 0x1E,0x5C,0x58,0xB2,0x21,0xA0,0x06,0xEB,
9701 0x21,0x60,0xA6,0x9A,0xC0,0x49,0x46,0x80,
9702 0xCA,0x00,0xA1,0x1B,0xCB,0xE9,0x3E,0x8B,
9703 0x84,0x38,0xCD,0x47,0x99,0xC7,0x02,0x8F,
9704 0xF5,0xC1,0xC0,0xFF,0x7F,0xCD,0x23,0xD4,
9705 0x7D,0xCD,0x33,0x7B,0x3A,0xC0,0xAC,0x22,
9706 0xDC,0x7B,0xCE,0x1B,0x86,0xD1,0x9E,0x2D,
9707 0x7C,0xCD,0x78,0xD6,0x34,0x42,0x38,0x76,
9708 0x83,0xF3,0x48,0x8C,0xF0,0x82,0xC0,0x4E,
9709 0x0C,0x0F,0x30,0xC6,0x39,0x79,0xC3,0xFA,
9710 0xC2,0xCB,0x40,0x83,0x19,0xDB,0x97,0x01,
9711 0x36,0x2A,0xDF,0x88,0xC0,0x97,0xFC,0x62,
9712 0x00,0x65,0x16,0xBE,0x9E,0xF8,0xA0,0xC4,
9713 0x2E,0x06,0x2C,0xE5,0xC5,0x00,0x54,0x37,
9714 0x0C,0x5F,0x0C,0xE0,0x5F,0x89,0x5E,0x0C,
9715 0xC0,0x70,0x71,0xF2,0x3D,0xC0,0x1E,0xEE,
9716 0xA3,0x74,0x9C,0xBE,0xFD,0xBD,0x19,0xF8,
9717 0x6C,0xC0,0x60,0x3C,0xC3,0x30,0xC6,0x08,
9718 0xE3,0x51,0x86,0x31,0xC1,0xDC,0xB7,0x03,
9719 0xE8,0x39,0x87,0x81,0x4A,0x78,0x3B,0x80,
9720 0x72,0x0E,0xE8,0xF2,0x68,0x42,0x4F,0x01,
9721 0x4F,0x07,0x3E,0x29,0x1A,0xA2,0xAF,0xB1,
9722 0x0A,0x26,0x50,0xC4,0x07,0x0D,0x3E,0xB5,
9723 0x28,0x3E,0x15,0x78,0x2D,0xCF,0x4E,0xE1,
9724 0xE2,0x9C,0x89,0xA7,0x6A,0x38,0x03,0xBD,
9725 0xE6,0x86,0x63,0xFF,0x7F,0x38,0xFC,0xA9,
9726 0xE0,0x35,0x80,0x1D,0x24,0x3D,0x2D,0x23,
9727 0xC2,0x38,0xA4,0x3C,0x32,0xF8,0xB6,0x18,
9728 0xC7,0x90,0x0F,0x91,0xBE,0x13,0x18,0xF2,
9729 0x21,0xEF,0x79,0xC7,0xC0,0xAF,0x08,0x71,
9730 0x9E,0xB2,0x7C,0x67,0xF0,0x65,0x01,0x7C,
9731 0x91,0x2E,0x0B,0x68,0x68,0x9F,0x64,0x7C,
9732 0x41,0x30,0xEC,0x89,0xB3,0x00,0x77,0x05,
9733 0x50,0x81,0xFA,0xAE,0x00,0xFF,0x42,0xF0,
9734 0xAE,0x00,0x86,0x79,0xF9,0x56,0xC0,0x35,
9735 0x1D,0x4A,0xD0,0x67,0x12,0x5F,0x17,0x70,
9736 0x53,0x64,0xA9,0x8E,0x0A,0xD0,0x53,0x4C,
9737 0x02,0x75,0x47,0xF7,0x51,0x01,0xC6,0x4D,
9738 0xD9,0x07,0x54,0x76,0x5A,0x60,0x67,0x21,
9739 0x76,0x1D,0xC1,0x5D,0x49,0x18,0xCA,0xB3,
9740 0x81,0x2F,0x59,0xFC,0x70,0x00,0x03,0xDC,
9741 0xB3,0x38,0xC4,0x08,0xB1,0xD9,0x81,0xEB,
9742 0x75,0xD2,0x70,0x2F,0x44,0xEC,0xFF,0x7F,
9743 0x32,0x00,0xE3,0x51,0x1B,0x1C,0x27,0x9D,
9744 0xF0,0x91,0x9E,0x59,0xF8,0x49,0x19,0x30,
9745 0x71,0xF2,0x03,0xE3,0xC9,0x1A,0xC6,0x00,
9746 0xB8,0xBC,0x57,0x95,0x81,0xFC,0x43,0x90,
9747 0x20,0x18,0xD4,0x29,0x19,0x38,0x1C,0xC5,
9748 0x70,0xA7,0x64,0x78,0x50,0xF8,0xC3,0x00,
9749 0xE6,0x46,0xE8,0x7B,0x82,0xA1,0xDE,0x93,
9750 0x0E,0xE3,0x91,0xD0,0x04,0x3E,0x2D,0xC3,
9751 0xFA,0xFF,0x9F,0x96,0x81,0xD5,0xB1,0xDD,
9752 0x43,0xF6,0x59,0x01,0x77,0x76,0x80,0x3B,
9753 0x3D,0x7E,0x7A,0x00,0x9C,0x00,0x3D,0x3D,
9754 0x80,0xED,0xBC,0x01,0xF7,0x40,0x80,0x38,
9755 0xFE,0xA3,0x82,0x5F,0x59,0x28,0x1C,0x3F,
9756 0xB6,0xF3,0x63,0x09,0xEE,0x70,0xE0,0x23,
9757 0x83,0x0F,0x90,0xB8,0xA1,0xF8,0x50,0x81,
9758 0x3C,0x0B,0x80,0x62,0xF4,0x6C,0x04,0xEC,
9759 0x06,0xF3,0xD2,0x12,0xE5,0xFF,0xFF,0xDE,
9760 0xC0,0x4E,0x29,0xB8,0x83,0x00,0xF8,0x8E,
9761 0x01,0xE0,0x1D,0x0C,0x97,0x35,0x66,0x94,
9762 0x10,0x18,0x8D,0x19,0x77,0x08,0xE1,0x27,
9763 0x02,0xDC,0x98,0x3D,0x6E,0x8F,0x19,0x77,
9764 0x9C,0xE5,0xA3,0x7A,0xCA,0x08,0xE5,0x03,
9765 0x07,0x3B,0x67,0xBC,0x11,0xF0,0xA1,0x03,
9766 0x8F,0x03,0x0C,0xEE,0x48,0x01,0xC6,0xCB,
9767 0x01,0x1B,0x3B,0xB8,0x83,0x90,0x53,0x20,
9768 0x4B,0x87,0xD1,0xD8,0x71,0xB2,0x81,0x74,
9769 0x8C,0xF1,0x21,0xD7,0x63,0xC7,0x0D,0xD6,
9770 0x63,0xC7,0x1D,0x5F,0xB0,0xFF,0xFF,0xE3,
9771 0x0B,0x18,0xC6,0xC0,0xC5,0x0F,0x03,0x7D,
9772 0xF3,0xF3,0xE8,0x0C,0xEE,0x61,0xFB,0x04,
9773 0x13,0xE3,0xF9,0x25,0xC4,0x23,0xCC,0x8B,
9774 0x4B,0x84,0xA3,0x08,0xF2,0xE6,0x12,0xE7,
9775 0xD5,0x20,0xCC,0x63,0x4B,0x94,0x10,0x11,
9776 0x0E,0x26,0xCE,0x13,0x8C,0x11,0x0E,0x3C,
9777 0x8A,0x21,0x22,0x9C,0x40,0x88,0x93,0x3E,
9778 0xD9,0x20,0xE1,0x63,0x84,0x8D,0xF6,0x04,
9779 0xC3,0xC7,0xC2,0xCF,0x2B,0x1E,0x3C,0x3F,
9780 0xAD,0xF9,0x2E,0xE8,0xC9,0x9C,0xE3,0x43,
9781 0x96,0xA7,0xF6,0x38,0xE9,0xC3,0x2C,0x6E,
9782 0x50,0x0F,0x8E,0xEC,0xAE,0xE3,0xE3,0x35,
9783 0xF6,0x14,0xE4,0x21,0xF0,0x13,0x81,0x2F,
9784 0x88,0x9E,0xAC,0xEF,0x7A,0xEC,0x5E,0x66,
9785 0x8C,0xEA,0xA7,0x80,0x3A,0xA6,0x9C,0xC1,
9786 0x2B,0x04,0xBB,0xE7,0xF9,0x90,0xED,0xBB,
9787 0x24,0x1B,0x05,0xEE,0x90,0xE0,0x33,0x12,
9788 0x3F,0x55,0x78,0x18,0x1E,0x05,0x8C,0x19,
9789 0xBC,0x23,0x1C,0x5A,0x88,0x03,0x7E,0xDF,
9790 0x65,0x43,0x8D,0x71,0x7A,0x3E,0x7F,0xB0,
9791 0x41,0xC0,0x87,0x3A,0x54,0x0F,0xF3,0xA8,
9792 0x5E,0x0A,0x19,0xCE,0xD9,0xC1,0x1D,0x04,
9793 0xF6,0xF8,0xE1,0x41,0xF0,0x9B,0x25,0x1F,
9794 0x04,0x3B,0xDF,0xBC,0xC1,0x19,0xE4,0xFF,
9795 0x7F,0x0C,0xB0,0xCF,0x54,0x3E,0x9A,0x20,
9796 0x8E,0x80,0xE8,0xF3,0x87,0xC7,0xF0,0x26,
9797 0xC7,0x87,0x83,0x3D,0x7A,0xE0,0x4E,0x22,
9798 0x70,0x8F,0x5D,0x07,0xED,0x6B,0x9C,0x2F,
9799 0x5A,0x30,0xEE,0x7B,0xCF,0x22,0xE0,0xC7,
9800 0x78,0x6C,0x01,0xC7,0xA1,0x04,0xDC,0xC1,
9801 0x8E,0x6B,0x1C,0x42,0x51,0x60,0x74,0x28,
9802 0xC1,0xC5,0x00,0x12,0x8C,0x63,0x9C,0xD1,
9803 0xD0,0x97,0x48,0x1F,0xD2,0xE0,0x0C,0x1A,
9804 0xF6,0x3C,0x9F,0x50,0xB8,0x3D,0x01,0x8A,
9805 0x4E,0x28,0x20,0xC3,0x7D,0x06,0xC1,0x9E,
9806 0x10,0xF8,0x19,0x84,0xFD,0xFF,0x0F,0x8E,
9807 0x1E,0xF7,0x7B,0xA3,0x4F,0x8D,0x6C,0xEE,
9808 0x0F,0x01,0x27,0x70,0xEE,0xEC,0xD4,0x8C,
9809 0x3B,0x33,0x60,0xCF,0x1F,0x1E,0x02,0x3F,
9810 0x17,0x78,0xF8,0x1E,0x02,0x7E,0xF0,0x0F,
9811 0xCC,0x06,0x07,0xE3,0x29,0xC2,0xD7,0x0E,
9812 0x0E,0xCE,0x4F,0x03,0x06,0xE7,0xAF,0x50,
9813 0x9F,0xE7,0x19,0x38,0xF6,0xD4,0xEB,0x7B,
9814 0x87,0xE7,0xEB,0x43,0x05,0xFE,0xA6,0xE7,
9815 0x43,0x05,0x38,0x0E,0x0F,0xFC,0xB0,0xC2,
9816 0x86,0xF0,0x28,0x80,0x3F,0xB5,0xF8,0xF8,
9817 0x17,0xE7,0x29,0x82,0xDD,0x46,0xB0,0x87,
9818 0x0B,0xC0,0x51,0xB4,0xB3,0x18,0x2A,0xCC,
9819 0x59,0x8C,0xFC,0xFF,0xCF,0x51,0xA8,0xB3,
9820 0x18,0x3D,0x5C,0x00,0x2E,0x04,0x1F,0x0F,
9821 0x40,0x73,0x10,0x78,0x5C,0xF0,0x85,0xE0,
9822 0x48,0x0E,0xE4,0xE9,0x00,0xF0,0x19,0x4A,
9823 0xC3,0xA1,0x09,0x13,0x03,0x06,0x75,0x3E,
9824 0xF0,0x09,0xC5,0xC7,0x0E,0x7E,0x36,0xF0,
9825 0x8D,0xDC,0x43,0xE5,0xA7,0x66,0x5F,0xF2,
9826 0x11,0xE0,0x02,0x75,0xA0,0x61,0xA0,0x46,
9827 0xE4,0x23,0xD2,0xFF,0xFF,0xB9,0x0D,0x1B,
9828 0x60,0x68,0xF4,0x1C,0x0E,0xE3,0x80,0xEB,
9829 0x73,0x38,0x76,0x40,0x3E,0x87,0xC3,0x3F,
9830 0x47,0xC3,0x1F,0x1B,0x3B,0xDD,0xF3,0x81,
9831 0xC1,0xBA,0x7E,0x63,0x06,0x06,0xB6,0x6F,
9832 0x91,0x07,0x06,0x1C,0x51,0xCF,0xC6,0x57,
9833 0x08,0x0F,0x0C,0x6C,0x80,0x1E,0x18,0xF0,
9834 0x89,0x05,0x21,0x27,0x03,0x43,0x9D,0x32,
9835 0x8C,0x1C,0xF3,0x89,0xC3,0xC3,0xF0,0xA1,
9836 0x22,0xEA,0x33,0xC0,0x23,0x1E,0x1B,0x1B,
9837 0xFB,0xFF,0x8F,0x0D,0x2C,0xC7,0x16,0x8F,
9838 0x0D,0xFC,0x47,0x78,0xFC,0xD8,0xE0,0x8C,
9839 0xE5,0xD1,0xC4,0x97,0x99,0x23,0x3B,0x8D,
9840 0x33,0x7B,0x0D,0xF1,0xD1,0xEE,0xF1,0xDB,
9841 0x63,0x03,0x97,0x85,0xB1,0x01,0xA5,0x90,
9842 0x63,0x43,0x1F,0x52,0x7C,0x0A,0xB0,0x71,
9843 0x54,0x32,0x0F,0x1F,0xAF,0x7C,0x62,0x38,
9844 0xBA,0x20,0x6F,0xE8,0xBE,0x5C,0xF8,0x48,
9845 0x63,0x30,0x5F,0x5A,0x7C,0x06,0xE5,0x43,
9846 0x04,0xD7,0x57,0xC5,0x43,0x04,0x3E,0xA1,
9847 0x86,0x88,0x1E,0xCF,0xFF,0xFF,0x11,0xCC,
9848 0x43,0x64,0x43,0x03,0xAF,0x87,0xA1,0x01,
9849 0xA5,0x98,0xC0,0x5E,0x85,0x87,0x46,0x4F,
9850 0x3F,0x3E,0x04,0x30,0x08,0xDF,0x06,0xD8,
9851 0x55,0xC0,0x57,0x21,0x83,0x24,0x18,0xE7,
9852 0x64,0x41,0x07,0x07,0x8E,0x21,0x79,0x70,
9853 0xF0,0x07,0xE3,0x21,0x70,0x60,0xCF,0xE0,
9854 0xB9,0xE8,0x31,0xD8,0xA7,0x1D,0x9F,0x4A,
9855 0xC0,0x77,0xE6,0x04,0xC7,0xE9,0x1D,0x7B,
9856 0x29,0xF0,0x08,0x1E,0xAD,0x3C,0x02,0x7E,
9857 0xB4,0x02,0x66,0xFF,0xFF,0xA3,0x15,0x30,
9858 0x09,0x7A,0xE6,0xA4,0x03,0x77,0x34,0x18,
9859 0xD4,0xD1,0x0A,0x5C,0x11,0xC0,0x75,0xDC,
9860 0xF0,0xD1,0x02,0xCE,0x50,0x0F,0xDA,0x07,
9861 0x65,0xCF,0xDA,0x97,0x21,0x76,0xB4,0x00,
9862 0x97,0x89,0x43,0x08,0xD0,0x04,0x3E,0x89,
9863 0x67,0xEF,0x43,0x03,0xB3,0x8A,0xA1,0x01,
9864 0xA5,0xA3,0x01,0xEE,0x44,0x81,0xFD,0xFF,
9865 0x9F,0x28,0x60,0xDE,0x30,0x70,0x07,0x0A,
9866 0xC0,0xCD,0xE9,0xDB,0xE3,0xE2,0xD0,0x38,
9867 0xC4,0xE7,0xA7,0x73,0xF6,0xD1,0xE8,0x4C,
9868 0x71,0x67,0x11,0x30,0x9C,0x7D,0x11,0x8F,
9869 0x18,0x03,0xF9,0x81,0x21,0x59,0x30,0x28,
9870 0x16,0x0F,0xC5,0x07,0x03,0x0E,0xEC,0x23,
9871 0x02,0x3B,0x17,0xB0,0x73,0xAD,0xE1,0xF8,
9872 0x59,0xC0,0xA7,0x84,0xB7,0xA6,0x17,0x7B,
9873 0x9F,0xD7,0x7D,0xD6,0x08,0xC9,0xCE,0xF4,
9874 0x3E,0x89,0xE2,0x0E,0xA2,0x70,0x4E,0x9F,
9875 0xE0,0x22,0xF0,0x65,0xDF,0xA3,0xE0,0xA7,
9876 0x07,0xCF,0xF1,0x8D,0xC1,0xA7,0x07,0xE6,
9877 0x7E,0xF8,0x9A,0xF1,0x33,0xC3,0xE3,0x43,
9878 0x88,0x27,0xE2,0xDA,0xA6,0x20,0x5B,0x18,
9879 0x42,0x09,0xF4,0xFF,0x8F,0x10,0xE5,0x6D,
9880 0x20,0xCA,0x29,0x44,0x88,0x12,0xA4,0xB1,
9881 0xC9,0x0B,0x35,0xCA,0xD9,0x45,0x6E,0x6D,
9882 0xF6,0x82,0x0B,0x14,0x2A,0x66,0x9C,0x28,
9883 0xEF,0x10,0xB1,0xDA,0x1F,0x04,0x91,0xF4,
9884 0x32,0xD0,0x71,0xC9,0x91,0x0E,0x7D,0xE8,
9885 0x61,0xFB,0x04,0x8C,0x3F,0x48,0xE2,0xAE,
9886 0x2A,0x3E,0x28,0xF8,0x00,0x80,0x77,0x09,
9887 0xA8,0x5B,0x9D,0xC7,0xED,0xF3,0x06,0xF8,
9888 0xAF,0x17,0x58,0x82,0xF2,0x07,0x81,0x1A,
9889 0x99,0xA1,0x3D,0xCC,0xB7,0x19,0x43,0xBE,
9890 0x07,0x1C,0x16,0x3B,0x27,0xF9,0xF0,0x08,
9891 0x1C,0x8E,0x01,0x4F,0x1B,0xBE,0x51,0x7B,
9892 0xBE,0x3E,0x62,0x01,0x8E,0xFE,0xFF,0x47,
9893 0x2C,0x30,0x9D,0xDF,0x7D,0x82,0x01,0xC7,
9894 0xCD,0x82,0x9F,0x61,0x00,0x67,0x40,0xCF,
9895 0x30,0x60,0x1F,0x2A,0x6E,0x08,0x5C,0xEE,
9896 0x8A,0x28,0x90,0x05,0xC2,0xA0,0x0E,0xFD,
9897 0xE4,0x08,0x42,0xCF,0x9C,0x70,0x86,0x72,
9898 0xB2,0xBD,0x5F,0x1D,0xC8,0x2D,0xC2,0x43,
9899 0x3D,0x8B,0xC7,0x04,0x76,0xDA,0x02,0x36,
9900 0xFF,0xFF,0xE3,0x29,0xB0,0x98,0xF7,0xD3,
9901 0x69,0x84,0x63,0x03,0xFB,0x71,0x0B,0x38,
9902 0x1D,0xCC,0xE0,0xDC,0x7F,0xD8,0x2D,0x1A,
9903 0x37,0x34,0xB0,0x0D,0xCC,0x43,0x03,0x3E,
9904 0x27,0x47,0x30,0x9E,0x98,0xF8,0x55,0xE2,
9905 0xE1,0x89,0x1F,0x43,0xC0,0xFA,0xFF,0x3F,
9906 0x99,0x01,0xF6,0x84,0x1E,0xCB,0x50,0xD2,
9907 0x4E,0x66,0x80,0xC0,0xFB,0xD8,0x3B,0xC3,
9908 0x4B,0x83,0xE7,0x74,0xD2,0xCF,0x62,0x3E,
9909 0x99,0x19,0x21,0x0A,0xBB,0x8F,0x19,0xAD,
9910 0x37,0x14,0xCD,0x3C,0xE8,0x3B,0x99,0x51,
9911 0x62,0x46,0x6A,0x0E,0x4C,0x48,0x11,0x0F,
9912 0x27,0x4A,0x88,0x60,0xAF,0x13,0x6F,0x67,
9913 0x4F,0x66,0x4C,0xD6,0xC9,0x0C,0x24,0xFF,
9914 0xFF,0x93,0x19,0x98,0x5C,0x9F,0xCC,0x80,
9915 0xCA,0x39,0x0A,0x7F,0x32,0x03,0x78,0x74,
9916 0xC0,0xC2,0x9D,0xCC,0xC0,0xF2,0xFF,0x3F,
9917 0xC4,0x00,0xCE,0xC7,0x0A,0x63,0x0C,0x3C,
9918 0xDA,0xC1,0x0C,0x15,0xE6,0x6C,0x86,0x0E,
9919 0x72,0x08,0xA1,0xC1,0x0E,0x21,0x50,0xE6,
9920 0x72,0xA0,0xA7,0xF0,0x9A,0xE0,0x73,0x14,
9921 0xD8,0x0F,0x67,0xC0,0xE1,0xD4,0x80,0x0F,
9922 0x74,0xE2,0x42,0x8F,0xC2,0x23,0x0E,0x58,
9923 0xFD,0xC0,0xC8,0xFF,0xFF,0x64,0x06,0x18,
9924 0x78,0x6A,0xF8,0x40,0x82,0x63,0x31,0xEA,
9925 0x1B,0xC4,0x21,0xBE,0x8D,0xF8,0xE8,0xFE,
9926 0x6A,0xE2,0x4B,0x00,0xE6,0x42,0xE2,0xD3,
9927 0x09,0xB3,0x70,0x38,0x03,0x5A,0x43,0x60,
9928 0x57,0x26,0xCF,0x9C,0x0F,0xE1,0x6C,0x3C,
9929 0x7A,0xDC,0xE9,0x04,0xDE,0x38,0x7C,0x3A,
9930 0x01,0x5E,0x07,0x0C,0xCC,0x0C,0xC2,0x3F,
9931 0x84,0xB0,0x21,0x9C,0xAA,0xC7,0x70,0xEE,
9932 0xAF,0x38,0x3E,0x9D,0x80,0xF3,0xFF,0x7F,
9933 0x62,0x03,0x0C,0x0A,0x7E,0x32,0xF8,0xB8,
9934 0x46,0x25,0xC2,0xA0,0x8E,0xE6,0x80,0x7B,
9935 0x98,0x27,0x36,0x26,0x6F,0xC5,0x1A,0x8B,
9936 0x4F,0x6C,0x30,0xFF,0xFF,0x27,0x36,0x80,
9937 0xD1,0x87,0x20,0xB0,0xFD,0xFF,0x0F,0x41,
9938 0x60,0x1C,0xA0,0x0F,0x41,0x80,0x9B,0xD3,
9939 0x09,0xEE,0xC4,0x07,0xB6,0x63,0x10,0x60,
9940 0x6D,0xE8,0x3E,0x06,0x81,0xF9,0xFF,0x3F,
9941 0x5A,0x98,0xA3,0xE0,0xC2,0x8E,0x7C,0x28,
9942 0x29,0xA7,0x3E,0xB4,0x0C,0x20,0x69,0x38,
9943 0xC9,0x01,0x9D,0xD3,0x3D,0x70,0x92,0x75,
9944 0xEA,0x40,0x8F,0xC7,0xA0,0xAF,0x1C,0xBE,
9945 0x12,0xF0,0x23,0x07,0x93,0x00,0xAA,0x41,
9946 0xFA,0xCC,0x07,0x9C,0x8E,0x1C,0xE0,0x38,
9947 0x26,0x05,0xC6,0xDE,0x0E,0xDE,0x22,0x3D,
9948 0x89,0xA7,0xA1,0xE3,0x0C,0x51,0x38,0x26,
9949 0x39,0x18,0x44,0x7A,0x95,0x62,0x03,0x7C,
9950 0xAB,0xF1,0xD9,0xC8,0x07,0x10,0x78,0xE3,
9951 0xF6,0xD8,0x61,0xFF,0xFF,0x0F,0x75,0xC0,
9952 0x01,0xE2,0xA4,0xF8,0x21,0xC3,0x98,0x67,
9953 0xC5,0x0F,0x75,0x80,0xF5,0x18,0x27,0x3A,
9954 0x94,0xF0,0x43,0x1D,0x20,0xE8,0xFF,0x7F,
9955 0xA8,0x03,0x86,0x38,0x6F,0x24,0xD1,0x1E,
9956 0xEA,0x98,0xE8,0x43,0x1D,0x40,0xC8,0xFF,
9957 0xFF,0xA1,0x0E,0x18,0x9E,0x87,0x00,0xAE,
9958 0x9C,0xEF,0xC0,0x7C,0x22,0x02,0xEF,0xFF,
9959 0xFF,0x7C,0x07,0xB8,0x1B,0x2D,0xCC,0x51,
9960 0x70,0x41,0xAF,0x0E,0x03,0x51,0x09,0x30,
9961 0x28,0x02,0xC7,0x5F,0x9B,0x60,0x1C,0xEA,
9962 0x7C,0x87,0x3E,0x2F,0x78,0xD8,0x4F,0x05,
9963 0x9E,0xC4,0xA9,0xFA,0x5A,0x70,0x14,0x4F,
9964 0x00,0x3E,0xE1,0x01,0xFF,0xA1,0xC1,0x9A,
9965 0x44,0xF1,0x43,0x03,0xF5,0x11,0xE4,0xFF,
9966 0x7F,0x68,0xC0,0x28,0xEA,0xF9,0x06,0x7D,
9967 0xCC,0xF2,0xD9,0x20,0xE6,0x0B,0x48,0x84,
9968 0x07,0x10,0x5F,0x1F,0xD8,0x71,0xD2,0x67,
9969 0xA0,0x40,0x51,0xDE,0x37,0xF8,0x09,0x07,
9970 0x5C,0x83,0xF3,0x09,0x07,0xBC,0x87,0x23,
9971 0x1F,0x4B,0xC0,0x77,0xD0,0x84,0x73,0x81,
9972 0xF1,0x8D,0x8D,0x9D,0x06,0xC0,0x76,0x00,
9973 0x06,0xDF,0x69,0x00,0x1C,0xC7,0x24,0x7E,
9974 0x3A,0x04,0x13,0xCC,0xC1,0xBC,0x34,0xFB,
9975 0xFF,0xEF,0xFD,0x94,0x43,0xCF,0x86,0x80,
9976 0x75,0x49,0x07,0x43,0x94,0x88,0xB3,0x21,
9977 0x20,0xFD,0xFF,0x7F,0x36,0xC4,0x20,0xC4,
9978 0x09,0xFC,0x12,0xD1,0xDC,0xD9,0x90,0xAE,
9979 0xD8,0x67,0x43,0x80,0xE1,0xFF,0xFF,0x23,
9980 0x00,0xF6,0x7C,0x04,0x38,0x3D,0x64,0x83,
9981 0xE7,0x14,0x08,0xE3,0xE4,0x03,0x38,0xFE,
9982 0xFF,0x8F,0x15,0xE6,0x18,0x78,0xEA,0x97,
9983 0x9B,0x8F,0x03,0x54,0xD4,0x2B,0xC2,0x30,
9984 0x94,0xC5,0x87,0x05,0x1F,0x11,0xF8,0x61,
9985 0xC1,0x23,0xA8,0x78,0x9C,0xF4,0x74,0xE3,
9986 0x33,0x21,0x3B,0x24,0x38,0xFC,0x20,0xE9,
9987 0x41,0x13,0x3C,0xE7,0x23,0x78,0xB7,0x1E,
9988 0x38,0xA7,0x02,0xC0,0x4D,0xAE,0x27,0xA3,
9989 0x4E,0x17,0x0E,0x70,0x8E,0x92,0x8D,0x63,
9990 0x08,0xE5,0x70,0xCC,0xB7,0x87,0xA6,0xC9,
9991 0x4E,0x56,0x30,0x63,0x41,0xEA,0x24,0xE0,
9992 0x01,0x38,0x10,0x8C,0xB4,0x93,0x68,0x34,
9993 0x86,0xB3,0x5A,0x18,0xC1,0x19,0xC4,0xC7,
9994 0x11,0xE7,0x3A,0x19,0xA1,0x3F,0x07,0x3E,
9995 0x15,0x61,0x82,0xDC,0x4B,0xE8,0xBC,0x7D,
9996 0x37,0xE0,0x57,0x61,0x8F,0xC5,0xFF,0x7F,
9997 0x60,0xDF,0x4E,0xC0,0x31,0x17,0xAB,0x01,
9998 0x45,0x0D,0xC0,0x68,0x98,0x53,0xC0,0x53,
9999 0x09,0xB8,0x82,0xCD,0x0D,0x7D,0x61,0xB1,
10000 0xD6,0xA9,0xE8,0x14,0xF4,0x3E,0x70,0x70,
10001 0xC0,0x63,0xF6,0x1E,0x1C,0x2C,0x34,0x0F,
10002 0x0E,0x6C,0xD9,0x06,0x87,0x56,0x72,0x17,
10003 0x21,0x87,0x0F,0xFC,0xEC,0x80,0x03,0xA0,
10004 0x67,0x07,0x0B,0xC9,0xB3,0x03,0x9B,0xBE,
10005 0xB3,0x08,0x28,0x70,0xFE,0xFF,0x11,0xDE,
10006 0x3B,0x7C,0x6E,0x79,0xF6,0x60,0x63,0x78,
10007 0x74,0x31,0x9A,0xD1,0xB9,0xA6,0xDB,0x04,
10008 0x4A,0xC5,0x6D,0x82,0x82,0xF8,0x06,0xE0,
10009 0x84,0x34,0xBA,0x75,0xE2,0x66,0x62,0xFC,
10010 0x47,0x0C,0x1F,0x11,0x0E,0xE9,0x6C,0x4D,
10011 0x30,0x0F,0xA4,0x9E,0x81,0xBE,0xB3,0xE1,
10012 0x67,0x1F,0xF2,0xC1,0xC5,0xD3,0xF0,0xF5,
10013 0x86,0xDC,0x3B,0xE8,0xB4,0x7D,0x66,0xC0,
10014 0x1C,0x74,0x7D,0x9D,0x7A,0x83,0x27,0x57,
10015 0x09,0xEA,0xE1,0x02,0x42,0x2F,0x34,0xBE,
10016 0xDC,0x25,0x78,0xE0,0xF4,0xE9,0xEE,0xBD,
10017 0x84,0x9D,0xF1,0x12,0xBC,0xE0,0x25,0x98,
10018 0x77,0x10,0xA8,0x51,0x79,0x10,0x98,0xAB,
10019 0x3C,0xCB,0x37,0x06,0x54,0xB2,0x8B,0x16,
10020 0x3D,0xC3,0xBC,0xC3,0xF8,0x92,0xE0,0xEB,
10021 0x87,0xCF,0x2D,0x5E,0xC0,0xEB,0x16,0x0C,
10022 0x82,0x67,0xA0,0x57,0x17,0xDF,0xD9,0x0D,
10023 0xFC,0x2A,0xF0,0x46,0x13,0x22,0x98,0x61,
10024 0x0F,0xFF,0xDD,0xDD,0xA8,0xBE,0xE9,0x18,
10025 0xEB,0x75,0xC4,0x23,0xE5,0xC7,0x96,0x03,
10026 0x8A,0xF4,0xF2,0xE6,0x09,0xF8,0x2C,0xE3,
10027 0x53,0xDD,0x49,0xF9,0x7A,0x68,0xF4,0x57,
10028 0x08,0x1F,0x7E,0x8C,0xEC,0x73,0x0E,0x3B,
10029 0xDF,0xB1,0x41,0x71,0xC4,0x07,0x86,0x97,
10030 0x1A,0x4F,0x85,0x9D,0xBB,0x60,0x1C,0x1C,
10031 0xD8,0xB1,0x08,0x73,0x7C,0x05,0xD7,0xC9,
10032 0xE6,0xFF,0xFF,0xE4,0x00,0x6E,0x78,0xCC,
10033 0xC1,0xD7,0xE7,0x0D,0xDF,0x0C,0x3C,0x2E,
10034 0x7E,0xE4,0xF0,0x49,0xE3,0xA5,0xD3,0xD8,
10035 0xA7,0xE9,0xA3,0xD1,0xCB,0x9B,0x4F,0x2F,
10036 0x18,0x58,0x5F,0x1A,0x38,0xAC,0xD1,0xC2,
10037 0x3E,0x06,0x9C,0xB9,0x2F,0x44,0xB8,0xC3,
10038 0x23,0x58,0x00,0xF1,0xB7,0x92,0x47,0x0E,
10039 0x4F,0xC0,0x80,0x4C,0xD3,0xBA,0x74,0x20,
10040 0xE2,0xA7,0x3C,0x2B,0x5F,0x99,0x2E,0x43,
10041 0x0C,0xE3,0xA9,0xF2,0xF1,0xC3,0xB3,0xF1,
10042 0x51,0xC0,0xC7,0x28,0xCF,0xFC,0x8C,0x22,
10043 0xBD,0x32,0x10,0x50,0x9D,0x88,0xB8,0x42,
10044 0x18,0x89,0xA1,0xD1,0x9D,0x83,0xC7,0x1F,
10045 0x22,0x05,0x31,0xA0,0x6F,0x2E,0xC0,0xF4,
10046 0x4C,0x04,0x5C,0xFE,0xFF,0x37,0x17,0x80,
10047 0xFF,0xFF,0xFF,0x9B,0x0B,0xE0,0xE6,0xFE,
10048 0xE0,0x9B,0x0B,0x70,0x8D,0xB4,0x2A,0x7A,
10049 0x61,0x77,0x08,0x18,0xD4,0x9D,0x1D,0x70,
10050 0x78,0x2B,0x78,0x67,0x87,0xF5,0xFF,0xBF,
10051 0xB3,0xC3,0xC3,0x8C,0x13,0xE5,0x85,0x21,
10052 0xC6,0x3B,0x3B,0x0B,0xF0,0x26,0xD0,0x51,
10053 0xC6,0x77,0x76,0x80,0x1F,0x67,0xD8,0x77,
10054 0x69,0xF0,0x5E,0x75,0x81,0xF5,0xFF,0xFF,
10055 0xAA,0x0B,0x3C,0x04,0xDF,0xA7,0x41,0x3E,
10056 0x5E,0x30,0x8C,0x83,0x2B,0x27,0xA1,0xC7,
10057 0x02,0x6B,0x85,0x41,0xDD,0xA9,0xC1,0xA5,
10058 0x09,0x5C,0x17,0x5F,0x1F,0x6A,0x7C,0xA4,
10059 0xC5,0x9F,0x2F,0x70,0x01,0x86,0x4C,0x4F,
10060 0x65,0x30,0xAE,0x29,0x3E,0x95,0x61,0xEE,
10061 0x0E,0x1E,0x90,0x8F,0x18,0xC0,0x67,0x15,
10062 0x1E,0x18,0xEE,0xB4,0xE0,0x9B,0x92,0x41,
10063 0xCF,0x31,0xA8,0x8F,0x3C,0x27,0xEF,0x7B,
10064 0xC2,0xE3,0x84,0xA3,0x9E,0x83,0xE8,0xD8,
10065 0xC0,0x71,0xDC,0xC0,0xFD,0xFF,0xC7,0x06,
10066 0xEF,0x70,0x83,0x3B,0xE8,0xF8,0x62,0x70,
10067 0x5C,0x18,0xB8,0xE7,0x02,0x0F,0xC3,0x37,
10068 0x1D,0x8F,0x08,0x33,0xFE,0xD7,0x3F,0x23,
10069 0x04,0xC4,0x5F,0x8C,0xD8,0x80,0xC1,0x78,
10070 0x6B,0xF3,0xF5,0x0D,0x37,0x60,0x5F,0x1D,
10071 0x7C,0xC1,0xF0,0x09,0xCC,0xE8,0x2F,0x30,
10072 0x4F,0x62,0x3E,0x36,0x90,0x0B,0x1C,0x1D,
10073 0x30,0x38,0x00,0x3D,0x60,0xF8,0x87,0x8B,
10074 0x77,0x39,0x30,0x5C,0x05,0x7D,0x5C,0xF0,
10075 0xB1,0xC7,0x8A,0xEE,0x72,0xE8,0x9B,0x9C,
10076 0x61,0xE2,0x18,0xE2,0x0D,0x8C,0xDD,0x25,
10077 0xC8,0x61,0x0E,0xEA,0x5D,0xC2,0x73,0xE0,
10078 0x67,0x0B,0x9F,0xE0,0x7C,0xF3,0x09,0x71,
10079 0xAA,0x8F,0x56,0xEF,0x01,0x3E,0x7A,0xBC,
10080 0x77,0xF9,0xEC,0xC4,0x2E,0x02,0x3E,0x72,
10081 0x19,0xC7,0xD3,0xF4,0x15,0xD0,0x43,0x36,
10082 0xD8,0xAB,0x86,0x4F,0x60,0x3E,0xBA,0xE1,
10083 0x8E,0x51,0x9E,0x89,0xA7,0xEF,0x3B,0x08,
10084 0x3B,0x92,0x1C,0x75,0xA8,0x6B,0x7A,0x44,
10085 0xF9,0xFF,0x9F,0xD0,0x81,0xF8,0xD6,0x06,
10086 0xCE,0x68,0xF7,0x0F,0xF4,0x36,0x3D,0x32,
10087 0xCC,0xD1,0x00,0xD6,0x25,0x04,0x5C,0x77,
10088 0x0C,0x5F,0x42,0x80,0x4F,0xD0,0x4B,0x04,
10089 0xFA,0x9A,0xE1,0xD1,0x3D,0x02,0x60,0xAE,
10090 0x18,0xEC,0x58,0xE0,0xC3,0x86,0xAF,0x01,
10091 0xEC,0x5E,0xE0,0x30,0xF7,0x08,0x50,0x81,
10092 0x7A,0x78,0xF0,0xD5,0xDE,0x23,0x40,0x71,
10093 0xB2,0xF4,0xA1,0xC1,0x03,0xB5,0xAA,0x33,
10094 0x26,0x94,0x23,0x26,0x3F,0x9B,0xF9,0x26,
10095 0x81,0xB9,0x5D,0xFA,0x26,0x01,0x37,0xCF,
10096 0x2C,0x50,0x49,0x20,0xF4,0xFF,0xBF,0x49,
10097 0xC0,0x85,0xE9,0xF2,0x32,0x43,0xE7,0x7F,
10098 0xE0,0xBE,0xD5,0x79,0x84,0x3E,0x44,0x30,
10099 0x94,0xF7,0x3C,0x9F,0xC2,0xF8,0x19,0xC2,
10100 0x07,0x4C,0x76,0xA6,0xE0,0x67,0x4D,0xDC,
10101 0x1D,0xC0,0x28,0x6F,0x9E,0x9E,0x00,0x3B,
10102 0x7F,0x1A,0xF9,0xDD,0xE0,0x5D,0xC0,0xD3,
10103 0xF7,0xBD,0x88,0x9F,0x28,0xC0,0x17,0xEC,
10104 0x4E,0x07,0x05,0xFA,0x84,0x3C,0x22,0xA3,
10105 0xFA,0x88,0xC0,0x2F,0x49,0x60,0x3C,0x92,
10106 0xF8,0x40,0x01,0x84,0xEE,0x05,0xA8,0xD3,
10107 0x07,0x47,0x3D,0xE3,0x17,0x54,0x63,0xBE,
10108 0x5B,0x3D,0xC2,0x79,0x72,0x98,0xCB,0x01,
10109 0x8B,0x73,0x4D,0x02,0xD5,0x71,0x97,0x8F,
10110 0x0E,0xEE,0xB5,0x15,0xFB,0xFF,0x27,0x38,
10111 0xB8,0x77,0x96,0x77,0x3E,0x43,0x79,0x90,
10112 0xE0,0xBB,0xB6,0x82,0xE3,0xAA,0x06,0xE3,
10113 0xD8,0xC2,0x2F,0x79,0x80,0x9D,0x61,0x71,
10114 0xC1,0x7F,0x0F,0x03,0x51,0x89,0x30,0x28,
10115 0x02,0xCB,0xBB,0xB7,0x52,0xF8,0x43,0x06,
10116 0xE3,0x4D,0x81,0x4F,0x1A,0x3B,0x6A,0xE0,
10117 0xFB,0xFF,0x1F,0x35,0xD8,0x86,0x8A,0xBB,
10118 0x29,0x82,0x75,0xAA,0x98,0x21,0xF0,0x60,
10119 0x0F,0x00,0x9F,0xAF,0x7C,0x06,0x50,0x14,
10120 0x18,0xD4,0xA1,0x1D,0xCE,0x6D,0x18,0x70,
10121 0x30,0x62,0xDC,0xA5,0x10,0xEE,0x94,0xDF,
10122 0x51,0x62,0x3F,0x97,0xB3,0xE9,0xE2,0xAE,
10123 0xE6,0x3E,0x9D,0xB0,0x0B,0x32,0x8C,0xB3,
10124 0xC0,0x23,0xC0,0xAB,0x39,0xBF,0x20,0x3F,
10125 0x17,0xBF,0x10,0x3C,0x26,0x85,0x78,0x53,
10126 0x7A,0x25,0x36,0xC6,0x93,0x71,0x73,0xB7,
10127 0x62,0x72,0xDE,0x79,0x41,0x36,0xC6,0xD1,
10128 0x44,0x8C,0x72,0x6E,0x0F,0x03,0x91,0x5F,
10129 0x90,0x7D,0x3F,0x79,0x21,0x88,0x18,0xCD,
10130 0x10,0x41,0x9F,0x97,0x8D,0x15,0x28,0xDE,
10131 0x0B,0x32,0x13,0xF8,0x56,0xD0,0xC1,0xC5,
10132 0x17,0x64,0xEC,0xFF,0xFF,0x82,0x0C,0x30,
10133 0xE2,0x64,0x04,0xF8,0x3C,0x71,0xE0,0xCE,
10134 0x35,0x30,0xFE,0xFF,0x97,0x6A,0xD8,0x27,
10135 0x1B,0xC0,0xD9,0xD0,0x7D,0xB2,0x01,0xF7,
10136 0x68,0xE1,0x1D,0x4D,0x10,0x27,0x1B,0x0A,
10137 0xE4,0xE0,0xEB,0xA2,0x70,0x3C,0xF4,0x49,
10138 0x84,0x1E,0x9D,0x7C,0x94,0xC4,0x9D,0x19,
10139 0x3C,0x91,0x77,0x16,0x8F,0xE2,0x65,0xD0,
10140 0xF7,0x82,0x13,0x79,0x7D,0xB0,0x9C,0x63,
10141 0x24,0xA8,0x46,0xE2,0xE3,0x03,0xFC,0xEB,
10142 0x8B,0x8F,0x91,0xF0,0xF9,0xFC,0xC3,0xF2,
10143 0x60,0x0C,0xF9,0xFF,0x7F,0x8A,0xC4,0x80,
10144 0x3C,0xBB,0x3C,0x86,0xF0,0x0B,0x24,0xDC,
10145 0xD3,0xCC,0x01,0x60,0x64,0x5D,0x1E,0xD1,
10146 0x67,0x47,0x8E,0x11,0xD7,0x17,0x45,0x5F,
10147 0x81,0x7D,0x10,0x38,0x9F,0xE7,0x44,0xB0,
10148 0x8E,0x9A,0x1F,0x6D,0xF8,0xF8,0x39,0xF8,
10149 0x5B,0xC1,0x03,0xA5,0x8F,0x45,0x21,0x1E,
10150 0x91,0xF8,0x39,0x11,0x5C,0x26,0xCE,0x89,
10151 0x40,0xE2,0xD0,0x0B,0xE3,0xB4,0x80,0x1B,
10152 0x88,0xCF,0x94,0xD8,0x29,0x9F,0x08,0x3B,
10153 0x97,0x60,0x46,0x07,0xAE,0xCB,0xBD,0x47,
10154 0x07,0xFE,0x93,0x00,0x1E,0xEB,0xFF,0xFF,
10155 0x78,0x07,0xBE,0x93,0xBA,0xEF,0x26,0xBE,
10156 0xC8,0xF8,0x50,0xF4,0x7C,0x07,0xF8,0x0F,
10157 0x77,0xB8,0x43,0xC5,0x39,0xDF,0x01,0xD2,
10158 0xFE,0xFF,0xE7,0x3B,0x60,0x79,0xB6,0x7E,
10159 0xBE,0x03,0xBB,0xC8,0xF3,0x1D,0x40,0xAC,
10160 0xFF,0xFF,0xF9,0x0E,0xB0,0x73,0x46,0xC3,
10161 0x9D,0xEF,0xC0,0x76,0xB4,0x01,0xCC,0x4D,
10162 0xE3,0xD1,0x06,0xDC,0xC3,0x85,0x3D,0x0C,
10163 0xAE,0xD0,0xA6,0x4F,0x8D,0x46,0xAD,0x1A,
10164 0x94,0xA9,0x51,0xE6,0xFF,0xDF,0xA0,0x56,
10165 0x9F,0x4A,0x8D,0x19,0xCB,0x0E,0xA5,0x80,
10166 0x8F,0x0A,0x8D,0xCD,0xF2,0x28,0x04,0x62,
10167 0x31,0xAF,0x06,0x81,0x38,0x2C,0x08,0x8D,
10168 0xF4,0xCA,0x11,0x88,0x25,0x3F,0xFB,0x05,
10169 0x62,0xB9,0x6F,0x06,0x81,0x38,0xE0,0x1B,
10170 0x4C,0xE0,0xE4,0x61,0x25,0x70,0xF2,0x6E,
10171 0x10,0x88,0x23,0x83,0x50,0xA1,0x3A,0x40,
10172 0x58,0x4C,0x10,0x1A,0xCA,0x07,0x08,0x93,
10173 0xFE,0x48,0x10,0x20,0x31,0x02,0xC2,0xC2,
10174 0xBD,0xBF,0x04,0x62,0x69,0xEF,0x09,0x81,
10175 0x58,0x88,0x15,0x10,0x16,0x17,0x84,0x86,
10176 0xD3,0x02,0xC2,0x24,0x99,0x01,0x61,0x81,
10177 0x40,0xA8,0x7C,0x35,0x20,0x4C,0xA4,0x1B,
10178 0x40,0xBA,0x7A,0x81,0x38,0x88,0x1E,0x10,
10179 0x26,0xC3,0x0F,0x08,0x0B,0x0D,0x42,0xA3,
10180 0x3D,0x30,0x04,0x48,0x0C,0x81,0xB0,0xF8,
10181 0x8E,0x40,0x98,0xF8,0x57,0x91,0x40,0x9C,
10182 0xDF,0x12,0xC4,0x4D,0x69,0x88,0x35,0x01,
10183 0x31,0x0D,0x9E,0x80,0x98,0x22,0x10,0x01,
10184 0x39,0xF6,0xD3,0x43,0x40,0xD6,0x60,0x0A,
10185 0x88,0x45,0x07,0x11,0x90,0x85,0xA8,0x02,
10186 0x62,0x79,0x5D,0x01,0xB1,0xF0,0x20,0x02,
10187 0x72,0xE6,0x97,0x9F,0x80,0xAC,0xE0,0xA5,
10188 0xF3,0x10,0xC0,0xDE,0x10,0x81,0x48,0x72,
10189 0x10,0x01,0x39,0xB0,0x2F,0x20,0x16,0x1F,
10190 0x44,0x40,0xCE,0xFA,0x28,0x14,0x90,0x83,
10191 0x83,0x68,0x10,0xE4,0x6B,0x26,0x20,0xA7,
10192 0x07,0x11,0x10,0xF9,0x04,0x05,0x21,0x6A,
10193 0xBD,0x81,0x30,0x3D,0x8F,0x42,0x0D,0x85,
10194 0x80,0x50,0xE5,0xEA,0xCE,0x31,0x2C,0x07,
10195 0x08,0xCD,0x05,0x22,0x30,0xAB,0x70,0x07,
10196 0xC4,0x54,0x81,0x08,0xC8,0x09,0x80,0xC8,
10197 0xFF,0x9F,0x60,0x2A,0x10,0x9A,0x12,0x8C,
10198 0xEA,0x92,0x07,0xC4,0x12,0x80,0xD0,0x54,
10199 0x20,0x34,0x25,0x88,0x00,0xAD,0xCA,0x1E,
10200 0x10,0x53,0x0A,0x42,0x95,0x83,0xD0,0x74,
10201 0x20,0x54,0xB6,0xBE,0xC3,0x02,0x05,0x11,
10202 0x90,0xA3,0x83,0x50,0xE1,0xFE,0x40,0x98,
10203 0xDE,0x97,0x86,0x00,0x9D,0x0E,0x44,0x40,
10204 0x4E,0x0C,0x42,0x15,0x7C,0x32,0x82,0x10,
10205 0xB1,0x20,0x54,0xC1,0x27,0x23,0x28,0xD1,
10206 0xF2,0xB2,0x13,0x90,0xF5,0x81,0x50,0xBD,
10207 0x20,0x02,0x73,0x36,0x20,0x9A,0x17,0x84,
10208 0xE6,0x07,0xA3,0x5A,0x8D,0x02,0x31,0xFD,
10209 0x20,0x34,0x0F,0x88,0xC0,0xAC,0xE0,0xF9,
10210 0x71,0xC0,0x0C,0x84,0xAA,0x04,0x11,0x98,
10211 0x73,0x01,0xD1,0xAC,0x20,0x34,0x3B,0x18,
10212 0xD5,0xFE,0x0F,0xD1,0x00,0x08,0x08,0xCD,
10213 0x07,0xA2,0xC3,0x00,0x79,0x96,0x09,0xC8,
10214 0x1A,0x41,0xA8,0x66,0x10,0x81,0x39,0x27,
10215 0x10,0xCD,0x0E,0x42,0x95,0xFD,0x4D,0x82,
10216 0x91,0x8C,0x0F,0xD0,0x40,0x24,0x37,0x08,
10217 0xD5,0xF1,0x0C,0x0A,0x46,0x74,0x83,0x08,
10218 0xC8,0x59,0x40,0x68,0x36,0x30,0x9A,0x4C,
10219 0xED,0x91,0x80,0xBA,0x05,0x61,0xE9,0x41,
10220 0x68,0x3A,0xBB,0x83,0xA7,0x20,0x54,0x81,
10221 0x5E,0x30,0xA6,0x19,0x44,0x87,0x05,0x02,
10222 0x42,0x73,0x81,0x51,0x1D,0xAF,0x96,0x40,
10223 0x44,0x1B,0x08,0xD5,0x0A,0xA2,0x81,0x93,
10224 0x1F,0x53,0x10,0x92,0x14,0x84,0xFC,0xFF,
10225 0x07,0xAA,0xC7,0x9C,0x40,0xAC,0xFA,0x5B,
10226 0x25,0x50,0x27,0x01,0xA1,0xC9,0x40,0x74,
10227 0x7C,0x20,0x0F,0xB8,0x83,0x64,0x20,0x54,
10228 0x29,0x88,0xC0,0xAC,0xF4,0x63,0xA4,0x23,
10229 0x05,0x51,0x7D,0xBC,0xA0,0x20,0x34,0xD1,
10230 0x3B,0x2C,0x08,0x7B,0xB8,0x69,0xA8,0xE4,
10231 0x59,0xA5,0xA1,0x12,0x10,0x9A,0x0D,0x44,
10232 0xC7,0x04,0xF2,0xAA,0x79,0x4C,0x60,0x20,
10233 0x54,0x2F,0x08,0xCD,0x01,0x42,0x13,0x83,
10234 0x08,0xD4,0xA9,0xBF,0x37,0x1A,0x2A,0xF9,
10235 0x5B,0x09,0xC4,0xCA,0x5E,0x69,0x02,0xB1,
10236 0xDE,0xA7,0x4E,0x20,0xE6,0x1D,0x98,0xA9,
10237 0x05,0xA1,0xEA,0x41,0x04,0xE6,0xB4,0x40,
10238 0x54,0x81,0x78,0x10,0xA6,0x08,0x44,0x60,
10239 0x4E,0x02,0x44,0xD3,0x81,0xD0,0xEC,0x60,
10240 0x54,0xE7,0xA3,0x4D,0x40,0xD6,0x0E,0x42,
10241 0xB3,0x80,0x08,0xCC,0x59,0x1E,0x69,0x02,
10242 0xB1,0x92,0x2F,0x9D,0x0E,0x24,0x04,0x84,
10243 0x26,0xD3,0x7F,0x68,0xA1,0x05,0x80,0x99,
10244 0x84,0x04,0x20,0x4C,0x16,0x88,0x0E,0x27,
10245 0xD6,0x08,0x22,0x40,0xC7,0x01,0xA3,0xD1,
10246 0x40,0x68,0x5C,0x40,0x9A,0x1D,0x90,0x2A,
10247 0x6D,0x00,0xC6,0x54,0x83,0xD0,0x24,0x20,
10248 0x02,0x74,0x2C,0x10,0x01,0x5A,0x74,0x04,
10249 0x30,0x16,0x01,0x84,0x46,0x05,0xA1,0xC9,
10250 0x2A,0x80,0xB2,0x9C,0x20,0x1A,0x20,0xC9,
10251 0x30,0x60,0x0A,0x42,0x33,0x81,0xD0,0x8C,
10252 0x20,0x54,0x7C,0x07,0x10,0x16,0x04,0x84,
10253 0x86,0x03,0xD1,0x00,0xFE,0xFF,0x8F,0x0C,
10254 0x02,0xD1,0x00,0x9C,0x23,0xC4,0x61,0x85,
10255 0x82,0xD0,0xF4,0x20,0x34,0x6C,0x09,0x50,
10256 0x16,0x1D,0x44,0xC7,0x23,0x92,0x02,0x8C,
10257 0x05,0x02,0xA1,0x31,0x41,0x68,0x6C,0x10,
10258 0x1A,0x29,0x06,0x28,0x13,0x54,0xE3,0x50,
10259 0x44,0x7B,0x80,0x31,0x99,0x20,0x54,0x36,
10260 0x88,0xC0,0x1C,0x14,0x88,0x86,0x07,0xA1,
10261 0x62,0x82,0x00,0x52,0x10,0x01,0x12,0x20,
10262 0x1A,0x1E,0x84,0x8A,0x29,0x32,0x74,0x0A,
10263 0x42,0x55,0x24,0x39,0x9A,0x50,0x10,0x1D,
10264 0x4D,0x08,0x08,0xCD,0x07,0x46,0x75,0x35,
10265 0x39,0x6E,0x50,0x10,0xAA,0x1D,0x84,0x06,
10266 0x05,0xA1,0x39,0xA2,0x80,0xB2,0xEC,0x20,
10267 0x02,0xB2,0x9E,0x2A,0x87,0x0A,0x0A,0x22,
10268 0x30,0xA7,0x02,0xA2,0x49,0x41,0xA8,0x8E,
10269 0x2C,0x47,0x0A,0x9A,0x06,0x84,0x25,0x06,
10270 0xA1,0xC9,0xDA,0x80,0xB0,0x0C,0x75,0x0E,
10271 0x24,0x14,0x84,0xE6,0x04,0xA1,0x4A,0xF2,
10272 0x0C,0x8F,0x82,0xE8,0x38,0x42,0x80,0x68,
10273 0x7A,0x10,0xAA,0xA6,0xCF,0x00,0x28,0x88,
10274 0x06,0x40,0x40,0x68,0x4E,0x30,0xAA,0xA8,
10275 0xD1,0xD1,0x84,0x82,0x50,0xDD,0x2F,0x4E,
10276 0x81,0xF8,0xFF,0x0F,
10279 } //end DefinitionBlock