Home | History | Annotate | Line # | Download | only in misc
grammar.asl revision 1.1.1.4
      1      1.1    jruoho /*
      2  1.1.1.4  christos  * Some or all of this work - Copyright (c) 2006 - 2014, Intel Corp.
      3      1.1    jruoho  * All rights reserved.
      4      1.1    jruoho  *
      5      1.1    jruoho  * Redistribution and use in source and binary forms, with or without modification,
      6      1.1    jruoho  * are permitted provided that the following conditions are met:
      7      1.1    jruoho  *
      8      1.1    jruoho  * Redistributions of source code must retain the above copyright notice,
      9      1.1    jruoho  * this list of conditions and the following disclaimer.
     10      1.1    jruoho  * Redistributions in binary form must reproduce the above copyright notice,
     11      1.1    jruoho  * this list of conditions and the following disclaimer in the documentation
     12      1.1    jruoho  * and/or other materials provided with the distribution.
     13      1.1    jruoho  * Neither the name of Intel Corporation nor the names of its contributors
     14      1.1    jruoho  * may be used to endorse or promote products derived from this software
     15      1.1    jruoho  * without specific prior written permission.
     16      1.1    jruoho  *
     17      1.1    jruoho  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     18      1.1    jruoho  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     19      1.1    jruoho  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     20      1.1    jruoho  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
     21      1.1    jruoho  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     22      1.1    jruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     23      1.1    jruoho  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24      1.1    jruoho  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     25      1.1    jruoho  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     26      1.1    jruoho  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27      1.1    jruoho  */
     28      1.1    jruoho 
     29      1.1    jruoho //
     30      1.1    jruoho //
     31      1.1    jruoho // Grammar.asl - Minimally excercises most ASL constructs
     32      1.1    jruoho //
     33      1.1    jruoho // NOTE -- use: iasl -f -of grammar.asl to compile
     34      1.1    jruoho //
     35      1.1    jruoho //         This 1) Ignores errors (checks compiler error handling)
     36      1.1    jruoho //              2) Disables constant folding
     37      1.1    jruoho //
     38      1.1    jruoho //
     39      1.1    jruoho 
     40      1.1    jruoho /*******************************************************************************
     41      1.1    jruoho Compilation should look like this:
     42      1.1    jruoho 
     43      1.1    jruoho C:\acpica\tests\misc>iasl -f -of grammar.asl
     44      1.1    jruoho 
     45      1.1    jruoho Intel ACPI Component Architecture
     46      1.1    jruoho ASL Optimizing Compiler version 20090422 [Apr 22 2009]
     47      1.1    jruoho Copyright (C) 2000 - 2009 Intel Corporation
     48      1.1    jruoho Supports ACPI Specification Revision 3.0a
     49      1.1    jruoho 
     50      1.1    jruoho grammar.asl   187:     Name (_NPK, Package (8)
     51      1.1    jruoho Warning  1098 -                 ^ Unknown reserved name (_NPK)
     52      1.1    jruoho 
     53      1.1    jruoho grammar.asl   510:     NAME (ESC1, "abcdefg\x00hijklmn")
     54      1.1    jruoho Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
     55      1.1    jruoho 
     56      1.1    jruoho grammar.asl   511:     NAME (ESC2, "abcdefg\000hijklmn")
     57      1.1    jruoho Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
     58      1.1    jruoho 
     59      1.1    jruoho grammar.asl   601:     Method (RCIV, 1)
     60      1.1    jruoho Warning  1087 -                   ^ Not all control paths return a value (RCIV)
     61      1.1    jruoho 
     62      1.1    jruoho grammar.asl   608:         RCIV (Subtract (Arg0, 1))
     63      1.1    jruoho Remark   5073 -               ^ Recursive method call (RCIV)
     64      1.1    jruoho 
     65      1.1    jruoho grammar.asl   937:     Method (_ERR, 2)
     66      1.1    jruoho Warning  1077 -                   ^ Reserved method has too few arguments (_ERR requires 3)
     67      1.1    jruoho 
     68      1.1    jruoho grammar.asl  1377:         Store (0x1234567887654321, QWD2)
     69      1.1    jruoho Warning  1032 -                                    ^ 64-bit integer in 32-bit table, truncating
     70      1.1    jruoho 
     71      1.1    jruoho grammar.asl  1379:         if (LNotEqual (Local0, 0x1234567887654321))
     72      1.1    jruoho Warning  1032 -         64-bit integer in 32-bit table, truncating ^
     73      1.1    jruoho 
     74      1.1    jruoho grammar.asl  1459:         SizeOf (BUFO)
     75      1.1    jruoho Warning  1105 -                       ^ Result is not used, operator has no effect
     76      1.1    jruoho 
     77      1.1    jruoho grammar.asl  1485:         Acquire (MTX2, 1)
     78      1.1    jruoho Warning  1104 -                           ^ Possible operator timeout is ignored
     79      1.1    jruoho 
     80      1.1    jruoho grammar.asl  1633:         Add (Local0, Local1)
     81      1.1    jruoho Warning  1105 -                      ^ Result is not used, operator has no effect
     82      1.1    jruoho 
     83      1.1    jruoho grammar.asl  1804:     Method (COND)
     84      1.1    jruoho Warning  1087 -                   ^ Not all control paths return a value (COND)
     85      1.1    jruoho 
     86      1.1    jruoho grammar.asl  6010:             Name (_HID, "*PNP0A06")
     87      1.1    jruoho Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0A06)
     88      1.1    jruoho 
     89      1.1    jruoho grammar.asl  6461:             Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
     90      1.1    jruoho Warning  1038 -        Invalid or unknown escape sequence ^
     91      1.1    jruoho 
     92      1.1    jruoho grammar.asl  6800:                 And (Local0, 1, Local0) //  Local0 &= 1
     93      1.1    jruoho Error    4050 -                              ^ Method local variable is not initialized (Local0)
     94      1.1    jruoho 
     95      1.1    jruoho grammar.asl  6886:             Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
     96      1.1    jruoho Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0C0A)
     97      1.1    jruoho 
     98      1.1    jruoho ASL Input:  grammar.asl - 10254 lines, 322162 bytes, 4810 keywords
     99      1.1    jruoho AML Output: grammar.aml - 43392 bytes, 669 named objects, 4141 executable opcodes
    100      1.1    jruoho 
    101      1.1    jruoho Compilation complete. 3 Errors, 12 Warnings, 1 Remarks, 1101 Optimizations
    102      1.1    jruoho 
    103      1.1    jruoho ***************************************************************************************************/
    104      1.1    jruoho 
    105      1.1    jruoho DefinitionBlock (
    106      1.1    jruoho     "grammar.aml",      //Output filename
    107      1.1    jruoho     "DSDT",             //Signature
    108      1.1    jruoho     0x01,               //DSDT Revision ---> 32-bit table
    109      1.1    jruoho     "Intel",            //OEMID
    110      1.1    jruoho     "GRMTEST",          //TABLE ID
    111      1.1    jruoho     0x20090511          //OEM Revision
    112      1.1    jruoho     )
    113      1.1    jruoho {
    114      1.1    jruoho 
    115      1.1    jruoho     External (\ABCD, UnknownObj)
    116      1.1    jruoho 
    117      1.1    jruoho 
    118      1.1    jruoho     /* Device with _STA and _INI */
    119      1.1    jruoho 
    120      1.1    jruoho     Device (A1)
    121      1.1    jruoho     {
    122      1.1    jruoho         Method (_STA)
    123      1.1    jruoho         {
    124      1.1    jruoho             Return (0x0F)
    125      1.1    jruoho         }
    126      1.1    jruoho 
    127      1.1    jruoho         Method (_INI)
    128      1.1    jruoho         {
    129      1.1    jruoho             Return
    130      1.1    jruoho         }
    131      1.1    jruoho     }
    132      1.1    jruoho 
    133      1.1    jruoho     /* Device with no _STA, has _INI */
    134      1.1    jruoho 
    135      1.1    jruoho     Device (A2)
    136      1.1    jruoho     {
    137      1.1    jruoho         Method (_INI)
    138      1.1    jruoho         {
    139      1.1    jruoho             Return
    140      1.1    jruoho         }
    141      1.1    jruoho     }
    142      1.1    jruoho 
    143      1.1    jruoho     /* Device with _STA, no _INI */
    144      1.1    jruoho 
    145      1.1    jruoho     Device (A3)
    146      1.1    jruoho     {
    147      1.1    jruoho         Method (_STA)
    148      1.1    jruoho         {
    149      1.1    jruoho             Return (0x0F)
    150      1.1    jruoho         }
    151      1.1    jruoho     }
    152      1.1    jruoho 
    153      1.1    jruoho     /* Device with _STA and _INI, but not present */
    154      1.1    jruoho 
    155      1.1    jruoho     Device (A4)
    156      1.1    jruoho     {
    157      1.1    jruoho         Method (_STA)
    158      1.1    jruoho         {
    159      1.1    jruoho             Return (Zero)
    160      1.1    jruoho         }
    161      1.1    jruoho 
    162      1.1    jruoho         Method (_INI)
    163      1.1    jruoho         {
    164      1.1    jruoho             Return
    165      1.1    jruoho         }
    166      1.1    jruoho     }
    167      1.1    jruoho 
    168      1.1    jruoho 
    169      1.1    jruoho     /* Resource descriptors */
    170      1.1    jruoho 
    171      1.1    jruoho     Device (IRES)
    172      1.1    jruoho     {
    173      1.1    jruoho         Name (PRT0, ResourceTemplate ()
    174      1.1    jruoho         {
    175      1.1    jruoho             IRQ (Edge, ActiveHigh, Exclusive) {3,4,5,6,7,9,10,11,14,15}
    176      1.1    jruoho 
    177      1.1    jruoho             StartDependentFn (1,1)
    178      1.1    jruoho             {
    179      1.1    jruoho                 IRQNoFlags () {0,1,2}
    180      1.1    jruoho             }
    181      1.1    jruoho             EndDependentFn ()
    182      1.1    jruoho         })
    183      1.1    jruoho 
    184      1.1    jruoho         Method (_CRS, 0, NotSerialized)
    185      1.1    jruoho         {
    186      1.1    jruoho             Store ("_CRS:", Debug)
    187      1.1    jruoho             Store (PRT0, Debug)
    188      1.1    jruoho             Return (PRT0)
    189      1.1    jruoho         }
    190      1.1    jruoho 
    191      1.1    jruoho         Method (_SRS, 1, Serialized)
    192      1.1    jruoho         {
    193      1.1    jruoho             Store ("_SRS:", Debug)
    194      1.1    jruoho             Store (Arg0, Debug)
    195      1.1    jruoho             Return (Zero)
    196      1.1    jruoho         }
    197      1.1    jruoho     }
    198      1.1    jruoho 
    199      1.1    jruoho     Name (_NPK, Package ()
    200      1.1    jruoho     {
    201      1.1    jruoho         0x1111,
    202      1.1    jruoho         0x2222,
    203      1.1    jruoho         0x3333,
    204      1.1    jruoho         0x4444
    205      1.1    jruoho     })
    206      1.1    jruoho 
    207      1.1    jruoho 
    208      1.1    jruoho     Device (RES)
    209      1.1    jruoho     {
    210      1.1    jruoho         Name (_PRT, Package (0x04)
    211      1.1    jruoho         {
    212      1.1    jruoho             Package (0x04)
    213      1.1    jruoho             {
    214      1.1    jruoho                 0x0002FFFF,
    215      1.1    jruoho                 Zero,
    216      1.1    jruoho                 Zero,
    217      1.1    jruoho                 Zero
    218      1.1    jruoho             },
    219      1.1    jruoho 
    220      1.1    jruoho             Package (0x04)
    221      1.1    jruoho             {
    222      1.1    jruoho                 0x0002FFFF,
    223      1.1    jruoho                 One,
    224      1.1    jruoho                 Zero,
    225      1.1    jruoho                 Zero
    226      1.1    jruoho             },
    227      1.1    jruoho 
    228      1.1    jruoho             Package (0x04)
    229      1.1    jruoho             {
    230      1.1    jruoho                 0x000AFFFF,
    231      1.1    jruoho                 Zero,
    232      1.1    jruoho                 Zero,
    233      1.1    jruoho                 Zero
    234      1.1    jruoho             },
    235      1.1    jruoho 
    236      1.1    jruoho             Package (0x04)
    237      1.1    jruoho             {
    238      1.1    jruoho                 0x000BFFFF,
    239      1.1    jruoho                 Zero,
    240      1.1    jruoho                 Zero,
    241      1.1    jruoho                 Zero
    242      1.1    jruoho             }
    243      1.1    jruoho         })
    244      1.1    jruoho 
    245  1.1.1.3  christos         Method (_CRS, 0, Serialized)
    246      1.1    jruoho         {
    247      1.1    jruoho             Name (PRT0, ResourceTemplate ()
    248      1.1    jruoho             {
    249      1.1    jruoho                 WordBusNumber (ResourceConsumer, MinFixed, MaxFixed, SubDecode,
    250      1.1    jruoho                     0x0000, // Address Space Granularity
    251      1.1    jruoho                     0xFFF2, // Address Range Minimum
    252      1.1    jruoho                     0xFFF3, // Address Range Maximum
    253      1.1    jruoho                     0x0032, // Address Translation Offset
    254      1.1    jruoho                     0x0002,,,)
    255      1.1    jruoho                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
    256      1.1    jruoho                     0x0000, // Address Space Granularity
    257      1.1    jruoho                     0x0000, // Address Range Minimum
    258      1.1    jruoho                     0x00FF, // Address Range Maximum
    259      1.1    jruoho                     0x0000, // Address Translation Offset
    260      1.1    jruoho                     0x0100,,,)
    261      1.1    jruoho                 WordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
    262      1.1    jruoho                     0x0000, // Address Space Granularity
    263      1.1    jruoho                     0xA000, // Address Range Minimum
    264      1.1    jruoho                     0xBFFF, // Address Range Maximum
    265      1.1    jruoho                     0x0000, // Address Translation Offset
    266      1.1    jruoho                     0x2000,,,)
    267      1.1    jruoho                 IO (Decode16, 0x0CF8, 0x0CFF, 0x01, 0x08)
    268      1.1    jruoho                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    269      1.1    jruoho                     0x0000, // Address Space Granularity
    270      1.1    jruoho                     0x0000, // Address Range Minimum
    271      1.1    jruoho                     0x0CF7, // Address Range Maximum
    272      1.1    jruoho                     0x0000, // Address Translation Offset
    273      1.1    jruoho                     0x0CF8,,,
    274      1.1    jruoho                     , TypeStatic)
    275      1.1    jruoho                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    276      1.1    jruoho                     0x0000, // Address Space Granularity
    277      1.1    jruoho                     0x0D00, // Address Range Minimum
    278      1.1    jruoho                     0xFFFF, // Address Range Maximum
    279      1.1    jruoho                     0x0000, // Address Translation Offset
    280      1.1    jruoho                     0xF300,,,
    281      1.1    jruoho                     , TypeStatic)
    282      1.1    jruoho                 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    283      1.1    jruoho                     0x00000000, // Address Space Granularity
    284      1.1    jruoho                     0x00000000, // Address Range Minimum
    285      1.1    jruoho                     0x00000CF7, // Address Range Maximum
    286      1.1    jruoho                     0x00000000, // Address Translation Offset
    287      1.1    jruoho                     0x00000CF8,,,
    288      1.1    jruoho                     , TypeStatic)
    289      1.1    jruoho                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
    290      1.1    jruoho                     0x00000000, // Address Space Granularity
    291      1.1    jruoho                     0x000C8000, // Address Range Minimum
    292      1.1    jruoho                     0x000EFFFF, // Address Range Maximum
    293      1.1    jruoho                     0x00000000, // Address Translation Offset
    294      1.1    jruoho                     0x00028000,,,
    295      1.1    jruoho                     , AddressRangeMemory, TypeStatic)
    296      1.1    jruoho                 DWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
    297      1.1    jruoho                     0x00000000, // Address Space Granularity
    298      1.1    jruoho                     0x000C8000, // Address Range Minimum
    299      1.1    jruoho                     0x000EFFFF, // Address Range Maximum
    300      1.1    jruoho                     0x00000000, // Address Translation Offset
    301      1.1    jruoho                     0x00028000,,,)
    302      1.1    jruoho                 QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    303      1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    304      1.1    jruoho                     0x0000000000000000, // Address Range Minimum
    305      1.1    jruoho                     0x0000000000000CF7, // Address Range Maximum
    306      1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    307      1.1    jruoho                     0x0000000000000CF8, 0x44, "This is a ResouceSource string",
    308      1.1    jruoho                     , TypeStatic)
    309      1.1    jruoho                 QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    310      1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    311      1.1    jruoho                     0x0000000000000000, // Address Range Minimum
    312      1.1    jruoho                     0x0000000000000CF7, // Address Range Maximum
    313      1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    314      1.1    jruoho                     0x0000000000000CF8,,,
    315      1.1    jruoho                     , TypeStatic)
    316      1.1    jruoho                 QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
    317      1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    318      1.1    jruoho                     0x0000000000100000, // Address Range Minimum
    319      1.1    jruoho                     0x00000000FFDFFFFF, // Address Range Maximum
    320      1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    321      1.1    jruoho                     0x00000000FFD00000,,,
    322      1.1    jruoho                     , AddressRangeMemory, TypeStatic)
    323      1.1    jruoho                 QWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
    324      1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    325      1.1    jruoho                     0x0000000000000000, // Address Range Minimum
    326      1.1    jruoho                     0x0000000000000CF7, // Address Range Maximum
    327      1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    328      1.1    jruoho                     0x0000000000000CF8,,,)
    329      1.1    jruoho                 ExtendedIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    330      1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    331      1.1    jruoho                     0x0000000000000000, // Address Range Minimum
    332      1.1    jruoho                     0x0000000000000CF7, // Address Range Maximum
    333      1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    334      1.1    jruoho                     0x0000000000000CF8, // Address Length
    335      1.1    jruoho                     0x0000000000000000, // Type Specific Attributes
    336      1.1    jruoho                     , TypeStatic)
    337      1.1    jruoho                 ExtendedMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
    338      1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    339      1.1    jruoho                     0x0000000000100000, // Address Range Minimum
    340      1.1    jruoho                     0x00000000FFDFFFFF, // Address Range Maximum
    341      1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    342      1.1    jruoho                     0x00000000FFD00000, // Address Length
    343      1.1    jruoho                     0x0000000000000000, // Type Specific Attributes
    344      1.1    jruoho                     , AddressRangeMemory, TypeStatic)
    345      1.1    jruoho                 ExtendedSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0xA3,
    346      1.1    jruoho                     0x0000000000000000, // Address Space Granularity
    347      1.1    jruoho                     0x0000000000100000, // Address Range Minimum
    348      1.1    jruoho                     0x00000000FFDFFFFF, // Address Range Maximum
    349      1.1    jruoho                     0x0000000000000000, // Address Translation Offset
    350      1.1    jruoho                     0x00000000FFD00000, // Address Length
    351      1.1    jruoho                     0x0000000000000000) // Type Specific Attributes
    352      1.1    jruoho                 IO (Decode16, 0x0010, 0x0020, 0x01, 0x10)
    353      1.1    jruoho                 IO (Decode16, 0x0090, 0x00A0, 0x01, 0x10)
    354      1.1    jruoho                 FixedIO (0x0061, 0x01)
    355      1.1    jruoho                 IRQNoFlags () {2}
    356      1.1    jruoho                 DMA (Compatibility, BusMaster, Transfer8_16) {4}
    357      1.1    jruoho                 DMA (Compatibility, BusMaster, Transfer8) {2,5,7}
    358      1.1    jruoho                 Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
    359      1.1    jruoho                 Memory32Fixed (ReadOnly, 0xFFFE0000, 0x00020000)
    360      1.1    jruoho                 Memory32 (ReadOnly, 0x00020000, 0xFFFE0000, 0x00000004, 0x00000200)
    361      1.1    jruoho                 Memory24 (ReadOnly, 0x1111, 0x2222, 0x0004, 0x0200)
    362      1.1    jruoho                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, 0xE, "\\_SB_.TEST")
    363      1.1    jruoho                 {
    364      1.1    jruoho                     0x00000E01,
    365      1.1    jruoho                 }
    366      1.1    jruoho                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0x6, "xxxx")
    367      1.1    jruoho                 {
    368      1.1    jruoho                     0x00000601,
    369      1.1    jruoho                     0x00000003,
    370      1.1    jruoho                     0x00000002,
    371      1.1    jruoho                     0x00000001,
    372      1.1    jruoho                 }
    373      1.1    jruoho                 Interrupt (ResourceProducer, Edge, ActiveHigh, Exclusive)
    374      1.1    jruoho                 {
    375      1.1    jruoho                     0xFFFF0000,
    376      1.1    jruoho                     0x00000003,
    377      1.1    jruoho                     0x00000002,
    378      1.1    jruoho                     0x00000001,
    379      1.1    jruoho                     0x00000005,
    380      1.1    jruoho                     0x00000007,
    381      1.1    jruoho                     0x00000009,
    382      1.1    jruoho                 }
    383      1.1    jruoho                 VendorShort () {0x01, 0x02, 0x03}
    384      1.1    jruoho                 VendorLong ()
    385      1.1    jruoho                 {
    386      1.1    jruoho                     0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
    387      1.1    jruoho                     0x09
    388      1.1    jruoho                 }
    389      1.1    jruoho                 Register (SystemIO, 0x08, 0x00, 0x00000000000000B2, , R000)
    390      1.1    jruoho                 Register (SystemMemory, 0x08, 0x00, 0x00000000000000B2)
    391      1.1    jruoho                 StartDependentFnNoPri ()
    392      1.1    jruoho                 {
    393      1.1    jruoho                     IRQNoFlags () {0,1,2}
    394      1.1    jruoho                     IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,14,15}
    395      1.1    jruoho                 }
    396      1.1    jruoho                 EndDependentFn ()
    397      1.1    jruoho             })
    398      1.1    jruoho             CreateWordField (PRT0, 0x08, BMIN)
    399      1.1    jruoho             CreateByteField (PRT0, R000._ASZ, RSIZ)
    400      1.1    jruoho             Store (0x03, BMIN)
    401      1.1    jruoho             Return (PRT0)
    402      1.1    jruoho         }
    403      1.1    jruoho 
    404  1.1.1.3  christos         Method (_PRS, 0, Serialized)
    405      1.1    jruoho         {
    406      1.1    jruoho             Name (BUF0, ResourceTemplate ()
    407      1.1    jruoho             {
    408      1.1    jruoho                 StartDependentFn (0x01, 0x02)
    409      1.1    jruoho                 {
    410      1.1    jruoho                     IO (Decode16, 0x03D8, 0x03F8, 0x01, 0x08)
    411      1.1    jruoho                     IRQNoFlags () {4}
    412      1.1    jruoho                 }
    413      1.1    jruoho                 StartDependentFn (0x02, 0x01)
    414      1.1    jruoho                 {
    415      1.1    jruoho                     IO (Decode16, 0x03D8, 0x03E8, 0x01, 0x08)
    416      1.1    jruoho                     IRQNoFlags () {4}
    417      1.1    jruoho                 }
    418      1.1    jruoho                 StartDependentFn (0x00, 0x02)
    419      1.1    jruoho                 {
    420      1.1    jruoho                     IO (Decode16, 0x02E8, 0x02F8, 0x01, 0x08)
    421      1.1    jruoho                     IRQNoFlags () {3}
    422      1.1    jruoho                 }
    423      1.1    jruoho                 StartDependentFn (0x00, 0x02)
    424      1.1    jruoho                 {
    425      1.1    jruoho                     IO (Decode16, 0x02D8, 0x02E8, 0x01, 0x08)
    426      1.1    jruoho                     IRQNoFlags () {3}
    427      1.1    jruoho                 }
    428      1.1    jruoho                 StartDependentFn (0x02, 0x00)
    429      1.1    jruoho                 {
    430      1.1    jruoho                     IO (Decode16, 0x0100, 0x03F8, 0x08, 0x08)
    431      1.1    jruoho                     IRQNoFlags () {1,3,4,5,6,7,8,10,11,12,13,14,15}
    432      1.1    jruoho                 }
    433      1.1    jruoho                 EndDependentFn ()
    434      1.1    jruoho             })
    435      1.1    jruoho             Return (BUF0)
    436      1.1    jruoho         }
    437      1.1    jruoho 
    438      1.1    jruoho         Method (_SRS, 1, Serialized)
    439      1.1    jruoho         {
    440      1.1    jruoho             Return (Zero)
    441      1.1    jruoho         }
    442      1.1    jruoho     }
    443      1.1    jruoho 
    444      1.1    jruoho 
    445      1.1    jruoho     Name(\_S0,Package(0x04){
    446      1.1    jruoho         0x00,
    447      1.1    jruoho         0x00,
    448      1.1    jruoho         0x00,
    449      1.1    jruoho         0x00
    450      1.1    jruoho     })
    451      1.1    jruoho     Name(\_S3,Package(0x04){
    452      1.1    jruoho         0x05,
    453      1.1    jruoho         0x05,
    454      1.1    jruoho         0x00,
    455      1.1    jruoho         0x00
    456      1.1    jruoho     })
    457      1.1    jruoho     Name(\_S4,Package(0x04){
    458      1.1    jruoho         0x06,
    459      1.1    jruoho         0x06,
    460      1.1    jruoho         0x00,
    461      1.1    jruoho         0x00
    462      1.1    jruoho     })
    463      1.1    jruoho     Name(\_S5,Package(0x04){
    464      1.1    jruoho         0x07,
    465      1.1    jruoho         0x07,
    466      1.1    jruoho         0x00,
    467      1.1    jruoho         0x00
    468      1.1    jruoho     })
    469      1.1    jruoho 
    470      1.1    jruoho /* Examine this table header (DSDT) */
    471      1.1    jruoho 
    472      1.1    jruoho /*
    473      1.1    jruoho     DataTableRegion (HDR, "DSDT", "", "")
    474      1.1    jruoho     Field (HDR, AnyAcc, NoLock, Preserve)
    475      1.1    jruoho     {
    476      1.1    jruoho         SIG,  32,
    477      1.1    jruoho         LENG, 32,
    478      1.1    jruoho         REV,  8,
    479      1.1    jruoho         SUM,  8,
    480      1.1    jruoho         OID,  48,
    481      1.1    jruoho         OTID, 64,
    482      1.1    jruoho         OREV, 32,
    483      1.1    jruoho         CID,  32,
    484      1.1    jruoho         CREV, 32
    485      1.1    jruoho     }
    486      1.1    jruoho 
    487      1.1    jruoho     Method (SIZE)
    488      1.1    jruoho     {
    489      1.1    jruoho         If (LLess (REV, 2))
    490      1.1    jruoho         {
    491      1.1    jruoho             Store ("32-bit table", Debug)
    492      1.1    jruoho         }
    493      1.1    jruoho         else
    494      1.1    jruoho         {
    495      1.1    jruoho             Store ("64-bit table", Debug)
    496      1.1    jruoho         }
    497      1.1    jruoho         Return (0)
    498      1.1    jruoho     }
    499      1.1    jruoho 
    500      1.1    jruoho */
    501      1.1    jruoho     Name (SIZE, 0)
    502      1.1    jruoho 
    503      1.1    jruoho     /* Custom operation region */
    504      1.1    jruoho 
    505      1.1    jruoho     OperationRegion(MYOP,0x80,0xFD60,0x6)
    506      1.1    jruoho     Field(MYOP,ByteAcc,NoLock,Preserve)
    507      1.1    jruoho     {
    508      1.1    jruoho         MFLD,8
    509      1.1    jruoho     }
    510      1.1    jruoho 
    511  1.1.1.3  christos     Method (TCOP,, Serialized)
    512      1.1    jruoho     {
    513      1.1    jruoho         Name (_STR, Unicode ("test"))
    514      1.1    jruoho         Store (4, MFLD)
    515      1.1    jruoho         Store (MFLD, Local0)
    516      1.1    jruoho     }
    517      1.1    jruoho 
    518      1.1    jruoho     Name (ERRS, 0x0)
    519      1.1    jruoho 
    520      1.1    jruoho     /* Warning should be issued for premature string termination */
    521      1.1    jruoho 
    522      1.1    jruoho     NAME (ESC1, "abcdefg\x00hijklmn")
    523      1.1    jruoho     NAME (ESC2, "abcdefg\000hijklmn")
    524      1.1    jruoho     Name (ESC3, "abc\a\bdef\f\n\r\t\v\x03ffff\432")
    525      1.1    jruoho 
    526      1.1    jruoho 
    527      1.1    jruoho     Name(CRSA,ResourceTemplate()
    528      1.1    jruoho     {
    529      1.1    jruoho         WORDBusNumber(ResourceProducer,MinFixed,MaxFixed,PosDecode,0x0000,0x0019,0x001D,0x0000,0x0005)
    530      1.1    jruoho         WORDIO(ResourceProducer,MinFixed,MaxFixed,PosDecode,NonISAOnlyRanges,0x0000,0xC000,0xCFFF,0x0000,0x1000)
    531      1.1    jruoho         DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
    532      1.1    jruoho 
    533      1.1    jruoho     })
    534      1.1    jruoho     Name(CRSB,ResourceTemplate()
    535      1.1    jruoho     {
    536      1.1    jruoho         DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
    537      1.1    jruoho 
    538      1.1    jruoho     })
    539      1.1    jruoho 
    540      1.1    jruoho     Name(CRSC,ResourceTemplate()
    541      1.1    jruoho     {
    542      1.1    jruoho         VendorShort () {0x1, 0x2, 0x3}
    543      1.1    jruoho     })
    544      1.1    jruoho     Name(CRSD,ResourceTemplate()
    545      1.1    jruoho     {
    546      1.1    jruoho         VendorLong (VNDL) {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9}
    547      1.1    jruoho     })
    548      1.1    jruoho 
    549      1.1    jruoho     Name(CRSE,ResourceTemplate()
    550      1.1    jruoho     {
    551      1.1    jruoho         IRQNoFlags(){3,4,10,11}
    552      1.1    jruoho         IRQNoFlags(xxxt){3,4,10,11}
    553      1.1    jruoho     })
    554      1.1    jruoho     Name(CRSR, Buffer (Add (SizeOf(CRSA),SizeOf(CRSB))){})
    555      1.1    jruoho     Method(_CRS,0,NotSerialized)
    556      1.1    jruoho     {
    557      1.1    jruoho         Return(CRSR)
    558      1.1    jruoho     }
    559      1.1    jruoho 
    560      1.1    jruoho 
    561      1.1    jruoho     //
    562      1.1    jruoho     // Unnamed scope
    563      1.1    jruoho     //
    564      1.1    jruoho     Scope (\)
    565      1.1    jruoho     {
    566      1.1    jruoho         Name(Bxxx,0xFFFFFFFF)
    567      1.1    jruoho     }
    568      1.1    jruoho 
    569      1.1    jruoho     Name (LANS, 0x0)
    570      1.1    jruoho 
    571      1.1    jruoho     PowerResource(LANP,1,0)
    572      1.1    jruoho     {
    573      1.1    jruoho         Method(_STA){
    574      1.1    jruoho             If(LEqual(And(LANS,0x30),0x30)){
    575      1.1    jruoho                 Return(One)
    576      1.1    jruoho             } Else {
    577      1.1    jruoho                 Return(Zero)
    578      1.1    jruoho             }
    579      1.1    jruoho         }
    580      1.1    jruoho         Method(_ON){
    581      1.1    jruoho             If(LNot(_STA())){
    582      1.1    jruoho                 Store (0x30, LANS)
    583      1.1    jruoho             }
    584      1.1    jruoho         }
    585      1.1    jruoho         Method(_OFF){
    586      1.1    jruoho             If(_STA()){
    587      1.1    jruoho                 Store (0, LANS)
    588      1.1    jruoho             }
    589      1.1    jruoho         }
    590      1.1    jruoho     }
    591      1.1    jruoho 
    592      1.1    jruoho 
    593      1.1    jruoho     /* Can a method define another method? */
    594      1.1    jruoho 
    595      1.1    jruoho     /**********************************
    596      1.1    jruoho     Method (TASK, 2, SERIALIZED)
    597      1.1    jruoho     {
    598      1.1    jruoho         Sleep (100)
    599      1.1    jruoho 
    600      1.1    jruoho         Method (TAS2)
    601      1.1    jruoho         {
    602      1.1    jruoho             Sleep (100)
    603      1.1    jruoho         }
    604      1.1    jruoho 
    605      1.1    jruoho         TAS2()
    606      1.1    jruoho         Return
    607      1.1    jruoho 
    608      1.1    jruoho     }
    609      1.1    jruoho     ************************************/
    610      1.1    jruoho 
    611      1.1    jruoho     /* A recursive method */
    612      1.1    jruoho 
    613      1.1    jruoho     Method (RCIV, 1)
    614      1.1    jruoho     {
    615      1.1    jruoho         Store (Arg0, Debug)
    616      1.1    jruoho         If (Lequal (Arg0, 0))
    617      1.1    jruoho         {
    618      1.1    jruoho             Return ()
    619      1.1    jruoho         }
    620      1.1    jruoho         RCIV (Subtract (Arg0, 1))
    621      1.1    jruoho     }
    622      1.1    jruoho 
    623      1.1    jruoho     Method (RTOP)
    624      1.1    jruoho     {
    625      1.1    jruoho         RCIV (100)
    626      1.1    jruoho     }
    627      1.1    jruoho 
    628      1.1    jruoho 
    629      1.1    jruoho     Scope(\_PR)
    630      1.1    jruoho     {
    631      1.1    jruoho         Processor(CPU0,0x0,0xFFFFFFFF,0x0) {}
    632      1.1    jruoho     }
    633      1.1    jruoho 
    634      1.1    jruoho     Name(B1TP,0xFFFFFFFF)
    635      1.1    jruoho 
    636      1.1    jruoho     Name(B2TP,0xFFFFFFFF)
    637      1.1    jruoho     Name(ADPS,0xFFFFFFFF)
    638      1.1    jruoho     Name(B1PS,0xFFFFFFFF)
    639      1.1    jruoho     Name(B1RS,0xFFFFFFFF)
    640      1.1    jruoho     Name(B1CS,0xFFFFFFFF)
    641      1.1    jruoho     Name(B2PS,0xFFFFFFFF)
    642      1.1    jruoho     Name(B2RS,0xFFFFFFFF)
    643      1.1    jruoho     Name(B2CS,0xFFFFFFFF)
    644      1.1    jruoho     Name(B1DC,3000)
    645      1.1    jruoho     Name(B2DC,2600)
    646      1.1    jruoho     Name(B1LF,3000)
    647      1.1    jruoho     Name(B2LF,2600)
    648      1.1    jruoho     Name(BPIF,0)
    649      1.1    jruoho     Name(PBLL,0)
    650      1.1    jruoho 
    651      1.1    jruoho     Name(RBIF,Package()
    652      1.1    jruoho     {
    653      1.1    jruoho         0x1,
    654      1.1    jruoho         2200,
    655      1.1    jruoho         2200,
    656      1.1    jruoho         0x1,
    657      1.1    jruoho         10800,
    658      1.1    jruoho         0,
    659      1.1    jruoho         0,
    660      1.1    jruoho         1,
    661      1.1    jruoho         1,
    662      1.1    jruoho         "CA54200-5003/5",
    663      1.1    jruoho         "1",
    664      1.1    jruoho         "LION",
    665      1.1    jruoho         "Fujitsu"
    666      1.1    jruoho     })
    667      1.1    jruoho 
    668      1.1    jruoho     Method(SMWE, 4)
    669      1.1    jruoho     {
    670      1.1    jruoho        return(ONES)
    671      1.1    jruoho     }
    672      1.1    jruoho 
    673      1.1    jruoho     Method(SMRE, 4)
    674      1.1    jruoho     {
    675      1.1    jruoho        return(ONES)
    676      1.1    jruoho     }
    677      1.1    jruoho 
    678      1.1    jruoho /*
    679      1.1    jruoho     Method(RDBT,0,Serialized){
    680      1.1    jruoho         If(LNot(SMWE(0x09,0x15,1,1))){
    681      1.1    jruoho                     Store(0x18,Local2)
    682      1.1    jruoho             }
    683      1.1    jruoho     }
    684      1.1    jruoho */
    685      1.1    jruoho     Scope(_SB)
    686      1.1    jruoho     {
    687      1.1    jruoho 
    688      1.1    jruoho         Name (SBUF, Buffer (128) {})
    689      1.1    jruoho 
    690      1.1    jruoho         CreateBitField (SBUF, 3, BITY)
    691      1.1    jruoho         CreateByteField (SBUF, 1, BYTY)
    692      1.1    jruoho         CreateWordField (SBUF, 2, WRDZ)
    693      1.1    jruoho         CreateDwordField (SBUF, 4, DWDZ)
    694      1.1    jruoho         CreateQwordField (SBUF, 8, QWDZ)
    695      1.1    jruoho         CreateField (SBUF, 128, 12, FLDZ)
    696      1.1    jruoho         CreateField (SBUF, 148, 96, FLDY)
    697      1.1    jruoho         CreateField (SBUF, 148, 96, \_SB_.FLDW)
    698      1.1    jruoho 
    699      1.1    jruoho         Method (_INI)
    700      1.1    jruoho         {
    701      1.1    jruoho             CreateField (\_SB_.SBUF, 148, 96, FLDV)
    702      1.1    jruoho         }
    703      1.1    jruoho 
    704      1.1    jruoho 
    705      1.1    jruoho         Device(PCI0)
    706      1.1    jruoho         {
    707      1.1    jruoho             Name(_HID,EISAID("PNP0A03"))
    708      1.1    jruoho             Name(_ADR,0x0)
    709      1.1    jruoho 
    710  1.1.1.3  christos             Method(_CRS,, Serialized)
    711      1.1    jruoho             {
    712      1.1    jruoho                 Name(PRT0, ResourceTemplate() {
    713      1.1    jruoho                     WORDBusNumber(                          // Bus number resource(0)
    714      1.1    jruoho                             ResourceConsumer,               // bit 0 of general flags is 1
    715      1.1    jruoho                             MinFixed,                       // Range is notfixed
    716      1.1    jruoho                             MaxFixed,                       // Range is not fixed
    717      1.1    jruoho                             SubDecode,                      // SubDecode
    718      1.1    jruoho                             0x0000,                           // Granularity
    719      1.1    jruoho                             0xfff1,                           // Min
    720      1.1    jruoho                             0xfff2,                           // Max
    721      1.1    jruoho                             0x0032,                           // Translation
    722      1.1    jruoho                             0x0002,,,                         // Range Length
    723      1.1    jruoho                             BUS0
    724      1.1    jruoho                     ) } )// PRT0
    725      1.1    jruoho 
    726      1.1    jruoho                 CreateWordField(PRT0, BUS0._MIN, BMIN)          //Minimum bus number suported under this bridge.
    727      1.1    jruoho 
    728      1.1    jruoho                 Store(3, BMIN)
    729      1.1    jruoho                 Return(PRT0)
    730      1.1    jruoho 
    731      1.1    jruoho             } // _CRS
    732      1.1    jruoho 
    733      1.1    jruoho             Method(_SRS)
    734      1.1    jruoho             {
    735      1.1    jruoho                 Return ()
    736      1.1    jruoho             }
    737      1.1    jruoho 
    738      1.1    jruoho             Device(EIO)
    739      1.1    jruoho             {
    740      1.1    jruoho                 OperationRegion(FJIO,SystemIO,0xFD60,0x6)
    741      1.1    jruoho                     Field(FJIO,ByteAcc,NoLock,Preserve)
    742      1.1    jruoho                     {
    743      1.1    jruoho                         GIDX,8,
    744      1.1    jruoho 
    745      1.1    jruoho                         GDTA,8,
    746      1.1    jruoho 
    747      1.1    jruoho                         PIDX,8,
    748      1.1    jruoho 
    749      1.1    jruoho                         PDTA,8,
    750      1.1    jruoho 
    751      1.1    jruoho                         SIDX,8,
    752      1.1    jruoho 
    753      1.1    jruoho                         SDTA,8
    754      1.1    jruoho                     }
    755      1.1    jruoho                     IndexField(GIDX,GDTA,ByteAcc,NoLock,Preserve)
    756      1.1    jruoho                     {
    757      1.1    jruoho                         Offset(0x2),
    758      1.1    jruoho                          ,5,
    759      1.1    jruoho                         VGAS,2,
    760      1.1    jruoho                         Offset(0x4),
    761      1.1    jruoho                          ,4,
    762      1.1    jruoho                         DCKE,1,
    763      1.1    jruoho                         Offset(0x5),
    764      1.1    jruoho                          ,6,
    765      1.1    jruoho                         ACPW,1,
    766      1.1    jruoho 
    767      1.1    jruoho                         Offset(0xA),
    768      1.1    jruoho                         B1P,1,
    769      1.1    jruoho 
    770      1.1    jruoho                         B2P,1,
    771      1.1    jruoho 
    772      1.1    jruoho                         B1C,1,
    773      1.1    jruoho 
    774      1.1    jruoho                         B2C,1,
    775      1.1    jruoho 
    776      1.1    jruoho                         B1ER,1,
    777      1.1    jruoho 
    778      1.1    jruoho                         B2ER,1,
    779      1.1    jruoho 
    780      1.1    jruoho                         Offset(0xB),
    781      1.1    jruoho                         B1CP,8,
    782      1.1    jruoho 
    783      1.1    jruoho                         B2CP,8,
    784      1.1    jruoho 
    785      1.1    jruoho                         BCP,8,
    786      1.1    jruoho 
    787      1.1    jruoho                         B1VH,8,
    788      1.1    jruoho 
    789      1.1    jruoho                         B1VL,8,
    790      1.1    jruoho 
    791      1.1    jruoho                         B2VH,8,
    792      1.1    jruoho 
    793      1.1    jruoho                         B2VL,8,
    794      1.1    jruoho 
    795      1.1    jruoho                         B1TM,8,
    796      1.1    jruoho 
    797      1.1    jruoho                         B2TM,8,
    798      1.1    jruoho 
    799      1.1    jruoho                         B1CH,8,
    800      1.1    jruoho 
    801      1.1    jruoho                         B1CL,8,
    802      1.1    jruoho 
    803      1.1    jruoho                         B2CH,8,
    804      1.1    jruoho 
    805      1.1    jruoho                         B2CL,8
    806      1.1    jruoho                     }
    807      1.1    jruoho                 }
    808      1.1    jruoho             }
    809      1.1    jruoho         }
    810      1.1    jruoho 
    811      1.1    jruoho         Method(RDBT,3,Serialized){
    812      1.1    jruoho             Store(0x1FFF,Local1)
    813      1.1    jruoho             If( Arg0 ){
    814      1.1    jruoho                 Store(0x2FFF,Local1)
    815      1.1    jruoho             }
    816      1.1    jruoho             Store(0x18,Local2)
    817      1.1    jruoho             If( Arg1 ){
    818      1.1    jruoho                 Store(0x10,Local2)
    819      1.1    jruoho             }
    820      1.1    jruoho             If(LNot(SMRE(0x09,0x15,1,RefOf(Local0)))){
    821      1.1    jruoho                 If(LNot(SMWE(0x08,0x14,1,Local1))){
    822      1.1    jruoho                     If(LNot(SMRE(0x09,0x17,Local2,RefOf(Local3)))){
    823      1.1    jruoho                         Store(Local1,Arg2)
    824      1.1    jruoho                     }
    825      1.1    jruoho                 }
    826      1.1    jruoho                 Or(Local0,0xFFF,Local0)
    827      1.1    jruoho                 SMWE(0x08,0x14,1,Local0)
    828      1.1    jruoho             }
    829      1.1    jruoho         }
    830      1.1    jruoho         Method(MKWD,2)
    831      1.1    jruoho         {
    832      1.1    jruoho             If(And(Arg1,0x80)) {
    833      1.1    jruoho                 Or(0xFFFF0000,Arg0,Local0)
    834      1.1    jruoho                 Or(Local0,ShiftLeft(Arg1,8),Local0)
    835      1.1    jruoho                 Subtract(Zero,Local0,Local0)
    836      1.1    jruoho             } else {
    837      1.1    jruoho                 Store(Arg0,Local0)
    838      1.1    jruoho                 Or(Local0,ShiftLeft(Arg1,8),Local0)
    839      1.1    jruoho             }
    840      1.1    jruoho             Return(Local0)
    841      1.1    jruoho         }
    842      1.1    jruoho 
    843      1.1    jruoho         Device(CMB1)
    844      1.1    jruoho         {
    845      1.1    jruoho             Name(_HID,EISAID("PNP0C0A"))
    846      1.1    jruoho             Name(_UID,0x1)
    847      1.1    jruoho             Alias(\_SB.PCI0.EIO.B1P,\_SB_.PCI0.XXXX)
    848      1.1    jruoho             Alias(\_SB.PCI0.EIO.B1P,B1P)
    849      1.1    jruoho             Alias(\_SB.PCI0.EIO.B1C,B1C)
    850      1.1    jruoho             Alias(\_SB.PCI0.EIO.B1CH,B1CH)
    851      1.1    jruoho             Alias(\_SB.PCI0.EIO.B1CL,B1CL)
    852      1.1    jruoho             Alias(\_SB.PCI0.EIO.B1VH,B1VH)
    853      1.1    jruoho             Alias(\_SB.PCI0.EIO.B1VL,B1VL)
    854      1.1    jruoho             Alias(\_SB.PCI0.EIO.B1CP,B1CP)
    855      1.1    jruoho 
    856      1.1    jruoho             Method(_INI)
    857      1.1    jruoho                         {
    858      1.1    jruoho                 Store(B1P, B1PS)
    859      1.1    jruoho                 Store(B1CP,B1RS)
    860      1.1    jruoho                 Store(B1C, B1CS)
    861      1.1    jruoho             }
    862      1.1    jruoho 
    863      1.1    jruoho             Method(_BIF){
    864      1.1    jruoho                 RDBT(Zero,Zero,RefOf(B1DC))
    865      1.1    jruoho                 RDBT(Zero,One,RefOf(B1LF))
    866      1.1    jruoho                 Store(B1DC,Index(RBIF,1))
    867      1.1    jruoho                 Store(B1LF,Index(RBIF,2))
    868      1.1    jruoho                 Store("CA54200-5003/5",Index(RBIF,9))
    869      1.1    jruoho                 Store("1",Index(RBIF,10))
    870      1.1    jruoho                 Return(RBIF)
    871      1.1    jruoho             }
    872      1.1    jruoho 
    873  1.1.1.3  christos             Method(_BST,, Serialized) {
    874      1.1    jruoho 
    875      1.1    jruoho                 _INI()
    876      1.1    jruoho 
    877      1.1    jruoho                 Store(Zero,Local0)
    878      1.1    jruoho 
    879      1.1    jruoho                 if (LAnd(B1P,LNot(B1C))){
    880      1.1    jruoho                     Or(Local0,1,Local0)
    881      1.1    jruoho                 }
    882      1.1    jruoho 
    883      1.1    jruoho                 if (LAnd(B1P,B1C)) {
    884      1.1    jruoho                     Or(Local0,2,Local0)
    885      1.1    jruoho                 }
    886      1.1    jruoho 
    887      1.1    jruoho                 if (LLessEqual(B1CP,1)) {
    888      1.1    jruoho                     Or(Local0,4,Local0)
    889      1.1    jruoho                 }
    890      1.1    jruoho 
    891      1.1    jruoho                 Store(MKWD(B1CL,B1CH),Local1)
    892      1.1    jruoho 
    893      1.1    jruoho                 Store(Divide(Add(Multiply(B1CP,B1LF),99),100),Local2)
    894      1.1    jruoho 
    895      1.1    jruoho                 Store(MKWD(B1VL,B1VH),Local3)
    896      1.1    jruoho 
    897      1.1    jruoho                 Name(STAT,Package(4){})
    898      1.1    jruoho                 Store(Local0,Index(STAT,0))
    899      1.1    jruoho                 Store(Local1,Index(STAT,1))
    900      1.1    jruoho                 Store(Local2,Index(STAT,2))
    901      1.1    jruoho                 Store(Local3,Index(STAT,3))
    902      1.1    jruoho 
    903      1.1    jruoho                 If(LNot(BPIF)){
    904      1.1    jruoho //                    \_SB.PCI0.EIO.EC0.IECT()
    905      1.1    jruoho //                    \_SB.PCI0.EIO.EC0.SECT()
    906      1.1    jruoho                     Store(One,BPIF)
    907      1.1    jruoho                 }
    908      1.1    jruoho                 return(STAT)
    909      1.1    jruoho             }
    910      1.1    jruoho 
    911      1.1    jruoho         }
    912      1.1    jruoho 
    913      1.1    jruoho     Device (DEV1)
    914      1.1    jruoho     {
    915      1.1    jruoho     }
    916      1.1    jruoho 
    917      1.1    jruoho     Scope(\_TZ)
    918      1.1    jruoho     {
    919      1.1    jruoho         ThermalZone(TZ1)
    920      1.1    jruoho         {
    921      1.1    jruoho             Name(_PSL,Package()
    922      1.1    jruoho             {
    923      1.1    jruoho                 \_PR.CPU0
    924      1.1    jruoho             })
    925      1.1    jruoho         }
    926      1.1    jruoho     }
    927      1.1    jruoho 
    928      1.1    jruoho     Method (TZ2, 0, SERIALIZED)
    929      1.1    jruoho     {
    930      1.1    jruoho         Name(_PSL,Package()
    931      1.1    jruoho         {
    932      1.1    jruoho             \_PR.CPU0
    933      1.1    jruoho         })
    934      1.1    jruoho 
    935      1.1    jruoho         Return (_PSL)
    936      1.1    jruoho     }
    937      1.1    jruoho 
    938      1.1    jruoho     ThermalZone (THM1)
    939      1.1    jruoho     {
    940      1.1    jruoho     }
    941      1.1    jruoho 
    942      1.1    jruoho     Method (NOTI)
    943      1.1    jruoho     {
    944      1.1    jruoho         Notify (\DEV1, 0)
    945      1.1    jruoho         Notify (\THM1, 0)
    946      1.1    jruoho         Notify (\_PR.CPU0, 0)
    947      1.1    jruoho     }
    948      1.1    jruoho 
    949      1.1    jruoho     Method (_ERR, 2)
    950      1.1    jruoho     {
    951      1.1    jruoho         Increment (ERRS)
    952      1.1    jruoho         Store ("Run-time exception:", Debug)
    953      1.1    jruoho         Store (Arg0, Debug)
    954      1.1    jruoho         Store (Arg1, Debug)
    955      1.1    jruoho 
    956      1.1    jruoho         Return (0)          // Map error to AE_OK
    957      1.1    jruoho     }
    958      1.1    jruoho 
    959      1.1    jruoho     Method (DIV0)
    960      1.1    jruoho     {
    961      1.1    jruoho         Store (1, Local0)
    962      1.1    jruoho         Store (0, Local1)
    963      1.1    jruoho         Divide (Local0, Local1, Local3)
    964      1.1    jruoho 
    965      1.1    jruoho         Store ("DIV0 - noabort", Debug)
    966      1.1    jruoho     }
    967      1.1    jruoho 
    968      1.1    jruoho     Method (ERR_, 1)
    969      1.1    jruoho     {
    970      1.1    jruoho         if (LEqual (Arg0, 0))
    971      1.1    jruoho         {
    972      1.1    jruoho             Store ("+*+*+*+* MTHD_ERROR: Results not equal!", Debug)
    973      1.1    jruoho         }
    974      1.1    jruoho         if (LEqual (Arg0, 1))
    975      1.1    jruoho         {
    976      1.1    jruoho             Store ("+*+*+*+* MTHD_ERROR: Numeric result is incorrect!", Debug)
    977      1.1    jruoho         }
    978      1.1    jruoho         if (LEqual (Arg0, 2))
    979      1.1    jruoho         {
    980      1.1    jruoho             Store ("+*+*+*+* MTHD_ERROR: Operand was clobbered!", Debug)
    981      1.1    jruoho         }
    982      1.1    jruoho 
    983      1.1    jruoho         Notify (DEV1, Arg0)
    984      1.1    jruoho         Increment (ERRS)
    985      1.1    jruoho     }
    986      1.1    jruoho 
    987      1.1    jruoho     Method (R226, 2)
    988      1.1    jruoho     {
    989      1.1    jruoho     }
    990      1.1    jruoho     Method (R225, 2)
    991      1.1    jruoho     {
    992      1.1    jruoho         R226 (Arg0, Arg1)
    993      1.1    jruoho     }
    994      1.1    jruoho     Method (R224, 2)
    995      1.1    jruoho     {
    996      1.1    jruoho         R225 (Arg1, Arg0)
    997      1.1    jruoho     }
    998      1.1    jruoho     Method (R223, 2)
    999      1.1    jruoho     {
   1000      1.1    jruoho         R224 (Arg0, Arg1)
   1001      1.1    jruoho     }
   1002      1.1    jruoho     Method (R222, 2)
   1003      1.1    jruoho     {
   1004      1.1    jruoho         R223 (Arg1, Arg0)
   1005      1.1    jruoho     }
   1006      1.1    jruoho     Method (R111)
   1007      1.1    jruoho     {
   1008      1.1    jruoho         Store (0x01010101, Local0)
   1009      1.1    jruoho         R222 (0xABAB, Local0)
   1010      1.1    jruoho         Store (Local0, Local1)
   1011      1.1    jruoho     }
   1012      1.1    jruoho 
   1013      1.1    jruoho     Method (MAIN)
   1014      1.1    jruoho     {
   1015      1.1    jruoho 
   1016      1.1    jruoho //      SIZE()
   1017      1.1    jruoho         Store (NUM1(), Local0)
   1018      1.1    jruoho         \CMB1._BST()
   1019      1.1    jruoho         RDBT(1,2,3)
   1020      1.1    jruoho         OBJ1(1)
   1021      1.1    jruoho         OBJ2(2)
   1022      1.1    jruoho         CHEK()
   1023      1.1    jruoho         RETZ()
   1024      1.1    jruoho         BITZ()
   1025      1.1    jruoho         LOGS()
   1026      1.1    jruoho         REFS()
   1027      1.1    jruoho         COND()
   1028      1.1    jruoho         TZ2()
   1029      1.1    jruoho 
   1030      1.1    jruoho         //
   1031      1.1    jruoho         // iPCO tests added
   1032      1.1    jruoho         //
   1033      1.1    jruoho         Store (\IFEL.TEST(), Local0)
   1034      1.1    jruoho         if (LGreater (Local0, 0))
   1035      1.1    jruoho         {
   1036      1.1    jruoho             ERR_ (1)
   1037      1.1    jruoho             Return(Local0)
   1038      1.1    jruoho         }
   1039      1.1    jruoho 
   1040      1.1    jruoho         Store (\NOSV.TEST(), Local0)
   1041      1.1    jruoho         if (LGreater (Local0, 0))
   1042      1.1    jruoho         {
   1043      1.1    jruoho             ERR_ (1)
   1044      1.1    jruoho             Return(Local0)
   1045      1.1    jruoho         }
   1046      1.1    jruoho 
   1047      1.1    jruoho         Store (\IDXF.TEST(), Local0)
   1048      1.1    jruoho         if (LGreater (Local0, 0))
   1049      1.1    jruoho         {
   1050      1.1    jruoho             ERR_ (1)
   1051      1.1    jruoho             Return(Local0)
   1052      1.1    jruoho         }
   1053      1.1    jruoho 
   1054      1.1    jruoho         Store (\_SB_.NSTL.TEST(), Local0)
   1055      1.1    jruoho         if (LGreater (Local0, 0))
   1056      1.1    jruoho         {
   1057      1.1    jruoho             ERR_ (1)
   1058      1.1    jruoho             Return(Local0)
   1059      1.1    jruoho         }
   1060      1.1    jruoho 
   1061      1.1    jruoho         Store (\RTBF.TEST(), Local0)
   1062      1.1    jruoho         if (LGreater (Local0, 0))
   1063      1.1    jruoho         {
   1064      1.1    jruoho             ERR_ (1)
   1065      1.1    jruoho             Return(Local0)
   1066      1.1    jruoho         }
   1067      1.1    jruoho 
   1068      1.1    jruoho         Store (\_SB_.RTLV.TEST(), Local0)
   1069      1.1    jruoho         if (LGreater (Local0, 0))
   1070      1.1    jruoho         {
   1071      1.1    jruoho             ERR_ (1)
   1072      1.1    jruoho             Return(Local0)
   1073      1.1    jruoho         }
   1074      1.1    jruoho 
   1075      1.1    jruoho         Store (\_SB_.RETP.TEST(), Local0)
   1076      1.1    jruoho         if (LGreater (Local0, 0))
   1077      1.1    jruoho         {
   1078      1.1    jruoho             ERR_ (1)
   1079      1.1    jruoho             Return(Local0)
   1080      1.1    jruoho         }
   1081      1.1    jruoho 
   1082      1.1    jruoho         Store (\WHLR.TEST(), Local0)
   1083      1.1    jruoho         if (LGreater (Local0, 0))
   1084      1.1    jruoho         {
   1085      1.1    jruoho             ERR_ (1)
   1086      1.1    jruoho             Return(Local0)
   1087      1.1    jruoho         }
   1088      1.1    jruoho 
   1089      1.1    jruoho         Store (\ANDO.TEST(), Local0)
   1090      1.1    jruoho         if (LGreater (Local0, 0))
   1091      1.1    jruoho         {
   1092      1.1    jruoho             ERR_ (1)
   1093      1.1    jruoho             Return(Local0)
   1094      1.1    jruoho         }
   1095      1.1    jruoho 
   1096      1.1    jruoho         Store (\BRKP.TEST(), Local0)
   1097      1.1    jruoho         if (LGreater (Local0, 0))
   1098      1.1    jruoho         {
   1099      1.1    jruoho             ERR_ (1)
   1100      1.1    jruoho             Return(Local0)
   1101      1.1    jruoho         }
   1102      1.1    jruoho 
   1103      1.1    jruoho         Store (\ADSU.TEST(), Local0)
   1104      1.1    jruoho         if (LGreater (Local0, 0))
   1105      1.1    jruoho         {
   1106      1.1    jruoho             ERR_ (1)
   1107      1.1    jruoho             Return(Local0)
   1108      1.1    jruoho         }
   1109      1.1    jruoho 
   1110      1.1    jruoho         Store (\INDC.TEST(), Local0)
   1111      1.1    jruoho         if (LGreater (Local0, 0))
   1112      1.1    jruoho         {
   1113      1.1    jruoho             ERR_ (1)
   1114      1.1    jruoho             Return(Local0)
   1115      1.1    jruoho         }
   1116      1.1    jruoho 
   1117      1.1    jruoho         Store (\LOPS.TEST(), Local0)
   1118      1.1    jruoho         if (LGreater (Local0, 0))
   1119      1.1    jruoho         {
   1120      1.1    jruoho             ERR_ (1)
   1121      1.1    jruoho             Return(Local0)
   1122      1.1    jruoho         }
   1123      1.1    jruoho 
   1124      1.1    jruoho         Store (\FDSO.TEST(), Local0)
   1125      1.1    jruoho         if (LGreater (Local0, 0))
   1126      1.1    jruoho         {
   1127      1.1    jruoho             ERR_ (1)
   1128      1.1    jruoho             Return(Local0)
   1129      1.1    jruoho         }
   1130      1.1    jruoho 
   1131      1.1    jruoho         Store (\MLDV.TEST(), Local0)
   1132      1.1    jruoho         if (LGreater (Local0, 0))
   1133      1.1    jruoho         {
   1134      1.1    jruoho             ERR_ (1)
   1135      1.1    jruoho             Return(Local0)
   1136      1.1    jruoho         }
   1137      1.1    jruoho 
   1138      1.1    jruoho         Store (\NBIT.TEST(), Local0)
   1139      1.1    jruoho         if (LGreater (Local0, 0))
   1140      1.1    jruoho         {
   1141      1.1    jruoho             ERR_ (1)
   1142      1.1    jruoho             Return(Local0)
   1143      1.1    jruoho         }
   1144      1.1    jruoho 
   1145      1.1    jruoho         Store (\SHFT.TEST(), Local0)
   1146      1.1    jruoho         if (LGreater (Local0, 0))
   1147      1.1    jruoho         {
   1148      1.1    jruoho             ERR_ (1)
   1149      1.1    jruoho             Return(Local0)
   1150      1.1    jruoho         }
   1151      1.1    jruoho 
   1152      1.1    jruoho         Store (\XORD.TEST(), Local0)
   1153      1.1    jruoho         if (LGreater (Local0, 0))
   1154      1.1    jruoho         {
   1155      1.1    jruoho             ERR_ (1)
   1156      1.1    jruoho             Return(Local0)
   1157      1.1    jruoho         }
   1158      1.1    jruoho 
   1159      1.1    jruoho         Store (\CRBF.TEST(), Local0)
   1160      1.1    jruoho         if (LGreater (Local0, 0))
   1161      1.1    jruoho         {
   1162      1.1    jruoho             ERR_ (1)
   1163      1.1    jruoho             Return(Local0)
   1164      1.1    jruoho         }
   1165      1.1    jruoho 
   1166      1.1    jruoho         Store (\IDX4.TEST(), Local0)
   1167      1.1    jruoho         if (LGreater (Local0, 0))
   1168      1.1    jruoho         {
   1169      1.1    jruoho             ERR_ (1)
   1170      1.1    jruoho             Return(Local0)
   1171      1.1    jruoho         }
   1172      1.1    jruoho 
   1173      1.1    jruoho         Store (\EVNT.TEST(), Local0)
   1174      1.1    jruoho         if (LGreater (Local0, 0))
   1175      1.1    jruoho         {
   1176      1.1    jruoho             ERR_ (1)
   1177      1.1    jruoho             Return(Local0)
   1178      1.1    jruoho         }
   1179      1.1    jruoho 
   1180      1.1    jruoho         Store (\SZLV.TEST(), Local0)
   1181      1.1    jruoho         if (LGreater (Local0, 0))
   1182      1.1    jruoho         {
   1183      1.1    jruoho             ERR_ (1)
   1184      1.1    jruoho             Return(Local0)
   1185      1.1    jruoho         }
   1186      1.1    jruoho 
   1187      1.1    jruoho         Store (\_SB_.BYTF.TEST(), Local0)
   1188      1.1    jruoho         if (LGreater (Local0, 0))
   1189      1.1    jruoho         {
   1190      1.1    jruoho             ERR_ (1)
   1191      1.1    jruoho             Return(Local0)
   1192      1.1    jruoho         }
   1193      1.1    jruoho 
   1194      1.1    jruoho         Store (\DWDF.TEST(), Local0)
   1195      1.1    jruoho         if (LGreater (Local0, 0))
   1196      1.1    jruoho         {
   1197      1.1    jruoho             ERR_ (1)
   1198      1.1    jruoho             Return(Local0)
   1199      1.1    jruoho         }
   1200      1.1    jruoho 
   1201      1.1    jruoho         Store (\DVAX.TEST(), Local0)
   1202      1.1    jruoho         if (LGreater (Local0, 0))
   1203      1.1    jruoho         {
   1204      1.1    jruoho             ERR_ (1)
   1205      1.1    jruoho             Return(Local0)
   1206      1.1    jruoho         }
   1207      1.1    jruoho 
   1208      1.1    jruoho         Store (\IDX6.TEST(), Local0)
   1209      1.1    jruoho         if (LGreater (Local0, 0))
   1210      1.1    jruoho         {
   1211      1.1    jruoho             ERR_ (1)
   1212      1.1    jruoho             Return(Local0)
   1213      1.1    jruoho         }
   1214      1.1    jruoho 
   1215      1.1    jruoho         Store (\IDX5.TEST(), Local0)
   1216      1.1    jruoho         if (LGreater (Local0, 0))
   1217      1.1    jruoho         {
   1218      1.1    jruoho             ERR_ (1)
   1219      1.1    jruoho             Return(Local0)
   1220      1.1    jruoho         }
   1221      1.1    jruoho 
   1222      1.1    jruoho         Store (\_SB_.IDX0.TEST(), Local0)
   1223      1.1    jruoho         if (LGreater (Local0, 0))
   1224      1.1    jruoho         {
   1225      1.1    jruoho             ERR_ (1)
   1226      1.1    jruoho             Return(Local0)
   1227      1.1    jruoho         }
   1228      1.1    jruoho 
   1229      1.1    jruoho         Store (\_SB_.IDX3.TEST(), Local0)
   1230      1.1    jruoho         if (LGreater (Local0, 0))
   1231      1.1    jruoho         {
   1232      1.1    jruoho             ERR_ (1)
   1233      1.1    jruoho             Return(Local0)
   1234      1.1    jruoho         }
   1235      1.1    jruoho 
   1236      1.1    jruoho         Store (\IDX7.TEST(), Local0)
   1237      1.1    jruoho         if (LGreater (Local0, 0))
   1238      1.1    jruoho         {
   1239      1.1    jruoho             ERR_ (1)
   1240      1.1    jruoho             Return(Local0)
   1241      1.1    jruoho         }
   1242      1.1    jruoho 
   1243      1.1    jruoho         Store (\MTCH.TEST(), Local0)
   1244      1.1    jruoho         if (LGreater (Local0, 0))
   1245      1.1    jruoho         {
   1246      1.1    jruoho             ERR_ (1)
   1247      1.1    jruoho             Return(Local0)
   1248      1.1    jruoho         }
   1249      1.1    jruoho 
   1250      1.1    jruoho         Store (\WHLB.TEST(), Local0)
   1251      1.1    jruoho         if (LGreater (Local0, 0))
   1252      1.1    jruoho         {
   1253      1.1    jruoho             ERR_ (1)
   1254      1.1    jruoho             Return(Local0)
   1255      1.1    jruoho         }
   1256      1.1    jruoho 
   1257      1.1    jruoho         Store (\_SB_.IDX2.TEST(), Local0)
   1258      1.1    jruoho         if (LGreater (Local0, 0))
   1259      1.1    jruoho         {
   1260      1.1    jruoho             ERR_ (1)
   1261      1.1    jruoho             Return(Local0)
   1262      1.1    jruoho         }
   1263      1.1    jruoho 
   1264      1.1    jruoho         Store (\SIZO.TEST(), Local0)
   1265      1.1    jruoho         if (LGreater (Local0, 0))
   1266      1.1    jruoho         {
   1267      1.1    jruoho             ERR_ (1)
   1268      1.1    jruoho             Return(Local0)
   1269      1.1    jruoho         }
   1270      1.1    jruoho 
   1271      1.1    jruoho         Store (\_SB_.SMIS.TEST(), Local0)
   1272      1.1    jruoho         if (LGreater (Local0, 0))
   1273      1.1    jruoho         {
   1274      1.1    jruoho             ERR_ (1)
   1275      1.1    jruoho             Return(Local0)
   1276      1.1    jruoho         }
   1277      1.1    jruoho 
   1278      1.1    jruoho         if (LGreater (ERRS, 0))
   1279      1.1    jruoho         {
   1280      1.1    jruoho             Store ("****** There were errors during the execution of the test ******", Debug)
   1281      1.1    jruoho         }
   1282      1.1    jruoho 
   1283      1.1    jruoho         //
   1284      1.1    jruoho         // Last Test
   1285      1.1    jruoho         //
   1286      1.1    jruoho 
   1287      1.1    jruoho         Return(0) // Success
   1288      1.1    jruoho     }
   1289      1.1    jruoho 
   1290      1.1    jruoho 
   1291      1.1    jruoho     Method (OBJ1, 1, SERIALIZED)
   1292      1.1    jruoho     {
   1293      1.1    jruoho 
   1294      1.1    jruoho         Store (3, Local0)
   1295      1.1    jruoho         Name(BUFR, Buffer (Local0) {})
   1296      1.1    jruoho         Name(BUF1, Buffer (4) {1,2,3,4})
   1297      1.1    jruoho         Name(BUF2, Buffer (4) {})
   1298      1.1    jruoho 
   1299      1.1    jruoho         Store (BUF1, BUF2)
   1300      1.1    jruoho         Mutex (MTX1, 4)
   1301      1.1    jruoho 
   1302      1.1    jruoho         Alias (MTX1, MTX2)
   1303      1.1    jruoho     }
   1304      1.1    jruoho 
   1305      1.1    jruoho 
   1306      1.1    jruoho     Mutex (MTXT, 0)
   1307      1.1    jruoho     Mutex (MTXX, 0)
   1308      1.1    jruoho 
   1309      1.1    jruoho     /*
   1310      1.1    jruoho      * Field Creation
   1311      1.1    jruoho      */
   1312      1.1    jruoho 
   1313  1.1.1.3  christos     Method (FLDS,, Serialized)
   1314      1.1    jruoho     {
   1315      1.1    jruoho         Store ("++++++++ Creating BufferFields", Debug)
   1316      1.1    jruoho         Name (BUF2, Buffer (128) {})
   1317      1.1    jruoho 
   1318      1.1    jruoho         CreateBitField (BUF2, 3, BIT2)
   1319      1.1    jruoho         CreateByteField (BUF2, 1, BYT2)
   1320      1.1    jruoho         CreateWordField (BUF2, 2, WRD2)
   1321      1.1    jruoho         CreateDwordField (BUF2, 4, DWD2)
   1322      1.1    jruoho         CreateQwordField (BUF2, 8, QWD2)
   1323      1.1    jruoho         CreateField (BUF2, 128, 12, FLD2)
   1324      1.1    jruoho         CreateField (BUF2, 148, 96, FLD3)
   1325      1.1    jruoho 
   1326      1.1    jruoho         Store (0x1, BIT2)
   1327      1.1    jruoho         Store (BIT2, Local0)
   1328      1.1    jruoho         if (LNotEqual (Local0, 0x1))
   1329      1.1    jruoho         {
   1330      1.1    jruoho             ERR_ (1)
   1331      1.1    jruoho         }
   1332      1.1    jruoho         else
   1333      1.1    jruoho         {
   1334      1.1    jruoho             Store (DerefOf (Index (BUF2, 0)), Local0)
   1335      1.1    jruoho             if (LNotEqual (Local0, 0x08))
   1336      1.1    jruoho             {
   1337      1.1    jruoho                 ERR_ (1)
   1338      1.1    jruoho             }
   1339      1.1    jruoho             else
   1340      1.1    jruoho             {
   1341      1.1    jruoho                 Store ("++++++++ Bit BufferField I/O PASS", Debug)
   1342      1.1    jruoho             }
   1343      1.1    jruoho         }
   1344      1.1    jruoho 
   1345      1.1    jruoho         Store (0x1A, BYT2)
   1346      1.1    jruoho         Store (BYT2, Local0)
   1347      1.1    jruoho         if (LNotEqual (Local0, 0x1A))
   1348      1.1    jruoho         {
   1349      1.1    jruoho             ERR_ (1)
   1350      1.1    jruoho         }
   1351      1.1    jruoho         else
   1352      1.1    jruoho         {
   1353      1.1    jruoho             Store ("++++++++ Byte BufferField I/O PASS", Debug)
   1354      1.1    jruoho         }
   1355      1.1    jruoho 
   1356      1.1    jruoho         Store (0x1234, WRD2)
   1357      1.1    jruoho         Store (WRD2, Local0)
   1358      1.1    jruoho         if (LNotEqual (Local0, 0x1234))
   1359      1.1    jruoho         {
   1360      1.1    jruoho             ERR_ (1)
   1361      1.1    jruoho         }
   1362      1.1    jruoho         else
   1363      1.1    jruoho         {
   1364      1.1    jruoho             Store ("++++++++ Word BufferField I/O PASS", Debug)
   1365      1.1    jruoho         }
   1366      1.1    jruoho 
   1367      1.1    jruoho         Store (0x123, FLD2)
   1368      1.1    jruoho         Store (FLD2, Local0)
   1369      1.1    jruoho         if (LNotEqual (Local0, 0x123))
   1370      1.1    jruoho         {
   1371      1.1    jruoho             ERR_ (1)
   1372      1.1    jruoho         }
   1373      1.1    jruoho         else
   1374      1.1    jruoho         {
   1375      1.1    jruoho             Store ("++++++++ 12-bit BufferField I/O PASS", Debug)
   1376      1.1    jruoho         }
   1377      1.1    jruoho 
   1378      1.1    jruoho         Store (0x12345678, DWD2)
   1379      1.1    jruoho         Store (DWD2, Local0)
   1380      1.1    jruoho         if (LNotEqual (Local0, 0x12345678))
   1381      1.1    jruoho         {
   1382      1.1    jruoho             ERR_ (1)
   1383      1.1    jruoho         }
   1384      1.1    jruoho         else
   1385      1.1    jruoho         {
   1386      1.1    jruoho             Store ("++++++++ Dword BufferField I/O PASS", Debug)
   1387      1.1    jruoho         }
   1388      1.1    jruoho 
   1389      1.1    jruoho         Store (0x1234567887654321, QWD2)
   1390      1.1    jruoho         Store (QWD2, Local0)
   1391      1.1    jruoho         if (LNotEqual (Local0, 0x1234567887654321))
   1392      1.1    jruoho         {
   1393      1.1    jruoho             ERR_ (1)
   1394      1.1    jruoho         }
   1395      1.1    jruoho         else
   1396      1.1    jruoho         {
   1397      1.1    jruoho             Store ("++++++++ Qword BufferField I/O PASS", Debug)
   1398      1.1    jruoho         }
   1399      1.1    jruoho     }
   1400      1.1    jruoho 
   1401      1.1    jruoho 
   1402      1.1    jruoho     /* Field execution */
   1403      1.1    jruoho 
   1404  1.1.1.3  christos     Method (FLDX,, Serialized)
   1405      1.1    jruoho     {
   1406      1.1    jruoho         Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
   1407      1.1    jruoho         {   //  Field:  SMEM overlay using 32-bit field elements
   1408      1.1    jruoho             SMD0,   32, //  32-bits
   1409      1.1    jruoho             SMD1,   32,     //  32-bits
   1410      1.1    jruoho             SMD2,   32,     //  32-bits
   1411      1.1    jruoho             SMD3,   32  //  32-bits
   1412      1.1    jruoho         }   //  Field:  SMEM overlay using 32-bit field elements
   1413      1.1    jruoho         Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
   1414      1.1    jruoho         {   //  Field:  SMEM overlay using greater than 32-bit field elements
   1415      1.1    jruoho             SME0,   69, //  larger than an integer (32 or 64)
   1416      1.1    jruoho             SME1,   97  //  larger than an integer
   1417      1.1    jruoho         }   //  Field:  SMEM overlay using greater than 32-bit field elements
   1418      1.1    jruoho     }
   1419      1.1    jruoho 
   1420      1.1    jruoho 
   1421      1.1    jruoho     Method (MTX_, )
   1422      1.1    jruoho     {
   1423      1.1    jruoho         /* Test "Force release" of mutex on method exit */
   1424      1.1    jruoho 
   1425      1.1    jruoho         Acquire (MTXT, 0xFFFF)
   1426      1.1    jruoho         Acquire (MTXX, 0xFFFF)
   1427      1.1    jruoho 
   1428      1.1    jruoho         Store ("++++++++ Acquiring Mutex MTX2", Debug)
   1429      1.1    jruoho         Acquire (_GL_, 0xFFFF)
   1430      1.1    jruoho 
   1431      1.1    jruoho 
   1432      1.1    jruoho         Store ("++++++++ Releasing Mutex MTX2", Debug)
   1433      1.1    jruoho         Release (_GL_)
   1434      1.1    jruoho     }
   1435      1.1    jruoho 
   1436      1.1    jruoho 
   1437  1.1.1.3  christos     Method (OBJ2, 1, Serialized)
   1438      1.1    jruoho     {
   1439      1.1    jruoho         Store ("++++++++ Creating Buffer BUFO", Debug)
   1440      1.1    jruoho         Name (BUFO, Buffer (32) {})
   1441      1.1    jruoho 
   1442      1.1    jruoho         Store ("++++++++ Creating OpRegion OPR2", Debug)
   1443      1.1    jruoho         OperationRegion (OPR2, SystemMemory, Arg0, 256)
   1444      1.1    jruoho 
   1445      1.1    jruoho         Store ("++++++++ Creating Field(s) in OpRegion OPR2", Debug)
   1446      1.1    jruoho         Field (OPR2, ByteAcc, NoLock, Preserve)
   1447      1.1    jruoho         {
   1448      1.1    jruoho             IDX2, 8,
   1449      1.1    jruoho             DAT2, 8,
   1450      1.1    jruoho             BNK2, 4
   1451      1.1    jruoho         }
   1452      1.1    jruoho 
   1453      1.1    jruoho         Store ("++++++++ Creating BankField BNK2 in OpRegion OPR2", Debug)
   1454      1.1    jruoho         //
   1455      1.1    jruoho         // mcw 3/20/00 - changed FET0, 4, FET1, 3 to FET0, 1, FET1, 1
   1456      1.1    jruoho         //
   1457      1.1    jruoho         BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
   1458      1.1    jruoho         {
   1459      1.1    jruoho             FET0, 4,
   1460      1.1    jruoho             FET1, 3
   1461      1.1    jruoho         }
   1462      1.1    jruoho 
   1463      1.1    jruoho         Store ("++++++++ Creating IndexField", Debug)
   1464      1.1    jruoho         IndexField (IDX2, DAT2, ByteAcc, NoLock, Preserve)
   1465      1.1    jruoho         {
   1466      1.1    jruoho             FET2, 4,
   1467      1.1    jruoho             FET3, 3
   1468      1.1    jruoho         }
   1469      1.1    jruoho 
   1470      1.1    jruoho         Store ("++++++++ SizeOf (BUFO)", Debug)
   1471      1.1    jruoho         SizeOf (BUFO)
   1472      1.1    jruoho 
   1473      1.1    jruoho         Store ("++++++++ Store (SizeOf (BUFO), Local0)", Debug)
   1474      1.1    jruoho         Store (SizeOf (BUFO), Local0)
   1475      1.1    jruoho 
   1476      1.1    jruoho         Store ("++++++++ Concatenate (\"abd\", \"def\", Local0)", Debug)
   1477      1.1    jruoho         Concatenate ("abd", "def", Local0)
   1478      1.1    jruoho         Store (Local0, Debug)
   1479      1.1    jruoho 
   1480      1.1    jruoho         Store ("++++++++ Concatenate (\"abd\", 0x7B, Local0)", Debug)
   1481      1.1    jruoho         Concatenate ("abd", 0x7B, Local0)
   1482      1.1    jruoho         Store (Local0, Debug)
   1483      1.1    jruoho 
   1484      1.1    jruoho         Store ("++++++++ Creating Event EVT2", Debug)
   1485      1.1    jruoho         Event (EVT2)
   1486      1.1    jruoho 
   1487      1.1    jruoho         Store ("++++++++ Creating Mutex MTX2", Debug)
   1488      1.1    jruoho         Mutex (MTX2, 0)
   1489      1.1    jruoho 
   1490      1.1    jruoho         Store ("++++++++ Creating Alias MTXA to MTX2", Debug)
   1491      1.1    jruoho         Alias (MTX2, MTXA)
   1492      1.1    jruoho 
   1493      1.1    jruoho         Store ("++++++++ Acquiring Mutex MTX2", Debug)
   1494      1.1    jruoho         Acquire (MTX2, 0xFFFF)
   1495      1.1    jruoho 
   1496      1.1    jruoho         Store ("++++++++ Acquiring Mutex MTX2 (2nd acquire)", Debug)
   1497      1.1    jruoho         Acquire (MTX2, 1)
   1498      1.1    jruoho 
   1499      1.1    jruoho         Store ("++++++++ Releasing Mutex MTX2", Debug)
   1500      1.1    jruoho         Release (MTX2)
   1501      1.1    jruoho 
   1502      1.1    jruoho         // Type 1 opcodes
   1503      1.1    jruoho 
   1504      1.1    jruoho         Store ("++++++++ Signalling Event EVT2", Debug)
   1505      1.1    jruoho         Signal (EVT2)
   1506      1.1    jruoho 
   1507      1.1    jruoho         Store ("++++++++ Resetting Event EVT2", Debug)
   1508      1.1    jruoho         Reset (EVT2)
   1509      1.1    jruoho 
   1510      1.1    jruoho         Store ("++++++++ Signalling Event EVT2", Debug)
   1511      1.1    jruoho         Signal (EVT2)
   1512      1.1    jruoho 
   1513      1.1    jruoho         Store ("++++++++ Waiting Event EVT2", Debug)
   1514      1.1    jruoho         Wait (EVT2, 0xFFFF)
   1515      1.1    jruoho 
   1516      1.1    jruoho         Store ("++++++++ Sleep", Debug)
   1517      1.1    jruoho         Sleep (100)
   1518      1.1    jruoho 
   1519      1.1    jruoho         Store ("++++++++ Stall", Debug)
   1520      1.1    jruoho         Stall (254)
   1521      1.1    jruoho 
   1522      1.1    jruoho         Store ("++++++++ NoOperation", Debug)
   1523      1.1    jruoho         Noop
   1524      1.1    jruoho 
   1525      1.1    jruoho         // Type 2 Opcodes
   1526      1.1    jruoho 
   1527      1.1    jruoho         Store ("++++++++ Return from Method OBJ2", Debug)
   1528      1.1    jruoho         return (4)
   1529      1.1    jruoho     }
   1530      1.1    jruoho 
   1531      1.1    jruoho 
   1532      1.1    jruoho     Method (NUM1, 0)
   1533      1.1    jruoho     {
   1534      1.1    jruoho         /* ADD */
   1535      1.1    jruoho 
   1536      1.1    jruoho         Store ("++++++++ Add (0x12345678, 0x11111111, Local0)", Debug)
   1537      1.1    jruoho         Add (0x12345678, 0x11111111, Local0)
   1538      1.1    jruoho 
   1539      1.1    jruoho         Store ("++++++++ Store (Add (0x12345678, 0x11111111), Local1)", Debug)
   1540      1.1    jruoho         Store (Add (0x12345678, 0x11111111), Local1)
   1541      1.1    jruoho 
   1542      1.1    jruoho         Store ("++++++++ Checking result from ADD", Debug)
   1543      1.1    jruoho         if (LNotEqual (Local0, Local1))
   1544      1.1    jruoho         {
   1545      1.1    jruoho             ERR_ (0)
   1546      1.1    jruoho         }
   1547      1.1    jruoho 
   1548      1.1    jruoho 
   1549      1.1    jruoho         /* SUBTRACT */
   1550      1.1    jruoho 
   1551      1.1    jruoho         Store ("++++++++ Subtract (0x87654321, 0x11111111, Local4)", Debug)
   1552      1.1    jruoho         Subtract (0x87654321, 0x11111111, Local4)
   1553      1.1    jruoho 
   1554      1.1    jruoho         Store ("++++++++ Store (Subtract (0x87654321, 0x11111111), Local5)", Debug)
   1555      1.1    jruoho         Store (Subtract (0x87654321, 0x11111111), Local5)
   1556      1.1    jruoho 
   1557      1.1    jruoho         Store ("++++++++ Checking result from SUBTRACT", Debug)
   1558      1.1    jruoho         if (LNotEqual (Local4, Local5))
   1559      1.1    jruoho         {
   1560      1.1    jruoho             ERR_ (0)
   1561      1.1    jruoho         }
   1562      1.1    jruoho 
   1563      1.1    jruoho 
   1564      1.1    jruoho         /* MULTIPLY */
   1565      1.1    jruoho 
   1566      1.1    jruoho         Store ("++++++++ Multiply (33, 10, Local6)", Debug)
   1567      1.1    jruoho         Multiply (33, 10, Local6)
   1568      1.1    jruoho 
   1569      1.1    jruoho         Store ("++++++++ Store (Multiply (33, 10), Local7)", Debug)
   1570      1.1    jruoho         Store (Multiply (33, 10), Local7)
   1571      1.1    jruoho 
   1572      1.1    jruoho 
   1573      1.1    jruoho         Store ("++++++++ Checking result from MULTIPLY", Debug)
   1574      1.1    jruoho         if (LNotEqual (Local6, Local7))
   1575      1.1    jruoho         {
   1576      1.1    jruoho             ERR_ (0)
   1577      1.1    jruoho         }
   1578      1.1    jruoho 
   1579      1.1    jruoho 
   1580      1.1    jruoho         /* DIVIDE */
   1581      1.1    jruoho 
   1582      1.1    jruoho         Store ("++++++++ Divide (100, 9, Local1, Local2)", Debug)
   1583      1.1    jruoho         Divide (100, 9, Local1, Local2)
   1584      1.1    jruoho 
   1585      1.1    jruoho         Store ("++++++++ Store (Divide (100, 9), Local3)", Debug)
   1586      1.1    jruoho         Store (Divide (100, 9), Local3)
   1587      1.1    jruoho 
   1588      1.1    jruoho         Store ("++++++++ Checking (quotient) result from DIVIDE", Debug)
   1589      1.1    jruoho         if (LNotEqual (Local2, Local3))
   1590      1.1    jruoho         {
   1591      1.1    jruoho             ERR_ (0)
   1592      1.1    jruoho         }
   1593      1.1    jruoho 
   1594      1.1    jruoho 
   1595      1.1    jruoho         /* INCREMENT */
   1596      1.1    jruoho 
   1597      1.1    jruoho         Store ("++++++++ Increment (Local0)", Debug)
   1598      1.1    jruoho         Store (1, Local0)
   1599      1.1    jruoho         Store (2, Local1)
   1600      1.1    jruoho         Increment (Local0)
   1601      1.1    jruoho 
   1602      1.1    jruoho         Store ("++++++++ Checking result from INCREMENT", Debug)
   1603      1.1    jruoho         if (LNotEqual (Local0, Local1))
   1604      1.1    jruoho         {
   1605      1.1    jruoho             ERR_ (0)
   1606      1.1    jruoho         }
   1607      1.1    jruoho 
   1608      1.1    jruoho 
   1609      1.1    jruoho         /* DECREMENT */
   1610      1.1    jruoho 
   1611      1.1    jruoho         Store ("++++++++ Decrement (Local0)", Debug)
   1612      1.1    jruoho         Store (2, Local0)
   1613      1.1    jruoho         Store (1, Local1)
   1614      1.1    jruoho         Decrement (Local0)
   1615      1.1    jruoho 
   1616      1.1    jruoho         Store ("++++++++ Checking result from DECREMENT", Debug)
   1617      1.1    jruoho         if (LNotEqual (Local0, Local1))
   1618      1.1    jruoho         {
   1619      1.1    jruoho             ERR_ (0)
   1620      1.1    jruoho         }
   1621      1.1    jruoho 
   1622      1.1    jruoho 
   1623      1.1    jruoho         /* TOBCD */
   1624      1.1    jruoho         /* FROMBCD */
   1625      1.1    jruoho 
   1626      1.1    jruoho         Store ("++++++++ ToBCD (0x1234, Local5)", Debug)
   1627      1.1    jruoho         ToBCD (0x1234, Local5)
   1628      1.1    jruoho 
   1629      1.1    jruoho         Store ("++++++++ FromBCD (Local5, Local6)", Debug)
   1630      1.1    jruoho         FromBCD (Local5, Local6)
   1631      1.1    jruoho 
   1632      1.1    jruoho         Store ("++++++++ Return (Local6)", Debug)
   1633      1.1    jruoho         Return (Local6)
   1634      1.1    jruoho     }
   1635      1.1    jruoho 
   1636      1.1    jruoho 
   1637      1.1    jruoho     Method (CHEK)
   1638      1.1    jruoho     {
   1639      1.1    jruoho 
   1640      1.1    jruoho         Store (3, Local0)
   1641      1.1    jruoho         Store (3, Debug)
   1642      1.1    jruoho         Store (Local0, Debug)
   1643      1.1    jruoho         Store (7, Local1)
   1644      1.1    jruoho 
   1645      1.1    jruoho         Add (Local0, Local1)
   1646      1.1    jruoho         if (LNotEqual (Local0, 3))
   1647      1.1    jruoho         {
   1648      1.1    jruoho             ERR_ (2)
   1649      1.1    jruoho         }
   1650      1.1    jruoho         if (LNotEqual (Local1, 7))
   1651      1.1    jruoho         {
   1652      1.1    jruoho             ERR_ (2)
   1653      1.1    jruoho         }
   1654      1.1    jruoho 
   1655      1.1    jruoho 
   1656      1.1    jruoho         Add (Local0, Local1, Local2)
   1657      1.1    jruoho         if (LNotEqual (Local0, 3))
   1658      1.1    jruoho         {
   1659      1.1    jruoho             ERR_ (2)
   1660      1.1    jruoho         }
   1661      1.1    jruoho         if (LNotEqual (Local1, 7))
   1662      1.1    jruoho         {
   1663      1.1    jruoho             ERR_ (2)
   1664      1.1    jruoho         }
   1665      1.1    jruoho     }
   1666      1.1    jruoho 
   1667      1.1    jruoho 
   1668      1.1    jruoho     Method (RET1)
   1669      1.1    jruoho     {
   1670      1.1    jruoho         Store (3, Local0)
   1671      1.1    jruoho         Return (Local0)
   1672      1.1    jruoho     }
   1673      1.1    jruoho 
   1674      1.1    jruoho     Method (RET2)
   1675      1.1    jruoho     {
   1676      1.1    jruoho         Return (RET1())
   1677      1.1    jruoho     }
   1678      1.1    jruoho 
   1679      1.1    jruoho     Method (RETZ)
   1680      1.1    jruoho     {
   1681      1.1    jruoho         RET2 ()
   1682      1.1    jruoho     }
   1683      1.1    jruoho 
   1684      1.1    jruoho 
   1685      1.1    jruoho     Method (BITZ)
   1686      1.1    jruoho     {
   1687      1.1    jruoho         Store ("++++++++ FindSetLeftBit (0x00100100, Local0)", Debug)
   1688      1.1    jruoho         FindSetLeftBit (0x00100100, Local0)
   1689      1.1    jruoho         if (LNotEqual (Local0, 21))
   1690      1.1    jruoho         {
   1691      1.1    jruoho             ERR_ (1)
   1692      1.1    jruoho         }
   1693      1.1    jruoho 
   1694      1.1    jruoho         Store ("++++++++ FindSetRightBit (0x00100100, Local1)", Debug)
   1695      1.1    jruoho         FindSetRightBit (0x00100100, Local1)
   1696      1.1    jruoho         if (LNotEqual (Local1, 9))
   1697      1.1    jruoho         {
   1698      1.1    jruoho             ERR_ (1)
   1699      1.1    jruoho         }
   1700      1.1    jruoho 
   1701      1.1    jruoho         Store ("++++++++ And (0xF0F0F0F0, 0x11111111, Local2)", Debug)
   1702      1.1    jruoho         And (0xF0F0F0F0, 0x11111111, Local2)
   1703      1.1    jruoho         if (LNotEqual (Local2, 0x10101010))
   1704      1.1    jruoho         {
   1705      1.1    jruoho             ERR_ (1)
   1706      1.1    jruoho         }
   1707      1.1    jruoho 
   1708      1.1    jruoho         Store ("++++++++ NAnd (0xF0F0F0F0, 0x11111111, Local3)", Debug)
   1709      1.1    jruoho         NAnd (0xF0F0F0F0, 0x11111111, Local3)
   1710      1.1    jruoho         if (LNotEqual (Local3, 0xEFEFEFEF))
   1711      1.1    jruoho         {
   1712      1.1    jruoho             ERR_ (1)
   1713      1.1    jruoho         }
   1714      1.1    jruoho 
   1715      1.1    jruoho         Store ("++++++++ Or (0x11111111, 0x22222222, Local4)", Debug)
   1716      1.1    jruoho         Or (0x11111111, 0x22222222, Local4)
   1717      1.1    jruoho         if (LNotEqual (Local4, 0x33333333))
   1718      1.1    jruoho         {
   1719      1.1    jruoho             ERR_ (1)
   1720      1.1    jruoho         }
   1721      1.1    jruoho 
   1722      1.1    jruoho         Store ("++++++++ NOr (0x11111111, 0x22222222, Local5)", Debug)
   1723      1.1    jruoho         NOr (0x11111111, 0x22222222, Local5)
   1724      1.1    jruoho         if (LNotEqual (Local5, 0xCCCCCCCC))
   1725      1.1    jruoho         {
   1726      1.1    jruoho             ERR_ (1)
   1727      1.1    jruoho         }
   1728      1.1    jruoho 
   1729      1.1    jruoho         Store ("++++++++ XOr (0x11113333, 0x22222222, Local6)", Debug)
   1730      1.1    jruoho         XOr (0x11113333, 0x22222222, Local6)
   1731      1.1    jruoho         if (LNotEqual (Local6, 0x33331111))
   1732      1.1    jruoho         {
   1733      1.1    jruoho             ERR_ (1)
   1734      1.1    jruoho         }
   1735      1.1    jruoho 
   1736      1.1    jruoho         Store ("++++++++ ShiftLeft (0x11112222, 2, Local7)", Debug)
   1737      1.1    jruoho         ShiftLeft (0x11112222, 2, Local7)
   1738      1.1    jruoho         if (LNotEqual (Local7, 0x44448888))
   1739      1.1    jruoho         {
   1740      1.1    jruoho             ERR_ (1)
   1741      1.1    jruoho         }
   1742      1.1    jruoho 
   1743      1.1    jruoho         Store ("++++++++ ShiftRight (Local7, 2, Local7)", Debug)
   1744      1.1    jruoho         ShiftRight (Local7, 2, Local7)
   1745      1.1    jruoho         if (LNotEqual (Local7, 0x11112222))
   1746      1.1    jruoho         {
   1747      1.1    jruoho             ERR_ (1)
   1748      1.1    jruoho         }
   1749      1.1    jruoho 
   1750      1.1    jruoho 
   1751      1.1    jruoho         Store ("++++++++ Not (Local0, Local1)", Debug)
   1752      1.1    jruoho         Store (0x22224444, Local0)
   1753      1.1    jruoho         Not (Local0, Local1)
   1754      1.1    jruoho         if (LNotEqual (Local0, 0x22224444))
   1755      1.1    jruoho         {
   1756      1.1    jruoho             ERR_ (2)
   1757      1.1    jruoho         }
   1758      1.1    jruoho 
   1759      1.1    jruoho         if (LNotEqual (Local1, 0xDDDDBBBB))
   1760      1.1    jruoho         {
   1761      1.1    jruoho             ERR_ (1)
   1762      1.1    jruoho         }
   1763      1.1    jruoho 
   1764      1.1    jruoho         Return (Local7)
   1765      1.1    jruoho     }
   1766      1.1    jruoho 
   1767      1.1    jruoho 
   1768      1.1    jruoho     Method (LOGS)
   1769      1.1    jruoho     {
   1770      1.1    jruoho 
   1771      1.1    jruoho         Store ("++++++++ Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)", Debug)
   1772      1.1    jruoho         Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)
   1773      1.1    jruoho 
   1774      1.1    jruoho         Store ("++++++++ Store (LEqual (0xFFFFFFFF, 0x11111111), Local)", Debug)
   1775      1.1    jruoho         Store (LEqual (0xFFFFFFFF, 0x11111111), Local1)
   1776      1.1    jruoho 
   1777      1.1    jruoho         Store ("++++++++ Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)", Debug)
   1778      1.1    jruoho         Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)
   1779      1.1    jruoho 
   1780      1.1    jruoho         Store ("++++++++ Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)", Debug)
   1781      1.1    jruoho         Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)
   1782      1.1    jruoho 
   1783      1.1    jruoho         Store ("++++++++ Store (LLess (0xFFFFFFFF, 0x11111111), Local4)", Debug)
   1784      1.1    jruoho         Store (LLess (0xFFFFFFFF, 0x11111111), Local4)
   1785      1.1    jruoho 
   1786      1.1    jruoho         Store ("++++++++ Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)", Debug)
   1787      1.1    jruoho         Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)
   1788      1.1    jruoho 
   1789      1.1    jruoho         Store ("++++++++ Store (LNot (0x31313131), Local6)", Debug)
   1790      1.1    jruoho         Store (0x00001111, Local6)
   1791      1.1    jruoho         Store (LNot (Local6), Local7)
   1792      1.1    jruoho         if (LNotEqual (Local6, 0x00001111))
   1793      1.1    jruoho         {
   1794      1.1    jruoho             ERR_ (2)
   1795      1.1    jruoho         }
   1796      1.1    jruoho 
   1797      1.1    jruoho         if (LNotEqual (Local7, 0x0))
   1798      1.1    jruoho         {
   1799      1.1    jruoho             ERR_ (1)
   1800      1.1    jruoho         }
   1801      1.1    jruoho 
   1802      1.1    jruoho 
   1803      1.1    jruoho         Store ("++++++++ Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)", Debug)
   1804      1.1    jruoho         Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)
   1805      1.1    jruoho 
   1806      1.1    jruoho         Store ("++++++++ Lor (0x0, 0x1)", Debug)
   1807      1.1    jruoho         if (Lor (0x0, 0x1))
   1808      1.1    jruoho         {
   1809      1.1    jruoho             Store ("+_+_+_+_+ Lor (0x0, 0x1) returned TRUE", Debug)
   1810      1.1    jruoho         }
   1811      1.1    jruoho 
   1812      1.1    jruoho         return (Local7)
   1813      1.1    jruoho     }
   1814      1.1    jruoho 
   1815      1.1    jruoho 
   1816      1.1    jruoho     Method (COND)
   1817      1.1    jruoho     {
   1818      1.1    jruoho         Store ("++++++++ Store (0x4, Local0)", Debug)
   1819      1.1    jruoho         Store (0x4, Local0)
   1820      1.1    jruoho 
   1821      1.1    jruoho         Store ("++++++++ While (Local0)", Debug)
   1822      1.1    jruoho         While (Local0)
   1823      1.1    jruoho         {
   1824      1.1    jruoho             Store ("++++++++ Decrement (Local0)", Debug)
   1825      1.1    jruoho             Decrement (Local0)
   1826      1.1    jruoho         }
   1827      1.1    jruoho 
   1828      1.1    jruoho 
   1829      1.1    jruoho         Store ("++++++++ Store (0x3, Local6)", Debug)
   1830      1.1    jruoho         Store (0x3, Local6)
   1831      1.1    jruoho 
   1832      1.1    jruoho         Store ("++++++++ While (Subtract (Local6, 1))", Debug)
   1833      1.1    jruoho         While (Subtract (Local6, 1))
   1834      1.1    jruoho         {
   1835      1.1    jruoho             Store ("++++++++ Decrement (Local6)", Debug)
   1836      1.1    jruoho             Decrement (Local6)
   1837      1.1    jruoho         }
   1838      1.1    jruoho 
   1839      1.1    jruoho 
   1840      1.1    jruoho         Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
   1841      1.1    jruoho         If (LGreater (0x2, 0x1))
   1842      1.1    jruoho         {
   1843      1.1    jruoho             Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
   1844      1.1    jruoho             If (LEqual (0x11111111, 0x22222222))
   1845      1.1    jruoho             {
   1846      1.1    jruoho                 Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
   1847      1.1    jruoho             }
   1848      1.1    jruoho 
   1849      1.1    jruoho             else
   1850      1.1    jruoho             {
   1851      1.1    jruoho                 Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
   1852      1.1    jruoho                 If (LNot (0x0))
   1853      1.1    jruoho                 {
   1854      1.1    jruoho                     Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
   1855      1.1    jruoho                     If (LAnd (0xEEEEEEEE, 0x2))
   1856      1.1    jruoho                     {
   1857      1.1    jruoho                         Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
   1858      1.1    jruoho                         If (LLess (0x44444444, 0x3))
   1859      1.1    jruoho                         {
   1860      1.1    jruoho                             Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
   1861      1.1    jruoho                         }
   1862      1.1    jruoho 
   1863      1.1    jruoho                         else
   1864      1.1    jruoho                         {
   1865      1.1    jruoho                             Store ("++++++++ Exiting from nested IF/ELSE statements", Debug)
   1866      1.1    jruoho                         }
   1867      1.1    jruoho                     }
   1868      1.1    jruoho                 }
   1869      1.1    jruoho             }
   1870      1.1    jruoho         }
   1871      1.1    jruoho 
   1872      1.1    jruoho 
   1873      1.1    jruoho         Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
   1874      1.1    jruoho         If (LGreater (0x2, 0x1))
   1875      1.1    jruoho         {
   1876      1.1    jruoho             Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
   1877      1.1    jruoho             If (LEqual (0x11111111, 0x22222222))
   1878      1.1    jruoho             {
   1879      1.1    jruoho                 Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
   1880      1.1    jruoho             }
   1881      1.1    jruoho 
   1882      1.1    jruoho             else
   1883      1.1    jruoho             {
   1884      1.1    jruoho                 Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
   1885      1.1    jruoho                 If (LNot (0x0))
   1886      1.1    jruoho                 {
   1887      1.1    jruoho                     Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
   1888      1.1    jruoho                     If (LAnd (0xEEEEEEEE, 0x2))
   1889      1.1    jruoho                     {
   1890      1.1    jruoho                         Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
   1891      1.1    jruoho                         If (LLess (0x44444444, 0x3))
   1892      1.1    jruoho                         {
   1893      1.1    jruoho                             Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
   1894      1.1    jruoho                         }
   1895      1.1    jruoho 
   1896      1.1    jruoho                         else
   1897      1.1    jruoho                         {
   1898      1.1    jruoho                             Store ("++++++++ Returning from nested IF/ELSE statements", Debug)
   1899      1.1    jruoho                             Return (Local6)
   1900      1.1    jruoho                         }
   1901      1.1    jruoho                     }
   1902      1.1    jruoho                 }
   1903      1.1    jruoho             }
   1904      1.1    jruoho         }
   1905      1.1    jruoho 
   1906      1.1    jruoho     }
   1907      1.1    jruoho 
   1908      1.1    jruoho 
   1909  1.1.1.3  christos     Method (REFS,, Serialized)
   1910      1.1    jruoho     {
   1911      1.1    jruoho         Name (BBUF, Buffer() {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7})
   1912      1.1    jruoho 
   1913      1.1    jruoho         Name (NEST, Package ()
   1914      1.1    jruoho         {
   1915      1.1    jruoho             Package ()
   1916      1.1    jruoho             {
   1917      1.1    jruoho                 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
   1918      1.1    jruoho             },
   1919      1.1    jruoho             Package ()
   1920      1.1    jruoho             {
   1921      1.1    jruoho                 0x11, 0x12, 0x12, 0x14, 0x15, 0x16
   1922      1.1    jruoho             }
   1923      1.1    jruoho         })
   1924      1.1    jruoho 
   1925      1.1    jruoho     /* Parser thinks this is a method invocation!! */
   1926      1.1    jruoho 
   1927      1.1    jruoho         Store (RefOf (MAIN), Local5)
   1928      1.1    jruoho 
   1929      1.1    jruoho         // For this to work, ABCD must NOT exist.
   1930      1.1    jruoho 
   1931      1.1    jruoho         Store (CondRefOf (ABCD, Local0), Local1)
   1932      1.1    jruoho         if (LNotEqual (Local1, 0))
   1933      1.1    jruoho         {
   1934      1.1    jruoho             ERR_ (2)
   1935      1.1    jruoho         }
   1936      1.1    jruoho 
   1937      1.1    jruoho         Store (CondRefOf (BBUF, Local0), Local1)
   1938      1.1    jruoho         if (LNotEqual (Local1, Ones))
   1939      1.1    jruoho         {
   1940      1.1    jruoho             ERR_ (2)
   1941      1.1    jruoho         }
   1942      1.1    jruoho 
   1943      1.1    jruoho         Store (DeRefOf (Index (BBUF, 3)), Local6)
   1944      1.1    jruoho         if (LNotEqual (Local6, 0xB3))
   1945      1.1    jruoho         {
   1946      1.1    jruoho             ERR_ (2)
   1947      1.1    jruoho         }
   1948      1.1    jruoho 
   1949      1.1    jruoho         Store (DeRefOf (Index (DeRefOf (Index (NEST, 1)), 3)), Local0)
   1950      1.1    jruoho         if (LNotEqual (Local0, 0x14))
   1951      1.1    jruoho         {
   1952      1.1    jruoho             ERR_ (2)
   1953      1.1    jruoho         }
   1954      1.1    jruoho 
   1955      1.1    jruoho 
   1956      1.1    jruoho         Store (0x11223344, Local0)
   1957      1.1    jruoho         Store (RefOf (Local0), Local1)
   1958      1.1    jruoho 
   1959      1.1    jruoho         Store (DerefOf (Local1), Local2)
   1960      1.1    jruoho         If (LNotEqual (Local2, 0x11223344))
   1961      1.1    jruoho         {
   1962      1.1    jruoho             ERR_ (2)
   1963      1.1    jruoho         }
   1964      1.1    jruoho 
   1965      1.1    jruoho 
   1966      1.1    jruoho     /* Parser thinks this is a method invocation!! */
   1967      1.1    jruoho 
   1968      1.1    jruoho     //  RefOf (MAIN)
   1969      1.1    jruoho 
   1970      1.1    jruoho 
   1971      1.1    jruoho     //  RefOf (R___)
   1972      1.1    jruoho     //  RefOf (BBUF)
   1973      1.1    jruoho 
   1974      1.1    jruoho     //  Store (RefOf (Local0), Local1)
   1975      1.1    jruoho 
   1976      1.1    jruoho     //  CondRefOf (BBUF, Local2)
   1977      1.1    jruoho     //  CondRefOf (R___, Local3)
   1978      1.1    jruoho 
   1979      1.1    jruoho     //  Store (DerefOf (Local1), Local4)
   1980      1.1    jruoho 
   1981      1.1    jruoho     //  Return (Local4)
   1982      1.1    jruoho     }
   1983      1.1    jruoho 
   1984      1.1    jruoho 
   1985  1.1.1.3  christos     Method (INDX, 0, Serialized)
   1986      1.1    jruoho     {
   1987      1.1    jruoho         Name(STAT,Package(4){})
   1988      1.1    jruoho         Store(0x44443333,Index(STAT,0))
   1989      1.1    jruoho     }
   1990      1.1    jruoho 
   1991      1.1    jruoho //=================================================================
   1992      1.1    jruoho //=================================================================
   1993      1.1    jruoho //===================== iPCO TESTS ================================
   1994      1.1    jruoho //=================================================================
   1995      1.1    jruoho //=================================================================
   1996      1.1    jruoho //
   1997      1.1    jruoho //
   1998      1.1    jruoho // test IfElseOp.asl
   1999      1.1    jruoho //
   2000      1.1    jruoho //  test for IfOp and ElseOp, including validation of object stack cleanup
   2001      1.1    jruoho //
   2002      1.1    jruoho     Device (IFEL)
   2003      1.1    jruoho     {
   2004      1.1    jruoho         Name (DWRD, 1)
   2005      1.1    jruoho         Name (RSLT, 0)
   2006      1.1    jruoho 
   2007      1.1    jruoho         //  IFNR control method executes IfOp branch with NO nested Return
   2008      1.1    jruoho         //  and no Else branch
   2009      1.1    jruoho         Method (IFNR)
   2010      1.1    jruoho         {
   2011      1.1    jruoho             Store (DWRD, RSLT)
   2012      1.1    jruoho             If (LEqual (DWRD, 1))
   2013      1.1    jruoho             {
   2014      1.1    jruoho                 Store (0, RSLT)
   2015      1.1    jruoho             }
   2016      1.1    jruoho         }   //  IFNR
   2017      1.1    jruoho 
   2018      1.1    jruoho         //  NINR control method does not execute If branch and has no Else branch
   2019      1.1    jruoho         Method (NINR)
   2020      1.1    jruoho         {
   2021      1.1    jruoho             Store (0, RSLT)
   2022      1.1    jruoho             If (LNotEqual (DWRD, 1))
   2023      1.1    jruoho             {
   2024      1.1    jruoho                 Store (DWRD, RSLT)
   2025      1.1    jruoho             }
   2026      1.1    jruoho         }   //  NINR
   2027      1.1    jruoho 
   2028      1.1    jruoho         //  IENR control method executes IfOp branch with NO nested Return
   2029      1.1    jruoho         Method (IENR)
   2030      1.1    jruoho         {
   2031      1.1    jruoho             If (LEqual (DWRD, 1))
   2032      1.1    jruoho             {
   2033      1.1    jruoho                 Store (0, RSLT)
   2034      1.1    jruoho             }
   2035      1.1    jruoho             Else
   2036      1.1    jruoho             {
   2037      1.1    jruoho                 Store (DWRD, RSLT)
   2038      1.1    jruoho             }
   2039      1.1    jruoho         }   //  IENR
   2040      1.1    jruoho 
   2041      1.1    jruoho         //  ELNR control method executes ElseOp branch with NO nested Return
   2042      1.1    jruoho         Method (ELNR)
   2043      1.1    jruoho         {
   2044      1.1    jruoho             If (LNotEqual (DWRD, 1))
   2045      1.1    jruoho             {
   2046      1.1    jruoho                 Store (DWRD, RSLT)
   2047      1.1    jruoho             }
   2048      1.1    jruoho             Else
   2049      1.1    jruoho             {
   2050      1.1    jruoho                 Store (0, RSLT)
   2051      1.1    jruoho             }
   2052      1.1    jruoho         }   //  ELNR
   2053      1.1    jruoho 
   2054      1.1    jruoho         //  IFRT control method executes IfOp branch with nested Return with
   2055      1.1    jruoho         //  no Else branch
   2056      1.1    jruoho         Method (IFRT)
   2057      1.1    jruoho 
   2058      1.1    jruoho         {
   2059      1.1    jruoho             If (LEqual (DWRD, 1))
   2060      1.1    jruoho             {
   2061      1.1    jruoho                 Return (0)
   2062      1.1    jruoho             }
   2063      1.1    jruoho             Return (DWRD)
   2064      1.1    jruoho         }   //  IFRT
   2065      1.1    jruoho 
   2066      1.1    jruoho         //  IERT control method executes IfOp branch with nested Return with
   2067      1.1    jruoho         //  Else branch
   2068      1.1    jruoho         Method (IERT)
   2069      1.1    jruoho         {
   2070      1.1    jruoho             If (LEqual (DWRD, 1))
   2071      1.1    jruoho             {
   2072      1.1    jruoho                 Return (0)
   2073      1.1    jruoho             }
   2074      1.1    jruoho             Else
   2075      1.1    jruoho             {
   2076      1.1    jruoho                 Return (DWRD)
   2077      1.1    jruoho             }
   2078      1.1    jruoho         }   //  IERT
   2079      1.1    jruoho 
   2080      1.1    jruoho         //  ELRT control method executes ElseOp branch with nested Return
   2081      1.1    jruoho         Method (ELRT)
   2082      1.1    jruoho         {
   2083      1.1    jruoho             If (LNotEqual (DWRD, 1))
   2084      1.1    jruoho             {
   2085      1.1    jruoho                 Return (DWRD)
   2086      1.1    jruoho             }
   2087      1.1    jruoho             Else
   2088      1.1    jruoho             {
   2089      1.1    jruoho                 Return (0)
   2090      1.1    jruoho             }
   2091      1.1    jruoho         }   //  ELRT
   2092      1.1    jruoho 
   2093      1.1    jruoho         Method (TEST)
   2094      1.1    jruoho         {
   2095      1.1    jruoho             Store ("++++++++ IfElseOp Test", Debug)
   2096      1.1    jruoho 
   2097      1.1    jruoho             //  IfOp with NO return value
   2098      1.1    jruoho             IFNR()
   2099      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2100      1.1    jruoho             {
   2101      1.1    jruoho                 Return (RSLT)
   2102      1.1    jruoho             }
   2103      1.1    jruoho 
   2104      1.1    jruoho             //  IfOp with NO return value
   2105      1.1    jruoho             NINR()
   2106      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2107      1.1    jruoho             {
   2108      1.1    jruoho                 Return (RSLT)
   2109      1.1    jruoho             }
   2110      1.1    jruoho 
   2111      1.1    jruoho             //  IfOp with NO return value
   2112      1.1    jruoho             IENR()
   2113      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2114      1.1    jruoho             {
   2115      1.1    jruoho                 Return (RSLT)
   2116      1.1    jruoho             }
   2117      1.1    jruoho 
   2118      1.1    jruoho             //  ElseOp with NO return value
   2119      1.1    jruoho             ELNR()
   2120      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2121      1.1    jruoho             {
   2122      1.1    jruoho                 Return (RSLT)
   2123      1.1    jruoho             }
   2124      1.1    jruoho 
   2125      1.1    jruoho             //  IfOp with return value
   2126      1.1    jruoho             Store (IFRT, RSLT)
   2127      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2128      1.1    jruoho             {
   2129      1.1    jruoho                 Return (RSLT)
   2130      1.1    jruoho             }
   2131      1.1    jruoho 
   2132      1.1    jruoho             //  IfOp with return value
   2133      1.1    jruoho             Store (IERT, RSLT)
   2134      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2135      1.1    jruoho             {
   2136      1.1    jruoho                 Return (RSLT)
   2137      1.1    jruoho             }
   2138      1.1    jruoho 
   2139      1.1    jruoho             //  ElseOp with return value
   2140      1.1    jruoho             Store (ELRT, RSLT)
   2141      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2142      1.1    jruoho             {
   2143      1.1    jruoho                 Return (RSLT)
   2144      1.1    jruoho             }
   2145      1.1    jruoho 
   2146      1.1    jruoho             Return (0)
   2147      1.1    jruoho         }   //  TEST
   2148      1.1    jruoho     }   //  IFEL
   2149      1.1    jruoho 
   2150      1.1    jruoho //
   2151      1.1    jruoho // test NoSave.asl
   2152      1.1    jruoho //
   2153      1.1    jruoho //
   2154      1.1    jruoho //  Internal test cases to validate IfOp (Operator (,,)) where Operator
   2155      1.1    jruoho //  target is ZeroOp to throw away the results.
   2156      1.1    jruoho //  Includes internal test cases for logical operators with no destination
   2157      1.1    jruoho //  operands.
   2158      1.1    jruoho //
   2159      1.1    jruoho     Device (NOSV)
   2160      1.1    jruoho     {
   2161  1.1.1.3  christos         Method (TEST,, Serialized)
   2162      1.1    jruoho         {
   2163      1.1    jruoho             Store ("++++++++ NoSave Test", Debug)
   2164      1.1    jruoho 
   2165      1.1    jruoho             Name (WRD, 0x1234)
   2166      1.1    jruoho 
   2167      1.1    jruoho             //
   2168      1.1    jruoho             //  Begin test of nested operators without saving results
   2169      1.1    jruoho             //
   2170      1.1    jruoho 
   2171      1.1    jruoho             //  Test If (And ()) with no save of And result
   2172      1.1    jruoho             If (And (3, 1, ))
   2173      1.1    jruoho             {
   2174      1.1    jruoho                 Store (1, WRD)  //  pass -- just do something
   2175      1.1    jruoho             }
   2176      1.1    jruoho             else
   2177      1.1    jruoho             {
   2178      1.1    jruoho                 Return (1)      //  fail
   2179      1.1    jruoho             }
   2180      1.1    jruoho 
   2181      1.1    jruoho             //  Test If (And ()) with no save of And result
   2182      1.1    jruoho             If (And (4, 1, ))
   2183      1.1    jruoho             {
   2184      1.1    jruoho                 Return (2)      //  fail
   2185      1.1    jruoho             }
   2186      1.1    jruoho             else
   2187      1.1    jruoho             {
   2188      1.1    jruoho                 Store (2, WRD)  //  pass -- just do something
   2189      1.1    jruoho             }
   2190      1.1    jruoho 
   2191      1.1    jruoho 
   2192      1.1    jruoho             //  Test If (NAnd ()) with no save of NAnd result
   2193      1.1    jruoho             If (NAnd (3, 1, ))
   2194      1.1    jruoho             {
   2195      1.1    jruoho                 Store (3, WRD)  //  pass -- just do something
   2196      1.1    jruoho             }
   2197      1.1    jruoho             else
   2198      1.1    jruoho             {
   2199      1.1    jruoho                 Return (3)      //  fail
   2200      1.1    jruoho             }
   2201      1.1    jruoho 
   2202      1.1    jruoho             //  Test If (NAnd ()) with no save of NAnd result
   2203      1.1    jruoho             If (NAnd (0xFFFFFFFF, 0xFFFFFFFF, ))
   2204      1.1    jruoho             {
   2205      1.1    jruoho                 Return (4)      // fail
   2206      1.1    jruoho             }
   2207      1.1    jruoho             else
   2208      1.1    jruoho             {
   2209      1.1    jruoho                 Store (4, WRD)  //  pass -- just do something
   2210      1.1    jruoho             }
   2211      1.1    jruoho 
   2212      1.1    jruoho 
   2213      1.1    jruoho             //  Test If (NOr ()) with no save of NOr result
   2214      1.1    jruoho             If (NOr (0, 1, ))
   2215      1.1    jruoho             {
   2216      1.1    jruoho                 Store (5, WRD)  //  pass -- just do something
   2217      1.1    jruoho             }
   2218      1.1    jruoho             else
   2219      1.1    jruoho             {
   2220      1.1    jruoho                 Return (5)      //  fail
   2221      1.1    jruoho             }
   2222      1.1    jruoho 
   2223      1.1    jruoho             //  Test If (NOr ()) with no save of NOr result
   2224      1.1    jruoho             If (NOr (0xFFFFFFFE, 1, ))
   2225      1.1    jruoho             {
   2226      1.1    jruoho                 Return (6)      // fail
   2227      1.1    jruoho             }
   2228      1.1    jruoho             else
   2229      1.1    jruoho             {
   2230      1.1    jruoho                 Store (6, WRD)  //  pass -- just do something
   2231      1.1    jruoho             }
   2232      1.1    jruoho 
   2233      1.1    jruoho 
   2234      1.1    jruoho             //  Test If (Not ()) with no save of Not result
   2235      1.1    jruoho             If (Not (1, ))
   2236      1.1    jruoho             {
   2237      1.1    jruoho                 Store (7, WRD)  //  pass -- just do something
   2238      1.1    jruoho             }
   2239      1.1    jruoho             else
   2240      1.1    jruoho             {
   2241      1.1    jruoho                 Return (7)      //  fail
   2242      1.1    jruoho             }
   2243      1.1    jruoho 
   2244      1.1    jruoho             //  Test If (Not ()) with no save of Not result
   2245      1.1    jruoho             If (Not (0xFFFFFFFF, ))
   2246      1.1    jruoho             {
   2247      1.1    jruoho                 Return (8)      // fail
   2248      1.1    jruoho             }
   2249      1.1    jruoho             else
   2250      1.1    jruoho             {
   2251      1.1    jruoho                 Store (8, WRD)  //  pass -- just do something
   2252      1.1    jruoho             }
   2253      1.1    jruoho 
   2254      1.1    jruoho 
   2255      1.1    jruoho             //  Test If (Or ()) with no save of Or result
   2256      1.1    jruoho             If (Or (3, 1, ))
   2257      1.1    jruoho             {
   2258      1.1    jruoho                 Store (9, WRD)  //  pass -- just do something
   2259      1.1    jruoho             }
   2260      1.1    jruoho             else
   2261      1.1    jruoho             {
   2262      1.1    jruoho                 Return (9)      //  fail
   2263      1.1    jruoho             }
   2264      1.1    jruoho 
   2265      1.1    jruoho             //  Test If (Or ()) with no save of Or result
   2266      1.1    jruoho             If (Or (0, 0, ))
   2267      1.1    jruoho             {
   2268      1.1    jruoho                 Return (10)     //  fail
   2269      1.1    jruoho             }
   2270      1.1    jruoho             else
   2271      1.1    jruoho             {
   2272      1.1    jruoho                 Store (10, WRD) //  pass -- just do something
   2273      1.1    jruoho             }
   2274      1.1    jruoho 
   2275      1.1    jruoho 
   2276      1.1    jruoho             //  Test If (XOr ()) with no save of XOr result
   2277      1.1    jruoho             If (XOr (3, 1, ))
   2278      1.1    jruoho             {
   2279      1.1    jruoho                 Store (11, WRD) //  pass -- just do something
   2280      1.1    jruoho             }
   2281      1.1    jruoho             else
   2282      1.1    jruoho             {
   2283      1.1    jruoho                 Return (11)     // fail
   2284      1.1    jruoho             }
   2285      1.1    jruoho 
   2286      1.1    jruoho             //  Test If (XOr ()) with no save of XOr result
   2287      1.1    jruoho             If (XOr (3, 3, ))
   2288      1.1    jruoho             {
   2289      1.1    jruoho                 Return (12)     // fail
   2290      1.1    jruoho             }
   2291      1.1    jruoho             else
   2292      1.1    jruoho             {
   2293      1.1    jruoho                 Store (12, WRD) //  pass -- just do something
   2294      1.1    jruoho             }
   2295      1.1    jruoho 
   2296      1.1    jruoho 
   2297      1.1    jruoho             //
   2298      1.1    jruoho             //  Begin test of logical operators with no destination operands
   2299      1.1    jruoho             //
   2300      1.1    jruoho 
   2301      1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2302      1.1    jruoho             If (LAnd (3, 3))
   2303      1.1    jruoho             {
   2304      1.1    jruoho                 Store (21, WRD) //  pass -- just do something
   2305      1.1    jruoho             }
   2306      1.1    jruoho             else
   2307      1.1    jruoho             {
   2308      1.1    jruoho                 Return (21)     // fail
   2309      1.1    jruoho             }
   2310      1.1    jruoho 
   2311      1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2312      1.1    jruoho             If (LAnd (3, 0))
   2313      1.1    jruoho             {
   2314      1.1    jruoho                 Return (22)     // fail
   2315      1.1    jruoho             }
   2316      1.1    jruoho             else
   2317      1.1    jruoho             {
   2318      1.1    jruoho                 Store (22, WRD) //  pass -- just do something
   2319      1.1    jruoho             }
   2320      1.1    jruoho 
   2321      1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2322      1.1    jruoho             If (LAnd (0, 3))
   2323      1.1    jruoho             {
   2324      1.1    jruoho                 Return (23)     //  fail
   2325      1.1    jruoho             }
   2326      1.1    jruoho             else
   2327      1.1    jruoho             {
   2328      1.1    jruoho                 Store (23, WRD) //  pass -- just do something
   2329      1.1    jruoho             }
   2330      1.1    jruoho 
   2331      1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2332      1.1    jruoho             If (LAnd (0, 0))
   2333      1.1    jruoho             {
   2334      1.1    jruoho                 Return (24)     //  fail
   2335      1.1    jruoho             }
   2336      1.1    jruoho             else
   2337      1.1    jruoho             {
   2338      1.1    jruoho                 Store (24, WRD) //  pass -- just do something
   2339      1.1    jruoho             }
   2340      1.1    jruoho 
   2341      1.1    jruoho 
   2342      1.1    jruoho             //  Test If (LEqual ()) with no save of LEqual result
   2343      1.1    jruoho             If (LEqual (3, 3))
   2344      1.1    jruoho             {
   2345      1.1    jruoho                 Store (31, WRD) //  pass -- just do something
   2346      1.1    jruoho             }
   2347      1.1    jruoho             else
   2348      1.1    jruoho             {
   2349      1.1    jruoho                 Return (31)     //  fail
   2350      1.1    jruoho             }
   2351      1.1    jruoho 
   2352      1.1    jruoho             //  Test If (LEqual ()) with no save of LEqual result
   2353      1.1    jruoho             If (LEqual (1, 3))
   2354      1.1    jruoho             {
   2355      1.1    jruoho                 Return (32)     //  fail
   2356      1.1    jruoho             }
   2357      1.1    jruoho             else
   2358      1.1    jruoho             {
   2359      1.1    jruoho                 Store (32, WRD) //  pass -- just do something
   2360      1.1    jruoho             }
   2361      1.1    jruoho 
   2362      1.1    jruoho 
   2363      1.1    jruoho             //  Test If (LGreater ()) with no save of LGreater result
   2364      1.1    jruoho             If (LGreater (3, 1))
   2365      1.1    jruoho             {
   2366      1.1    jruoho                 Store (41, WRD) //  pass -- just do something
   2367      1.1    jruoho             }
   2368      1.1    jruoho             else
   2369      1.1    jruoho             {
   2370      1.1    jruoho                 Return (41)     //  fail
   2371      1.1    jruoho             }
   2372      1.1    jruoho 
   2373      1.1    jruoho             //  Test If (LGreater ()) with no save of LGreater result
   2374      1.1    jruoho             If (LGreater (4, 4))
   2375      1.1    jruoho             {
   2376      1.1    jruoho                 Return (42)     //  fail
   2377      1.1    jruoho             }
   2378      1.1    jruoho             else
   2379      1.1    jruoho             {
   2380      1.1    jruoho                 Store (42, WRD) //  pass -- just do something
   2381      1.1    jruoho             }
   2382      1.1    jruoho 
   2383      1.1    jruoho             //  Test If (LGreater ()) with no save of LGreater result
   2384      1.1    jruoho             If (LGreater (1, 4))
   2385      1.1    jruoho             {
   2386      1.1    jruoho                 Return (43)     //  fail
   2387      1.1    jruoho             }
   2388      1.1    jruoho             else
   2389      1.1    jruoho             {
   2390      1.1    jruoho                 Store (43, WRD) //  pass -- just do something
   2391      1.1    jruoho             }
   2392      1.1    jruoho 
   2393      1.1    jruoho             //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
   2394      1.1    jruoho             If (LGreaterEqual (3, 1))
   2395      1.1    jruoho             {
   2396      1.1    jruoho                 Store (44, WRD) //  pass -- just do something
   2397      1.1    jruoho             }
   2398      1.1    jruoho             else
   2399      1.1    jruoho             {
   2400      1.1    jruoho                 Return (44)     //  fail
   2401      1.1    jruoho             }
   2402      1.1    jruoho 
   2403      1.1    jruoho             //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
   2404      1.1    jruoho             If (LGreaterEqual (3, 3))
   2405      1.1    jruoho             {
   2406      1.1    jruoho                 Store (45, WRD) //  pass -- just do something
   2407      1.1    jruoho             }
   2408      1.1    jruoho             else
   2409      1.1    jruoho             {
   2410      1.1    jruoho                 Return (45)     //  fail
   2411      1.1    jruoho             }
   2412      1.1    jruoho 
   2413      1.1    jruoho             //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
   2414      1.1    jruoho             If (LGreaterEqual (3, 4))
   2415      1.1    jruoho             {
   2416      1.1    jruoho                 Return (46)     //  fail
   2417      1.1    jruoho             }
   2418      1.1    jruoho             else
   2419      1.1    jruoho             {
   2420      1.1    jruoho                 Store (46, WRD) //  pass -- just do something
   2421      1.1    jruoho             }
   2422      1.1    jruoho 
   2423      1.1    jruoho 
   2424      1.1    jruoho             //  Test If (LLess ()) with no save of LLess result
   2425      1.1    jruoho             If (LLess (1, 3))
   2426      1.1    jruoho             {
   2427      1.1    jruoho                 Store (51, WRD) //  pass -- just do something
   2428      1.1    jruoho             }
   2429      1.1    jruoho             else
   2430      1.1    jruoho             {
   2431      1.1    jruoho                 Return (51)     //  fail
   2432      1.1    jruoho             }
   2433      1.1    jruoho 
   2434      1.1    jruoho             //  Test If (LLess ()) with no save of LLess result
   2435      1.1    jruoho             If (LLess (2, 2))
   2436      1.1    jruoho             {
   2437      1.1    jruoho                 Return (52)     //  fail
   2438      1.1    jruoho             }
   2439      1.1    jruoho             else
   2440      1.1    jruoho             {
   2441      1.1    jruoho                 Store (52, WRD) //  pass -- just do something
   2442      1.1    jruoho             }
   2443      1.1    jruoho 
   2444      1.1    jruoho             //  Test If (LLess ()) with no save of LLess result
   2445      1.1    jruoho             If (LLess (4, 2))
   2446      1.1    jruoho             {
   2447      1.1    jruoho                 Return (53)     //  fail
   2448      1.1    jruoho             }
   2449      1.1    jruoho             else
   2450      1.1    jruoho             {
   2451      1.1    jruoho                 Store (53, WRD) //  pass -- just do something
   2452      1.1    jruoho             }
   2453      1.1    jruoho 
   2454      1.1    jruoho 
   2455      1.1    jruoho             //  Test If (LLessEqual ()) with no save of LLessEqual result
   2456      1.1    jruoho             If (LLessEqual (1, 3))
   2457      1.1    jruoho             {
   2458      1.1    jruoho                 Store (54, WRD) //  pass -- just do something
   2459      1.1    jruoho             }
   2460      1.1    jruoho             else
   2461      1.1    jruoho             {
   2462      1.1    jruoho                 Return (54)     //  fail
   2463      1.1    jruoho             }
   2464      1.1    jruoho 
   2465      1.1    jruoho             //  Test If (LLessEqual ()) with no save of LLessEqual result
   2466      1.1    jruoho             If (LLessEqual (2, 2))
   2467      1.1    jruoho             {
   2468      1.1    jruoho                 Store (55, WRD) //  pass -- just do something
   2469      1.1    jruoho             }
   2470      1.1    jruoho             else
   2471      1.1    jruoho             {
   2472      1.1    jruoho                 Return (55)     //  fail
   2473      1.1    jruoho             }
   2474      1.1    jruoho 
   2475      1.1    jruoho             //  Test If (LLessEqual ()) with no save of LLessEqual result
   2476      1.1    jruoho             If (LLessEqual (4, 2))
   2477      1.1    jruoho             {
   2478      1.1    jruoho                 Return (56)     //  fail
   2479      1.1    jruoho             }
   2480      1.1    jruoho             else
   2481      1.1    jruoho             {
   2482      1.1    jruoho                 Store (56, WRD) //  pass -- just do something
   2483      1.1    jruoho             }
   2484      1.1    jruoho 
   2485      1.1    jruoho 
   2486      1.1    jruoho             //  Test If (LNot ()) with no save of LNot result
   2487      1.1    jruoho             If (LNot (0))
   2488      1.1    jruoho             {
   2489      1.1    jruoho                 Store (61, WRD) //  pass -- just do something
   2490      1.1    jruoho             }
   2491      1.1    jruoho             else
   2492      1.1    jruoho             {
   2493      1.1    jruoho                 Return (61)     //  fail
   2494      1.1    jruoho             }
   2495      1.1    jruoho 
   2496      1.1    jruoho             //  Test If (LNot ()) with no save of LNot result
   2497      1.1    jruoho             If (LNot (1))
   2498      1.1    jruoho             {
   2499      1.1    jruoho                 Return (62)     //  fail
   2500      1.1    jruoho             }
   2501      1.1    jruoho             else
   2502      1.1    jruoho             {
   2503      1.1    jruoho                 Store (62, WRD) //  pass -- just do something
   2504      1.1    jruoho             }
   2505      1.1    jruoho 
   2506      1.1    jruoho 
   2507      1.1    jruoho             //  Test If (LNotEqual ()) with no save of LNotEqual result
   2508      1.1    jruoho             If (LNotEqual (3, 3))
   2509      1.1    jruoho             {
   2510      1.1    jruoho                 Return (63)     //  fail
   2511      1.1    jruoho             }
   2512      1.1    jruoho             else
   2513      1.1    jruoho             {
   2514      1.1    jruoho                 Store (63, WRD) //  pass -- just do something
   2515      1.1    jruoho             }
   2516      1.1    jruoho 
   2517      1.1    jruoho             //  Test If (LNotEqual ()) with no save of LNotEqual result
   2518      1.1    jruoho             If (LNotEqual (1, 3))
   2519      1.1    jruoho             {
   2520      1.1    jruoho                 Store (64, WRD) //  pass -- just do something
   2521      1.1    jruoho             }
   2522      1.1    jruoho             else
   2523      1.1    jruoho             {
   2524      1.1    jruoho                 Return (64)     //  fail
   2525      1.1    jruoho             }
   2526      1.1    jruoho 
   2527      1.1    jruoho 
   2528      1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2529      1.1    jruoho             If (LOr (3, 1))
   2530      1.1    jruoho             {
   2531      1.1    jruoho                 Store (71, WRD) //  pass -- just do something
   2532      1.1    jruoho             }
   2533      1.1    jruoho             else
   2534      1.1    jruoho             {
   2535      1.1    jruoho                 Return (71)     //  fail
   2536      1.1    jruoho             }
   2537      1.1    jruoho 
   2538      1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2539      1.1    jruoho             If (LOr (0, 1))
   2540      1.1    jruoho             {
   2541      1.1    jruoho                 Store (72, WRD) //  pass -- just do something
   2542      1.1    jruoho             }
   2543      1.1    jruoho             else
   2544      1.1    jruoho             {
   2545      1.1    jruoho                 Return (72)     //  fail
   2546      1.1    jruoho             }
   2547      1.1    jruoho 
   2548      1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2549      1.1    jruoho             If (LOr (3, 0))
   2550      1.1    jruoho             {
   2551      1.1    jruoho                 Store (73, WRD) //  pass -- just do something
   2552      1.1    jruoho             }
   2553      1.1    jruoho             else
   2554      1.1    jruoho             {
   2555      1.1    jruoho                 Return (73)     //  fail
   2556      1.1    jruoho             }
   2557      1.1    jruoho 
   2558      1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2559      1.1    jruoho             If (LOr (0, 0))
   2560      1.1    jruoho             {
   2561      1.1    jruoho                 Return (74)     //  fail
   2562      1.1    jruoho             }
   2563      1.1    jruoho             else
   2564      1.1    jruoho             {
   2565      1.1    jruoho                 Store (74, WRD) //  pass -- just do something
   2566      1.1    jruoho             }
   2567      1.1    jruoho 
   2568      1.1    jruoho             Return (0)
   2569      1.1    jruoho         }   //  TEST
   2570      1.1    jruoho     }   //  NOSV
   2571      1.1    jruoho 
   2572      1.1    jruoho 
   2573      1.1    jruoho //
   2574      1.1    jruoho // test IndxFld.asl
   2575      1.1    jruoho //
   2576      1.1    jruoho //  IndexFld test
   2577      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   2578      1.1    jruoho //      Tests index field element AccessAs macro.
   2579      1.1    jruoho //
   2580      1.1    jruoho     Device (IDXF)
   2581      1.1    jruoho     {   //  Test device name
   2582      1.1    jruoho 
   2583      1.1    jruoho         OperationRegion (SIO, SystemIO, 0x100, 2)
   2584      1.1    jruoho         Field (SIO, ByteAcc, NoLock, Preserve)
   2585      1.1    jruoho         {
   2586      1.1    jruoho             INDX,   8,
   2587      1.1    jruoho             DATA,   8
   2588      1.1    jruoho         }
   2589      1.1    jruoho         IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
   2590      1.1    jruoho         {
   2591      1.1    jruoho             AccessAs (ByteAcc, 0),
   2592      1.1    jruoho             IFE0,   8,
   2593      1.1    jruoho             IFE1,   8,
   2594      1.1    jruoho             IFE2,   8,
   2595      1.1    jruoho             IFE3,   8,
   2596      1.1    jruoho             IFE4,   8,
   2597      1.1    jruoho             IFE5,   8,
   2598      1.1    jruoho             IFE6,   8,
   2599      1.1    jruoho             IFE7,   8,
   2600      1.1    jruoho             IFE8,   8,
   2601      1.1    jruoho             IFE9,   8,
   2602      1.1    jruoho         }
   2603      1.1    jruoho 
   2604      1.1    jruoho         Method (TEST)
   2605      1.1    jruoho         {
   2606      1.1    jruoho             Store ("++++++++ IndxFld Test", Debug)
   2607      1.1    jruoho 
   2608      1.1    jruoho             Store (IFE0, Local0)
   2609      1.1    jruoho             Store (IFE1, Local1)
   2610      1.1    jruoho             Store (IFE2, Local2)
   2611      1.1    jruoho 
   2612      1.1    jruoho             Return (0)
   2613      1.1    jruoho         }   //  TEST
   2614      1.1    jruoho     }   //  IDXF
   2615      1.1    jruoho 
   2616      1.1    jruoho //
   2617      1.1    jruoho // test NestdLor.asl
   2618      1.1    jruoho //
   2619      1.1    jruoho     Scope (\_SB)    //  System Bus
   2620      1.1    jruoho     {   //  _SB system bus
   2621      1.1    jruoho 
   2622      1.1    jruoho         Name (ZER0, 0)
   2623      1.1    jruoho         Name (ZER1, 0)
   2624      1.1    jruoho         Name (ZER2, 0)
   2625      1.1    jruoho         Name (ONE0, 1)
   2626      1.1    jruoho 
   2627      1.1    jruoho         Device (NSTL)
   2628      1.1    jruoho         {
   2629      1.1    jruoho             Method (TEST)
   2630      1.1    jruoho             {
   2631      1.1    jruoho                 Store ("++++++++ NestdLor Test", Debug)
   2632      1.1    jruoho 
   2633      1.1    jruoho                 If (Lor (ZER0, Lor (ZER1, Lor (ZER2, ONE0))))
   2634      1.1    jruoho                 {   //  Indicate Pass
   2635      1.1    jruoho                     Store (0x00, Local0)
   2636      1.1    jruoho                 }
   2637      1.1    jruoho 
   2638      1.1    jruoho                 Else
   2639      1.1    jruoho                 {   //  Indicate Fail
   2640      1.1    jruoho                     Store (0x01, Local0)
   2641      1.1    jruoho                 }
   2642      1.1    jruoho 
   2643      1.1    jruoho                 Return (Local0)
   2644      1.1    jruoho             }   //  End Method TEST
   2645      1.1    jruoho         }   //  Device NSTL
   2646      1.1    jruoho     }   //  _SB system bus
   2647      1.1    jruoho 
   2648      1.1    jruoho //
   2649      1.1    jruoho // test RetBuf.asl
   2650      1.1    jruoho //
   2651      1.1    jruoho //  Test ReturnOp(Buffer)
   2652      1.1    jruoho //      This is required to support Control Method Batteries on
   2653      1.1    jruoho //          Dell Latitude Laptops (e.g., CP1-A)
   2654      1.1    jruoho //
   2655      1.1    jruoho     Device (RTBF)
   2656      1.1    jruoho     {
   2657      1.1    jruoho         Method (SUBR, 1)
   2658      1.1    jruoho         {
   2659      1.1    jruoho             Return (Arg0)
   2660      1.1    jruoho         }
   2661      1.1    jruoho 
   2662  1.1.1.3  christos         Method (RBUF,, Serialized)
   2663      1.1    jruoho         {   //  RBUF: Return Buffer from local variable
   2664      1.1    jruoho             Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
   2665      1.1    jruoho 
   2666      1.1    jruoho             //  store local buffer ABUF into Local0
   2667      1.1    jruoho             Store (ABUF, Local0)
   2668      1.1    jruoho 
   2669      1.1    jruoho             //  save Local0 object type value into Local1
   2670      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2671      1.1    jruoho 
   2672      1.1    jruoho             //  validate Local0 is a Buffer
   2673      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2674      1.1    jruoho             {
   2675      1.1    jruoho                 Return (1)      //  failure
   2676      1.1    jruoho             }
   2677      1.1    jruoho 
   2678      1.1    jruoho             //  store value returned by control method SUBR into Local0
   2679      1.1    jruoho             Store (SUBR (ABUF), Local0)
   2680      1.1    jruoho 
   2681      1.1    jruoho             //  save Local0 object type value into Local1
   2682      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2683      1.1    jruoho 
   2684      1.1    jruoho             //  validate Local0 is a Buffer
   2685      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2686      1.1    jruoho             {
   2687      1.1    jruoho                 Return (2)      //  failure
   2688      1.1    jruoho             }
   2689      1.1    jruoho 
   2690      1.1    jruoho             //  allocate buffer using Local1 as buffer size (run-time evaluation)
   2691      1.1    jruoho             Store (5, Local1)
   2692      1.1    jruoho             Name (BUFR, Buffer(Local1) {})
   2693      1.1    jruoho 
   2694      1.1    jruoho             //  store value returned by control method SUBR into Local0
   2695      1.1    jruoho             Store (SUBR (BUFR), Local0)
   2696      1.1    jruoho 
   2697      1.1    jruoho             //  save Local0 object type value into Local1
   2698      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2699      1.1    jruoho 
   2700      1.1    jruoho             //  validate Local0 is a Buffer
   2701      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2702      1.1    jruoho             {
   2703      1.1    jruoho                 Return (3)      //  failure
   2704      1.1    jruoho             }
   2705      1.1    jruoho 
   2706      1.1    jruoho             //  store BUFR Buffer into Local0
   2707      1.1    jruoho             Store (BUFR, Local0)
   2708      1.1    jruoho 
   2709      1.1    jruoho             //  save Local0 object type value into Local1
   2710      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2711      1.1    jruoho 
   2712      1.1    jruoho             //  validate Local0 is a Buffer
   2713      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2714      1.1    jruoho             {
   2715      1.1    jruoho                 Return (4)      //  failure
   2716      1.1    jruoho             }
   2717      1.1    jruoho 
   2718      1.1    jruoho 
   2719      1.1    jruoho             //  return Local0 Buffer
   2720      1.1    jruoho             Return (Local0)
   2721      1.1    jruoho         }   //  RBUF
   2722      1.1    jruoho 
   2723      1.1    jruoho         Method (TEST)
   2724      1.1    jruoho         {
   2725      1.1    jruoho             Store ("++++++++ RetBuf Test", Debug)
   2726      1.1    jruoho 
   2727      1.1    jruoho             //  store RBUF Buffer return value into Local0
   2728      1.1    jruoho             Store (RBUF, Local0)
   2729      1.1    jruoho 
   2730      1.1    jruoho             //  save Local0 object type value into Local1
   2731      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2732      1.1    jruoho 
   2733      1.1    jruoho             //  validate Local0 is a Buffer
   2734      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2735      1.1    jruoho             {
   2736      1.1    jruoho                 Return (10)     //  failure
   2737      1.1    jruoho             }
   2738      1.1    jruoho             Else
   2739      1.1    jruoho             {
   2740      1.1    jruoho                 Return (0)      //  success
   2741      1.1    jruoho             }
   2742      1.1    jruoho         }   //  TEST
   2743      1.1    jruoho     }   //  RTBF
   2744      1.1    jruoho 
   2745      1.1    jruoho //
   2746      1.1    jruoho // test RetLVal.asl
   2747      1.1    jruoho //
   2748      1.1    jruoho //  Test ReturnOp(Lvalue)
   2749      1.1    jruoho //      This is required to support _PSR on IBM ThinkPad 560D and
   2750      1.1    jruoho //      _DCK on Toshiba Tecra 8000.
   2751      1.1    jruoho //
   2752      1.1    jruoho 
   2753      1.1    jruoho     Device (GPE2)
   2754      1.1    jruoho     {
   2755      1.1    jruoho         Method (_L03)
   2756      1.1    jruoho         {
   2757      1.1    jruoho             Store ("Method GPE2._L03 invoked", Debug)
   2758      1.1    jruoho             Return ()
   2759      1.1    jruoho         }
   2760      1.1    jruoho 
   2761      1.1    jruoho         Method (_E05)
   2762      1.1    jruoho         {
   2763      1.1    jruoho             Store ("Method GPE2._E05 invoked", Debug)
   2764      1.1    jruoho             Return ()
   2765      1.1    jruoho         }
   2766      1.1    jruoho     }
   2767      1.1    jruoho 
   2768      1.1    jruoho     Device (PRW2)
   2769      1.1    jruoho     {
   2770      1.1    jruoho         Name (_PRW, Package(2) {Package(2){\GPE2, 0x05}, 3})
   2771      1.1    jruoho     }
   2772      1.1    jruoho 
   2773      1.1    jruoho 
   2774      1.1    jruoho     Scope (\_GPE)
   2775      1.1    jruoho     {
   2776      1.1    jruoho         Name (ACST, 0xFF)
   2777      1.1    jruoho 
   2778      1.1    jruoho         Method (_L08)
   2779      1.1    jruoho         {
   2780      1.1    jruoho             Store ("Method _GPE._L08 invoked", Debug)
   2781      1.1    jruoho             Return ()
   2782      1.1    jruoho         }
   2783      1.1    jruoho 
   2784      1.1    jruoho         Method (_E09)
   2785      1.1    jruoho         {
   2786      1.1    jruoho             Store ("Method _GPE._E09 invoked", Debug)
   2787      1.1    jruoho             Return ()
   2788      1.1    jruoho         }
   2789      1.1    jruoho 
   2790      1.1    jruoho         Method (_E11)
   2791      1.1    jruoho         {
   2792      1.1    jruoho             Store ("Method _GPE._E11 invoked", Debug)
   2793      1.1    jruoho             Notify (\PRW1, 2)
   2794      1.1    jruoho         }
   2795      1.1    jruoho 
   2796      1.1    jruoho         Method (_L22)
   2797      1.1    jruoho         {
   2798      1.1    jruoho             Store ("Method _GPE._L22 invoked", Debug)
   2799      1.1    jruoho             Return ()
   2800      1.1    jruoho         }
   2801      1.1    jruoho 
   2802      1.1    jruoho         Method (_L33)
   2803      1.1    jruoho         {
   2804      1.1    jruoho             Store ("Method _GPE._L33 invoked", Debug)
   2805      1.1    jruoho             Return ()
   2806      1.1    jruoho         }
   2807      1.1    jruoho 
   2808      1.1    jruoho         Method (_E64)
   2809      1.1    jruoho         {
   2810      1.1    jruoho             Store ("Method _GPE._E64 invoked", Debug)
   2811      1.1    jruoho             Return ()
   2812      1.1    jruoho         }
   2813      1.1    jruoho 
   2814      1.1    jruoho     }   //  _GPE
   2815      1.1    jruoho 
   2816      1.1    jruoho     Device (PRW1)
   2817      1.1    jruoho     {
   2818      1.1    jruoho         Name (_PRW, Package(2) {0x11, 3})
   2819      1.1    jruoho     }
   2820      1.1    jruoho 
   2821      1.1    jruoho     Device (PWRB)
   2822      1.1    jruoho     {
   2823      1.1    jruoho         Name (_HID, EISAID("PNP0C0C"))
   2824      1.1    jruoho         Name (_PRW, Package(2) {0x33, 3})
   2825      1.1    jruoho     }
   2826      1.1    jruoho 
   2827      1.1    jruoho 
   2828      1.1    jruoho     Scope (\_SB)    //  System Bus
   2829      1.1    jruoho     {   //  _SB system bus
   2830      1.1    jruoho 
   2831      1.1    jruoho         Device (ACAD)
   2832      1.1    jruoho         {   //  ACAD:   AC adapter device
   2833      1.1    jruoho             Name (_HID, "ACPI0003") //  AC adapter device
   2834      1.1    jruoho 
   2835      1.1    jruoho             Name (_PCL, Package () {\_SB})
   2836      1.1    jruoho 
   2837      1.1    jruoho             OperationRegion (AREG, SystemIO, 0x0372, 2)
   2838      1.1    jruoho             Field (AREG, ByteAcc, NoLock, Preserve)
   2839      1.1    jruoho             {
   2840      1.1    jruoho                 AIDX,   8,
   2841      1.1    jruoho                 ADAT,   8
   2842      1.1    jruoho             }
   2843      1.1    jruoho             IndexField (AIDX, ADAT, ByteAcc, NoLock, Preserve)
   2844      1.1    jruoho             {
   2845      1.1    jruoho                      ,  1,  //  skips
   2846      1.1    jruoho                 ACIN,   1,
   2847      1.1    jruoho                      ,  2,  //  skips
   2848      1.1    jruoho                 CHAG,   1,
   2849      1.1    jruoho                      ,  3,  //  skips
   2850      1.1    jruoho                      ,  7,  //  skips
   2851      1.1    jruoho                 ABAT,   1,
   2852      1.1    jruoho             }   //  IndexField
   2853      1.1    jruoho 
   2854      1.1    jruoho             Method (_PSR)
   2855      1.1    jruoho             {
   2856      1.1    jruoho                 Store (\_GPE.ACST, Local0)
   2857      1.1    jruoho                 Store (ACIN, Local1)
   2858      1.1    jruoho                 If (LNotEqual (\_GPE.ACST, Local1))
   2859      1.1    jruoho                 {
   2860      1.1    jruoho                     Store (Local1, \_GPE.ACST)
   2861      1.1    jruoho                     // This Notify is commented because it causes a
   2862      1.1    jruoho                     //  method error when running on a system without the
   2863      1.1    jruoho                     //  specific device.
   2864      1.1    jruoho                     // Notify (\_SB_.ACAD, 0)
   2865      1.1    jruoho                 }
   2866      1.1    jruoho                 Return (Local0)
   2867      1.1    jruoho             }   //  _PSR
   2868      1.1    jruoho 
   2869      1.1    jruoho             Method (_STA)
   2870      1.1    jruoho             {
   2871      1.1    jruoho                 Return (0x0F)
   2872      1.1    jruoho             }
   2873      1.1    jruoho 
   2874      1.1    jruoho             Method (_INI)
   2875      1.1    jruoho             {
   2876      1.1    jruoho                 Store (ACIN, \_GPE.ACST)
   2877      1.1    jruoho             }
   2878      1.1    jruoho         }   //  ACAD:   AC adapter device
   2879      1.1    jruoho 
   2880      1.1    jruoho         //  test implicit return from control method
   2881      1.1    jruoho         Method (DIS_, 1)
   2882      1.1    jruoho         {
   2883      1.1    jruoho             Store (Arg0, Local0)
   2884      1.1    jruoho         }
   2885      1.1    jruoho 
   2886      1.1    jruoho         Device (RTLV)
   2887      1.1    jruoho         {
   2888      1.1    jruoho             //  test implicit return inside nested if with explicit return of Lvalue
   2889      1.1    jruoho             Method (_DCK, 1)
   2890      1.1    jruoho             //  Arg0:   1 == dock, 0 == undock
   2891      1.1    jruoho             {
   2892      1.1    jruoho                 If (Arg0)
   2893      1.1    jruoho                 {   //  dock
   2894      1.1    jruoho                     Store (0x87, Local0)
   2895      1.1    jruoho 
   2896      1.1    jruoho                     If (Local0)
   2897      1.1    jruoho                     {
   2898      1.1    jruoho                         DIS_ (0x23)
   2899      1.1    jruoho                         Return (1)
   2900      1.1    jruoho                     }
   2901      1.1    jruoho 
   2902      1.1    jruoho                     Return (0)
   2903      1.1    jruoho                 }   //  dock
   2904      1.1    jruoho                 Else
   2905      1.1    jruoho                 {   //  undock
   2906      1.1    jruoho                     Store (Arg0, Local0)
   2907      1.1    jruoho 
   2908      1.1    jruoho                     If (Local0)
   2909      1.1    jruoho                     {
   2910      1.1    jruoho                         DIS_ (0x23)
   2911      1.1    jruoho                         Return (1)
   2912      1.1    jruoho                     }
   2913      1.1    jruoho 
   2914      1.1    jruoho                     Return (0)
   2915      1.1    jruoho                 }   //  undock
   2916      1.1    jruoho             }   //  _DCK control method
   2917      1.1    jruoho 
   2918      1.1    jruoho             Method (TEST)
   2919      1.1    jruoho             {
   2920      1.1    jruoho                 Store ("++++++++ RetLVal Test", Debug)
   2921      1.1    jruoho 
   2922      1.1    jruoho                 //  store _PSR return value into Local0
   2923      1.1    jruoho                 Store (\_SB_.ACAD._PSR, Local0)
   2924      1.1    jruoho 
   2925      1.1    jruoho                 //  save Local0 object type value into Local1
   2926      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   2927      1.1    jruoho 
   2928      1.1    jruoho                 //  validate Local0 is a Number
   2929      1.1    jruoho                 If (LNotEqual (Local1, 1))  //  Number/Integer type is 1
   2930      1.1    jruoho                 {
   2931      1.1    jruoho                     Return (1)      //  failure
   2932      1.1    jruoho                 }
   2933      1.1    jruoho 
   2934      1.1    jruoho                 //  test implicit return inside nested if with explicit return of Lvalue
   2935      1.1    jruoho                 Store (_DCK (1), Local2)
   2936      1.1    jruoho 
   2937      1.1    jruoho                 //  save Local2 object type value into Local3
   2938      1.1    jruoho                 Store (ObjectType (Local2), Local3)
   2939      1.1    jruoho 
   2940      1.1    jruoho                 //  validate Local2 is a Number
   2941      1.1    jruoho                 If (LNotEqual (Local3, 1))  //  Number/Integer type is 1
   2942      1.1    jruoho                 {
   2943      1.1    jruoho                     Return (2)      //  failure
   2944      1.1    jruoho                 }
   2945      1.1    jruoho 
   2946      1.1    jruoho                 If (LNotEqual (Local2, 1))
   2947      1.1    jruoho                 {
   2948      1.1    jruoho                     Return (3)      //  failure
   2949      1.1    jruoho                 }
   2950      1.1    jruoho 
   2951      1.1    jruoho                 Return (0)  //  success
   2952      1.1    jruoho             }   //  TEST
   2953      1.1    jruoho         }   //  RTLV
   2954      1.1    jruoho     }   //  _SB system bus
   2955      1.1    jruoho 
   2956      1.1    jruoho //
   2957      1.1    jruoho // test RetPkg.asl
   2958      1.1    jruoho //
   2959      1.1    jruoho //  Test ReturnOp(Package)
   2960      1.1    jruoho //      This is required to support _PRT on Dell Optiplex Workstations (e.g. GX1)
   2961      1.1    jruoho //
   2962      1.1    jruoho 
   2963      1.1    jruoho     Scope (\_SB)    //  System Bus
   2964      1.1    jruoho     {   //  _SB system bus
   2965      1.1    jruoho         Device(LNKA)
   2966      1.1    jruoho         {
   2967      1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2968      1.1    jruoho             Name (_UID, 1)
   2969      1.1    jruoho         }
   2970      1.1    jruoho         Device(LNKB)
   2971      1.1    jruoho         {
   2972      1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2973      1.1    jruoho             Name (_UID, 2)
   2974      1.1    jruoho         }
   2975      1.1    jruoho         Device(LNKC)
   2976      1.1    jruoho         {
   2977      1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2978      1.1    jruoho             Name (_UID, 3)
   2979      1.1    jruoho         }
   2980      1.1    jruoho         Device(LNKD)
   2981      1.1    jruoho         {
   2982      1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2983      1.1    jruoho             Name (_UID, 4)
   2984      1.1    jruoho         }
   2985      1.1    jruoho 
   2986      1.1    jruoho         Device (PCI1)
   2987      1.1    jruoho         {   //  PCI1:   Root PCI Bus
   2988      1.1    jruoho             Name (_HID, "PNP0A03")  //  Need _HID for root device (String format)
   2989      1.1    jruoho             Name (_ADR,0x00000000)
   2990      1.1    jruoho             Name (_CRS,0)
   2991      1.1    jruoho 
   2992      1.1    jruoho             Name (_PRT, Package ()
   2993      1.1    jruoho             {
   2994      1.1    jruoho                 Package () {0x0004ffff, 0, LNKA, 0},            //  Slot 1, INTA
   2995      1.1    jruoho                 Package () {0x0004ffff, 1, LNKB, 0},            //  Slot 1, INTB
   2996      1.1    jruoho                 Package () {0x0004ffff, 2, LNKC, 0},            //  Slot 1, INTC
   2997      1.1    jruoho                 Package () {0x0004ffff, 3, LNKD, 0},            //  Slot 1, INTD
   2998      1.1    jruoho                 Package () {0x0005ffff, 0, \_SB_.LNKB, 0},  //  Slot 2, INTA
   2999      1.1    jruoho                 Package () {0x0005ffff, 1, \_SB_.LNKC, 0},  //  Slot 2, INTB
   3000      1.1    jruoho                 Package () {0x0005ffff, 2, \_SB_.LNKD, 0},  //  Slot 2, INTC
   3001      1.1    jruoho                 Package () {0x0006ffff, 3, \_SB_.LNKA, 0},  //  Slot 2, INTD
   3002      1.1    jruoho                 Package () {0x0006ffff, 0, LNKC, 0},            //  Slot 3, INTA
   3003      1.1    jruoho                 Package () {0x0006ffff, 1, LNKD, 0},            //  Slot 3, INTB
   3004      1.1    jruoho                 Package () {0x0006ffff, 2, LNKA, 0},            //  Slot 3, INTC
   3005      1.1    jruoho                 Package () {0x0006ffff, 3, LNKB, 0},            //  Slot 3, INTD
   3006      1.1    jruoho             })
   3007      1.1    jruoho 
   3008      1.1    jruoho             Device (PX40)
   3009      1.1    jruoho             {   // Map f0 space, Start PX40
   3010      1.1    jruoho                 Name (_ADR,0x00070000)  //  Address+function.
   3011      1.1    jruoho             }
   3012      1.1    jruoho         }   //  PCI0:   Root PCI Bus
   3013      1.1    jruoho 
   3014      1.1    jruoho         Device (RETP)
   3015      1.1    jruoho         {
   3016      1.1    jruoho             Method (RPKG)
   3017      1.1    jruoho             {   //  RPKG: Return Package from local variable
   3018      1.1    jruoho 
   3019      1.1    jruoho                 //  store _PRT package into Local0
   3020      1.1    jruoho                 Store (\_SB_.PCI1._PRT, Local0)
   3021      1.1    jruoho 
   3022      1.1    jruoho                 //  return Local0 Package
   3023      1.1    jruoho                 Return (Local0)
   3024      1.1    jruoho             }   //  RPKG
   3025      1.1    jruoho 
   3026      1.1    jruoho             Method (TEST)
   3027      1.1    jruoho             {
   3028      1.1    jruoho                 Store ("++++++++ RetPkg Test", Debug)
   3029      1.1    jruoho 
   3030      1.1    jruoho                 //  store RPKG package return value into Local0
   3031      1.1    jruoho                 Store (RPKG, Local0)
   3032      1.1    jruoho 
   3033      1.1    jruoho                 //  save Local0 object type value into Local1
   3034      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   3035      1.1    jruoho 
   3036      1.1    jruoho                 //  validate Local0 is a Package
   3037      1.1    jruoho                 If (LNotEqual (Local1, 4))  //  Package type is 4
   3038      1.1    jruoho                     {   Return (1)  }   //  failure
   3039      1.1    jruoho                 Else
   3040      1.1    jruoho                     {   Return (0)  }   //  success
   3041      1.1    jruoho             }   //  TEST
   3042      1.1    jruoho         }   //  RETP
   3043      1.1    jruoho     } // _SB_
   3044      1.1    jruoho 
   3045      1.1    jruoho //
   3046      1.1    jruoho // test WhileRet.asl
   3047      1.1    jruoho //
   3048      1.1    jruoho //  WhileRet.asl tests a ReturnOp nested in a IfOp nested in a WhileOp.
   3049      1.1    jruoho //
   3050      1.1    jruoho     Device (WHLR)
   3051      1.1    jruoho     {
   3052      1.1    jruoho         Name (LCNT, 0)
   3053      1.1    jruoho         Method (WIR)
   3054      1.1    jruoho         {   //  WIR:    control method that returns inside of IfOp inside of WhileOp
   3055      1.1    jruoho             While (LLess (LCNT, 4))
   3056      1.1    jruoho             {
   3057      1.1    jruoho                     If (LEqual (LCNT, 2))
   3058      1.1    jruoho                     {
   3059      1.1    jruoho                         Return (0)
   3060      1.1    jruoho                     }
   3061      1.1    jruoho 
   3062      1.1    jruoho                 Increment (LCNT)
   3063      1.1    jruoho             }
   3064      1.1    jruoho 
   3065      1.1    jruoho             Return (LCNT)
   3066      1.1    jruoho         }   //  WIR:    control method that returns inside of IfOp inside of WhileOp
   3067      1.1    jruoho 
   3068      1.1    jruoho         Method (TEST)
   3069      1.1    jruoho         {
   3070      1.1    jruoho             Store ("++++++++ WhileRet Test", Debug)
   3071      1.1    jruoho 
   3072      1.1    jruoho             Store (WIR, Local0)
   3073      1.1    jruoho 
   3074      1.1    jruoho             Return (Local0)
   3075      1.1    jruoho         }   //  TEST
   3076      1.1    jruoho     }   //  WHLR
   3077      1.1    jruoho 
   3078      1.1    jruoho //
   3079      1.1    jruoho // test AndOrOp.asl
   3080      1.1    jruoho //
   3081      1.1    jruoho //This code tests the bitwise AndOp and OrOp Operator terms
   3082      1.1    jruoho //
   3083      1.1    jruoho //Syntax of Andop term
   3084      1.1    jruoho //And - Bitwise And
   3085      1.1    jruoho //AndTerm   := And(
   3086      1.1    jruoho //  Source1,    //TermArg=>Integer
   3087      1.1    jruoho //  Source2,    //TermArg=>Integer
   3088      1.1    jruoho //  Result  //Nothing | SuperName
   3089      1.1    jruoho //) => Integer
   3090      1.1    jruoho //Source1 and Source2 are evaluated as integer data types,
   3091      1.1    jruoho // a bit-wise AND is performed, and the result is optionally
   3092      1.1    jruoho //stored into Result.
   3093      1.1    jruoho //
   3094      1.1    jruoho //
   3095      1.1    jruoho //Syntax of OrOp
   3096      1.1    jruoho //Or - Bit-wise Or
   3097      1.1    jruoho //OrTerm    := Or(
   3098      1.1    jruoho //  Source1,    //TermArg=>Integer
   3099      1.1    jruoho //  Source2 //TermArg=>Integer
   3100      1.1    jruoho //  Result  //Nothing | SuperName
   3101      1.1    jruoho //) => Integer
   3102      1.1    jruoho //Source1 and Source2 are evaluated as integer data types,
   3103      1.1    jruoho // a bit-wide OR is performed, and the result is optionally
   3104      1.1    jruoho //stored in Result
   3105      1.1    jruoho //
   3106      1.1    jruoho     Device (ANDO)
   3107      1.1    jruoho     {
   3108      1.1    jruoho         OperationRegion (TMEM, SystemMemory, 0xC4, 0x02)
   3109      1.1    jruoho         Field (TMEM, ByteAcc, NoLock, Preserve)
   3110      1.1    jruoho         {
   3111      1.1    jruoho                 ,   3,
   3112      1.1    jruoho             TOUD,   13
   3113      1.1    jruoho         }
   3114      1.1    jruoho 
   3115      1.1    jruoho         //Create System Memory Operation Region and field overlays
   3116      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3117      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3118      1.1    jruoho         {
   3119      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3120      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3121      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3122      1.1    jruoho         }// Field(RAM)
   3123      1.1    jruoho 
   3124      1.1    jruoho 
   3125      1.1    jruoho         //And with Byte Data
   3126      1.1    jruoho         Name (BYT1, 0xff)
   3127      1.1    jruoho         Name (BYT2, 0xff)
   3128      1.1    jruoho         Name (BRSL, 0x00)
   3129      1.1    jruoho 
   3130      1.1    jruoho         //And with Word Data
   3131      1.1    jruoho         Name (WRD1, 0xffff)
   3132      1.1    jruoho         Name (WRD2, 0xffff)
   3133      1.1    jruoho         Name (WRSL, 0x0000)
   3134      1.1    jruoho 
   3135      1.1    jruoho         //And with DWord Data
   3136      1.1    jruoho         Name (DWD1, 0xffffffff)
   3137      1.1    jruoho         Name (DWD2, 0xffffffff)
   3138      1.1    jruoho         Name (DRSL, 0x00000000)
   3139      1.1    jruoho 
   3140      1.1    jruoho         Method (ANDP)
   3141      1.1    jruoho         {
   3142      1.1    jruoho             //Check with 1 And 1 on byte data
   3143      1.1    jruoho             And(BYT1, BYT2, BRSL)
   3144      1.1    jruoho             if(LNotEqual(BRSL,0xff))
   3145      1.1    jruoho             {Return(1)}
   3146      1.1    jruoho 
   3147      1.1    jruoho             //Check with 1 And 1 on Word data
   3148      1.1    jruoho             And(WRD1, WRD2, WRSL)
   3149      1.1    jruoho             if(LNotEqual(WRSL,0xffff))
   3150      1.1    jruoho             {
   3151      1.1    jruoho                 Return (1)      //  failure
   3152      1.1    jruoho             }
   3153      1.1    jruoho 
   3154      1.1    jruoho             //Check with 1 And 1 Dword
   3155      1.1    jruoho             And(DWD1, DWD2, DRSL)
   3156      1.1    jruoho             if(LNotEqual(DRSL,0xffffffff))
   3157      1.1    jruoho             {
   3158      1.1    jruoho                 Return (1)      //  failure
   3159      1.1    jruoho             }
   3160      1.1    jruoho 
   3161      1.1    jruoho             //Check with 0 And 0 on byte data
   3162      1.1    jruoho             Store(0x00,BYT1)
   3163      1.1    jruoho             Store(0x00,BYT2)
   3164      1.1    jruoho             Store(0x00,BRSL)
   3165      1.1    jruoho             And(BYT1, BYT2, BRSL)
   3166      1.1    jruoho             if(LNotEqual(BRSL,0x00))
   3167      1.1    jruoho             {
   3168      1.1    jruoho                 Return (1)      //  failure
   3169      1.1    jruoho             }
   3170      1.1    jruoho 
   3171      1.1    jruoho             //Check with 0 And 0 on Word data
   3172      1.1    jruoho             Store (0x0000,WRD1)
   3173      1.1    jruoho             Store (0x0000,WRD2)
   3174      1.1    jruoho             Store (0x0000,WRSL)
   3175      1.1    jruoho             And(WRD1, WRD2, WRSL)
   3176      1.1    jruoho             if(LNotEqual(WRSL,0x0000))
   3177      1.1    jruoho             {
   3178      1.1    jruoho                 Return (1)      //  failure
   3179      1.1    jruoho             }
   3180      1.1    jruoho 
   3181      1.1    jruoho             //Check with 0 And 0 Dword
   3182      1.1    jruoho             Store (0x00000000,DWD1)
   3183      1.1    jruoho             Store (0x00000000,DWD2)
   3184      1.1    jruoho             Store (0x00000000,DRSL)
   3185      1.1    jruoho             And(DWD1, DWD2, DRSL)
   3186      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   3187      1.1    jruoho             {
   3188      1.1    jruoho                 Return (1)      //  failure
   3189      1.1    jruoho             }
   3190      1.1    jruoho 
   3191      1.1    jruoho 
   3192      1.1    jruoho             //Check with 1 And 0 on byte data
   3193      1.1    jruoho             Store(0x55,BYT1)
   3194      1.1    jruoho             Store(0xAA,BYT2)
   3195      1.1    jruoho             Store(0x00,BRSL)
   3196      1.1    jruoho             And(BYT1, BYT2, BRSL)
   3197      1.1    jruoho             if(LNotEqual(BRSL,0x00))
   3198      1.1    jruoho             {
   3199      1.1    jruoho                 Return (1)      //  failure
   3200      1.1    jruoho             }
   3201      1.1    jruoho 
   3202      1.1    jruoho             //Check with 1 And 0 on Word data
   3203      1.1    jruoho             Store (0x5555,WRD1)
   3204      1.1    jruoho             Store (0xAAAA,WRD2)
   3205      1.1    jruoho             Store (0x0000,WRSL)
   3206      1.1    jruoho             And(WRD1, WRD2, WRSL)
   3207      1.1    jruoho             if(LNotEqual(WRSL,0x0000))
   3208      1.1    jruoho             {
   3209      1.1    jruoho                 Return (1)      //  failure
   3210      1.1    jruoho             }
   3211      1.1    jruoho 
   3212      1.1    jruoho             //Check with 1 And 0 on Dword
   3213      1.1    jruoho             Store (0x55555555,DWD1)
   3214      1.1    jruoho             Store (0xAAAAAAAA,DWD2)
   3215      1.1    jruoho             Store (0x00000000,DRSL)
   3216      1.1    jruoho             And(DWD1, DWD2, DRSL)
   3217      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   3218      1.1    jruoho             {
   3219      1.1    jruoho                 Return (1)      //  failure
   3220      1.1    jruoho             }
   3221      1.1    jruoho 
   3222      1.1    jruoho             Store (0x1FFF, TOUD)
   3223      1.1    jruoho             Store (TOUD, Local0)
   3224      1.1    jruoho             if(LNotEqual(Local0,0x1FFF))
   3225      1.1    jruoho             {
   3226      1.1    jruoho                 Return (1)      //  failure
   3227      1.1    jruoho             }
   3228      1.1    jruoho 
   3229      1.1    jruoho             //TBD- Do We need to check for system memory data also for each test case ??
   3230      1.1    jruoho 
   3231      1.1    jruoho             Return(0)
   3232      1.1    jruoho 
   3233      1.1    jruoho         }//ANDP
   3234      1.1    jruoho 
   3235      1.1    jruoho         Method (OROP)
   3236      1.1    jruoho         {
   3237      1.1    jruoho 
   3238      1.1    jruoho             //Check with 1 Ored with 1 on byte data
   3239      1.1    jruoho             Store(0xff,BYT1)
   3240      1.1    jruoho             Store(0xff,BYT2)
   3241      1.1    jruoho             Store(0x00,BRSL)
   3242      1.1    jruoho             Or(BYT1, BYT2, BRSL)
   3243      1.1    jruoho             if(LNotEqual(BRSL,0xff))
   3244      1.1    jruoho             {
   3245      1.1    jruoho                 Return (1)      //  failure
   3246      1.1    jruoho             }
   3247      1.1    jruoho 
   3248      1.1    jruoho 
   3249      1.1    jruoho             //Check with 1 Ored with 1 on Word data
   3250      1.1    jruoho             Store(0xffff,WRD1)
   3251      1.1    jruoho             Store(0xffff,WRD2)
   3252      1.1    jruoho             Store(0x0000,WRSL)
   3253      1.1    jruoho             Or(WRD1, WRD2, WRSL)
   3254      1.1    jruoho             if(LNotEqual(WRSL,0xffff))
   3255      1.1    jruoho             {
   3256      1.1    jruoho                 Return (1)      //  failure
   3257      1.1    jruoho             }
   3258      1.1    jruoho 
   3259      1.1    jruoho             //Check with 1 Ored with 1 on Dword data
   3260      1.1    jruoho             Store(0xffffffff,DWD1)
   3261      1.1    jruoho             Store(0xffffffff,DWD2)
   3262      1.1    jruoho             Store(0x00000000,DRSL)
   3263      1.1    jruoho             Or(DWD1, DWD2, DRSL)
   3264      1.1    jruoho             if(LNotEqual(DRSL,0xffffffff))
   3265      1.1    jruoho             {
   3266      1.1    jruoho                 Return (1)      //  failure
   3267      1.1    jruoho             }
   3268      1.1    jruoho 
   3269      1.1    jruoho             //Check with 0 Ored with 0 on byte data
   3270      1.1    jruoho             Store(0x00,BYT1)
   3271      1.1    jruoho             Store(0x00,BYT2)
   3272      1.1    jruoho             Store(0x00,BRSL)
   3273      1.1    jruoho             Or(BYT1, BYT2, BRSL)
   3274      1.1    jruoho             if(LNotEqual(BRSL,0x00))
   3275      1.1    jruoho             {
   3276      1.1    jruoho                 Return (1)      //  failure
   3277      1.1    jruoho             }
   3278      1.1    jruoho 
   3279      1.1    jruoho             //Check with 0 Ored with 0 on Word data
   3280      1.1    jruoho             Store (0x0000,WRD1)
   3281      1.1    jruoho             Store (0x0000,WRD2)
   3282      1.1    jruoho             Store (0x0000,WRSL)
   3283      1.1    jruoho             Or(WRD1, WRD2, WRSL)
   3284      1.1    jruoho             if(LNotEqual(WRSL,0x0000))
   3285      1.1    jruoho             {
   3286      1.1    jruoho                 Return (1)      //  failure
   3287      1.1    jruoho             }
   3288      1.1    jruoho 
   3289      1.1    jruoho             //Check with 0 Ored with  0 Dword data
   3290      1.1    jruoho             Store (0x00000000,DWD1)
   3291      1.1    jruoho             Store (0x00000000,DWD2)
   3292      1.1    jruoho             Store (0x00000000,DRSL)
   3293      1.1    jruoho             Or(DWD1, DWD2, DRSL)
   3294      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   3295      1.1    jruoho             {
   3296      1.1    jruoho                 Return (1)      //  failure
   3297      1.1    jruoho             }
   3298      1.1    jruoho 
   3299      1.1    jruoho 
   3300      1.1    jruoho             //Check with 1 Ored with 0 on byte data
   3301      1.1    jruoho             Store(0x55,BYT1)
   3302      1.1    jruoho             Store(0xAA,BYT2)
   3303      1.1    jruoho             Store(0x00,BRSL)
   3304      1.1    jruoho             Or(BYT1, BYT2, BRSL)
   3305      1.1    jruoho             if(LNotEqual(BRSL,0xff))
   3306      1.1    jruoho             {
   3307      1.1    jruoho                 Return (1)      //  failure
   3308      1.1    jruoho             }
   3309      1.1    jruoho 
   3310      1.1    jruoho             //Check with 1 Ored with 0 on Word data
   3311      1.1    jruoho             Store (0x5555,WRD1)
   3312      1.1    jruoho             Store (0xAAAA,WRD2)
   3313      1.1    jruoho             Store (0x0000,WRSL)
   3314      1.1    jruoho             Or(WRD1, WRD2, WRSL)
   3315      1.1    jruoho             if(LNotEqual(WRSL,0xffff))
   3316      1.1    jruoho             {
   3317      1.1    jruoho                 Return (1)      //  failure
   3318      1.1    jruoho             }
   3319      1.1    jruoho 
   3320      1.1    jruoho             //Check with 1 Ored with 0 on Dword data
   3321      1.1    jruoho             Store (0x55555555,DWD1)
   3322      1.1    jruoho             Store (0xAAAAAAAA,DWD2)
   3323      1.1    jruoho             Store (0x00000000,DRSL)
   3324      1.1    jruoho             Or(DWD1, DWD2, DRSL)
   3325      1.1    jruoho             if(LNotEqual(DRSL,0xffffffff))
   3326      1.1    jruoho             {
   3327      1.1    jruoho                 Return (1)      //  failure
   3328      1.1    jruoho             }
   3329      1.1    jruoho 
   3330      1.1    jruoho             //TBD - Do We need to check for system memory data also for each test case ??
   3331      1.1    jruoho 
   3332      1.1    jruoho             Return(0)
   3333      1.1    jruoho 
   3334      1.1    jruoho         }//OROP
   3335      1.1    jruoho 
   3336  1.1.1.3  christos         Method(TEST,, Serialized)
   3337      1.1    jruoho         {
   3338      1.1    jruoho             Store ("++++++++ AndOrOp Test", Debug)
   3339      1.1    jruoho 
   3340      1.1    jruoho             Name(RSLT,1)
   3341      1.1    jruoho             //Call Andop method
   3342      1.1    jruoho             Store(ANDP,RSLT)
   3343      1.1    jruoho             if(LEqual(RSLT,1))
   3344      1.1    jruoho             {
   3345      1.1    jruoho                 Return (RSLT)
   3346      1.1    jruoho             }
   3347      1.1    jruoho 
   3348      1.1    jruoho             //Call OrOp Method
   3349      1.1    jruoho             Store(OROP,RSLT)
   3350      1.1    jruoho             if(LEqual(RSLT,1))
   3351      1.1    jruoho             {
   3352      1.1    jruoho                 Return(RSLT)
   3353      1.1    jruoho             }
   3354      1.1    jruoho 
   3355      1.1    jruoho             //
   3356      1.1    jruoho             // Return original conditions to allow iterative execution
   3357      1.1    jruoho             //
   3358      1.1    jruoho             Store(0xff,BYT1)
   3359      1.1    jruoho             Store(0xff,BYT2)
   3360      1.1    jruoho             Store(0x00,BRSL)
   3361      1.1    jruoho             Store (0xffff,WRD1)
   3362      1.1    jruoho             Store (0xffff,WRD2)
   3363      1.1    jruoho             Store (0x0000,WRSL)
   3364      1.1    jruoho             Store (0xffffffff,DWD1)
   3365      1.1    jruoho             Store (0xffffffff,DWD2)
   3366      1.1    jruoho             Store (0x00000000,DRSL)
   3367      1.1    jruoho 
   3368      1.1    jruoho             Return(0)
   3369      1.1    jruoho         }   //TEST
   3370      1.1    jruoho     }   //ANDO
   3371      1.1    jruoho 
   3372      1.1    jruoho //
   3373      1.1    jruoho // test BreakPnt.asl
   3374      1.1    jruoho //
   3375      1.1    jruoho // This code tests the BreakPoint opcode term. The syntax of BreakPoint Term is
   3376      1.1    jruoho // BreakPointTerm    := BreakPoint
   3377      1.1    jruoho // Used for debugging, the Breakpoint opcode stops the execution and enters the AML debugger.
   3378      1.1    jruoho // In the non-debug version of the interpreter, BreakPoint is equivalent to Noop.
   3379      1.1    jruoho //
   3380      1.1    jruoho     Device (BRKP)
   3381      1.1    jruoho     {
   3382      1.1    jruoho         Name(CNT0,0)
   3383      1.1    jruoho 
   3384      1.1    jruoho         Method (BK1)
   3385      1.1    jruoho         {
   3386      1.1    jruoho             BreakPoint
   3387      1.1    jruoho             Return(0)
   3388      1.1    jruoho         }
   3389      1.1    jruoho 
   3390      1.1    jruoho         Method (TEST)
   3391      1.1    jruoho         {
   3392      1.1    jruoho             Store ("++++++++ BreakPnt Test", Debug)
   3393      1.1    jruoho 
   3394      1.1    jruoho             Store(0,CNT0)
   3395      1.1    jruoho 
   3396      1.1    jruoho             //Check BreakPoint statement
   3397      1.1    jruoho             While(LLess(CNT0,10))
   3398      1.1    jruoho             {
   3399      1.1    jruoho                 Increment(CNT0)
   3400      1.1    jruoho             }
   3401      1.1    jruoho 
   3402      1.1    jruoho             //Check the BreakPoint statement
   3403      1.1    jruoho             If(LEqual(CNT0,10))
   3404      1.1    jruoho             {
   3405      1.1    jruoho     //            BreakPoint
   3406      1.1    jruoho                 Return(0)
   3407      1.1    jruoho             }
   3408      1.1    jruoho 
   3409      1.1    jruoho             //failed
   3410      1.1    jruoho             Return(1)
   3411      1.1    jruoho         }
   3412      1.1    jruoho     }
   3413      1.1    jruoho 
   3414      1.1    jruoho //
   3415      1.1    jruoho // test AddSubOp.asl
   3416      1.1    jruoho //
   3417      1.1    jruoho     Device (ADSU)
   3418      1.1    jruoho     {
   3419      1.1    jruoho         //  create System Memory Operation Region and field overlays
   3420      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3421      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3422      1.1    jruoho         {
   3423      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3424      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3425      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3426      1.1    jruoho         }   //  Field(RAM)
   3427      1.1    jruoho 
   3428  1.1.1.3  christos         Method (TEST,, Serialized)
   3429      1.1    jruoho         {
   3430      1.1    jruoho             Store ("++++++++ AddSubOp Test", Debug)
   3431      1.1    jruoho 
   3432      1.1    jruoho             Name (DWRD, 0x12345678)
   3433      1.1    jruoho             Name (WRD, 0x1234)
   3434      1.1    jruoho             Name (BYT, 0x12)
   3435      1.1    jruoho 
   3436      1.1    jruoho             //  Test AddOp with DWORD data
   3437      1.1    jruoho             Store (0x12345678, DWRD)
   3438      1.1    jruoho             Add (DWRD, 7, DWRD)
   3439      1.1    jruoho             If (LNotEqual (DWRD, 0x1234567F))
   3440      1.1    jruoho                 {   Return (DWRD)   }
   3441      1.1    jruoho 
   3442      1.1    jruoho             //  Test AddOp with WORD data
   3443      1.1    jruoho             Add (WRD, 5, WRD)
   3444      1.1    jruoho             If (LNotEqual (WRD, 0x1239))
   3445      1.1    jruoho                 {   Return (WRD)    }
   3446      1.1    jruoho 
   3447      1.1    jruoho             //  Test AddOp with BYTE data
   3448      1.1    jruoho             Add (BYT, 3, BYT)
   3449      1.1    jruoho             If (LNotEqual (BYT, 0x15))
   3450      1.1    jruoho                 {   Return (BYT)    }
   3451      1.1    jruoho 
   3452      1.1    jruoho             //  Test SubtractOp with DWORD data
   3453      1.1    jruoho             Subtract (DWRD, 7, DWRD)
   3454      1.1    jruoho             If (LNotEqual (DWRD, 0x12345678))
   3455      1.1    jruoho                 {   Return (DWRD)   }
   3456      1.1    jruoho 
   3457      1.1    jruoho             //  Test SubtractOp with WORD data
   3458      1.1    jruoho             Subtract (WRD, 3, WRD)
   3459      1.1    jruoho             If (LNotEqual (WRD, 0x1236))
   3460      1.1    jruoho                 {   Return (WRD)    }
   3461      1.1    jruoho 
   3462      1.1    jruoho             //  Test SubtractOp with BYTE data
   3463      1.1    jruoho             Subtract (BYT, 3, BYT)
   3464      1.1    jruoho             If (LNotEqual (BYT, 0x12))
   3465      1.1    jruoho                 {   Return (BYT)    }
   3466      1.1    jruoho 
   3467      1.1    jruoho 
   3468      1.1    jruoho             //  test AddOp with DWORD SystemMemory OpRegion
   3469      1.1    jruoho             Store (0x01234567, SMDW)
   3470      1.1    jruoho             Add (SMDW, 8, SMDW)
   3471      1.1    jruoho             If (LNotEqual (SMDW, 0x0123456F))
   3472      1.1    jruoho                 {   Return (SMDW)   }
   3473      1.1    jruoho 
   3474      1.1    jruoho             //  test SubtractOp with DWORD SystemMemory OpRegion
   3475      1.1    jruoho             Subtract (SMDW, 7, SMDW)
   3476      1.1    jruoho             If (LNotEqual (SMDW, 0x01234568))
   3477      1.1    jruoho                 {   Return (SMDW)   }
   3478      1.1    jruoho 
   3479      1.1    jruoho 
   3480      1.1    jruoho             //  test AddOp with WORD SystemMemory OpRegion
   3481      1.1    jruoho             Store (0x0123, SMWD)
   3482      1.1    jruoho             Add (SMWD, 6, SMWD)
   3483      1.1    jruoho             If (LNotEqual (SMWD, 0x0129))
   3484      1.1    jruoho                 {   Return (SMWD)   }
   3485      1.1    jruoho 
   3486      1.1    jruoho             //  test SubtractOp with WORD SystemMemory OpRegion
   3487      1.1    jruoho             Subtract (SMWD, 5, SMWD)
   3488      1.1    jruoho             If (LNotEqual (SMWD, 0x0124))
   3489      1.1    jruoho                 {   Return (SMWD)   }
   3490      1.1    jruoho 
   3491      1.1    jruoho 
   3492      1.1    jruoho             //  test AddOp with BYTE SystemMemory OpRegion
   3493      1.1    jruoho             Store (0x01, SMBY)
   3494      1.1    jruoho             Add (SMBY, 4, SMBY)
   3495      1.1    jruoho             If (LNotEqual (SMBY, 0x05))
   3496      1.1    jruoho                 {   Return (SMBY)   }
   3497      1.1    jruoho 
   3498      1.1    jruoho             //  test SubtractOp with BYTE SystemMemory OpRegion
   3499      1.1    jruoho             Subtract (SMBY, 3, SMBY)
   3500      1.1    jruoho             If (LNotEqual (SMBY, 0x02))
   3501      1.1    jruoho                 {   Return (SMBY)   }
   3502      1.1    jruoho 
   3503      1.1    jruoho             Return (0)
   3504      1.1    jruoho         }   //  TEST
   3505      1.1    jruoho     }   //  ADSU
   3506      1.1    jruoho 
   3507      1.1    jruoho //
   3508      1.1    jruoho // test IncDecOp.asl
   3509      1.1    jruoho //
   3510      1.1    jruoho     Device (INDC)
   3511      1.1    jruoho     {
   3512      1.1    jruoho         //  create System Memory Operation Region and field overlays
   3513      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3514      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3515      1.1    jruoho         {
   3516      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3517      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3518      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3519      1.1    jruoho         }   //  Field(RAM)
   3520      1.1    jruoho 
   3521  1.1.1.3  christos         Method (TEST,, Serialized)
   3522      1.1    jruoho         {
   3523      1.1    jruoho             Store ("++++++++ IncDecOp Test", Debug)
   3524      1.1    jruoho 
   3525      1.1    jruoho             Name (DWRD, 0x12345678)
   3526      1.1    jruoho             Name (WRD, 0x1234)
   3527      1.1    jruoho             Name (BYT, 0x12)
   3528      1.1    jruoho 
   3529      1.1    jruoho             //  Test IncrementOp with DWORD data
   3530      1.1    jruoho             Store (0x12345678, DWRD)
   3531      1.1    jruoho             Increment (DWRD)
   3532      1.1    jruoho             If (LNotEqual (DWRD, 0x12345679))
   3533      1.1    jruoho                 {   Return (DWRD)   }
   3534      1.1    jruoho 
   3535      1.1    jruoho             //  Test IncrementOp with WORD data
   3536      1.1    jruoho             Increment (WRD)
   3537      1.1    jruoho             If (LNotEqual (WRD, 0x1235))
   3538      1.1    jruoho                 {   Return (WRD)    }
   3539      1.1    jruoho 
   3540      1.1    jruoho             //  Test IncrementOp with BYTE data
   3541      1.1    jruoho             Increment (BYT)
   3542      1.1    jruoho             If (LNotEqual (BYT, 0x13))
   3543      1.1    jruoho                 {   Return (BYT)    }
   3544      1.1    jruoho 
   3545      1.1    jruoho             //  Test DecrementOp with DWORD data
   3546      1.1    jruoho             Decrement (DWRD)
   3547      1.1    jruoho             If (LNotEqual (DWRD, 0x12345678))
   3548      1.1    jruoho                 {   Return (DWRD)   }
   3549      1.1    jruoho 
   3550      1.1    jruoho             //  Test DecrementOp with WORD data
   3551      1.1    jruoho             Decrement (WRD)
   3552      1.1    jruoho             If (LNotEqual (WRD, 0x1234))
   3553      1.1    jruoho                 {   Return (WRD)    }
   3554      1.1    jruoho 
   3555      1.1    jruoho             //  Test DecrementOp with BYTE data
   3556      1.1    jruoho             Decrement (BYT)
   3557      1.1    jruoho             If (LNotEqual (BYT, 0x12))
   3558      1.1    jruoho                 {   Return (BYT)    }
   3559      1.1    jruoho 
   3560      1.1    jruoho 
   3561      1.1    jruoho             //  test IncrementOp with DWORD SystemMemory OpRegion
   3562      1.1    jruoho             Store (0x01234567, SMDW)
   3563      1.1    jruoho             Increment (SMDW)
   3564      1.1    jruoho             If (LNotEqual (SMDW, 0x01234568))
   3565      1.1    jruoho                 {   Return (SMDW)   }
   3566      1.1    jruoho 
   3567      1.1    jruoho             //  test DecrementOp with DWORD SystemMemory OpRegion
   3568      1.1    jruoho             Decrement (SMDW)
   3569      1.1    jruoho             If (LNotEqual (SMDW, 0x01234567))
   3570      1.1    jruoho                 {   Return (SMDW)   }
   3571      1.1    jruoho 
   3572      1.1    jruoho 
   3573      1.1    jruoho             //  test IncrementOp with WORD SystemMemory OpRegion
   3574      1.1    jruoho             Store (0x0123, SMWD)
   3575      1.1    jruoho             Increment (SMWD)
   3576      1.1    jruoho             If (LNotEqual (SMWD, 0x0124))
   3577      1.1    jruoho                 {   Return (SMWD)   }
   3578      1.1    jruoho 
   3579      1.1    jruoho             //  test DecrementOp with WORD SystemMemory OpRegion
   3580      1.1    jruoho             Decrement (SMWD)
   3581      1.1    jruoho             If (LNotEqual (SMWD, 0x0123))
   3582      1.1    jruoho                 {   Return (SMWD)   }
   3583      1.1    jruoho 
   3584      1.1    jruoho 
   3585      1.1    jruoho             //  test IncrementOp with BYTE SystemMemory OpRegion
   3586      1.1    jruoho             Store (0x01, SMBY)
   3587      1.1    jruoho             Increment (SMBY)
   3588      1.1    jruoho             If (LNotEqual (SMBY, 0x02))
   3589      1.1    jruoho                 {   Return (SMBY)   }
   3590      1.1    jruoho 
   3591      1.1    jruoho             //  test DecrementOp with BYTE SystemMemory OpRegion
   3592      1.1    jruoho             Decrement (SMBY)
   3593      1.1    jruoho             If (LNotEqual (SMBY, 0x01))
   3594      1.1    jruoho                 {   Return (SMBY)   }
   3595      1.1    jruoho 
   3596      1.1    jruoho             Return (0)
   3597      1.1    jruoho         }   //  TEST
   3598      1.1    jruoho     }   //  INDC
   3599      1.1    jruoho 
   3600      1.1    jruoho //
   3601      1.1    jruoho // test LOps.asl
   3602      1.1    jruoho //
   3603      1.1    jruoho //This source tests all the logical operators. Logical operators in ASL are as follows.
   3604      1.1    jruoho //LAnd, LEqual, LGreater, LLess, LNot, LNotEqual, LOr.
   3605      1.1    jruoho // Success will return 0 and failure will return a non zero number. Check the source code for
   3606      1.1    jruoho // non zero number to find where the test failed
   3607      1.1    jruoho 
   3608      1.1    jruoho     Device (LOPS)
   3609      1.1    jruoho     {
   3610      1.1    jruoho         //Create System Memory Operation Region and field overlays
   3611      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3612      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3613      1.1    jruoho         {
   3614      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3615      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3616      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3617      1.1    jruoho         }// Field(RAM)
   3618      1.1    jruoho 
   3619      1.1    jruoho         //And with Byte Data
   3620      1.1    jruoho         Name (BYT1, 0xff)
   3621      1.1    jruoho         Name (BYT2, 0xff)
   3622      1.1    jruoho         Name (BRSL, 0x00)
   3623      1.1    jruoho 
   3624      1.1    jruoho         //And with Word Data
   3625      1.1    jruoho         Name (WRD1, 0xffff)
   3626      1.1    jruoho         Name (WRD2, 0xffff)
   3627      1.1    jruoho         Name (WRSL, 0x0000)
   3628      1.1    jruoho 
   3629      1.1    jruoho         //And with DWord Data
   3630      1.1    jruoho         Name (DWD1, 0xffffffff)
   3631      1.1    jruoho         Name (DWD2, 0xffffffff)
   3632      1.1    jruoho         Name (DRSL, 0x00000000)
   3633      1.1    jruoho 
   3634      1.1    jruoho         Name(RSLT,1)
   3635      1.1    jruoho 
   3636      1.1    jruoho         Method (ANDL,2) // Test Logical And
   3637      1.1    jruoho         {
   3638      1.1    jruoho             //test with the arguments passed
   3639      1.1    jruoho             if(LEqual(Arg0,Arg1))
   3640      1.1    jruoho             { Store(LAnd(Arg0,Arg1),RSLT)
   3641      1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3642      1.1    jruoho                 {Return(11)}
   3643      1.1    jruoho             }
   3644      1.1    jruoho 
   3645      1.1    jruoho             //test with he locals
   3646      1.1    jruoho             Store(Arg0,Local0)
   3647      1.1    jruoho             Store(Arg1,Local1)
   3648      1.1    jruoho 
   3649      1.1    jruoho             if(LEqual(Local0,Local1))
   3650      1.1    jruoho             {
   3651      1.1    jruoho                 Store(LAnd(Local0,Local1),RSLT)
   3652      1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3653      1.1    jruoho                     {Return(12)}
   3654      1.1    jruoho             }
   3655      1.1    jruoho 
   3656      1.1    jruoho             //test with BYTE data
   3657      1.1    jruoho             if(LEqual(BYT1,BYT2))
   3658      1.1    jruoho             { Store(LAnd(BYT1,BYT2),BRSL)
   3659      1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3660      1.1    jruoho                 {Return(13)}
   3661      1.1    jruoho             }
   3662      1.1    jruoho 
   3663      1.1    jruoho             //test with WORD data
   3664      1.1    jruoho             if(LEqual(WRD1,WRD2))
   3665      1.1    jruoho             { Store(LAnd(WRD1,WRD2),WRSL)
   3666      1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3667      1.1    jruoho                 {Return(14)}
   3668      1.1    jruoho             }
   3669      1.1    jruoho 
   3670      1.1    jruoho             //test with DWORD data
   3671      1.1    jruoho             if(LEqual(DWD1,DWD2))
   3672      1.1    jruoho             { Store(LAnd(DWD1,DWD2),DRSL)
   3673      1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3674      1.1    jruoho                 {Return(15)}
   3675      1.1    jruoho             }
   3676      1.1    jruoho 
   3677      1.1    jruoho             //Test for system memory data for each test case.
   3678      1.1    jruoho 
   3679      1.1    jruoho                 Store(0xff,BYT1)
   3680      1.1    jruoho                 Store(0xff,SMBY)
   3681      1.1    jruoho                 Store(0x00,BRSL)
   3682      1.1    jruoho 
   3683      1.1    jruoho             //test with BYTE system memory data
   3684      1.1    jruoho             if(LEqual(BYT1,SMBY))
   3685      1.1    jruoho             { Store(LAnd(BYT1,SMBY),BRSL)
   3686      1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3687      1.1    jruoho                 {Return(16)}
   3688      1.1    jruoho             }
   3689      1.1    jruoho 
   3690      1.1    jruoho             Store (0xffff,WRD1)
   3691      1.1    jruoho             Store(0xffff,SMWD)
   3692      1.1    jruoho             Store(0x0000,WRSL)
   3693      1.1    jruoho             //test with WORD system memory data
   3694      1.1    jruoho             if(LEqual(WRD1,SMWD))
   3695      1.1    jruoho             { Store(LAnd(WRD1,SMWD),WRSL)
   3696      1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3697      1.1    jruoho                 {Return(17)}
   3698      1.1    jruoho             }
   3699      1.1    jruoho 
   3700      1.1    jruoho             Store(0x000000,DRSL)
   3701      1.1    jruoho             Store (0xffffff,DWD1)
   3702      1.1    jruoho             Store(0xffffff,SMDW)
   3703      1.1    jruoho 
   3704      1.1    jruoho             //test with DWORD system memory data
   3705      1.1    jruoho             if(LEqual(DWD1,SMDW))
   3706      1.1    jruoho             { Store(LAnd(DWD1,SMDW),DRSL)
   3707      1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3708      1.1    jruoho                 {Return(18)}
   3709      1.1    jruoho             }
   3710      1.1    jruoho 
   3711      1.1    jruoho             Return(0)
   3712      1.1    jruoho 
   3713      1.1    jruoho         }//ANDL
   3714      1.1    jruoho 
   3715      1.1    jruoho         //Test the LOr Operator
   3716      1.1    jruoho 
   3717      1.1    jruoho         Method (ORL_,2)
   3718      1.1    jruoho         {//ORL_
   3719      1.1    jruoho 
   3720      1.1    jruoho             //test with the arguments passed
   3721      1.1    jruoho             if(LEqual(Arg0,Arg1))
   3722      1.1    jruoho             {
   3723      1.1    jruoho                 Store(LOr(Arg0,Arg1),RSLT)
   3724      1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3725      1.1    jruoho                 {
   3726      1.1    jruoho                     Return(21)
   3727      1.1    jruoho                 }
   3728      1.1    jruoho             }
   3729      1.1    jruoho 
   3730      1.1    jruoho             //test with he locals
   3731      1.1    jruoho             Store(Arg0,Local0)
   3732      1.1    jruoho             Store(Arg1,Local1)
   3733      1.1    jruoho 
   3734      1.1    jruoho             if(LEqual(Local0,Local1))
   3735      1.1    jruoho             {
   3736      1.1    jruoho                 Store(LOr(Local0,Local1),RSLT)
   3737      1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3738      1.1    jruoho                     {Return(22)}
   3739      1.1    jruoho             }
   3740      1.1    jruoho 
   3741      1.1    jruoho             //Check with 1 LOred with 0 on byte data
   3742      1.1    jruoho             Store(0xff,BYT1)
   3743      1.1    jruoho             Store(0x00,BYT2)
   3744      1.1    jruoho             Store(0x00,BRSL)
   3745      1.1    jruoho 
   3746      1.1    jruoho             if(LNotEqual(BYT1, BYT2))
   3747      1.1    jruoho             {
   3748      1.1    jruoho                 Store(LOr(BYT1, BYT2), BRSL)
   3749      1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3750      1.1    jruoho                 {Return(23)}
   3751      1.1    jruoho             }
   3752      1.1    jruoho 
   3753      1.1    jruoho             //Check with 1 LOred with 0 on WORD data
   3754      1.1    jruoho             Store(0xffff,WRD1)
   3755      1.1    jruoho             Store(0x0000,WRD2)
   3756      1.1    jruoho             Store(0x0000,WRSL)
   3757      1.1    jruoho 
   3758      1.1    jruoho             if(LNotEqual(WRD1, WRD2))
   3759      1.1    jruoho             {
   3760      1.1    jruoho                 Store(LOr(WRD1, WRD2), WRSL)
   3761      1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3762      1.1    jruoho                 {Return(24)}
   3763      1.1    jruoho             }
   3764      1.1    jruoho 
   3765      1.1    jruoho             //Check with 1 LOred with 0 on DWORD data
   3766      1.1    jruoho             Store(0xffffffff,DWD1)
   3767      1.1    jruoho             Store(0x00000000,DWD2)
   3768      1.1    jruoho             Store(0x00000000,DRSL)
   3769      1.1    jruoho 
   3770      1.1    jruoho             if(LNotEqual(DWD1, DWD2))
   3771      1.1    jruoho             {
   3772      1.1    jruoho                 Store(LOr(DWD1, DWD2), DRSL)
   3773      1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3774      1.1    jruoho                 {Return(25)}
   3775      1.1    jruoho             }
   3776      1.1    jruoho 
   3777      1.1    jruoho             Store(0x00,BYT1)
   3778      1.1    jruoho             Store(0xff,SMBY)
   3779      1.1    jruoho             Store(0x00,BRSL)
   3780      1.1    jruoho 
   3781      1.1    jruoho             //test with BYTE system memory data
   3782      1.1    jruoho             if(LEqual(BYT1,SMBY))
   3783      1.1    jruoho             { Store(LOr(BYT1,SMBY),BRSL)
   3784      1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3785      1.1    jruoho                 {Return(26)}
   3786      1.1    jruoho             }
   3787      1.1    jruoho 
   3788      1.1    jruoho             Store (0x0000,WRD1)
   3789      1.1    jruoho             Store(0xffff,SMWD)
   3790      1.1    jruoho             Store(0x0000,WRSL)
   3791      1.1    jruoho 
   3792      1.1    jruoho             //test with WORD system memory data
   3793      1.1    jruoho             if(LEqual(WRD1,SMWD))
   3794      1.1    jruoho             { Store(LOr(WRD1,SMWD),WRSL)
   3795      1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3796      1.1    jruoho                 {Return(27)}
   3797      1.1    jruoho             }
   3798      1.1    jruoho 
   3799      1.1    jruoho 
   3800      1.1    jruoho             Store(0x00000000,DWD1)
   3801      1.1    jruoho             Store(0xffffffff,SMDW)
   3802      1.1    jruoho             Store(0x00000000,DRSL)
   3803      1.1    jruoho 
   3804      1.1    jruoho             //test with DWORD system memory data
   3805      1.1    jruoho             if(LEqual(DWD1,SMDW))
   3806      1.1    jruoho             { Store(LAnd(DWD1,SMDW),DRSL)
   3807      1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3808      1.1    jruoho                 {Return(28)}
   3809      1.1    jruoho             }
   3810      1.1    jruoho             Return(0)
   3811      1.1    jruoho 
   3812      1.1    jruoho         }//ORL_
   3813      1.1    jruoho 
   3814      1.1    jruoho         //This method tests LGreater and LNot operator
   3815      1.1    jruoho         Method(LSGR,2)
   3816      1.1    jruoho         {//LSGR
   3817      1.1    jruoho 
   3818      1.1    jruoho             //Test on arguements passed
   3819      1.1    jruoho 
   3820      1.1    jruoho             //in test data, Arg1 > Arg0
   3821      1.1    jruoho             if(LEqual(Ones,LNot(LGreater(Arg1,Arg0))))
   3822      1.1    jruoho             {Return(31)}
   3823      1.1    jruoho 
   3824      1.1    jruoho             //test LLessEqual
   3825      1.1    jruoho             if(LEqual(Ones,LNot(LGreaterEqual(Arg1,Arg0))))
   3826      1.1    jruoho             {Return(32)}
   3827      1.1    jruoho 
   3828      1.1    jruoho             if(LEqual(Ones,LLess(Arg1,Arg0)))
   3829      1.1    jruoho             {Return(33)}
   3830      1.1    jruoho 
   3831      1.1    jruoho             //test LLessEqual
   3832      1.1    jruoho             if(LEqual(Ones,LLessEqual(Arg1,Arg0)))
   3833      1.1    jruoho             {Return(34)}
   3834      1.1    jruoho 
   3835      1.1    jruoho             Store(Arg0,Local0)
   3836      1.1    jruoho             Store(Arg1,Local1)
   3837      1.1    jruoho 
   3838      1.1    jruoho             //test with the locals
   3839      1.1    jruoho             if(LNot(LGreater(Local1,Local0)))
   3840      1.1    jruoho                 {Return(35)}
   3841      1.1    jruoho 
   3842      1.1    jruoho             //test on Byte data
   3843      1.1    jruoho             Store(0x12,BYT1)
   3844      1.1    jruoho             Store(0x21,BYT2)
   3845      1.1    jruoho 
   3846      1.1    jruoho             if(LNot(LGreater(BYT2,BYT1)))
   3847      1.1    jruoho                 {Return(36)}
   3848      1.1    jruoho 
   3849      1.1    jruoho             if(LNot(LLess(BYT1,BYT2)))
   3850      1.1    jruoho                 {Return(37)}
   3851      1.1    jruoho 
   3852      1.1    jruoho             //test LGreaterEqual with byte data
   3853      1.1    jruoho             if(LNot(LGreaterEqual(BYT2,BYT1)))
   3854      1.1    jruoho                 {Return(38)}
   3855      1.1    jruoho 
   3856      1.1    jruoho             //test LLessEqual byte data
   3857      1.1    jruoho             if(LNot(LLessEqual(BYT1,BYT2)))
   3858      1.1    jruoho                 {Return(39)}
   3859      1.1    jruoho 
   3860      1.1    jruoho 
   3861      1.1    jruoho             //test on Word data
   3862      1.1    jruoho             Store(0x1212,WRD1)
   3863      1.1    jruoho             Store(0x2121,WRD2)
   3864      1.1    jruoho 
   3865      1.1    jruoho             if(LNot(LGreater(WRD2,WRD1)))
   3866      1.1    jruoho                 {Return(310)}
   3867      1.1    jruoho 
   3868      1.1    jruoho             if(LNot(LLess(WRD1,WRD2)))
   3869      1.1    jruoho                 {Return(311)}
   3870      1.1    jruoho 
   3871      1.1    jruoho             //Test LGreaterEqual with Word Data
   3872      1.1    jruoho             if(LNot(LGreaterEqual(WRD2,WRD1)))
   3873      1.1    jruoho                 {Return(312)}
   3874      1.1    jruoho 
   3875      1.1    jruoho 
   3876      1.1    jruoho             //Test LLessEqual with Word Data
   3877      1.1    jruoho             if(LNot(LLessEqual(WRD1,WRD2)))
   3878      1.1    jruoho                 {Return(313)}
   3879      1.1    jruoho 
   3880      1.1    jruoho             //test on DWord data
   3881      1.1    jruoho             Store(0x12121212,DWD1)
   3882      1.1    jruoho             Store(0x21212121,DWD2)
   3883      1.1    jruoho 
   3884      1.1    jruoho             if(LNot(LGreater(DWD2,DWD1)))
   3885      1.1    jruoho                 {Return(314)}
   3886      1.1    jruoho 
   3887      1.1    jruoho             if(LNot(LLess(DWD1,DWD2)))
   3888      1.1    jruoho                 {Return(315)}
   3889      1.1    jruoho 
   3890      1.1    jruoho 
   3891      1.1    jruoho             //Test LGreaterEqual with Dword
   3892      1.1    jruoho             if(LNot(LGreaterEqual(DWD2,DWD1)))
   3893      1.1    jruoho                 {Return(316)}
   3894      1.1    jruoho 
   3895      1.1    jruoho             //Test LLessEqual DWord
   3896      1.1    jruoho             if(LNot(LLessEqual(DWD1,DWD2)))
   3897      1.1    jruoho                 {Return(317)}
   3898      1.1    jruoho 
   3899      1.1    jruoho             Return(0)
   3900      1.1    jruoho         }//LSGR
   3901      1.1    jruoho 
   3902      1.1    jruoho         //The test method
   3903      1.1    jruoho         Method(TEST)
   3904      1.1    jruoho         {
   3905      1.1    jruoho             Store ("++++++++ LOps Test", Debug)
   3906      1.1    jruoho 
   3907      1.1    jruoho             Store(0,RSLT)
   3908      1.1    jruoho             //Call LAndOp method
   3909      1.1    jruoho             Store(ANDL(2,2),RSLT)
   3910      1.1    jruoho             if(LNotEqual(RSLT,0))
   3911      1.1    jruoho              {Return(RSLT)}
   3912      1.1    jruoho 
   3913      1.1    jruoho             //Call LOrOp Method
   3914      1.1    jruoho             Store(ORL_(5,5),RSLT)
   3915      1.1    jruoho             if(LNotEqual(RSLT,0))
   3916      1.1    jruoho             {Return(RSLT)}
   3917      1.1    jruoho 
   3918      1.1    jruoho             //Call LSGR Method
   3919      1.1    jruoho             Store(LSGR(5,7),RSLT)
   3920      1.1    jruoho             if(LNotEqual(RSLT,0))
   3921      1.1    jruoho             {Return(RSLT)}
   3922      1.1    jruoho 
   3923      1.1    jruoho             Return(0)
   3924      1.1    jruoho         }//TEST
   3925      1.1    jruoho     }//LOPS
   3926      1.1    jruoho 
   3927      1.1    jruoho //
   3928      1.1    jruoho // test FdSetOps.asl
   3929      1.1    jruoho //
   3930      1.1    jruoho //  FindSetLeftBit - Find Set Left Bit
   3931      1.1    jruoho //  FindSetLeftBitTerm  := FindSetLeftBit
   3932      1.1    jruoho //  (   Source, //TermArg=>Integer
   3933      1.1    jruoho //      Result  //Nothing | SuperName
   3934      1.1    jruoho //  ) => Integer
   3935      1.1    jruoho //  Source is evaluated as integer data type, and the one-based bit location of
   3936      1.1    jruoho //  the first MSb (most significant set bit) is optionally stored into Result.
   3937      1.1    jruoho //  The result of 0 means no bit was set, 1 means the left-most bit set is the
   3938      1.1    jruoho //  first bit, 2 means the left-most bit set is the second bit, and so on.
   3939      1.1    jruoho //  FindSetRightBit - Find Set Right Bit
   3940      1.1    jruoho 
   3941      1.1    jruoho //  FindSetRightBitTerm := FindSetRightBit
   3942      1.1    jruoho //  (   Source, //TermArg=>Integer
   3943      1.1    jruoho //      Result  //Nothing | SuperName
   3944      1.1    jruoho //  ) => Integer
   3945      1.1    jruoho //  Source is evaluated as integer data type, and the one-based bit location of
   3946      1.1    jruoho //  the most LSb (least significant set bit) is optionally stored in Result.
   3947      1.1    jruoho //  The result of 0 means no bit was set, 32 means the first bit set is the
   3948      1.1    jruoho //  32nd bit, 31 means the first bit set is the 31st bit, and so on.
   3949      1.1    jruoho 
   3950      1.1    jruoho //  If the Control method is success Zero is returned. Otherwise a non-zero
   3951      1.1    jruoho //  number is returned.
   3952      1.1    jruoho //
   3953      1.1    jruoho     Device (FDSO)
   3954      1.1    jruoho     {   //  FDSO
   3955      1.1    jruoho 
   3956      1.1    jruoho         //  Create System Memory Operation Region and field overlays
   3957      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3958      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3959      1.1    jruoho         {
   3960      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3961      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3962      1.1    jruoho             SMBY,   8,      //  8-bit BYTE
   3963      1.1    jruoho         }   //  Field(RAM)
   3964      1.1    jruoho 
   3965      1.1    jruoho         //  Byte Data
   3966      1.1    jruoho         Name (BYT1, 1)
   3967      1.1    jruoho         Name (BRSL, 0x00)
   3968      1.1    jruoho 
   3969      1.1    jruoho         //  Word Data
   3970      1.1    jruoho         Name (WRD1, 0x100)
   3971      1.1    jruoho         Name (WRSL, 0x0000)
   3972      1.1    jruoho 
   3973      1.1    jruoho         //  DWord Data
   3974      1.1    jruoho         Name (DWD1, 0x10000)
   3975      1.1    jruoho         Name (DRSL, 0x00000000)
   3976      1.1    jruoho         Name (RSLT, 1)
   3977      1.1    jruoho         Name (CNTR, 1)
   3978      1.1    jruoho 
   3979      1.1    jruoho         Method (SHFT,2)
   3980      1.1    jruoho         //  Arg0 is the actual data and Arg1 is the bit position
   3981      1.1    jruoho         {   //  SHFT
   3982      1.1    jruoho             Store (Arg0, Local0)
   3983      1.1    jruoho             Store (Arg1, Local1)
   3984      1.1    jruoho 
   3985      1.1    jruoho             FindSetLeftBit (Arg0, BRSL)
   3986      1.1    jruoho             If (LNotEqual (BRSL, Arg1))
   3987      1.1    jruoho                 {   Return (0x11)   }
   3988      1.1    jruoho             If (LNotEqual (Arg0, Local0))
   3989      1.1    jruoho                 {   Return (0x12)   }
   3990      1.1    jruoho 
   3991      1.1    jruoho             FindSetLeftBit (Local0, BRSL)
   3992      1.1    jruoho             If (LNotEqual (BRSL, Local1))
   3993      1.1    jruoho                 {   Return (0x13)   }
   3994      1.1    jruoho             If (LNotEqual (Arg0, Local0))
   3995      1.1    jruoho                 {   Return (0x14)   }
   3996      1.1    jruoho 
   3997      1.1    jruoho             //  test the byte value for SetLeftBit
   3998      1.1    jruoho             Store (7, BYT1)
   3999      1.1    jruoho             FindSetLeftBit (BYT1, BRSL)
   4000      1.1    jruoho             If (LNotEqual (BRSL, 3))
   4001      1.1    jruoho                 {   Return (0x15)   }
   4002      1.1    jruoho             If (LNotEqual (BYT1, 7))
   4003      1.1    jruoho                 {   Return (0x16)   }
   4004      1.1    jruoho 
   4005      1.1    jruoho             Store (1, BYT1)
   4006      1.1    jruoho             Store (1, CNTR)
   4007      1.1    jruoho             While (LLessEqual (CNTR, 8))
   4008      1.1    jruoho             {   //  FindSetLeftBit check loop for byte data
   4009      1.1    jruoho                 FindSetLeftBit (BYT1, BRSL)
   4010      1.1    jruoho                 If (LNotEqual (BRSL, CNTR))
   4011      1.1    jruoho                     {   Return (0x17)   }
   4012      1.1    jruoho 
   4013      1.1    jruoho                 //  Shift the bits to check the same
   4014      1.1    jruoho                 ShiftLeft (BYT1, 1, BYT1)
   4015      1.1    jruoho                 Increment (CNTR)
   4016      1.1    jruoho             }   //  FindSetLeftBit check loop for byte data
   4017      1.1    jruoho 
   4018      1.1    jruoho 
   4019      1.1    jruoho             //  Check BYTE value for SetRightBit
   4020      1.1    jruoho             Store (7, BYT1)
   4021      1.1    jruoho             FindSetRightBit (BYT1, BRSL)
   4022      1.1    jruoho             If (LNotEqual (BRSL, 1))
   4023      1.1    jruoho                 {   Return (0x21)   }
   4024      1.1    jruoho             If (LNotEqual (BYT1, 7))
   4025      1.1    jruoho                 {   Return (0x22)   }
   4026      1.1    jruoho 
   4027      1.1    jruoho             Store (1, CNTR)
   4028      1.1    jruoho             Store (0xFF, BYT1)
   4029      1.1    jruoho             While (LLessEqual (CNTR, 8))
   4030      1.1    jruoho             {   //  FindSetRightBit check loop for byte data
   4031      1.1    jruoho                 FindSetRightBit (BYT1, BRSL)
   4032      1.1    jruoho                 If (LNotEqual (BRSL, CNTR))
   4033      1.1    jruoho                     {   Return (0x23)   }
   4034      1.1    jruoho 
   4035      1.1    jruoho                 ShiftLeft (BYT1, 1, BYT1)
   4036      1.1    jruoho                 Increment (CNTR)
   4037      1.1    jruoho             }   //  FindSetRightBit check loop for byte data
   4038      1.1    jruoho 
   4039      1.1    jruoho 
   4040      1.1    jruoho             //  Test Word value for SetLeftBit
   4041      1.1    jruoho             Store (9, CNTR)
   4042      1.1    jruoho             Store (0x100, WRD1)
   4043      1.1    jruoho             While (LLessEqual (CNTR, 16))
   4044      1.1    jruoho             {
   4045      1.1    jruoho                 //  FindSetLeftBit check loop for Word data
   4046      1.1    jruoho                 FindSetLeftBit (WRD1, WRSL)
   4047      1.1    jruoho                 If (LNotEqual (WRSL, CNTR))
   4048      1.1    jruoho                     {   Return (0x31)   }
   4049      1.1    jruoho 
   4050      1.1    jruoho                 //  Shift the bits to check the same
   4051      1.1    jruoho                 ShiftLeft (WRD1, 1, WRD1)
   4052      1.1    jruoho                 Increment (CNTR)
   4053      1.1    jruoho             }   //  FindSetLeftBit check loop for Word data
   4054      1.1    jruoho 
   4055      1.1    jruoho             //  Check Word value for SetRightBit
   4056      1.1    jruoho             Store (9, CNTR)
   4057      1.1    jruoho             Store (0xFF00, WRD1)
   4058      1.1    jruoho             While (LLessEqual (CNTR, 16))
   4059      1.1    jruoho             {
   4060      1.1    jruoho                 //  FindSetRightBit check loop for Word data
   4061      1.1    jruoho                 FindSetRightBit (WRD1, WRSL)
   4062      1.1    jruoho                 If (LNotEqual (WRSL, CNTR))
   4063      1.1    jruoho                     {   Return (0x32)   }
   4064      1.1    jruoho 
   4065      1.1    jruoho                 ShiftLeft (WRD1, 1, WRD1)
   4066      1.1    jruoho                 Increment (CNTR)
   4067      1.1    jruoho             }   //  FindSetRightBit check loop for Word data
   4068      1.1    jruoho 
   4069      1.1    jruoho             //  Test the DWord value for SetLeftBit
   4070      1.1    jruoho             Store (17, CNTR)
   4071      1.1    jruoho             Store (0x10000, DWD1)
   4072      1.1    jruoho             While (LLessEqual (CNTR, 32))
   4073      1.1    jruoho             {
   4074      1.1    jruoho                 //  FindSetLeftBit check loop for Dword
   4075      1.1    jruoho                 FindSetLeftBit (DWD1, DRSL)
   4076      1.1    jruoho                 If (LNotEqual (DRSL, CNTR))
   4077      1.1    jruoho                     {   Return (0x41)   }
   4078      1.1    jruoho 
   4079      1.1    jruoho                 //  Shift the bits to check the same
   4080      1.1    jruoho                 ShiftLeft (DWD1, 1, DWD1)
   4081      1.1    jruoho                 Increment (CNTR)
   4082      1.1    jruoho             }   //  FindSetLeftBit check loop for Dword
   4083      1.1    jruoho 
   4084      1.1    jruoho             //  Check DWord value for SetRightBit
   4085      1.1    jruoho             Store (17, CNTR)
   4086      1.1    jruoho             Store (0xFFFF0000, DWD1)
   4087      1.1    jruoho             While (LLessEqual (CNTR, 32))
   4088      1.1    jruoho             {   //  FindSetRightBit Check loop for DWORD
   4089      1.1    jruoho                 FindSetRightBit (DWD1, DRSL)
   4090      1.1    jruoho                 If (LNotEqual (DRSL, CNTR))
   4091      1.1    jruoho                     {   Return (0x42)   }
   4092      1.1    jruoho 
   4093      1.1    jruoho                 ShiftLeft (DWD1, 1, DWD1)
   4094      1.1    jruoho                 Increment (CNTR)
   4095      1.1    jruoho             }   //  FindSetRightBit Check loop for DWORD
   4096      1.1    jruoho 
   4097      1.1    jruoho             Return (0)
   4098      1.1    jruoho         }   //  SHFT
   4099      1.1    jruoho 
   4100      1.1    jruoho         //  Test method called from amlexec
   4101      1.1    jruoho         Method (TEST)
   4102      1.1    jruoho         {   //  TEST
   4103      1.1    jruoho 
   4104      1.1    jruoho             Store ("++++++++ FdSetOps Test", Debug)
   4105      1.1    jruoho 
   4106      1.1    jruoho             Store (SHFT (0x80, 8), RSLT)
   4107      1.1    jruoho             If (LNotEqual (RSLT, 0))
   4108      1.1    jruoho                 {   Return (RSLT)   }
   4109      1.1    jruoho 
   4110      1.1    jruoho             Return (0)  //  pass
   4111      1.1    jruoho         }   //  TEST
   4112      1.1    jruoho     }   //  Device FDSO
   4113      1.1    jruoho 
   4114      1.1    jruoho //
   4115      1.1    jruoho // test MulDivOp.asl
   4116      1.1    jruoho //
   4117      1.1    jruoho     Device (MLDV)
   4118      1.1    jruoho     {
   4119      1.1    jruoho         //  create System Memory Operation Region and field overlays
   4120      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   4121      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   4122      1.1    jruoho         {
   4123      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   4124      1.1    jruoho             SMWD,   16, //  16-bit WORD
   4125      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   4126      1.1    jruoho         }   //  Field(RAM)
   4127      1.1    jruoho 
   4128  1.1.1.3  christos         Method (TEST,, Serialized)
   4129      1.1    jruoho         {
   4130      1.1    jruoho             Store ("++++++++ MulDivOp Test", Debug)
   4131      1.1    jruoho 
   4132      1.1    jruoho             Name (RMDR, 0)
   4133      1.1    jruoho             Name (DWRD, 0x12345678)
   4134      1.1    jruoho             Name (WRD, 0x1234)
   4135      1.1    jruoho             Name (BYT, 0x12)
   4136      1.1    jruoho 
   4137      1.1    jruoho             //  Test MultiplyOp with DWORD data
   4138      1.1    jruoho             Store (0x12345678, DWRD)
   4139      1.1    jruoho             Multiply (DWRD, 3, DWRD)
   4140      1.1    jruoho             If (LNotEqual (DWRD, 0x369D0368))
   4141      1.1    jruoho                 {   Return (DWRD)   }
   4142      1.1    jruoho 
   4143      1.1    jruoho             //  Test MultiplyOp with WORD data
   4144      1.1    jruoho             Multiply (WRD, 4, WRD)
   4145      1.1    jruoho             If (LNotEqual (WRD, 0x48D0))
   4146      1.1    jruoho                 {   Return (WRD)    }
   4147      1.1    jruoho 
   4148      1.1    jruoho             //  Test MultiplyOp with BYTE data
   4149      1.1    jruoho             Multiply (BYT, 5, BYT)
   4150      1.1    jruoho             If (LNotEqual (BYT, 0x5A))
   4151      1.1    jruoho                 {   Return (BYT)    }
   4152      1.1    jruoho 
   4153      1.1    jruoho             //  Test DivideOp with DWORD data
   4154      1.1    jruoho             Divide (DWRD, 3, DWRD, RMDR)
   4155      1.1    jruoho             If (LNotEqual (DWRD, 0x12345678))
   4156      1.1    jruoho                 {   Return (DWRD)   }
   4157      1.1    jruoho             If (LNotEqual (RMDR, 0))
   4158      1.1    jruoho                 {   Return (RMDR)   }
   4159      1.1    jruoho 
   4160      1.1    jruoho             //  Test DivideOp with WORD data
   4161      1.1    jruoho             Divide (WRD, 4, WRD, RMDR)
   4162      1.1    jruoho             If (LNotEqual (WRD, 0x1234))
   4163      1.1    jruoho                 {   Return (WRD)    }
   4164      1.1    jruoho             If (LNotEqual (RMDR, 0))
   4165      1.1    jruoho                 {   Return (RMDR)   }
   4166      1.1    jruoho 
   4167      1.1    jruoho             //  Test DivideOp with BYTE data
   4168      1.1    jruoho             Divide (BYT, 5, BYT, RMDR)
   4169      1.1    jruoho             If (LNotEqual (BYT, 0x12))
   4170      1.1    jruoho                 {   Return (BYT)    }
   4171      1.1    jruoho             If (LNotEqual (RMDR, 0))
   4172      1.1    jruoho                 {   Return (RMDR)   }
   4173      1.1    jruoho 
   4174      1.1    jruoho 
   4175      1.1    jruoho             //  test MultiplyOp with DWORD SystemMemory OpRegion
   4176      1.1    jruoho             Store (0x01234567, SMDW)
   4177      1.1    jruoho             Multiply (SMDW, 2, SMDW)
   4178      1.1    jruoho             If (LNotEqual (SMDW, 0x02468ACE))
   4179      1.1    jruoho                 {   Return (SMDW)   }
   4180      1.1    jruoho 
   4181      1.1    jruoho             //  test DivideOp with DWORD SystemMemory OpRegion
   4182      1.1    jruoho             Divide (SMDW, 3, SMDW, RMDR)
   4183      1.1    jruoho             If (LNotEqual (SMDW, 0x00C22E44))
   4184      1.1    jruoho                 {   Return (SMDW)   }
   4185      1.1    jruoho             If (LNotEqual (RMDR, 2))
   4186      1.1    jruoho                 {   Return (RMDR)   }
   4187      1.1    jruoho 
   4188      1.1    jruoho 
   4189      1.1    jruoho             //  test MultiplyOp with WORD SystemMemory OpRegion
   4190      1.1    jruoho             Store (0x0123, SMWD)
   4191      1.1    jruoho             Multiply (SMWD, 3, SMWD)
   4192      1.1    jruoho             If (LNotEqual (SMWD, 0x369))
   4193      1.1    jruoho                 {   Return (SMWD)   }
   4194      1.1    jruoho 
   4195      1.1    jruoho             //  test DivideOp with WORD SystemMemory OpRegion
   4196      1.1    jruoho             Divide (SMWD, 2, SMWD, RMDR)
   4197      1.1    jruoho             If (LNotEqual (SMWD, 0x01B4))
   4198      1.1    jruoho                 {   Return (SMWD)   }
   4199      1.1    jruoho             If (LNotEqual (RMDR, 1))
   4200      1.1    jruoho                 {   Return (RMDR)   }
   4201      1.1    jruoho 
   4202      1.1    jruoho 
   4203      1.1    jruoho             //  test MultiplyOp with BYTE SystemMemory OpRegion
   4204      1.1    jruoho             Store (0x01, SMBY)
   4205      1.1    jruoho             Multiply (SMBY, 7, SMBY)
   4206      1.1    jruoho             If (LNotEqual (SMBY, 0x07))
   4207      1.1    jruoho                 {   Return (SMBY)   }
   4208      1.1    jruoho 
   4209      1.1    jruoho             //  test DivideOp with BYTE SystemMemory OpRegion
   4210      1.1    jruoho             Divide (SMBY, 4, SMBY, RMDR)
   4211      1.1    jruoho             If (LNotEqual (SMBY, 0x01))
   4212      1.1    jruoho                 {   Return (SMBY)   }
   4213      1.1    jruoho             If (LNotEqual (RMDR, 3))
   4214      1.1    jruoho                 {   Return (RMDR)   }
   4215      1.1    jruoho 
   4216      1.1    jruoho             Return (0)
   4217      1.1    jruoho         }   //  TEST
   4218      1.1    jruoho     }   //  MLDV
   4219      1.1    jruoho 
   4220      1.1    jruoho //
   4221      1.1    jruoho // test NBitOps.asl
   4222      1.1    jruoho //
   4223      1.1    jruoho //NAnd - Bit-wise NAnd
   4224      1.1    jruoho //NAndTerm  := NAnd(
   4225      1.1    jruoho //  Source1,    //TermArg=>Integer
   4226      1.1    jruoho //  Source2 //TermArg=>Integer
   4227      1.1    jruoho //  Result  //Nothing | SuperName
   4228      1.1    jruoho //) => Integer
   4229      1.1    jruoho //Source1 and Source2 are evaluated as integer data types, a bit-wise NAND is performed, and the result is optionally
   4230      1.1    jruoho //stored in Result.
   4231      1.1    jruoho 
   4232      1.1    jruoho //NOr - Bitwise NOr
   4233      1.1    jruoho //NOrTerm   := NOr(
   4234      1.1    jruoho //  Source1,    //TermArg=>Integer
   4235      1.1    jruoho //  Source2 //TermArg=>Integer
   4236      1.1    jruoho //  Result  //Nothing | SuperName
   4237      1.1    jruoho //) => Integer
   4238      1.1    jruoho //Source1 and Source2 are evaluated as integer data types, a bit-wise NOR is performed, and the result is optionally
   4239      1.1    jruoho //stored in Result.
   4240      1.1    jruoho // Not - Not
   4241      1.1    jruoho //NotTerm   := Not(
   4242      1.1    jruoho //  Source, //TermArg=>Integer
   4243      1.1    jruoho //  Result  //Nothing | SuperName
   4244      1.1    jruoho //) => Integer
   4245      1.1    jruoho //Source1 is evaluated as an integer data type, a bit-wise NOT is performed, and the result is optionally stored in
   4246      1.1    jruoho //Result.
   4247      1.1    jruoho 
   4248      1.1    jruoho //If the Control method is success Zero is returned else a non-zero number is returned
   4249      1.1    jruoho 
   4250      1.1    jruoho     Device (NBIT)
   4251      1.1    jruoho     {//NBIT
   4252      1.1    jruoho 
   4253      1.1    jruoho         //Create System Memory Operation Region and field overlays
   4254      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   4255      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   4256      1.1    jruoho         {
   4257      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   4258      1.1    jruoho             SMWD,   16, //  16-bit WORD
   4259      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   4260      1.1    jruoho         }// Field(RAM)
   4261      1.1    jruoho 
   4262      1.1    jruoho 
   4263      1.1    jruoho         //And with Byte Data
   4264      1.1    jruoho         Name (BYT1, 0xff)
   4265      1.1    jruoho         Name (BYT2, 0xff)
   4266      1.1    jruoho         Name (BRSL, 0x00)
   4267      1.1    jruoho 
   4268      1.1    jruoho         //And with Word Data
   4269      1.1    jruoho         Name (WRD1, 0xffff)
   4270      1.1    jruoho         Name (WRD2, 0xffff)
   4271      1.1    jruoho         Name (WRSL, 0x0000)
   4272      1.1    jruoho 
   4273      1.1    jruoho         //And with DWord Data
   4274      1.1    jruoho         Name (DWD1, 0xffffffff)
   4275      1.1    jruoho         Name (DWD2, 0xffffffff)
   4276      1.1    jruoho         Name (DRSL, 0x00000000)
   4277      1.1    jruoho         Name(RSLT,1)
   4278      1.1    jruoho 
   4279      1.1    jruoho 
   4280      1.1    jruoho         Name(ARSL,0x00)
   4281      1.1    jruoho         Name(LRSL,0x00)
   4282      1.1    jruoho 
   4283      1.1    jruoho         Method(NNDB,2)
   4284      1.1    jruoho         {//NNDB
   4285      1.1    jruoho 
   4286      1.1    jruoho             Store(0xffffffff,SMDW)
   4287      1.1    jruoho             Store(0xffff,SMWD)
   4288      1.1    jruoho             Store(0xff,SMBY)
   4289      1.1    jruoho 
   4290      1.1    jruoho 
   4291      1.1    jruoho             NAnd(Arg0,Arg1,ARSL)
   4292      1.1    jruoho             if(LNotEqual(ARSL,0xfffffffd))
   4293      1.1    jruoho              {Return(11)}
   4294      1.1    jruoho 
   4295      1.1    jruoho              Store(Arg0,local0)
   4296      1.1    jruoho              Store(Arg1,Local1)
   4297      1.1    jruoho 
   4298      1.1    jruoho              NAnd(Local0,Local1,LRSL)
   4299      1.1    jruoho                 if(LNotEqual(LRSL,0xfffffffd))
   4300      1.1    jruoho              {Return(12)}
   4301      1.1    jruoho 
   4302      1.1    jruoho 
   4303      1.1    jruoho             //Byte data
   4304      1.1    jruoho             NAnd(BYT1,BYT2,BRSL)
   4305      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4306      1.1    jruoho              {Return(13)}
   4307      1.1    jruoho 
   4308      1.1    jruoho             //Word Data
   4309      1.1    jruoho              NAnd(WRD1,WRD2,WRSL)
   4310      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4311      1.1    jruoho              {Return(14)}
   4312      1.1    jruoho 
   4313      1.1    jruoho              //DWord Data
   4314      1.1    jruoho              NAnd(DWD1,DWD2,DRSL)
   4315      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4316      1.1    jruoho              {Return(15)}
   4317      1.1    jruoho 
   4318      1.1    jruoho              //Byte data
   4319      1.1    jruoho             NAnd(SMBY,0xff,BRSL)
   4320      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4321      1.1    jruoho              {Return(16)}
   4322      1.1    jruoho 
   4323      1.1    jruoho             //Word Data
   4324      1.1    jruoho              NAnd(SMWD,0xffff,WRSL)
   4325      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4326      1.1    jruoho              {Return(17)}
   4327      1.1    jruoho 
   4328      1.1    jruoho              //DWord Data
   4329      1.1    jruoho              NAnd(SMDW,0xffffffff,DRSL)
   4330      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4331      1.1    jruoho              {Return(18)}
   4332      1.1    jruoho 
   4333      1.1    jruoho             Return(0)
   4334      1.1    jruoho 
   4335      1.1    jruoho         }//NNDB
   4336      1.1    jruoho 
   4337      1.1    jruoho         Method(NNOR,2)
   4338      1.1    jruoho         {//NNOR
   4339      1.1    jruoho 
   4340      1.1    jruoho             NOr(Arg0,Arg1,ARSL)
   4341      1.1    jruoho             if(LNotEqual(ARSL,0xfffffffd))
   4342      1.1    jruoho              {Return(21)}
   4343      1.1    jruoho 
   4344      1.1    jruoho             Store(Arg0,local0)
   4345      1.1    jruoho             Store(Arg1,Local1)
   4346      1.1    jruoho 
   4347      1.1    jruoho             NOr(Local0,Local1,LRSL)
   4348      1.1    jruoho             if(LNotEqual(LRSL,0xfffffffd))
   4349      1.1    jruoho              {Return(22)}
   4350      1.1    jruoho 
   4351      1.1    jruoho 
   4352      1.1    jruoho             //Byte data
   4353      1.1    jruoho             NOr(BYT1,BYT2,BRSL)
   4354      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4355      1.1    jruoho              {Return(23)}
   4356      1.1    jruoho 
   4357      1.1    jruoho             //Word Data
   4358      1.1    jruoho             NOr(WRD1,WRD2,WRSL)
   4359      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4360      1.1    jruoho              {Return(24)}
   4361      1.1    jruoho 
   4362      1.1    jruoho             //DWord Data
   4363      1.1    jruoho             NOr(DWD1,DWD2,DRSL)
   4364      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4365      1.1    jruoho              {Return(25)}
   4366      1.1    jruoho 
   4367      1.1    jruoho              //System Memory Byte data
   4368      1.1    jruoho             NOr(SMBY,0xff,BRSL)
   4369      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4370      1.1    jruoho              {Return(26)}
   4371      1.1    jruoho 
   4372      1.1    jruoho             //System Memory Word Data
   4373      1.1    jruoho             NOr(SMWD,0xffff,WRSL)
   4374      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4375      1.1    jruoho              {Return(27)}
   4376      1.1    jruoho 
   4377      1.1    jruoho             //System Memory DWord Data
   4378      1.1    jruoho             NOr(SMDW,0xffffffff,DRSL)
   4379      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4380      1.1    jruoho              {Return(28)}
   4381      1.1    jruoho 
   4382      1.1    jruoho             Return(0)
   4383      1.1    jruoho 
   4384      1.1    jruoho         }//NNOR
   4385      1.1    jruoho 
   4386      1.1    jruoho         Method(NNOT,2)
   4387      1.1    jruoho         {//NNOT
   4388      1.1    jruoho 
   4389      1.1    jruoho             Or(Arg0,Arg1,ARSL)
   4390      1.1    jruoho             Not(ARSL,ARSL)
   4391      1.1    jruoho             if(LNotEqual(ARSL,0xfffffffd))
   4392      1.1    jruoho              {Return(31)}
   4393      1.1    jruoho 
   4394      1.1    jruoho             Store(Arg0,local0)
   4395      1.1    jruoho             Store(Arg1,Local1)
   4396      1.1    jruoho 
   4397      1.1    jruoho             Or(Local0,Local1,LRSL)
   4398      1.1    jruoho             Not(LRSL,LRSL)
   4399      1.1    jruoho             if(LNotEqual(LRSL,0xfffffffd))
   4400      1.1    jruoho              {Return(32)}
   4401      1.1    jruoho 
   4402      1.1    jruoho 
   4403      1.1    jruoho             //Byte data
   4404      1.1    jruoho             Or(BYT1,BYT2,BRSL)
   4405      1.1    jruoho             Not(BRSL,BRSL)
   4406      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4407      1.1    jruoho              {Return(33)}
   4408      1.1    jruoho 
   4409      1.1    jruoho             //Word Data
   4410      1.1    jruoho             Or(WRD1,WRD2,WRSL)
   4411      1.1    jruoho             Not(WRSL,WRSL)
   4412      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4413      1.1    jruoho              {Return(34)}
   4414      1.1    jruoho 
   4415      1.1    jruoho             //DWord Data
   4416      1.1    jruoho             Or(DWD1,DWD2,DRSL)
   4417      1.1    jruoho             Not(DRSL,DRSL)
   4418      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4419      1.1    jruoho              {Return(35)}
   4420      1.1    jruoho 
   4421      1.1    jruoho              //System Memory Byte data
   4422      1.1    jruoho             Or(SMBY,0xff,BRSL)
   4423      1.1    jruoho             Not(BRSL,BRSL)
   4424      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4425      1.1    jruoho              {Return(36)}
   4426      1.1    jruoho 
   4427      1.1    jruoho             //System Memory Word Data
   4428      1.1    jruoho             Or(SMWD,0xffff,WRSL)
   4429      1.1    jruoho             Not(WRSL,WRSL)
   4430      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4431      1.1    jruoho              {Return(37)}
   4432      1.1    jruoho 
   4433      1.1    jruoho             //System Memory DWord Data
   4434      1.1    jruoho             Or(SMDW,0xffffffff,DRSL)
   4435      1.1    jruoho             Not(DRSL,DRSL)
   4436      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4437      1.1    jruoho              {Return(38)}
   4438      1.1    jruoho 
   4439      1.1    jruoho             Return(0)
   4440      1.1    jruoho         }//NNOT
   4441      1.1    jruoho 
   4442      1.1    jruoho 
   4443      1.1    jruoho         Method(TEST)
   4444      1.1    jruoho         {
   4445      1.1    jruoho 
   4446      1.1    jruoho             Store ("++++++++ NBitOps Test", Debug)
   4447      1.1    jruoho 
   4448      1.1    jruoho             Store(NNDB(2,2),RSLT)
   4449      1.1    jruoho             if(LNotEqual(RSLT,0))
   4450      1.1    jruoho                 {Return(RSLT)}
   4451      1.1    jruoho 
   4452      1.1    jruoho             Store(NNOR(2,2),RSLT)
   4453      1.1    jruoho             if(LNotEqual(RSLT,0))
   4454      1.1    jruoho                 {Return(RSLT)}
   4455      1.1    jruoho 
   4456      1.1    jruoho             Store(NNOT(2,2),RSLT)
   4457      1.1    jruoho             if(LNotEqual(RSLT,0))
   4458      1.1    jruoho                 {Return(RSLT)}
   4459      1.1    jruoho 
   4460      1.1    jruoho 
   4461      1.1    jruoho            Return(0)
   4462      1.1    jruoho         }
   4463      1.1    jruoho 
   4464      1.1    jruoho     }//Device NBIT
   4465      1.1    jruoho 
   4466      1.1    jruoho //
   4467      1.1    jruoho // test ShftOp.asl
   4468      1.1    jruoho //
   4469      1.1    jruoho //ShiftRightTerm    := ShiftRight(
   4470      1.1    jruoho //  Source, //TermArg=>Integer
   4471      1.1    jruoho //  ShiftCount  //TermArg=>Integer
   4472      1.1    jruoho //  Result  //Nothing | SuperName
   4473      1.1    jruoho //) => Integer
   4474      1.1    jruoho //Source and ShiftCount are evaluated as integer data types. Source is shifted right with the most significant bit
   4475      1.1    jruoho //zeroed ShiftCount times.  The result is optionally stored into Result.
   4476      1.1    jruoho 
   4477      1.1    jruoho //ShiftLeft(
   4478      1.1    jruoho //  Source, //TermArg=>Integer
   4479      1.1    jruoho //  ShiftCount  //TermArg=>Integer
   4480      1.1    jruoho //  Result  //Nothing | SuperName
   4481      1.1    jruoho //) => Integer
   4482      1.1    jruoho //Source and ShiftCount are evaluated as integer data types. Source is shifted left with the least significant
   4483      1.1    jruoho //bit zeroed ShiftCount times. The result is optionally stored into Result.
   4484      1.1    jruoho 
   4485      1.1    jruoho //If the Control method is success Zero is returned else a non-zero number is returned
   4486      1.1    jruoho     Device (SHFT)
   4487      1.1    jruoho     {//SHFT
   4488      1.1    jruoho 
   4489      1.1    jruoho         //Create System Memory Operation Region and field overlays
   4490      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   4491      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   4492      1.1    jruoho         {
   4493      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   4494      1.1    jruoho             SMWD,   16, //  16-bit WORD
   4495      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   4496      1.1    jruoho         }// Field(RAM)
   4497      1.1    jruoho 
   4498      1.1    jruoho 
   4499      1.1    jruoho         Name(SHFC,0x00)
   4500      1.1    jruoho 
   4501      1.1    jruoho         //And with Byte Data
   4502      1.1    jruoho         Name (BYT1, 0xff)
   4503      1.1    jruoho         Name (BRSL, 0x00)
   4504      1.1    jruoho 
   4505      1.1    jruoho         //And with Word Data
   4506      1.1    jruoho         Name (WRD1, 0xffff)
   4507      1.1    jruoho         Name (WRSL, 0x0000)
   4508      1.1    jruoho 
   4509      1.1    jruoho         //And with DWord Data
   4510      1.1    jruoho         Name (DWD1, 0xffffffff)
   4511      1.1    jruoho         Name (DRSL, 0x00000000)
   4512      1.1    jruoho 
   4513      1.1    jruoho         Name(RSLT,1)
   4514      1.1    jruoho 
   4515      1.1    jruoho         Name(ARSL,0x00)
   4516      1.1    jruoho         Name(LRSL,0x00)
   4517      1.1    jruoho 
   4518      1.1    jruoho         Method(SLFT,2)
   4519      1.1    jruoho         {//SLFT
   4520      1.1    jruoho 
   4521      1.1    jruoho             Store(0xffffffff,SMDW)
   4522      1.1    jruoho             Store(0xffff,SMWD)
   4523      1.1    jruoho             Store(0xff,SMBY)
   4524      1.1    jruoho 
   4525      1.1    jruoho 
   4526      1.1    jruoho             //Arg0-> 2 & Arg1->2
   4527      1.1    jruoho             ShiftLeft(Arg0,Arg1,ARSL)
   4528      1.1    jruoho             if(LNotEqual(ARSL,8))
   4529      1.1    jruoho             {Return(11)}
   4530      1.1    jruoho 
   4531      1.1    jruoho              Store(Arg0,local0)
   4532      1.1    jruoho              Store(Arg1,Local1)
   4533      1.1    jruoho 
   4534      1.1    jruoho              //Local0->8 and Local1->2
   4535      1.1    jruoho              ShiftLeft(Local0,Local1,LRSL)
   4536      1.1    jruoho                 if(LNotEqual(LRSL,8))
   4537      1.1    jruoho              {Return(12)}
   4538      1.1    jruoho 
   4539      1.1    jruoho             Store(2,SHFC)
   4540      1.1    jruoho             //Byte data
   4541      1.1    jruoho             ShiftLeft(BYT1,SHFC,BRSL)
   4542      1.1    jruoho             if(LNotEqual(BRSL,0x3FC))
   4543      1.1    jruoho              {Return(13)}
   4544      1.1    jruoho 
   4545      1.1    jruoho             Store(4,SHFC)
   4546      1.1    jruoho             //Word Data
   4547      1.1    jruoho              ShiftLeft(WRD1,SHFC,WRSL)
   4548      1.1    jruoho             if(LNotEqual(WRSL,0xFFFF0))
   4549      1.1    jruoho              {Return(14)}
   4550      1.1    jruoho 
   4551      1.1    jruoho             Store(8,SHFC)
   4552      1.1    jruoho             //DWord Data
   4553      1.1    jruoho             ShiftLeft(DWD1,SHFC,DRSL)
   4554      1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF00))
   4555      1.1    jruoho              {Return(15)}
   4556      1.1    jruoho 
   4557      1.1    jruoho 
   4558      1.1    jruoho              //System Memory Byte data
   4559      1.1    jruoho             Store(4,SHFC)
   4560      1.1    jruoho             ShiftLeft(SMBY,SHFC,BRSL)
   4561      1.1    jruoho             if(LNotEqual(BRSL,0xFF0))
   4562      1.1    jruoho             {Return(16)}
   4563      1.1    jruoho 
   4564      1.1    jruoho             //Word Data
   4565      1.1    jruoho             Store(4,SHFC)
   4566      1.1    jruoho             ShiftLeft(SMWD,SHFC,WRSL)
   4567      1.1    jruoho             if(LNotEqual(WRSL,0xffff0))
   4568      1.1    jruoho              {Return(17)}
   4569      1.1    jruoho 
   4570      1.1    jruoho             //DWord Data
   4571      1.1    jruoho             Store(8,SHFC)
   4572      1.1    jruoho             ShiftLeft(SMDW,SHFC,DRSL)
   4573      1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF00))
   4574      1.1    jruoho                 {Return(18)}
   4575      1.1    jruoho 
   4576      1.1    jruoho             Return(0)
   4577      1.1    jruoho 
   4578      1.1    jruoho         }//SLFT
   4579      1.1    jruoho 
   4580      1.1    jruoho         Method(SRGT,2)
   4581      1.1    jruoho         {//SRGT
   4582      1.1    jruoho             //And with Byte Data
   4583      1.1    jruoho             Store (0xff,BYT1)
   4584      1.1    jruoho             Store (0x00,BRSL)
   4585      1.1    jruoho 
   4586      1.1    jruoho             //And with Word Data
   4587      1.1    jruoho             Store (0xffff,WRD1)
   4588      1.1    jruoho             Store (0x0000,WRSL)
   4589      1.1    jruoho 
   4590      1.1    jruoho             //And with DWord Data
   4591      1.1    jruoho             Store(0xffffffff,DWD1)
   4592      1.1    jruoho             Store (0x00000000,DRSL)
   4593      1.1    jruoho 
   4594      1.1    jruoho             //Reinitialize the result objects
   4595      1.1    jruoho             Store(0x00,ARSL)
   4596      1.1    jruoho             Store(0x00,LRSL)
   4597      1.1    jruoho 
   4598      1.1    jruoho             Store(0xffffffff,SMDW)
   4599      1.1    jruoho             Store(0xffff,SMWD)
   4600      1.1    jruoho             Store(0xff,SMBY)
   4601      1.1    jruoho 
   4602      1.1    jruoho             //Arg0-> 2 & Arg1->2
   4603      1.1    jruoho             ShiftRight(Arg0,Arg1,ARSL)
   4604      1.1    jruoho             if(LNotEqual(ARSL,0))
   4605      1.1    jruoho             {Return(21)}
   4606      1.1    jruoho 
   4607      1.1    jruoho              Store(Arg0,local0)
   4608      1.1    jruoho              Store(Arg1,Local1)
   4609      1.1    jruoho 
   4610      1.1    jruoho              //Local0->8 and Local1->2
   4611      1.1    jruoho              ShiftRight(Local0,Local1,LRSL)
   4612      1.1    jruoho                 if(LNotEqual(LRSL,0))
   4613      1.1    jruoho              {Return(22)}
   4614      1.1    jruoho 
   4615      1.1    jruoho             Store(2,SHFC)
   4616      1.1    jruoho             //Byte data
   4617      1.1    jruoho             ShiftRight(BYT1,SHFC,BRSL)
   4618      1.1    jruoho             if(LNotEqual(BRSL,0x3F))
   4619      1.1    jruoho              {Return(23)}
   4620      1.1    jruoho 
   4621      1.1    jruoho             Store(4,SHFC)
   4622      1.1    jruoho             //Word Data
   4623      1.1    jruoho              ShiftRight(WRD1,SHFC,WRSL)
   4624      1.1    jruoho             if(LNotEqual(WRSL,0xFFF))
   4625      1.1    jruoho              {Return(24)}
   4626      1.1    jruoho 
   4627      1.1    jruoho             Store(8,SHFC)
   4628      1.1    jruoho             //DWord Data
   4629      1.1    jruoho             ShiftRight(DWD1,SHFC,DRSL)
   4630      1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF))
   4631      1.1    jruoho              {Return(25)}
   4632      1.1    jruoho 
   4633      1.1    jruoho             //System Memory Byte data
   4634      1.1    jruoho             Store(4,SHFC)
   4635      1.1    jruoho             ShiftRight(SMBY,SHFC,BRSL)
   4636      1.1    jruoho             if(LNotEqual(BRSL,0xF))
   4637      1.1    jruoho             {Return(26)}
   4638      1.1    jruoho 
   4639      1.1    jruoho             //Word Data
   4640      1.1    jruoho             Store(4,SHFC)
   4641      1.1    jruoho             ShiftRight(SMWD,SHFC,WRSL)
   4642      1.1    jruoho             if(LNotEqual(WRSL,0xFFF))
   4643      1.1    jruoho              {Return(27)}
   4644      1.1    jruoho 
   4645      1.1    jruoho             //DWord Data
   4646      1.1    jruoho             Store(8,SHFC)
   4647      1.1    jruoho             ShiftRight(SMDW,SHFC,DRSL)
   4648      1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF))
   4649      1.1    jruoho                 {Return(28)}
   4650      1.1    jruoho 
   4651      1.1    jruoho             Return(0)
   4652      1.1    jruoho         }//SRGT
   4653      1.1    jruoho 
   4654      1.1    jruoho         //Test method called from amlexec
   4655      1.1    jruoho         Method(TEST)
   4656      1.1    jruoho         {
   4657      1.1    jruoho             Store ("++++++++ ShftOp Test", Debug)
   4658      1.1    jruoho 
   4659      1.1    jruoho             Store(SLFT(2,2),RSLT)
   4660      1.1    jruoho             if(LNotEqual(RSLT,0))
   4661      1.1    jruoho                 {Return(RSLT)}
   4662      1.1    jruoho             Store(SRGT(2,2),RSLT)
   4663      1.1    jruoho             if(LNotEqual(RSLT,0))
   4664      1.1    jruoho                 {Return(RSLT)}
   4665      1.1    jruoho            Return(0)
   4666      1.1    jruoho         }
   4667      1.1    jruoho 
   4668      1.1    jruoho     }//Device SHFT
   4669      1.1    jruoho 
   4670      1.1    jruoho //
   4671      1.1    jruoho // test Xor.asl and slightly modified
   4672      1.1    jruoho //
   4673      1.1    jruoho //This code tests the XOR opcode term
   4674      1.1    jruoho //Syntax of XOR term
   4675      1.1    jruoho //          XOr(
   4676      1.1    jruoho //                  Source1  //TermArg=>BufferTerm
   4677      1.1    jruoho //                  Source2  //TermArg=>Integer
   4678      1.1    jruoho //                  Result //NameString
   4679      1.1    jruoho //              )
   4680      1.1    jruoho //"Source1" and "Source2" are evaluated as integers, a bit-wise XOR is performed, and the result is optionally stored in
   4681      1.1    jruoho // Result
   4682      1.1    jruoho     Device (XORD)
   4683      1.1    jruoho     {
   4684      1.1    jruoho         //This Method tests XOr operator for all the data types i.e. BYTE, WORD and DWORD
   4685  1.1.1.3  christos         Method (TEST,, Serialized)
   4686      1.1    jruoho         {
   4687      1.1    jruoho             Store ("++++++++ Xor Test", Debug)
   4688      1.1    jruoho 
   4689      1.1    jruoho             //Overlay in system memory
   4690      1.1    jruoho             OperationRegion (RAM, SystemMemory, 0x800000, 256)
   4691      1.1    jruoho             Field (RAM, ByteAcc, NoLock, Preserve)
   4692      1.1    jruoho             {
   4693      1.1    jruoho                 RES1,   1,  //Offset
   4694      1.1    jruoho                 BYT1,   8,  //First BYTE
   4695      1.1    jruoho                 BYT2,   8,  //Second BYTE
   4696      1.1    jruoho                 RBYT,   8,  //Result Byte
   4697      1.1    jruoho                 RES2,   1,  //Offset
   4698      1.1    jruoho                 WRD1,   16, //First WORD field
   4699      1.1    jruoho                 WRD2,   16, //Second WORD field
   4700      1.1    jruoho                 RWRD,   16, //RSLT WORD field
   4701      1.1    jruoho                 RES3,   1,  //Offset
   4702      1.1    jruoho                 DWD1,   32, //First Dword
   4703      1.1    jruoho                 DWD2,   32, //Second Dword
   4704      1.1    jruoho                 RDWD,   32, //Result Dword
   4705      1.1    jruoho                 RES4,   1,  //Offset
   4706      1.1    jruoho             }
   4707      1.1    jruoho 
   4708      1.1    jruoho             // Store bits in the single bit fields for checking
   4709      1.1    jruoho             //  at the end
   4710      1.1    jruoho             Store(1, RES1)
   4711      1.1    jruoho             Store(1, RES2)
   4712      1.1    jruoho             Store(1, RES3)
   4713      1.1    jruoho             Store(1, RES4)
   4714      1.1    jruoho 
   4715      1.1    jruoho             // Check the stored single bits
   4716      1.1    jruoho             if(LNotEqual(RES1, 1))
   4717      1.1    jruoho             {
   4718      1.1    jruoho                 Return(1)
   4719      1.1    jruoho             }
   4720      1.1    jruoho 
   4721      1.1    jruoho             if(LNotEqual(RES2, 1))
   4722      1.1    jruoho             {
   4723      1.1    jruoho                 Return(1)
   4724      1.1    jruoho             }
   4725      1.1    jruoho 
   4726      1.1    jruoho             if(LNotEqual(RES3, 1))
   4727      1.1    jruoho             {
   4728      1.1    jruoho                 Return(1)
   4729      1.1    jruoho             }
   4730      1.1    jruoho 
   4731      1.1    jruoho             if(LNotEqual(RES4, 1))
   4732      1.1    jruoho             {
   4733      1.1    jruoho                 Return(1)
   4734      1.1    jruoho             }
   4735      1.1    jruoho 
   4736      1.1    jruoho             //************************************************
   4737      1.1    jruoho             // (BYT1) Bit1 ->0 and (BYT2)Bit2 -> 0 condition
   4738      1.1    jruoho             Store(0x00,BYT1)
   4739      1.1    jruoho             Store(0x00,BYT2)
   4740      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4741      1.1    jruoho             Store (Local0, RBYT)
   4742      1.1    jruoho             if(LNotEqual(RBYT,0))
   4743      1.1    jruoho             {   Return(1)}
   4744      1.1    jruoho 
   4745      1.1    jruoho             // (BYT1) Bit1 ->1 and (BYT2)Bit2 -> 1 condition
   4746      1.1    jruoho             Store(0xff,BYT1)
   4747      1.1    jruoho             Store(0xff,BYT2)
   4748      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4749      1.1    jruoho             Store (Local0, RBYT)
   4750      1.1    jruoho             if(LNotEqual(RBYT,0))
   4751      1.1    jruoho             {   Return(1)}
   4752      1.1    jruoho 
   4753      1.1    jruoho             // (BYT1) Bit1 ->1 and (BYT)Bit2 -> 0 condition
   4754      1.1    jruoho             Store(0x55,BYT1)
   4755      1.1    jruoho             Store(0xAA,BYT2)
   4756      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4757      1.1    jruoho             Store (Local0, RBYT)
   4758      1.1    jruoho             if(LNotEqual(RBYT,0xFF))
   4759      1.1    jruoho             {   Return(1)}
   4760      1.1    jruoho 
   4761      1.1    jruoho             //(BYT1) Bit1 ->0 and (BYT2)Bit2 -> 1 condition
   4762      1.1    jruoho             Store(0xAA,BYT1)
   4763      1.1    jruoho             Store(0x55,BYT2)
   4764      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4765      1.1    jruoho             Store (Local0, RBYT)
   4766      1.1    jruoho             if(LNotEqual(RBYT,0xFF))
   4767      1.1    jruoho             {   Return(1)}
   4768      1.1    jruoho 
   4769      1.1    jruoho             Store(0x12,BYT1)
   4770      1.1    jruoho             Store(0xED,BYT2)
   4771      1.1    jruoho 
   4772      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4773      1.1    jruoho             Store (Local0, RBYT)
   4774      1.1    jruoho             if(LNotEqual(RBYT,0xFF))
   4775      1.1    jruoho             {
   4776      1.1    jruoho                 Return(1)
   4777      1.1    jruoho             }
   4778      1.1    jruoho 
   4779      1.1    jruoho             // Store known values for checking later
   4780      1.1    jruoho             Store(0x12, BYT1)
   4781      1.1    jruoho             if(LNotEqual(BYT1, 0x12))
   4782      1.1    jruoho             {
   4783      1.1    jruoho                 Return(1)
   4784      1.1    jruoho             }
   4785      1.1    jruoho 
   4786      1.1    jruoho             Store(0xFE, BYT2)
   4787      1.1    jruoho             if(LNotEqual(BYT2, 0xFE))
   4788      1.1    jruoho             {
   4789      1.1    jruoho                 Return(1)
   4790      1.1    jruoho             }
   4791      1.1    jruoho 
   4792      1.1    jruoho             Store(0xAB, RBYT)
   4793      1.1    jruoho             if(LNotEqual(RBYT, 0xAB))
   4794      1.1    jruoho             {
   4795      1.1    jruoho                 Return(1)
   4796      1.1    jruoho             }
   4797      1.1    jruoho 
   4798      1.1    jruoho             //***********************************************
   4799      1.1    jruoho             // (WRD1) Bit1 ->0 and (WRD2)Bit2 -> 0 condition
   4800      1.1    jruoho             Store(0x0000,WRD1)
   4801      1.1    jruoho             Store(0x0000,WRD2)
   4802      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4803      1.1    jruoho             if(LNotEqual(RWRD,0))
   4804      1.1    jruoho             {   Return(1)}
   4805      1.1    jruoho 
   4806      1.1    jruoho             // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 1 condition
   4807      1.1    jruoho             Store(0xffff,WRD1)
   4808      1.1    jruoho             Store(0xffff,WRD2)
   4809      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4810      1.1    jruoho             if(LNotEqual(RWRD,0))
   4811      1.1    jruoho             {   Return(1)}
   4812      1.1    jruoho 
   4813      1.1    jruoho             // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 0 condition
   4814      1.1    jruoho             Store(0x5555,WRD1)
   4815      1.1    jruoho             Store(0xAAAA,WRD2)
   4816      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4817      1.1    jruoho             if(LNotEqual(RWRD,0xFFFF))
   4818      1.1    jruoho             {   Return(1)}
   4819      1.1    jruoho 
   4820      1.1    jruoho             //(WRD1) Bit1 ->0 and (WRD2)Bit2 -> 1 condition
   4821      1.1    jruoho             Store(0xAAAA,WRD1)
   4822      1.1    jruoho             Store(0x5555,WRD2)
   4823      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4824      1.1    jruoho             if(LNotEqual(RWRD,0xFFFF))
   4825      1.1    jruoho             {   Return(1)}
   4826      1.1    jruoho 
   4827      1.1    jruoho             Store(0x1234,WRD1)
   4828      1.1    jruoho             Store(0xEDCB,WRD2)
   4829      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4830      1.1    jruoho             if(LNotEqual(RWRD,0xFFFF))
   4831      1.1    jruoho             {   Return(1)}
   4832      1.1    jruoho 
   4833      1.1    jruoho             // Store known values for checking later
   4834      1.1    jruoho             Store(0x1234, WRD1)
   4835      1.1    jruoho             if(LNotEqual(WRD1, 0x1234))
   4836      1.1    jruoho             {
   4837      1.1    jruoho                 Return(1)
   4838      1.1    jruoho             }
   4839      1.1    jruoho 
   4840      1.1    jruoho             Store(0xFEDC, WRD2)
   4841      1.1    jruoho             if(LNotEqual(WRD2, 0xFEDC))
   4842      1.1    jruoho             {
   4843      1.1    jruoho                 Return(1)
   4844      1.1    jruoho             }
   4845      1.1    jruoho 
   4846      1.1    jruoho             Store(0x87AB, RWRD)
   4847      1.1    jruoho             if(LNotEqual(RWRD, 0x87AB))
   4848      1.1    jruoho             {
   4849      1.1    jruoho                 Return(1)
   4850      1.1    jruoho             }
   4851      1.1    jruoho 
   4852      1.1    jruoho 
   4853      1.1    jruoho             //**************************************************
   4854      1.1    jruoho             // (DWD1) Bit1 ->0 and (DWD2)Bit2 -> 0 condition
   4855      1.1    jruoho             Store(0x00000000,DWD1)
   4856      1.1    jruoho             Store(0x00000000,DWD2)
   4857      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4858      1.1    jruoho             if(LNotEqual(RDWD,0))
   4859      1.1    jruoho             {   Return(1)}
   4860      1.1    jruoho 
   4861      1.1    jruoho             // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 1 condition
   4862      1.1    jruoho             Store(0xffffffff,DWD1)
   4863      1.1    jruoho             Store(0xffffffff,DWD2)
   4864      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4865      1.1    jruoho             if(LNotEqual(RDWD,0))
   4866      1.1    jruoho             {   Return(1)}
   4867      1.1    jruoho 
   4868      1.1    jruoho             // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
   4869      1.1    jruoho             Store(0x55555555,DWD1)
   4870      1.1    jruoho             Store(0xAAAAAAAA,DWD2)
   4871      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4872      1.1    jruoho             if(LNotEqual(RDWD,0xFFFFFFFF))
   4873      1.1    jruoho             {   Return(1)}
   4874      1.1    jruoho 
   4875      1.1    jruoho             //(DWD1) Bit1 ->0 and (DWD2)Bit2 -> 1 condition
   4876      1.1    jruoho             Store(0xAAAAAAAA,DWD1)
   4877      1.1    jruoho             Store(0x55555555,DWD2)
   4878      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4879      1.1    jruoho             if(LNotEqual(RDWD,0xFFFFFFFF))
   4880      1.1    jruoho             {   Return(1)}
   4881      1.1    jruoho 
   4882      1.1    jruoho             // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
   4883      1.1    jruoho             Store(0x12345678,DWD1)
   4884      1.1    jruoho             Store(0xEDCBA987,DWD2)
   4885      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4886      1.1    jruoho             if(LNotEqual(RDWD,0xFFFFFFFF))
   4887      1.1    jruoho             {   Return(1)}
   4888      1.1    jruoho 
   4889      1.1    jruoho             Store(0x12345678,DWD1)
   4890      1.1    jruoho             if(LNotEqual(DWD1,0x12345678))
   4891      1.1    jruoho             {
   4892      1.1    jruoho                 Return(1)
   4893      1.1    jruoho             }
   4894      1.1    jruoho 
   4895      1.1    jruoho             Store(0xFEDCBA98,DWD2)
   4896      1.1    jruoho             if(LNotEqual(DWD2,0xFEDCBA98))
   4897      1.1    jruoho             {
   4898      1.1    jruoho                 Return(1)
   4899      1.1    jruoho             }
   4900      1.1    jruoho 
   4901      1.1    jruoho             Store(0x91827364,RDWD)
   4902      1.1    jruoho             if(LNotEqual(RDWD,0x91827364))
   4903      1.1    jruoho             {
   4904      1.1    jruoho                 Return(1)
   4905      1.1    jruoho             }
   4906      1.1    jruoho 
   4907      1.1    jruoho             //****************************************************
   4908      1.1    jruoho             // Check the stored single bits
   4909      1.1    jruoho             if(LNotEqual(RES1, 1))
   4910      1.1    jruoho             {
   4911      1.1    jruoho                 Return(1)
   4912      1.1    jruoho             }
   4913      1.1    jruoho 
   4914      1.1    jruoho             if(LNotEqual(RES2, 1))
   4915      1.1    jruoho             {
   4916      1.1    jruoho                 Return(1)
   4917      1.1    jruoho             }
   4918      1.1    jruoho 
   4919      1.1    jruoho             if(LNotEqual(RES3, 1))
   4920      1.1    jruoho             {
   4921      1.1    jruoho                 Return(1)
   4922      1.1    jruoho             }
   4923      1.1    jruoho 
   4924      1.1    jruoho             if(LNotEqual(RES4, 1))
   4925      1.1    jruoho             {
   4926      1.1    jruoho                 Return(1)
   4927      1.1    jruoho             }
   4928      1.1    jruoho 
   4929      1.1    jruoho             // Change all of the single bit fields to zero
   4930      1.1    jruoho             Store(0, RES1)
   4931      1.1    jruoho             Store(0, RES2)
   4932      1.1    jruoho             Store(0, RES3)
   4933      1.1    jruoho             Store(0, RES4)
   4934      1.1    jruoho 
   4935      1.1    jruoho             // Now, check all of the fields
   4936      1.1    jruoho 
   4937      1.1    jruoho             // Byte
   4938      1.1    jruoho             if(LNotEqual(BYT1, 0x12))
   4939      1.1    jruoho             {
   4940      1.1    jruoho                 Return(1)
   4941      1.1    jruoho             }
   4942      1.1    jruoho 
   4943      1.1    jruoho             if(LNotEqual(BYT2, 0xFE))
   4944      1.1    jruoho             {
   4945      1.1    jruoho                 Return(1)
   4946      1.1    jruoho             }
   4947      1.1    jruoho 
   4948      1.1    jruoho             if(LNotEqual(RBYT, 0xAB))
   4949      1.1    jruoho             {
   4950      1.1    jruoho                 Return(1)
   4951      1.1    jruoho             }
   4952      1.1    jruoho 
   4953      1.1    jruoho             // Word
   4954      1.1    jruoho             if(LNotEqual(WRD1, 0x1234))
   4955      1.1    jruoho             {
   4956      1.1    jruoho                 Return(1)
   4957      1.1    jruoho             }
   4958      1.1    jruoho 
   4959      1.1    jruoho             if(LNotEqual(WRD2, 0xFEDC))
   4960      1.1    jruoho             {
   4961      1.1    jruoho                 Return(1)
   4962      1.1    jruoho             }
   4963      1.1    jruoho 
   4964      1.1    jruoho             if(LNotEqual(RWRD, 0x87AB))
   4965      1.1    jruoho             {
   4966      1.1    jruoho                 Return(1)
   4967      1.1    jruoho             }
   4968      1.1    jruoho 
   4969      1.1    jruoho             // Dword
   4970      1.1    jruoho             if(LNotEqual(DWD1, 0x12345678))
   4971      1.1    jruoho             {
   4972      1.1    jruoho                 Return(1)
   4973      1.1    jruoho             }
   4974      1.1    jruoho 
   4975      1.1    jruoho             if(LNotEqual(DWD2, 0xFEDCBA98))
   4976      1.1    jruoho             {
   4977      1.1    jruoho                 Return(1)
   4978      1.1    jruoho             }
   4979      1.1    jruoho 
   4980      1.1    jruoho             if(LNotEqual(RDWD, 0x91827364))
   4981      1.1    jruoho             {
   4982      1.1    jruoho                 Return(1)
   4983      1.1    jruoho             }
   4984      1.1    jruoho 
   4985      1.1    jruoho             // Bits
   4986      1.1    jruoho             if(LNotEqual(RES1, 0))
   4987      1.1    jruoho             {
   4988      1.1    jruoho                 Return(1)
   4989      1.1    jruoho             }
   4990      1.1    jruoho 
   4991      1.1    jruoho             if(LNotEqual(RES2, 0))
   4992      1.1    jruoho             {
   4993      1.1    jruoho                 Return(1)
   4994      1.1    jruoho             }
   4995      1.1    jruoho 
   4996      1.1    jruoho             if(LNotEqual(RES3, 0))
   4997      1.1    jruoho             {
   4998      1.1    jruoho                 Return(1)
   4999      1.1    jruoho             }
   5000      1.1    jruoho 
   5001      1.1    jruoho             if(LNotEqual(RES4, 0))
   5002      1.1    jruoho             {
   5003      1.1    jruoho                 Return(1)
   5004      1.1    jruoho             }
   5005      1.1    jruoho 
   5006      1.1    jruoho 
   5007      1.1    jruoho             Return(0)
   5008      1.1    jruoho         }   //  TEST
   5009      1.1    jruoho     }   //  XORD
   5010      1.1    jruoho 
   5011      1.1    jruoho //
   5012      1.1    jruoho // test CrBytFld.asl
   5013      1.1    jruoho //
   5014      1.1    jruoho //  CrBytFld test
   5015      1.1    jruoho //      Test for CreateByteField.
   5016      1.1    jruoho //      Tests creating byte field overlay of buffer stored in Local0.
   5017      1.1    jruoho //      Tests need to be added for Arg0 and Name buffers.
   5018      1.1    jruoho //
   5019      1.1    jruoho     Device (CRBF)
   5020      1.1    jruoho     {   //  Test device name
   5021      1.1    jruoho         Method (TEST)
   5022      1.1    jruoho         {
   5023      1.1    jruoho             Store ("++++++++ CrBytFld Test", Debug)
   5024      1.1    jruoho 
   5025      1.1    jruoho             //  Local0 is unitialized buffer with 4 elements
   5026      1.1    jruoho             Store (Buffer (4) {}, Local0)
   5027      1.1    jruoho 
   5028      1.1    jruoho             //  create Byte Field named BF0 based on Local0 element 0
   5029      1.1    jruoho             CreateByteField (Local0, 0, BF0)
   5030      1.1    jruoho 
   5031      1.1    jruoho             //  validate CreateByteField did not alter Local0
   5032      1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5033      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5034      1.1    jruoho                 {   Return (2)  }
   5035      1.1    jruoho 
   5036      1.1    jruoho             //  store something into BF0
   5037      1.1    jruoho             Store (1, BF0)
   5038      1.1    jruoho 
   5039      1.1    jruoho             //  validate Store did not alter Local0 object type
   5040      1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5041      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5042      1.1    jruoho                 {   Return (3)  }
   5043      1.1    jruoho 
   5044      1.1    jruoho             //  verify that the Store into BF0 was successful
   5045      1.1    jruoho             If (LNotEqual (BF0, 1))
   5046      1.1    jruoho                 {   Return (4)  }
   5047      1.1    jruoho 
   5048      1.1    jruoho 
   5049      1.1    jruoho             //  create Byte Field named BF1 based on Local0 element 1
   5050      1.1    jruoho             CreateByteField (Local0, 1, BF1)
   5051      1.1    jruoho 
   5052      1.1    jruoho             //  validate CreateByteField did not alter Local0
   5053      1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5054      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5055      1.1    jruoho                 {   Return (10) }
   5056      1.1    jruoho 
   5057      1.1    jruoho             //  store something into BF1
   5058      1.1    jruoho             Store (5, BF1)
   5059      1.1    jruoho 
   5060      1.1    jruoho             //  validate Store did not alter Local0 object type
   5061      1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5062      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5063      1.1    jruoho                 {   Return (11) }
   5064      1.1    jruoho 
   5065      1.1    jruoho             //  verify that the Store into BF1 was successful
   5066      1.1    jruoho             If (LNotEqual (BF1, 5))
   5067      1.1    jruoho                 {   Return (12) }
   5068      1.1    jruoho 
   5069      1.1    jruoho             //  verify that the Store into BF1 did not alter BF0
   5070      1.1    jruoho             If (LNotEqual (BF0, 1))
   5071      1.1    jruoho                 {   Return (13) }
   5072      1.1    jruoho 
   5073      1.1    jruoho 
   5074      1.1    jruoho             //  store something into BF0
   5075      1.1    jruoho             Store (0xFFFF, BF0)
   5076      1.1    jruoho 
   5077      1.1    jruoho             //  verify that the Store into BF0 was successful
   5078      1.1    jruoho             If (LNotEqual (BF0, 0xFF))
   5079      1.1    jruoho                 {   Return (20) }
   5080      1.1    jruoho 
   5081      1.1    jruoho             //  verify that the Store into BF0 did not alter BF1
   5082      1.1    jruoho             If (LNotEqual (BF1, 5))
   5083      1.1    jruoho                 {   Return (21) }
   5084      1.1    jruoho 
   5085      1.1    jruoho 
   5086      1.1    jruoho             Return (0)
   5087      1.1    jruoho         }   //  TEST
   5088      1.1    jruoho     }   //  CRBF
   5089      1.1    jruoho 
   5090      1.1    jruoho //
   5091      1.1    jruoho // test IndexOp4.asl
   5092      1.1    jruoho //
   5093      1.1    jruoho //  IndexOp4 test
   5094      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   5095      1.1    jruoho //      Tests access of index fields smaller than 8 bits.
   5096      1.1    jruoho //
   5097      1.1    jruoho     Device (IDX4)
   5098      1.1    jruoho     {   //  Test device name
   5099      1.1    jruoho 
   5100      1.1    jruoho         //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
   5101      1.1    jruoho         //          Tests OperationRegion memory access using misaligned BYTE,
   5102      1.1    jruoho         //          WORD, and DWORD field element accesses. Validation is performed
   5103      1.1    jruoho         //          using both misaligned field entries and aligned field entries.
   5104      1.1    jruoho         //
   5105      1.1    jruoho         //          MADM returns 0 if all test cases pass or non-zero identifying
   5106      1.1    jruoho         //          the failing test case for debug purposes. This non-zero numbers
   5107      1.1    jruoho         //          are not guaranteed to be in perfect sequence (i.e., test case
   5108      1.1    jruoho         //          index), but are guaranteed to be unique so the failing test
   5109      1.1    jruoho         //          case can be uniquely identified.
   5110      1.1    jruoho         //
   5111  1.1.1.3  christos         Method (MADM, 1, Serialized)    //  Misaligned Dynamic RAM SystemMemory OperationRegion
   5112      1.1    jruoho         //  Arg0    --  SystemMemory OperationRegion base address
   5113      1.1    jruoho         {   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
   5114      1.1    jruoho             OperationRegion (RAM, SystemMemory, Arg0, 0x100)
   5115      1.1    jruoho             Field (RAM, DwordAcc, NoLock, Preserve)
   5116      1.1    jruoho             {   //  aligned field definition (for verification)
   5117      1.1    jruoho                 DWD0,   32, //  aligned DWORD field
   5118      1.1    jruoho                 DWD1,   32      //  aligned DWORD field
   5119      1.1    jruoho             }
   5120      1.1    jruoho             Field (RAM, ByteAcc, NoLock, Preserve)
   5121      1.1    jruoho             {   //  bit access field definition
   5122      1.1    jruoho                 BIT0,   1,      //  single bit field entry
   5123      1.1    jruoho                 BIT1,   1,      //  single bit field entry
   5124      1.1    jruoho                 BIT2,   1,      //  single bit field entry
   5125      1.1    jruoho                 BIT3,   1,      //  single bit field entry
   5126      1.1    jruoho                 BIT4,   1,      //  single bit field entry
   5127      1.1    jruoho                 BIT5,   1,      //  single bit field entry
   5128      1.1    jruoho                 BIT6,   1,      //  single bit field entry
   5129      1.1    jruoho                 BIT7,   1,      //  single bit field entry
   5130      1.1    jruoho                 BIT8,   1,      //  single bit field entry
   5131      1.1    jruoho                 BIT9,   1,      //  single bit field entry
   5132      1.1    jruoho                 BITA,   1,      //  single bit field entry
   5133      1.1    jruoho                 BITB,   1,      //  single bit field entry
   5134      1.1    jruoho                 BITC,   1,      //  single bit field entry
   5135      1.1    jruoho                 BITD,   1,      //  single bit field entry
   5136      1.1    jruoho                 BITE,   1,      //  single bit field entry
   5137      1.1    jruoho                 BITF,   1,      //  single bit field entry
   5138      1.1    jruoho                 BI10,   1,      //  single bit field entry
   5139      1.1    jruoho                 BI11,   1,      //  single bit field entry
   5140      1.1    jruoho                 BI12,   1,      //  single bit field entry
   5141      1.1    jruoho                 BI13,   1,      //  single bit field entry
   5142      1.1    jruoho                 BI14,   1,      //  single bit field entry
   5143      1.1    jruoho                 BI15,   1,      //  single bit field entry
   5144      1.1    jruoho                 BI16,   1,      //  single bit field entry
   5145      1.1    jruoho                 BI17,   1,      //  single bit field entry
   5146      1.1    jruoho                 BI18,   1,      //  single bit field entry
   5147      1.1    jruoho                 BI19,   1,      //  single bit field entry
   5148      1.1    jruoho                 BI1A,   1,      //  single bit field entry
   5149      1.1    jruoho                 BI1B,   1,      //  single bit field entry
   5150      1.1    jruoho                 BI1C,   1,      //  single bit field entry
   5151      1.1    jruoho                 BI1D,   1,      //  single bit field entry
   5152      1.1    jruoho                 BI1E,   1,      //  single bit field entry
   5153      1.1    jruoho                 BI1F,   1       //  single bit field entry
   5154      1.1    jruoho             }   //  bit access field definition
   5155      1.1    jruoho 
   5156      1.1    jruoho             Field (RAM, ByteAcc, NoLock, Preserve)
   5157      1.1    jruoho             {   //  two-bit access field definition
   5158      1.1    jruoho                 B2_0,   2,      //  single bit field entry
   5159      1.1    jruoho                 B2_1,   2,      //  single bit field entry
   5160      1.1    jruoho                 B2_2,   2,      //  single bit field entry
   5161      1.1    jruoho                 B2_3,   2,      //  single bit field entry
   5162      1.1    jruoho                 B2_4,   2,      //  single bit field entry
   5163      1.1    jruoho                 B2_5,   2,      //  single bit field entry
   5164      1.1    jruoho                 B2_6,   2,      //  single bit field entry
   5165      1.1    jruoho                 B2_7,   2,      //  single bit field entry
   5166      1.1    jruoho                 B2_8,   2,      //  single bit field entry
   5167      1.1    jruoho                 B2_9,   2,      //  single bit field entry
   5168      1.1    jruoho                 B2_A,   2,      //  single bit field entry
   5169      1.1    jruoho                 B2_B,   2,      //  single bit field entry
   5170      1.1    jruoho                 B2_C,   2,      //  single bit field entry
   5171      1.1    jruoho                 B2_D,   2,      //  single bit field entry
   5172      1.1    jruoho                 B2_E,   2,      //  single bit field entry
   5173      1.1    jruoho                 B2_F,   2       //  single bit field entry
   5174      1.1    jruoho             }   //  bit access field definition
   5175      1.1    jruoho 
   5176      1.1    jruoho             //  initialize memory contents using aligned field entries
   5177      1.1    jruoho             Store (0x5AA55AA5, DWD0)
   5178      1.1    jruoho             Store (0x5AA55AA5, DWD1)
   5179      1.1    jruoho 
   5180      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5181      1.1    jruoho             Store (0, BIT0)
   5182      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5183      1.1    jruoho                 If (LNotEqual (BIT0, 0))
   5184      1.1    jruoho                     {   Return (1)  }
   5185      1.1    jruoho                 //  verify memory contents using aligned field entries
   5186      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AA4))
   5187      1.1    jruoho                     {   Return (2)  }
   5188      1.1    jruoho 
   5189      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5190      1.1    jruoho             Store (1, BIT1)
   5191      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5192      1.1    jruoho                 If (LNotEqual (BIT1, 1))
   5193      1.1    jruoho                     {   Return (3)  }
   5194      1.1    jruoho                 //  verify memory contents using aligned field entries
   5195      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AA6))
   5196      1.1    jruoho                     {   Return (4)  }
   5197      1.1    jruoho 
   5198      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5199      1.1    jruoho             Store (0, BIT2)
   5200      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5201      1.1    jruoho                 If (LNotEqual (BIT2, 0))
   5202      1.1    jruoho                     {   Return (5)  }
   5203      1.1    jruoho                 //  verify memory contents using aligned field entries
   5204      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AA2))
   5205      1.1    jruoho                     {   Return (6)  }
   5206      1.1    jruoho 
   5207      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5208      1.1    jruoho             Store (1, BIT3)
   5209      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5210      1.1    jruoho                 If (LNotEqual (BIT3, 1))
   5211      1.1    jruoho                     {   Return (7)  }
   5212      1.1    jruoho                 //  verify memory contents using aligned field entries
   5213      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AAA))
   5214      1.1    jruoho                     {   Return (8)  }
   5215      1.1    jruoho 
   5216      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5217      1.1    jruoho             Store (1, BIT4)
   5218      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5219      1.1    jruoho                 If (LNotEqual (BIT4, 1))
   5220      1.1    jruoho                     {   Return (9)  }
   5221      1.1    jruoho                 //  verify memory contents using aligned field entries
   5222      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55ABA))
   5223      1.1    jruoho                     {   Return (10) }
   5224      1.1    jruoho 
   5225      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5226      1.1    jruoho             Store (0, BIT5)
   5227      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5228      1.1    jruoho                 If (LNotEqual (BIT5, 0))
   5229      1.1    jruoho                     {   Return (11) }
   5230      1.1    jruoho                 //  verify memory contents using aligned field entries
   5231      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55A9A))
   5232      1.1    jruoho                     {   Return (12) }
   5233      1.1    jruoho 
   5234      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5235      1.1    jruoho             Store (1, BIT6)
   5236      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5237      1.1    jruoho                 If (LNotEqual (BIT6, 1))
   5238      1.1    jruoho                     {   Return (13) }
   5239      1.1    jruoho                 //  verify memory contents using aligned field entries
   5240      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55ADA))
   5241      1.1    jruoho                     {   Return (14) }
   5242      1.1    jruoho 
   5243      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5244      1.1    jruoho             Store (0, BIT7)
   5245      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5246      1.1    jruoho                 If (LNotEqual (BIT7, 0))
   5247      1.1    jruoho                     {   Return (15) }
   5248      1.1    jruoho                 //  verify memory contents using aligned field entries
   5249      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55A5A))
   5250      1.1    jruoho                     {   Return (16) }
   5251      1.1    jruoho 
   5252      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5253      1.1    jruoho             Store (1, BIT8)
   5254      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5255      1.1    jruoho                 If (LNotEqual (BIT8, 1))
   5256      1.1    jruoho                     {   Return (17) }
   5257      1.1    jruoho                 //  verify memory contents using aligned field entries
   5258      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55B5A))
   5259      1.1    jruoho                     {   Return (18) }
   5260      1.1    jruoho 
   5261      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5262      1.1    jruoho             Store (0, BIT9)
   5263      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5264      1.1    jruoho                 If (LNotEqual (BIT9, 0))
   5265      1.1    jruoho                     {   Return (19) }
   5266      1.1    jruoho                 //  verify memory contents using aligned field entries
   5267      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5595A))
   5268      1.1    jruoho                     {   Return (20) }
   5269      1.1    jruoho 
   5270      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5271      1.1    jruoho             Store (1, BITA)
   5272      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5273      1.1    jruoho                 If (LNotEqual (BITA, 1))
   5274      1.1    jruoho                     {   Return (21) }
   5275      1.1    jruoho                 //  verify memory contents using aligned field entries
   5276      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55D5A))
   5277      1.1    jruoho                     {   Return (22) }
   5278      1.1    jruoho 
   5279      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5280      1.1    jruoho             Store (0, BITB)
   5281      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5282      1.1    jruoho                 If (LNotEqual (BITB, 0))
   5283      1.1    jruoho                     {   Return (23) }
   5284      1.1    jruoho                 //  verify memory contents using aligned field entries
   5285      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5555A))
   5286      1.1    jruoho                     {   Return (24) }
   5287      1.1    jruoho 
   5288      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5289      1.1    jruoho             Store (0, BITC)
   5290      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5291      1.1    jruoho                 If (LNotEqual (BITC, 0))
   5292      1.1    jruoho                     {   Return (25) }
   5293      1.1    jruoho                 //  verify memory contents using aligned field entries
   5294      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5455A))
   5295      1.1    jruoho                     {   Return (26) }
   5296      1.1    jruoho 
   5297      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5298      1.1    jruoho             Store (1, BITD)
   5299      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5300      1.1    jruoho                 If (LNotEqual (BITD, 1))
   5301      1.1    jruoho                     {   Return (27) }
   5302      1.1    jruoho                 //  verify memory contents using aligned field entries
   5303      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5655A))
   5304      1.1    jruoho                     {   Return (28) }
   5305      1.1    jruoho 
   5306      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5307      1.1    jruoho             Store (0, BITE)
   5308      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5309      1.1    jruoho                 If (LNotEqual (BITE, 0))
   5310      1.1    jruoho                     {   Return (29) }
   5311      1.1    jruoho                 //  verify memory contents using aligned field entries
   5312      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5255A))
   5313      1.1    jruoho                     {   Return (30) }
   5314      1.1    jruoho 
   5315      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5316      1.1    jruoho             Store (1, BITF)
   5317      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5318      1.1    jruoho                 If (LNotEqual (BITF, 1))
   5319      1.1    jruoho                     {   Return (31) }
   5320      1.1    jruoho                 //  verify memory contents using aligned field entries
   5321      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5A55A))
   5322      1.1    jruoho                     {   Return (32) }
   5323      1.1    jruoho 
   5324      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5325      1.1    jruoho             Store (0, BI10)
   5326      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5327      1.1    jruoho                 If (LNotEqual (BI10, 0))
   5328      1.1    jruoho                     {   Return (33) }
   5329      1.1    jruoho                 //  verify memory contents using aligned field entries
   5330      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA4A55A))
   5331      1.1    jruoho                     {   Return (34) }
   5332      1.1    jruoho 
   5333      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5334      1.1    jruoho             Store (1, BI11)
   5335      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5336      1.1    jruoho                 If (LNotEqual (BI11, 1))
   5337      1.1    jruoho                     {   Return (35) }
   5338      1.1    jruoho                 //  verify memory contents using aligned field entries
   5339      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA6A55A))
   5340      1.1    jruoho                     {   Return (36) }
   5341      1.1    jruoho 
   5342      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5343      1.1    jruoho             Store (0, BI12)
   5344      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5345      1.1    jruoho                 If (LNotEqual (BI12, 0))
   5346      1.1    jruoho                     {   Return (37) }
   5347      1.1    jruoho                 //  verify memory contents using aligned field entries
   5348      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA2A55A))
   5349      1.1    jruoho                     {   Return (38) }
   5350      1.1    jruoho 
   5351      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5352      1.1    jruoho             Store (1, BI13)
   5353      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5354      1.1    jruoho                 If (LNotEqual (BI13, 1))
   5355      1.1    jruoho                     {   Return (39) }
   5356      1.1    jruoho                 //  verify memory contents using aligned field entries
   5357      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AAAA55A))
   5358      1.1    jruoho                     {   Return (40) }
   5359      1.1    jruoho 
   5360      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5361      1.1    jruoho             Store (1, BI14)
   5362      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5363      1.1    jruoho                 If (LNotEqual (BI14, 1))
   5364      1.1    jruoho                     {   Return (41) }
   5365      1.1    jruoho                 //  verify memory contents using aligned field entries
   5366      1.1    jruoho                 If (LNotEqual (DWD0, 0x5ABAA55A))
   5367      1.1    jruoho                     {   Return (42) }
   5368      1.1    jruoho 
   5369      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5370      1.1    jruoho             Store (0, BI15)
   5371      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5372      1.1    jruoho                 If (LNotEqual (BI15, 0))
   5373      1.1    jruoho                     {   Return (43) }
   5374      1.1    jruoho                 //  verify memory contents using aligned field entries
   5375      1.1    jruoho                 If (LNotEqual (DWD0, 0x5A9AA55A))
   5376      1.1    jruoho                     {   Return (44) }
   5377      1.1    jruoho 
   5378      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5379      1.1    jruoho             Store (1, BI16)
   5380      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5381      1.1    jruoho                 If (LNotEqual (BI16, 1))
   5382      1.1    jruoho                     {   Return (45) }
   5383      1.1    jruoho                 //  verify memory contents using aligned field entries
   5384      1.1    jruoho                 If (LNotEqual (DWD0, 0x5ADAA55A))
   5385      1.1    jruoho                     {   Return (46) }
   5386      1.1    jruoho 
   5387      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5388      1.1    jruoho             Store (0, BI17)
   5389      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5390      1.1    jruoho                 If (LNotEqual (BI17, 0))
   5391      1.1    jruoho                     {   Return (47) }
   5392      1.1    jruoho                 //  verify memory contents using aligned field entries
   5393      1.1    jruoho                 If (LNotEqual (DWD0, 0x5A5AA55A))
   5394      1.1    jruoho                     {   Return (48) }
   5395      1.1    jruoho 
   5396      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5397      1.1    jruoho             Store (1, BI18)
   5398      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5399      1.1    jruoho                 If (LNotEqual (BI18, 1))
   5400      1.1    jruoho                     {   Return (49) }
   5401      1.1    jruoho                 //  verify memory contents using aligned field entries
   5402      1.1    jruoho                 If (LNotEqual (DWD0, 0x5B5AA55A))
   5403      1.1    jruoho                     {   Return (50) }
   5404      1.1    jruoho 
   5405      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5406      1.1    jruoho             Store (0, BI19)
   5407      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5408      1.1    jruoho                 If (LNotEqual (BI19, 0))
   5409      1.1    jruoho                     {   Return (51) }
   5410      1.1    jruoho                 //  verify memory contents using aligned field entries
   5411      1.1    jruoho                 If (LNotEqual (DWD0, 0x595AA55A))
   5412      1.1    jruoho                     {   Return (52) }
   5413      1.1    jruoho 
   5414      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5415      1.1    jruoho             Store (1, BI1A)
   5416      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5417      1.1    jruoho                 If (LNotEqual (BI1A, 1))
   5418      1.1    jruoho                     {   Return (53) }
   5419      1.1    jruoho                 //  verify memory contents using aligned field entries
   5420      1.1    jruoho                 If (LNotEqual (DWD0, 0x5D5AA55A))
   5421      1.1    jruoho                     {   Return (54) }
   5422      1.1    jruoho 
   5423      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5424      1.1    jruoho             Store (0, BI1B)
   5425      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5426      1.1    jruoho                 If (LNotEqual (BI1B, 0))
   5427      1.1    jruoho                     {   Return (55) }
   5428      1.1    jruoho                 //  verify memory contents using aligned field entries
   5429      1.1    jruoho                 If (LNotEqual (DWD0, 0x555AA55A))
   5430      1.1    jruoho                     {   Return (56) }
   5431      1.1    jruoho 
   5432      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5433      1.1    jruoho             Store (0, BI1C)
   5434      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5435      1.1    jruoho                 If (LNotEqual (BI1C, 0))
   5436      1.1    jruoho                     {   Return (57) }
   5437      1.1    jruoho                 //  verify memory contents using aligned field entries
   5438      1.1    jruoho                 If (LNotEqual (DWD0, 0x455AA55A))
   5439      1.1    jruoho                     {   Return (58) }
   5440      1.1    jruoho 
   5441      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5442      1.1    jruoho             Store (1, BI1D)
   5443      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5444      1.1    jruoho                 If (LNotEqual (BI1D, 1))
   5445      1.1    jruoho                     {   Return (59) }
   5446      1.1    jruoho                 //  verify memory contents using aligned field entries
   5447      1.1    jruoho                 If (LNotEqual (DWD0, 0x655AA55A))
   5448      1.1    jruoho                     {   Return (60) }
   5449      1.1    jruoho 
   5450      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5451      1.1    jruoho             Store (0, BI1E)
   5452      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5453      1.1    jruoho                 If (LNotEqual (BI1E, 0))
   5454      1.1    jruoho                     {   Return (61) }
   5455      1.1    jruoho                 //  verify memory contents using aligned field entries
   5456      1.1    jruoho                 If (LNotEqual (DWD0, 0x255AA55A))
   5457      1.1    jruoho                     {   Return (62) }
   5458      1.1    jruoho 
   5459      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5460      1.1    jruoho             Store (1, BI1F)
   5461      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5462      1.1    jruoho                 If (LNotEqual (BI1F, 1))
   5463      1.1    jruoho                     {   Return (63) }
   5464      1.1    jruoho                 //  verify memory contents using aligned field entries
   5465      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA55A))
   5466      1.1    jruoho                     {   Return (64) }
   5467      1.1    jruoho 
   5468      1.1    jruoho 
   5469      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5470      1.1    jruoho             Store (3, B2_0)
   5471      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5472      1.1    jruoho                 If (LNotEqual (B2_0, 3))
   5473      1.1    jruoho                     {   Return (65) }
   5474      1.1    jruoho                 //  verify memory contents using aligned field entries
   5475      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA55B))
   5476      1.1    jruoho                     {   Return (66) }
   5477      1.1    jruoho 
   5478      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5479      1.1    jruoho             Store (1, B2_1)
   5480      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5481      1.1    jruoho                 If (LNotEqual (B2_1, 1))
   5482      1.1    jruoho                     {   Return (67) }
   5483      1.1    jruoho                 //  verify memory contents using aligned field entries
   5484      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA557))
   5485      1.1    jruoho                     {   Return (68) }
   5486      1.1    jruoho 
   5487      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5488      1.1    jruoho             Store (0, B2_2)
   5489      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5490      1.1    jruoho                 If (LNotEqual (B2_2, 0))
   5491      1.1    jruoho                     {   Return (69) }
   5492      1.1    jruoho                 //  verify memory contents using aligned field entries
   5493      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA547))
   5494      1.1    jruoho                     {   Return (70) }
   5495      1.1    jruoho 
   5496      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5497      1.1    jruoho             Store (3, B2_3)
   5498      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5499      1.1    jruoho                 If (LNotEqual (B2_3, 3))
   5500      1.1    jruoho                     {   Return (71) }
   5501      1.1    jruoho                 //  verify memory contents using aligned field entries
   5502      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA5C7))
   5503      1.1    jruoho                     {   Return (72) }
   5504      1.1    jruoho 
   5505      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5506      1.1    jruoho             Store (3, B2_4)
   5507      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5508      1.1    jruoho                 If (LNotEqual (B2_4, 3))
   5509      1.1    jruoho                     {   Return (73) }
   5510      1.1    jruoho                 //  verify memory contents using aligned field entries
   5511      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA7C7))
   5512      1.1    jruoho                     {   Return (74) }
   5513      1.1    jruoho 
   5514      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5515      1.1    jruoho             Store (0, B2_5)
   5516      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5517      1.1    jruoho                 If (LNotEqual (B2_5, 0))
   5518      1.1    jruoho                     {   Return (75) }
   5519      1.1    jruoho                 //  verify memory contents using aligned field entries
   5520      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA3C7))
   5521      1.1    jruoho                     {   Return (76) }
   5522      1.1    jruoho 
   5523      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5524      1.1    jruoho             Store (1, B2_6)
   5525      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5526      1.1    jruoho                 If (LNotEqual (B2_6, 1))
   5527      1.1    jruoho                     {   Return (77) }
   5528      1.1    jruoho                 //  verify memory contents using aligned field entries
   5529      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55A93C7))
   5530      1.1    jruoho                     {   Return (78) }
   5531      1.1    jruoho 
   5532      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5533      1.1    jruoho             Store (1, B2_7)
   5534      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5535      1.1    jruoho                 If (LNotEqual (B2_7, 1))
   5536      1.1    jruoho                     {   Return (79) }
   5537      1.1    jruoho                 //  verify memory contents using aligned field entries
   5538      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55A53C7))
   5539      1.1    jruoho                     {   Return (80) }
   5540      1.1    jruoho 
   5541      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5542      1.1    jruoho             Store (0, B2_8)
   5543      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5544      1.1    jruoho                 If (LNotEqual (B2_8, 0))
   5545      1.1    jruoho                     {   Return (81) }
   5546      1.1    jruoho                 //  verify memory contents using aligned field entries
   5547      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55853C7))
   5548      1.1    jruoho                     {   Return (82) }
   5549      1.1    jruoho 
   5550      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5551      1.1    jruoho             Store (1, B2_9)
   5552      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5553      1.1    jruoho                 If (LNotEqual (B2_9, 1))
   5554      1.1    jruoho                     {   Return (83) }
   5555      1.1    jruoho                 //  verify memory contents using aligned field entries
   5556      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55453C7))
   5557      1.1    jruoho                     {   Return (84) }
   5558      1.1    jruoho 
   5559      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5560      1.1    jruoho             Store (2, B2_A)
   5561      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5562      1.1    jruoho                 If (LNotEqual (B2_A, 2))
   5563      1.1    jruoho                     {   Return (85) }
   5564      1.1    jruoho                 //  verify memory contents using aligned field entries
   5565      1.1    jruoho                 If (LNotEqual (DWD0, 0xA56453C7))
   5566      1.1    jruoho                     {   Return (86) }
   5567      1.1    jruoho 
   5568      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5569      1.1    jruoho             Store (2, B2_B)
   5570      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5571      1.1    jruoho                 If (LNotEqual (B2_B, 2))
   5572      1.1    jruoho                     {   Return (87) }
   5573      1.1    jruoho                 //  verify memory contents using aligned field entries
   5574      1.1    jruoho                 If (LNotEqual (DWD0, 0xA5A453C7))
   5575      1.1    jruoho                     {   Return (88) }
   5576      1.1    jruoho 
   5577      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5578      1.1    jruoho             Store (3, B2_C)
   5579      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5580      1.1    jruoho                 If (LNotEqual (B2_C, 3))
   5581      1.1    jruoho                     {   Return (89) }
   5582      1.1    jruoho                 //  verify memory contents using aligned field entries
   5583      1.1    jruoho                 If (LNotEqual (DWD0, 0xA7A453C7))
   5584      1.1    jruoho                     {   Return (90) }
   5585      1.1    jruoho 
   5586      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5587      1.1    jruoho             Store (3, B2_D)
   5588      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5589      1.1    jruoho                 If (LNotEqual (B2_D, 3))
   5590      1.1    jruoho                     {   Return (91) }
   5591      1.1    jruoho                 //  verify memory contents using aligned field entries
   5592      1.1    jruoho                 If (LNotEqual (DWD0, 0xAFA453C7))
   5593      1.1    jruoho                     {   Return (92) }
   5594      1.1    jruoho 
   5595      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5596      1.1    jruoho             Store (1, B2_E)
   5597      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5598      1.1    jruoho                 If (LNotEqual (B2_E, 1))
   5599      1.1    jruoho                     {   Return (93) }
   5600      1.1    jruoho                 //  verify memory contents using aligned field entries
   5601      1.1    jruoho                 If (LNotEqual (DWD0, 0x9FA453C7))
   5602      1.1    jruoho                     {   Return (94) }
   5603      1.1    jruoho 
   5604      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5605      1.1    jruoho             Store (0, B2_F)
   5606      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5607      1.1    jruoho                 If (LNotEqual (B2_F, 0))
   5608      1.1    jruoho                     {   Return (95) }
   5609      1.1    jruoho                 //  verify memory contents using aligned field entries
   5610      1.1    jruoho                 If (LNotEqual (DWD0, 0x1FA453C7))
   5611      1.1    jruoho                     {   Return (96) }
   5612      1.1    jruoho 
   5613      1.1    jruoho 
   5614      1.1    jruoho             Return (0)  //  pass
   5615      1.1    jruoho         }   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
   5616      1.1    jruoho 
   5617      1.1    jruoho         Method (TEST)
   5618      1.1    jruoho         {
   5619      1.1    jruoho             Store ("++++++++ IndexOp4 Test", Debug)
   5620      1.1    jruoho 
   5621      1.1    jruoho             //  MADM (Misaligned Dynamic RAM SystemMemory OperationRegion) arguments:
   5622      1.1    jruoho             //      Arg0    --  SystemMemory OperationRegion base address
   5623      1.1    jruoho             Store (MADM (0x800000), Local0)
   5624      1.1    jruoho             If (LNotEqual (Local0, 0))      //  MADM returns zero if successful
   5625      1.1    jruoho                 {   Return (Local0) }       //  failure:    return MADM error code
   5626      1.1    jruoho 
   5627      1.1    jruoho             Return (Local0)
   5628      1.1    jruoho         }   //  TEST
   5629      1.1    jruoho     }   //  IDX4
   5630      1.1    jruoho 
   5631      1.1    jruoho //
   5632      1.1    jruoho // test Event.asl
   5633      1.1    jruoho //
   5634      1.1    jruoho //  EventOp, ResetOp, SignalOp, and WaitOp test cases.
   5635      1.1    jruoho //
   5636      1.1    jruoho     Device (EVNT)
   5637      1.1    jruoho     {
   5638      1.1    jruoho         Event (EVNT)    //  event synchronization object
   5639      1.1    jruoho 
   5640      1.1    jruoho         Method (TEVN, 1)
   5641      1.1    jruoho         //  Arg0:   time to Wait for event in milliseconds
   5642      1.1    jruoho         {   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
   5643      1.1    jruoho             //  reset EVNT to initialization (zero) state
   5644      1.1    jruoho             Reset (EVNT)
   5645      1.1    jruoho 
   5646      1.1    jruoho             //  prime EVNT with two outstanding signals
   5647      1.1    jruoho             Signal (EVNT)
   5648      1.1    jruoho             Signal (EVNT)
   5649      1.1    jruoho 
   5650      1.1    jruoho 
   5651      1.1    jruoho             //  acquire existing signal
   5652      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5653      1.1    jruoho 
   5654      1.1    jruoho             //  validate Local0 is a Number
   5655      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5656      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5657      1.1    jruoho                 {   Return (0x21)   }       //  Local1 indicates Local0 is not a Number
   5658      1.1    jruoho 
   5659      1.1    jruoho             If (LNotEqual (Local0, 0))  //  Number is type 1
   5660      1.1    jruoho                 {   Return (0x22)   }       //  timeout occurred without acquiring signal
   5661      1.1    jruoho 
   5662      1.1    jruoho             Store ("Acquire 1st existing signal PASS", Debug)
   5663      1.1    jruoho 
   5664      1.1    jruoho 
   5665      1.1    jruoho             //  acquire existing signal
   5666      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5667      1.1    jruoho 
   5668      1.1    jruoho             //  validate Local0 is a Number
   5669      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5670      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5671      1.1    jruoho                 {   Return (0x31)   }       //  Local1 indicates Local0 is not a Number
   5672      1.1    jruoho 
   5673      1.1    jruoho             If (LNotEqual (Local0, 0))  //  Number is type 1
   5674      1.1    jruoho                 {   Return (0x32)   }       //  timeout occurred without acquiring signal
   5675      1.1    jruoho 
   5676      1.1    jruoho             Store ("Acquire 2nd existing signal PASS", Debug)
   5677      1.1    jruoho 
   5678      1.1    jruoho 
   5679      1.1    jruoho             //  ensure WaitOp timeout test cases do not hang
   5680      1.1    jruoho             if (LEqual (Arg0, 0xFFFF))
   5681      1.1    jruoho                 {   Store (0xFFFE, Arg0)    }
   5682      1.1    jruoho 
   5683      1.1    jruoho             //  acquire non-existing signal
   5684      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5685      1.1    jruoho 
   5686      1.1    jruoho             //  validate Local0 is a Number
   5687      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5688      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5689      1.1    jruoho                 {   Return (0x41)   }       //  Local1 indicates Local0 is not a Number
   5690      1.1    jruoho 
   5691      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5692      1.1    jruoho                 {   Return (0x42)   }       //  non-existant signal was acquired
   5693      1.1    jruoho 
   5694      1.1    jruoho             Store ("Acquire signal timeout PASS", Debug)
   5695      1.1    jruoho 
   5696      1.1    jruoho 
   5697      1.1    jruoho             //  prime EVNT with two outstanding signals
   5698      1.1    jruoho             Signal (EVNT)
   5699      1.1    jruoho             Signal (EVNT)
   5700      1.1    jruoho 
   5701      1.1    jruoho             //  reset EVNT to initialization (zero) state
   5702      1.1    jruoho             Reset (EVNT)
   5703      1.1    jruoho 
   5704      1.1    jruoho             //  acquire non-existing signal
   5705      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5706      1.1    jruoho 
   5707      1.1    jruoho             //  validate Local0 is a Number
   5708      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5709      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5710      1.1    jruoho                 {   Return (0x51)   }       //  Local1 indicates Local0 is not a Number
   5711      1.1    jruoho 
   5712      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5713      1.1    jruoho                 {   Return (0x52)   }       //  non-existant signal was acquired
   5714      1.1    jruoho 
   5715      1.1    jruoho             Store ("Reset signal PASS", Debug)
   5716      1.1    jruoho 
   5717      1.1    jruoho 
   5718      1.1    jruoho             //  acquire non-existing signal using Lvalue timeout
   5719      1.1    jruoho             Store (Wait (EVNT, Zero), Local0)
   5720      1.1    jruoho 
   5721      1.1    jruoho             //  validate Local0 is a Number
   5722      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5723      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5724      1.1    jruoho                 {   Return (0x61)   }       //  Local1 indicates Local0 is not a Number
   5725      1.1    jruoho 
   5726      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5727      1.1    jruoho                 {   Return (0x62)   }       //  non-existant signal was acquired
   5728      1.1    jruoho 
   5729      1.1    jruoho             Store ("Zero Lvalue PASS", Debug)
   5730      1.1    jruoho 
   5731      1.1    jruoho 
   5732      1.1    jruoho             //  acquire non-existing signal using Lvalue timeout
   5733      1.1    jruoho             Store (Wait (EVNT, One), Local0)
   5734      1.1    jruoho 
   5735      1.1    jruoho             //  validate Local0 is a Number
   5736      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5737      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5738      1.1    jruoho                 {   Return (0x71)   }       //  Local1 indicates Local0 is not a Number
   5739      1.1    jruoho 
   5740      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5741      1.1    jruoho                 {   Return (0x72)   }       //  non-existant signal was acquired
   5742      1.1    jruoho 
   5743      1.1    jruoho             Store ("One Lvalue PASS", Debug)
   5744      1.1    jruoho 
   5745      1.1    jruoho             //  Lvalue Event test cases
   5746      1.1    jruoho     // ILLEGAL SOURCE OPERAND        Store (EVNT, Local2)
   5747      1.1    jruoho 
   5748      1.1    jruoho             //  validate Local2 is an Event
   5749      1.1    jruoho             Store (ObjectType (EVNT), Local1)
   5750      1.1    jruoho             If (LNotEqual (Local1, 7))  //  Event is type 7
   5751      1.1    jruoho                 {   Return (0x81)   }       //  Local1 indicates Local0 is not a Number
   5752      1.1    jruoho 
   5753      1.1    jruoho             //  reset EVNT to initialization (zero) state
   5754      1.1    jruoho             Reset (EVNT)
   5755      1.1    jruoho 
   5756      1.1    jruoho             //  prime EVNT with two outstanding signals
   5757      1.1    jruoho             Signal (EVNT)
   5758      1.1    jruoho 
   5759      1.1    jruoho             //  acquire existing signal
   5760      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5761      1.1    jruoho 
   5762      1.1    jruoho             //  validate Local0 is a Number
   5763      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5764      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5765      1.1    jruoho                 {   Return (0x82)   }       //  Local1 indicates Local0 is not a Number
   5766      1.1    jruoho 
   5767      1.1    jruoho             If (LNotEqual (Local0, 0))  //  Number is type 1
   5768      1.1    jruoho                 {   Return (0x83)   }       //  timeout occurred without acquiring signal
   5769      1.1    jruoho 
   5770      1.1    jruoho             Store ("Acquire Lvalue existing signal PASS", Debug)
   5771      1.1    jruoho 
   5772      1.1    jruoho 
   5773      1.1    jruoho             //  acquire non-existing signal
   5774      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5775      1.1    jruoho 
   5776      1.1    jruoho             //  validate Local0 is a Number
   5777      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5778      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5779      1.1    jruoho                 {   Return (0x84)   }       //  Local1 indicates Local0 is not a Number
   5780      1.1    jruoho 
   5781      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5782      1.1    jruoho                 {   Return (0x85)   }       //  non-existant signal was acquired
   5783      1.1    jruoho 
   5784      1.1    jruoho             Store ("Acquire Lvalue signal timeout PASS", Debug)
   5785      1.1    jruoho 
   5786      1.1    jruoho 
   5787      1.1    jruoho             Return (0)  //  success
   5788      1.1    jruoho         }   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
   5789      1.1    jruoho 
   5790      1.1    jruoho         Method (TEST)
   5791      1.1    jruoho         {
   5792      1.1    jruoho             Store ("++++++++ Event Test", Debug)
   5793      1.1    jruoho 
   5794      1.1    jruoho             Store (TEVN (100), Local0)
   5795      1.1    jruoho 
   5796      1.1    jruoho             Return (Local0)
   5797      1.1    jruoho         }   //  TEST
   5798      1.1    jruoho     }   //  EVNT
   5799      1.1    jruoho 
   5800      1.1    jruoho //
   5801      1.1    jruoho // test SizeOfLv.asl
   5802      1.1    jruoho //
   5803      1.1    jruoho //  Test for SizeOf (Lvalue)
   5804      1.1    jruoho //
   5805      1.1    jruoho //  This next section will contain the packages that the SizeOfOp will be
   5806      1.1    jruoho //  exercised on.  The first one, PKG0, is a regular package of 3 elements.
   5807      1.1    jruoho //  The 2nd one, PKG1, is a nested package with 3 packages inside it, each
   5808      1.1    jruoho //  with 3 elements.  It is expected that SizeOf operator will return the
   5809      1.1    jruoho //  same value for these two packages since they both have 3 elements.  The
   5810      1.1    jruoho //  final package, PKG2, has 4 elements and the SizeOf operator is expected
   5811      1.1    jruoho //  to return different results for this package.
   5812      1.1    jruoho 
   5813      1.1    jruoho     Name (PKG0,
   5814      1.1    jruoho         Package (3)
   5815      1.1    jruoho         {0x0123, 0x4567, 0x89AB}
   5816      1.1    jruoho     )   //  PKG0
   5817      1.1    jruoho 
   5818      1.1    jruoho     Name (PKG1,
   5819      1.1    jruoho         Package (3)
   5820      1.1    jruoho         {
   5821      1.1    jruoho             Package (3) {0x0123, 0x4567, 0x89AB},
   5822      1.1    jruoho             Package (3) {0xCDEF, 0xFEDC, 0xBA98},
   5823      1.1    jruoho             Package (3) {0x7654, 0x3210, 0x1234}
   5824      1.1    jruoho         }
   5825      1.1    jruoho     )   //  PKG1
   5826      1.1    jruoho 
   5827      1.1    jruoho     Name (PKG2,
   5828      1.1    jruoho         Package (4)
   5829      1.1    jruoho         {0x0123, 0x4567, 0x89AB, 0x8888}
   5830      1.1    jruoho     )   //  PKG2
   5831      1.1    jruoho 
   5832      1.1    jruoho     Name (PKG3,
   5833      1.1    jruoho         Package (5)
   5834      1.1    jruoho         {0x0123, 0x4567, 0x89AB, 0x8888, 0x7777}
   5835      1.1    jruoho     )   //  PKG3
   5836      1.1    jruoho 
   5837      1.1    jruoho //  End Packages    **********************************************************
   5838      1.1    jruoho 
   5839      1.1    jruoho //  The following section will declare the data strings that will be used to
   5840      1.1    jruoho //  exercise the SizeOf operator.  STR0 and STR1 are expected to be equal,
   5841      1.1    jruoho //  STR2 is expected to have a different SizeOf value than STR0 and STR1.
   5842      1.1    jruoho 
   5843      1.1    jruoho     Name (STR0, "ACPI permits very flexible methods of expressing a system")
   5844      1.1    jruoho 
   5845      1.1    jruoho     Name (STR1, "MIKE permits very flexible methods of expressing a system")
   5846      1.1    jruoho 
   5847      1.1    jruoho     Name (STR2, "Needless to say, Mike and ACPI are frequently at odds")
   5848      1.1    jruoho 
   5849      1.1    jruoho //  This string is being made in case we want to do a SizeOf comparison
   5850      1.1    jruoho //  between strings and packages or buffers
   5851      1.1    jruoho     Name (STR3, "12345")
   5852      1.1    jruoho 
   5853      1.1    jruoho //  End Strings     **********************************************************
   5854      1.1    jruoho 
   5855      1.1    jruoho //  The following section will declare the buffers that will be used to exercise
   5856      1.1    jruoho //  the SizeOf operator.
   5857      1.1    jruoho 
   5858      1.1    jruoho     Name (BUF0, Buffer (10) {})
   5859      1.1    jruoho     Name (BUF1, Buffer (10) {})
   5860      1.1    jruoho     Name (BUF2, Buffer (8)  {})
   5861      1.1    jruoho     Name (BUF3, Buffer (5)  {})
   5862      1.1    jruoho 
   5863      1.1    jruoho //  End Buffers     **********************************************************
   5864      1.1    jruoho     Device (SZLV)
   5865      1.1    jruoho     {
   5866      1.1    jruoho 
   5867      1.1    jruoho         Method (CMPR, 2)
   5868      1.1    jruoho         {
   5869      1.1    jruoho             //  CMPR is passed two arguments.  If unequal, return 1 to indicate
   5870      1.1    jruoho             //  that, otherwise return 0 to indicate SizeOf each is equal.
   5871      1.1    jruoho 
   5872      1.1    jruoho             Store (0x01, Local0)
   5873      1.1    jruoho 
   5874      1.1    jruoho             if (LEqual (SizeOf(Arg0), SizeOf(Arg1)))
   5875      1.1    jruoho             {
   5876      1.1    jruoho                 Store (0x00, Local0)
   5877      1.1    jruoho             }
   5878      1.1    jruoho 
   5879      1.1    jruoho             return (Local0)
   5880      1.1    jruoho         }   //  CMPR
   5881      1.1    jruoho 
   5882      1.1    jruoho 
   5883      1.1    jruoho         Method (TEST)
   5884      1.1    jruoho         {
   5885      1.1    jruoho 
   5886      1.1    jruoho             Store ("++++++++ SizeOfLv Test", Debug)
   5887      1.1    jruoho 
   5888      1.1    jruoho             //  TBD:    SizeOf ("string")
   5889      1.1    jruoho             //          SizeOf (Buffer)
   5890      1.1    jruoho             //          SizeOf (Package)
   5891      1.1    jruoho             //          SizeOf (String)
   5892      1.1    jruoho             //          SizeOf (STR0)   --  where Name (STR0,...) -- lot's of cases
   5893      1.1    jruoho             //              buffer, string, package,
   5894      1.1    jruoho             //          SizeOf (METH) -- where METH control method returns
   5895      1.1    jruoho             //              buffer, string, package,
   5896      1.1    jruoho 
   5897      1.1    jruoho             //  TBD:    SLOC [SizeOf (Local0)] -- dup SARG
   5898      1.1    jruoho 
   5899      1.1    jruoho             //  Compare the elements that we expect to be the same.  Exit out with an error
   5900      1.1    jruoho             //  code on the first failure.
   5901      1.1    jruoho             if (LNotEqual (0x00, CMPR (STR0, STR1)))
   5902      1.1    jruoho             {
   5903      1.1    jruoho                 Return (0x01)
   5904      1.1    jruoho             }
   5905      1.1    jruoho 
   5906      1.1    jruoho             if (LNotEqual (0x00, CMPR (STR3, BUF3)))
   5907      1.1    jruoho             {
   5908      1.1    jruoho                 Return (0x02)
   5909      1.1    jruoho             }
   5910      1.1    jruoho 
   5911      1.1    jruoho             if (LNotEqual (0x00, CMPR (STR3, PKG3)))
   5912      1.1    jruoho             {
   5913      1.1    jruoho                 Return (0x03)
   5914      1.1    jruoho             }
   5915      1.1    jruoho 
   5916      1.1    jruoho             //  In the following section, this test will cover the SizeOf
   5917      1.1    jruoho             //  operator for Local values.
   5918      1.1    jruoho             //  In this case, both Local0 and Local1 should have the same Size
   5919      1.1    jruoho             Store (STR0, Local0)
   5920      1.1    jruoho             Store (STR1, Local1)
   5921      1.1    jruoho 
   5922      1.1    jruoho             if (LNotEqual (SizeOf (Local0), SizeOf (Local1)))
   5923      1.1    jruoho             {
   5924      1.1    jruoho                 Return (0x04)
   5925      1.1    jruoho             }
   5926      1.1    jruoho 
   5927      1.1    jruoho             //  Now create a case where Local0 and Local1 are different
   5928      1.1    jruoho             Store (STR2, Local1)
   5929      1.1    jruoho 
   5930      1.1    jruoho             if (LEqual (SizeOf (Local0), SizeOf (Local1)))
   5931      1.1    jruoho             {
   5932      1.1    jruoho                 Return (0x05)
   5933      1.1    jruoho             }
   5934      1.1    jruoho 
   5935      1.1    jruoho             //  Finally, check for the return of SizeOf for a known Buffer.  Just
   5936      1.1    jruoho             //  in case we magically pass above cases due to all Buffers being Zero
   5937      1.1    jruoho             //  bytes in size, or Infinity, etc.
   5938      1.1    jruoho             if (LNotEqual (0x05, SizeOf (BUF3)))
   5939      1.1    jruoho             {
   5940      1.1    jruoho                 Return (0x06)
   5941      1.1    jruoho             }
   5942      1.1    jruoho 
   5943      1.1    jruoho             Return (0)
   5944      1.1    jruoho         }   //  TEST
   5945      1.1    jruoho     }   //  SZLV
   5946      1.1    jruoho 
   5947      1.1    jruoho 
   5948      1.1    jruoho //
   5949      1.1    jruoho // test BytField.asl
   5950      1.1    jruoho //
   5951      1.1    jruoho //  BytField test
   5952      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   5953      1.1    jruoho //      Tests access of TBD.
   5954      1.1    jruoho //
   5955      1.1    jruoho     Scope (\_SB)    //  System Bus
   5956      1.1    jruoho     {   //  _SB system bus
   5957      1.1    jruoho         Device (BYTF)
   5958      1.1    jruoho         {   //  Test device name
   5959      1.1    jruoho             Method (TEST)
   5960      1.1    jruoho             {
   5961      1.1    jruoho                 Store ("++++++++ BytField Test", Debug)
   5962      1.1    jruoho 
   5963      1.1    jruoho                 Return (\_TZ.C19B.RSLT)
   5964      1.1    jruoho             }   //  TEST
   5965      1.1    jruoho         }   //  BYTF
   5966      1.1    jruoho 
   5967      1.1    jruoho         Device (C005)
   5968      1.1    jruoho         {   //  Device C005
   5969      1.1    jruoho             Device (C013)
   5970      1.1    jruoho             {   //  Device C013
   5971      1.1    jruoho             }   //  Device C013
   5972      1.1    jruoho         }   //  Device C005
   5973      1.1    jruoho 
   5974      1.1    jruoho         Method (C115)
   5975      1.1    jruoho         {   //  C115 control method
   5976      1.1    jruoho             Acquire (\_GL, 0xFFFF)
   5977      1.1    jruoho             Store (\_SB.C005.C013.C058.C07E, Local0)
   5978      1.1    jruoho             Release (\_GL)
   5979      1.1    jruoho             And (Local0, 16, Local0)
   5980      1.1    jruoho             Store (ShiftRight (Local0, 4, ), Local1)
   5981      1.1    jruoho             If (LEqual (Local1, 0))
   5982      1.1    jruoho                 {   Return (1)  }
   5983      1.1    jruoho             Else
   5984      1.1    jruoho                 {   Return (0)  }
   5985      1.1    jruoho         }   //  C115 control method
   5986      1.1    jruoho     }   //  _SB system bus
   5987      1.1    jruoho 
   5988      1.1    jruoho     OperationRegion (C018, SystemIO, 0x5028, 4)
   5989      1.1    jruoho     Field (C018, AnyAcc, NoLock, Preserve)
   5990      1.1    jruoho     {   //  Field overlaying C018
   5991      1.1    jruoho         C019,   32
   5992      1.1    jruoho     }   //  Field overlaying C018
   5993      1.1    jruoho 
   5994      1.1    jruoho     OperationRegion (C01A, SystemIO, 0x5030, 4)
   5995      1.1    jruoho     Field (C01A, ByteAcc, NoLock, Preserve)
   5996      1.1    jruoho     {   //  Field overlaying C01A
   5997      1.1    jruoho         C01B,   8,
   5998      1.1    jruoho         C01C,   8,
   5999      1.1    jruoho         C01D,   8,
   6000      1.1    jruoho         C01E,   8
   6001      1.1    jruoho     }   //  Field overlaying C01A
   6002      1.1    jruoho 
   6003      1.1    jruoho     Mutex (\C01F, 0)
   6004      1.1    jruoho     Name (\C020, 0)
   6005      1.1    jruoho     Name (\C021, 0)
   6006      1.1    jruoho 
   6007      1.1    jruoho     Method (\C022, 0)
   6008      1.1    jruoho     {   //  \C022 control method
   6009      1.1    jruoho         Acquire (\C01F, 0xFFFF)
   6010      1.1    jruoho         If (LEqual (\C021, 0))
   6011      1.1    jruoho         {
   6012      1.1    jruoho             Store (C019, Local0)
   6013      1.1    jruoho             And (Local0, 0xFFFEFFFE, Local0)
   6014      1.1    jruoho             Store (Local0, C019)
   6015      1.1    jruoho             Increment (\C021)
   6016      1.1    jruoho         }
   6017      1.1    jruoho         Release (\C01F)
   6018      1.1    jruoho     }   //  \C022 control method
   6019      1.1    jruoho 
   6020      1.1    jruoho     Scope (\_SB.C005.C013)
   6021      1.1    jruoho     {   //  Scope \_SB.C005.C013
   6022      1.1    jruoho         Device (C058)
   6023      1.1    jruoho         {   //  Device C058
   6024      1.1    jruoho             Name (_HID, "*PNP0A06")
   6025      1.1    jruoho 
   6026      1.1    jruoho             OperationRegion (C059, SystemIO, 0xE0, 2)
   6027      1.1    jruoho             Field (C059, ByteAcc, NoLock, Preserve)
   6028      1.1    jruoho             {   //  Field overlaying C059
   6029      1.1    jruoho                 C05A,   8,
   6030      1.1    jruoho                 C05B,   8
   6031      1.1    jruoho             }   //  Field overlaying C059
   6032      1.1    jruoho 
   6033      1.1    jruoho             OperationRegion (C05C, SystemIO, 0xE2, 2)
   6034      1.1    jruoho             Field (C05C, ByteAcc, NoLock, Preserve)
   6035      1.1    jruoho             {   //  Field overlaying C05C
   6036      1.1    jruoho                 C05D,   8,
   6037      1.1    jruoho                 C05E,   8
   6038      1.1    jruoho             }   //  Field overlaying C05C
   6039      1.1    jruoho             IndexField (C05D, C05E, ByteAcc, NoLock, Preserve)
   6040      1.1    jruoho             {   //  IndexField overlaying C05D/C05E
   6041      1.1    jruoho                 ,       0x410,  //  skip
   6042      1.1    jruoho                 C05F,   8,
   6043      1.1    jruoho                 C060,   8,
   6044      1.1    jruoho                 C061,   8,
   6045      1.1    jruoho                 C062,   8,
   6046      1.1    jruoho                 C063,   8,
   6047      1.1    jruoho                 C064,   8,
   6048      1.1    jruoho                 C065,   8,
   6049      1.1    jruoho                 C066,   8,
   6050      1.1    jruoho                 C067,   8,
   6051      1.1    jruoho                 C068,   8,
   6052      1.1    jruoho                 C069,   8,
   6053      1.1    jruoho                 C06A,   8,
   6054      1.1    jruoho                 C06B,   8,
   6055      1.1    jruoho                 C06C,   8,
   6056      1.1    jruoho                 C06D,   8,
   6057      1.1    jruoho                 C06E,   8,
   6058      1.1    jruoho                 ,       0x70,       //  skip
   6059      1.1    jruoho                 C06F,   8,
   6060      1.1    jruoho                 C070,   8,
   6061      1.1    jruoho                 C071,   8,
   6062      1.1    jruoho                 C072,   8,
   6063      1.1    jruoho                 C073,   8,
   6064      1.1    jruoho                 C074,   8,
   6065      1.1    jruoho                 C075,   8,
   6066      1.1    jruoho                 C076,   8,
   6067      1.1    jruoho                 C077,   8,
   6068      1.1    jruoho                 C078,   8,
   6069      1.1    jruoho                 C079,   8,
   6070      1.1    jruoho                 C07A,   8,
   6071      1.1    jruoho                 C07B,   8,
   6072      1.1    jruoho                 C07C,   8,
   6073      1.1    jruoho                 C07D,   8,
   6074      1.1    jruoho                 C07E,   8
   6075      1.1    jruoho             }   //  IndexField overlaying C05D/C05E
   6076      1.1    jruoho 
   6077      1.1    jruoho             OperationRegion (C07F, SystemIO, 0xE4, 2)
   6078      1.1    jruoho             Field (C07F, ByteAcc, NoLock, Preserve)
   6079      1.1    jruoho             {   //  Field overlaying C07F
   6080      1.1    jruoho                 C080,   8,
   6081      1.1    jruoho                 C081,   8
   6082      1.1    jruoho             }   //  Field overlaying C07F
   6083      1.1    jruoho 
   6084      1.1    jruoho             OperationRegion (C082, SystemIO, 0xE0, 1)
   6085      1.1    jruoho             Field (C082, ByteAcc, NoLock, Preserve)
   6086      1.1    jruoho             {   //  Field overlaying C082
   6087      1.1    jruoho                 C083,   8
   6088      1.1    jruoho             }   //  Field overlaying C082
   6089      1.1    jruoho 
   6090      1.1    jruoho             OperationRegion (C084, SystemIO, 0xFF, 1)
   6091      1.1    jruoho             Field (C084, ByteAcc, NoLock, Preserve)
   6092      1.1    jruoho             {   //  Field overlaying C084
   6093      1.1    jruoho                 C085,   8
   6094      1.1    jruoho             }   //  Field overlaying C084
   6095      1.1    jruoho 
   6096      1.1    jruoho             OperationRegion (C086, SystemIO, 0xFD, 1)
   6097      1.1    jruoho             Field (C086, ByteAcc, NoLock, Preserve)
   6098      1.1    jruoho             {   //  Field overlaying C086
   6099      1.1    jruoho                 C087,   8
   6100      1.1    jruoho             }   //  Field overlaying C086
   6101      1.1    jruoho 
   6102      1.1    jruoho             Mutex (C088, 0)
   6103      1.1    jruoho             Mutex (C089, 0)
   6104      1.1    jruoho             Mutex (C08A, 0)
   6105      1.1    jruoho             Mutex (C08B, 0)
   6106      1.1    jruoho             Mutex (C08C, 0)
   6107      1.1    jruoho             Mutex (C08D, 0)
   6108      1.1    jruoho 
   6109      1.1    jruoho             Name (C08E, 0xFFFFFFFD)
   6110      1.1    jruoho             Name (C08F, 0)
   6111      1.1    jruoho 
   6112      1.1    jruoho             Method (C0AA, 4)
   6113      1.1    jruoho             {   //  C0AA control method
   6114      1.1    jruoho                 Store (Buffer (4) {}, Local7)
   6115      1.1    jruoho                 CreateByteField (Local7, 0, C0AB)
   6116      1.1    jruoho                 CreateByteField (Local7, 1, C0AC)
   6117      1.1    jruoho                 CreateByteField (Local7, 2, C0AD)
   6118      1.1    jruoho                 CreateByteField (Local7, 3, C0AE)
   6119      1.1    jruoho                 Acquire (^C08B, 0xFFFF)
   6120      1.1    jruoho                 Acquire (\_GL, 0xFFFF)
   6121      1.1    jruoho                 \C022 ()
   6122      1.1    jruoho                 Store (1, \_SB.C005.C013.C058.C06B)
   6123      1.1    jruoho                 While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
   6124      1.1    jruoho                     {   Stall (100) }
   6125      1.1    jruoho                 Store (Arg3, \_SB.C005.C013.C058.C06E)
   6126      1.1    jruoho                 Store (Arg2, \_SB.C005.C013.C058.C06D)
   6127      1.1    jruoho                 Store (Arg1, \_SB.C005.C013.C058.C06C)
   6128      1.1    jruoho                 Store (Arg0, \_SB.C005.C013.C058.C06B)
   6129      1.1    jruoho                 While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
   6130      1.1    jruoho                     {   Stall (100) }
   6131      1.1    jruoho                 Store (\_SB.C005.C013.C058.C06E, C0AB)
   6132      1.1    jruoho                 Store (\_SB.C005.C013.C058.C06D, C0AC)
   6133      1.1    jruoho                 Store (\_SB.C005.C013.C058.C06C, C0AD)
   6134      1.1    jruoho                 Store (\_SB.C005.C013.C058.C06B, C0AE)
   6135      1.1    jruoho                 If (LNot (LEqual (Arg0, 23)))
   6136      1.1    jruoho                 {
   6137      1.1    jruoho                     Store (2, \_SB.C005.C013.C058.C06B)
   6138      1.1    jruoho                     Stall (100)
   6139      1.1    jruoho                 }
   6140      1.1    jruoho                 Release (\_GL)
   6141      1.1    jruoho                 Release (^C08B)
   6142      1.1    jruoho                 Return (Local7)
   6143      1.1    jruoho             }   //  C0AA control method
   6144      1.1    jruoho         }   //  Device C058
   6145      1.1    jruoho     }   //  Scope \_SB.C005.C013
   6146      1.1    jruoho 
   6147      1.1    jruoho     Scope (\_TZ)
   6148      1.1    jruoho     {   //  \_TZ thermal zone scope
   6149      1.1    jruoho         Name (C18B, Package (2)
   6150      1.1    jruoho         {
   6151      1.1    jruoho             Package (2)
   6152      1.1    jruoho             {
   6153      1.1    jruoho                 Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
   6154      1.1    jruoho                 Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
   6155      1.1    jruoho             },
   6156      1.1    jruoho             Package (2)
   6157      1.1    jruoho             {
   6158      1.1    jruoho                 Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
   6159      1.1    jruoho                 Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
   6160      1.1    jruoho             }
   6161      1.1    jruoho         })  //  C18B
   6162      1.1    jruoho 
   6163      1.1    jruoho         Name (C18C, Package (2)
   6164      1.1    jruoho         {
   6165      1.1    jruoho             Package (2)
   6166      1.1    jruoho             {
   6167      1.1    jruoho                 Package (3) {0x64, 0x4B, 0x32},
   6168      1.1    jruoho                 Package (3) {0x64, 0x4B, 0x32}
   6169      1.1    jruoho             }
   6170      1.1    jruoho         })  //  C81C
   6171      1.1    jruoho 
   6172      1.1    jruoho         Name (C18D, 0)
   6173      1.1    jruoho         Name (C18E, 0)
   6174      1.1    jruoho         Name (C18F, 0)
   6175      1.1    jruoho         Name (C190, 0)
   6176      1.1    jruoho         Name (C191, 3)
   6177      1.1    jruoho         Name (C192, 0)
   6178      1.1    jruoho         Name (C193, 1)
   6179      1.1    jruoho         Name (C194, 2)
   6180      1.1    jruoho         Mutex (C195, 0)
   6181      1.1    jruoho         Name (C196, 1)
   6182      1.1    jruoho         Name (C197, 0x0B9C)
   6183      1.1    jruoho         Name (C198, 0x0B9C)
   6184      1.1    jruoho         Name (C199, 0xFFFFFFFD)
   6185      1.1    jruoho         Name (C19A, 0)
   6186      1.1    jruoho 
   6187      1.1    jruoho         Device (C19B)
   6188      1.1    jruoho         {   //  Device C19B
   6189      1.1    jruoho             Name (RSLT, 0)  //  default to zero
   6190      1.1    jruoho 
   6191      1.1    jruoho             Method (XINI)
   6192      1.1    jruoho             {   //  _INI control method (Uses Global Lock -- can't run under AcpiExec)
   6193      1.1    jruoho                 Store (\_SB.C115, C19A)
   6194      1.1    jruoho                 \_TZ.C19C._SCP (0)
   6195      1.1    jruoho                 Subtract (0x0EB2, 0x0AAC, Local1)   //  Local1 = AACh - EB2h
   6196      1.1    jruoho                 Divide (Local1, 10, Local0, Local2) //  Local0 = Local1 / 10
   6197      1.1    jruoho                                                                 //  Local2 = Local1 % 10
   6198      1.1    jruoho                 \_SB.C005.C013.C058.C0AA (14, Local2, 0, 0)
   6199      1.1    jruoho                 Store
   6200      1.1    jruoho                     (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 0, )), C18D)
   6201      1.1    jruoho                 Store
   6202      1.1    jruoho                     (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 1, )), C18E)
   6203      1.1    jruoho                 Store
   6204      1.1    jruoho                     (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 2, )), C18F)
   6205      1.1    jruoho 
   6206      1.1    jruoho                 Store (1, RSLT) //  set RSLT to 1 if _INI control method completes
   6207      1.1    jruoho             }   //  _INI control method
   6208      1.1    jruoho 
   6209      1.1    jruoho             //  PowerResource (C19D) {...}
   6210      1.1    jruoho         }   //  Device C19B
   6211      1.1    jruoho 
   6212      1.1    jruoho         ThermalZone (C19C)
   6213      1.1    jruoho         {
   6214      1.1    jruoho             Method (_SCP, 1)
   6215      1.1    jruoho             {   //  _SCP control method
   6216      1.1    jruoho                 Store (Arg0, Local0)
   6217      1.1    jruoho                 If (LEqual (Local0, 0))
   6218      1.1    jruoho                 {
   6219      1.1    jruoho                     Store (0, \_TZ.C192)
   6220      1.1    jruoho                     Store (1, \_TZ.C193)
   6221      1.1    jruoho                     Store (2, \_TZ.C194)
   6222      1.1    jruoho                     Store (3, \_TZ.C191)
   6223      1.1    jruoho                 }
   6224      1.1    jruoho                 Else
   6225      1.1    jruoho                 {
   6226      1.1    jruoho                     Store (0, \_TZ.C191)
   6227      1.1    jruoho                     Store (1, \_TZ.C192)
   6228      1.1    jruoho                     Store (2, \_TZ.C193)
   6229      1.1    jruoho                     Store (3, \_TZ.C194)
   6230      1.1    jruoho                 }
   6231      1.1    jruoho             }   //  _SCP control method
   6232      1.1    jruoho         }   //  ThermalZone C19C
   6233      1.1    jruoho     }   //  \_TZ thermal zone scope
   6234      1.1    jruoho 
   6235      1.1    jruoho 
   6236      1.1    jruoho //
   6237      1.1    jruoho // test DwrdFld.asl
   6238      1.1    jruoho //
   6239      1.1    jruoho     Name (BUFR, buffer(10) {0,0,0,0,0,0,0,0,0,0} )
   6240      1.1    jruoho 
   6241      1.1    jruoho     Device (DWDF)
   6242      1.1    jruoho     {
   6243      1.1    jruoho         Method (TEST)
   6244      1.1    jruoho         {
   6245      1.1    jruoho             Store ("++++++++ DwrdFld Test", Debug)
   6246      1.1    jruoho 
   6247      1.1    jruoho             CreateByteField (BUFR, 0, BYTE)
   6248      1.1    jruoho             Store (0xAA, BYTE)
   6249      1.1    jruoho 
   6250      1.1    jruoho             CreateWordField (BUFR, 1, WORD)
   6251      1.1    jruoho             Store (0xBBCC, WORD)
   6252      1.1    jruoho 
   6253      1.1    jruoho             CreateDWordField (BUFR, 3, DWRD)
   6254      1.1    jruoho             Store (0xDDEEFF00, DWRD)
   6255      1.1    jruoho 
   6256      1.1    jruoho             CreateByteField (BUFR, 7, BYT2)
   6257      1.1    jruoho             Store (0x11, BYT2)
   6258      1.1    jruoho 
   6259      1.1    jruoho             CreateWordField (BUFR, 8, WRD2)
   6260      1.1    jruoho             Store (0x2233, WRD2)
   6261      1.1    jruoho 
   6262      1.1    jruoho             Return (0)
   6263      1.1    jruoho 
   6264      1.1    jruoho         }   //  End Method TEST
   6265      1.1    jruoho     }   //  Device DWDF
   6266      1.1    jruoho 
   6267      1.1    jruoho     //
   6268      1.1    jruoho     // test DivAddx.asl
   6269      1.1    jruoho     //
   6270      1.1    jruoho     Name (B1LO, 0xAA)
   6271      1.1    jruoho     Name (B1HI, 0xBB)
   6272      1.1    jruoho 
   6273      1.1    jruoho     Method (MKW_, 2)
   6274      1.1    jruoho     {   //  This control method will take two bytes and make them into a WORD
   6275      1.1    jruoho 
   6276      1.1    jruoho         Multiply (B1HI, 256, Local0)    //  Make high byte.....high
   6277      1.1    jruoho         Or (Local0, B1LO, Local0)       //  OR in the low byte
   6278      1.1    jruoho         Return (Local0)                 //  Return the WORD
   6279      1.1    jruoho 
   6280      1.1    jruoho     }   //  MKW_
   6281      1.1    jruoho 
   6282      1.1    jruoho     Device (DVAX)
   6283      1.1    jruoho     {
   6284      1.1    jruoho         Method (TEST)
   6285      1.1    jruoho         {
   6286      1.1    jruoho 
   6287      1.1    jruoho             Store ("++++++++ DivAddx Test", Debug)
   6288      1.1    jruoho 
   6289      1.1    jruoho             Store (25, B1LO)
   6290      1.1    jruoho             Store (0, B1HI)
   6291      1.1    jruoho 
   6292      1.1    jruoho             //  We'll multiply 25 * 3 to get 75, add 99 to it then divide
   6293      1.1    jruoho             //  by 100.  We expect to get 74 for the remainder and 1 for
   6294      1.1    jruoho             //  the quotient.
   6295      1.1    jruoho             Divide(
   6296      1.1    jruoho                 Add (Multiply (3, MKW_ (B1LO, B1HI)), 0x63),
   6297      1.1    jruoho                             //  Dividend,
   6298      1.1    jruoho                 100,        //  Divisor
   6299      1.1    jruoho                 Local4,     //  Remainder
   6300      1.1    jruoho                 Local2)     //  Quotient
   6301      1.1    jruoho 
   6302      1.1    jruoho             If (LAnd (LEqual (74, Local4), LEqual (1, Local2)))
   6303      1.1    jruoho             {   //  Indicate Pass
   6304      1.1    jruoho                 Store (0x00, Local0)
   6305      1.1    jruoho             }
   6306      1.1    jruoho 
   6307      1.1    jruoho             Else
   6308      1.1    jruoho             {   //  Indicate Fail
   6309      1.1    jruoho                 Store (0x01, Local0)
   6310      1.1    jruoho             }
   6311      1.1    jruoho 
   6312      1.1    jruoho             Return (Local0)
   6313      1.1    jruoho         }   //  End Method TEST
   6314      1.1    jruoho     }   //  Device DVAX
   6315      1.1    jruoho 
   6316      1.1    jruoho //
   6317      1.1    jruoho // test IndexFld.asl (IndexOp6.asl)
   6318      1.1    jruoho //
   6319      1.1    jruoho //  IndexFld test
   6320      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   6321      1.1    jruoho //      Tests index field element AccessAs macro.
   6322      1.1    jruoho //      Also tests name resolution of index field elements with same names
   6323      1.1    jruoho //      but different namespace scopes.
   6324      1.1    jruoho //
   6325      1.1    jruoho     Device (IDX6)
   6326      1.1    jruoho     {   //  Test device name
   6327      1.1    jruoho 
   6328      1.1    jruoho         OperationRegion (SIO, SystemIO, 0x100, 2)
   6329      1.1    jruoho         Field (SIO, ByteAcc, NoLock, Preserve)
   6330      1.1    jruoho         {
   6331      1.1    jruoho             INDX,   8,
   6332      1.1    jruoho             DATA,   8
   6333      1.1    jruoho         }
   6334      1.1    jruoho         IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
   6335      1.1    jruoho         {
   6336      1.1    jruoho             AccessAs (ByteAcc, 0),
   6337      1.1    jruoho             IFE0,   8,
   6338      1.1    jruoho             IFE1,   8,
   6339      1.1    jruoho             IFE2,   8,
   6340      1.1    jruoho             IFE3,   8,
   6341      1.1    jruoho             IFE4,   8,
   6342      1.1    jruoho             IFE5,   8,
   6343      1.1    jruoho             IFE6,   8,
   6344      1.1    jruoho             IFE7,   8,
   6345      1.1    jruoho             IFE8,   8,
   6346      1.1    jruoho             IFE9,   8,
   6347      1.1    jruoho         }
   6348      1.1    jruoho 
   6349      1.1    jruoho         Device (TST_)
   6350      1.1    jruoho         {   //  TST_:   provides a different namespace scope for IFE0 and IFE1
   6351      1.1    jruoho             OperationRegion (SIO2, SystemIO, 0x100, 2)
   6352      1.1    jruoho             Field (SIO2, ByteAcc, NoLock, Preserve)
   6353      1.1    jruoho             {
   6354      1.1    jruoho                 IND2,   8,
   6355      1.1    jruoho                 DAT2,   8
   6356      1.1    jruoho             }
   6357      1.1    jruoho             IndexField (IND2, DAT2, AnyAcc, NoLock, WriteAsOnes)
   6358      1.1    jruoho             {
   6359      1.1    jruoho                 IFE0,   8,  //  duplicate IndexField name with different scope
   6360      1.1    jruoho                 IFE1,   8
   6361      1.1    jruoho             }
   6362      1.1    jruoho         }   //  TST_:   provides a different namespace scope for IFE0 and IFE1
   6363      1.1    jruoho 
   6364      1.1    jruoho         Method (TEST)
   6365      1.1    jruoho         {
   6366      1.1    jruoho             Store ("++++++++ IndexOp6 Test", Debug)
   6367      1.1    jruoho 
   6368      1.1    jruoho             Store (IFE0, Local0)
   6369      1.1    jruoho             Store (IFE1, Local1)
   6370      1.1    jruoho             Store (IFE2, Local2)
   6371      1.1    jruoho 
   6372      1.1    jruoho             //  validate name resolution of IndexFields with different scopes
   6373      1.1    jruoho             Store (\IDX6.IFE0, Local3)
   6374      1.1    jruoho             Store (\IDX6.IFE1, Local4)
   6375      1.1    jruoho             //  verioading of namespace can resolve following names
   6376      1.1    jruoho             Store (\IDX6.TST_.IFE0, Local5)
   6377      1.1    jruoho             Store (\IDX6.TST_.IFE1, Local6)
   6378      1.1    jruoho 
   6379      1.1    jruoho             Return (0)
   6380      1.1    jruoho         }   //  TEST
   6381      1.1    jruoho     }   //  IDX6
   6382      1.1    jruoho 
   6383      1.1    jruoho //
   6384      1.1    jruoho // test IndexOp5.asl
   6385      1.1    jruoho //
   6386      1.1    jruoho //  IndexOp5 test
   6387      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   6388      1.1    jruoho //      Tests copying string into buffer then performing IndexOp on result.
   6389      1.1    jruoho //
   6390      1.1    jruoho     Device (IDX5)
   6391      1.1    jruoho     {   //  Test device name
   6392      1.1    jruoho 
   6393      1.1    jruoho         Name (OSFL, 0)  //  0 == Windows 98, 1 == Windows NT
   6394      1.1    jruoho 
   6395      1.1    jruoho         //  MCTH is a control method to compare two strings. It returns
   6396      1.1    jruoho         //  zero if the strings mismatch, or 1 if the strings match.
   6397      1.1    jruoho         //  This exercises the test case of copying a string into a buffer
   6398      1.1    jruoho         //  and performing an IndexOp on the resulting buffer.
   6399  1.1.1.3  christos         Method (MCTH, 2, Serialized)    //  Control Method to compare two strings
   6400      1.1    jruoho         {   //  MCTH:   Control Method to compare two strings
   6401      1.1    jruoho             //  Arg0:       first string to compare
   6402      1.1    jruoho             //  Arg1:       second string to compare
   6403      1.1    jruoho             //  Return: zero if strings mismatch, 1 if strings match
   6404      1.1    jruoho 
   6405      1.1    jruoho             //  check if first string's length is less than second string's length
   6406      1.1    jruoho             If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
   6407      1.1    jruoho                 {   Return (0)  }
   6408      1.1    jruoho 
   6409      1.1    jruoho             //  increment length to include NULL termination character
   6410      1.1    jruoho             Add (SizeOf (Arg0), 1, Local0)  //  Local0 = strlen(Arg0) + 1
   6411      1.1    jruoho 
   6412      1.1    jruoho             //  create two buffers of size Local0 [strlen(Arg0)+1]
   6413      1.1    jruoho             Name (BUF0, Buffer (Local0) {})
   6414      1.1    jruoho             Name (BUF1, Buffer (Local0) {})
   6415      1.1    jruoho 
   6416      1.1    jruoho             //  copy strings into buffers
   6417      1.1    jruoho             Store (Arg0, BUF0)
   6418      1.1    jruoho             Store (Arg1, BUF1)
   6419      1.1    jruoho 
   6420      1.1    jruoho             //  validate BUF0 and BUF1 are still buffers
   6421      1.1    jruoho             Store (ObjectType (BUF0), Local1)
   6422      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer is type 3
   6423      1.1    jruoho                 {   Return (20) }
   6424      1.1    jruoho             Store (ObjectType (BUF1), Local1)
   6425      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer is type 3
   6426      1.1    jruoho                 {   Return (21) }
   6427      1.1    jruoho 
   6428      1.1    jruoho             // Decrement because the Index base below is zero based
   6429      1.1    jruoho             //  while Local0 length is one based.
   6430      1.1    jruoho             Decrement (Local0)
   6431      1.1    jruoho 
   6432      1.1    jruoho             While (Local0)
   6433      1.1    jruoho             {   //  loop through all BUF0 buffer elements
   6434      1.1    jruoho                 Decrement (Local0)
   6435      1.1    jruoho 
   6436      1.1    jruoho                 //  check if BUF0[n] == BUF1[n]
   6437      1.1    jruoho                 If (LEqual (DerefOf (Index (BUF0, Local0, )),
   6438      1.1    jruoho                         DerefOf (Index (BUF1, Local0, ))))
   6439      1.1    jruoho                     {   }   //  this is how the code was really implemented
   6440      1.1    jruoho                 Else
   6441      1.1    jruoho                     {   Return (Zero)   }
   6442      1.1    jruoho             }   //  loop through all BUF0 buffer elements
   6443      1.1    jruoho 
   6444      1.1    jruoho             Return (One)    //  strings / buffers match
   6445      1.1    jruoho         }   //  MCTH:   Control Method to compare two strings
   6446      1.1    jruoho 
   6447      1.1    jruoho 
   6448      1.1    jruoho         Method (TEST)
   6449      1.1    jruoho         {
   6450      1.1    jruoho             Store ("++++++++ IndexOp5 Test", Debug)
   6451      1.1    jruoho 
   6452      1.1    jruoho             If (MCTH (\_OS, "Microsoft Windows NT"))
   6453      1.1    jruoho                 {   Store (1, OSFL) }
   6454      1.1    jruoho 
   6455      1.1    jruoho             If (LNotEqual (OSFL, 1))
   6456      1.1    jruoho                 {   Return (11) }
   6457      1.1    jruoho 
   6458      1.1    jruoho             Return (0)
   6459      1.1    jruoho         }   //  TEST
   6460      1.1    jruoho     }   //  IDX5
   6461      1.1    jruoho 
   6462      1.1    jruoho //
   6463      1.1    jruoho // test IndexOp.asl
   6464      1.1    jruoho //
   6465      1.1    jruoho     Scope (\_SB)    //  System Bus
   6466      1.1    jruoho     {   //  _SB system bus
   6467      1.1    jruoho 
   6468      1.1    jruoho         Method (C097)
   6469      1.1    jruoho             {   Return (1)  }
   6470      1.1    jruoho 
   6471      1.1    jruoho         Device (PCI2)
   6472      1.1    jruoho         {   //  Root PCI Bus
   6473      1.1    jruoho             Name (_HID, EISAID("PNP0A03"))
   6474      1.1    jruoho             Name (_ADR, 0x00000000)
   6475      1.1    jruoho             Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
   6476      1.1    jruoho             Method (_STA)   {Return (0x0F)}
   6477      1.1    jruoho 
   6478      1.1    jruoho             Device (ISA)
   6479      1.1    jruoho             {   //  ISA bridge
   6480      1.1    jruoho                 Name (_ADR, 0x00030000)     //  ISA bus ID
   6481      1.1    jruoho 
   6482      1.1    jruoho                 Device (EC0)
   6483      1.1    jruoho                 {   //  Embedded Controller
   6484      1.1    jruoho                     Name (_GPE, 0)              //  EC use GPE0
   6485      1.1    jruoho                     Name (_ADR, 0x0030000)  //  PCI address
   6486      1.1    jruoho 
   6487      1.1    jruoho                     Method (_STA,0)         //  EC Status
   6488      1.1    jruoho                         {   Return(0xF) }       //  EC is functioning
   6489      1.1    jruoho 
   6490      1.1    jruoho                     Name (_CRS, ResourceTemplate()
   6491      1.1    jruoho                         {
   6492      1.1    jruoho                             IO (Decode16, 0x62, 0x62, 1, 1)
   6493      1.1    jruoho                             IO (Decode16, 0x66, 0x66, 1, 1)
   6494      1.1    jruoho                         }
   6495      1.1    jruoho                     )
   6496      1.1    jruoho 
   6497      1.1    jruoho                 //  create EC's region and field
   6498      1.1    jruoho                     OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   6499      1.1    jruoho                     Field (RAM, AnyAcc, NoLock, Preserve)
   6500      1.1    jruoho                     {
   6501      1.1    jruoho                         //  AC information
   6502      1.1    jruoho                         ADP,    1,      //  AC Adapter 1:On-line, 0:Off-line
   6503      1.1    jruoho                         AFLT,   1,      //  AC Adapter Fault  1:Fault  0:Normal
   6504      1.1    jruoho                         BAT0,   1,      //  BAT0  1:present, 0:not present
   6505      1.1    jruoho                         ,       1,      //  reserved
   6506      1.1    jruoho                         ,       28, //  filler to force DWORD alignment
   6507      1.1    jruoho 
   6508      1.1    jruoho                         //  CMBatt information
   6509      1.1    jruoho                         BPU0,   32, //  Power Unit
   6510      1.1    jruoho                         BDC0,   32, //  Designed Capacity
   6511      1.1    jruoho                         BFC0,   32, //  Last Full Charge Capacity
   6512      1.1    jruoho                         BTC0,   32, //  Battery Technology
   6513      1.1    jruoho                         BDV0,   32, //  Design Voltage
   6514      1.1    jruoho                         BST0,   32, //  Battery State
   6515      1.1    jruoho                         BPR0,   32, //  Battery Present Rate
   6516      1.1    jruoho                                         //  (Designed Capacity)x(%)/{(h)x100}
   6517      1.1    jruoho                         BRC0,   32, //  Battery Remaining Capacity
   6518      1.1    jruoho                                         //  (Designed Capacity)(%)^100
   6519      1.1    jruoho                         BPV0,   32, //  Battery Present Voltage
   6520      1.1    jruoho                         BTP0,   32, //  Trip Point
   6521      1.1    jruoho                         BCW0,   32, //  Design capacity of Warning
   6522      1.1    jruoho                         BCL0,   32, //  Design capacity of Low
   6523      1.1    jruoho                         BCG0,   32, //  capacity granularity 1
   6524      1.1    jruoho                         BG20,   32, //  capacity granularity 2
   6525      1.1    jruoho                         BMO0,   32, //  Battery model number field
   6526      1.1    jruoho                         BIF0,   32, //  OEM Information(00h)
   6527      1.1    jruoho                         BSN0,   32, //  Battery Serial Number
   6528      1.1    jruoho                         BTY0,   32, //  Battery Type (e.g., "Li-Ion")
   6529      1.1    jruoho                         BTY1,   32      //  Battery Type (e.g., "Li-Ion")
   6530      1.1    jruoho                     }   //  Field
   6531      1.1    jruoho                 }   //  EC0: Embedded Controller
   6532      1.1    jruoho             }   //  ISA bridge
   6533      1.1    jruoho         }   //  PCI2 Root PCI Bus
   6534      1.1    jruoho 
   6535      1.1    jruoho         Device (IDX0)
   6536      1.1    jruoho         {   //  Test device name
   6537      1.1    jruoho             Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
   6538      1.1    jruoho             Name (_PCL, Package() {\_SB})
   6539      1.1    jruoho             Method (_STA)
   6540      1.1    jruoho             {
   6541      1.1    jruoho                 //  _STA bits 0-3 indicate existence of battery slot
   6542      1.1    jruoho                 //  _STA bit 4 indicates battery (not) present
   6543      1.1    jruoho                 If (\_SB.PCI2.ISA.EC0.BAT0)
   6544      1.1    jruoho                     {   Return (0x1F)   }   //  Battery present
   6545      1.1    jruoho                 else
   6546      1.1    jruoho                     {   Return (0x0F)   }   //  Battery not present
   6547      1.1    jruoho             }   //  _STA
   6548      1.1    jruoho 
   6549  1.1.1.3  christos             Method (_BIF,, Serialized)
   6550      1.1    jruoho             {
   6551      1.1    jruoho                 Name (BUFR, Package(13) {})
   6552      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BPU0, Index (BUFR,0))  //  Power Unit
   6553      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BDC0, Index (BUFR,1))  //  Designed Capacity
   6554      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BFC0, Index (BUFR,2))  //  Last Full Charge Capa.
   6555      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BTC0, Index (BUFR,3))  //  Battery Technology
   6556      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BDV0, Index (BUFR,4))  //  Designed Voltage
   6557      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BCW0, Index (BUFR,5))  //  Designed warning level
   6558      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BCL0, Index (BUFR,6))  //  Designed Low level
   6559      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BCG0, Index (BUFR,7))  //  Capacity granularity 1
   6560      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BG20, Index (BUFR,8))  //  Capacity granularity 2
   6561      1.1    jruoho 
   6562      1.1    jruoho                 Store ("", Index (BUFR,9))                              //  Model Number
   6563      1.1    jruoho 
   6564      1.1    jruoho                 Store ("", Index (BUFR,10))                         //  Serial Number
   6565      1.1    jruoho 
   6566      1.1    jruoho                 Store ("LiOn", Index (BUFR,11))                     //  Battery Type
   6567      1.1    jruoho 
   6568      1.1    jruoho                 Store ("Chicony", Index (BUFR,12))                  //  OEM Information
   6569      1.1    jruoho 
   6570      1.1    jruoho                 Return (BUFR)
   6571      1.1    jruoho             }   //  _BIF
   6572      1.1    jruoho 
   6573  1.1.1.3  christos             Method (_BST,, Serialized)
   6574      1.1    jruoho             {
   6575      1.1    jruoho                 Name (BUFR, Package(4) {1, 0x100, 0x76543210, 0x180})
   6576      1.1    jruoho                 Return (BUFR)
   6577      1.1    jruoho             }   //  _BST
   6578      1.1    jruoho 
   6579      1.1    jruoho             Method (_BTP,1)
   6580      1.1    jruoho             {
   6581      1.1    jruoho                 Store (arg0, \_SB.PCI2.ISA.EC0.BTP0)    //  Set Battery Trip point
   6582      1.1    jruoho             }
   6583      1.1    jruoho 
   6584  1.1.1.3  christos             Method (TEST,, Serialized)
   6585      1.1    jruoho             {
   6586      1.1    jruoho 
   6587      1.1    jruoho                 Store ("++++++++ IndexOp Test", Debug)
   6588      1.1    jruoho 
   6589      1.1    jruoho                 //  test storing into uninitialized package elements
   6590      1.1    jruoho                 Name (PBUF, Package(4) {})  //  leave unitialized
   6591      1.1    jruoho                 Store (0x01234567, Index (PBUF,0))
   6592      1.1    jruoho                 Store (0x89ABCDEF, Index (PBUF,1))
   6593      1.1    jruoho                 Store (0xFEDCBA98, Index (PBUF,2))
   6594      1.1    jruoho                 Store (0x76543210, Index (PBUF,3))
   6595      1.1    jruoho 
   6596      1.1    jruoho                 //  verify values stored into uninitialized package elements
   6597      1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,0)), 0x01234567))
   6598      1.1    jruoho                     {   Return (0x10)   }
   6599      1.1    jruoho 
   6600      1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,1)), 0x89ABCDEF))
   6601      1.1    jruoho                     {   Return (0x11)   }
   6602      1.1    jruoho 
   6603      1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,2)), 0xFEDCBA98))
   6604      1.1    jruoho                     {   Return (0x12)   }
   6605      1.1    jruoho 
   6606      1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,3)), 0x76543210))
   6607      1.1    jruoho                     {   Return (0x13)   }
   6608      1.1    jruoho 
   6609      1.1    jruoho 
   6610      1.1    jruoho                 //  store _BIF package return value into Local0
   6611      1.1    jruoho                 Store (_BIF, Local0)
   6612      1.1    jruoho 
   6613      1.1    jruoho                 //  save Local0 object type value into Local1
   6614      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   6615      1.1    jruoho 
   6616      1.1    jruoho                 //  validate Local0 is a Package
   6617      1.1    jruoho                 If (LNotEqual (Local1, 4))  //  Package type is 4
   6618      1.1    jruoho                     {   Return (0x21)   }   //  failure
   6619      1.1    jruoho 
   6620      1.1    jruoho 
   6621      1.1    jruoho                 //  test storing into buffer field elements
   6622      1.1    jruoho                 Name (BUFR, Buffer(16)
   6623      1.1    jruoho                     {   //  initial values
   6624      1.1    jruoho                         00, 00, 00, 00, 00, 00, 00, 00,
   6625      1.1    jruoho                         00, 00, 00, 00, 00, 00, 00, 00,
   6626      1.1    jruoho                     }
   6627      1.1    jruoho                 )   //  BUFR
   6628      1.1    jruoho                 //  test storing into buffer field elements
   6629      1.1    jruoho                 Store (0x01234567, Index (BUFR,0))  //  should only store 0x67
   6630      1.1    jruoho                 Store (0x89ABCDEF, Index (BUFR,4))  //  should only store 0xEF
   6631      1.1    jruoho                 Store (0xFEDCBA98, Index (BUFR,8))  //  should only store 0x98
   6632      1.1    jruoho                 Store (0x76543210, Index (BUFR,12)) //  should only store 0x10
   6633      1.1    jruoho 
   6634      1.1    jruoho                 //  verify storing into buffer field elements
   6635      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,0)), 0x67))
   6636      1.1    jruoho                     {   Return (0x30)   }
   6637      1.1    jruoho 
   6638      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,1)), 0))
   6639      1.1    jruoho                     {   Return (0x31)   }
   6640      1.1    jruoho 
   6641      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,4)), 0xEF))
   6642      1.1    jruoho                     {   Return (0x34)   }
   6643      1.1    jruoho 
   6644      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,8)), 0x98))
   6645      1.1    jruoho                     {   Return (0x38)   }
   6646      1.1    jruoho 
   6647      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,12)), 0x10))
   6648      1.1    jruoho                     {   Return (0x3C)   }
   6649      1.1    jruoho 
   6650      1.1    jruoho 
   6651      1.1    jruoho                 Return (0)  //  pass
   6652      1.1    jruoho             }   //  TEST
   6653      1.1    jruoho         }   //  IDX0
   6654      1.1    jruoho     }   //  _SB system bus
   6655      1.1    jruoho 
   6656      1.1    jruoho //
   6657      1.1    jruoho // test BitIndex.asl
   6658      1.1    jruoho //
   6659      1.1    jruoho //  BitIndex test
   6660      1.1    jruoho //  This is a test case for accessing fields defined as single bits in
   6661      1.1    jruoho //  memory.  This is done by creating two index fields that overlay the
   6662      1.1    jruoho //  same DWORD in memory.  One field accesses the DWORD as a DWORD, the
   6663      1.1    jruoho //  other accesses individual bits of the same DWORD field in memory.
   6664      1.1    jruoho //
   6665      1.1    jruoho     Scope (\_SB)    //  System Bus
   6666      1.1    jruoho     {   //  _SB system bus
   6667      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x800000, 0x100)
   6668      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   6669      1.1    jruoho         {   //  Any access
   6670      1.1    jruoho             TREE,   3,
   6671      1.1    jruoho             WRD0,   16,
   6672      1.1    jruoho             WRD1,   16,
   6673      1.1    jruoho             WRD2,   16,
   6674      1.1    jruoho             WRD3,   16,
   6675      1.1    jruoho             WRD4,   16,
   6676      1.1    jruoho             DWRD,   32, //  DWORD field
   6677      1.1    jruoho         }
   6678      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   6679      1.1    jruoho         {   //  Any access
   6680      1.1    jruoho             THRE,   3,
   6681      1.1    jruoho             WD00,   16,
   6682      1.1    jruoho             WD01,   16,
   6683      1.1    jruoho             WD02,   16,
   6684      1.1    jruoho             WD03,   16,
   6685      1.1    jruoho             WD04,   16,
   6686      1.1    jruoho             BYT0,   8,  //  Start off with a BYTE
   6687      1.1    jruoho             BIT0,   1,  //  single-bit field
   6688      1.1    jruoho             BIT1,   1,  //  single-bit field
   6689      1.1    jruoho             BIT2,   1,  //  single-bit field
   6690      1.1    jruoho             BIT3,   1,  //  single-bit field
   6691      1.1    jruoho             BIT4,   1,  //  single-bit field
   6692      1.1    jruoho             BIT5,   1,  //  single-bit field
   6693      1.1    jruoho             BIT6,   1,  //  single-bit field
   6694      1.1    jruoho             BIT7,   1,  //  single-bit field
   6695      1.1    jruoho             BIT8,   1,  //  single-bit field
   6696      1.1    jruoho             BIT9,   1,  //  single-bit field
   6697      1.1    jruoho             BITA,   1,  //  single-bit field
   6698      1.1    jruoho             BITB,   1,  //  single-bit field
   6699      1.1    jruoho             BITC,   1,  //  single-bit field
   6700      1.1    jruoho             BITD,   1,  //  single-bit field
   6701      1.1    jruoho             BITE,   1,  //  single-bit field
   6702      1.1    jruoho             BITF,   1,  //  single-bit field
   6703      1.1    jruoho             BYTZ,   8,  //  End with a BYTE for a total of 32 bits
   6704      1.1    jruoho         }
   6705      1.1    jruoho 
   6706      1.1    jruoho         Device (BITI)
   6707      1.1    jruoho         {   //  Test device name
   6708      1.1    jruoho 
   6709      1.1    jruoho             Method (MBIT)   //  Test single bit memory accesses
   6710      1.1    jruoho             {
   6711      1.1    jruoho 
   6712      1.1    jruoho                 If (LNotEqual (DWRD, 0x00))
   6713      1.1    jruoho                 {
   6714      1.1    jruoho                     Store (0xFF00, Local0)
   6715      1.1    jruoho                 }
   6716      1.1    jruoho                 Else
   6717      1.1    jruoho                 {
   6718      1.1    jruoho                     //  Prime Local0 with 0...assume passing condition
   6719      1.1    jruoho                     Store (0, Local0)
   6720      1.1    jruoho 
   6721      1.1    jruoho                     //  set memory contents to known values using DWORD field
   6722      1.1    jruoho                     Store (0x5A5A5A5A, DWRD)
   6723      1.1    jruoho 
   6724      1.1    jruoho                     //  Given the value programmed into DWRD, only the odd bits
   6725      1.1    jruoho                     //  of the lower nibble should be set. BIT1, BIT3 should be set.
   6726      1.1    jruoho                     //  BIT0 and BIT2 should be clear
   6727      1.1    jruoho 
   6728      1.1    jruoho                     If (BIT0)
   6729      1.1    jruoho                     {
   6730      1.1    jruoho                         Or (Local0, 0x01, Local0)
   6731      1.1    jruoho                     }
   6732      1.1    jruoho 
   6733      1.1    jruoho                     If (LNot (BIT1))
   6734      1.1    jruoho                     {
   6735      1.1    jruoho                         Or (Local0, 0x02, Local0)
   6736      1.1    jruoho                     }
   6737      1.1    jruoho 
   6738      1.1    jruoho                     If (BIT2)
   6739      1.1    jruoho                     {
   6740      1.1    jruoho                         Or (Local0, 0x04, Local0)
   6741      1.1    jruoho                     }
   6742      1.1    jruoho 
   6743      1.1    jruoho                     If (LNot (BIT3))
   6744      1.1    jruoho                     {
   6745      1.1    jruoho                         Or (Local0, 0x08, Local0)
   6746      1.1    jruoho                     }
   6747      1.1    jruoho 
   6748      1.1    jruoho                     //  Now check the upper nibble.  Only the "even" bits should
   6749      1.1    jruoho                     //  be set.  BIT4, BIT6.  BIT5 and BIT7 should be clear.
   6750      1.1    jruoho                     If (LNot (BIT4))
   6751      1.1    jruoho                     {
   6752      1.1    jruoho                         Or (Local0, 0x10, Local0)
   6753      1.1    jruoho                     }
   6754      1.1    jruoho 
   6755      1.1    jruoho                     If (BIT5)
   6756      1.1    jruoho                     {
   6757      1.1    jruoho                         Or (Local0, 0x20, Local0)
   6758      1.1    jruoho                     }
   6759      1.1    jruoho 
   6760      1.1    jruoho                     If (LNot (BIT6))
   6761      1.1    jruoho                     {
   6762      1.1    jruoho                         Or (Local0, 0x40, Local0)
   6763      1.1    jruoho                     }
   6764      1.1    jruoho 
   6765      1.1    jruoho                     If (BIT7)
   6766      1.1    jruoho                     {
   6767      1.1    jruoho                         Or (Local0, 0x80, Local0)
   6768      1.1    jruoho                     }
   6769      1.1    jruoho                 }   //  End Else DWRD zeroed out
   6770      1.1    jruoho 
   6771      1.1    jruoho                 Return (Local0)
   6772      1.1    jruoho             }   //  MBIT:   Test single bit memory accesses
   6773      1.1    jruoho 
   6774      1.1    jruoho             Method (TEST)
   6775      1.1    jruoho             {
   6776      1.1    jruoho 
   6777      1.1    jruoho                 Store ("++++++++ BitIndex Test", Debug)
   6778      1.1    jruoho 
   6779      1.1    jruoho                 //  Zero out DWRD
   6780      1.1    jruoho                 Store (0x00000000, DWRD)
   6781      1.1    jruoho 
   6782      1.1    jruoho                 //  MBIT returns zero if successful
   6783      1.1    jruoho                 //  This may be causing problems -- Return (MBIT)
   6784      1.1    jruoho                 Store (MBIT, Local0)
   6785      1.1    jruoho 
   6786      1.1    jruoho                 Return (Local0)
   6787      1.1    jruoho             }   //  TEST
   6788      1.1    jruoho         }   //  BITI
   6789      1.1    jruoho     }   //  _SB system bus
   6790      1.1    jruoho 
   6791      1.1    jruoho //
   6792      1.1    jruoho // test IndexOp3.asl
   6793      1.1    jruoho //
   6794      1.1    jruoho //  Additional IndexOp test cases to support ACPICMB (control method battery
   6795      1.1    jruoho //  test) on Compaq laptops. Test cases include storing a package into
   6796      1.1    jruoho //  an IndexOp target and validating that changing source and destination
   6797      1.1    jruoho //  package contents are independent of each other.
   6798      1.1    jruoho //
   6799      1.1    jruoho     Scope (\_SB)    //  System Bus
   6800      1.1    jruoho     {   //  _SB system bus
   6801      1.1    jruoho 
   6802      1.1    jruoho         Name (C174, 13)
   6803      1.1    jruoho         Name (C175, 8)
   6804      1.1    jruoho 
   6805      1.1    jruoho         Device (C158)
   6806      1.1    jruoho         {   //  C158:   AC Adapter device
   6807      1.1    jruoho             Name (_HID, "ACPI0003") //  AC Adapter device
   6808      1.1    jruoho             Name (_PCL, Package (1) {\_SB})
   6809      1.1    jruoho 
   6810      1.1    jruoho             Method (_PSR)
   6811      1.1    jruoho             {
   6812      1.1    jruoho                 Acquire (\_GL, 0xFFFF)
   6813      1.1    jruoho                 Release (\_GL)
   6814      1.1    jruoho                 And (Local0, 1, Local0) //  Local0 &= 1
   6815      1.1    jruoho                 Return (Local0)
   6816      1.1    jruoho             }   //  _PSR
   6817      1.1    jruoho         }   //  C158:   AC Adapter device
   6818      1.1    jruoho 
   6819      1.1    jruoho         Name (C176, Package (4) {"Primary", "MultiBay", "DockRight", "DockLeft"})
   6820      1.1    jruoho 
   6821      1.1    jruoho         Name (C177, Package (4) {0x99F5, 0x99F5, 0x995F, 0x995F})
   6822      1.1    jruoho 
   6823      1.1    jruoho         Name (C178, Package (4)
   6824      1.1    jruoho         {
   6825      1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190},
   6826      1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190},
   6827      1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190},
   6828      1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190}
   6829      1.1    jruoho         })  //  C178
   6830      1.1    jruoho 
   6831      1.1    jruoho         Name (C179, Package (4) {0, 0, 0x966B, 0x4190})
   6832      1.1    jruoho 
   6833      1.1    jruoho         Name (C17A, Package (4)
   6834      1.1    jruoho         {
   6835      1.1    jruoho             Package (3) {0, 0, 0},
   6836      1.1    jruoho             Package (3) {0, 0, 0},
   6837      1.1    jruoho             Package (3) {0, 0, 0},
   6838      1.1    jruoho             Package (3) {0, 0, 0}
   6839      1.1    jruoho         })  //  C17A
   6840      1.1    jruoho 
   6841  1.1.1.3  christos         Method (C17B, 1, Serialized)
   6842      1.1    jruoho         {   //  C17B:   _BIF implementation
   6843      1.1    jruoho             Name (C17C, Package (13)
   6844      1.1    jruoho             {   //  C17C:   _BIF control method return package
   6845      1.1    jruoho                 0,                  //  Power Unit (0 ==> mWh and mW)
   6846      1.1    jruoho                 0x99F5,         //  Design Capacity
   6847      1.1    jruoho                 0x99F5,         //  Last Full Charge Capacity
   6848      1.1    jruoho                 1,                  //  Battery Technology (1 ==> rechargeable)
   6849      1.1    jruoho                 0x3840,         //  Design Voltage
   6850      1.1    jruoho                 0x1280,         //  Design Capacity of Warning
   6851      1.1    jruoho                 0x0AC7,         //  Design Capacity of Low
   6852      1.1    jruoho                 1,                  //  Battery Capacity Granularity 1 (Low -- Warning)
   6853      1.1    jruoho                 1,                  //  Battery Capacity Granularity 2 (Warning -- Full)
   6854      1.1    jruoho                 "2891",         //  Model Number (ASCIIZ)
   6855      1.1    jruoho                 "(-Unknown-)",  //  Serial Number (ASCIIZ)
   6856      1.1    jruoho                 "LIon",         //  Battery Type (ASCIIZ)
   6857      1.1    jruoho                 0                   //  OEM Information (ASCIIZ)
   6858      1.1    jruoho             })  //  C17C:   _BIF control method return package
   6859      1.1    jruoho 
   6860      1.1    jruoho             And (Arg0, 7, Local0)                       //  Local0 = Arg0 & 7
   6861      1.1    jruoho 
   6862      1.1    jruoho             ShiftRight (Local0, 1, Local4)          //  Local4 = Local0 >> 1
   6863      1.1    jruoho 
   6864      1.1    jruoho             Store (C179, Index (C178, Local4, ))    //  C178->Local4 = C179
   6865      1.1    jruoho 
   6866      1.1    jruoho             //  verify source and destination packages can be altered independent
   6867      1.1    jruoho             //  of each other (i.e., changing one's contents does NOT change other's
   6868      1.1    jruoho             //  contents)
   6869      1.1    jruoho             Store (0x1234, Index (C179, 2, ))               //  C179[2] = 0x1234
   6870      1.1    jruoho             Store (DerefOf (Index (C179, 2, )), Local2) //  Local2 = C179[2]
   6871      1.1    jruoho             if (LNotEqual (Local2, 0x1234))
   6872      1.1    jruoho                 {   Return (0x1234) }
   6873      1.1    jruoho                                                                         //  Local2 = C178[0,2]
   6874      1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 2, )), Local2)
   6875      1.1    jruoho             if (LNotEqual (Local2, 0x966B))
   6876      1.1    jruoho                 {   Return (0x1234) }
   6877      1.1    jruoho 
   6878      1.1    jruoho             // Restore data to allow iterative execution
   6879      1.1    jruoho             Store (0x966B, Index (C179, 2, ))               //  C179[2] = 0x966B
   6880      1.1    jruoho 
   6881      1.1    jruoho                                                                         //  C178[0,3] = 0x5678
   6882      1.1    jruoho             Store (0x5678, Index (DerefOf (Index (C178, 0, )), 3, ))
   6883      1.1    jruoho                                                                         //  Local2 = C178[0,3]
   6884      1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 3, )), Local2)
   6885      1.1    jruoho             if (LNotEqual (Local2, 0x5678))
   6886      1.1    jruoho                 {   Return (0x5678) }
   6887      1.1    jruoho 
   6888      1.1    jruoho             Store (DerefOf (Index (C179, 3, )), Local2) //  Local2 = C179[3]
   6889      1.1    jruoho             if (LNotEqual (Local2, 0x4190))
   6890      1.1    jruoho                 {   Return (0x5678) }
   6891      1.1    jruoho 
   6892      1.1    jruoho             // Restore data to allow iterative execution
   6893      1.1    jruoho             Store (0x4190, Index (DerefOf (Index (C178, 0, )), 3, ))    //  C179[2] = 0x4190
   6894      1.1    jruoho 
   6895      1.1    jruoho             Return (C17C)
   6896      1.1    jruoho         }   //  C17B:   _BIF implementation
   6897      1.1    jruoho 
   6898      1.1    jruoho         Device (C154)
   6899      1.1    jruoho         {   //  C154:   Battery 0
   6900      1.1    jruoho             Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
   6901      1.1    jruoho             Name (_UID, 0)                  //  first instance
   6902      1.1    jruoho 
   6903      1.1    jruoho             Method (_BIF)
   6904      1.1    jruoho             {   //  _BIF
   6905      1.1    jruoho                 Return (C17B (48))
   6906      1.1    jruoho             }   //  _BIF
   6907      1.1    jruoho         }   //  C154:   Battery 0
   6908      1.1    jruoho 
   6909      1.1    jruoho         Device (IDX3)
   6910      1.1    jruoho         {
   6911  1.1.1.3  christos             Method (LCLB,, Serialized)
   6912      1.1    jruoho             {   //  LCLB control method: test Index(Local#) where Local# is buffer
   6913      1.1    jruoho                 //  Local0 is index counter
   6914      1.1    jruoho                 //  Local1 is buffer
   6915      1.1    jruoho                 //  Local2 receives BUFR[Local0] via Deref(Index(Local1...))
   6916      1.1    jruoho                 //  Local3 is Local1 or Local2 object type
   6917      1.1    jruoho                 //  Local4 is return error code
   6918      1.1    jruoho 
   6919      1.1    jruoho                 Name (BUFR, Buffer ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
   6920      1.1    jruoho 
   6921      1.1    jruoho                 //  save PKG into Local1
   6922      1.1    jruoho                 Store (BUFR, Local1)
   6923      1.1    jruoho 
   6924      1.1    jruoho                 //  save Local2 object type value into Local3
   6925      1.1    jruoho                 Store (ObjectType (Local1), Local3)
   6926      1.1    jruoho 
   6927      1.1    jruoho                 //  validate Local1 is a Buffer
   6928      1.1    jruoho                 If (LNotEqual (Local3, 3))      //  Buffer type is 3
   6929      1.1    jruoho                     {   Return (0x9F)   }
   6930      1.1    jruoho 
   6931      1.1    jruoho 
   6932      1.1    jruoho                 Store (0, Local0)
   6933      1.1    jruoho                 While (LLess (Local0, 5))
   6934      1.1    jruoho                 {   //  While (Local0 < 5)
   6935      1.1    jruoho                     //  Local2 = Local1[Local0]
   6936      1.1    jruoho                     Store (DerefOf (Index (Local1, Local0, )), Local2)
   6937      1.1    jruoho 
   6938      1.1    jruoho                     //  save Local2 object type value into Local3
   6939      1.1    jruoho                     Store (ObjectType (Local2), Local3)
   6940      1.1    jruoho 
   6941      1.1    jruoho                     //  validate Local2 is a Number
   6942      1.1    jruoho                     If (LNotEqual (Local3, 1))      //  Number type is 1
   6943      1.1    jruoho                         {   Return (0x9E)   }
   6944      1.1    jruoho 
   6945      1.1    jruoho                     //  validate Local1[Local0] value == Local0
   6946      1.1    jruoho                     If (LNotEqual (Local0, Local2))
   6947      1.1    jruoho                     {   //  Local0 != Local2 == PKG[Local0]
   6948      1.1    jruoho                         //  Local4 = 0x90 + loop index (Local0)
   6949      1.1    jruoho                         Add (0x90, Local0, Local4)
   6950      1.1    jruoho 
   6951      1.1    jruoho                         //  return 0x90 + loop index
   6952      1.1    jruoho                         Return (Local4)
   6953      1.1    jruoho                     }
   6954      1.1    jruoho 
   6955      1.1    jruoho                     Increment (Local0)
   6956      1.1    jruoho                 }   //  While (Local0 < 5)
   6957      1.1    jruoho 
   6958      1.1    jruoho                 Store ("DerefOf(Index(LocalBuffer,,)) PASS", Debug)
   6959      1.1    jruoho 
   6960      1.1    jruoho                 Return (0)  //  Pass
   6961      1.1    jruoho             }   //  LCLB control method: test Index(Local#) where Local# is buffer
   6962      1.1    jruoho 
   6963  1.1.1.3  christos             Method (LCLP,, Serialized)
   6964      1.1    jruoho             {   //  LCLP control method: test Index(Local#) where Local# is package
   6965      1.1    jruoho                 //  Local0 is index counter
   6966      1.1    jruoho                 //  Local1 is package
   6967      1.1    jruoho                 //  Local2 receives PKG[Local0] via Deref(Index(Local1...))
   6968      1.1    jruoho                 //  Local3 is Local1 or Local2 object type
   6969      1.1    jruoho                 //  Local4 is return error code
   6970      1.1    jruoho 
   6971      1.1    jruoho                 Name (PKG, Package ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
   6972      1.1    jruoho 
   6973      1.1    jruoho                 //  save PKG into Local1
   6974      1.1    jruoho                 Store (PKG, Local1)
   6975      1.1    jruoho 
   6976      1.1    jruoho                 //  save Local2 object type value into Local3
   6977      1.1    jruoho                 Store (ObjectType (Local1), Local3)
   6978      1.1    jruoho 
   6979      1.1    jruoho                 //  validate Local1 is a Package
   6980      1.1    jruoho                 If (LNotEqual (Local3, 4))      //  Package type is 4
   6981      1.1    jruoho                     {   Return (0x8F)   }
   6982      1.1    jruoho 
   6983      1.1    jruoho 
   6984      1.1    jruoho                 Store (0, Local0)
   6985      1.1    jruoho                 While (LLess (Local0, 5))
   6986      1.1    jruoho                 {   //  While (Local0 < 5)
   6987      1.1    jruoho                     //  Local2 = Local1[Local0]
   6988      1.1    jruoho                     Store (DerefOf (Index (Local1, Local0, )), Local2)
   6989      1.1    jruoho 
   6990      1.1    jruoho                     //  save Local2 object type value into Local3
   6991      1.1    jruoho                     Store (ObjectType (Local2), Local3)
   6992      1.1    jruoho 
   6993      1.1    jruoho                     //  validate Local2 is a Number
   6994      1.1    jruoho                     If (LNotEqual (Local3, 1))      //  Number type is 1
   6995      1.1    jruoho                         {   Return (0x8E)   }
   6996      1.1    jruoho 
   6997      1.1    jruoho                     //  validate Local1[Local0] value == Local0
   6998      1.1    jruoho                     If (LNotEqual (Local0, Local2))
   6999      1.1    jruoho                     {   //  Local0 != Local2 == PKG[Local0]
   7000      1.1    jruoho                         //  Local4 = 0x80 + loop index (Local0)
   7001      1.1    jruoho                         Add (0x80, Local0, Local4)
   7002      1.1    jruoho 
   7003      1.1    jruoho                         //  return 0x80 + loop index
   7004      1.1    jruoho                         Return (Local4)
   7005      1.1    jruoho                     }
   7006      1.1    jruoho 
   7007      1.1    jruoho                     Increment (Local0)
   7008      1.1    jruoho                 }   //  While (Local0 < 5)
   7009      1.1    jruoho 
   7010      1.1    jruoho                 Store ("DerefOf(Index(LocalPackage,,)) PASS", Debug)
   7011      1.1    jruoho 
   7012      1.1    jruoho                 Return (0)  //  Pass
   7013      1.1    jruoho             }   //  LCLP control method: test Index(Local#) where Local# is package
   7014      1.1    jruoho 
   7015      1.1    jruoho             Method (TEST)
   7016      1.1    jruoho             {
   7017      1.1    jruoho 
   7018      1.1    jruoho                 Store ("++++++++ IndexOp3 Test", Debug)
   7019      1.1    jruoho 
   7020      1.1    jruoho                 //  store _BIF package return value into Local0
   7021      1.1    jruoho                 Store (\_SB.C154._BIF, Local0)
   7022      1.1    jruoho 
   7023      1.1    jruoho                 //  save Local0 object type value into Local1
   7024      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   7025      1.1    jruoho 
   7026      1.1    jruoho                 //  validate Local0 is a Package
   7027      1.1    jruoho                 If (LNotEqual (Local1, 4))      //  Package type is 4
   7028      1.1    jruoho                 {   //  failure: did not return a Package (type 4)
   7029      1.1    jruoho                     //  if Local0 is a Number, it contains an error code
   7030      1.1    jruoho                     If (LEqual (Local1, 1))     //  Number type is 1
   7031      1.1    jruoho                         {   Return (Local0) }   //  return Local0 error code
   7032      1.1    jruoho                     Else                                //  Local0 is not a Number
   7033      1.1    jruoho                         {   Return (1)  }           //  return default error code
   7034      1.1    jruoho                 }   //  failure: did not return a Package (type 4)
   7035      1.1    jruoho 
   7036      1.1    jruoho                 //  save LCLB control method return value into Local2
   7037      1.1    jruoho                 Store (LCLB, Local2)
   7038      1.1    jruoho                 If (LNotEqual (Local2, 0))
   7039      1.1    jruoho                     {   Return (Local2) }   //  return failure code
   7040      1.1    jruoho 
   7041      1.1    jruoho                 //  save LCLP control method return value into Local2
   7042      1.1    jruoho                 Store (LCLP, Local2)
   7043      1.1    jruoho                 If (LNotEqual (Local2, 0))
   7044      1.1    jruoho                     {   Return (Local2) }   //  return failure code
   7045      1.1    jruoho 
   7046      1.1    jruoho                 Return (0)  //  Pass
   7047      1.1    jruoho             }   //  TEST
   7048      1.1    jruoho         }   //  IDX3:   Test device name
   7049      1.1    jruoho     }   //  _SB system bus
   7050      1.1    jruoho 
   7051      1.1    jruoho //
   7052      1.1    jruoho // MTL developed test to exercise Indexes into buffers
   7053      1.1    jruoho //
   7054      1.1    jruoho     Device(IDX7)
   7055      1.1    jruoho     {
   7056      1.1    jruoho 
   7057      1.1    jruoho         Name (PKG4, Package() {
   7058      1.1    jruoho                 0x2,
   7059      1.1    jruoho                 "A short string",
   7060      1.1    jruoho                 Buffer() {0xA, 0xB, 0xC, 0xD},
   7061      1.1    jruoho                 0x1234,
   7062      1.1    jruoho                 Package() {IDX7, 0x3}
   7063      1.1    jruoho                 })
   7064      1.1    jruoho 
   7065      1.1    jruoho         //
   7066      1.1    jruoho         // Generic Test method
   7067      1.1    jruoho         //
   7068      1.1    jruoho         // This test returns 0xE (14) - ObjectType = Buffer Field
   7069  1.1.1.3  christos         Method(TST1,, Serialized)
   7070      1.1    jruoho         {
   7071      1.1    jruoho             Name (DEST, Buffer ()                           //  62 characters plus NULL
   7072      1.1    jruoho                 {"Destination buffer that is longer than the short source buffer"})
   7073      1.1    jruoho 
   7074      1.1    jruoho             //  verify object type returned by Index(Buffer,Element,)
   7075      1.1    jruoho             Store (Index (DEST, 2, ), Local1)
   7076      1.1    jruoho             Store (ObjectType (Local1), Local2)
   7077      1.1    jruoho             If (LEqual(Local2, 14))
   7078      1.1    jruoho             {
   7079      1.1    jruoho                 Return(0)
   7080      1.1    jruoho             }
   7081      1.1    jruoho             Else
   7082      1.1    jruoho             {
   7083      1.1    jruoho                 Return(0x1)
   7084      1.1    jruoho             }
   7085      1.1    jruoho 
   7086      1.1    jruoho         }
   7087      1.1    jruoho 
   7088  1.1.1.3  christos         Method(TST2,, Serialized)
   7089      1.1    jruoho         {
   7090      1.1    jruoho             Name (BUF0, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
   7091      1.1    jruoho             Store(0x55, Index(BUF0, 2))
   7092      1.1    jruoho             Store(DerefOf(Index(BUF0, 2)), Local0)
   7093      1.1    jruoho             If (LEqual(Local0, 0x55))
   7094      1.1    jruoho             {
   7095      1.1    jruoho                 Return(0)
   7096      1.1    jruoho             }
   7097      1.1    jruoho             Else
   7098      1.1    jruoho             {
   7099      1.1    jruoho                 Return(0x2)
   7100      1.1    jruoho             }
   7101      1.1    jruoho 
   7102      1.1    jruoho 
   7103      1.1    jruoho         }
   7104      1.1    jruoho 
   7105  1.1.1.3  christos         Method(TST3,, Serialized)
   7106      1.1    jruoho         {
   7107      1.1    jruoho             Name (BUF1, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
   7108      1.1    jruoho             Store(Index(BUF1, 1), Local0)
   7109      1.1    jruoho             Store(DerefOf(Local0), Local1)
   7110      1.1    jruoho             If (LEqual(Local1, 0x2))
   7111      1.1    jruoho             {
   7112      1.1    jruoho                 Return(0)
   7113      1.1    jruoho             }
   7114      1.1    jruoho             Else
   7115      1.1    jruoho             {
   7116      1.1    jruoho                 Return(0x3)
   7117      1.1    jruoho             }
   7118      1.1    jruoho 
   7119      1.1    jruoho         }
   7120      1.1    jruoho 
   7121      1.1    jruoho         Method(TST4)
   7122      1.1    jruoho         {
   7123      1.1    jruoho             // Index (PKG4, 0) is a Number
   7124      1.1    jruoho             Store (Index (PKG4, 0), Local0)
   7125      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7126      1.1    jruoho             If (LEqual(Local1, 0x1))
   7127      1.1    jruoho             {
   7128      1.1    jruoho                 Return(0)
   7129      1.1    jruoho             }
   7130      1.1    jruoho             Else
   7131      1.1    jruoho             {
   7132      1.1    jruoho                 Return(0x4)
   7133      1.1    jruoho             }
   7134      1.1    jruoho 
   7135      1.1    jruoho         }
   7136      1.1    jruoho 
   7137      1.1    jruoho         Method(TST5)
   7138      1.1    jruoho         {
   7139      1.1    jruoho             // Index (PKG4, 1) is a String
   7140      1.1    jruoho             Store (Index (PKG4, 1), Local0)
   7141      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7142      1.1    jruoho             If (LEqual(Local1, 0x2))
   7143      1.1    jruoho             {
   7144      1.1    jruoho                 Return(0)
   7145      1.1    jruoho             }
   7146      1.1    jruoho             Else
   7147      1.1    jruoho             {
   7148      1.1    jruoho                 Return(0x5)
   7149      1.1    jruoho             }
   7150      1.1    jruoho 
   7151      1.1    jruoho         }
   7152      1.1    jruoho 
   7153      1.1    jruoho         Method(TST6)
   7154      1.1    jruoho         {
   7155      1.1    jruoho             // Index (PKG4, 2) is a Buffer
   7156      1.1    jruoho             Store (Index (PKG4, 2), Local0)
   7157      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7158      1.1    jruoho             If (LEqual(Local1, 0x3))
   7159      1.1    jruoho             {
   7160      1.1    jruoho                 Return(0)
   7161      1.1    jruoho             }
   7162      1.1    jruoho             Else
   7163      1.1    jruoho             {
   7164      1.1    jruoho                 Return(0x6)
   7165      1.1    jruoho             }
   7166      1.1    jruoho 
   7167      1.1    jruoho         }
   7168      1.1    jruoho 
   7169      1.1    jruoho         Method(TST7)
   7170      1.1    jruoho         {
   7171      1.1    jruoho             // Index (PKG4, 3) is a Number
   7172      1.1    jruoho             Store (Index (PKG4, 3), Local0)
   7173      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7174      1.1    jruoho             If (LEqual(Local1, 0x1))
   7175      1.1    jruoho             {
   7176      1.1    jruoho                 Return(0)
   7177      1.1    jruoho             }
   7178      1.1    jruoho             Else
   7179      1.1    jruoho             {
   7180      1.1    jruoho                 Return(0x7)
   7181      1.1    jruoho             }
   7182      1.1    jruoho 
   7183      1.1    jruoho         }
   7184      1.1    jruoho 
   7185      1.1    jruoho         Method(TST8)
   7186      1.1    jruoho         {
   7187      1.1    jruoho             // Index (PKG4, 4) is a Package
   7188      1.1    jruoho             Store (Index (PKG4, 4), Local0)
   7189      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7190      1.1    jruoho             If (LEqual(Local1, 0x4))
   7191      1.1    jruoho             {
   7192      1.1    jruoho                 Return(0)
   7193      1.1    jruoho             }
   7194      1.1    jruoho             Else
   7195      1.1    jruoho             {
   7196      1.1    jruoho                 Return(0x8)
   7197      1.1    jruoho             }
   7198      1.1    jruoho 
   7199      1.1    jruoho         }
   7200      1.1    jruoho 
   7201      1.1    jruoho         Method(TST9)
   7202      1.1    jruoho         {
   7203      1.1    jruoho             // DerefOf (Index (PKG4, 0)) is a Number
   7204      1.1    jruoho             Store (DerefOf (Index (PKG4, 0)), Local0)
   7205      1.1    jruoho             If (LEqual(Local0, 0x2))
   7206      1.1    jruoho             {
   7207      1.1    jruoho                 Return(0)
   7208      1.1    jruoho             }
   7209      1.1    jruoho             Else
   7210      1.1    jruoho             {
   7211      1.1    jruoho                 Return(0x9)
   7212      1.1    jruoho             }
   7213      1.1    jruoho 
   7214      1.1    jruoho         }
   7215      1.1    jruoho 
   7216      1.1    jruoho         Method(TSTA)
   7217      1.1    jruoho         {
   7218      1.1    jruoho             // DerefOf (Index (PKG4, 1)) is a String
   7219      1.1    jruoho             Store (DerefOf (Index (PKG4, 1)), Local0)
   7220      1.1    jruoho             Store (SizeOf(Local0), Local1)
   7221      1.1    jruoho             If (LEqual(Local1, 0xE))
   7222      1.1    jruoho             {
   7223      1.1    jruoho                 Return(0)
   7224      1.1    jruoho             }
   7225      1.1    jruoho             Else
   7226      1.1    jruoho             {
   7227      1.1    jruoho                 Return(0xA)
   7228      1.1    jruoho             }
   7229      1.1    jruoho 
   7230      1.1    jruoho         }
   7231      1.1    jruoho 
   7232      1.1    jruoho         Method(TSTB)
   7233      1.1    jruoho         {
   7234      1.1    jruoho             // DerefOf (Index (PKG4, 2)) is a Buffer
   7235      1.1    jruoho             Store (DerefOf (Index (PKG4, 2)), Local0)
   7236      1.1    jruoho             Store (SizeOf(Local0), Local1)
   7237      1.1    jruoho             If (LEqual(Local1, 0x4))
   7238      1.1    jruoho             {
   7239      1.1    jruoho                 Return(0)
   7240      1.1    jruoho             }
   7241      1.1    jruoho             Else
   7242      1.1    jruoho             {
   7243      1.1    jruoho                 Return(0xB)
   7244      1.1    jruoho             }
   7245      1.1    jruoho 
   7246      1.1    jruoho         }
   7247      1.1    jruoho 
   7248      1.1    jruoho         Method(TSTC)
   7249      1.1    jruoho         {
   7250      1.1    jruoho             // DerefOf (Index (PKG4, 3)) is a Number
   7251      1.1    jruoho             Store (DerefOf (Index (PKG4, 3)), Local0)
   7252      1.1    jruoho             If (LEqual(Local0, 0x1234))
   7253      1.1    jruoho             {
   7254      1.1    jruoho                 Return(0)
   7255      1.1    jruoho             }
   7256      1.1    jruoho             Else
   7257      1.1    jruoho             {
   7258      1.1    jruoho                 Return(0xC)
   7259      1.1    jruoho             }
   7260      1.1    jruoho 
   7261      1.1    jruoho         }
   7262      1.1    jruoho 
   7263      1.1    jruoho         Method(TSTD)
   7264      1.1    jruoho         {
   7265      1.1    jruoho             // DerefOf (Index (PKG4, 4)) is a Package
   7266      1.1    jruoho             Store (DerefOf (Index (PKG4, 4)), Local0)
   7267      1.1    jruoho             Store (SizeOf(Local0), Local1)
   7268      1.1    jruoho             If (LEqual(Local1, 0x2))
   7269      1.1    jruoho             {
   7270      1.1    jruoho                 Return(0)
   7271      1.1    jruoho             }
   7272      1.1    jruoho             Else
   7273      1.1    jruoho             {
   7274      1.1    jruoho                 Return(0xD)
   7275      1.1    jruoho             }
   7276      1.1    jruoho 
   7277      1.1    jruoho         }
   7278      1.1    jruoho 
   7279      1.1    jruoho         Method(TSTE)
   7280      1.1    jruoho         {
   7281      1.1    jruoho             // DerefOf (Index (PKG4, 2)) is a Buffer
   7282      1.1    jruoho             Store (DerefOf (Index (PKG4, 2)), Local0)
   7283      1.1    jruoho             // DerefOf (Index (Local0, 1)) is a Number
   7284      1.1    jruoho             Store (DerefOf (Index (Local0, 1)), Local1)
   7285      1.1    jruoho             If (LEqual(Local1, 0xB))
   7286      1.1    jruoho             {
   7287      1.1    jruoho                 Return(0)
   7288      1.1    jruoho             }
   7289      1.1    jruoho             Else
   7290      1.1    jruoho             {
   7291      1.1    jruoho                 Return(0xE)
   7292      1.1    jruoho             }
   7293      1.1    jruoho 
   7294      1.1    jruoho         }
   7295      1.1    jruoho 
   7296  1.1.1.3  christos         Method (TSTF,, Serialized)
   7297      1.1    jruoho         {
   7298      1.1    jruoho             Name (SRCB, Buffer (12) {}) //  12 characters
   7299      1.1    jruoho             Store ("Short Buffer", SRCB)
   7300      1.1    jruoho 
   7301      1.1    jruoho             Name (DEST, Buffer ()                       //  62 characters plus NULL
   7302      1.1    jruoho                 {"Destination buffer that is longer than the short source buffer"})
   7303      1.1    jruoho 
   7304      1.1    jruoho             //  overwrite DEST contents, starting at buffer position 2
   7305      1.1    jruoho             Store (SRCB, Index (DEST, 2))
   7306      1.1    jruoho 
   7307      1.1    jruoho             //
   7308      1.1    jruoho             //  The DEST buffer element should be replaced with the last element of
   7309      1.1    jruoho             //      the SRCB element (i.e. 's'->'r')
   7310      1.1    jruoho             Store (DerefOf (Index (DEST, 2)), Local0)
   7311      1.1    jruoho 
   7312      1.1    jruoho             If (LNotEqual (Local0, 0x72))       //  'r'
   7313      1.1    jruoho             {
   7314      1.1    jruoho                 //  DEST element does not match the value from SRCB
   7315      1.1    jruoho                 Return(Or(Local0, 0x1000))
   7316      1.1    jruoho             }
   7317      1.1    jruoho 
   7318      1.1    jruoho             Return(0)
   7319      1.1    jruoho         }
   7320      1.1    jruoho 
   7321  1.1.1.3  christos         Method (TSTG,, Serialized)
   7322      1.1    jruoho         {
   7323      1.1    jruoho 
   7324      1.1    jruoho             Name (SRCB, Buffer (12) {}) //  12 characters
   7325      1.1    jruoho             Store ("Short Buffer", SRCB)
   7326      1.1    jruoho 
   7327      1.1    jruoho             Name (DEST, Buffer ()                       //  62 characters plus NULL
   7328      1.1    jruoho                 {"Destination buffer that is longer than the short source buffer"})
   7329      1.1    jruoho 
   7330      1.1    jruoho             //  overwrite DEST contents, starting at buffer position 2
   7331      1.1    jruoho             Store (SRCB, Index (DEST, 2))
   7332      1.1    jruoho 
   7333      1.1    jruoho             //
   7334      1.1    jruoho             // The next element of DEST should be unchanged
   7335      1.1    jruoho             //
   7336      1.1    jruoho             Store (DerefOf (Index (DEST, 3)), Local0)
   7337      1.1    jruoho 
   7338      1.1    jruoho             If (LNotEqual (Local0, 0x74))       //  't'
   7339      1.1    jruoho             {
   7340      1.1    jruoho                 //  DEST has been changed
   7341      1.1    jruoho                 Return(Or(Local0, 0x2000))
   7342      1.1    jruoho             }
   7343      1.1    jruoho 
   7344      1.1    jruoho             //
   7345      1.1    jruoho             // The next element of DEST should be unchanged
   7346      1.1    jruoho             //
   7347      1.1    jruoho             Store (DerefOf (Index (DEST, 4)), Local0)
   7348      1.1    jruoho 
   7349      1.1    jruoho             If (LNotEqual (Local0, 0x69))       //  'i'
   7350      1.1    jruoho             {
   7351      1.1    jruoho                 //  DEST has been changed
   7352      1.1    jruoho                 Return(Or(Local0, 0x2100))
   7353      1.1    jruoho             }
   7354      1.1    jruoho 
   7355      1.1    jruoho             //
   7356      1.1    jruoho             // The next element of DEST should be unchanged
   7357      1.1    jruoho             //
   7358      1.1    jruoho             Store (DerefOf (Index (DEST, 5)), Local0)
   7359      1.1    jruoho 
   7360      1.1    jruoho             If (LNotEqual (Local0, 0x6E))       //  'n'
   7361      1.1    jruoho             {
   7362      1.1    jruoho                 //  DEST has been changed
   7363      1.1    jruoho                 Return(Or(Local0, 0x2200))
   7364      1.1    jruoho             }
   7365      1.1    jruoho 
   7366      1.1    jruoho             //
   7367      1.1    jruoho             // The next element of DEST should be unchanged
   7368      1.1    jruoho             //
   7369      1.1    jruoho             Store (DerefOf (Index (DEST, 6)), Local0)
   7370      1.1    jruoho 
   7371      1.1    jruoho             If (LNotEqual (Local0, 0x61))       //  'a'
   7372      1.1    jruoho             {
   7373      1.1    jruoho                 //  DEST has been changed
   7374      1.1    jruoho                 Return(Or(Local0, 0x2300))
   7375      1.1    jruoho             }
   7376      1.1    jruoho 
   7377      1.1    jruoho             //
   7378      1.1    jruoho             // The next element of DEST should be unchanged
   7379      1.1    jruoho             //
   7380      1.1    jruoho             Store (DerefOf (Index (DEST, 7)), Local0)
   7381      1.1    jruoho 
   7382      1.1    jruoho             If (LNotEqual (Local0, 0x74))       //  't'
   7383      1.1    jruoho             {
   7384      1.1    jruoho                 //  DEST has been changed
   7385      1.1    jruoho                 Return(Or(Local0, 0x2400))
   7386      1.1    jruoho             }
   7387      1.1    jruoho 
   7388      1.1    jruoho             //
   7389      1.1    jruoho             //  Verify DEST elements beyond end of SRCB buffer copy
   7390      1.1    jruoho             //  have not been changed
   7391      1.1    jruoho             Store (DerefOf (Index (DEST, 14)), Local0)
   7392      1.1    jruoho 
   7393      1.1    jruoho             If (LNotEqual (Local0, 0x66))       // 'f'
   7394      1.1    jruoho             {
   7395      1.1    jruoho                 //  DEST has been changed
   7396      1.1    jruoho                 Return(Or(Local0, 0x2400))
   7397      1.1    jruoho             }
   7398      1.1    jruoho 
   7399      1.1    jruoho             Return(0)
   7400      1.1    jruoho         }
   7401      1.1    jruoho 
   7402      1.1    jruoho         //
   7403      1.1    jruoho         // This test shows that MS ACPI.SYS stores only the lower 8-bits of a 32-bit
   7404      1.1    jruoho         //  number into the index'ed buffer
   7405      1.1    jruoho         //
   7406  1.1.1.3  christos         Method (TSTH,, Serialized)
   7407      1.1    jruoho         {
   7408      1.1    jruoho             // Create a Destination Buffer
   7409      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7410      1.1    jruoho 
   7411      1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7412      1.1    jruoho             Store (0x12345678, Index(DBUF, 2))
   7413      1.1    jruoho 
   7414      1.1    jruoho             // Check the results
   7415      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7416      1.1    jruoho             If (LNotEqual (Local0, 0x78))   // 0x78
   7417      1.1    jruoho             {
   7418      1.1    jruoho                 Return(Or(Local0, 0x3000))
   7419      1.1    jruoho             }
   7420      1.1    jruoho 
   7421      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7422      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7423      1.1    jruoho             {
   7424      1.1    jruoho                 Return(Or(Local0, 0x3100))
   7425      1.1    jruoho             }
   7426      1.1    jruoho 
   7427      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7428      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7429      1.1    jruoho             {
   7430      1.1    jruoho                 Return(Or(Local0, 0x3200))
   7431      1.1    jruoho             }
   7432      1.1    jruoho 
   7433      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7434      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7435      1.1    jruoho             {
   7436      1.1    jruoho                 Return(Or(Local0, 0x3300))
   7437      1.1    jruoho             }
   7438      1.1    jruoho 
   7439      1.1    jruoho             Return(0)
   7440      1.1    jruoho         }
   7441      1.1    jruoho 
   7442  1.1.1.3  christos         Method (TSTI,, Serialized)
   7443      1.1    jruoho         {
   7444      1.1    jruoho             // Create a Destination Buffer
   7445      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7446      1.1    jruoho 
   7447      1.1    jruoho             // Store a String into an index of the buffer
   7448      1.1    jruoho             Store ("ABCDEFGH", Index(DBUF, 2))
   7449      1.1    jruoho 
   7450      1.1    jruoho             // Check the results
   7451      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7452      1.1    jruoho             If (LNotEqual (Local0, 0x48))   // 'H'
   7453      1.1    jruoho             {
   7454      1.1    jruoho                 Return(Or(Local0, 0x4000))
   7455      1.1    jruoho             }
   7456      1.1    jruoho 
   7457      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7458      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7459      1.1    jruoho             {
   7460      1.1    jruoho                 Return(Or(Local0, 0x4100))
   7461      1.1    jruoho             }
   7462      1.1    jruoho 
   7463      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7464      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7465      1.1    jruoho             {
   7466      1.1    jruoho                 Return(Or(Local0, 0x4200))
   7467      1.1    jruoho             }
   7468      1.1    jruoho 
   7469      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7470      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7471      1.1    jruoho             {
   7472      1.1    jruoho                 Return(Or(Local0, 0x4300))
   7473      1.1    jruoho             }
   7474      1.1    jruoho 
   7475      1.1    jruoho             Return(0)
   7476      1.1    jruoho         }
   7477      1.1    jruoho 
   7478  1.1.1.3  christos         Method(TSTJ,, Serialized)
   7479      1.1    jruoho         {
   7480      1.1    jruoho             // Create a Destination Buffer
   7481      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7482      1.1    jruoho 
   7483      1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7484      1.1    jruoho             Store (0x1234, Index(DBUF, 2))
   7485      1.1    jruoho 
   7486      1.1    jruoho             // Check the results
   7487      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7488      1.1    jruoho             If (LNotEqual (Local0, 0x34))   // 0x34
   7489      1.1    jruoho             {
   7490      1.1    jruoho                 Return(Or(Local0, 0x3000))
   7491      1.1    jruoho             }
   7492      1.1    jruoho 
   7493      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7494      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7495      1.1    jruoho             {
   7496      1.1    jruoho                 Return(Or(Local0, 0x3100))
   7497      1.1    jruoho             }
   7498      1.1    jruoho 
   7499      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7500      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7501      1.1    jruoho             {
   7502      1.1    jruoho                 Return(Or(Local0, 0x3200))
   7503      1.1    jruoho             }
   7504      1.1    jruoho 
   7505      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7506      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7507      1.1    jruoho             {
   7508      1.1    jruoho                 Return(Or(Local0, 0x3300))
   7509      1.1    jruoho             }
   7510      1.1    jruoho 
   7511      1.1    jruoho             Return(0)
   7512      1.1    jruoho         }
   7513      1.1    jruoho 
   7514  1.1.1.3  christos         Method(TSTK,, Serialized)
   7515      1.1    jruoho         {
   7516      1.1    jruoho             // Create a Destination Buffer
   7517      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7518      1.1    jruoho 
   7519      1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7520      1.1    jruoho             Store (0x123456, Index(DBUF, 2))
   7521      1.1    jruoho 
   7522      1.1    jruoho             // Check the results
   7523      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7524      1.1    jruoho             If (LNotEqual (Local0, 0x56))   // 0x56
   7525      1.1    jruoho             {
   7526      1.1    jruoho                 Return(Or(Local0, 0x3000))
   7527      1.1    jruoho             }
   7528      1.1    jruoho 
   7529      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7530      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7531      1.1    jruoho             {
   7532      1.1    jruoho                 Return(Or(Local0, 0x3100))
   7533      1.1    jruoho             }
   7534      1.1    jruoho 
   7535      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7536      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7537      1.1    jruoho             {
   7538      1.1    jruoho                 Return(Or(Local0, 0x3200))
   7539      1.1    jruoho             }
   7540      1.1    jruoho 
   7541      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7542      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7543      1.1    jruoho             {
   7544      1.1    jruoho                 Return(Or(Local0, 0x3300))
   7545      1.1    jruoho             }
   7546      1.1    jruoho 
   7547      1.1    jruoho             Return(0)
   7548      1.1    jruoho         }
   7549      1.1    jruoho 
   7550  1.1.1.3  christos         Method(TSTL,, Serialized)
   7551      1.1    jruoho         {
   7552      1.1    jruoho             // Create a Destination Buffer
   7553      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7554      1.1    jruoho 
   7555      1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7556      1.1    jruoho             Store (0x12, Index(DBUF, 2))
   7557      1.1    jruoho 
   7558      1.1    jruoho             // Check the results
   7559      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7560      1.1    jruoho             If (LNotEqual (Local0, 0x12))   // 0x12
   7561      1.1    jruoho             {
   7562      1.1    jruoho                 Return(Or(Local0, 0x3000))
   7563      1.1    jruoho             }
   7564      1.1    jruoho 
   7565      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7566      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7567      1.1    jruoho             {
   7568      1.1    jruoho                 Return(Or(Local0, 0x3100))
   7569      1.1    jruoho             }
   7570      1.1    jruoho 
   7571      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7572      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7573      1.1    jruoho             {
   7574      1.1    jruoho                 Return(Or(Local0, 0x3200))
   7575      1.1    jruoho             }
   7576      1.1    jruoho 
   7577      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7578      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7579      1.1    jruoho             {
   7580      1.1    jruoho                 Return(Or(Local0, 0x3300))
   7581      1.1    jruoho             }
   7582      1.1    jruoho 
   7583      1.1    jruoho             Return(0)
   7584      1.1    jruoho         }
   7585      1.1    jruoho 
   7586      1.1    jruoho         Method(TEST)
   7587      1.1    jruoho         {
   7588      1.1    jruoho             Store ("++++++++ IndexOp7 Test", Debug)
   7589      1.1    jruoho 
   7590      1.1    jruoho             Store(TST1(), Local0)
   7591      1.1    jruoho             if (LGreater (Local0, 0))
   7592      1.1    jruoho             {
   7593      1.1    jruoho                 Return(Local0)
   7594      1.1    jruoho             }
   7595      1.1    jruoho 
   7596      1.1    jruoho             Store(TST2(), Local0)
   7597      1.1    jruoho             if (LGreater (Local0, 0))
   7598      1.1    jruoho             {
   7599      1.1    jruoho                 Return(Local0)
   7600      1.1    jruoho             }
   7601      1.1    jruoho 
   7602      1.1    jruoho             Store(TST3(), Local0)
   7603      1.1    jruoho             if (LGreater (Local0, 0))
   7604      1.1    jruoho             {
   7605      1.1    jruoho                 Return(Local0)
   7606      1.1    jruoho             }
   7607      1.1    jruoho 
   7608      1.1    jruoho             Store(TST4(), Local0)
   7609      1.1    jruoho             if (LGreater (Local0, 0))
   7610      1.1    jruoho             {
   7611      1.1    jruoho                 Return(Local0)
   7612      1.1    jruoho             }
   7613      1.1    jruoho 
   7614      1.1    jruoho             Store(TST5(), Local0)
   7615      1.1    jruoho             if (LGreater (Local0, 0))
   7616      1.1    jruoho             {
   7617      1.1    jruoho                 Return(Local0)
   7618      1.1    jruoho             }
   7619      1.1    jruoho 
   7620      1.1    jruoho             Store(TST6(), Local0)
   7621      1.1    jruoho             if (LGreater (Local0, 0))
   7622      1.1    jruoho             {
   7623      1.1    jruoho                 Return(Local0)
   7624      1.1    jruoho             }
   7625      1.1    jruoho 
   7626      1.1    jruoho             Store(TST7(), Local0)
   7627      1.1    jruoho             if (LGreater (Local0, 0))
   7628      1.1    jruoho             {
   7629      1.1    jruoho                 Return(Local0)
   7630      1.1    jruoho             }
   7631      1.1    jruoho 
   7632      1.1    jruoho             Store(TST8(), Local0)
   7633      1.1    jruoho             if (LGreater (Local0, 0))
   7634      1.1    jruoho             {
   7635      1.1    jruoho                 Return(Local0)
   7636      1.1    jruoho             }
   7637      1.1    jruoho 
   7638      1.1    jruoho             Store(TST9(), Local0)
   7639      1.1    jruoho             if (LGreater (Local0, 0))
   7640      1.1    jruoho             {
   7641      1.1    jruoho                 Return(Local0)
   7642      1.1    jruoho             }
   7643      1.1    jruoho 
   7644      1.1    jruoho             Store(TSTA(), Local0)
   7645      1.1    jruoho             if (LGreater (Local0, 0))
   7646      1.1    jruoho             {
   7647      1.1    jruoho                 Return(Local0)
   7648      1.1    jruoho             }
   7649      1.1    jruoho 
   7650      1.1    jruoho             Store(TSTB(), Local0)
   7651      1.1    jruoho             if (LGreater (Local0, 0))
   7652      1.1    jruoho             {
   7653      1.1    jruoho                 Return(Local0)
   7654      1.1    jruoho             }
   7655      1.1    jruoho 
   7656      1.1    jruoho             Store(TSTC(), Local0)
   7657      1.1    jruoho             if (LGreater (Local0, 0))
   7658      1.1    jruoho             {
   7659      1.1    jruoho                 Return(Local0)
   7660      1.1    jruoho             }
   7661      1.1    jruoho 
   7662      1.1    jruoho             Store(TSTD(), Local0)
   7663      1.1    jruoho             if (LGreater (Local0, 0))
   7664      1.1    jruoho             {
   7665      1.1    jruoho                 Return(Local0)
   7666      1.1    jruoho             }
   7667      1.1    jruoho 
   7668      1.1    jruoho             Store(TSTE(), Local0)
   7669      1.1    jruoho             if (LGreater (Local0, 0))
   7670      1.1    jruoho             {
   7671      1.1    jruoho                 Return(Local0)
   7672      1.1    jruoho             }
   7673      1.1    jruoho 
   7674      1.1    jruoho     /* No longer ACPI compliant */
   7675      1.1    jruoho     /*
   7676      1.1    jruoho             Store(TSTF(), Local0)
   7677      1.1    jruoho             if (LGreater (Local0, 0))
   7678      1.1    jruoho             {
   7679      1.1    jruoho                 Return(Local0)
   7680      1.1    jruoho             }
   7681      1.1    jruoho     */
   7682      1.1    jruoho 
   7683      1.1    jruoho             Store(TSTG(), Local0)
   7684      1.1    jruoho             if (LGreater (Local0, 0))
   7685      1.1    jruoho             {
   7686      1.1    jruoho                 Return(Local0)
   7687      1.1    jruoho             }
   7688      1.1    jruoho 
   7689      1.1    jruoho             Store(TSTH(), Local0)
   7690      1.1    jruoho             if (LGreater (Local0, 0))
   7691      1.1    jruoho             {
   7692      1.1    jruoho                 Return(Local0)
   7693      1.1    jruoho             }
   7694      1.1    jruoho 
   7695      1.1    jruoho     /* No longer ACPI compliant */
   7696      1.1    jruoho     /*
   7697      1.1    jruoho             Store(TSTI(), Local0)
   7698      1.1    jruoho             if (LGreater (Local0, 0))
   7699      1.1    jruoho             {
   7700      1.1    jruoho                 Return(Local0)
   7701      1.1    jruoho             }
   7702      1.1    jruoho     */
   7703      1.1    jruoho             Store(TSTJ(), Local0)
   7704      1.1    jruoho             if (LGreater (Local0, 0))
   7705      1.1    jruoho             {
   7706      1.1    jruoho                 Return(Local0)
   7707      1.1    jruoho             }
   7708      1.1    jruoho 
   7709      1.1    jruoho             Store(TSTK(), Local0)
   7710      1.1    jruoho             if (LGreater (Local0, 0))
   7711      1.1    jruoho             {
   7712      1.1    jruoho                 Return(Local0)
   7713      1.1    jruoho             }
   7714      1.1    jruoho 
   7715      1.1    jruoho             Store(TSTL(), Local0)
   7716      1.1    jruoho             if (LGreater (Local0, 0))
   7717      1.1    jruoho             {
   7718      1.1    jruoho                 Return(Local0)
   7719      1.1    jruoho             }
   7720      1.1    jruoho 
   7721      1.1    jruoho             Return(Local0)
   7722      1.1    jruoho 
   7723      1.1    jruoho         }
   7724      1.1    jruoho 
   7725      1.1    jruoho     } // Device(IDX7)
   7726      1.1    jruoho 
   7727      1.1    jruoho //
   7728      1.1    jruoho // test MatchOp.asl
   7729      1.1    jruoho //
   7730      1.1    jruoho //  MatchOp test cases that utilize nested DerefOf(Index(...)) to validate
   7731      1.1    jruoho //  MatchOp, DerefOfOp, and IndexOp of nested packages.
   7732      1.1    jruoho //
   7733      1.1    jruoho     Device (MTCH)
   7734      1.1    jruoho     {
   7735      1.1    jruoho 
   7736  1.1.1.3  christos         Method (TEST,, Serialized)
   7737      1.1    jruoho         {
   7738      1.1    jruoho             Store ("++++++++ MatchOp Test", Debug)
   7739      1.1    jruoho 
   7740      1.1    jruoho             Name (TIM0, Package ()
   7741      1.1    jruoho                 {
   7742      1.1    jruoho                     Package ()  {0x78, 0xB4, 0xF0, 0x0384},
   7743      1.1    jruoho                     Package ()  {0x23, 0x21, 0x10, 0},
   7744      1.1    jruoho                     Package ()  {0x0B, 9, 4, 0},
   7745      1.1    jruoho                     Package ()  {0x70, 0x49, 0x36, 0x27, 0x19},
   7746      1.1    jruoho                     Package ()  {0, 1, 2, 1, 2},
   7747      1.1    jruoho                     Package ()  {0, 0, 0, 1, 1},
   7748      1.1    jruoho                     Package ()  {4, 3, 2, 0},
   7749      1.1    jruoho                     Package ()  {2, 1, 0, 0}
   7750      1.1    jruoho                 })  //  TIM0
   7751      1.1    jruoho 
   7752      1.1    jruoho             Name (TMD0, Buffer (20) {0xFF, 0xFF, 0xFF, 0xFF })
   7753      1.1    jruoho             CreateDWordField (TMD0, 0, PIO0)    //  0xFFFFFFFF
   7754      1.1    jruoho             CreateDWordField (TMD0, 4, DMA0)
   7755      1.1    jruoho             CreateDWordField (TMD0, 8, PIO1)
   7756      1.1    jruoho             CreateDWordField (TMD0, 12, DMA1)
   7757      1.1    jruoho             CreateDWordField (TMD0, 16, CHNF)
   7758      1.1    jruoho 
   7759      1.1    jruoho 
   7760      1.1    jruoho             //  validate PIO0 value
   7761      1.1    jruoho             Store (PIO0, Local3)
   7762      1.1    jruoho 
   7763      1.1    jruoho             //  save Local3 object type value into Local2
   7764      1.1    jruoho             Store (ObjectType (Local3), Local2)
   7765      1.1    jruoho 
   7766      1.1    jruoho             //  validate Local3 is a Number
   7767      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7768      1.1    jruoho                 {   Return (2)  }   //  failure
   7769      1.1    jruoho 
   7770      1.1    jruoho             //  validate Local3 Number value
   7771      1.1    jruoho             If (LNotEqual (Local3, 0xFFFFFFFF)) //  Number value 0xFFFFFFFF
   7772      1.1    jruoho                 {   Return (3)  }   //  failure
   7773      1.1    jruoho 
   7774      1.1    jruoho             Store ("DWordField PASS", Debug)
   7775      1.1    jruoho 
   7776      1.1    jruoho 
   7777      1.1    jruoho             Store (0, Local5)
   7778      1.1    jruoho             Store (Match (DerefOf (Index (TIM0, 1, )), MLE, Local5, MTR, 0, 0), Local6)
   7779      1.1    jruoho 
   7780      1.1    jruoho             //  save Local6 object type value into Local2
   7781      1.1    jruoho             Store (ObjectType (Local6), Local2)
   7782      1.1    jruoho 
   7783      1.1    jruoho             //  validate Local6 is a Number
   7784      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7785      1.1    jruoho                 {   Return (4)  }   //  failure
   7786      1.1    jruoho 
   7787      1.1    jruoho             Store ("Match(DerefOf(Index(TIM0,1)),... PASS", Debug)
   7788      1.1    jruoho 
   7789      1.1    jruoho 
   7790      1.1    jruoho             //  validate following produces a nested package to validate
   7791      1.1    jruoho             //  that MatchOp did not corrupt SearchPackage (TIM0)
   7792      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7793      1.1    jruoho 
   7794      1.1    jruoho             //  save Local4 object type value into Local2
   7795      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7796      1.1    jruoho 
   7797      1.1    jruoho             //  validate Local4 is a Package
   7798      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7799      1.1    jruoho                 {   Return (5)  }   //  failure
   7800      1.1    jruoho 
   7801      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS", Debug)
   7802      1.1    jruoho 
   7803      1.1    jruoho 
   7804      1.1    jruoho             And (Match (DerefOf (Index (TIM0, 0, )), MGE, PIO0, MTR, 0, 0), 3, Local0)
   7805      1.1    jruoho 
   7806      1.1    jruoho             //  save Local0 object type value into Local2
   7807      1.1    jruoho             Store (ObjectType (Local0), Local2)
   7808      1.1    jruoho 
   7809      1.1    jruoho             //  validate Local0 is a Number
   7810      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7811      1.1    jruoho                 {   Return (6)  }   //  failure
   7812      1.1    jruoho 
   7813      1.1    jruoho             //  validate Local0 Number value
   7814      1.1    jruoho             If (LNotEqual (Local0, 3))  //  Number value 3
   7815      1.1    jruoho                 {   Return (7)  }   //  failure
   7816      1.1    jruoho 
   7817      1.1    jruoho             Store ("And(Match(DerefOf(Index(TIM0,0)),... PASS", Debug)
   7818      1.1    jruoho 
   7819      1.1    jruoho 
   7820      1.1    jruoho             //  again, validate following produces a nested package
   7821      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7822      1.1    jruoho 
   7823      1.1    jruoho             //  save Local4 object type value into Local2
   7824      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7825      1.1    jruoho 
   7826      1.1    jruoho             //  validate Local4 is a Package
   7827      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7828      1.1    jruoho                 {   Return (8)  }   //  failure
   7829      1.1    jruoho 
   7830      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7831      1.1    jruoho 
   7832      1.1    jruoho 
   7833      1.1    jruoho             //  again, validate following produces a nested package
   7834      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7835      1.1    jruoho 
   7836      1.1    jruoho             //  save Local4 object type value into Local2
   7837      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7838      1.1    jruoho 
   7839      1.1    jruoho             //  validate Local4 is a Package
   7840      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7841      1.1    jruoho                 {   Return (9)  }   //  failure
   7842      1.1    jruoho 
   7843      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7844      1.1    jruoho 
   7845      1.1    jruoho 
   7846      1.1    jruoho             //  test nested DerefOf(Index) operators
   7847      1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
   7848      1.1    jruoho 
   7849      1.1    jruoho             //  save Local1 object type value into Local2
   7850      1.1    jruoho             Store (ObjectType (Local1), Local2)
   7851      1.1    jruoho 
   7852      1.1    jruoho             //  validate Local1 is a Number
   7853      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7854      1.1    jruoho                 {   Return (10) }   //  failure
   7855      1.1    jruoho 
   7856      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   7857      1.1    jruoho             If (LNotEqual (Local1, 0))
   7858      1.1    jruoho                 {   Return (11) }   //  failure
   7859      1.1    jruoho 
   7860      1.1    jruoho             Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS", Debug)
   7861      1.1    jruoho 
   7862      1.1    jruoho 
   7863      1.1    jruoho             //  again, validate following produces a nested package
   7864      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7865      1.1    jruoho 
   7866      1.1    jruoho             //  save Local4 object type value into Local2
   7867      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7868      1.1    jruoho 
   7869      1.1    jruoho             //  validate Local4 is a Package
   7870      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7871      1.1    jruoho                 {   Return (12) }   //  failure
   7872      1.1    jruoho 
   7873      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7874      1.1    jruoho 
   7875      1.1    jruoho 
   7876      1.1    jruoho             //  retest nested DerefOf(Index) operators
   7877      1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
   7878      1.1    jruoho 
   7879      1.1    jruoho             //  save Local1 object type value into Local2
   7880      1.1    jruoho             Store (ObjectType (Local1), Local2)
   7881      1.1    jruoho 
   7882      1.1    jruoho             //  validate Local1 is a Number
   7883      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7884      1.1    jruoho                 {   Return (13) }   //  failure
   7885      1.1    jruoho 
   7886      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   7887      1.1    jruoho             If (LNotEqual (Local1, 0))
   7888      1.1    jruoho                 {   Return (14) }   //  failure
   7889      1.1    jruoho 
   7890      1.1    jruoho             Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7891      1.1    jruoho 
   7892      1.1    jruoho 
   7893      1.1    jruoho             //  again, validate following produces a nested package
   7894      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7895      1.1    jruoho 
   7896      1.1    jruoho             //  save Local4 object type value into Local2
   7897      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7898      1.1    jruoho 
   7899      1.1    jruoho             //  validate Local4 is a Package
   7900      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7901      1.1    jruoho                 {   Return (15) }   //  failure
   7902      1.1    jruoho 
   7903      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7904      1.1    jruoho 
   7905      1.1    jruoho 
   7906      1.1    jruoho             Return (0)  //  pass
   7907      1.1    jruoho         }   //  TEST
   7908      1.1    jruoho     }   // MTCH
   7909      1.1    jruoho 
   7910      1.1    jruoho //
   7911      1.1    jruoho // test WhileBrk.asl
   7912      1.1    jruoho //
   7913      1.1    jruoho //  This code tests the Break term and While term
   7914      1.1    jruoho //
   7915      1.1    jruoho //  Syntax of Break term
   7916      1.1    jruoho //      BreakTerm := Break
   7917      1.1    jruoho //  The break operation causes the current package execution to complete.
   7918      1.1    jruoho //
   7919      1.1    jruoho //  Syntax of While Term
   7920      1.1    jruoho //      WhileTerm   := While(
   7921      1.1    jruoho //          Predicate   //TermArg=>Integer
   7922      1.1    jruoho //      ) {TermList}
   7923      1.1    jruoho //  Predicate is evaluated as an integer.
   7924      1.1    jruoho //  If the integer is non-zero, the list of terms in TermList is executed.
   7925      1.1    jruoho //  The operation repeats until the Predicate evaluates to zero.
   7926      1.1    jruoho //
   7927      1.1    jruoho // MTL NOTE: This test has been modified to reflect ACPI 2.0 break
   7928      1.1    jruoho // NOTE: This test, when run under the MS ACPI.SYS grinds the system to
   7929      1.1    jruoho //  a halt.
   7930      1.1    jruoho //
   7931      1.1    jruoho     Device (WHLB)
   7932      1.1    jruoho     {
   7933      1.1    jruoho         Name (CNT0, 0)
   7934      1.1    jruoho         Name (CNT1, 0)
   7935      1.1    jruoho 
   7936      1.1    jruoho         Method (TEST)
   7937      1.1    jruoho         {
   7938      1.1    jruoho             //  Check Break statement nested in If nested in While nested in
   7939      1.1    jruoho             //  While only exits inner-most While loop
   7940      1.1    jruoho             Store (0, CNT0)
   7941      1.1    jruoho 
   7942      1.1    jruoho             While (LLess (CNT0, 4))
   7943      1.1    jruoho             {
   7944      1.1    jruoho                 Store (0, CNT1)
   7945      1.1    jruoho                 While (LLess (CNT1, 10))
   7946      1.1    jruoho                 {
   7947      1.1    jruoho                     if (LEqual (CNT1, 1))
   7948      1.1    jruoho                     {
   7949      1.1    jruoho                         Break       //  exit encompassing loop
   7950      1.1    jruoho                     }
   7951      1.1    jruoho 
   7952      1.1    jruoho                     Increment (CNT1)
   7953      1.1    jruoho                 }
   7954      1.1    jruoho 
   7955      1.1    jruoho                 If (LNotEqual (CNT1, 1))
   7956      1.1    jruoho                 {
   7957      1.1    jruoho                     //  failure
   7958      1.1    jruoho                     Return (7)
   7959      1.1    jruoho                 }
   7960      1.1    jruoho 
   7961      1.1    jruoho                 Increment (CNT0)
   7962      1.1    jruoho             }
   7963      1.1    jruoho 
   7964      1.1    jruoho             //  Verify Break only exited inner-most While loop
   7965      1.1    jruoho 
   7966      1.1    jruoho             If (LNotEqual (CNT0, 4))
   7967      1.1    jruoho             {
   7968      1.1    jruoho                 //  failure
   7969      1.1    jruoho                 Return (8)
   7970      1.1    jruoho             }
   7971      1.1    jruoho 
   7972      1.1    jruoho             Store ("While/While/If/Break PASS", Debug)
   7973      1.1    jruoho 
   7974      1.1    jruoho             Store ("++++++++ WhileBrk Test", Debug)
   7975      1.1    jruoho 
   7976      1.1    jruoho             //  Check Break statement nested in While
   7977      1.1    jruoho             Store (0, CNT0)
   7978      1.1    jruoho 
   7979      1.1    jruoho             While (LLess (CNT0, 10))
   7980      1.1    jruoho             {
   7981      1.1    jruoho                 Break       //  exit encompassing package
   7982      1.1    jruoho                 Increment (CNT0)
   7983      1.1    jruoho             }
   7984      1.1    jruoho 
   7985      1.1    jruoho             If (LNotEqual (CNT0, 0))    //  instruction after Break executed
   7986      1.1    jruoho             {
   7987      1.1    jruoho                 Return (4)
   7988      1.1    jruoho             }
   7989      1.1    jruoho 
   7990      1.1    jruoho 
   7991      1.1    jruoho             Store (0, CNT0)
   7992      1.1    jruoho 
   7993      1.1    jruoho             //  Test While Term
   7994      1.1    jruoho             While (LLess (CNT0, 10))
   7995      1.1    jruoho             {
   7996      1.1    jruoho                 Increment (CNT0)
   7997      1.1    jruoho             }
   7998      1.1    jruoho 
   7999      1.1    jruoho             //  Check if the while loop was executed until the condition is satisfied.
   8000      1.1    jruoho             If (LNotEqual (CNT0, 10))
   8001      1.1    jruoho             {
   8002      1.1    jruoho                 Return (1)
   8003      1.1    jruoho             }
   8004      1.1    jruoho 
   8005      1.1    jruoho 
   8006      1.1    jruoho             //  While loop in a reverse order
   8007      1.1    jruoho             While (LGreater (CNT0, 0))
   8008      1.1    jruoho             {
   8009      1.1    jruoho                 Decrement (CNT0)
   8010      1.1    jruoho             }
   8011      1.1    jruoho 
   8012      1.1    jruoho             //  Check if the while loop was executed until the condition is satisfied.
   8013      1.1    jruoho             If (LNotEqual (CNT0, 0))
   8014      1.1    jruoho             {
   8015      1.1    jruoho                 Return (2)
   8016      1.1    jruoho             }
   8017      1.1    jruoho 
   8018      1.1    jruoho 
   8019      1.1    jruoho             Store ("While/Break PASS", Debug)
   8020      1.1    jruoho 
   8021      1.1    jruoho 
   8022      1.1    jruoho             //  Check Break statement nested in If nested in While
   8023      1.1    jruoho             Store (0, CNT0)
   8024      1.1    jruoho 
   8025      1.1    jruoho             While (LLess (CNT0, 10))
   8026      1.1    jruoho             {
   8027      1.1    jruoho                 if (LEqual (CNT0, 5))
   8028      1.1    jruoho                 {
   8029      1.1    jruoho                     Break       //  exit encompassing Package (If)
   8030      1.1    jruoho 
   8031      1.1    jruoho                     //  if we execute the next instruction,
   8032      1.1    jruoho                     //  Break did not exit the loop
   8033      1.1    jruoho                     Store (20, CNT0)    //  exit While loop with value larger
   8034      1.1    jruoho                                             //  than above
   8035      1.1    jruoho                 }
   8036      1.1    jruoho 
   8037      1.1    jruoho                 Increment (CNT0)    //  check if Break exited both If and While
   8038      1.1    jruoho             }   //  While
   8039      1.1    jruoho 
   8040      1.1    jruoho             If (LGreater (CNT0, 19))
   8041      1.1    jruoho             {   //  instruction after Break inside IfOp executed
   8042      1.1    jruoho                 Return (5)
   8043      1.1    jruoho             }
   8044      1.1    jruoho 
   8045      1.1    jruoho             //
   8046      1.1    jruoho             // Break will exit out of the while loop, therefore
   8047      1.1    jruoho             //  the CNT0 counter should still Increment until 5
   8048      1.1    jruoho             //
   8049      1.1    jruoho             If (LNotEqual (CNT0, 5))
   8050      1.1    jruoho             {   //  instruction after Break inside WhileOp executed
   8051      1.1    jruoho                 Return (6)
   8052      1.1    jruoho             }
   8053      1.1    jruoho             Store ("While/If/Break PASS", Debug)
   8054      1.1    jruoho 
   8055      1.1    jruoho 
   8056      1.1    jruoho             //  All the conditions passed
   8057      1.1    jruoho             Return (0)
   8058      1.1    jruoho         }   //  TEST
   8059      1.1    jruoho     }   //  WHLB
   8060      1.1    jruoho 
   8061      1.1    jruoho 
   8062      1.1    jruoho //
   8063      1.1    jruoho // test IndexOp2.asl
   8064      1.1    jruoho //
   8065      1.1    jruoho //  Additional IndexOp test cases to support ACPICMB (control method battery
   8066      1.1    jruoho //  test) on Toshiba Portege 7020CT. Test cases include appropriate bit
   8067      1.1    jruoho //  shifting of Field elements and reading Field elements greater than 64 bits.
   8068      1.1    jruoho //
   8069      1.1    jruoho // MTL NOTE: This test has been modified slightly from the original test
   8070      1.1    jruoho //  to take into account ACPI specification limitations.
   8071      1.1    jruoho //
   8072      1.1    jruoho     Scope (\_SB)    //  System Bus
   8073      1.1    jruoho     {   //  _SB system bus
   8074      1.1    jruoho 
   8075      1.1    jruoho         Device (MEM)
   8076      1.1    jruoho         {   //  MEM
   8077      1.1    jruoho             Name (_HID, 0x010CD041)
   8078      1.1    jruoho             Name (_STA, 0x0F)
   8079      1.1    jruoho 
   8080      1.1    jruoho             OperationRegion (SMEM, SystemMemory, 0x800000, 0x100)
   8081      1.1    jruoho             Field (SMEM, AnyAcc, NoLock, Preserve)
   8082      1.1    jruoho             {   //  Field:  SMEM overlay using 32-bit field elements
   8083      1.1    jruoho                 SMD0,   32, //  32-bits
   8084      1.1    jruoho                 SMD1,   32,     //  32-bits
   8085      1.1    jruoho                 SMD2,   32,     //  32-bits
   8086      1.1    jruoho                 SMD3,   32  //  32-bits
   8087      1.1    jruoho             }   //  Field:  SMEM overlay using 32-bit field elements
   8088      1.1    jruoho             Field (SMEM, AnyAcc, NoLock, Preserve)
   8089      1.1    jruoho             {   //  Field:  SMEM overlay using greater than 32-bit field elements
   8090      1.1    jruoho                 SME0,   69, //  larger than an integer (32 or 64)
   8091      1.1    jruoho                 SME1,   97  //  larger than an integer
   8092      1.1    jruoho             }   //  Field:  SMEM overlay using greater than 32-bit field elements
   8093      1.1    jruoho 
   8094      1.1    jruoho             OperationRegion (SRAM, SystemMemory, 0x100B0000, 0xF000)
   8095      1.1    jruoho             Field (SRAM, AnyAcc, NoLock, Preserve)
   8096      1.1    jruoho             {   //  Field:  SRAM overlay
   8097      1.1    jruoho                     ,   0x34000,    //  skip
   8098      1.1    jruoho                 IEAX,   0x20,
   8099      1.1    jruoho                 IEBX,   0x20,
   8100      1.1    jruoho                 IECX,   0x20,
   8101      1.1    jruoho                 IEDX,   0x20,
   8102      1.1    jruoho                 IESI,   0x20,
   8103      1.1    jruoho                 IEDI,   0x20,
   8104      1.1    jruoho                 IEBP,   0x20,
   8105      1.1    jruoho                     ,   0x20,
   8106      1.1    jruoho                 OEAX,   0x20,
   8107      1.1    jruoho                 OEBX,   0x20,
   8108      1.1    jruoho                 OECX,   0x20,
   8109      1.1    jruoho                 OEDX,   0x20,
   8110      1.1    jruoho                 OESI,   0x20,
   8111      1.1    jruoho                 OEDI,   0x20,
   8112      1.1    jruoho                 OEBP,   0x20,
   8113      1.1    jruoho                     ,   0x618,  //  skip
   8114      1.1    jruoho                 ACST,   1,
   8115      1.1    jruoho                 BES1,   1,
   8116      1.1    jruoho                 BES2,   1,
   8117      1.1    jruoho                     ,   5,          //  skip
   8118      1.1    jruoho                 BMN1,   0x68,
   8119      1.1    jruoho                 BSN1,   0x58,
   8120      1.1    jruoho                 BTP1,   0x48,
   8121      1.1    jruoho                 BPU1,   0x20,
   8122      1.1    jruoho                 BDC1,   0x20,
   8123      1.1    jruoho                 BLF1,   0x20,
   8124      1.1    jruoho                 BTC1,   0x20,
   8125      1.1    jruoho                 BDV1,   0x20,
   8126      1.1    jruoho                 BST1,   0x20,
   8127      1.1    jruoho                 BPR1,   0x20,
   8128      1.1    jruoho                 BRC1,   0x20,
   8129      1.1    jruoho                 BPV1,   0x20,
   8130      1.1    jruoho                     ,   0x20,
   8131      1.1    jruoho                 BCW1,   0x20,
   8132      1.1    jruoho                 BCL1,   0x20,
   8133      1.1    jruoho                 BG11,   0x20,
   8134      1.1    jruoho                 BG21,   0x20,
   8135      1.1    jruoho                 BOI1,   0x20,
   8136      1.1    jruoho                     ,   0x530,  //  skip
   8137      1.1    jruoho                 BMN2,   0x68,
   8138      1.1    jruoho                 BSN2,   0x58,
   8139      1.1    jruoho                 BTP2,   0x48,
   8140      1.1    jruoho                 BPU2,   0x20,
   8141      1.1    jruoho                 BDC2,   0x20,
   8142      1.1    jruoho                 BLF2,   0x20,
   8143      1.1    jruoho                 BTC2,   0x20,
   8144      1.1    jruoho                 BDV2,   0x20,
   8145      1.1    jruoho                 BST2,   0x20,
   8146      1.1    jruoho                 BPR2,   0x20,
   8147      1.1    jruoho                 BRC2,   0x20,
   8148      1.1    jruoho                 BPV2,   0x20,
   8149      1.1    jruoho                     ,   0x20,
   8150      1.1    jruoho                 BCW2,   0x20,
   8151      1.1    jruoho                 BCL2,   0x20,
   8152      1.1    jruoho                 BG12,   0x20,
   8153      1.1    jruoho                 BG22,   0x20,
   8154      1.1    jruoho                 BOI2,   0x20,
   8155      1.1    jruoho                     ,   0x518,  //  skip
   8156      1.1    jruoho                 AC01,   0x10,
   8157      1.1    jruoho                 AC11,   0x10,
   8158      1.1    jruoho                 PSV1,   0x10,
   8159      1.1    jruoho                 CRT1,   0x10,
   8160      1.1    jruoho                 TMP1,   0x10,
   8161      1.1    jruoho                 AST1,   0x10,
   8162      1.1    jruoho                 AC21,   0x10,
   8163      1.1    jruoho                 AC31,   0x10,
   8164      1.1    jruoho                 AC02,   0x10,
   8165      1.1    jruoho                 AC12,   0x10,
   8166      1.1    jruoho                 PSV2,   0x10,
   8167      1.1    jruoho                 CRT2,   0x10,
   8168      1.1    jruoho                 TMP2,   0x10,
   8169      1.1    jruoho                 AST2,   0x10,
   8170      1.1    jruoho                 AC22,   0x10,
   8171      1.1    jruoho                 AC32,   0x10,
   8172      1.1    jruoho                 AC03,   0x10,
   8173      1.1    jruoho                 AC13,   0x10,
   8174      1.1    jruoho                 PSV3,   0x10,
   8175      1.1    jruoho                 CRT3,   0x10,
   8176      1.1    jruoho                 TMP3,   0x10,
   8177      1.1    jruoho                 AST3,   0x10,
   8178      1.1    jruoho                 AC23,   0x10,
   8179      1.1    jruoho                 AC33,   0x10,
   8180      1.1    jruoho                     ,   0x80,       //  skip
   8181      1.1    jruoho                 TMPF,   0x10,
   8182      1.1    jruoho                     ,   0x570,  //  skip
   8183      1.1    jruoho                 FANH,   1,
   8184      1.1    jruoho                 FANL,   7,
   8185      1.1    jruoho                 TF11,   1,
   8186      1.1    jruoho                 TF21,   1,
   8187      1.1    jruoho                 TF31,   1,
   8188      1.1    jruoho                     ,   1,
   8189      1.1    jruoho                 TF10,   1,
   8190      1.1    jruoho                 TF20,   1,
   8191      1.1    jruoho                 TF30,   1,
   8192      1.1    jruoho                     ,   1,
   8193      1.1    jruoho                 TP11,   1,
   8194      1.1    jruoho                 TP21,   1,
   8195      1.1    jruoho                 TP31,   1,
   8196      1.1    jruoho                     ,   0x6D,   //  109
   8197      1.1    jruoho                 GP50,   1,
   8198      1.1    jruoho                 GP51,   1,
   8199      1.1    jruoho                 GP52,   1,
   8200      1.1    jruoho                 GP53,   1,
   8201      1.1    jruoho                     ,   4,
   8202      1.1    jruoho                 GP60,   1,
   8203      1.1    jruoho                 GP61,   1,
   8204      1.1    jruoho                 GP62,   1,
   8205      1.1    jruoho                 GP63,   1,
   8206      1.1    jruoho                 GP64,   1,
   8207      1.1    jruoho                 GP65,   1,
   8208      1.1    jruoho                 GP66,   1,
   8209      1.1    jruoho                     ,   1,
   8210      1.1    jruoho                 GP70,   1,
   8211      1.1    jruoho                 GP71,   1,
   8212      1.1    jruoho                 GP72,   1,
   8213      1.1    jruoho                 GP73,   1,
   8214      1.1    jruoho                 GP74,   1,
   8215      1.1    jruoho                 GP75,   1,
   8216      1.1    jruoho                 GP76,   1,
   8217      1.1    jruoho                     ,   1,
   8218      1.1    jruoho                 WED0,   1,
   8219      1.1    jruoho                 WED1,   1,
   8220      1.1    jruoho                 WED2,   1,
   8221      1.1    jruoho                 WED3,   1,
   8222      1.1    jruoho                 WED4,   1,
   8223      1.1    jruoho                     ,   3,
   8224      1.1    jruoho                 SBL0,   1,
   8225      1.1    jruoho                 SBL1,   1,
   8226      1.1    jruoho                 SBL2,   1,
   8227      1.1    jruoho                 SBL3,   1,
   8228      1.1    jruoho                     ,   4,
   8229      1.1    jruoho                 LIDS,   1,
   8230      1.1    jruoho                 VALF,   1,
   8231      1.1    jruoho                     ,   2,
   8232      1.1    jruoho                 DCKI,   1,
   8233      1.1    jruoho                 DCKF,   1,
   8234      1.1    jruoho                 BT1F,   1,
   8235      1.1    jruoho                 BT2F,   1,
   8236      1.1    jruoho                     ,   0x7D0,  //  skip
   8237      1.1    jruoho                 HKCD,   8,
   8238      1.1    jruoho                     ,   8,
   8239      1.1    jruoho                 DLID,   0x20,
   8240      1.1    jruoho                 DSRN,   0x20,
   8241      1.1    jruoho                     ,   0x20,
   8242      1.1    jruoho                 BDID,   0x20,
   8243      1.1    jruoho                 DSPW,   1,
   8244      1.1    jruoho                 VGAF,   1,
   8245      1.1    jruoho                 VWE0,   1,
   8246      1.1    jruoho                 VWE1,   1,
   8247      1.1    jruoho                 PPSC,   1,
   8248      1.1    jruoho                 SPSC,   1,
   8249      1.1    jruoho                 EWLD,   1,
   8250      1.1    jruoho                 EWPS,   1,
   8251      1.1    jruoho                     ,   0x1768, //  skip
   8252      1.1    jruoho                 PRES,   0x8000
   8253      1.1    jruoho             }   //  Field:  SRAM overlay
   8254      1.1    jruoho         }   //  MEM
   8255      1.1    jruoho 
   8256      1.1    jruoho         Device (BAT1)
   8257      1.1    jruoho         {   //  BAT1
   8258      1.1    jruoho             Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
   8259      1.1    jruoho             Name (_UID, 1)
   8260      1.1    jruoho             Name (_PCL, Package (1) {\_SB})
   8261      1.1    jruoho 
   8262      1.1    jruoho             Method (_STA)
   8263      1.1    jruoho             {   //  _STA
   8264      1.1    jruoho                 If (\_SB.MEM.BES1)
   8265      1.1    jruoho                     {   Return (0x1F)   }   //  battery present
   8266      1.1    jruoho                 Else
   8267      1.1    jruoho                     {   Return (0x0F)   }   //  battery not present
   8268      1.1    jruoho             }   //  _STA
   8269      1.1    jruoho 
   8270  1.1.1.3  christos             Method (_BIF,, Serialized)
   8271      1.1    jruoho             {   //  _BIF
   8272      1.1    jruoho                 Name (BUFR, Package (13)    {})
   8273      1.1    jruoho 
   8274      1.1    jruoho                 Store (\_SB.MEM.BPU1, Index (BUFR, 0))
   8275      1.1    jruoho                 Store (\_SB.MEM.BDC1, Index (BUFR, 1))
   8276      1.1    jruoho                 Store (\_SB.MEM.BLF1, Index (BUFR, 2))
   8277      1.1    jruoho                 Store (\_SB.MEM.BTC1, Index (BUFR, 3))
   8278      1.1    jruoho                 Store (\_SB.MEM.BDV1, Index (BUFR, 4))
   8279      1.1    jruoho                 Store (\_SB.MEM.BCW1, Index (BUFR, 5))
   8280      1.1    jruoho                 Store (\_SB.MEM.BCL1, Index (BUFR, 6))
   8281      1.1    jruoho                 Store (\_SB.MEM.BG11, Index (BUFR, 7))
   8282      1.1    jruoho                 Store (\_SB.MEM.BG21, Index (BUFR, 8))
   8283      1.1    jruoho                 Store (\_SB.MEM.BMN1, Index (BUFR, 9))
   8284      1.1    jruoho                 Store (\_SB.MEM.BSN1, Index (BUFR, 10))
   8285      1.1    jruoho                 Store (\_SB.MEM.BTP1, Index (BUFR, 11))
   8286      1.1    jruoho                 Store (\_SB.MEM.BOI1, Index (BUFR, 12))
   8287      1.1    jruoho 
   8288      1.1    jruoho                 Return (BUFR)
   8289      1.1    jruoho             }   //  _BIF
   8290      1.1    jruoho         }   //  BAT1
   8291      1.1    jruoho 
   8292      1.1    jruoho         Device (IDX2)
   8293      1.1    jruoho         {
   8294  1.1.1.3  christos             Method (B2IB,, Serialized)
   8295      1.1    jruoho             {   //  B2IB:   store from Buffer into Index'ed Buffer
   8296      1.1    jruoho 
   8297      1.1    jruoho                 Name (SRCB, Buffer ()   {"Short Buffer"})   //  12 characters plus NULL
   8298      1.1    jruoho 
   8299      1.1    jruoho                 Name (DEST, Buffer ()                           //  62 characters plus NULL
   8300      1.1    jruoho                     {"Destination buffer that is longer than the short source buffer"})
   8301      1.1    jruoho 
   8302      1.1    jruoho 
   8303      1.1    jruoho                 //  verify object type returned by Index(Buffer,Element,)
   8304      1.1    jruoho 
   8305      1.1    jruoho                 Store (Index (DEST, 2, ), Local1)
   8306      1.1    jruoho                 Store (ObjectType (Local1), Local2)
   8307      1.1    jruoho 
   8308      1.1    jruoho                 If (LNotEqual (Local2, 14))     //  Buffer Field is type 14
   8309      1.1    jruoho                 {
   8310      1.1    jruoho                     //  Local2 indicates Local1 is not a Buffer Field
   8311      1.1    jruoho 
   8312      1.1    jruoho                     Return (0x61)
   8313      1.1    jruoho                 }
   8314      1.1    jruoho 
   8315      1.1    jruoho                 //  verify object type and value returned by DerefOf(Index(Buffer,Element,))
   8316      1.1    jruoho                 //  should return Number containing element value
   8317      1.1    jruoho 
   8318      1.1    jruoho                 Store (DerefOf (Local1), Local3)
   8319      1.1    jruoho                 Store (ObjectType (Local3), Local4)
   8320      1.1    jruoho 
   8321      1.1    jruoho                 If (LNotEqual (Local4, 1))          //  Number is type 1
   8322      1.1    jruoho                 {
   8323      1.1    jruoho                     //  Local2 indicates Local1 is not a Number
   8324      1.1    jruoho                     Return (0x62)
   8325      1.1    jruoho                 }
   8326      1.1    jruoho                 Else
   8327      1.1    jruoho                 {
   8328      1.1    jruoho                     If (LNotEqual (Local3, 0x73))       //  expect 's' element from DEST
   8329      1.1    jruoho                     {
   8330      1.1    jruoho                         Return (0x63)
   8331      1.1    jruoho                     }
   8332      1.1    jruoho                 }
   8333      1.1    jruoho 
   8334      1.1    jruoho                 Store ("DerefOf(Index(Buffer,,)) PASS", Debug)
   8335      1.1    jruoho 
   8336      1.1    jruoho 
   8337      1.1    jruoho                 //
   8338      1.1    jruoho                 // The following sections have been rewritten because storing into
   8339      1.1    jruoho                 // an Indexed buffer only changes one byte - the FIRST byte of the
   8340      1.1    jruoho                 // buffer is written to the source index.  This is the ONLY byte
   8341      1.1    jruoho                 // written -- as per ACPI 2.0
   8342      1.1    jruoho                 //
   8343      1.1    jruoho                 // Overwrite DEST contents, at buffer position 2 [only]
   8344      1.1    jruoho 
   8345      1.1    jruoho                 Store (SRCB, Index (DEST, 2, ))
   8346      1.1    jruoho 
   8347      1.1    jruoho                 //
   8348      1.1    jruoho                 // Check that the next byte is not changed
   8349      1.1    jruoho                 //
   8350      1.1    jruoho                 Store (DerefOf (Index (DEST, 3, )), Local0)
   8351      1.1    jruoho                 If (LNotEqual (Local0, 0x74))       //  't'
   8352      1.1    jruoho                 {
   8353      1.1    jruoho                     //  DEST element is not matching original value
   8354      1.1    jruoho                     If (LEqual (Local0, 0x68))
   8355      1.1    jruoho                     {
   8356      1.1    jruoho                         //  DEST element was altered to 'h'
   8357      1.1    jruoho                         Return (0x68)
   8358      1.1    jruoho                     }
   8359      1.1    jruoho                     Else
   8360      1.1    jruoho                     {
   8361      1.1    jruoho                         // DEST element is an unknown value
   8362      1.1    jruoho                         Return (0x69)
   8363      1.1    jruoho                     }
   8364      1.1    jruoho                 }
   8365      1.1    jruoho 
   8366      1.1    jruoho                 //
   8367      1.1    jruoho                 // Check that the elements beyond the SRCB buffer copy
   8368      1.1    jruoho                 //  have not been altered.
   8369      1.1    jruoho                 //
   8370      1.1    jruoho                 Store (DerefOf (Index (DEST, 14)), Local0)
   8371      1.1    jruoho 
   8372      1.1    jruoho                 //
   8373      1.1    jruoho                 // This should be an 'f'.
   8374      1.1    jruoho                 //
   8375      1.1    jruoho                 If (LNotEqual (Local0, 0x66))
   8376      1.1    jruoho                 {
   8377      1.1    jruoho                     //  DEST element was zero'd by buffer copy
   8378      1.1    jruoho                     If (LEqual (Local0, 0))
   8379      1.1    jruoho                     {
   8380      1.1    jruoho                         //  DEST element is zero
   8381      1.1    jruoho                         Return (0x6A)
   8382      1.1    jruoho                     }
   8383      1.1    jruoho                     Else
   8384      1.1    jruoho                     {
   8385      1.1    jruoho                         //  DEST element is unknown value
   8386      1.1    jruoho                         Return (0x6B)
   8387      1.1    jruoho                     }
   8388      1.1    jruoho                 }
   8389      1.1    jruoho 
   8390      1.1    jruoho                 Store ("Store(SRCB,Index(Buffer,,)) PASS", Debug)
   8391      1.1    jruoho 
   8392      1.1    jruoho                 //
   8393      1.1    jruoho                 //  verify altering SRCB does NOT alter DEST
   8394      1.1    jruoho                 //
   8395      1.1    jruoho                 Store (0x6A, Index (SRCB, 1))   //  SRCB = "Sjort Buffer"
   8396      1.1    jruoho 
   8397      1.1    jruoho                 Store (DerefOf (Index (SRCB, 1)), Local0)
   8398      1.1    jruoho 
   8399      1.1    jruoho                 If (LNotEqual (Local0, 0x6A))       //  'j'
   8400      1.1    jruoho                 {
   8401      1.1    jruoho                     //  SRCB element is unaltered
   8402      1.1    jruoho                     Return (0x71)
   8403      1.1    jruoho                 }
   8404      1.1    jruoho 
   8405      1.1    jruoho                 Store (DerefOf (Index (DEST, 3)), Local0) // DEST = "Destination buffer that...
   8406      1.1    jruoho 
   8407      1.1    jruoho                 If (LNotEqual (Local0, 0x74))       //  't'
   8408      1.1    jruoho                 {
   8409      1.1    jruoho                     //  DEST element is altered
   8410      1.1    jruoho                     If (LEqual (Local0, 0x6A))  //  'j'
   8411      1.1    jruoho                     {
   8412      1.1    jruoho                         //  SRCB change altered DEST element
   8413      1.1    jruoho                         Return (0x72)
   8414      1.1    jruoho                     }
   8415      1.1    jruoho                     Else
   8416      1.1    jruoho                     {
   8417      1.1    jruoho                         //  DEST element is unknown value
   8418      1.1    jruoho                         Return (0x73)
   8419      1.1    jruoho                     }
   8420      1.1    jruoho                 }
   8421      1.1    jruoho 
   8422      1.1    jruoho                 //  verify altering DEST does NOT alter SRCB
   8423      1.1    jruoho 
   8424      1.1    jruoho                 Store (0x6B, Index (DEST, 4, )) //  DEST = "DeSkination buffer..."
   8425      1.1    jruoho 
   8426      1.1    jruoho                 Store (DerefOf (Index (DEST, 4, )), Local0)
   8427      1.1    jruoho 
   8428      1.1    jruoho                 If (LNotEqual (Local0, 0x6B))       //  'k'
   8429      1.1    jruoho                 {
   8430      1.1    jruoho                     //  DEST element is unaltered
   8431      1.1    jruoho                     Return (0x74)
   8432      1.1    jruoho                 }
   8433      1.1    jruoho 
   8434      1.1    jruoho                 Store (DerefOf (Index (SRCB, 2, )), Local0)
   8435      1.1    jruoho 
   8436      1.1    jruoho                 If (LNotEqual (Local0, 0x6F))       //  'o'
   8437      1.1    jruoho                 {   //  SRC element is altered
   8438      1.1    jruoho                     If (LEqual (Local0, 0x6B))  //  'k'
   8439      1.1    jruoho                     {
   8440      1.1    jruoho                         //  DEST change altered SRCB element
   8441      1.1    jruoho                         Return (0x75)
   8442      1.1    jruoho                     }
   8443      1.1    jruoho                     Else
   8444      1.1    jruoho                     {
   8445      1.1    jruoho                         //  SRCB element is unknown value
   8446      1.1    jruoho                         Return (0x76)
   8447      1.1    jruoho                     }
   8448      1.1    jruoho                 }
   8449      1.1    jruoho 
   8450      1.1    jruoho                 Store ("SRCB and DEST independent PASS", Debug)
   8451      1.1    jruoho 
   8452      1.1    jruoho 
   8453      1.1    jruoho                 // verify string can be written to Index target/destination
   8454      1.1    jruoho                 // Only FIRST byte is written
   8455      1.1    jruoho 
   8456      1.1    jruoho                 Store ("New Buff", Index (DEST, 2, ))   //  DEST = "DeNkination buffer..."
   8457      1.1    jruoho 
   8458      1.1    jruoho                 Store (DerefOf (Index (DEST, 2, )), Local0)
   8459      1.1    jruoho 
   8460      1.1    jruoho                 If (LNotEqual (Local0, 0x4E))       //  'N'
   8461      1.1    jruoho                 {
   8462      1.1    jruoho                     //  DEST element is unaltered
   8463      1.1    jruoho                     Return (0x81)
   8464      1.1    jruoho                 }
   8465      1.1    jruoho 
   8466      1.1    jruoho                 Store (DerefOf (Index (DEST, 6, )), Local0)
   8467      1.1    jruoho 
   8468      1.1    jruoho                 If (LNotEqual (Local0, 0x61))       //  'a'
   8469      1.1    jruoho                 {
   8470      1.1    jruoho                     //  DEST element is unaltered
   8471      1.1    jruoho                     Return (0x82)
   8472      1.1    jruoho                 }
   8473      1.1    jruoho 
   8474      1.1    jruoho                 Store (DerefOf (Index (DEST, 10, )), Local0)
   8475      1.1    jruoho 
   8476      1.1    jruoho                 If (LNotEqual (Local0, 0x6E))       //  'n'
   8477      1.1    jruoho                 {
   8478      1.1    jruoho                     //  DEST element is unaltered
   8479      1.1    jruoho                     Return (0x83)
   8480      1.1    jruoho                 }
   8481      1.1    jruoho 
   8482      1.1    jruoho                 Store ("Store(String,Index) PASS", Debug)
   8483      1.1    jruoho 
   8484      1.1    jruoho 
   8485      1.1    jruoho                 Return (0)  //  pass
   8486      1.1    jruoho             }   //  B2IB:   store from Buffer into Index'ed Buffer
   8487      1.1    jruoho 
   8488  1.1.1.3  christos             Method (FB2P,, Serialized)
   8489      1.1    jruoho             {   //  FB2P:   store from Field Buffer into Index'ed Package
   8490      1.1    jruoho                 Name (DEST, Package (2) {})
   8491      1.1    jruoho 
   8492      1.1    jruoho                 //  initialize memory using 32-bit field elements
   8493      1.1    jruoho                 Store (0x01234567, \_SB.MEM.SMD0)
   8494      1.1    jruoho                 Store (0x89ABCDEF, \_SB.MEM.SMD1)
   8495      1.1    jruoho                 Store (0xFEDCBA98, \_SB.MEM.SMD2)
   8496      1.1    jruoho                 Store (0x76543210, \_SB.MEM.SMD3)
   8497      1.1    jruoho 
   8498      1.1    jruoho                 //  move greater than 64-bit buffers into DEST package
   8499      1.1    jruoho                 Store (\_SB.MEM.SME0, Index (DEST, 0))
   8500      1.1    jruoho                 Store (\_SB.MEM.SME1, Index (DEST, 1))
   8501      1.1    jruoho 
   8502      1.1    jruoho                 //  validate DEST contents
   8503      1.1    jruoho                 Store (DerefOf (Index (DEST, 0, )), Local0)
   8504      1.1    jruoho                 Store (DerefOf (Index (DEST, 1, )), Local1)
   8505      1.1    jruoho 
   8506      1.1    jruoho                 //  verify Local0 and Local1 are Buffers
   8507      1.1    jruoho                 Store (ObjectType (Local0), Local2)
   8508      1.1    jruoho                 if (LNotEqual (Local2, 3))  //  Buffer type is 3
   8509      1.1    jruoho                 {
   8510      1.1    jruoho                     Return (0x11)
   8511      1.1    jruoho                 }
   8512      1.1    jruoho 
   8513      1.1    jruoho                 Store (ObjectType (Local1), Local3)
   8514      1.1    jruoho                 if (LNotEqual (Local3, 3))  //  Buffer type is 3
   8515      1.1    jruoho                 {
   8516      1.1    jruoho                     Return (0x12)
   8517      1.1    jruoho                 }
   8518      1.1    jruoho 
   8519      1.1    jruoho                 //  validate DEST buffer contents
   8520      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 0)), Local4)
   8521      1.1    jruoho                 If (LNotEqual (Local4, 0x67))
   8522      1.1    jruoho                 {
   8523      1.1    jruoho                     Return (0x13)
   8524      1.1    jruoho                 }
   8525      1.1    jruoho 
   8526      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 1)), Local4)
   8527      1.1    jruoho                 If (LNotEqual (Local4, 0x45))
   8528      1.1    jruoho                 {
   8529      1.1    jruoho                     Return (0x14)
   8530      1.1    jruoho                 }
   8531      1.1    jruoho 
   8532      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 4)), Local4)
   8533      1.1    jruoho                 If (LNotEqual (Local4, 0xEF))
   8534      1.1    jruoho                 {
   8535      1.1    jruoho                     Return (0x15)
   8536      1.1    jruoho                 }
   8537      1.1    jruoho 
   8538      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 5, )), Local4)
   8539      1.1    jruoho                 If (LNotEqual (Local4, 0xCD))
   8540      1.1    jruoho                 {
   8541      1.1    jruoho                     Return (0x16)
   8542      1.1    jruoho                 }
   8543      1.1    jruoho 
   8544      1.1    jruoho                 Store ("Store(Mem,PkgElement) PASS", Debug)
   8545      1.1    jruoho 
   8546      1.1    jruoho 
   8547      1.1    jruoho                 //  validate changing source \_SB.MEM.SMD* does not impact DEST
   8548      1.1    jruoho                 Store (0x12345678, \_SB.MEM.SMD0)
   8549      1.1    jruoho 
   8550      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 0, )), Local5)
   8551      1.1    jruoho                 If (LNotEqual (Local5, 0x67))
   8552      1.1    jruoho                 {
   8553      1.1    jruoho                     Return (0x21)
   8554      1.1    jruoho                 }
   8555      1.1    jruoho 
   8556      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 1, )), Local5)
   8557      1.1    jruoho                 If (LNotEqual (Local5, 0x45))
   8558      1.1    jruoho                 {
   8559      1.1    jruoho                     Return (0x22)
   8560      1.1    jruoho                 }
   8561      1.1    jruoho 
   8562      1.1    jruoho                 //  validate changing DEST does not impact source \_SB.MEM.SMD*
   8563      1.1    jruoho                 Store (0x30, Index (DerefOf (Index (DEST, 0)), 0))
   8564      1.1    jruoho 
   8565      1.1    jruoho                 Store (DerefOf(Index (DerefOf (Index (DEST, 0)), 0)), Local5)
   8566      1.1    jruoho                 If (LNotEqual (Local5, 0x30))
   8567      1.1    jruoho                 {
   8568      1.1    jruoho                     Return (0x23)
   8569      1.1    jruoho                 }
   8570      1.1    jruoho 
   8571      1.1    jruoho                 //
   8572      1.1    jruoho                 // This section was modified from the original iPCO code because
   8573      1.1    jruoho                 //  it attempted to compare two buffers.  This is not allowed until
   8574      1.1    jruoho                 //  ACPI v2.0, so the test has been modified to just check the
   8575      1.1    jruoho                 //  changed \_SB.MEM.SMD0
   8576      1.1    jruoho                 //
   8577      1.1    jruoho                 Store (\_SB.MEM.SMD0, Local5)
   8578      1.1    jruoho 
   8579      1.1    jruoho                 If(LNotEqual(Local5, 0x12345678))
   8580      1.1    jruoho                 {
   8581      1.1    jruoho                     Return (0x24)
   8582      1.1    jruoho                 }
   8583      1.1    jruoho 
   8584      1.1    jruoho                 Store ("Mem and Pkg independent PASS", Debug)
   8585      1.1    jruoho 
   8586      1.1    jruoho 
   8587      1.1    jruoho                 Return (0)
   8588      1.1    jruoho             }   //  FB2P:   store from Field Buffer into Index'ed Package
   8589      1.1    jruoho 
   8590      1.1    jruoho             Method (TEST)
   8591      1.1    jruoho             {
   8592      1.1    jruoho                 Store ("++++++++ IndexOp2 Test", Debug)
   8593      1.1    jruoho 
   8594      1.1    jruoho                 //  store _BIF package return value into Local0
   8595      1.1    jruoho 
   8596      1.1    jruoho                 Store (\_SB.BAT1._BIF, Local0)
   8597      1.1    jruoho 
   8598      1.1    jruoho                 //  save Local0 object type value into Local1
   8599      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   8600      1.1    jruoho 
   8601      1.1    jruoho                 //  validate Local0 is a Package
   8602      1.1    jruoho                 If (LNotEqual (Local1, 4))  //  Package type is 4
   8603      1.1    jruoho                 {
   8604      1.1    jruoho                     //  failure
   8605      1.1    jruoho                     Return (2)
   8606      1.1    jruoho                 }
   8607      1.1    jruoho 
   8608      1.1    jruoho                 //  validate source and destination buffers are independent of each
   8609      1.1    jruoho                 //  of each other (i.e., changing one's contents does not change
   8610      1.1    jruoho                 //  other's contents) using B2IB (store from Buffer into Index'ed
   8611      1.1    jruoho                 //  Buffer) and FB2P (store from Field Buffer into Index'ed Package)
   8612      1.1    jruoho 
   8613      1.1    jruoho                 //  call B2IB (store from Buffer into Index'ed Buffer)
   8614      1.1    jruoho                 Store (B2IB, Local2)    //  Local2 is B2IB return value
   8615      1.1    jruoho 
   8616      1.1    jruoho                 //  save Local2 object type value into Local3
   8617      1.1    jruoho                 Store (ObjectType (Local2), Local3)
   8618      1.1    jruoho 
   8619      1.1    jruoho                 //  validate Local2 is a Number
   8620      1.1    jruoho                 If (LNotEqual (Local3, 1))  //  Number type is 1
   8621      1.1    jruoho                 {
   8622      1.1    jruoho                     //  failure
   8623      1.1    jruoho                     Return (4)
   8624      1.1    jruoho                 }
   8625      1.1    jruoho 
   8626      1.1    jruoho                 //  zero indicates pass, non-zero is an error code
   8627      1.1    jruoho                 If (LNotEqual (Local2, 0))
   8628      1.1    jruoho                 {
   8629      1.1    jruoho                     //  return B2IB error code
   8630      1.1    jruoho                     Return (Local2)
   8631      1.1    jruoho                 }
   8632      1.1    jruoho 
   8633      1.1    jruoho                 //  call FB2P (store from Field Buffer into Index'ed Package)
   8634      1.1    jruoho                 Store (FB2P, Local2)    //  Local2 is FB2P return value
   8635      1.1    jruoho 
   8636      1.1    jruoho                 //  save Local2 object type value into Local3
   8637      1.1    jruoho                 Store (ObjectType (Local2), Local3)
   8638      1.1    jruoho 
   8639      1.1    jruoho                 //  validate Local2 is a Number
   8640      1.1    jruoho                 If (LNotEqual (Local3, 1))  //  Number type is 1
   8641      1.1    jruoho                 {
   8642      1.1    jruoho                     //  failure
   8643      1.1    jruoho                     Return (5)
   8644      1.1    jruoho                 }
   8645      1.1    jruoho 
   8646      1.1    jruoho                 //  zero indicates pass, non-zero is an error code
   8647      1.1    jruoho                 If (LNotEqual (Local2, 0))
   8648      1.1    jruoho                 {
   8649      1.1    jruoho                     //  return FB2P error code
   8650      1.1    jruoho                     Return (Local2)
   8651      1.1    jruoho                 }
   8652      1.1    jruoho 
   8653      1.1    jruoho 
   8654      1.1    jruoho                 Return (0)
   8655      1.1    jruoho             }   //  TEST
   8656      1.1    jruoho         }   //  IDX2:   Test device name
   8657      1.1    jruoho     }   //  _SB system bus
   8658      1.1    jruoho 
   8659      1.1    jruoho //
   8660      1.1    jruoho // test SizeOf.asl
   8661      1.1    jruoho //
   8662      1.1    jruoho //  Test for SizeOf
   8663      1.1    jruoho //      test cases include following SizeOf arguments:
   8664      1.1    jruoho //          buffer, buffer field;
   8665      1.1    jruoho //          control method argument, control method local variable;
   8666      1.1    jruoho //          control method return values;
   8667      1.1    jruoho //          direct string, string;
   8668      1.1    jruoho //          package;
   8669      1.1    jruoho //          buffer, package, and string package elements
   8670      1.1    jruoho //
   8671      1.1    jruoho // MTL NOTE: This test has been modified to remove any SizeOf(Index(Buff,...
   8672      1.1    jruoho //  calls because it is not legal to perform a SizeOf operation on a Buffer Field.
   8673      1.1    jruoho //  This test has also been extended to test additional Package element sizes.
   8674      1.1    jruoho //
   8675      1.1    jruoho     Device (SIZO)
   8676      1.1    jruoho     {
   8677      1.1    jruoho         //  SAR0 control method validates SizeOf(Arg)
   8678      1.1    jruoho         //      SAR0 should only be called by SARG
   8679      1.1    jruoho         Method (SAR0, 2)
   8680      1.1    jruoho         //  Arg0    object to determine size of
   8681      1.1    jruoho         //  Arg1    expected Arg length
   8682      1.1    jruoho         {   //  SAR0:   SizeOf(Arg) test control method
   8683      1.1    jruoho             //  Local0  Arg0 length
   8684      1.1    jruoho             //  Local1  Local0 object type
   8685      1.1    jruoho 
   8686      1.1    jruoho             //  Store first string size (Arg0) into Local7
   8687      1.1    jruoho             Store (SizeOf (Arg0), Local0)
   8688      1.1    jruoho 
   8689      1.1    jruoho             //  save Local0 object type value into Local1
   8690      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8691      1.1    jruoho 
   8692      1.1    jruoho             //  validate Local0 is a Number
   8693      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8694      1.1    jruoho                 {   Return (0x21)   }
   8695      1.1    jruoho 
   8696      1.1    jruoho             //  If strings are not of equal size, return error code
   8697      1.1    jruoho             If (LNotEqual (Local0, Arg1))
   8698      1.1    jruoho                 {   Return (0x22)   }
   8699      1.1    jruoho 
   8700      1.1    jruoho             Return (0)
   8701      1.1    jruoho         }   //  SAR0:   SizeOf(Arg) test control method
   8702      1.1    jruoho 
   8703  1.1.1.3  christos         Method (SARG,, Serialized)
   8704      1.1    jruoho         {   //  SARG:   SizeOf(Arg) test control method
   8705      1.1    jruoho             Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
   8706      1.1    jruoho             Name (BUF1, Buffer() {0x01, 0x02, 0x03, 0x04, 0x05})
   8707      1.1    jruoho             Name (PKG0, Package (4) {}) //  uninitialized Package
   8708      1.1    jruoho             Name (STR0, "String")
   8709      1.1    jruoho             Name (PKG1, Package (4)
   8710      1.1    jruoho             {
   8711      1.1    jruoho                 BUFR,
   8712      1.1    jruoho                 "String2",
   8713      1.1    jruoho                 STR0,
   8714      1.1    jruoho                 PKG0
   8715      1.1    jruoho             })  //  PKG1
   8716      1.1    jruoho 
   8717      1.1    jruoho             Name (PKG2, Package (4)
   8718      1.1    jruoho             {
   8719      1.1    jruoho                 Buffer (15) {},
   8720      1.1    jruoho                 "String 1",
   8721      1.1    jruoho                 Package (2) {}
   8722      1.1    jruoho             })  //  PKG2
   8723      1.1    jruoho 
   8724      1.1    jruoho             //  Namespace entry buffer reference
   8725      1.1    jruoho             Store (SAR0 (BUFR, 12), Local0)
   8726      1.1    jruoho 
   8727      1.1    jruoho             //  save Local0 object type value into Local1
   8728      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8729      1.1    jruoho 
   8730      1.1    jruoho             //  validate Local0 is a Number
   8731      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8732      1.1    jruoho             {
   8733      1.1    jruoho                 Return (0x23)
   8734      1.1    jruoho             }
   8735      1.1    jruoho 
   8736      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8737      1.1    jruoho             {
   8738      1.1    jruoho                 Return (Local0)
   8739      1.1    jruoho             }
   8740      1.1    jruoho 
   8741      1.1    jruoho             Store ("SizeOf(Arg=BUFR) PASS", Debug)
   8742      1.1    jruoho 
   8743      1.1    jruoho 
   8744      1.1    jruoho             //  Namespace entry package reference
   8745      1.1    jruoho             Store (SAR0 (PKG0, 4), Local0)
   8746      1.1    jruoho 
   8747      1.1    jruoho             //  save Local0 object type value into Local1
   8748      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8749      1.1    jruoho 
   8750      1.1    jruoho             //  validate Local0 is a Number
   8751      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8752      1.1    jruoho             {
   8753      1.1    jruoho                 Return (0x24)
   8754      1.1    jruoho             }
   8755      1.1    jruoho 
   8756      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8757      1.1    jruoho             {
   8758      1.1    jruoho                 Return (Local0)
   8759      1.1    jruoho             }
   8760      1.1    jruoho 
   8761      1.1    jruoho             Store ("SizeOf(Arg=PKG0) PASS", Debug)
   8762      1.1    jruoho 
   8763      1.1    jruoho 
   8764      1.1    jruoho             //  Namespace entry string reference
   8765      1.1    jruoho             Store (SAR0 (STR0, 6), Local0)
   8766      1.1    jruoho 
   8767      1.1    jruoho             //  save Local0 object type value into Local1
   8768      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8769      1.1    jruoho 
   8770      1.1    jruoho             //  validate Local0 is a Number
   8771      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8772      1.1    jruoho             {
   8773      1.1    jruoho                 Return (0x25)
   8774      1.1    jruoho             }
   8775      1.1    jruoho 
   8776      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8777      1.1    jruoho             {
   8778      1.1    jruoho                 Return (Local0)
   8779      1.1    jruoho             }
   8780      1.1    jruoho 
   8781      1.1    jruoho             Store ("SizeOf(Arg=STR0) PASS", Debug)
   8782      1.1    jruoho 
   8783      1.1    jruoho 
   8784      1.1    jruoho             //  direct string reference
   8785      1.1    jruoho             Store (SAR0 ("String", 6), Local0)
   8786      1.1    jruoho 
   8787      1.1    jruoho             //  save Local0 object type value into Local1
   8788      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8789      1.1    jruoho 
   8790      1.1    jruoho             //  validate Local0 is a Number
   8791      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8792      1.1    jruoho             {
   8793      1.1    jruoho                 Return (0x26)
   8794      1.1    jruoho             }
   8795      1.1    jruoho 
   8796      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8797      1.1    jruoho             {
   8798      1.1    jruoho                 Return (Local0)
   8799      1.1    jruoho             }
   8800      1.1    jruoho 
   8801      1.1    jruoho             Store ("SizeOf(Arg=String) PASS", Debug)
   8802      1.1    jruoho 
   8803      1.1    jruoho             Store (0x55, Index (BUF1, 2))
   8804      1.1    jruoho 
   8805      1.1    jruoho             /****************************************************
   8806      1.1    jruoho             //
   8807      1.1    jruoho             // This section is commented because it is illegal to
   8808      1.1    jruoho             //  perform a SizeOf operation on a Buffer Field
   8809      1.1    jruoho             //
   8810      1.1    jruoho             //  Namespace BufferField reference
   8811      1.1    jruoho             Store (SAR0 (Index (BUFR, 2, ), 10), Local0)
   8812      1.1    jruoho 
   8813      1.1    jruoho             //  save Local0 object type value into Local1
   8814      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8815      1.1    jruoho 
   8816      1.1    jruoho             //  validate Local0 is a Number
   8817      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8818      1.1    jruoho                 {   Return (0x27)   }
   8819      1.1    jruoho 
   8820      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8821      1.1    jruoho                 {   Return (Local0) }
   8822      1.1    jruoho 
   8823      1.1    jruoho             Store ("SizeOf(Arg=BufferField) PASS", Debug)
   8824      1.1    jruoho             ****************************************************/
   8825      1.1    jruoho 
   8826      1.1    jruoho             //  Namespace BufferPackageElement reference
   8827      1.1    jruoho             //
   8828      1.1    jruoho             Store (SAR0 (Index(PKG1, 0), 12), Local0)
   8829      1.1    jruoho 
   8830      1.1    jruoho             //  save Local0 object type value into Local1
   8831      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8832      1.1    jruoho 
   8833      1.1    jruoho             //  validate Local0 is a Number
   8834      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8835      1.1    jruoho             {
   8836      1.1    jruoho                 Return (0x28)
   8837      1.1    jruoho             }
   8838      1.1    jruoho 
   8839      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8840      1.1    jruoho             {
   8841      1.1    jruoho                 Return (Local0)
   8842      1.1    jruoho             }
   8843      1.1    jruoho 
   8844      1.1    jruoho             Store ("SizeOf(Arg=PackageBuffer NTE Reference Element) PASS", Debug)
   8845      1.1    jruoho 
   8846      1.1    jruoho 
   8847      1.1    jruoho             //  Namespace StringPackageElement reference
   8848      1.1    jruoho             Store (SAR0 (Index (PKG1, 1, ), 7), Local0)
   8849      1.1    jruoho 
   8850      1.1    jruoho             //  save Local0 object type value into Local1
   8851      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8852      1.1    jruoho 
   8853      1.1    jruoho             //  validate Local0 is a Number
   8854      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8855      1.1    jruoho             {
   8856      1.1    jruoho                 Return (0x29)
   8857      1.1    jruoho             }
   8858      1.1    jruoho 
   8859      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8860      1.1    jruoho             {
   8861      1.1    jruoho                 Return (Local0)
   8862      1.1    jruoho             }
   8863      1.1    jruoho 
   8864      1.1    jruoho             Store ("SizeOf(Arg=Package String Element) PASS", Debug)
   8865      1.1    jruoho 
   8866      1.1    jruoho 
   8867      1.1    jruoho             //  Namespace StringPackageElement reference
   8868      1.1    jruoho             Store (SAR0 (Index (PKG1, 2, ), 6), Local0)
   8869      1.1    jruoho 
   8870      1.1    jruoho             //  save Local0 object type value into Local1
   8871      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8872      1.1    jruoho 
   8873      1.1    jruoho             //  validate Local0 is a Number
   8874      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8875      1.1    jruoho             {
   8876      1.1    jruoho                 Return (0x2A)
   8877      1.1    jruoho             }
   8878      1.1    jruoho 
   8879      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8880      1.1    jruoho             {
   8881      1.1    jruoho                 Return (Local0)
   8882      1.1    jruoho             }
   8883      1.1    jruoho 
   8884      1.1    jruoho             Store ("SizeOf(Arg=Package String NTE Reference Element) PASS", Debug)
   8885      1.1    jruoho 
   8886      1.1    jruoho 
   8887      1.1    jruoho             //  Namespace PackagePackageElement reference
   8888      1.1    jruoho             Store (SAR0 (Index (PKG1, 3, ), 4), Local0)
   8889      1.1    jruoho 
   8890      1.1    jruoho             //  save Local0 object type value into Local1
   8891      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8892      1.1    jruoho 
   8893      1.1    jruoho             //  validate Local0 is a Number
   8894      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8895      1.1    jruoho             {
   8896      1.1    jruoho                 Return (0x2B)
   8897      1.1    jruoho             }
   8898      1.1    jruoho 
   8899      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8900      1.1    jruoho             {
   8901      1.1    jruoho                 Return (Local0)
   8902      1.1    jruoho             }
   8903      1.1    jruoho 
   8904      1.1    jruoho             Store ("SizeOf(Arg=Package Package NTE Reference Element) PASS", Debug)
   8905      1.1    jruoho 
   8906      1.1    jruoho             // Package Buffer Element
   8907      1.1    jruoho             Store (SAR0 (Index (PKG2, 0), 15), Local0)
   8908      1.1    jruoho 
   8909      1.1    jruoho             //  save Local0 object type value into Local1
   8910      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8911      1.1    jruoho 
   8912      1.1    jruoho             //  validate Local0 is a Number
   8913      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8914      1.1    jruoho             {
   8915      1.1    jruoho                 Return (0x2B)
   8916      1.1    jruoho             }
   8917      1.1    jruoho 
   8918      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8919      1.1    jruoho             {
   8920      1.1    jruoho                 Return (Local0)
   8921      1.1    jruoho             }
   8922      1.1    jruoho 
   8923      1.1    jruoho             Store ("SizeOf(Arg=Package Buffer Element) PASS", Debug)
   8924      1.1    jruoho 
   8925      1.1    jruoho             // Package String Element
   8926      1.1    jruoho             Store (SAR0 (Index (PKG2, 1), 8), Local0)
   8927      1.1    jruoho 
   8928      1.1    jruoho             //  save Local0 object type value into Local1
   8929      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8930      1.1    jruoho 
   8931      1.1    jruoho             //  validate Local0 is a Number
   8932      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8933      1.1    jruoho             {
   8934      1.1    jruoho                 Return (0x2B)
   8935      1.1    jruoho             }
   8936      1.1    jruoho 
   8937      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8938      1.1    jruoho             {
   8939      1.1    jruoho                 Return (Local0)
   8940      1.1    jruoho             }
   8941      1.1    jruoho 
   8942      1.1    jruoho             Store ("SizeOf(Arg=Package String Element) PASS", Debug)
   8943      1.1    jruoho 
   8944      1.1    jruoho             // Package Package Element
   8945      1.1    jruoho             Store (SAR0 (Index (PKG2, 2), 2), Local0)
   8946      1.1    jruoho 
   8947      1.1    jruoho             //  save Local0 object type value into Local1
   8948      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8949      1.1    jruoho 
   8950      1.1    jruoho             //  validate Local0 is a Number
   8951      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8952      1.1    jruoho             {
   8953      1.1    jruoho                 Return (0x2B)
   8954      1.1    jruoho             }
   8955      1.1    jruoho 
   8956      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8957      1.1    jruoho             {
   8958      1.1    jruoho                 Return (Local0)
   8959      1.1    jruoho             }
   8960      1.1    jruoho 
   8961      1.1    jruoho             Store ("SizeOf(Arg=Package Package Element) PASS", Debug)
   8962      1.1    jruoho 
   8963      1.1    jruoho             Store ("SizeOf(Arg) PASS", Debug)
   8964      1.1    jruoho 
   8965      1.1    jruoho             Return (0)
   8966      1.1    jruoho         }   //  SARG:   SizeOf(Arg) test control method
   8967      1.1    jruoho 
   8968  1.1.1.3  christos         Method (SBUF,, Serialized)
   8969      1.1    jruoho         {   //  SBUF:   SizeOf(Buffer) test control method
   8970      1.1    jruoho             Name (BUFR, Buffer (12) {})
   8971      1.1    jruoho 
   8972      1.1    jruoho             //  store size of BUFR buffer into Local0
   8973      1.1    jruoho             Store (SizeOf (BUFR), Local0)
   8974      1.1    jruoho 
   8975      1.1    jruoho             //  save Local0 object type value into Local1
   8976      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8977      1.1    jruoho 
   8978      1.1    jruoho             //  validate Local0 is a Number
   8979      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8980      1.1    jruoho             {
   8981      1.1    jruoho                 Return (0x31)
   8982      1.1    jruoho             }
   8983      1.1    jruoho 
   8984      1.1    jruoho             If (LNotEqual (Local0, 12))     //  BUFR size is 12
   8985      1.1    jruoho             {
   8986      1.1    jruoho                 Return (0x32)
   8987      1.1    jruoho             }
   8988      1.1    jruoho 
   8989      1.1    jruoho             Store ("SizeOf(BUFR) PASS", Debug)
   8990      1.1    jruoho 
   8991      1.1    jruoho             Return (0)
   8992      1.1    jruoho         }   //  SBUF:   SizeOf(Buffer) test control method
   8993      1.1    jruoho 
   8994      1.1    jruoho 
   8995      1.1    jruoho         /****************************************************
   8996      1.1    jruoho         //
   8997      1.1    jruoho         // This section is commented because it is illegal to
   8998      1.1    jruoho         //  perform a SizeOf operation on a Buffer Field
   8999      1.1    jruoho         //
   9000      1.1    jruoho         Method (SIND)
   9001      1.1    jruoho         {   //  SIND:   SizeOf(Index(,,)) test control method
   9002      1.1    jruoho             Name (BUFR, Buffer (12) {})
   9003      1.1    jruoho 
   9004      1.1    jruoho             //  store size of Index(BUFR,2,) buffer into Local0
   9005      1.1    jruoho             Store (SizeOf (Index (BUFR, 2, )), Local0)
   9006      1.1    jruoho 
   9007      1.1    jruoho             //  save Local0 object type value into Local1
   9008      1.1    jruoho             Store (ObjectType (Local0), Local1)
   9009      1.1    jruoho 
   9010      1.1    jruoho             //  validate Local0 is a Number
   9011      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9012      1.1    jruoho             {
   9013      1.1    jruoho                 Return (0x41)
   9014      1.1    jruoho             }
   9015      1.1    jruoho 
   9016      1.1    jruoho             If (LNotEqual (Local0, 10))     //  12 - 2 = 10
   9017      1.1    jruoho             {
   9018      1.1    jruoho                 Return (0x42)
   9019      1.1    jruoho             }
   9020      1.1    jruoho 
   9021      1.1    jruoho             Store ("SizeOf(Index(BUFR,,)) PASS", Debug)
   9022      1.1    jruoho 
   9023      1.1    jruoho             //  TBD:    strings and packages
   9024      1.1    jruoho 
   9025      1.1    jruoho             Return (0)
   9026      1.1    jruoho         }   //  SIND:   SizeOf(Index(,,)) test control method
   9027      1.1    jruoho         ****************************************************/
   9028      1.1    jruoho 
   9029  1.1.1.3  christos         Method (SLOC,, Serialized)
   9030      1.1    jruoho         {   //  SLOC:   SizeOf(Local) test control method
   9031      1.1    jruoho             Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
   9032      1.1    jruoho             Name (STR0, "String")
   9033      1.1    jruoho             Name (PKG0, Package (4) {}) //  uninitialized Package
   9034      1.1    jruoho 
   9035      1.1    jruoho 
   9036      1.1    jruoho             //  store BUFR Buffer into Local2
   9037      1.1    jruoho             Store (BUFR, Local2)
   9038      1.1    jruoho 
   9039      1.1    jruoho             //  store size of BUFR buffer into Local0
   9040      1.1    jruoho             Store (SizeOf (Local2), Local0)
   9041      1.1    jruoho 
   9042      1.1    jruoho             //  save Local0 object type value into Local1
   9043      1.1    jruoho             Store (ObjectType (Local0), Local1)
   9044      1.1    jruoho 
   9045      1.1    jruoho             //  validate Local0 is a Number
   9046      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9047      1.1    jruoho             {
   9048      1.1    jruoho                 Return (0x51)
   9049      1.1    jruoho             }
   9050      1.1    jruoho 
   9051      1.1    jruoho             If (LNotEqual (Local0, 12)) //  BUFR size is 12
   9052      1.1    jruoho             {
   9053      1.1    jruoho                 Return (0x52)
   9054      1.1    jruoho             }
   9055      1.1    jruoho 
   9056      1.1    jruoho             Store ("SizeOf(Local2=Buffer) PASS", Debug)
   9057      1.1    jruoho 
   9058      1.1    jruoho 
   9059      1.1    jruoho             //  store STR0 string into Local2
   9060      1.1    jruoho             Store (STR0, Local2)
   9061      1.1    jruoho 
   9062      1.1    jruoho             //  store size of STR0 buffer into Local0
   9063      1.1    jruoho             Store (SizeOf (Local2), Local0)
   9064      1.1    jruoho 
   9065      1.1    jruoho             //  save Local0 object type value into Local1
   9066      1.1    jruoho             Store (ObjectType (Local0), Local1)
   9067      1.1    jruoho 
   9068      1.1    jruoho             //  validate Local0 is a Number
   9069      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9070      1.1    jruoho             {
   9071      1.1    jruoho                 Return (0x53)
   9072      1.1    jruoho             }
   9073      1.1    jruoho 
   9074      1.1    jruoho             If (LNotEqual (Local0, 6))      //  STR0 size is 6
   9075      1.1    jruoho             {
   9076      1.1    jruoho                 Return (0x54)
   9077      1.1    jruoho             }
   9078      1.1    jruoho 
   9079      1.1    jruoho             Store ("SizeOf(Local2=String) PASS", Debug)
   9080      1.1    jruoho 
   9081      1.1    jruoho 
   9082      1.1    jruoho             //  store PKG0 Package into Local2
   9083      1.1    jruoho             Store (PKG0, Local2)
   9084      1.1    jruoho 
   9085      1.1    jruoho             //  store size of PKG0 buffer into Local0
   9086      1.1    jruoho             Store (SizeOf (Local2), Local0)
   9087      1.1    jruoho 
   9088      1.1    jruoho             //  save Local0 object type value into Local1
   9089      1.1    jruoho             Store (ObjectType (Local0), Local1)
   9090      1.1    jruoho 
   9091      1.1    jruoho             //  validate Local0 is a Number
   9092      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9093      1.1    jruoho             {
   9094      1.1    jruoho                 Return (0x55)
   9095      1.1    jruoho             }
   9096      1.1    jruoho 
   9097      1.1    jruoho             If (LNotEqual (Local0, 4))      //  PKG0 size is 4
   9098      1.1    jruoho             {
   9099      1.1    jruoho                 Return (0x56)
   9100      1.1    jruoho             }
   9101      1.1    jruoho 
   9102      1.1    jruoho             Store ("SizeOf(Local2=Package) PASS", Debug)
   9103      1.1    jruoho 
   9104      1.1    jruoho 
   9105      1.1    jruoho             Return (0)
   9106      1.1    jruoho         }   //  SLOC:   SizeOf(Local) test control method
   9107      1.1    jruoho 
   9108      1.1    jruoho         Method (TEST)
   9109      1.1    jruoho         {
   9110      1.1    jruoho             Store ("++++++++ SizeOf Test", Debug)
   9111      1.1    jruoho 
   9112      1.1    jruoho             //  Store current operating system string into Local0
   9113      1.1    jruoho             Store (_OS, Local0)
   9114      1.1    jruoho 
   9115      1.1    jruoho             Store (SizeOf (_OS), Local3)
   9116      1.1    jruoho 
   9117      1.1    jruoho             //  save Local3 object type value into Local4
   9118      1.1    jruoho             Store (ObjectType (Local3), Local4)
   9119      1.1    jruoho 
   9120      1.1    jruoho             //  validate Local3 is a Number
   9121      1.1    jruoho             If (LNotEqual (Local4, 1))  //  Number type is 1
   9122      1.1    jruoho             {
   9123      1.1    jruoho                 //  failure
   9124      1.1    jruoho                 Return (0x61)
   9125      1.1    jruoho             }
   9126      1.1    jruoho 
   9127      1.1    jruoho             //  Store current operating system string into Local0
   9128      1.1    jruoho             //  This verifies above SizeOf(_OS) did not corrupt ACPI namespace
   9129      1.1    jruoho             Store (_OS, Local0)
   9130      1.1    jruoho 
   9131      1.1    jruoho             //  Store SARG [Validate SizeOf(Arg)] return value into Local1
   9132      1.1    jruoho             Store (SARG, Local1)
   9133      1.1    jruoho 
   9134      1.1    jruoho             //  save Local1 object type value into Local2
   9135      1.1    jruoho             Store (ObjectType (Local1), Local2)
   9136      1.1    jruoho 
   9137      1.1    jruoho             //  validate Local1 is a Number
   9138      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9139      1.1    jruoho             {
   9140      1.1    jruoho                 //  failure
   9141      1.1    jruoho                 Return (0x62)
   9142      1.1    jruoho             }
   9143      1.1    jruoho 
   9144      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9145      1.1    jruoho             If (LNotEqual (Local1, 0))
   9146      1.1    jruoho             {
   9147      1.1    jruoho                 //  return SARG error code
   9148      1.1    jruoho                 Return (Local1)
   9149      1.1    jruoho             }
   9150      1.1    jruoho 
   9151      1.1    jruoho 
   9152      1.1    jruoho             //  Store SBUF [Validate SizeOf(Buffer)] return value into Local1
   9153      1.1    jruoho             Store (SBUF, Local1)
   9154      1.1    jruoho 
   9155      1.1    jruoho             //  save Local1 object type value into Local2
   9156      1.1    jruoho             Store (ObjectType (Local1), Local2)
   9157      1.1    jruoho 
   9158      1.1    jruoho             //  validate Local1 is a Number
   9159      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9160      1.1    jruoho             {
   9161      1.1    jruoho                 //  failure
   9162      1.1    jruoho                 Return (0x63)
   9163      1.1    jruoho             }
   9164      1.1    jruoho 
   9165      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9166      1.1    jruoho             If (LNotEqual (Local1, 0))
   9167      1.1    jruoho             {
   9168      1.1    jruoho                 //  return SBUF error code
   9169      1.1    jruoho                 Return (Local1)
   9170      1.1    jruoho             }
   9171      1.1    jruoho 
   9172      1.1    jruoho             /****************************************************
   9173      1.1    jruoho             //
   9174      1.1    jruoho             // This section is commented because it is illegal to
   9175      1.1    jruoho             //  perform a SizeOf operation on a Buffer Field
   9176      1.1    jruoho             //
   9177      1.1    jruoho             //  Store SIND [verify SizeOf(Index(,,))] return value into Local1
   9178      1.1    jruoho             Store (SIND, Local1)
   9179      1.1    jruoho 
   9180      1.1    jruoho             //  save Local1 object type value into Local2
   9181      1.1    jruoho             Store (ObjectType (Local1), Local2)
   9182      1.1    jruoho 
   9183      1.1    jruoho             //  validate Local1 is a Number
   9184      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9185      1.1    jruoho             {
   9186      1.1    jruoho                 //  failure
   9187      1.1    jruoho                 Return (0x64)
   9188      1.1    jruoho             }
   9189      1.1    jruoho 
   9190      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9191      1.1    jruoho             If (LNotEqual (Local1, 0))
   9192      1.1    jruoho             {
   9193      1.1    jruoho                 //  return SARG error code
   9194      1.1    jruoho                 Return (Local1)
   9195      1.1    jruoho             }
   9196      1.1    jruoho             ****************************************************/
   9197      1.1    jruoho 
   9198      1.1    jruoho             //  Store SLOC [verify SizeOf(Local)] return value into Local1
   9199      1.1    jruoho             Store (SLOC, Local1)
   9200      1.1    jruoho 
   9201      1.1    jruoho             //  save Local1 object type value into Local2
   9202      1.1    jruoho             Store (ObjectType (Local1), Local2)
   9203      1.1    jruoho 
   9204      1.1    jruoho             //  validate Local1 is a Number
   9205      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9206      1.1    jruoho             {
   9207      1.1    jruoho                 //  failure
   9208      1.1    jruoho                 Return (0x65)
   9209      1.1    jruoho             }
   9210      1.1    jruoho 
   9211      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9212      1.1    jruoho             If (LNotEqual (Local1, 0))
   9213      1.1    jruoho             {
   9214      1.1    jruoho                 //  return SLOC error code
   9215      1.1    jruoho                 Return (Local1)
   9216      1.1    jruoho             }
   9217      1.1    jruoho 
   9218      1.1    jruoho 
   9219      1.1    jruoho             //  TBD:    SizeOf (METH) -- where METH control method returns
   9220      1.1    jruoho             //              buffer, BufferField, string, package, package element
   9221      1.1    jruoho 
   9222      1.1    jruoho 
   9223      1.1    jruoho             Return (0)
   9224      1.1    jruoho         }   //  TEST
   9225      1.1    jruoho     }   //  SIZO
   9226      1.1    jruoho 
   9227      1.1    jruoho //
   9228      1.1    jruoho // test SmiShare.asl
   9229      1.1    jruoho //
   9230      1.1    jruoho     Scope (\_SB)    //  System Bus
   9231      1.1    jruoho     {   //  _SB system bus
   9232      1.1    jruoho         //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
   9233      1.1    jruoho         OperationRegion(RAM1, SystemMemory, 0x400000, 0xA)
   9234      1.1    jruoho 
   9235      1.1    jruoho         Field (RAM1, AnyAcc, NoLock, Preserve)
   9236      1.1    jruoho         {
   9237      1.1    jruoho             BI1T, 1,        // Create some bits in memory to access
   9238      1.1    jruoho             BI2T, 2,
   9239      1.1    jruoho             BI3T, 3,
   9240      1.1    jruoho             LST2, 2
   9241      1.1    jruoho         }   //  End Field RAM1
   9242      1.1    jruoho 
   9243      1.1    jruoho         Field (RAM1, WordAcc, NoLock, WriteAsZeros)
   9244      1.1    jruoho         {
   9245      1.1    jruoho             WRD, 16
   9246      1.1    jruoho         }   //  End 2nd Field RAM1
   9247      1.1    jruoho 
   9248      1.1    jruoho         Field (RAM1, ByteAcc, NoLock, WriteAsOnes)
   9249      1.1    jruoho         {
   9250      1.1    jruoho             BYTE, 8
   9251      1.1    jruoho         }   //  End 3rd Field RAM1
   9252      1.1    jruoho 
   9253      1.1    jruoho         Field (RAM1, ByteAcc, NoLock, Preserve)
   9254      1.1    jruoho         {
   9255      1.1    jruoho             SMIC, 8,
   9256      1.1    jruoho             SMID, 8
   9257      1.1    jruoho         }
   9258      1.1    jruoho 
   9259      1.1    jruoho         Device (MBIT)
   9260      1.1    jruoho         {
   9261      1.1    jruoho             Method (_INI)
   9262      1.1    jruoho             {
   9263      1.1    jruoho                 Store (0, BI1T)
   9264      1.1    jruoho                 Store (3, BI2T)
   9265      1.1    jruoho                 Store (7, BI3T)
   9266      1.1    jruoho                 Store (0, LST2)
   9267      1.1    jruoho             }   //  End _INI Method
   9268      1.1    jruoho         }   //  End Device MBIT
   9269      1.1    jruoho 
   9270      1.1    jruoho         Device (MWRD)
   9271      1.1    jruoho         {
   9272      1.1    jruoho             Method (_INI)
   9273      1.1    jruoho             {
   9274      1.1    jruoho                 Store (0, WRD)
   9275      1.1    jruoho             }   //  End _INI Method
   9276      1.1    jruoho         }   //  End Device MWRD
   9277      1.1    jruoho 
   9278      1.1    jruoho         Device (MBYT)
   9279      1.1    jruoho         {
   9280      1.1    jruoho             Method (_INI)
   9281      1.1    jruoho             {
   9282      1.1    jruoho                 Store (0, BYTE)
   9283      1.1    jruoho                 Store (0xC, SMIC)
   9284      1.1    jruoho                 Store (0xD, SMID)
   9285      1.1    jruoho             }   //  End _INI Method
   9286      1.1    jruoho         }   //  End Device MBYT
   9287      1.1    jruoho 
   9288      1.1    jruoho     /*
   9289      1.1    jruoho         //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
   9290      1.1    jruoho         OperationRegion(\RAM1, SystemMemory, 0x400000, 0xA)
   9291      1.1    jruoho 
   9292      1.1    jruoho         Field (\RAM1, AnyAcc, NoLock, Preserve)
   9293      1.1    jruoho         {
   9294      1.1    jruoho             BI1T, 1,        // Create some bits in memory to access
   9295      1.1    jruoho             BI2T, 2,
   9296      1.1    jruoho             BI3T, 3,
   9297      1.1    jruoho             LST2, 2
   9298      1.1    jruoho         }   //  End Field RAM1
   9299      1.1    jruoho 
   9300      1.1    jruoho         Field (\RAM1, WordAcc, NoLock, WriteAsZeros)
   9301      1.1    jruoho         {
   9302      1.1    jruoho             WRD, 16
   9303      1.1    jruoho         }   //  End 2nd Field RAM1
   9304      1.1    jruoho 
   9305      1.1    jruoho         Field (\RAM1, ByteAcc, NoLock, WriteAsOnes)
   9306      1.1    jruoho         {
   9307      1.1    jruoho             BYTE, 8
   9308      1.1    jruoho         }   //  End 3rd Field RAM1
   9309      1.1    jruoho 
   9310      1.1    jruoho         Field (\RAM1, ByteAcc, NoLock, Preserve)
   9311      1.1    jruoho         {
   9312      1.1    jruoho             SMIC, 8,
   9313      1.1    jruoho             SMID, 8
   9314      1.1    jruoho         }
   9315      1.1    jruoho     */
   9316      1.1    jruoho         Method (SMIX)
   9317      1.1    jruoho         {
   9318      1.1    jruoho             Return (BYTE)
   9319      1.1    jruoho         }   //  End SMIX
   9320      1.1    jruoho 
   9321      1.1    jruoho         Method (EVNT)
   9322      1.1    jruoho         {
   9323      1.1    jruoho             Store (SMIX, Local0)
   9324      1.1    jruoho 
   9325  1.1.1.3  christos             Notify (\_SB_, 0x29)
   9326      1.1    jruoho             If (And (Local0, 0x01))
   9327      1.1    jruoho             {   Notify (\_SB_.SMIS, 0x21)}
   9328      1.1    jruoho 
   9329      1.1    jruoho             If (And (Local0, 0x02))
   9330      1.1    jruoho             {   Notify (\_SB_.SMIS, 0x22)}
   9331      1.1    jruoho 
   9332      1.1    jruoho             If (And (Local0, 0x04))
   9333      1.1    jruoho             {   Notify (\_SB_.SMIS, 0x24)}
   9334      1.1    jruoho 
   9335      1.1    jruoho             If (And (Local0, 0x08))
   9336      1.1    jruoho             {   Notify (\_SB_.SMIS, 0x28)}
   9337      1.1    jruoho 
   9338      1.1    jruoho         }   //  End Method EVNT
   9339      1.1    jruoho 
   9340  1.1.1.3  christos         Method (NTFY)
   9341  1.1.1.3  christos         {
   9342  1.1.1.3  christos             Notify (\_SB_, 1)
   9343  1.1.1.3  christos             Notify (\_TZ_.TZ1, 2)
   9344  1.1.1.3  christos             Notify (\_PR_.CPU0, 3)
   9345  1.1.1.3  christos 
   9346  1.1.1.3  christos             Notify (\_SB_, 0x81)
   9347  1.1.1.3  christos             Notify (\_TZ_.TZ1, 0x82)
   9348  1.1.1.3  christos             Notify (\_PR_.CPU0, 0x83)
   9349  1.1.1.3  christos         }
   9350  1.1.1.3  christos 
   9351      1.1    jruoho         Device (SMIS)
   9352      1.1    jruoho         {
   9353      1.1    jruoho             Method (BINK)
   9354      1.1    jruoho             {
   9355      1.1    jruoho                 Store (0, Local0)               //  Zero out Local0
   9356      1.1    jruoho 
   9357      1.1    jruoho                 If (LNotEqual (SMID, 0xD))
   9358      1.1    jruoho                 {   Or (0x80, Local0, Local0)}
   9359      1.1    jruoho 
   9360      1.1    jruoho                 If (LNotEqual (SMIC, 0xC))
   9361      1.1    jruoho                 {   Or (0x40, Local0, Local0)}
   9362      1.1    jruoho 
   9363      1.1    jruoho                 If (LNotEqual (BYTE, 0))
   9364      1.1    jruoho                 {   Or (0x20, Local0, Local0)}
   9365      1.1    jruoho 
   9366      1.1    jruoho                 If (LNotEqual (WRD, 0))
   9367      1.1    jruoho                 {   Or (0x10, Local0, Local0)}
   9368      1.1    jruoho 
   9369      1.1    jruoho                 If (LNotEqual (LST2, 0))
   9370      1.1    jruoho                 {   Or (0x8, Local0, Local0)}
   9371      1.1    jruoho 
   9372      1.1    jruoho                 If (LNotEqual (BI3T, 0x7))
   9373      1.1    jruoho                 {   Or (0x4, Local0, Local0)}
   9374      1.1    jruoho 
   9375      1.1    jruoho                 If (LNotEqual (BI2T, 0x3))
   9376      1.1    jruoho                 {   Or (0x2, Local0, Local0)}
   9377      1.1    jruoho 
   9378      1.1    jruoho                 If (LNotEqual (BI1T, 0))
   9379      1.1    jruoho                 {   Or (0x1, Local0, Local0)}
   9380      1.1    jruoho 
   9381      1.1    jruoho                 Return (Local0)
   9382      1.1    jruoho             }   //  End Method BINK
   9383      1.1    jruoho 
   9384      1.1    jruoho             Method (TEST)
   9385      1.1    jruoho             {
   9386      1.1    jruoho                 Store ("++++++++ SmiShare Test", Debug)
   9387      1.1    jruoho 
   9388      1.1    jruoho                 //  Expect EVNT to generate Notify value we just previously
   9389      1.1    jruoho                 //  stored in BYTE
   9390  1.1.1.3  christos 
   9391      1.1    jruoho                 Store (0x20, BYTE)
   9392      1.1    jruoho                 EVNT ()
   9393      1.1    jruoho                 Store (0x21, BYTE)
   9394      1.1    jruoho                 EVNT ()
   9395      1.1    jruoho                 Store (0x22, BYTE)
   9396      1.1    jruoho                 EVNT ()
   9397      1.1    jruoho                 Store (0x23, BYTE)
   9398      1.1    jruoho                 EVNT ()
   9399      1.1    jruoho 
   9400  1.1.1.3  christos                 NTFY ()
   9401      1.1    jruoho                 Return (0)  //  pass
   9402      1.1    jruoho             }   //  End Method TEST
   9403      1.1    jruoho         }   //  Device SMIS
   9404      1.1    jruoho 
   9405      1.1    jruoho         Device(CNDT)
   9406      1.1    jruoho         {
   9407      1.1    jruoho             Method(TEST)
   9408      1.1    jruoho             {
   9409      1.1    jruoho                 If (ECOK)
   9410      1.1    jruoho                 {
   9411      1.1    jruoho                     return("Broken")
   9412      1.1    jruoho                 }
   9413      1.1    jruoho                 Else
   9414      1.1    jruoho                 {
   9415      1.1    jruoho                     return("Works")
   9416      1.1    jruoho                 }
   9417      1.1    jruoho             }
   9418      1.1    jruoho 
   9419      1.1    jruoho             Method(ECOK)
   9420      1.1    jruoho             {
   9421      1.1    jruoho                 Return(0x0)
   9422      1.1    jruoho             }
   9423      1.1    jruoho         }
   9424      1.1    jruoho 
   9425      1.1    jruoho     }   //  _SB system bus
   9426      1.1    jruoho 
   9427      1.1    jruoho 
   9428      1.1    jruoho /* Test a very big buffer */
   9429      1.1    jruoho 
   9430      1.1    jruoho     Name(WQAB, Buffer(6756)
   9431      1.1    jruoho     {
   9432      1.1    jruoho         0x46,0x4F,0x4D,0x42,0x01,0x00,0x00,0x00,
   9433      1.1    jruoho         0x54,0x1A,0x00,0x00,0xBA,0xAD,0x00,0x00,
   9434      1.1    jruoho         0x44,0x53,0x00,0x01,0x1A,0x7D,0xDA,0x54,
   9435      1.1    jruoho         0x98,0xBD,0x92,0x00,0x01,0x06,0x18,0x42,
   9436      1.1    jruoho         0x10,0x47,0x10,0x92,0x46,0x62,0x02,0x89,
   9437      1.1    jruoho         0x80,0x90,0x18,0x18,0x14,0x81,0x85,0x00,
   9438      1.1    jruoho         0x49,0x02,0x88,0xC4,0x41,0xE1,0x20,0xD4,
   9439      1.1    jruoho         0x9F,0x40,0x7E,0x05,0x20,0x74,0x28,0x40,
   9440      1.1    jruoho         0xA6,0x00,0x83,0x02,0x9C,0x22,0x88,0xA0,
   9441      1.1    jruoho         0x57,0x01,0x36,0x05,0x98,0x14,0x60,0x51,
   9442      1.1    jruoho         0x80,0x76,0x01,0x96,0x05,0xE8,0x16,0x20,
   9443      1.1    jruoho         0x1D,0x96,0x88,0x04,0x47,0x89,0x01,0x47,
   9444      1.1    jruoho         0xE9,0xC4,0x16,0x6E,0xD8,0xE0,0x85,0xA2,
   9445      1.1    jruoho         0x68,0x06,0x51,0x12,0x94,0x8B,0x20,0x5D,
   9446      1.1    jruoho         0x10,0x52,0x2E,0xC0,0x37,0x82,0x06,0x10,
   9447      1.1    jruoho         0xA5,0x77,0x01,0xB6,0x05,0x98,0x86,0x27,
   9448      1.1    jruoho         0xD2,0x20,0xE4,0x60,0x08,0x54,0xCE,0x80,
   9449      1.1    jruoho         0x20,0x69,0x44,0x21,0x1E,0xA7,0x44,0x08,
   9450      1.1    jruoho         0x0A,0x84,0x90,0xD4,0xF1,0xA0,0xA0,0x71,
   9451      1.1    jruoho         0x88,0xAD,0xCE,0x46,0x93,0xA9,0x74,0x7E,
   9452      1.1    jruoho         0x48,0x82,0x70,0xC6,0x2A,0x7E,0x3A,0x9A,
   9453      1.1    jruoho         0xD0,0xD9,0x9C,0x60,0xE7,0x18,0x72,0x3C,
   9454      1.1    jruoho         0x48,0xF4,0x20,0xB8,0x00,0x0F,0x1C,0x2C,
   9455      1.1    jruoho         0x34,0x84,0x22,0x6B,0x80,0xC1,0x8C,0xDD,
   9456      1.1    jruoho         0x63,0xB1,0x0B,0x4E,0x0A,0xEC,0x61,0xB3,
   9457      1.1    jruoho         0x01,0x19,0xA2,0x24,0x38,0xD4,0x11,0xC0,
   9458      1.1    jruoho         0x12,0x05,0x98,0x1F,0x87,0x0C,0x0F,0x95,
   9459      1.1    jruoho         0x8C,0x25,0x24,0x1B,0xAB,0x87,0xC2,0xA5,
   9460      1.1    jruoho         0x40,0x68,0x6C,0x27,0xED,0x19,0x45,0x2C,
   9461      1.1    jruoho         0x79,0x4A,0x82,0x49,0xE0,0x51,0x44,0x36,
   9462      1.1    jruoho         0x1A,0x27,0x28,0x1B,0x1A,0x25,0x03,0x42,
   9463      1.1    jruoho         0x9E,0x05,0x58,0x07,0x26,0x04,0x76,0x2F,
   9464      1.1    jruoho         0xC0,0x9A,0x00,0x73,0xB3,0x90,0xB1,0xB9,
   9465      1.1    jruoho         0xE8,0xFF,0x0F,0x71,0xB0,0x31,0xDA,0x9A,
   9466      1.1    jruoho         0xAE,0x90,0xC2,0xC4,0x88,0x12,0x2C,0x5E,
   9467      1.1    jruoho         0xC5,0xC3,0x10,0xCA,0x93,0x42,0xA8,0x48,
   9468      1.1    jruoho         0x95,0xA1,0x68,0xB4,0x51,0x2A,0x14,0xE0,
   9469      1.1    jruoho         0x4C,0x80,0x30,0x5C,0x1D,0x03,0x82,0x46,
   9470      1.1    jruoho         0x88,0x15,0x29,0x56,0xFB,0x83,0x20,0xF1,
   9471      1.1    jruoho         0x2D,0x40,0x54,0x01,0xA2,0x48,0xA3,0x41,
   9472      1.1    jruoho         0x9D,0x03,0x3C,0x5C,0x0F,0xF5,0xF0,0x3D,
   9473      1.1    jruoho         0xF6,0x93,0x0C,0x72,0x90,0x67,0xF1,0xA8,
   9474      1.1    jruoho         0x70,0x9C,0x06,0x49,0xE0,0x0B,0x80,0x4F,
   9475      1.1    jruoho         0x08,0x1E,0x38,0xDE,0x35,0xA0,0x66,0x7C,
   9476      1.1    jruoho         0xBC,0x4C,0x10,0x1C,0x6A,0x88,0x1E,0x68,
   9477      1.1    jruoho         0xB8,0x13,0x38,0x44,0x06,0xE8,0x49,0x3D,
   9478      1.1    jruoho         0x52,0x60,0x07,0x77,0x32,0xEF,0x01,0xAF,
   9479      1.1    jruoho         0x0A,0xCD,0x5E,0x12,0x08,0xC1,0xF1,0xF8,
   9480      1.1    jruoho         0x7E,0xC0,0x26,0x9C,0xC0,0xF2,0x07,0x81,
   9481      1.1    jruoho         0x1A,0x99,0xA1,0x3D,0xCA,0xD3,0x8A,0x19,
   9482      1.1    jruoho         0xF2,0x31,0xC1,0x04,0x16,0x0B,0x21,0x05,
   9483      1.1    jruoho         0x10,0x1A,0x0F,0xF8,0x6F,0x00,0x8F,0x17,
   9484      1.1    jruoho         0xBE,0x12,0xC4,0xF6,0x80,0x12,0x0C,0x0B,
   9485      1.1    jruoho         0x21,0x23,0xAB,0xF0,0x78,0xE8,0x28,0x7C,
   9486      1.1    jruoho         0x95,0x38,0x9C,0xD3,0x8A,0x67,0x82,0xE1,
   9487      1.1    jruoho         0x20,0xF4,0x05,0x90,0x00,0x51,0xE7,0x0C,
   9488      1.1    jruoho         0xD4,0x61,0xC1,0xE7,0x04,0x76,0x33,0x38,
   9489      1.1    jruoho         0x83,0x47,0x00,0x8F,0xE4,0x84,0xFC,0x2B,
   9490      1.1    jruoho         0xF1,0xC0,0xE0,0x03,0xE2,0xEF,0x1F,0xA7,
   9491      1.1    jruoho         0xEC,0x11,0x9C,0xA9,0x01,0x7D,0x1C,0xF0,
   9492      1.1    jruoho         0xFF,0x7F,0x28,0x7C,0x88,0x1E,0xDF,0x29,
   9493      1.1    jruoho         0x1F,0xAF,0x4F,0x17,0x96,0x35,0x4E,0xE8,
   9494      1.1    jruoho         0x77,0x08,0x9F,0x38,0x7C,0x64,0x71,0x44,
   9495      1.1    jruoho         0x08,0x39,0x39,0x05,0xA0,0x81,0x4F,0xF7,
   9496      1.1    jruoho         0xEC,0x22,0x9C,0xAE,0x27,0xE5,0x40,0xC3,
   9497      1.1    jruoho         0xA0,0xE3,0x04,0xC7,0x79,0x00,0x1C,0xE3,
   9498      1.1    jruoho         0x84,0x7F,0x2E,0x80,0x3F,0x40,0x7E,0xCA,
   9499      1.1    jruoho         0x78,0xC5,0x48,0xE0,0x98,0x23,0x44,0x9F,
   9500      1.1    jruoho         0x6B,0x3C,0x42,0x2C,0xFC,0x53,0x45,0xE1,
   9501      1.1    jruoho         0x03,0x21,0x63,0x04,0x17,0xA0,0xC7,0x08,
   9502      1.1    jruoho         0x7C,0x03,0x8E,0x11,0x7D,0x94,0xE0,0xEA,
   9503      1.1    jruoho         0x0F,0x1A,0x74,0x80,0xB8,0xFF,0xFF,0x00,
   9504      1.1    jruoho         0xE1,0x83,0x7A,0x80,0xC0,0x37,0xFA,0xD1,
   9505      1.1    jruoho         0x03,0x3D,0x2E,0x8B,0x3E,0x0F,0xC8,0xF8,
   9506      1.1    jruoho         0x89,0x46,0xF3,0xE2,0xA7,0x03,0x7E,0xF8,
   9507      1.1    jruoho         0x00,0x0F,0xA8,0x87,0x84,0x03,0xC5,0x4C,
   9508      1.1    jruoho         0x9B,0x83,0x3E,0xBB,0x1C,0x3A,0x76,0xB8,
   9509      1.1    jruoho         0xE0,0x3F,0x81,0x80,0x4B,0xDE,0x21,0x0C,
   9510      1.1    jruoho         0x14,0x23,0xC6,0x9F,0x83,0x7C,0x0A,0x03,
   9511      1.1    jruoho         0xFF,0xFF,0xFF,0x14,0x06,0xFE,0xE1,0xF0,
   9512      1.1    jruoho         0x20,0x4F,0x07,0x9F,0xB6,0xA8,0x74,0x18,
   9513      1.1    jruoho         0xD4,0x81,0x0B,0xB0,0x32,0x89,0x08,0xCF,
   9514      1.1    jruoho         0x12,0xB5,0x41,0xE8,0xD4,0xF0,0x36,0xF1,
   9515      1.1    jruoho         0xB6,0xE5,0x5B,0x40,0x9C,0xD3,0xEC,0xED,
   9516      1.1    jruoho         0xC0,0x45,0x30,0x22,0xD4,0x0C,0x45,0x4E,
   9517      1.1    jruoho         0x5A,0x11,0x63,0x44,0x79,0xDC,0x32,0xCA,
   9518      1.1    jruoho         0xDB,0xD6,0x0B,0x40,0xBC,0x13,0x7B,0xDE,
   9519      1.1    jruoho         0x32,0x46,0xF0,0xC8,0x0F,0x5C,0x2C,0xC6,
   9520      1.1    jruoho         0xEA,0xF5,0x5F,0xF3,0x81,0x0B,0x70,0xF6,
   9521      1.1    jruoho         0xFF,0x3F,0x70,0x01,0x1C,0x0A,0x7A,0x18,
   9522      1.1    jruoho         0x42,0x0F,0xC3,0x53,0x39,0x97,0x87,0xC8,
   9523      1.1    jruoho         0x53,0x89,0x18,0x35,0x4C,0xD4,0x67,0x28,
   9524      1.1    jruoho         0xDF,0x2D,0x7C,0x20,0x02,0xDF,0x99,0x0B,
   9525      1.1    jruoho         0xF8,0xFD,0xFF,0x0F,0x44,0x70,0x8E,0x29,
   9526      1.1    jruoho         0xB8,0x33,0x0D,0x78,0x7C,0xCE,0x40,0x20,
   9527      1.1    jruoho         0xA7,0xE2,0x43,0x0D,0x60,0x41,0xF4,0x13,
   9528      1.1    jruoho         0xC2,0x27,0x1A,0x2A,0x13,0x06,0x75,0xA8,
   9529      1.1    jruoho         0x01,0xAC,0x5C,0x61,0x9E,0x46,0xCF,0xF9,
   9530      1.1    jruoho         0x59,0xC6,0xA7,0x1A,0x1F,0x4A,0x8D,0x63,
   9531      1.1    jruoho         0x88,0x97,0x99,0x87,0x1A,0x1F,0x0B,0x5E,
   9532      1.1    jruoho         0x49,0x7D,0xA8,0x31,0x54,0x9C,0x87,0x1A,
   9533      1.1    jruoho         0x0F,0x37,0x50,0xD4,0x37,0x9B,0x67,0x1B,
   9534      1.1    jruoho         0xA3,0xC7,0xF7,0x0D,0xD5,0x10,0x0F,0x35,
   9535      1.1    jruoho         0x4C,0xF2,0x4A,0x35,0x16,0x1F,0x6A,0xC0,
   9536      1.1    jruoho         0xF1,0xFF,0x3F,0xD4,0x00,0xFC,0xFF,0xFF,
   9537      1.1    jruoho         0x1F,0x6A,0x00,0x47,0x47,0x03,0x38,0x47,
   9538      1.1    jruoho         0x46,0xDC,0xD1,0x00,0x5C,0x87,0x52,0xE0,
   9539      1.1    jruoho         0x70,0x34,0x00,0x1E,0x47,0x21,0x30,0x5F,
   9540      1.1    jruoho         0x68,0x7C,0x14,0x02,0x16,0xFF,0xFF,0xA3,
   9541      1.1    jruoho         0x10,0xF8,0x65,0x9F,0x83,0x50,0x42,0x8F,
   9542      1.1    jruoho         0x42,0x80,0xA0,0xDB,0xCF,0x53,0xC4,0xB3,
   9543      1.1    jruoho         0x8F,0x2F,0x3F,0x0F,0x04,0x11,0x5E,0xF3,
   9544      1.1    jruoho         0x7D,0x0A,0xF2,0x21,0xDF,0x47,0x21,0x06,
   9545      1.1    jruoho         0x63,0x28,0x5F,0x83,0x7C,0x14,0x62,0x50,
   9546      1.1    jruoho         0xAF,0x41,0xBE,0xEF,0x1B,0xE4,0xF1,0x22,
   9547      1.1    jruoho         0x48,0xEC,0x67,0x02,0x1F,0x85,0x98,0xE8,
   9548      1.1    jruoho         0xA3,0x10,0xA0,0xF0,0xFF,0x7F,0x14,0x02,
   9549      1.1    jruoho         0xF8,0xFF,0xFF,0x3F,0x0A,0x01,0xCE,0x02,
   9550      1.1    jruoho         0x1C,0x0D,0x40,0x37,0xAD,0x47,0x21,0xF0,
   9551      1.1    jruoho         0xDE,0x59,0x4E,0xFB,0x04,0x7C,0x16,0x02,
   9552      1.1    jruoho         0xCC,0xFE,0xFF,0xCF,0x42,0xC0,0xEC,0x28,
   9553      1.1    jruoho         0x74,0x14,0x67,0xF9,0x2A,0xF4,0x04,0xF0,
   9554      1.1    jruoho         0x02,0x10,0x23,0xCC,0x3B,0xD0,0x4B,0x26,
   9555      1.1    jruoho         0xBB,0x8B,0x1B,0xE7,0xC9,0xE5,0x2C,0x9E,
   9556      1.1    jruoho         0xC4,0x7D,0x09,0xF2,0x81,0xE2,0x59,0xC8,
   9557      1.1    jruoho         0x50,0xA7,0x1B,0xF4,0x8D,0xDC,0x03,0x8B,
   9558      1.1    jruoho         0x19,0x3F,0xC4,0xF3,0x90,0x21,0x9E,0x85,
   9559      1.1    jruoho         0x00,0x76,0xFD,0xFF,0xCF,0x42,0x00,0xFF,
   9560      1.1    jruoho         0xFF,0xFF,0x47,0x03,0xF8,0x2F,0x00,0x9F,
   9561      1.1    jruoho         0x85,0x80,0xE7,0x09,0xE0,0x41,0xDB,0x67,
   9562      1.1    jruoho         0x21,0x80,0x33,0x87,0xCB,0xF3,0x7F,0x05,
   9563      1.1    jruoho         0x3A,0x96,0xF7,0x08,0xCF,0xFA,0x24,0x5F,
   9564      1.1    jruoho         0x2F,0x3D,0xD3,0x87,0x82,0x67,0x21,0x86,
   9565      1.1    jruoho         0x75,0x18,0x3E,0x0B,0x31,0x88,0x17,0x4D,
   9566      1.1    jruoho         0x43,0xBC,0x70,0xFA,0x30,0xE0,0xFF,0x3F,
   9567      1.1    jruoho         0x5E,0xE0,0x57,0x4E,0x03,0x05,0x09,0xF4,
   9568      1.1    jruoho         0x2C,0x04,0x30,0xFE,0xFF,0x7F,0x16,0x02,
   9569      1.1    jruoho         0xC8,0xB8,0x46,0x9D,0x85,0x80,0xE5,0x6D,
   9570      1.1    jruoho         0xE5,0x19,0xDB,0xA7,0x95,0x04,0xFF,0xFF,
   9571      1.1    jruoho         0x67,0x21,0xC0,0x41,0x2E,0x23,0x07,0x21,
   9572      1.1    jruoho         0x4C,0xC4,0x87,0x83,0x8F,0x99,0x80,0x9E,
   9573      1.1    jruoho         0x29,0xBE,0xB8,0x1B,0xE3,0x09,0xE0,0x45,
   9574      1.1    jruoho         0xE2,0x31,0x93,0x1D,0x35,0x0D,0xF3,0x2C,
   9575      1.1    jruoho         0x64,0xBC,0xB3,0x78,0x0D,0x78,0x82,0xF7,
   9576      1.1    jruoho         0xE4,0x9F,0x85,0x18,0xD8,0x61,0x05,0x7B,
   9577      1.1    jruoho         0x14,0x32,0xA8,0xC1,0x63,0x87,0x08,0x13,
   9578      1.1    jruoho         0xE8,0x59,0x88,0xC5,0x7D,0xAE,0xE8,0x3C,
   9579      1.1    jruoho         0xE1,0xB3,0x10,0xF0,0xFE,0xFF,0x9F,0x25,
   9580      1.1    jruoho         0xE0,0x5E,0x0D,0x9E,0x85,0x00,0x13,0x87,
   9581      1.1    jruoho         0x0D,0x9F,0x35,0xC0,0x33,0x7C,0x8F,0xEA,
   9582      1.1    jruoho         0x1C,0x1E,0x8F,0x81,0x7F,0x56,0x1D,0xE7,
   9583      1.1    jruoho         0x04,0x96,0x7B,0xD1,0xB2,0x71,0xA0,0xA1,
   9584      1.1    jruoho         0x23,0xB2,0x3A,0x20,0x8D,0x0D,0x73,0x29,
   9585      1.1    jruoho         0x89,0x7C,0x72,0x6C,0xD4,0x56,0x04,0xA7,
   9586      1.1    jruoho         0x33,0x93,0x4F,0x00,0xD6,0x42,0x21,0x05,
   9587      1.1    jruoho         0x34,0x1A,0x8B,0xE1,0x9D,0xF9,0xE8,0x44,
   9588      1.1    jruoho         0x41,0x0C,0xE8,0xE3,0x90,0x6D,0x1C,0x0A,
   9589      1.1    jruoho         0x50,0x7B,0xD1,0x14,0xC8,0x39,0x07,0xA3,
   9590      1.1    jruoho         0x7F,0x76,0x74,0x36,0xBE,0x13,0x70,0x0D,
   9591      1.1    jruoho         0x10,0x3A,0x25,0x18,0xDA,0x6A,0x04,0xFC,
   9592      1.1    jruoho         0xFF,0x67,0x89,0x01,0x33,0xFE,0x53,0x8C,
   9593      1.1    jruoho         0x09,0x7C,0x8E,0xC1,0x1F,0x0C,0xF0,0x03,
   9594      1.1    jruoho         0x7F,0x31,0xA8,0xFA,0x5E,0xA0,0xFB,0x82,
   9595      1.1    jruoho         0xD5,0xDD,0x64,0x20,0xCC,0xC8,0x04,0xF5,
   9596      1.1    jruoho         0x9D,0x0E,0x40,0x01,0xE4,0x0B,0x81,0xCF,
   9597      1.1    jruoho         0x51,0x0F,0x05,0x6C,0x22,0x21,0xC2,0x44,
   9598      1.1    jruoho         0x33,0x3A,0x62,0xC2,0xA8,0xE8,0x13,0xA6,
   9599      1.1    jruoho         0x20,0x9E,0xB0,0x63,0x4D,0x18,0x3D,0x13,
   9600      1.1    jruoho         0x5F,0x74,0xD8,0x88,0x31,0x21,0xAE,0x1E,
   9601      1.1    jruoho         0xD0,0x26,0x18,0xD4,0x97,0x22,0x58,0x43,
   9602      1.1    jruoho         0xE6,0x63,0xF1,0x05,0x02,0x37,0x65,0x30,
   9603      1.1    jruoho         0xCE,0x89,0x5D,0x13,0x7C,0xD9,0xC1,0xCD,
   9604      1.1    jruoho         0x19,0x8C,0xF0,0x98,0xBB,0x18,0xBF,0x3A,
   9605      1.1    jruoho         0x79,0x74,0xFC,0xA0,0xE0,0x1B,0x0E,0xC3,
   9606      1.1    jruoho         0x7E,0x32,0xF3,0x8C,0xDE,0xCB,0x7C,0x8D,
   9607      1.1    jruoho         0xC3,0xC0,0x7A,0xBC,0x1C,0xD6,0x68,0x61,
   9608      1.1    jruoho         0x0F,0xED,0x3D,0xC4,0xFF,0xFF,0x43,0x8C,
   9609      1.1    jruoho         0xCF,0x13,0xC6,0x08,0xEB,0xDB,0x0B,0x38,
   9610      1.1    jruoho         0xEE,0x59,0xF0,0xEF,0x1A,0xE0,0xB9,0x84,
   9611      1.1    jruoho         0xF8,0xAE,0x01,0x30,0xF0,0xFF,0x7F,0xD7,
   9612      1.1    jruoho         0x00,0x4E,0xD7,0x04,0xDF,0x35,0x80,0xF7,
   9613      1.1    jruoho         0xD0,0x7D,0xD7,0x00,0xAE,0xD9,0xEF,0x1A,
   9614      1.1    jruoho         0xA8,0x63,0x80,0x15,0xDE,0x35,0xA0,0x5D,
   9615      1.1    jruoho         0xD9,0xDE,0xD7,0x9E,0xB0,0xAC,0xE9,0xB2,
   9616      1.1    jruoho         0x81,0x52,0x73,0xD9,0x00,0x14,0xFC,0xFF,
   9617      1.1    jruoho         0x2F,0x1B,0x80,0x01,0x29,0x13,0x46,0x85,
   9618      1.1    jruoho         0x9F,0x30,0x05,0xF1,0x84,0x1D,0xEC,0xB2,
   9619      1.1    jruoho         0x01,0x8A,0x18,0x97,0x0D,0xD0,0x8F,0xED,
   9620      1.1    jruoho         0x65,0x03,0x18,0xDC,0x13,0xF8,0x6D,0x03,
   9621      1.1    jruoho         0x78,0x43,0xFA,0xB6,0x01,0xD6,0xFF,0xFF,
   9622      1.1    jruoho         0x6D,0x03,0xAC,0xF9,0x6F,0x1B,0x28,0x0E,
   9623      1.1    jruoho         0xAB,0xBC,0x6D,0x40,0x3C,0xC9,0x33,0x02,
   9624      1.1    jruoho         0xAB,0xBA,0x6E,0xA0,0xF4,0x5C,0x37,0x00,
   9625      1.1    jruoho         0x12,0x88,0x99,0x30,0x2A,0xFE,0x84,0x29,
   9626      1.1    jruoho         0x88,0x27,0xEC,0x68,0xD7,0x0D,0x50,0x04,
   9627      1.1    jruoho         0xB9,0x6E,0x80,0x7E,0x5E,0x09,0xFE,0xFF,
   9628      1.1    jruoho         0xAF,0x1B,0xC0,0xE0,0xA2,0x80,0xB9,0x6F,
   9629      1.1    jruoho         0x00,0x6F,0x58,0x7E,0xDF,0x00,0x7C,0xDC,
   9630      1.1    jruoho         0xC4,0x31,0xF7,0x0D,0xC0,0xCC,0xFF,0xFF,
   9631      1.1    jruoho         0xBE,0x01,0xB0,0xE7,0xA2,0x80,0xBB,0x6F,
   9632      1.1    jruoho         0x00,0xEF,0x8B,0xB4,0xEF,0x1B,0x60,0xFE,
   9633      1.1    jruoho         0xFF,0xDF,0x37,0xC0,0x28,0x6D,0xFD,0x1E,
   9634      1.1    jruoho         0x1C,0x3D,0x21,0x78,0x7C,0xB8,0xFB,0xA5,
   9635      1.1    jruoho         0xC7,0xE7,0xBB,0x39,0x38,0x06,0x79,0x8C,
   9636      1.1    jruoho         0x87,0x76,0xC0,0xAF,0xEF,0x9E,0x98,0xEF,
   9637      1.1    jruoho         0xE6,0xC0,0xFF,0x4C,0x70,0x3C,0x18,0x68,
   9638      1.1    jruoho         0x1C,0x62,0xAB,0x97,0x06,0x72,0x34,0x38,
   9639      1.1    jruoho         0x3F,0xDC,0x19,0x81,0x61,0x15,0x7F,0xF2,
   9640      1.1    jruoho         0x47,0x38,0xC7,0xD0,0xD9,0xE1,0x20,0xB1,
   9641      1.1    jruoho         0x83,0xE0,0xC1,0x56,0x6D,0x02,0x85,0x86,
   9642      1.1    jruoho         0x50,0x14,0x18,0x14,0x8B,0x0F,0x18,0xF8,
   9643      1.1    jruoho         0x61,0xB3,0xB3,0x00,0x93,0x04,0x87,0x3A,
   9644      1.1    jruoho         0x02,0xF8,0x3E,0xD1,0xFC,0x38,0x74,0x37,
   9645      1.1    jruoho         0x38,0x54,0x8F,0xE5,0xA1,0x80,0x9E,0x01,
   9646      1.1    jruoho         0x71,0xC7,0x0C,0x32,0x69,0xCF,0x28,0xE2,
   9647      1.1    jruoho         0x53,0xC2,0x29,0x85,0x49,0xE0,0xF3,0x03,
   9648      1.1    jruoho         0x43,0xE3,0x04,0xAF,0x0D,0xA1,0xF9,0xFF,
   9649      1.1    jruoho         0xFF,0xA4,0xC0,0x3C,0xDF,0x31,0x04,0x6C,
   9650      1.1    jruoho         0x02,0xBB,0xBF,0x64,0xC8,0xDA,0xC0,0x75,
   9651      1.1    jruoho         0x4B,0x32,0x44,0x6F,0x38,0xB2,0x85,0xA2,
   9652      1.1    jruoho         0xE9,0x44,0x79,0xDF,0x88,0x62,0x67,0x08,
   9653      1.1    jruoho         0xC2,0x88,0x12,0x2C,0xC8,0xA3,0x42,0xAC,
   9654      1.1    jruoho         0x28,0x2F,0x05,0x46,0x88,0x18,0xE2,0x95,
   9655      1.1    jruoho         0x23,0xD0,0x09,0x87,0x0F,0xF2,0xD8,0x14,
   9656      1.1    jruoho         0xA7,0xFD,0x41,0x90,0x58,0x4F,0x02,0x8D,
   9657      1.1    jruoho         0xC5,0x91,0x46,0x83,0x3A,0x07,0x78,0xB8,
   9658      1.1    jruoho         0x3E,0xC4,0x78,0xF8,0x0F,0x21,0x06,0x39,
   9659      1.1    jruoho         0xC8,0x73,0x7B,0x54,0x38,0x4E,0x5F,0x25,
   9660      1.1    jruoho         0x4C,0xF0,0x02,0xE0,0x83,0x0A,0x1C,0xD7,
   9661      1.1    jruoho         0x80,0x9A,0xF1,0x33,0x06,0x58,0x8E,0xE3,
   9662      1.1    jruoho         0x3E,0xA9,0xC0,0x1D,0x8F,0xEF,0x07,0x6C,
   9663      1.1    jruoho         0xC2,0x09,0x2C,0x7F,0x10,0xA8,0xE3,0x0C,
   9664      1.1    jruoho         0x9F,0xE7,0x0B,0x8B,0x21,0x1F,0x13,0x4C,
   9665      1.1    jruoho         0x60,0xB1,0x27,0x1B,0x3A,0x1E,0xF0,0xDF,
   9666      1.1    jruoho         0x63,0x1E,0x2F,0x7C,0x32,0xF1,0x7C,0x4D,
   9667      1.1    jruoho         0x30,0x22,0x84,0x9C,0x8C,0x07,0x7D,0x87,
   9668      1.1    jruoho         0xC0,0x5C,0x6F,0xD8,0xB9,0x85,0x8B,0x3A,
   9669      1.1    jruoho         0x68,0xA0,0x4E,0x0B,0x3E,0x28,0xB0,0x9B,
   9670      1.1    jruoho         0x11,0xE6,0xB8,0xCE,0xCF,0x2A,0x60,0xF8,
   9671      1.1    jruoho         0xFF,0x9F,0x55,0x60,0x8F,0x10,0xFE,0xED,
   9672      1.1    jruoho         0xC1,0xF3,0xF2,0x95,0xE1,0xD5,0x21,0x81,
   9673      1.1    jruoho         0x43,0x8E,0x10,0x3D,0x2E,0x8F,0x10,0x73,
   9674      1.1    jruoho         0x3E,0xC2,0x0C,0x11,0x5C,0x67,0x01,0x70,
   9675      1.1    jruoho         0x0C,0x11,0xF8,0x1C,0x70,0xC0,0x71,0x69,
   9676      1.1    jruoho         0xE2,0x03,0xF5,0x01,0x07,0x70,0x70,0x4D,
   9677      1.1    jruoho         0xC3,0x1D,0x70,0xC0,0x71,0x16,0x60,0xFF,
   9678      1.1    jruoho         0xFF,0xC3,0x0D,0x2C,0x49,0x26,0x0E,0x23,
   9679      1.1    jruoho         0x18,0x11,0x30,0x28,0x02,0x02,0xA4,0xB3,
   9680      1.1    jruoho         0x80,0x0F,0x29,0x00,0x1F,0xAE,0x0C,0x0F,
   9681      1.1    jruoho         0x29,0xD8,0x93,0x86,0x07,0x8E,0x1B,0x85,
   9682      1.1    jruoho         0x07,0x8D,0x0B,0x30,0x68,0x7A,0xE2,0x80,
   9683      1.1    jruoho         0x7F,0x4C,0xF0,0x19,0x05,0x1C,0xE3,0x06,
   9684      1.1    jruoho         0xDF,0x2A,0x0C,0xFC,0xFF,0x3F,0x30,0xCC,
   9685      1.1    jruoho         0xE1,0xC2,0x63,0x39,0x8A,0xA0,0x07,0x1E,
   9686      1.1    jruoho         0xD4,0xF7,0x8C,0x33,0xF7,0x24,0x8F,0xD1,
   9687      1.1    jruoho         0x51,0x0F,0x27,0xF4,0xE4,0x85,0x3B,0x57,
   9688      1.1    jruoho         0xF9,0x0A,0x71,0x14,0x18,0xB8,0x77,0x29,
   9689      1.1    jruoho         0x8F,0xCF,0x17,0x2B,0xC3,0x63,0x46,0xFB,
   9690      1.1    jruoho         0x1E,0x72,0xD6,0x11,0x02,0xE2,0x2F,0x75,
   9691      1.1    jruoho         0x6C,0xC0,0x60,0x39,0x18,0x00,0x87,0x01,
   9692      1.1    jruoho         0xE3,0x13,0x0D,0x58,0x67,0x1B,0x3C,0xF4,
   9693      1.1    jruoho         0x69,0x31,0xC4,0xE3,0x0B,0xFB,0x56,0x61,
   9694      1.1    jruoho         0x82,0xEA,0x41,0x75,0x12,0xF4,0xD0,0xC0,
   9695      1.1    jruoho         0x01,0xE8,0xA1,0xC1,0x3F,0xB9,0x90,0xFB,
   9696      1.1    jruoho         0x2B,0x1D,0x82,0xB5,0xE2,0x69,0xDE,0x47,
   9697      1.1    jruoho         0x1E,0xF3,0xDC,0xA2,0xBC,0x0D,0x3C,0x07,
   9698      1.1    jruoho         0xF0,0xD3,0x82,0x87,0xE3,0x63,0x81,0xC7,
   9699      1.1    jruoho         0xE9,0x4B,0x58,0x82,0xF7,0x1A,0x9F,0x6C,
   9700      1.1    jruoho         0x1E,0x5C,0x58,0xB2,0x21,0xA0,0x06,0xEB,
   9701      1.1    jruoho         0x21,0x60,0xA6,0x9A,0xC0,0x49,0x46,0x80,
   9702      1.1    jruoho         0xCA,0x00,0xA1,0x1B,0xCB,0xE9,0x3E,0x8B,
   9703      1.1    jruoho         0x84,0x38,0xCD,0x47,0x99,0xC7,0x02,0x8F,
   9704      1.1    jruoho         0xF5,0xC1,0xC0,0xFF,0x7F,0xCD,0x23,0xD4,
   9705      1.1    jruoho         0x7D,0xCD,0x33,0x7B,0x3A,0xC0,0xAC,0x22,
   9706      1.1    jruoho         0xDC,0x7B,0xCE,0x1B,0x86,0xD1,0x9E,0x2D,
   9707      1.1    jruoho         0x7C,0xCD,0x78,0xD6,0x34,0x42,0x38,0x76,
   9708      1.1    jruoho         0x83,0xF3,0x48,0x8C,0xF0,0x82,0xC0,0x4E,
   9709      1.1    jruoho         0x0C,0x0F,0x30,0xC6,0x39,0x79,0xC3,0xFA,
   9710      1.1    jruoho         0xC2,0xCB,0x40,0x83,0x19,0xDB,0x97,0x01,
   9711      1.1    jruoho         0x36,0x2A,0xDF,0x88,0xC0,0x97,0xFC,0x62,
   9712      1.1    jruoho         0x00,0x65,0x16,0xBE,0x9E,0xF8,0xA0,0xC4,
   9713      1.1    jruoho         0x2E,0x06,0x2C,0xE5,0xC5,0x00,0x54,0x37,
   9714      1.1    jruoho         0x0C,0x5F,0x0C,0xE0,0x5F,0x89,0x5E,0x0C,
   9715      1.1    jruoho         0xC0,0x70,0x71,0xF2,0x3D,0xC0,0x1E,0xEE,
   9716      1.1    jruoho         0xA3,0x74,0x9C,0xBE,0xFD,0xBD,0x19,0xF8,
   9717      1.1    jruoho         0x6C,0xC0,0x60,0x3C,0xC3,0x30,0xC6,0x08,
   9718      1.1    jruoho         0xE3,0x51,0x86,0x31,0xC1,0xDC,0xB7,0x03,
   9719      1.1    jruoho         0xE8,0x39,0x87,0x81,0x4A,0x78,0x3B,0x80,
   9720      1.1    jruoho         0x72,0x0E,0xE8,0xF2,0x68,0x42,0x4F,0x01,
   9721      1.1    jruoho         0x4F,0x07,0x3E,0x29,0x1A,0xA2,0xAF,0xB1,
   9722      1.1    jruoho         0x0A,0x26,0x50,0xC4,0x07,0x0D,0x3E,0xB5,
   9723      1.1    jruoho         0x28,0x3E,0x15,0x78,0x2D,0xCF,0x4E,0xE1,
   9724      1.1    jruoho         0xE2,0x9C,0x89,0xA7,0x6A,0x38,0x03,0xBD,
   9725      1.1    jruoho         0xE6,0x86,0x63,0xFF,0x7F,0x38,0xFC,0xA9,
   9726      1.1    jruoho         0xE0,0x35,0x80,0x1D,0x24,0x3D,0x2D,0x23,
   9727      1.1    jruoho         0xC2,0x38,0xA4,0x3C,0x32,0xF8,0xB6,0x18,
   9728      1.1    jruoho         0xC7,0x90,0x0F,0x91,0xBE,0x13,0x18,0xF2,
   9729      1.1    jruoho         0x21,0xEF,0x79,0xC7,0xC0,0xAF,0x08,0x71,
   9730      1.1    jruoho         0x9E,0xB2,0x7C,0x67,0xF0,0x65,0x01,0x7C,
   9731      1.1    jruoho         0x91,0x2E,0x0B,0x68,0x68,0x9F,0x64,0x7C,
   9732      1.1    jruoho         0x41,0x30,0xEC,0x89,0xB3,0x00,0x77,0x05,
   9733      1.1    jruoho         0x50,0x81,0xFA,0xAE,0x00,0xFF,0x42,0xF0,
   9734      1.1    jruoho         0xAE,0x00,0x86,0x79,0xF9,0x56,0xC0,0x35,
   9735      1.1    jruoho         0x1D,0x4A,0xD0,0x67,0x12,0x5F,0x17,0x70,
   9736      1.1    jruoho         0x53,0x64,0xA9,0x8E,0x0A,0xD0,0x53,0x4C,
   9737      1.1    jruoho         0x02,0x75,0x47,0xF7,0x51,0x01,0xC6,0x4D,
   9738      1.1    jruoho         0xD9,0x07,0x54,0x76,0x5A,0x60,0x67,0x21,
   9739      1.1    jruoho         0x76,0x1D,0xC1,0x5D,0x49,0x18,0xCA,0xB3,
   9740      1.1    jruoho         0x81,0x2F,0x59,0xFC,0x70,0x00,0x03,0xDC,
   9741      1.1    jruoho         0xB3,0x38,0xC4,0x08,0xB1,0xD9,0x81,0xEB,
   9742      1.1    jruoho         0x75,0xD2,0x70,0x2F,0x44,0xEC,0xFF,0x7F,
   9743      1.1    jruoho         0x32,0x00,0xE3,0x51,0x1B,0x1C,0x27,0x9D,
   9744      1.1    jruoho         0xF0,0x91,0x9E,0x59,0xF8,0x49,0x19,0x30,
   9745      1.1    jruoho         0x71,0xF2,0x03,0xE3,0xC9,0x1A,0xC6,0x00,
   9746      1.1    jruoho         0xB8,0xBC,0x57,0x95,0x81,0xFC,0x43,0x90,
   9747      1.1    jruoho         0x20,0x18,0xD4,0x29,0x19,0x38,0x1C,0xC5,
   9748      1.1    jruoho         0x70,0xA7,0x64,0x78,0x50,0xF8,0xC3,0x00,
   9749      1.1    jruoho         0xE6,0x46,0xE8,0x7B,0x82,0xA1,0xDE,0x93,
   9750      1.1    jruoho         0x0E,0xE3,0x91,0xD0,0x04,0x3E,0x2D,0xC3,
   9751      1.1    jruoho         0xFA,0xFF,0x9F,0x96,0x81,0xD5,0xB1,0xDD,
   9752      1.1    jruoho         0x43,0xF6,0x59,0x01,0x77,0x76,0x80,0x3B,
   9753      1.1    jruoho         0x3D,0x7E,0x7A,0x00,0x9C,0x00,0x3D,0x3D,
   9754      1.1    jruoho         0x80,0xED,0xBC,0x01,0xF7,0x40,0x80,0x38,
   9755      1.1    jruoho         0xFE,0xA3,0x82,0x5F,0x59,0x28,0x1C,0x3F,
   9756      1.1    jruoho         0xB6,0xF3,0x63,0x09,0xEE,0x70,0xE0,0x23,
   9757      1.1    jruoho         0x83,0x0F,0x90,0xB8,0xA1,0xF8,0x50,0x81,
   9758      1.1    jruoho         0x3C,0x0B,0x80,0x62,0xF4,0x6C,0x04,0xEC,
   9759      1.1    jruoho         0x06,0xF3,0xD2,0x12,0xE5,0xFF,0xFF,0xDE,
   9760      1.1    jruoho         0xC0,0x4E,0x29,0xB8,0x83,0x00,0xF8,0x8E,
   9761      1.1    jruoho         0x01,0xE0,0x1D,0x0C,0x97,0x35,0x66,0x94,
   9762      1.1    jruoho         0x10,0x18,0x8D,0x19,0x77,0x08,0xE1,0x27,
   9763      1.1    jruoho         0x02,0xDC,0x98,0x3D,0x6E,0x8F,0x19,0x77,
   9764      1.1    jruoho         0x9C,0xE5,0xA3,0x7A,0xCA,0x08,0xE5,0x03,
   9765      1.1    jruoho         0x07,0x3B,0x67,0xBC,0x11,0xF0,0xA1,0x03,
   9766      1.1    jruoho         0x8F,0x03,0x0C,0xEE,0x48,0x01,0xC6,0xCB,
   9767      1.1    jruoho         0x01,0x1B,0x3B,0xB8,0x83,0x90,0x53,0x20,
   9768      1.1    jruoho         0x4B,0x87,0xD1,0xD8,0x71,0xB2,0x81,0x74,
   9769      1.1    jruoho         0x8C,0xF1,0x21,0xD7,0x63,0xC7,0x0D,0xD6,
   9770      1.1    jruoho         0x63,0xC7,0x1D,0x5F,0xB0,0xFF,0xFF,0xE3,
   9771      1.1    jruoho         0x0B,0x18,0xC6,0xC0,0xC5,0x0F,0x03,0x7D,
   9772      1.1    jruoho         0xF3,0xF3,0xE8,0x0C,0xEE,0x61,0xFB,0x04,
   9773      1.1    jruoho         0x13,0xE3,0xF9,0x25,0xC4,0x23,0xCC,0x8B,
   9774      1.1    jruoho         0x4B,0x84,0xA3,0x08,0xF2,0xE6,0x12,0xE7,
   9775      1.1    jruoho         0xD5,0x20,0xCC,0x63,0x4B,0x94,0x10,0x11,
   9776      1.1    jruoho         0x0E,0x26,0xCE,0x13,0x8C,0x11,0x0E,0x3C,
   9777      1.1    jruoho         0x8A,0x21,0x22,0x9C,0x40,0x88,0x93,0x3E,
   9778      1.1    jruoho         0xD9,0x20,0xE1,0x63,0x84,0x8D,0xF6,0x04,
   9779      1.1    jruoho         0xC3,0xC7,0xC2,0xCF,0x2B,0x1E,0x3C,0x3F,
   9780      1.1    jruoho         0xAD,0xF9,0x2E,0xE8,0xC9,0x9C,0xE3,0x43,
   9781      1.1    jruoho         0x96,0xA7,0xF6,0x38,0xE9,0xC3,0x2C,0x6E,
   9782      1.1    jruoho         0x50,0x0F,0x8E,0xEC,0xAE,0xE3,0xE3,0x35,
   9783      1.1    jruoho         0xF6,0x14,0xE4,0x21,0xF0,0x13,0x81,0x2F,
   9784      1.1    jruoho         0x88,0x9E,0xAC,0xEF,0x7A,0xEC,0x5E,0x66,
   9785      1.1    jruoho         0x8C,0xEA,0xA7,0x80,0x3A,0xA6,0x9C,0xC1,
   9786      1.1    jruoho         0x2B,0x04,0xBB,0xE7,0xF9,0x90,0xED,0xBB,
   9787      1.1    jruoho         0x24,0x1B,0x05,0xEE,0x90,0xE0,0x33,0x12,
   9788      1.1    jruoho         0x3F,0x55,0x78,0x18,0x1E,0x05,0x8C,0x19,
   9789      1.1    jruoho         0xBC,0x23,0x1C,0x5A,0x88,0x03,0x7E,0xDF,
   9790      1.1    jruoho         0x65,0x43,0x8D,0x71,0x7A,0x3E,0x7F,0xB0,
   9791      1.1    jruoho         0x41,0xC0,0x87,0x3A,0x54,0x0F,0xF3,0xA8,
   9792      1.1    jruoho         0x5E,0x0A,0x19,0xCE,0xD9,0xC1,0x1D,0x04,
   9793      1.1    jruoho         0xF6,0xF8,0xE1,0x41,0xF0,0x9B,0x25,0x1F,
   9794      1.1    jruoho         0x04,0x3B,0xDF,0xBC,0xC1,0x19,0xE4,0xFF,
   9795      1.1    jruoho         0x7F,0x0C,0xB0,0xCF,0x54,0x3E,0x9A,0x20,
   9796      1.1    jruoho         0x8E,0x80,0xE8,0xF3,0x87,0xC7,0xF0,0x26,
   9797      1.1    jruoho         0xC7,0x87,0x83,0x3D,0x7A,0xE0,0x4E,0x22,
   9798      1.1    jruoho         0x70,0x8F,0x5D,0x07,0xED,0x6B,0x9C,0x2F,
   9799      1.1    jruoho         0x5A,0x30,0xEE,0x7B,0xCF,0x22,0xE0,0xC7,
   9800      1.1    jruoho         0x78,0x6C,0x01,0xC7,0xA1,0x04,0xDC,0xC1,
   9801      1.1    jruoho         0x8E,0x6B,0x1C,0x42,0x51,0x60,0x74,0x28,
   9802      1.1    jruoho         0xC1,0xC5,0x00,0x12,0x8C,0x63,0x9C,0xD1,
   9803      1.1    jruoho         0xD0,0x97,0x48,0x1F,0xD2,0xE0,0x0C,0x1A,
   9804      1.1    jruoho         0xF6,0x3C,0x9F,0x50,0xB8,0x3D,0x01,0x8A,
   9805      1.1    jruoho         0x4E,0x28,0x20,0xC3,0x7D,0x06,0xC1,0x9E,
   9806      1.1    jruoho         0x10,0xF8,0x19,0x84,0xFD,0xFF,0x0F,0x8E,
   9807      1.1    jruoho         0x1E,0xF7,0x7B,0xA3,0x4F,0x8D,0x6C,0xEE,
   9808      1.1    jruoho         0x0F,0x01,0x27,0x70,0xEE,0xEC,0xD4,0x8C,
   9809      1.1    jruoho         0x3B,0x33,0x60,0xCF,0x1F,0x1E,0x02,0x3F,
   9810      1.1    jruoho         0x17,0x78,0xF8,0x1E,0x02,0x7E,0xF0,0x0F,
   9811      1.1    jruoho         0xCC,0x06,0x07,0xE3,0x29,0xC2,0xD7,0x0E,
   9812      1.1    jruoho         0x0E,0xCE,0x4F,0x03,0x06,0xE7,0xAF,0x50,
   9813      1.1    jruoho         0x9F,0xE7,0x19,0x38,0xF6,0xD4,0xEB,0x7B,
   9814      1.1    jruoho         0x87,0xE7,0xEB,0x43,0x05,0xFE,0xA6,0xE7,
   9815      1.1    jruoho         0x43,0x05,0x38,0x0E,0x0F,0xFC,0xB0,0xC2,
   9816      1.1    jruoho         0x86,0xF0,0x28,0x80,0x3F,0xB5,0xF8,0xF8,
   9817      1.1    jruoho         0x17,0xE7,0x29,0x82,0xDD,0x46,0xB0,0x87,
   9818      1.1    jruoho         0x0B,0xC0,0x51,0xB4,0xB3,0x18,0x2A,0xCC,
   9819      1.1    jruoho         0x59,0x8C,0xFC,0xFF,0xCF,0x51,0xA8,0xB3,
   9820      1.1    jruoho         0x18,0x3D,0x5C,0x00,0x2E,0x04,0x1F,0x0F,
   9821      1.1    jruoho         0x40,0x73,0x10,0x78,0x5C,0xF0,0x85,0xE0,
   9822      1.1    jruoho         0x48,0x0E,0xE4,0xE9,0x00,0xF0,0x19,0x4A,
   9823      1.1    jruoho         0xC3,0xA1,0x09,0x13,0x03,0x06,0x75,0x3E,
   9824      1.1    jruoho         0xF0,0x09,0xC5,0xC7,0x0E,0x7E,0x36,0xF0,
   9825      1.1    jruoho         0x8D,0xDC,0x43,0xE5,0xA7,0x66,0x5F,0xF2,
   9826      1.1    jruoho         0x11,0xE0,0x02,0x75,0xA0,0x61,0xA0,0x46,
   9827      1.1    jruoho         0xE4,0x23,0xD2,0xFF,0xFF,0xB9,0x0D,0x1B,
   9828      1.1    jruoho         0x60,0x68,0xF4,0x1C,0x0E,0xE3,0x80,0xEB,
   9829      1.1    jruoho         0x73,0x38,0x76,0x40,0x3E,0x87,0xC3,0x3F,
   9830      1.1    jruoho         0x47,0xC3,0x1F,0x1B,0x3B,0xDD,0xF3,0x81,
   9831      1.1    jruoho         0xC1,0xBA,0x7E,0x63,0x06,0x06,0xB6,0x6F,
   9832      1.1    jruoho         0x91,0x07,0x06,0x1C,0x51,0xCF,0xC6,0x57,
   9833      1.1    jruoho         0x08,0x0F,0x0C,0x6C,0x80,0x1E,0x18,0xF0,
   9834      1.1    jruoho         0x89,0x05,0x21,0x27,0x03,0x43,0x9D,0x32,
   9835      1.1    jruoho         0x8C,0x1C,0xF3,0x89,0xC3,0xC3,0xF0,0xA1,
   9836      1.1    jruoho         0x22,0xEA,0x33,0xC0,0x23,0x1E,0x1B,0x1B,
   9837      1.1    jruoho         0xFB,0xFF,0x8F,0x0D,0x2C,0xC7,0x16,0x8F,
   9838      1.1    jruoho         0x0D,0xFC,0x47,0x78,0xFC,0xD8,0xE0,0x8C,
   9839      1.1    jruoho         0xE5,0xD1,0xC4,0x97,0x99,0x23,0x3B,0x8D,
   9840      1.1    jruoho         0x33,0x7B,0x0D,0xF1,0xD1,0xEE,0xF1,0xDB,
   9841      1.1    jruoho         0x63,0x03,0x97,0x85,0xB1,0x01,0xA5,0x90,
   9842      1.1    jruoho         0x63,0x43,0x1F,0x52,0x7C,0x0A,0xB0,0x71,
   9843      1.1    jruoho         0x54,0x32,0x0F,0x1F,0xAF,0x7C,0x62,0x38,
   9844      1.1    jruoho         0xBA,0x20,0x6F,0xE8,0xBE,0x5C,0xF8,0x48,
   9845      1.1    jruoho         0x63,0x30,0x5F,0x5A,0x7C,0x06,0xE5,0x43,
   9846      1.1    jruoho         0x04,0xD7,0x57,0xC5,0x43,0x04,0x3E,0xA1,
   9847      1.1    jruoho         0x86,0x88,0x1E,0xCF,0xFF,0xFF,0x11,0xCC,
   9848      1.1    jruoho         0x43,0x64,0x43,0x03,0xAF,0x87,0xA1,0x01,
   9849      1.1    jruoho         0xA5,0x98,0xC0,0x5E,0x85,0x87,0x46,0x4F,
   9850      1.1    jruoho         0x3F,0x3E,0x04,0x30,0x08,0xDF,0x06,0xD8,
   9851      1.1    jruoho         0x55,0xC0,0x57,0x21,0x83,0x24,0x18,0xE7,
   9852      1.1    jruoho         0x64,0x41,0x07,0x07,0x8E,0x21,0x79,0x70,
   9853      1.1    jruoho         0xF0,0x07,0xE3,0x21,0x70,0x60,0xCF,0xE0,
   9854      1.1    jruoho         0xB9,0xE8,0x31,0xD8,0xA7,0x1D,0x9F,0x4A,
   9855      1.1    jruoho         0xC0,0x77,0xE6,0x04,0xC7,0xE9,0x1D,0x7B,
   9856      1.1    jruoho         0x29,0xF0,0x08,0x1E,0xAD,0x3C,0x02,0x7E,
   9857      1.1    jruoho         0xB4,0x02,0x66,0xFF,0xFF,0xA3,0x15,0x30,
   9858      1.1    jruoho         0x09,0x7A,0xE6,0xA4,0x03,0x77,0x34,0x18,
   9859      1.1    jruoho         0xD4,0xD1,0x0A,0x5C,0x11,0xC0,0x75,0xDC,
   9860      1.1    jruoho         0xF0,0xD1,0x02,0xCE,0x50,0x0F,0xDA,0x07,
   9861      1.1    jruoho         0x65,0xCF,0xDA,0x97,0x21,0x76,0xB4,0x00,
   9862      1.1    jruoho         0x97,0x89,0x43,0x08,0xD0,0x04,0x3E,0x89,
   9863      1.1    jruoho         0x67,0xEF,0x43,0x03,0xB3,0x8A,0xA1,0x01,
   9864      1.1    jruoho         0xA5,0xA3,0x01,0xEE,0x44,0x81,0xFD,0xFF,
   9865      1.1    jruoho         0x9F,0x28,0x60,0xDE,0x30,0x70,0x07,0x0A,
   9866      1.1    jruoho         0xC0,0xCD,0xE9,0xDB,0xE3,0xE2,0xD0,0x38,
   9867      1.1    jruoho         0xC4,0xE7,0xA7,0x73,0xF6,0xD1,0xE8,0x4C,
   9868      1.1    jruoho         0x71,0x67,0x11,0x30,0x9C,0x7D,0x11,0x8F,
   9869      1.1    jruoho         0x18,0x03,0xF9,0x81,0x21,0x59,0x30,0x28,
   9870      1.1    jruoho         0x16,0x0F,0xC5,0x07,0x03,0x0E,0xEC,0x23,
   9871      1.1    jruoho         0x02,0x3B,0x17,0xB0,0x73,0xAD,0xE1,0xF8,
   9872      1.1    jruoho         0x59,0xC0,0xA7,0x84,0xB7,0xA6,0x17,0x7B,
   9873      1.1    jruoho         0x9F,0xD7,0x7D,0xD6,0x08,0xC9,0xCE,0xF4,
   9874      1.1    jruoho         0x3E,0x89,0xE2,0x0E,0xA2,0x70,0x4E,0x9F,
   9875      1.1    jruoho         0xE0,0x22,0xF0,0x65,0xDF,0xA3,0xE0,0xA7,
   9876      1.1    jruoho         0x07,0xCF,0xF1,0x8D,0xC1,0xA7,0x07,0xE6,
   9877      1.1    jruoho         0x7E,0xF8,0x9A,0xF1,0x33,0xC3,0xE3,0x43,
   9878      1.1    jruoho         0x88,0x27,0xE2,0xDA,0xA6,0x20,0x5B,0x18,
   9879      1.1    jruoho         0x42,0x09,0xF4,0xFF,0x8F,0x10,0xE5,0x6D,
   9880      1.1    jruoho         0x20,0xCA,0x29,0x44,0x88,0x12,0xA4,0xB1,
   9881      1.1    jruoho         0xC9,0x0B,0x35,0xCA,0xD9,0x45,0x6E,0x6D,
   9882      1.1    jruoho         0xF6,0x82,0x0B,0x14,0x2A,0x66,0x9C,0x28,
   9883      1.1    jruoho         0xEF,0x10,0xB1,0xDA,0x1F,0x04,0x91,0xF4,
   9884      1.1    jruoho         0x32,0xD0,0x71,0xC9,0x91,0x0E,0x7D,0xE8,
   9885      1.1    jruoho         0x61,0xFB,0x04,0x8C,0x3F,0x48,0xE2,0xAE,
   9886      1.1    jruoho         0x2A,0x3E,0x28,0xF8,0x00,0x80,0x77,0x09,
   9887      1.1    jruoho         0xA8,0x5B,0x9D,0xC7,0xED,0xF3,0x06,0xF8,
   9888      1.1    jruoho         0xAF,0x17,0x58,0x82,0xF2,0x07,0x81,0x1A,
   9889      1.1    jruoho         0x99,0xA1,0x3D,0xCC,0xB7,0x19,0x43,0xBE,
   9890      1.1    jruoho         0x07,0x1C,0x16,0x3B,0x27,0xF9,0xF0,0x08,
   9891      1.1    jruoho         0x1C,0x8E,0x01,0x4F,0x1B,0xBE,0x51,0x7B,
   9892      1.1    jruoho         0xBE,0x3E,0x62,0x01,0x8E,0xFE,0xFF,0x47,
   9893      1.1    jruoho         0x2C,0x30,0x9D,0xDF,0x7D,0x82,0x01,0xC7,
   9894      1.1    jruoho         0xCD,0x82,0x9F,0x61,0x00,0x67,0x40,0xCF,
   9895      1.1    jruoho         0x30,0x60,0x1F,0x2A,0x6E,0x08,0x5C,0xEE,
   9896      1.1    jruoho         0x8A,0x28,0x90,0x05,0xC2,0xA0,0x0E,0xFD,
   9897      1.1    jruoho         0xE4,0x08,0x42,0xCF,0x9C,0x70,0x86,0x72,
   9898      1.1    jruoho         0xB2,0xBD,0x5F,0x1D,0xC8,0x2D,0xC2,0x43,
   9899      1.1    jruoho         0x3D,0x8B,0xC7,0x04,0x76,0xDA,0x02,0x36,
   9900      1.1    jruoho         0xFF,0xFF,0xE3,0x29,0xB0,0x98,0xF7,0xD3,
   9901      1.1    jruoho         0x69,0x84,0x63,0x03,0xFB,0x71,0x0B,0x38,
   9902      1.1    jruoho         0x1D,0xCC,0xE0,0xDC,0x7F,0xD8,0x2D,0x1A,
   9903      1.1    jruoho         0x37,0x34,0xB0,0x0D,0xCC,0x43,0x03,0x3E,
   9904      1.1    jruoho         0x27,0x47,0x30,0x9E,0x98,0xF8,0x55,0xE2,
   9905      1.1    jruoho         0xE1,0x89,0x1F,0x43,0xC0,0xFA,0xFF,0x3F,
   9906      1.1    jruoho         0x99,0x01,0xF6,0x84,0x1E,0xCB,0x50,0xD2,
   9907      1.1    jruoho         0x4E,0x66,0x80,0xC0,0xFB,0xD8,0x3B,0xC3,
   9908      1.1    jruoho         0x4B,0x83,0xE7,0x74,0xD2,0xCF,0x62,0x3E,
   9909      1.1    jruoho         0x99,0x19,0x21,0x0A,0xBB,0x8F,0x19,0xAD,
   9910      1.1    jruoho         0x37,0x14,0xCD,0x3C,0xE8,0x3B,0x99,0x51,
   9911      1.1    jruoho         0x62,0x46,0x6A,0x0E,0x4C,0x48,0x11,0x0F,
   9912      1.1    jruoho         0x27,0x4A,0x88,0x60,0xAF,0x13,0x6F,0x67,
   9913      1.1    jruoho         0x4F,0x66,0x4C,0xD6,0xC9,0x0C,0x24,0xFF,
   9914      1.1    jruoho         0xFF,0x93,0x19,0x98,0x5C,0x9F,0xCC,0x80,
   9915      1.1    jruoho         0xCA,0x39,0x0A,0x7F,0x32,0x03,0x78,0x74,
   9916      1.1    jruoho         0xC0,0xC2,0x9D,0xCC,0xC0,0xF2,0xFF,0x3F,
   9917      1.1    jruoho         0xC4,0x00,0xCE,0xC7,0x0A,0x63,0x0C,0x3C,
   9918      1.1    jruoho         0xDA,0xC1,0x0C,0x15,0xE6,0x6C,0x86,0x0E,
   9919      1.1    jruoho         0x72,0x08,0xA1,0xC1,0x0E,0x21,0x50,0xE6,
   9920      1.1    jruoho         0x72,0xA0,0xA7,0xF0,0x9A,0xE0,0x73,0x14,
   9921      1.1    jruoho         0xD8,0x0F,0x67,0xC0,0xE1,0xD4,0x80,0x0F,
   9922      1.1    jruoho         0x74,0xE2,0x42,0x8F,0xC2,0x23,0x0E,0x58,
   9923      1.1    jruoho         0xFD,0xC0,0xC8,0xFF,0xFF,0x64,0x06,0x18,
   9924      1.1    jruoho         0x78,0x6A,0xF8,0x40,0x82,0x63,0x31,0xEA,
   9925      1.1    jruoho         0x1B,0xC4,0x21,0xBE,0x8D,0xF8,0xE8,0xFE,
   9926      1.1    jruoho         0x6A,0xE2,0x4B,0x00,0xE6,0x42,0xE2,0xD3,
   9927      1.1    jruoho         0x09,0xB3,0x70,0x38,0x03,0x5A,0x43,0x60,
   9928      1.1    jruoho         0x57,0x26,0xCF,0x9C,0x0F,0xE1,0x6C,0x3C,
   9929      1.1    jruoho         0x7A,0xDC,0xE9,0x04,0xDE,0x38,0x7C,0x3A,
   9930      1.1    jruoho         0x01,0x5E,0x07,0x0C,0xCC,0x0C,0xC2,0x3F,
   9931      1.1    jruoho         0x84,0xB0,0x21,0x9C,0xAA,0xC7,0x70,0xEE,
   9932      1.1    jruoho         0xAF,0x38,0x3E,0x9D,0x80,0xF3,0xFF,0x7F,
   9933      1.1    jruoho         0x62,0x03,0x0C,0x0A,0x7E,0x32,0xF8,0xB8,
   9934      1.1    jruoho         0x46,0x25,0xC2,0xA0,0x8E,0xE6,0x80,0x7B,
   9935      1.1    jruoho         0x98,0x27,0x36,0x26,0x6F,0xC5,0x1A,0x8B,
   9936      1.1    jruoho         0x4F,0x6C,0x30,0xFF,0xFF,0x27,0x36,0x80,
   9937      1.1    jruoho         0xD1,0x87,0x20,0xB0,0xFD,0xFF,0x0F,0x41,
   9938      1.1    jruoho         0x60,0x1C,0xA0,0x0F,0x41,0x80,0x9B,0xD3,
   9939      1.1    jruoho         0x09,0xEE,0xC4,0x07,0xB6,0x63,0x10,0x60,
   9940      1.1    jruoho         0x6D,0xE8,0x3E,0x06,0x81,0xF9,0xFF,0x3F,
   9941      1.1    jruoho         0x5A,0x98,0xA3,0xE0,0xC2,0x8E,0x7C,0x28,
   9942      1.1    jruoho         0x29,0xA7,0x3E,0xB4,0x0C,0x20,0x69,0x38,
   9943      1.1    jruoho         0xC9,0x01,0x9D,0xD3,0x3D,0x70,0x92,0x75,
   9944      1.1    jruoho         0xEA,0x40,0x8F,0xC7,0xA0,0xAF,0x1C,0xBE,
   9945      1.1    jruoho         0x12,0xF0,0x23,0x07,0x93,0x00,0xAA,0x41,
   9946      1.1    jruoho         0xFA,0xCC,0x07,0x9C,0x8E,0x1C,0xE0,0x38,
   9947      1.1    jruoho         0x26,0x05,0xC6,0xDE,0x0E,0xDE,0x22,0x3D,
   9948      1.1    jruoho         0x89,0xA7,0xA1,0xE3,0x0C,0x51,0x38,0x26,
   9949      1.1    jruoho         0x39,0x18,0x44,0x7A,0x95,0x62,0x03,0x7C,
   9950      1.1    jruoho         0xAB,0xF1,0xD9,0xC8,0x07,0x10,0x78,0xE3,
   9951      1.1    jruoho         0xF6,0xD8,0x61,0xFF,0xFF,0x0F,0x75,0xC0,
   9952      1.1    jruoho         0x01,0xE2,0xA4,0xF8,0x21,0xC3,0x98,0x67,
   9953      1.1    jruoho         0xC5,0x0F,0x75,0x80,0xF5,0x18,0x27,0x3A,
   9954      1.1    jruoho         0x94,0xF0,0x43,0x1D,0x20,0xE8,0xFF,0x7F,
   9955      1.1    jruoho         0xA8,0x03,0x86,0x38,0x6F,0x24,0xD1,0x1E,
   9956      1.1    jruoho         0xEA,0x98,0xE8,0x43,0x1D,0x40,0xC8,0xFF,
   9957      1.1    jruoho         0xFF,0xA1,0x0E,0x18,0x9E,0x87,0x00,0xAE,
   9958      1.1    jruoho         0x9C,0xEF,0xC0,0x7C,0x22,0x02,0xEF,0xFF,
   9959      1.1    jruoho         0xFF,0x7C,0x07,0xB8,0x1B,0x2D,0xCC,0x51,
   9960      1.1    jruoho         0x70,0x41,0xAF,0x0E,0x03,0x51,0x09,0x30,
   9961      1.1    jruoho         0x28,0x02,0xC7,0x5F,0x9B,0x60,0x1C,0xEA,
   9962      1.1    jruoho         0x7C,0x87,0x3E,0x2F,0x78,0xD8,0x4F,0x05,
   9963      1.1    jruoho         0x9E,0xC4,0xA9,0xFA,0x5A,0x70,0x14,0x4F,
   9964      1.1    jruoho         0x00,0x3E,0xE1,0x01,0xFF,0xA1,0xC1,0x9A,
   9965      1.1    jruoho         0x44,0xF1,0x43,0x03,0xF5,0x11,0xE4,0xFF,
   9966      1.1    jruoho         0x7F,0x68,0xC0,0x28,0xEA,0xF9,0x06,0x7D,
   9967      1.1    jruoho         0xCC,0xF2,0xD9,0x20,0xE6,0x0B,0x48,0x84,
   9968      1.1    jruoho         0x07,0x10,0x5F,0x1F,0xD8,0x71,0xD2,0x67,
   9969      1.1    jruoho         0xA0,0x40,0x51,0xDE,0x37,0xF8,0x09,0x07,
   9970      1.1    jruoho         0x5C,0x83,0xF3,0x09,0x07,0xBC,0x87,0x23,
   9971      1.1    jruoho         0x1F,0x4B,0xC0,0x77,0xD0,0x84,0x73,0x81,
   9972      1.1    jruoho         0xF1,0x8D,0x8D,0x9D,0x06,0xC0,0x76,0x00,
   9973      1.1    jruoho         0x06,0xDF,0x69,0x00,0x1C,0xC7,0x24,0x7E,
   9974      1.1    jruoho         0x3A,0x04,0x13,0xCC,0xC1,0xBC,0x34,0xFB,
   9975      1.1    jruoho         0xFF,0xEF,0xFD,0x94,0x43,0xCF,0x86,0x80,
   9976      1.1    jruoho         0x75,0x49,0x07,0x43,0x94,0x88,0xB3,0x21,
   9977      1.1    jruoho         0x20,0xFD,0xFF,0x7F,0x36,0xC4,0x20,0xC4,
   9978      1.1    jruoho         0x09,0xFC,0x12,0xD1,0xDC,0xD9,0x90,0xAE,
   9979      1.1    jruoho         0xD8,0x67,0x43,0x80,0xE1,0xFF,0xFF,0x23,
   9980      1.1    jruoho         0x00,0xF6,0x7C,0x04,0x38,0x3D,0x64,0x83,
   9981      1.1    jruoho         0xE7,0x14,0x08,0xE3,0xE4,0x03,0x38,0xFE,
   9982      1.1    jruoho         0xFF,0x8F,0x15,0xE6,0x18,0x78,0xEA,0x97,
   9983      1.1    jruoho         0x9B,0x8F,0x03,0x54,0xD4,0x2B,0xC2,0x30,
   9984      1.1    jruoho         0x94,0xC5,0x87,0x05,0x1F,0x11,0xF8,0x61,
   9985      1.1    jruoho         0xC1,0x23,0xA8,0x78,0x9C,0xF4,0x74,0xE3,
   9986      1.1    jruoho         0x33,0x21,0x3B,0x24,0x38,0xFC,0x20,0xE9,
   9987      1.1    jruoho         0x41,0x13,0x3C,0xE7,0x23,0x78,0xB7,0x1E,
   9988      1.1    jruoho         0x38,0xA7,0x02,0xC0,0x4D,0xAE,0x27,0xA3,
   9989      1.1    jruoho         0x4E,0x17,0x0E,0x70,0x8E,0x92,0x8D,0x63,
   9990      1.1    jruoho         0x08,0xE5,0x70,0xCC,0xB7,0x87,0xA6,0xC9,
   9991      1.1    jruoho         0x4E,0x56,0x30,0x63,0x41,0xEA,0x24,0xE0,
   9992      1.1    jruoho         0x01,0x38,0x10,0x8C,0xB4,0x93,0x68,0x34,
   9993      1.1    jruoho         0x86,0xB3,0x5A,0x18,0xC1,0x19,0xC4,0xC7,
   9994      1.1    jruoho         0x11,0xE7,0x3A,0x19,0xA1,0x3F,0x07,0x3E,
   9995      1.1    jruoho         0x15,0x61,0x82,0xDC,0x4B,0xE8,0xBC,0x7D,
   9996      1.1    jruoho         0x37,0xE0,0x57,0x61,0x8F,0xC5,0xFF,0x7F,
   9997      1.1    jruoho         0x60,0xDF,0x4E,0xC0,0x31,0x17,0xAB,0x01,
   9998      1.1    jruoho         0x45,0x0D,0xC0,0x68,0x98,0x53,0xC0,0x53,
   9999      1.1    jruoho         0x09,0xB8,0x82,0xCD,0x0D,0x7D,0x61,0xB1,
   10000      1.1    jruoho         0xD6,0xA9,0xE8,0x14,0xF4,0x3E,0x70,0x70,
   10001      1.1    jruoho         0xC0,0x63,0xF6,0x1E,0x1C,0x2C,0x34,0x0F,
   10002      1.1    jruoho         0x0E,0x6C,0xD9,0x06,0x87,0x56,0x72,0x17,
   10003      1.1    jruoho         0x21,0x87,0x0F,0xFC,0xEC,0x80,0x03,0xA0,
   10004      1.1    jruoho         0x67,0x07,0x0B,0xC9,0xB3,0x03,0x9B,0xBE,
   10005      1.1    jruoho         0xB3,0x08,0x28,0x70,0xFE,0xFF,0x11,0xDE,
   10006      1.1    jruoho         0x3B,0x7C,0x6E,0x79,0xF6,0x60,0x63,0x78,
   10007      1.1    jruoho         0x74,0x31,0x9A,0xD1,0xB9,0xA6,0xDB,0x04,
   10008      1.1    jruoho         0x4A,0xC5,0x6D,0x82,0x82,0xF8,0x06,0xE0,
   10009      1.1    jruoho         0x84,0x34,0xBA,0x75,0xE2,0x66,0x62,0xFC,
   10010      1.1    jruoho         0x47,0x0C,0x1F,0x11,0x0E,0xE9,0x6C,0x4D,
   10011      1.1    jruoho         0x30,0x0F,0xA4,0x9E,0x81,0xBE,0xB3,0xE1,
   10012      1.1    jruoho         0x67,0x1F,0xF2,0xC1,0xC5,0xD3,0xF0,0xF5,
   10013      1.1    jruoho         0x86,0xDC,0x3B,0xE8,0xB4,0x7D,0x66,0xC0,
   10014      1.1    jruoho         0x1C,0x74,0x7D,0x9D,0x7A,0x83,0x27,0x57,
   10015      1.1    jruoho         0x09,0xEA,0xE1,0x02,0x42,0x2F,0x34,0xBE,
   10016      1.1    jruoho         0xDC,0x25,0x78,0xE0,0xF4,0xE9,0xEE,0xBD,
   10017      1.1    jruoho         0x84,0x9D,0xF1,0x12,0xBC,0xE0,0x25,0x98,
   10018      1.1    jruoho         0x77,0x10,0xA8,0x51,0x79,0x10,0x98,0xAB,
   10019      1.1    jruoho         0x3C,0xCB,0x37,0x06,0x54,0xB2,0x8B,0x16,
   10020      1.1    jruoho         0x3D,0xC3,0xBC,0xC3,0xF8,0x92,0xE0,0xEB,
   10021      1.1    jruoho         0x87,0xCF,0x2D,0x5E,0xC0,0xEB,0x16,0x0C,
   10022      1.1    jruoho         0x82,0x67,0xA0,0x57,0x17,0xDF,0xD9,0x0D,
   10023      1.1    jruoho         0xFC,0x2A,0xF0,0x46,0x13,0x22,0x98,0x61,
   10024      1.1    jruoho         0x0F,0xFF,0xDD,0xDD,0xA8,0xBE,0xE9,0x18,
   10025      1.1    jruoho         0xEB,0x75,0xC4,0x23,0xE5,0xC7,0x96,0x03,
   10026      1.1    jruoho         0x8A,0xF4,0xF2,0xE6,0x09,0xF8,0x2C,0xE3,
   10027      1.1    jruoho         0x53,0xDD,0x49,0xF9,0x7A,0x68,0xF4,0x57,
   10028      1.1    jruoho         0x08,0x1F,0x7E,0x8C,0xEC,0x73,0x0E,0x3B,
   10029      1.1    jruoho         0xDF,0xB1,0x41,0x71,0xC4,0x07,0x86,0x97,
   10030      1.1    jruoho         0x1A,0x4F,0x85,0x9D,0xBB,0x60,0x1C,0x1C,
   10031      1.1    jruoho         0xD8,0xB1,0x08,0x73,0x7C,0x05,0xD7,0xC9,
   10032      1.1    jruoho         0xE6,0xFF,0xFF,0xE4,0x00,0x6E,0x78,0xCC,
   10033      1.1    jruoho         0xC1,0xD7,0xE7,0x0D,0xDF,0x0C,0x3C,0x2E,
   10034      1.1    jruoho         0x7E,0xE4,0xF0,0x49,0xE3,0xA5,0xD3,0xD8,
   10035      1.1    jruoho         0xA7,0xE9,0xA3,0xD1,0xCB,0x9B,0x4F,0x2F,
   10036      1.1    jruoho         0x18,0x58,0x5F,0x1A,0x38,0xAC,0xD1,0xC2,
   10037      1.1    jruoho         0x3E,0x06,0x9C,0xB9,0x2F,0x44,0xB8,0xC3,
   10038      1.1    jruoho         0x23,0x58,0x00,0xF1,0xB7,0x92,0x47,0x0E,
   10039      1.1    jruoho         0x4F,0xC0,0x80,0x4C,0xD3,0xBA,0x74,0x20,
   10040      1.1    jruoho         0xE2,0xA7,0x3C,0x2B,0x5F,0x99,0x2E,0x43,
   10041      1.1    jruoho         0x0C,0xE3,0xA9,0xF2,0xF1,0xC3,0xB3,0xF1,
   10042      1.1    jruoho         0x51,0xC0,0xC7,0x28,0xCF,0xFC,0x8C,0x22,
   10043      1.1    jruoho         0xBD,0x32,0x10,0x50,0x9D,0x88,0xB8,0x42,
   10044      1.1    jruoho         0x18,0x89,0xA1,0xD1,0x9D,0x83,0xC7,0x1F,
   10045      1.1    jruoho         0x22,0x05,0x31,0xA0,0x6F,0x2E,0xC0,0xF4,
   10046      1.1    jruoho         0x4C,0x04,0x5C,0xFE,0xFF,0x37,0x17,0x80,
   10047      1.1    jruoho         0xFF,0xFF,0xFF,0x9B,0x0B,0xE0,0xE6,0xFE,
   10048      1.1    jruoho         0xE0,0x9B,0x0B,0x70,0x8D,0xB4,0x2A,0x7A,
   10049      1.1    jruoho         0x61,0x77,0x08,0x18,0xD4,0x9D,0x1D,0x70,
   10050      1.1    jruoho         0x78,0x2B,0x78,0x67,0x87,0xF5,0xFF,0xBF,
   10051      1.1    jruoho         0xB3,0xC3,0xC3,0x8C,0x13,0xE5,0x85,0x21,
   10052      1.1    jruoho         0xC6,0x3B,0x3B,0x0B,0xF0,0x26,0xD0,0x51,
   10053      1.1    jruoho         0xC6,0x77,0x76,0x80,0x1F,0x67,0xD8,0x77,
   10054      1.1    jruoho         0x69,0xF0,0x5E,0x75,0x81,0xF5,0xFF,0xFF,
   10055      1.1    jruoho         0xAA,0x0B,0x3C,0x04,0xDF,0xA7,0x41,0x3E,
   10056      1.1    jruoho         0x5E,0x30,0x8C,0x83,0x2B,0x27,0xA1,0xC7,
   10057      1.1    jruoho         0x02,0x6B,0x85,0x41,0xDD,0xA9,0xC1,0xA5,
   10058      1.1    jruoho         0x09,0x5C,0x17,0x5F,0x1F,0x6A,0x7C,0xA4,
   10059      1.1    jruoho         0xC5,0x9F,0x2F,0x70,0x01,0x86,0x4C,0x4F,
   10060      1.1    jruoho         0x65,0x30,0xAE,0x29,0x3E,0x95,0x61,0xEE,
   10061      1.1    jruoho         0x0E,0x1E,0x90,0x8F,0x18,0xC0,0x67,0x15,
   10062      1.1    jruoho         0x1E,0x18,0xEE,0xB4,0xE0,0x9B,0x92,0x41,
   10063      1.1    jruoho         0xCF,0x31,0xA8,0x8F,0x3C,0x27,0xEF,0x7B,
   10064      1.1    jruoho         0xC2,0xE3,0x84,0xA3,0x9E,0x83,0xE8,0xD8,
   10065      1.1    jruoho         0xC0,0x71,0xDC,0xC0,0xFD,0xFF,0xC7,0x06,
   10066      1.1    jruoho         0xEF,0x70,0x83,0x3B,0xE8,0xF8,0x62,0x70,
   10067      1.1    jruoho         0x5C,0x18,0xB8,0xE7,0x02,0x0F,0xC3,0x37,
   10068      1.1    jruoho         0x1D,0x8F,0x08,0x33,0xFE,0xD7,0x3F,0x23,
   10069      1.1    jruoho         0x04,0xC4,0x5F,0x8C,0xD8,0x80,0xC1,0x78,
   10070      1.1    jruoho         0x6B,0xF3,0xF5,0x0D,0x37,0x60,0x5F,0x1D,
   10071      1.1    jruoho         0x7C,0xC1,0xF0,0x09,0xCC,0xE8,0x2F,0x30,
   10072      1.1    jruoho         0x4F,0x62,0x3E,0x36,0x90,0x0B,0x1C,0x1D,
   10073      1.1    jruoho         0x30,0x38,0x00,0x3D,0x60,0xF8,0x87,0x8B,
   10074      1.1    jruoho         0x77,0x39,0x30,0x5C,0x05,0x7D,0x5C,0xF0,
   10075      1.1    jruoho         0xB1,0xC7,0x8A,0xEE,0x72,0xE8,0x9B,0x9C,
   10076      1.1    jruoho         0x61,0xE2,0x18,0xE2,0x0D,0x8C,0xDD,0x25,
   10077      1.1    jruoho         0xC8,0x61,0x0E,0xEA,0x5D,0xC2,0x73,0xE0,
   10078      1.1    jruoho         0x67,0x0B,0x9F,0xE0,0x7C,0xF3,0x09,0x71,
   10079      1.1    jruoho         0xAA,0x8F,0x56,0xEF,0x01,0x3E,0x7A,0xBC,
   10080      1.1    jruoho         0x77,0xF9,0xEC,0xC4,0x2E,0x02,0x3E,0x72,
   10081      1.1    jruoho         0x19,0xC7,0xD3,0xF4,0x15,0xD0,0x43,0x36,
   10082      1.1    jruoho         0xD8,0xAB,0x86,0x4F,0x60,0x3E,0xBA,0xE1,
   10083      1.1    jruoho         0x8E,0x51,0x9E,0x89,0xA7,0xEF,0x3B,0x08,
   10084      1.1    jruoho         0x3B,0x92,0x1C,0x75,0xA8,0x6B,0x7A,0x44,
   10085      1.1    jruoho         0xF9,0xFF,0x9F,0xD0,0x81,0xF8,0xD6,0x06,
   10086      1.1    jruoho         0xCE,0x68,0xF7,0x0F,0xF4,0x36,0x3D,0x32,
   10087      1.1    jruoho         0xCC,0xD1,0x00,0xD6,0x25,0x04,0x5C,0x77,
   10088      1.1    jruoho         0x0C,0x5F,0x42,0x80,0x4F,0xD0,0x4B,0x04,
   10089      1.1    jruoho         0xFA,0x9A,0xE1,0xD1,0x3D,0x02,0x60,0xAE,
   10090      1.1    jruoho         0x18,0xEC,0x58,0xE0,0xC3,0x86,0xAF,0x01,
   10091      1.1    jruoho         0xEC,0x5E,0xE0,0x30,0xF7,0x08,0x50,0x81,
   10092      1.1    jruoho         0x7A,0x78,0xF0,0xD5,0xDE,0x23,0x40,0x71,
   10093      1.1    jruoho         0xB2,0xF4,0xA1,0xC1,0x03,0xB5,0xAA,0x33,
   10094      1.1    jruoho         0x26,0x94,0x23,0x26,0x3F,0x9B,0xF9,0x26,
   10095      1.1    jruoho         0x81,0xB9,0x5D,0xFA,0x26,0x01,0x37,0xCF,
   10096      1.1    jruoho         0x2C,0x50,0x49,0x20,0xF4,0xFF,0xBF,0x49,
   10097      1.1    jruoho         0xC0,0x85,0xE9,0xF2,0x32,0x43,0xE7,0x7F,
   10098      1.1    jruoho         0xE0,0xBE,0xD5,0x79,0x84,0x3E,0x44,0x30,
   10099      1.1    jruoho         0x94,0xF7,0x3C,0x9F,0xC2,0xF8,0x19,0xC2,
   10100      1.1    jruoho         0x07,0x4C,0x76,0xA6,0xE0,0x67,0x4D,0xDC,
   10101      1.1    jruoho         0x1D,0xC0,0x28,0x6F,0x9E,0x9E,0x00,0x3B,
   10102      1.1    jruoho         0x7F,0x1A,0xF9,0xDD,0xE0,0x5D,0xC0,0xD3,
   10103      1.1    jruoho         0xF7,0xBD,0x88,0x9F,0x28,0xC0,0x17,0xEC,
   10104      1.1    jruoho         0x4E,0x07,0x05,0xFA,0x84,0x3C,0x22,0xA3,
   10105      1.1    jruoho         0xFA,0x88,0xC0,0x2F,0x49,0x60,0x3C,0x92,
   10106      1.1    jruoho         0xF8,0x40,0x01,0x84,0xEE,0x05,0xA8,0xD3,
   10107      1.1    jruoho         0x07,0x47,0x3D,0xE3,0x17,0x54,0x63,0xBE,
   10108      1.1    jruoho         0x5B,0x3D,0xC2,0x79,0x72,0x98,0xCB,0x01,
   10109      1.1    jruoho         0x8B,0x73,0x4D,0x02,0xD5,0x71,0x97,0x8F,
   10110      1.1    jruoho         0x0E,0xEE,0xB5,0x15,0xFB,0xFF,0x27,0x38,
   10111      1.1    jruoho         0xB8,0x77,0x96,0x77,0x3E,0x43,0x79,0x90,
   10112      1.1    jruoho         0xE0,0xBB,0xB6,0x82,0xE3,0xAA,0x06,0xE3,
   10113      1.1    jruoho         0xD8,0xC2,0x2F,0x79,0x80,0x9D,0x61,0x71,
   10114      1.1    jruoho         0xC1,0x7F,0x0F,0x03,0x51,0x89,0x30,0x28,
   10115      1.1    jruoho         0x02,0xCB,0xBB,0xB7,0x52,0xF8,0x43,0x06,
   10116      1.1    jruoho         0xE3,0x4D,0x81,0x4F,0x1A,0x3B,0x6A,0xE0,
   10117      1.1    jruoho         0xFB,0xFF,0x1F,0x35,0xD8,0x86,0x8A,0xBB,
   10118      1.1    jruoho         0x29,0x82,0x75,0xAA,0x98,0x21,0xF0,0x60,
   10119      1.1    jruoho         0x0F,0x00,0x9F,0xAF,0x7C,0x06,0x50,0x14,
   10120      1.1    jruoho         0x18,0xD4,0xA1,0x1D,0xCE,0x6D,0x18,0x70,
   10121      1.1    jruoho         0x30,0x62,0xDC,0xA5,0x10,0xEE,0x94,0xDF,
   10122      1.1    jruoho         0x51,0x62,0x3F,0x97,0xB3,0xE9,0xE2,0xAE,
   10123      1.1    jruoho         0xE6,0x3E,0x9D,0xB0,0x0B,0x32,0x8C,0xB3,
   10124      1.1    jruoho         0xC0,0x23,0xC0,0xAB,0x39,0xBF,0x20,0x3F,
   10125      1.1    jruoho         0x17,0xBF,0x10,0x3C,0x26,0x85,0x78,0x53,
   10126      1.1    jruoho         0x7A,0x25,0x36,0xC6,0x93,0x71,0x73,0xB7,
   10127      1.1    jruoho         0x62,0x72,0xDE,0x79,0x41,0x36,0xC6,0xD1,
   10128      1.1    jruoho         0x44,0x8C,0x72,0x6E,0x0F,0x03,0x91,0x5F,
   10129      1.1    jruoho         0x90,0x7D,0x3F,0x79,0x21,0x88,0x18,0xCD,
   10130      1.1    jruoho         0x10,0x41,0x9F,0x97,0x8D,0x15,0x28,0xDE,
   10131      1.1    jruoho         0x0B,0x32,0x13,0xF8,0x56,0xD0,0xC1,0xC5,
   10132      1.1    jruoho         0x17,0x64,0xEC,0xFF,0xFF,0x82,0x0C,0x30,
   10133      1.1    jruoho         0xE2,0x64,0x04,0xF8,0x3C,0x71,0xE0,0xCE,
   10134      1.1    jruoho         0x35,0x30,0xFE,0xFF,0x97,0x6A,0xD8,0x27,
   10135      1.1    jruoho         0x1B,0xC0,0xD9,0xD0,0x7D,0xB2,0x01,0xF7,
   10136      1.1    jruoho         0x68,0xE1,0x1D,0x4D,0x10,0x27,0x1B,0x0A,
   10137      1.1    jruoho         0xE4,0xE0,0xEB,0xA2,0x70,0x3C,0xF4,0x49,
   10138      1.1    jruoho         0x84,0x1E,0x9D,0x7C,0x94,0xC4,0x9D,0x19,
   10139      1.1    jruoho         0x3C,0x91,0x77,0x16,0x8F,0xE2,0x65,0xD0,
   10140      1.1    jruoho         0xF7,0x82,0x13,0x79,0x7D,0xB0,0x9C,0x63,
   10141      1.1    jruoho         0x24,0xA8,0x46,0xE2,0xE3,0x03,0xFC,0xEB,
   10142      1.1    jruoho         0x8B,0x8F,0x91,0xF0,0xF9,0xFC,0xC3,0xF2,
   10143      1.1    jruoho         0x60,0x0C,0xF9,0xFF,0x7F,0x8A,0xC4,0x80,
   10144      1.1    jruoho         0x3C,0xBB,0x3C,0x86,0xF0,0x0B,0x24,0xDC,
   10145      1.1    jruoho         0xD3,0xCC,0x01,0x60,0x64,0x5D,0x1E,0xD1,
   10146      1.1    jruoho         0x67,0x47,0x8E,0x11,0xD7,0x17,0x45,0x5F,
   10147      1.1    jruoho         0x81,0x7D,0x10,0x38,0x9F,0xE7,0x44,0xB0,
   10148      1.1    jruoho         0x8E,0x9A,0x1F,0x6D,0xF8,0xF8,0x39,0xF8,
   10149      1.1    jruoho         0x5B,0xC1,0x03,0xA5,0x8F,0x45,0x21,0x1E,
   10150      1.1    jruoho         0x91,0xF8,0x39,0x11,0x5C,0x26,0xCE,0x89,
   10151      1.1    jruoho         0x40,0xE2,0xD0,0x0B,0xE3,0xB4,0x80,0x1B,
   10152      1.1    jruoho         0x88,0xCF,0x94,0xD8,0x29,0x9F,0x08,0x3B,
   10153      1.1    jruoho         0x97,0x60,0x46,0x07,0xAE,0xCB,0xBD,0x47,
   10154      1.1    jruoho         0x07,0xFE,0x93,0x00,0x1E,0xEB,0xFF,0xFF,
   10155      1.1    jruoho         0x78,0x07,0xBE,0x93,0xBA,0xEF,0x26,0xBE,
   10156      1.1    jruoho         0xC8,0xF8,0x50,0xF4,0x7C,0x07,0xF8,0x0F,
   10157      1.1    jruoho         0x77,0xB8,0x43,0xC5,0x39,0xDF,0x01,0xD2,
   10158      1.1    jruoho         0xFE,0xFF,0xE7,0x3B,0x60,0x79,0xB6,0x7E,
   10159      1.1    jruoho         0xBE,0x03,0xBB,0xC8,0xF3,0x1D,0x40,0xAC,
   10160      1.1    jruoho         0xFF,0xFF,0xF9,0x0E,0xB0,0x73,0x46,0xC3,
   10161      1.1    jruoho         0x9D,0xEF,0xC0,0x76,0xB4,0x01,0xCC,0x4D,
   10162      1.1    jruoho         0xE3,0xD1,0x06,0xDC,0xC3,0x85,0x3D,0x0C,
   10163      1.1    jruoho         0xAE,0xD0,0xA6,0x4F,0x8D,0x46,0xAD,0x1A,
   10164      1.1    jruoho         0x94,0xA9,0x51,0xE6,0xFF,0xDF,0xA0,0x56,
   10165      1.1    jruoho         0x9F,0x4A,0x8D,0x19,0xCB,0x0E,0xA5,0x80,
   10166      1.1    jruoho         0x8F,0x0A,0x8D,0xCD,0xF2,0x28,0x04,0x62,
   10167      1.1    jruoho         0x31,0xAF,0x06,0x81,0x38,0x2C,0x08,0x8D,
   10168      1.1    jruoho         0xF4,0xCA,0x11,0x88,0x25,0x3F,0xFB,0x05,
   10169      1.1    jruoho         0x62,0xB9,0x6F,0x06,0x81,0x38,0xE0,0x1B,
   10170      1.1    jruoho         0x4C,0xE0,0xE4,0x61,0x25,0x70,0xF2,0x6E,
   10171      1.1    jruoho         0x10,0x88,0x23,0x83,0x50,0xA1,0x3A,0x40,
   10172      1.1    jruoho         0x58,0x4C,0x10,0x1A,0xCA,0x07,0x08,0x93,
   10173      1.1    jruoho         0xFE,0x48,0x10,0x20,0x31,0x02,0xC2,0xC2,
   10174      1.1    jruoho         0xBD,0xBF,0x04,0x62,0x69,0xEF,0x09,0x81,
   10175      1.1    jruoho         0x58,0x88,0x15,0x10,0x16,0x17,0x84,0x86,
   10176      1.1    jruoho         0xD3,0x02,0xC2,0x24,0x99,0x01,0x61,0x81,
   10177      1.1    jruoho         0x40,0xA8,0x7C,0x35,0x20,0x4C,0xA4,0x1B,
   10178      1.1    jruoho         0x40,0xBA,0x7A,0x81,0x38,0x88,0x1E,0x10,
   10179      1.1    jruoho         0x26,0xC3,0x0F,0x08,0x0B,0x0D,0x42,0xA3,
   10180      1.1    jruoho         0x3D,0x30,0x04,0x48,0x0C,0x81,0xB0,0xF8,
   10181      1.1    jruoho         0x8E,0x40,0x98,0xF8,0x57,0x91,0x40,0x9C,
   10182      1.1    jruoho         0xDF,0x12,0xC4,0x4D,0x69,0x88,0x35,0x01,
   10183      1.1    jruoho         0x31,0x0D,0x9E,0x80,0x98,0x22,0x10,0x01,
   10184      1.1    jruoho         0x39,0xF6,0xD3,0x43,0x40,0xD6,0x60,0x0A,
   10185      1.1    jruoho         0x88,0x45,0x07,0x11,0x90,0x85,0xA8,0x02,
   10186      1.1    jruoho         0x62,0x79,0x5D,0x01,0xB1,0xF0,0x20,0x02,
   10187      1.1    jruoho         0x72,0xE6,0x97,0x9F,0x80,0xAC,0xE0,0xA5,
   10188      1.1    jruoho         0xF3,0x10,0xC0,0xDE,0x10,0x81,0x48,0x72,
   10189      1.1    jruoho         0x10,0x01,0x39,0xB0,0x2F,0x20,0x16,0x1F,
   10190      1.1    jruoho         0x44,0x40,0xCE,0xFA,0x28,0x14,0x90,0x83,
   10191      1.1    jruoho         0x83,0x68,0x10,0xE4,0x6B,0x26,0x20,0xA7,
   10192      1.1    jruoho         0x07,0x11,0x10,0xF9,0x04,0x05,0x21,0x6A,
   10193      1.1    jruoho         0xBD,0x81,0x30,0x3D,0x8F,0x42,0x0D,0x85,
   10194      1.1    jruoho         0x80,0x50,0xE5,0xEA,0xCE,0x31,0x2C,0x07,
   10195      1.1    jruoho         0x08,0xCD,0x05,0x22,0x30,0xAB,0x70,0x07,
   10196      1.1    jruoho         0xC4,0x54,0x81,0x08,0xC8,0x09,0x80,0xC8,
   10197      1.1    jruoho         0xFF,0x9F,0x60,0x2A,0x10,0x9A,0x12,0x8C,
   10198      1.1    jruoho         0xEA,0x92,0x07,0xC4,0x12,0x80,0xD0,0x54,
   10199      1.1    jruoho         0x20,0x34,0x25,0x88,0x00,0xAD,0xCA,0x1E,
   10200      1.1    jruoho         0x10,0x53,0x0A,0x42,0x95,0x83,0xD0,0x74,
   10201      1.1    jruoho         0x20,0x54,0xB6,0xBE,0xC3,0x02,0x05,0x11,
   10202      1.1    jruoho         0x90,0xA3,0x83,0x50,0xE1,0xFE,0x40,0x98,
   10203      1.1    jruoho         0xDE,0x97,0x86,0x00,0x9D,0x0E,0x44,0x40,
   10204      1.1    jruoho         0x4E,0x0C,0x42,0x15,0x7C,0x32,0x82,0x10,
   10205      1.1    jruoho         0xB1,0x20,0x54,0xC1,0x27,0x23,0x28,0xD1,
   10206      1.1    jruoho         0xF2,0xB2,0x13,0x90,0xF5,0x81,0x50,0xBD,
   10207      1.1    jruoho         0x20,0x02,0x73,0x36,0x20,0x9A,0x17,0x84,
   10208      1.1    jruoho         0xE6,0x07,0xA3,0x5A,0x8D,0x02,0x31,0xFD,
   10209      1.1    jruoho         0x20,0x34,0x0F,0x88,0xC0,0xAC,0xE0,0xF9,
   10210      1.1    jruoho         0x71,0xC0,0x0C,0x84,0xAA,0x04,0x11,0x98,
   10211      1.1    jruoho         0x73,0x01,0xD1,0xAC,0x20,0x34,0x3B,0x18,
   10212      1.1    jruoho         0xD5,0xFE,0x0F,0xD1,0x00,0x08,0x08,0xCD,
   10213      1.1    jruoho         0x07,0xA2,0xC3,0x00,0x79,0x96,0x09,0xC8,
   10214      1.1    jruoho         0x1A,0x41,0xA8,0x66,0x10,0x81,0x39,0x27,
   10215      1.1    jruoho         0x10,0xCD,0x0E,0x42,0x95,0xFD,0x4D,0x82,
   10216      1.1    jruoho         0x91,0x8C,0x0F,0xD0,0x40,0x24,0x37,0x08,
   10217      1.1    jruoho         0xD5,0xF1,0x0C,0x0A,0x46,0x74,0x83,0x08,
   10218      1.1    jruoho         0xC8,0x59,0x40,0x68,0x36,0x30,0x9A,0x4C,
   10219      1.1    jruoho         0xED,0x91,0x80,0xBA,0x05,0x61,0xE9,0x41,
   10220      1.1    jruoho         0x68,0x3A,0xBB,0x83,0xA7,0x20,0x54,0x81,
   10221      1.1    jruoho         0x5E,0x30,0xA6,0x19,0x44,0x87,0x05,0x02,
   10222      1.1    jruoho         0x42,0x73,0x81,0x51,0x1D,0xAF,0x96,0x40,
   10223      1.1    jruoho         0x44,0x1B,0x08,0xD5,0x0A,0xA2,0x81,0x93,
   10224      1.1    jruoho         0x1F,0x53,0x10,0x92,0x14,0x84,0xFC,0xFF,
   10225      1.1    jruoho         0x07,0xAA,0xC7,0x9C,0x40,0xAC,0xFA,0x5B,
   10226      1.1    jruoho         0x25,0x50,0x27,0x01,0xA1,0xC9,0x40,0x74,
   10227      1.1    jruoho         0x7C,0x20,0x0F,0xB8,0x83,0x64,0x20,0x54,
   10228      1.1    jruoho         0x29,0x88,0xC0,0xAC,0xF4,0x63,0xA4,0x23,
   10229      1.1    jruoho         0x05,0x51,0x7D,0xBC,0xA0,0x20,0x34,0xD1,
   10230      1.1    jruoho         0x3B,0x2C,0x08,0x7B,0xB8,0x69,0xA8,0xE4,
   10231      1.1    jruoho         0x59,0xA5,0xA1,0x12,0x10,0x9A,0x0D,0x44,
   10232      1.1    jruoho         0xC7,0x04,0xF2,0xAA,0x79,0x4C,0x60,0x20,
   10233      1.1    jruoho         0x54,0x2F,0x08,0xCD,0x01,0x42,0x13,0x83,
   10234      1.1    jruoho         0x08,0xD4,0xA9,0xBF,0x37,0x1A,0x2A,0xF9,
   10235      1.1    jruoho         0x5B,0x09,0xC4,0xCA,0x5E,0x69,0x02,0xB1,
   10236      1.1    jruoho         0xDE,0xA7,0x4E,0x20,0xE6,0x1D,0x98,0xA9,
   10237      1.1    jruoho         0x05,0xA1,0xEA,0x41,0x04,0xE6,0xB4,0x40,
   10238      1.1    jruoho         0x54,0x81,0x78,0x10,0xA6,0x08,0x44,0x60,
   10239      1.1    jruoho         0x4E,0x02,0x44,0xD3,0x81,0xD0,0xEC,0x60,
   10240      1.1    jruoho         0x54,0xE7,0xA3,0x4D,0x40,0xD6,0x0E,0x42,
   10241      1.1    jruoho         0xB3,0x80,0x08,0xCC,0x59,0x1E,0x69,0x02,
   10242      1.1    jruoho         0xB1,0x92,0x2F,0x9D,0x0E,0x24,0x04,0x84,
   10243      1.1    jruoho         0x26,0xD3,0x7F,0x68,0xA1,0x05,0x80,0x99,
   10244      1.1    jruoho         0x84,0x04,0x20,0x4C,0x16,0x88,0x0E,0x27,
   10245      1.1    jruoho         0xD6,0x08,0x22,0x40,0xC7,0x01,0xA3,0xD1,
   10246      1.1    jruoho         0x40,0x68,0x5C,0x40,0x9A,0x1D,0x90,0x2A,
   10247      1.1    jruoho         0x6D,0x00,0xC6,0x54,0x83,0xD0,0x24,0x20,
   10248      1.1    jruoho         0x02,0x74,0x2C,0x10,0x01,0x5A,0x74,0x04,
   10249      1.1    jruoho         0x30,0x16,0x01,0x84,0x46,0x05,0xA1,0xC9,
   10250      1.1    jruoho         0x2A,0x80,0xB2,0x9C,0x20,0x1A,0x20,0xC9,
   10251      1.1    jruoho         0x30,0x60,0x0A,0x42,0x33,0x81,0xD0,0x8C,
   10252      1.1    jruoho         0x20,0x54,0x7C,0x07,0x10,0x16,0x04,0x84,
   10253      1.1    jruoho         0x86,0x03,0xD1,0x00,0xFE,0xFF,0x8F,0x0C,
   10254      1.1    jruoho         0x02,0xD1,0x00,0x9C,0x23,0xC4,0x61,0x85,
   10255      1.1    jruoho         0x82,0xD0,0xF4,0x20,0x34,0x6C,0x09,0x50,
   10256      1.1    jruoho         0x16,0x1D,0x44,0xC7,0x23,0x92,0x02,0x8C,
   10257      1.1    jruoho         0x05,0x02,0xA1,0x31,0x41,0x68,0x6C,0x10,
   10258      1.1    jruoho         0x1A,0x29,0x06,0x28,0x13,0x54,0xE3,0x50,
   10259      1.1    jruoho         0x44,0x7B,0x80,0x31,0x99,0x20,0x54,0x36,
   10260      1.1    jruoho         0x88,0xC0,0x1C,0x14,0x88,0x86,0x07,0xA1,
   10261      1.1    jruoho         0x62,0x82,0x00,0x52,0x10,0x01,0x12,0x20,
   10262      1.1    jruoho         0x1A,0x1E,0x84,0x8A,0x29,0x32,0x74,0x0A,
   10263      1.1    jruoho         0x42,0x55,0x24,0x39,0x9A,0x50,0x10,0x1D,
   10264      1.1    jruoho         0x4D,0x08,0x08,0xCD,0x07,0x46,0x75,0x35,
   10265      1.1    jruoho         0x39,0x6E,0x50,0x10,0xAA,0x1D,0x84,0x06,
   10266      1.1    jruoho         0x05,0xA1,0x39,0xA2,0x80,0xB2,0xEC,0x20,
   10267      1.1    jruoho         0x02,0xB2,0x9E,0x2A,0x87,0x0A,0x0A,0x22,
   10268      1.1    jruoho         0x30,0xA7,0x02,0xA2,0x49,0x41,0xA8,0x8E,
   10269      1.1    jruoho         0x2C,0x47,0x0A,0x9A,0x06,0x84,0x25,0x06,
   10270      1.1    jruoho         0xA1,0xC9,0xDA,0x80,0xB0,0x0C,0x75,0x0E,
   10271      1.1    jruoho         0x24,0x14,0x84,0xE6,0x04,0xA1,0x4A,0xF2,
   10272      1.1    jruoho         0x0C,0x8F,0x82,0xE8,0x38,0x42,0x80,0x68,
   10273      1.1    jruoho         0x7A,0x10,0xAA,0xA6,0xCF,0x00,0x28,0x88,
   10274      1.1    jruoho         0x06,0x40,0x40,0x68,0x4E,0x30,0xAA,0xA8,
   10275      1.1    jruoho         0xD1,0xD1,0x84,0x82,0x50,0xDD,0x2F,0x4E,
   10276      1.1    jruoho         0x81,0xF8,0xFF,0x0F,
   10277      1.1    jruoho     })  // END MBUF
   10278      1.1    jruoho 
   10279      1.1    jruoho } //end DefinitionBlock
   10280      1.1    jruoho 
   10281