Home | History | Annotate | Line # | Download | only in misc
      1       1.1    jruoho /*
      2  1.1.1.11  christos  * Some or all of this work - Copyright (c) 2006 - 2020, Intel Corp.
      3       1.1    jruoho  * All rights reserved.
      4       1.1    jruoho  *
      5       1.1    jruoho  * Redistribution and use in source and binary forms, with or without modification,
      6       1.1    jruoho  * are permitted provided that the following conditions are met:
      7       1.1    jruoho  *
      8       1.1    jruoho  * Redistributions of source code must retain the above copyright notice,
      9       1.1    jruoho  * this list of conditions and the following disclaimer.
     10       1.1    jruoho  * Redistributions in binary form must reproduce the above copyright notice,
     11       1.1    jruoho  * this list of conditions and the following disclaimer in the documentation
     12       1.1    jruoho  * and/or other materials provided with the distribution.
     13       1.1    jruoho  * Neither the name of Intel Corporation nor the names of its contributors
     14       1.1    jruoho  * may be used to endorse or promote products derived from this software
     15       1.1    jruoho  * without specific prior written permission.
     16       1.1    jruoho  *
     17       1.1    jruoho  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     18       1.1    jruoho  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     19       1.1    jruoho  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     20       1.1    jruoho  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
     21       1.1    jruoho  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     22       1.1    jruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     23       1.1    jruoho  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24       1.1    jruoho  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     25       1.1    jruoho  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     26       1.1    jruoho  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27       1.1    jruoho  */
     28       1.1    jruoho 
     29       1.1    jruoho //
     30       1.1    jruoho //
     31  1.1.1.10  christos // Grammar.asl - Minimally exercises most ASL constructs
     32       1.1    jruoho //
     33       1.1    jruoho // NOTE -- use: iasl -f -of grammar.asl to compile
     34       1.1    jruoho //
     35       1.1    jruoho //         This 1) Ignores errors (checks compiler error handling)
     36       1.1    jruoho //              2) Disables constant folding
     37       1.1    jruoho //
     38       1.1    jruoho //
     39       1.1    jruoho 
     40       1.1    jruoho /*******************************************************************************
     41       1.1    jruoho Compilation should look like this:
     42       1.1    jruoho 
     43       1.1    jruoho C:\acpica\tests\misc>iasl -f -of grammar.asl
     44       1.1    jruoho 
     45       1.1    jruoho Intel ACPI Component Architecture
     46       1.1    jruoho ASL Optimizing Compiler version 20090422 [Apr 22 2009]
     47       1.1    jruoho Copyright (C) 2000 - 2009 Intel Corporation
     48       1.1    jruoho Supports ACPI Specification Revision 3.0a
     49       1.1    jruoho 
     50       1.1    jruoho grammar.asl   187:     Name (_NPK, Package (8)
     51       1.1    jruoho Warning  1098 -                 ^ Unknown reserved name (_NPK)
     52       1.1    jruoho 
     53       1.1    jruoho grammar.asl   510:     NAME (ESC1, "abcdefg\x00hijklmn")
     54       1.1    jruoho Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
     55       1.1    jruoho 
     56       1.1    jruoho grammar.asl   511:     NAME (ESC2, "abcdefg\000hijklmn")
     57       1.1    jruoho Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
     58       1.1    jruoho 
     59       1.1    jruoho grammar.asl   601:     Method (RCIV, 1)
     60       1.1    jruoho Warning  1087 -                   ^ Not all control paths return a value (RCIV)
     61       1.1    jruoho 
     62       1.1    jruoho grammar.asl   608:         RCIV (Subtract (Arg0, 1))
     63       1.1    jruoho Remark   5073 -               ^ Recursive method call (RCIV)
     64       1.1    jruoho 
     65       1.1    jruoho grammar.asl   937:     Method (_ERR, 2)
     66       1.1    jruoho Warning  1077 -                   ^ Reserved method has too few arguments (_ERR requires 3)
     67       1.1    jruoho 
     68       1.1    jruoho grammar.asl  1377:         Store (0x1234567887654321, QWD2)
     69       1.1    jruoho Warning  1032 -                                    ^ 64-bit integer in 32-bit table, truncating
     70       1.1    jruoho 
     71       1.1    jruoho grammar.asl  1379:         if (LNotEqual (Local0, 0x1234567887654321))
     72       1.1    jruoho Warning  1032 -         64-bit integer in 32-bit table, truncating ^
     73       1.1    jruoho 
     74       1.1    jruoho grammar.asl  1459:         SizeOf (BUFO)
     75       1.1    jruoho Warning  1105 -                       ^ Result is not used, operator has no effect
     76       1.1    jruoho 
     77       1.1    jruoho grammar.asl  1485:         Acquire (MTX2, 1)
     78       1.1    jruoho Warning  1104 -                           ^ Possible operator timeout is ignored
     79       1.1    jruoho 
     80       1.1    jruoho grammar.asl  1633:         Add (Local0, Local1)
     81       1.1    jruoho Warning  1105 -                      ^ Result is not used, operator has no effect
     82       1.1    jruoho 
     83       1.1    jruoho grammar.asl  1804:     Method (COND)
     84       1.1    jruoho Warning  1087 -                   ^ Not all control paths return a value (COND)
     85       1.1    jruoho 
     86       1.1    jruoho grammar.asl  6010:             Name (_HID, "*PNP0A06")
     87       1.1    jruoho Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0A06)
     88       1.1    jruoho 
     89       1.1    jruoho grammar.asl  6461:             Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
     90       1.1    jruoho Warning  1038 -        Invalid or unknown escape sequence ^
     91       1.1    jruoho 
     92       1.1    jruoho grammar.asl  6800:                 And (Local0, 1, Local0) //  Local0 &= 1
     93       1.1    jruoho Error    4050 -                              ^ Method local variable is not initialized (Local0)
     94       1.1    jruoho 
     95       1.1    jruoho grammar.asl  6886:             Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
     96       1.1    jruoho Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0C0A)
     97       1.1    jruoho 
     98       1.1    jruoho ASL Input:  grammar.asl - 10254 lines, 322162 bytes, 4810 keywords
     99       1.1    jruoho AML Output: grammar.aml - 43392 bytes, 669 named objects, 4141 executable opcodes
    100       1.1    jruoho 
    101       1.1    jruoho Compilation complete. 3 Errors, 12 Warnings, 1 Remarks, 1101 Optimizations
    102       1.1    jruoho 
    103       1.1    jruoho ***************************************************************************************************/
    104       1.1    jruoho 
    105       1.1    jruoho DefinitionBlock (
    106       1.1    jruoho     "grammar.aml",      //Output filename
    107       1.1    jruoho     "DSDT",             //Signature
    108       1.1    jruoho     0x01,               //DSDT Revision ---> 32-bit table
    109       1.1    jruoho     "Intel",            //OEMID
    110       1.1    jruoho     "GRMTEST",          //TABLE ID
    111       1.1    jruoho     0x20090511          //OEM Revision
    112       1.1    jruoho     )
    113       1.1    jruoho {
    114       1.1    jruoho 
    115       1.1    jruoho     External (\ABCD, UnknownObj)
    116       1.1    jruoho 
    117       1.1    jruoho 
    118       1.1    jruoho     /* Device with _STA and _INI */
    119       1.1    jruoho 
    120       1.1    jruoho     Device (A1)
    121       1.1    jruoho     {
    122       1.1    jruoho         Method (_STA)
    123       1.1    jruoho         {
    124       1.1    jruoho             Return (0x0F)
    125       1.1    jruoho         }
    126       1.1    jruoho 
    127       1.1    jruoho         Method (_INI)
    128       1.1    jruoho         {
    129       1.1    jruoho             Return
    130       1.1    jruoho         }
    131       1.1    jruoho     }
    132       1.1    jruoho 
    133       1.1    jruoho     /* Device with no _STA, has _INI */
    134       1.1    jruoho 
    135       1.1    jruoho     Device (A2)
    136       1.1    jruoho     {
    137       1.1    jruoho         Method (_INI)
    138       1.1    jruoho         {
    139       1.1    jruoho             Return
    140       1.1    jruoho         }
    141       1.1    jruoho     }
    142       1.1    jruoho 
    143       1.1    jruoho     /* Device with _STA, no _INI */
    144       1.1    jruoho 
    145       1.1    jruoho     Device (A3)
    146       1.1    jruoho     {
    147       1.1    jruoho         Method (_STA)
    148       1.1    jruoho         {
    149       1.1    jruoho             Return (0x0F)
    150       1.1    jruoho         }
    151       1.1    jruoho     }
    152       1.1    jruoho 
    153       1.1    jruoho     /* Device with _STA and _INI, but not present */
    154       1.1    jruoho 
    155       1.1    jruoho     Device (A4)
    156       1.1    jruoho     {
    157       1.1    jruoho         Method (_STA)
    158       1.1    jruoho         {
    159       1.1    jruoho             Return (Zero)
    160       1.1    jruoho         }
    161       1.1    jruoho 
    162       1.1    jruoho         Method (_INI)
    163       1.1    jruoho         {
    164       1.1    jruoho             Return
    165       1.1    jruoho         }
    166       1.1    jruoho     }
    167       1.1    jruoho 
    168       1.1    jruoho 
    169       1.1    jruoho     /* Resource descriptors */
    170       1.1    jruoho 
    171       1.1    jruoho     Device (IRES)
    172       1.1    jruoho     {
    173       1.1    jruoho         Name (PRT0, ResourceTemplate ()
    174       1.1    jruoho         {
    175       1.1    jruoho             IRQ (Edge, ActiveHigh, Exclusive) {3,4,5,6,7,9,10,11,14,15}
    176       1.1    jruoho 
    177       1.1    jruoho             StartDependentFn (1,1)
    178       1.1    jruoho             {
    179       1.1    jruoho                 IRQNoFlags () {0,1,2}
    180       1.1    jruoho             }
    181       1.1    jruoho             EndDependentFn ()
    182       1.1    jruoho         })
    183       1.1    jruoho 
    184       1.1    jruoho         Method (_CRS, 0, NotSerialized)
    185       1.1    jruoho         {
    186       1.1    jruoho             Store ("_CRS:", Debug)
    187       1.1    jruoho             Store (PRT0, Debug)
    188       1.1    jruoho             Return (PRT0)
    189       1.1    jruoho         }
    190       1.1    jruoho 
    191       1.1    jruoho         Method (_SRS, 1, Serialized)
    192       1.1    jruoho         {
    193       1.1    jruoho             Store ("_SRS:", Debug)
    194       1.1    jruoho             Store (Arg0, Debug)
    195       1.1    jruoho             Return (Zero)
    196       1.1    jruoho         }
    197       1.1    jruoho     }
    198       1.1    jruoho 
    199       1.1    jruoho     Name (_NPK, Package ()
    200       1.1    jruoho     {
    201       1.1    jruoho         0x1111,
    202       1.1    jruoho         0x2222,
    203       1.1    jruoho         0x3333,
    204       1.1    jruoho         0x4444
    205       1.1    jruoho     })
    206       1.1    jruoho 
    207       1.1    jruoho 
    208       1.1    jruoho     Device (RES)
    209       1.1    jruoho     {
    210       1.1    jruoho         Name (_PRT, Package (0x04)
    211       1.1    jruoho         {
    212       1.1    jruoho             Package (0x04)
    213       1.1    jruoho             {
    214       1.1    jruoho                 0x0002FFFF,
    215       1.1    jruoho                 Zero,
    216       1.1    jruoho                 Zero,
    217       1.1    jruoho                 Zero
    218       1.1    jruoho             },
    219       1.1    jruoho 
    220       1.1    jruoho             Package (0x04)
    221       1.1    jruoho             {
    222       1.1    jruoho                 0x0002FFFF,
    223       1.1    jruoho                 One,
    224       1.1    jruoho                 Zero,
    225       1.1    jruoho                 Zero
    226       1.1    jruoho             },
    227       1.1    jruoho 
    228       1.1    jruoho             Package (0x04)
    229       1.1    jruoho             {
    230       1.1    jruoho                 0x000AFFFF,
    231       1.1    jruoho                 Zero,
    232       1.1    jruoho                 Zero,
    233       1.1    jruoho                 Zero
    234       1.1    jruoho             },
    235       1.1    jruoho 
    236       1.1    jruoho             Package (0x04)
    237       1.1    jruoho             {
    238       1.1    jruoho                 0x000BFFFF,
    239       1.1    jruoho                 Zero,
    240       1.1    jruoho                 Zero,
    241       1.1    jruoho                 Zero
    242       1.1    jruoho             }
    243       1.1    jruoho         })
    244       1.1    jruoho 
    245   1.1.1.3  christos         Method (_CRS, 0, Serialized)
    246       1.1    jruoho         {
    247       1.1    jruoho             Name (PRT0, ResourceTemplate ()
    248       1.1    jruoho             {
    249       1.1    jruoho                 WordBusNumber (ResourceConsumer, MinFixed, MaxFixed, SubDecode,
    250       1.1    jruoho                     0x0000, // Address Space Granularity
    251       1.1    jruoho                     0xFFF2, // Address Range Minimum
    252       1.1    jruoho                     0xFFF3, // Address Range Maximum
    253       1.1    jruoho                     0x0032, // Address Translation Offset
    254       1.1    jruoho                     0x0002,,,)
    255       1.1    jruoho                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
    256       1.1    jruoho                     0x0000, // Address Space Granularity
    257       1.1    jruoho                     0x0000, // Address Range Minimum
    258       1.1    jruoho                     0x00FF, // Address Range Maximum
    259       1.1    jruoho                     0x0000, // Address Translation Offset
    260       1.1    jruoho                     0x0100,,,)
    261       1.1    jruoho                 WordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
    262       1.1    jruoho                     0x0000, // Address Space Granularity
    263       1.1    jruoho                     0xA000, // Address Range Minimum
    264       1.1    jruoho                     0xBFFF, // Address Range Maximum
    265       1.1    jruoho                     0x0000, // Address Translation Offset
    266       1.1    jruoho                     0x2000,,,)
    267       1.1    jruoho                 IO (Decode16, 0x0CF8, 0x0CFF, 0x01, 0x08)
    268       1.1    jruoho                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    269       1.1    jruoho                     0x0000, // Address Space Granularity
    270       1.1    jruoho                     0x0000, // Address Range Minimum
    271       1.1    jruoho                     0x0CF7, // Address Range Maximum
    272       1.1    jruoho                     0x0000, // Address Translation Offset
    273       1.1    jruoho                     0x0CF8,,,
    274       1.1    jruoho                     , TypeStatic)
    275       1.1    jruoho                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    276       1.1    jruoho                     0x0000, // Address Space Granularity
    277       1.1    jruoho                     0x0D00, // Address Range Minimum
    278       1.1    jruoho                     0xFFFF, // Address Range Maximum
    279       1.1    jruoho                     0x0000, // Address Translation Offset
    280       1.1    jruoho                     0xF300,,,
    281       1.1    jruoho                     , TypeStatic)
    282       1.1    jruoho                 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    283       1.1    jruoho                     0x00000000, // Address Space Granularity
    284       1.1    jruoho                     0x00000000, // Address Range Minimum
    285       1.1    jruoho                     0x00000CF7, // Address Range Maximum
    286       1.1    jruoho                     0x00000000, // Address Translation Offset
    287       1.1    jruoho                     0x00000CF8,,,
    288       1.1    jruoho                     , TypeStatic)
    289       1.1    jruoho                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
    290       1.1    jruoho                     0x00000000, // Address Space Granularity
    291       1.1    jruoho                     0x000C8000, // Address Range Minimum
    292       1.1    jruoho                     0x000EFFFF, // Address Range Maximum
    293       1.1    jruoho                     0x00000000, // Address Translation Offset
    294       1.1    jruoho                     0x00028000,,,
    295       1.1    jruoho                     , AddressRangeMemory, TypeStatic)
    296       1.1    jruoho                 DWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
    297       1.1    jruoho                     0x00000000, // Address Space Granularity
    298       1.1    jruoho                     0x000C8000, // Address Range Minimum
    299       1.1    jruoho                     0x000EFFFF, // Address Range Maximum
    300       1.1    jruoho                     0x00000000, // Address Translation Offset
    301       1.1    jruoho                     0x00028000,,,)
    302       1.1    jruoho                 QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    303       1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    304       1.1    jruoho                     0x0000000000000000, // Address Range Minimum
    305       1.1    jruoho                     0x0000000000000CF7, // Address Range Maximum
    306       1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    307       1.1    jruoho                     0x0000000000000CF8, 0x44, "This is a ResouceSource string",
    308       1.1    jruoho                     , TypeStatic)
    309       1.1    jruoho                 QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    310       1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    311       1.1    jruoho                     0x0000000000000000, // Address Range Minimum
    312       1.1    jruoho                     0x0000000000000CF7, // Address Range Maximum
    313       1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    314       1.1    jruoho                     0x0000000000000CF8,,,
    315       1.1    jruoho                     , TypeStatic)
    316       1.1    jruoho                 QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
    317       1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    318       1.1    jruoho                     0x0000000000100000, // Address Range Minimum
    319       1.1    jruoho                     0x00000000FFDFFFFF, // Address Range Maximum
    320       1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    321       1.1    jruoho                     0x00000000FFD00000,,,
    322       1.1    jruoho                     , AddressRangeMemory, TypeStatic)
    323       1.1    jruoho                 QWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
    324       1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    325       1.1    jruoho                     0x0000000000000000, // Address Range Minimum
    326       1.1    jruoho                     0x0000000000000CF7, // Address Range Maximum
    327       1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    328       1.1    jruoho                     0x0000000000000CF8,,,)
    329       1.1    jruoho                 ExtendedIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    330       1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    331       1.1    jruoho                     0x0000000000000000, // Address Range Minimum
    332       1.1    jruoho                     0x0000000000000CF7, // Address Range Maximum
    333       1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    334       1.1    jruoho                     0x0000000000000CF8, // Address Length
    335       1.1    jruoho                     0x0000000000000000, // Type Specific Attributes
    336       1.1    jruoho                     , TypeStatic)
    337       1.1    jruoho                 ExtendedMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
    338       1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    339       1.1    jruoho                     0x0000000000100000, // Address Range Minimum
    340       1.1    jruoho                     0x00000000FFDFFFFF, // Address Range Maximum
    341       1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    342       1.1    jruoho                     0x00000000FFD00000, // Address Length
    343       1.1    jruoho                     0x0000000000000000, // Type Specific Attributes
    344       1.1    jruoho                     , AddressRangeMemory, TypeStatic)
    345       1.1    jruoho                 ExtendedSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0xA3,
    346       1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    347       1.1    jruoho                     0x0000000000100000, // Address Range Minimum
    348       1.1    jruoho                     0x00000000FFDFFFFF, // Address Range Maximum
    349       1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    350       1.1    jruoho                     0x00000000FFD00000, // Address Length
    351       1.1    jruoho                     0x0000000000000000) // Type Specific Attributes
    352       1.1    jruoho                 IO (Decode16, 0x0010, 0x0020, 0x01, 0x10)
    353       1.1    jruoho                 IO (Decode16, 0x0090, 0x00A0, 0x01, 0x10)
    354       1.1    jruoho                 FixedIO (0x0061, 0x01)
    355       1.1    jruoho                 IRQNoFlags () {2}
    356       1.1    jruoho                 DMA (Compatibility, BusMaster, Transfer8_16) {4}
    357       1.1    jruoho                 DMA (Compatibility, BusMaster, Transfer8) {2,5,7}
    358       1.1    jruoho                 Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
    359       1.1    jruoho                 Memory32Fixed (ReadOnly, 0xFFFE0000, 0x00020000)
    360       1.1    jruoho                 Memory32 (ReadOnly, 0x00020000, 0xFFFE0000, 0x00000004, 0x00000200)
    361       1.1    jruoho                 Memory24 (ReadOnly, 0x1111, 0x2222, 0x0004, 0x0200)
    362       1.1    jruoho                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, 0xE, "\\_SB_.TEST")
    363       1.1    jruoho                 {
    364       1.1    jruoho                     0x00000E01,
    365       1.1    jruoho                 }
    366       1.1    jruoho                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0x6, "xxxx")
    367       1.1    jruoho                 {
    368       1.1    jruoho                     0x00000601,
    369       1.1    jruoho                     0x00000003,
    370       1.1    jruoho                     0x00000002,
    371       1.1    jruoho                     0x00000001,
    372       1.1    jruoho                 }
    373       1.1    jruoho                 Interrupt (ResourceProducer, Edge, ActiveHigh, Exclusive)
    374       1.1    jruoho                 {
    375       1.1    jruoho                     0xFFFF0000,
    376       1.1    jruoho                     0x00000003,
    377       1.1    jruoho                     0x00000002,
    378       1.1    jruoho                     0x00000001,
    379       1.1    jruoho                     0x00000005,
    380       1.1    jruoho                     0x00000007,
    381       1.1    jruoho                     0x00000009,
    382       1.1    jruoho                 }
    383       1.1    jruoho                 VendorShort () {0x01, 0x02, 0x03}
    384       1.1    jruoho                 VendorLong ()
    385       1.1    jruoho                 {
    386       1.1    jruoho                     0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
    387       1.1    jruoho                     0x09
    388       1.1    jruoho                 }
    389       1.1    jruoho                 Register (SystemIO, 0x08, 0x00, 0x00000000000000B2, , R000)
    390       1.1    jruoho                 Register (SystemMemory, 0x08, 0x00, 0x00000000000000B2)
    391       1.1    jruoho                 StartDependentFnNoPri ()
    392       1.1    jruoho                 {
    393       1.1    jruoho                     IRQNoFlags () {0,1,2}
    394       1.1    jruoho                     IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,14,15}
    395       1.1    jruoho                 }
    396       1.1    jruoho                 EndDependentFn ()
    397       1.1    jruoho             })
    398       1.1    jruoho             CreateWordField (PRT0, 0x08, BMIN)
    399       1.1    jruoho             CreateByteField (PRT0, R000._ASZ, RSIZ)
    400       1.1    jruoho             Store (0x03, BMIN)
    401       1.1    jruoho             Return (PRT0)
    402       1.1    jruoho         }
    403       1.1    jruoho 
    404   1.1.1.3  christos         Method (_PRS, 0, Serialized)
    405       1.1    jruoho         {
    406       1.1    jruoho             Name (BUF0, ResourceTemplate ()
    407       1.1    jruoho             {
    408       1.1    jruoho                 StartDependentFn (0x01, 0x02)
    409       1.1    jruoho                 {
    410       1.1    jruoho                     IO (Decode16, 0x03D8, 0x03F8, 0x01, 0x08)
    411       1.1    jruoho                     IRQNoFlags () {4}
    412       1.1    jruoho                 }
    413       1.1    jruoho                 StartDependentFn (0x02, 0x01)
    414       1.1    jruoho                 {
    415       1.1    jruoho                     IO (Decode16, 0x03D8, 0x03E8, 0x01, 0x08)
    416       1.1    jruoho                     IRQNoFlags () {4}
    417       1.1    jruoho                 }
    418       1.1    jruoho                 StartDependentFn (0x00, 0x02)
    419       1.1    jruoho                 {
    420       1.1    jruoho                     IO (Decode16, 0x02E8, 0x02F8, 0x01, 0x08)
    421       1.1    jruoho                     IRQNoFlags () {3}
    422       1.1    jruoho                 }
    423       1.1    jruoho                 StartDependentFn (0x00, 0x02)
    424       1.1    jruoho                 {
    425       1.1    jruoho                     IO (Decode16, 0x02D8, 0x02E8, 0x01, 0x08)
    426       1.1    jruoho                     IRQNoFlags () {3}
    427       1.1    jruoho                 }
    428       1.1    jruoho                 StartDependentFn (0x02, 0x00)
    429       1.1    jruoho                 {
    430       1.1    jruoho                     IO (Decode16, 0x0100, 0x03F8, 0x08, 0x08)
    431       1.1    jruoho                     IRQNoFlags () {1,3,4,5,6,7,8,10,11,12,13,14,15}
    432       1.1    jruoho                 }
    433       1.1    jruoho                 EndDependentFn ()
    434       1.1    jruoho             })
    435       1.1    jruoho             Return (BUF0)
    436       1.1    jruoho         }
    437       1.1    jruoho 
    438       1.1    jruoho         Method (_SRS, 1, Serialized)
    439       1.1    jruoho         {
    440       1.1    jruoho             Return (Zero)
    441       1.1    jruoho         }
    442       1.1    jruoho     }
    443       1.1    jruoho 
    444       1.1    jruoho 
    445       1.1    jruoho     Name(\_S0,Package(0x04){
    446       1.1    jruoho         0x00,
    447       1.1    jruoho         0x00,
    448       1.1    jruoho         0x00,
    449       1.1    jruoho         0x00
    450       1.1    jruoho     })
    451       1.1    jruoho     Name(\_S3,Package(0x04){
    452       1.1    jruoho         0x05,
    453       1.1    jruoho         0x05,
    454       1.1    jruoho         0x00,
    455       1.1    jruoho         0x00
    456       1.1    jruoho     })
    457       1.1    jruoho     Name(\_S4,Package(0x04){
    458       1.1    jruoho         0x06,
    459       1.1    jruoho         0x06,
    460       1.1    jruoho         0x00,
    461       1.1    jruoho         0x00
    462       1.1    jruoho     })
    463       1.1    jruoho     Name(\_S5,Package(0x04){
    464       1.1    jruoho         0x07,
    465       1.1    jruoho         0x07,
    466       1.1    jruoho         0x00,
    467       1.1    jruoho         0x00
    468       1.1    jruoho     })
    469       1.1    jruoho 
    470       1.1    jruoho /* Examine this table header (DSDT) */
    471       1.1    jruoho 
    472       1.1    jruoho /*
    473       1.1    jruoho     DataTableRegion (HDR, "DSDT", "", "")
    474       1.1    jruoho     Field (HDR, AnyAcc, NoLock, Preserve)
    475       1.1    jruoho     {
    476       1.1    jruoho         SIG,  32,
    477       1.1    jruoho         LENG, 32,
    478       1.1    jruoho         REV,  8,
    479       1.1    jruoho         SUM,  8,
    480       1.1    jruoho         OID,  48,
    481       1.1    jruoho         OTID, 64,
    482       1.1    jruoho         OREV, 32,
    483       1.1    jruoho         CID,  32,
    484       1.1    jruoho         CREV, 32
    485       1.1    jruoho     }
    486       1.1    jruoho 
    487       1.1    jruoho     Method (SIZE)
    488       1.1    jruoho     {
    489       1.1    jruoho         If (LLess (REV, 2))
    490       1.1    jruoho         {
    491       1.1    jruoho             Store ("32-bit table", Debug)
    492       1.1    jruoho         }
    493       1.1    jruoho         else
    494       1.1    jruoho         {
    495       1.1    jruoho             Store ("64-bit table", Debug)
    496       1.1    jruoho         }
    497       1.1    jruoho         Return (0)
    498       1.1    jruoho     }
    499       1.1    jruoho 
    500       1.1    jruoho */
    501       1.1    jruoho     Name (SIZE, 0)
    502       1.1    jruoho 
    503       1.1    jruoho     /* Custom operation region */
    504       1.1    jruoho 
    505       1.1    jruoho     OperationRegion(MYOP,0x80,0xFD60,0x6)
    506       1.1    jruoho     Field(MYOP,ByteAcc,NoLock,Preserve)
    507       1.1    jruoho     {
    508       1.1    jruoho         MFLD,8
    509       1.1    jruoho     }
    510       1.1    jruoho 
    511   1.1.1.3  christos     Method (TCOP,, Serialized)
    512       1.1    jruoho     {
    513       1.1    jruoho         Name (_STR, Unicode ("test"))
    514       1.1    jruoho         Store (4, MFLD)
    515       1.1    jruoho         Store (MFLD, Local0)
    516       1.1    jruoho     }
    517       1.1    jruoho 
    518       1.1    jruoho     Name (ERRS, 0x0)
    519       1.1    jruoho 
    520       1.1    jruoho     /* Warning should be issued for premature string termination */
    521       1.1    jruoho 
    522       1.1    jruoho     NAME (ESC1, "abcdefg\x00hijklmn")
    523       1.1    jruoho     NAME (ESC2, "abcdefg\000hijklmn")
    524       1.1    jruoho     Name (ESC3, "abc\a\bdef\f\n\r\t\v\x03ffff\432")
    525       1.1    jruoho 
    526       1.1    jruoho 
    527       1.1    jruoho     Name(CRSA,ResourceTemplate()
    528       1.1    jruoho     {
    529       1.1    jruoho         WORDBusNumber(ResourceProducer,MinFixed,MaxFixed,PosDecode,0x0000,0x0019,0x001D,0x0000,0x0005)
    530       1.1    jruoho         WORDIO(ResourceProducer,MinFixed,MaxFixed,PosDecode,NonISAOnlyRanges,0x0000,0xC000,0xCFFF,0x0000,0x1000)
    531       1.1    jruoho         DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
    532       1.1    jruoho 
    533       1.1    jruoho     })
    534       1.1    jruoho     Name(CRSB,ResourceTemplate()
    535       1.1    jruoho     {
    536       1.1    jruoho         DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
    537       1.1    jruoho 
    538       1.1    jruoho     })
    539       1.1    jruoho 
    540       1.1    jruoho     Name(CRSC,ResourceTemplate()
    541       1.1    jruoho     {
    542       1.1    jruoho         VendorShort () {0x1, 0x2, 0x3}
    543       1.1    jruoho     })
    544       1.1    jruoho     Name(CRSD,ResourceTemplate()
    545       1.1    jruoho     {
    546       1.1    jruoho         VendorLong (VNDL) {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9}
    547       1.1    jruoho     })
    548       1.1    jruoho 
    549       1.1    jruoho     Name(CRSE,ResourceTemplate()
    550       1.1    jruoho     {
    551       1.1    jruoho         IRQNoFlags(){3,4,10,11}
    552       1.1    jruoho         IRQNoFlags(xxxt){3,4,10,11}
    553       1.1    jruoho     })
    554       1.1    jruoho     Name(CRSR, Buffer (Add (SizeOf(CRSA),SizeOf(CRSB))){})
    555       1.1    jruoho     Method(_CRS,0,NotSerialized)
    556       1.1    jruoho     {
    557       1.1    jruoho         Return(CRSR)
    558       1.1    jruoho     }
    559       1.1    jruoho 
    560       1.1    jruoho 
    561       1.1    jruoho     //
    562       1.1    jruoho     // Unnamed scope
    563       1.1    jruoho     //
    564       1.1    jruoho     Scope (\)
    565       1.1    jruoho     {
    566       1.1    jruoho         Name(Bxxx,0xFFFFFFFF)
    567       1.1    jruoho     }
    568       1.1    jruoho 
    569       1.1    jruoho     Name (LANS, 0x0)
    570       1.1    jruoho 
    571       1.1    jruoho     PowerResource(LANP,1,0)
    572       1.1    jruoho     {
    573       1.1    jruoho         Method(_STA){
    574       1.1    jruoho             If(LEqual(And(LANS,0x30),0x30)){
    575       1.1    jruoho                 Return(One)
    576       1.1    jruoho             } Else {
    577       1.1    jruoho                 Return(Zero)
    578       1.1    jruoho             }
    579       1.1    jruoho         }
    580       1.1    jruoho         Method(_ON){
    581       1.1    jruoho             If(LNot(_STA())){
    582       1.1    jruoho                 Store (0x30, LANS)
    583       1.1    jruoho             }
    584       1.1    jruoho         }
    585       1.1    jruoho         Method(_OFF){
    586       1.1    jruoho             If(_STA()){
    587       1.1    jruoho                 Store (0, LANS)
    588       1.1    jruoho             }
    589       1.1    jruoho         }
    590       1.1    jruoho     }
    591       1.1    jruoho 
    592       1.1    jruoho 
    593       1.1    jruoho     /* Can a method define another method? */
    594       1.1    jruoho 
    595       1.1    jruoho     /**********************************
    596       1.1    jruoho     Method (TASK, 2, SERIALIZED)
    597       1.1    jruoho     {
    598       1.1    jruoho         Sleep (100)
    599       1.1    jruoho 
    600       1.1    jruoho         Method (TAS2)
    601       1.1    jruoho         {
    602       1.1    jruoho             Sleep (100)
    603       1.1    jruoho         }
    604       1.1    jruoho 
    605       1.1    jruoho         TAS2()
    606       1.1    jruoho         Return
    607       1.1    jruoho 
    608       1.1    jruoho     }
    609       1.1    jruoho     ************************************/
    610       1.1    jruoho 
    611       1.1    jruoho     /* A recursive method */
    612       1.1    jruoho 
    613       1.1    jruoho     Method (RCIV, 1)
    614       1.1    jruoho     {
    615       1.1    jruoho         Store (Arg0, Debug)
    616       1.1    jruoho         If (Lequal (Arg0, 0))
    617       1.1    jruoho         {
    618       1.1    jruoho             Return ()
    619       1.1    jruoho         }
    620       1.1    jruoho         RCIV (Subtract (Arg0, 1))
    621       1.1    jruoho     }
    622       1.1    jruoho 
    623       1.1    jruoho     Method (RTOP)
    624       1.1    jruoho     {
    625       1.1    jruoho         RCIV (100)
    626       1.1    jruoho     }
    627       1.1    jruoho 
    628       1.1    jruoho 
    629       1.1    jruoho     Scope(\_PR)
    630       1.1    jruoho     {
    631       1.1    jruoho         Processor(CPU0,0x0,0xFFFFFFFF,0x0) {}
    632       1.1    jruoho     }
    633       1.1    jruoho 
    634       1.1    jruoho     Name(B1TP,0xFFFFFFFF)
    635       1.1    jruoho 
    636       1.1    jruoho     Name(B2TP,0xFFFFFFFF)
    637       1.1    jruoho     Name(ADPS,0xFFFFFFFF)
    638       1.1    jruoho     Name(B1PS,0xFFFFFFFF)
    639       1.1    jruoho     Name(B1RS,0xFFFFFFFF)
    640       1.1    jruoho     Name(B1CS,0xFFFFFFFF)
    641       1.1    jruoho     Name(B2PS,0xFFFFFFFF)
    642       1.1    jruoho     Name(B2RS,0xFFFFFFFF)
    643       1.1    jruoho     Name(B2CS,0xFFFFFFFF)
    644       1.1    jruoho     Name(B1DC,3000)
    645       1.1    jruoho     Name(B2DC,2600)
    646       1.1    jruoho     Name(B1LF,3000)
    647       1.1    jruoho     Name(B2LF,2600)
    648       1.1    jruoho     Name(BPIF,0)
    649       1.1    jruoho     Name(PBLL,0)
    650       1.1    jruoho 
    651       1.1    jruoho     Name(RBIF,Package()
    652       1.1    jruoho     {
    653       1.1    jruoho         0x1,
    654       1.1    jruoho         2200,
    655       1.1    jruoho         2200,
    656       1.1    jruoho         0x1,
    657       1.1    jruoho         10800,
    658       1.1    jruoho         0,
    659       1.1    jruoho         0,
    660       1.1    jruoho         1,
    661       1.1    jruoho         1,
    662       1.1    jruoho         "CA54200-5003/5",
    663       1.1    jruoho         "1",
    664       1.1    jruoho         "LION",
    665       1.1    jruoho         "Fujitsu"
    666       1.1    jruoho     })
    667       1.1    jruoho 
    668       1.1    jruoho     Method(SMWE, 4)
    669       1.1    jruoho     {
    670       1.1    jruoho        return(ONES)
    671       1.1    jruoho     }
    672       1.1    jruoho 
    673       1.1    jruoho     Method(SMRE, 4)
    674       1.1    jruoho     {
    675       1.1    jruoho        return(ONES)
    676       1.1    jruoho     }
    677       1.1    jruoho 
    678       1.1    jruoho /*
    679       1.1    jruoho     Method(RDBT,0,Serialized){
    680       1.1    jruoho         If(LNot(SMWE(0x09,0x15,1,1))){
    681       1.1    jruoho                     Store(0x18,Local2)
    682       1.1    jruoho             }
    683       1.1    jruoho     }
    684       1.1    jruoho */
    685       1.1    jruoho     Scope(_SB)
    686       1.1    jruoho     {
    687       1.1    jruoho 
    688       1.1    jruoho         Name (SBUF, Buffer (128) {})
    689       1.1    jruoho 
    690       1.1    jruoho         CreateBitField (SBUF, 3, BITY)
    691       1.1    jruoho         CreateByteField (SBUF, 1, BYTY)
    692       1.1    jruoho         CreateWordField (SBUF, 2, WRDZ)
    693       1.1    jruoho         CreateDwordField (SBUF, 4, DWDZ)
    694       1.1    jruoho         CreateQwordField (SBUF, 8, QWDZ)
    695       1.1    jruoho         CreateField (SBUF, 128, 12, FLDZ)
    696       1.1    jruoho         CreateField (SBUF, 148, 96, FLDY)
    697       1.1    jruoho         CreateField (SBUF, 148, 96, \_SB_.FLDW)
    698       1.1    jruoho 
    699       1.1    jruoho         Method (_INI)
    700       1.1    jruoho         {
    701       1.1    jruoho             CreateField (\_SB_.SBUF, 148, 96, FLDV)
    702       1.1    jruoho         }
    703       1.1    jruoho 
    704       1.1    jruoho 
    705       1.1    jruoho         Device(PCI0)
    706       1.1    jruoho         {
    707       1.1    jruoho             Name(_HID,EISAID("PNP0A03"))
    708       1.1    jruoho             Name(_ADR,0x0)
    709       1.1    jruoho 
    710   1.1.1.3  christos             Method(_CRS,, Serialized)
    711       1.1    jruoho             {
    712       1.1    jruoho                 Name(PRT0, ResourceTemplate() {
    713       1.1    jruoho                     WORDBusNumber(                          // Bus number resource(0)
    714       1.1    jruoho                             ResourceConsumer,               // bit 0 of general flags is 1
    715       1.1    jruoho                             MinFixed,                       // Range is notfixed
    716       1.1    jruoho                             MaxFixed,                       // Range is not fixed
    717       1.1    jruoho                             SubDecode,                      // SubDecode
    718       1.1    jruoho                             0x0000,                           // Granularity
    719       1.1    jruoho                             0xfff1,                           // Min
    720       1.1    jruoho                             0xfff2,                           // Max
    721       1.1    jruoho                             0x0032,                           // Translation
    722       1.1    jruoho                             0x0002,,,                         // Range Length
    723       1.1    jruoho                             BUS0
    724       1.1    jruoho                     ) } )// PRT0
    725       1.1    jruoho 
    726  1.1.1.10  christos                 CreateWordField(PRT0, BUS0._MIN, BMIN)          //Minimum bus number supported under this bridge.
    727       1.1    jruoho 
    728       1.1    jruoho                 Store(3, BMIN)
    729       1.1    jruoho                 Return(PRT0)
    730       1.1    jruoho 
    731       1.1    jruoho             } // _CRS
    732       1.1    jruoho 
    733       1.1    jruoho             Method(_SRS)
    734       1.1    jruoho             {
    735       1.1    jruoho                 Return ()
    736       1.1    jruoho             }
    737       1.1    jruoho 
    738       1.1    jruoho             Device(EIO)
    739       1.1    jruoho             {
    740       1.1    jruoho                 OperationRegion(FJIO,SystemIO,0xFD60,0x6)
    741       1.1    jruoho                     Field(FJIO,ByteAcc,NoLock,Preserve)
    742       1.1    jruoho                     {
    743       1.1    jruoho                         GIDX,8,
    744       1.1    jruoho 
    745       1.1    jruoho                         GDTA,8,
    746       1.1    jruoho 
    747       1.1    jruoho                         PIDX,8,
    748       1.1    jruoho 
    749       1.1    jruoho                         PDTA,8,
    750       1.1    jruoho 
    751       1.1    jruoho                         SIDX,8,
    752       1.1    jruoho 
    753       1.1    jruoho                         SDTA,8
    754       1.1    jruoho                     }
    755       1.1    jruoho                     IndexField(GIDX,GDTA,ByteAcc,NoLock,Preserve)
    756       1.1    jruoho                     {
    757       1.1    jruoho                         Offset(0x2),
    758       1.1    jruoho                          ,5,
    759       1.1    jruoho                         VGAS,2,
    760       1.1    jruoho                         Offset(0x4),
    761       1.1    jruoho                          ,4,
    762       1.1    jruoho                         DCKE,1,
    763       1.1    jruoho                         Offset(0x5),
    764       1.1    jruoho                          ,6,
    765       1.1    jruoho                         ACPW,1,
    766       1.1    jruoho 
    767       1.1    jruoho                         Offset(0xA),
    768       1.1    jruoho                         B1P,1,
    769       1.1    jruoho 
    770       1.1    jruoho                         B2P,1,
    771       1.1    jruoho 
    772       1.1    jruoho                         B1C,1,
    773       1.1    jruoho 
    774       1.1    jruoho                         B2C,1,
    775       1.1    jruoho 
    776       1.1    jruoho                         B1ER,1,
    777       1.1    jruoho 
    778       1.1    jruoho                         B2ER,1,
    779       1.1    jruoho 
    780       1.1    jruoho                         Offset(0xB),
    781       1.1    jruoho                         B1CP,8,
    782       1.1    jruoho 
    783       1.1    jruoho                         B2CP,8,
    784       1.1    jruoho 
    785       1.1    jruoho                         BCP,8,
    786       1.1    jruoho 
    787       1.1    jruoho                         B1VH,8,
    788       1.1    jruoho 
    789       1.1    jruoho                         B1VL,8,
    790       1.1    jruoho 
    791       1.1    jruoho                         B2VH,8,
    792       1.1    jruoho 
    793       1.1    jruoho                         B2VL,8,
    794       1.1    jruoho 
    795       1.1    jruoho                         B1TM,8,
    796       1.1    jruoho 
    797       1.1    jruoho                         B2TM,8,
    798       1.1    jruoho 
    799       1.1    jruoho                         B1CH,8,
    800       1.1    jruoho 
    801       1.1    jruoho                         B1CL,8,
    802       1.1    jruoho 
    803       1.1    jruoho                         B2CH,8,
    804       1.1    jruoho 
    805       1.1    jruoho                         B2CL,8
    806       1.1    jruoho                     }
    807       1.1    jruoho                 }
    808       1.1    jruoho             }
    809       1.1    jruoho         }
    810       1.1    jruoho 
    811       1.1    jruoho         Method(RDBT,3,Serialized){
    812       1.1    jruoho             Store(0x1FFF,Local1)
    813       1.1    jruoho             If( Arg0 ){
    814       1.1    jruoho                 Store(0x2FFF,Local1)
    815       1.1    jruoho             }
    816       1.1    jruoho             Store(0x18,Local2)
    817       1.1    jruoho             If( Arg1 ){
    818       1.1    jruoho                 Store(0x10,Local2)
    819       1.1    jruoho             }
    820       1.1    jruoho             If(LNot(SMRE(0x09,0x15,1,RefOf(Local0)))){
    821       1.1    jruoho                 If(LNot(SMWE(0x08,0x14,1,Local1))){
    822       1.1    jruoho                     If(LNot(SMRE(0x09,0x17,Local2,RefOf(Local3)))){
    823       1.1    jruoho                         Store(Local1,Arg2)
    824       1.1    jruoho                     }
    825       1.1    jruoho                 }
    826       1.1    jruoho                 Or(Local0,0xFFF,Local0)
    827       1.1    jruoho                 SMWE(0x08,0x14,1,Local0)
    828       1.1    jruoho             }
    829       1.1    jruoho         }
    830       1.1    jruoho         Method(MKWD,2)
    831       1.1    jruoho         {
    832       1.1    jruoho             If(And(Arg1,0x80)) {
    833       1.1    jruoho                 Or(0xFFFF0000,Arg0,Local0)
    834       1.1    jruoho                 Or(Local0,ShiftLeft(Arg1,8),Local0)
    835       1.1    jruoho                 Subtract(Zero,Local0,Local0)
    836       1.1    jruoho             } else {
    837       1.1    jruoho                 Store(Arg0,Local0)
    838       1.1    jruoho                 Or(Local0,ShiftLeft(Arg1,8),Local0)
    839       1.1    jruoho             }
    840       1.1    jruoho             Return(Local0)
    841       1.1    jruoho         }
    842       1.1    jruoho 
    843       1.1    jruoho         Device(CMB1)
    844       1.1    jruoho         {
    845       1.1    jruoho             Name(_HID,EISAID("PNP0C0A"))
    846       1.1    jruoho             Name(_UID,0x1)
    847       1.1    jruoho             Alias(\_SB.PCI0.EIO.B1P,\_SB_.PCI0.XXXX)
    848       1.1    jruoho             Alias(\_SB.PCI0.EIO.B1P,B1P)
    849       1.1    jruoho             Alias(\_SB.PCI0.EIO.B1C,B1C)
    850       1.1    jruoho             Alias(\_SB.PCI0.EIO.B1CH,B1CH)
    851       1.1    jruoho             Alias(\_SB.PCI0.EIO.B1CL,B1CL)
    852       1.1    jruoho             Alias(\_SB.PCI0.EIO.B1VH,B1VH)
    853       1.1    jruoho             Alias(\_SB.PCI0.EIO.B1VL,B1VL)
    854       1.1    jruoho             Alias(\_SB.PCI0.EIO.B1CP,B1CP)
    855       1.1    jruoho 
    856       1.1    jruoho             Method(_INI)
    857       1.1    jruoho                         {
    858       1.1    jruoho                 Store(B1P, B1PS)
    859       1.1    jruoho                 Store(B1CP,B1RS)
    860       1.1    jruoho                 Store(B1C, B1CS)
    861       1.1    jruoho             }
    862       1.1    jruoho 
    863       1.1    jruoho             Method(_BIF){
    864       1.1    jruoho                 RDBT(Zero,Zero,RefOf(B1DC))
    865       1.1    jruoho                 RDBT(Zero,One,RefOf(B1LF))
    866       1.1    jruoho                 Store(B1DC,Index(RBIF,1))
    867       1.1    jruoho                 Store(B1LF,Index(RBIF,2))
    868       1.1    jruoho                 Store("CA54200-5003/5",Index(RBIF,9))
    869       1.1    jruoho                 Store("1",Index(RBIF,10))
    870       1.1    jruoho                 Return(RBIF)
    871       1.1    jruoho             }
    872       1.1    jruoho 
    873   1.1.1.3  christos             Method(_BST,, Serialized) {
    874       1.1    jruoho 
    875       1.1    jruoho                 _INI()
    876       1.1    jruoho 
    877       1.1    jruoho                 Store(Zero,Local0)
    878       1.1    jruoho 
    879       1.1    jruoho                 if (LAnd(B1P,LNot(B1C))){
    880       1.1    jruoho                     Or(Local0,1,Local0)
    881       1.1    jruoho                 }
    882       1.1    jruoho 
    883       1.1    jruoho                 if (LAnd(B1P,B1C)) {
    884       1.1    jruoho                     Or(Local0,2,Local0)
    885       1.1    jruoho                 }
    886       1.1    jruoho 
    887       1.1    jruoho                 if (LLessEqual(B1CP,1)) {
    888       1.1    jruoho                     Or(Local0,4,Local0)
    889       1.1    jruoho                 }
    890       1.1    jruoho 
    891       1.1    jruoho                 Store(MKWD(B1CL,B1CH),Local1)
    892       1.1    jruoho 
    893       1.1    jruoho                 Store(Divide(Add(Multiply(B1CP,B1LF),99),100),Local2)
    894       1.1    jruoho 
    895       1.1    jruoho                 Store(MKWD(B1VL,B1VH),Local3)
    896       1.1    jruoho 
    897       1.1    jruoho                 Name(STAT,Package(4){})
    898       1.1    jruoho                 Store(Local0,Index(STAT,0))
    899       1.1    jruoho                 Store(Local1,Index(STAT,1))
    900       1.1    jruoho                 Store(Local2,Index(STAT,2))
    901       1.1    jruoho                 Store(Local3,Index(STAT,3))
    902       1.1    jruoho 
    903       1.1    jruoho                 If(LNot(BPIF)){
    904       1.1    jruoho //                    \_SB.PCI0.EIO.EC0.IECT()
    905       1.1    jruoho //                    \_SB.PCI0.EIO.EC0.SECT()
    906       1.1    jruoho                     Store(One,BPIF)
    907       1.1    jruoho                 }
    908       1.1    jruoho                 return(STAT)
    909       1.1    jruoho             }
    910       1.1    jruoho 
    911       1.1    jruoho         }
    912       1.1    jruoho 
    913       1.1    jruoho     Device (DEV1)
    914       1.1    jruoho     {
    915       1.1    jruoho     }
    916       1.1    jruoho 
    917       1.1    jruoho     Scope(\_TZ)
    918       1.1    jruoho     {
    919       1.1    jruoho         ThermalZone(TZ1)
    920       1.1    jruoho         {
    921       1.1    jruoho             Name(_PSL,Package()
    922       1.1    jruoho             {
    923       1.1    jruoho                 \_PR.CPU0
    924       1.1    jruoho             })
    925       1.1    jruoho         }
    926       1.1    jruoho     }
    927       1.1    jruoho 
    928       1.1    jruoho     Method (TZ2, 0, SERIALIZED)
    929       1.1    jruoho     {
    930       1.1    jruoho         Name(_PSL,Package()
    931       1.1    jruoho         {
    932       1.1    jruoho             \_PR.CPU0
    933       1.1    jruoho         })
    934       1.1    jruoho 
    935       1.1    jruoho         Return (_PSL)
    936       1.1    jruoho     }
    937       1.1    jruoho 
    938       1.1    jruoho     ThermalZone (THM1)
    939       1.1    jruoho     {
    940       1.1    jruoho     }
    941       1.1    jruoho 
    942       1.1    jruoho     Method (NOTI)
    943       1.1    jruoho     {
    944       1.1    jruoho         Notify (\DEV1, 0)
    945       1.1    jruoho         Notify (\THM1, 0)
    946       1.1    jruoho         Notify (\_PR.CPU0, 0)
    947       1.1    jruoho     }
    948       1.1    jruoho 
    949   1.1.1.8  christos     Method (_ERR, 3)
    950       1.1    jruoho     {
    951       1.1    jruoho         Increment (ERRS)
    952       1.1    jruoho         Store ("Run-time exception:", Debug)
    953       1.1    jruoho         Store (Arg0, Debug)
    954       1.1    jruoho         Store (Arg1, Debug)
    955       1.1    jruoho 
    956       1.1    jruoho         Return (0)          // Map error to AE_OK
    957       1.1    jruoho     }
    958       1.1    jruoho 
    959       1.1    jruoho     Method (DIV0)
    960       1.1    jruoho     {
    961       1.1    jruoho         Store (1, Local0)
    962       1.1    jruoho         Store (0, Local1)
    963       1.1    jruoho         Divide (Local0, Local1, Local3)
    964       1.1    jruoho 
    965       1.1    jruoho         Store ("DIV0 - noabort", Debug)
    966       1.1    jruoho     }
    967       1.1    jruoho 
    968   1.1.1.7  christos     Method (ERR_, 2)
    969       1.1    jruoho     {
    970   1.1.1.7  christos         Local0 = ToDecimalString (Arg1)
    971       1.1    jruoho         if (LEqual (Arg0, 0))
    972       1.1    jruoho         {
    973   1.1.1.7  christos             Printf ("+*+*+*+* MTHD_ERROR at line %o: Results not equal!", Local0)
    974       1.1    jruoho         }
    975       1.1    jruoho         if (LEqual (Arg0, 1))
    976       1.1    jruoho         {
    977   1.1.1.7  christos             Printf ("+*+*+*+* MTHD_ERROR at line %o: Numeric result is incorrect!", Local0)
    978       1.1    jruoho         }
    979       1.1    jruoho         if (LEqual (Arg0, 2))
    980       1.1    jruoho         {
    981   1.1.1.7  christos             Printf ("+*+*+*+* MTHD_ERROR at line %o: Operand was clobbered!", Local0)
    982       1.1    jruoho         }
    983       1.1    jruoho 
    984       1.1    jruoho         Notify (DEV1, Arg0)
    985       1.1    jruoho         Increment (ERRS)
    986       1.1    jruoho     }
    987       1.1    jruoho 
    988       1.1    jruoho     Method (R226, 2)
    989       1.1    jruoho     {
    990       1.1    jruoho     }
    991       1.1    jruoho     Method (R225, 2)
    992       1.1    jruoho     {
    993       1.1    jruoho         R226 (Arg0, Arg1)
    994       1.1    jruoho     }
    995       1.1    jruoho     Method (R224, 2)
    996       1.1    jruoho     {
    997       1.1    jruoho         R225 (Arg1, Arg0)
    998       1.1    jruoho     }
    999       1.1    jruoho     Method (R223, 2)
   1000       1.1    jruoho     {
   1001       1.1    jruoho         R224 (Arg0, Arg1)
   1002       1.1    jruoho     }
   1003       1.1    jruoho     Method (R222, 2)
   1004       1.1    jruoho     {
   1005       1.1    jruoho         R223 (Arg1, Arg0)
   1006       1.1    jruoho     }
   1007       1.1    jruoho     Method (R111)
   1008       1.1    jruoho     {
   1009       1.1    jruoho         Store (0x01010101, Local0)
   1010       1.1    jruoho         R222 (0xABAB, Local0)
   1011       1.1    jruoho         Store (Local0, Local1)
   1012       1.1    jruoho     }
   1013       1.1    jruoho 
   1014       1.1    jruoho     Method (MAIN)
   1015       1.1    jruoho     {
   1016       1.1    jruoho 
   1017       1.1    jruoho //      SIZE()
   1018       1.1    jruoho         Store (NUM1(), Local0)
   1019       1.1    jruoho         \CMB1._BST()
   1020       1.1    jruoho         RDBT(1,2,3)
   1021       1.1    jruoho         OBJ1(1)
   1022       1.1    jruoho         OBJ2(2)
   1023       1.1    jruoho         CHEK()
   1024       1.1    jruoho         RETZ()
   1025       1.1    jruoho         BITZ()
   1026       1.1    jruoho         LOGS()
   1027       1.1    jruoho         REFS()
   1028       1.1    jruoho         COND()
   1029       1.1    jruoho         TZ2()
   1030       1.1    jruoho 
   1031       1.1    jruoho         //
   1032       1.1    jruoho         // iPCO tests added
   1033       1.1    jruoho         //
   1034       1.1    jruoho         Store (\IFEL.TEST(), Local0)
   1035       1.1    jruoho         if (LGreater (Local0, 0))
   1036       1.1    jruoho         {
   1037   1.1.1.7  christos             ERR_ (1, __LINE__)
   1038       1.1    jruoho             Return(Local0)
   1039       1.1    jruoho         }
   1040       1.1    jruoho 
   1041       1.1    jruoho         Store (\NOSV.TEST(), Local0)
   1042       1.1    jruoho         if (LGreater (Local0, 0))
   1043       1.1    jruoho         {
   1044   1.1.1.7  christos             ERR_ (1, __LINE__)
   1045       1.1    jruoho             Return(Local0)
   1046       1.1    jruoho         }
   1047       1.1    jruoho 
   1048       1.1    jruoho         Store (\IDXF.TEST(), Local0)
   1049       1.1    jruoho         if (LGreater (Local0, 0))
   1050       1.1    jruoho         {
   1051   1.1.1.7  christos             ERR_ (1, __LINE__)
   1052       1.1    jruoho             Return(Local0)
   1053       1.1    jruoho         }
   1054       1.1    jruoho 
   1055       1.1    jruoho         Store (\_SB_.NSTL.TEST(), Local0)
   1056       1.1    jruoho         if (LGreater (Local0, 0))
   1057       1.1    jruoho         {
   1058   1.1.1.7  christos             ERR_ (1, __LINE__)
   1059       1.1    jruoho             Return(Local0)
   1060       1.1    jruoho         }
   1061       1.1    jruoho 
   1062       1.1    jruoho         Store (\RTBF.TEST(), Local0)
   1063       1.1    jruoho         if (LGreater (Local0, 0))
   1064       1.1    jruoho         {
   1065   1.1.1.7  christos             ERR_ (1, __LINE__)
   1066       1.1    jruoho             Return(Local0)
   1067       1.1    jruoho         }
   1068       1.1    jruoho 
   1069       1.1    jruoho         Store (\_SB_.RTLV.TEST(), Local0)
   1070       1.1    jruoho         if (LGreater (Local0, 0))
   1071       1.1    jruoho         {
   1072   1.1.1.7  christos             ERR_ (1, __LINE__)
   1073       1.1    jruoho             Return(Local0)
   1074       1.1    jruoho         }
   1075       1.1    jruoho 
   1076       1.1    jruoho         Store (\_SB_.RETP.TEST(), Local0)
   1077       1.1    jruoho         if (LGreater (Local0, 0))
   1078       1.1    jruoho         {
   1079   1.1.1.7  christos             ERR_ (1, __LINE__)
   1080       1.1    jruoho             Return(Local0)
   1081       1.1    jruoho         }
   1082       1.1    jruoho 
   1083       1.1    jruoho         Store (\WHLR.TEST(), Local0)
   1084       1.1    jruoho         if (LGreater (Local0, 0))
   1085       1.1    jruoho         {
   1086   1.1.1.7  christos             ERR_ (1, __LINE__)
   1087       1.1    jruoho             Return(Local0)
   1088       1.1    jruoho         }
   1089       1.1    jruoho 
   1090       1.1    jruoho         Store (\ANDO.TEST(), Local0)
   1091       1.1    jruoho         if (LGreater (Local0, 0))
   1092       1.1    jruoho         {
   1093   1.1.1.7  christos             ERR_ (1, __LINE__)
   1094       1.1    jruoho             Return(Local0)
   1095       1.1    jruoho         }
   1096       1.1    jruoho 
   1097       1.1    jruoho         Store (\BRKP.TEST(), Local0)
   1098       1.1    jruoho         if (LGreater (Local0, 0))
   1099       1.1    jruoho         {
   1100   1.1.1.7  christos             ERR_ (1, __LINE__)
   1101       1.1    jruoho             Return(Local0)
   1102       1.1    jruoho         }
   1103       1.1    jruoho 
   1104       1.1    jruoho         Store (\ADSU.TEST(), Local0)
   1105       1.1    jruoho         if (LGreater (Local0, 0))
   1106       1.1    jruoho         {
   1107   1.1.1.7  christos             ERR_ (1, __LINE__)
   1108       1.1    jruoho             Return(Local0)
   1109       1.1    jruoho         }
   1110       1.1    jruoho 
   1111       1.1    jruoho         Store (\INDC.TEST(), Local0)
   1112       1.1    jruoho         if (LGreater (Local0, 0))
   1113       1.1    jruoho         {
   1114   1.1.1.7  christos             ERR_ (1, __LINE__)
   1115       1.1    jruoho             Return(Local0)
   1116       1.1    jruoho         }
   1117       1.1    jruoho 
   1118       1.1    jruoho         Store (\LOPS.TEST(), Local0)
   1119       1.1    jruoho         if (LGreater (Local0, 0))
   1120       1.1    jruoho         {
   1121   1.1.1.7  christos             ERR_ (1, __LINE__)
   1122       1.1    jruoho             Return(Local0)
   1123       1.1    jruoho         }
   1124       1.1    jruoho 
   1125       1.1    jruoho         Store (\FDSO.TEST(), Local0)
   1126       1.1    jruoho         if (LGreater (Local0, 0))
   1127       1.1    jruoho         {
   1128   1.1.1.7  christos             ERR_ (1, __LINE__)
   1129       1.1    jruoho             Return(Local0)
   1130       1.1    jruoho         }
   1131       1.1    jruoho 
   1132       1.1    jruoho         Store (\MLDV.TEST(), Local0)
   1133       1.1    jruoho         if (LGreater (Local0, 0))
   1134       1.1    jruoho         {
   1135   1.1.1.7  christos             ERR_ (1, __LINE__)
   1136       1.1    jruoho             Return(Local0)
   1137       1.1    jruoho         }
   1138       1.1    jruoho 
   1139       1.1    jruoho         Store (\NBIT.TEST(), Local0)
   1140       1.1    jruoho         if (LGreater (Local0, 0))
   1141       1.1    jruoho         {
   1142   1.1.1.7  christos             ERR_ (1, __LINE__)
   1143       1.1    jruoho             Return(Local0)
   1144       1.1    jruoho         }
   1145       1.1    jruoho 
   1146       1.1    jruoho         Store (\SHFT.TEST(), Local0)
   1147       1.1    jruoho         if (LGreater (Local0, 0))
   1148       1.1    jruoho         {
   1149   1.1.1.7  christos             ERR_ (1, __LINE__)
   1150       1.1    jruoho             Return(Local0)
   1151       1.1    jruoho         }
   1152       1.1    jruoho 
   1153       1.1    jruoho         Store (\XORD.TEST(), Local0)
   1154       1.1    jruoho         if (LGreater (Local0, 0))
   1155       1.1    jruoho         {
   1156   1.1.1.7  christos             ERR_ (1, __LINE__)
   1157       1.1    jruoho             Return(Local0)
   1158       1.1    jruoho         }
   1159       1.1    jruoho 
   1160       1.1    jruoho         Store (\CRBF.TEST(), Local0)
   1161       1.1    jruoho         if (LGreater (Local0, 0))
   1162       1.1    jruoho         {
   1163   1.1.1.7  christos             ERR_ (1, __LINE__)
   1164       1.1    jruoho             Return(Local0)
   1165       1.1    jruoho         }
   1166       1.1    jruoho 
   1167       1.1    jruoho         Store (\IDX4.TEST(), Local0)
   1168       1.1    jruoho         if (LGreater (Local0, 0))
   1169       1.1    jruoho         {
   1170   1.1.1.7  christos             ERR_ (1, __LINE__)
   1171       1.1    jruoho             Return(Local0)
   1172       1.1    jruoho         }
   1173       1.1    jruoho 
   1174       1.1    jruoho         Store (\EVNT.TEST(), Local0)
   1175       1.1    jruoho         if (LGreater (Local0, 0))
   1176       1.1    jruoho         {
   1177   1.1.1.7  christos             ERR_ (1, __LINE__)
   1178       1.1    jruoho             Return(Local0)
   1179       1.1    jruoho         }
   1180       1.1    jruoho 
   1181       1.1    jruoho         Store (\SZLV.TEST(), Local0)
   1182       1.1    jruoho         if (LGreater (Local0, 0))
   1183       1.1    jruoho         {
   1184   1.1.1.7  christos             ERR_ (1, __LINE__)
   1185       1.1    jruoho             Return(Local0)
   1186       1.1    jruoho         }
   1187       1.1    jruoho 
   1188       1.1    jruoho         Store (\_SB_.BYTF.TEST(), Local0)
   1189       1.1    jruoho         if (LGreater (Local0, 0))
   1190       1.1    jruoho         {
   1191   1.1.1.7  christos             ERR_ (1, __LINE__)
   1192       1.1    jruoho             Return(Local0)
   1193       1.1    jruoho         }
   1194       1.1    jruoho 
   1195       1.1    jruoho         Store (\DWDF.TEST(), Local0)
   1196       1.1    jruoho         if (LGreater (Local0, 0))
   1197       1.1    jruoho         {
   1198   1.1.1.7  christos             ERR_ (1, __LINE__)
   1199       1.1    jruoho             Return(Local0)
   1200       1.1    jruoho         }
   1201       1.1    jruoho 
   1202       1.1    jruoho         Store (\DVAX.TEST(), Local0)
   1203       1.1    jruoho         if (LGreater (Local0, 0))
   1204       1.1    jruoho         {
   1205   1.1.1.7  christos             ERR_ (1, __LINE__)
   1206       1.1    jruoho             Return(Local0)
   1207       1.1    jruoho         }
   1208       1.1    jruoho 
   1209       1.1    jruoho         Store (\IDX6.TEST(), Local0)
   1210       1.1    jruoho         if (LGreater (Local0, 0))
   1211       1.1    jruoho         {
   1212   1.1.1.7  christos             ERR_ (1, __LINE__)
   1213       1.1    jruoho             Return(Local0)
   1214       1.1    jruoho         }
   1215       1.1    jruoho 
   1216       1.1    jruoho         Store (\IDX5.TEST(), Local0)
   1217       1.1    jruoho         if (LGreater (Local0, 0))
   1218       1.1    jruoho         {
   1219   1.1.1.7  christos             ERR_ (1, __LINE__)
   1220       1.1    jruoho             Return(Local0)
   1221       1.1    jruoho         }
   1222       1.1    jruoho 
   1223       1.1    jruoho         Store (\_SB_.IDX0.TEST(), Local0)
   1224       1.1    jruoho         if (LGreater (Local0, 0))
   1225       1.1    jruoho         {
   1226   1.1.1.7  christos             ERR_ (1, __LINE__)
   1227       1.1    jruoho             Return(Local0)
   1228       1.1    jruoho         }
   1229       1.1    jruoho 
   1230       1.1    jruoho         Store (\_SB_.IDX3.TEST(), Local0)
   1231       1.1    jruoho         if (LGreater (Local0, 0))
   1232       1.1    jruoho         {
   1233   1.1.1.7  christos             ERR_ (1, __LINE__)
   1234       1.1    jruoho             Return(Local0)
   1235       1.1    jruoho         }
   1236       1.1    jruoho 
   1237       1.1    jruoho         Store (\IDX7.TEST(), Local0)
   1238       1.1    jruoho         if (LGreater (Local0, 0))
   1239       1.1    jruoho         {
   1240   1.1.1.7  christos             ERR_ (1, __LINE__)
   1241       1.1    jruoho             Return(Local0)
   1242       1.1    jruoho         }
   1243       1.1    jruoho 
   1244       1.1    jruoho         Store (\MTCH.TEST(), Local0)
   1245       1.1    jruoho         if (LGreater (Local0, 0))
   1246       1.1    jruoho         {
   1247   1.1.1.7  christos             ERR_ (1, __LINE__)
   1248       1.1    jruoho             Return(Local0)
   1249       1.1    jruoho         }
   1250       1.1    jruoho 
   1251       1.1    jruoho         Store (\WHLB.TEST(), Local0)
   1252       1.1    jruoho         if (LGreater (Local0, 0))
   1253       1.1    jruoho         {
   1254   1.1.1.7  christos             ERR_ (1, __LINE__)
   1255       1.1    jruoho             Return(Local0)
   1256       1.1    jruoho         }
   1257       1.1    jruoho 
   1258       1.1    jruoho         Store (\_SB_.IDX2.TEST(), Local0)
   1259       1.1    jruoho         if (LGreater (Local0, 0))
   1260       1.1    jruoho         {
   1261   1.1.1.7  christos             ERR_ (1, __LINE__)
   1262       1.1    jruoho             Return(Local0)
   1263       1.1    jruoho         }
   1264       1.1    jruoho 
   1265       1.1    jruoho         Store (\SIZO.TEST(), Local0)
   1266       1.1    jruoho         if (LGreater (Local0, 0))
   1267       1.1    jruoho         {
   1268   1.1.1.7  christos             ERR_ (1, __LINE__)
   1269       1.1    jruoho             Return(Local0)
   1270       1.1    jruoho         }
   1271       1.1    jruoho 
   1272       1.1    jruoho         Store (\_SB_.SMIS.TEST(), Local0)
   1273       1.1    jruoho         if (LGreater (Local0, 0))
   1274       1.1    jruoho         {
   1275   1.1.1.7  christos             ERR_ (1, __LINE__)
   1276       1.1    jruoho             Return(Local0)
   1277       1.1    jruoho         }
   1278       1.1    jruoho 
   1279       1.1    jruoho         if (LGreater (ERRS, 0))
   1280       1.1    jruoho         {
   1281       1.1    jruoho             Store ("****** There were errors during the execution of the test ******", Debug)
   1282       1.1    jruoho         }
   1283       1.1    jruoho 
   1284   1.1.1.6  christos         // Flush all notifies
   1285   1.1.1.6  christos 
   1286   1.1.1.6  christos         Sleep (250)
   1287   1.1.1.6  christos 
   1288       1.1    jruoho         //
   1289       1.1    jruoho         // Last Test
   1290       1.1    jruoho         //
   1291       1.1    jruoho 
   1292       1.1    jruoho         Return(0) // Success
   1293       1.1    jruoho     }
   1294       1.1    jruoho 
   1295       1.1    jruoho 
   1296       1.1    jruoho     Method (OBJ1, 1, SERIALIZED)
   1297       1.1    jruoho     {
   1298       1.1    jruoho 
   1299       1.1    jruoho         Store (3, Local0)
   1300       1.1    jruoho         Name(BUFR, Buffer (Local0) {})
   1301       1.1    jruoho         Name(BUF1, Buffer (4) {1,2,3,4})
   1302       1.1    jruoho         Name(BUF2, Buffer (4) {})
   1303       1.1    jruoho 
   1304       1.1    jruoho         Store (BUF1, BUF2)
   1305       1.1    jruoho         Mutex (MTX1, 4)
   1306       1.1    jruoho 
   1307       1.1    jruoho         Alias (MTX1, MTX2)
   1308       1.1    jruoho     }
   1309       1.1    jruoho 
   1310       1.1    jruoho 
   1311       1.1    jruoho     Mutex (MTXT, 0)
   1312       1.1    jruoho     Mutex (MTXX, 0)
   1313       1.1    jruoho 
   1314       1.1    jruoho     /*
   1315       1.1    jruoho      * Field Creation
   1316       1.1    jruoho      */
   1317       1.1    jruoho 
   1318   1.1.1.3  christos     Method (FLDS,, Serialized)
   1319       1.1    jruoho     {
   1320       1.1    jruoho         Store ("++++++++ Creating BufferFields", Debug)
   1321       1.1    jruoho         Name (BUF2, Buffer (128) {})
   1322       1.1    jruoho 
   1323       1.1    jruoho         CreateBitField (BUF2, 3, BIT2)
   1324       1.1    jruoho         CreateByteField (BUF2, 1, BYT2)
   1325       1.1    jruoho         CreateWordField (BUF2, 2, WRD2)
   1326       1.1    jruoho         CreateDwordField (BUF2, 4, DWD2)
   1327       1.1    jruoho         CreateQwordField (BUF2, 8, QWD2)
   1328       1.1    jruoho         CreateField (BUF2, 128, 12, FLD2)
   1329       1.1    jruoho         CreateField (BUF2, 148, 96, FLD3)
   1330       1.1    jruoho 
   1331       1.1    jruoho         Store (0x1, BIT2)
   1332       1.1    jruoho         Store (BIT2, Local0)
   1333       1.1    jruoho         if (LNotEqual (Local0, 0x1))
   1334       1.1    jruoho         {
   1335   1.1.1.7  christos             ERR_ (1, __LINE__)
   1336       1.1    jruoho         }
   1337       1.1    jruoho         else
   1338       1.1    jruoho         {
   1339       1.1    jruoho             Store (DerefOf (Index (BUF2, 0)), Local0)
   1340       1.1    jruoho             if (LNotEqual (Local0, 0x08))
   1341       1.1    jruoho             {
   1342   1.1.1.7  christos                 ERR_ (1, __LINE__)
   1343       1.1    jruoho             }
   1344       1.1    jruoho             else
   1345       1.1    jruoho             {
   1346       1.1    jruoho                 Store ("++++++++ Bit BufferField I/O PASS", Debug)
   1347       1.1    jruoho             }
   1348       1.1    jruoho         }
   1349       1.1    jruoho 
   1350       1.1    jruoho         Store (0x1A, BYT2)
   1351       1.1    jruoho         Store (BYT2, Local0)
   1352       1.1    jruoho         if (LNotEqual (Local0, 0x1A))
   1353       1.1    jruoho         {
   1354   1.1.1.7  christos             ERR_ (1, __LINE__)
   1355       1.1    jruoho         }
   1356       1.1    jruoho         else
   1357       1.1    jruoho         {
   1358       1.1    jruoho             Store ("++++++++ Byte BufferField I/O PASS", Debug)
   1359       1.1    jruoho         }
   1360       1.1    jruoho 
   1361       1.1    jruoho         Store (0x1234, WRD2)
   1362       1.1    jruoho         Store (WRD2, Local0)
   1363       1.1    jruoho         if (LNotEqual (Local0, 0x1234))
   1364       1.1    jruoho         {
   1365   1.1.1.7  christos             ERR_ (1, __LINE__)
   1366       1.1    jruoho         }
   1367       1.1    jruoho         else
   1368       1.1    jruoho         {
   1369       1.1    jruoho             Store ("++++++++ Word BufferField I/O PASS", Debug)
   1370       1.1    jruoho         }
   1371       1.1    jruoho 
   1372       1.1    jruoho         Store (0x123, FLD2)
   1373       1.1    jruoho         Store (FLD2, Local0)
   1374       1.1    jruoho         if (LNotEqual (Local0, 0x123))
   1375       1.1    jruoho         {
   1376   1.1.1.7  christos             ERR_ (1, __LINE__)
   1377       1.1    jruoho         }
   1378       1.1    jruoho         else
   1379       1.1    jruoho         {
   1380       1.1    jruoho             Store ("++++++++ 12-bit BufferField I/O PASS", Debug)
   1381       1.1    jruoho         }
   1382       1.1    jruoho 
   1383       1.1    jruoho         Store (0x12345678, DWD2)
   1384       1.1    jruoho         Store (DWD2, Local0)
   1385       1.1    jruoho         if (LNotEqual (Local0, 0x12345678))
   1386       1.1    jruoho         {
   1387   1.1.1.7  christos             ERR_ (1, __LINE__)
   1388       1.1    jruoho         }
   1389       1.1    jruoho         else
   1390       1.1    jruoho         {
   1391       1.1    jruoho             Store ("++++++++ Dword BufferField I/O PASS", Debug)
   1392       1.1    jruoho         }
   1393       1.1    jruoho 
   1394       1.1    jruoho         Store (0x1234567887654321, QWD2)
   1395       1.1    jruoho         Store (QWD2, Local0)
   1396       1.1    jruoho         if (LNotEqual (Local0, 0x1234567887654321))
   1397       1.1    jruoho         {
   1398   1.1.1.7  christos             ERR_ (1, __LINE__)
   1399       1.1    jruoho         }
   1400       1.1    jruoho         else
   1401       1.1    jruoho         {
   1402       1.1    jruoho             Store ("++++++++ Qword BufferField I/O PASS", Debug)
   1403       1.1    jruoho         }
   1404       1.1    jruoho     }
   1405       1.1    jruoho 
   1406       1.1    jruoho 
   1407       1.1    jruoho     /* Field execution */
   1408       1.1    jruoho 
   1409   1.1.1.3  christos     Method (FLDX,, Serialized)
   1410       1.1    jruoho     {
   1411       1.1    jruoho         Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
   1412       1.1    jruoho         {   //  Field:  SMEM overlay using 32-bit field elements
   1413       1.1    jruoho             SMD0,   32, //  32-bits
   1414       1.1    jruoho             SMD1,   32,     //  32-bits
   1415       1.1    jruoho             SMD2,   32,     //  32-bits
   1416       1.1    jruoho             SMD3,   32  //  32-bits
   1417       1.1    jruoho         }   //  Field:  SMEM overlay using 32-bit field elements
   1418       1.1    jruoho         Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
   1419       1.1    jruoho         {   //  Field:  SMEM overlay using greater than 32-bit field elements
   1420       1.1    jruoho             SME0,   69, //  larger than an integer (32 or 64)
   1421       1.1    jruoho             SME1,   97  //  larger than an integer
   1422       1.1    jruoho         }   //  Field:  SMEM overlay using greater than 32-bit field elements
   1423       1.1    jruoho     }
   1424       1.1    jruoho 
   1425       1.1    jruoho 
   1426       1.1    jruoho     Method (MTX_, )
   1427       1.1    jruoho     {
   1428       1.1    jruoho         /* Test "Force release" of mutex on method exit */
   1429       1.1    jruoho 
   1430       1.1    jruoho         Acquire (MTXT, 0xFFFF)
   1431       1.1    jruoho         Acquire (MTXX, 0xFFFF)
   1432       1.1    jruoho 
   1433       1.1    jruoho         Store ("++++++++ Acquiring Mutex MTX2", Debug)
   1434       1.1    jruoho         Acquire (_GL_, 0xFFFF)
   1435       1.1    jruoho 
   1436       1.1    jruoho 
   1437       1.1    jruoho         Store ("++++++++ Releasing Mutex MTX2", Debug)
   1438       1.1    jruoho         Release (_GL_)
   1439       1.1    jruoho     }
   1440       1.1    jruoho 
   1441       1.1    jruoho 
   1442   1.1.1.3  christos     Method (OBJ2, 1, Serialized)
   1443       1.1    jruoho     {
   1444       1.1    jruoho         Store ("++++++++ Creating Buffer BUFO", Debug)
   1445       1.1    jruoho         Name (BUFO, Buffer (32) {})
   1446       1.1    jruoho 
   1447       1.1    jruoho         Store ("++++++++ Creating OpRegion OPR2", Debug)
   1448       1.1    jruoho         OperationRegion (OPR2, SystemMemory, Arg0, 256)
   1449       1.1    jruoho 
   1450       1.1    jruoho         Store ("++++++++ Creating Field(s) in OpRegion OPR2", Debug)
   1451       1.1    jruoho         Field (OPR2, ByteAcc, NoLock, Preserve)
   1452       1.1    jruoho         {
   1453       1.1    jruoho             IDX2, 8,
   1454       1.1    jruoho             DAT2, 8,
   1455       1.1    jruoho             BNK2, 4
   1456       1.1    jruoho         }
   1457       1.1    jruoho 
   1458       1.1    jruoho         Store ("++++++++ Creating BankField BNK2 in OpRegion OPR2", Debug)
   1459       1.1    jruoho         //
   1460       1.1    jruoho         // mcw 3/20/00 - changed FET0, 4, FET1, 3 to FET0, 1, FET1, 1
   1461       1.1    jruoho         //
   1462       1.1    jruoho         BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
   1463       1.1    jruoho         {
   1464       1.1    jruoho             FET0, 4,
   1465       1.1    jruoho             FET1, 3
   1466       1.1    jruoho         }
   1467       1.1    jruoho 
   1468       1.1    jruoho         Store ("++++++++ Creating IndexField", Debug)
   1469       1.1    jruoho         IndexField (IDX2, DAT2, ByteAcc, NoLock, Preserve)
   1470       1.1    jruoho         {
   1471       1.1    jruoho             FET2, 4,
   1472       1.1    jruoho             FET3, 3
   1473       1.1    jruoho         }
   1474       1.1    jruoho 
   1475       1.1    jruoho         Store ("++++++++ SizeOf (BUFO)", Debug)
   1476       1.1    jruoho         SizeOf (BUFO)
   1477       1.1    jruoho 
   1478       1.1    jruoho         Store ("++++++++ Store (SizeOf (BUFO), Local0)", Debug)
   1479       1.1    jruoho         Store (SizeOf (BUFO), Local0)
   1480       1.1    jruoho 
   1481       1.1    jruoho         Store ("++++++++ Concatenate (\"abd\", \"def\", Local0)", Debug)
   1482       1.1    jruoho         Concatenate ("abd", "def", Local0)
   1483       1.1    jruoho         Store (Local0, Debug)
   1484       1.1    jruoho 
   1485       1.1    jruoho         Store ("++++++++ Concatenate (\"abd\", 0x7B, Local0)", Debug)
   1486       1.1    jruoho         Concatenate ("abd", 0x7B, Local0)
   1487       1.1    jruoho         Store (Local0, Debug)
   1488       1.1    jruoho 
   1489       1.1    jruoho         Store ("++++++++ Creating Event EVT2", Debug)
   1490       1.1    jruoho         Event (EVT2)
   1491       1.1    jruoho 
   1492       1.1    jruoho         Store ("++++++++ Creating Mutex MTX2", Debug)
   1493       1.1    jruoho         Mutex (MTX2, 0)
   1494       1.1    jruoho 
   1495       1.1    jruoho         Store ("++++++++ Creating Alias MTXA to MTX2", Debug)
   1496       1.1    jruoho         Alias (MTX2, MTXA)
   1497       1.1    jruoho 
   1498       1.1    jruoho         Store ("++++++++ Acquiring Mutex MTX2", Debug)
   1499       1.1    jruoho         Acquire (MTX2, 0xFFFF)
   1500       1.1    jruoho 
   1501       1.1    jruoho         Store ("++++++++ Acquiring Mutex MTX2 (2nd acquire)", Debug)
   1502       1.1    jruoho         Acquire (MTX2, 1)
   1503       1.1    jruoho 
   1504       1.1    jruoho         Store ("++++++++ Releasing Mutex MTX2", Debug)
   1505       1.1    jruoho         Release (MTX2)
   1506       1.1    jruoho 
   1507       1.1    jruoho         // Type 1 opcodes
   1508       1.1    jruoho 
   1509       1.1    jruoho         Store ("++++++++ Signalling Event EVT2", Debug)
   1510       1.1    jruoho         Signal (EVT2)
   1511       1.1    jruoho 
   1512       1.1    jruoho         Store ("++++++++ Resetting Event EVT2", Debug)
   1513       1.1    jruoho         Reset (EVT2)
   1514       1.1    jruoho 
   1515       1.1    jruoho         Store ("++++++++ Signalling Event EVT2", Debug)
   1516       1.1    jruoho         Signal (EVT2)
   1517       1.1    jruoho 
   1518       1.1    jruoho         Store ("++++++++ Waiting Event EVT2", Debug)
   1519       1.1    jruoho         Wait (EVT2, 0xFFFF)
   1520       1.1    jruoho 
   1521       1.1    jruoho         Store ("++++++++ Sleep", Debug)
   1522       1.1    jruoho         Sleep (100)
   1523       1.1    jruoho 
   1524       1.1    jruoho         Store ("++++++++ Stall", Debug)
   1525       1.1    jruoho         Stall (254)
   1526       1.1    jruoho 
   1527       1.1    jruoho         Store ("++++++++ NoOperation", Debug)
   1528       1.1    jruoho         Noop
   1529       1.1    jruoho 
   1530       1.1    jruoho         // Type 2 Opcodes
   1531       1.1    jruoho 
   1532       1.1    jruoho         Store ("++++++++ Return from Method OBJ2", Debug)
   1533       1.1    jruoho         return (4)
   1534       1.1    jruoho     }
   1535       1.1    jruoho 
   1536       1.1    jruoho 
   1537       1.1    jruoho     Method (NUM1, 0)
   1538       1.1    jruoho     {
   1539       1.1    jruoho         /* ADD */
   1540       1.1    jruoho 
   1541       1.1    jruoho         Store ("++++++++ Add (0x12345678, 0x11111111, Local0)", Debug)
   1542       1.1    jruoho         Add (0x12345678, 0x11111111, Local0)
   1543       1.1    jruoho 
   1544       1.1    jruoho         Store ("++++++++ Store (Add (0x12345678, 0x11111111), Local1)", Debug)
   1545       1.1    jruoho         Store (Add (0x12345678, 0x11111111), Local1)
   1546       1.1    jruoho 
   1547       1.1    jruoho         Store ("++++++++ Checking result from ADD", Debug)
   1548       1.1    jruoho         if (LNotEqual (Local0, Local1))
   1549       1.1    jruoho         {
   1550   1.1.1.7  christos             ERR_ (0, __LINE__)
   1551       1.1    jruoho         }
   1552       1.1    jruoho 
   1553       1.1    jruoho 
   1554       1.1    jruoho         /* SUBTRACT */
   1555       1.1    jruoho 
   1556       1.1    jruoho         Store ("++++++++ Subtract (0x87654321, 0x11111111, Local4)", Debug)
   1557       1.1    jruoho         Subtract (0x87654321, 0x11111111, Local4)
   1558       1.1    jruoho 
   1559       1.1    jruoho         Store ("++++++++ Store (Subtract (0x87654321, 0x11111111), Local5)", Debug)
   1560       1.1    jruoho         Store (Subtract (0x87654321, 0x11111111), Local5)
   1561       1.1    jruoho 
   1562       1.1    jruoho         Store ("++++++++ Checking result from SUBTRACT", Debug)
   1563       1.1    jruoho         if (LNotEqual (Local4, Local5))
   1564       1.1    jruoho         {
   1565   1.1.1.7  christos             ERR_ (0, __LINE__)
   1566       1.1    jruoho         }
   1567       1.1    jruoho 
   1568       1.1    jruoho 
   1569       1.1    jruoho         /* MULTIPLY */
   1570       1.1    jruoho 
   1571       1.1    jruoho         Store ("++++++++ Multiply (33, 10, Local6)", Debug)
   1572       1.1    jruoho         Multiply (33, 10, Local6)
   1573       1.1    jruoho 
   1574       1.1    jruoho         Store ("++++++++ Store (Multiply (33, 10), Local7)", Debug)
   1575       1.1    jruoho         Store (Multiply (33, 10), Local7)
   1576       1.1    jruoho 
   1577       1.1    jruoho 
   1578       1.1    jruoho         Store ("++++++++ Checking result from MULTIPLY", Debug)
   1579       1.1    jruoho         if (LNotEqual (Local6, Local7))
   1580       1.1    jruoho         {
   1581   1.1.1.7  christos             ERR_ (0, __LINE__)
   1582       1.1    jruoho         }
   1583       1.1    jruoho 
   1584       1.1    jruoho 
   1585       1.1    jruoho         /* DIVIDE */
   1586       1.1    jruoho 
   1587       1.1    jruoho         Store ("++++++++ Divide (100, 9, Local1, Local2)", Debug)
   1588       1.1    jruoho         Divide (100, 9, Local1, Local2)
   1589       1.1    jruoho 
   1590       1.1    jruoho         Store ("++++++++ Store (Divide (100, 9), Local3)", Debug)
   1591       1.1    jruoho         Store (Divide (100, 9), Local3)
   1592       1.1    jruoho 
   1593       1.1    jruoho         Store ("++++++++ Checking (quotient) result from DIVIDE", Debug)
   1594       1.1    jruoho         if (LNotEqual (Local2, Local3))
   1595       1.1    jruoho         {
   1596   1.1.1.7  christos             ERR_ (0, __LINE__)
   1597       1.1    jruoho         }
   1598       1.1    jruoho 
   1599       1.1    jruoho 
   1600       1.1    jruoho         /* INCREMENT */
   1601       1.1    jruoho 
   1602       1.1    jruoho         Store ("++++++++ Increment (Local0)", Debug)
   1603       1.1    jruoho         Store (1, Local0)
   1604       1.1    jruoho         Store (2, Local1)
   1605       1.1    jruoho         Increment (Local0)
   1606       1.1    jruoho 
   1607       1.1    jruoho         Store ("++++++++ Checking result from INCREMENT", Debug)
   1608       1.1    jruoho         if (LNotEqual (Local0, Local1))
   1609       1.1    jruoho         {
   1610   1.1.1.7  christos             ERR_ (0, __LINE__)
   1611       1.1    jruoho         }
   1612       1.1    jruoho 
   1613       1.1    jruoho 
   1614       1.1    jruoho         /* DECREMENT */
   1615       1.1    jruoho 
   1616       1.1    jruoho         Store ("++++++++ Decrement (Local0)", Debug)
   1617       1.1    jruoho         Store (2, Local0)
   1618       1.1    jruoho         Store (1, Local1)
   1619       1.1    jruoho         Decrement (Local0)
   1620       1.1    jruoho 
   1621       1.1    jruoho         Store ("++++++++ Checking result from DECREMENT", Debug)
   1622       1.1    jruoho         if (LNotEqual (Local0, Local1))
   1623       1.1    jruoho         {
   1624   1.1.1.7  christos             ERR_ (0, __LINE__)
   1625       1.1    jruoho         }
   1626       1.1    jruoho 
   1627       1.1    jruoho 
   1628       1.1    jruoho         /* TOBCD */
   1629       1.1    jruoho         /* FROMBCD */
   1630       1.1    jruoho 
   1631       1.1    jruoho         Store ("++++++++ ToBCD (0x1234, Local5)", Debug)
   1632       1.1    jruoho         ToBCD (0x1234, Local5)
   1633       1.1    jruoho 
   1634       1.1    jruoho         Store ("++++++++ FromBCD (Local5, Local6)", Debug)
   1635       1.1    jruoho         FromBCD (Local5, Local6)
   1636       1.1    jruoho 
   1637       1.1    jruoho         Store ("++++++++ Return (Local6)", Debug)
   1638       1.1    jruoho         Return (Local6)
   1639       1.1    jruoho     }
   1640       1.1    jruoho 
   1641       1.1    jruoho 
   1642       1.1    jruoho     Method (CHEK)
   1643       1.1    jruoho     {
   1644       1.1    jruoho 
   1645       1.1    jruoho         Store (3, Local0)
   1646       1.1    jruoho         Store (3, Debug)
   1647       1.1    jruoho         Store (Local0, Debug)
   1648       1.1    jruoho         Store (7, Local1)
   1649       1.1    jruoho 
   1650       1.1    jruoho         Add (Local0, Local1)
   1651       1.1    jruoho         if (LNotEqual (Local0, 3))
   1652       1.1    jruoho         {
   1653   1.1.1.7  christos             ERR_ (2, __LINE__)
   1654       1.1    jruoho         }
   1655       1.1    jruoho         if (LNotEqual (Local1, 7))
   1656       1.1    jruoho         {
   1657   1.1.1.7  christos             ERR_ (2, __LINE__)
   1658       1.1    jruoho         }
   1659       1.1    jruoho 
   1660       1.1    jruoho 
   1661       1.1    jruoho         Add (Local0, Local1, Local2)
   1662       1.1    jruoho         if (LNotEqual (Local0, 3))
   1663       1.1    jruoho         {
   1664   1.1.1.7  christos             ERR_ (2, __LINE__)
   1665       1.1    jruoho         }
   1666       1.1    jruoho         if (LNotEqual (Local1, 7))
   1667       1.1    jruoho         {
   1668   1.1.1.7  christos             ERR_ (2, __LINE__)
   1669       1.1    jruoho         }
   1670       1.1    jruoho     }
   1671       1.1    jruoho 
   1672       1.1    jruoho 
   1673       1.1    jruoho     Method (RET1)
   1674       1.1    jruoho     {
   1675       1.1    jruoho         Store (3, Local0)
   1676       1.1    jruoho         Return (Local0)
   1677       1.1    jruoho     }
   1678       1.1    jruoho 
   1679       1.1    jruoho     Method (RET2)
   1680       1.1    jruoho     {
   1681       1.1    jruoho         Return (RET1())
   1682       1.1    jruoho     }
   1683       1.1    jruoho 
   1684       1.1    jruoho     Method (RETZ)
   1685       1.1    jruoho     {
   1686       1.1    jruoho         RET2 ()
   1687       1.1    jruoho     }
   1688       1.1    jruoho 
   1689       1.1    jruoho 
   1690       1.1    jruoho     Method (BITZ)
   1691       1.1    jruoho     {
   1692       1.1    jruoho         Store ("++++++++ FindSetLeftBit (0x00100100, Local0)", Debug)
   1693       1.1    jruoho         FindSetLeftBit (0x00100100, Local0)
   1694       1.1    jruoho         if (LNotEqual (Local0, 21))
   1695       1.1    jruoho         {
   1696   1.1.1.7  christos             ERR_ (1, __LINE__)
   1697       1.1    jruoho         }
   1698       1.1    jruoho 
   1699       1.1    jruoho         Store ("++++++++ FindSetRightBit (0x00100100, Local1)", Debug)
   1700       1.1    jruoho         FindSetRightBit (0x00100100, Local1)
   1701       1.1    jruoho         if (LNotEqual (Local1, 9))
   1702       1.1    jruoho         {
   1703   1.1.1.7  christos             ERR_ (1, __LINE__)
   1704       1.1    jruoho         }
   1705       1.1    jruoho 
   1706       1.1    jruoho         Store ("++++++++ And (0xF0F0F0F0, 0x11111111, Local2)", Debug)
   1707       1.1    jruoho         And (0xF0F0F0F0, 0x11111111, Local2)
   1708       1.1    jruoho         if (LNotEqual (Local2, 0x10101010))
   1709       1.1    jruoho         {
   1710   1.1.1.7  christos             ERR_ (1, __LINE__)
   1711       1.1    jruoho         }
   1712       1.1    jruoho 
   1713       1.1    jruoho         Store ("++++++++ NAnd (0xF0F0F0F0, 0x11111111, Local3)", Debug)
   1714       1.1    jruoho         NAnd (0xF0F0F0F0, 0x11111111, Local3)
   1715       1.1    jruoho         if (LNotEqual (Local3, 0xEFEFEFEF))
   1716       1.1    jruoho         {
   1717   1.1.1.7  christos             ERR_ (1, __LINE__)
   1718       1.1    jruoho         }
   1719       1.1    jruoho 
   1720       1.1    jruoho         Store ("++++++++ Or (0x11111111, 0x22222222, Local4)", Debug)
   1721       1.1    jruoho         Or (0x11111111, 0x22222222, Local4)
   1722       1.1    jruoho         if (LNotEqual (Local4, 0x33333333))
   1723       1.1    jruoho         {
   1724   1.1.1.7  christos             ERR_ (1, __LINE__)
   1725       1.1    jruoho         }
   1726       1.1    jruoho 
   1727       1.1    jruoho         Store ("++++++++ NOr (0x11111111, 0x22222222, Local5)", Debug)
   1728       1.1    jruoho         NOr (0x11111111, 0x22222222, Local5)
   1729       1.1    jruoho         if (LNotEqual (Local5, 0xCCCCCCCC))
   1730       1.1    jruoho         {
   1731   1.1.1.7  christos             ERR_ (1, __LINE__)
   1732       1.1    jruoho         }
   1733       1.1    jruoho 
   1734       1.1    jruoho         Store ("++++++++ XOr (0x11113333, 0x22222222, Local6)", Debug)
   1735       1.1    jruoho         XOr (0x11113333, 0x22222222, Local6)
   1736       1.1    jruoho         if (LNotEqual (Local6, 0x33331111))
   1737       1.1    jruoho         {
   1738   1.1.1.7  christos             ERR_ (1, __LINE__)
   1739       1.1    jruoho         }
   1740       1.1    jruoho 
   1741       1.1    jruoho         Store ("++++++++ ShiftLeft (0x11112222, 2, Local7)", Debug)
   1742       1.1    jruoho         ShiftLeft (0x11112222, 2, Local7)
   1743       1.1    jruoho         if (LNotEqual (Local7, 0x44448888))
   1744       1.1    jruoho         {
   1745   1.1.1.7  christos             ERR_ (1, __LINE__)
   1746       1.1    jruoho         }
   1747       1.1    jruoho 
   1748       1.1    jruoho         Store ("++++++++ ShiftRight (Local7, 2, Local7)", Debug)
   1749       1.1    jruoho         ShiftRight (Local7, 2, Local7)
   1750       1.1    jruoho         if (LNotEqual (Local7, 0x11112222))
   1751       1.1    jruoho         {
   1752   1.1.1.7  christos             ERR_ (1, __LINE__)
   1753       1.1    jruoho         }
   1754       1.1    jruoho 
   1755       1.1    jruoho 
   1756       1.1    jruoho         Store ("++++++++ Not (Local0, Local1)", Debug)
   1757       1.1    jruoho         Store (0x22224444, Local0)
   1758       1.1    jruoho         Not (Local0, Local1)
   1759       1.1    jruoho         if (LNotEqual (Local0, 0x22224444))
   1760       1.1    jruoho         {
   1761   1.1.1.7  christos             ERR_ (2, __LINE__)
   1762       1.1    jruoho         }
   1763       1.1    jruoho 
   1764       1.1    jruoho         if (LNotEqual (Local1, 0xDDDDBBBB))
   1765       1.1    jruoho         {
   1766   1.1.1.7  christos             ERR_ (1, __LINE__)
   1767       1.1    jruoho         }
   1768       1.1    jruoho 
   1769       1.1    jruoho         Return (Local7)
   1770       1.1    jruoho     }
   1771       1.1    jruoho 
   1772       1.1    jruoho 
   1773       1.1    jruoho     Method (LOGS)
   1774       1.1    jruoho     {
   1775       1.1    jruoho 
   1776       1.1    jruoho         Store ("++++++++ Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)", Debug)
   1777       1.1    jruoho         Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)
   1778       1.1    jruoho 
   1779       1.1    jruoho         Store ("++++++++ Store (LEqual (0xFFFFFFFF, 0x11111111), Local)", Debug)
   1780       1.1    jruoho         Store (LEqual (0xFFFFFFFF, 0x11111111), Local1)
   1781       1.1    jruoho 
   1782       1.1    jruoho         Store ("++++++++ Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)", Debug)
   1783       1.1    jruoho         Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)
   1784       1.1    jruoho 
   1785       1.1    jruoho         Store ("++++++++ Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)", Debug)
   1786       1.1    jruoho         Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)
   1787       1.1    jruoho 
   1788       1.1    jruoho         Store ("++++++++ Store (LLess (0xFFFFFFFF, 0x11111111), Local4)", Debug)
   1789       1.1    jruoho         Store (LLess (0xFFFFFFFF, 0x11111111), Local4)
   1790       1.1    jruoho 
   1791       1.1    jruoho         Store ("++++++++ Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)", Debug)
   1792       1.1    jruoho         Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)
   1793       1.1    jruoho 
   1794       1.1    jruoho         Store ("++++++++ Store (LNot (0x31313131), Local6)", Debug)
   1795       1.1    jruoho         Store (0x00001111, Local6)
   1796       1.1    jruoho         Store (LNot (Local6), Local7)
   1797       1.1    jruoho         if (LNotEqual (Local6, 0x00001111))
   1798       1.1    jruoho         {
   1799   1.1.1.7  christos             ERR_ (2, __LINE__)
   1800       1.1    jruoho         }
   1801       1.1    jruoho 
   1802       1.1    jruoho         if (LNotEqual (Local7, 0x0))
   1803       1.1    jruoho         {
   1804   1.1.1.7  christos             ERR_ (1, __LINE__)
   1805       1.1    jruoho         }
   1806       1.1    jruoho 
   1807       1.1    jruoho 
   1808       1.1    jruoho         Store ("++++++++ Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)", Debug)
   1809       1.1    jruoho         Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)
   1810       1.1    jruoho 
   1811       1.1    jruoho         Store ("++++++++ Lor (0x0, 0x1)", Debug)
   1812       1.1    jruoho         if (Lor (0x0, 0x1))
   1813       1.1    jruoho         {
   1814       1.1    jruoho             Store ("+_+_+_+_+ Lor (0x0, 0x1) returned TRUE", Debug)
   1815       1.1    jruoho         }
   1816       1.1    jruoho 
   1817       1.1    jruoho         return (Local7)
   1818       1.1    jruoho     }
   1819       1.1    jruoho 
   1820       1.1    jruoho 
   1821       1.1    jruoho     Method (COND)
   1822       1.1    jruoho     {
   1823       1.1    jruoho         Store ("++++++++ Store (0x4, Local0)", Debug)
   1824       1.1    jruoho         Store (0x4, Local0)
   1825       1.1    jruoho 
   1826       1.1    jruoho         Store ("++++++++ While (Local0)", Debug)
   1827       1.1    jruoho         While (Local0)
   1828       1.1    jruoho         {
   1829       1.1    jruoho             Store ("++++++++ Decrement (Local0)", Debug)
   1830       1.1    jruoho             Decrement (Local0)
   1831       1.1    jruoho         }
   1832       1.1    jruoho 
   1833       1.1    jruoho 
   1834       1.1    jruoho         Store ("++++++++ Store (0x3, Local6)", Debug)
   1835       1.1    jruoho         Store (0x3, Local6)
   1836       1.1    jruoho 
   1837       1.1    jruoho         Store ("++++++++ While (Subtract (Local6, 1))", Debug)
   1838       1.1    jruoho         While (Subtract (Local6, 1))
   1839       1.1    jruoho         {
   1840       1.1    jruoho             Store ("++++++++ Decrement (Local6)", Debug)
   1841       1.1    jruoho             Decrement (Local6)
   1842       1.1    jruoho         }
   1843       1.1    jruoho 
   1844       1.1    jruoho 
   1845       1.1    jruoho         Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
   1846       1.1    jruoho         If (LGreater (0x2, 0x1))
   1847       1.1    jruoho         {
   1848       1.1    jruoho             Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
   1849       1.1    jruoho             If (LEqual (0x11111111, 0x22222222))
   1850       1.1    jruoho             {
   1851       1.1    jruoho                 Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
   1852       1.1    jruoho             }
   1853       1.1    jruoho 
   1854       1.1    jruoho             else
   1855       1.1    jruoho             {
   1856       1.1    jruoho                 Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
   1857       1.1    jruoho                 If (LNot (0x0))
   1858       1.1    jruoho                 {
   1859       1.1    jruoho                     Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
   1860       1.1    jruoho                     If (LAnd (0xEEEEEEEE, 0x2))
   1861       1.1    jruoho                     {
   1862       1.1    jruoho                         Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
   1863       1.1    jruoho                         If (LLess (0x44444444, 0x3))
   1864       1.1    jruoho                         {
   1865       1.1    jruoho                             Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
   1866       1.1    jruoho                         }
   1867       1.1    jruoho 
   1868       1.1    jruoho                         else
   1869       1.1    jruoho                         {
   1870       1.1    jruoho                             Store ("++++++++ Exiting from nested IF/ELSE statements", Debug)
   1871       1.1    jruoho                         }
   1872       1.1    jruoho                     }
   1873       1.1    jruoho                 }
   1874       1.1    jruoho             }
   1875       1.1    jruoho         }
   1876       1.1    jruoho 
   1877       1.1    jruoho 
   1878       1.1    jruoho         Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
   1879       1.1    jruoho         If (LGreater (0x2, 0x1))
   1880       1.1    jruoho         {
   1881       1.1    jruoho             Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
   1882       1.1    jruoho             If (LEqual (0x11111111, 0x22222222))
   1883       1.1    jruoho             {
   1884       1.1    jruoho                 Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
   1885       1.1    jruoho             }
   1886       1.1    jruoho 
   1887       1.1    jruoho             else
   1888       1.1    jruoho             {
   1889       1.1    jruoho                 Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
   1890       1.1    jruoho                 If (LNot (0x0))
   1891       1.1    jruoho                 {
   1892       1.1    jruoho                     Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
   1893       1.1    jruoho                     If (LAnd (0xEEEEEEEE, 0x2))
   1894       1.1    jruoho                     {
   1895       1.1    jruoho                         Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
   1896       1.1    jruoho                         If (LLess (0x44444444, 0x3))
   1897       1.1    jruoho                         {
   1898       1.1    jruoho                             Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
   1899       1.1    jruoho                         }
   1900       1.1    jruoho 
   1901       1.1    jruoho                         else
   1902       1.1    jruoho                         {
   1903       1.1    jruoho                             Store ("++++++++ Returning from nested IF/ELSE statements", Debug)
   1904       1.1    jruoho                             Return (Local6)
   1905       1.1    jruoho                         }
   1906       1.1    jruoho                     }
   1907       1.1    jruoho                 }
   1908       1.1    jruoho             }
   1909       1.1    jruoho         }
   1910       1.1    jruoho 
   1911       1.1    jruoho     }
   1912       1.1    jruoho 
   1913       1.1    jruoho 
   1914   1.1.1.3  christos     Method (REFS,, Serialized)
   1915       1.1    jruoho     {
   1916       1.1    jruoho         Name (BBUF, Buffer() {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7})
   1917       1.1    jruoho 
   1918       1.1    jruoho         Name (NEST, Package ()
   1919       1.1    jruoho         {
   1920       1.1    jruoho             Package ()
   1921       1.1    jruoho             {
   1922       1.1    jruoho                 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
   1923       1.1    jruoho             },
   1924       1.1    jruoho             Package ()
   1925       1.1    jruoho             {
   1926       1.1    jruoho                 0x11, 0x12, 0x12, 0x14, 0x15, 0x16
   1927       1.1    jruoho             }
   1928       1.1    jruoho         })
   1929       1.1    jruoho 
   1930       1.1    jruoho         Store (RefOf (MAIN), Local5)
   1931       1.1    jruoho 
   1932       1.1    jruoho         // For this to work, ABCD must NOT exist.
   1933       1.1    jruoho 
   1934       1.1    jruoho         Store (CondRefOf (ABCD, Local0), Local1)
   1935       1.1    jruoho         if (LNotEqual (Local1, 0))
   1936       1.1    jruoho         {
   1937   1.1.1.7  christos             ERR_ (2, __LINE__)
   1938       1.1    jruoho         }
   1939       1.1    jruoho 
   1940       1.1    jruoho         Store (CondRefOf (BBUF, Local0), Local1)
   1941       1.1    jruoho         if (LNotEqual (Local1, Ones))
   1942       1.1    jruoho         {
   1943   1.1.1.7  christos             ERR_ (2, __LINE__)
   1944       1.1    jruoho         }
   1945       1.1    jruoho 
   1946       1.1    jruoho         Store (DeRefOf (Index (BBUF, 3)), Local6)
   1947       1.1    jruoho         if (LNotEqual (Local6, 0xB3))
   1948       1.1    jruoho         {
   1949   1.1.1.7  christos             ERR_ (2, __LINE__)
   1950       1.1    jruoho         }
   1951       1.1    jruoho 
   1952       1.1    jruoho         Store (DeRefOf (Index (DeRefOf (Index (NEST, 1)), 3)), Local0)
   1953       1.1    jruoho         if (LNotEqual (Local0, 0x14))
   1954       1.1    jruoho         {
   1955   1.1.1.7  christos             ERR_ (2, __LINE__)
   1956       1.1    jruoho         }
   1957       1.1    jruoho 
   1958       1.1    jruoho 
   1959       1.1    jruoho         Store (0x11223344, Local0)
   1960       1.1    jruoho         Store (RefOf (Local0), Local1)
   1961       1.1    jruoho 
   1962       1.1    jruoho         Store (DerefOf (Local1), Local2)
   1963       1.1    jruoho         If (LNotEqual (Local2, 0x11223344))
   1964       1.1    jruoho         {
   1965   1.1.1.7  christos             ERR_ (2, __LINE__)
   1966       1.1    jruoho         }
   1967       1.1    jruoho 
   1968       1.1    jruoho 
   1969       1.1    jruoho     /* Parser thinks this is a method invocation!! */
   1970       1.1    jruoho 
   1971       1.1    jruoho     //  RefOf (MAIN)
   1972       1.1    jruoho 
   1973       1.1    jruoho 
   1974       1.1    jruoho     //  RefOf (R___)
   1975       1.1    jruoho     //  RefOf (BBUF)
   1976       1.1    jruoho 
   1977       1.1    jruoho     //  Store (RefOf (Local0), Local1)
   1978       1.1    jruoho 
   1979       1.1    jruoho     //  CondRefOf (BBUF, Local2)
   1980       1.1    jruoho     //  CondRefOf (R___, Local3)
   1981       1.1    jruoho 
   1982       1.1    jruoho     //  Store (DerefOf (Local1), Local4)
   1983       1.1    jruoho 
   1984       1.1    jruoho     //  Return (Local4)
   1985       1.1    jruoho     }
   1986       1.1    jruoho 
   1987       1.1    jruoho 
   1988   1.1.1.3  christos     Method (INDX, 0, Serialized)
   1989       1.1    jruoho     {
   1990       1.1    jruoho         Name(STAT,Package(4){})
   1991       1.1    jruoho         Store(0x44443333,Index(STAT,0))
   1992       1.1    jruoho     }
   1993       1.1    jruoho 
   1994       1.1    jruoho //=================================================================
   1995       1.1    jruoho //=================================================================
   1996       1.1    jruoho //===================== iPCO TESTS ================================
   1997       1.1    jruoho //=================================================================
   1998       1.1    jruoho //=================================================================
   1999       1.1    jruoho //
   2000       1.1    jruoho //
   2001       1.1    jruoho // test IfElseOp.asl
   2002       1.1    jruoho //
   2003       1.1    jruoho //  test for IfOp and ElseOp, including validation of object stack cleanup
   2004       1.1    jruoho //
   2005       1.1    jruoho     Device (IFEL)
   2006       1.1    jruoho     {
   2007       1.1    jruoho         Name (DWRD, 1)
   2008       1.1    jruoho         Name (RSLT, 0)
   2009       1.1    jruoho 
   2010       1.1    jruoho         //  IFNR control method executes IfOp branch with NO nested Return
   2011       1.1    jruoho         //  and no Else branch
   2012       1.1    jruoho         Method (IFNR)
   2013       1.1    jruoho         {
   2014       1.1    jruoho             Store (DWRD, RSLT)
   2015       1.1    jruoho             If (LEqual (DWRD, 1))
   2016       1.1    jruoho             {
   2017       1.1    jruoho                 Store (0, RSLT)
   2018       1.1    jruoho             }
   2019       1.1    jruoho         }   //  IFNR
   2020       1.1    jruoho 
   2021       1.1    jruoho         //  NINR control method does not execute If branch and has no Else branch
   2022       1.1    jruoho         Method (NINR)
   2023       1.1    jruoho         {
   2024       1.1    jruoho             Store (0, RSLT)
   2025       1.1    jruoho             If (LNotEqual (DWRD, 1))
   2026       1.1    jruoho             {
   2027       1.1    jruoho                 Store (DWRD, RSLT)
   2028       1.1    jruoho             }
   2029       1.1    jruoho         }   //  NINR
   2030       1.1    jruoho 
   2031       1.1    jruoho         //  IENR control method executes IfOp branch with NO nested Return
   2032       1.1    jruoho         Method (IENR)
   2033       1.1    jruoho         {
   2034       1.1    jruoho             If (LEqual (DWRD, 1))
   2035       1.1    jruoho             {
   2036       1.1    jruoho                 Store (0, RSLT)
   2037       1.1    jruoho             }
   2038       1.1    jruoho             Else
   2039       1.1    jruoho             {
   2040       1.1    jruoho                 Store (DWRD, RSLT)
   2041       1.1    jruoho             }
   2042       1.1    jruoho         }   //  IENR
   2043       1.1    jruoho 
   2044       1.1    jruoho         //  ELNR control method executes ElseOp branch with NO nested Return
   2045       1.1    jruoho         Method (ELNR)
   2046       1.1    jruoho         {
   2047       1.1    jruoho             If (LNotEqual (DWRD, 1))
   2048       1.1    jruoho             {
   2049       1.1    jruoho                 Store (DWRD, RSLT)
   2050       1.1    jruoho             }
   2051       1.1    jruoho             Else
   2052       1.1    jruoho             {
   2053       1.1    jruoho                 Store (0, RSLT)
   2054       1.1    jruoho             }
   2055       1.1    jruoho         }   //  ELNR
   2056       1.1    jruoho 
   2057       1.1    jruoho         //  IFRT control method executes IfOp branch with nested Return with
   2058       1.1    jruoho         //  no Else branch
   2059       1.1    jruoho         Method (IFRT)
   2060       1.1    jruoho 
   2061       1.1    jruoho         {
   2062       1.1    jruoho             If (LEqual (DWRD, 1))
   2063       1.1    jruoho             {
   2064       1.1    jruoho                 Return (0)
   2065       1.1    jruoho             }
   2066       1.1    jruoho             Return (DWRD)
   2067       1.1    jruoho         }   //  IFRT
   2068       1.1    jruoho 
   2069       1.1    jruoho         //  IERT control method executes IfOp branch with nested Return with
   2070       1.1    jruoho         //  Else branch
   2071       1.1    jruoho         Method (IERT)
   2072       1.1    jruoho         {
   2073       1.1    jruoho             If (LEqual (DWRD, 1))
   2074       1.1    jruoho             {
   2075       1.1    jruoho                 Return (0)
   2076       1.1    jruoho             }
   2077       1.1    jruoho             Else
   2078       1.1    jruoho             {
   2079       1.1    jruoho                 Return (DWRD)
   2080       1.1    jruoho             }
   2081       1.1    jruoho         }   //  IERT
   2082       1.1    jruoho 
   2083       1.1    jruoho         //  ELRT control method executes ElseOp branch with nested Return
   2084       1.1    jruoho         Method (ELRT)
   2085       1.1    jruoho         {
   2086       1.1    jruoho             If (LNotEqual (DWRD, 1))
   2087       1.1    jruoho             {
   2088       1.1    jruoho                 Return (DWRD)
   2089       1.1    jruoho             }
   2090       1.1    jruoho             Else
   2091       1.1    jruoho             {
   2092       1.1    jruoho                 Return (0)
   2093       1.1    jruoho             }
   2094       1.1    jruoho         }   //  ELRT
   2095       1.1    jruoho 
   2096       1.1    jruoho         Method (TEST)
   2097       1.1    jruoho         {
   2098       1.1    jruoho             Store ("++++++++ IfElseOp Test", Debug)
   2099       1.1    jruoho 
   2100       1.1    jruoho             //  IfOp with NO return value
   2101       1.1    jruoho             IFNR()
   2102       1.1    jruoho             If (LNotEqual (RSLT, 0))
   2103       1.1    jruoho             {
   2104       1.1    jruoho                 Return (RSLT)
   2105       1.1    jruoho             }
   2106       1.1    jruoho 
   2107       1.1    jruoho             //  IfOp with NO return value
   2108       1.1    jruoho             NINR()
   2109       1.1    jruoho             If (LNotEqual (RSLT, 0))
   2110       1.1    jruoho             {
   2111       1.1    jruoho                 Return (RSLT)
   2112       1.1    jruoho             }
   2113       1.1    jruoho 
   2114       1.1    jruoho             //  IfOp with NO return value
   2115       1.1    jruoho             IENR()
   2116       1.1    jruoho             If (LNotEqual (RSLT, 0))
   2117       1.1    jruoho             {
   2118       1.1    jruoho                 Return (RSLT)
   2119       1.1    jruoho             }
   2120       1.1    jruoho 
   2121       1.1    jruoho             //  ElseOp with NO return value
   2122       1.1    jruoho             ELNR()
   2123       1.1    jruoho             If (LNotEqual (RSLT, 0))
   2124       1.1    jruoho             {
   2125       1.1    jruoho                 Return (RSLT)
   2126       1.1    jruoho             }
   2127       1.1    jruoho 
   2128       1.1    jruoho             //  IfOp with return value
   2129       1.1    jruoho             Store (IFRT, RSLT)
   2130       1.1    jruoho             If (LNotEqual (RSLT, 0))
   2131       1.1    jruoho             {
   2132       1.1    jruoho                 Return (RSLT)
   2133       1.1    jruoho             }
   2134       1.1    jruoho 
   2135       1.1    jruoho             //  IfOp with return value
   2136       1.1    jruoho             Store (IERT, RSLT)
   2137       1.1    jruoho             If (LNotEqual (RSLT, 0))
   2138       1.1    jruoho             {
   2139       1.1    jruoho                 Return (RSLT)
   2140       1.1    jruoho             }
   2141       1.1    jruoho 
   2142       1.1    jruoho             //  ElseOp with return value
   2143       1.1    jruoho             Store (ELRT, RSLT)
   2144       1.1    jruoho             If (LNotEqual (RSLT, 0))
   2145       1.1    jruoho             {
   2146       1.1    jruoho                 Return (RSLT)
   2147       1.1    jruoho             }
   2148       1.1    jruoho 
   2149       1.1    jruoho             Return (0)
   2150       1.1    jruoho         }   //  TEST
   2151       1.1    jruoho     }   //  IFEL
   2152       1.1    jruoho 
   2153       1.1    jruoho //
   2154       1.1    jruoho // test NoSave.asl
   2155       1.1    jruoho //
   2156       1.1    jruoho //
   2157       1.1    jruoho //  Internal test cases to validate IfOp (Operator (,,)) where Operator
   2158       1.1    jruoho //  target is ZeroOp to throw away the results.
   2159       1.1    jruoho //  Includes internal test cases for logical operators with no destination
   2160       1.1    jruoho //  operands.
   2161       1.1    jruoho //
   2162       1.1    jruoho     Device (NOSV)
   2163       1.1    jruoho     {
   2164   1.1.1.3  christos         Method (TEST,, Serialized)
   2165       1.1    jruoho         {
   2166       1.1    jruoho             Store ("++++++++ NoSave Test", Debug)
   2167       1.1    jruoho 
   2168       1.1    jruoho             Name (WRD, 0x1234)
   2169       1.1    jruoho 
   2170       1.1    jruoho             //
   2171       1.1    jruoho             //  Begin test of nested operators without saving results
   2172       1.1    jruoho             //
   2173       1.1    jruoho 
   2174       1.1    jruoho             //  Test If (And ()) with no save of And result
   2175       1.1    jruoho             If (And (3, 1, ))
   2176       1.1    jruoho             {
   2177       1.1    jruoho                 Store (1, WRD)  //  pass -- just do something
   2178       1.1    jruoho             }
   2179       1.1    jruoho             else
   2180       1.1    jruoho             {
   2181       1.1    jruoho                 Return (1)      //  fail
   2182       1.1    jruoho             }
   2183       1.1    jruoho 
   2184       1.1    jruoho             //  Test If (And ()) with no save of And result
   2185       1.1    jruoho             If (And (4, 1, ))
   2186       1.1    jruoho             {
   2187       1.1    jruoho                 Return (2)      //  fail
   2188       1.1    jruoho             }
   2189       1.1    jruoho             else
   2190       1.1    jruoho             {
   2191       1.1    jruoho                 Store (2, WRD)  //  pass -- just do something
   2192       1.1    jruoho             }
   2193       1.1    jruoho 
   2194       1.1    jruoho 
   2195       1.1    jruoho             //  Test If (NAnd ()) with no save of NAnd result
   2196       1.1    jruoho             If (NAnd (3, 1, ))
   2197       1.1    jruoho             {
   2198       1.1    jruoho                 Store (3, WRD)  //  pass -- just do something
   2199       1.1    jruoho             }
   2200       1.1    jruoho             else
   2201       1.1    jruoho             {
   2202       1.1    jruoho                 Return (3)      //  fail
   2203       1.1    jruoho             }
   2204       1.1    jruoho 
   2205       1.1    jruoho             //  Test If (NAnd ()) with no save of NAnd result
   2206       1.1    jruoho             If (NAnd (0xFFFFFFFF, 0xFFFFFFFF, ))
   2207       1.1    jruoho             {
   2208       1.1    jruoho                 Return (4)      // fail
   2209       1.1    jruoho             }
   2210       1.1    jruoho             else
   2211       1.1    jruoho             {
   2212       1.1    jruoho                 Store (4, WRD)  //  pass -- just do something
   2213       1.1    jruoho             }
   2214       1.1    jruoho 
   2215       1.1    jruoho 
   2216       1.1    jruoho             //  Test If (NOr ()) with no save of NOr result
   2217       1.1    jruoho             If (NOr (0, 1, ))
   2218       1.1    jruoho             {
   2219       1.1    jruoho                 Store (5, WRD)  //  pass -- just do something
   2220       1.1    jruoho             }
   2221       1.1    jruoho             else
   2222       1.1    jruoho             {
   2223       1.1    jruoho                 Return (5)      //  fail
   2224       1.1    jruoho             }
   2225       1.1    jruoho 
   2226       1.1    jruoho             //  Test If (NOr ()) with no save of NOr result
   2227       1.1    jruoho             If (NOr (0xFFFFFFFE, 1, ))
   2228       1.1    jruoho             {
   2229       1.1    jruoho                 Return (6)      // fail
   2230       1.1    jruoho             }
   2231       1.1    jruoho             else
   2232       1.1    jruoho             {
   2233       1.1    jruoho                 Store (6, WRD)  //  pass -- just do something
   2234       1.1    jruoho             }
   2235       1.1    jruoho 
   2236       1.1    jruoho 
   2237       1.1    jruoho             //  Test If (Not ()) with no save of Not result
   2238       1.1    jruoho             If (Not (1, ))
   2239       1.1    jruoho             {
   2240       1.1    jruoho                 Store (7, WRD)  //  pass -- just do something
   2241       1.1    jruoho             }
   2242       1.1    jruoho             else
   2243       1.1    jruoho             {
   2244       1.1    jruoho                 Return (7)      //  fail
   2245       1.1    jruoho             }
   2246       1.1    jruoho 
   2247       1.1    jruoho             //  Test If (Not ()) with no save of Not result
   2248       1.1    jruoho             If (Not (0xFFFFFFFF, ))
   2249       1.1    jruoho             {
   2250       1.1    jruoho                 Return (8)      // fail
   2251       1.1    jruoho             }
   2252       1.1    jruoho             else
   2253       1.1    jruoho             {
   2254       1.1    jruoho                 Store (8, WRD)  //  pass -- just do something
   2255       1.1    jruoho             }
   2256       1.1    jruoho 
   2257       1.1    jruoho 
   2258       1.1    jruoho             //  Test If (Or ()) with no save of Or result
   2259       1.1    jruoho             If (Or (3, 1, ))
   2260       1.1    jruoho             {
   2261       1.1    jruoho                 Store (9, WRD)  //  pass -- just do something
   2262       1.1    jruoho             }
   2263       1.1    jruoho             else
   2264       1.1    jruoho             {
   2265       1.1    jruoho                 Return (9)      //  fail
   2266       1.1    jruoho             }
   2267       1.1    jruoho 
   2268       1.1    jruoho             //  Test If (Or ()) with no save of Or result
   2269       1.1    jruoho             If (Or (0, 0, ))
   2270       1.1    jruoho             {
   2271       1.1    jruoho                 Return (10)     //  fail
   2272       1.1    jruoho             }
   2273       1.1    jruoho             else
   2274       1.1    jruoho             {
   2275       1.1    jruoho                 Store (10, WRD) //  pass -- just do something
   2276       1.1    jruoho             }
   2277       1.1    jruoho 
   2278       1.1    jruoho 
   2279       1.1    jruoho             //  Test If (XOr ()) with no save of XOr result
   2280       1.1    jruoho             If (XOr (3, 1, ))
   2281       1.1    jruoho             {
   2282       1.1    jruoho                 Store (11, WRD) //  pass -- just do something
   2283       1.1    jruoho             }
   2284       1.1    jruoho             else
   2285       1.1    jruoho             {
   2286       1.1    jruoho                 Return (11)     // fail
   2287       1.1    jruoho             }
   2288       1.1    jruoho 
   2289       1.1    jruoho             //  Test If (XOr ()) with no save of XOr result
   2290       1.1    jruoho             If (XOr (3, 3, ))
   2291       1.1    jruoho             {
   2292       1.1    jruoho                 Return (12)     // fail
   2293       1.1    jruoho             }
   2294       1.1    jruoho             else
   2295       1.1    jruoho             {
   2296       1.1    jruoho                 Store (12, WRD) //  pass -- just do something
   2297       1.1    jruoho             }
   2298       1.1    jruoho 
   2299       1.1    jruoho 
   2300       1.1    jruoho             //
   2301       1.1    jruoho             //  Begin test of logical operators with no destination operands
   2302       1.1    jruoho             //
   2303       1.1    jruoho 
   2304       1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2305       1.1    jruoho             If (LAnd (3, 3))
   2306       1.1    jruoho             {
   2307       1.1    jruoho                 Store (21, WRD) //  pass -- just do something
   2308       1.1    jruoho             }
   2309       1.1    jruoho             else
   2310       1.1    jruoho             {
   2311       1.1    jruoho                 Return (21)     // fail
   2312       1.1    jruoho             }
   2313       1.1    jruoho 
   2314       1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2315       1.1    jruoho             If (LAnd (3, 0))
   2316       1.1    jruoho             {
   2317       1.1    jruoho                 Return (22)     // fail
   2318       1.1    jruoho             }
   2319       1.1    jruoho             else
   2320       1.1    jruoho             {
   2321       1.1    jruoho                 Store (22, WRD) //  pass -- just do something
   2322       1.1    jruoho             }
   2323       1.1    jruoho 
   2324       1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2325       1.1    jruoho             If (LAnd (0, 3))
   2326       1.1    jruoho             {
   2327       1.1    jruoho                 Return (23)     //  fail
   2328       1.1    jruoho             }
   2329       1.1    jruoho             else
   2330       1.1    jruoho             {
   2331       1.1    jruoho                 Store (23, WRD) //  pass -- just do something
   2332       1.1    jruoho             }
   2333       1.1    jruoho 
   2334       1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2335       1.1    jruoho             If (LAnd (0, 0))
   2336       1.1    jruoho             {
   2337       1.1    jruoho                 Return (24)     //  fail
   2338       1.1    jruoho             }
   2339       1.1    jruoho             else
   2340       1.1    jruoho             {
   2341       1.1    jruoho                 Store (24, WRD) //  pass -- just do something
   2342       1.1    jruoho             }
   2343       1.1    jruoho 
   2344       1.1    jruoho 
   2345       1.1    jruoho             //  Test If (LEqual ()) with no save of LEqual result
   2346       1.1    jruoho             If (LEqual (3, 3))
   2347       1.1    jruoho             {
   2348       1.1    jruoho                 Store (31, WRD) //  pass -- just do something
   2349       1.1    jruoho             }
   2350       1.1    jruoho             else
   2351       1.1    jruoho             {
   2352       1.1    jruoho                 Return (31)     //  fail
   2353       1.1    jruoho             }
   2354       1.1    jruoho 
   2355       1.1    jruoho             //  Test If (LEqual ()) with no save of LEqual result
   2356       1.1    jruoho             If (LEqual (1, 3))
   2357       1.1    jruoho             {
   2358       1.1    jruoho                 Return (32)     //  fail
   2359       1.1    jruoho             }
   2360       1.1    jruoho             else
   2361       1.1    jruoho             {
   2362       1.1    jruoho                 Store (32, WRD) //  pass -- just do something
   2363       1.1    jruoho             }
   2364       1.1    jruoho 
   2365       1.1    jruoho 
   2366       1.1    jruoho             //  Test If (LGreater ()) with no save of LGreater result
   2367       1.1    jruoho             If (LGreater (3, 1))
   2368       1.1    jruoho             {
   2369       1.1    jruoho                 Store (41, WRD) //  pass -- just do something
   2370       1.1    jruoho             }
   2371       1.1    jruoho             else
   2372       1.1    jruoho             {
   2373       1.1    jruoho                 Return (41)     //  fail
   2374       1.1    jruoho             }
   2375       1.1    jruoho 
   2376       1.1    jruoho             //  Test If (LGreater ()) with no save of LGreater result
   2377       1.1    jruoho             If (LGreater (4, 4))
   2378       1.1    jruoho             {
   2379       1.1    jruoho                 Return (42)     //  fail
   2380       1.1    jruoho             }
   2381       1.1    jruoho             else
   2382       1.1    jruoho             {
   2383       1.1    jruoho                 Store (42, WRD) //  pass -- just do something
   2384       1.1    jruoho             }
   2385       1.1    jruoho 
   2386       1.1    jruoho             //  Test If (LGreater ()) with no save of LGreater result
   2387       1.1    jruoho             If (LGreater (1, 4))
   2388       1.1    jruoho             {
   2389       1.1    jruoho                 Return (43)     //  fail
   2390       1.1    jruoho             }
   2391       1.1    jruoho             else
   2392       1.1    jruoho             {
   2393       1.1    jruoho                 Store (43, WRD) //  pass -- just do something
   2394       1.1    jruoho             }
   2395       1.1    jruoho 
   2396       1.1    jruoho             //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
   2397       1.1    jruoho             If (LGreaterEqual (3, 1))
   2398       1.1    jruoho             {
   2399       1.1    jruoho                 Store (44, WRD) //  pass -- just do something
   2400       1.1    jruoho             }
   2401       1.1    jruoho             else
   2402       1.1    jruoho             {
   2403       1.1    jruoho                 Return (44)     //  fail
   2404       1.1    jruoho             }
   2405       1.1    jruoho 
   2406       1.1    jruoho             //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
   2407       1.1    jruoho             If (LGreaterEqual (3, 3))
   2408       1.1    jruoho             {
   2409       1.1    jruoho                 Store (45, WRD) //  pass -- just do something
   2410       1.1    jruoho             }
   2411       1.1    jruoho             else
   2412       1.1    jruoho             {
   2413       1.1    jruoho                 Return (45)     //  fail
   2414       1.1    jruoho             }
   2415       1.1    jruoho 
   2416       1.1    jruoho             //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
   2417       1.1    jruoho             If (LGreaterEqual (3, 4))
   2418       1.1    jruoho             {
   2419       1.1    jruoho                 Return (46)     //  fail
   2420       1.1    jruoho             }
   2421       1.1    jruoho             else
   2422       1.1    jruoho             {
   2423       1.1    jruoho                 Store (46, WRD) //  pass -- just do something
   2424       1.1    jruoho             }
   2425       1.1    jruoho 
   2426       1.1    jruoho 
   2427       1.1    jruoho             //  Test If (LLess ()) with no save of LLess result
   2428       1.1    jruoho             If (LLess (1, 3))
   2429       1.1    jruoho             {
   2430       1.1    jruoho                 Store (51, WRD) //  pass -- just do something
   2431       1.1    jruoho             }
   2432       1.1    jruoho             else
   2433       1.1    jruoho             {
   2434       1.1    jruoho                 Return (51)     //  fail
   2435       1.1    jruoho             }
   2436       1.1    jruoho 
   2437       1.1    jruoho             //  Test If (LLess ()) with no save of LLess result
   2438       1.1    jruoho             If (LLess (2, 2))
   2439       1.1    jruoho             {
   2440       1.1    jruoho                 Return (52)     //  fail
   2441       1.1    jruoho             }
   2442       1.1    jruoho             else
   2443       1.1    jruoho             {
   2444       1.1    jruoho                 Store (52, WRD) //  pass -- just do something
   2445       1.1    jruoho             }
   2446       1.1    jruoho 
   2447       1.1    jruoho             //  Test If (LLess ()) with no save of LLess result
   2448       1.1    jruoho             If (LLess (4, 2))
   2449       1.1    jruoho             {
   2450       1.1    jruoho                 Return (53)     //  fail
   2451       1.1    jruoho             }
   2452       1.1    jruoho             else
   2453       1.1    jruoho             {
   2454       1.1    jruoho                 Store (53, WRD) //  pass -- just do something
   2455       1.1    jruoho             }
   2456       1.1    jruoho 
   2457       1.1    jruoho 
   2458       1.1    jruoho             //  Test If (LLessEqual ()) with no save of LLessEqual result
   2459       1.1    jruoho             If (LLessEqual (1, 3))
   2460       1.1    jruoho             {
   2461       1.1    jruoho                 Store (54, WRD) //  pass -- just do something
   2462       1.1    jruoho             }
   2463       1.1    jruoho             else
   2464       1.1    jruoho             {
   2465       1.1    jruoho                 Return (54)     //  fail
   2466       1.1    jruoho             }
   2467       1.1    jruoho 
   2468       1.1    jruoho             //  Test If (LLessEqual ()) with no save of LLessEqual result
   2469       1.1    jruoho             If (LLessEqual (2, 2))
   2470       1.1    jruoho             {
   2471       1.1    jruoho                 Store (55, WRD) //  pass -- just do something
   2472       1.1    jruoho             }
   2473       1.1    jruoho             else
   2474       1.1    jruoho             {
   2475       1.1    jruoho                 Return (55)     //  fail
   2476       1.1    jruoho             }
   2477       1.1    jruoho 
   2478       1.1    jruoho             //  Test If (LLessEqual ()) with no save of LLessEqual result
   2479       1.1    jruoho             If (LLessEqual (4, 2))
   2480       1.1    jruoho             {
   2481       1.1    jruoho                 Return (56)     //  fail
   2482       1.1    jruoho             }
   2483       1.1    jruoho             else
   2484       1.1    jruoho             {
   2485       1.1    jruoho                 Store (56, WRD) //  pass -- just do something
   2486       1.1    jruoho             }
   2487       1.1    jruoho 
   2488       1.1    jruoho 
   2489       1.1    jruoho             //  Test If (LNot ()) with no save of LNot result
   2490       1.1    jruoho             If (LNot (0))
   2491       1.1    jruoho             {
   2492       1.1    jruoho                 Store (61, WRD) //  pass -- just do something
   2493       1.1    jruoho             }
   2494       1.1    jruoho             else
   2495       1.1    jruoho             {
   2496       1.1    jruoho                 Return (61)     //  fail
   2497       1.1    jruoho             }
   2498       1.1    jruoho 
   2499       1.1    jruoho             //  Test If (LNot ()) with no save of LNot result
   2500       1.1    jruoho             If (LNot (1))
   2501       1.1    jruoho             {
   2502       1.1    jruoho                 Return (62)     //  fail
   2503       1.1    jruoho             }
   2504       1.1    jruoho             else
   2505       1.1    jruoho             {
   2506       1.1    jruoho                 Store (62, WRD) //  pass -- just do something
   2507       1.1    jruoho             }
   2508       1.1    jruoho 
   2509       1.1    jruoho 
   2510       1.1    jruoho             //  Test If (LNotEqual ()) with no save of LNotEqual result
   2511       1.1    jruoho             If (LNotEqual (3, 3))
   2512       1.1    jruoho             {
   2513       1.1    jruoho                 Return (63)     //  fail
   2514       1.1    jruoho             }
   2515       1.1    jruoho             else
   2516       1.1    jruoho             {
   2517       1.1    jruoho                 Store (63, WRD) //  pass -- just do something
   2518       1.1    jruoho             }
   2519       1.1    jruoho 
   2520       1.1    jruoho             //  Test If (LNotEqual ()) with no save of LNotEqual result
   2521       1.1    jruoho             If (LNotEqual (1, 3))
   2522       1.1    jruoho             {
   2523       1.1    jruoho                 Store (64, WRD) //  pass -- just do something
   2524       1.1    jruoho             }
   2525       1.1    jruoho             else
   2526       1.1    jruoho             {
   2527       1.1    jruoho                 Return (64)     //  fail
   2528       1.1    jruoho             }
   2529       1.1    jruoho 
   2530       1.1    jruoho 
   2531       1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2532       1.1    jruoho             If (LOr (3, 1))
   2533       1.1    jruoho             {
   2534       1.1    jruoho                 Store (71, WRD) //  pass -- just do something
   2535       1.1    jruoho             }
   2536       1.1    jruoho             else
   2537       1.1    jruoho             {
   2538       1.1    jruoho                 Return (71)     //  fail
   2539       1.1    jruoho             }
   2540       1.1    jruoho 
   2541       1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2542       1.1    jruoho             If (LOr (0, 1))
   2543       1.1    jruoho             {
   2544       1.1    jruoho                 Store (72, WRD) //  pass -- just do something
   2545       1.1    jruoho             }
   2546       1.1    jruoho             else
   2547       1.1    jruoho             {
   2548       1.1    jruoho                 Return (72)     //  fail
   2549       1.1    jruoho             }
   2550       1.1    jruoho 
   2551       1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2552       1.1    jruoho             If (LOr (3, 0))
   2553       1.1    jruoho             {
   2554       1.1    jruoho                 Store (73, WRD) //  pass -- just do something
   2555       1.1    jruoho             }
   2556       1.1    jruoho             else
   2557       1.1    jruoho             {
   2558       1.1    jruoho                 Return (73)     //  fail
   2559       1.1    jruoho             }
   2560       1.1    jruoho 
   2561       1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2562       1.1    jruoho             If (LOr (0, 0))
   2563       1.1    jruoho             {
   2564       1.1    jruoho                 Return (74)     //  fail
   2565       1.1    jruoho             }
   2566       1.1    jruoho             else
   2567       1.1    jruoho             {
   2568       1.1    jruoho                 Store (74, WRD) //  pass -- just do something
   2569       1.1    jruoho             }
   2570       1.1    jruoho 
   2571       1.1    jruoho             Return (0)
   2572       1.1    jruoho         }   //  TEST
   2573       1.1    jruoho     }   //  NOSV
   2574       1.1    jruoho 
   2575       1.1    jruoho 
   2576       1.1    jruoho //
   2577       1.1    jruoho // test IndxFld.asl
   2578       1.1    jruoho //
   2579       1.1    jruoho //  IndexFld test
   2580       1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   2581       1.1    jruoho //      Tests index field element AccessAs macro.
   2582       1.1    jruoho //
   2583       1.1    jruoho     Device (IDXF)
   2584       1.1    jruoho     {   //  Test device name
   2585       1.1    jruoho 
   2586       1.1    jruoho         OperationRegion (SIO, SystemIO, 0x100, 2)
   2587       1.1    jruoho         Field (SIO, ByteAcc, NoLock, Preserve)
   2588       1.1    jruoho         {
   2589       1.1    jruoho             INDX,   8,
   2590       1.1    jruoho             DATA,   8
   2591       1.1    jruoho         }
   2592       1.1    jruoho         IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
   2593       1.1    jruoho         {
   2594       1.1    jruoho             AccessAs (ByteAcc, 0),
   2595       1.1    jruoho             IFE0,   8,
   2596       1.1    jruoho             IFE1,   8,
   2597       1.1    jruoho             IFE2,   8,
   2598       1.1    jruoho             IFE3,   8,
   2599       1.1    jruoho             IFE4,   8,
   2600       1.1    jruoho             IFE5,   8,
   2601       1.1    jruoho             IFE6,   8,
   2602       1.1    jruoho             IFE7,   8,
   2603       1.1    jruoho             IFE8,   8,
   2604       1.1    jruoho             IFE9,   8,
   2605       1.1    jruoho         }
   2606       1.1    jruoho 
   2607       1.1    jruoho         Method (TEST)
   2608       1.1    jruoho         {
   2609       1.1    jruoho             Store ("++++++++ IndxFld Test", Debug)
   2610       1.1    jruoho 
   2611       1.1    jruoho             Store (IFE0, Local0)
   2612       1.1    jruoho             Store (IFE1, Local1)
   2613       1.1    jruoho             Store (IFE2, Local2)
   2614       1.1    jruoho 
   2615       1.1    jruoho             Return (0)
   2616       1.1    jruoho         }   //  TEST
   2617       1.1    jruoho     }   //  IDXF
   2618       1.1    jruoho 
   2619       1.1    jruoho //
   2620       1.1    jruoho // test NestdLor.asl
   2621       1.1    jruoho //
   2622       1.1    jruoho     Scope (\_SB)    //  System Bus
   2623       1.1    jruoho     {   //  _SB system bus
   2624       1.1    jruoho 
   2625       1.1    jruoho         Name (ZER0, 0)
   2626       1.1    jruoho         Name (ZER1, 0)
   2627       1.1    jruoho         Name (ZER2, 0)
   2628       1.1    jruoho         Name (ONE0, 1)
   2629       1.1    jruoho 
   2630       1.1    jruoho         Device (NSTL)
   2631       1.1    jruoho         {
   2632       1.1    jruoho             Method (TEST)
   2633       1.1    jruoho             {
   2634       1.1    jruoho                 Store ("++++++++ NestdLor Test", Debug)
   2635       1.1    jruoho 
   2636       1.1    jruoho                 If (Lor (ZER0, Lor (ZER1, Lor (ZER2, ONE0))))
   2637       1.1    jruoho                 {   //  Indicate Pass
   2638       1.1    jruoho                     Store (0x00, Local0)
   2639       1.1    jruoho                 }
   2640       1.1    jruoho 
   2641       1.1    jruoho                 Else
   2642       1.1    jruoho                 {   //  Indicate Fail
   2643       1.1    jruoho                     Store (0x01, Local0)
   2644       1.1    jruoho                 }
   2645       1.1    jruoho 
   2646       1.1    jruoho                 Return (Local0)
   2647       1.1    jruoho             }   //  End Method TEST
   2648       1.1    jruoho         }   //  Device NSTL
   2649       1.1    jruoho     }   //  _SB system bus
   2650       1.1    jruoho 
   2651       1.1    jruoho //
   2652       1.1    jruoho // test RetBuf.asl
   2653       1.1    jruoho //
   2654       1.1    jruoho //  Test ReturnOp(Buffer)
   2655       1.1    jruoho //      This is required to support Control Method Batteries on
   2656       1.1    jruoho //          Dell Latitude Laptops (e.g., CP1-A)
   2657       1.1    jruoho //
   2658       1.1    jruoho     Device (RTBF)
   2659       1.1    jruoho     {
   2660       1.1    jruoho         Method (SUBR, 1)
   2661       1.1    jruoho         {
   2662       1.1    jruoho             Return (Arg0)
   2663       1.1    jruoho         }
   2664       1.1    jruoho 
   2665   1.1.1.3  christos         Method (RBUF,, Serialized)
   2666       1.1    jruoho         {   //  RBUF: Return Buffer from local variable
   2667       1.1    jruoho             Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
   2668       1.1    jruoho 
   2669       1.1    jruoho             //  store local buffer ABUF into Local0
   2670       1.1    jruoho             Store (ABUF, Local0)
   2671       1.1    jruoho 
   2672       1.1    jruoho             //  save Local0 object type value into Local1
   2673       1.1    jruoho             Store (ObjectType (Local0), Local1)
   2674       1.1    jruoho 
   2675       1.1    jruoho             //  validate Local0 is a Buffer
   2676       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2677       1.1    jruoho             {
   2678       1.1    jruoho                 Return (1)      //  failure
   2679       1.1    jruoho             }
   2680       1.1    jruoho 
   2681       1.1    jruoho             //  store value returned by control method SUBR into Local0
   2682       1.1    jruoho             Store (SUBR (ABUF), Local0)
   2683       1.1    jruoho 
   2684       1.1    jruoho             //  save Local0 object type value into Local1
   2685       1.1    jruoho             Store (ObjectType (Local0), Local1)
   2686       1.1    jruoho 
   2687       1.1    jruoho             //  validate Local0 is a Buffer
   2688       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2689       1.1    jruoho             {
   2690       1.1    jruoho                 Return (2)      //  failure
   2691       1.1    jruoho             }
   2692       1.1    jruoho 
   2693       1.1    jruoho             //  allocate buffer using Local1 as buffer size (run-time evaluation)
   2694       1.1    jruoho             Store (5, Local1)
   2695       1.1    jruoho             Name (BUFR, Buffer(Local1) {})
   2696       1.1    jruoho 
   2697       1.1    jruoho             //  store value returned by control method SUBR into Local0
   2698       1.1    jruoho             Store (SUBR (BUFR), Local0)
   2699       1.1    jruoho 
   2700       1.1    jruoho             //  save Local0 object type value into Local1
   2701       1.1    jruoho             Store (ObjectType (Local0), Local1)
   2702       1.1    jruoho 
   2703       1.1    jruoho             //  validate Local0 is a Buffer
   2704       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2705       1.1    jruoho             {
   2706       1.1    jruoho                 Return (3)      //  failure
   2707       1.1    jruoho             }
   2708       1.1    jruoho 
   2709       1.1    jruoho             //  store BUFR Buffer into Local0
   2710       1.1    jruoho             Store (BUFR, Local0)
   2711       1.1    jruoho 
   2712       1.1    jruoho             //  save Local0 object type value into Local1
   2713       1.1    jruoho             Store (ObjectType (Local0), Local1)
   2714       1.1    jruoho 
   2715       1.1    jruoho             //  validate Local0 is a Buffer
   2716       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2717       1.1    jruoho             {
   2718       1.1    jruoho                 Return (4)      //  failure
   2719       1.1    jruoho             }
   2720       1.1    jruoho 
   2721       1.1    jruoho 
   2722       1.1    jruoho             //  return Local0 Buffer
   2723       1.1    jruoho             Return (Local0)
   2724       1.1    jruoho         }   //  RBUF
   2725       1.1    jruoho 
   2726       1.1    jruoho         Method (TEST)
   2727       1.1    jruoho         {
   2728       1.1    jruoho             Store ("++++++++ RetBuf Test", Debug)
   2729       1.1    jruoho 
   2730       1.1    jruoho             //  store RBUF Buffer return value into Local0
   2731       1.1    jruoho             Store (RBUF, Local0)
   2732       1.1    jruoho 
   2733       1.1    jruoho             //  save Local0 object type value into Local1
   2734       1.1    jruoho             Store (ObjectType (Local0), Local1)
   2735       1.1    jruoho 
   2736       1.1    jruoho             //  validate Local0 is a Buffer
   2737       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2738       1.1    jruoho             {
   2739       1.1    jruoho                 Return (10)     //  failure
   2740       1.1    jruoho             }
   2741       1.1    jruoho             Else
   2742       1.1    jruoho             {
   2743       1.1    jruoho                 Return (0)      //  success
   2744       1.1    jruoho             }
   2745       1.1    jruoho         }   //  TEST
   2746       1.1    jruoho     }   //  RTBF
   2747       1.1    jruoho 
   2748       1.1    jruoho //
   2749       1.1    jruoho // test RetLVal.asl
   2750       1.1    jruoho //
   2751       1.1    jruoho //  Test ReturnOp(Lvalue)
   2752       1.1    jruoho //      This is required to support _PSR on IBM ThinkPad 560D and
   2753       1.1    jruoho //      _DCK on Toshiba Tecra 8000.
   2754       1.1    jruoho //
   2755       1.1    jruoho 
   2756       1.1    jruoho     Device (GPE2)
   2757       1.1    jruoho     {
   2758       1.1    jruoho         Method (_L03)
   2759       1.1    jruoho         {
   2760       1.1    jruoho             Store ("Method GPE2._L03 invoked", Debug)
   2761       1.1    jruoho             Return ()
   2762       1.1    jruoho         }
   2763       1.1    jruoho 
   2764       1.1    jruoho         Method (_E05)
   2765       1.1    jruoho         {
   2766       1.1    jruoho             Store ("Method GPE2._E05 invoked", Debug)
   2767       1.1    jruoho             Return ()
   2768       1.1    jruoho         }
   2769       1.1    jruoho     }
   2770       1.1    jruoho 
   2771       1.1    jruoho     Device (PRW2)
   2772       1.1    jruoho     {
   2773       1.1    jruoho         Name (_PRW, Package(2) {Package(2){\GPE2, 0x05}, 3})
   2774       1.1    jruoho     }
   2775       1.1    jruoho 
   2776       1.1    jruoho 
   2777       1.1    jruoho     Scope (\_GPE)
   2778       1.1    jruoho     {
   2779       1.1    jruoho         Name (ACST, 0xFF)
   2780       1.1    jruoho 
   2781       1.1    jruoho         Method (_L08)
   2782       1.1    jruoho         {
   2783       1.1    jruoho             Store ("Method _GPE._L08 invoked", Debug)
   2784       1.1    jruoho             Return ()
   2785       1.1    jruoho         }
   2786       1.1    jruoho 
   2787       1.1    jruoho         Method (_E09)
   2788       1.1    jruoho         {
   2789       1.1    jruoho             Store ("Method _GPE._E09 invoked", Debug)
   2790       1.1    jruoho             Return ()
   2791       1.1    jruoho         }
   2792       1.1    jruoho 
   2793       1.1    jruoho         Method (_E11)
   2794       1.1    jruoho         {
   2795       1.1    jruoho             Store ("Method _GPE._E11 invoked", Debug)
   2796       1.1    jruoho             Notify (\PRW1, 2)
   2797       1.1    jruoho         }
   2798       1.1    jruoho 
   2799       1.1    jruoho         Method (_L22)
   2800       1.1    jruoho         {
   2801       1.1    jruoho             Store ("Method _GPE._L22 invoked", Debug)
   2802       1.1    jruoho             Return ()
   2803       1.1    jruoho         }
   2804       1.1    jruoho 
   2805       1.1    jruoho         Method (_L33)
   2806       1.1    jruoho         {
   2807       1.1    jruoho             Store ("Method _GPE._L33 invoked", Debug)
   2808       1.1    jruoho             Return ()
   2809       1.1    jruoho         }
   2810       1.1    jruoho 
   2811       1.1    jruoho         Method (_E64)
   2812       1.1    jruoho         {
   2813       1.1    jruoho             Store ("Method _GPE._E64 invoked", Debug)
   2814       1.1    jruoho             Return ()
   2815       1.1    jruoho         }
   2816       1.1    jruoho 
   2817       1.1    jruoho     }   //  _GPE
   2818       1.1    jruoho 
   2819       1.1    jruoho     Device (PRW1)
   2820       1.1    jruoho     {
   2821       1.1    jruoho         Name (_PRW, Package(2) {0x11, 3})
   2822       1.1    jruoho     }
   2823       1.1    jruoho 
   2824       1.1    jruoho     Device (PWRB)
   2825       1.1    jruoho     {
   2826       1.1    jruoho         Name (_HID, EISAID("PNP0C0C"))
   2827       1.1    jruoho         Name (_PRW, Package(2) {0x33, 3})
   2828       1.1    jruoho     }
   2829       1.1    jruoho 
   2830       1.1    jruoho 
   2831       1.1    jruoho     Scope (\_SB)    //  System Bus
   2832       1.1    jruoho     {   //  _SB system bus
   2833       1.1    jruoho 
   2834       1.1    jruoho         Device (ACAD)
   2835       1.1    jruoho         {   //  ACAD:   AC adapter device
   2836       1.1    jruoho             Name (_HID, "ACPI0003") //  AC adapter device
   2837       1.1    jruoho 
   2838       1.1    jruoho             Name (_PCL, Package () {\_SB})
   2839       1.1    jruoho 
   2840       1.1    jruoho             OperationRegion (AREG, SystemIO, 0x0372, 2)
   2841       1.1    jruoho             Field (AREG, ByteAcc, NoLock, Preserve)
   2842       1.1    jruoho             {
   2843       1.1    jruoho                 AIDX,   8,
   2844       1.1    jruoho                 ADAT,   8
   2845       1.1    jruoho             }
   2846       1.1    jruoho             IndexField (AIDX, ADAT, ByteAcc, NoLock, Preserve)
   2847       1.1    jruoho             {
   2848       1.1    jruoho                      ,  1,  //  skips
   2849       1.1    jruoho                 ACIN,   1,
   2850       1.1    jruoho                      ,  2,  //  skips
   2851       1.1    jruoho                 CHAG,   1,
   2852       1.1    jruoho                      ,  3,  //  skips
   2853       1.1    jruoho                      ,  7,  //  skips
   2854       1.1    jruoho                 ABAT,   1,
   2855       1.1    jruoho             }   //  IndexField
   2856       1.1    jruoho 
   2857       1.1    jruoho             Method (_PSR)
   2858       1.1    jruoho             {
   2859       1.1    jruoho                 Store (\_GPE.ACST, Local0)
   2860       1.1    jruoho                 Store (ACIN, Local1)
   2861       1.1    jruoho                 If (LNotEqual (\_GPE.ACST, Local1))
   2862       1.1    jruoho                 {
   2863       1.1    jruoho                     Store (Local1, \_GPE.ACST)
   2864       1.1    jruoho                     // This Notify is commented because it causes a
   2865       1.1    jruoho                     //  method error when running on a system without the
   2866       1.1    jruoho                     //  specific device.
   2867       1.1    jruoho                     // Notify (\_SB_.ACAD, 0)
   2868       1.1    jruoho                 }
   2869       1.1    jruoho                 Return (Local0)
   2870       1.1    jruoho             }   //  _PSR
   2871       1.1    jruoho 
   2872       1.1    jruoho             Method (_STA)
   2873       1.1    jruoho             {
   2874       1.1    jruoho                 Return (0x0F)
   2875       1.1    jruoho             }
   2876       1.1    jruoho 
   2877       1.1    jruoho             Method (_INI)
   2878       1.1    jruoho             {
   2879       1.1    jruoho                 Store (ACIN, \_GPE.ACST)
   2880       1.1    jruoho             }
   2881       1.1    jruoho         }   //  ACAD:   AC adapter device
   2882       1.1    jruoho 
   2883       1.1    jruoho         //  test implicit return from control method
   2884       1.1    jruoho         Method (DIS_, 1)
   2885       1.1    jruoho         {
   2886       1.1    jruoho             Store (Arg0, Local0)
   2887       1.1    jruoho         }
   2888       1.1    jruoho 
   2889       1.1    jruoho         Device (RTLV)
   2890       1.1    jruoho         {
   2891       1.1    jruoho             //  test implicit return inside nested if with explicit return of Lvalue
   2892       1.1    jruoho             Method (_DCK, 1)
   2893       1.1    jruoho             //  Arg0:   1 == dock, 0 == undock
   2894       1.1    jruoho             {
   2895       1.1    jruoho                 If (Arg0)
   2896       1.1    jruoho                 {   //  dock
   2897       1.1    jruoho                     Store (0x87, Local0)
   2898       1.1    jruoho 
   2899       1.1    jruoho                     If (Local0)
   2900       1.1    jruoho                     {
   2901       1.1    jruoho                         DIS_ (0x23)
   2902       1.1    jruoho                         Return (1)
   2903       1.1    jruoho                     }
   2904       1.1    jruoho 
   2905       1.1    jruoho                     Return (0)
   2906       1.1    jruoho                 }   //  dock
   2907       1.1    jruoho                 Else
   2908       1.1    jruoho                 {   //  undock
   2909       1.1    jruoho                     Store (Arg0, Local0)
   2910       1.1    jruoho 
   2911       1.1    jruoho                     If (Local0)
   2912       1.1    jruoho                     {
   2913       1.1    jruoho                         DIS_ (0x23)
   2914       1.1    jruoho                         Return (1)
   2915       1.1    jruoho                     }
   2916       1.1    jruoho 
   2917       1.1    jruoho                     Return (0)
   2918       1.1    jruoho                 }   //  undock
   2919       1.1    jruoho             }   //  _DCK control method
   2920       1.1    jruoho 
   2921       1.1    jruoho             Method (TEST)
   2922       1.1    jruoho             {
   2923       1.1    jruoho                 Store ("++++++++ RetLVal Test", Debug)
   2924       1.1    jruoho 
   2925       1.1    jruoho                 //  store _PSR return value into Local0
   2926       1.1    jruoho                 Store (\_SB_.ACAD._PSR, Local0)
   2927       1.1    jruoho 
   2928       1.1    jruoho                 //  save Local0 object type value into Local1
   2929       1.1    jruoho                 Store (ObjectType (Local0), Local1)
   2930       1.1    jruoho 
   2931       1.1    jruoho                 //  validate Local0 is a Number
   2932       1.1    jruoho                 If (LNotEqual (Local1, 1))  //  Number/Integer type is 1
   2933       1.1    jruoho                 {
   2934       1.1    jruoho                     Return (1)      //  failure
   2935       1.1    jruoho                 }
   2936       1.1    jruoho 
   2937       1.1    jruoho                 //  test implicit return inside nested if with explicit return of Lvalue
   2938       1.1    jruoho                 Store (_DCK (1), Local2)
   2939       1.1    jruoho 
   2940       1.1    jruoho                 //  save Local2 object type value into Local3
   2941       1.1    jruoho                 Store (ObjectType (Local2), Local3)
   2942       1.1    jruoho 
   2943       1.1    jruoho                 //  validate Local2 is a Number
   2944       1.1    jruoho                 If (LNotEqual (Local3, 1))  //  Number/Integer type is 1
   2945       1.1    jruoho                 {
   2946       1.1    jruoho                     Return (2)      //  failure
   2947       1.1    jruoho                 }
   2948       1.1    jruoho 
   2949       1.1    jruoho                 If (LNotEqual (Local2, 1))
   2950       1.1    jruoho                 {
   2951       1.1    jruoho                     Return (3)      //  failure
   2952       1.1    jruoho                 }
   2953       1.1    jruoho 
   2954       1.1    jruoho                 Return (0)  //  success
   2955       1.1    jruoho             }   //  TEST
   2956       1.1    jruoho         }   //  RTLV
   2957       1.1    jruoho     }   //  _SB system bus
   2958       1.1    jruoho 
   2959       1.1    jruoho //
   2960       1.1    jruoho // test RetPkg.asl
   2961       1.1    jruoho //
   2962       1.1    jruoho //  Test ReturnOp(Package)
   2963       1.1    jruoho //      This is required to support _PRT on Dell Optiplex Workstations (e.g. GX1)
   2964       1.1    jruoho //
   2965       1.1    jruoho 
   2966       1.1    jruoho     Scope (\_SB)    //  System Bus
   2967       1.1    jruoho     {   //  _SB system bus
   2968       1.1    jruoho         Device(LNKA)
   2969       1.1    jruoho         {
   2970       1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2971       1.1    jruoho             Name (_UID, 1)
   2972       1.1    jruoho         }
   2973       1.1    jruoho         Device(LNKB)
   2974       1.1    jruoho         {
   2975       1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2976       1.1    jruoho             Name (_UID, 2)
   2977       1.1    jruoho         }
   2978       1.1    jruoho         Device(LNKC)
   2979       1.1    jruoho         {
   2980       1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2981       1.1    jruoho             Name (_UID, 3)
   2982       1.1    jruoho         }
   2983       1.1    jruoho         Device(LNKD)
   2984       1.1    jruoho         {
   2985       1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2986       1.1    jruoho             Name (_UID, 4)
   2987       1.1    jruoho         }
   2988       1.1    jruoho 
   2989       1.1    jruoho         Device (PCI1)
   2990       1.1    jruoho         {   //  PCI1:   Root PCI Bus
   2991       1.1    jruoho             Name (_HID, "PNP0A03")  //  Need _HID for root device (String format)
   2992       1.1    jruoho             Name (_ADR,0x00000000)
   2993       1.1    jruoho             Name (_CRS,0)
   2994       1.1    jruoho 
   2995       1.1    jruoho             Name (_PRT, Package ()
   2996       1.1    jruoho             {
   2997       1.1    jruoho                 Package () {0x0004ffff, 0, LNKA, 0},            //  Slot 1, INTA
   2998       1.1    jruoho                 Package () {0x0004ffff, 1, LNKB, 0},            //  Slot 1, INTB
   2999       1.1    jruoho                 Package () {0x0004ffff, 2, LNKC, 0},            //  Slot 1, INTC
   3000       1.1    jruoho                 Package () {0x0004ffff, 3, LNKD, 0},            //  Slot 1, INTD
   3001       1.1    jruoho                 Package () {0x0005ffff, 0, \_SB_.LNKB, 0},  //  Slot 2, INTA
   3002       1.1    jruoho                 Package () {0x0005ffff, 1, \_SB_.LNKC, 0},  //  Slot 2, INTB
   3003       1.1    jruoho                 Package () {0x0005ffff, 2, \_SB_.LNKD, 0},  //  Slot 2, INTC
   3004       1.1    jruoho                 Package () {0x0006ffff, 3, \_SB_.LNKA, 0},  //  Slot 2, INTD
   3005       1.1    jruoho                 Package () {0x0006ffff, 0, LNKC, 0},            //  Slot 3, INTA
   3006       1.1    jruoho                 Package () {0x0006ffff, 1, LNKD, 0},            //  Slot 3, INTB
   3007       1.1    jruoho                 Package () {0x0006ffff, 2, LNKA, 0},            //  Slot 3, INTC
   3008       1.1    jruoho                 Package () {0x0006ffff, 3, LNKB, 0},            //  Slot 3, INTD
   3009       1.1    jruoho             })
   3010       1.1    jruoho 
   3011       1.1    jruoho             Device (PX40)
   3012       1.1    jruoho             {   // Map f0 space, Start PX40
   3013       1.1    jruoho                 Name (_ADR,0x00070000)  //  Address+function.
   3014       1.1    jruoho             }
   3015       1.1    jruoho         }   //  PCI0:   Root PCI Bus
   3016       1.1    jruoho 
   3017       1.1    jruoho         Device (RETP)
   3018       1.1    jruoho         {
   3019       1.1    jruoho             Method (RPKG)
   3020       1.1    jruoho             {   //  RPKG: Return Package from local variable
   3021       1.1    jruoho 
   3022       1.1    jruoho                 //  store _PRT package into Local0
   3023       1.1    jruoho                 Store (\_SB_.PCI1._PRT, Local0)
   3024       1.1    jruoho 
   3025       1.1    jruoho                 //  return Local0 Package
   3026       1.1    jruoho                 Return (Local0)
   3027       1.1    jruoho             }   //  RPKG
   3028       1.1    jruoho 
   3029       1.1    jruoho             Method (TEST)
   3030       1.1    jruoho             {
   3031       1.1    jruoho                 Store ("++++++++ RetPkg Test", Debug)
   3032       1.1    jruoho 
   3033       1.1    jruoho                 //  store RPKG package return value into Local0
   3034       1.1    jruoho                 Store (RPKG, Local0)
   3035       1.1    jruoho 
   3036       1.1    jruoho                 //  save Local0 object type value into Local1
   3037       1.1    jruoho                 Store (ObjectType (Local0), Local1)
   3038       1.1    jruoho 
   3039       1.1    jruoho                 //  validate Local0 is a Package
   3040       1.1    jruoho                 If (LNotEqual (Local1, 4))  //  Package type is 4
   3041       1.1    jruoho                     {   Return (1)  }   //  failure
   3042       1.1    jruoho                 Else
   3043       1.1    jruoho                     {   Return (0)  }   //  success
   3044       1.1    jruoho             }   //  TEST
   3045       1.1    jruoho         }   //  RETP
   3046       1.1    jruoho     } // _SB_
   3047       1.1    jruoho 
   3048       1.1    jruoho //
   3049       1.1    jruoho // test WhileRet.asl
   3050       1.1    jruoho //
   3051       1.1    jruoho //  WhileRet.asl tests a ReturnOp nested in a IfOp nested in a WhileOp.
   3052       1.1    jruoho //
   3053       1.1    jruoho     Device (WHLR)
   3054       1.1    jruoho     {
   3055       1.1    jruoho         Name (LCNT, 0)
   3056       1.1    jruoho         Method (WIR)
   3057       1.1    jruoho         {   //  WIR:    control method that returns inside of IfOp inside of WhileOp
   3058       1.1    jruoho             While (LLess (LCNT, 4))
   3059       1.1    jruoho             {
   3060       1.1    jruoho                     If (LEqual (LCNT, 2))
   3061       1.1    jruoho                     {
   3062       1.1    jruoho                         Return (0)
   3063       1.1    jruoho                     }
   3064       1.1    jruoho 
   3065       1.1    jruoho                 Increment (LCNT)
   3066       1.1    jruoho             }
   3067       1.1    jruoho 
   3068       1.1    jruoho             Return (LCNT)
   3069       1.1    jruoho         }   //  WIR:    control method that returns inside of IfOp inside of WhileOp
   3070       1.1    jruoho 
   3071       1.1    jruoho         Method (TEST)
   3072       1.1    jruoho         {
   3073       1.1    jruoho             Store ("++++++++ WhileRet Test", Debug)
   3074       1.1    jruoho 
   3075       1.1    jruoho             Store (WIR, Local0)
   3076       1.1    jruoho 
   3077       1.1    jruoho             Return (Local0)
   3078       1.1    jruoho         }   //  TEST
   3079       1.1    jruoho     }   //  WHLR
   3080       1.1    jruoho 
   3081       1.1    jruoho //
   3082       1.1    jruoho // test AndOrOp.asl
   3083       1.1    jruoho //
   3084       1.1    jruoho //This code tests the bitwise AndOp and OrOp Operator terms
   3085       1.1    jruoho //
   3086       1.1    jruoho //Syntax of Andop term
   3087       1.1    jruoho //And - Bitwise And
   3088       1.1    jruoho //AndTerm   := And(
   3089       1.1    jruoho //  Source1,    //TermArg=>Integer
   3090       1.1    jruoho //  Source2,    //TermArg=>Integer
   3091       1.1    jruoho //  Result  //Nothing | SuperName
   3092       1.1    jruoho //) => Integer
   3093       1.1    jruoho //Source1 and Source2 are evaluated as integer data types,
   3094       1.1    jruoho // a bit-wise AND is performed, and the result is optionally
   3095       1.1    jruoho //stored into Result.
   3096       1.1    jruoho //
   3097       1.1    jruoho //
   3098       1.1    jruoho //Syntax of OrOp
   3099       1.1    jruoho //Or - Bit-wise Or
   3100       1.1    jruoho //OrTerm    := Or(
   3101       1.1    jruoho //  Source1,    //TermArg=>Integer
   3102       1.1    jruoho //  Source2 //TermArg=>Integer
   3103       1.1    jruoho //  Result  //Nothing | SuperName
   3104       1.1    jruoho //) => Integer
   3105       1.1    jruoho //Source1 and Source2 are evaluated as integer data types,
   3106       1.1    jruoho // a bit-wide OR is performed, and the result is optionally
   3107       1.1    jruoho //stored in Result
   3108       1.1    jruoho //
   3109       1.1    jruoho     Device (ANDO)
   3110       1.1    jruoho     {
   3111       1.1    jruoho         OperationRegion (TMEM, SystemMemory, 0xC4, 0x02)
   3112       1.1    jruoho         Field (TMEM, ByteAcc, NoLock, Preserve)
   3113       1.1    jruoho         {
   3114       1.1    jruoho                 ,   3,
   3115       1.1    jruoho             TOUD,   13
   3116       1.1    jruoho         }
   3117       1.1    jruoho 
   3118       1.1    jruoho         //Create System Memory Operation Region and field overlays
   3119       1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3120       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3121       1.1    jruoho         {
   3122       1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3123       1.1    jruoho             SMWD,   16, //  16-bit WORD
   3124       1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3125       1.1    jruoho         }// Field(RAM)
   3126       1.1    jruoho 
   3127       1.1    jruoho 
   3128       1.1    jruoho         //And with Byte Data
   3129       1.1    jruoho         Name (BYT1, 0xff)
   3130       1.1    jruoho         Name (BYT2, 0xff)
   3131       1.1    jruoho         Name (BRSL, 0x00)
   3132       1.1    jruoho 
   3133       1.1    jruoho         //And with Word Data
   3134       1.1    jruoho         Name (WRD1, 0xffff)
   3135       1.1    jruoho         Name (WRD2, 0xffff)
   3136       1.1    jruoho         Name (WRSL, 0x0000)
   3137       1.1    jruoho 
   3138       1.1    jruoho         //And with DWord Data
   3139       1.1    jruoho         Name (DWD1, 0xffffffff)
   3140       1.1    jruoho         Name (DWD2, 0xffffffff)
   3141       1.1    jruoho         Name (DRSL, 0x00000000)
   3142       1.1    jruoho 
   3143       1.1    jruoho         Method (ANDP)
   3144       1.1    jruoho         {
   3145       1.1    jruoho             //Check with 1 And 1 on byte data
   3146       1.1    jruoho             And(BYT1, BYT2, BRSL)
   3147       1.1    jruoho             if(LNotEqual(BRSL,0xff))
   3148       1.1    jruoho             {Return(1)}
   3149       1.1    jruoho 
   3150       1.1    jruoho             //Check with 1 And 1 on Word data
   3151       1.1    jruoho             And(WRD1, WRD2, WRSL)
   3152       1.1    jruoho             if(LNotEqual(WRSL,0xffff))
   3153       1.1    jruoho             {
   3154       1.1    jruoho                 Return (1)      //  failure
   3155       1.1    jruoho             }
   3156       1.1    jruoho 
   3157       1.1    jruoho             //Check with 1 And 1 Dword
   3158       1.1    jruoho             And(DWD1, DWD2, DRSL)
   3159       1.1    jruoho             if(LNotEqual(DRSL,0xffffffff))
   3160       1.1    jruoho             {
   3161       1.1    jruoho                 Return (1)      //  failure
   3162       1.1    jruoho             }
   3163       1.1    jruoho 
   3164       1.1    jruoho             //Check with 0 And 0 on byte data
   3165       1.1    jruoho             Store(0x00,BYT1)
   3166       1.1    jruoho             Store(0x00,BYT2)
   3167       1.1    jruoho             Store(0x00,BRSL)
   3168       1.1    jruoho             And(BYT1, BYT2, BRSL)
   3169       1.1    jruoho             if(LNotEqual(BRSL,0x00))
   3170       1.1    jruoho             {
   3171       1.1    jruoho                 Return (1)      //  failure
   3172       1.1    jruoho             }
   3173       1.1    jruoho 
   3174       1.1    jruoho             //Check with 0 And 0 on Word data
   3175       1.1    jruoho             Store (0x0000,WRD1)
   3176       1.1    jruoho             Store (0x0000,WRD2)
   3177       1.1    jruoho             Store (0x0000,WRSL)
   3178       1.1    jruoho             And(WRD1, WRD2, WRSL)
   3179       1.1    jruoho             if(LNotEqual(WRSL,0x0000))
   3180       1.1    jruoho             {
   3181       1.1    jruoho                 Return (1)      //  failure
   3182       1.1    jruoho             }
   3183       1.1    jruoho 
   3184       1.1    jruoho             //Check with 0 And 0 Dword
   3185       1.1    jruoho             Store (0x00000000,DWD1)
   3186       1.1    jruoho             Store (0x00000000,DWD2)
   3187       1.1    jruoho             Store (0x00000000,DRSL)
   3188       1.1    jruoho             And(DWD1, DWD2, DRSL)
   3189       1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   3190       1.1    jruoho             {
   3191       1.1    jruoho                 Return (1)      //  failure
   3192       1.1    jruoho             }
   3193       1.1    jruoho 
   3194       1.1    jruoho 
   3195       1.1    jruoho             //Check with 1 And 0 on byte data
   3196       1.1    jruoho             Store(0x55,BYT1)
   3197       1.1    jruoho             Store(0xAA,BYT2)
   3198       1.1    jruoho             Store(0x00,BRSL)
   3199       1.1    jruoho             And(BYT1, BYT2, BRSL)
   3200       1.1    jruoho             if(LNotEqual(BRSL,0x00))
   3201       1.1    jruoho             {
   3202       1.1    jruoho                 Return (1)      //  failure
   3203       1.1    jruoho             }
   3204       1.1    jruoho 
   3205       1.1    jruoho             //Check with 1 And 0 on Word data
   3206       1.1    jruoho             Store (0x5555,WRD1)
   3207       1.1    jruoho             Store (0xAAAA,WRD2)
   3208       1.1    jruoho             Store (0x0000,WRSL)
   3209       1.1    jruoho             And(WRD1, WRD2, WRSL)
   3210       1.1    jruoho             if(LNotEqual(WRSL,0x0000))
   3211       1.1    jruoho             {
   3212       1.1    jruoho                 Return (1)      //  failure
   3213       1.1    jruoho             }
   3214       1.1    jruoho 
   3215       1.1    jruoho             //Check with 1 And 0 on Dword
   3216       1.1    jruoho             Store (0x55555555,DWD1)
   3217       1.1    jruoho             Store (0xAAAAAAAA,DWD2)
   3218       1.1    jruoho             Store (0x00000000,DRSL)
   3219       1.1    jruoho             And(DWD1, DWD2, DRSL)
   3220       1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   3221       1.1    jruoho             {
   3222       1.1    jruoho                 Return (1)      //  failure
   3223       1.1    jruoho             }
   3224       1.1    jruoho 
   3225       1.1    jruoho             Store (0x1FFF, TOUD)
   3226       1.1    jruoho             Store (TOUD, Local0)
   3227       1.1    jruoho             if(LNotEqual(Local0,0x1FFF))
   3228       1.1    jruoho             {
   3229       1.1    jruoho                 Return (1)      //  failure
   3230       1.1    jruoho             }
   3231       1.1    jruoho 
   3232       1.1    jruoho             //TBD- Do We need to check for system memory data also for each test case ??
   3233       1.1    jruoho 
   3234       1.1    jruoho             Return(0)
   3235       1.1    jruoho 
   3236       1.1    jruoho         }//ANDP
   3237       1.1    jruoho 
   3238       1.1    jruoho         Method (OROP)
   3239       1.1    jruoho         {
   3240       1.1    jruoho 
   3241       1.1    jruoho             //Check with 1 Ored with 1 on byte data
   3242       1.1    jruoho             Store(0xff,BYT1)
   3243       1.1    jruoho             Store(0xff,BYT2)
   3244       1.1    jruoho             Store(0x00,BRSL)
   3245       1.1    jruoho             Or(BYT1, BYT2, BRSL)
   3246       1.1    jruoho             if(LNotEqual(BRSL,0xff))
   3247       1.1    jruoho             {
   3248       1.1    jruoho                 Return (1)      //  failure
   3249       1.1    jruoho             }
   3250       1.1    jruoho 
   3251       1.1    jruoho 
   3252       1.1    jruoho             //Check with 1 Ored with 1 on Word data
   3253       1.1    jruoho             Store(0xffff,WRD1)
   3254       1.1    jruoho             Store(0xffff,WRD2)
   3255       1.1    jruoho             Store(0x0000,WRSL)
   3256       1.1    jruoho             Or(WRD1, WRD2, WRSL)
   3257       1.1    jruoho             if(LNotEqual(WRSL,0xffff))
   3258       1.1    jruoho             {
   3259       1.1    jruoho                 Return (1)      //  failure
   3260       1.1    jruoho             }
   3261       1.1    jruoho 
   3262       1.1    jruoho             //Check with 1 Ored with 1 on Dword data
   3263       1.1    jruoho             Store(0xffffffff,DWD1)
   3264       1.1    jruoho             Store(0xffffffff,DWD2)
   3265       1.1    jruoho             Store(0x00000000,DRSL)
   3266       1.1    jruoho             Or(DWD1, DWD2, DRSL)
   3267       1.1    jruoho             if(LNotEqual(DRSL,0xffffffff))
   3268       1.1    jruoho             {
   3269       1.1    jruoho                 Return (1)      //  failure
   3270       1.1    jruoho             }
   3271       1.1    jruoho 
   3272       1.1    jruoho             //Check with 0 Ored with 0 on byte data
   3273       1.1    jruoho             Store(0x00,BYT1)
   3274       1.1    jruoho             Store(0x00,BYT2)
   3275       1.1    jruoho             Store(0x00,BRSL)
   3276       1.1    jruoho             Or(BYT1, BYT2, BRSL)
   3277       1.1    jruoho             if(LNotEqual(BRSL,0x00))
   3278       1.1    jruoho             {
   3279       1.1    jruoho                 Return (1)      //  failure
   3280       1.1    jruoho             }
   3281       1.1    jruoho 
   3282       1.1    jruoho             //Check with 0 Ored with 0 on Word data
   3283       1.1    jruoho             Store (0x0000,WRD1)
   3284       1.1    jruoho             Store (0x0000,WRD2)
   3285       1.1    jruoho             Store (0x0000,WRSL)
   3286       1.1    jruoho             Or(WRD1, WRD2, WRSL)
   3287       1.1    jruoho             if(LNotEqual(WRSL,0x0000))
   3288       1.1    jruoho             {
   3289       1.1    jruoho                 Return (1)      //  failure
   3290       1.1    jruoho             }
   3291       1.1    jruoho 
   3292       1.1    jruoho             //Check with 0 Ored with  0 Dword data
   3293       1.1    jruoho             Store (0x00000000,DWD1)
   3294       1.1    jruoho             Store (0x00000000,DWD2)
   3295       1.1    jruoho             Store (0x00000000,DRSL)
   3296       1.1    jruoho             Or(DWD1, DWD2, DRSL)
   3297       1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   3298       1.1    jruoho             {
   3299       1.1    jruoho                 Return (1)      //  failure
   3300       1.1    jruoho             }
   3301       1.1    jruoho 
   3302       1.1    jruoho 
   3303       1.1    jruoho             //Check with 1 Ored with 0 on byte data
   3304       1.1    jruoho             Store(0x55,BYT1)
   3305       1.1    jruoho             Store(0xAA,BYT2)
   3306       1.1    jruoho             Store(0x00,BRSL)
   3307       1.1    jruoho             Or(BYT1, BYT2, BRSL)
   3308       1.1    jruoho             if(LNotEqual(BRSL,0xff))
   3309       1.1    jruoho             {
   3310       1.1    jruoho                 Return (1)      //  failure
   3311       1.1    jruoho             }
   3312       1.1    jruoho 
   3313       1.1    jruoho             //Check with 1 Ored with 0 on Word data
   3314       1.1    jruoho             Store (0x5555,WRD1)
   3315       1.1    jruoho             Store (0xAAAA,WRD2)
   3316       1.1    jruoho             Store (0x0000,WRSL)
   3317       1.1    jruoho             Or(WRD1, WRD2, WRSL)
   3318       1.1    jruoho             if(LNotEqual(WRSL,0xffff))
   3319       1.1    jruoho             {
   3320       1.1    jruoho                 Return (1)      //  failure
   3321       1.1    jruoho             }
   3322       1.1    jruoho 
   3323       1.1    jruoho             //Check with 1 Ored with 0 on Dword data
   3324       1.1    jruoho             Store (0x55555555,DWD1)
   3325       1.1    jruoho             Store (0xAAAAAAAA,DWD2)
   3326       1.1    jruoho             Store (0x00000000,DRSL)
   3327       1.1    jruoho             Or(DWD1, DWD2, DRSL)
   3328       1.1    jruoho             if(LNotEqual(DRSL,0xffffffff))
   3329       1.1    jruoho             {
   3330       1.1    jruoho                 Return (1)      //  failure
   3331       1.1    jruoho             }
   3332       1.1    jruoho 
   3333       1.1    jruoho             //TBD - Do We need to check for system memory data also for each test case ??
   3334       1.1    jruoho 
   3335       1.1    jruoho             Return(0)
   3336       1.1    jruoho 
   3337       1.1    jruoho         }//OROP
   3338       1.1    jruoho 
   3339   1.1.1.3  christos         Method(TEST,, Serialized)
   3340       1.1    jruoho         {
   3341       1.1    jruoho             Store ("++++++++ AndOrOp Test", Debug)
   3342       1.1    jruoho 
   3343       1.1    jruoho             Name(RSLT,1)
   3344       1.1    jruoho             //Call Andop method
   3345       1.1    jruoho             Store(ANDP,RSLT)
   3346       1.1    jruoho             if(LEqual(RSLT,1))
   3347       1.1    jruoho             {
   3348       1.1    jruoho                 Return (RSLT)
   3349       1.1    jruoho             }
   3350       1.1    jruoho 
   3351       1.1    jruoho             //Call OrOp Method
   3352       1.1    jruoho             Store(OROP,RSLT)
   3353       1.1    jruoho             if(LEqual(RSLT,1))
   3354       1.1    jruoho             {
   3355       1.1    jruoho                 Return(RSLT)
   3356       1.1    jruoho             }
   3357       1.1    jruoho 
   3358       1.1    jruoho             //
   3359       1.1    jruoho             // Return original conditions to allow iterative execution
   3360       1.1    jruoho             //
   3361       1.1    jruoho             Store(0xff,BYT1)
   3362       1.1    jruoho             Store(0xff,BYT2)
   3363       1.1    jruoho             Store(0x00,BRSL)
   3364       1.1    jruoho             Store (0xffff,WRD1)
   3365       1.1    jruoho             Store (0xffff,WRD2)
   3366       1.1    jruoho             Store (0x0000,WRSL)
   3367       1.1    jruoho             Store (0xffffffff,DWD1)
   3368       1.1    jruoho             Store (0xffffffff,DWD2)
   3369       1.1    jruoho             Store (0x00000000,DRSL)
   3370       1.1    jruoho 
   3371       1.1    jruoho             Return(0)
   3372       1.1    jruoho         }   //TEST
   3373       1.1    jruoho     }   //ANDO
   3374       1.1    jruoho 
   3375       1.1    jruoho //
   3376       1.1    jruoho // test BreakPnt.asl
   3377       1.1    jruoho //
   3378       1.1    jruoho // This code tests the BreakPoint opcode term. The syntax of BreakPoint Term is
   3379       1.1    jruoho // BreakPointTerm    := BreakPoint
   3380       1.1    jruoho // Used for debugging, the Breakpoint opcode stops the execution and enters the AML debugger.
   3381       1.1    jruoho // In the non-debug version of the interpreter, BreakPoint is equivalent to Noop.
   3382       1.1    jruoho //
   3383       1.1    jruoho     Device (BRKP)
   3384       1.1    jruoho     {
   3385       1.1    jruoho         Name(CNT0,0)
   3386       1.1    jruoho 
   3387       1.1    jruoho         Method (BK1)
   3388       1.1    jruoho         {
   3389       1.1    jruoho             BreakPoint
   3390       1.1    jruoho             Return(0)
   3391       1.1    jruoho         }
   3392       1.1    jruoho 
   3393       1.1    jruoho         Method (TEST)
   3394       1.1    jruoho         {
   3395       1.1    jruoho             Store ("++++++++ BreakPnt Test", Debug)
   3396       1.1    jruoho 
   3397       1.1    jruoho             Store(0,CNT0)
   3398       1.1    jruoho 
   3399       1.1    jruoho             //Check BreakPoint statement
   3400       1.1    jruoho             While(LLess(CNT0,10))
   3401       1.1    jruoho             {
   3402       1.1    jruoho                 Increment(CNT0)
   3403       1.1    jruoho             }
   3404       1.1    jruoho 
   3405       1.1    jruoho             //Check the BreakPoint statement
   3406       1.1    jruoho             If(LEqual(CNT0,10))
   3407       1.1    jruoho             {
   3408       1.1    jruoho     //            BreakPoint
   3409       1.1    jruoho                 Return(0)
   3410       1.1    jruoho             }
   3411       1.1    jruoho 
   3412       1.1    jruoho             //failed
   3413       1.1    jruoho             Return(1)
   3414       1.1    jruoho         }
   3415       1.1    jruoho     }
   3416       1.1    jruoho 
   3417       1.1    jruoho //
   3418       1.1    jruoho // test AddSubOp.asl
   3419       1.1    jruoho //
   3420       1.1    jruoho     Device (ADSU)
   3421       1.1    jruoho     {
   3422       1.1    jruoho         //  create System Memory Operation Region and field overlays
   3423       1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3424       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3425       1.1    jruoho         {
   3426       1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3427       1.1    jruoho             SMWD,   16, //  16-bit WORD
   3428       1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3429       1.1    jruoho         }   //  Field(RAM)
   3430       1.1    jruoho 
   3431   1.1.1.3  christos         Method (TEST,, Serialized)
   3432       1.1    jruoho         {
   3433       1.1    jruoho             Store ("++++++++ AddSubOp Test", Debug)
   3434       1.1    jruoho 
   3435       1.1    jruoho             Name (DWRD, 0x12345678)
   3436       1.1    jruoho             Name (WRD, 0x1234)
   3437       1.1    jruoho             Name (BYT, 0x12)
   3438       1.1    jruoho 
   3439       1.1    jruoho             //  Test AddOp with DWORD data
   3440       1.1    jruoho             Store (0x12345678, DWRD)
   3441       1.1    jruoho             Add (DWRD, 7, DWRD)
   3442       1.1    jruoho             If (LNotEqual (DWRD, 0x1234567F))
   3443       1.1    jruoho                 {   Return (DWRD)   }
   3444       1.1    jruoho 
   3445       1.1    jruoho             //  Test AddOp with WORD data
   3446       1.1    jruoho             Add (WRD, 5, WRD)
   3447       1.1    jruoho             If (LNotEqual (WRD, 0x1239))
   3448       1.1    jruoho                 {   Return (WRD)    }
   3449       1.1    jruoho 
   3450       1.1    jruoho             //  Test AddOp with BYTE data
   3451       1.1    jruoho             Add (BYT, 3, BYT)
   3452       1.1    jruoho             If (LNotEqual (BYT, 0x15))
   3453       1.1    jruoho                 {   Return (BYT)    }
   3454       1.1    jruoho 
   3455       1.1    jruoho             //  Test SubtractOp with DWORD data
   3456       1.1    jruoho             Subtract (DWRD, 7, DWRD)
   3457       1.1    jruoho             If (LNotEqual (DWRD, 0x12345678))
   3458       1.1    jruoho                 {   Return (DWRD)   }
   3459       1.1    jruoho 
   3460       1.1    jruoho             //  Test SubtractOp with WORD data
   3461       1.1    jruoho             Subtract (WRD, 3, WRD)
   3462       1.1    jruoho             If (LNotEqual (WRD, 0x1236))
   3463       1.1    jruoho                 {   Return (WRD)    }
   3464       1.1    jruoho 
   3465       1.1    jruoho             //  Test SubtractOp with BYTE data
   3466       1.1    jruoho             Subtract (BYT, 3, BYT)
   3467       1.1    jruoho             If (LNotEqual (BYT, 0x12))
   3468       1.1    jruoho                 {   Return (BYT)    }
   3469       1.1    jruoho 
   3470       1.1    jruoho 
   3471       1.1    jruoho             //  test AddOp with DWORD SystemMemory OpRegion
   3472       1.1    jruoho             Store (0x01234567, SMDW)
   3473       1.1    jruoho             Add (SMDW, 8, SMDW)
   3474       1.1    jruoho             If (LNotEqual (SMDW, 0x0123456F))
   3475       1.1    jruoho                 {   Return (SMDW)   }
   3476       1.1    jruoho 
   3477       1.1    jruoho             //  test SubtractOp with DWORD SystemMemory OpRegion
   3478       1.1    jruoho             Subtract (SMDW, 7, SMDW)
   3479       1.1    jruoho             If (LNotEqual (SMDW, 0x01234568))
   3480       1.1    jruoho                 {   Return (SMDW)   }
   3481       1.1    jruoho 
   3482       1.1    jruoho 
   3483       1.1    jruoho             //  test AddOp with WORD SystemMemory OpRegion
   3484       1.1    jruoho             Store (0x0123, SMWD)
   3485       1.1    jruoho             Add (SMWD, 6, SMWD)
   3486       1.1    jruoho             If (LNotEqual (SMWD, 0x0129))
   3487       1.1    jruoho                 {   Return (SMWD)   }
   3488       1.1    jruoho 
   3489       1.1    jruoho             //  test SubtractOp with WORD SystemMemory OpRegion
   3490       1.1    jruoho             Subtract (SMWD, 5, SMWD)
   3491       1.1    jruoho             If (LNotEqual (SMWD, 0x0124))
   3492       1.1    jruoho                 {   Return (SMWD)   }
   3493       1.1    jruoho 
   3494       1.1    jruoho 
   3495       1.1    jruoho             //  test AddOp with BYTE SystemMemory OpRegion
   3496       1.1    jruoho             Store (0x01, SMBY)
   3497       1.1    jruoho             Add (SMBY, 4, SMBY)
   3498       1.1    jruoho             If (LNotEqual (SMBY, 0x05))
   3499       1.1    jruoho                 {   Return (SMBY)   }
   3500       1.1    jruoho 
   3501       1.1    jruoho             //  test SubtractOp with BYTE SystemMemory OpRegion
   3502       1.1    jruoho             Subtract (SMBY, 3, SMBY)
   3503       1.1    jruoho             If (LNotEqual (SMBY, 0x02))
   3504       1.1    jruoho                 {   Return (SMBY)   }
   3505       1.1    jruoho 
   3506       1.1    jruoho             Return (0)
   3507       1.1    jruoho         }   //  TEST
   3508       1.1    jruoho     }   //  ADSU
   3509       1.1    jruoho 
   3510       1.1    jruoho //
   3511       1.1    jruoho // test IncDecOp.asl
   3512       1.1    jruoho //
   3513       1.1    jruoho     Device (INDC)
   3514       1.1    jruoho     {
   3515       1.1    jruoho         //  create System Memory Operation Region and field overlays
   3516       1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3517       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3518       1.1    jruoho         {
   3519       1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3520       1.1    jruoho             SMWD,   16, //  16-bit WORD
   3521       1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3522       1.1    jruoho         }   //  Field(RAM)
   3523       1.1    jruoho 
   3524   1.1.1.3  christos         Method (TEST,, Serialized)
   3525       1.1    jruoho         {
   3526       1.1    jruoho             Store ("++++++++ IncDecOp Test", Debug)
   3527       1.1    jruoho 
   3528       1.1    jruoho             Name (DWRD, 0x12345678)
   3529       1.1    jruoho             Name (WRD, 0x1234)
   3530       1.1    jruoho             Name (BYT, 0x12)
   3531       1.1    jruoho 
   3532       1.1    jruoho             //  Test IncrementOp with DWORD data
   3533       1.1    jruoho             Store (0x12345678, DWRD)
   3534       1.1    jruoho             Increment (DWRD)
   3535       1.1    jruoho             If (LNotEqual (DWRD, 0x12345679))
   3536       1.1    jruoho                 {   Return (DWRD)   }
   3537       1.1    jruoho 
   3538       1.1    jruoho             //  Test IncrementOp with WORD data
   3539       1.1    jruoho             Increment (WRD)
   3540       1.1    jruoho             If (LNotEqual (WRD, 0x1235))
   3541       1.1    jruoho                 {   Return (WRD)    }
   3542       1.1    jruoho 
   3543       1.1    jruoho             //  Test IncrementOp with BYTE data
   3544       1.1    jruoho             Increment (BYT)
   3545       1.1    jruoho             If (LNotEqual (BYT, 0x13))
   3546       1.1    jruoho                 {   Return (BYT)    }
   3547       1.1    jruoho 
   3548       1.1    jruoho             //  Test DecrementOp with DWORD data
   3549       1.1    jruoho             Decrement (DWRD)
   3550       1.1    jruoho             If (LNotEqual (DWRD, 0x12345678))
   3551       1.1    jruoho                 {   Return (DWRD)   }
   3552       1.1    jruoho 
   3553       1.1    jruoho             //  Test DecrementOp with WORD data
   3554       1.1    jruoho             Decrement (WRD)
   3555       1.1    jruoho             If (LNotEqual (WRD, 0x1234))
   3556       1.1    jruoho                 {   Return (WRD)    }
   3557       1.1    jruoho 
   3558       1.1    jruoho             //  Test DecrementOp with BYTE data
   3559       1.1    jruoho             Decrement (BYT)
   3560       1.1    jruoho             If (LNotEqual (BYT, 0x12))
   3561       1.1    jruoho                 {   Return (BYT)    }
   3562       1.1    jruoho 
   3563       1.1    jruoho 
   3564       1.1    jruoho             //  test IncrementOp with DWORD SystemMemory OpRegion
   3565       1.1    jruoho             Store (0x01234567, SMDW)
   3566       1.1    jruoho             Increment (SMDW)
   3567       1.1    jruoho             If (LNotEqual (SMDW, 0x01234568))
   3568       1.1    jruoho                 {   Return (SMDW)   }
   3569       1.1    jruoho 
   3570       1.1    jruoho             //  test DecrementOp with DWORD SystemMemory OpRegion
   3571       1.1    jruoho             Decrement (SMDW)
   3572       1.1    jruoho             If (LNotEqual (SMDW, 0x01234567))
   3573       1.1    jruoho                 {   Return (SMDW)   }
   3574       1.1    jruoho 
   3575       1.1    jruoho 
   3576       1.1    jruoho             //  test IncrementOp with WORD SystemMemory OpRegion
   3577       1.1    jruoho             Store (0x0123, SMWD)
   3578       1.1    jruoho             Increment (SMWD)
   3579       1.1    jruoho             If (LNotEqual (SMWD, 0x0124))
   3580       1.1    jruoho                 {   Return (SMWD)   }
   3581       1.1    jruoho 
   3582       1.1    jruoho             //  test DecrementOp with WORD SystemMemory OpRegion
   3583       1.1    jruoho             Decrement (SMWD)
   3584       1.1    jruoho             If (LNotEqual (SMWD, 0x0123))
   3585       1.1    jruoho                 {   Return (SMWD)   }
   3586       1.1    jruoho 
   3587       1.1    jruoho 
   3588       1.1    jruoho             //  test IncrementOp with BYTE SystemMemory OpRegion
   3589       1.1    jruoho             Store (0x01, SMBY)
   3590       1.1    jruoho             Increment (SMBY)
   3591       1.1    jruoho             If (LNotEqual (SMBY, 0x02))
   3592       1.1    jruoho                 {   Return (SMBY)   }
   3593       1.1    jruoho 
   3594       1.1    jruoho             //  test DecrementOp with BYTE SystemMemory OpRegion
   3595       1.1    jruoho             Decrement (SMBY)
   3596       1.1    jruoho             If (LNotEqual (SMBY, 0x01))
   3597       1.1    jruoho                 {   Return (SMBY)   }
   3598       1.1    jruoho 
   3599       1.1    jruoho             Return (0)
   3600       1.1    jruoho         }   //  TEST
   3601       1.1    jruoho     }   //  INDC
   3602       1.1    jruoho 
   3603       1.1    jruoho //
   3604       1.1    jruoho // test LOps.asl
   3605       1.1    jruoho //
   3606       1.1    jruoho //This source tests all the logical operators. Logical operators in ASL are as follows.
   3607       1.1    jruoho //LAnd, LEqual, LGreater, LLess, LNot, LNotEqual, LOr.
   3608       1.1    jruoho // Success will return 0 and failure will return a non zero number. Check the source code for
   3609       1.1    jruoho // non zero number to find where the test failed
   3610       1.1    jruoho 
   3611       1.1    jruoho     Device (LOPS)
   3612       1.1    jruoho     {
   3613       1.1    jruoho         //Create System Memory Operation Region and field overlays
   3614       1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3615       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3616       1.1    jruoho         {
   3617       1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3618       1.1    jruoho             SMWD,   16, //  16-bit WORD
   3619       1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3620       1.1    jruoho         }// Field(RAM)
   3621       1.1    jruoho 
   3622       1.1    jruoho         //And with Byte Data
   3623       1.1    jruoho         Name (BYT1, 0xff)
   3624       1.1    jruoho         Name (BYT2, 0xff)
   3625       1.1    jruoho         Name (BRSL, 0x00)
   3626       1.1    jruoho 
   3627       1.1    jruoho         //And with Word Data
   3628       1.1    jruoho         Name (WRD1, 0xffff)
   3629       1.1    jruoho         Name (WRD2, 0xffff)
   3630       1.1    jruoho         Name (WRSL, 0x0000)
   3631       1.1    jruoho 
   3632       1.1    jruoho         //And with DWord Data
   3633       1.1    jruoho         Name (DWD1, 0xffffffff)
   3634       1.1    jruoho         Name (DWD2, 0xffffffff)
   3635       1.1    jruoho         Name (DRSL, 0x00000000)
   3636       1.1    jruoho 
   3637       1.1    jruoho         Name(RSLT,1)
   3638       1.1    jruoho 
   3639       1.1    jruoho         Method (ANDL,2) // Test Logical And
   3640       1.1    jruoho         {
   3641       1.1    jruoho             //test with the arguments passed
   3642       1.1    jruoho             if(LEqual(Arg0,Arg1))
   3643       1.1    jruoho             { Store(LAnd(Arg0,Arg1),RSLT)
   3644       1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3645       1.1    jruoho                 {Return(11)}
   3646       1.1    jruoho             }
   3647       1.1    jruoho 
   3648       1.1    jruoho             //test with he locals
   3649       1.1    jruoho             Store(Arg0,Local0)
   3650       1.1    jruoho             Store(Arg1,Local1)
   3651       1.1    jruoho 
   3652       1.1    jruoho             if(LEqual(Local0,Local1))
   3653       1.1    jruoho             {
   3654       1.1    jruoho                 Store(LAnd(Local0,Local1),RSLT)
   3655       1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3656       1.1    jruoho                     {Return(12)}
   3657       1.1    jruoho             }
   3658       1.1    jruoho 
   3659       1.1    jruoho             //test with BYTE data
   3660       1.1    jruoho             if(LEqual(BYT1,BYT2))
   3661       1.1    jruoho             { Store(LAnd(BYT1,BYT2),BRSL)
   3662       1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3663       1.1    jruoho                 {Return(13)}
   3664       1.1    jruoho             }
   3665       1.1    jruoho 
   3666       1.1    jruoho             //test with WORD data
   3667       1.1    jruoho             if(LEqual(WRD1,WRD2))
   3668       1.1    jruoho             { Store(LAnd(WRD1,WRD2),WRSL)
   3669       1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3670       1.1    jruoho                 {Return(14)}
   3671       1.1    jruoho             }
   3672       1.1    jruoho 
   3673       1.1    jruoho             //test with DWORD data
   3674       1.1    jruoho             if(LEqual(DWD1,DWD2))
   3675       1.1    jruoho             { Store(LAnd(DWD1,DWD2),DRSL)
   3676       1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3677       1.1    jruoho                 {Return(15)}
   3678       1.1    jruoho             }
   3679       1.1    jruoho 
   3680       1.1    jruoho             //Test for system memory data for each test case.
   3681       1.1    jruoho 
   3682       1.1    jruoho                 Store(0xff,BYT1)
   3683       1.1    jruoho                 Store(0xff,SMBY)
   3684       1.1    jruoho                 Store(0x00,BRSL)
   3685       1.1    jruoho 
   3686       1.1    jruoho             //test with BYTE system memory data
   3687       1.1    jruoho             if(LEqual(BYT1,SMBY))
   3688       1.1    jruoho             { Store(LAnd(BYT1,SMBY),BRSL)
   3689       1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3690       1.1    jruoho                 {Return(16)}
   3691       1.1    jruoho             }
   3692       1.1    jruoho 
   3693       1.1    jruoho             Store (0xffff,WRD1)
   3694       1.1    jruoho             Store(0xffff,SMWD)
   3695       1.1    jruoho             Store(0x0000,WRSL)
   3696       1.1    jruoho             //test with WORD system memory data
   3697       1.1    jruoho             if(LEqual(WRD1,SMWD))
   3698       1.1    jruoho             { Store(LAnd(WRD1,SMWD),WRSL)
   3699       1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3700       1.1    jruoho                 {Return(17)}
   3701       1.1    jruoho             }
   3702       1.1    jruoho 
   3703       1.1    jruoho             Store(0x000000,DRSL)
   3704       1.1    jruoho             Store (0xffffff,DWD1)
   3705       1.1    jruoho             Store(0xffffff,SMDW)
   3706       1.1    jruoho 
   3707       1.1    jruoho             //test with DWORD system memory data
   3708       1.1    jruoho             if(LEqual(DWD1,SMDW))
   3709       1.1    jruoho             { Store(LAnd(DWD1,SMDW),DRSL)
   3710       1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3711       1.1    jruoho                 {Return(18)}
   3712       1.1    jruoho             }
   3713       1.1    jruoho 
   3714       1.1    jruoho             Return(0)
   3715       1.1    jruoho 
   3716       1.1    jruoho         }//ANDL
   3717       1.1    jruoho 
   3718       1.1    jruoho         //Test the LOr Operator
   3719       1.1    jruoho 
   3720       1.1    jruoho         Method (ORL_,2)
   3721       1.1    jruoho         {//ORL_
   3722       1.1    jruoho 
   3723       1.1    jruoho             //test with the arguments passed
   3724       1.1    jruoho             if(LEqual(Arg0,Arg1))
   3725       1.1    jruoho             {
   3726       1.1    jruoho                 Store(LOr(Arg0,Arg1),RSLT)
   3727       1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3728       1.1    jruoho                 {
   3729       1.1    jruoho                     Return(21)
   3730       1.1    jruoho                 }
   3731       1.1    jruoho             }
   3732       1.1    jruoho 
   3733       1.1    jruoho             //test with he locals
   3734       1.1    jruoho             Store(Arg0,Local0)
   3735       1.1    jruoho             Store(Arg1,Local1)
   3736       1.1    jruoho 
   3737       1.1    jruoho             if(LEqual(Local0,Local1))
   3738       1.1    jruoho             {
   3739       1.1    jruoho                 Store(LOr(Local0,Local1),RSLT)
   3740       1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3741       1.1    jruoho                     {Return(22)}
   3742       1.1    jruoho             }
   3743       1.1    jruoho 
   3744       1.1    jruoho             //Check with 1 LOred with 0 on byte data
   3745       1.1    jruoho             Store(0xff,BYT1)
   3746       1.1    jruoho             Store(0x00,BYT2)
   3747       1.1    jruoho             Store(0x00,BRSL)
   3748       1.1    jruoho 
   3749       1.1    jruoho             if(LNotEqual(BYT1, BYT2))
   3750       1.1    jruoho             {
   3751       1.1    jruoho                 Store(LOr(BYT1, BYT2), BRSL)
   3752       1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3753       1.1    jruoho                 {Return(23)}
   3754       1.1    jruoho             }
   3755       1.1    jruoho 
   3756       1.1    jruoho             //Check with 1 LOred with 0 on WORD data
   3757       1.1    jruoho             Store(0xffff,WRD1)
   3758       1.1    jruoho             Store(0x0000,WRD2)
   3759       1.1    jruoho             Store(0x0000,WRSL)
   3760       1.1    jruoho 
   3761       1.1    jruoho             if(LNotEqual(WRD1, WRD2))
   3762       1.1    jruoho             {
   3763       1.1    jruoho                 Store(LOr(WRD1, WRD2), WRSL)
   3764       1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3765       1.1    jruoho                 {Return(24)}
   3766       1.1    jruoho             }
   3767       1.1    jruoho 
   3768       1.1    jruoho             //Check with 1 LOred with 0 on DWORD data
   3769       1.1    jruoho             Store(0xffffffff,DWD1)
   3770       1.1    jruoho             Store(0x00000000,DWD2)
   3771       1.1    jruoho             Store(0x00000000,DRSL)
   3772       1.1    jruoho 
   3773       1.1    jruoho             if(LNotEqual(DWD1, DWD2))
   3774       1.1    jruoho             {
   3775       1.1    jruoho                 Store(LOr(DWD1, DWD2), DRSL)
   3776       1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3777       1.1    jruoho                 {Return(25)}
   3778       1.1    jruoho             }
   3779       1.1    jruoho 
   3780       1.1    jruoho             Store(0x00,BYT1)
   3781       1.1    jruoho             Store(0xff,SMBY)
   3782       1.1    jruoho             Store(0x00,BRSL)
   3783       1.1    jruoho 
   3784       1.1    jruoho             //test with BYTE system memory data
   3785       1.1    jruoho             if(LEqual(BYT1,SMBY))
   3786       1.1    jruoho             { Store(LOr(BYT1,SMBY),BRSL)
   3787       1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3788       1.1    jruoho                 {Return(26)}
   3789       1.1    jruoho             }
   3790       1.1    jruoho 
   3791       1.1    jruoho             Store (0x0000,WRD1)
   3792       1.1    jruoho             Store(0xffff,SMWD)
   3793       1.1    jruoho             Store(0x0000,WRSL)
   3794       1.1    jruoho 
   3795       1.1    jruoho             //test with WORD system memory data
   3796       1.1    jruoho             if(LEqual(WRD1,SMWD))
   3797       1.1    jruoho             { Store(LOr(WRD1,SMWD),WRSL)
   3798       1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3799       1.1    jruoho                 {Return(27)}
   3800       1.1    jruoho             }
   3801       1.1    jruoho 
   3802       1.1    jruoho 
   3803       1.1    jruoho             Store(0x00000000,DWD1)
   3804       1.1    jruoho             Store(0xffffffff,SMDW)
   3805       1.1    jruoho             Store(0x00000000,DRSL)
   3806       1.1    jruoho 
   3807       1.1    jruoho             //test with DWORD system memory data
   3808       1.1    jruoho             if(LEqual(DWD1,SMDW))
   3809       1.1    jruoho             { Store(LAnd(DWD1,SMDW),DRSL)
   3810       1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3811       1.1    jruoho                 {Return(28)}
   3812       1.1    jruoho             }
   3813       1.1    jruoho             Return(0)
   3814       1.1    jruoho 
   3815       1.1    jruoho         }//ORL_
   3816       1.1    jruoho 
   3817       1.1    jruoho         //This method tests LGreater and LNot operator
   3818       1.1    jruoho         Method(LSGR,2)
   3819       1.1    jruoho         {//LSGR
   3820       1.1    jruoho 
   3821  1.1.1.10  christos             //Test on arguments passed
   3822       1.1    jruoho 
   3823       1.1    jruoho             //in test data, Arg1 > Arg0
   3824       1.1    jruoho             if(LEqual(Ones,LNot(LGreater(Arg1,Arg0))))
   3825       1.1    jruoho             {Return(31)}
   3826       1.1    jruoho 
   3827       1.1    jruoho             //test LLessEqual
   3828       1.1    jruoho             if(LEqual(Ones,LNot(LGreaterEqual(Arg1,Arg0))))
   3829       1.1    jruoho             {Return(32)}
   3830       1.1    jruoho 
   3831       1.1    jruoho             if(LEqual(Ones,LLess(Arg1,Arg0)))
   3832       1.1    jruoho             {Return(33)}
   3833       1.1    jruoho 
   3834       1.1    jruoho             //test LLessEqual
   3835       1.1    jruoho             if(LEqual(Ones,LLessEqual(Arg1,Arg0)))
   3836       1.1    jruoho             {Return(34)}
   3837       1.1    jruoho 
   3838       1.1    jruoho             Store(Arg0,Local0)
   3839       1.1    jruoho             Store(Arg1,Local1)
   3840       1.1    jruoho 
   3841       1.1    jruoho             //test with the locals
   3842       1.1    jruoho             if(LNot(LGreater(Local1,Local0)))
   3843       1.1    jruoho                 {Return(35)}
   3844       1.1    jruoho 
   3845       1.1    jruoho             //test on Byte data
   3846       1.1    jruoho             Store(0x12,BYT1)
   3847       1.1    jruoho             Store(0x21,BYT2)
   3848       1.1    jruoho 
   3849       1.1    jruoho             if(LNot(LGreater(BYT2,BYT1)))
   3850       1.1    jruoho                 {Return(36)}
   3851       1.1    jruoho 
   3852       1.1    jruoho             if(LNot(LLess(BYT1,BYT2)))
   3853       1.1    jruoho                 {Return(37)}
   3854       1.1    jruoho 
   3855       1.1    jruoho             //test LGreaterEqual with byte data
   3856       1.1    jruoho             if(LNot(LGreaterEqual(BYT2,BYT1)))
   3857       1.1    jruoho                 {Return(38)}
   3858       1.1    jruoho 
   3859       1.1    jruoho             //test LLessEqual byte data
   3860       1.1    jruoho             if(LNot(LLessEqual(BYT1,BYT2)))
   3861       1.1    jruoho                 {Return(39)}
   3862       1.1    jruoho 
   3863       1.1    jruoho 
   3864       1.1    jruoho             //test on Word data
   3865       1.1    jruoho             Store(0x1212,WRD1)
   3866       1.1    jruoho             Store(0x2121,WRD2)
   3867       1.1    jruoho 
   3868       1.1    jruoho             if(LNot(LGreater(WRD2,WRD1)))
   3869       1.1    jruoho                 {Return(310)}
   3870       1.1    jruoho 
   3871       1.1    jruoho             if(LNot(LLess(WRD1,WRD2)))
   3872       1.1    jruoho                 {Return(311)}
   3873       1.1    jruoho 
   3874       1.1    jruoho             //Test LGreaterEqual with Word Data
   3875       1.1    jruoho             if(LNot(LGreaterEqual(WRD2,WRD1)))
   3876       1.1    jruoho                 {Return(312)}
   3877       1.1    jruoho 
   3878       1.1    jruoho 
   3879       1.1    jruoho             //Test LLessEqual with Word Data
   3880       1.1    jruoho             if(LNot(LLessEqual(WRD1,WRD2)))
   3881       1.1    jruoho                 {Return(313)}
   3882       1.1    jruoho 
   3883       1.1    jruoho             //test on DWord data
   3884       1.1    jruoho             Store(0x12121212,DWD1)
   3885       1.1    jruoho             Store(0x21212121,DWD2)
   3886       1.1    jruoho 
   3887       1.1    jruoho             if(LNot(LGreater(DWD2,DWD1)))
   3888       1.1    jruoho                 {Return(314)}
   3889       1.1    jruoho 
   3890       1.1    jruoho             if(LNot(LLess(DWD1,DWD2)))
   3891       1.1    jruoho                 {Return(315)}
   3892       1.1    jruoho 
   3893       1.1    jruoho 
   3894       1.1    jruoho             //Test LGreaterEqual with Dword
   3895       1.1    jruoho             if(LNot(LGreaterEqual(DWD2,DWD1)))
   3896       1.1    jruoho                 {Return(316)}
   3897       1.1    jruoho 
   3898       1.1    jruoho             //Test LLessEqual DWord
   3899       1.1    jruoho             if(LNot(LLessEqual(DWD1,DWD2)))
   3900       1.1    jruoho                 {Return(317)}
   3901       1.1    jruoho 
   3902       1.1    jruoho             Return(0)
   3903       1.1    jruoho         }//LSGR
   3904       1.1    jruoho 
   3905       1.1    jruoho         //The test method
   3906       1.1    jruoho         Method(TEST)
   3907       1.1    jruoho         {
   3908       1.1    jruoho             Store ("++++++++ LOps Test", Debug)
   3909       1.1    jruoho 
   3910       1.1    jruoho             Store(0,RSLT)
   3911       1.1    jruoho             //Call LAndOp method
   3912       1.1    jruoho             Store(ANDL(2,2),RSLT)
   3913       1.1    jruoho             if(LNotEqual(RSLT,0))
   3914       1.1    jruoho              {Return(RSLT)}
   3915       1.1    jruoho 
   3916       1.1    jruoho             //Call LOrOp Method
   3917       1.1    jruoho             Store(ORL_(5,5),RSLT)
   3918       1.1    jruoho             if(LNotEqual(RSLT,0))
   3919       1.1    jruoho             {Return(RSLT)}
   3920       1.1    jruoho 
   3921       1.1    jruoho             //Call LSGR Method
   3922       1.1    jruoho             Store(LSGR(5,7),RSLT)
   3923       1.1    jruoho             if(LNotEqual(RSLT,0))
   3924       1.1    jruoho             {Return(RSLT)}
   3925       1.1    jruoho 
   3926       1.1    jruoho             Return(0)
   3927       1.1    jruoho         }//TEST
   3928       1.1    jruoho     }//LOPS
   3929       1.1    jruoho 
   3930       1.1    jruoho //
   3931       1.1    jruoho // test FdSetOps.asl
   3932       1.1    jruoho //
   3933       1.1    jruoho //  FindSetLeftBit - Find Set Left Bit
   3934       1.1    jruoho //  FindSetLeftBitTerm  := FindSetLeftBit
   3935       1.1    jruoho //  (   Source, //TermArg=>Integer
   3936       1.1    jruoho //      Result  //Nothing | SuperName
   3937       1.1    jruoho //  ) => Integer
   3938       1.1    jruoho //  Source is evaluated as integer data type, and the one-based bit location of
   3939       1.1    jruoho //  the first MSb (most significant set bit) is optionally stored into Result.
   3940       1.1    jruoho //  The result of 0 means no bit was set, 1 means the left-most bit set is the
   3941       1.1    jruoho //  first bit, 2 means the left-most bit set is the second bit, and so on.
   3942       1.1    jruoho //  FindSetRightBit - Find Set Right Bit
   3943       1.1    jruoho 
   3944       1.1    jruoho //  FindSetRightBitTerm := FindSetRightBit
   3945       1.1    jruoho //  (   Source, //TermArg=>Integer
   3946       1.1    jruoho //      Result  //Nothing | SuperName
   3947       1.1    jruoho //  ) => Integer
   3948       1.1    jruoho //  Source is evaluated as integer data type, and the one-based bit location of
   3949       1.1    jruoho //  the most LSb (least significant set bit) is optionally stored in Result.
   3950       1.1    jruoho //  The result of 0 means no bit was set, 32 means the first bit set is the
   3951       1.1    jruoho //  32nd bit, 31 means the first bit set is the 31st bit, and so on.
   3952       1.1    jruoho 
   3953       1.1    jruoho //  If the Control method is success Zero is returned. Otherwise a non-zero
   3954       1.1    jruoho //  number is returned.
   3955       1.1    jruoho //
   3956       1.1    jruoho     Device (FDSO)
   3957       1.1    jruoho     {   //  FDSO
   3958       1.1    jruoho 
   3959       1.1    jruoho         //  Create System Memory Operation Region and field overlays
   3960       1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3961       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3962       1.1    jruoho         {
   3963       1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3964       1.1    jruoho             SMWD,   16, //  16-bit WORD
   3965       1.1    jruoho             SMBY,   8,      //  8-bit BYTE
   3966       1.1    jruoho         }   //  Field(RAM)
   3967       1.1    jruoho 
   3968       1.1    jruoho         //  Byte Data
   3969       1.1    jruoho         Name (BYT1, 1)
   3970       1.1    jruoho         Name (BRSL, 0x00)
   3971       1.1    jruoho 
   3972       1.1    jruoho         //  Word Data
   3973       1.1    jruoho         Name (WRD1, 0x100)
   3974       1.1    jruoho         Name (WRSL, 0x0000)
   3975       1.1    jruoho 
   3976       1.1    jruoho         //  DWord Data
   3977       1.1    jruoho         Name (DWD1, 0x10000)
   3978       1.1    jruoho         Name (DRSL, 0x00000000)
   3979       1.1    jruoho         Name (RSLT, 1)
   3980       1.1    jruoho         Name (CNTR, 1)
   3981       1.1    jruoho 
   3982       1.1    jruoho         Method (SHFT,2)
   3983       1.1    jruoho         //  Arg0 is the actual data and Arg1 is the bit position
   3984       1.1    jruoho         {   //  SHFT
   3985       1.1    jruoho             Store (Arg0, Local0)
   3986       1.1    jruoho             Store (Arg1, Local1)
   3987       1.1    jruoho 
   3988       1.1    jruoho             FindSetLeftBit (Arg0, BRSL)
   3989       1.1    jruoho             If (LNotEqual (BRSL, Arg1))
   3990       1.1    jruoho                 {   Return (0x11)   }
   3991       1.1    jruoho             If (LNotEqual (Arg0, Local0))
   3992       1.1    jruoho                 {   Return (0x12)   }
   3993       1.1    jruoho 
   3994       1.1    jruoho             FindSetLeftBit (Local0, BRSL)
   3995       1.1    jruoho             If (LNotEqual (BRSL, Local1))
   3996       1.1    jruoho                 {   Return (0x13)   }
   3997       1.1    jruoho             If (LNotEqual (Arg0, Local0))
   3998       1.1    jruoho                 {   Return (0x14)   }
   3999       1.1    jruoho 
   4000       1.1    jruoho             //  test the byte value for SetLeftBit
   4001       1.1    jruoho             Store (7, BYT1)
   4002       1.1    jruoho             FindSetLeftBit (BYT1, BRSL)
   4003       1.1    jruoho             If (LNotEqual (BRSL, 3))
   4004       1.1    jruoho                 {   Return (0x15)   }
   4005       1.1    jruoho             If (LNotEqual (BYT1, 7))
   4006       1.1    jruoho                 {   Return (0x16)   }
   4007       1.1    jruoho 
   4008       1.1    jruoho             Store (1, BYT1)
   4009       1.1    jruoho             Store (1, CNTR)
   4010       1.1    jruoho             While (LLessEqual (CNTR, 8))
   4011       1.1    jruoho             {   //  FindSetLeftBit check loop for byte data
   4012       1.1    jruoho                 FindSetLeftBit (BYT1, BRSL)
   4013       1.1    jruoho                 If (LNotEqual (BRSL, CNTR))
   4014       1.1    jruoho                     {   Return (0x17)   }
   4015       1.1    jruoho 
   4016       1.1    jruoho                 //  Shift the bits to check the same
   4017       1.1    jruoho                 ShiftLeft (BYT1, 1, BYT1)
   4018       1.1    jruoho                 Increment (CNTR)
   4019       1.1    jruoho             }   //  FindSetLeftBit check loop for byte data
   4020       1.1    jruoho 
   4021       1.1    jruoho 
   4022       1.1    jruoho             //  Check BYTE value for SetRightBit
   4023       1.1    jruoho             Store (7, BYT1)
   4024       1.1    jruoho             FindSetRightBit (BYT1, BRSL)
   4025       1.1    jruoho             If (LNotEqual (BRSL, 1))
   4026       1.1    jruoho                 {   Return (0x21)   }
   4027       1.1    jruoho             If (LNotEqual (BYT1, 7))
   4028       1.1    jruoho                 {   Return (0x22)   }
   4029       1.1    jruoho 
   4030       1.1    jruoho             Store (1, CNTR)
   4031       1.1    jruoho             Store (0xFF, BYT1)
   4032       1.1    jruoho             While (LLessEqual (CNTR, 8))
   4033       1.1    jruoho             {   //  FindSetRightBit check loop for byte data
   4034       1.1    jruoho                 FindSetRightBit (BYT1, BRSL)
   4035       1.1    jruoho                 If (LNotEqual (BRSL, CNTR))
   4036       1.1    jruoho                     {   Return (0x23)   }
   4037       1.1    jruoho 
   4038       1.1    jruoho                 ShiftLeft (BYT1, 1, BYT1)
   4039       1.1    jruoho                 Increment (CNTR)
   4040       1.1    jruoho             }   //  FindSetRightBit check loop for byte data
   4041       1.1    jruoho 
   4042       1.1    jruoho 
   4043       1.1    jruoho             //  Test Word value for SetLeftBit
   4044       1.1    jruoho             Store (9, CNTR)
   4045       1.1    jruoho             Store (0x100, WRD1)
   4046       1.1    jruoho             While (LLessEqual (CNTR, 16))
   4047       1.1    jruoho             {
   4048       1.1    jruoho                 //  FindSetLeftBit check loop for Word data
   4049       1.1    jruoho                 FindSetLeftBit (WRD1, WRSL)
   4050       1.1    jruoho                 If (LNotEqual (WRSL, CNTR))
   4051       1.1    jruoho                     {   Return (0x31)   }
   4052       1.1    jruoho 
   4053       1.1    jruoho                 //  Shift the bits to check the same
   4054       1.1    jruoho                 ShiftLeft (WRD1, 1, WRD1)
   4055       1.1    jruoho                 Increment (CNTR)
   4056       1.1    jruoho             }   //  FindSetLeftBit check loop for Word data
   4057       1.1    jruoho 
   4058       1.1    jruoho             //  Check Word value for SetRightBit
   4059       1.1    jruoho             Store (9, CNTR)
   4060       1.1    jruoho             Store (0xFF00, WRD1)
   4061       1.1    jruoho             While (LLessEqual (CNTR, 16))
   4062       1.1    jruoho             {
   4063       1.1    jruoho                 //  FindSetRightBit check loop for Word data
   4064       1.1    jruoho                 FindSetRightBit (WRD1, WRSL)
   4065       1.1    jruoho                 If (LNotEqual (WRSL, CNTR))
   4066       1.1    jruoho                     {   Return (0x32)   }
   4067       1.1    jruoho 
   4068       1.1    jruoho                 ShiftLeft (WRD1, 1, WRD1)
   4069       1.1    jruoho                 Increment (CNTR)
   4070       1.1    jruoho             }   //  FindSetRightBit check loop for Word data
   4071       1.1    jruoho 
   4072       1.1    jruoho             //  Test the DWord value for SetLeftBit
   4073       1.1    jruoho             Store (17, CNTR)
   4074       1.1    jruoho             Store (0x10000, DWD1)
   4075       1.1    jruoho             While (LLessEqual (CNTR, 32))
   4076       1.1    jruoho             {
   4077       1.1    jruoho                 //  FindSetLeftBit check loop for Dword
   4078       1.1    jruoho                 FindSetLeftBit (DWD1, DRSL)
   4079       1.1    jruoho                 If (LNotEqual (DRSL, CNTR))
   4080       1.1    jruoho                     {   Return (0x41)   }
   4081       1.1    jruoho 
   4082       1.1    jruoho                 //  Shift the bits to check the same
   4083       1.1    jruoho                 ShiftLeft (DWD1, 1, DWD1)
   4084       1.1    jruoho                 Increment (CNTR)
   4085       1.1    jruoho             }   //  FindSetLeftBit check loop for Dword
   4086       1.1    jruoho 
   4087       1.1    jruoho             //  Check DWord value for SetRightBit
   4088       1.1    jruoho             Store (17, CNTR)
   4089       1.1    jruoho             Store (0xFFFF0000, DWD1)
   4090       1.1    jruoho             While (LLessEqual (CNTR, 32))
   4091       1.1    jruoho             {   //  FindSetRightBit Check loop for DWORD
   4092       1.1    jruoho                 FindSetRightBit (DWD1, DRSL)
   4093       1.1    jruoho                 If (LNotEqual (DRSL, CNTR))
   4094       1.1    jruoho                     {   Return (0x42)   }
   4095       1.1    jruoho 
   4096       1.1    jruoho                 ShiftLeft (DWD1, 1, DWD1)
   4097       1.1    jruoho                 Increment (CNTR)
   4098       1.1    jruoho             }   //  FindSetRightBit Check loop for DWORD
   4099       1.1    jruoho 
   4100       1.1    jruoho             Return (0)
   4101       1.1    jruoho         }   //  SHFT
   4102       1.1    jruoho 
   4103       1.1    jruoho         //  Test method called from amlexec
   4104       1.1    jruoho         Method (TEST)
   4105       1.1    jruoho         {   //  TEST
   4106       1.1    jruoho 
   4107       1.1    jruoho             Store ("++++++++ FdSetOps Test", Debug)
   4108       1.1    jruoho 
   4109       1.1    jruoho             Store (SHFT (0x80, 8), RSLT)
   4110       1.1    jruoho             If (LNotEqual (RSLT, 0))
   4111       1.1    jruoho                 {   Return (RSLT)   }
   4112       1.1    jruoho 
   4113       1.1    jruoho             Return (0)  //  pass
   4114       1.1    jruoho         }   //  TEST
   4115       1.1    jruoho     }   //  Device FDSO
   4116       1.1    jruoho 
   4117       1.1    jruoho //
   4118       1.1    jruoho // test MulDivOp.asl
   4119       1.1    jruoho //
   4120       1.1    jruoho     Device (MLDV)
   4121       1.1    jruoho     {
   4122       1.1    jruoho         //  create System Memory Operation Region and field overlays
   4123       1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   4124       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   4125       1.1    jruoho         {
   4126       1.1    jruoho             SMDW,   32, //  32-bit DWORD
   4127       1.1    jruoho             SMWD,   16, //  16-bit WORD
   4128       1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   4129       1.1    jruoho         }   //  Field(RAM)
   4130       1.1    jruoho 
   4131   1.1.1.3  christos         Method (TEST,, Serialized)
   4132       1.1    jruoho         {
   4133       1.1    jruoho             Store ("++++++++ MulDivOp Test", Debug)
   4134       1.1    jruoho 
   4135       1.1    jruoho             Name (RMDR, 0)
   4136       1.1    jruoho             Name (DWRD, 0x12345678)
   4137       1.1    jruoho             Name (WRD, 0x1234)
   4138       1.1    jruoho             Name (BYT, 0x12)
   4139       1.1    jruoho 
   4140       1.1    jruoho             //  Test MultiplyOp with DWORD data
   4141       1.1    jruoho             Store (0x12345678, DWRD)
   4142       1.1    jruoho             Multiply (DWRD, 3, DWRD)
   4143       1.1    jruoho             If (LNotEqual (DWRD, 0x369D0368))
   4144       1.1    jruoho                 {   Return (DWRD)   }
   4145       1.1    jruoho 
   4146       1.1    jruoho             //  Test MultiplyOp with WORD data
   4147       1.1    jruoho             Multiply (WRD, 4, WRD)
   4148       1.1    jruoho             If (LNotEqual (WRD, 0x48D0))
   4149       1.1    jruoho                 {   Return (WRD)    }
   4150       1.1    jruoho 
   4151       1.1    jruoho             //  Test MultiplyOp with BYTE data
   4152       1.1    jruoho             Multiply (BYT, 5, BYT)
   4153       1.1    jruoho             If (LNotEqual (BYT, 0x5A))
   4154       1.1    jruoho                 {   Return (BYT)    }
   4155       1.1    jruoho 
   4156       1.1    jruoho             //  Test DivideOp with DWORD data
   4157       1.1    jruoho             Divide (DWRD, 3, DWRD, RMDR)
   4158       1.1    jruoho             If (LNotEqual (DWRD, 0x12345678))
   4159       1.1    jruoho                 {   Return (DWRD)   }
   4160       1.1    jruoho             If (LNotEqual (RMDR, 0))
   4161       1.1    jruoho                 {   Return (RMDR)   }
   4162       1.1    jruoho 
   4163       1.1    jruoho             //  Test DivideOp with WORD data
   4164       1.1    jruoho             Divide (WRD, 4, WRD, RMDR)
   4165       1.1    jruoho             If (LNotEqual (WRD, 0x1234))
   4166       1.1    jruoho                 {   Return (WRD)    }
   4167       1.1    jruoho             If (LNotEqual (RMDR, 0))
   4168       1.1    jruoho                 {   Return (RMDR)   }
   4169       1.1    jruoho 
   4170       1.1    jruoho             //  Test DivideOp with BYTE data
   4171       1.1    jruoho             Divide (BYT, 5, BYT, RMDR)
   4172       1.1    jruoho             If (LNotEqual (BYT, 0x12))
   4173       1.1    jruoho                 {   Return (BYT)    }
   4174       1.1    jruoho             If (LNotEqual (RMDR, 0))
   4175       1.1    jruoho                 {   Return (RMDR)   }
   4176       1.1    jruoho 
   4177       1.1    jruoho 
   4178       1.1    jruoho             //  test MultiplyOp with DWORD SystemMemory OpRegion
   4179       1.1    jruoho             Store (0x01234567, SMDW)
   4180       1.1    jruoho             Multiply (SMDW, 2, SMDW)
   4181       1.1    jruoho             If (LNotEqual (SMDW, 0x02468ACE))
   4182       1.1    jruoho                 {   Return (SMDW)   }
   4183       1.1    jruoho 
   4184       1.1    jruoho             //  test DivideOp with DWORD SystemMemory OpRegion
   4185       1.1    jruoho             Divide (SMDW, 3, SMDW, RMDR)
   4186       1.1    jruoho             If (LNotEqual (SMDW, 0x00C22E44))
   4187       1.1    jruoho                 {   Return (SMDW)   }
   4188       1.1    jruoho             If (LNotEqual (RMDR, 2))
   4189       1.1    jruoho                 {   Return (RMDR)   }
   4190       1.1    jruoho 
   4191       1.1    jruoho 
   4192       1.1    jruoho             //  test MultiplyOp with WORD SystemMemory OpRegion
   4193       1.1    jruoho             Store (0x0123, SMWD)
   4194       1.1    jruoho             Multiply (SMWD, 3, SMWD)
   4195       1.1    jruoho             If (LNotEqual (SMWD, 0x369))
   4196       1.1    jruoho                 {   Return (SMWD)   }
   4197       1.1    jruoho 
   4198       1.1    jruoho             //  test DivideOp with WORD SystemMemory OpRegion
   4199       1.1    jruoho             Divide (SMWD, 2, SMWD, RMDR)
   4200       1.1    jruoho             If (LNotEqual (SMWD, 0x01B4))
   4201       1.1    jruoho                 {   Return (SMWD)   }
   4202       1.1    jruoho             If (LNotEqual (RMDR, 1))
   4203       1.1    jruoho                 {   Return (RMDR)   }
   4204       1.1    jruoho 
   4205       1.1    jruoho 
   4206       1.1    jruoho             //  test MultiplyOp with BYTE SystemMemory OpRegion
   4207       1.1    jruoho             Store (0x01, SMBY)
   4208       1.1    jruoho             Multiply (SMBY, 7, SMBY)
   4209       1.1    jruoho             If (LNotEqual (SMBY, 0x07))
   4210       1.1    jruoho                 {   Return (SMBY)   }
   4211       1.1    jruoho 
   4212       1.1    jruoho             //  test DivideOp with BYTE SystemMemory OpRegion
   4213       1.1    jruoho             Divide (SMBY, 4, SMBY, RMDR)
   4214       1.1    jruoho             If (LNotEqual (SMBY, 0x01))
   4215       1.1    jruoho                 {   Return (SMBY)   }
   4216       1.1    jruoho             If (LNotEqual (RMDR, 3))
   4217       1.1    jruoho                 {   Return (RMDR)   }
   4218       1.1    jruoho 
   4219       1.1    jruoho             Return (0)
   4220       1.1    jruoho         }   //  TEST
   4221       1.1    jruoho     }   //  MLDV
   4222       1.1    jruoho 
   4223       1.1    jruoho //
   4224       1.1    jruoho // test NBitOps.asl
   4225       1.1    jruoho //
   4226       1.1    jruoho //NAnd - Bit-wise NAnd
   4227       1.1    jruoho //NAndTerm  := NAnd(
   4228       1.1    jruoho //  Source1,    //TermArg=>Integer
   4229       1.1    jruoho //  Source2 //TermArg=>Integer
   4230       1.1    jruoho //  Result  //Nothing | SuperName
   4231       1.1    jruoho //) => Integer
   4232       1.1    jruoho //Source1 and Source2 are evaluated as integer data types, a bit-wise NAND is performed, and the result is optionally
   4233       1.1    jruoho //stored in Result.
   4234       1.1    jruoho 
   4235       1.1    jruoho //NOr - Bitwise NOr
   4236       1.1    jruoho //NOrTerm   := NOr(
   4237       1.1    jruoho //  Source1,    //TermArg=>Integer
   4238       1.1    jruoho //  Source2 //TermArg=>Integer
   4239       1.1    jruoho //  Result  //Nothing | SuperName
   4240       1.1    jruoho //) => Integer
   4241       1.1    jruoho //Source1 and Source2 are evaluated as integer data types, a bit-wise NOR is performed, and the result is optionally
   4242       1.1    jruoho //stored in Result.
   4243       1.1    jruoho // Not - Not
   4244       1.1    jruoho //NotTerm   := Not(
   4245       1.1    jruoho //  Source, //TermArg=>Integer
   4246       1.1    jruoho //  Result  //Nothing | SuperName
   4247       1.1    jruoho //) => Integer
   4248       1.1    jruoho //Source1 is evaluated as an integer data type, a bit-wise NOT is performed, and the result is optionally stored in
   4249       1.1    jruoho //Result.
   4250       1.1    jruoho 
   4251       1.1    jruoho //If the Control method is success Zero is returned else a non-zero number is returned
   4252       1.1    jruoho 
   4253       1.1    jruoho     Device (NBIT)
   4254       1.1    jruoho     {//NBIT
   4255       1.1    jruoho 
   4256       1.1    jruoho         //Create System Memory Operation Region and field overlays
   4257       1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   4258       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   4259       1.1    jruoho         {
   4260       1.1    jruoho             SMDW,   32, //  32-bit DWORD
   4261       1.1    jruoho             SMWD,   16, //  16-bit WORD
   4262       1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   4263       1.1    jruoho         }// Field(RAM)
   4264       1.1    jruoho 
   4265       1.1    jruoho 
   4266       1.1    jruoho         //And with Byte Data
   4267       1.1    jruoho         Name (BYT1, 0xff)
   4268       1.1    jruoho         Name (BYT2, 0xff)
   4269       1.1    jruoho         Name (BRSL, 0x00)
   4270       1.1    jruoho 
   4271       1.1    jruoho         //And with Word Data
   4272       1.1    jruoho         Name (WRD1, 0xffff)
   4273       1.1    jruoho         Name (WRD2, 0xffff)
   4274       1.1    jruoho         Name (WRSL, 0x0000)
   4275       1.1    jruoho 
   4276       1.1    jruoho         //And with DWord Data
   4277       1.1    jruoho         Name (DWD1, 0xffffffff)
   4278       1.1    jruoho         Name (DWD2, 0xffffffff)
   4279       1.1    jruoho         Name (DRSL, 0x00000000)
   4280       1.1    jruoho         Name(RSLT,1)
   4281       1.1    jruoho 
   4282       1.1    jruoho 
   4283       1.1    jruoho         Name(ARSL,0x00)
   4284       1.1    jruoho         Name(LRSL,0x00)
   4285       1.1    jruoho 
   4286       1.1    jruoho         Method(NNDB,2)
   4287       1.1    jruoho         {//NNDB
   4288       1.1    jruoho 
   4289       1.1    jruoho             Store(0xffffffff,SMDW)
   4290       1.1    jruoho             Store(0xffff,SMWD)
   4291       1.1    jruoho             Store(0xff,SMBY)
   4292       1.1    jruoho 
   4293       1.1    jruoho 
   4294       1.1    jruoho             NAnd(Arg0,Arg1,ARSL)
   4295       1.1    jruoho             if(LNotEqual(ARSL,0xfffffffd))
   4296       1.1    jruoho              {Return(11)}
   4297       1.1    jruoho 
   4298       1.1    jruoho              Store(Arg0,local0)
   4299       1.1    jruoho              Store(Arg1,Local1)
   4300       1.1    jruoho 
   4301       1.1    jruoho              NAnd(Local0,Local1,LRSL)
   4302       1.1    jruoho                 if(LNotEqual(LRSL,0xfffffffd))
   4303       1.1    jruoho              {Return(12)}
   4304       1.1    jruoho 
   4305       1.1    jruoho 
   4306       1.1    jruoho             //Byte data
   4307       1.1    jruoho             NAnd(BYT1,BYT2,BRSL)
   4308       1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4309       1.1    jruoho              {Return(13)}
   4310       1.1    jruoho 
   4311       1.1    jruoho             //Word Data
   4312       1.1    jruoho              NAnd(WRD1,WRD2,WRSL)
   4313       1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4314       1.1    jruoho              {Return(14)}
   4315       1.1    jruoho 
   4316       1.1    jruoho              //DWord Data
   4317       1.1    jruoho              NAnd(DWD1,DWD2,DRSL)
   4318       1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4319       1.1    jruoho              {Return(15)}
   4320       1.1    jruoho 
   4321       1.1    jruoho              //Byte data
   4322       1.1    jruoho             NAnd(SMBY,0xff,BRSL)
   4323       1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4324       1.1    jruoho              {Return(16)}
   4325       1.1    jruoho 
   4326       1.1    jruoho             //Word Data
   4327       1.1    jruoho              NAnd(SMWD,0xffff,WRSL)
   4328       1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4329       1.1    jruoho              {Return(17)}
   4330       1.1    jruoho 
   4331       1.1    jruoho              //DWord Data
   4332       1.1    jruoho              NAnd(SMDW,0xffffffff,DRSL)
   4333       1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4334       1.1    jruoho              {Return(18)}
   4335       1.1    jruoho 
   4336       1.1    jruoho             Return(0)
   4337       1.1    jruoho 
   4338       1.1    jruoho         }//NNDB
   4339       1.1    jruoho 
   4340       1.1    jruoho         Method(NNOR,2)
   4341       1.1    jruoho         {//NNOR
   4342       1.1    jruoho 
   4343       1.1    jruoho             NOr(Arg0,Arg1,ARSL)
   4344       1.1    jruoho             if(LNotEqual(ARSL,0xfffffffd))
   4345       1.1    jruoho              {Return(21)}
   4346       1.1    jruoho 
   4347       1.1    jruoho             Store(Arg0,local0)
   4348       1.1    jruoho             Store(Arg1,Local1)
   4349       1.1    jruoho 
   4350       1.1    jruoho             NOr(Local0,Local1,LRSL)
   4351       1.1    jruoho             if(LNotEqual(LRSL,0xfffffffd))
   4352       1.1    jruoho              {Return(22)}
   4353       1.1    jruoho 
   4354       1.1    jruoho 
   4355       1.1    jruoho             //Byte data
   4356       1.1    jruoho             NOr(BYT1,BYT2,BRSL)
   4357       1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4358       1.1    jruoho              {Return(23)}
   4359       1.1    jruoho 
   4360       1.1    jruoho             //Word Data
   4361       1.1    jruoho             NOr(WRD1,WRD2,WRSL)
   4362       1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4363       1.1    jruoho              {Return(24)}
   4364       1.1    jruoho 
   4365       1.1    jruoho             //DWord Data
   4366       1.1    jruoho             NOr(DWD1,DWD2,DRSL)
   4367       1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4368       1.1    jruoho              {Return(25)}
   4369       1.1    jruoho 
   4370       1.1    jruoho              //System Memory Byte data
   4371       1.1    jruoho             NOr(SMBY,0xff,BRSL)
   4372       1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4373       1.1    jruoho              {Return(26)}
   4374       1.1    jruoho 
   4375       1.1    jruoho             //System Memory Word Data
   4376       1.1    jruoho             NOr(SMWD,0xffff,WRSL)
   4377       1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4378       1.1    jruoho              {Return(27)}
   4379       1.1    jruoho 
   4380       1.1    jruoho             //System Memory DWord Data
   4381       1.1    jruoho             NOr(SMDW,0xffffffff,DRSL)
   4382       1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4383       1.1    jruoho              {Return(28)}
   4384       1.1    jruoho 
   4385       1.1    jruoho             Return(0)
   4386       1.1    jruoho 
   4387       1.1    jruoho         }//NNOR
   4388       1.1    jruoho 
   4389       1.1    jruoho         Method(NNOT,2)
   4390       1.1    jruoho         {//NNOT
   4391       1.1    jruoho 
   4392       1.1    jruoho             Or(Arg0,Arg1,ARSL)
   4393       1.1    jruoho             Not(ARSL,ARSL)
   4394       1.1    jruoho             if(LNotEqual(ARSL,0xfffffffd))
   4395       1.1    jruoho              {Return(31)}
   4396       1.1    jruoho 
   4397       1.1    jruoho             Store(Arg0,local0)
   4398       1.1    jruoho             Store(Arg1,Local1)
   4399       1.1    jruoho 
   4400       1.1    jruoho             Or(Local0,Local1,LRSL)
   4401       1.1    jruoho             Not(LRSL,LRSL)
   4402       1.1    jruoho             if(LNotEqual(LRSL,0xfffffffd))
   4403       1.1    jruoho              {Return(32)}
   4404       1.1    jruoho 
   4405       1.1    jruoho 
   4406       1.1    jruoho             //Byte data
   4407       1.1    jruoho             Or(BYT1,BYT2,BRSL)
   4408       1.1    jruoho             Not(BRSL,BRSL)
   4409       1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4410       1.1    jruoho              {Return(33)}
   4411       1.1    jruoho 
   4412       1.1    jruoho             //Word Data
   4413       1.1    jruoho             Or(WRD1,WRD2,WRSL)
   4414       1.1    jruoho             Not(WRSL,WRSL)
   4415       1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4416       1.1    jruoho              {Return(34)}
   4417       1.1    jruoho 
   4418       1.1    jruoho             //DWord Data
   4419       1.1    jruoho             Or(DWD1,DWD2,DRSL)
   4420       1.1    jruoho             Not(DRSL,DRSL)
   4421       1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4422       1.1    jruoho              {Return(35)}
   4423       1.1    jruoho 
   4424       1.1    jruoho              //System Memory Byte data
   4425       1.1    jruoho             Or(SMBY,0xff,BRSL)
   4426       1.1    jruoho             Not(BRSL,BRSL)
   4427       1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4428       1.1    jruoho              {Return(36)}
   4429       1.1    jruoho 
   4430       1.1    jruoho             //System Memory Word Data
   4431       1.1    jruoho             Or(SMWD,0xffff,WRSL)
   4432       1.1    jruoho             Not(WRSL,WRSL)
   4433       1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4434       1.1    jruoho              {Return(37)}
   4435       1.1    jruoho 
   4436       1.1    jruoho             //System Memory DWord Data
   4437       1.1    jruoho             Or(SMDW,0xffffffff,DRSL)
   4438       1.1    jruoho             Not(DRSL,DRSL)
   4439       1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4440       1.1    jruoho              {Return(38)}
   4441       1.1    jruoho 
   4442       1.1    jruoho             Return(0)
   4443       1.1    jruoho         }//NNOT
   4444       1.1    jruoho 
   4445       1.1    jruoho 
   4446       1.1    jruoho         Method(TEST)
   4447       1.1    jruoho         {
   4448       1.1    jruoho 
   4449       1.1    jruoho             Store ("++++++++ NBitOps Test", Debug)
   4450       1.1    jruoho 
   4451       1.1    jruoho             Store(NNDB(2,2),RSLT)
   4452       1.1    jruoho             if(LNotEqual(RSLT,0))
   4453       1.1    jruoho                 {Return(RSLT)}
   4454       1.1    jruoho 
   4455       1.1    jruoho             Store(NNOR(2,2),RSLT)
   4456       1.1    jruoho             if(LNotEqual(RSLT,0))
   4457       1.1    jruoho                 {Return(RSLT)}
   4458       1.1    jruoho 
   4459       1.1    jruoho             Store(NNOT(2,2),RSLT)
   4460       1.1    jruoho             if(LNotEqual(RSLT,0))
   4461       1.1    jruoho                 {Return(RSLT)}
   4462       1.1    jruoho 
   4463       1.1    jruoho 
   4464       1.1    jruoho            Return(0)
   4465       1.1    jruoho         }
   4466       1.1    jruoho 
   4467       1.1    jruoho     }//Device NBIT
   4468       1.1    jruoho 
   4469       1.1    jruoho //
   4470       1.1    jruoho // test ShftOp.asl
   4471       1.1    jruoho //
   4472       1.1    jruoho //ShiftRightTerm    := ShiftRight(
   4473       1.1    jruoho //  Source, //TermArg=>Integer
   4474       1.1    jruoho //  ShiftCount  //TermArg=>Integer
   4475       1.1    jruoho //  Result  //Nothing | SuperName
   4476       1.1    jruoho //) => Integer
   4477       1.1    jruoho //Source and ShiftCount are evaluated as integer data types. Source is shifted right with the most significant bit
   4478   1.1.1.9  christos //zeroed ShiftCount times. The result is optionally stored into Result.
   4479       1.1    jruoho 
   4480       1.1    jruoho //ShiftLeft(
   4481       1.1    jruoho //  Source, //TermArg=>Integer
   4482       1.1    jruoho //  ShiftCount  //TermArg=>Integer
   4483       1.1    jruoho //  Result  //Nothing | SuperName
   4484       1.1    jruoho //) => Integer
   4485       1.1    jruoho //Source and ShiftCount are evaluated as integer data types. Source is shifted left with the least significant
   4486       1.1    jruoho //bit zeroed ShiftCount times. The result is optionally stored into Result.
   4487       1.1    jruoho 
   4488       1.1    jruoho //If the Control method is success Zero is returned else a non-zero number is returned
   4489       1.1    jruoho     Device (SHFT)
   4490       1.1    jruoho     {//SHFT
   4491       1.1    jruoho 
   4492       1.1    jruoho         //Create System Memory Operation Region and field overlays
   4493       1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   4494       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   4495       1.1    jruoho         {
   4496       1.1    jruoho             SMDW,   32, //  32-bit DWORD
   4497       1.1    jruoho             SMWD,   16, //  16-bit WORD
   4498       1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   4499       1.1    jruoho         }// Field(RAM)
   4500       1.1    jruoho 
   4501       1.1    jruoho 
   4502       1.1    jruoho         Name(SHFC,0x00)
   4503       1.1    jruoho 
   4504       1.1    jruoho         //And with Byte Data
   4505       1.1    jruoho         Name (BYT1, 0xff)
   4506       1.1    jruoho         Name (BRSL, 0x00)
   4507       1.1    jruoho 
   4508       1.1    jruoho         //And with Word Data
   4509       1.1    jruoho         Name (WRD1, 0xffff)
   4510       1.1    jruoho         Name (WRSL, 0x0000)
   4511       1.1    jruoho 
   4512       1.1    jruoho         //And with DWord Data
   4513       1.1    jruoho         Name (DWD1, 0xffffffff)
   4514       1.1    jruoho         Name (DRSL, 0x00000000)
   4515       1.1    jruoho 
   4516       1.1    jruoho         Name(RSLT,1)
   4517       1.1    jruoho 
   4518       1.1    jruoho         Name(ARSL,0x00)
   4519       1.1    jruoho         Name(LRSL,0x00)
   4520       1.1    jruoho 
   4521       1.1    jruoho         Method(SLFT,2)
   4522       1.1    jruoho         {//SLFT
   4523       1.1    jruoho 
   4524       1.1    jruoho             Store(0xffffffff,SMDW)
   4525       1.1    jruoho             Store(0xffff,SMWD)
   4526       1.1    jruoho             Store(0xff,SMBY)
   4527       1.1    jruoho 
   4528       1.1    jruoho 
   4529       1.1    jruoho             //Arg0-> 2 & Arg1->2
   4530       1.1    jruoho             ShiftLeft(Arg0,Arg1,ARSL)
   4531       1.1    jruoho             if(LNotEqual(ARSL,8))
   4532       1.1    jruoho             {Return(11)}
   4533       1.1    jruoho 
   4534       1.1    jruoho              Store(Arg0,local0)
   4535       1.1    jruoho              Store(Arg1,Local1)
   4536       1.1    jruoho 
   4537       1.1    jruoho              //Local0->8 and Local1->2
   4538       1.1    jruoho              ShiftLeft(Local0,Local1,LRSL)
   4539       1.1    jruoho                 if(LNotEqual(LRSL,8))
   4540       1.1    jruoho              {Return(12)}
   4541       1.1    jruoho 
   4542       1.1    jruoho             Store(2,SHFC)
   4543       1.1    jruoho             //Byte data
   4544       1.1    jruoho             ShiftLeft(BYT1,SHFC,BRSL)
   4545       1.1    jruoho             if(LNotEqual(BRSL,0x3FC))
   4546       1.1    jruoho              {Return(13)}
   4547       1.1    jruoho 
   4548       1.1    jruoho             Store(4,SHFC)
   4549       1.1    jruoho             //Word Data
   4550       1.1    jruoho              ShiftLeft(WRD1,SHFC,WRSL)
   4551       1.1    jruoho             if(LNotEqual(WRSL,0xFFFF0))
   4552       1.1    jruoho              {Return(14)}
   4553       1.1    jruoho 
   4554       1.1    jruoho             Store(8,SHFC)
   4555       1.1    jruoho             //DWord Data
   4556       1.1    jruoho             ShiftLeft(DWD1,SHFC,DRSL)
   4557       1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF00))
   4558       1.1    jruoho              {Return(15)}
   4559       1.1    jruoho 
   4560       1.1    jruoho 
   4561       1.1    jruoho              //System Memory Byte data
   4562       1.1    jruoho             Store(4,SHFC)
   4563       1.1    jruoho             ShiftLeft(SMBY,SHFC,BRSL)
   4564       1.1    jruoho             if(LNotEqual(BRSL,0xFF0))
   4565       1.1    jruoho             {Return(16)}
   4566       1.1    jruoho 
   4567       1.1    jruoho             //Word Data
   4568       1.1    jruoho             Store(4,SHFC)
   4569       1.1    jruoho             ShiftLeft(SMWD,SHFC,WRSL)
   4570       1.1    jruoho             if(LNotEqual(WRSL,0xffff0))
   4571       1.1    jruoho              {Return(17)}
   4572       1.1    jruoho 
   4573       1.1    jruoho             //DWord Data
   4574       1.1    jruoho             Store(8,SHFC)
   4575       1.1    jruoho             ShiftLeft(SMDW,SHFC,DRSL)
   4576       1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF00))
   4577       1.1    jruoho                 {Return(18)}
   4578       1.1    jruoho 
   4579       1.1    jruoho             Return(0)
   4580       1.1    jruoho 
   4581       1.1    jruoho         }//SLFT
   4582       1.1    jruoho 
   4583       1.1    jruoho         Method(SRGT,2)
   4584       1.1    jruoho         {//SRGT
   4585       1.1    jruoho             //And with Byte Data
   4586       1.1    jruoho             Store (0xff,BYT1)
   4587       1.1    jruoho             Store (0x00,BRSL)
   4588       1.1    jruoho 
   4589       1.1    jruoho             //And with Word Data
   4590       1.1    jruoho             Store (0xffff,WRD1)
   4591       1.1    jruoho             Store (0x0000,WRSL)
   4592       1.1    jruoho 
   4593       1.1    jruoho             //And with DWord Data
   4594       1.1    jruoho             Store(0xffffffff,DWD1)
   4595       1.1    jruoho             Store (0x00000000,DRSL)
   4596       1.1    jruoho 
   4597       1.1    jruoho             //Reinitialize the result objects
   4598       1.1    jruoho             Store(0x00,ARSL)
   4599       1.1    jruoho             Store(0x00,LRSL)
   4600       1.1    jruoho 
   4601       1.1    jruoho             Store(0xffffffff,SMDW)
   4602       1.1    jruoho             Store(0xffff,SMWD)
   4603       1.1    jruoho             Store(0xff,SMBY)
   4604       1.1    jruoho 
   4605       1.1    jruoho             //Arg0-> 2 & Arg1->2
   4606       1.1    jruoho             ShiftRight(Arg0,Arg1,ARSL)
   4607       1.1    jruoho             if(LNotEqual(ARSL,0))
   4608       1.1    jruoho             {Return(21)}
   4609       1.1    jruoho 
   4610       1.1    jruoho              Store(Arg0,local0)
   4611       1.1    jruoho              Store(Arg1,Local1)
   4612       1.1    jruoho 
   4613       1.1    jruoho              //Local0->8 and Local1->2
   4614       1.1    jruoho              ShiftRight(Local0,Local1,LRSL)
   4615       1.1    jruoho                 if(LNotEqual(LRSL,0))
   4616       1.1    jruoho              {Return(22)}
   4617       1.1    jruoho 
   4618       1.1    jruoho             Store(2,SHFC)
   4619       1.1    jruoho             //Byte data
   4620       1.1    jruoho             ShiftRight(BYT1,SHFC,BRSL)
   4621       1.1    jruoho             if(LNotEqual(BRSL,0x3F))
   4622       1.1    jruoho              {Return(23)}
   4623       1.1    jruoho 
   4624       1.1    jruoho             Store(4,SHFC)
   4625       1.1    jruoho             //Word Data
   4626       1.1    jruoho              ShiftRight(WRD1,SHFC,WRSL)
   4627       1.1    jruoho             if(LNotEqual(WRSL,0xFFF))
   4628       1.1    jruoho              {Return(24)}
   4629       1.1    jruoho 
   4630       1.1    jruoho             Store(8,SHFC)
   4631       1.1    jruoho             //DWord Data
   4632       1.1    jruoho             ShiftRight(DWD1,SHFC,DRSL)
   4633       1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF))
   4634       1.1    jruoho              {Return(25)}
   4635       1.1    jruoho 
   4636       1.1    jruoho             //System Memory Byte data
   4637       1.1    jruoho             Store(4,SHFC)
   4638       1.1    jruoho             ShiftRight(SMBY,SHFC,BRSL)
   4639       1.1    jruoho             if(LNotEqual(BRSL,0xF))
   4640       1.1    jruoho             {Return(26)}
   4641       1.1    jruoho 
   4642       1.1    jruoho             //Word Data
   4643       1.1    jruoho             Store(4,SHFC)
   4644       1.1    jruoho             ShiftRight(SMWD,SHFC,WRSL)
   4645       1.1    jruoho             if(LNotEqual(WRSL,0xFFF))
   4646       1.1    jruoho              {Return(27)}
   4647       1.1    jruoho 
   4648       1.1    jruoho             //DWord Data
   4649       1.1    jruoho             Store(8,SHFC)
   4650       1.1    jruoho             ShiftRight(SMDW,SHFC,DRSL)
   4651       1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF))
   4652       1.1    jruoho                 {Return(28)}
   4653       1.1    jruoho 
   4654       1.1    jruoho             Return(0)
   4655       1.1    jruoho         }//SRGT
   4656       1.1    jruoho 
   4657       1.1    jruoho         //Test method called from amlexec
   4658       1.1    jruoho         Method(TEST)
   4659       1.1    jruoho         {
   4660       1.1    jruoho             Store ("++++++++ ShftOp Test", Debug)
   4661       1.1    jruoho 
   4662       1.1    jruoho             Store(SLFT(2,2),RSLT)
   4663       1.1    jruoho             if(LNotEqual(RSLT,0))
   4664       1.1    jruoho                 {Return(RSLT)}
   4665       1.1    jruoho             Store(SRGT(2,2),RSLT)
   4666       1.1    jruoho             if(LNotEqual(RSLT,0))
   4667       1.1    jruoho                 {Return(RSLT)}
   4668       1.1    jruoho            Return(0)
   4669       1.1    jruoho         }
   4670       1.1    jruoho 
   4671       1.1    jruoho     }//Device SHFT
   4672       1.1    jruoho 
   4673       1.1    jruoho //
   4674       1.1    jruoho // test Xor.asl and slightly modified
   4675       1.1    jruoho //
   4676       1.1    jruoho //This code tests the XOR opcode term
   4677       1.1    jruoho //Syntax of XOR term
   4678       1.1    jruoho //          XOr(
   4679       1.1    jruoho //                  Source1  //TermArg=>BufferTerm
   4680       1.1    jruoho //                  Source2  //TermArg=>Integer
   4681       1.1    jruoho //                  Result //NameString
   4682       1.1    jruoho //              )
   4683       1.1    jruoho //"Source1" and "Source2" are evaluated as integers, a bit-wise XOR is performed, and the result is optionally stored in
   4684       1.1    jruoho // Result
   4685       1.1    jruoho     Device (XORD)
   4686       1.1    jruoho     {
   4687       1.1    jruoho         //This Method tests XOr operator for all the data types i.e. BYTE, WORD and DWORD
   4688   1.1.1.3  christos         Method (TEST,, Serialized)
   4689       1.1    jruoho         {
   4690       1.1    jruoho             Store ("++++++++ Xor Test", Debug)
   4691       1.1    jruoho 
   4692       1.1    jruoho             //Overlay in system memory
   4693       1.1    jruoho             OperationRegion (RAM, SystemMemory, 0x800000, 256)
   4694       1.1    jruoho             Field (RAM, ByteAcc, NoLock, Preserve)
   4695       1.1    jruoho             {
   4696       1.1    jruoho                 RES1,   1,  //Offset
   4697       1.1    jruoho                 BYT1,   8,  //First BYTE
   4698       1.1    jruoho                 BYT2,   8,  //Second BYTE
   4699       1.1    jruoho                 RBYT,   8,  //Result Byte
   4700       1.1    jruoho                 RES2,   1,  //Offset
   4701       1.1    jruoho                 WRD1,   16, //First WORD field
   4702       1.1    jruoho                 WRD2,   16, //Second WORD field
   4703       1.1    jruoho                 RWRD,   16, //RSLT WORD field
   4704       1.1    jruoho                 RES3,   1,  //Offset
   4705       1.1    jruoho                 DWD1,   32, //First Dword
   4706       1.1    jruoho                 DWD2,   32, //Second Dword
   4707       1.1    jruoho                 RDWD,   32, //Result Dword
   4708       1.1    jruoho                 RES4,   1,  //Offset
   4709       1.1    jruoho             }
   4710       1.1    jruoho 
   4711       1.1    jruoho             // Store bits in the single bit fields for checking
   4712       1.1    jruoho             //  at the end
   4713       1.1    jruoho             Store(1, RES1)
   4714       1.1    jruoho             Store(1, RES2)
   4715       1.1    jruoho             Store(1, RES3)
   4716       1.1    jruoho             Store(1, RES4)
   4717       1.1    jruoho 
   4718       1.1    jruoho             // Check the stored single bits
   4719       1.1    jruoho             if(LNotEqual(RES1, 1))
   4720       1.1    jruoho             {
   4721       1.1    jruoho                 Return(1)
   4722       1.1    jruoho             }
   4723       1.1    jruoho 
   4724       1.1    jruoho             if(LNotEqual(RES2, 1))
   4725       1.1    jruoho             {
   4726       1.1    jruoho                 Return(1)
   4727       1.1    jruoho             }
   4728       1.1    jruoho 
   4729       1.1    jruoho             if(LNotEqual(RES3, 1))
   4730       1.1    jruoho             {
   4731       1.1    jruoho                 Return(1)
   4732       1.1    jruoho             }
   4733       1.1    jruoho 
   4734       1.1    jruoho             if(LNotEqual(RES4, 1))
   4735       1.1    jruoho             {
   4736       1.1    jruoho                 Return(1)
   4737       1.1    jruoho             }
   4738       1.1    jruoho 
   4739       1.1    jruoho             //************************************************
   4740       1.1    jruoho             // (BYT1) Bit1 ->0 and (BYT2)Bit2 -> 0 condition
   4741       1.1    jruoho             Store(0x00,BYT1)
   4742       1.1    jruoho             Store(0x00,BYT2)
   4743       1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4744       1.1    jruoho             Store (Local0, RBYT)
   4745       1.1    jruoho             if(LNotEqual(RBYT,0))
   4746       1.1    jruoho             {   Return(1)}
   4747       1.1    jruoho 
   4748       1.1    jruoho             // (BYT1) Bit1 ->1 and (BYT2)Bit2 -> 1 condition
   4749       1.1    jruoho             Store(0xff,BYT1)
   4750       1.1    jruoho             Store(0xff,BYT2)
   4751       1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4752       1.1    jruoho             Store (Local0, RBYT)
   4753       1.1    jruoho             if(LNotEqual(RBYT,0))
   4754       1.1    jruoho             {   Return(1)}
   4755       1.1    jruoho 
   4756       1.1    jruoho             // (BYT1) Bit1 ->1 and (BYT)Bit2 -> 0 condition
   4757       1.1    jruoho             Store(0x55,BYT1)
   4758       1.1    jruoho             Store(0xAA,BYT2)
   4759       1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4760       1.1    jruoho             Store (Local0, RBYT)
   4761       1.1    jruoho             if(LNotEqual(RBYT,0xFF))
   4762       1.1    jruoho             {   Return(1)}
   4763       1.1    jruoho 
   4764       1.1    jruoho             //(BYT1) Bit1 ->0 and (BYT2)Bit2 -> 1 condition
   4765       1.1    jruoho             Store(0xAA,BYT1)
   4766       1.1    jruoho             Store(0x55,BYT2)
   4767       1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4768       1.1    jruoho             Store (Local0, RBYT)
   4769       1.1    jruoho             if(LNotEqual(RBYT,0xFF))
   4770       1.1    jruoho             {   Return(1)}
   4771       1.1    jruoho 
   4772       1.1    jruoho             Store(0x12,BYT1)
   4773       1.1    jruoho             Store(0xED,BYT2)
   4774       1.1    jruoho 
   4775       1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4776       1.1    jruoho             Store (Local0, RBYT)
   4777       1.1    jruoho             if(LNotEqual(RBYT,0xFF))
   4778       1.1    jruoho             {
   4779       1.1    jruoho                 Return(1)
   4780       1.1    jruoho             }
   4781       1.1    jruoho 
   4782       1.1    jruoho             // Store known values for checking later
   4783       1.1    jruoho             Store(0x12, BYT1)
   4784       1.1    jruoho             if(LNotEqual(BYT1, 0x12))
   4785       1.1    jruoho             {
   4786       1.1    jruoho                 Return(1)
   4787       1.1    jruoho             }
   4788       1.1    jruoho 
   4789       1.1    jruoho             Store(0xFE, BYT2)
   4790       1.1    jruoho             if(LNotEqual(BYT2, 0xFE))
   4791       1.1    jruoho             {
   4792       1.1    jruoho                 Return(1)
   4793       1.1    jruoho             }
   4794       1.1    jruoho 
   4795       1.1    jruoho             Store(0xAB, RBYT)
   4796       1.1    jruoho             if(LNotEqual(RBYT, 0xAB))
   4797       1.1    jruoho             {
   4798       1.1    jruoho                 Return(1)
   4799       1.1    jruoho             }
   4800       1.1    jruoho 
   4801       1.1    jruoho             //***********************************************
   4802       1.1    jruoho             // (WRD1) Bit1 ->0 and (WRD2)Bit2 -> 0 condition
   4803       1.1    jruoho             Store(0x0000,WRD1)
   4804       1.1    jruoho             Store(0x0000,WRD2)
   4805       1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4806       1.1    jruoho             if(LNotEqual(RWRD,0))
   4807       1.1    jruoho             {   Return(1)}
   4808       1.1    jruoho 
   4809       1.1    jruoho             // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 1 condition
   4810       1.1    jruoho             Store(0xffff,WRD1)
   4811       1.1    jruoho             Store(0xffff,WRD2)
   4812       1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4813       1.1    jruoho             if(LNotEqual(RWRD,0))
   4814       1.1    jruoho             {   Return(1)}
   4815       1.1    jruoho 
   4816       1.1    jruoho             // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 0 condition
   4817       1.1    jruoho             Store(0x5555,WRD1)
   4818       1.1    jruoho             Store(0xAAAA,WRD2)
   4819       1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4820       1.1    jruoho             if(LNotEqual(RWRD,0xFFFF))
   4821       1.1    jruoho             {   Return(1)}
   4822       1.1    jruoho 
   4823       1.1    jruoho             //(WRD1) Bit1 ->0 and (WRD2)Bit2 -> 1 condition
   4824       1.1    jruoho             Store(0xAAAA,WRD1)
   4825       1.1    jruoho             Store(0x5555,WRD2)
   4826       1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4827       1.1    jruoho             if(LNotEqual(RWRD,0xFFFF))
   4828       1.1    jruoho             {   Return(1)}
   4829       1.1    jruoho 
   4830       1.1    jruoho             Store(0x1234,WRD1)
   4831       1.1    jruoho             Store(0xEDCB,WRD2)
   4832       1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4833       1.1    jruoho             if(LNotEqual(RWRD,0xFFFF))
   4834       1.1    jruoho             {   Return(1)}
   4835       1.1    jruoho 
   4836       1.1    jruoho             // Store known values for checking later
   4837       1.1    jruoho             Store(0x1234, WRD1)
   4838       1.1    jruoho             if(LNotEqual(WRD1, 0x1234))
   4839       1.1    jruoho             {
   4840       1.1    jruoho                 Return(1)
   4841       1.1    jruoho             }
   4842       1.1    jruoho 
   4843       1.1    jruoho             Store(0xFEDC, WRD2)
   4844       1.1    jruoho             if(LNotEqual(WRD2, 0xFEDC))
   4845       1.1    jruoho             {
   4846       1.1    jruoho                 Return(1)
   4847       1.1    jruoho             }
   4848       1.1    jruoho 
   4849       1.1    jruoho             Store(0x87AB, RWRD)
   4850       1.1    jruoho             if(LNotEqual(RWRD, 0x87AB))
   4851       1.1    jruoho             {
   4852       1.1    jruoho                 Return(1)
   4853       1.1    jruoho             }
   4854       1.1    jruoho 
   4855       1.1    jruoho 
   4856       1.1    jruoho             //**************************************************
   4857       1.1    jruoho             // (DWD1) Bit1 ->0 and (DWD2)Bit2 -> 0 condition
   4858       1.1    jruoho             Store(0x00000000,DWD1)
   4859       1.1    jruoho             Store(0x00000000,DWD2)
   4860       1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4861       1.1    jruoho             if(LNotEqual(RDWD,0))
   4862       1.1    jruoho             {   Return(1)}
   4863       1.1    jruoho 
   4864       1.1    jruoho             // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 1 condition
   4865       1.1    jruoho             Store(0xffffffff,DWD1)
   4866       1.1    jruoho             Store(0xffffffff,DWD2)
   4867       1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4868       1.1    jruoho             if(LNotEqual(RDWD,0))
   4869       1.1    jruoho             {   Return(1)}
   4870       1.1    jruoho 
   4871       1.1    jruoho             // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
   4872       1.1    jruoho             Store(0x55555555,DWD1)
   4873       1.1    jruoho             Store(0xAAAAAAAA,DWD2)
   4874       1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4875       1.1    jruoho             if(LNotEqual(RDWD,0xFFFFFFFF))
   4876       1.1    jruoho             {   Return(1)}
   4877       1.1    jruoho 
   4878       1.1    jruoho             //(DWD1) Bit1 ->0 and (DWD2)Bit2 -> 1 condition
   4879       1.1    jruoho             Store(0xAAAAAAAA,DWD1)
   4880       1.1    jruoho             Store(0x55555555,DWD2)
   4881       1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4882       1.1    jruoho             if(LNotEqual(RDWD,0xFFFFFFFF))
   4883       1.1    jruoho             {   Return(1)}
   4884       1.1    jruoho 
   4885       1.1    jruoho             // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
   4886       1.1    jruoho             Store(0x12345678,DWD1)
   4887       1.1    jruoho             Store(0xEDCBA987,DWD2)
   4888       1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4889       1.1    jruoho             if(LNotEqual(RDWD,0xFFFFFFFF))
   4890       1.1    jruoho             {   Return(1)}
   4891       1.1    jruoho 
   4892       1.1    jruoho             Store(0x12345678,DWD1)
   4893       1.1    jruoho             if(LNotEqual(DWD1,0x12345678))
   4894       1.1    jruoho             {
   4895       1.1    jruoho                 Return(1)
   4896       1.1    jruoho             }
   4897       1.1    jruoho 
   4898       1.1    jruoho             Store(0xFEDCBA98,DWD2)
   4899       1.1    jruoho             if(LNotEqual(DWD2,0xFEDCBA98))
   4900       1.1    jruoho             {
   4901       1.1    jruoho                 Return(1)
   4902       1.1    jruoho             }
   4903       1.1    jruoho 
   4904       1.1    jruoho             Store(0x91827364,RDWD)
   4905       1.1    jruoho             if(LNotEqual(RDWD,0x91827364))
   4906       1.1    jruoho             {
   4907       1.1    jruoho                 Return(1)
   4908       1.1    jruoho             }
   4909       1.1    jruoho 
   4910       1.1    jruoho             //****************************************************
   4911       1.1    jruoho             // Check the stored single bits
   4912       1.1    jruoho             if(LNotEqual(RES1, 1))
   4913       1.1    jruoho             {
   4914       1.1    jruoho                 Return(1)
   4915       1.1    jruoho             }
   4916       1.1    jruoho 
   4917       1.1    jruoho             if(LNotEqual(RES2, 1))
   4918       1.1    jruoho             {
   4919       1.1    jruoho                 Return(1)
   4920       1.1    jruoho             }
   4921       1.1    jruoho 
   4922       1.1    jruoho             if(LNotEqual(RES3, 1))
   4923       1.1    jruoho             {
   4924       1.1    jruoho                 Return(1)
   4925       1.1    jruoho             }
   4926       1.1    jruoho 
   4927       1.1    jruoho             if(LNotEqual(RES4, 1))
   4928       1.1    jruoho             {
   4929       1.1    jruoho                 Return(1)
   4930       1.1    jruoho             }
   4931       1.1    jruoho 
   4932       1.1    jruoho             // Change all of the single bit fields to zero
   4933       1.1    jruoho             Store(0, RES1)
   4934       1.1    jruoho             Store(0, RES2)
   4935       1.1    jruoho             Store(0, RES3)
   4936       1.1    jruoho             Store(0, RES4)
   4937       1.1    jruoho 
   4938       1.1    jruoho             // Now, check all of the fields
   4939       1.1    jruoho 
   4940       1.1    jruoho             // Byte
   4941       1.1    jruoho             if(LNotEqual(BYT1, 0x12))
   4942       1.1    jruoho             {
   4943       1.1    jruoho                 Return(1)
   4944       1.1    jruoho             }
   4945       1.1    jruoho 
   4946       1.1    jruoho             if(LNotEqual(BYT2, 0xFE))
   4947       1.1    jruoho             {
   4948       1.1    jruoho                 Return(1)
   4949       1.1    jruoho             }
   4950       1.1    jruoho 
   4951       1.1    jruoho             if(LNotEqual(RBYT, 0xAB))
   4952       1.1    jruoho             {
   4953       1.1    jruoho                 Return(1)
   4954       1.1    jruoho             }
   4955       1.1    jruoho 
   4956       1.1    jruoho             // Word
   4957       1.1    jruoho             if(LNotEqual(WRD1, 0x1234))
   4958       1.1    jruoho             {
   4959       1.1    jruoho                 Return(1)
   4960       1.1    jruoho             }
   4961       1.1    jruoho 
   4962       1.1    jruoho             if(LNotEqual(WRD2, 0xFEDC))
   4963       1.1    jruoho             {
   4964       1.1    jruoho                 Return(1)
   4965       1.1    jruoho             }
   4966       1.1    jruoho 
   4967       1.1    jruoho             if(LNotEqual(RWRD, 0x87AB))
   4968       1.1    jruoho             {
   4969       1.1    jruoho                 Return(1)
   4970       1.1    jruoho             }
   4971       1.1    jruoho 
   4972       1.1    jruoho             // Dword
   4973       1.1    jruoho             if(LNotEqual(DWD1, 0x12345678))
   4974       1.1    jruoho             {
   4975       1.1    jruoho                 Return(1)
   4976       1.1    jruoho             }
   4977       1.1    jruoho 
   4978       1.1    jruoho             if(LNotEqual(DWD2, 0xFEDCBA98))
   4979       1.1    jruoho             {
   4980       1.1    jruoho                 Return(1)
   4981       1.1    jruoho             }
   4982       1.1    jruoho 
   4983       1.1    jruoho             if(LNotEqual(RDWD, 0x91827364))
   4984       1.1    jruoho             {
   4985       1.1    jruoho                 Return(1)
   4986       1.1    jruoho             }
   4987       1.1    jruoho 
   4988       1.1    jruoho             // Bits
   4989       1.1    jruoho             if(LNotEqual(RES1, 0))
   4990       1.1    jruoho             {
   4991       1.1    jruoho                 Return(1)
   4992       1.1    jruoho             }
   4993       1.1    jruoho 
   4994       1.1    jruoho             if(LNotEqual(RES2, 0))
   4995       1.1    jruoho             {
   4996       1.1    jruoho                 Return(1)
   4997       1.1    jruoho             }
   4998       1.1    jruoho 
   4999       1.1    jruoho             if(LNotEqual(RES3, 0))
   5000       1.1    jruoho             {
   5001       1.1    jruoho                 Return(1)
   5002       1.1    jruoho             }
   5003       1.1    jruoho 
   5004       1.1    jruoho             if(LNotEqual(RES4, 0))
   5005       1.1    jruoho             {
   5006       1.1    jruoho                 Return(1)
   5007       1.1    jruoho             }
   5008       1.1    jruoho 
   5009       1.1    jruoho 
   5010       1.1    jruoho             Return(0)
   5011       1.1    jruoho         }   //  TEST
   5012       1.1    jruoho     }   //  XORD
   5013       1.1    jruoho 
   5014       1.1    jruoho //
   5015       1.1    jruoho // test CrBytFld.asl
   5016       1.1    jruoho //
   5017       1.1    jruoho //  CrBytFld test
   5018       1.1    jruoho //      Test for CreateByteField.
   5019       1.1    jruoho //      Tests creating byte field overlay of buffer stored in Local0.
   5020       1.1    jruoho //      Tests need to be added for Arg0 and Name buffers.
   5021       1.1    jruoho //
   5022       1.1    jruoho     Device (CRBF)
   5023       1.1    jruoho     {   //  Test device name
   5024       1.1    jruoho         Method (TEST)
   5025       1.1    jruoho         {
   5026       1.1    jruoho             Store ("++++++++ CrBytFld Test", Debug)
   5027       1.1    jruoho 
   5028  1.1.1.10  christos             //  Local0 is uninitialized buffer with 4 elements
   5029       1.1    jruoho             Store (Buffer (4) {}, Local0)
   5030       1.1    jruoho 
   5031       1.1    jruoho             //  create Byte Field named BF0 based on Local0 element 0
   5032       1.1    jruoho             CreateByteField (Local0, 0, BF0)
   5033       1.1    jruoho 
   5034       1.1    jruoho             //  validate CreateByteField did not alter Local0
   5035       1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5036       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5037       1.1    jruoho                 {   Return (2)  }
   5038       1.1    jruoho 
   5039       1.1    jruoho             //  store something into BF0
   5040       1.1    jruoho             Store (1, BF0)
   5041       1.1    jruoho 
   5042       1.1    jruoho             //  validate Store did not alter Local0 object type
   5043       1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5044       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5045       1.1    jruoho                 {   Return (3)  }
   5046       1.1    jruoho 
   5047       1.1    jruoho             //  verify that the Store into BF0 was successful
   5048       1.1    jruoho             If (LNotEqual (BF0, 1))
   5049       1.1    jruoho                 {   Return (4)  }
   5050       1.1    jruoho 
   5051       1.1    jruoho 
   5052       1.1    jruoho             //  create Byte Field named BF1 based on Local0 element 1
   5053       1.1    jruoho             CreateByteField (Local0, 1, BF1)
   5054       1.1    jruoho 
   5055       1.1    jruoho             //  validate CreateByteField did not alter Local0
   5056       1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5057       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5058       1.1    jruoho                 {   Return (10) }
   5059       1.1    jruoho 
   5060       1.1    jruoho             //  store something into BF1
   5061       1.1    jruoho             Store (5, BF1)
   5062       1.1    jruoho 
   5063       1.1    jruoho             //  validate Store did not alter Local0 object type
   5064       1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5065       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5066       1.1    jruoho                 {   Return (11) }
   5067       1.1    jruoho 
   5068       1.1    jruoho             //  verify that the Store into BF1 was successful
   5069       1.1    jruoho             If (LNotEqual (BF1, 5))
   5070       1.1    jruoho                 {   Return (12) }
   5071       1.1    jruoho 
   5072       1.1    jruoho             //  verify that the Store into BF1 did not alter BF0
   5073       1.1    jruoho             If (LNotEqual (BF0, 1))
   5074       1.1    jruoho                 {   Return (13) }
   5075       1.1    jruoho 
   5076       1.1    jruoho 
   5077       1.1    jruoho             //  store something into BF0
   5078       1.1    jruoho             Store (0xFFFF, BF0)
   5079       1.1    jruoho 
   5080       1.1    jruoho             //  verify that the Store into BF0 was successful
   5081       1.1    jruoho             If (LNotEqual (BF0, 0xFF))
   5082       1.1    jruoho                 {   Return (20) }
   5083       1.1    jruoho 
   5084       1.1    jruoho             //  verify that the Store into BF0 did not alter BF1
   5085       1.1    jruoho             If (LNotEqual (BF1, 5))
   5086       1.1    jruoho                 {   Return (21) }
   5087       1.1    jruoho 
   5088       1.1    jruoho 
   5089       1.1    jruoho             Return (0)
   5090       1.1    jruoho         }   //  TEST
   5091       1.1    jruoho     }   //  CRBF
   5092       1.1    jruoho 
   5093       1.1    jruoho //
   5094       1.1    jruoho // test IndexOp4.asl
   5095       1.1    jruoho //
   5096       1.1    jruoho //  IndexOp4 test
   5097       1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   5098       1.1    jruoho //      Tests access of index fields smaller than 8 bits.
   5099       1.1    jruoho //
   5100       1.1    jruoho     Device (IDX4)
   5101       1.1    jruoho     {   //  Test device name
   5102       1.1    jruoho 
   5103       1.1    jruoho         //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
   5104       1.1    jruoho         //          Tests OperationRegion memory access using misaligned BYTE,
   5105       1.1    jruoho         //          WORD, and DWORD field element accesses. Validation is performed
   5106       1.1    jruoho         //          using both misaligned field entries and aligned field entries.
   5107       1.1    jruoho         //
   5108       1.1    jruoho         //          MADM returns 0 if all test cases pass or non-zero identifying
   5109       1.1    jruoho         //          the failing test case for debug purposes. This non-zero numbers
   5110       1.1    jruoho         //          are not guaranteed to be in perfect sequence (i.e., test case
   5111       1.1    jruoho         //          index), but are guaranteed to be unique so the failing test
   5112       1.1    jruoho         //          case can be uniquely identified.
   5113       1.1    jruoho         //
   5114   1.1.1.3  christos         Method (MADM, 1, Serialized)    //  Misaligned Dynamic RAM SystemMemory OperationRegion
   5115       1.1    jruoho         //  Arg0    --  SystemMemory OperationRegion base address
   5116       1.1    jruoho         {   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
   5117       1.1    jruoho             OperationRegion (RAM, SystemMemory, Arg0, 0x100)
   5118       1.1    jruoho             Field (RAM, DwordAcc, NoLock, Preserve)
   5119       1.1    jruoho             {   //  aligned field definition (for verification)
   5120       1.1    jruoho                 DWD0,   32, //  aligned DWORD field
   5121       1.1    jruoho                 DWD1,   32      //  aligned DWORD field
   5122       1.1    jruoho             }
   5123       1.1    jruoho             Field (RAM, ByteAcc, NoLock, Preserve)
   5124       1.1    jruoho             {   //  bit access field definition
   5125       1.1    jruoho                 BIT0,   1,      //  single bit field entry
   5126       1.1    jruoho                 BIT1,   1,      //  single bit field entry
   5127       1.1    jruoho                 BIT2,   1,      //  single bit field entry
   5128       1.1    jruoho                 BIT3,   1,      //  single bit field entry
   5129       1.1    jruoho                 BIT4,   1,      //  single bit field entry
   5130       1.1    jruoho                 BIT5,   1,      //  single bit field entry
   5131       1.1    jruoho                 BIT6,   1,      //  single bit field entry
   5132       1.1    jruoho                 BIT7,   1,      //  single bit field entry
   5133       1.1    jruoho                 BIT8,   1,      //  single bit field entry
   5134       1.1    jruoho                 BIT9,   1,      //  single bit field entry
   5135       1.1    jruoho                 BITA,   1,      //  single bit field entry
   5136       1.1    jruoho                 BITB,   1,      //  single bit field entry
   5137       1.1    jruoho                 BITC,   1,      //  single bit field entry
   5138       1.1    jruoho                 BITD,   1,      //  single bit field entry
   5139       1.1    jruoho                 BITE,   1,      //  single bit field entry
   5140       1.1    jruoho                 BITF,   1,      //  single bit field entry
   5141       1.1    jruoho                 BI10,   1,      //  single bit field entry
   5142       1.1    jruoho                 BI11,   1,      //  single bit field entry
   5143       1.1    jruoho                 BI12,   1,      //  single bit field entry
   5144       1.1    jruoho                 BI13,   1,      //  single bit field entry
   5145       1.1    jruoho                 BI14,   1,      //  single bit field entry
   5146       1.1    jruoho                 BI15,   1,      //  single bit field entry
   5147       1.1    jruoho                 BI16,   1,      //  single bit field entry
   5148       1.1    jruoho                 BI17,   1,      //  single bit field entry
   5149       1.1    jruoho                 BI18,   1,      //  single bit field entry
   5150       1.1    jruoho                 BI19,   1,      //  single bit field entry
   5151       1.1    jruoho                 BI1A,   1,      //  single bit field entry
   5152       1.1    jruoho                 BI1B,   1,      //  single bit field entry
   5153       1.1    jruoho                 BI1C,   1,      //  single bit field entry
   5154       1.1    jruoho                 BI1D,   1,      //  single bit field entry
   5155       1.1    jruoho                 BI1E,   1,      //  single bit field entry
   5156       1.1    jruoho                 BI1F,   1       //  single bit field entry
   5157       1.1    jruoho             }   //  bit access field definition
   5158       1.1    jruoho 
   5159       1.1    jruoho             Field (RAM, ByteAcc, NoLock, Preserve)
   5160       1.1    jruoho             {   //  two-bit access field definition
   5161       1.1    jruoho                 B2_0,   2,      //  single bit field entry
   5162       1.1    jruoho                 B2_1,   2,      //  single bit field entry
   5163       1.1    jruoho                 B2_2,   2,      //  single bit field entry
   5164       1.1    jruoho                 B2_3,   2,      //  single bit field entry
   5165       1.1    jruoho                 B2_4,   2,      //  single bit field entry
   5166       1.1    jruoho                 B2_5,   2,      //  single bit field entry
   5167       1.1    jruoho                 B2_6,   2,      //  single bit field entry
   5168       1.1    jruoho                 B2_7,   2,      //  single bit field entry
   5169       1.1    jruoho                 B2_8,   2,      //  single bit field entry
   5170       1.1    jruoho                 B2_9,   2,      //  single bit field entry
   5171       1.1    jruoho                 B2_A,   2,      //  single bit field entry
   5172       1.1    jruoho                 B2_B,   2,      //  single bit field entry
   5173       1.1    jruoho                 B2_C,   2,      //  single bit field entry
   5174       1.1    jruoho                 B2_D,   2,      //  single bit field entry
   5175       1.1    jruoho                 B2_E,   2,      //  single bit field entry
   5176       1.1    jruoho                 B2_F,   2       //  single bit field entry
   5177       1.1    jruoho             }   //  bit access field definition
   5178       1.1    jruoho 
   5179       1.1    jruoho             //  initialize memory contents using aligned field entries
   5180       1.1    jruoho             Store (0x5AA55AA5, DWD0)
   5181       1.1    jruoho             Store (0x5AA55AA5, DWD1)
   5182       1.1    jruoho 
   5183       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5184       1.1    jruoho             Store (0, BIT0)
   5185       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5186       1.1    jruoho                 If (LNotEqual (BIT0, 0))
   5187       1.1    jruoho                     {   Return (1)  }
   5188       1.1    jruoho                 //  verify memory contents using aligned field entries
   5189       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AA4))
   5190       1.1    jruoho                     {   Return (2)  }
   5191       1.1    jruoho 
   5192       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5193       1.1    jruoho             Store (1, BIT1)
   5194       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5195       1.1    jruoho                 If (LNotEqual (BIT1, 1))
   5196       1.1    jruoho                     {   Return (3)  }
   5197       1.1    jruoho                 //  verify memory contents using aligned field entries
   5198       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AA6))
   5199       1.1    jruoho                     {   Return (4)  }
   5200       1.1    jruoho 
   5201       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5202       1.1    jruoho             Store (0, BIT2)
   5203       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5204       1.1    jruoho                 If (LNotEqual (BIT2, 0))
   5205       1.1    jruoho                     {   Return (5)  }
   5206       1.1    jruoho                 //  verify memory contents using aligned field entries
   5207       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AA2))
   5208       1.1    jruoho                     {   Return (6)  }
   5209       1.1    jruoho 
   5210       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5211       1.1    jruoho             Store (1, BIT3)
   5212       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5213       1.1    jruoho                 If (LNotEqual (BIT3, 1))
   5214       1.1    jruoho                     {   Return (7)  }
   5215       1.1    jruoho                 //  verify memory contents using aligned field entries
   5216       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AAA))
   5217       1.1    jruoho                     {   Return (8)  }
   5218       1.1    jruoho 
   5219       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5220       1.1    jruoho             Store (1, BIT4)
   5221       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5222       1.1    jruoho                 If (LNotEqual (BIT4, 1))
   5223       1.1    jruoho                     {   Return (9)  }
   5224       1.1    jruoho                 //  verify memory contents using aligned field entries
   5225       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55ABA))
   5226       1.1    jruoho                     {   Return (10) }
   5227       1.1    jruoho 
   5228       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5229       1.1    jruoho             Store (0, BIT5)
   5230       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5231       1.1    jruoho                 If (LNotEqual (BIT5, 0))
   5232       1.1    jruoho                     {   Return (11) }
   5233       1.1    jruoho                 //  verify memory contents using aligned field entries
   5234       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55A9A))
   5235       1.1    jruoho                     {   Return (12) }
   5236       1.1    jruoho 
   5237       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5238       1.1    jruoho             Store (1, BIT6)
   5239       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5240       1.1    jruoho                 If (LNotEqual (BIT6, 1))
   5241       1.1    jruoho                     {   Return (13) }
   5242       1.1    jruoho                 //  verify memory contents using aligned field entries
   5243       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55ADA))
   5244       1.1    jruoho                     {   Return (14) }
   5245       1.1    jruoho 
   5246       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5247       1.1    jruoho             Store (0, BIT7)
   5248       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5249       1.1    jruoho                 If (LNotEqual (BIT7, 0))
   5250       1.1    jruoho                     {   Return (15) }
   5251       1.1    jruoho                 //  verify memory contents using aligned field entries
   5252       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55A5A))
   5253       1.1    jruoho                     {   Return (16) }
   5254       1.1    jruoho 
   5255       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5256       1.1    jruoho             Store (1, BIT8)
   5257       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5258       1.1    jruoho                 If (LNotEqual (BIT8, 1))
   5259       1.1    jruoho                     {   Return (17) }
   5260       1.1    jruoho                 //  verify memory contents using aligned field entries
   5261       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55B5A))
   5262       1.1    jruoho                     {   Return (18) }
   5263       1.1    jruoho 
   5264       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5265       1.1    jruoho             Store (0, BIT9)
   5266       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5267       1.1    jruoho                 If (LNotEqual (BIT9, 0))
   5268       1.1    jruoho                     {   Return (19) }
   5269       1.1    jruoho                 //  verify memory contents using aligned field entries
   5270       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5595A))
   5271       1.1    jruoho                     {   Return (20) }
   5272       1.1    jruoho 
   5273       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5274       1.1    jruoho             Store (1, BITA)
   5275       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5276       1.1    jruoho                 If (LNotEqual (BITA, 1))
   5277       1.1    jruoho                     {   Return (21) }
   5278       1.1    jruoho                 //  verify memory contents using aligned field entries
   5279       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55D5A))
   5280       1.1    jruoho                     {   Return (22) }
   5281       1.1    jruoho 
   5282       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5283       1.1    jruoho             Store (0, BITB)
   5284       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5285       1.1    jruoho                 If (LNotEqual (BITB, 0))
   5286       1.1    jruoho                     {   Return (23) }
   5287       1.1    jruoho                 //  verify memory contents using aligned field entries
   5288       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5555A))
   5289       1.1    jruoho                     {   Return (24) }
   5290       1.1    jruoho 
   5291       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5292       1.1    jruoho             Store (0, BITC)
   5293       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5294       1.1    jruoho                 If (LNotEqual (BITC, 0))
   5295       1.1    jruoho                     {   Return (25) }
   5296       1.1    jruoho                 //  verify memory contents using aligned field entries
   5297       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5455A))
   5298       1.1    jruoho                     {   Return (26) }
   5299       1.1    jruoho 
   5300       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5301       1.1    jruoho             Store (1, BITD)
   5302       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5303       1.1    jruoho                 If (LNotEqual (BITD, 1))
   5304       1.1    jruoho                     {   Return (27) }
   5305       1.1    jruoho                 //  verify memory contents using aligned field entries
   5306       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5655A))
   5307       1.1    jruoho                     {   Return (28) }
   5308       1.1    jruoho 
   5309       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5310       1.1    jruoho             Store (0, BITE)
   5311       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5312       1.1    jruoho                 If (LNotEqual (BITE, 0))
   5313       1.1    jruoho                     {   Return (29) }
   5314       1.1    jruoho                 //  verify memory contents using aligned field entries
   5315       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5255A))
   5316       1.1    jruoho                     {   Return (30) }
   5317       1.1    jruoho 
   5318       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5319       1.1    jruoho             Store (1, BITF)
   5320       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5321       1.1    jruoho                 If (LNotEqual (BITF, 1))
   5322       1.1    jruoho                     {   Return (31) }
   5323       1.1    jruoho                 //  verify memory contents using aligned field entries
   5324       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5A55A))
   5325       1.1    jruoho                     {   Return (32) }
   5326       1.1    jruoho 
   5327       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5328       1.1    jruoho             Store (0, BI10)
   5329       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5330       1.1    jruoho                 If (LNotEqual (BI10, 0))
   5331       1.1    jruoho                     {   Return (33) }
   5332       1.1    jruoho                 //  verify memory contents using aligned field entries
   5333       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA4A55A))
   5334       1.1    jruoho                     {   Return (34) }
   5335       1.1    jruoho 
   5336       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5337       1.1    jruoho             Store (1, BI11)
   5338       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5339       1.1    jruoho                 If (LNotEqual (BI11, 1))
   5340       1.1    jruoho                     {   Return (35) }
   5341       1.1    jruoho                 //  verify memory contents using aligned field entries
   5342       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA6A55A))
   5343       1.1    jruoho                     {   Return (36) }
   5344       1.1    jruoho 
   5345       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5346       1.1    jruoho             Store (0, BI12)
   5347       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5348       1.1    jruoho                 If (LNotEqual (BI12, 0))
   5349       1.1    jruoho                     {   Return (37) }
   5350       1.1    jruoho                 //  verify memory contents using aligned field entries
   5351       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA2A55A))
   5352       1.1    jruoho                     {   Return (38) }
   5353       1.1    jruoho 
   5354       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5355       1.1    jruoho             Store (1, BI13)
   5356       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5357       1.1    jruoho                 If (LNotEqual (BI13, 1))
   5358       1.1    jruoho                     {   Return (39) }
   5359       1.1    jruoho                 //  verify memory contents using aligned field entries
   5360       1.1    jruoho                 If (LNotEqual (DWD0, 0x5AAAA55A))
   5361       1.1    jruoho                     {   Return (40) }
   5362       1.1    jruoho 
   5363       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5364       1.1    jruoho             Store (1, BI14)
   5365       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5366       1.1    jruoho                 If (LNotEqual (BI14, 1))
   5367       1.1    jruoho                     {   Return (41) }
   5368       1.1    jruoho                 //  verify memory contents using aligned field entries
   5369       1.1    jruoho                 If (LNotEqual (DWD0, 0x5ABAA55A))
   5370       1.1    jruoho                     {   Return (42) }
   5371       1.1    jruoho 
   5372       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5373       1.1    jruoho             Store (0, BI15)
   5374       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5375       1.1    jruoho                 If (LNotEqual (BI15, 0))
   5376       1.1    jruoho                     {   Return (43) }
   5377       1.1    jruoho                 //  verify memory contents using aligned field entries
   5378       1.1    jruoho                 If (LNotEqual (DWD0, 0x5A9AA55A))
   5379       1.1    jruoho                     {   Return (44) }
   5380       1.1    jruoho 
   5381       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5382       1.1    jruoho             Store (1, BI16)
   5383       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5384       1.1    jruoho                 If (LNotEqual (BI16, 1))
   5385       1.1    jruoho                     {   Return (45) }
   5386       1.1    jruoho                 //  verify memory contents using aligned field entries
   5387       1.1    jruoho                 If (LNotEqual (DWD0, 0x5ADAA55A))
   5388       1.1    jruoho                     {   Return (46) }
   5389       1.1    jruoho 
   5390       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5391       1.1    jruoho             Store (0, BI17)
   5392       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5393       1.1    jruoho                 If (LNotEqual (BI17, 0))
   5394       1.1    jruoho                     {   Return (47) }
   5395       1.1    jruoho                 //  verify memory contents using aligned field entries
   5396       1.1    jruoho                 If (LNotEqual (DWD0, 0x5A5AA55A))
   5397       1.1    jruoho                     {   Return (48) }
   5398       1.1    jruoho 
   5399       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5400       1.1    jruoho             Store (1, BI18)
   5401       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5402       1.1    jruoho                 If (LNotEqual (BI18, 1))
   5403       1.1    jruoho                     {   Return (49) }
   5404       1.1    jruoho                 //  verify memory contents using aligned field entries
   5405       1.1    jruoho                 If (LNotEqual (DWD0, 0x5B5AA55A))
   5406       1.1    jruoho                     {   Return (50) }
   5407       1.1    jruoho 
   5408       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5409       1.1    jruoho             Store (0, BI19)
   5410       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5411       1.1    jruoho                 If (LNotEqual (BI19, 0))
   5412       1.1    jruoho                     {   Return (51) }
   5413       1.1    jruoho                 //  verify memory contents using aligned field entries
   5414       1.1    jruoho                 If (LNotEqual (DWD0, 0x595AA55A))
   5415       1.1    jruoho                     {   Return (52) }
   5416       1.1    jruoho 
   5417       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5418       1.1    jruoho             Store (1, BI1A)
   5419       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5420       1.1    jruoho                 If (LNotEqual (BI1A, 1))
   5421       1.1    jruoho                     {   Return (53) }
   5422       1.1    jruoho                 //  verify memory contents using aligned field entries
   5423       1.1    jruoho                 If (LNotEqual (DWD0, 0x5D5AA55A))
   5424       1.1    jruoho                     {   Return (54) }
   5425       1.1    jruoho 
   5426       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5427       1.1    jruoho             Store (0, BI1B)
   5428       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5429       1.1    jruoho                 If (LNotEqual (BI1B, 0))
   5430       1.1    jruoho                     {   Return (55) }
   5431       1.1    jruoho                 //  verify memory contents using aligned field entries
   5432       1.1    jruoho                 If (LNotEqual (DWD0, 0x555AA55A))
   5433       1.1    jruoho                     {   Return (56) }
   5434       1.1    jruoho 
   5435       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5436       1.1    jruoho             Store (0, BI1C)
   5437       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5438       1.1    jruoho                 If (LNotEqual (BI1C, 0))
   5439       1.1    jruoho                     {   Return (57) }
   5440       1.1    jruoho                 //  verify memory contents using aligned field entries
   5441       1.1    jruoho                 If (LNotEqual (DWD0, 0x455AA55A))
   5442       1.1    jruoho                     {   Return (58) }
   5443       1.1    jruoho 
   5444       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5445       1.1    jruoho             Store (1, BI1D)
   5446       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5447       1.1    jruoho                 If (LNotEqual (BI1D, 1))
   5448       1.1    jruoho                     {   Return (59) }
   5449       1.1    jruoho                 //  verify memory contents using aligned field entries
   5450       1.1    jruoho                 If (LNotEqual (DWD0, 0x655AA55A))
   5451       1.1    jruoho                     {   Return (60) }
   5452       1.1    jruoho 
   5453       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5454       1.1    jruoho             Store (0, BI1E)
   5455       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5456       1.1    jruoho                 If (LNotEqual (BI1E, 0))
   5457       1.1    jruoho                     {   Return (61) }
   5458       1.1    jruoho                 //  verify memory contents using aligned field entries
   5459       1.1    jruoho                 If (LNotEqual (DWD0, 0x255AA55A))
   5460       1.1    jruoho                     {   Return (62) }
   5461       1.1    jruoho 
   5462       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5463       1.1    jruoho             Store (1, BI1F)
   5464       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5465       1.1    jruoho                 If (LNotEqual (BI1F, 1))
   5466       1.1    jruoho                     {   Return (63) }
   5467       1.1    jruoho                 //  verify memory contents using aligned field entries
   5468       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA55A))
   5469       1.1    jruoho                     {   Return (64) }
   5470       1.1    jruoho 
   5471       1.1    jruoho 
   5472       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5473       1.1    jruoho             Store (3, B2_0)
   5474       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5475       1.1    jruoho                 If (LNotEqual (B2_0, 3))
   5476       1.1    jruoho                     {   Return (65) }
   5477       1.1    jruoho                 //  verify memory contents using aligned field entries
   5478       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA55B))
   5479       1.1    jruoho                     {   Return (66) }
   5480       1.1    jruoho 
   5481       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5482       1.1    jruoho             Store (1, B2_1)
   5483       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5484       1.1    jruoho                 If (LNotEqual (B2_1, 1))
   5485       1.1    jruoho                     {   Return (67) }
   5486       1.1    jruoho                 //  verify memory contents using aligned field entries
   5487       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA557))
   5488       1.1    jruoho                     {   Return (68) }
   5489       1.1    jruoho 
   5490       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5491       1.1    jruoho             Store (0, B2_2)
   5492       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5493       1.1    jruoho                 If (LNotEqual (B2_2, 0))
   5494       1.1    jruoho                     {   Return (69) }
   5495       1.1    jruoho                 //  verify memory contents using aligned field entries
   5496       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA547))
   5497       1.1    jruoho                     {   Return (70) }
   5498       1.1    jruoho 
   5499       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5500       1.1    jruoho             Store (3, B2_3)
   5501       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5502       1.1    jruoho                 If (LNotEqual (B2_3, 3))
   5503       1.1    jruoho                     {   Return (71) }
   5504       1.1    jruoho                 //  verify memory contents using aligned field entries
   5505       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA5C7))
   5506       1.1    jruoho                     {   Return (72) }
   5507       1.1    jruoho 
   5508       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5509       1.1    jruoho             Store (3, B2_4)
   5510       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5511       1.1    jruoho                 If (LNotEqual (B2_4, 3))
   5512       1.1    jruoho                     {   Return (73) }
   5513       1.1    jruoho                 //  verify memory contents using aligned field entries
   5514       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA7C7))
   5515       1.1    jruoho                     {   Return (74) }
   5516       1.1    jruoho 
   5517       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5518       1.1    jruoho             Store (0, B2_5)
   5519       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5520       1.1    jruoho                 If (LNotEqual (B2_5, 0))
   5521       1.1    jruoho                     {   Return (75) }
   5522       1.1    jruoho                 //  verify memory contents using aligned field entries
   5523       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA3C7))
   5524       1.1    jruoho                     {   Return (76) }
   5525       1.1    jruoho 
   5526       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5527       1.1    jruoho             Store (1, B2_6)
   5528       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5529       1.1    jruoho                 If (LNotEqual (B2_6, 1))
   5530       1.1    jruoho                     {   Return (77) }
   5531       1.1    jruoho                 //  verify memory contents using aligned field entries
   5532       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55A93C7))
   5533       1.1    jruoho                     {   Return (78) }
   5534       1.1    jruoho 
   5535       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5536       1.1    jruoho             Store (1, B2_7)
   5537       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5538       1.1    jruoho                 If (LNotEqual (B2_7, 1))
   5539       1.1    jruoho                     {   Return (79) }
   5540       1.1    jruoho                 //  verify memory contents using aligned field entries
   5541       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55A53C7))
   5542       1.1    jruoho                     {   Return (80) }
   5543       1.1    jruoho 
   5544       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5545       1.1    jruoho             Store (0, B2_8)
   5546       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5547       1.1    jruoho                 If (LNotEqual (B2_8, 0))
   5548       1.1    jruoho                     {   Return (81) }
   5549       1.1    jruoho                 //  verify memory contents using aligned field entries
   5550       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55853C7))
   5551       1.1    jruoho                     {   Return (82) }
   5552       1.1    jruoho 
   5553       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5554       1.1    jruoho             Store (1, B2_9)
   5555       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5556       1.1    jruoho                 If (LNotEqual (B2_9, 1))
   5557       1.1    jruoho                     {   Return (83) }
   5558       1.1    jruoho                 //  verify memory contents using aligned field entries
   5559       1.1    jruoho                 If (LNotEqual (DWD0, 0xA55453C7))
   5560       1.1    jruoho                     {   Return (84) }
   5561       1.1    jruoho 
   5562       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5563       1.1    jruoho             Store (2, B2_A)
   5564       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5565       1.1    jruoho                 If (LNotEqual (B2_A, 2))
   5566       1.1    jruoho                     {   Return (85) }
   5567       1.1    jruoho                 //  verify memory contents using aligned field entries
   5568       1.1    jruoho                 If (LNotEqual (DWD0, 0xA56453C7))
   5569       1.1    jruoho                     {   Return (86) }
   5570       1.1    jruoho 
   5571       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5572       1.1    jruoho             Store (2, B2_B)
   5573       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5574       1.1    jruoho                 If (LNotEqual (B2_B, 2))
   5575       1.1    jruoho                     {   Return (87) }
   5576       1.1    jruoho                 //  verify memory contents using aligned field entries
   5577       1.1    jruoho                 If (LNotEqual (DWD0, 0xA5A453C7))
   5578       1.1    jruoho                     {   Return (88) }
   5579       1.1    jruoho 
   5580       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5581       1.1    jruoho             Store (3, B2_C)
   5582       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5583       1.1    jruoho                 If (LNotEqual (B2_C, 3))
   5584       1.1    jruoho                     {   Return (89) }
   5585       1.1    jruoho                 //  verify memory contents using aligned field entries
   5586       1.1    jruoho                 If (LNotEqual (DWD0, 0xA7A453C7))
   5587       1.1    jruoho                     {   Return (90) }
   5588       1.1    jruoho 
   5589       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5590       1.1    jruoho             Store (3, B2_D)
   5591       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5592       1.1    jruoho                 If (LNotEqual (B2_D, 3))
   5593       1.1    jruoho                     {   Return (91) }
   5594       1.1    jruoho                 //  verify memory contents using aligned field entries
   5595       1.1    jruoho                 If (LNotEqual (DWD0, 0xAFA453C7))
   5596       1.1    jruoho                     {   Return (92) }
   5597       1.1    jruoho 
   5598       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5599       1.1    jruoho             Store (1, B2_E)
   5600       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5601       1.1    jruoho                 If (LNotEqual (B2_E, 1))
   5602       1.1    jruoho                     {   Return (93) }
   5603       1.1    jruoho                 //  verify memory contents using aligned field entries
   5604       1.1    jruoho                 If (LNotEqual (DWD0, 0x9FA453C7))
   5605       1.1    jruoho                     {   Return (94) }
   5606       1.1    jruoho 
   5607       1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5608       1.1    jruoho             Store (0, B2_F)
   5609       1.1    jruoho                 //  verify memory contents using misaligned field entries
   5610       1.1    jruoho                 If (LNotEqual (B2_F, 0))
   5611       1.1    jruoho                     {   Return (95) }
   5612       1.1    jruoho                 //  verify memory contents using aligned field entries
   5613       1.1    jruoho                 If (LNotEqual (DWD0, 0x1FA453C7))
   5614       1.1    jruoho                     {   Return (96) }
   5615       1.1    jruoho 
   5616       1.1    jruoho 
   5617       1.1    jruoho             Return (0)  //  pass
   5618       1.1    jruoho         }   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
   5619       1.1    jruoho 
   5620       1.1    jruoho         Method (TEST)
   5621       1.1    jruoho         {
   5622       1.1    jruoho             Store ("++++++++ IndexOp4 Test", Debug)
   5623       1.1    jruoho 
   5624       1.1    jruoho             //  MADM (Misaligned Dynamic RAM SystemMemory OperationRegion) arguments:
   5625       1.1    jruoho             //      Arg0    --  SystemMemory OperationRegion base address
   5626       1.1    jruoho             Store (MADM (0x800000), Local0)
   5627       1.1    jruoho             If (LNotEqual (Local0, 0))      //  MADM returns zero if successful
   5628       1.1    jruoho                 {   Return (Local0) }       //  failure:    return MADM error code
   5629       1.1    jruoho 
   5630       1.1    jruoho             Return (Local0)
   5631       1.1    jruoho         }   //  TEST
   5632       1.1    jruoho     }   //  IDX4
   5633       1.1    jruoho 
   5634       1.1    jruoho //
   5635       1.1    jruoho // test Event.asl
   5636       1.1    jruoho //
   5637       1.1    jruoho //  EventOp, ResetOp, SignalOp, and WaitOp test cases.
   5638       1.1    jruoho //
   5639       1.1    jruoho     Device (EVNT)
   5640       1.1    jruoho     {
   5641       1.1    jruoho         Event (EVNT)    //  event synchronization object
   5642       1.1    jruoho 
   5643       1.1    jruoho         Method (TEVN, 1)
   5644       1.1    jruoho         //  Arg0:   time to Wait for event in milliseconds
   5645       1.1    jruoho         {   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
   5646       1.1    jruoho             //  reset EVNT to initialization (zero) state
   5647       1.1    jruoho             Reset (EVNT)
   5648       1.1    jruoho 
   5649       1.1    jruoho             //  prime EVNT with two outstanding signals
   5650       1.1    jruoho             Signal (EVNT)
   5651       1.1    jruoho             Signal (EVNT)
   5652       1.1    jruoho 
   5653       1.1    jruoho 
   5654       1.1    jruoho             //  acquire existing signal
   5655       1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5656       1.1    jruoho 
   5657       1.1    jruoho             //  validate Local0 is a Number
   5658       1.1    jruoho             Store (ObjectType (Local0), Local1)
   5659       1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5660       1.1    jruoho                 {   Return (0x21)   }       //  Local1 indicates Local0 is not a Number
   5661       1.1    jruoho 
   5662       1.1    jruoho             If (LNotEqual (Local0, 0))  //  Number is type 1
   5663       1.1    jruoho                 {   Return (0x22)   }       //  timeout occurred without acquiring signal
   5664       1.1    jruoho 
   5665       1.1    jruoho             Store ("Acquire 1st existing signal PASS", Debug)
   5666       1.1    jruoho 
   5667       1.1    jruoho 
   5668       1.1    jruoho             //  acquire existing signal
   5669       1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5670       1.1    jruoho 
   5671       1.1    jruoho             //  validate Local0 is a Number
   5672       1.1    jruoho             Store (ObjectType (Local0), Local1)
   5673       1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5674       1.1    jruoho                 {   Return (0x31)   }       //  Local1 indicates Local0 is not a Number
   5675       1.1    jruoho 
   5676       1.1    jruoho             If (LNotEqual (Local0, 0))  //  Number is type 1
   5677       1.1    jruoho                 {   Return (0x32)   }       //  timeout occurred without acquiring signal
   5678       1.1    jruoho 
   5679       1.1    jruoho             Store ("Acquire 2nd existing signal PASS", Debug)
   5680       1.1    jruoho 
   5681       1.1    jruoho 
   5682       1.1    jruoho             //  ensure WaitOp timeout test cases do not hang
   5683       1.1    jruoho             if (LEqual (Arg0, 0xFFFF))
   5684       1.1    jruoho                 {   Store (0xFFFE, Arg0)    }
   5685       1.1    jruoho 
   5686       1.1    jruoho             //  acquire non-existing signal
   5687       1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5688       1.1    jruoho 
   5689       1.1    jruoho             //  validate Local0 is a Number
   5690       1.1    jruoho             Store (ObjectType (Local0), Local1)
   5691       1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5692       1.1    jruoho                 {   Return (0x41)   }       //  Local1 indicates Local0 is not a Number
   5693       1.1    jruoho 
   5694       1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5695  1.1.1.11  christos                 {   Return (0x42)   }       //  non-existent signal was acquired
   5696       1.1    jruoho 
   5697       1.1    jruoho             Store ("Acquire signal timeout PASS", Debug)
   5698       1.1    jruoho 
   5699       1.1    jruoho 
   5700       1.1    jruoho             //  prime EVNT with two outstanding signals
   5701       1.1    jruoho             Signal (EVNT)
   5702       1.1    jruoho             Signal (EVNT)
   5703       1.1    jruoho 
   5704       1.1    jruoho             //  reset EVNT to initialization (zero) state
   5705       1.1    jruoho             Reset (EVNT)
   5706       1.1    jruoho 
   5707       1.1    jruoho             //  acquire non-existing signal
   5708       1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5709       1.1    jruoho 
   5710       1.1    jruoho             //  validate Local0 is a Number
   5711       1.1    jruoho             Store (ObjectType (Local0), Local1)
   5712       1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5713       1.1    jruoho                 {   Return (0x51)   }       //  Local1 indicates Local0 is not a Number
   5714       1.1    jruoho 
   5715       1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5716  1.1.1.11  christos                 {   Return (0x52)   }       //  non-existent signal was acquired
   5717       1.1    jruoho 
   5718       1.1    jruoho             Store ("Reset signal PASS", Debug)
   5719       1.1    jruoho 
   5720       1.1    jruoho 
   5721       1.1    jruoho             //  acquire non-existing signal using Lvalue timeout
   5722       1.1    jruoho             Store (Wait (EVNT, Zero), Local0)
   5723       1.1    jruoho 
   5724       1.1    jruoho             //  validate Local0 is a Number
   5725       1.1    jruoho             Store (ObjectType (Local0), Local1)
   5726       1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5727       1.1    jruoho                 {   Return (0x61)   }       //  Local1 indicates Local0 is not a Number
   5728       1.1    jruoho 
   5729       1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5730  1.1.1.11  christos                 {   Return (0x62)   }       //  non-existent signal was acquired
   5731       1.1    jruoho 
   5732       1.1    jruoho             Store ("Zero Lvalue PASS", Debug)
   5733       1.1    jruoho 
   5734       1.1    jruoho 
   5735       1.1    jruoho             //  acquire non-existing signal using Lvalue timeout
   5736       1.1    jruoho             Store (Wait (EVNT, One), Local0)
   5737       1.1    jruoho 
   5738       1.1    jruoho             //  validate Local0 is a Number
   5739       1.1    jruoho             Store (ObjectType (Local0), Local1)
   5740       1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5741       1.1    jruoho                 {   Return (0x71)   }       //  Local1 indicates Local0 is not a Number
   5742       1.1    jruoho 
   5743       1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5744  1.1.1.11  christos                 {   Return (0x72)   }       //  non-existent signal was acquired
   5745       1.1    jruoho 
   5746       1.1    jruoho             Store ("One Lvalue PASS", Debug)
   5747       1.1    jruoho 
   5748       1.1    jruoho             //  Lvalue Event test cases
   5749       1.1    jruoho     // ILLEGAL SOURCE OPERAND        Store (EVNT, Local2)
   5750       1.1    jruoho 
   5751       1.1    jruoho             //  validate Local2 is an Event
   5752       1.1    jruoho             Store (ObjectType (EVNT), Local1)
   5753       1.1    jruoho             If (LNotEqual (Local1, 7))  //  Event is type 7
   5754       1.1    jruoho                 {   Return (0x81)   }       //  Local1 indicates Local0 is not a Number
   5755       1.1    jruoho 
   5756       1.1    jruoho             //  reset EVNT to initialization (zero) state
   5757       1.1    jruoho             Reset (EVNT)
   5758       1.1    jruoho 
   5759       1.1    jruoho             //  prime EVNT with two outstanding signals
   5760       1.1    jruoho             Signal (EVNT)
   5761       1.1    jruoho 
   5762       1.1    jruoho             //  acquire existing signal
   5763       1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5764       1.1    jruoho 
   5765       1.1    jruoho             //  validate Local0 is a Number
   5766       1.1    jruoho             Store (ObjectType (Local0), Local1)
   5767       1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5768       1.1    jruoho                 {   Return (0x82)   }       //  Local1 indicates Local0 is not a Number
   5769       1.1    jruoho 
   5770       1.1    jruoho             If (LNotEqual (Local0, 0))  //  Number is type 1
   5771       1.1    jruoho                 {   Return (0x83)   }       //  timeout occurred without acquiring signal
   5772       1.1    jruoho 
   5773       1.1    jruoho             Store ("Acquire Lvalue existing signal PASS", Debug)
   5774       1.1    jruoho 
   5775       1.1    jruoho 
   5776       1.1    jruoho             //  acquire non-existing signal
   5777       1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5778       1.1    jruoho 
   5779       1.1    jruoho             //  validate Local0 is a Number
   5780       1.1    jruoho             Store (ObjectType (Local0), Local1)
   5781       1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5782       1.1    jruoho                 {   Return (0x84)   }       //  Local1 indicates Local0 is not a Number
   5783       1.1    jruoho 
   5784       1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5785  1.1.1.11  christos                 {   Return (0x85)   }       //  non-existent signal was acquired
   5786       1.1    jruoho 
   5787       1.1    jruoho             Store ("Acquire Lvalue signal timeout PASS", Debug)
   5788       1.1    jruoho 
   5789       1.1    jruoho 
   5790       1.1    jruoho             Return (0)  //  success
   5791       1.1    jruoho         }   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
   5792       1.1    jruoho 
   5793       1.1    jruoho         Method (TEST)
   5794       1.1    jruoho         {
   5795       1.1    jruoho             Store ("++++++++ Event Test", Debug)
   5796       1.1    jruoho 
   5797       1.1    jruoho             Store (TEVN (100), Local0)
   5798       1.1    jruoho 
   5799       1.1    jruoho             Return (Local0)
   5800       1.1    jruoho         }   //  TEST
   5801       1.1    jruoho     }   //  EVNT
   5802       1.1    jruoho 
   5803       1.1    jruoho //
   5804       1.1    jruoho // test SizeOfLv.asl
   5805       1.1    jruoho //
   5806       1.1    jruoho //  Test for SizeOf (Lvalue)
   5807       1.1    jruoho //
   5808       1.1    jruoho //  This next section will contain the packages that the SizeOfOp will be
   5809   1.1.1.9  christos //  exercised on. The first one, PKG0, is a regular package of 3 elements.
   5810       1.1    jruoho //  The 2nd one, PKG1, is a nested package with 3 packages inside it, each
   5811   1.1.1.9  christos //  with 3 elements. It is expected that SizeOf operator will return the
   5812   1.1.1.9  christos //  same value for these two packages since they both have 3 elements. The
   5813       1.1    jruoho //  final package, PKG2, has 4 elements and the SizeOf operator is expected
   5814       1.1    jruoho //  to return different results for this package.
   5815       1.1    jruoho 
   5816       1.1    jruoho     Name (PKG0,
   5817       1.1    jruoho         Package (3)
   5818       1.1    jruoho         {0x0123, 0x4567, 0x89AB}
   5819       1.1    jruoho     )   //  PKG0
   5820       1.1    jruoho 
   5821       1.1    jruoho     Name (PKG1,
   5822       1.1    jruoho         Package (3)
   5823       1.1    jruoho         {
   5824       1.1    jruoho             Package (3) {0x0123, 0x4567, 0x89AB},
   5825       1.1    jruoho             Package (3) {0xCDEF, 0xFEDC, 0xBA98},
   5826       1.1    jruoho             Package (3) {0x7654, 0x3210, 0x1234}
   5827       1.1    jruoho         }
   5828       1.1    jruoho     )   //  PKG1
   5829       1.1    jruoho 
   5830       1.1    jruoho     Name (PKG2,
   5831       1.1    jruoho         Package (4)
   5832       1.1    jruoho         {0x0123, 0x4567, 0x89AB, 0x8888}
   5833       1.1    jruoho     )   //  PKG2
   5834       1.1    jruoho 
   5835       1.1    jruoho     Name (PKG3,
   5836       1.1    jruoho         Package (5)
   5837       1.1    jruoho         {0x0123, 0x4567, 0x89AB, 0x8888, 0x7777}
   5838       1.1    jruoho     )   //  PKG3
   5839       1.1    jruoho 
   5840       1.1    jruoho //  End Packages    **********************************************************
   5841       1.1    jruoho 
   5842       1.1    jruoho //  The following section will declare the data strings that will be used to
   5843   1.1.1.9  christos //  exercise the SizeOf operator. STR0 and STR1 are expected to be equal,
   5844       1.1    jruoho //  STR2 is expected to have a different SizeOf value than STR0 and STR1.
   5845       1.1    jruoho 
   5846       1.1    jruoho     Name (STR0, "ACPI permits very flexible methods of expressing a system")
   5847       1.1    jruoho 
   5848       1.1    jruoho     Name (STR1, "MIKE permits very flexible methods of expressing a system")
   5849       1.1    jruoho 
   5850       1.1    jruoho     Name (STR2, "Needless to say, Mike and ACPI are frequently at odds")
   5851       1.1    jruoho 
   5852       1.1    jruoho //  This string is being made in case we want to do a SizeOf comparison
   5853       1.1    jruoho //  between strings and packages or buffers
   5854       1.1    jruoho     Name (STR3, "12345")
   5855       1.1    jruoho 
   5856       1.1    jruoho //  End Strings     **********************************************************
   5857       1.1    jruoho 
   5858       1.1    jruoho //  The following section will declare the buffers that will be used to exercise
   5859       1.1    jruoho //  the SizeOf operator.
   5860       1.1    jruoho 
   5861       1.1    jruoho     Name (BUF0, Buffer (10) {})
   5862       1.1    jruoho     Name (BUF1, Buffer (10) {})
   5863       1.1    jruoho     Name (BUF2, Buffer (8)  {})
   5864       1.1    jruoho     Name (BUF3, Buffer (5)  {})
   5865       1.1    jruoho 
   5866       1.1    jruoho //  End Buffers     **********************************************************
   5867       1.1    jruoho     Device (SZLV)
   5868       1.1    jruoho     {
   5869       1.1    jruoho 
   5870       1.1    jruoho         Method (CMPR, 2)
   5871       1.1    jruoho         {
   5872   1.1.1.9  christos             //  CMPR is passed two arguments. If unequal, return 1 to indicate
   5873       1.1    jruoho             //  that, otherwise return 0 to indicate SizeOf each is equal.
   5874       1.1    jruoho 
   5875       1.1    jruoho             Store (0x01, Local0)
   5876       1.1    jruoho 
   5877       1.1    jruoho             if (LEqual (SizeOf(Arg0), SizeOf(Arg1)))
   5878       1.1    jruoho             {
   5879       1.1    jruoho                 Store (0x00, Local0)
   5880       1.1    jruoho             }
   5881       1.1    jruoho 
   5882       1.1    jruoho             return (Local0)
   5883       1.1    jruoho         }   //  CMPR
   5884       1.1    jruoho 
   5885       1.1    jruoho 
   5886       1.1    jruoho         Method (TEST)
   5887       1.1    jruoho         {
   5888       1.1    jruoho 
   5889       1.1    jruoho             Store ("++++++++ SizeOfLv Test", Debug)
   5890       1.1    jruoho 
   5891       1.1    jruoho             //  TBD:    SizeOf ("string")
   5892       1.1    jruoho             //          SizeOf (Buffer)
   5893       1.1    jruoho             //          SizeOf (Package)
   5894       1.1    jruoho             //          SizeOf (String)
   5895       1.1    jruoho             //          SizeOf (STR0)   --  where Name (STR0,...) -- lot's of cases
   5896       1.1    jruoho             //              buffer, string, package,
   5897       1.1    jruoho             //          SizeOf (METH) -- where METH control method returns
   5898       1.1    jruoho             //              buffer, string, package,
   5899       1.1    jruoho 
   5900       1.1    jruoho             //  TBD:    SLOC [SizeOf (Local0)] -- dup SARG
   5901       1.1    jruoho 
   5902   1.1.1.9  christos             //  Compare the elements that we expect to be the same. Exit out with an error
   5903       1.1    jruoho             //  code on the first failure.
   5904       1.1    jruoho             if (LNotEqual (0x00, CMPR (STR0, STR1)))
   5905       1.1    jruoho             {
   5906       1.1    jruoho                 Return (0x01)
   5907       1.1    jruoho             }
   5908       1.1    jruoho 
   5909       1.1    jruoho             if (LNotEqual (0x00, CMPR (STR3, BUF3)))
   5910       1.1    jruoho             {
   5911       1.1    jruoho                 Return (0x02)
   5912       1.1    jruoho             }
   5913       1.1    jruoho 
   5914       1.1    jruoho             if (LNotEqual (0x00, CMPR (STR3, PKG3)))
   5915       1.1    jruoho             {
   5916       1.1    jruoho                 Return (0x03)
   5917       1.1    jruoho             }
   5918       1.1    jruoho 
   5919       1.1    jruoho             //  In the following section, this test will cover the SizeOf
   5920       1.1    jruoho             //  operator for Local values.
   5921       1.1    jruoho             //  In this case, both Local0 and Local1 should have the same Size
   5922       1.1    jruoho             Store (STR0, Local0)
   5923       1.1    jruoho             Store (STR1, Local1)
   5924       1.1    jruoho 
   5925       1.1    jruoho             if (LNotEqual (SizeOf (Local0), SizeOf (Local1)))
   5926       1.1    jruoho             {
   5927       1.1    jruoho                 Return (0x04)
   5928       1.1    jruoho             }
   5929       1.1    jruoho 
   5930       1.1    jruoho             //  Now create a case where Local0 and Local1 are different
   5931       1.1    jruoho             Store (STR2, Local1)
   5932       1.1    jruoho 
   5933       1.1    jruoho             if (LEqual (SizeOf (Local0), SizeOf (Local1)))
   5934       1.1    jruoho             {
   5935       1.1    jruoho                 Return (0x05)
   5936       1.1    jruoho             }
   5937       1.1    jruoho 
   5938   1.1.1.9  christos             //  Finally, check for the return of SizeOf for a known Buffer. Just
   5939       1.1    jruoho             //  in case we magically pass above cases due to all Buffers being Zero
   5940       1.1    jruoho             //  bytes in size, or Infinity, etc.
   5941       1.1    jruoho             if (LNotEqual (0x05, SizeOf (BUF3)))
   5942       1.1    jruoho             {
   5943       1.1    jruoho                 Return (0x06)
   5944       1.1    jruoho             }
   5945       1.1    jruoho 
   5946       1.1    jruoho             Return (0)
   5947       1.1    jruoho         }   //  TEST
   5948       1.1    jruoho     }   //  SZLV
   5949       1.1    jruoho 
   5950       1.1    jruoho 
   5951       1.1    jruoho //
   5952       1.1    jruoho // test BytField.asl
   5953       1.1    jruoho //
   5954       1.1    jruoho //  BytField test
   5955       1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   5956       1.1    jruoho //      Tests access of TBD.
   5957       1.1    jruoho //
   5958       1.1    jruoho     Scope (\_SB)    //  System Bus
   5959       1.1    jruoho     {   //  _SB system bus
   5960       1.1    jruoho         Device (BYTF)
   5961       1.1    jruoho         {   //  Test device name
   5962       1.1    jruoho             Method (TEST)
   5963       1.1    jruoho             {
   5964       1.1    jruoho                 Store ("++++++++ BytField Test", Debug)
   5965       1.1    jruoho 
   5966       1.1    jruoho                 Return (\_TZ.C19B.RSLT)
   5967       1.1    jruoho             }   //  TEST
   5968       1.1    jruoho         }   //  BYTF
   5969       1.1    jruoho 
   5970       1.1    jruoho         Device (C005)
   5971       1.1    jruoho         {   //  Device C005
   5972       1.1    jruoho             Device (C013)
   5973       1.1    jruoho             {   //  Device C013
   5974       1.1    jruoho             }   //  Device C013
   5975       1.1    jruoho         }   //  Device C005
   5976       1.1    jruoho 
   5977       1.1    jruoho         Method (C115)
   5978       1.1    jruoho         {   //  C115 control method
   5979       1.1    jruoho             Acquire (\_GL, 0xFFFF)
   5980       1.1    jruoho             Store (\_SB.C005.C013.C058.C07E, Local0)
   5981       1.1    jruoho             Release (\_GL)
   5982       1.1    jruoho             And (Local0, 16, Local0)
   5983       1.1    jruoho             Store (ShiftRight (Local0, 4, ), Local1)
   5984       1.1    jruoho             If (LEqual (Local1, 0))
   5985       1.1    jruoho                 {   Return (1)  }
   5986       1.1    jruoho             Else
   5987       1.1    jruoho                 {   Return (0)  }
   5988       1.1    jruoho         }   //  C115 control method
   5989       1.1    jruoho     }   //  _SB system bus
   5990       1.1    jruoho 
   5991       1.1    jruoho     OperationRegion (C018, SystemIO, 0x5028, 4)
   5992       1.1    jruoho     Field (C018, AnyAcc, NoLock, Preserve)
   5993       1.1    jruoho     {   //  Field overlaying C018
   5994       1.1    jruoho         C019,   32
   5995       1.1    jruoho     }   //  Field overlaying C018
   5996       1.1    jruoho 
   5997       1.1    jruoho     OperationRegion (C01A, SystemIO, 0x5030, 4)
   5998       1.1    jruoho     Field (C01A, ByteAcc, NoLock, Preserve)
   5999       1.1    jruoho     {   //  Field overlaying C01A
   6000       1.1    jruoho         C01B,   8,
   6001       1.1    jruoho         C01C,   8,
   6002       1.1    jruoho         C01D,   8,
   6003       1.1    jruoho         C01E,   8
   6004       1.1    jruoho     }   //  Field overlaying C01A
   6005       1.1    jruoho 
   6006       1.1    jruoho     Mutex (\C01F, 0)
   6007       1.1    jruoho     Name (\C020, 0)
   6008       1.1    jruoho     Name (\C021, 0)
   6009       1.1    jruoho 
   6010       1.1    jruoho     Method (\C022, 0)
   6011       1.1    jruoho     {   //  \C022 control method
   6012       1.1    jruoho         Acquire (\C01F, 0xFFFF)
   6013       1.1    jruoho         If (LEqual (\C021, 0))
   6014       1.1    jruoho         {
   6015       1.1    jruoho             Store (C019, Local0)
   6016       1.1    jruoho             And (Local0, 0xFFFEFFFE, Local0)
   6017       1.1    jruoho             Store (Local0, C019)
   6018       1.1    jruoho             Increment (\C021)
   6019       1.1    jruoho         }
   6020       1.1    jruoho         Release (\C01F)
   6021       1.1    jruoho     }   //  \C022 control method
   6022       1.1    jruoho 
   6023       1.1    jruoho     Scope (\_SB.C005.C013)
   6024       1.1    jruoho     {   //  Scope \_SB.C005.C013
   6025       1.1    jruoho         Device (C058)
   6026       1.1    jruoho         {   //  Device C058
   6027       1.1    jruoho             Name (_HID, "*PNP0A06")
   6028       1.1    jruoho 
   6029       1.1    jruoho             OperationRegion (C059, SystemIO, 0xE0, 2)
   6030       1.1    jruoho             Field (C059, ByteAcc, NoLock, Preserve)
   6031       1.1    jruoho             {   //  Field overlaying C059
   6032       1.1    jruoho                 C05A,   8,
   6033       1.1    jruoho                 C05B,   8
   6034       1.1    jruoho             }   //  Field overlaying C059
   6035       1.1    jruoho 
   6036       1.1    jruoho             OperationRegion (C05C, SystemIO, 0xE2, 2)
   6037       1.1    jruoho             Field (C05C, ByteAcc, NoLock, Preserve)
   6038       1.1    jruoho             {   //  Field overlaying C05C
   6039       1.1    jruoho                 C05D,   8,
   6040       1.1    jruoho                 C05E,   8
   6041       1.1    jruoho             }   //  Field overlaying C05C
   6042       1.1    jruoho             IndexField (C05D, C05E, ByteAcc, NoLock, Preserve)
   6043       1.1    jruoho             {   //  IndexField overlaying C05D/C05E
   6044       1.1    jruoho                 ,       0x410,  //  skip
   6045       1.1    jruoho                 C05F,   8,
   6046       1.1    jruoho                 C060,   8,
   6047       1.1    jruoho                 C061,   8,
   6048       1.1    jruoho                 C062,   8,
   6049       1.1    jruoho                 C063,   8,
   6050       1.1    jruoho                 C064,   8,
   6051       1.1    jruoho                 C065,   8,
   6052       1.1    jruoho                 C066,   8,
   6053       1.1    jruoho                 C067,   8,
   6054       1.1    jruoho                 C068,   8,
   6055       1.1    jruoho                 C069,   8,
   6056       1.1    jruoho                 C06A,   8,
   6057       1.1    jruoho                 C06B,   8,
   6058       1.1    jruoho                 C06C,   8,
   6059       1.1    jruoho                 C06D,   8,
   6060       1.1    jruoho                 C06E,   8,
   6061       1.1    jruoho                 ,       0x70,       //  skip
   6062       1.1    jruoho                 C06F,   8,
   6063       1.1    jruoho                 C070,   8,
   6064       1.1    jruoho                 C071,   8,
   6065       1.1    jruoho                 C072,   8,
   6066       1.1    jruoho                 C073,   8,
   6067       1.1    jruoho                 C074,   8,
   6068       1.1    jruoho                 C075,   8,
   6069       1.1    jruoho                 C076,   8,
   6070       1.1    jruoho                 C077,   8,
   6071       1.1    jruoho                 C078,   8,
   6072       1.1    jruoho                 C079,   8,
   6073       1.1    jruoho                 C07A,   8,
   6074       1.1    jruoho                 C07B,   8,
   6075       1.1    jruoho                 C07C,   8,
   6076       1.1    jruoho                 C07D,   8,
   6077       1.1    jruoho                 C07E,   8
   6078       1.1    jruoho             }   //  IndexField overlaying C05D/C05E
   6079       1.1    jruoho 
   6080       1.1    jruoho             OperationRegion (C07F, SystemIO, 0xE4, 2)
   6081       1.1    jruoho             Field (C07F, ByteAcc, NoLock, Preserve)
   6082       1.1    jruoho             {   //  Field overlaying C07F
   6083       1.1    jruoho                 C080,   8,
   6084       1.1    jruoho                 C081,   8
   6085       1.1    jruoho             }   //  Field overlaying C07F
   6086       1.1    jruoho 
   6087       1.1    jruoho             OperationRegion (C082, SystemIO, 0xE0, 1)
   6088       1.1    jruoho             Field (C082, ByteAcc, NoLock, Preserve)
   6089       1.1    jruoho             {   //  Field overlaying C082
   6090       1.1    jruoho                 C083,   8
   6091       1.1    jruoho             }   //  Field overlaying C082
   6092       1.1    jruoho 
   6093       1.1    jruoho             OperationRegion (C084, SystemIO, 0xFF, 1)
   6094       1.1    jruoho             Field (C084, ByteAcc, NoLock, Preserve)
   6095       1.1    jruoho             {   //  Field overlaying C084
   6096       1.1    jruoho                 C085,   8
   6097       1.1    jruoho             }   //  Field overlaying C084
   6098       1.1    jruoho 
   6099       1.1    jruoho             OperationRegion (C086, SystemIO, 0xFD, 1)
   6100       1.1    jruoho             Field (C086, ByteAcc, NoLock, Preserve)
   6101       1.1    jruoho             {   //  Field overlaying C086
   6102       1.1    jruoho                 C087,   8
   6103       1.1    jruoho             }   //  Field overlaying C086
   6104       1.1    jruoho 
   6105       1.1    jruoho             Mutex (C088, 0)
   6106       1.1    jruoho             Mutex (C089, 0)
   6107       1.1    jruoho             Mutex (C08A, 0)
   6108       1.1    jruoho             Mutex (C08B, 0)
   6109       1.1    jruoho             Mutex (C08C, 0)
   6110       1.1    jruoho             Mutex (C08D, 0)
   6111       1.1    jruoho 
   6112       1.1    jruoho             Name (C08E, 0xFFFFFFFD)
   6113       1.1    jruoho             Name (C08F, 0)
   6114       1.1    jruoho 
   6115       1.1    jruoho             Method (C0AA, 4)
   6116       1.1    jruoho             {   //  C0AA control method
   6117       1.1    jruoho                 Store (Buffer (4) {}, Local7)
   6118       1.1    jruoho                 CreateByteField (Local7, 0, C0AB)
   6119       1.1    jruoho                 CreateByteField (Local7, 1, C0AC)
   6120       1.1    jruoho                 CreateByteField (Local7, 2, C0AD)
   6121       1.1    jruoho                 CreateByteField (Local7, 3, C0AE)
   6122       1.1    jruoho                 Acquire (^C08B, 0xFFFF)
   6123       1.1    jruoho                 Acquire (\_GL, 0xFFFF)
   6124       1.1    jruoho                 \C022 ()
   6125       1.1    jruoho                 Store (1, \_SB.C005.C013.C058.C06B)
   6126       1.1    jruoho                 While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
   6127       1.1    jruoho                     {   Stall (100) }
   6128       1.1    jruoho                 Store (Arg3, \_SB.C005.C013.C058.C06E)
   6129       1.1    jruoho                 Store (Arg2, \_SB.C005.C013.C058.C06D)
   6130       1.1    jruoho                 Store (Arg1, \_SB.C005.C013.C058.C06C)
   6131       1.1    jruoho                 Store (Arg0, \_SB.C005.C013.C058.C06B)
   6132       1.1    jruoho                 While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
   6133       1.1    jruoho                     {   Stall (100) }
   6134       1.1    jruoho                 Store (\_SB.C005.C013.C058.C06E, C0AB)
   6135       1.1    jruoho                 Store (\_SB.C005.C013.C058.C06D, C0AC)
   6136       1.1    jruoho                 Store (\_SB.C005.C013.C058.C06C, C0AD)
   6137       1.1    jruoho                 Store (\_SB.C005.C013.C058.C06B, C0AE)
   6138       1.1    jruoho                 If (LNot (LEqual (Arg0, 23)))
   6139       1.1    jruoho                 {
   6140       1.1    jruoho                     Store (2, \_SB.C005.C013.C058.C06B)
   6141       1.1    jruoho                     Stall (100)
   6142       1.1    jruoho                 }
   6143       1.1    jruoho                 Release (\_GL)
   6144       1.1    jruoho                 Release (^C08B)
   6145       1.1    jruoho                 Return (Local7)
   6146       1.1    jruoho             }   //  C0AA control method
   6147       1.1    jruoho         }   //  Device C058
   6148       1.1    jruoho     }   //  Scope \_SB.C005.C013
   6149       1.1    jruoho 
   6150       1.1    jruoho     Scope (\_TZ)
   6151       1.1    jruoho     {   //  \_TZ thermal zone scope
   6152       1.1    jruoho         Name (C18B, Package (2)
   6153       1.1    jruoho         {
   6154       1.1    jruoho             Package (2)
   6155       1.1    jruoho             {
   6156       1.1    jruoho                 Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
   6157       1.1    jruoho                 Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
   6158       1.1    jruoho             },
   6159       1.1    jruoho             Package (2)
   6160       1.1    jruoho             {
   6161       1.1    jruoho                 Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
   6162       1.1    jruoho                 Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
   6163       1.1    jruoho             }
   6164       1.1    jruoho         })  //  C18B
   6165       1.1    jruoho 
   6166       1.1    jruoho         Name (C18C, Package (2)
   6167       1.1    jruoho         {
   6168       1.1    jruoho             Package (2)
   6169       1.1    jruoho             {
   6170       1.1    jruoho                 Package (3) {0x64, 0x4B, 0x32},
   6171       1.1    jruoho                 Package (3) {0x64, 0x4B, 0x32}
   6172       1.1    jruoho             }
   6173       1.1    jruoho         })  //  C81C
   6174       1.1    jruoho 
   6175       1.1    jruoho         Name (C18D, 0)
   6176       1.1    jruoho         Name (C18E, 0)
   6177       1.1    jruoho         Name (C18F, 0)
   6178       1.1    jruoho         Name (C190, 0)
   6179       1.1    jruoho         Name (C191, 3)
   6180       1.1    jruoho         Name (C192, 0)
   6181       1.1    jruoho         Name (C193, 1)
   6182       1.1    jruoho         Name (C194, 2)
   6183       1.1    jruoho         Mutex (C195, 0)
   6184       1.1    jruoho         Name (C196, 1)
   6185       1.1    jruoho         Name (C197, 0x0B9C)
   6186       1.1    jruoho         Name (C198, 0x0B9C)
   6187       1.1    jruoho         Name (C199, 0xFFFFFFFD)
   6188       1.1    jruoho         Name (C19A, 0)
   6189       1.1    jruoho 
   6190       1.1    jruoho         Device (C19B)
   6191       1.1    jruoho         {   //  Device C19B
   6192       1.1    jruoho             Name (RSLT, 0)  //  default to zero
   6193       1.1    jruoho 
   6194       1.1    jruoho             Method (XINI)
   6195       1.1    jruoho             {   //  _INI control method (Uses Global Lock -- can't run under AcpiExec)
   6196       1.1    jruoho                 Store (\_SB.C115, C19A)
   6197       1.1    jruoho                 \_TZ.C19C._SCP (0)
   6198       1.1    jruoho                 Subtract (0x0EB2, 0x0AAC, Local1)   //  Local1 = AACh - EB2h
   6199       1.1    jruoho                 Divide (Local1, 10, Local0, Local2) //  Local0 = Local1 / 10
   6200       1.1    jruoho                                                                 //  Local2 = Local1 % 10
   6201       1.1    jruoho                 \_SB.C005.C013.C058.C0AA (14, Local2, 0, 0)
   6202       1.1    jruoho                 Store
   6203       1.1    jruoho                     (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 0, )), C18D)
   6204       1.1    jruoho                 Store
   6205       1.1    jruoho                     (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 1, )), C18E)
   6206       1.1    jruoho                 Store
   6207       1.1    jruoho                     (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 2, )), C18F)
   6208       1.1    jruoho 
   6209       1.1    jruoho                 Store (1, RSLT) //  set RSLT to 1 if _INI control method completes
   6210       1.1    jruoho             }   //  _INI control method
   6211       1.1    jruoho 
   6212       1.1    jruoho             //  PowerResource (C19D) {...}
   6213       1.1    jruoho         }   //  Device C19B
   6214       1.1    jruoho 
   6215       1.1    jruoho         ThermalZone (C19C)
   6216       1.1    jruoho         {
   6217       1.1    jruoho             Method (_SCP, 1)
   6218       1.1    jruoho             {   //  _SCP control method
   6219       1.1    jruoho                 Store (Arg0, Local0)
   6220       1.1    jruoho                 If (LEqual (Local0, 0))
   6221       1.1    jruoho                 {
   6222       1.1    jruoho                     Store (0, \_TZ.C192)
   6223       1.1    jruoho                     Store (1, \_TZ.C193)
   6224       1.1    jruoho                     Store (2, \_TZ.C194)
   6225       1.1    jruoho                     Store (3, \_TZ.C191)
   6226       1.1    jruoho                 }
   6227       1.1    jruoho                 Else
   6228       1.1    jruoho                 {
   6229       1.1    jruoho                     Store (0, \_TZ.C191)
   6230       1.1    jruoho                     Store (1, \_TZ.C192)
   6231       1.1    jruoho                     Store (2, \_TZ.C193)
   6232       1.1    jruoho                     Store (3, \_TZ.C194)
   6233       1.1    jruoho                 }
   6234       1.1    jruoho             }   //  _SCP control method
   6235       1.1    jruoho         }   //  ThermalZone C19C
   6236       1.1    jruoho     }   //  \_TZ thermal zone scope
   6237       1.1    jruoho 
   6238       1.1    jruoho 
   6239       1.1    jruoho //
   6240       1.1    jruoho // test DwrdFld.asl
   6241       1.1    jruoho //
   6242       1.1    jruoho     Name (BUFR, buffer(10) {0,0,0,0,0,0,0,0,0,0} )
   6243       1.1    jruoho 
   6244       1.1    jruoho     Device (DWDF)
   6245       1.1    jruoho     {
   6246       1.1    jruoho         Method (TEST)
   6247       1.1    jruoho         {
   6248       1.1    jruoho             Store ("++++++++ DwrdFld Test", Debug)
   6249       1.1    jruoho 
   6250       1.1    jruoho             CreateByteField (BUFR, 0, BYTE)
   6251       1.1    jruoho             Store (0xAA, BYTE)
   6252       1.1    jruoho 
   6253       1.1    jruoho             CreateWordField (BUFR, 1, WORD)
   6254       1.1    jruoho             Store (0xBBCC, WORD)
   6255       1.1    jruoho 
   6256       1.1    jruoho             CreateDWordField (BUFR, 3, DWRD)
   6257       1.1    jruoho             Store (0xDDEEFF00, DWRD)
   6258       1.1    jruoho 
   6259       1.1    jruoho             CreateByteField (BUFR, 7, BYT2)
   6260       1.1    jruoho             Store (0x11, BYT2)
   6261       1.1    jruoho 
   6262       1.1    jruoho             CreateWordField (BUFR, 8, WRD2)
   6263       1.1    jruoho             Store (0x2233, WRD2)
   6264       1.1    jruoho 
   6265       1.1    jruoho             Return (0)
   6266       1.1    jruoho 
   6267       1.1    jruoho         }   //  End Method TEST
   6268       1.1    jruoho     }   //  Device DWDF
   6269       1.1    jruoho 
   6270       1.1    jruoho     //
   6271       1.1    jruoho     // test DivAddx.asl
   6272       1.1    jruoho     //
   6273       1.1    jruoho     Name (B1LO, 0xAA)
   6274       1.1    jruoho     Name (B1HI, 0xBB)
   6275       1.1    jruoho 
   6276       1.1    jruoho     Method (MKW_, 2)
   6277       1.1    jruoho     {   //  This control method will take two bytes and make them into a WORD
   6278       1.1    jruoho 
   6279       1.1    jruoho         Multiply (B1HI, 256, Local0)    //  Make high byte.....high
   6280       1.1    jruoho         Or (Local0, B1LO, Local0)       //  OR in the low byte
   6281       1.1    jruoho         Return (Local0)                 //  Return the WORD
   6282       1.1    jruoho 
   6283       1.1    jruoho     }   //  MKW_
   6284       1.1    jruoho 
   6285       1.1    jruoho     Device (DVAX)
   6286       1.1    jruoho     {
   6287       1.1    jruoho         Method (TEST)
   6288       1.1    jruoho         {
   6289       1.1    jruoho 
   6290       1.1    jruoho             Store ("++++++++ DivAddx Test", Debug)
   6291       1.1    jruoho 
   6292       1.1    jruoho             Store (25, B1LO)
   6293       1.1    jruoho             Store (0, B1HI)
   6294       1.1    jruoho 
   6295       1.1    jruoho             //  We'll multiply 25 * 3 to get 75, add 99 to it then divide
   6296   1.1.1.9  christos             //  by 100. We expect to get 74 for the remainder and 1 for
   6297       1.1    jruoho             //  the quotient.
   6298       1.1    jruoho             Divide(
   6299       1.1    jruoho                 Add (Multiply (3, MKW_ (B1LO, B1HI)), 0x63),
   6300       1.1    jruoho                             //  Dividend,
   6301       1.1    jruoho                 100,        //  Divisor
   6302       1.1    jruoho                 Local4,     //  Remainder
   6303       1.1    jruoho                 Local2)     //  Quotient
   6304       1.1    jruoho 
   6305       1.1    jruoho             If (LAnd (LEqual (74, Local4), LEqual (1, Local2)))
   6306       1.1    jruoho             {   //  Indicate Pass
   6307       1.1    jruoho                 Store (0x00, Local0)
   6308       1.1    jruoho             }
   6309       1.1    jruoho 
   6310       1.1    jruoho             Else
   6311       1.1    jruoho             {   //  Indicate Fail
   6312       1.1    jruoho                 Store (0x01, Local0)
   6313       1.1    jruoho             }
   6314       1.1    jruoho 
   6315       1.1    jruoho             Return (Local0)
   6316       1.1    jruoho         }   //  End Method TEST
   6317       1.1    jruoho     }   //  Device DVAX
   6318       1.1    jruoho 
   6319       1.1    jruoho //
   6320       1.1    jruoho // test IndexFld.asl (IndexOp6.asl)
   6321       1.1    jruoho //
   6322       1.1    jruoho //  IndexFld test
   6323       1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   6324       1.1    jruoho //      Tests index field element AccessAs macro.
   6325       1.1    jruoho //      Also tests name resolution of index field elements with same names
   6326       1.1    jruoho //      but different namespace scopes.
   6327       1.1    jruoho //
   6328       1.1    jruoho     Device (IDX6)
   6329       1.1    jruoho     {   //  Test device name
   6330       1.1    jruoho 
   6331       1.1    jruoho         OperationRegion (SIO, SystemIO, 0x100, 2)
   6332       1.1    jruoho         Field (SIO, ByteAcc, NoLock, Preserve)
   6333       1.1    jruoho         {
   6334       1.1    jruoho             INDX,   8,
   6335       1.1    jruoho             DATA,   8
   6336       1.1    jruoho         }
   6337       1.1    jruoho         IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
   6338       1.1    jruoho         {
   6339       1.1    jruoho             AccessAs (ByteAcc, 0),
   6340       1.1    jruoho             IFE0,   8,
   6341       1.1    jruoho             IFE1,   8,
   6342       1.1    jruoho             IFE2,   8,
   6343       1.1    jruoho             IFE3,   8,
   6344       1.1    jruoho             IFE4,   8,
   6345       1.1    jruoho             IFE5,   8,
   6346       1.1    jruoho             IFE6,   8,
   6347       1.1    jruoho             IFE7,   8,
   6348       1.1    jruoho             IFE8,   8,
   6349       1.1    jruoho             IFE9,   8,
   6350       1.1    jruoho         }
   6351       1.1    jruoho 
   6352       1.1    jruoho         Device (TST_)
   6353       1.1    jruoho         {   //  TST_:   provides a different namespace scope for IFE0 and IFE1
   6354       1.1    jruoho             OperationRegion (SIO2, SystemIO, 0x100, 2)
   6355       1.1    jruoho             Field (SIO2, ByteAcc, NoLock, Preserve)
   6356       1.1    jruoho             {
   6357       1.1    jruoho                 IND2,   8,
   6358       1.1    jruoho                 DAT2,   8
   6359       1.1    jruoho             }
   6360       1.1    jruoho             IndexField (IND2, DAT2, AnyAcc, NoLock, WriteAsOnes)
   6361       1.1    jruoho             {
   6362       1.1    jruoho                 IFE0,   8,  //  duplicate IndexField name with different scope
   6363       1.1    jruoho                 IFE1,   8
   6364       1.1    jruoho             }
   6365       1.1    jruoho         }   //  TST_:   provides a different namespace scope for IFE0 and IFE1
   6366       1.1    jruoho 
   6367       1.1    jruoho         Method (TEST)
   6368       1.1    jruoho         {
   6369       1.1    jruoho             Store ("++++++++ IndexOp6 Test", Debug)
   6370       1.1    jruoho 
   6371       1.1    jruoho             Store (IFE0, Local0)
   6372       1.1    jruoho             Store (IFE1, Local1)
   6373       1.1    jruoho             Store (IFE2, Local2)
   6374       1.1    jruoho 
   6375       1.1    jruoho             //  validate name resolution of IndexFields with different scopes
   6376       1.1    jruoho             Store (\IDX6.IFE0, Local3)
   6377       1.1    jruoho             Store (\IDX6.IFE1, Local4)
   6378       1.1    jruoho             //  verioading of namespace can resolve following names
   6379       1.1    jruoho             Store (\IDX6.TST_.IFE0, Local5)
   6380       1.1    jruoho             Store (\IDX6.TST_.IFE1, Local6)
   6381       1.1    jruoho 
   6382       1.1    jruoho             Return (0)
   6383       1.1    jruoho         }   //  TEST
   6384       1.1    jruoho     }   //  IDX6
   6385       1.1    jruoho 
   6386       1.1    jruoho //
   6387       1.1    jruoho // test IndexOp5.asl
   6388       1.1    jruoho //
   6389       1.1    jruoho //  IndexOp5 test
   6390       1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   6391       1.1    jruoho //      Tests copying string into buffer then performing IndexOp on result.
   6392       1.1    jruoho //
   6393       1.1    jruoho     Device (IDX5)
   6394       1.1    jruoho     {   //  Test device name
   6395       1.1    jruoho 
   6396       1.1    jruoho         Name (OSFL, 0)  //  0 == Windows 98, 1 == Windows NT
   6397       1.1    jruoho 
   6398       1.1    jruoho         //  MCTH is a control method to compare two strings. It returns
   6399       1.1    jruoho         //  zero if the strings mismatch, or 1 if the strings match.
   6400       1.1    jruoho         //  This exercises the test case of copying a string into a buffer
   6401       1.1    jruoho         //  and performing an IndexOp on the resulting buffer.
   6402   1.1.1.3  christos         Method (MCTH, 2, Serialized)    //  Control Method to compare two strings
   6403       1.1    jruoho         {   //  MCTH:   Control Method to compare two strings
   6404       1.1    jruoho             //  Arg0:       first string to compare
   6405       1.1    jruoho             //  Arg1:       second string to compare
   6406       1.1    jruoho             //  Return: zero if strings mismatch, 1 if strings match
   6407       1.1    jruoho 
   6408       1.1    jruoho             //  check if first string's length is less than second string's length
   6409       1.1    jruoho             If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
   6410       1.1    jruoho                 {   Return (0)  }
   6411       1.1    jruoho 
   6412       1.1    jruoho             //  increment length to include NULL termination character
   6413       1.1    jruoho             Add (SizeOf (Arg0), 1, Local0)  //  Local0 = strlen(Arg0) + 1
   6414       1.1    jruoho 
   6415       1.1    jruoho             //  create two buffers of size Local0 [strlen(Arg0)+1]
   6416       1.1    jruoho             Name (BUF0, Buffer (Local0) {})
   6417       1.1    jruoho             Name (BUF1, Buffer (Local0) {})
   6418       1.1    jruoho 
   6419       1.1    jruoho             //  copy strings into buffers
   6420       1.1    jruoho             Store (Arg0, BUF0)
   6421       1.1    jruoho             Store (Arg1, BUF1)
   6422       1.1    jruoho 
   6423       1.1    jruoho             //  validate BUF0 and BUF1 are still buffers
   6424       1.1    jruoho             Store (ObjectType (BUF0), Local1)
   6425       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer is type 3
   6426       1.1    jruoho                 {   Return (20) }
   6427       1.1    jruoho             Store (ObjectType (BUF1), Local1)
   6428       1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer is type 3
   6429       1.1    jruoho                 {   Return (21) }
   6430       1.1    jruoho 
   6431       1.1    jruoho             // Decrement because the Index base below is zero based
   6432       1.1    jruoho             //  while Local0 length is one based.
   6433       1.1    jruoho             Decrement (Local0)
   6434       1.1    jruoho 
   6435       1.1    jruoho             While (Local0)
   6436       1.1    jruoho             {   //  loop through all BUF0 buffer elements
   6437       1.1    jruoho                 Decrement (Local0)
   6438       1.1    jruoho 
   6439       1.1    jruoho                 //  check if BUF0[n] == BUF1[n]
   6440       1.1    jruoho                 If (LEqual (DerefOf (Index (BUF0, Local0, )),
   6441       1.1    jruoho                         DerefOf (Index (BUF1, Local0, ))))
   6442       1.1    jruoho                     {   }   //  this is how the code was really implemented
   6443       1.1    jruoho                 Else
   6444       1.1    jruoho                     {   Return (Zero)   }
   6445       1.1    jruoho             }   //  loop through all BUF0 buffer elements
   6446       1.1    jruoho 
   6447       1.1    jruoho             Return (One)    //  strings / buffers match
   6448       1.1    jruoho         }   //  MCTH:   Control Method to compare two strings
   6449       1.1    jruoho 
   6450       1.1    jruoho 
   6451       1.1    jruoho         Method (TEST)
   6452       1.1    jruoho         {
   6453       1.1    jruoho             Store ("++++++++ IndexOp5 Test", Debug)
   6454       1.1    jruoho 
   6455       1.1    jruoho             If (MCTH (\_OS, "Microsoft Windows NT"))
   6456       1.1    jruoho                 {   Store (1, OSFL) }
   6457       1.1    jruoho 
   6458       1.1    jruoho             If (LNotEqual (OSFL, 1))
   6459       1.1    jruoho                 {   Return (11) }
   6460       1.1    jruoho 
   6461       1.1    jruoho             Return (0)
   6462       1.1    jruoho         }   //  TEST
   6463       1.1    jruoho     }   //  IDX5
   6464       1.1    jruoho 
   6465       1.1    jruoho //
   6466       1.1    jruoho // test IndexOp.asl
   6467       1.1    jruoho //
   6468       1.1    jruoho     Scope (\_SB)    //  System Bus
   6469       1.1    jruoho     {   //  _SB system bus
   6470       1.1    jruoho 
   6471       1.1    jruoho         Method (C097)
   6472       1.1    jruoho             {   Return (1)  }
   6473       1.1    jruoho 
   6474       1.1    jruoho         Device (PCI2)
   6475       1.1    jruoho         {   //  Root PCI Bus
   6476       1.1    jruoho             Name (_HID, EISAID("PNP0A03"))
   6477       1.1    jruoho             Name (_ADR, 0x00000000)
   6478       1.1    jruoho             Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
   6479       1.1    jruoho             Method (_STA)   {Return (0x0F)}
   6480       1.1    jruoho 
   6481       1.1    jruoho             Device (ISA)
   6482       1.1    jruoho             {   //  ISA bridge
   6483       1.1    jruoho                 Name (_ADR, 0x00030000)     //  ISA bus ID
   6484       1.1    jruoho 
   6485       1.1    jruoho                 Device (EC0)
   6486       1.1    jruoho                 {   //  Embedded Controller
   6487       1.1    jruoho                     Name (_GPE, 0)              //  EC use GPE0
   6488       1.1    jruoho                     Name (_ADR, 0x0030000)  //  PCI address
   6489       1.1    jruoho 
   6490       1.1    jruoho                     Method (_STA,0)         //  EC Status
   6491       1.1    jruoho                         {   Return(0xF) }       //  EC is functioning
   6492       1.1    jruoho 
   6493       1.1    jruoho                     Name (_CRS, ResourceTemplate()
   6494       1.1    jruoho                         {
   6495       1.1    jruoho                             IO (Decode16, 0x62, 0x62, 1, 1)
   6496       1.1    jruoho                             IO (Decode16, 0x66, 0x66, 1, 1)
   6497       1.1    jruoho                         }
   6498       1.1    jruoho                     )
   6499       1.1    jruoho 
   6500       1.1    jruoho                 //  create EC's region and field
   6501       1.1    jruoho                     OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   6502       1.1    jruoho                     Field (RAM, AnyAcc, NoLock, Preserve)
   6503       1.1    jruoho                     {
   6504       1.1    jruoho                         //  AC information
   6505       1.1    jruoho                         ADP,    1,      //  AC Adapter 1:On-line, 0:Off-line
   6506       1.1    jruoho                         AFLT,   1,      //  AC Adapter Fault  1:Fault  0:Normal
   6507       1.1    jruoho                         BAT0,   1,      //  BAT0  1:present, 0:not present
   6508       1.1    jruoho                         ,       1,      //  reserved
   6509       1.1    jruoho                         ,       28, //  filler to force DWORD alignment
   6510       1.1    jruoho 
   6511       1.1    jruoho                         //  CMBatt information
   6512       1.1    jruoho                         BPU0,   32, //  Power Unit
   6513       1.1    jruoho                         BDC0,   32, //  Designed Capacity
   6514       1.1    jruoho                         BFC0,   32, //  Last Full Charge Capacity
   6515       1.1    jruoho                         BTC0,   32, //  Battery Technology
   6516       1.1    jruoho                         BDV0,   32, //  Design Voltage
   6517       1.1    jruoho                         BST0,   32, //  Battery State
   6518       1.1    jruoho                         BPR0,   32, //  Battery Present Rate
   6519       1.1    jruoho                                         //  (Designed Capacity)x(%)/{(h)x100}
   6520       1.1    jruoho                         BRC0,   32, //  Battery Remaining Capacity
   6521       1.1    jruoho                                         //  (Designed Capacity)(%)^100
   6522       1.1    jruoho                         BPV0,   32, //  Battery Present Voltage
   6523       1.1    jruoho                         BTP0,   32, //  Trip Point
   6524       1.1    jruoho                         BCW0,   32, //  Design capacity of Warning
   6525       1.1    jruoho                         BCL0,   32, //  Design capacity of Low
   6526       1.1    jruoho                         BCG0,   32, //  capacity granularity 1
   6527       1.1    jruoho                         BG20,   32, //  capacity granularity 2
   6528       1.1    jruoho                         BMO0,   32, //  Battery model number field
   6529       1.1    jruoho                         BIF0,   32, //  OEM Information(00h)
   6530       1.1    jruoho                         BSN0,   32, //  Battery Serial Number
   6531       1.1    jruoho                         BTY0,   32, //  Battery Type (e.g., "Li-Ion")
   6532       1.1    jruoho                         BTY1,   32      //  Battery Type (e.g., "Li-Ion")
   6533       1.1    jruoho                     }   //  Field
   6534       1.1    jruoho                 }   //  EC0: Embedded Controller
   6535       1.1    jruoho             }   //  ISA bridge
   6536       1.1    jruoho         }   //  PCI2 Root PCI Bus
   6537       1.1    jruoho 
   6538       1.1    jruoho         Device (IDX0)
   6539       1.1    jruoho         {   //  Test device name
   6540       1.1    jruoho             Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
   6541       1.1    jruoho             Name (_PCL, Package() {\_SB})
   6542       1.1    jruoho             Method (_STA)
   6543       1.1    jruoho             {
   6544       1.1    jruoho                 //  _STA bits 0-3 indicate existence of battery slot
   6545       1.1    jruoho                 //  _STA bit 4 indicates battery (not) present
   6546       1.1    jruoho                 If (\_SB.PCI2.ISA.EC0.BAT0)
   6547       1.1    jruoho                     {   Return (0x1F)   }   //  Battery present
   6548       1.1    jruoho                 else
   6549       1.1    jruoho                     {   Return (0x0F)   }   //  Battery not present
   6550       1.1    jruoho             }   //  _STA
   6551       1.1    jruoho 
   6552   1.1.1.3  christos             Method (_BIF,, Serialized)
   6553       1.1    jruoho             {
   6554       1.1    jruoho                 Name (BUFR, Package(13) {})
   6555       1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BPU0, Index (BUFR,0))  //  Power Unit
   6556       1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BDC0, Index (BUFR,1))  //  Designed Capacity
   6557       1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BFC0, Index (BUFR,2))  //  Last Full Charge Capa.
   6558       1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BTC0, Index (BUFR,3))  //  Battery Technology
   6559       1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BDV0, Index (BUFR,4))  //  Designed Voltage
   6560       1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BCW0, Index (BUFR,5))  //  Designed warning level
   6561       1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BCL0, Index (BUFR,6))  //  Designed Low level
   6562       1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BCG0, Index (BUFR,7))  //  Capacity granularity 1
   6563       1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BG20, Index (BUFR,8))  //  Capacity granularity 2
   6564       1.1    jruoho 
   6565       1.1    jruoho                 Store ("", Index (BUFR,9))                              //  Model Number
   6566       1.1    jruoho 
   6567       1.1    jruoho                 Store ("", Index (BUFR,10))                         //  Serial Number
   6568       1.1    jruoho 
   6569       1.1    jruoho                 Store ("LiOn", Index (BUFR,11))                     //  Battery Type
   6570       1.1    jruoho 
   6571       1.1    jruoho                 Store ("Chicony", Index (BUFR,12))                  //  OEM Information
   6572       1.1    jruoho 
   6573       1.1    jruoho                 Return (BUFR)
   6574       1.1    jruoho             }   //  _BIF
   6575       1.1    jruoho 
   6576   1.1.1.3  christos             Method (_BST,, Serialized)
   6577       1.1    jruoho             {
   6578       1.1    jruoho                 Name (BUFR, Package(4) {1, 0x100, 0x76543210, 0x180})
   6579       1.1    jruoho                 Return (BUFR)
   6580       1.1    jruoho             }   //  _BST
   6581       1.1    jruoho 
   6582       1.1    jruoho             Method (_BTP,1)
   6583       1.1    jruoho             {
   6584       1.1    jruoho                 Store (arg0, \_SB.PCI2.ISA.EC0.BTP0)    //  Set Battery Trip point
   6585       1.1    jruoho             }
   6586       1.1    jruoho 
   6587   1.1.1.3  christos             Method (TEST,, Serialized)
   6588       1.1    jruoho             {
   6589       1.1    jruoho 
   6590       1.1    jruoho                 Store ("++++++++ IndexOp Test", Debug)
   6591       1.1    jruoho 
   6592       1.1    jruoho                 //  test storing into uninitialized package elements
   6593  1.1.1.10  christos                 Name (PBUF, Package(4) {})  //  leave uninitialized
   6594       1.1    jruoho                 Store (0x01234567, Index (PBUF,0))
   6595       1.1    jruoho                 Store (0x89ABCDEF, Index (PBUF,1))
   6596       1.1    jruoho                 Store (0xFEDCBA98, Index (PBUF,2))
   6597       1.1    jruoho                 Store (0x76543210, Index (PBUF,3))
   6598       1.1    jruoho 
   6599       1.1    jruoho                 //  verify values stored into uninitialized package elements
   6600       1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,0)), 0x01234567))
   6601       1.1    jruoho                     {   Return (0x10)   }
   6602       1.1    jruoho 
   6603       1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,1)), 0x89ABCDEF))
   6604       1.1    jruoho                     {   Return (0x11)   }
   6605       1.1    jruoho 
   6606       1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,2)), 0xFEDCBA98))
   6607       1.1    jruoho                     {   Return (0x12)   }
   6608       1.1    jruoho 
   6609       1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,3)), 0x76543210))
   6610       1.1    jruoho                     {   Return (0x13)   }
   6611       1.1    jruoho 
   6612       1.1    jruoho 
   6613       1.1    jruoho                 //  store _BIF package return value into Local0
   6614       1.1    jruoho                 Store (_BIF, Local0)
   6615       1.1    jruoho 
   6616       1.1    jruoho                 //  save Local0 object type value into Local1
   6617       1.1    jruoho                 Store (ObjectType (Local0), Local1)
   6618       1.1    jruoho 
   6619       1.1    jruoho                 //  validate Local0 is a Package
   6620       1.1    jruoho                 If (LNotEqual (Local1, 4))  //  Package type is 4
   6621       1.1    jruoho                     {   Return (0x21)   }   //  failure
   6622       1.1    jruoho 
   6623       1.1    jruoho 
   6624       1.1    jruoho                 //  test storing into buffer field elements
   6625       1.1    jruoho                 Name (BUFR, Buffer(16)
   6626       1.1    jruoho                     {   //  initial values
   6627       1.1    jruoho                         00, 00, 00, 00, 00, 00, 00, 00,
   6628       1.1    jruoho                         00, 00, 00, 00, 00, 00, 00, 00,
   6629       1.1    jruoho                     }
   6630       1.1    jruoho                 )   //  BUFR
   6631       1.1    jruoho                 //  test storing into buffer field elements
   6632       1.1    jruoho                 Store (0x01234567, Index (BUFR,0))  //  should only store 0x67
   6633       1.1    jruoho                 Store (0x89ABCDEF, Index (BUFR,4))  //  should only store 0xEF
   6634       1.1    jruoho                 Store (0xFEDCBA98, Index (BUFR,8))  //  should only store 0x98
   6635       1.1    jruoho                 Store (0x76543210, Index (BUFR,12)) //  should only store 0x10
   6636       1.1    jruoho 
   6637       1.1    jruoho                 //  verify storing into buffer field elements
   6638       1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,0)), 0x67))
   6639       1.1    jruoho                     {   Return (0x30)   }
   6640       1.1    jruoho 
   6641       1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,1)), 0))
   6642       1.1    jruoho                     {   Return (0x31)   }
   6643       1.1    jruoho 
   6644       1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,4)), 0xEF))
   6645       1.1    jruoho                     {   Return (0x34)   }
   6646       1.1    jruoho 
   6647       1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,8)), 0x98))
   6648       1.1    jruoho                     {   Return (0x38)   }
   6649       1.1    jruoho 
   6650       1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,12)), 0x10))
   6651       1.1    jruoho                     {   Return (0x3C)   }
   6652       1.1    jruoho 
   6653       1.1    jruoho 
   6654       1.1    jruoho                 Return (0)  //  pass
   6655       1.1    jruoho             }   //  TEST
   6656       1.1    jruoho         }   //  IDX0
   6657       1.1    jruoho     }   //  _SB system bus
   6658       1.1    jruoho 
   6659       1.1    jruoho //
   6660       1.1    jruoho // test BitIndex.asl
   6661       1.1    jruoho //
   6662       1.1    jruoho //  BitIndex test
   6663       1.1    jruoho //  This is a test case for accessing fields defined as single bits in
   6664   1.1.1.9  christos //  memory. This is done by creating two index fields that overlay the
   6665   1.1.1.9  christos //  same DWORD in memory. One field accesses the DWORD as a DWORD, the
   6666       1.1    jruoho //  other accesses individual bits of the same DWORD field in memory.
   6667       1.1    jruoho //
   6668       1.1    jruoho     Scope (\_SB)    //  System Bus
   6669       1.1    jruoho     {   //  _SB system bus
   6670       1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x800000, 0x100)
   6671       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   6672       1.1    jruoho         {   //  Any access
   6673       1.1    jruoho             TREE,   3,
   6674       1.1    jruoho             WRD0,   16,
   6675       1.1    jruoho             WRD1,   16,
   6676       1.1    jruoho             WRD2,   16,
   6677       1.1    jruoho             WRD3,   16,
   6678       1.1    jruoho             WRD4,   16,
   6679       1.1    jruoho             DWRD,   32, //  DWORD field
   6680       1.1    jruoho         }
   6681       1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   6682       1.1    jruoho         {   //  Any access
   6683       1.1    jruoho             THRE,   3,
   6684       1.1    jruoho             WD00,   16,
   6685       1.1    jruoho             WD01,   16,
   6686       1.1    jruoho             WD02,   16,
   6687       1.1    jruoho             WD03,   16,
   6688       1.1    jruoho             WD04,   16,
   6689       1.1    jruoho             BYT0,   8,  //  Start off with a BYTE
   6690       1.1    jruoho             BIT0,   1,  //  single-bit field
   6691       1.1    jruoho             BIT1,   1,  //  single-bit field
   6692       1.1    jruoho             BIT2,   1,  //  single-bit field
   6693       1.1    jruoho             BIT3,   1,  //  single-bit field
   6694       1.1    jruoho             BIT4,   1,  //  single-bit field
   6695       1.1    jruoho             BIT5,   1,  //  single-bit field
   6696       1.1    jruoho             BIT6,   1,  //  single-bit field
   6697       1.1    jruoho             BIT7,   1,  //  single-bit field
   6698       1.1    jruoho             BIT8,   1,  //  single-bit field
   6699       1.1    jruoho             BIT9,   1,  //  single-bit field
   6700       1.1    jruoho             BITA,   1,  //  single-bit field
   6701       1.1    jruoho             BITB,   1,  //  single-bit field
   6702       1.1    jruoho             BITC,   1,  //  single-bit field
   6703       1.1    jruoho             BITD,   1,  //  single-bit field
   6704       1.1    jruoho             BITE,   1,  //  single-bit field
   6705       1.1    jruoho             BITF,   1,  //  single-bit field
   6706       1.1    jruoho             BYTZ,   8,  //  End with a BYTE for a total of 32 bits
   6707       1.1    jruoho         }
   6708       1.1    jruoho 
   6709       1.1    jruoho         Device (BITI)
   6710       1.1    jruoho         {   //  Test device name
   6711       1.1    jruoho 
   6712       1.1    jruoho             Method (MBIT)   //  Test single bit memory accesses
   6713       1.1    jruoho             {
   6714       1.1    jruoho 
   6715       1.1    jruoho                 If (LNotEqual (DWRD, 0x00))
   6716       1.1    jruoho                 {
   6717       1.1    jruoho                     Store (0xFF00, Local0)
   6718       1.1    jruoho                 }
   6719       1.1    jruoho                 Else
   6720       1.1    jruoho                 {
   6721       1.1    jruoho                     //  Prime Local0 with 0...assume passing condition
   6722       1.1    jruoho                     Store (0, Local0)
   6723       1.1    jruoho 
   6724       1.1    jruoho                     //  set memory contents to known values using DWORD field
   6725       1.1    jruoho                     Store (0x5A5A5A5A, DWRD)
   6726       1.1    jruoho 
   6727       1.1    jruoho                     //  Given the value programmed into DWRD, only the odd bits
   6728       1.1    jruoho                     //  of the lower nibble should be set. BIT1, BIT3 should be set.
   6729       1.1    jruoho                     //  BIT0 and BIT2 should be clear
   6730       1.1    jruoho 
   6731       1.1    jruoho                     If (BIT0)
   6732       1.1    jruoho                     {
   6733       1.1    jruoho                         Or (Local0, 0x01, Local0)
   6734       1.1    jruoho                     }
   6735       1.1    jruoho 
   6736       1.1    jruoho                     If (LNot (BIT1))
   6737       1.1    jruoho                     {
   6738       1.1    jruoho                         Or (Local0, 0x02, Local0)
   6739       1.1    jruoho                     }
   6740       1.1    jruoho 
   6741       1.1    jruoho                     If (BIT2)
   6742       1.1    jruoho                     {
   6743       1.1    jruoho                         Or (Local0, 0x04, Local0)
   6744       1.1    jruoho                     }
   6745       1.1    jruoho 
   6746       1.1    jruoho                     If (LNot (BIT3))
   6747       1.1    jruoho                     {
   6748       1.1    jruoho                         Or (Local0, 0x08, Local0)
   6749       1.1    jruoho                     }
   6750       1.1    jruoho 
   6751   1.1.1.9  christos                     //  Now check the upper nibble. Only the "even" bits should
   6752   1.1.1.9  christos                     //  be set. BIT4, BIT6. BIT5 and BIT7 should be clear.
   6753       1.1    jruoho                     If (LNot (BIT4))
   6754       1.1    jruoho                     {
   6755       1.1    jruoho                         Or (Local0, 0x10, Local0)
   6756       1.1    jruoho                     }
   6757       1.1    jruoho 
   6758       1.1    jruoho                     If (BIT5)
   6759       1.1    jruoho                     {
   6760       1.1    jruoho                         Or (Local0, 0x20, Local0)
   6761       1.1    jruoho                     }
   6762       1.1    jruoho 
   6763       1.1    jruoho                     If (LNot (BIT6))
   6764       1.1    jruoho                     {
   6765       1.1    jruoho                         Or (Local0, 0x40, Local0)
   6766       1.1    jruoho                     }
   6767       1.1    jruoho 
   6768       1.1    jruoho                     If (BIT7)
   6769       1.1    jruoho                     {
   6770       1.1    jruoho                         Or (Local0, 0x80, Local0)
   6771       1.1    jruoho                     }
   6772       1.1    jruoho                 }   //  End Else DWRD zeroed out
   6773       1.1    jruoho 
   6774       1.1    jruoho                 Return (Local0)
   6775       1.1    jruoho             }   //  MBIT:   Test single bit memory accesses
   6776       1.1    jruoho 
   6777       1.1    jruoho             Method (TEST)
   6778       1.1    jruoho             {
   6779       1.1    jruoho 
   6780       1.1    jruoho                 Store ("++++++++ BitIndex Test", Debug)
   6781       1.1    jruoho 
   6782       1.1    jruoho                 //  Zero out DWRD
   6783       1.1    jruoho                 Store (0x00000000, DWRD)
   6784       1.1    jruoho 
   6785       1.1    jruoho                 //  MBIT returns zero if successful
   6786       1.1    jruoho                 //  This may be causing problems -- Return (MBIT)
   6787       1.1    jruoho                 Store (MBIT, Local0)
   6788       1.1    jruoho 
   6789       1.1    jruoho                 Return (Local0)
   6790       1.1    jruoho             }   //  TEST
   6791       1.1    jruoho         }   //  BITI
   6792       1.1    jruoho     }   //  _SB system bus
   6793       1.1    jruoho 
   6794       1.1    jruoho //
   6795       1.1    jruoho // test IndexOp3.asl
   6796       1.1    jruoho //
   6797       1.1    jruoho //  Additional IndexOp test cases to support ACPICMB (control method battery
   6798       1.1    jruoho //  test) on Compaq laptops. Test cases include storing a package into
   6799       1.1    jruoho //  an IndexOp target and validating that changing source and destination
   6800       1.1    jruoho //  package contents are independent of each other.
   6801       1.1    jruoho //
   6802       1.1    jruoho     Scope (\_SB)    //  System Bus
   6803       1.1    jruoho     {   //  _SB system bus
   6804       1.1    jruoho 
   6805       1.1    jruoho         Name (C174, 13)
   6806       1.1    jruoho         Name (C175, 8)
   6807       1.1    jruoho 
   6808       1.1    jruoho         Device (C158)
   6809       1.1    jruoho         {   //  C158:   AC Adapter device
   6810       1.1    jruoho             Name (_HID, "ACPI0003") //  AC Adapter device
   6811       1.1    jruoho             Name (_PCL, Package (1) {\_SB})
   6812       1.1    jruoho 
   6813       1.1    jruoho             Method (_PSR)
   6814       1.1    jruoho             {
   6815       1.1    jruoho                 Acquire (\_GL, 0xFFFF)
   6816       1.1    jruoho                 Release (\_GL)
   6817       1.1    jruoho                 And (Local0, 1, Local0) //  Local0 &= 1
   6818       1.1    jruoho                 Return (Local0)
   6819       1.1    jruoho             }   //  _PSR
   6820       1.1    jruoho         }   //  C158:   AC Adapter device
   6821       1.1    jruoho 
   6822       1.1    jruoho         Name (C176, Package (4) {"Primary", "MultiBay", "DockRight", "DockLeft"})
   6823       1.1    jruoho 
   6824       1.1    jruoho         Name (C177, Package (4) {0x99F5, 0x99F5, 0x995F, 0x995F})
   6825       1.1    jruoho 
   6826       1.1    jruoho         Name (C178, Package (4)
   6827       1.1    jruoho         {
   6828       1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190},
   6829       1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190},
   6830       1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190},
   6831       1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190}
   6832       1.1    jruoho         })  //  C178
   6833       1.1    jruoho 
   6834       1.1    jruoho         Name (C179, Package (4) {0, 0, 0x966B, 0x4190})
   6835       1.1    jruoho 
   6836       1.1    jruoho         Name (C17A, Package (4)
   6837       1.1    jruoho         {
   6838       1.1    jruoho             Package (3) {0, 0, 0},
   6839       1.1    jruoho             Package (3) {0, 0, 0},
   6840       1.1    jruoho             Package (3) {0, 0, 0},
   6841       1.1    jruoho             Package (3) {0, 0, 0}
   6842       1.1    jruoho         })  //  C17A
   6843       1.1    jruoho 
   6844   1.1.1.3  christos         Method (C17B, 1, Serialized)
   6845       1.1    jruoho         {   //  C17B:   _BIF implementation
   6846       1.1    jruoho             Name (C17C, Package (13)
   6847       1.1    jruoho             {   //  C17C:   _BIF control method return package
   6848       1.1    jruoho                 0,                  //  Power Unit (0 ==> mWh and mW)
   6849       1.1    jruoho                 0x99F5,         //  Design Capacity
   6850       1.1    jruoho                 0x99F5,         //  Last Full Charge Capacity
   6851       1.1    jruoho                 1,                  //  Battery Technology (1 ==> rechargeable)
   6852       1.1    jruoho                 0x3840,         //  Design Voltage
   6853       1.1    jruoho                 0x1280,         //  Design Capacity of Warning
   6854       1.1    jruoho                 0x0AC7,         //  Design Capacity of Low
   6855       1.1    jruoho                 1,                  //  Battery Capacity Granularity 1 (Low -- Warning)
   6856       1.1    jruoho                 1,                  //  Battery Capacity Granularity 2 (Warning -- Full)
   6857       1.1    jruoho                 "2891",         //  Model Number (ASCIIZ)
   6858       1.1    jruoho                 "(-Unknown-)",  //  Serial Number (ASCIIZ)
   6859       1.1    jruoho                 "LIon",         //  Battery Type (ASCIIZ)
   6860       1.1    jruoho                 0                   //  OEM Information (ASCIIZ)
   6861       1.1    jruoho             })  //  C17C:   _BIF control method return package
   6862       1.1    jruoho 
   6863       1.1    jruoho             And (Arg0, 7, Local0)                       //  Local0 = Arg0 & 7
   6864       1.1    jruoho 
   6865       1.1    jruoho             ShiftRight (Local0, 1, Local4)          //  Local4 = Local0 >> 1
   6866       1.1    jruoho 
   6867       1.1    jruoho             Store (C179, Index (C178, Local4, ))    //  C178->Local4 = C179
   6868       1.1    jruoho 
   6869       1.1    jruoho             //  verify source and destination packages can be altered independent
   6870       1.1    jruoho             //  of each other (i.e., changing one's contents does NOT change other's
   6871       1.1    jruoho             //  contents)
   6872       1.1    jruoho             Store (0x1234, Index (C179, 2, ))               //  C179[2] = 0x1234
   6873       1.1    jruoho             Store (DerefOf (Index (C179, 2, )), Local2) //  Local2 = C179[2]
   6874       1.1    jruoho             if (LNotEqual (Local2, 0x1234))
   6875       1.1    jruoho                 {   Return (0x1234) }
   6876       1.1    jruoho                                                                         //  Local2 = C178[0,2]
   6877       1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 2, )), Local2)
   6878       1.1    jruoho             if (LNotEqual (Local2, 0x966B))
   6879       1.1    jruoho                 {   Return (0x1234) }
   6880       1.1    jruoho 
   6881       1.1    jruoho             // Restore data to allow iterative execution
   6882       1.1    jruoho             Store (0x966B, Index (C179, 2, ))               //  C179[2] = 0x966B
   6883       1.1    jruoho 
   6884       1.1    jruoho                                                                         //  C178[0,3] = 0x5678
   6885       1.1    jruoho             Store (0x5678, Index (DerefOf (Index (C178, 0, )), 3, ))
   6886       1.1    jruoho                                                                         //  Local2 = C178[0,3]
   6887       1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 3, )), Local2)
   6888       1.1    jruoho             if (LNotEqual (Local2, 0x5678))
   6889       1.1    jruoho                 {   Return (0x5678) }
   6890       1.1    jruoho 
   6891       1.1    jruoho             Store (DerefOf (Index (C179, 3, )), Local2) //  Local2 = C179[3]
   6892       1.1    jruoho             if (LNotEqual (Local2, 0x4190))
   6893       1.1    jruoho                 {   Return (0x5678) }
   6894       1.1    jruoho 
   6895       1.1    jruoho             // Restore data to allow iterative execution
   6896       1.1    jruoho             Store (0x4190, Index (DerefOf (Index (C178, 0, )), 3, ))    //  C179[2] = 0x4190
   6897       1.1    jruoho 
   6898       1.1    jruoho             Return (C17C)
   6899       1.1    jruoho         }   //  C17B:   _BIF implementation
   6900       1.1    jruoho 
   6901       1.1    jruoho         Device (C154)
   6902       1.1    jruoho         {   //  C154:   Battery 0
   6903       1.1    jruoho             Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
   6904       1.1    jruoho             Name (_UID, 0)                  //  first instance
   6905       1.1    jruoho 
   6906       1.1    jruoho             Method (_BIF)
   6907       1.1    jruoho             {   //  _BIF
   6908       1.1    jruoho                 Return (C17B (48))
   6909       1.1    jruoho             }   //  _BIF
   6910       1.1    jruoho         }   //  C154:   Battery 0
   6911       1.1    jruoho 
   6912       1.1    jruoho         Device (IDX3)
   6913       1.1    jruoho         {
   6914   1.1.1.3  christos             Method (LCLB,, Serialized)
   6915       1.1    jruoho             {   //  LCLB control method: test Index(Local#) where Local# is buffer
   6916       1.1    jruoho                 //  Local0 is index counter
   6917       1.1    jruoho                 //  Local1 is buffer
   6918       1.1    jruoho                 //  Local2 receives BUFR[Local0] via Deref(Index(Local1...))
   6919       1.1    jruoho                 //  Local3 is Local1 or Local2 object type
   6920       1.1    jruoho                 //  Local4 is return error code
   6921       1.1    jruoho 
   6922       1.1    jruoho                 Name (BUFR, Buffer ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
   6923       1.1    jruoho 
   6924       1.1    jruoho                 //  save PKG into Local1
   6925       1.1    jruoho                 Store (BUFR, Local1)
   6926       1.1    jruoho 
   6927       1.1    jruoho                 //  save Local2 object type value into Local3
   6928       1.1    jruoho                 Store (ObjectType (Local1), Local3)
   6929       1.1    jruoho 
   6930       1.1    jruoho                 //  validate Local1 is a Buffer
   6931       1.1    jruoho                 If (LNotEqual (Local3, 3))      //  Buffer type is 3
   6932       1.1    jruoho                     {   Return (0x9F)   }
   6933       1.1    jruoho 
   6934       1.1    jruoho 
   6935       1.1    jruoho                 Store (0, Local0)
   6936       1.1    jruoho                 While (LLess (Local0, 5))
   6937       1.1    jruoho                 {   //  While (Local0 < 5)
   6938       1.1    jruoho                     //  Local2 = Local1[Local0]
   6939       1.1    jruoho                     Store (DerefOf (Index (Local1, Local0, )), Local2)
   6940       1.1    jruoho 
   6941       1.1    jruoho                     //  save Local2 object type value into Local3
   6942       1.1    jruoho                     Store (ObjectType (Local2), Local3)
   6943       1.1    jruoho 
   6944       1.1    jruoho                     //  validate Local2 is a Number
   6945       1.1    jruoho                     If (LNotEqual (Local3, 1))      //  Number type is 1
   6946       1.1    jruoho                         {   Return (0x9E)   }
   6947       1.1    jruoho 
   6948       1.1    jruoho                     //  validate Local1[Local0] value == Local0
   6949       1.1    jruoho                     If (LNotEqual (Local0, Local2))
   6950       1.1    jruoho                     {   //  Local0 != Local2 == PKG[Local0]
   6951       1.1    jruoho                         //  Local4 = 0x90 + loop index (Local0)
   6952       1.1    jruoho                         Add (0x90, Local0, Local4)
   6953       1.1    jruoho 
   6954       1.1    jruoho                         //  return 0x90 + loop index
   6955       1.1    jruoho                         Return (Local4)
   6956       1.1    jruoho                     }
   6957       1.1    jruoho 
   6958       1.1    jruoho                     Increment (Local0)
   6959       1.1    jruoho                 }   //  While (Local0 < 5)
   6960       1.1    jruoho 
   6961       1.1    jruoho                 Store ("DerefOf(Index(LocalBuffer,,)) PASS", Debug)
   6962       1.1    jruoho 
   6963       1.1    jruoho                 Return (0)  //  Pass
   6964       1.1    jruoho             }   //  LCLB control method: test Index(Local#) where Local# is buffer
   6965       1.1    jruoho 
   6966   1.1.1.3  christos             Method (LCLP,, Serialized)
   6967       1.1    jruoho             {   //  LCLP control method: test Index(Local#) where Local# is package
   6968       1.1    jruoho                 //  Local0 is index counter
   6969       1.1    jruoho                 //  Local1 is package
   6970       1.1    jruoho                 //  Local2 receives PKG[Local0] via Deref(Index(Local1...))
   6971       1.1    jruoho                 //  Local3 is Local1 or Local2 object type
   6972       1.1    jruoho                 //  Local4 is return error code
   6973       1.1    jruoho 
   6974       1.1    jruoho                 Name (PKG, Package ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
   6975       1.1    jruoho 
   6976       1.1    jruoho                 //  save PKG into Local1
   6977       1.1    jruoho                 Store (PKG, Local1)
   6978       1.1    jruoho 
   6979       1.1    jruoho                 //  save Local2 object type value into Local3
   6980       1.1    jruoho                 Store (ObjectType (Local1), Local3)
   6981       1.1    jruoho 
   6982       1.1    jruoho                 //  validate Local1 is a Package
   6983       1.1    jruoho                 If (LNotEqual (Local3, 4))      //  Package type is 4
   6984       1.1    jruoho                     {   Return (0x8F)   }
   6985       1.1    jruoho 
   6986       1.1    jruoho 
   6987       1.1    jruoho                 Store (0, Local0)
   6988       1.1    jruoho                 While (LLess (Local0, 5))
   6989       1.1    jruoho                 {   //  While (Local0 < 5)
   6990       1.1    jruoho                     //  Local2 = Local1[Local0]
   6991       1.1    jruoho                     Store (DerefOf (Index (Local1, Local0, )), Local2)
   6992       1.1    jruoho 
   6993       1.1    jruoho                     //  save Local2 object type value into Local3
   6994       1.1    jruoho                     Store (ObjectType (Local2), Local3)
   6995       1.1    jruoho 
   6996       1.1    jruoho                     //  validate Local2 is a Number
   6997       1.1    jruoho                     If (LNotEqual (Local3, 1))      //  Number type is 1
   6998       1.1    jruoho                         {   Return (0x8E)   }
   6999       1.1    jruoho 
   7000       1.1    jruoho                     //  validate Local1[Local0] value == Local0
   7001       1.1    jruoho                     If (LNotEqual (Local0, Local2))
   7002       1.1    jruoho                     {   //  Local0 != Local2 == PKG[Local0]
   7003       1.1    jruoho                         //  Local4 = 0x80 + loop index (Local0)
   7004       1.1    jruoho                         Add (0x80, Local0, Local4)
   7005       1.1    jruoho 
   7006       1.1    jruoho                         //  return 0x80 + loop index
   7007       1.1    jruoho                         Return (Local4)
   7008       1.1    jruoho                     }
   7009       1.1    jruoho 
   7010       1.1    jruoho                     Increment (Local0)
   7011       1.1    jruoho                 }   //  While (Local0 < 5)
   7012       1.1    jruoho 
   7013       1.1    jruoho                 Store ("DerefOf(Index(LocalPackage,,)) PASS", Debug)
   7014       1.1    jruoho 
   7015       1.1    jruoho                 Return (0)  //  Pass
   7016       1.1    jruoho             }   //  LCLP control method: test Index(Local#) where Local# is package
   7017       1.1    jruoho 
   7018       1.1    jruoho             Method (TEST)
   7019       1.1    jruoho             {
   7020       1.1    jruoho 
   7021       1.1    jruoho                 Store ("++++++++ IndexOp3 Test", Debug)
   7022       1.1    jruoho 
   7023       1.1    jruoho                 //  store _BIF package return value into Local0
   7024       1.1    jruoho                 Store (\_SB.C154._BIF, Local0)
   7025       1.1    jruoho 
   7026       1.1    jruoho                 //  save Local0 object type value into Local1
   7027       1.1    jruoho                 Store (ObjectType (Local0), Local1)
   7028       1.1    jruoho 
   7029       1.1    jruoho                 //  validate Local0 is a Package
   7030       1.1    jruoho                 If (LNotEqual (Local1, 4))      //  Package type is 4
   7031       1.1    jruoho                 {   //  failure: did not return a Package (type 4)
   7032       1.1    jruoho                     //  if Local0 is a Number, it contains an error code
   7033       1.1    jruoho                     If (LEqual (Local1, 1))     //  Number type is 1
   7034       1.1    jruoho                         {   Return (Local0) }   //  return Local0 error code
   7035       1.1    jruoho                     Else                                //  Local0 is not a Number
   7036       1.1    jruoho                         {   Return (1)  }           //  return default error code
   7037       1.1    jruoho                 }   //  failure: did not return a Package (type 4)
   7038       1.1    jruoho 
   7039       1.1    jruoho                 //  save LCLB control method return value into Local2
   7040       1.1    jruoho                 Store (LCLB, Local2)
   7041       1.1    jruoho                 If (LNotEqual (Local2, 0))
   7042       1.1    jruoho                     {   Return (Local2) }   //  return failure code
   7043       1.1    jruoho 
   7044       1.1    jruoho                 //  save LCLP control method return value into Local2
   7045       1.1    jruoho                 Store (LCLP, Local2)
   7046       1.1    jruoho                 If (LNotEqual (Local2, 0))
   7047       1.1    jruoho                     {   Return (Local2) }   //  return failure code
   7048       1.1    jruoho 
   7049       1.1    jruoho                 Return (0)  //  Pass
   7050       1.1    jruoho             }   //  TEST
   7051       1.1    jruoho         }   //  IDX3:   Test device name
   7052       1.1    jruoho     }   //  _SB system bus
   7053       1.1    jruoho 
   7054       1.1    jruoho //
   7055       1.1    jruoho // MTL developed test to exercise Indexes into buffers
   7056       1.1    jruoho //
   7057       1.1    jruoho     Device(IDX7)
   7058       1.1    jruoho     {
   7059       1.1    jruoho 
   7060       1.1    jruoho         Name (PKG4, Package() {
   7061       1.1    jruoho                 0x2,
   7062       1.1    jruoho                 "A short string",
   7063       1.1    jruoho                 Buffer() {0xA, 0xB, 0xC, 0xD},
   7064       1.1    jruoho                 0x1234,
   7065       1.1    jruoho                 Package() {IDX7, 0x3}
   7066       1.1    jruoho                 })
   7067       1.1    jruoho 
   7068       1.1    jruoho         //
   7069       1.1    jruoho         // Generic Test method
   7070       1.1    jruoho         //
   7071       1.1    jruoho         // This test returns 0xE (14) - ObjectType = Buffer Field
   7072   1.1.1.3  christos         Method(TST1,, Serialized)
   7073       1.1    jruoho         {
   7074       1.1    jruoho             Name (DEST, Buffer ()                           //  62 characters plus NULL
   7075       1.1    jruoho                 {"Destination buffer that is longer than the short source buffer"})
   7076       1.1    jruoho 
   7077       1.1    jruoho             //  verify object type returned by Index(Buffer,Element,)
   7078       1.1    jruoho             Store (Index (DEST, 2, ), Local1)
   7079       1.1    jruoho             Store (ObjectType (Local1), Local2)
   7080       1.1    jruoho             If (LEqual(Local2, 14))
   7081       1.1    jruoho             {
   7082       1.1    jruoho                 Return(0)
   7083       1.1    jruoho             }
   7084       1.1    jruoho             Else
   7085       1.1    jruoho             {
   7086       1.1    jruoho                 Return(0x1)
   7087       1.1    jruoho             }
   7088       1.1    jruoho 
   7089       1.1    jruoho         }
   7090       1.1    jruoho 
   7091   1.1.1.3  christos         Method(TST2,, Serialized)
   7092       1.1    jruoho         {
   7093       1.1    jruoho             Name (BUF0, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
   7094       1.1    jruoho             Store(0x55, Index(BUF0, 2))
   7095       1.1    jruoho             Store(DerefOf(Index(BUF0, 2)), Local0)
   7096       1.1    jruoho             If (LEqual(Local0, 0x55))
   7097       1.1    jruoho             {
   7098       1.1    jruoho                 Return(0)
   7099       1.1    jruoho             }
   7100       1.1    jruoho             Else
   7101       1.1    jruoho             {
   7102       1.1    jruoho                 Return(0x2)
   7103       1.1    jruoho             }
   7104       1.1    jruoho 
   7105       1.1    jruoho 
   7106       1.1    jruoho         }
   7107       1.1    jruoho 
   7108   1.1.1.3  christos         Method(TST3,, Serialized)
   7109       1.1    jruoho         {
   7110       1.1    jruoho             Name (BUF1, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
   7111       1.1    jruoho             Store(Index(BUF1, 1), Local0)
   7112       1.1    jruoho             Store(DerefOf(Local0), Local1)
   7113       1.1    jruoho             If (LEqual(Local1, 0x2))
   7114       1.1    jruoho             {
   7115       1.1    jruoho                 Return(0)
   7116       1.1    jruoho             }
   7117       1.1    jruoho             Else
   7118       1.1    jruoho             {
   7119       1.1    jruoho                 Return(0x3)
   7120       1.1    jruoho             }
   7121       1.1    jruoho 
   7122       1.1    jruoho         }
   7123       1.1    jruoho 
   7124       1.1    jruoho         Method(TST4)
   7125       1.1    jruoho         {
   7126       1.1    jruoho             // Index (PKG4, 0) is a Number
   7127       1.1    jruoho             Store (Index (PKG4, 0), Local0)
   7128       1.1    jruoho             Store (ObjectType(Local0), Local1)
   7129       1.1    jruoho             If (LEqual(Local1, 0x1))
   7130       1.1    jruoho             {
   7131       1.1    jruoho                 Return(0)
   7132       1.1    jruoho             }
   7133       1.1    jruoho             Else
   7134       1.1    jruoho             {
   7135       1.1    jruoho                 Return(0x4)
   7136       1.1    jruoho             }
   7137       1.1    jruoho 
   7138       1.1    jruoho         }
   7139       1.1    jruoho 
   7140       1.1    jruoho         Method(TST5)
   7141       1.1    jruoho         {
   7142       1.1    jruoho             // Index (PKG4, 1) is a String
   7143       1.1    jruoho             Store (Index (PKG4, 1), Local0)
   7144       1.1    jruoho             Store (ObjectType(Local0), Local1)
   7145       1.1    jruoho             If (LEqual(Local1, 0x2))
   7146       1.1    jruoho             {
   7147       1.1    jruoho                 Return(0)
   7148       1.1    jruoho             }
   7149       1.1    jruoho             Else
   7150       1.1    jruoho             {
   7151       1.1    jruoho                 Return(0x5)
   7152       1.1    jruoho             }
   7153       1.1    jruoho 
   7154       1.1    jruoho         }
   7155       1.1    jruoho 
   7156       1.1    jruoho         Method(TST6)
   7157       1.1    jruoho         {
   7158       1.1    jruoho             // Index (PKG4, 2) is a Buffer
   7159       1.1    jruoho             Store (Index (PKG4, 2), Local0)
   7160       1.1    jruoho             Store (ObjectType(Local0), Local1)
   7161       1.1    jruoho             If (LEqual(Local1, 0x3))
   7162       1.1    jruoho             {
   7163       1.1    jruoho                 Return(0)
   7164       1.1    jruoho             }
   7165       1.1    jruoho             Else
   7166       1.1    jruoho             {
   7167       1.1    jruoho                 Return(0x6)
   7168       1.1    jruoho             }
   7169       1.1    jruoho 
   7170       1.1    jruoho         }
   7171       1.1    jruoho 
   7172       1.1    jruoho         Method(TST7)
   7173       1.1    jruoho         {
   7174       1.1    jruoho             // Index (PKG4, 3) is a Number
   7175       1.1    jruoho             Store (Index (PKG4, 3), Local0)
   7176       1.1    jruoho             Store (ObjectType(Local0), Local1)
   7177       1.1    jruoho             If (LEqual(Local1, 0x1))
   7178       1.1    jruoho             {
   7179       1.1    jruoho                 Return(0)
   7180       1.1    jruoho             }
   7181       1.1    jruoho             Else
   7182       1.1    jruoho             {
   7183       1.1    jruoho                 Return(0x7)
   7184       1.1    jruoho             }
   7185       1.1    jruoho 
   7186       1.1    jruoho         }
   7187       1.1    jruoho 
   7188       1.1    jruoho         Method(TST8)
   7189       1.1    jruoho         {
   7190       1.1    jruoho             // Index (PKG4, 4) is a Package
   7191       1.1    jruoho             Store (Index (PKG4, 4), Local0)
   7192       1.1    jruoho             Store (ObjectType(Local0), Local1)
   7193       1.1    jruoho             If (LEqual(Local1, 0x4))
   7194       1.1    jruoho             {
   7195       1.1    jruoho                 Return(0)
   7196       1.1    jruoho             }
   7197       1.1    jruoho             Else
   7198       1.1    jruoho             {
   7199       1.1    jruoho                 Return(0x8)
   7200       1.1    jruoho             }
   7201       1.1    jruoho 
   7202       1.1    jruoho         }
   7203       1.1    jruoho 
   7204       1.1    jruoho         Method(TST9)
   7205       1.1    jruoho         {
   7206       1.1    jruoho             // DerefOf (Index (PKG4, 0)) is a Number
   7207       1.1    jruoho             Store (DerefOf (Index (PKG4, 0)), Local0)
   7208       1.1    jruoho             If (LEqual(Local0, 0x2))
   7209       1.1    jruoho             {
   7210       1.1    jruoho                 Return(0)
   7211       1.1    jruoho             }
   7212       1.1    jruoho             Else
   7213       1.1    jruoho             {
   7214       1.1    jruoho                 Return(0x9)
   7215       1.1    jruoho             }
   7216       1.1    jruoho 
   7217       1.1    jruoho         }
   7218       1.1    jruoho 
   7219       1.1    jruoho         Method(TSTA)
   7220       1.1    jruoho         {
   7221       1.1    jruoho             // DerefOf (Index (PKG4, 1)) is a String
   7222       1.1    jruoho             Store (DerefOf (Index (PKG4, 1)), Local0)
   7223       1.1    jruoho             Store (SizeOf(Local0), Local1)
   7224       1.1    jruoho             If (LEqual(Local1, 0xE))
   7225       1.1    jruoho             {
   7226       1.1    jruoho                 Return(0)
   7227       1.1    jruoho             }
   7228       1.1    jruoho             Else
   7229       1.1    jruoho             {
   7230       1.1    jruoho                 Return(0xA)
   7231       1.1    jruoho             }
   7232       1.1    jruoho 
   7233       1.1    jruoho         }
   7234       1.1    jruoho 
   7235       1.1    jruoho         Method(TSTB)
   7236       1.1    jruoho         {
   7237       1.1    jruoho             // DerefOf (Index (PKG4, 2)) is a Buffer
   7238       1.1    jruoho             Store (DerefOf (Index (PKG4, 2)), Local0)
   7239       1.1    jruoho             Store (SizeOf(Local0), Local1)
   7240       1.1    jruoho             If (LEqual(Local1, 0x4))
   7241       1.1    jruoho             {
   7242       1.1    jruoho                 Return(0)
   7243       1.1    jruoho             }
   7244       1.1    jruoho             Else
   7245       1.1    jruoho             {
   7246       1.1    jruoho                 Return(0xB)
   7247       1.1    jruoho             }
   7248       1.1    jruoho 
   7249       1.1    jruoho         }
   7250       1.1    jruoho 
   7251       1.1    jruoho         Method(TSTC)
   7252       1.1    jruoho         {
   7253       1.1    jruoho             // DerefOf (Index (PKG4, 3)) is a Number
   7254       1.1    jruoho             Store (DerefOf (Index (PKG4, 3)), Local0)
   7255       1.1    jruoho             If (LEqual(Local0, 0x1234))
   7256       1.1    jruoho             {
   7257       1.1    jruoho                 Return(0)
   7258       1.1    jruoho             }
   7259       1.1    jruoho             Else
   7260       1.1    jruoho             {
   7261       1.1    jruoho                 Return(0xC)
   7262       1.1    jruoho             }
   7263       1.1    jruoho 
   7264       1.1    jruoho         }
   7265       1.1    jruoho 
   7266       1.1    jruoho         Method(TSTD)
   7267       1.1    jruoho         {
   7268       1.1    jruoho             // DerefOf (Index (PKG4, 4)) is a Package
   7269       1.1    jruoho             Store (DerefOf (Index (PKG4, 4)), Local0)
   7270       1.1    jruoho             Store (SizeOf(Local0), Local1)
   7271       1.1    jruoho             If (LEqual(Local1, 0x2))
   7272       1.1    jruoho             {
   7273       1.1    jruoho                 Return(0)
   7274       1.1    jruoho             }
   7275       1.1    jruoho             Else
   7276       1.1    jruoho             {
   7277       1.1    jruoho                 Return(0xD)
   7278       1.1    jruoho             }
   7279       1.1    jruoho 
   7280       1.1    jruoho         }
   7281       1.1    jruoho 
   7282       1.1    jruoho         Method(TSTE)
   7283       1.1    jruoho         {
   7284       1.1    jruoho             // DerefOf (Index (PKG4, 2)) is a Buffer
   7285       1.1    jruoho             Store (DerefOf (Index (PKG4, 2)), Local0)
   7286       1.1    jruoho             // DerefOf (Index (Local0, 1)) is a Number
   7287       1.1    jruoho             Store (DerefOf (Index (Local0, 1)), Local1)
   7288       1.1    jruoho             If (LEqual(Local1, 0xB))
   7289       1.1    jruoho             {
   7290       1.1    jruoho                 Return(0)
   7291       1.1    jruoho             }
   7292       1.1    jruoho             Else
   7293       1.1    jruoho             {
   7294       1.1    jruoho                 Return(0xE)
   7295       1.1    jruoho             }
   7296       1.1    jruoho 
   7297       1.1    jruoho         }
   7298       1.1    jruoho 
   7299   1.1.1.3  christos         Method (TSTF,, Serialized)
   7300       1.1    jruoho         {
   7301       1.1    jruoho             Name (SRCB, Buffer (12) {}) //  12 characters
   7302       1.1    jruoho             Store ("Short Buffer", SRCB)
   7303       1.1    jruoho 
   7304       1.1    jruoho             Name (DEST, Buffer ()                       //  62 characters plus NULL
   7305       1.1    jruoho                 {"Destination buffer that is longer than the short source buffer"})
   7306       1.1    jruoho 
   7307       1.1    jruoho             //  overwrite DEST contents, starting at buffer position 2
   7308       1.1    jruoho             Store (SRCB, Index (DEST, 2))
   7309       1.1    jruoho 
   7310       1.1    jruoho             //
   7311       1.1    jruoho             //  The DEST buffer element should be replaced with the last element of
   7312       1.1    jruoho             //      the SRCB element (i.e. 's'->'r')
   7313       1.1    jruoho             Store (DerefOf (Index (DEST, 2)), Local0)
   7314       1.1    jruoho 
   7315       1.1    jruoho             If (LNotEqual (Local0, 0x72))       //  'r'
   7316       1.1    jruoho             {
   7317       1.1    jruoho                 //  DEST element does not match the value from SRCB
   7318       1.1    jruoho                 Return(Or(Local0, 0x1000))
   7319       1.1    jruoho             }
   7320       1.1    jruoho 
   7321       1.1    jruoho             Return(0)
   7322       1.1    jruoho         }
   7323       1.1    jruoho 
   7324   1.1.1.3  christos         Method (TSTG,, Serialized)
   7325       1.1    jruoho         {
   7326       1.1    jruoho 
   7327       1.1    jruoho             Name (SRCB, Buffer (12) {}) //  12 characters
   7328       1.1    jruoho             Store ("Short Buffer", SRCB)
   7329       1.1    jruoho 
   7330       1.1    jruoho             Name (DEST, Buffer ()                       //  62 characters plus NULL
   7331       1.1    jruoho                 {"Destination buffer that is longer than the short source buffer"})
   7332       1.1    jruoho 
   7333       1.1    jruoho             //  overwrite DEST contents, starting at buffer position 2
   7334       1.1    jruoho             Store (SRCB, Index (DEST, 2))
   7335       1.1    jruoho 
   7336       1.1    jruoho             //
   7337       1.1    jruoho             // The next element of DEST should be unchanged
   7338       1.1    jruoho             //
   7339       1.1    jruoho             Store (DerefOf (Index (DEST, 3)), Local0)
   7340       1.1    jruoho 
   7341       1.1    jruoho             If (LNotEqual (Local0, 0x74))       //  't'
   7342       1.1    jruoho             {
   7343       1.1    jruoho                 //  DEST has been changed
   7344       1.1    jruoho                 Return(Or(Local0, 0x2000))
   7345       1.1    jruoho             }
   7346       1.1    jruoho 
   7347       1.1    jruoho             //
   7348       1.1    jruoho             // The next element of DEST should be unchanged
   7349       1.1    jruoho             //
   7350       1.1    jruoho             Store (DerefOf (Index (DEST, 4)), Local0)
   7351       1.1    jruoho 
   7352       1.1    jruoho             If (LNotEqual (Local0, 0x69))       //  'i'
   7353       1.1    jruoho             {
   7354       1.1    jruoho                 //  DEST has been changed
   7355       1.1    jruoho                 Return(Or(Local0, 0x2100))
   7356       1.1    jruoho             }
   7357       1.1    jruoho 
   7358       1.1    jruoho             //
   7359       1.1    jruoho             // The next element of DEST should be unchanged
   7360       1.1    jruoho             //
   7361       1.1    jruoho             Store (DerefOf (Index (DEST, 5)), Local0)
   7362       1.1    jruoho 
   7363       1.1    jruoho             If (LNotEqual (Local0, 0x6E))       //  'n'
   7364       1.1    jruoho             {
   7365       1.1    jruoho                 //  DEST has been changed
   7366       1.1    jruoho                 Return(Or(Local0, 0x2200))
   7367       1.1    jruoho             }
   7368       1.1    jruoho 
   7369       1.1    jruoho             //
   7370       1.1    jruoho             // The next element of DEST should be unchanged
   7371       1.1    jruoho             //
   7372       1.1    jruoho             Store (DerefOf (Index (DEST, 6)), Local0)
   7373       1.1    jruoho 
   7374       1.1    jruoho             If (LNotEqual (Local0, 0x61))       //  'a'
   7375       1.1    jruoho             {
   7376       1.1    jruoho                 //  DEST has been changed
   7377       1.1    jruoho                 Return(Or(Local0, 0x2300))
   7378       1.1    jruoho             }
   7379       1.1    jruoho 
   7380       1.1    jruoho             //
   7381       1.1    jruoho             // The next element of DEST should be unchanged
   7382       1.1    jruoho             //
   7383       1.1    jruoho             Store (DerefOf (Index (DEST, 7)), Local0)
   7384       1.1    jruoho 
   7385       1.1    jruoho             If (LNotEqual (Local0, 0x74))       //  't'
   7386       1.1    jruoho             {
   7387       1.1    jruoho                 //  DEST has been changed
   7388       1.1    jruoho                 Return(Or(Local0, 0x2400))
   7389       1.1    jruoho             }
   7390       1.1    jruoho 
   7391       1.1    jruoho             //
   7392       1.1    jruoho             //  Verify DEST elements beyond end of SRCB buffer copy
   7393       1.1    jruoho             //  have not been changed
   7394       1.1    jruoho             Store (DerefOf (Index (DEST, 14)), Local0)
   7395       1.1    jruoho 
   7396       1.1    jruoho             If (LNotEqual (Local0, 0x66))       // 'f'
   7397       1.1    jruoho             {
   7398       1.1    jruoho                 //  DEST has been changed
   7399       1.1    jruoho                 Return(Or(Local0, 0x2400))
   7400       1.1    jruoho             }
   7401       1.1    jruoho 
   7402       1.1    jruoho             Return(0)
   7403       1.1    jruoho         }
   7404       1.1    jruoho 
   7405       1.1    jruoho         //
   7406       1.1    jruoho         // This test shows that MS ACPI.SYS stores only the lower 8-bits of a 32-bit
   7407       1.1    jruoho         //  number into the index'ed buffer
   7408       1.1    jruoho         //
   7409   1.1.1.3  christos         Method (TSTH,, Serialized)
   7410       1.1    jruoho         {
   7411       1.1    jruoho             // Create a Destination Buffer
   7412       1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7413       1.1    jruoho 
   7414       1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7415       1.1    jruoho             Store (0x12345678, Index(DBUF, 2))
   7416       1.1    jruoho 
   7417       1.1    jruoho             // Check the results
   7418       1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7419       1.1    jruoho             If (LNotEqual (Local0, 0x78))   // 0x78
   7420       1.1    jruoho             {
   7421       1.1    jruoho                 Return(Or(Local0, 0x3000))
   7422       1.1    jruoho             }
   7423       1.1    jruoho 
   7424       1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7425       1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7426       1.1    jruoho             {
   7427       1.1    jruoho                 Return(Or(Local0, 0x3100))
   7428       1.1    jruoho             }
   7429       1.1    jruoho 
   7430       1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7431       1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7432       1.1    jruoho             {
   7433       1.1    jruoho                 Return(Or(Local0, 0x3200))
   7434       1.1    jruoho             }
   7435       1.1    jruoho 
   7436       1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7437       1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7438       1.1    jruoho             {
   7439       1.1    jruoho                 Return(Or(Local0, 0x3300))
   7440       1.1    jruoho             }
   7441       1.1    jruoho 
   7442       1.1    jruoho             Return(0)
   7443       1.1    jruoho         }
   7444       1.1    jruoho 
   7445   1.1.1.3  christos         Method (TSTI,, Serialized)
   7446       1.1    jruoho         {
   7447       1.1    jruoho             // Create a Destination Buffer
   7448       1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7449       1.1    jruoho 
   7450       1.1    jruoho             // Store a String into an index of the buffer
   7451       1.1    jruoho             Store ("ABCDEFGH", Index(DBUF, 2))
   7452       1.1    jruoho 
   7453       1.1    jruoho             // Check the results
   7454       1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7455       1.1    jruoho             If (LNotEqual (Local0, 0x48))   // 'H'
   7456       1.1    jruoho             {
   7457       1.1    jruoho                 Return(Or(Local0, 0x4000))
   7458       1.1    jruoho             }
   7459       1.1    jruoho 
   7460       1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7461       1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7462       1.1    jruoho             {
   7463       1.1    jruoho                 Return(Or(Local0, 0x4100))
   7464       1.1    jruoho             }
   7465       1.1    jruoho 
   7466       1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7467       1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7468       1.1    jruoho             {
   7469       1.1    jruoho                 Return(Or(Local0, 0x4200))
   7470       1.1    jruoho             }
   7471       1.1    jruoho 
   7472       1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7473       1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7474       1.1    jruoho             {
   7475       1.1    jruoho                 Return(Or(Local0, 0x4300))
   7476       1.1    jruoho             }
   7477       1.1    jruoho 
   7478       1.1    jruoho             Return(0)
   7479       1.1    jruoho         }
   7480       1.1    jruoho 
   7481   1.1.1.3  christos         Method(TSTJ,, Serialized)
   7482       1.1    jruoho         {
   7483       1.1    jruoho             // Create a Destination Buffer
   7484       1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7485       1.1    jruoho 
   7486       1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7487       1.1    jruoho             Store (0x1234, Index(DBUF, 2))
   7488       1.1    jruoho 
   7489       1.1    jruoho             // Check the results
   7490       1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7491       1.1    jruoho             If (LNotEqual (Local0, 0x34))   // 0x34
   7492       1.1    jruoho             {
   7493       1.1    jruoho                 Return(Or(Local0, 0x3000))
   7494       1.1    jruoho             }
   7495       1.1    jruoho 
   7496       1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7497       1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7498       1.1    jruoho             {
   7499       1.1    jruoho                 Return(Or(Local0, 0x3100))
   7500       1.1    jruoho             }
   7501       1.1    jruoho 
   7502       1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7503       1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7504       1.1    jruoho             {
   7505       1.1    jruoho                 Return(Or(Local0, 0x3200))
   7506       1.1    jruoho             }
   7507       1.1    jruoho 
   7508       1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7509       1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7510       1.1    jruoho             {
   7511       1.1    jruoho                 Return(Or(Local0, 0x3300))
   7512       1.1    jruoho             }
   7513       1.1    jruoho 
   7514       1.1    jruoho             Return(0)
   7515       1.1    jruoho         }
   7516       1.1    jruoho 
   7517   1.1.1.3  christos         Method(TSTK,, Serialized)
   7518       1.1    jruoho         {
   7519       1.1    jruoho             // Create a Destination Buffer
   7520       1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7521       1.1    jruoho 
   7522       1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7523       1.1    jruoho             Store (0x123456, Index(DBUF, 2))
   7524       1.1    jruoho 
   7525       1.1    jruoho             // Check the results
   7526       1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7527       1.1    jruoho             If (LNotEqual (Local0, 0x56))   // 0x56
   7528       1.1    jruoho             {
   7529       1.1    jruoho                 Return(Or(Local0, 0x3000))
   7530       1.1    jruoho             }
   7531       1.1    jruoho 
   7532       1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7533       1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7534       1.1    jruoho             {
   7535       1.1    jruoho                 Return(Or(Local0, 0x3100))
   7536       1.1    jruoho             }
   7537       1.1    jruoho 
   7538       1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7539       1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7540       1.1    jruoho             {
   7541       1.1    jruoho                 Return(Or(Local0, 0x3200))
   7542       1.1    jruoho             }
   7543       1.1    jruoho 
   7544       1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7545       1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7546       1.1    jruoho             {
   7547       1.1    jruoho                 Return(Or(Local0, 0x3300))
   7548       1.1    jruoho             }
   7549       1.1    jruoho 
   7550       1.1    jruoho             Return(0)
   7551       1.1    jruoho         }
   7552       1.1    jruoho 
   7553   1.1.1.3  christos         Method(TSTL,, Serialized)
   7554       1.1    jruoho         {
   7555       1.1    jruoho             // Create a Destination Buffer
   7556       1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7557       1.1    jruoho 
   7558       1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7559       1.1    jruoho             Store (0x12, Index(DBUF, 2))
   7560       1.1    jruoho 
   7561       1.1    jruoho             // Check the results
   7562       1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7563       1.1    jruoho             If (LNotEqual (Local0, 0x12))   // 0x12
   7564       1.1    jruoho             {
   7565       1.1    jruoho                 Return(Or(Local0, 0x3000))
   7566       1.1    jruoho             }
   7567       1.1    jruoho 
   7568       1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7569       1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7570       1.1    jruoho             {
   7571       1.1    jruoho                 Return(Or(Local0, 0x3100))
   7572       1.1    jruoho             }
   7573       1.1    jruoho 
   7574       1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7575       1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7576       1.1    jruoho             {
   7577       1.1    jruoho                 Return(Or(Local0, 0x3200))
   7578       1.1    jruoho             }
   7579       1.1    jruoho 
   7580       1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7581       1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7582       1.1    jruoho             {
   7583       1.1    jruoho                 Return(Or(Local0, 0x3300))
   7584       1.1    jruoho             }
   7585       1.1    jruoho 
   7586       1.1    jruoho             Return(0)
   7587       1.1    jruoho         }
   7588       1.1    jruoho 
   7589       1.1    jruoho         Method(TEST)
   7590       1.1    jruoho         {
   7591       1.1    jruoho             Store ("++++++++ IndexOp7 Test", Debug)
   7592       1.1    jruoho 
   7593       1.1    jruoho             Store(TST1(), Local0)
   7594       1.1    jruoho             if (LGreater (Local0, 0))
   7595       1.1    jruoho             {
   7596       1.1    jruoho                 Return(Local0)
   7597       1.1    jruoho             }
   7598       1.1    jruoho 
   7599       1.1    jruoho             Store(TST2(), Local0)
   7600       1.1    jruoho             if (LGreater (Local0, 0))
   7601       1.1    jruoho             {
   7602       1.1    jruoho                 Return(Local0)
   7603       1.1    jruoho             }
   7604       1.1    jruoho 
   7605       1.1    jruoho             Store(TST3(), Local0)
   7606       1.1    jruoho             if (LGreater (Local0, 0))
   7607       1.1    jruoho             {
   7608       1.1    jruoho                 Return(Local0)
   7609       1.1    jruoho             }
   7610       1.1    jruoho 
   7611       1.1    jruoho             Store(TST4(), Local0)
   7612       1.1    jruoho             if (LGreater (Local0, 0))
   7613       1.1    jruoho             {
   7614       1.1    jruoho                 Return(Local0)
   7615       1.1    jruoho             }
   7616       1.1    jruoho 
   7617       1.1    jruoho             Store(TST5(), Local0)
   7618       1.1    jruoho             if (LGreater (Local0, 0))
   7619       1.1    jruoho             {
   7620       1.1    jruoho                 Return(Local0)
   7621       1.1    jruoho             }
   7622       1.1    jruoho 
   7623       1.1    jruoho             Store(TST6(), Local0)
   7624       1.1    jruoho             if (LGreater (Local0, 0))
   7625       1.1    jruoho             {
   7626       1.1    jruoho                 Return(Local0)
   7627       1.1    jruoho             }
   7628       1.1    jruoho 
   7629       1.1    jruoho             Store(TST7(), Local0)
   7630       1.1    jruoho             if (LGreater (Local0, 0))
   7631       1.1    jruoho             {
   7632       1.1    jruoho                 Return(Local0)
   7633       1.1    jruoho             }
   7634       1.1    jruoho 
   7635       1.1    jruoho             Store(TST8(), Local0)
   7636       1.1    jruoho             if (LGreater (Local0, 0))
   7637       1.1    jruoho             {
   7638       1.1    jruoho                 Return(Local0)
   7639       1.1    jruoho             }
   7640       1.1    jruoho 
   7641       1.1    jruoho             Store(TST9(), Local0)
   7642       1.1    jruoho             if (LGreater (Local0, 0))
   7643       1.1    jruoho             {
   7644       1.1    jruoho                 Return(Local0)
   7645       1.1    jruoho             }
   7646       1.1    jruoho 
   7647       1.1    jruoho             Store(TSTA(), Local0)
   7648       1.1    jruoho             if (LGreater (Local0, 0))
   7649       1.1    jruoho             {
   7650       1.1    jruoho                 Return(Local0)
   7651       1.1    jruoho             }
   7652       1.1    jruoho 
   7653       1.1    jruoho             Store(TSTB(), Local0)
   7654       1.1    jruoho             if (LGreater (Local0, 0))
   7655       1.1    jruoho             {
   7656       1.1    jruoho                 Return(Local0)
   7657       1.1    jruoho             }
   7658       1.1    jruoho 
   7659       1.1    jruoho             Store(TSTC(), Local0)
   7660       1.1    jruoho             if (LGreater (Local0, 0))
   7661       1.1    jruoho             {
   7662       1.1    jruoho                 Return(Local0)
   7663       1.1    jruoho             }
   7664       1.1    jruoho 
   7665       1.1    jruoho             Store(TSTD(), Local0)
   7666       1.1    jruoho             if (LGreater (Local0, 0))
   7667       1.1    jruoho             {
   7668       1.1    jruoho                 Return(Local0)
   7669       1.1    jruoho             }
   7670       1.1    jruoho 
   7671       1.1    jruoho             Store(TSTE(), Local0)
   7672       1.1    jruoho             if (LGreater (Local0, 0))
   7673       1.1    jruoho             {
   7674       1.1    jruoho                 Return(Local0)
   7675       1.1    jruoho             }
   7676       1.1    jruoho 
   7677       1.1    jruoho     /* No longer ACPI compliant */
   7678       1.1    jruoho     /*
   7679       1.1    jruoho             Store(TSTF(), Local0)
   7680       1.1    jruoho             if (LGreater (Local0, 0))
   7681       1.1    jruoho             {
   7682       1.1    jruoho                 Return(Local0)
   7683       1.1    jruoho             }
   7684       1.1    jruoho     */
   7685       1.1    jruoho 
   7686       1.1    jruoho             Store(TSTG(), Local0)
   7687       1.1    jruoho             if (LGreater (Local0, 0))
   7688       1.1    jruoho             {
   7689       1.1    jruoho                 Return(Local0)
   7690       1.1    jruoho             }
   7691       1.1    jruoho 
   7692       1.1    jruoho             Store(TSTH(), Local0)
   7693       1.1    jruoho             if (LGreater (Local0, 0))
   7694       1.1    jruoho             {
   7695       1.1    jruoho                 Return(Local0)
   7696       1.1    jruoho             }
   7697       1.1    jruoho 
   7698       1.1    jruoho     /* No longer ACPI compliant */
   7699       1.1    jruoho     /*
   7700       1.1    jruoho             Store(TSTI(), Local0)
   7701       1.1    jruoho             if (LGreater (Local0, 0))
   7702       1.1    jruoho             {
   7703       1.1    jruoho                 Return(Local0)
   7704       1.1    jruoho             }
   7705       1.1    jruoho     */
   7706       1.1    jruoho             Store(TSTJ(), Local0)
   7707       1.1    jruoho             if (LGreater (Local0, 0))
   7708       1.1    jruoho             {
   7709       1.1    jruoho                 Return(Local0)
   7710       1.1    jruoho             }
   7711       1.1    jruoho 
   7712       1.1    jruoho             Store(TSTK(), Local0)
   7713       1.1    jruoho             if (LGreater (Local0, 0))
   7714       1.1    jruoho             {
   7715       1.1    jruoho                 Return(Local0)
   7716       1.1    jruoho             }
   7717       1.1    jruoho 
   7718       1.1    jruoho             Store(TSTL(), Local0)
   7719       1.1    jruoho             if (LGreater (Local0, 0))
   7720       1.1    jruoho             {
   7721       1.1    jruoho                 Return(Local0)
   7722       1.1    jruoho             }
   7723       1.1    jruoho 
   7724       1.1    jruoho             Return(Local0)
   7725       1.1    jruoho 
   7726       1.1    jruoho         }
   7727       1.1    jruoho 
   7728       1.1    jruoho     } // Device(IDX7)
   7729       1.1    jruoho 
   7730       1.1    jruoho //
   7731       1.1    jruoho // test MatchOp.asl
   7732       1.1    jruoho //
   7733       1.1    jruoho //  MatchOp test cases that utilize nested DerefOf(Index(...)) to validate
   7734       1.1    jruoho //  MatchOp, DerefOfOp, and IndexOp of nested packages.
   7735       1.1    jruoho //
   7736       1.1    jruoho     Device (MTCH)
   7737       1.1    jruoho     {
   7738       1.1    jruoho 
   7739   1.1.1.3  christos         Method (TEST,, Serialized)
   7740       1.1    jruoho         {
   7741       1.1    jruoho             Store ("++++++++ MatchOp Test", Debug)
   7742       1.1    jruoho 
   7743       1.1    jruoho             Name (TIM0, Package ()
   7744       1.1    jruoho                 {
   7745       1.1    jruoho                     Package ()  {0x78, 0xB4, 0xF0, 0x0384},
   7746       1.1    jruoho                     Package ()  {0x23, 0x21, 0x10, 0},
   7747       1.1    jruoho                     Package ()  {0x0B, 9, 4, 0},
   7748       1.1    jruoho                     Package ()  {0x70, 0x49, 0x36, 0x27, 0x19},
   7749       1.1    jruoho                     Package ()  {0, 1, 2, 1, 2},
   7750       1.1    jruoho                     Package ()  {0, 0, 0, 1, 1},
   7751       1.1    jruoho                     Package ()  {4, 3, 2, 0},
   7752       1.1    jruoho                     Package ()  {2, 1, 0, 0}
   7753       1.1    jruoho                 })  //  TIM0
   7754       1.1    jruoho 
   7755       1.1    jruoho             Name (TMD0, Buffer (20) {0xFF, 0xFF, 0xFF, 0xFF })
   7756       1.1    jruoho             CreateDWordField (TMD0, 0, PIO0)    //  0xFFFFFFFF
   7757       1.1    jruoho             CreateDWordField (TMD0, 4, DMA0)
   7758       1.1    jruoho             CreateDWordField (TMD0, 8, PIO1)
   7759       1.1    jruoho             CreateDWordField (TMD0, 12, DMA1)
   7760       1.1    jruoho             CreateDWordField (TMD0, 16, CHNF)
   7761       1.1    jruoho 
   7762       1.1    jruoho 
   7763       1.1    jruoho             //  validate PIO0 value
   7764       1.1    jruoho             Store (PIO0, Local3)
   7765       1.1    jruoho 
   7766       1.1    jruoho             //  save Local3 object type value into Local2
   7767       1.1    jruoho             Store (ObjectType (Local3), Local2)
   7768       1.1    jruoho 
   7769       1.1    jruoho             //  validate Local3 is a Number
   7770       1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7771       1.1    jruoho                 {   Return (2)  }   //  failure
   7772       1.1    jruoho 
   7773       1.1    jruoho             //  validate Local3 Number value
   7774       1.1    jruoho             If (LNotEqual (Local3, 0xFFFFFFFF)) //  Number value 0xFFFFFFFF
   7775       1.1    jruoho                 {   Return (3)  }   //  failure
   7776       1.1    jruoho 
   7777       1.1    jruoho             Store ("DWordField PASS", Debug)
   7778       1.1    jruoho 
   7779       1.1    jruoho 
   7780       1.1    jruoho             Store (0, Local5)
   7781       1.1    jruoho             Store (Match (DerefOf (Index (TIM0, 1, )), MLE, Local5, MTR, 0, 0), Local6)
   7782       1.1    jruoho 
   7783       1.1    jruoho             //  save Local6 object type value into Local2
   7784       1.1    jruoho             Store (ObjectType (Local6), Local2)
   7785       1.1    jruoho 
   7786       1.1    jruoho             //  validate Local6 is a Number
   7787       1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7788       1.1    jruoho                 {   Return (4)  }   //  failure
   7789       1.1    jruoho 
   7790       1.1    jruoho             Store ("Match(DerefOf(Index(TIM0,1)),... PASS", Debug)
   7791       1.1    jruoho 
   7792       1.1    jruoho 
   7793       1.1    jruoho             //  validate following produces a nested package to validate
   7794       1.1    jruoho             //  that MatchOp did not corrupt SearchPackage (TIM0)
   7795       1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7796       1.1    jruoho 
   7797       1.1    jruoho             //  save Local4 object type value into Local2
   7798       1.1    jruoho             Store (ObjectType (Local4), Local2)
   7799       1.1    jruoho 
   7800       1.1    jruoho             //  validate Local4 is a Package
   7801       1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7802       1.1    jruoho                 {   Return (5)  }   //  failure
   7803       1.1    jruoho 
   7804       1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS", Debug)
   7805       1.1    jruoho 
   7806       1.1    jruoho 
   7807       1.1    jruoho             And (Match (DerefOf (Index (TIM0, 0, )), MGE, PIO0, MTR, 0, 0), 3, Local0)
   7808       1.1    jruoho 
   7809       1.1    jruoho             //  save Local0 object type value into Local2
   7810       1.1    jruoho             Store (ObjectType (Local0), Local2)
   7811       1.1    jruoho 
   7812       1.1    jruoho             //  validate Local0 is a Number
   7813       1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7814       1.1    jruoho                 {   Return (6)  }   //  failure
   7815       1.1    jruoho 
   7816       1.1    jruoho             //  validate Local0 Number value
   7817       1.1    jruoho             If (LNotEqual (Local0, 3))  //  Number value 3
   7818       1.1    jruoho                 {   Return (7)  }   //  failure
   7819       1.1    jruoho 
   7820       1.1    jruoho             Store ("And(Match(DerefOf(Index(TIM0,0)),... PASS", Debug)
   7821       1.1    jruoho 
   7822       1.1    jruoho 
   7823       1.1    jruoho             //  again, validate following produces a nested package
   7824       1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7825       1.1    jruoho 
   7826       1.1    jruoho             //  save Local4 object type value into Local2
   7827       1.1    jruoho             Store (ObjectType (Local4), Local2)
   7828       1.1    jruoho 
   7829       1.1    jruoho             //  validate Local4 is a Package
   7830       1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7831       1.1    jruoho                 {   Return (8)  }   //  failure
   7832       1.1    jruoho 
   7833       1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7834       1.1    jruoho 
   7835       1.1    jruoho 
   7836       1.1    jruoho             //  again, validate following produces a nested package
   7837       1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7838       1.1    jruoho 
   7839       1.1    jruoho             //  save Local4 object type value into Local2
   7840       1.1    jruoho             Store (ObjectType (Local4), Local2)
   7841       1.1    jruoho 
   7842       1.1    jruoho             //  validate Local4 is a Package
   7843       1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7844       1.1    jruoho                 {   Return (9)  }   //  failure
   7845       1.1    jruoho 
   7846       1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7847       1.1    jruoho 
   7848       1.1    jruoho 
   7849       1.1    jruoho             //  test nested DerefOf(Index) operators
   7850       1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
   7851       1.1    jruoho 
   7852       1.1    jruoho             //  save Local1 object type value into Local2
   7853       1.1    jruoho             Store (ObjectType (Local1), Local2)
   7854       1.1    jruoho 
   7855       1.1    jruoho             //  validate Local1 is a Number
   7856       1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7857       1.1    jruoho                 {   Return (10) }   //  failure
   7858       1.1    jruoho 
   7859       1.1    jruoho             //  zero indicates pass, non-zero is an error code
   7860       1.1    jruoho             If (LNotEqual (Local1, 0))
   7861       1.1    jruoho                 {   Return (11) }   //  failure
   7862       1.1    jruoho 
   7863       1.1    jruoho             Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS", Debug)
   7864       1.1    jruoho 
   7865       1.1    jruoho 
   7866       1.1    jruoho             //  again, validate following produces a nested package
   7867       1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7868       1.1    jruoho 
   7869       1.1    jruoho             //  save Local4 object type value into Local2
   7870       1.1    jruoho             Store (ObjectType (Local4), Local2)
   7871       1.1    jruoho 
   7872       1.1    jruoho             //  validate Local4 is a Package
   7873       1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7874       1.1    jruoho                 {   Return (12) }   //  failure
   7875       1.1    jruoho 
   7876       1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7877       1.1    jruoho 
   7878       1.1    jruoho 
   7879       1.1    jruoho             //  retest nested DerefOf(Index) operators
   7880       1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
   7881       1.1    jruoho 
   7882       1.1    jruoho             //  save Local1 object type value into Local2
   7883       1.1    jruoho             Store (ObjectType (Local1), Local2)
   7884       1.1    jruoho 
   7885       1.1    jruoho             //  validate Local1 is a Number
   7886       1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7887       1.1    jruoho                 {   Return (13) }   //  failure
   7888       1.1    jruoho 
   7889       1.1    jruoho             //  zero indicates pass, non-zero is an error code
   7890       1.1    jruoho             If (LNotEqual (Local1, 0))
   7891       1.1    jruoho                 {   Return (14) }   //  failure
   7892       1.1    jruoho 
   7893       1.1    jruoho             Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7894       1.1    jruoho 
   7895       1.1    jruoho 
   7896       1.1    jruoho             //  again, validate following produces a nested package
   7897       1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7898       1.1    jruoho 
   7899       1.1    jruoho             //  save Local4 object type value into Local2
   7900       1.1    jruoho             Store (ObjectType (Local4), Local2)
   7901       1.1    jruoho 
   7902       1.1    jruoho             //  validate Local4 is a Package
   7903       1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7904       1.1    jruoho                 {   Return (15) }   //  failure
   7905       1.1    jruoho 
   7906       1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7907       1.1    jruoho 
   7908       1.1    jruoho 
   7909       1.1    jruoho             Return (0)  //  pass
   7910       1.1    jruoho         }   //  TEST
   7911       1.1    jruoho     }   // MTCH
   7912       1.1    jruoho 
   7913       1.1    jruoho //
   7914       1.1    jruoho // test WhileBrk.asl
   7915       1.1    jruoho //
   7916       1.1    jruoho //  This code tests the Break term and While term
   7917       1.1    jruoho //
   7918       1.1    jruoho //  Syntax of Break term
   7919       1.1    jruoho //      BreakTerm := Break
   7920       1.1    jruoho //  The break operation causes the current package execution to complete.
   7921       1.1    jruoho //
   7922       1.1    jruoho //  Syntax of While Term
   7923       1.1    jruoho //      WhileTerm   := While(
   7924       1.1    jruoho //          Predicate   //TermArg=>Integer
   7925       1.1    jruoho //      ) {TermList}
   7926       1.1    jruoho //  Predicate is evaluated as an integer.
   7927       1.1    jruoho //  If the integer is non-zero, the list of terms in TermList is executed.
   7928       1.1    jruoho //  The operation repeats until the Predicate evaluates to zero.
   7929       1.1    jruoho //
   7930       1.1    jruoho // MTL NOTE: This test has been modified to reflect ACPI 2.0 break
   7931       1.1    jruoho // NOTE: This test, when run under the MS ACPI.SYS grinds the system to
   7932       1.1    jruoho //  a halt.
   7933       1.1    jruoho //
   7934       1.1    jruoho     Device (WHLB)
   7935       1.1    jruoho     {
   7936       1.1    jruoho         Name (CNT0, 0)
   7937       1.1    jruoho         Name (CNT1, 0)
   7938       1.1    jruoho 
   7939       1.1    jruoho         Method (TEST)
   7940       1.1    jruoho         {
   7941       1.1    jruoho             //  Check Break statement nested in If nested in While nested in
   7942       1.1    jruoho             //  While only exits inner-most While loop
   7943       1.1    jruoho             Store (0, CNT0)
   7944       1.1    jruoho 
   7945       1.1    jruoho             While (LLess (CNT0, 4))
   7946       1.1    jruoho             {
   7947       1.1    jruoho                 Store (0, CNT1)
   7948       1.1    jruoho                 While (LLess (CNT1, 10))
   7949       1.1    jruoho                 {
   7950       1.1    jruoho                     if (LEqual (CNT1, 1))
   7951       1.1    jruoho                     {
   7952       1.1    jruoho                         Break       //  exit encompassing loop
   7953       1.1    jruoho                     }
   7954       1.1    jruoho 
   7955       1.1    jruoho                     Increment (CNT1)
   7956       1.1    jruoho                 }
   7957       1.1    jruoho 
   7958       1.1    jruoho                 If (LNotEqual (CNT1, 1))
   7959       1.1    jruoho                 {
   7960       1.1    jruoho                     //  failure
   7961       1.1    jruoho                     Return (7)
   7962       1.1    jruoho                 }
   7963       1.1    jruoho 
   7964       1.1    jruoho                 Increment (CNT0)
   7965       1.1    jruoho             }
   7966       1.1    jruoho 
   7967       1.1    jruoho             //  Verify Break only exited inner-most While loop
   7968       1.1    jruoho 
   7969       1.1    jruoho             If (LNotEqual (CNT0, 4))
   7970       1.1    jruoho             {
   7971       1.1    jruoho                 //  failure
   7972       1.1    jruoho                 Return (8)
   7973       1.1    jruoho             }
   7974       1.1    jruoho 
   7975       1.1    jruoho             Store ("While/While/If/Break PASS", Debug)
   7976       1.1    jruoho 
   7977       1.1    jruoho             Store ("++++++++ WhileBrk Test", Debug)
   7978       1.1    jruoho 
   7979       1.1    jruoho             //  Check Break statement nested in While
   7980       1.1    jruoho             Store (0, CNT0)
   7981       1.1    jruoho 
   7982       1.1    jruoho             While (LLess (CNT0, 10))
   7983       1.1    jruoho             {
   7984       1.1    jruoho                 Break       //  exit encompassing package
   7985       1.1    jruoho                 Increment (CNT0)
   7986       1.1    jruoho             }
   7987       1.1    jruoho 
   7988       1.1    jruoho             If (LNotEqual (CNT0, 0))    //  instruction after Break executed
   7989       1.1    jruoho             {
   7990       1.1    jruoho                 Return (4)
   7991       1.1    jruoho             }
   7992       1.1    jruoho 
   7993       1.1    jruoho 
   7994       1.1    jruoho             Store (0, CNT0)
   7995       1.1    jruoho 
   7996       1.1    jruoho             //  Test While Term
   7997       1.1    jruoho             While (LLess (CNT0, 10))
   7998       1.1    jruoho             {
   7999       1.1    jruoho                 Increment (CNT0)
   8000       1.1    jruoho             }
   8001       1.1    jruoho 
   8002       1.1    jruoho             //  Check if the while loop was executed until the condition is satisfied.
   8003       1.1    jruoho             If (LNotEqual (CNT0, 10))
   8004       1.1    jruoho             {
   8005       1.1    jruoho                 Return (1)
   8006       1.1    jruoho             }
   8007       1.1    jruoho 
   8008       1.1    jruoho 
   8009       1.1    jruoho             //  While loop in a reverse order
   8010       1.1    jruoho             While (LGreater (CNT0, 0))
   8011       1.1    jruoho             {
   8012       1.1    jruoho                 Decrement (CNT0)
   8013       1.1    jruoho             }
   8014       1.1    jruoho 
   8015       1.1    jruoho             //  Check if the while loop was executed until the condition is satisfied.
   8016       1.1    jruoho             If (LNotEqual (CNT0, 0))
   8017       1.1    jruoho             {
   8018       1.1    jruoho                 Return (2)
   8019       1.1    jruoho             }
   8020       1.1    jruoho 
   8021       1.1    jruoho 
   8022       1.1    jruoho             Store ("While/Break PASS", Debug)
   8023       1.1    jruoho 
   8024       1.1    jruoho 
   8025       1.1    jruoho             //  Check Break statement nested in If nested in While
   8026       1.1    jruoho             Store (0, CNT0)
   8027       1.1    jruoho 
   8028       1.1    jruoho             While (LLess (CNT0, 10))
   8029       1.1    jruoho             {
   8030       1.1    jruoho                 if (LEqual (CNT0, 5))
   8031       1.1    jruoho                 {
   8032       1.1    jruoho                     Break       //  exit encompassing Package (If)
   8033       1.1    jruoho 
   8034       1.1    jruoho                     //  if we execute the next instruction,
   8035       1.1    jruoho                     //  Break did not exit the loop
   8036       1.1    jruoho                     Store (20, CNT0)    //  exit While loop with value larger
   8037       1.1    jruoho                                             //  than above
   8038       1.1    jruoho                 }
   8039       1.1    jruoho 
   8040       1.1    jruoho                 Increment (CNT0)    //  check if Break exited both If and While
   8041       1.1    jruoho             }   //  While
   8042       1.1    jruoho 
   8043       1.1    jruoho             If (LGreater (CNT0, 19))
   8044       1.1    jruoho             {   //  instruction after Break inside IfOp executed
   8045       1.1    jruoho                 Return (5)
   8046       1.1    jruoho             }
   8047       1.1    jruoho 
   8048       1.1    jruoho             //
   8049       1.1    jruoho             // Break will exit out of the while loop, therefore
   8050       1.1    jruoho             //  the CNT0 counter should still Increment until 5
   8051       1.1    jruoho             //
   8052       1.1    jruoho             If (LNotEqual (CNT0, 5))
   8053       1.1    jruoho             {   //  instruction after Break inside WhileOp executed
   8054       1.1    jruoho                 Return (6)
   8055       1.1    jruoho             }
   8056       1.1    jruoho             Store ("While/If/Break PASS", Debug)
   8057       1.1    jruoho 
   8058       1.1    jruoho 
   8059       1.1    jruoho             //  All the conditions passed
   8060       1.1    jruoho             Return (0)
   8061       1.1    jruoho         }   //  TEST
   8062       1.1    jruoho     }   //  WHLB
   8063       1.1    jruoho 
   8064       1.1    jruoho 
   8065       1.1    jruoho //
   8066       1.1    jruoho // test IndexOp2.asl
   8067       1.1    jruoho //
   8068       1.1    jruoho //  Additional IndexOp test cases to support ACPICMB (control method battery
   8069       1.1    jruoho //  test) on Toshiba Portege 7020CT. Test cases include appropriate bit
   8070       1.1    jruoho //  shifting of Field elements and reading Field elements greater than 64 bits.
   8071       1.1    jruoho //
   8072       1.1    jruoho // MTL NOTE: This test has been modified slightly from the original test
   8073       1.1    jruoho //  to take into account ACPI specification limitations.
   8074       1.1    jruoho //
   8075       1.1    jruoho     Scope (\_SB)    //  System Bus
   8076       1.1    jruoho     {   //  _SB system bus
   8077       1.1    jruoho 
   8078       1.1    jruoho         Device (MEM)
   8079       1.1    jruoho         {   //  MEM
   8080       1.1    jruoho             Name (_HID, 0x010CD041)
   8081       1.1    jruoho             Name (_STA, 0x0F)
   8082       1.1    jruoho 
   8083       1.1    jruoho             OperationRegion (SMEM, SystemMemory, 0x800000, 0x100)
   8084       1.1    jruoho             Field (SMEM, AnyAcc, NoLock, Preserve)
   8085       1.1    jruoho             {   //  Field:  SMEM overlay using 32-bit field elements
   8086       1.1    jruoho                 SMD0,   32, //  32-bits
   8087       1.1    jruoho                 SMD1,   32,     //  32-bits
   8088       1.1    jruoho                 SMD2,   32,     //  32-bits
   8089       1.1    jruoho                 SMD3,   32  //  32-bits
   8090       1.1    jruoho             }   //  Field:  SMEM overlay using 32-bit field elements
   8091       1.1    jruoho             Field (SMEM, AnyAcc, NoLock, Preserve)
   8092       1.1    jruoho             {   //  Field:  SMEM overlay using greater than 32-bit field elements
   8093       1.1    jruoho                 SME0,   69, //  larger than an integer (32 or 64)
   8094       1.1    jruoho                 SME1,   97  //  larger than an integer
   8095       1.1    jruoho             }   //  Field:  SMEM overlay using greater than 32-bit field elements
   8096       1.1    jruoho 
   8097       1.1    jruoho             OperationRegion (SRAM, SystemMemory, 0x100B0000, 0xF000)
   8098       1.1    jruoho             Field (SRAM, AnyAcc, NoLock, Preserve)
   8099       1.1    jruoho             {   //  Field:  SRAM overlay
   8100       1.1    jruoho                     ,   0x34000,    //  skip
   8101       1.1    jruoho                 IEAX,   0x20,
   8102       1.1    jruoho                 IEBX,   0x20,
   8103       1.1    jruoho                 IECX,   0x20,
   8104       1.1    jruoho                 IEDX,   0x20,
   8105       1.1    jruoho                 IESI,   0x20,
   8106       1.1    jruoho                 IEDI,   0x20,
   8107       1.1    jruoho                 IEBP,   0x20,
   8108       1.1    jruoho                     ,   0x20,
   8109       1.1    jruoho                 OEAX,   0x20,
   8110       1.1    jruoho                 OEBX,   0x20,
   8111       1.1    jruoho                 OECX,   0x20,
   8112       1.1    jruoho                 OEDX,   0x20,
   8113       1.1    jruoho                 OESI,   0x20,
   8114       1.1    jruoho                 OEDI,   0x20,
   8115       1.1    jruoho                 OEBP,   0x20,
   8116       1.1    jruoho                     ,   0x618,  //  skip
   8117       1.1    jruoho                 ACST,   1,
   8118       1.1    jruoho                 BES1,   1,
   8119       1.1    jruoho                 BES2,   1,
   8120       1.1    jruoho                     ,   5,          //  skip
   8121       1.1    jruoho                 BMN1,   0x68,
   8122       1.1    jruoho                 BSN1,   0x58,
   8123       1.1    jruoho                 BTP1,   0x48,
   8124       1.1    jruoho                 BPU1,   0x20,
   8125       1.1    jruoho                 BDC1,   0x20,
   8126       1.1    jruoho                 BLF1,   0x20,
   8127       1.1    jruoho                 BTC1,   0x20,
   8128       1.1    jruoho                 BDV1,   0x20,
   8129       1.1    jruoho                 BST1,   0x20,
   8130       1.1    jruoho                 BPR1,   0x20,
   8131       1.1    jruoho                 BRC1,   0x20,
   8132       1.1    jruoho                 BPV1,   0x20,
   8133       1.1    jruoho                     ,   0x20,
   8134       1.1    jruoho                 BCW1,   0x20,
   8135       1.1    jruoho                 BCL1,   0x20,
   8136       1.1    jruoho                 BG11,   0x20,
   8137       1.1    jruoho                 BG21,   0x20,
   8138       1.1    jruoho                 BOI1,   0x20,
   8139       1.1    jruoho                     ,   0x530,  //  skip
   8140       1.1    jruoho                 BMN2,   0x68,
   8141       1.1    jruoho                 BSN2,   0x58,
   8142       1.1    jruoho                 BTP2,   0x48,
   8143       1.1    jruoho                 BPU2,   0x20,
   8144       1.1    jruoho                 BDC2,   0x20,
   8145       1.1    jruoho                 BLF2,   0x20,
   8146       1.1    jruoho                 BTC2,   0x20,
   8147       1.1    jruoho                 BDV2,   0x20,
   8148       1.1    jruoho                 BST2,   0x20,
   8149       1.1    jruoho                 BPR2,   0x20,
   8150       1.1    jruoho                 BRC2,   0x20,
   8151       1.1    jruoho                 BPV2,   0x20,
   8152       1.1    jruoho                     ,   0x20,
   8153       1.1    jruoho                 BCW2,   0x20,
   8154       1.1    jruoho                 BCL2,   0x20,
   8155       1.1    jruoho                 BG12,   0x20,
   8156       1.1    jruoho                 BG22,   0x20,
   8157       1.1    jruoho                 BOI2,   0x20,
   8158       1.1    jruoho                     ,   0x518,  //  skip
   8159       1.1    jruoho                 AC01,   0x10,
   8160       1.1    jruoho                 AC11,   0x10,
   8161       1.1    jruoho                 PSV1,   0x10,
   8162       1.1    jruoho                 CRT1,   0x10,
   8163       1.1    jruoho                 TMP1,   0x10,
   8164       1.1    jruoho                 AST1,   0x10,
   8165       1.1    jruoho                 AC21,   0x10,
   8166       1.1    jruoho                 AC31,   0x10,
   8167       1.1    jruoho                 AC02,   0x10,
   8168       1.1    jruoho                 AC12,   0x10,
   8169       1.1    jruoho                 PSV2,   0x10,
   8170       1.1    jruoho                 CRT2,   0x10,
   8171       1.1    jruoho                 TMP2,   0x10,
   8172       1.1    jruoho                 AST2,   0x10,
   8173       1.1    jruoho                 AC22,   0x10,
   8174       1.1    jruoho                 AC32,   0x10,
   8175       1.1    jruoho                 AC03,   0x10,
   8176       1.1    jruoho                 AC13,   0x10,
   8177       1.1    jruoho                 PSV3,   0x10,
   8178       1.1    jruoho                 CRT3,   0x10,
   8179       1.1    jruoho                 TMP3,   0x10,
   8180       1.1    jruoho                 AST3,   0x10,
   8181       1.1    jruoho                 AC23,   0x10,
   8182       1.1    jruoho                 AC33,   0x10,
   8183       1.1    jruoho                     ,   0x80,       //  skip
   8184       1.1    jruoho                 TMPF,   0x10,
   8185       1.1    jruoho                     ,   0x570,  //  skip
   8186       1.1    jruoho                 FANH,   1,
   8187       1.1    jruoho                 FANL,   7,
   8188       1.1    jruoho                 TF11,   1,
   8189       1.1    jruoho                 TF21,   1,
   8190       1.1    jruoho                 TF31,   1,
   8191       1.1    jruoho                     ,   1,
   8192       1.1    jruoho                 TF10,   1,
   8193       1.1    jruoho                 TF20,   1,
   8194       1.1    jruoho                 TF30,   1,
   8195       1.1    jruoho                     ,   1,
   8196       1.1    jruoho                 TP11,   1,
   8197       1.1    jruoho                 TP21,   1,
   8198       1.1    jruoho                 TP31,   1,
   8199       1.1    jruoho                     ,   0x6D,   //  109
   8200       1.1    jruoho                 GP50,   1,
   8201       1.1    jruoho                 GP51,   1,
   8202       1.1    jruoho                 GP52,   1,
   8203       1.1    jruoho                 GP53,   1,
   8204       1.1    jruoho                     ,   4,
   8205       1.1    jruoho                 GP60,   1,
   8206       1.1    jruoho                 GP61,   1,
   8207       1.1    jruoho                 GP62,   1,
   8208       1.1    jruoho                 GP63,   1,
   8209       1.1    jruoho                 GP64,   1,
   8210       1.1    jruoho                 GP65,   1,
   8211       1.1    jruoho                 GP66,   1,
   8212       1.1    jruoho                     ,   1,
   8213       1.1    jruoho                 GP70,   1,
   8214       1.1    jruoho                 GP71,   1,
   8215       1.1    jruoho                 GP72,   1,
   8216       1.1    jruoho                 GP73,   1,
   8217       1.1    jruoho                 GP74,   1,
   8218       1.1    jruoho                 GP75,   1,
   8219       1.1    jruoho                 GP76,   1,
   8220       1.1    jruoho                     ,   1,
   8221       1.1    jruoho                 WED0,   1,
   8222       1.1    jruoho                 WED1,   1,
   8223       1.1    jruoho                 WED2,   1,
   8224       1.1    jruoho                 WED3,   1,
   8225       1.1    jruoho                 WED4,   1,
   8226       1.1    jruoho                     ,   3,
   8227       1.1    jruoho                 SBL0,   1,
   8228       1.1    jruoho                 SBL1,   1,
   8229       1.1    jruoho                 SBL2,   1,
   8230       1.1    jruoho                 SBL3,   1,
   8231       1.1    jruoho                     ,   4,
   8232       1.1    jruoho                 LIDS,   1,
   8233       1.1    jruoho                 VALF,   1,
   8234       1.1    jruoho                     ,   2,
   8235       1.1    jruoho                 DCKI,   1,
   8236       1.1    jruoho                 DCKF,   1,
   8237       1.1    jruoho                 BT1F,   1,
   8238       1.1    jruoho                 BT2F,   1,
   8239       1.1    jruoho                     ,   0x7D0,  //  skip
   8240       1.1    jruoho                 HKCD,   8,
   8241       1.1    jruoho                     ,   8,
   8242       1.1    jruoho                 DLID,   0x20,
   8243       1.1    jruoho                 DSRN,   0x20,
   8244       1.1    jruoho                     ,   0x20,
   8245       1.1    jruoho                 BDID,   0x20,
   8246       1.1    jruoho                 DSPW,   1,
   8247       1.1    jruoho                 VGAF,   1,
   8248       1.1    jruoho                 VWE0,   1,
   8249       1.1    jruoho                 VWE1,   1,
   8250       1.1    jruoho                 PPSC,   1,
   8251       1.1    jruoho                 SPSC,   1,
   8252       1.1    jruoho                 EWLD,   1,
   8253       1.1    jruoho                 EWPS,   1,
   8254       1.1    jruoho                     ,   0x1768, //  skip
   8255       1.1    jruoho                 PRES,   0x8000
   8256       1.1    jruoho             }   //  Field:  SRAM overlay
   8257       1.1    jruoho         }   //  MEM
   8258       1.1    jruoho 
   8259       1.1    jruoho         Device (BAT1)
   8260       1.1    jruoho         {   //  BAT1
   8261       1.1    jruoho             Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
   8262       1.1    jruoho             Name (_UID, 1)
   8263       1.1    jruoho             Name (_PCL, Package (1) {\_SB})
   8264       1.1    jruoho 
   8265       1.1    jruoho             Method (_STA)
   8266       1.1    jruoho             {   //  _STA
   8267       1.1    jruoho                 If (\_SB.MEM.BES1)
   8268       1.1    jruoho                     {   Return (0x1F)   }   //  battery present
   8269       1.1    jruoho                 Else
   8270       1.1    jruoho                     {   Return (0x0F)   }   //  battery not present
   8271       1.1    jruoho             }   //  _STA
   8272       1.1    jruoho 
   8273   1.1.1.3  christos             Method (_BIF,, Serialized)
   8274       1.1    jruoho             {   //  _BIF
   8275       1.1    jruoho                 Name (BUFR, Package (13)    {})
   8276       1.1    jruoho 
   8277       1.1    jruoho                 Store (\_SB.MEM.BPU1, Index (BUFR, 0))
   8278       1.1    jruoho                 Store (\_SB.MEM.BDC1, Index (BUFR, 1))
   8279       1.1    jruoho                 Store (\_SB.MEM.BLF1, Index (BUFR, 2))
   8280       1.1    jruoho                 Store (\_SB.MEM.BTC1, Index (BUFR, 3))
   8281       1.1    jruoho                 Store (\_SB.MEM.BDV1, Index (BUFR, 4))
   8282       1.1    jruoho                 Store (\_SB.MEM.BCW1, Index (BUFR, 5))
   8283       1.1    jruoho                 Store (\_SB.MEM.BCL1, Index (BUFR, 6))
   8284       1.1    jruoho                 Store (\_SB.MEM.BG11, Index (BUFR, 7))
   8285       1.1    jruoho                 Store (\_SB.MEM.BG21, Index (BUFR, 8))
   8286       1.1    jruoho                 Store (\_SB.MEM.BMN1, Index (BUFR, 9))
   8287       1.1    jruoho                 Store (\_SB.MEM.BSN1, Index (BUFR, 10))
   8288       1.1    jruoho                 Store (\_SB.MEM.BTP1, Index (BUFR, 11))
   8289       1.1    jruoho                 Store (\_SB.MEM.BOI1, Index (BUFR, 12))
   8290       1.1    jruoho 
   8291       1.1    jruoho                 Return (BUFR)
   8292       1.1    jruoho             }   //  _BIF
   8293       1.1    jruoho         }   //  BAT1
   8294       1.1    jruoho 
   8295       1.1    jruoho         Device (IDX2)
   8296       1.1    jruoho         {
   8297   1.1.1.3  christos             Method (B2IB,, Serialized)
   8298       1.1    jruoho             {   //  B2IB:   store from Buffer into Index'ed Buffer
   8299       1.1    jruoho 
   8300       1.1    jruoho                 Name (SRCB, Buffer ()   {"Short Buffer"})   //  12 characters plus NULL
   8301       1.1    jruoho 
   8302       1.1    jruoho                 Name (DEST, Buffer ()                           //  62 characters plus NULL
   8303       1.1    jruoho                     {"Destination buffer that is longer than the short source buffer"})
   8304       1.1    jruoho 
   8305       1.1    jruoho 
   8306       1.1    jruoho                 //  verify object type returned by Index(Buffer,Element,)
   8307       1.1    jruoho 
   8308       1.1    jruoho                 Store (Index (DEST, 2, ), Local1)
   8309       1.1    jruoho                 Store (ObjectType (Local1), Local2)
   8310       1.1    jruoho 
   8311       1.1    jruoho                 If (LNotEqual (Local2, 14))     //  Buffer Field is type 14
   8312       1.1    jruoho                 {
   8313       1.1    jruoho                     //  Local2 indicates Local1 is not a Buffer Field
   8314       1.1    jruoho 
   8315       1.1    jruoho                     Return (0x61)
   8316       1.1    jruoho                 }
   8317       1.1    jruoho 
   8318       1.1    jruoho                 //  verify object type and value returned by DerefOf(Index(Buffer,Element,))
   8319       1.1    jruoho                 //  should return Number containing element value
   8320       1.1    jruoho 
   8321       1.1    jruoho                 Store (DerefOf (Local1), Local3)
   8322       1.1    jruoho                 Store (ObjectType (Local3), Local4)
   8323       1.1    jruoho 
   8324       1.1    jruoho                 If (LNotEqual (Local4, 1))          //  Number is type 1
   8325       1.1    jruoho                 {
   8326       1.1    jruoho                     //  Local2 indicates Local1 is not a Number
   8327       1.1    jruoho                     Return (0x62)
   8328       1.1    jruoho                 }
   8329       1.1    jruoho                 Else
   8330       1.1    jruoho                 {
   8331       1.1    jruoho                     If (LNotEqual (Local3, 0x73))       //  expect 's' element from DEST
   8332       1.1    jruoho                     {
   8333       1.1    jruoho                         Return (0x63)
   8334       1.1    jruoho                     }
   8335       1.1    jruoho                 }
   8336       1.1    jruoho 
   8337       1.1    jruoho                 Store ("DerefOf(Index(Buffer,,)) PASS", Debug)
   8338       1.1    jruoho 
   8339       1.1    jruoho 
   8340       1.1    jruoho                 //
   8341       1.1    jruoho                 // The following sections have been rewritten because storing into
   8342       1.1    jruoho                 // an Indexed buffer only changes one byte - the FIRST byte of the
   8343   1.1.1.9  christos                 // buffer is written to the source index. This is the ONLY byte
   8344       1.1    jruoho                 // written -- as per ACPI 2.0
   8345       1.1    jruoho                 //
   8346       1.1    jruoho                 // Overwrite DEST contents, at buffer position 2 [only]
   8347       1.1    jruoho 
   8348       1.1    jruoho                 Store (SRCB, Index (DEST, 2, ))
   8349       1.1    jruoho 
   8350       1.1    jruoho                 //
   8351       1.1    jruoho                 // Check that the next byte is not changed
   8352       1.1    jruoho                 //
   8353       1.1    jruoho                 Store (DerefOf (Index (DEST, 3, )), Local0)
   8354       1.1    jruoho                 If (LNotEqual (Local0, 0x74))       //  't'
   8355       1.1    jruoho                 {
   8356       1.1    jruoho                     //  DEST element is not matching original value
   8357       1.1    jruoho                     If (LEqual (Local0, 0x68))
   8358       1.1    jruoho                     {
   8359       1.1    jruoho                         //  DEST element was altered to 'h'
   8360       1.1    jruoho                         Return (0x68)
   8361       1.1    jruoho                     }
   8362       1.1    jruoho                     Else
   8363       1.1    jruoho                     {
   8364       1.1    jruoho                         // DEST element is an unknown value
   8365       1.1    jruoho                         Return (0x69)
   8366       1.1    jruoho                     }
   8367       1.1    jruoho                 }
   8368       1.1    jruoho 
   8369       1.1    jruoho                 //
   8370       1.1    jruoho                 // Check that the elements beyond the SRCB buffer copy
   8371       1.1    jruoho                 //  have not been altered.
   8372       1.1    jruoho                 //
   8373       1.1    jruoho                 Store (DerefOf (Index (DEST, 14)), Local0)
   8374       1.1    jruoho 
   8375       1.1    jruoho                 //
   8376       1.1    jruoho                 // This should be an 'f'.
   8377       1.1    jruoho                 //
   8378       1.1    jruoho                 If (LNotEqual (Local0, 0x66))
   8379       1.1    jruoho                 {
   8380       1.1    jruoho                     //  DEST element was zero'd by buffer copy
   8381       1.1    jruoho                     If (LEqual (Local0, 0))
   8382       1.1    jruoho                     {
   8383       1.1    jruoho                         //  DEST element is zero
   8384       1.1    jruoho                         Return (0x6A)
   8385       1.1    jruoho                     }
   8386       1.1    jruoho                     Else
   8387       1.1    jruoho                     {
   8388       1.1    jruoho                         //  DEST element is unknown value
   8389       1.1    jruoho                         Return (0x6B)
   8390       1.1    jruoho                     }
   8391       1.1    jruoho                 }
   8392       1.1    jruoho 
   8393       1.1    jruoho                 Store ("Store(SRCB,Index(Buffer,,)) PASS", Debug)
   8394       1.1    jruoho 
   8395       1.1    jruoho                 //
   8396       1.1    jruoho                 //  verify altering SRCB does NOT alter DEST
   8397       1.1    jruoho                 //
   8398       1.1    jruoho                 Store (0x6A, Index (SRCB, 1))   //  SRCB = "Sjort Buffer"
   8399       1.1    jruoho 
   8400       1.1    jruoho                 Store (DerefOf (Index (SRCB, 1)), Local0)
   8401       1.1    jruoho 
   8402       1.1    jruoho                 If (LNotEqual (Local0, 0x6A))       //  'j'
   8403       1.1    jruoho                 {
   8404       1.1    jruoho                     //  SRCB element is unaltered
   8405       1.1    jruoho                     Return (0x71)
   8406       1.1    jruoho                 }
   8407       1.1    jruoho 
   8408       1.1    jruoho                 Store (DerefOf (Index (DEST, 3)), Local0) // DEST = "Destination buffer that...
   8409       1.1    jruoho 
   8410       1.1    jruoho                 If (LNotEqual (Local0, 0x74))       //  't'
   8411       1.1    jruoho                 {
   8412       1.1    jruoho                     //  DEST element is altered
   8413       1.1    jruoho                     If (LEqual (Local0, 0x6A))  //  'j'
   8414       1.1    jruoho                     {
   8415       1.1    jruoho                         //  SRCB change altered DEST element
   8416       1.1    jruoho                         Return (0x72)
   8417       1.1    jruoho                     }
   8418       1.1    jruoho                     Else
   8419       1.1    jruoho                     {
   8420       1.1    jruoho                         //  DEST element is unknown value
   8421       1.1    jruoho                         Return (0x73)
   8422       1.1    jruoho                     }
   8423       1.1    jruoho                 }
   8424       1.1    jruoho 
   8425       1.1    jruoho                 //  verify altering DEST does NOT alter SRCB
   8426       1.1    jruoho 
   8427       1.1    jruoho                 Store (0x6B, Index (DEST, 4, )) //  DEST = "DeSkination buffer..."
   8428       1.1    jruoho 
   8429       1.1    jruoho                 Store (DerefOf (Index (DEST, 4, )), Local0)
   8430       1.1    jruoho 
   8431       1.1    jruoho                 If (LNotEqual (Local0, 0x6B))       //  'k'
   8432       1.1    jruoho                 {
   8433       1.1    jruoho                     //  DEST element is unaltered
   8434       1.1    jruoho                     Return (0x74)
   8435       1.1    jruoho                 }
   8436       1.1    jruoho 
   8437       1.1    jruoho                 Store (DerefOf (Index (SRCB, 2, )), Local0)
   8438       1.1    jruoho 
   8439       1.1    jruoho                 If (LNotEqual (Local0, 0x6F))       //  'o'
   8440       1.1    jruoho                 {   //  SRC element is altered
   8441       1.1    jruoho                     If (LEqual (Local0, 0x6B))  //  'k'
   8442       1.1    jruoho                     {
   8443       1.1    jruoho                         //  DEST change altered SRCB element
   8444       1.1    jruoho                         Return (0x75)
   8445       1.1    jruoho                     }
   8446       1.1    jruoho                     Else
   8447       1.1    jruoho                     {
   8448       1.1    jruoho                         //  SRCB element is unknown value
   8449       1.1    jruoho                         Return (0x76)
   8450       1.1    jruoho                     }
   8451       1.1    jruoho                 }
   8452       1.1    jruoho 
   8453       1.1    jruoho                 Store ("SRCB and DEST independent PASS", Debug)
   8454       1.1    jruoho 
   8455       1.1    jruoho 
   8456       1.1    jruoho                 // verify string can be written to Index target/destination
   8457       1.1    jruoho                 // Only FIRST byte is written
   8458       1.1    jruoho 
   8459       1.1    jruoho                 Store ("New Buff", Index (DEST, 2, ))   //  DEST = "DeNkination buffer..."
   8460       1.1    jruoho 
   8461       1.1    jruoho                 Store (DerefOf (Index (DEST, 2, )), Local0)
   8462       1.1    jruoho 
   8463       1.1    jruoho                 If (LNotEqual (Local0, 0x4E))       //  'N'
   8464       1.1    jruoho                 {
   8465       1.1    jruoho                     //  DEST element is unaltered
   8466       1.1    jruoho                     Return (0x81)
   8467       1.1    jruoho                 }
   8468       1.1    jruoho 
   8469       1.1    jruoho                 Store (DerefOf (Index (DEST, 6, )), Local0)
   8470       1.1    jruoho 
   8471       1.1    jruoho                 If (LNotEqual (Local0, 0x61))       //  'a'
   8472       1.1    jruoho                 {
   8473       1.1    jruoho                     //  DEST element is unaltered
   8474       1.1    jruoho                     Return (0x82)
   8475       1.1    jruoho                 }
   8476       1.1    jruoho 
   8477       1.1    jruoho                 Store (DerefOf (Index (DEST, 10, )), Local0)
   8478       1.1    jruoho 
   8479       1.1    jruoho                 If (LNotEqual (Local0, 0x6E))       //  'n'
   8480       1.1    jruoho                 {
   8481       1.1    jruoho                     //  DEST element is unaltered
   8482       1.1    jruoho                     Return (0x83)
   8483       1.1    jruoho                 }
   8484       1.1    jruoho 
   8485       1.1    jruoho                 Store ("Store(String,Index) PASS", Debug)
   8486       1.1    jruoho 
   8487       1.1    jruoho 
   8488       1.1    jruoho                 Return (0)  //  pass
   8489       1.1    jruoho             }   //  B2IB:   store from Buffer into Index'ed Buffer
   8490       1.1    jruoho 
   8491   1.1.1.3  christos             Method (FB2P,, Serialized)
   8492       1.1    jruoho             {   //  FB2P:   store from Field Buffer into Index'ed Package
   8493       1.1    jruoho                 Name (DEST, Package (2) {})
   8494       1.1    jruoho 
   8495       1.1    jruoho                 //  initialize memory using 32-bit field elements
   8496       1.1    jruoho                 Store (0x01234567, \_SB.MEM.SMD0)
   8497       1.1    jruoho                 Store (0x89ABCDEF, \_SB.MEM.SMD1)
   8498       1.1    jruoho                 Store (0xFEDCBA98, \_SB.MEM.SMD2)
   8499       1.1    jruoho                 Store (0x76543210, \_SB.MEM.SMD3)
   8500       1.1    jruoho 
   8501       1.1    jruoho                 //  move greater than 64-bit buffers into DEST package
   8502       1.1    jruoho                 Store (\_SB.MEM.SME0, Index (DEST, 0))
   8503       1.1    jruoho                 Store (\_SB.MEM.SME1, Index (DEST, 1))
   8504       1.1    jruoho 
   8505       1.1    jruoho                 //  validate DEST contents
   8506       1.1    jruoho                 Store (DerefOf (Index (DEST, 0, )), Local0)
   8507       1.1    jruoho                 Store (DerefOf (Index (DEST, 1, )), Local1)
   8508       1.1    jruoho 
   8509       1.1    jruoho                 //  verify Local0 and Local1 are Buffers
   8510       1.1    jruoho                 Store (ObjectType (Local0), Local2)
   8511       1.1    jruoho                 if (LNotEqual (Local2, 3))  //  Buffer type is 3
   8512       1.1    jruoho                 {
   8513       1.1    jruoho                     Return (0x11)
   8514       1.1    jruoho                 }
   8515       1.1    jruoho 
   8516       1.1    jruoho                 Store (ObjectType (Local1), Local3)
   8517       1.1    jruoho                 if (LNotEqual (Local3, 3))  //  Buffer type is 3
   8518       1.1    jruoho                 {
   8519       1.1    jruoho                     Return (0x12)
   8520       1.1    jruoho                 }
   8521       1.1    jruoho 
   8522       1.1    jruoho                 //  validate DEST buffer contents
   8523       1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 0)), Local4)
   8524       1.1    jruoho                 If (LNotEqual (Local4, 0x67))
   8525       1.1    jruoho                 {
   8526       1.1    jruoho                     Return (0x13)
   8527       1.1    jruoho                 }
   8528       1.1    jruoho 
   8529       1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 1)), Local4)
   8530       1.1    jruoho                 If (LNotEqual (Local4, 0x45))
   8531       1.1    jruoho                 {
   8532       1.1    jruoho                     Return (0x14)
   8533       1.1    jruoho                 }
   8534       1.1    jruoho 
   8535       1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 4)), Local4)
   8536       1.1    jruoho                 If (LNotEqual (Local4, 0xEF))
   8537       1.1    jruoho                 {
   8538       1.1    jruoho                     Return (0x15)
   8539       1.1    jruoho                 }
   8540       1.1    jruoho 
   8541       1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 5, )), Local4)
   8542       1.1    jruoho                 If (LNotEqual (Local4, 0xCD))
   8543       1.1    jruoho                 {
   8544       1.1    jruoho                     Return (0x16)
   8545       1.1    jruoho                 }
   8546       1.1    jruoho 
   8547       1.1    jruoho                 Store ("Store(Mem,PkgElement) PASS", Debug)
   8548       1.1    jruoho 
   8549       1.1    jruoho 
   8550       1.1    jruoho                 //  validate changing source \_SB.MEM.SMD* does not impact DEST
   8551       1.1    jruoho                 Store (0x12345678, \_SB.MEM.SMD0)
   8552       1.1    jruoho 
   8553       1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 0, )), Local5)
   8554       1.1    jruoho                 If (LNotEqual (Local5, 0x67))
   8555       1.1    jruoho                 {
   8556       1.1    jruoho                     Return (0x21)
   8557       1.1    jruoho                 }
   8558       1.1    jruoho 
   8559       1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 1, )), Local5)
   8560       1.1    jruoho                 If (LNotEqual (Local5, 0x45))
   8561       1.1    jruoho                 {
   8562       1.1    jruoho                     Return (0x22)
   8563       1.1    jruoho                 }
   8564       1.1    jruoho 
   8565       1.1    jruoho                 //  validate changing DEST does not impact source \_SB.MEM.SMD*
   8566       1.1    jruoho                 Store (0x30, Index (DerefOf (Index (DEST, 0)), 0))
   8567       1.1    jruoho 
   8568       1.1    jruoho                 Store (DerefOf(Index (DerefOf (Index (DEST, 0)), 0)), Local5)
   8569       1.1    jruoho                 If (LNotEqual (Local5, 0x30))
   8570       1.1    jruoho                 {
   8571       1.1    jruoho                     Return (0x23)
   8572       1.1    jruoho                 }
   8573       1.1    jruoho 
   8574       1.1    jruoho                 //
   8575       1.1    jruoho                 // This section was modified from the original iPCO code because
   8576   1.1.1.9  christos                 //  it attempted to compare two buffers. This is not allowed until
   8577       1.1    jruoho                 //  ACPI v2.0, so the test has been modified to just check the
   8578       1.1    jruoho                 //  changed \_SB.MEM.SMD0
   8579       1.1    jruoho                 //
   8580       1.1    jruoho                 Store (\_SB.MEM.SMD0, Local5)
   8581       1.1    jruoho 
   8582       1.1    jruoho                 If(LNotEqual(Local5, 0x12345678))
   8583       1.1    jruoho                 {
   8584       1.1    jruoho                     Return (0x24)
   8585       1.1    jruoho                 }
   8586       1.1    jruoho 
   8587       1.1    jruoho                 Store ("Mem and Pkg independent PASS", Debug)
   8588       1.1    jruoho 
   8589       1.1    jruoho 
   8590       1.1    jruoho                 Return (0)
   8591       1.1    jruoho             }   //  FB2P:   store from Field Buffer into Index'ed Package
   8592       1.1    jruoho 
   8593       1.1    jruoho             Method (TEST)
   8594       1.1    jruoho             {
   8595       1.1    jruoho                 Store ("++++++++ IndexOp2 Test", Debug)
   8596       1.1    jruoho 
   8597       1.1    jruoho                 //  store _BIF package return value into Local0
   8598       1.1    jruoho 
   8599       1.1    jruoho                 Store (\_SB.BAT1._BIF, Local0)
   8600       1.1    jruoho 
   8601       1.1    jruoho                 //  save Local0 object type value into Local1
   8602       1.1    jruoho                 Store (ObjectType (Local0), Local1)
   8603       1.1    jruoho 
   8604       1.1    jruoho                 //  validate Local0 is a Package
   8605       1.1    jruoho                 If (LNotEqual (Local1, 4))  //  Package type is 4
   8606       1.1    jruoho                 {
   8607       1.1    jruoho                     //  failure
   8608       1.1    jruoho                     Return (2)
   8609       1.1    jruoho                 }
   8610       1.1    jruoho 
   8611       1.1    jruoho                 //  validate source and destination buffers are independent of each
   8612       1.1    jruoho                 //  of each other (i.e., changing one's contents does not change
   8613       1.1    jruoho                 //  other's contents) using B2IB (store from Buffer into Index'ed
   8614       1.1    jruoho                 //  Buffer) and FB2P (store from Field Buffer into Index'ed Package)
   8615       1.1    jruoho 
   8616       1.1    jruoho                 //  call B2IB (store from Buffer into Index'ed Buffer)
   8617       1.1    jruoho                 Store (B2IB, Local2)    //  Local2 is B2IB return value
   8618       1.1    jruoho 
   8619       1.1    jruoho                 //  save Local2 object type value into Local3
   8620       1.1    jruoho                 Store (ObjectType (Local2), Local3)
   8621       1.1    jruoho 
   8622       1.1    jruoho                 //  validate Local2 is a Number
   8623       1.1    jruoho                 If (LNotEqual (Local3, 1))  //  Number type is 1
   8624       1.1    jruoho                 {
   8625       1.1    jruoho                     //  failure
   8626       1.1    jruoho                     Return (4)
   8627       1.1    jruoho                 }
   8628       1.1    jruoho 
   8629       1.1    jruoho                 //  zero indicates pass, non-zero is an error code
   8630       1.1    jruoho                 If (LNotEqual (Local2, 0))
   8631       1.1    jruoho                 {
   8632       1.1    jruoho                     //  return B2IB error code
   8633       1.1    jruoho                     Return (Local2)
   8634       1.1    jruoho                 }
   8635       1.1    jruoho 
   8636       1.1    jruoho                 //  call FB2P (store from Field Buffer into Index'ed Package)
   8637       1.1    jruoho                 Store (FB2P, Local2)    //  Local2 is FB2P return value
   8638       1.1    jruoho 
   8639       1.1    jruoho                 //  save Local2 object type value into Local3
   8640       1.1    jruoho                 Store (ObjectType (Local2), Local3)
   8641       1.1    jruoho 
   8642       1.1    jruoho                 //  validate Local2 is a Number
   8643       1.1    jruoho                 If (LNotEqual (Local3, 1))  //  Number type is 1
   8644       1.1    jruoho                 {
   8645       1.1    jruoho                     //  failure
   8646       1.1    jruoho                     Return (5)
   8647       1.1    jruoho                 }
   8648       1.1    jruoho 
   8649       1.1    jruoho                 //  zero indicates pass, non-zero is an error code
   8650       1.1    jruoho                 If (LNotEqual (Local2, 0))
   8651       1.1    jruoho                 {
   8652       1.1    jruoho                     //  return FB2P error code
   8653       1.1    jruoho                     Return (Local2)
   8654       1.1    jruoho                 }
   8655       1.1    jruoho 
   8656       1.1    jruoho 
   8657       1.1    jruoho                 Return (0)
   8658       1.1    jruoho             }   //  TEST
   8659       1.1    jruoho         }   //  IDX2:   Test device name
   8660       1.1    jruoho     }   //  _SB system bus
   8661       1.1    jruoho 
   8662       1.1    jruoho //
   8663       1.1    jruoho // test SizeOf.asl
   8664       1.1    jruoho //
   8665       1.1    jruoho //  Test for SizeOf
   8666       1.1    jruoho //      test cases include following SizeOf arguments:
   8667       1.1    jruoho //          buffer, buffer field;
   8668       1.1    jruoho //          control method argument, control method local variable;
   8669       1.1    jruoho //          control method return values;
   8670       1.1    jruoho //          direct string, string;
   8671       1.1    jruoho //          package;
   8672       1.1    jruoho //          buffer, package, and string package elements
   8673       1.1    jruoho //
   8674       1.1    jruoho // MTL NOTE: This test has been modified to remove any SizeOf(Index(Buff,...
   8675       1.1    jruoho //  calls because it is not legal to perform a SizeOf operation on a Buffer Field.
   8676       1.1    jruoho //  This test has also been extended to test additional Package element sizes.
   8677       1.1    jruoho //
   8678       1.1    jruoho     Device (SIZO)
   8679       1.1    jruoho     {
   8680       1.1    jruoho         //  SAR0 control method validates SizeOf(Arg)
   8681       1.1    jruoho         //      SAR0 should only be called by SARG
   8682       1.1    jruoho         Method (SAR0, 2)
   8683       1.1    jruoho         //  Arg0    object to determine size of
   8684       1.1    jruoho         //  Arg1    expected Arg length
   8685       1.1    jruoho         {   //  SAR0:   SizeOf(Arg) test control method
   8686       1.1    jruoho             //  Local0  Arg0 length
   8687       1.1    jruoho             //  Local1  Local0 object type
   8688       1.1    jruoho 
   8689       1.1    jruoho             //  Store first string size (Arg0) into Local7
   8690       1.1    jruoho             Store (SizeOf (Arg0), Local0)
   8691       1.1    jruoho 
   8692       1.1    jruoho             //  save Local0 object type value into Local1
   8693       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8694       1.1    jruoho 
   8695       1.1    jruoho             //  validate Local0 is a Number
   8696       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8697       1.1    jruoho                 {   Return (0x21)   }
   8698       1.1    jruoho 
   8699       1.1    jruoho             //  If strings are not of equal size, return error code
   8700       1.1    jruoho             If (LNotEqual (Local0, Arg1))
   8701       1.1    jruoho                 {   Return (0x22)   }
   8702       1.1    jruoho 
   8703       1.1    jruoho             Return (0)
   8704       1.1    jruoho         }   //  SAR0:   SizeOf(Arg) test control method
   8705       1.1    jruoho 
   8706   1.1.1.3  christos         Method (SARG,, Serialized)
   8707       1.1    jruoho         {   //  SARG:   SizeOf(Arg) test control method
   8708       1.1    jruoho             Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
   8709       1.1    jruoho             Name (BUF1, Buffer() {0x01, 0x02, 0x03, 0x04, 0x05})
   8710       1.1    jruoho             Name (PKG0, Package (4) {}) //  uninitialized Package
   8711       1.1    jruoho             Name (STR0, "String")
   8712       1.1    jruoho             Name (PKG1, Package (4)
   8713       1.1    jruoho             {
   8714       1.1    jruoho                 BUFR,
   8715       1.1    jruoho                 "String2",
   8716       1.1    jruoho                 STR0,
   8717       1.1    jruoho                 PKG0
   8718       1.1    jruoho             })  //  PKG1
   8719       1.1    jruoho 
   8720       1.1    jruoho             Name (PKG2, Package (4)
   8721       1.1    jruoho             {
   8722       1.1    jruoho                 Buffer (15) {},
   8723       1.1    jruoho                 "String 1",
   8724       1.1    jruoho                 Package (2) {}
   8725       1.1    jruoho             })  //  PKG2
   8726       1.1    jruoho 
   8727       1.1    jruoho             //  Namespace entry buffer reference
   8728       1.1    jruoho             Store (SAR0 (BUFR, 12), Local0)
   8729       1.1    jruoho 
   8730       1.1    jruoho             //  save Local0 object type value into Local1
   8731       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8732       1.1    jruoho 
   8733       1.1    jruoho             //  validate Local0 is a Number
   8734       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8735       1.1    jruoho             {
   8736       1.1    jruoho                 Return (0x23)
   8737       1.1    jruoho             }
   8738       1.1    jruoho 
   8739       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8740       1.1    jruoho             {
   8741       1.1    jruoho                 Return (Local0)
   8742       1.1    jruoho             }
   8743       1.1    jruoho 
   8744       1.1    jruoho             Store ("SizeOf(Arg=BUFR) PASS", Debug)
   8745       1.1    jruoho 
   8746       1.1    jruoho 
   8747       1.1    jruoho             //  Namespace entry package reference
   8748       1.1    jruoho             Store (SAR0 (PKG0, 4), Local0)
   8749       1.1    jruoho 
   8750       1.1    jruoho             //  save Local0 object type value into Local1
   8751       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8752       1.1    jruoho 
   8753       1.1    jruoho             //  validate Local0 is a Number
   8754       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8755       1.1    jruoho             {
   8756       1.1    jruoho                 Return (0x24)
   8757       1.1    jruoho             }
   8758       1.1    jruoho 
   8759       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8760       1.1    jruoho             {
   8761       1.1    jruoho                 Return (Local0)
   8762       1.1    jruoho             }
   8763       1.1    jruoho 
   8764       1.1    jruoho             Store ("SizeOf(Arg=PKG0) PASS", Debug)
   8765       1.1    jruoho 
   8766       1.1    jruoho 
   8767       1.1    jruoho             //  Namespace entry string reference
   8768       1.1    jruoho             Store (SAR0 (STR0, 6), Local0)
   8769       1.1    jruoho 
   8770       1.1    jruoho             //  save Local0 object type value into Local1
   8771       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8772       1.1    jruoho 
   8773       1.1    jruoho             //  validate Local0 is a Number
   8774       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8775       1.1    jruoho             {
   8776       1.1    jruoho                 Return (0x25)
   8777       1.1    jruoho             }
   8778       1.1    jruoho 
   8779       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8780       1.1    jruoho             {
   8781       1.1    jruoho                 Return (Local0)
   8782       1.1    jruoho             }
   8783       1.1    jruoho 
   8784       1.1    jruoho             Store ("SizeOf(Arg=STR0) PASS", Debug)
   8785       1.1    jruoho 
   8786       1.1    jruoho 
   8787       1.1    jruoho             //  direct string reference
   8788       1.1    jruoho             Store (SAR0 ("String", 6), Local0)
   8789       1.1    jruoho 
   8790       1.1    jruoho             //  save Local0 object type value into Local1
   8791       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8792       1.1    jruoho 
   8793       1.1    jruoho             //  validate Local0 is a Number
   8794       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8795       1.1    jruoho             {
   8796       1.1    jruoho                 Return (0x26)
   8797       1.1    jruoho             }
   8798       1.1    jruoho 
   8799       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8800       1.1    jruoho             {
   8801       1.1    jruoho                 Return (Local0)
   8802       1.1    jruoho             }
   8803       1.1    jruoho 
   8804       1.1    jruoho             Store ("SizeOf(Arg=String) PASS", Debug)
   8805       1.1    jruoho 
   8806       1.1    jruoho             Store (0x55, Index (BUF1, 2))
   8807       1.1    jruoho 
   8808       1.1    jruoho             /****************************************************
   8809       1.1    jruoho             //
   8810       1.1    jruoho             // This section is commented because it is illegal to
   8811       1.1    jruoho             //  perform a SizeOf operation on a Buffer Field
   8812       1.1    jruoho             //
   8813       1.1    jruoho             //  Namespace BufferField reference
   8814       1.1    jruoho             Store (SAR0 (Index (BUFR, 2, ), 10), Local0)
   8815       1.1    jruoho 
   8816       1.1    jruoho             //  save Local0 object type value into Local1
   8817       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8818       1.1    jruoho 
   8819       1.1    jruoho             //  validate Local0 is a Number
   8820       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8821       1.1    jruoho                 {   Return (0x27)   }
   8822       1.1    jruoho 
   8823       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8824       1.1    jruoho                 {   Return (Local0) }
   8825       1.1    jruoho 
   8826       1.1    jruoho             Store ("SizeOf(Arg=BufferField) PASS", Debug)
   8827       1.1    jruoho             ****************************************************/
   8828       1.1    jruoho 
   8829       1.1    jruoho             //  Namespace BufferPackageElement reference
   8830       1.1    jruoho             //
   8831       1.1    jruoho             Store (SAR0 (Index(PKG1, 0), 12), Local0)
   8832       1.1    jruoho 
   8833       1.1    jruoho             //  save Local0 object type value into Local1
   8834       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8835       1.1    jruoho 
   8836       1.1    jruoho             //  validate Local0 is a Number
   8837       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8838       1.1    jruoho             {
   8839       1.1    jruoho                 Return (0x28)
   8840       1.1    jruoho             }
   8841       1.1    jruoho 
   8842       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8843       1.1    jruoho             {
   8844       1.1    jruoho                 Return (Local0)
   8845       1.1    jruoho             }
   8846       1.1    jruoho 
   8847       1.1    jruoho             Store ("SizeOf(Arg=PackageBuffer NTE Reference Element) PASS", Debug)
   8848       1.1    jruoho 
   8849       1.1    jruoho 
   8850       1.1    jruoho             //  Namespace StringPackageElement reference
   8851       1.1    jruoho             Store (SAR0 (Index (PKG1, 1, ), 7), Local0)
   8852       1.1    jruoho 
   8853       1.1    jruoho             //  save Local0 object type value into Local1
   8854       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8855       1.1    jruoho 
   8856       1.1    jruoho             //  validate Local0 is a Number
   8857       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8858       1.1    jruoho             {
   8859       1.1    jruoho                 Return (0x29)
   8860       1.1    jruoho             }
   8861       1.1    jruoho 
   8862       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8863       1.1    jruoho             {
   8864       1.1    jruoho                 Return (Local0)
   8865       1.1    jruoho             }
   8866       1.1    jruoho 
   8867       1.1    jruoho             Store ("SizeOf(Arg=Package String Element) PASS", Debug)
   8868       1.1    jruoho 
   8869       1.1    jruoho 
   8870       1.1    jruoho             //  Namespace StringPackageElement reference
   8871       1.1    jruoho             Store (SAR0 (Index (PKG1, 2, ), 6), Local0)
   8872       1.1    jruoho 
   8873       1.1    jruoho             //  save Local0 object type value into Local1
   8874       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8875       1.1    jruoho 
   8876       1.1    jruoho             //  validate Local0 is a Number
   8877       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8878       1.1    jruoho             {
   8879       1.1    jruoho                 Return (0x2A)
   8880       1.1    jruoho             }
   8881       1.1    jruoho 
   8882       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8883       1.1    jruoho             {
   8884       1.1    jruoho                 Return (Local0)
   8885       1.1    jruoho             }
   8886       1.1    jruoho 
   8887       1.1    jruoho             Store ("SizeOf(Arg=Package String NTE Reference Element) PASS", Debug)
   8888       1.1    jruoho 
   8889       1.1    jruoho 
   8890       1.1    jruoho             //  Namespace PackagePackageElement reference
   8891       1.1    jruoho             Store (SAR0 (Index (PKG1, 3, ), 4), Local0)
   8892       1.1    jruoho 
   8893       1.1    jruoho             //  save Local0 object type value into Local1
   8894       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8895       1.1    jruoho 
   8896       1.1    jruoho             //  validate Local0 is a Number
   8897       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8898       1.1    jruoho             {
   8899       1.1    jruoho                 Return (0x2B)
   8900       1.1    jruoho             }
   8901       1.1    jruoho 
   8902       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8903       1.1    jruoho             {
   8904       1.1    jruoho                 Return (Local0)
   8905       1.1    jruoho             }
   8906       1.1    jruoho 
   8907       1.1    jruoho             Store ("SizeOf(Arg=Package Package NTE Reference Element) PASS", Debug)
   8908       1.1    jruoho 
   8909       1.1    jruoho             // Package Buffer Element
   8910       1.1    jruoho             Store (SAR0 (Index (PKG2, 0), 15), Local0)
   8911       1.1    jruoho 
   8912       1.1    jruoho             //  save Local0 object type value into Local1
   8913       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8914       1.1    jruoho 
   8915       1.1    jruoho             //  validate Local0 is a Number
   8916       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8917       1.1    jruoho             {
   8918       1.1    jruoho                 Return (0x2B)
   8919       1.1    jruoho             }
   8920       1.1    jruoho 
   8921       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8922       1.1    jruoho             {
   8923       1.1    jruoho                 Return (Local0)
   8924       1.1    jruoho             }
   8925       1.1    jruoho 
   8926       1.1    jruoho             Store ("SizeOf(Arg=Package Buffer Element) PASS", Debug)
   8927       1.1    jruoho 
   8928       1.1    jruoho             // Package String Element
   8929       1.1    jruoho             Store (SAR0 (Index (PKG2, 1), 8), Local0)
   8930       1.1    jruoho 
   8931       1.1    jruoho             //  save Local0 object type value into Local1
   8932       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8933       1.1    jruoho 
   8934       1.1    jruoho             //  validate Local0 is a Number
   8935       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8936       1.1    jruoho             {
   8937       1.1    jruoho                 Return (0x2B)
   8938       1.1    jruoho             }
   8939       1.1    jruoho 
   8940       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8941       1.1    jruoho             {
   8942       1.1    jruoho                 Return (Local0)
   8943       1.1    jruoho             }
   8944       1.1    jruoho 
   8945       1.1    jruoho             Store ("SizeOf(Arg=Package String Element) PASS", Debug)
   8946       1.1    jruoho 
   8947       1.1    jruoho             // Package Package Element
   8948       1.1    jruoho             Store (SAR0 (Index (PKG2, 2), 2), Local0)
   8949       1.1    jruoho 
   8950       1.1    jruoho             //  save Local0 object type value into Local1
   8951       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8952       1.1    jruoho 
   8953       1.1    jruoho             //  validate Local0 is a Number
   8954       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8955       1.1    jruoho             {
   8956       1.1    jruoho                 Return (0x2B)
   8957       1.1    jruoho             }
   8958       1.1    jruoho 
   8959       1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8960       1.1    jruoho             {
   8961       1.1    jruoho                 Return (Local0)
   8962       1.1    jruoho             }
   8963       1.1    jruoho 
   8964       1.1    jruoho             Store ("SizeOf(Arg=Package Package Element) PASS", Debug)
   8965       1.1    jruoho 
   8966       1.1    jruoho             Store ("SizeOf(Arg) PASS", Debug)
   8967       1.1    jruoho 
   8968       1.1    jruoho             Return (0)
   8969       1.1    jruoho         }   //  SARG:   SizeOf(Arg) test control method
   8970       1.1    jruoho 
   8971   1.1.1.3  christos         Method (SBUF,, Serialized)
   8972       1.1    jruoho         {   //  SBUF:   SizeOf(Buffer) test control method
   8973       1.1    jruoho             Name (BUFR, Buffer (12) {})
   8974       1.1    jruoho 
   8975       1.1    jruoho             //  store size of BUFR buffer into Local0
   8976       1.1    jruoho             Store (SizeOf (BUFR), Local0)
   8977       1.1    jruoho 
   8978       1.1    jruoho             //  save Local0 object type value into Local1
   8979       1.1    jruoho             Store (ObjectType (Local0), Local1)
   8980       1.1    jruoho 
   8981       1.1    jruoho             //  validate Local0 is a Number
   8982       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8983       1.1    jruoho             {
   8984       1.1    jruoho                 Return (0x31)
   8985       1.1    jruoho             }
   8986       1.1    jruoho 
   8987       1.1    jruoho             If (LNotEqual (Local0, 12))     //  BUFR size is 12
   8988       1.1    jruoho             {
   8989       1.1    jruoho                 Return (0x32)
   8990       1.1    jruoho             }
   8991       1.1    jruoho 
   8992       1.1    jruoho             Store ("SizeOf(BUFR) PASS", Debug)
   8993       1.1    jruoho 
   8994       1.1    jruoho             Return (0)
   8995       1.1    jruoho         }   //  SBUF:   SizeOf(Buffer) test control method
   8996       1.1    jruoho 
   8997       1.1    jruoho 
   8998       1.1    jruoho         /****************************************************
   8999       1.1    jruoho         //
   9000       1.1    jruoho         // This section is commented because it is illegal to
   9001       1.1    jruoho         //  perform a SizeOf operation on a Buffer Field
   9002       1.1    jruoho         //
   9003       1.1    jruoho         Method (SIND)
   9004       1.1    jruoho         {   //  SIND:   SizeOf(Index(,,)) test control method
   9005       1.1    jruoho             Name (BUFR, Buffer (12) {})
   9006       1.1    jruoho 
   9007       1.1    jruoho             //  store size of Index(BUFR,2,) buffer into Local0
   9008       1.1    jruoho             Store (SizeOf (Index (BUFR, 2, )), Local0)
   9009       1.1    jruoho 
   9010       1.1    jruoho             //  save Local0 object type value into Local1
   9011       1.1    jruoho             Store (ObjectType (Local0), Local1)
   9012       1.1    jruoho 
   9013       1.1    jruoho             //  validate Local0 is a Number
   9014       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9015       1.1    jruoho             {
   9016       1.1    jruoho                 Return (0x41)
   9017       1.1    jruoho             }
   9018       1.1    jruoho 
   9019       1.1    jruoho             If (LNotEqual (Local0, 10))     //  12 - 2 = 10
   9020       1.1    jruoho             {
   9021       1.1    jruoho                 Return (0x42)
   9022       1.1    jruoho             }
   9023       1.1    jruoho 
   9024       1.1    jruoho             Store ("SizeOf(Index(BUFR,,)) PASS", Debug)
   9025       1.1    jruoho 
   9026       1.1    jruoho             //  TBD:    strings and packages
   9027       1.1    jruoho 
   9028       1.1    jruoho             Return (0)
   9029       1.1    jruoho         }   //  SIND:   SizeOf(Index(,,)) test control method
   9030       1.1    jruoho         ****************************************************/
   9031       1.1    jruoho 
   9032   1.1.1.3  christos         Method (SLOC,, Serialized)
   9033       1.1    jruoho         {   //  SLOC:   SizeOf(Local) test control method
   9034       1.1    jruoho             Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
   9035       1.1    jruoho             Name (STR0, "String")
   9036       1.1    jruoho             Name (PKG0, Package (4) {}) //  uninitialized Package
   9037       1.1    jruoho 
   9038       1.1    jruoho 
   9039       1.1    jruoho             //  store BUFR Buffer into Local2
   9040       1.1    jruoho             Store (BUFR, Local2)
   9041       1.1    jruoho 
   9042       1.1    jruoho             //  store size of BUFR buffer into Local0
   9043       1.1    jruoho             Store (SizeOf (Local2), Local0)
   9044       1.1    jruoho 
   9045       1.1    jruoho             //  save Local0 object type value into Local1
   9046       1.1    jruoho             Store (ObjectType (Local0), Local1)
   9047       1.1    jruoho 
   9048       1.1    jruoho             //  validate Local0 is a Number
   9049       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9050       1.1    jruoho             {
   9051       1.1    jruoho                 Return (0x51)
   9052       1.1    jruoho             }
   9053       1.1    jruoho 
   9054       1.1    jruoho             If (LNotEqual (Local0, 12)) //  BUFR size is 12
   9055       1.1    jruoho             {
   9056       1.1    jruoho                 Return (0x52)
   9057       1.1    jruoho             }
   9058       1.1    jruoho 
   9059       1.1    jruoho             Store ("SizeOf(Local2=Buffer) PASS", Debug)
   9060       1.1    jruoho 
   9061       1.1    jruoho 
   9062       1.1    jruoho             //  store STR0 string into Local2
   9063       1.1    jruoho             Store (STR0, Local2)
   9064       1.1    jruoho 
   9065       1.1    jruoho             //  store size of STR0 buffer into Local0
   9066       1.1    jruoho             Store (SizeOf (Local2), Local0)
   9067       1.1    jruoho 
   9068       1.1    jruoho             //  save Local0 object type value into Local1
   9069       1.1    jruoho             Store (ObjectType (Local0), Local1)
   9070       1.1    jruoho 
   9071       1.1    jruoho             //  validate Local0 is a Number
   9072       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9073       1.1    jruoho             {
   9074       1.1    jruoho                 Return (0x53)
   9075       1.1    jruoho             }
   9076       1.1    jruoho 
   9077       1.1    jruoho             If (LNotEqual (Local0, 6))      //  STR0 size is 6
   9078       1.1    jruoho             {
   9079       1.1    jruoho                 Return (0x54)
   9080       1.1    jruoho             }
   9081       1.1    jruoho 
   9082       1.1    jruoho             Store ("SizeOf(Local2=String) PASS", Debug)
   9083       1.1    jruoho 
   9084       1.1    jruoho 
   9085       1.1    jruoho             //  store PKG0 Package into Local2
   9086       1.1    jruoho             Store (PKG0, Local2)
   9087       1.1    jruoho 
   9088       1.1    jruoho             //  store size of PKG0 buffer into Local0
   9089       1.1    jruoho             Store (SizeOf (Local2), Local0)
   9090       1.1    jruoho 
   9091       1.1    jruoho             //  save Local0 object type value into Local1
   9092       1.1    jruoho             Store (ObjectType (Local0), Local1)
   9093       1.1    jruoho 
   9094       1.1    jruoho             //  validate Local0 is a Number
   9095       1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9096       1.1    jruoho             {
   9097       1.1    jruoho                 Return (0x55)
   9098       1.1    jruoho             }
   9099       1.1    jruoho 
   9100       1.1    jruoho             If (LNotEqual (Local0, 4))      //  PKG0 size is 4
   9101       1.1    jruoho             {
   9102       1.1    jruoho                 Return (0x56)
   9103       1.1    jruoho             }
   9104       1.1    jruoho 
   9105       1.1    jruoho             Store ("SizeOf(Local2=Package) PASS", Debug)
   9106       1.1    jruoho 
   9107       1.1    jruoho 
   9108       1.1    jruoho             Return (0)
   9109       1.1    jruoho         }   //  SLOC:   SizeOf(Local) test control method
   9110       1.1    jruoho 
   9111       1.1    jruoho         Method (TEST)
   9112       1.1    jruoho         {
   9113       1.1    jruoho             Store ("++++++++ SizeOf Test", Debug)
   9114       1.1    jruoho 
   9115       1.1    jruoho             //  Store current operating system string into Local0
   9116       1.1    jruoho             Store (_OS, Local0)
   9117       1.1    jruoho 
   9118       1.1    jruoho             Store (SizeOf (_OS), Local3)
   9119       1.1    jruoho 
   9120       1.1    jruoho             //  save Local3 object type value into Local4
   9121       1.1    jruoho             Store (ObjectType (Local3), Local4)
   9122       1.1    jruoho 
   9123       1.1    jruoho             //  validate Local3 is a Number
   9124       1.1    jruoho             If (LNotEqual (Local4, 1))  //  Number type is 1
   9125       1.1    jruoho             {
   9126       1.1    jruoho                 //  failure
   9127       1.1    jruoho                 Return (0x61)
   9128       1.1    jruoho             }
   9129       1.1    jruoho 
   9130       1.1    jruoho             //  Store current operating system string into Local0
   9131       1.1    jruoho             //  This verifies above SizeOf(_OS) did not corrupt ACPI namespace
   9132       1.1    jruoho             Store (_OS, Local0)
   9133       1.1    jruoho 
   9134       1.1    jruoho             //  Store SARG [Validate SizeOf(Arg)] return value into Local1
   9135       1.1    jruoho             Store (SARG, Local1)
   9136       1.1    jruoho 
   9137       1.1    jruoho             //  save Local1 object type value into Local2
   9138       1.1    jruoho             Store (ObjectType (Local1), Local2)
   9139       1.1    jruoho 
   9140       1.1    jruoho             //  validate Local1 is a Number
   9141       1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9142       1.1    jruoho             {
   9143       1.1    jruoho                 //  failure
   9144       1.1    jruoho                 Return (0x62)
   9145       1.1    jruoho             }
   9146       1.1    jruoho 
   9147       1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9148       1.1    jruoho             If (LNotEqual (Local1, 0))
   9149       1.1    jruoho             {
   9150       1.1    jruoho                 //  return SARG error code
   9151       1.1    jruoho                 Return (Local1)
   9152       1.1    jruoho             }
   9153       1.1    jruoho 
   9154       1.1    jruoho 
   9155       1.1    jruoho             //  Store SBUF [Validate SizeOf(Buffer)] return value into Local1
   9156       1.1    jruoho             Store (SBUF, Local1)
   9157       1.1    jruoho 
   9158       1.1    jruoho             //  save Local1 object type value into Local2
   9159       1.1    jruoho             Store (ObjectType (Local1), Local2)
   9160       1.1    jruoho 
   9161       1.1    jruoho             //  validate Local1 is a Number
   9162       1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9163       1.1    jruoho             {
   9164       1.1    jruoho                 //  failure
   9165       1.1    jruoho                 Return (0x63)
   9166       1.1    jruoho             }
   9167       1.1    jruoho 
   9168       1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9169       1.1    jruoho             If (LNotEqual (Local1, 0))
   9170       1.1    jruoho             {
   9171       1.1    jruoho                 //  return SBUF error code
   9172       1.1    jruoho                 Return (Local1)
   9173       1.1    jruoho             }
   9174       1.1    jruoho 
   9175       1.1    jruoho             /****************************************************
   9176       1.1    jruoho             //
   9177       1.1    jruoho             // This section is commented because it is illegal to
   9178       1.1    jruoho             //  perform a SizeOf operation on a Buffer Field
   9179       1.1    jruoho             //
   9180       1.1    jruoho             //  Store SIND [verify SizeOf(Index(,,))] return value into Local1
   9181       1.1    jruoho             Store (SIND, Local1)
   9182       1.1    jruoho 
   9183       1.1    jruoho             //  save Local1 object type value into Local2
   9184       1.1    jruoho             Store (ObjectType (Local1), Local2)
   9185       1.1    jruoho 
   9186       1.1    jruoho             //  validate Local1 is a Number
   9187       1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9188       1.1    jruoho             {
   9189       1.1    jruoho                 //  failure
   9190       1.1    jruoho                 Return (0x64)
   9191       1.1    jruoho             }
   9192       1.1    jruoho 
   9193       1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9194       1.1    jruoho             If (LNotEqual (Local1, 0))
   9195       1.1    jruoho             {
   9196       1.1    jruoho                 //  return SARG error code
   9197       1.1    jruoho                 Return (Local1)
   9198       1.1    jruoho             }
   9199       1.1    jruoho             ****************************************************/
   9200       1.1    jruoho 
   9201       1.1    jruoho             //  Store SLOC [verify SizeOf(Local)] return value into Local1
   9202       1.1    jruoho             Store (SLOC, Local1)
   9203       1.1    jruoho 
   9204       1.1    jruoho             //  save Local1 object type value into Local2
   9205       1.1    jruoho             Store (ObjectType (Local1), Local2)
   9206       1.1    jruoho 
   9207       1.1    jruoho             //  validate Local1 is a Number
   9208       1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9209       1.1    jruoho             {
   9210       1.1    jruoho                 //  failure
   9211       1.1    jruoho                 Return (0x65)
   9212       1.1    jruoho             }
   9213       1.1    jruoho 
   9214       1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9215       1.1    jruoho             If (LNotEqual (Local1, 0))
   9216       1.1    jruoho             {
   9217       1.1    jruoho                 //  return SLOC error code
   9218       1.1    jruoho                 Return (Local1)
   9219       1.1    jruoho             }
   9220       1.1    jruoho 
   9221       1.1    jruoho 
   9222       1.1    jruoho             //  TBD:    SizeOf (METH) -- where METH control method returns
   9223       1.1    jruoho             //              buffer, BufferField, string, package, package element
   9224       1.1    jruoho 
   9225       1.1    jruoho 
   9226       1.1    jruoho             Return (0)
   9227       1.1    jruoho         }   //  TEST
   9228       1.1    jruoho     }   //  SIZO
   9229       1.1    jruoho 
   9230       1.1    jruoho //
   9231       1.1    jruoho // test SmiShare.asl
   9232       1.1    jruoho //
   9233       1.1    jruoho     Scope (\_SB)    //  System Bus
   9234       1.1    jruoho     {   //  _SB system bus
   9235       1.1    jruoho         //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
   9236       1.1    jruoho         OperationRegion(RAM1, SystemMemory, 0x400000, 0xA)
   9237       1.1    jruoho 
   9238       1.1    jruoho         Field (RAM1, AnyAcc, NoLock, Preserve)
   9239       1.1    jruoho         {
   9240       1.1    jruoho             BI1T, 1,        // Create some bits in memory to access
   9241       1.1    jruoho             BI2T, 2,
   9242       1.1    jruoho             BI3T, 3,
   9243       1.1    jruoho             LST2, 2
   9244       1.1    jruoho         }   //  End Field RAM1
   9245       1.1    jruoho 
   9246       1.1    jruoho         Field (RAM1, WordAcc, NoLock, WriteAsZeros)
   9247       1.1    jruoho         {
   9248       1.1    jruoho             WRD, 16
   9249       1.1    jruoho         }   //  End 2nd Field RAM1
   9250       1.1    jruoho 
   9251       1.1    jruoho         Field (RAM1, ByteAcc, NoLock, WriteAsOnes)
   9252       1.1    jruoho         {
   9253       1.1    jruoho             BYTE, 8
   9254       1.1    jruoho         }   //  End 3rd Field RAM1
   9255       1.1    jruoho 
   9256       1.1    jruoho         Field (RAM1, ByteAcc, NoLock, Preserve)
   9257       1.1    jruoho         {
   9258       1.1    jruoho             SMIC, 8,
   9259       1.1    jruoho             SMID, 8
   9260       1.1    jruoho         }
   9261       1.1    jruoho 
   9262       1.1    jruoho         Device (MBIT)
   9263       1.1    jruoho         {
   9264       1.1    jruoho             Method (_INI)
   9265       1.1    jruoho             {
   9266       1.1    jruoho                 Store (0, BI1T)
   9267       1.1    jruoho                 Store (3, BI2T)
   9268       1.1    jruoho                 Store (7, BI3T)
   9269       1.1    jruoho                 Store (0, LST2)
   9270       1.1    jruoho             }   //  End _INI Method
   9271       1.1    jruoho         }   //  End Device MBIT
   9272       1.1    jruoho 
   9273       1.1    jruoho         Device (MWRD)
   9274       1.1    jruoho         {
   9275       1.1    jruoho             Method (_INI)
   9276       1.1    jruoho             {
   9277       1.1    jruoho                 Store (0, WRD)
   9278       1.1    jruoho             }   //  End _INI Method
   9279       1.1    jruoho         }   //  End Device MWRD
   9280       1.1    jruoho 
   9281       1.1    jruoho         Device (MBYT)
   9282       1.1    jruoho         {
   9283       1.1    jruoho             Method (_INI)
   9284       1.1    jruoho             {
   9285       1.1    jruoho                 Store (0, BYTE)
   9286       1.1    jruoho                 Store (0xC, SMIC)
   9287       1.1    jruoho                 Store (0xD, SMID)
   9288       1.1    jruoho             }   //  End _INI Method
   9289       1.1    jruoho         }   //  End Device MBYT
   9290       1.1    jruoho 
   9291       1.1    jruoho     /*
   9292       1.1    jruoho         //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
   9293       1.1    jruoho         OperationRegion(\RAM1, SystemMemory, 0x400000, 0xA)
   9294       1.1    jruoho 
   9295       1.1    jruoho         Field (\RAM1, AnyAcc, NoLock, Preserve)
   9296       1.1    jruoho         {
   9297       1.1    jruoho             BI1T, 1,        // Create some bits in memory to access
   9298       1.1    jruoho             BI2T, 2,
   9299       1.1    jruoho             BI3T, 3,
   9300       1.1    jruoho             LST2, 2
   9301       1.1    jruoho         }   //  End Field RAM1
   9302       1.1    jruoho 
   9303       1.1    jruoho         Field (\RAM1, WordAcc, NoLock, WriteAsZeros)
   9304       1.1    jruoho         {
   9305       1.1    jruoho             WRD, 16
   9306       1.1    jruoho         }   //  End 2nd Field RAM1
   9307       1.1    jruoho 
   9308       1.1    jruoho         Field (\RAM1, ByteAcc, NoLock, WriteAsOnes)
   9309       1.1    jruoho         {
   9310       1.1    jruoho             BYTE, 8
   9311       1.1    jruoho         }   //  End 3rd Field RAM1
   9312       1.1    jruoho 
   9313       1.1    jruoho         Field (\RAM1, ByteAcc, NoLock, Preserve)
   9314       1.1    jruoho         {
   9315       1.1    jruoho             SMIC, 8,
   9316       1.1    jruoho             SMID, 8
   9317       1.1    jruoho         }
   9318       1.1    jruoho     */
   9319       1.1    jruoho         Method (SMIX)
   9320       1.1    jruoho         {
   9321       1.1    jruoho             Return (BYTE)
   9322       1.1    jruoho         }   //  End SMIX
   9323       1.1    jruoho 
   9324       1.1    jruoho         Method (EVNT)
   9325       1.1    jruoho         {
   9326       1.1    jruoho             Store (SMIX, Local0)
   9327       1.1    jruoho 
   9328   1.1.1.3  christos             Notify (\_SB_, 0x29)
   9329       1.1    jruoho             If (And (Local0, 0x01))
   9330       1.1    jruoho             {   Notify (\_SB_.SMIS, 0x21)}
   9331       1.1    jruoho 
   9332       1.1    jruoho             If (And (Local0, 0x02))
   9333       1.1    jruoho             {   Notify (\_SB_.SMIS, 0x22)}
   9334       1.1    jruoho 
   9335       1.1    jruoho             If (And (Local0, 0x04))
   9336       1.1    jruoho             {   Notify (\_SB_.SMIS, 0x24)}
   9337       1.1    jruoho 
   9338       1.1    jruoho             If (And (Local0, 0x08))
   9339       1.1    jruoho             {   Notify (\_SB_.SMIS, 0x28)}
   9340       1.1    jruoho 
   9341       1.1    jruoho         }   //  End Method EVNT
   9342       1.1    jruoho 
   9343   1.1.1.3  christos         Method (NTFY)
   9344   1.1.1.3  christos         {
   9345   1.1.1.3  christos             Notify (\_SB_, 1)
   9346   1.1.1.3  christos             Notify (\_TZ_.TZ1, 2)
   9347   1.1.1.3  christos             Notify (\_PR_.CPU0, 3)
   9348   1.1.1.3  christos 
   9349   1.1.1.3  christos             Notify (\_SB_, 0x81)
   9350   1.1.1.3  christos             Notify (\_TZ_.TZ1, 0x82)
   9351   1.1.1.3  christos             Notify (\_PR_.CPU0, 0x83)
   9352   1.1.1.3  christos         }
   9353   1.1.1.3  christos 
   9354       1.1    jruoho         Device (SMIS)
   9355       1.1    jruoho         {
   9356       1.1    jruoho             Method (BINK)
   9357       1.1    jruoho             {
   9358       1.1    jruoho                 Store (0, Local0)               //  Zero out Local0
   9359       1.1    jruoho 
   9360       1.1    jruoho                 If (LNotEqual (SMID, 0xD))
   9361       1.1    jruoho                 {   Or (0x80, Local0, Local0)}
   9362       1.1    jruoho 
   9363       1.1    jruoho                 If (LNotEqual (SMIC, 0xC))
   9364       1.1    jruoho                 {   Or (0x40, Local0, Local0)}
   9365       1.1    jruoho 
   9366       1.1    jruoho                 If (LNotEqual (BYTE, 0))
   9367       1.1    jruoho                 {   Or (0x20, Local0, Local0)}
   9368       1.1    jruoho 
   9369       1.1    jruoho                 If (LNotEqual (WRD, 0))
   9370       1.1    jruoho                 {   Or (0x10, Local0, Local0)}
   9371       1.1    jruoho 
   9372       1.1    jruoho                 If (LNotEqual (LST2, 0))
   9373       1.1    jruoho                 {   Or (0x8, Local0, Local0)}
   9374       1.1    jruoho 
   9375       1.1    jruoho                 If (LNotEqual (BI3T, 0x7))
   9376       1.1    jruoho                 {   Or (0x4, Local0, Local0)}
   9377       1.1    jruoho 
   9378       1.1    jruoho                 If (LNotEqual (BI2T, 0x3))
   9379       1.1    jruoho                 {   Or (0x2, Local0, Local0)}
   9380       1.1    jruoho 
   9381       1.1    jruoho                 If (LNotEqual (BI1T, 0))
   9382       1.1    jruoho                 {   Or (0x1, Local0, Local0)}
   9383       1.1    jruoho 
   9384       1.1    jruoho                 Return (Local0)
   9385       1.1    jruoho             }   //  End Method BINK
   9386       1.1    jruoho 
   9387       1.1    jruoho             Method (TEST)
   9388       1.1    jruoho             {
   9389       1.1    jruoho                 Store ("++++++++ SmiShare Test", Debug)
   9390       1.1    jruoho 
   9391       1.1    jruoho                 //  Expect EVNT to generate Notify value we just previously
   9392       1.1    jruoho                 //  stored in BYTE
   9393   1.1.1.3  christos 
   9394       1.1    jruoho                 Store (0x20, BYTE)
   9395       1.1    jruoho                 EVNT ()
   9396       1.1    jruoho                 Store (0x21, BYTE)
   9397       1.1    jruoho                 EVNT ()
   9398       1.1    jruoho                 Store (0x22, BYTE)
   9399       1.1    jruoho                 EVNT ()
   9400       1.1    jruoho                 Store (0x23, BYTE)
   9401       1.1    jruoho                 EVNT ()
   9402       1.1    jruoho 
   9403   1.1.1.3  christos                 NTFY ()
   9404       1.1    jruoho                 Return (0)  //  pass
   9405       1.1    jruoho             }   //  End Method TEST
   9406       1.1    jruoho         }   //  Device SMIS
   9407       1.1    jruoho 
   9408       1.1    jruoho         Device(CNDT)
   9409       1.1    jruoho         {
   9410       1.1    jruoho             Method(TEST)
   9411       1.1    jruoho             {
   9412       1.1    jruoho                 If (ECOK)
   9413       1.1    jruoho                 {
   9414       1.1    jruoho                     return("Broken")
   9415       1.1    jruoho                 }
   9416       1.1    jruoho                 Else
   9417       1.1    jruoho                 {
   9418       1.1    jruoho                     return("Works")
   9419       1.1    jruoho                 }
   9420       1.1    jruoho             }
   9421       1.1    jruoho 
   9422       1.1    jruoho             Method(ECOK)
   9423       1.1    jruoho             {
   9424       1.1    jruoho                 Return(0x0)
   9425       1.1    jruoho             }
   9426       1.1    jruoho         }
   9427       1.1    jruoho 
   9428       1.1    jruoho     }   //  _SB system bus
   9429       1.1    jruoho 
   9430       1.1    jruoho 
   9431       1.1    jruoho /* Test a very big buffer */
   9432       1.1    jruoho 
   9433       1.1    jruoho     Name(WQAB, Buffer(6756)
   9434       1.1    jruoho     {
   9435       1.1    jruoho         0x46,0x4F,0x4D,0x42,0x01,0x00,0x00,0x00,
   9436       1.1    jruoho         0x54,0x1A,0x00,0x00,0xBA,0xAD,0x00,0x00,
   9437       1.1    jruoho         0x44,0x53,0x00,0x01,0x1A,0x7D,0xDA,0x54,
   9438       1.1    jruoho         0x98,0xBD,0x92,0x00,0x01,0x06,0x18,0x42,
   9439       1.1    jruoho         0x10,0x47,0x10,0x92,0x46,0x62,0x02,0x89,
   9440       1.1    jruoho         0x80,0x90,0x18,0x18,0x14,0x81,0x85,0x00,
   9441       1.1    jruoho         0x49,0x02,0x88,0xC4,0x41,0xE1,0x20,0xD4,
   9442       1.1    jruoho         0x9F,0x40,0x7E,0x05,0x20,0x74,0x28,0x40,
   9443       1.1    jruoho         0xA6,0x00,0x83,0x02,0x9C,0x22,0x88,0xA0,
   9444       1.1    jruoho         0x57,0x01,0x36,0x05,0x98,0x14,0x60,0x51,
   9445       1.1    jruoho         0x80,0x76,0x01,0x96,0x05,0xE8,0x16,0x20,
   9446       1.1    jruoho         0x1D,0x96,0x88,0x04,0x47,0x89,0x01,0x47,
   9447       1.1    jruoho         0xE9,0xC4,0x16,0x6E,0xD8,0xE0,0x85,0xA2,
   9448       1.1    jruoho         0x68,0x06,0x51,0x12,0x94,0x8B,0x20,0x5D,
   9449       1.1    jruoho         0x10,0x52,0x2E,0xC0,0x37,0x82,0x06,0x10,
   9450       1.1    jruoho         0xA5,0x77,0x01,0xB6,0x05,0x98,0x86,0x27,
   9451       1.1    jruoho         0xD2,0x20,0xE4,0x60,0x08,0x54,0xCE,0x80,
   9452       1.1    jruoho         0x20,0x69,0x44,0x21,0x1E,0xA7,0x44,0x08,
   9453       1.1    jruoho         0x0A,0x84,0x90,0xD4,0xF1,0xA0,0xA0,0x71,
   9454       1.1    jruoho         0x88,0xAD,0xCE,0x46,0x93,0xA9,0x74,0x7E,
   9455       1.1    jruoho         0x48,0x82,0x70,0xC6,0x2A,0x7E,0x3A,0x9A,
   9456       1.1    jruoho         0xD0,0xD9,0x9C,0x60,0xE7,0x18,0x72,0x3C,
   9457       1.1    jruoho         0x48,0xF4,0x20,0xB8,0x00,0x0F,0x1C,0x2C,
   9458       1.1    jruoho         0x34,0x84,0x22,0x6B,0x80,0xC1,0x8C,0xDD,
   9459       1.1    jruoho         0x63,0xB1,0x0B,0x4E,0x0A,0xEC,0x61,0xB3,
   9460       1.1    jruoho         0x01,0x19,0xA2,0x24,0x38,0xD4,0x11,0xC0,
   9461       1.1    jruoho         0x12,0x05,0x98,0x1F,0x87,0x0C,0x0F,0x95,
   9462       1.1    jruoho         0x8C,0x25,0x24,0x1B,0xAB,0x87,0xC2,0xA5,
   9463       1.1    jruoho         0x40,0x68,0x6C,0x27,0xED,0x19,0x45,0x2C,
   9464       1.1    jruoho         0x79,0x4A,0x82,0x49,0xE0,0x51,0x44,0x36,
   9465       1.1    jruoho         0x1A,0x27,0x28,0x1B,0x1A,0x25,0x03,0x42,
   9466       1.1    jruoho         0x9E,0x05,0x58,0x07,0x26,0x04,0x76,0x2F,
   9467       1.1    jruoho         0xC0,0x9A,0x00,0x73,0xB3,0x90,0xB1,0xB9,
   9468       1.1    jruoho         0xE8,0xFF,0x0F,0x71,0xB0,0x31,0xDA,0x9A,
   9469       1.1    jruoho         0xAE,0x90,0xC2,0xC4,0x88,0x12,0x2C,0x5E,
   9470       1.1    jruoho         0xC5,0xC3,0x10,0xCA,0x93,0x42,0xA8,0x48,
   9471       1.1    jruoho         0x95,0xA1,0x68,0xB4,0x51,0x2A,0x14,0xE0,
   9472       1.1    jruoho         0x4C,0x80,0x30,0x5C,0x1D,0x03,0x82,0x46,
   9473       1.1    jruoho         0x88,0x15,0x29,0x56,0xFB,0x83,0x20,0xF1,
   9474       1.1    jruoho         0x2D,0x40,0x54,0x01,0xA2,0x48,0xA3,0x41,
   9475       1.1    jruoho         0x9D,0x03,0x3C,0x5C,0x0F,0xF5,0xF0,0x3D,
   9476       1.1    jruoho         0xF6,0x93,0x0C,0x72,0x90,0x67,0xF1,0xA8,
   9477       1.1    jruoho         0x70,0x9C,0x06,0x49,0xE0,0x0B,0x80,0x4F,
   9478       1.1    jruoho         0x08,0x1E,0x38,0xDE,0x35,0xA0,0x66,0x7C,
   9479       1.1    jruoho         0xBC,0x4C,0x10,0x1C,0x6A,0x88,0x1E,0x68,
   9480       1.1    jruoho         0xB8,0x13,0x38,0x44,0x06,0xE8,0x49,0x3D,
   9481       1.1    jruoho         0x52,0x60,0x07,0x77,0x32,0xEF,0x01,0xAF,
   9482       1.1    jruoho         0x0A,0xCD,0x5E,0x12,0x08,0xC1,0xF1,0xF8,
   9483       1.1    jruoho         0x7E,0xC0,0x26,0x9C,0xC0,0xF2,0x07,0x81,
   9484       1.1    jruoho         0x1A,0x99,0xA1,0x3D,0xCA,0xD3,0x8A,0x19,
   9485       1.1    jruoho         0xF2,0x31,0xC1,0x04,0x16,0x0B,0x21,0x05,
   9486       1.1    jruoho         0x10,0x1A,0x0F,0xF8,0x6F,0x00,0x8F,0x17,
   9487       1.1    jruoho         0xBE,0x12,0xC4,0xF6,0x80,0x12,0x0C,0x0B,
   9488       1.1    jruoho         0x21,0x23,0xAB,0xF0,0x78,0xE8,0x28,0x7C,
   9489       1.1    jruoho         0x95,0x38,0x9C,0xD3,0x8A,0x67,0x82,0xE1,
   9490       1.1    jruoho         0x20,0xF4,0x05,0x90,0x00,0x51,0xE7,0x0C,
   9491       1.1    jruoho         0xD4,0x61,0xC1,0xE7,0x04,0x76,0x33,0x38,
   9492       1.1    jruoho         0x83,0x47,0x00,0x8F,0xE4,0x84,0xFC,0x2B,
   9493       1.1    jruoho         0xF1,0xC0,0xE0,0x03,0xE2,0xEF,0x1F,0xA7,
   9494       1.1    jruoho         0xEC,0x11,0x9C,0xA9,0x01,0x7D,0x1C,0xF0,
   9495       1.1    jruoho         0xFF,0x7F,0x28,0x7C,0x88,0x1E,0xDF,0x29,
   9496       1.1    jruoho         0x1F,0xAF,0x4F,0x17,0x96,0x35,0x4E,0xE8,
   9497       1.1    jruoho         0x77,0x08,0x9F,0x38,0x7C,0x64,0x71,0x44,
   9498       1.1    jruoho         0x08,0x39,0x39,0x05,0xA0,0x81,0x4F,0xF7,
   9499       1.1    jruoho         0xEC,0x22,0x9C,0xAE,0x27,0xE5,0x40,0xC3,
   9500       1.1    jruoho         0xA0,0xE3,0x04,0xC7,0x79,0x00,0x1C,0xE3,
   9501       1.1    jruoho         0x84,0x7F,0x2E,0x80,0x3F,0x40,0x7E,0xCA,
   9502       1.1    jruoho         0x78,0xC5,0x48,0xE0,0x98,0x23,0x44,0x9F,
   9503       1.1    jruoho         0x6B,0x3C,0x42,0x2C,0xFC,0x53,0x45,0xE1,
   9504       1.1    jruoho         0x03,0x21,0x63,0x04,0x17,0xA0,0xC7,0x08,
   9505       1.1    jruoho         0x7C,0x03,0x8E,0x11,0x7D,0x94,0xE0,0xEA,
   9506       1.1    jruoho         0x0F,0x1A,0x74,0x80,0xB8,0xFF,0xFF,0x00,
   9507       1.1    jruoho         0xE1,0x83,0x7A,0x80,0xC0,0x37,0xFA,0xD1,
   9508       1.1    jruoho         0x03,0x3D,0x2E,0x8B,0x3E,0x0F,0xC8,0xF8,
   9509       1.1    jruoho         0x89,0x46,0xF3,0xE2,0xA7,0x03,0x7E,0xF8,
   9510       1.1    jruoho         0x00,0x0F,0xA8,0x87,0x84,0x03,0xC5,0x4C,
   9511       1.1    jruoho         0x9B,0x83,0x3E,0xBB,0x1C,0x3A,0x76,0xB8,
   9512       1.1    jruoho         0xE0,0x3F,0x81,0x80,0x4B,0xDE,0x21,0x0C,
   9513       1.1    jruoho         0x14,0x23,0xC6,0x9F,0x83,0x7C,0x0A,0x03,
   9514       1.1    jruoho         0xFF,0xFF,0xFF,0x14,0x06,0xFE,0xE1,0xF0,
   9515       1.1    jruoho         0x20,0x4F,0x07,0x9F,0xB6,0xA8,0x74,0x18,
   9516       1.1    jruoho         0xD4,0x81,0x0B,0xB0,0x32,0x89,0x08,0xCF,
   9517       1.1    jruoho         0x12,0xB5,0x41,0xE8,0xD4,0xF0,0x36,0xF1,
   9518       1.1    jruoho         0xB6,0xE5,0x5B,0x40,0x9C,0xD3,0xEC,0xED,
   9519       1.1    jruoho         0xC0,0x45,0x30,0x22,0xD4,0x0C,0x45,0x4E,
   9520       1.1    jruoho         0x5A,0x11,0x63,0x44,0x79,0xDC,0x32,0xCA,
   9521       1.1    jruoho         0xDB,0xD6,0x0B,0x40,0xBC,0x13,0x7B,0xDE,
   9522       1.1    jruoho         0x32,0x46,0xF0,0xC8,0x0F,0x5C,0x2C,0xC6,
   9523       1.1    jruoho         0xEA,0xF5,0x5F,0xF3,0x81,0x0B,0x70,0xF6,
   9524       1.1    jruoho         0xFF,0x3F,0x70,0x01,0x1C,0x0A,0x7A,0x18,
   9525       1.1    jruoho         0x42,0x0F,0xC3,0x53,0x39,0x97,0x87,0xC8,
   9526       1.1    jruoho         0x53,0x89,0x18,0x35,0x4C,0xD4,0x67,0x28,
   9527       1.1    jruoho         0xDF,0x2D,0x7C,0x20,0x02,0xDF,0x99,0x0B,
   9528       1.1    jruoho         0xF8,0xFD,0xFF,0x0F,0x44,0x70,0x8E,0x29,
   9529       1.1    jruoho         0xB8,0x33,0x0D,0x78,0x7C,0xCE,0x40,0x20,
   9530       1.1    jruoho         0xA7,0xE2,0x43,0x0D,0x60,0x41,0xF4,0x13,
   9531       1.1    jruoho         0xC2,0x27,0x1A,0x2A,0x13,0x06,0x75,0xA8,
   9532       1.1    jruoho         0x01,0xAC,0x5C,0x61,0x9E,0x46,0xCF,0xF9,
   9533       1.1    jruoho         0x59,0xC6,0xA7,0x1A,0x1F,0x4A,0x8D,0x63,
   9534       1.1    jruoho         0x88,0x97,0x99,0x87,0x1A,0x1F,0x0B,0x5E,
   9535       1.1    jruoho         0x49,0x7D,0xA8,0x31,0x54,0x9C,0x87,0x1A,
   9536       1.1    jruoho         0x0F,0x37,0x50,0xD4,0x37,0x9B,0x67,0x1B,
   9537       1.1    jruoho         0xA3,0xC7,0xF7,0x0D,0xD5,0x10,0x0F,0x35,
   9538       1.1    jruoho         0x4C,0xF2,0x4A,0x35,0x16,0x1F,0x6A,0xC0,
   9539       1.1    jruoho         0xF1,0xFF,0x3F,0xD4,0x00,0xFC,0xFF,0xFF,
   9540       1.1    jruoho         0x1F,0x6A,0x00,0x47,0x47,0x03,0x38,0x47,
   9541       1.1    jruoho         0x46,0xDC,0xD1,0x00,0x5C,0x87,0x52,0xE0,
   9542       1.1    jruoho         0x70,0x34,0x00,0x1E,0x47,0x21,0x30,0x5F,
   9543       1.1    jruoho         0x68,0x7C,0x14,0x02,0x16,0xFF,0xFF,0xA3,
   9544       1.1    jruoho         0x10,0xF8,0x65,0x9F,0x83,0x50,0x42,0x8F,
   9545       1.1    jruoho         0x42,0x80,0xA0,0xDB,0xCF,0x53,0xC4,0xB3,
   9546       1.1    jruoho         0x8F,0x2F,0x3F,0x0F,0x04,0x11,0x5E,0xF3,
   9547       1.1    jruoho         0x7D,0x0A,0xF2,0x21,0xDF,0x47,0x21,0x06,
   9548       1.1    jruoho         0x63,0x28,0x5F,0x83,0x7C,0x14,0x62,0x50,
   9549       1.1    jruoho         0xAF,0x41,0xBE,0xEF,0x1B,0xE4,0xF1,0x22,
   9550       1.1    jruoho         0x48,0xEC,0x67,0x02,0x1F,0x85,0x98,0xE8,
   9551       1.1    jruoho         0xA3,0x10,0xA0,0xF0,0xFF,0x7F,0x14,0x02,
   9552       1.1    jruoho         0xF8,0xFF,0xFF,0x3F,0x0A,0x01,0xCE,0x02,
   9553       1.1    jruoho         0x1C,0x0D,0x40,0x37,0xAD,0x47,0x21,0xF0,
   9554       1.1    jruoho         0xDE,0x59,0x4E,0xFB,0x04,0x7C,0x16,0x02,
   9555       1.1    jruoho         0xCC,0xFE,0xFF,0xCF,0x42,0xC0,0xEC,0x28,
   9556       1.1    jruoho         0x74,0x14,0x67,0xF9,0x2A,0xF4,0x04,0xF0,
   9557       1.1    jruoho         0x02,0x10,0x23,0xCC,0x3B,0xD0,0x4B,0x26,
   9558       1.1    jruoho         0xBB,0x8B,0x1B,0xE7,0xC9,0xE5,0x2C,0x9E,
   9559       1.1    jruoho         0xC4,0x7D,0x09,0xF2,0x81,0xE2,0x59,0xC8,
   9560       1.1    jruoho         0x50,0xA7,0x1B,0xF4,0x8D,0xDC,0x03,0x8B,
   9561       1.1    jruoho         0x19,0x3F,0xC4,0xF3,0x90,0x21,0x9E,0x85,
   9562       1.1    jruoho         0x00,0x76,0xFD,0xFF,0xCF,0x42,0x00,0xFF,
   9563       1.1    jruoho         0xFF,0xFF,0x47,0x03,0xF8,0x2F,0x00,0x9F,
   9564       1.1    jruoho         0x85,0x80,0xE7,0x09,0xE0,0x41,0xDB,0x67,
   9565       1.1    jruoho         0x21,0x80,0x33,0x87,0xCB,0xF3,0x7F,0x05,
   9566       1.1    jruoho         0x3A,0x96,0xF7,0x08,0xCF,0xFA,0x24,0x5F,
   9567       1.1    jruoho         0x2F,0x3D,0xD3,0x87,0x82,0x67,0x21,0x86,
   9568       1.1    jruoho         0x75,0x18,0x3E,0x0B,0x31,0x88,0x17,0x4D,
   9569       1.1    jruoho         0x43,0xBC,0x70,0xFA,0x30,0xE0,0xFF,0x3F,
   9570       1.1    jruoho         0x5E,0xE0,0x57,0x4E,0x03,0x05,0x09,0xF4,
   9571       1.1    jruoho         0x2C,0x04,0x30,0xFE,0xFF,0x7F,0x16,0x02,
   9572       1.1    jruoho         0xC8,0xB8,0x46,0x9D,0x85,0x80,0xE5,0x6D,
   9573       1.1    jruoho         0xE5,0x19,0xDB,0xA7,0x95,0x04,0xFF,0xFF,
   9574       1.1    jruoho         0x67,0x21,0xC0,0x41,0x2E,0x23,0x07,0x21,
   9575       1.1    jruoho         0x4C,0xC4,0x87,0x83,0x8F,0x99,0x80,0x9E,
   9576       1.1    jruoho         0x29,0xBE,0xB8,0x1B,0xE3,0x09,0xE0,0x45,
   9577       1.1    jruoho         0xE2,0x31,0x93,0x1D,0x35,0x0D,0xF3,0x2C,
   9578       1.1    jruoho         0x64,0xBC,0xB3,0x78,0x0D,0x78,0x82,0xF7,
   9579       1.1    jruoho         0xE4,0x9F,0x85,0x18,0xD8,0x61,0x05,0x7B,
   9580       1.1    jruoho         0x14,0x32,0xA8,0xC1,0x63,0x87,0x08,0x13,
   9581       1.1    jruoho         0xE8,0x59,0x88,0xC5,0x7D,0xAE,0xE8,0x3C,
   9582       1.1    jruoho         0xE1,0xB3,0x10,0xF0,0xFE,0xFF,0x9F,0x25,
   9583       1.1    jruoho         0xE0,0x5E,0x0D,0x9E,0x85,0x00,0x13,0x87,
   9584       1.1    jruoho         0x0D,0x9F,0x35,0xC0,0x33,0x7C,0x8F,0xEA,
   9585       1.1    jruoho         0x1C,0x1E,0x8F,0x81,0x7F,0x56,0x1D,0xE7,
   9586       1.1    jruoho         0x04,0x96,0x7B,0xD1,0xB2,0x71,0xA0,0xA1,
   9587       1.1    jruoho         0x23,0xB2,0x3A,0x20,0x8D,0x0D,0x73,0x29,
   9588       1.1    jruoho         0x89,0x7C,0x72,0x6C,0xD4,0x56,0x04,0xA7,
   9589       1.1    jruoho         0x33,0x93,0x4F,0x00,0xD6,0x42,0x21,0x05,
   9590       1.1    jruoho         0x34,0x1A,0x8B,0xE1,0x9D,0xF9,0xE8,0x44,
   9591       1.1    jruoho         0x41,0x0C,0xE8,0xE3,0x90,0x6D,0x1C,0x0A,
   9592       1.1    jruoho         0x50,0x7B,0xD1,0x14,0xC8,0x39,0x07,0xA3,
   9593       1.1    jruoho         0x7F,0x76,0x74,0x36,0xBE,0x13,0x70,0x0D,
   9594       1.1    jruoho         0x10,0x3A,0x25,0x18,0xDA,0x6A,0x04,0xFC,
   9595       1.1    jruoho         0xFF,0x67,0x89,0x01,0x33,0xFE,0x53,0x8C,
   9596       1.1    jruoho         0x09,0x7C,0x8E,0xC1,0x1F,0x0C,0xF0,0x03,
   9597       1.1    jruoho         0x7F,0x31,0xA8,0xFA,0x5E,0xA0,0xFB,0x82,
   9598       1.1    jruoho         0xD5,0xDD,0x64,0x20,0xCC,0xC8,0x04,0xF5,
   9599       1.1    jruoho         0x9D,0x0E,0x40,0x01,0xE4,0x0B,0x81,0xCF,
   9600       1.1    jruoho         0x51,0x0F,0x05,0x6C,0x22,0x21,0xC2,0x44,
   9601       1.1    jruoho         0x33,0x3A,0x62,0xC2,0xA8,0xE8,0x13,0xA6,
   9602       1.1    jruoho         0x20,0x9E,0xB0,0x63,0x4D,0x18,0x3D,0x13,
   9603       1.1    jruoho         0x5F,0x74,0xD8,0x88,0x31,0x21,0xAE,0x1E,
   9604       1.1    jruoho         0xD0,0x26,0x18,0xD4,0x97,0x22,0x58,0x43,
   9605       1.1    jruoho         0xE6,0x63,0xF1,0x05,0x02,0x37,0x65,0x30,
   9606       1.1    jruoho         0xCE,0x89,0x5D,0x13,0x7C,0xD9,0xC1,0xCD,
   9607       1.1    jruoho         0x19,0x8C,0xF0,0x98,0xBB,0x18,0xBF,0x3A,
   9608       1.1    jruoho         0x79,0x74,0xFC,0xA0,0xE0,0x1B,0x0E,0xC3,
   9609       1.1    jruoho         0x7E,0x32,0xF3,0x8C,0xDE,0xCB,0x7C,0x8D,
   9610       1.1    jruoho         0xC3,0xC0,0x7A,0xBC,0x1C,0xD6,0x68,0x61,
   9611       1.1    jruoho         0x0F,0xED,0x3D,0xC4,0xFF,0xFF,0x43,0x8C,
   9612       1.1    jruoho         0xCF,0x13,0xC6,0x08,0xEB,0xDB,0x0B,0x38,
   9613       1.1    jruoho         0xEE,0x59,0xF0,0xEF,0x1A,0xE0,0xB9,0x84,
   9614       1.1    jruoho         0xF8,0xAE,0x01,0x30,0xF0,0xFF,0x7F,0xD7,
   9615       1.1    jruoho         0x00,0x4E,0xD7,0x04,0xDF,0x35,0x80,0xF7,
   9616       1.1    jruoho         0xD0,0x7D,0xD7,0x00,0xAE,0xD9,0xEF,0x1A,
   9617       1.1    jruoho         0xA8,0x63,0x80,0x15,0xDE,0x35,0xA0,0x5D,
   9618       1.1    jruoho         0xD9,0xDE,0xD7,0x9E,0xB0,0xAC,0xE9,0xB2,
   9619       1.1    jruoho         0x81,0x52,0x73,0xD9,0x00,0x14,0xFC,0xFF,
   9620       1.1    jruoho         0x2F,0x1B,0x80,0x01,0x29,0x13,0x46,0x85,
   9621       1.1    jruoho         0x9F,0x30,0x05,0xF1,0x84,0x1D,0xEC,0xB2,
   9622       1.1    jruoho         0x01,0x8A,0x18,0x97,0x0D,0xD0,0x8F,0xED,
   9623       1.1    jruoho         0x65,0x03,0x18,0xDC,0x13,0xF8,0x6D,0x03,
   9624       1.1    jruoho         0x78,0x43,0xFA,0xB6,0x01,0xD6,0xFF,0xFF,
   9625       1.1    jruoho         0x6D,0x03,0xAC,0xF9,0x6F,0x1B,0x28,0x0E,
   9626       1.1    jruoho         0xAB,0xBC,0x6D,0x40,0x3C,0xC9,0x33,0x02,
   9627       1.1    jruoho         0xAB,0xBA,0x6E,0xA0,0xF4,0x5C,0x37,0x00,
   9628       1.1    jruoho         0x12,0x88,0x99,0x30,0x2A,0xFE,0x84,0x29,
   9629       1.1    jruoho         0x88,0x27,0xEC,0x68,0xD7,0x0D,0x50,0x04,
   9630       1.1    jruoho         0xB9,0x6E,0x80,0x7E,0x5E,0x09,0xFE,0xFF,
   9631       1.1    jruoho         0xAF,0x1B,0xC0,0xE0,0xA2,0x80,0xB9,0x6F,
   9632       1.1    jruoho         0x00,0x6F,0x58,0x7E,0xDF,0x00,0x7C,0xDC,
   9633       1.1    jruoho         0xC4,0x31,0xF7,0x0D,0xC0,0xCC,0xFF,0xFF,
   9634       1.1    jruoho         0xBE,0x01,0xB0,0xE7,0xA2,0x80,0xBB,0x6F,
   9635       1.1    jruoho         0x00,0xEF,0x8B,0xB4,0xEF,0x1B,0x60,0xFE,
   9636       1.1    jruoho         0xFF,0xDF,0x37,0xC0,0x28,0x6D,0xFD,0x1E,
   9637       1.1    jruoho         0x1C,0x3D,0x21,0x78,0x7C,0xB8,0xFB,0xA5,
   9638       1.1    jruoho         0xC7,0xE7,0xBB,0x39,0x38,0x06,0x79,0x8C,
   9639       1.1    jruoho         0x87,0x76,0xC0,0xAF,0xEF,0x9E,0x98,0xEF,
   9640       1.1    jruoho         0xE6,0xC0,0xFF,0x4C,0x70,0x3C,0x18,0x68,
   9641       1.1    jruoho         0x1C,0x62,0xAB,0x97,0x06,0x72,0x34,0x38,
   9642       1.1    jruoho         0x3F,0xDC,0x19,0x81,0x61,0x15,0x7F,0xF2,
   9643       1.1    jruoho         0x47,0x38,0xC7,0xD0,0xD9,0xE1,0x20,0xB1,
   9644       1.1    jruoho         0x83,0xE0,0xC1,0x56,0x6D,0x02,0x85,0x86,
   9645       1.1    jruoho         0x50,0x14,0x18,0x14,0x8B,0x0F,0x18,0xF8,
   9646       1.1    jruoho         0x61,0xB3,0xB3,0x00,0x93,0x04,0x87,0x3A,
   9647       1.1    jruoho         0x02,0xF8,0x3E,0xD1,0xFC,0x38,0x74,0x37,
   9648       1.1    jruoho         0x38,0x54,0x8F,0xE5,0xA1,0x80,0x9E,0x01,
   9649       1.1    jruoho         0x71,0xC7,0x0C,0x32,0x69,0xCF,0x28,0xE2,
   9650       1.1    jruoho         0x53,0xC2,0x29,0x85,0x49,0xE0,0xF3,0x03,
   9651       1.1    jruoho         0x43,0xE3,0x04,0xAF,0x0D,0xA1,0xF9,0xFF,
   9652       1.1    jruoho         0xFF,0xA4,0xC0,0x3C,0xDF,0x31,0x04,0x6C,
   9653       1.1    jruoho         0x02,0xBB,0xBF,0x64,0xC8,0xDA,0xC0,0x75,
   9654       1.1    jruoho         0x4B,0x32,0x44,0x6F,0x38,0xB2,0x85,0xA2,
   9655       1.1    jruoho         0xE9,0x44,0x79,0xDF,0x88,0x62,0x67,0x08,
   9656       1.1    jruoho         0xC2,0x88,0x12,0x2C,0xC8,0xA3,0x42,0xAC,
   9657       1.1    jruoho         0x28,0x2F,0x05,0x46,0x88,0x18,0xE2,0x95,
   9658       1.1    jruoho         0x23,0xD0,0x09,0x87,0x0F,0xF2,0xD8,0x14,
   9659       1.1    jruoho         0xA7,0xFD,0x41,0x90,0x58,0x4F,0x02,0x8D,
   9660       1.1    jruoho         0xC5,0x91,0x46,0x83,0x3A,0x07,0x78,0xB8,
   9661       1.1    jruoho         0x3E,0xC4,0x78,0xF8,0x0F,0x21,0x06,0x39,
   9662       1.1    jruoho         0xC8,0x73,0x7B,0x54,0x38,0x4E,0x5F,0x25,
   9663       1.1    jruoho         0x4C,0xF0,0x02,0xE0,0x83,0x0A,0x1C,0xD7,
   9664       1.1    jruoho         0x80,0x9A,0xF1,0x33,0x06,0x58,0x8E,0xE3,
   9665       1.1    jruoho         0x3E,0xA9,0xC0,0x1D,0x8F,0xEF,0x07,0x6C,
   9666       1.1    jruoho         0xC2,0x09,0x2C,0x7F,0x10,0xA8,0xE3,0x0C,
   9667       1.1    jruoho         0x9F,0xE7,0x0B,0x8B,0x21,0x1F,0x13,0x4C,
   9668       1.1    jruoho         0x60,0xB1,0x27,0x1B,0x3A,0x1E,0xF0,0xDF,
   9669       1.1    jruoho         0x63,0x1E,0x2F,0x7C,0x32,0xF1,0x7C,0x4D,
   9670       1.1    jruoho         0x30,0x22,0x84,0x9C,0x8C,0x07,0x7D,0x87,
   9671       1.1    jruoho         0xC0,0x5C,0x6F,0xD8,0xB9,0x85,0x8B,0x3A,
   9672       1.1    jruoho         0x68,0xA0,0x4E,0x0B,0x3E,0x28,0xB0,0x9B,
   9673       1.1    jruoho         0x11,0xE6,0xB8,0xCE,0xCF,0x2A,0x60,0xF8,
   9674       1.1    jruoho         0xFF,0x9F,0x55,0x60,0x8F,0x10,0xFE,0xED,
   9675       1.1    jruoho         0xC1,0xF3,0xF2,0x95,0xE1,0xD5,0x21,0x81,
   9676       1.1    jruoho         0x43,0x8E,0x10,0x3D,0x2E,0x8F,0x10,0x73,
   9677       1.1    jruoho         0x3E,0xC2,0x0C,0x11,0x5C,0x67,0x01,0x70,
   9678       1.1    jruoho         0x0C,0x11,0xF8,0x1C,0x70,0xC0,0x71,0x69,
   9679       1.1    jruoho         0xE2,0x03,0xF5,0x01,0x07,0x70,0x70,0x4D,
   9680       1.1    jruoho         0xC3,0x1D,0x70,0xC0,0x71,0x16,0x60,0xFF,
   9681       1.1    jruoho         0xFF,0xC3,0x0D,0x2C,0x49,0x26,0x0E,0x23,
   9682       1.1    jruoho         0x18,0x11,0x30,0x28,0x02,0x02,0xA4,0xB3,
   9683       1.1    jruoho         0x80,0x0F,0x29,0x00,0x1F,0xAE,0x0C,0x0F,
   9684       1.1    jruoho         0x29,0xD8,0x93,0x86,0x07,0x8E,0x1B,0x85,
   9685       1.1    jruoho         0x07,0x8D,0x0B,0x30,0x68,0x7A,0xE2,0x80,
   9686       1.1    jruoho         0x7F,0x4C,0xF0,0x19,0x05,0x1C,0xE3,0x06,
   9687       1.1    jruoho         0xDF,0x2A,0x0C,0xFC,0xFF,0x3F,0x30,0xCC,
   9688       1.1    jruoho         0xE1,0xC2,0x63,0x39,0x8A,0xA0,0x07,0x1E,
   9689       1.1    jruoho         0xD4,0xF7,0x8C,0x33,0xF7,0x24,0x8F,0xD1,
   9690       1.1    jruoho         0x51,0x0F,0x27,0xF4,0xE4,0x85,0x3B,0x57,
   9691       1.1    jruoho         0xF9,0x0A,0x71,0x14,0x18,0xB8,0x77,0x29,
   9692       1.1    jruoho         0x8F,0xCF,0x17,0x2B,0xC3,0x63,0x46,0xFB,
   9693       1.1    jruoho         0x1E,0x72,0xD6,0x11,0x02,0xE2,0x2F,0x75,
   9694       1.1    jruoho         0x6C,0xC0,0x60,0x39,0x18,0x00,0x87,0x01,
   9695       1.1    jruoho         0xE3,0x13,0x0D,0x58,0x67,0x1B,0x3C,0xF4,
   9696       1.1    jruoho         0x69,0x31,0xC4,0xE3,0x0B,0xFB,0x56,0x61,
   9697       1.1    jruoho         0x82,0xEA,0x41,0x75,0x12,0xF4,0xD0,0xC0,
   9698       1.1    jruoho         0x01,0xE8,0xA1,0xC1,0x3F,0xB9,0x90,0xFB,
   9699       1.1    jruoho         0x2B,0x1D,0x82,0xB5,0xE2,0x69,0xDE,0x47,
   9700       1.1    jruoho         0x1E,0xF3,0xDC,0xA2,0xBC,0x0D,0x3C,0x07,
   9701       1.1    jruoho         0xF0,0xD3,0x82,0x87,0xE3,0x63,0x81,0xC7,
   9702       1.1    jruoho         0xE9,0x4B,0x58,0x82,0xF7,0x1A,0x9F,0x6C,
   9703       1.1    jruoho         0x1E,0x5C,0x58,0xB2,0x21,0xA0,0x06,0xEB,
   9704       1.1    jruoho         0x21,0x60,0xA6,0x9A,0xC0,0x49,0x46,0x80,
   9705       1.1    jruoho         0xCA,0x00,0xA1,0x1B,0xCB,0xE9,0x3E,0x8B,
   9706       1.1    jruoho         0x84,0x38,0xCD,0x47,0x99,0xC7,0x02,0x8F,
   9707       1.1    jruoho         0xF5,0xC1,0xC0,0xFF,0x7F,0xCD,0x23,0xD4,
   9708       1.1    jruoho         0x7D,0xCD,0x33,0x7B,0x3A,0xC0,0xAC,0x22,
   9709       1.1    jruoho         0xDC,0x7B,0xCE,0x1B,0x86,0xD1,0x9E,0x2D,
   9710       1.1    jruoho         0x7C,0xCD,0x78,0xD6,0x34,0x42,0x38,0x76,
   9711       1.1    jruoho         0x83,0xF3,0x48,0x8C,0xF0,0x82,0xC0,0x4E,
   9712       1.1    jruoho         0x0C,0x0F,0x30,0xC6,0x39,0x79,0xC3,0xFA,
   9713       1.1    jruoho         0xC2,0xCB,0x40,0x83,0x19,0xDB,0x97,0x01,
   9714       1.1    jruoho         0x36,0x2A,0xDF,0x88,0xC0,0x97,0xFC,0x62,
   9715       1.1    jruoho         0x00,0x65,0x16,0xBE,0x9E,0xF8,0xA0,0xC4,
   9716       1.1    jruoho         0x2E,0x06,0x2C,0xE5,0xC5,0x00,0x54,0x37,
   9717       1.1    jruoho         0x0C,0x5F,0x0C,0xE0,0x5F,0x89,0x5E,0x0C,
   9718       1.1    jruoho         0xC0,0x70,0x71,0xF2,0x3D,0xC0,0x1E,0xEE,
   9719       1.1    jruoho         0xA3,0x74,0x9C,0xBE,0xFD,0xBD,0x19,0xF8,
   9720       1.1    jruoho         0x6C,0xC0,0x60,0x3C,0xC3,0x30,0xC6,0x08,
   9721       1.1    jruoho         0xE3,0x51,0x86,0x31,0xC1,0xDC,0xB7,0x03,
   9722       1.1    jruoho         0xE8,0x39,0x87,0x81,0x4A,0x78,0x3B,0x80,
   9723       1.1    jruoho         0x72,0x0E,0xE8,0xF2,0x68,0x42,0x4F,0x01,
   9724       1.1    jruoho         0x4F,0x07,0x3E,0x29,0x1A,0xA2,0xAF,0xB1,
   9725       1.1    jruoho         0x0A,0x26,0x50,0xC4,0x07,0x0D,0x3E,0xB5,
   9726       1.1    jruoho         0x28,0x3E,0x15,0x78,0x2D,0xCF,0x4E,0xE1,
   9727       1.1    jruoho         0xE2,0x9C,0x89,0xA7,0x6A,0x38,0x03,0xBD,
   9728       1.1    jruoho         0xE6,0x86,0x63,0xFF,0x7F,0x38,0xFC,0xA9,
   9729       1.1    jruoho         0xE0,0x35,0x80,0x1D,0x24,0x3D,0x2D,0x23,
   9730       1.1    jruoho         0xC2,0x38,0xA4,0x3C,0x32,0xF8,0xB6,0x18,
   9731       1.1    jruoho         0xC7,0x90,0x0F,0x91,0xBE,0x13,0x18,0xF2,
   9732       1.1    jruoho         0x21,0xEF,0x79,0xC7,0xC0,0xAF,0x08,0x71,
   9733       1.1    jruoho         0x9E,0xB2,0x7C,0x67,0xF0,0x65,0x01,0x7C,
   9734       1.1    jruoho         0x91,0x2E,0x0B,0x68,0x68,0x9F,0x64,0x7C,
   9735       1.1    jruoho         0x41,0x30,0xEC,0x89,0xB3,0x00,0x77,0x05,
   9736       1.1    jruoho         0x50,0x81,0xFA,0xAE,0x00,0xFF,0x42,0xF0,
   9737       1.1    jruoho         0xAE,0x00,0x86,0x79,0xF9,0x56,0xC0,0x35,
   9738       1.1    jruoho         0x1D,0x4A,0xD0,0x67,0x12,0x5F,0x17,0x70,
   9739       1.1    jruoho         0x53,0x64,0xA9,0x8E,0x0A,0xD0,0x53,0x4C,
   9740       1.1    jruoho         0x02,0x75,0x47,0xF7,0x51,0x01,0xC6,0x4D,
   9741       1.1    jruoho         0xD9,0x07,0x54,0x76,0x5A,0x60,0x67,0x21,
   9742       1.1    jruoho         0x76,0x1D,0xC1,0x5D,0x49,0x18,0xCA,0xB3,
   9743       1.1    jruoho         0x81,0x2F,0x59,0xFC,0x70,0x00,0x03,0xDC,
   9744       1.1    jruoho         0xB3,0x38,0xC4,0x08,0xB1,0xD9,0x81,0xEB,
   9745       1.1    jruoho         0x75,0xD2,0x70,0x2F,0x44,0xEC,0xFF,0x7F,
   9746       1.1    jruoho         0x32,0x00,0xE3,0x51,0x1B,0x1C,0x27,0x9D,
   9747       1.1    jruoho         0xF0,0x91,0x9E,0x59,0xF8,0x49,0x19,0x30,
   9748       1.1    jruoho         0x71,0xF2,0x03,0xE3,0xC9,0x1A,0xC6,0x00,
   9749       1.1    jruoho         0xB8,0xBC,0x57,0x95,0x81,0xFC,0x43,0x90,
   9750       1.1    jruoho         0x20,0x18,0xD4,0x29,0x19,0x38,0x1C,0xC5,
   9751       1.1    jruoho         0x70,0xA7,0x64,0x78,0x50,0xF8,0xC3,0x00,
   9752       1.1    jruoho         0xE6,0x46,0xE8,0x7B,0x82,0xA1,0xDE,0x93,
   9753       1.1    jruoho         0x0E,0xE3,0x91,0xD0,0x04,0x3E,0x2D,0xC3,
   9754       1.1    jruoho         0xFA,0xFF,0x9F,0x96,0x81,0xD5,0xB1,0xDD,
   9755       1.1    jruoho         0x43,0xF6,0x59,0x01,0x77,0x76,0x80,0x3B,
   9756       1.1    jruoho         0x3D,0x7E,0x7A,0x00,0x9C,0x00,0x3D,0x3D,
   9757       1.1    jruoho         0x80,0xED,0xBC,0x01,0xF7,0x40,0x80,0x38,
   9758       1.1    jruoho         0xFE,0xA3,0x82,0x5F,0x59,0x28,0x1C,0x3F,
   9759       1.1    jruoho         0xB6,0xF3,0x63,0x09,0xEE,0x70,0xE0,0x23,
   9760       1.1    jruoho         0x83,0x0F,0x90,0xB8,0xA1,0xF8,0x50,0x81,
   9761       1.1    jruoho         0x3C,0x0B,0x80,0x62,0xF4,0x6C,0x04,0xEC,
   9762       1.1    jruoho         0x06,0xF3,0xD2,0x12,0xE5,0xFF,0xFF,0xDE,
   9763       1.1    jruoho         0xC0,0x4E,0x29,0xB8,0x83,0x00,0xF8,0x8E,
   9764       1.1    jruoho         0x01,0xE0,0x1D,0x0C,0x97,0x35,0x66,0x94,
   9765       1.1    jruoho         0x10,0x18,0x8D,0x19,0x77,0x08,0xE1,0x27,
   9766       1.1    jruoho         0x02,0xDC,0x98,0x3D,0x6E,0x8F,0x19,0x77,
   9767       1.1    jruoho         0x9C,0xE5,0xA3,0x7A,0xCA,0x08,0xE5,0x03,
   9768       1.1    jruoho         0x07,0x3B,0x67,0xBC,0x11,0xF0,0xA1,0x03,
   9769       1.1    jruoho         0x8F,0x03,0x0C,0xEE,0x48,0x01,0xC6,0xCB,
   9770       1.1    jruoho         0x01,0x1B,0x3B,0xB8,0x83,0x90,0x53,0x20,
   9771       1.1    jruoho         0x4B,0x87,0xD1,0xD8,0x71,0xB2,0x81,0x74,
   9772       1.1    jruoho         0x8C,0xF1,0x21,0xD7,0x63,0xC7,0x0D,0xD6,
   9773       1.1    jruoho         0x63,0xC7,0x1D,0x5F,0xB0,0xFF,0xFF,0xE3,
   9774       1.1    jruoho         0x0B,0x18,0xC6,0xC0,0xC5,0x0F,0x03,0x7D,
   9775       1.1    jruoho         0xF3,0xF3,0xE8,0x0C,0xEE,0x61,0xFB,0x04,
   9776       1.1    jruoho         0x13,0xE3,0xF9,0x25,0xC4,0x23,0xCC,0x8B,
   9777       1.1    jruoho         0x4B,0x84,0xA3,0x08,0xF2,0xE6,0x12,0xE7,
   9778       1.1    jruoho         0xD5,0x20,0xCC,0x63,0x4B,0x94,0x10,0x11,
   9779       1.1    jruoho         0x0E,0x26,0xCE,0x13,0x8C,0x11,0x0E,0x3C,
   9780       1.1    jruoho         0x8A,0x21,0x22,0x9C,0x40,0x88,0x93,0x3E,
   9781       1.1    jruoho         0xD9,0x20,0xE1,0x63,0x84,0x8D,0xF6,0x04,
   9782       1.1    jruoho         0xC3,0xC7,0xC2,0xCF,0x2B,0x1E,0x3C,0x3F,
   9783       1.1    jruoho         0xAD,0xF9,0x2E,0xE8,0xC9,0x9C,0xE3,0x43,
   9784       1.1    jruoho         0x96,0xA7,0xF6,0x38,0xE9,0xC3,0x2C,0x6E,
   9785       1.1    jruoho         0x50,0x0F,0x8E,0xEC,0xAE,0xE3,0xE3,0x35,
   9786       1.1    jruoho         0xF6,0x14,0xE4,0x21,0xF0,0x13,0x81,0x2F,
   9787       1.1    jruoho         0x88,0x9E,0xAC,0xEF,0x7A,0xEC,0x5E,0x66,
   9788       1.1    jruoho         0x8C,0xEA,0xA7,0x80,0x3A,0xA6,0x9C,0xC1,
   9789       1.1    jruoho         0x2B,0x04,0xBB,0xE7,0xF9,0x90,0xED,0xBB,
   9790       1.1    jruoho         0x24,0x1B,0x05,0xEE,0x90,0xE0,0x33,0x12,
   9791       1.1    jruoho         0x3F,0x55,0x78,0x18,0x1E,0x05,0x8C,0x19,
   9792       1.1    jruoho         0xBC,0x23,0x1C,0x5A,0x88,0x03,0x7E,0xDF,
   9793       1.1    jruoho         0x65,0x43,0x8D,0x71,0x7A,0x3E,0x7F,0xB0,
   9794       1.1    jruoho         0x41,0xC0,0x87,0x3A,0x54,0x0F,0xF3,0xA8,
   9795       1.1    jruoho         0x5E,0x0A,0x19,0xCE,0xD9,0xC1,0x1D,0x04,
   9796       1.1    jruoho         0xF6,0xF8,0xE1,0x41,0xF0,0x9B,0x25,0x1F,
   9797       1.1    jruoho         0x04,0x3B,0xDF,0xBC,0xC1,0x19,0xE4,0xFF,
   9798       1.1    jruoho         0x7F,0x0C,0xB0,0xCF,0x54,0x3E,0x9A,0x20,
   9799       1.1    jruoho         0x8E,0x80,0xE8,0xF3,0x87,0xC7,0xF0,0x26,
   9800       1.1    jruoho         0xC7,0x87,0x83,0x3D,0x7A,0xE0,0x4E,0x22,
   9801       1.1    jruoho         0x70,0x8F,0x5D,0x07,0xED,0x6B,0x9C,0x2F,
   9802       1.1    jruoho         0x5A,0x30,0xEE,0x7B,0xCF,0x22,0xE0,0xC7,
   9803       1.1    jruoho         0x78,0x6C,0x01,0xC7,0xA1,0x04,0xDC,0xC1,
   9804       1.1    jruoho         0x8E,0x6B,0x1C,0x42,0x51,0x60,0x74,0x28,
   9805       1.1    jruoho         0xC1,0xC5,0x00,0x12,0x8C,0x63,0x9C,0xD1,
   9806       1.1    jruoho         0xD0,0x97,0x48,0x1F,0xD2,0xE0,0x0C,0x1A,
   9807       1.1    jruoho         0xF6,0x3C,0x9F,0x50,0xB8,0x3D,0x01,0x8A,
   9808       1.1    jruoho         0x4E,0x28,0x20,0xC3,0x7D,0x06,0xC1,0x9E,
   9809       1.1    jruoho         0x10,0xF8,0x19,0x84,0xFD,0xFF,0x0F,0x8E,
   9810       1.1    jruoho         0x1E,0xF7,0x7B,0xA3,0x4F,0x8D,0x6C,0xEE,
   9811       1.1    jruoho         0x0F,0x01,0x27,0x70,0xEE,0xEC,0xD4,0x8C,
   9812       1.1    jruoho         0x3B,0x33,0x60,0xCF,0x1F,0x1E,0x02,0x3F,
   9813       1.1    jruoho         0x17,0x78,0xF8,0x1E,0x02,0x7E,0xF0,0x0F,
   9814       1.1    jruoho         0xCC,0x06,0x07,0xE3,0x29,0xC2,0xD7,0x0E,
   9815       1.1    jruoho         0x0E,0xCE,0x4F,0x03,0x06,0xE7,0xAF,0x50,
   9816       1.1    jruoho         0x9F,0xE7,0x19,0x38,0xF6,0xD4,0xEB,0x7B,
   9817       1.1    jruoho         0x87,0xE7,0xEB,0x43,0x05,0xFE,0xA6,0xE7,
   9818       1.1    jruoho         0x43,0x05,0x38,0x0E,0x0F,0xFC,0xB0,0xC2,
   9819       1.1    jruoho         0x86,0xF0,0x28,0x80,0x3F,0xB5,0xF8,0xF8,
   9820       1.1    jruoho         0x17,0xE7,0x29,0x82,0xDD,0x46,0xB0,0x87,
   9821       1.1    jruoho         0x0B,0xC0,0x51,0xB4,0xB3,0x18,0x2A,0xCC,
   9822       1.1    jruoho         0x59,0x8C,0xFC,0xFF,0xCF,0x51,0xA8,0xB3,
   9823       1.1    jruoho         0x18,0x3D,0x5C,0x00,0x2E,0x04,0x1F,0x0F,
   9824       1.1    jruoho         0x40,0x73,0x10,0x78,0x5C,0xF0,0x85,0xE0,
   9825       1.1    jruoho         0x48,0x0E,0xE4,0xE9,0x00,0xF0,0x19,0x4A,
   9826       1.1    jruoho         0xC3,0xA1,0x09,0x13,0x03,0x06,0x75,0x3E,
   9827       1.1    jruoho         0xF0,0x09,0xC5,0xC7,0x0E,0x7E,0x36,0xF0,
   9828       1.1    jruoho         0x8D,0xDC,0x43,0xE5,0xA7,0x66,0x5F,0xF2,
   9829       1.1    jruoho         0x11,0xE0,0x02,0x75,0xA0,0x61,0xA0,0x46,
   9830       1.1    jruoho         0xE4,0x23,0xD2,0xFF,0xFF,0xB9,0x0D,0x1B,
   9831       1.1    jruoho         0x60,0x68,0xF4,0x1C,0x0E,0xE3,0x80,0xEB,
   9832       1.1    jruoho         0x73,0x38,0x76,0x40,0x3E,0x87,0xC3,0x3F,
   9833       1.1    jruoho         0x47,0xC3,0x1F,0x1B,0x3B,0xDD,0xF3,0x81,
   9834       1.1    jruoho         0xC1,0xBA,0x7E,0x63,0x06,0x06,0xB6,0x6F,
   9835       1.1    jruoho         0x91,0x07,0x06,0x1C,0x51,0xCF,0xC6,0x57,
   9836       1.1    jruoho         0x08,0x0F,0x0C,0x6C,0x80,0x1E,0x18,0xF0,
   9837       1.1    jruoho         0x89,0x05,0x21,0x27,0x03,0x43,0x9D,0x32,
   9838       1.1    jruoho         0x8C,0x1C,0xF3,0x89,0xC3,0xC3,0xF0,0xA1,
   9839       1.1    jruoho         0x22,0xEA,0x33,0xC0,0x23,0x1E,0x1B,0x1B,
   9840       1.1    jruoho         0xFB,0xFF,0x8F,0x0D,0x2C,0xC7,0x16,0x8F,
   9841       1.1    jruoho         0x0D,0xFC,0x47,0x78,0xFC,0xD8,0xE0,0x8C,
   9842       1.1    jruoho         0xE5,0xD1,0xC4,0x97,0x99,0x23,0x3B,0x8D,
   9843       1.1    jruoho         0x33,0x7B,0x0D,0xF1,0xD1,0xEE,0xF1,0xDB,
   9844       1.1    jruoho         0x63,0x03,0x97,0x85,0xB1,0x01,0xA5,0x90,
   9845       1.1    jruoho         0x63,0x43,0x1F,0x52,0x7C,0x0A,0xB0,0x71,
   9846       1.1    jruoho         0x54,0x32,0x0F,0x1F,0xAF,0x7C,0x62,0x38,
   9847       1.1    jruoho         0xBA,0x20,0x6F,0xE8,0xBE,0x5C,0xF8,0x48,
   9848       1.1    jruoho         0x63,0x30,0x5F,0x5A,0x7C,0x06,0xE5,0x43,
   9849       1.1    jruoho         0x04,0xD7,0x57,0xC5,0x43,0x04,0x3E,0xA1,
   9850       1.1    jruoho         0x86,0x88,0x1E,0xCF,0xFF,0xFF,0x11,0xCC,
   9851       1.1    jruoho         0x43,0x64,0x43,0x03,0xAF,0x87,0xA1,0x01,
   9852       1.1    jruoho         0xA5,0x98,0xC0,0x5E,0x85,0x87,0x46,0x4F,
   9853       1.1    jruoho         0x3F,0x3E,0x04,0x30,0x08,0xDF,0x06,0xD8,
   9854       1.1    jruoho         0x55,0xC0,0x57,0x21,0x83,0x24,0x18,0xE7,
   9855       1.1    jruoho         0x64,0x41,0x07,0x07,0x8E,0x21,0x79,0x70,
   9856       1.1    jruoho         0xF0,0x07,0xE3,0x21,0x70,0x60,0xCF,0xE0,
   9857       1.1    jruoho         0xB9,0xE8,0x31,0xD8,0xA7,0x1D,0x9F,0x4A,
   9858       1.1    jruoho         0xC0,0x77,0xE6,0x04,0xC7,0xE9,0x1D,0x7B,
   9859       1.1    jruoho         0x29,0xF0,0x08,0x1E,0xAD,0x3C,0x02,0x7E,
   9860       1.1    jruoho         0xB4,0x02,0x66,0xFF,0xFF,0xA3,0x15,0x30,
   9861       1.1    jruoho         0x09,0x7A,0xE6,0xA4,0x03,0x77,0x34,0x18,
   9862       1.1    jruoho         0xD4,0xD1,0x0A,0x5C,0x11,0xC0,0x75,0xDC,
   9863       1.1    jruoho         0xF0,0xD1,0x02,0xCE,0x50,0x0F,0xDA,0x07,
   9864       1.1    jruoho         0x65,0xCF,0xDA,0x97,0x21,0x76,0xB4,0x00,
   9865       1.1    jruoho         0x97,0x89,0x43,0x08,0xD0,0x04,0x3E,0x89,
   9866       1.1    jruoho         0x67,0xEF,0x43,0x03,0xB3,0x8A,0xA1,0x01,
   9867       1.1    jruoho         0xA5,0xA3,0x01,0xEE,0x44,0x81,0xFD,0xFF,
   9868       1.1    jruoho         0x9F,0x28,0x60,0xDE,0x30,0x70,0x07,0x0A,
   9869       1.1    jruoho         0xC0,0xCD,0xE9,0xDB,0xE3,0xE2,0xD0,0x38,
   9870       1.1    jruoho         0xC4,0xE7,0xA7,0x73,0xF6,0xD1,0xE8,0x4C,
   9871       1.1    jruoho         0x71,0x67,0x11,0x30,0x9C,0x7D,0x11,0x8F,
   9872       1.1    jruoho         0x18,0x03,0xF9,0x81,0x21,0x59,0x30,0x28,
   9873       1.1    jruoho         0x16,0x0F,0xC5,0x07,0x03,0x0E,0xEC,0x23,
   9874       1.1    jruoho         0x02,0x3B,0x17,0xB0,0x73,0xAD,0xE1,0xF8,
   9875       1.1    jruoho         0x59,0xC0,0xA7,0x84,0xB7,0xA6,0x17,0x7B,
   9876       1.1    jruoho         0x9F,0xD7,0x7D,0xD6,0x08,0xC9,0xCE,0xF4,
   9877       1.1    jruoho         0x3E,0x89,0xE2,0x0E,0xA2,0x70,0x4E,0x9F,
   9878       1.1    jruoho         0xE0,0x22,0xF0,0x65,0xDF,0xA3,0xE0,0xA7,
   9879       1.1    jruoho         0x07,0xCF,0xF1,0x8D,0xC1,0xA7,0x07,0xE6,
   9880       1.1    jruoho         0x7E,0xF8,0x9A,0xF1,0x33,0xC3,0xE3,0x43,
   9881       1.1    jruoho         0x88,0x27,0xE2,0xDA,0xA6,0x20,0x5B,0x18,
   9882       1.1    jruoho         0x42,0x09,0xF4,0xFF,0x8F,0x10,0xE5,0x6D,
   9883       1.1    jruoho         0x20,0xCA,0x29,0x44,0x88,0x12,0xA4,0xB1,
   9884       1.1    jruoho         0xC9,0x0B,0x35,0xCA,0xD9,0x45,0x6E,0x6D,
   9885       1.1    jruoho         0xF6,0x82,0x0B,0x14,0x2A,0x66,0x9C,0x28,
   9886       1.1    jruoho         0xEF,0x10,0xB1,0xDA,0x1F,0x04,0x91,0xF4,
   9887       1.1    jruoho         0x32,0xD0,0x71,0xC9,0x91,0x0E,0x7D,0xE8,
   9888       1.1    jruoho         0x61,0xFB,0x04,0x8C,0x3F,0x48,0xE2,0xAE,
   9889       1.1    jruoho         0x2A,0x3E,0x28,0xF8,0x00,0x80,0x77,0x09,
   9890       1.1    jruoho         0xA8,0x5B,0x9D,0xC7,0xED,0xF3,0x06,0xF8,
   9891       1.1    jruoho         0xAF,0x17,0x58,0x82,0xF2,0x07,0x81,0x1A,
   9892       1.1    jruoho         0x99,0xA1,0x3D,0xCC,0xB7,0x19,0x43,0xBE,
   9893       1.1    jruoho         0x07,0x1C,0x16,0x3B,0x27,0xF9,0xF0,0x08,
   9894       1.1    jruoho         0x1C,0x8E,0x01,0x4F,0x1B,0xBE,0x51,0x7B,
   9895       1.1    jruoho         0xBE,0x3E,0x62,0x01,0x8E,0xFE,0xFF,0x47,
   9896       1.1    jruoho         0x2C,0x30,0x9D,0xDF,0x7D,0x82,0x01,0xC7,
   9897       1.1    jruoho         0xCD,0x82,0x9F,0x61,0x00,0x67,0x40,0xCF,
   9898       1.1    jruoho         0x30,0x60,0x1F,0x2A,0x6E,0x08,0x5C,0xEE,
   9899       1.1    jruoho         0x8A,0x28,0x90,0x05,0xC2,0xA0,0x0E,0xFD,
   9900       1.1    jruoho         0xE4,0x08,0x42,0xCF,0x9C,0x70,0x86,0x72,
   9901       1.1    jruoho         0xB2,0xBD,0x5F,0x1D,0xC8,0x2D,0xC2,0x43,
   9902       1.1    jruoho         0x3D,0x8B,0xC7,0x04,0x76,0xDA,0x02,0x36,
   9903       1.1    jruoho         0xFF,0xFF,0xE3,0x29,0xB0,0x98,0xF7,0xD3,
   9904       1.1    jruoho         0x69,0x84,0x63,0x03,0xFB,0x71,0x0B,0x38,
   9905       1.1    jruoho         0x1D,0xCC,0xE0,0xDC,0x7F,0xD8,0x2D,0x1A,
   9906       1.1    jruoho         0x37,0x34,0xB0,0x0D,0xCC,0x43,0x03,0x3E,
   9907       1.1    jruoho         0x27,0x47,0x30,0x9E,0x98,0xF8,0x55,0xE2,
   9908       1.1    jruoho         0xE1,0x89,0x1F,0x43,0xC0,0xFA,0xFF,0x3F,
   9909       1.1    jruoho         0x99,0x01,0xF6,0x84,0x1E,0xCB,0x50,0xD2,
   9910       1.1    jruoho         0x4E,0x66,0x80,0xC0,0xFB,0xD8,0x3B,0xC3,
   9911       1.1    jruoho         0x4B,0x83,0xE7,0x74,0xD2,0xCF,0x62,0x3E,
   9912       1.1    jruoho         0x99,0x19,0x21,0x0A,0xBB,0x8F,0x19,0xAD,
   9913       1.1    jruoho         0x37,0x14,0xCD,0x3C,0xE8,0x3B,0x99,0x51,
   9914       1.1    jruoho         0x62,0x46,0x6A,0x0E,0x4C,0x48,0x11,0x0F,
   9915       1.1    jruoho         0x27,0x4A,0x88,0x60,0xAF,0x13,0x6F,0x67,
   9916       1.1    jruoho         0x4F,0x66,0x4C,0xD6,0xC9,0x0C,0x24,0xFF,
   9917       1.1    jruoho         0xFF,0x93,0x19,0x98,0x5C,0x9F,0xCC,0x80,
   9918       1.1    jruoho         0xCA,0x39,0x0A,0x7F,0x32,0x03,0x78,0x74,
   9919       1.1    jruoho         0xC0,0xC2,0x9D,0xCC,0xC0,0xF2,0xFF,0x3F,
   9920       1.1    jruoho         0xC4,0x00,0xCE,0xC7,0x0A,0x63,0x0C,0x3C,
   9921       1.1    jruoho         0xDA,0xC1,0x0C,0x15,0xE6,0x6C,0x86,0x0E,
   9922       1.1    jruoho         0x72,0x08,0xA1,0xC1,0x0E,0x21,0x50,0xE6,
   9923       1.1    jruoho         0x72,0xA0,0xA7,0xF0,0x9A,0xE0,0x73,0x14,
   9924       1.1    jruoho         0xD8,0x0F,0x67,0xC0,0xE1,0xD4,0x80,0x0F,
   9925       1.1    jruoho         0x74,0xE2,0x42,0x8F,0xC2,0x23,0x0E,0x58,
   9926       1.1    jruoho         0xFD,0xC0,0xC8,0xFF,0xFF,0x64,0x06,0x18,
   9927       1.1    jruoho         0x78,0x6A,0xF8,0x40,0x82,0x63,0x31,0xEA,
   9928       1.1    jruoho         0x1B,0xC4,0x21,0xBE,0x8D,0xF8,0xE8,0xFE,
   9929       1.1    jruoho         0x6A,0xE2,0x4B,0x00,0xE6,0x42,0xE2,0xD3,
   9930       1.1    jruoho         0x09,0xB3,0x70,0x38,0x03,0x5A,0x43,0x60,
   9931       1.1    jruoho         0x57,0x26,0xCF,0x9C,0x0F,0xE1,0x6C,0x3C,
   9932       1.1    jruoho         0x7A,0xDC,0xE9,0x04,0xDE,0x38,0x7C,0x3A,
   9933       1.1    jruoho         0x01,0x5E,0x07,0x0C,0xCC,0x0C,0xC2,0x3F,
   9934       1.1    jruoho         0x84,0xB0,0x21,0x9C,0xAA,0xC7,0x70,0xEE,
   9935       1.1    jruoho         0xAF,0x38,0x3E,0x9D,0x80,0xF3,0xFF,0x7F,
   9936       1.1    jruoho         0x62,0x03,0x0C,0x0A,0x7E,0x32,0xF8,0xB8,
   9937       1.1    jruoho         0x46,0x25,0xC2,0xA0,0x8E,0xE6,0x80,0x7B,
   9938       1.1    jruoho         0x98,0x27,0x36,0x26,0x6F,0xC5,0x1A,0x8B,
   9939       1.1    jruoho         0x4F,0x6C,0x30,0xFF,0xFF,0x27,0x36,0x80,
   9940       1.1    jruoho         0xD1,0x87,0x20,0xB0,0xFD,0xFF,0x0F,0x41,
   9941       1.1    jruoho         0x60,0x1C,0xA0,0x0F,0x41,0x80,0x9B,0xD3,
   9942       1.1    jruoho         0x09,0xEE,0xC4,0x07,0xB6,0x63,0x10,0x60,
   9943       1.1    jruoho         0x6D,0xE8,0x3E,0x06,0x81,0xF9,0xFF,0x3F,
   9944       1.1    jruoho         0x5A,0x98,0xA3,0xE0,0xC2,0x8E,0x7C,0x28,
   9945       1.1    jruoho         0x29,0xA7,0x3E,0xB4,0x0C,0x20,0x69,0x38,
   9946       1.1    jruoho         0xC9,0x01,0x9D,0xD3,0x3D,0x70,0x92,0x75,
   9947       1.1    jruoho         0xEA,0x40,0x8F,0xC7,0xA0,0xAF,0x1C,0xBE,
   9948       1.1    jruoho         0x12,0xF0,0x23,0x07,0x93,0x00,0xAA,0x41,
   9949       1.1    jruoho         0xFA,0xCC,0x07,0x9C,0x8E,0x1C,0xE0,0x38,
   9950       1.1    jruoho         0x26,0x05,0xC6,0xDE,0x0E,0xDE,0x22,0x3D,
   9951       1.1    jruoho         0x89,0xA7,0xA1,0xE3,0x0C,0x51,0x38,0x26,
   9952       1.1    jruoho         0x39,0x18,0x44,0x7A,0x95,0x62,0x03,0x7C,
   9953       1.1    jruoho         0xAB,0xF1,0xD9,0xC8,0x07,0x10,0x78,0xE3,
   9954       1.1    jruoho         0xF6,0xD8,0x61,0xFF,0xFF,0x0F,0x75,0xC0,
   9955       1.1    jruoho         0x01,0xE2,0xA4,0xF8,0x21,0xC3,0x98,0x67,
   9956       1.1    jruoho         0xC5,0x0F,0x75,0x80,0xF5,0x18,0x27,0x3A,
   9957       1.1    jruoho         0x94,0xF0,0x43,0x1D,0x20,0xE8,0xFF,0x7F,
   9958       1.1    jruoho         0xA8,0x03,0x86,0x38,0x6F,0x24,0xD1,0x1E,
   9959       1.1    jruoho         0xEA,0x98,0xE8,0x43,0x1D,0x40,0xC8,0xFF,
   9960       1.1    jruoho         0xFF,0xA1,0x0E,0x18,0x9E,0x87,0x00,0xAE,
   9961       1.1    jruoho         0x9C,0xEF,0xC0,0x7C,0x22,0x02,0xEF,0xFF,
   9962       1.1    jruoho         0xFF,0x7C,0x07,0xB8,0x1B,0x2D,0xCC,0x51,
   9963       1.1    jruoho         0x70,0x41,0xAF,0x0E,0x03,0x51,0x09,0x30,
   9964       1.1    jruoho         0x28,0x02,0xC7,0x5F,0x9B,0x60,0x1C,0xEA,
   9965       1.1    jruoho         0x7C,0x87,0x3E,0x2F,0x78,0xD8,0x4F,0x05,
   9966       1.1    jruoho         0x9E,0xC4,0xA9,0xFA,0x5A,0x70,0x14,0x4F,
   9967       1.1    jruoho         0x00,0x3E,0xE1,0x01,0xFF,0xA1,0xC1,0x9A,
   9968       1.1    jruoho         0x44,0xF1,0x43,0x03,0xF5,0x11,0xE4,0xFF,
   9969       1.1    jruoho         0x7F,0x68,0xC0,0x28,0xEA,0xF9,0x06,0x7D,
   9970       1.1    jruoho         0xCC,0xF2,0xD9,0x20,0xE6,0x0B,0x48,0x84,
   9971       1.1    jruoho         0x07,0x10,0x5F,0x1F,0xD8,0x71,0xD2,0x67,
   9972       1.1    jruoho         0xA0,0x40,0x51,0xDE,0x37,0xF8,0x09,0x07,
   9973       1.1    jruoho         0x5C,0x83,0xF3,0x09,0x07,0xBC,0x87,0x23,
   9974       1.1    jruoho         0x1F,0x4B,0xC0,0x77,0xD0,0x84,0x73,0x81,
   9975       1.1    jruoho         0xF1,0x8D,0x8D,0x9D,0x06,0xC0,0x76,0x00,
   9976       1.1    jruoho         0x06,0xDF,0x69,0x00,0x1C,0xC7,0x24,0x7E,
   9977       1.1    jruoho         0x3A,0x04,0x13,0xCC,0xC1,0xBC,0x34,0xFB,
   9978       1.1    jruoho         0xFF,0xEF,0xFD,0x94,0x43,0xCF,0x86,0x80,
   9979       1.1    jruoho         0x75,0x49,0x07,0x43,0x94,0x88,0xB3,0x21,
   9980       1.1    jruoho         0x20,0xFD,0xFF,0x7F,0x36,0xC4,0x20,0xC4,
   9981       1.1    jruoho         0x09,0xFC,0x12,0xD1,0xDC,0xD9,0x90,0xAE,
   9982       1.1    jruoho         0xD8,0x67,0x43,0x80,0xE1,0xFF,0xFF,0x23,
   9983       1.1    jruoho         0x00,0xF6,0x7C,0x04,0x38,0x3D,0x64,0x83,
   9984       1.1    jruoho         0xE7,0x14,0x08,0xE3,0xE4,0x03,0x38,0xFE,
   9985       1.1    jruoho         0xFF,0x8F,0x15,0xE6,0x18,0x78,0xEA,0x97,
   9986       1.1    jruoho         0x9B,0x8F,0x03,0x54,0xD4,0x2B,0xC2,0x30,
   9987       1.1    jruoho         0x94,0xC5,0x87,0x05,0x1F,0x11,0xF8,0x61,
   9988       1.1    jruoho         0xC1,0x23,0xA8,0x78,0x9C,0xF4,0x74,0xE3,
   9989       1.1    jruoho         0x33,0x21,0x3B,0x24,0x38,0xFC,0x20,0xE9,
   9990       1.1    jruoho         0x41,0x13,0x3C,0xE7,0x23,0x78,0xB7,0x1E,
   9991       1.1    jruoho         0x38,0xA7,0x02,0xC0,0x4D,0xAE,0x27,0xA3,
   9992       1.1    jruoho         0x4E,0x17,0x0E,0x70,0x8E,0x92,0x8D,0x63,
   9993       1.1    jruoho         0x08,0xE5,0x70,0xCC,0xB7,0x87,0xA6,0xC9,
   9994       1.1    jruoho         0x4E,0x56,0x30,0x63,0x41,0xEA,0x24,0xE0,
   9995       1.1    jruoho         0x01,0x38,0x10,0x8C,0xB4,0x93,0x68,0x34,
   9996       1.1    jruoho         0x86,0xB3,0x5A,0x18,0xC1,0x19,0xC4,0xC7,
   9997       1.1    jruoho         0x11,0xE7,0x3A,0x19,0xA1,0x3F,0x07,0x3E,
   9998       1.1    jruoho         0x15,0x61,0x82,0xDC,0x4B,0xE8,0xBC,0x7D,
   9999       1.1    jruoho         0x37,0xE0,0x57,0x61,0x8F,0xC5,0xFF,0x7F,
   10000       1.1    jruoho         0x60,0xDF,0x4E,0xC0,0x31,0x17,0xAB,0x01,
   10001       1.1    jruoho         0x45,0x0D,0xC0,0x68,0x98,0x53,0xC0,0x53,
   10002       1.1    jruoho         0x09,0xB8,0x82,0xCD,0x0D,0x7D,0x61,0xB1,
   10003       1.1    jruoho         0xD6,0xA9,0xE8,0x14,0xF4,0x3E,0x70,0x70,
   10004       1.1    jruoho         0xC0,0x63,0xF6,0x1E,0x1C,0x2C,0x34,0x0F,
   10005       1.1    jruoho         0x0E,0x6C,0xD9,0x06,0x87,0x56,0x72,0x17,
   10006       1.1    jruoho         0x21,0x87,0x0F,0xFC,0xEC,0x80,0x03,0xA0,
   10007       1.1    jruoho         0x67,0x07,0x0B,0xC9,0xB3,0x03,0x9B,0xBE,
   10008       1.1    jruoho         0xB3,0x08,0x28,0x70,0xFE,0xFF,0x11,0xDE,
   10009       1.1    jruoho         0x3B,0x7C,0x6E,0x79,0xF6,0x60,0x63,0x78,
   10010       1.1    jruoho         0x74,0x31,0x9A,0xD1,0xB9,0xA6,0xDB,0x04,
   10011       1.1    jruoho         0x4A,0xC5,0x6D,0x82,0x82,0xF8,0x06,0xE0,
   10012       1.1    jruoho         0x84,0x34,0xBA,0x75,0xE2,0x66,0x62,0xFC,
   10013       1.1    jruoho         0x47,0x0C,0x1F,0x11,0x0E,0xE9,0x6C,0x4D,
   10014       1.1    jruoho         0x30,0x0F,0xA4,0x9E,0x81,0xBE,0xB3,0xE1,
   10015       1.1    jruoho         0x67,0x1F,0xF2,0xC1,0xC5,0xD3,0xF0,0xF5,
   10016       1.1    jruoho         0x86,0xDC,0x3B,0xE8,0xB4,0x7D,0x66,0xC0,
   10017       1.1    jruoho         0x1C,0x74,0x7D,0x9D,0x7A,0x83,0x27,0x57,
   10018       1.1    jruoho         0x09,0xEA,0xE1,0x02,0x42,0x2F,0x34,0xBE,
   10019       1.1    jruoho         0xDC,0x25,0x78,0xE0,0xF4,0xE9,0xEE,0xBD,
   10020       1.1    jruoho         0x84,0x9D,0xF1,0x12,0xBC,0xE0,0x25,0x98,
   10021       1.1    jruoho         0x77,0x10,0xA8,0x51,0x79,0x10,0x98,0xAB,
   10022       1.1    jruoho         0x3C,0xCB,0x37,0x06,0x54,0xB2,0x8B,0x16,
   10023       1.1    jruoho         0x3D,0xC3,0xBC,0xC3,0xF8,0x92,0xE0,0xEB,
   10024       1.1    jruoho         0x87,0xCF,0x2D,0x5E,0xC0,0xEB,0x16,0x0C,
   10025       1.1    jruoho         0x82,0x67,0xA0,0x57,0x17,0xDF,0xD9,0x0D,
   10026       1.1    jruoho         0xFC,0x2A,0xF0,0x46,0x13,0x22,0x98,0x61,
   10027       1.1    jruoho         0x0F,0xFF,0xDD,0xDD,0xA8,0xBE,0xE9,0x18,
   10028       1.1    jruoho         0xEB,0x75,0xC4,0x23,0xE5,0xC7,0x96,0x03,
   10029       1.1    jruoho         0x8A,0xF4,0xF2,0xE6,0x09,0xF8,0x2C,0xE3,
   10030       1.1    jruoho         0x53,0xDD,0x49,0xF9,0x7A,0x68,0xF4,0x57,
   10031       1.1    jruoho         0x08,0x1F,0x7E,0x8C,0xEC,0x73,0x0E,0x3B,
   10032       1.1    jruoho         0xDF,0xB1,0x41,0x71,0xC4,0x07,0x86,0x97,
   10033       1.1    jruoho         0x1A,0x4F,0x85,0x9D,0xBB,0x60,0x1C,0x1C,
   10034       1.1    jruoho         0xD8,0xB1,0x08,0x73,0x7C,0x05,0xD7,0xC9,
   10035       1.1    jruoho         0xE6,0xFF,0xFF,0xE4,0x00,0x6E,0x78,0xCC,
   10036       1.1    jruoho         0xC1,0xD7,0xE7,0x0D,0xDF,0x0C,0x3C,0x2E,
   10037       1.1    jruoho         0x7E,0xE4,0xF0,0x49,0xE3,0xA5,0xD3,0xD8,
   10038       1.1    jruoho         0xA7,0xE9,0xA3,0xD1,0xCB,0x9B,0x4F,0x2F,
   10039       1.1    jruoho         0x18,0x58,0x5F,0x1A,0x38,0xAC,0xD1,0xC2,
   10040       1.1    jruoho         0x3E,0x06,0x9C,0xB9,0x2F,0x44,0xB8,0xC3,
   10041       1.1    jruoho         0x23,0x58,0x00,0xF1,0xB7,0x92,0x47,0x0E,
   10042       1.1    jruoho         0x4F,0xC0,0x80,0x4C,0xD3,0xBA,0x74,0x20,
   10043       1.1    jruoho         0xE2,0xA7,0x3C,0x2B,0x5F,0x99,0x2E,0x43,
   10044       1.1    jruoho         0x0C,0xE3,0xA9,0xF2,0xF1,0xC3,0xB3,0xF1,
   10045       1.1    jruoho         0x51,0xC0,0xC7,0x28,0xCF,0xFC,0x8C,0x22,
   10046       1.1    jruoho         0xBD,0x32,0x10,0x50,0x9D,0x88,0xB8,0x42,
   10047       1.1    jruoho         0x18,0x89,0xA1,0xD1,0x9D,0x83,0xC7,0x1F,
   10048       1.1    jruoho         0x22,0x05,0x31,0xA0,0x6F,0x2E,0xC0,0xF4,
   10049       1.1    jruoho         0x4C,0x04,0x5C,0xFE,0xFF,0x37,0x17,0x80,
   10050       1.1    jruoho         0xFF,0xFF,0xFF,0x9B,0x0B,0xE0,0xE6,0xFE,
   10051       1.1    jruoho         0xE0,0x9B,0x0B,0x70,0x8D,0xB4,0x2A,0x7A,
   10052       1.1    jruoho         0x61,0x77,0x08,0x18,0xD4,0x9D,0x1D,0x70,
   10053       1.1    jruoho         0x78,0x2B,0x78,0x67,0x87,0xF5,0xFF,0xBF,
   10054       1.1    jruoho         0xB3,0xC3,0xC3,0x8C,0x13,0xE5,0x85,0x21,
   10055       1.1    jruoho         0xC6,0x3B,0x3B,0x0B,0xF0,0x26,0xD0,0x51,
   10056       1.1    jruoho         0xC6,0x77,0x76,0x80,0x1F,0x67,0xD8,0x77,
   10057       1.1    jruoho         0x69,0xF0,0x5E,0x75,0x81,0xF5,0xFF,0xFF,
   10058       1.1    jruoho         0xAA,0x0B,0x3C,0x04,0xDF,0xA7,0x41,0x3E,
   10059       1.1    jruoho         0x5E,0x30,0x8C,0x83,0x2B,0x27,0xA1,0xC7,
   10060       1.1    jruoho         0x02,0x6B,0x85,0x41,0xDD,0xA9,0xC1,0xA5,
   10061       1.1    jruoho         0x09,0x5C,0x17,0x5F,0x1F,0x6A,0x7C,0xA4,
   10062       1.1    jruoho         0xC5,0x9F,0x2F,0x70,0x01,0x86,0x4C,0x4F,
   10063       1.1    jruoho         0x65,0x30,0xAE,0x29,0x3E,0x95,0x61,0xEE,
   10064       1.1    jruoho         0x0E,0x1E,0x90,0x8F,0x18,0xC0,0x67,0x15,
   10065       1.1    jruoho         0x1E,0x18,0xEE,0xB4,0xE0,0x9B,0x92,0x41,
   10066       1.1    jruoho         0xCF,0x31,0xA8,0x8F,0x3C,0x27,0xEF,0x7B,
   10067       1.1    jruoho         0xC2,0xE3,0x84,0xA3,0x9E,0x83,0xE8,0xD8,
   10068       1.1    jruoho         0xC0,0x71,0xDC,0xC0,0xFD,0xFF,0xC7,0x06,
   10069       1.1    jruoho         0xEF,0x70,0x83,0x3B,0xE8,0xF8,0x62,0x70,
   10070       1.1    jruoho         0x5C,0x18,0xB8,0xE7,0x02,0x0F,0xC3,0x37,
   10071       1.1    jruoho         0x1D,0x8F,0x08,0x33,0xFE,0xD7,0x3F,0x23,
   10072       1.1    jruoho         0x04,0xC4,0x5F,0x8C,0xD8,0x80,0xC1,0x78,
   10073       1.1    jruoho         0x6B,0xF3,0xF5,0x0D,0x37,0x60,0x5F,0x1D,
   10074       1.1    jruoho         0x7C,0xC1,0xF0,0x09,0xCC,0xE8,0x2F,0x30,
   10075       1.1    jruoho         0x4F,0x62,0x3E,0x36,0x90,0x0B,0x1C,0x1D,
   10076       1.1    jruoho         0x30,0x38,0x00,0x3D,0x60,0xF8,0x87,0x8B,
   10077       1.1    jruoho         0x77,0x39,0x30,0x5C,0x05,0x7D,0x5C,0xF0,
   10078       1.1    jruoho         0xB1,0xC7,0x8A,0xEE,0x72,0xE8,0x9B,0x9C,
   10079       1.1    jruoho         0x61,0xE2,0x18,0xE2,0x0D,0x8C,0xDD,0x25,
   10080       1.1    jruoho         0xC8,0x61,0x0E,0xEA,0x5D,0xC2,0x73,0xE0,
   10081       1.1    jruoho         0x67,0x0B,0x9F,0xE0,0x7C,0xF3,0x09,0x71,
   10082       1.1    jruoho         0xAA,0x8F,0x56,0xEF,0x01,0x3E,0x7A,0xBC,
   10083       1.1    jruoho         0x77,0xF9,0xEC,0xC4,0x2E,0x02,0x3E,0x72,
   10084       1.1    jruoho         0x19,0xC7,0xD3,0xF4,0x15,0xD0,0x43,0x36,
   10085       1.1    jruoho         0xD8,0xAB,0x86,0x4F,0x60,0x3E,0xBA,0xE1,
   10086       1.1    jruoho         0x8E,0x51,0x9E,0x89,0xA7,0xEF,0x3B,0x08,
   10087       1.1    jruoho         0x3B,0x92,0x1C,0x75,0xA8,0x6B,0x7A,0x44,
   10088       1.1    jruoho         0xF9,0xFF,0x9F,0xD0,0x81,0xF8,0xD6,0x06,
   10089       1.1    jruoho         0xCE,0x68,0xF7,0x0F,0xF4,0x36,0x3D,0x32,
   10090       1.1    jruoho         0xCC,0xD1,0x00,0xD6,0x25,0x04,0x5C,0x77,
   10091       1.1    jruoho         0x0C,0x5F,0x42,0x80,0x4F,0xD0,0x4B,0x04,
   10092       1.1    jruoho         0xFA,0x9A,0xE1,0xD1,0x3D,0x02,0x60,0xAE,
   10093       1.1    jruoho         0x18,0xEC,0x58,0xE0,0xC3,0x86,0xAF,0x01,
   10094       1.1    jruoho         0xEC,0x5E,0xE0,0x30,0xF7,0x08,0x50,0x81,
   10095       1.1    jruoho         0x7A,0x78,0xF0,0xD5,0xDE,0x23,0x40,0x71,
   10096       1.1    jruoho         0xB2,0xF4,0xA1,0xC1,0x03,0xB5,0xAA,0x33,
   10097       1.1    jruoho         0x26,0x94,0x23,0x26,0x3F,0x9B,0xF9,0x26,
   10098       1.1    jruoho         0x81,0xB9,0x5D,0xFA,0x26,0x01,0x37,0xCF,
   10099       1.1    jruoho         0x2C,0x50,0x49,0x20,0xF4,0xFF,0xBF,0x49,
   10100       1.1    jruoho         0xC0,0x85,0xE9,0xF2,0x32,0x43,0xE7,0x7F,
   10101       1.1    jruoho         0xE0,0xBE,0xD5,0x79,0x84,0x3E,0x44,0x30,
   10102       1.1    jruoho         0x94,0xF7,0x3C,0x9F,0xC2,0xF8,0x19,0xC2,
   10103       1.1    jruoho         0x07,0x4C,0x76,0xA6,0xE0,0x67,0x4D,0xDC,
   10104       1.1    jruoho         0x1D,0xC0,0x28,0x6F,0x9E,0x9E,0x00,0x3B,
   10105       1.1    jruoho         0x7F,0x1A,0xF9,0xDD,0xE0,0x5D,0xC0,0xD3,
   10106       1.1    jruoho         0xF7,0xBD,0x88,0x9F,0x28,0xC0,0x17,0xEC,
   10107       1.1    jruoho         0x4E,0x07,0x05,0xFA,0x84,0x3C,0x22,0xA3,
   10108       1.1    jruoho         0xFA,0x88,0xC0,0x2F,0x49,0x60,0x3C,0x92,
   10109       1.1    jruoho         0xF8,0x40,0x01,0x84,0xEE,0x05,0xA8,0xD3,
   10110       1.1    jruoho         0x07,0x47,0x3D,0xE3,0x17,0x54,0x63,0xBE,
   10111       1.1    jruoho         0x5B,0x3D,0xC2,0x79,0x72,0x98,0xCB,0x01,
   10112       1.1    jruoho         0x8B,0x73,0x4D,0x02,0xD5,0x71,0x97,0x8F,
   10113       1.1    jruoho         0x0E,0xEE,0xB5,0x15,0xFB,0xFF,0x27,0x38,
   10114       1.1    jruoho         0xB8,0x77,0x96,0x77,0x3E,0x43,0x79,0x90,
   10115       1.1    jruoho         0xE0,0xBB,0xB6,0x82,0xE3,0xAA,0x06,0xE3,
   10116       1.1    jruoho         0xD8,0xC2,0x2F,0x79,0x80,0x9D,0x61,0x71,
   10117       1.1    jruoho         0xC1,0x7F,0x0F,0x03,0x51,0x89,0x30,0x28,
   10118       1.1    jruoho         0x02,0xCB,0xBB,0xB7,0x52,0xF8,0x43,0x06,
   10119       1.1    jruoho         0xE3,0x4D,0x81,0x4F,0x1A,0x3B,0x6A,0xE0,
   10120       1.1    jruoho         0xFB,0xFF,0x1F,0x35,0xD8,0x86,0x8A,0xBB,
   10121       1.1    jruoho         0x29,0x82,0x75,0xAA,0x98,0x21,0xF0,0x60,
   10122       1.1    jruoho         0x0F,0x00,0x9F,0xAF,0x7C,0x06,0x50,0x14,
   10123       1.1    jruoho         0x18,0xD4,0xA1,0x1D,0xCE,0x6D,0x18,0x70,
   10124       1.1    jruoho         0x30,0x62,0xDC,0xA5,0x10,0xEE,0x94,0xDF,
   10125       1.1    jruoho         0x51,0x62,0x3F,0x97,0xB3,0xE9,0xE2,0xAE,
   10126       1.1    jruoho         0xE6,0x3E,0x9D,0xB0,0x0B,0x32,0x8C,0xB3,
   10127       1.1    jruoho         0xC0,0x23,0xC0,0xAB,0x39,0xBF,0x20,0x3F,
   10128       1.1    jruoho         0x17,0xBF,0x10,0x3C,0x26,0x85,0x78,0x53,
   10129       1.1    jruoho         0x7A,0x25,0x36,0xC6,0x93,0x71,0x73,0xB7,
   10130       1.1    jruoho         0x62,0x72,0xDE,0x79,0x41,0x36,0xC6,0xD1,
   10131       1.1    jruoho         0x44,0x8C,0x72,0x6E,0x0F,0x03,0x91,0x5F,
   10132       1.1    jruoho         0x90,0x7D,0x3F,0x79,0x21,0x88,0x18,0xCD,
   10133       1.1    jruoho         0x10,0x41,0x9F,0x97,0x8D,0x15,0x28,0xDE,
   10134       1.1    jruoho         0x0B,0x32,0x13,0xF8,0x56,0xD0,0xC1,0xC5,
   10135       1.1    jruoho         0x17,0x64,0xEC,0xFF,0xFF,0x82,0x0C,0x30,
   10136       1.1    jruoho         0xE2,0x64,0x04,0xF8,0x3C,0x71,0xE0,0xCE,
   10137       1.1    jruoho         0x35,0x30,0xFE,0xFF,0x97,0x6A,0xD8,0x27,
   10138       1.1    jruoho         0x1B,0xC0,0xD9,0xD0,0x7D,0xB2,0x01,0xF7,
   10139       1.1    jruoho         0x68,0xE1,0x1D,0x4D,0x10,0x27,0x1B,0x0A,
   10140       1.1    jruoho         0xE4,0xE0,0xEB,0xA2,0x70,0x3C,0xF4,0x49,
   10141       1.1    jruoho         0x84,0x1E,0x9D,0x7C,0x94,0xC4,0x9D,0x19,
   10142       1.1    jruoho         0x3C,0x91,0x77,0x16,0x8F,0xE2,0x65,0xD0,
   10143       1.1    jruoho         0xF7,0x82,0x13,0x79,0x7D,0xB0,0x9C,0x63,
   10144       1.1    jruoho         0x24,0xA8,0x46,0xE2,0xE3,0x03,0xFC,0xEB,
   10145       1.1    jruoho         0x8B,0x8F,0x91,0xF0,0xF9,0xFC,0xC3,0xF2,
   10146       1.1    jruoho         0x60,0x0C,0xF9,0xFF,0x7F,0x8A,0xC4,0x80,
   10147       1.1    jruoho         0x3C,0xBB,0x3C,0x86,0xF0,0x0B,0x24,0xDC,
   10148       1.1    jruoho         0xD3,0xCC,0x01,0x60,0x64,0x5D,0x1E,0xD1,
   10149       1.1    jruoho         0x67,0x47,0x8E,0x11,0xD7,0x17,0x45,0x5F,
   10150       1.1    jruoho         0x81,0x7D,0x10,0x38,0x9F,0xE7,0x44,0xB0,
   10151       1.1    jruoho         0x8E,0x9A,0x1F,0x6D,0xF8,0xF8,0x39,0xF8,
   10152       1.1    jruoho         0x5B,0xC1,0x03,0xA5,0x8F,0x45,0x21,0x1E,
   10153       1.1    jruoho         0x91,0xF8,0x39,0x11,0x5C,0x26,0xCE,0x89,
   10154       1.1    jruoho         0x40,0xE2,0xD0,0x0B,0xE3,0xB4,0x80,0x1B,
   10155       1.1    jruoho         0x88,0xCF,0x94,0xD8,0x29,0x9F,0x08,0x3B,
   10156       1.1    jruoho         0x97,0x60,0x46,0x07,0xAE,0xCB,0xBD,0x47,
   10157       1.1    jruoho         0x07,0xFE,0x93,0x00,0x1E,0xEB,0xFF,0xFF,
   10158       1.1    jruoho         0x78,0x07,0xBE,0x93,0xBA,0xEF,0x26,0xBE,
   10159       1.1    jruoho         0xC8,0xF8,0x50,0xF4,0x7C,0x07,0xF8,0x0F,
   10160       1.1    jruoho         0x77,0xB8,0x43,0xC5,0x39,0xDF,0x01,0xD2,
   10161       1.1    jruoho         0xFE,0xFF,0xE7,0x3B,0x60,0x79,0xB6,0x7E,
   10162       1.1    jruoho         0xBE,0x03,0xBB,0xC8,0xF3,0x1D,0x40,0xAC,
   10163       1.1    jruoho         0xFF,0xFF,0xF9,0x0E,0xB0,0x73,0x46,0xC3,
   10164       1.1    jruoho         0x9D,0xEF,0xC0,0x76,0xB4,0x01,0xCC,0x4D,
   10165       1.1    jruoho         0xE3,0xD1,0x06,0xDC,0xC3,0x85,0x3D,0x0C,
   10166       1.1    jruoho         0xAE,0xD0,0xA6,0x4F,0x8D,0x46,0xAD,0x1A,
   10167       1.1    jruoho         0x94,0xA9,0x51,0xE6,0xFF,0xDF,0xA0,0x56,
   10168       1.1    jruoho         0x9F,0x4A,0x8D,0x19,0xCB,0x0E,0xA5,0x80,
   10169       1.1    jruoho         0x8F,0x0A,0x8D,0xCD,0xF2,0x28,0x04,0x62,
   10170       1.1    jruoho         0x31,0xAF,0x06,0x81,0x38,0x2C,0x08,0x8D,
   10171       1.1    jruoho         0xF4,0xCA,0x11,0x88,0x25,0x3F,0xFB,0x05,
   10172       1.1    jruoho         0x62,0xB9,0x6F,0x06,0x81,0x38,0xE0,0x1B,
   10173       1.1    jruoho         0x4C,0xE0,0xE4,0x61,0x25,0x70,0xF2,0x6E,
   10174       1.1    jruoho         0x10,0x88,0x23,0x83,0x50,0xA1,0x3A,0x40,
   10175       1.1    jruoho         0x58,0x4C,0x10,0x1A,0xCA,0x07,0x08,0x93,
   10176       1.1    jruoho         0xFE,0x48,0x10,0x20,0x31,0x02,0xC2,0xC2,
   10177       1.1    jruoho         0xBD,0xBF,0x04,0x62,0x69,0xEF,0x09,0x81,
   10178       1.1    jruoho         0x58,0x88,0x15,0x10,0x16,0x17,0x84,0x86,
   10179       1.1    jruoho         0xD3,0x02,0xC2,0x24,0x99,0x01,0x61,0x81,
   10180       1.1    jruoho         0x40,0xA8,0x7C,0x35,0x20,0x4C,0xA4,0x1B,
   10181       1.1    jruoho         0x40,0xBA,0x7A,0x81,0x38,0x88,0x1E,0x10,
   10182       1.1    jruoho         0x26,0xC3,0x0F,0x08,0x0B,0x0D,0x42,0xA3,
   10183       1.1    jruoho         0x3D,0x30,0x04,0x48,0x0C,0x81,0xB0,0xF8,
   10184       1.1    jruoho         0x8E,0x40,0x98,0xF8,0x57,0x91,0x40,0x9C,
   10185       1.1    jruoho         0xDF,0x12,0xC4,0x4D,0x69,0x88,0x35,0x01,
   10186       1.1    jruoho         0x31,0x0D,0x9E,0x80,0x98,0x22,0x10,0x01,
   10187       1.1    jruoho         0x39,0xF6,0xD3,0x43,0x40,0xD6,0x60,0x0A,
   10188       1.1    jruoho         0x88,0x45,0x07,0x11,0x90,0x85,0xA8,0x02,
   10189       1.1    jruoho         0x62,0x79,0x5D,0x01,0xB1,0xF0,0x20,0x02,
   10190       1.1    jruoho         0x72,0xE6,0x97,0x9F,0x80,0xAC,0xE0,0xA5,
   10191       1.1    jruoho         0xF3,0x10,0xC0,0xDE,0x10,0x81,0x48,0x72,
   10192       1.1    jruoho         0x10,0x01,0x39,0xB0,0x2F,0x20,0x16,0x1F,
   10193       1.1    jruoho         0x44,0x40,0xCE,0xFA,0x28,0x14,0x90,0x83,
   10194       1.1    jruoho         0x83,0x68,0x10,0xE4,0x6B,0x26,0x20,0xA7,
   10195       1.1    jruoho         0x07,0x11,0x10,0xF9,0x04,0x05,0x21,0x6A,
   10196       1.1    jruoho         0xBD,0x81,0x30,0x3D,0x8F,0x42,0x0D,0x85,
   10197       1.1    jruoho         0x80,0x50,0xE5,0xEA,0xCE,0x31,0x2C,0x07,
   10198       1.1    jruoho         0x08,0xCD,0x05,0x22,0x30,0xAB,0x70,0x07,
   10199       1.1    jruoho         0xC4,0x54,0x81,0x08,0xC8,0x09,0x80,0xC8,
   10200       1.1    jruoho         0xFF,0x9F,0x60,0x2A,0x10,0x9A,0x12,0x8C,
   10201       1.1    jruoho         0xEA,0x92,0x07,0xC4,0x12,0x80,0xD0,0x54,
   10202       1.1    jruoho         0x20,0x34,0x25,0x88,0x00,0xAD,0xCA,0x1E,
   10203       1.1    jruoho         0x10,0x53,0x0A,0x42,0x95,0x83,0xD0,0x74,
   10204       1.1    jruoho         0x20,0x54,0xB6,0xBE,0xC3,0x02,0x05,0x11,
   10205       1.1    jruoho         0x90,0xA3,0x83,0x50,0xE1,0xFE,0x40,0x98,
   10206       1.1    jruoho         0xDE,0x97,0x86,0x00,0x9D,0x0E,0x44,0x40,
   10207       1.1    jruoho         0x4E,0x0C,0x42,0x15,0x7C,0x32,0x82,0x10,
   10208       1.1    jruoho         0xB1,0x20,0x54,0xC1,0x27,0x23,0x28,0xD1,
   10209       1.1    jruoho         0xF2,0xB2,0x13,0x90,0xF5,0x81,0x50,0xBD,
   10210       1.1    jruoho         0x20,0x02,0x73,0x36,0x20,0x9A,0x17,0x84,
   10211       1.1    jruoho         0xE6,0x07,0xA3,0x5A,0x8D,0x02,0x31,0xFD,
   10212       1.1    jruoho         0x20,0x34,0x0F,0x88,0xC0,0xAC,0xE0,0xF9,
   10213       1.1    jruoho         0x71,0xC0,0x0C,0x84,0xAA,0x04,0x11,0x98,
   10214       1.1    jruoho         0x73,0x01,0xD1,0xAC,0x20,0x34,0x3B,0x18,
   10215       1.1    jruoho         0xD5,0xFE,0x0F,0xD1,0x00,0x08,0x08,0xCD,
   10216       1.1    jruoho         0x07,0xA2,0xC3,0x00,0x79,0x96,0x09,0xC8,
   10217       1.1    jruoho         0x1A,0x41,0xA8,0x66,0x10,0x81,0x39,0x27,
   10218       1.1    jruoho         0x10,0xCD,0x0E,0x42,0x95,0xFD,0x4D,0x82,
   10219       1.1    jruoho         0x91,0x8C,0x0F,0xD0,0x40,0x24,0x37,0x08,
   10220       1.1    jruoho         0xD5,0xF1,0x0C,0x0A,0x46,0x74,0x83,0x08,
   10221       1.1    jruoho         0xC8,0x59,0x40,0x68,0x36,0x30,0x9A,0x4C,
   10222       1.1    jruoho         0xED,0x91,0x80,0xBA,0x05,0x61,0xE9,0x41,
   10223       1.1    jruoho         0x68,0x3A,0xBB,0x83,0xA7,0x20,0x54,0x81,
   10224       1.1    jruoho         0x5E,0x30,0xA6,0x19,0x44,0x87,0x05,0x02,
   10225       1.1    jruoho         0x42,0x73,0x81,0x51,0x1D,0xAF,0x96,0x40,
   10226       1.1    jruoho         0x44,0x1B,0x08,0xD5,0x0A,0xA2,0x81,0x93,
   10227       1.1    jruoho         0x1F,0x53,0x10,0x92,0x14,0x84,0xFC,0xFF,
   10228       1.1    jruoho         0x07,0xAA,0xC7,0x9C,0x40,0xAC,0xFA,0x5B,
   10229       1.1    jruoho         0x25,0x50,0x27,0x01,0xA1,0xC9,0x40,0x74,
   10230       1.1    jruoho         0x7C,0x20,0x0F,0xB8,0x83,0x64,0x20,0x54,
   10231       1.1    jruoho         0x29,0x88,0xC0,0xAC,0xF4,0x63,0xA4,0x23,
   10232       1.1    jruoho         0x05,0x51,0x7D,0xBC,0xA0,0x20,0x34,0xD1,
   10233       1.1    jruoho         0x3B,0x2C,0x08,0x7B,0xB8,0x69,0xA8,0xE4,
   10234       1.1    jruoho         0x59,0xA5,0xA1,0x12,0x10,0x9A,0x0D,0x44,
   10235       1.1    jruoho         0xC7,0x04,0xF2,0xAA,0x79,0x4C,0x60,0x20,
   10236       1.1    jruoho         0x54,0x2F,0x08,0xCD,0x01,0x42,0x13,0x83,
   10237       1.1    jruoho         0x08,0xD4,0xA9,0xBF,0x37,0x1A,0x2A,0xF9,
   10238       1.1    jruoho         0x5B,0x09,0xC4,0xCA,0x5E,0x69,0x02,0xB1,
   10239       1.1    jruoho         0xDE,0xA7,0x4E,0x20,0xE6,0x1D,0x98,0xA9,
   10240       1.1    jruoho         0x05,0xA1,0xEA,0x41,0x04,0xE6,0xB4,0x40,
   10241       1.1    jruoho         0x54,0x81,0x78,0x10,0xA6,0x08,0x44,0x60,
   10242       1.1    jruoho         0x4E,0x02,0x44,0xD3,0x81,0xD0,0xEC,0x60,
   10243       1.1    jruoho         0x54,0xE7,0xA3,0x4D,0x40,0xD6,0x0E,0x42,
   10244       1.1    jruoho         0xB3,0x80,0x08,0xCC,0x59,0x1E,0x69,0x02,
   10245       1.1    jruoho         0xB1,0x92,0x2F,0x9D,0x0E,0x24,0x04,0x84,
   10246       1.1    jruoho         0x26,0xD3,0x7F,0x68,0xA1,0x05,0x80,0x99,
   10247       1.1    jruoho         0x84,0x04,0x20,0x4C,0x16,0x88,0x0E,0x27,
   10248       1.1    jruoho         0xD6,0x08,0x22,0x40,0xC7,0x01,0xA3,0xD1,
   10249       1.1    jruoho         0x40,0x68,0x5C,0x40,0x9A,0x1D,0x90,0x2A,
   10250       1.1    jruoho         0x6D,0x00,0xC6,0x54,0x83,0xD0,0x24,0x20,
   10251       1.1    jruoho         0x02,0x74,0x2C,0x10,0x01,0x5A,0x74,0x04,
   10252       1.1    jruoho         0x30,0x16,0x01,0x84,0x46,0x05,0xA1,0xC9,
   10253       1.1    jruoho         0x2A,0x80,0xB2,0x9C,0x20,0x1A,0x20,0xC9,
   10254       1.1    jruoho         0x30,0x60,0x0A,0x42,0x33,0x81,0xD0,0x8C,
   10255       1.1    jruoho         0x20,0x54,0x7C,0x07,0x10,0x16,0x04,0x84,
   10256       1.1    jruoho         0x86,0x03,0xD1,0x00,0xFE,0xFF,0x8F,0x0C,
   10257       1.1    jruoho         0x02,0xD1,0x00,0x9C,0x23,0xC4,0x61,0x85,
   10258       1.1    jruoho         0x82,0xD0,0xF4,0x20,0x34,0x6C,0x09,0x50,
   10259       1.1    jruoho         0x16,0x1D,0x44,0xC7,0x23,0x92,0x02,0x8C,
   10260       1.1    jruoho         0x05,0x02,0xA1,0x31,0x41,0x68,0x6C,0x10,
   10261       1.1    jruoho         0x1A,0x29,0x06,0x28,0x13,0x54,0xE3,0x50,
   10262       1.1    jruoho         0x44,0x7B,0x80,0x31,0x99,0x20,0x54,0x36,
   10263       1.1    jruoho         0x88,0xC0,0x1C,0x14,0x88,0x86,0x07,0xA1,
   10264       1.1    jruoho         0x62,0x82,0x00,0x52,0x10,0x01,0x12,0x20,
   10265       1.1    jruoho         0x1A,0x1E,0x84,0x8A,0x29,0x32,0x74,0x0A,
   10266       1.1    jruoho         0x42,0x55,0x24,0x39,0x9A,0x50,0x10,0x1D,
   10267       1.1    jruoho         0x4D,0x08,0x08,0xCD,0x07,0x46,0x75,0x35,
   10268       1.1    jruoho         0x39,0x6E,0x50,0x10,0xAA,0x1D,0x84,0x06,
   10269       1.1    jruoho         0x05,0xA1,0x39,0xA2,0x80,0xB2,0xEC,0x20,
   10270       1.1    jruoho         0x02,0xB2,0x9E,0x2A,0x87,0x0A,0x0A,0x22,
   10271       1.1    jruoho         0x30,0xA7,0x02,0xA2,0x49,0x41,0xA8,0x8E,
   10272       1.1    jruoho         0x2C,0x47,0x0A,0x9A,0x06,0x84,0x25,0x06,
   10273       1.1    jruoho         0xA1,0xC9,0xDA,0x80,0xB0,0x0C,0x75,0x0E,
   10274       1.1    jruoho         0x24,0x14,0x84,0xE6,0x04,0xA1,0x4A,0xF2,
   10275       1.1    jruoho         0x0C,0x8F,0x82,0xE8,0x38,0x42,0x80,0x68,
   10276       1.1    jruoho         0x7A,0x10,0xAA,0xA6,0xCF,0x00,0x28,0x88,
   10277       1.1    jruoho         0x06,0x40,0x40,0x68,0x4E,0x30,0xAA,0xA8,
   10278       1.1    jruoho         0xD1,0xD1,0x84,0x82,0x50,0xDD,0x2F,0x4E,
   10279       1.1    jruoho         0x81,0xF8,0xFF,0x0F,
   10280       1.1    jruoho     })  // END MBUF
   10281       1.1    jruoho 
   10282       1.1    jruoho } //end DefinitionBlock
   10283