Home | History | Annotate | Line # | Download | only in misc
grammar.asl revision 1.1.1.6
      1      1.1    jruoho /*
      2  1.1.1.6  christos  * Some or all of this work - Copyright (c) 2006 - 2016, 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.1.6  christos         // Flush all notifies
   1284  1.1.1.6  christos 
   1285  1.1.1.6  christos         Sleep (250)
   1286  1.1.1.6  christos 
   1287      1.1    jruoho         //
   1288      1.1    jruoho         // Last Test
   1289      1.1    jruoho         //
   1290      1.1    jruoho 
   1291      1.1    jruoho         Return(0) // Success
   1292      1.1    jruoho     }
   1293      1.1    jruoho 
   1294      1.1    jruoho 
   1295      1.1    jruoho     Method (OBJ1, 1, SERIALIZED)
   1296      1.1    jruoho     {
   1297      1.1    jruoho 
   1298      1.1    jruoho         Store (3, Local0)
   1299      1.1    jruoho         Name(BUFR, Buffer (Local0) {})
   1300      1.1    jruoho         Name(BUF1, Buffer (4) {1,2,3,4})
   1301      1.1    jruoho         Name(BUF2, Buffer (4) {})
   1302      1.1    jruoho 
   1303      1.1    jruoho         Store (BUF1, BUF2)
   1304      1.1    jruoho         Mutex (MTX1, 4)
   1305      1.1    jruoho 
   1306      1.1    jruoho         Alias (MTX1, MTX2)
   1307      1.1    jruoho     }
   1308      1.1    jruoho 
   1309      1.1    jruoho 
   1310      1.1    jruoho     Mutex (MTXT, 0)
   1311      1.1    jruoho     Mutex (MTXX, 0)
   1312      1.1    jruoho 
   1313      1.1    jruoho     /*
   1314      1.1    jruoho      * Field Creation
   1315      1.1    jruoho      */
   1316      1.1    jruoho 
   1317  1.1.1.3  christos     Method (FLDS,, Serialized)
   1318      1.1    jruoho     {
   1319      1.1    jruoho         Store ("++++++++ Creating BufferFields", Debug)
   1320      1.1    jruoho         Name (BUF2, Buffer (128) {})
   1321      1.1    jruoho 
   1322      1.1    jruoho         CreateBitField (BUF2, 3, BIT2)
   1323      1.1    jruoho         CreateByteField (BUF2, 1, BYT2)
   1324      1.1    jruoho         CreateWordField (BUF2, 2, WRD2)
   1325      1.1    jruoho         CreateDwordField (BUF2, 4, DWD2)
   1326      1.1    jruoho         CreateQwordField (BUF2, 8, QWD2)
   1327      1.1    jruoho         CreateField (BUF2, 128, 12, FLD2)
   1328      1.1    jruoho         CreateField (BUF2, 148, 96, FLD3)
   1329      1.1    jruoho 
   1330      1.1    jruoho         Store (0x1, BIT2)
   1331      1.1    jruoho         Store (BIT2, Local0)
   1332      1.1    jruoho         if (LNotEqual (Local0, 0x1))
   1333      1.1    jruoho         {
   1334      1.1    jruoho             ERR_ (1)
   1335      1.1    jruoho         }
   1336      1.1    jruoho         else
   1337      1.1    jruoho         {
   1338      1.1    jruoho             Store (DerefOf (Index (BUF2, 0)), Local0)
   1339      1.1    jruoho             if (LNotEqual (Local0, 0x08))
   1340      1.1    jruoho             {
   1341      1.1    jruoho                 ERR_ (1)
   1342      1.1    jruoho             }
   1343      1.1    jruoho             else
   1344      1.1    jruoho             {
   1345      1.1    jruoho                 Store ("++++++++ Bit BufferField I/O PASS", Debug)
   1346      1.1    jruoho             }
   1347      1.1    jruoho         }
   1348      1.1    jruoho 
   1349      1.1    jruoho         Store (0x1A, BYT2)
   1350      1.1    jruoho         Store (BYT2, Local0)
   1351      1.1    jruoho         if (LNotEqual (Local0, 0x1A))
   1352      1.1    jruoho         {
   1353      1.1    jruoho             ERR_ (1)
   1354      1.1    jruoho         }
   1355      1.1    jruoho         else
   1356      1.1    jruoho         {
   1357      1.1    jruoho             Store ("++++++++ Byte BufferField I/O PASS", Debug)
   1358      1.1    jruoho         }
   1359      1.1    jruoho 
   1360      1.1    jruoho         Store (0x1234, WRD2)
   1361      1.1    jruoho         Store (WRD2, Local0)
   1362      1.1    jruoho         if (LNotEqual (Local0, 0x1234))
   1363      1.1    jruoho         {
   1364      1.1    jruoho             ERR_ (1)
   1365      1.1    jruoho         }
   1366      1.1    jruoho         else
   1367      1.1    jruoho         {
   1368      1.1    jruoho             Store ("++++++++ Word BufferField I/O PASS", Debug)
   1369      1.1    jruoho         }
   1370      1.1    jruoho 
   1371      1.1    jruoho         Store (0x123, FLD2)
   1372      1.1    jruoho         Store (FLD2, Local0)
   1373      1.1    jruoho         if (LNotEqual (Local0, 0x123))
   1374      1.1    jruoho         {
   1375      1.1    jruoho             ERR_ (1)
   1376      1.1    jruoho         }
   1377      1.1    jruoho         else
   1378      1.1    jruoho         {
   1379      1.1    jruoho             Store ("++++++++ 12-bit BufferField I/O PASS", Debug)
   1380      1.1    jruoho         }
   1381      1.1    jruoho 
   1382      1.1    jruoho         Store (0x12345678, DWD2)
   1383      1.1    jruoho         Store (DWD2, Local0)
   1384      1.1    jruoho         if (LNotEqual (Local0, 0x12345678))
   1385      1.1    jruoho         {
   1386      1.1    jruoho             ERR_ (1)
   1387      1.1    jruoho         }
   1388      1.1    jruoho         else
   1389      1.1    jruoho         {
   1390      1.1    jruoho             Store ("++++++++ Dword BufferField I/O PASS", Debug)
   1391      1.1    jruoho         }
   1392      1.1    jruoho 
   1393      1.1    jruoho         Store (0x1234567887654321, QWD2)
   1394      1.1    jruoho         Store (QWD2, Local0)
   1395      1.1    jruoho         if (LNotEqual (Local0, 0x1234567887654321))
   1396      1.1    jruoho         {
   1397      1.1    jruoho             ERR_ (1)
   1398      1.1    jruoho         }
   1399      1.1    jruoho         else
   1400      1.1    jruoho         {
   1401      1.1    jruoho             Store ("++++++++ Qword BufferField I/O PASS", Debug)
   1402      1.1    jruoho         }
   1403      1.1    jruoho     }
   1404      1.1    jruoho 
   1405      1.1    jruoho 
   1406      1.1    jruoho     /* Field execution */
   1407      1.1    jruoho 
   1408  1.1.1.3  christos     Method (FLDX,, Serialized)
   1409      1.1    jruoho     {
   1410      1.1    jruoho         Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
   1411      1.1    jruoho         {   //  Field:  SMEM overlay using 32-bit field elements
   1412      1.1    jruoho             SMD0,   32, //  32-bits
   1413      1.1    jruoho             SMD1,   32,     //  32-bits
   1414      1.1    jruoho             SMD2,   32,     //  32-bits
   1415      1.1    jruoho             SMD3,   32  //  32-bits
   1416      1.1    jruoho         }   //  Field:  SMEM overlay using 32-bit field elements
   1417      1.1    jruoho         Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
   1418      1.1    jruoho         {   //  Field:  SMEM overlay using greater than 32-bit field elements
   1419      1.1    jruoho             SME0,   69, //  larger than an integer (32 or 64)
   1420      1.1    jruoho             SME1,   97  //  larger than an integer
   1421      1.1    jruoho         }   //  Field:  SMEM overlay using greater than 32-bit field elements
   1422      1.1    jruoho     }
   1423      1.1    jruoho 
   1424      1.1    jruoho 
   1425      1.1    jruoho     Method (MTX_, )
   1426      1.1    jruoho     {
   1427      1.1    jruoho         /* Test "Force release" of mutex on method exit */
   1428      1.1    jruoho 
   1429      1.1    jruoho         Acquire (MTXT, 0xFFFF)
   1430      1.1    jruoho         Acquire (MTXX, 0xFFFF)
   1431      1.1    jruoho 
   1432      1.1    jruoho         Store ("++++++++ Acquiring Mutex MTX2", Debug)
   1433      1.1    jruoho         Acquire (_GL_, 0xFFFF)
   1434      1.1    jruoho 
   1435      1.1    jruoho 
   1436      1.1    jruoho         Store ("++++++++ Releasing Mutex MTX2", Debug)
   1437      1.1    jruoho         Release (_GL_)
   1438      1.1    jruoho     }
   1439      1.1    jruoho 
   1440      1.1    jruoho 
   1441  1.1.1.3  christos     Method (OBJ2, 1, Serialized)
   1442      1.1    jruoho     {
   1443      1.1    jruoho         Store ("++++++++ Creating Buffer BUFO", Debug)
   1444      1.1    jruoho         Name (BUFO, Buffer (32) {})
   1445      1.1    jruoho 
   1446      1.1    jruoho         Store ("++++++++ Creating OpRegion OPR2", Debug)
   1447      1.1    jruoho         OperationRegion (OPR2, SystemMemory, Arg0, 256)
   1448      1.1    jruoho 
   1449      1.1    jruoho         Store ("++++++++ Creating Field(s) in OpRegion OPR2", Debug)
   1450      1.1    jruoho         Field (OPR2, ByteAcc, NoLock, Preserve)
   1451      1.1    jruoho         {
   1452      1.1    jruoho             IDX2, 8,
   1453      1.1    jruoho             DAT2, 8,
   1454      1.1    jruoho             BNK2, 4
   1455      1.1    jruoho         }
   1456      1.1    jruoho 
   1457      1.1    jruoho         Store ("++++++++ Creating BankField BNK2 in OpRegion OPR2", Debug)
   1458      1.1    jruoho         //
   1459      1.1    jruoho         // mcw 3/20/00 - changed FET0, 4, FET1, 3 to FET0, 1, FET1, 1
   1460      1.1    jruoho         //
   1461      1.1    jruoho         BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
   1462      1.1    jruoho         {
   1463      1.1    jruoho             FET0, 4,
   1464      1.1    jruoho             FET1, 3
   1465      1.1    jruoho         }
   1466      1.1    jruoho 
   1467      1.1    jruoho         Store ("++++++++ Creating IndexField", Debug)
   1468      1.1    jruoho         IndexField (IDX2, DAT2, ByteAcc, NoLock, Preserve)
   1469      1.1    jruoho         {
   1470      1.1    jruoho             FET2, 4,
   1471      1.1    jruoho             FET3, 3
   1472      1.1    jruoho         }
   1473      1.1    jruoho 
   1474      1.1    jruoho         Store ("++++++++ SizeOf (BUFO)", Debug)
   1475      1.1    jruoho         SizeOf (BUFO)
   1476      1.1    jruoho 
   1477      1.1    jruoho         Store ("++++++++ Store (SizeOf (BUFO), Local0)", Debug)
   1478      1.1    jruoho         Store (SizeOf (BUFO), Local0)
   1479      1.1    jruoho 
   1480      1.1    jruoho         Store ("++++++++ Concatenate (\"abd\", \"def\", Local0)", Debug)
   1481      1.1    jruoho         Concatenate ("abd", "def", Local0)
   1482      1.1    jruoho         Store (Local0, Debug)
   1483      1.1    jruoho 
   1484      1.1    jruoho         Store ("++++++++ Concatenate (\"abd\", 0x7B, Local0)", Debug)
   1485      1.1    jruoho         Concatenate ("abd", 0x7B, Local0)
   1486      1.1    jruoho         Store (Local0, Debug)
   1487      1.1    jruoho 
   1488      1.1    jruoho         Store ("++++++++ Creating Event EVT2", Debug)
   1489      1.1    jruoho         Event (EVT2)
   1490      1.1    jruoho 
   1491      1.1    jruoho         Store ("++++++++ Creating Mutex MTX2", Debug)
   1492      1.1    jruoho         Mutex (MTX2, 0)
   1493      1.1    jruoho 
   1494      1.1    jruoho         Store ("++++++++ Creating Alias MTXA to MTX2", Debug)
   1495      1.1    jruoho         Alias (MTX2, MTXA)
   1496      1.1    jruoho 
   1497      1.1    jruoho         Store ("++++++++ Acquiring Mutex MTX2", Debug)
   1498      1.1    jruoho         Acquire (MTX2, 0xFFFF)
   1499      1.1    jruoho 
   1500      1.1    jruoho         Store ("++++++++ Acquiring Mutex MTX2 (2nd acquire)", Debug)
   1501      1.1    jruoho         Acquire (MTX2, 1)
   1502      1.1    jruoho 
   1503      1.1    jruoho         Store ("++++++++ Releasing Mutex MTX2", Debug)
   1504      1.1    jruoho         Release (MTX2)
   1505      1.1    jruoho 
   1506      1.1    jruoho         // Type 1 opcodes
   1507      1.1    jruoho 
   1508      1.1    jruoho         Store ("++++++++ Signalling Event EVT2", Debug)
   1509      1.1    jruoho         Signal (EVT2)
   1510      1.1    jruoho 
   1511      1.1    jruoho         Store ("++++++++ Resetting Event EVT2", Debug)
   1512      1.1    jruoho         Reset (EVT2)
   1513      1.1    jruoho 
   1514      1.1    jruoho         Store ("++++++++ Signalling Event EVT2", Debug)
   1515      1.1    jruoho         Signal (EVT2)
   1516      1.1    jruoho 
   1517      1.1    jruoho         Store ("++++++++ Waiting Event EVT2", Debug)
   1518      1.1    jruoho         Wait (EVT2, 0xFFFF)
   1519      1.1    jruoho 
   1520      1.1    jruoho         Store ("++++++++ Sleep", Debug)
   1521      1.1    jruoho         Sleep (100)
   1522      1.1    jruoho 
   1523      1.1    jruoho         Store ("++++++++ Stall", Debug)
   1524      1.1    jruoho         Stall (254)
   1525      1.1    jruoho 
   1526      1.1    jruoho         Store ("++++++++ NoOperation", Debug)
   1527      1.1    jruoho         Noop
   1528      1.1    jruoho 
   1529      1.1    jruoho         // Type 2 Opcodes
   1530      1.1    jruoho 
   1531      1.1    jruoho         Store ("++++++++ Return from Method OBJ2", Debug)
   1532      1.1    jruoho         return (4)
   1533      1.1    jruoho     }
   1534      1.1    jruoho 
   1535      1.1    jruoho 
   1536      1.1    jruoho     Method (NUM1, 0)
   1537      1.1    jruoho     {
   1538      1.1    jruoho         /* ADD */
   1539      1.1    jruoho 
   1540      1.1    jruoho         Store ("++++++++ Add (0x12345678, 0x11111111, Local0)", Debug)
   1541      1.1    jruoho         Add (0x12345678, 0x11111111, Local0)
   1542      1.1    jruoho 
   1543      1.1    jruoho         Store ("++++++++ Store (Add (0x12345678, 0x11111111), Local1)", Debug)
   1544      1.1    jruoho         Store (Add (0x12345678, 0x11111111), Local1)
   1545      1.1    jruoho 
   1546      1.1    jruoho         Store ("++++++++ Checking result from ADD", Debug)
   1547      1.1    jruoho         if (LNotEqual (Local0, Local1))
   1548      1.1    jruoho         {
   1549      1.1    jruoho             ERR_ (0)
   1550      1.1    jruoho         }
   1551      1.1    jruoho 
   1552      1.1    jruoho 
   1553      1.1    jruoho         /* SUBTRACT */
   1554      1.1    jruoho 
   1555      1.1    jruoho         Store ("++++++++ Subtract (0x87654321, 0x11111111, Local4)", Debug)
   1556      1.1    jruoho         Subtract (0x87654321, 0x11111111, Local4)
   1557      1.1    jruoho 
   1558      1.1    jruoho         Store ("++++++++ Store (Subtract (0x87654321, 0x11111111), Local5)", Debug)
   1559      1.1    jruoho         Store (Subtract (0x87654321, 0x11111111), Local5)
   1560      1.1    jruoho 
   1561      1.1    jruoho         Store ("++++++++ Checking result from SUBTRACT", Debug)
   1562      1.1    jruoho         if (LNotEqual (Local4, Local5))
   1563      1.1    jruoho         {
   1564      1.1    jruoho             ERR_ (0)
   1565      1.1    jruoho         }
   1566      1.1    jruoho 
   1567      1.1    jruoho 
   1568      1.1    jruoho         /* MULTIPLY */
   1569      1.1    jruoho 
   1570      1.1    jruoho         Store ("++++++++ Multiply (33, 10, Local6)", Debug)
   1571      1.1    jruoho         Multiply (33, 10, Local6)
   1572      1.1    jruoho 
   1573      1.1    jruoho         Store ("++++++++ Store (Multiply (33, 10), Local7)", Debug)
   1574      1.1    jruoho         Store (Multiply (33, 10), Local7)
   1575      1.1    jruoho 
   1576      1.1    jruoho 
   1577      1.1    jruoho         Store ("++++++++ Checking result from MULTIPLY", Debug)
   1578      1.1    jruoho         if (LNotEqual (Local6, Local7))
   1579      1.1    jruoho         {
   1580      1.1    jruoho             ERR_ (0)
   1581      1.1    jruoho         }
   1582      1.1    jruoho 
   1583      1.1    jruoho 
   1584      1.1    jruoho         /* DIVIDE */
   1585      1.1    jruoho 
   1586      1.1    jruoho         Store ("++++++++ Divide (100, 9, Local1, Local2)", Debug)
   1587      1.1    jruoho         Divide (100, 9, Local1, Local2)
   1588      1.1    jruoho 
   1589      1.1    jruoho         Store ("++++++++ Store (Divide (100, 9), Local3)", Debug)
   1590      1.1    jruoho         Store (Divide (100, 9), Local3)
   1591      1.1    jruoho 
   1592      1.1    jruoho         Store ("++++++++ Checking (quotient) result from DIVIDE", Debug)
   1593      1.1    jruoho         if (LNotEqual (Local2, Local3))
   1594      1.1    jruoho         {
   1595      1.1    jruoho             ERR_ (0)
   1596      1.1    jruoho         }
   1597      1.1    jruoho 
   1598      1.1    jruoho 
   1599      1.1    jruoho         /* INCREMENT */
   1600      1.1    jruoho 
   1601      1.1    jruoho         Store ("++++++++ Increment (Local0)", Debug)
   1602      1.1    jruoho         Store (1, Local0)
   1603      1.1    jruoho         Store (2, Local1)
   1604      1.1    jruoho         Increment (Local0)
   1605      1.1    jruoho 
   1606      1.1    jruoho         Store ("++++++++ Checking result from INCREMENT", Debug)
   1607      1.1    jruoho         if (LNotEqual (Local0, Local1))
   1608      1.1    jruoho         {
   1609      1.1    jruoho             ERR_ (0)
   1610      1.1    jruoho         }
   1611      1.1    jruoho 
   1612      1.1    jruoho 
   1613      1.1    jruoho         /* DECREMENT */
   1614      1.1    jruoho 
   1615      1.1    jruoho         Store ("++++++++ Decrement (Local0)", Debug)
   1616      1.1    jruoho         Store (2, Local0)
   1617      1.1    jruoho         Store (1, Local1)
   1618      1.1    jruoho         Decrement (Local0)
   1619      1.1    jruoho 
   1620      1.1    jruoho         Store ("++++++++ Checking result from DECREMENT", Debug)
   1621      1.1    jruoho         if (LNotEqual (Local0, Local1))
   1622      1.1    jruoho         {
   1623      1.1    jruoho             ERR_ (0)
   1624      1.1    jruoho         }
   1625      1.1    jruoho 
   1626      1.1    jruoho 
   1627      1.1    jruoho         /* TOBCD */
   1628      1.1    jruoho         /* FROMBCD */
   1629      1.1    jruoho 
   1630      1.1    jruoho         Store ("++++++++ ToBCD (0x1234, Local5)", Debug)
   1631      1.1    jruoho         ToBCD (0x1234, Local5)
   1632      1.1    jruoho 
   1633      1.1    jruoho         Store ("++++++++ FromBCD (Local5, Local6)", Debug)
   1634      1.1    jruoho         FromBCD (Local5, Local6)
   1635      1.1    jruoho 
   1636      1.1    jruoho         Store ("++++++++ Return (Local6)", Debug)
   1637      1.1    jruoho         Return (Local6)
   1638      1.1    jruoho     }
   1639      1.1    jruoho 
   1640      1.1    jruoho 
   1641      1.1    jruoho     Method (CHEK)
   1642      1.1    jruoho     {
   1643      1.1    jruoho 
   1644      1.1    jruoho         Store (3, Local0)
   1645      1.1    jruoho         Store (3, Debug)
   1646      1.1    jruoho         Store (Local0, Debug)
   1647      1.1    jruoho         Store (7, Local1)
   1648      1.1    jruoho 
   1649      1.1    jruoho         Add (Local0, Local1)
   1650      1.1    jruoho         if (LNotEqual (Local0, 3))
   1651      1.1    jruoho         {
   1652      1.1    jruoho             ERR_ (2)
   1653      1.1    jruoho         }
   1654      1.1    jruoho         if (LNotEqual (Local1, 7))
   1655      1.1    jruoho         {
   1656      1.1    jruoho             ERR_ (2)
   1657      1.1    jruoho         }
   1658      1.1    jruoho 
   1659      1.1    jruoho 
   1660      1.1    jruoho         Add (Local0, Local1, Local2)
   1661      1.1    jruoho         if (LNotEqual (Local0, 3))
   1662      1.1    jruoho         {
   1663      1.1    jruoho             ERR_ (2)
   1664      1.1    jruoho         }
   1665      1.1    jruoho         if (LNotEqual (Local1, 7))
   1666      1.1    jruoho         {
   1667      1.1    jruoho             ERR_ (2)
   1668      1.1    jruoho         }
   1669      1.1    jruoho     }
   1670      1.1    jruoho 
   1671      1.1    jruoho 
   1672      1.1    jruoho     Method (RET1)
   1673      1.1    jruoho     {
   1674      1.1    jruoho         Store (3, Local0)
   1675      1.1    jruoho         Return (Local0)
   1676      1.1    jruoho     }
   1677      1.1    jruoho 
   1678      1.1    jruoho     Method (RET2)
   1679      1.1    jruoho     {
   1680      1.1    jruoho         Return (RET1())
   1681      1.1    jruoho     }
   1682      1.1    jruoho 
   1683      1.1    jruoho     Method (RETZ)
   1684      1.1    jruoho     {
   1685      1.1    jruoho         RET2 ()
   1686      1.1    jruoho     }
   1687      1.1    jruoho 
   1688      1.1    jruoho 
   1689      1.1    jruoho     Method (BITZ)
   1690      1.1    jruoho     {
   1691      1.1    jruoho         Store ("++++++++ FindSetLeftBit (0x00100100, Local0)", Debug)
   1692      1.1    jruoho         FindSetLeftBit (0x00100100, Local0)
   1693      1.1    jruoho         if (LNotEqual (Local0, 21))
   1694      1.1    jruoho         {
   1695      1.1    jruoho             ERR_ (1)
   1696      1.1    jruoho         }
   1697      1.1    jruoho 
   1698      1.1    jruoho         Store ("++++++++ FindSetRightBit (0x00100100, Local1)", Debug)
   1699      1.1    jruoho         FindSetRightBit (0x00100100, Local1)
   1700      1.1    jruoho         if (LNotEqual (Local1, 9))
   1701      1.1    jruoho         {
   1702      1.1    jruoho             ERR_ (1)
   1703      1.1    jruoho         }
   1704      1.1    jruoho 
   1705      1.1    jruoho         Store ("++++++++ And (0xF0F0F0F0, 0x11111111, Local2)", Debug)
   1706      1.1    jruoho         And (0xF0F0F0F0, 0x11111111, Local2)
   1707      1.1    jruoho         if (LNotEqual (Local2, 0x10101010))
   1708      1.1    jruoho         {
   1709      1.1    jruoho             ERR_ (1)
   1710      1.1    jruoho         }
   1711      1.1    jruoho 
   1712      1.1    jruoho         Store ("++++++++ NAnd (0xF0F0F0F0, 0x11111111, Local3)", Debug)
   1713      1.1    jruoho         NAnd (0xF0F0F0F0, 0x11111111, Local3)
   1714      1.1    jruoho         if (LNotEqual (Local3, 0xEFEFEFEF))
   1715      1.1    jruoho         {
   1716      1.1    jruoho             ERR_ (1)
   1717      1.1    jruoho         }
   1718      1.1    jruoho 
   1719      1.1    jruoho         Store ("++++++++ Or (0x11111111, 0x22222222, Local4)", Debug)
   1720      1.1    jruoho         Or (0x11111111, 0x22222222, Local4)
   1721      1.1    jruoho         if (LNotEqual (Local4, 0x33333333))
   1722      1.1    jruoho         {
   1723      1.1    jruoho             ERR_ (1)
   1724      1.1    jruoho         }
   1725      1.1    jruoho 
   1726      1.1    jruoho         Store ("++++++++ NOr (0x11111111, 0x22222222, Local5)", Debug)
   1727      1.1    jruoho         NOr (0x11111111, 0x22222222, Local5)
   1728      1.1    jruoho         if (LNotEqual (Local5, 0xCCCCCCCC))
   1729      1.1    jruoho         {
   1730      1.1    jruoho             ERR_ (1)
   1731      1.1    jruoho         }
   1732      1.1    jruoho 
   1733      1.1    jruoho         Store ("++++++++ XOr (0x11113333, 0x22222222, Local6)", Debug)
   1734      1.1    jruoho         XOr (0x11113333, 0x22222222, Local6)
   1735      1.1    jruoho         if (LNotEqual (Local6, 0x33331111))
   1736      1.1    jruoho         {
   1737      1.1    jruoho             ERR_ (1)
   1738      1.1    jruoho         }
   1739      1.1    jruoho 
   1740      1.1    jruoho         Store ("++++++++ ShiftLeft (0x11112222, 2, Local7)", Debug)
   1741      1.1    jruoho         ShiftLeft (0x11112222, 2, Local7)
   1742      1.1    jruoho         if (LNotEqual (Local7, 0x44448888))
   1743      1.1    jruoho         {
   1744      1.1    jruoho             ERR_ (1)
   1745      1.1    jruoho         }
   1746      1.1    jruoho 
   1747      1.1    jruoho         Store ("++++++++ ShiftRight (Local7, 2, Local7)", Debug)
   1748      1.1    jruoho         ShiftRight (Local7, 2, Local7)
   1749      1.1    jruoho         if (LNotEqual (Local7, 0x11112222))
   1750      1.1    jruoho         {
   1751      1.1    jruoho             ERR_ (1)
   1752      1.1    jruoho         }
   1753      1.1    jruoho 
   1754      1.1    jruoho 
   1755      1.1    jruoho         Store ("++++++++ Not (Local0, Local1)", Debug)
   1756      1.1    jruoho         Store (0x22224444, Local0)
   1757      1.1    jruoho         Not (Local0, Local1)
   1758      1.1    jruoho         if (LNotEqual (Local0, 0x22224444))
   1759      1.1    jruoho         {
   1760      1.1    jruoho             ERR_ (2)
   1761      1.1    jruoho         }
   1762      1.1    jruoho 
   1763      1.1    jruoho         if (LNotEqual (Local1, 0xDDDDBBBB))
   1764      1.1    jruoho         {
   1765      1.1    jruoho             ERR_ (1)
   1766      1.1    jruoho         }
   1767      1.1    jruoho 
   1768      1.1    jruoho         Return (Local7)
   1769      1.1    jruoho     }
   1770      1.1    jruoho 
   1771      1.1    jruoho 
   1772      1.1    jruoho     Method (LOGS)
   1773      1.1    jruoho     {
   1774      1.1    jruoho 
   1775      1.1    jruoho         Store ("++++++++ Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)", Debug)
   1776      1.1    jruoho         Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)
   1777      1.1    jruoho 
   1778      1.1    jruoho         Store ("++++++++ Store (LEqual (0xFFFFFFFF, 0x11111111), Local)", Debug)
   1779      1.1    jruoho         Store (LEqual (0xFFFFFFFF, 0x11111111), Local1)
   1780      1.1    jruoho 
   1781      1.1    jruoho         Store ("++++++++ Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)", Debug)
   1782      1.1    jruoho         Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)
   1783      1.1    jruoho 
   1784      1.1    jruoho         Store ("++++++++ Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)", Debug)
   1785      1.1    jruoho         Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)
   1786      1.1    jruoho 
   1787      1.1    jruoho         Store ("++++++++ Store (LLess (0xFFFFFFFF, 0x11111111), Local4)", Debug)
   1788      1.1    jruoho         Store (LLess (0xFFFFFFFF, 0x11111111), Local4)
   1789      1.1    jruoho 
   1790      1.1    jruoho         Store ("++++++++ Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)", Debug)
   1791      1.1    jruoho         Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)
   1792      1.1    jruoho 
   1793      1.1    jruoho         Store ("++++++++ Store (LNot (0x31313131), Local6)", Debug)
   1794      1.1    jruoho         Store (0x00001111, Local6)
   1795      1.1    jruoho         Store (LNot (Local6), Local7)
   1796      1.1    jruoho         if (LNotEqual (Local6, 0x00001111))
   1797      1.1    jruoho         {
   1798      1.1    jruoho             ERR_ (2)
   1799      1.1    jruoho         }
   1800      1.1    jruoho 
   1801      1.1    jruoho         if (LNotEqual (Local7, 0x0))
   1802      1.1    jruoho         {
   1803      1.1    jruoho             ERR_ (1)
   1804      1.1    jruoho         }
   1805      1.1    jruoho 
   1806      1.1    jruoho 
   1807      1.1    jruoho         Store ("++++++++ Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)", Debug)
   1808      1.1    jruoho         Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)
   1809      1.1    jruoho 
   1810      1.1    jruoho         Store ("++++++++ Lor (0x0, 0x1)", Debug)
   1811      1.1    jruoho         if (Lor (0x0, 0x1))
   1812      1.1    jruoho         {
   1813      1.1    jruoho             Store ("+_+_+_+_+ Lor (0x0, 0x1) returned TRUE", Debug)
   1814      1.1    jruoho         }
   1815      1.1    jruoho 
   1816      1.1    jruoho         return (Local7)
   1817      1.1    jruoho     }
   1818      1.1    jruoho 
   1819      1.1    jruoho 
   1820      1.1    jruoho     Method (COND)
   1821      1.1    jruoho     {
   1822      1.1    jruoho         Store ("++++++++ Store (0x4, Local0)", Debug)
   1823      1.1    jruoho         Store (0x4, Local0)
   1824      1.1    jruoho 
   1825      1.1    jruoho         Store ("++++++++ While (Local0)", Debug)
   1826      1.1    jruoho         While (Local0)
   1827      1.1    jruoho         {
   1828      1.1    jruoho             Store ("++++++++ Decrement (Local0)", Debug)
   1829      1.1    jruoho             Decrement (Local0)
   1830      1.1    jruoho         }
   1831      1.1    jruoho 
   1832      1.1    jruoho 
   1833      1.1    jruoho         Store ("++++++++ Store (0x3, Local6)", Debug)
   1834      1.1    jruoho         Store (0x3, Local6)
   1835      1.1    jruoho 
   1836      1.1    jruoho         Store ("++++++++ While (Subtract (Local6, 1))", Debug)
   1837      1.1    jruoho         While (Subtract (Local6, 1))
   1838      1.1    jruoho         {
   1839      1.1    jruoho             Store ("++++++++ Decrement (Local6)", Debug)
   1840      1.1    jruoho             Decrement (Local6)
   1841      1.1    jruoho         }
   1842      1.1    jruoho 
   1843      1.1    jruoho 
   1844      1.1    jruoho         Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
   1845      1.1    jruoho         If (LGreater (0x2, 0x1))
   1846      1.1    jruoho         {
   1847      1.1    jruoho             Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
   1848      1.1    jruoho             If (LEqual (0x11111111, 0x22222222))
   1849      1.1    jruoho             {
   1850      1.1    jruoho                 Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
   1851      1.1    jruoho             }
   1852      1.1    jruoho 
   1853      1.1    jruoho             else
   1854      1.1    jruoho             {
   1855      1.1    jruoho                 Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
   1856      1.1    jruoho                 If (LNot (0x0))
   1857      1.1    jruoho                 {
   1858      1.1    jruoho                     Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
   1859      1.1    jruoho                     If (LAnd (0xEEEEEEEE, 0x2))
   1860      1.1    jruoho                     {
   1861      1.1    jruoho                         Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
   1862      1.1    jruoho                         If (LLess (0x44444444, 0x3))
   1863      1.1    jruoho                         {
   1864      1.1    jruoho                             Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
   1865      1.1    jruoho                         }
   1866      1.1    jruoho 
   1867      1.1    jruoho                         else
   1868      1.1    jruoho                         {
   1869      1.1    jruoho                             Store ("++++++++ Exiting from nested IF/ELSE statements", Debug)
   1870      1.1    jruoho                         }
   1871      1.1    jruoho                     }
   1872      1.1    jruoho                 }
   1873      1.1    jruoho             }
   1874      1.1    jruoho         }
   1875      1.1    jruoho 
   1876      1.1    jruoho 
   1877      1.1    jruoho         Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
   1878      1.1    jruoho         If (LGreater (0x2, 0x1))
   1879      1.1    jruoho         {
   1880      1.1    jruoho             Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
   1881      1.1    jruoho             If (LEqual (0x11111111, 0x22222222))
   1882      1.1    jruoho             {
   1883      1.1    jruoho                 Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
   1884      1.1    jruoho             }
   1885      1.1    jruoho 
   1886      1.1    jruoho             else
   1887      1.1    jruoho             {
   1888      1.1    jruoho                 Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
   1889      1.1    jruoho                 If (LNot (0x0))
   1890      1.1    jruoho                 {
   1891      1.1    jruoho                     Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
   1892      1.1    jruoho                     If (LAnd (0xEEEEEEEE, 0x2))
   1893      1.1    jruoho                     {
   1894      1.1    jruoho                         Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
   1895      1.1    jruoho                         If (LLess (0x44444444, 0x3))
   1896      1.1    jruoho                         {
   1897      1.1    jruoho                             Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
   1898      1.1    jruoho                         }
   1899      1.1    jruoho 
   1900      1.1    jruoho                         else
   1901      1.1    jruoho                         {
   1902      1.1    jruoho                             Store ("++++++++ Returning from nested IF/ELSE statements", Debug)
   1903      1.1    jruoho                             Return (Local6)
   1904      1.1    jruoho                         }
   1905      1.1    jruoho                     }
   1906      1.1    jruoho                 }
   1907      1.1    jruoho             }
   1908      1.1    jruoho         }
   1909      1.1    jruoho 
   1910      1.1    jruoho     }
   1911      1.1    jruoho 
   1912      1.1    jruoho 
   1913  1.1.1.3  christos     Method (REFS,, Serialized)
   1914      1.1    jruoho     {
   1915      1.1    jruoho         Name (BBUF, Buffer() {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7})
   1916      1.1    jruoho 
   1917      1.1    jruoho         Name (NEST, Package ()
   1918      1.1    jruoho         {
   1919      1.1    jruoho             Package ()
   1920      1.1    jruoho             {
   1921      1.1    jruoho                 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
   1922      1.1    jruoho             },
   1923      1.1    jruoho             Package ()
   1924      1.1    jruoho             {
   1925      1.1    jruoho                 0x11, 0x12, 0x12, 0x14, 0x15, 0x16
   1926      1.1    jruoho             }
   1927      1.1    jruoho         })
   1928      1.1    jruoho 
   1929      1.1    jruoho         Store (RefOf (MAIN), Local5)
   1930      1.1    jruoho 
   1931      1.1    jruoho         // For this to work, ABCD must NOT exist.
   1932      1.1    jruoho 
   1933      1.1    jruoho         Store (CondRefOf (ABCD, Local0), Local1)
   1934      1.1    jruoho         if (LNotEqual (Local1, 0))
   1935      1.1    jruoho         {
   1936      1.1    jruoho             ERR_ (2)
   1937      1.1    jruoho         }
   1938      1.1    jruoho 
   1939      1.1    jruoho         Store (CondRefOf (BBUF, Local0), Local1)
   1940      1.1    jruoho         if (LNotEqual (Local1, Ones))
   1941      1.1    jruoho         {
   1942      1.1    jruoho             ERR_ (2)
   1943      1.1    jruoho         }
   1944      1.1    jruoho 
   1945      1.1    jruoho         Store (DeRefOf (Index (BBUF, 3)), Local6)
   1946      1.1    jruoho         if (LNotEqual (Local6, 0xB3))
   1947      1.1    jruoho         {
   1948      1.1    jruoho             ERR_ (2)
   1949      1.1    jruoho         }
   1950      1.1    jruoho 
   1951      1.1    jruoho         Store (DeRefOf (Index (DeRefOf (Index (NEST, 1)), 3)), Local0)
   1952      1.1    jruoho         if (LNotEqual (Local0, 0x14))
   1953      1.1    jruoho         {
   1954      1.1    jruoho             ERR_ (2)
   1955      1.1    jruoho         }
   1956      1.1    jruoho 
   1957      1.1    jruoho 
   1958      1.1    jruoho         Store (0x11223344, Local0)
   1959      1.1    jruoho         Store (RefOf (Local0), Local1)
   1960      1.1    jruoho 
   1961      1.1    jruoho         Store (DerefOf (Local1), Local2)
   1962      1.1    jruoho         If (LNotEqual (Local2, 0x11223344))
   1963      1.1    jruoho         {
   1964      1.1    jruoho             ERR_ (2)
   1965      1.1    jruoho         }
   1966      1.1    jruoho 
   1967      1.1    jruoho 
   1968      1.1    jruoho     /* Parser thinks this is a method invocation!! */
   1969      1.1    jruoho 
   1970      1.1    jruoho     //  RefOf (MAIN)
   1971      1.1    jruoho 
   1972      1.1    jruoho 
   1973      1.1    jruoho     //  RefOf (R___)
   1974      1.1    jruoho     //  RefOf (BBUF)
   1975      1.1    jruoho 
   1976      1.1    jruoho     //  Store (RefOf (Local0), Local1)
   1977      1.1    jruoho 
   1978      1.1    jruoho     //  CondRefOf (BBUF, Local2)
   1979      1.1    jruoho     //  CondRefOf (R___, Local3)
   1980      1.1    jruoho 
   1981      1.1    jruoho     //  Store (DerefOf (Local1), Local4)
   1982      1.1    jruoho 
   1983      1.1    jruoho     //  Return (Local4)
   1984      1.1    jruoho     }
   1985      1.1    jruoho 
   1986      1.1    jruoho 
   1987  1.1.1.3  christos     Method (INDX, 0, Serialized)
   1988      1.1    jruoho     {
   1989      1.1    jruoho         Name(STAT,Package(4){})
   1990      1.1    jruoho         Store(0x44443333,Index(STAT,0))
   1991      1.1    jruoho     }
   1992      1.1    jruoho 
   1993      1.1    jruoho //=================================================================
   1994      1.1    jruoho //=================================================================
   1995      1.1    jruoho //===================== iPCO TESTS ================================
   1996      1.1    jruoho //=================================================================
   1997      1.1    jruoho //=================================================================
   1998      1.1    jruoho //
   1999      1.1    jruoho //
   2000      1.1    jruoho // test IfElseOp.asl
   2001      1.1    jruoho //
   2002      1.1    jruoho //  test for IfOp and ElseOp, including validation of object stack cleanup
   2003      1.1    jruoho //
   2004      1.1    jruoho     Device (IFEL)
   2005      1.1    jruoho     {
   2006      1.1    jruoho         Name (DWRD, 1)
   2007      1.1    jruoho         Name (RSLT, 0)
   2008      1.1    jruoho 
   2009      1.1    jruoho         //  IFNR control method executes IfOp branch with NO nested Return
   2010      1.1    jruoho         //  and no Else branch
   2011      1.1    jruoho         Method (IFNR)
   2012      1.1    jruoho         {
   2013      1.1    jruoho             Store (DWRD, RSLT)
   2014      1.1    jruoho             If (LEqual (DWRD, 1))
   2015      1.1    jruoho             {
   2016      1.1    jruoho                 Store (0, RSLT)
   2017      1.1    jruoho             }
   2018      1.1    jruoho         }   //  IFNR
   2019      1.1    jruoho 
   2020      1.1    jruoho         //  NINR control method does not execute If branch and has no Else branch
   2021      1.1    jruoho         Method (NINR)
   2022      1.1    jruoho         {
   2023      1.1    jruoho             Store (0, RSLT)
   2024      1.1    jruoho             If (LNotEqual (DWRD, 1))
   2025      1.1    jruoho             {
   2026      1.1    jruoho                 Store (DWRD, RSLT)
   2027      1.1    jruoho             }
   2028      1.1    jruoho         }   //  NINR
   2029      1.1    jruoho 
   2030      1.1    jruoho         //  IENR control method executes IfOp branch with NO nested Return
   2031      1.1    jruoho         Method (IENR)
   2032      1.1    jruoho         {
   2033      1.1    jruoho             If (LEqual (DWRD, 1))
   2034      1.1    jruoho             {
   2035      1.1    jruoho                 Store (0, RSLT)
   2036      1.1    jruoho             }
   2037      1.1    jruoho             Else
   2038      1.1    jruoho             {
   2039      1.1    jruoho                 Store (DWRD, RSLT)
   2040      1.1    jruoho             }
   2041      1.1    jruoho         }   //  IENR
   2042      1.1    jruoho 
   2043      1.1    jruoho         //  ELNR control method executes ElseOp branch with NO nested Return
   2044      1.1    jruoho         Method (ELNR)
   2045      1.1    jruoho         {
   2046      1.1    jruoho             If (LNotEqual (DWRD, 1))
   2047      1.1    jruoho             {
   2048      1.1    jruoho                 Store (DWRD, RSLT)
   2049      1.1    jruoho             }
   2050      1.1    jruoho             Else
   2051      1.1    jruoho             {
   2052      1.1    jruoho                 Store (0, RSLT)
   2053      1.1    jruoho             }
   2054      1.1    jruoho         }   //  ELNR
   2055      1.1    jruoho 
   2056      1.1    jruoho         //  IFRT control method executes IfOp branch with nested Return with
   2057      1.1    jruoho         //  no Else branch
   2058      1.1    jruoho         Method (IFRT)
   2059      1.1    jruoho 
   2060      1.1    jruoho         {
   2061      1.1    jruoho             If (LEqual (DWRD, 1))
   2062      1.1    jruoho             {
   2063      1.1    jruoho                 Return (0)
   2064      1.1    jruoho             }
   2065      1.1    jruoho             Return (DWRD)
   2066      1.1    jruoho         }   //  IFRT
   2067      1.1    jruoho 
   2068      1.1    jruoho         //  IERT control method executes IfOp branch with nested Return with
   2069      1.1    jruoho         //  Else branch
   2070      1.1    jruoho         Method (IERT)
   2071      1.1    jruoho         {
   2072      1.1    jruoho             If (LEqual (DWRD, 1))
   2073      1.1    jruoho             {
   2074      1.1    jruoho                 Return (0)
   2075      1.1    jruoho             }
   2076      1.1    jruoho             Else
   2077      1.1    jruoho             {
   2078      1.1    jruoho                 Return (DWRD)
   2079      1.1    jruoho             }
   2080      1.1    jruoho         }   //  IERT
   2081      1.1    jruoho 
   2082      1.1    jruoho         //  ELRT control method executes ElseOp branch with nested Return
   2083      1.1    jruoho         Method (ELRT)
   2084      1.1    jruoho         {
   2085      1.1    jruoho             If (LNotEqual (DWRD, 1))
   2086      1.1    jruoho             {
   2087      1.1    jruoho                 Return (DWRD)
   2088      1.1    jruoho             }
   2089      1.1    jruoho             Else
   2090      1.1    jruoho             {
   2091      1.1    jruoho                 Return (0)
   2092      1.1    jruoho             }
   2093      1.1    jruoho         }   //  ELRT
   2094      1.1    jruoho 
   2095      1.1    jruoho         Method (TEST)
   2096      1.1    jruoho         {
   2097      1.1    jruoho             Store ("++++++++ IfElseOp Test", Debug)
   2098      1.1    jruoho 
   2099      1.1    jruoho             //  IfOp with NO return value
   2100      1.1    jruoho             IFNR()
   2101      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2102      1.1    jruoho             {
   2103      1.1    jruoho                 Return (RSLT)
   2104      1.1    jruoho             }
   2105      1.1    jruoho 
   2106      1.1    jruoho             //  IfOp with NO return value
   2107      1.1    jruoho             NINR()
   2108      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2109      1.1    jruoho             {
   2110      1.1    jruoho                 Return (RSLT)
   2111      1.1    jruoho             }
   2112      1.1    jruoho 
   2113      1.1    jruoho             //  IfOp with NO return value
   2114      1.1    jruoho             IENR()
   2115      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2116      1.1    jruoho             {
   2117      1.1    jruoho                 Return (RSLT)
   2118      1.1    jruoho             }
   2119      1.1    jruoho 
   2120      1.1    jruoho             //  ElseOp with NO return value
   2121      1.1    jruoho             ELNR()
   2122      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2123      1.1    jruoho             {
   2124      1.1    jruoho                 Return (RSLT)
   2125      1.1    jruoho             }
   2126      1.1    jruoho 
   2127      1.1    jruoho             //  IfOp with return value
   2128      1.1    jruoho             Store (IFRT, RSLT)
   2129      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2130      1.1    jruoho             {
   2131      1.1    jruoho                 Return (RSLT)
   2132      1.1    jruoho             }
   2133      1.1    jruoho 
   2134      1.1    jruoho             //  IfOp with return value
   2135      1.1    jruoho             Store (IERT, RSLT)
   2136      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2137      1.1    jruoho             {
   2138      1.1    jruoho                 Return (RSLT)
   2139      1.1    jruoho             }
   2140      1.1    jruoho 
   2141      1.1    jruoho             //  ElseOp with return value
   2142      1.1    jruoho             Store (ELRT, RSLT)
   2143      1.1    jruoho             If (LNotEqual (RSLT, 0))
   2144      1.1    jruoho             {
   2145      1.1    jruoho                 Return (RSLT)
   2146      1.1    jruoho             }
   2147      1.1    jruoho 
   2148      1.1    jruoho             Return (0)
   2149      1.1    jruoho         }   //  TEST
   2150      1.1    jruoho     }   //  IFEL
   2151      1.1    jruoho 
   2152      1.1    jruoho //
   2153      1.1    jruoho // test NoSave.asl
   2154      1.1    jruoho //
   2155      1.1    jruoho //
   2156      1.1    jruoho //  Internal test cases to validate IfOp (Operator (,,)) where Operator
   2157      1.1    jruoho //  target is ZeroOp to throw away the results.
   2158      1.1    jruoho //  Includes internal test cases for logical operators with no destination
   2159      1.1    jruoho //  operands.
   2160      1.1    jruoho //
   2161      1.1    jruoho     Device (NOSV)
   2162      1.1    jruoho     {
   2163  1.1.1.3  christos         Method (TEST,, Serialized)
   2164      1.1    jruoho         {
   2165      1.1    jruoho             Store ("++++++++ NoSave Test", Debug)
   2166      1.1    jruoho 
   2167      1.1    jruoho             Name (WRD, 0x1234)
   2168      1.1    jruoho 
   2169      1.1    jruoho             //
   2170      1.1    jruoho             //  Begin test of nested operators without saving results
   2171      1.1    jruoho             //
   2172      1.1    jruoho 
   2173      1.1    jruoho             //  Test If (And ()) with no save of And result
   2174      1.1    jruoho             If (And (3, 1, ))
   2175      1.1    jruoho             {
   2176      1.1    jruoho                 Store (1, WRD)  //  pass -- just do something
   2177      1.1    jruoho             }
   2178      1.1    jruoho             else
   2179      1.1    jruoho             {
   2180      1.1    jruoho                 Return (1)      //  fail
   2181      1.1    jruoho             }
   2182      1.1    jruoho 
   2183      1.1    jruoho             //  Test If (And ()) with no save of And result
   2184      1.1    jruoho             If (And (4, 1, ))
   2185      1.1    jruoho             {
   2186      1.1    jruoho                 Return (2)      //  fail
   2187      1.1    jruoho             }
   2188      1.1    jruoho             else
   2189      1.1    jruoho             {
   2190      1.1    jruoho                 Store (2, WRD)  //  pass -- just do something
   2191      1.1    jruoho             }
   2192      1.1    jruoho 
   2193      1.1    jruoho 
   2194      1.1    jruoho             //  Test If (NAnd ()) with no save of NAnd result
   2195      1.1    jruoho             If (NAnd (3, 1, ))
   2196      1.1    jruoho             {
   2197      1.1    jruoho                 Store (3, WRD)  //  pass -- just do something
   2198      1.1    jruoho             }
   2199      1.1    jruoho             else
   2200      1.1    jruoho             {
   2201      1.1    jruoho                 Return (3)      //  fail
   2202      1.1    jruoho             }
   2203      1.1    jruoho 
   2204      1.1    jruoho             //  Test If (NAnd ()) with no save of NAnd result
   2205      1.1    jruoho             If (NAnd (0xFFFFFFFF, 0xFFFFFFFF, ))
   2206      1.1    jruoho             {
   2207      1.1    jruoho                 Return (4)      // fail
   2208      1.1    jruoho             }
   2209      1.1    jruoho             else
   2210      1.1    jruoho             {
   2211      1.1    jruoho                 Store (4, WRD)  //  pass -- just do something
   2212      1.1    jruoho             }
   2213      1.1    jruoho 
   2214      1.1    jruoho 
   2215      1.1    jruoho             //  Test If (NOr ()) with no save of NOr result
   2216      1.1    jruoho             If (NOr (0, 1, ))
   2217      1.1    jruoho             {
   2218      1.1    jruoho                 Store (5, WRD)  //  pass -- just do something
   2219      1.1    jruoho             }
   2220      1.1    jruoho             else
   2221      1.1    jruoho             {
   2222      1.1    jruoho                 Return (5)      //  fail
   2223      1.1    jruoho             }
   2224      1.1    jruoho 
   2225      1.1    jruoho             //  Test If (NOr ()) with no save of NOr result
   2226      1.1    jruoho             If (NOr (0xFFFFFFFE, 1, ))
   2227      1.1    jruoho             {
   2228      1.1    jruoho                 Return (6)      // fail
   2229      1.1    jruoho             }
   2230      1.1    jruoho             else
   2231      1.1    jruoho             {
   2232      1.1    jruoho                 Store (6, WRD)  //  pass -- just do something
   2233      1.1    jruoho             }
   2234      1.1    jruoho 
   2235      1.1    jruoho 
   2236      1.1    jruoho             //  Test If (Not ()) with no save of Not result
   2237      1.1    jruoho             If (Not (1, ))
   2238      1.1    jruoho             {
   2239      1.1    jruoho                 Store (7, WRD)  //  pass -- just do something
   2240      1.1    jruoho             }
   2241      1.1    jruoho             else
   2242      1.1    jruoho             {
   2243      1.1    jruoho                 Return (7)      //  fail
   2244      1.1    jruoho             }
   2245      1.1    jruoho 
   2246      1.1    jruoho             //  Test If (Not ()) with no save of Not result
   2247      1.1    jruoho             If (Not (0xFFFFFFFF, ))
   2248      1.1    jruoho             {
   2249      1.1    jruoho                 Return (8)      // fail
   2250      1.1    jruoho             }
   2251      1.1    jruoho             else
   2252      1.1    jruoho             {
   2253      1.1    jruoho                 Store (8, WRD)  //  pass -- just do something
   2254      1.1    jruoho             }
   2255      1.1    jruoho 
   2256      1.1    jruoho 
   2257      1.1    jruoho             //  Test If (Or ()) with no save of Or result
   2258      1.1    jruoho             If (Or (3, 1, ))
   2259      1.1    jruoho             {
   2260      1.1    jruoho                 Store (9, WRD)  //  pass -- just do something
   2261      1.1    jruoho             }
   2262      1.1    jruoho             else
   2263      1.1    jruoho             {
   2264      1.1    jruoho                 Return (9)      //  fail
   2265      1.1    jruoho             }
   2266      1.1    jruoho 
   2267      1.1    jruoho             //  Test If (Or ()) with no save of Or result
   2268      1.1    jruoho             If (Or (0, 0, ))
   2269      1.1    jruoho             {
   2270      1.1    jruoho                 Return (10)     //  fail
   2271      1.1    jruoho             }
   2272      1.1    jruoho             else
   2273      1.1    jruoho             {
   2274      1.1    jruoho                 Store (10, WRD) //  pass -- just do something
   2275      1.1    jruoho             }
   2276      1.1    jruoho 
   2277      1.1    jruoho 
   2278      1.1    jruoho             //  Test If (XOr ()) with no save of XOr result
   2279      1.1    jruoho             If (XOr (3, 1, ))
   2280      1.1    jruoho             {
   2281      1.1    jruoho                 Store (11, WRD) //  pass -- just do something
   2282      1.1    jruoho             }
   2283      1.1    jruoho             else
   2284      1.1    jruoho             {
   2285      1.1    jruoho                 Return (11)     // fail
   2286      1.1    jruoho             }
   2287      1.1    jruoho 
   2288      1.1    jruoho             //  Test If (XOr ()) with no save of XOr result
   2289      1.1    jruoho             If (XOr (3, 3, ))
   2290      1.1    jruoho             {
   2291      1.1    jruoho                 Return (12)     // fail
   2292      1.1    jruoho             }
   2293      1.1    jruoho             else
   2294      1.1    jruoho             {
   2295      1.1    jruoho                 Store (12, WRD) //  pass -- just do something
   2296      1.1    jruoho             }
   2297      1.1    jruoho 
   2298      1.1    jruoho 
   2299      1.1    jruoho             //
   2300      1.1    jruoho             //  Begin test of logical operators with no destination operands
   2301      1.1    jruoho             //
   2302      1.1    jruoho 
   2303      1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2304      1.1    jruoho             If (LAnd (3, 3))
   2305      1.1    jruoho             {
   2306      1.1    jruoho                 Store (21, WRD) //  pass -- just do something
   2307      1.1    jruoho             }
   2308      1.1    jruoho             else
   2309      1.1    jruoho             {
   2310      1.1    jruoho                 Return (21)     // fail
   2311      1.1    jruoho             }
   2312      1.1    jruoho 
   2313      1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2314      1.1    jruoho             If (LAnd (3, 0))
   2315      1.1    jruoho             {
   2316      1.1    jruoho                 Return (22)     // fail
   2317      1.1    jruoho             }
   2318      1.1    jruoho             else
   2319      1.1    jruoho             {
   2320      1.1    jruoho                 Store (22, WRD) //  pass -- just do something
   2321      1.1    jruoho             }
   2322      1.1    jruoho 
   2323      1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2324      1.1    jruoho             If (LAnd (0, 3))
   2325      1.1    jruoho             {
   2326      1.1    jruoho                 Return (23)     //  fail
   2327      1.1    jruoho             }
   2328      1.1    jruoho             else
   2329      1.1    jruoho             {
   2330      1.1    jruoho                 Store (23, WRD) //  pass -- just do something
   2331      1.1    jruoho             }
   2332      1.1    jruoho 
   2333      1.1    jruoho             //  Test If (LAnd ()) with no save of LAnd result
   2334      1.1    jruoho             If (LAnd (0, 0))
   2335      1.1    jruoho             {
   2336      1.1    jruoho                 Return (24)     //  fail
   2337      1.1    jruoho             }
   2338      1.1    jruoho             else
   2339      1.1    jruoho             {
   2340      1.1    jruoho                 Store (24, WRD) //  pass -- just do something
   2341      1.1    jruoho             }
   2342      1.1    jruoho 
   2343      1.1    jruoho 
   2344      1.1    jruoho             //  Test If (LEqual ()) with no save of LEqual result
   2345      1.1    jruoho             If (LEqual (3, 3))
   2346      1.1    jruoho             {
   2347      1.1    jruoho                 Store (31, WRD) //  pass -- just do something
   2348      1.1    jruoho             }
   2349      1.1    jruoho             else
   2350      1.1    jruoho             {
   2351      1.1    jruoho                 Return (31)     //  fail
   2352      1.1    jruoho             }
   2353      1.1    jruoho 
   2354      1.1    jruoho             //  Test If (LEqual ()) with no save of LEqual result
   2355      1.1    jruoho             If (LEqual (1, 3))
   2356      1.1    jruoho             {
   2357      1.1    jruoho                 Return (32)     //  fail
   2358      1.1    jruoho             }
   2359      1.1    jruoho             else
   2360      1.1    jruoho             {
   2361      1.1    jruoho                 Store (32, WRD) //  pass -- just do something
   2362      1.1    jruoho             }
   2363      1.1    jruoho 
   2364      1.1    jruoho 
   2365      1.1    jruoho             //  Test If (LGreater ()) with no save of LGreater result
   2366      1.1    jruoho             If (LGreater (3, 1))
   2367      1.1    jruoho             {
   2368      1.1    jruoho                 Store (41, WRD) //  pass -- just do something
   2369      1.1    jruoho             }
   2370      1.1    jruoho             else
   2371      1.1    jruoho             {
   2372      1.1    jruoho                 Return (41)     //  fail
   2373      1.1    jruoho             }
   2374      1.1    jruoho 
   2375      1.1    jruoho             //  Test If (LGreater ()) with no save of LGreater result
   2376      1.1    jruoho             If (LGreater (4, 4))
   2377      1.1    jruoho             {
   2378      1.1    jruoho                 Return (42)     //  fail
   2379      1.1    jruoho             }
   2380      1.1    jruoho             else
   2381      1.1    jruoho             {
   2382      1.1    jruoho                 Store (42, WRD) //  pass -- just do something
   2383      1.1    jruoho             }
   2384      1.1    jruoho 
   2385      1.1    jruoho             //  Test If (LGreater ()) with no save of LGreater result
   2386      1.1    jruoho             If (LGreater (1, 4))
   2387      1.1    jruoho             {
   2388      1.1    jruoho                 Return (43)     //  fail
   2389      1.1    jruoho             }
   2390      1.1    jruoho             else
   2391      1.1    jruoho             {
   2392      1.1    jruoho                 Store (43, WRD) //  pass -- just do something
   2393      1.1    jruoho             }
   2394      1.1    jruoho 
   2395      1.1    jruoho             //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
   2396      1.1    jruoho             If (LGreaterEqual (3, 1))
   2397      1.1    jruoho             {
   2398      1.1    jruoho                 Store (44, WRD) //  pass -- just do something
   2399      1.1    jruoho             }
   2400      1.1    jruoho             else
   2401      1.1    jruoho             {
   2402      1.1    jruoho                 Return (44)     //  fail
   2403      1.1    jruoho             }
   2404      1.1    jruoho 
   2405      1.1    jruoho             //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
   2406      1.1    jruoho             If (LGreaterEqual (3, 3))
   2407      1.1    jruoho             {
   2408      1.1    jruoho                 Store (45, WRD) //  pass -- just do something
   2409      1.1    jruoho             }
   2410      1.1    jruoho             else
   2411      1.1    jruoho             {
   2412      1.1    jruoho                 Return (45)     //  fail
   2413      1.1    jruoho             }
   2414      1.1    jruoho 
   2415      1.1    jruoho             //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
   2416      1.1    jruoho             If (LGreaterEqual (3, 4))
   2417      1.1    jruoho             {
   2418      1.1    jruoho                 Return (46)     //  fail
   2419      1.1    jruoho             }
   2420      1.1    jruoho             else
   2421      1.1    jruoho             {
   2422      1.1    jruoho                 Store (46, WRD) //  pass -- just do something
   2423      1.1    jruoho             }
   2424      1.1    jruoho 
   2425      1.1    jruoho 
   2426      1.1    jruoho             //  Test If (LLess ()) with no save of LLess result
   2427      1.1    jruoho             If (LLess (1, 3))
   2428      1.1    jruoho             {
   2429      1.1    jruoho                 Store (51, WRD) //  pass -- just do something
   2430      1.1    jruoho             }
   2431      1.1    jruoho             else
   2432      1.1    jruoho             {
   2433      1.1    jruoho                 Return (51)     //  fail
   2434      1.1    jruoho             }
   2435      1.1    jruoho 
   2436      1.1    jruoho             //  Test If (LLess ()) with no save of LLess result
   2437      1.1    jruoho             If (LLess (2, 2))
   2438      1.1    jruoho             {
   2439      1.1    jruoho                 Return (52)     //  fail
   2440      1.1    jruoho             }
   2441      1.1    jruoho             else
   2442      1.1    jruoho             {
   2443      1.1    jruoho                 Store (52, WRD) //  pass -- just do something
   2444      1.1    jruoho             }
   2445      1.1    jruoho 
   2446      1.1    jruoho             //  Test If (LLess ()) with no save of LLess result
   2447      1.1    jruoho             If (LLess (4, 2))
   2448      1.1    jruoho             {
   2449      1.1    jruoho                 Return (53)     //  fail
   2450      1.1    jruoho             }
   2451      1.1    jruoho             else
   2452      1.1    jruoho             {
   2453      1.1    jruoho                 Store (53, WRD) //  pass -- just do something
   2454      1.1    jruoho             }
   2455      1.1    jruoho 
   2456      1.1    jruoho 
   2457      1.1    jruoho             //  Test If (LLessEqual ()) with no save of LLessEqual result
   2458      1.1    jruoho             If (LLessEqual (1, 3))
   2459      1.1    jruoho             {
   2460      1.1    jruoho                 Store (54, WRD) //  pass -- just do something
   2461      1.1    jruoho             }
   2462      1.1    jruoho             else
   2463      1.1    jruoho             {
   2464      1.1    jruoho                 Return (54)     //  fail
   2465      1.1    jruoho             }
   2466      1.1    jruoho 
   2467      1.1    jruoho             //  Test If (LLessEqual ()) with no save of LLessEqual result
   2468      1.1    jruoho             If (LLessEqual (2, 2))
   2469      1.1    jruoho             {
   2470      1.1    jruoho                 Store (55, WRD) //  pass -- just do something
   2471      1.1    jruoho             }
   2472      1.1    jruoho             else
   2473      1.1    jruoho             {
   2474      1.1    jruoho                 Return (55)     //  fail
   2475      1.1    jruoho             }
   2476      1.1    jruoho 
   2477      1.1    jruoho             //  Test If (LLessEqual ()) with no save of LLessEqual result
   2478      1.1    jruoho             If (LLessEqual (4, 2))
   2479      1.1    jruoho             {
   2480      1.1    jruoho                 Return (56)     //  fail
   2481      1.1    jruoho             }
   2482      1.1    jruoho             else
   2483      1.1    jruoho             {
   2484      1.1    jruoho                 Store (56, WRD) //  pass -- just do something
   2485      1.1    jruoho             }
   2486      1.1    jruoho 
   2487      1.1    jruoho 
   2488      1.1    jruoho             //  Test If (LNot ()) with no save of LNot result
   2489      1.1    jruoho             If (LNot (0))
   2490      1.1    jruoho             {
   2491      1.1    jruoho                 Store (61, WRD) //  pass -- just do something
   2492      1.1    jruoho             }
   2493      1.1    jruoho             else
   2494      1.1    jruoho             {
   2495      1.1    jruoho                 Return (61)     //  fail
   2496      1.1    jruoho             }
   2497      1.1    jruoho 
   2498      1.1    jruoho             //  Test If (LNot ()) with no save of LNot result
   2499      1.1    jruoho             If (LNot (1))
   2500      1.1    jruoho             {
   2501      1.1    jruoho                 Return (62)     //  fail
   2502      1.1    jruoho             }
   2503      1.1    jruoho             else
   2504      1.1    jruoho             {
   2505      1.1    jruoho                 Store (62, WRD) //  pass -- just do something
   2506      1.1    jruoho             }
   2507      1.1    jruoho 
   2508      1.1    jruoho 
   2509      1.1    jruoho             //  Test If (LNotEqual ()) with no save of LNotEqual result
   2510      1.1    jruoho             If (LNotEqual (3, 3))
   2511      1.1    jruoho             {
   2512      1.1    jruoho                 Return (63)     //  fail
   2513      1.1    jruoho             }
   2514      1.1    jruoho             else
   2515      1.1    jruoho             {
   2516      1.1    jruoho                 Store (63, WRD) //  pass -- just do something
   2517      1.1    jruoho             }
   2518      1.1    jruoho 
   2519      1.1    jruoho             //  Test If (LNotEqual ()) with no save of LNotEqual result
   2520      1.1    jruoho             If (LNotEqual (1, 3))
   2521      1.1    jruoho             {
   2522      1.1    jruoho                 Store (64, WRD) //  pass -- just do something
   2523      1.1    jruoho             }
   2524      1.1    jruoho             else
   2525      1.1    jruoho             {
   2526      1.1    jruoho                 Return (64)     //  fail
   2527      1.1    jruoho             }
   2528      1.1    jruoho 
   2529      1.1    jruoho 
   2530      1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2531      1.1    jruoho             If (LOr (3, 1))
   2532      1.1    jruoho             {
   2533      1.1    jruoho                 Store (71, WRD) //  pass -- just do something
   2534      1.1    jruoho             }
   2535      1.1    jruoho             else
   2536      1.1    jruoho             {
   2537      1.1    jruoho                 Return (71)     //  fail
   2538      1.1    jruoho             }
   2539      1.1    jruoho 
   2540      1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2541      1.1    jruoho             If (LOr (0, 1))
   2542      1.1    jruoho             {
   2543      1.1    jruoho                 Store (72, WRD) //  pass -- just do something
   2544      1.1    jruoho             }
   2545      1.1    jruoho             else
   2546      1.1    jruoho             {
   2547      1.1    jruoho                 Return (72)     //  fail
   2548      1.1    jruoho             }
   2549      1.1    jruoho 
   2550      1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2551      1.1    jruoho             If (LOr (3, 0))
   2552      1.1    jruoho             {
   2553      1.1    jruoho                 Store (73, WRD) //  pass -- just do something
   2554      1.1    jruoho             }
   2555      1.1    jruoho             else
   2556      1.1    jruoho             {
   2557      1.1    jruoho                 Return (73)     //  fail
   2558      1.1    jruoho             }
   2559      1.1    jruoho 
   2560      1.1    jruoho             //  Test If (LOr ()) with no save of LOr result
   2561      1.1    jruoho             If (LOr (0, 0))
   2562      1.1    jruoho             {
   2563      1.1    jruoho                 Return (74)     //  fail
   2564      1.1    jruoho             }
   2565      1.1    jruoho             else
   2566      1.1    jruoho             {
   2567      1.1    jruoho                 Store (74, WRD) //  pass -- just do something
   2568      1.1    jruoho             }
   2569      1.1    jruoho 
   2570      1.1    jruoho             Return (0)
   2571      1.1    jruoho         }   //  TEST
   2572      1.1    jruoho     }   //  NOSV
   2573      1.1    jruoho 
   2574      1.1    jruoho 
   2575      1.1    jruoho //
   2576      1.1    jruoho // test IndxFld.asl
   2577      1.1    jruoho //
   2578      1.1    jruoho //  IndexFld test
   2579      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   2580      1.1    jruoho //      Tests index field element AccessAs macro.
   2581      1.1    jruoho //
   2582      1.1    jruoho     Device (IDXF)
   2583      1.1    jruoho     {   //  Test device name
   2584      1.1    jruoho 
   2585      1.1    jruoho         OperationRegion (SIO, SystemIO, 0x100, 2)
   2586      1.1    jruoho         Field (SIO, ByteAcc, NoLock, Preserve)
   2587      1.1    jruoho         {
   2588      1.1    jruoho             INDX,   8,
   2589      1.1    jruoho             DATA,   8
   2590      1.1    jruoho         }
   2591      1.1    jruoho         IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
   2592      1.1    jruoho         {
   2593      1.1    jruoho             AccessAs (ByteAcc, 0),
   2594      1.1    jruoho             IFE0,   8,
   2595      1.1    jruoho             IFE1,   8,
   2596      1.1    jruoho             IFE2,   8,
   2597      1.1    jruoho             IFE3,   8,
   2598      1.1    jruoho             IFE4,   8,
   2599      1.1    jruoho             IFE5,   8,
   2600      1.1    jruoho             IFE6,   8,
   2601      1.1    jruoho             IFE7,   8,
   2602      1.1    jruoho             IFE8,   8,
   2603      1.1    jruoho             IFE9,   8,
   2604      1.1    jruoho         }
   2605      1.1    jruoho 
   2606      1.1    jruoho         Method (TEST)
   2607      1.1    jruoho         {
   2608      1.1    jruoho             Store ("++++++++ IndxFld Test", Debug)
   2609      1.1    jruoho 
   2610      1.1    jruoho             Store (IFE0, Local0)
   2611      1.1    jruoho             Store (IFE1, Local1)
   2612      1.1    jruoho             Store (IFE2, Local2)
   2613      1.1    jruoho 
   2614      1.1    jruoho             Return (0)
   2615      1.1    jruoho         }   //  TEST
   2616      1.1    jruoho     }   //  IDXF
   2617      1.1    jruoho 
   2618      1.1    jruoho //
   2619      1.1    jruoho // test NestdLor.asl
   2620      1.1    jruoho //
   2621      1.1    jruoho     Scope (\_SB)    //  System Bus
   2622      1.1    jruoho     {   //  _SB system bus
   2623      1.1    jruoho 
   2624      1.1    jruoho         Name (ZER0, 0)
   2625      1.1    jruoho         Name (ZER1, 0)
   2626      1.1    jruoho         Name (ZER2, 0)
   2627      1.1    jruoho         Name (ONE0, 1)
   2628      1.1    jruoho 
   2629      1.1    jruoho         Device (NSTL)
   2630      1.1    jruoho         {
   2631      1.1    jruoho             Method (TEST)
   2632      1.1    jruoho             {
   2633      1.1    jruoho                 Store ("++++++++ NestdLor Test", Debug)
   2634      1.1    jruoho 
   2635      1.1    jruoho                 If (Lor (ZER0, Lor (ZER1, Lor (ZER2, ONE0))))
   2636      1.1    jruoho                 {   //  Indicate Pass
   2637      1.1    jruoho                     Store (0x00, Local0)
   2638      1.1    jruoho                 }
   2639      1.1    jruoho 
   2640      1.1    jruoho                 Else
   2641      1.1    jruoho                 {   //  Indicate Fail
   2642      1.1    jruoho                     Store (0x01, Local0)
   2643      1.1    jruoho                 }
   2644      1.1    jruoho 
   2645      1.1    jruoho                 Return (Local0)
   2646      1.1    jruoho             }   //  End Method TEST
   2647      1.1    jruoho         }   //  Device NSTL
   2648      1.1    jruoho     }   //  _SB system bus
   2649      1.1    jruoho 
   2650      1.1    jruoho //
   2651      1.1    jruoho // test RetBuf.asl
   2652      1.1    jruoho //
   2653      1.1    jruoho //  Test ReturnOp(Buffer)
   2654      1.1    jruoho //      This is required to support Control Method Batteries on
   2655      1.1    jruoho //          Dell Latitude Laptops (e.g., CP1-A)
   2656      1.1    jruoho //
   2657      1.1    jruoho     Device (RTBF)
   2658      1.1    jruoho     {
   2659      1.1    jruoho         Method (SUBR, 1)
   2660      1.1    jruoho         {
   2661      1.1    jruoho             Return (Arg0)
   2662      1.1    jruoho         }
   2663      1.1    jruoho 
   2664  1.1.1.3  christos         Method (RBUF,, Serialized)
   2665      1.1    jruoho         {   //  RBUF: Return Buffer from local variable
   2666      1.1    jruoho             Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
   2667      1.1    jruoho 
   2668      1.1    jruoho             //  store local buffer ABUF into Local0
   2669      1.1    jruoho             Store (ABUF, Local0)
   2670      1.1    jruoho 
   2671      1.1    jruoho             //  save Local0 object type value into Local1
   2672      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2673      1.1    jruoho 
   2674      1.1    jruoho             //  validate Local0 is a Buffer
   2675      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2676      1.1    jruoho             {
   2677      1.1    jruoho                 Return (1)      //  failure
   2678      1.1    jruoho             }
   2679      1.1    jruoho 
   2680      1.1    jruoho             //  store value returned by control method SUBR into Local0
   2681      1.1    jruoho             Store (SUBR (ABUF), Local0)
   2682      1.1    jruoho 
   2683      1.1    jruoho             //  save Local0 object type value into Local1
   2684      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2685      1.1    jruoho 
   2686      1.1    jruoho             //  validate Local0 is a Buffer
   2687      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2688      1.1    jruoho             {
   2689      1.1    jruoho                 Return (2)      //  failure
   2690      1.1    jruoho             }
   2691      1.1    jruoho 
   2692      1.1    jruoho             //  allocate buffer using Local1 as buffer size (run-time evaluation)
   2693      1.1    jruoho             Store (5, Local1)
   2694      1.1    jruoho             Name (BUFR, Buffer(Local1) {})
   2695      1.1    jruoho 
   2696      1.1    jruoho             //  store value returned by control method SUBR into Local0
   2697      1.1    jruoho             Store (SUBR (BUFR), Local0)
   2698      1.1    jruoho 
   2699      1.1    jruoho             //  save Local0 object type value into Local1
   2700      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2701      1.1    jruoho 
   2702      1.1    jruoho             //  validate Local0 is a Buffer
   2703      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2704      1.1    jruoho             {
   2705      1.1    jruoho                 Return (3)      //  failure
   2706      1.1    jruoho             }
   2707      1.1    jruoho 
   2708      1.1    jruoho             //  store BUFR Buffer into Local0
   2709      1.1    jruoho             Store (BUFR, Local0)
   2710      1.1    jruoho 
   2711      1.1    jruoho             //  save Local0 object type value into Local1
   2712      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2713      1.1    jruoho 
   2714      1.1    jruoho             //  validate Local0 is a Buffer
   2715      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2716      1.1    jruoho             {
   2717      1.1    jruoho                 Return (4)      //  failure
   2718      1.1    jruoho             }
   2719      1.1    jruoho 
   2720      1.1    jruoho 
   2721      1.1    jruoho             //  return Local0 Buffer
   2722      1.1    jruoho             Return (Local0)
   2723      1.1    jruoho         }   //  RBUF
   2724      1.1    jruoho 
   2725      1.1    jruoho         Method (TEST)
   2726      1.1    jruoho         {
   2727      1.1    jruoho             Store ("++++++++ RetBuf Test", Debug)
   2728      1.1    jruoho 
   2729      1.1    jruoho             //  store RBUF Buffer return value into Local0
   2730      1.1    jruoho             Store (RBUF, Local0)
   2731      1.1    jruoho 
   2732      1.1    jruoho             //  save Local0 object type value into Local1
   2733      1.1    jruoho             Store (ObjectType (Local0), Local1)
   2734      1.1    jruoho 
   2735      1.1    jruoho             //  validate Local0 is a Buffer
   2736      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer type is 3
   2737      1.1    jruoho             {
   2738      1.1    jruoho                 Return (10)     //  failure
   2739      1.1    jruoho             }
   2740      1.1    jruoho             Else
   2741      1.1    jruoho             {
   2742      1.1    jruoho                 Return (0)      //  success
   2743      1.1    jruoho             }
   2744      1.1    jruoho         }   //  TEST
   2745      1.1    jruoho     }   //  RTBF
   2746      1.1    jruoho 
   2747      1.1    jruoho //
   2748      1.1    jruoho // test RetLVal.asl
   2749      1.1    jruoho //
   2750      1.1    jruoho //  Test ReturnOp(Lvalue)
   2751      1.1    jruoho //      This is required to support _PSR on IBM ThinkPad 560D and
   2752      1.1    jruoho //      _DCK on Toshiba Tecra 8000.
   2753      1.1    jruoho //
   2754      1.1    jruoho 
   2755      1.1    jruoho     Device (GPE2)
   2756      1.1    jruoho     {
   2757      1.1    jruoho         Method (_L03)
   2758      1.1    jruoho         {
   2759      1.1    jruoho             Store ("Method GPE2._L03 invoked", Debug)
   2760      1.1    jruoho             Return ()
   2761      1.1    jruoho         }
   2762      1.1    jruoho 
   2763      1.1    jruoho         Method (_E05)
   2764      1.1    jruoho         {
   2765      1.1    jruoho             Store ("Method GPE2._E05 invoked", Debug)
   2766      1.1    jruoho             Return ()
   2767      1.1    jruoho         }
   2768      1.1    jruoho     }
   2769      1.1    jruoho 
   2770      1.1    jruoho     Device (PRW2)
   2771      1.1    jruoho     {
   2772      1.1    jruoho         Name (_PRW, Package(2) {Package(2){\GPE2, 0x05}, 3})
   2773      1.1    jruoho     }
   2774      1.1    jruoho 
   2775      1.1    jruoho 
   2776      1.1    jruoho     Scope (\_GPE)
   2777      1.1    jruoho     {
   2778      1.1    jruoho         Name (ACST, 0xFF)
   2779      1.1    jruoho 
   2780      1.1    jruoho         Method (_L08)
   2781      1.1    jruoho         {
   2782      1.1    jruoho             Store ("Method _GPE._L08 invoked", Debug)
   2783      1.1    jruoho             Return ()
   2784      1.1    jruoho         }
   2785      1.1    jruoho 
   2786      1.1    jruoho         Method (_E09)
   2787      1.1    jruoho         {
   2788      1.1    jruoho             Store ("Method _GPE._E09 invoked", Debug)
   2789      1.1    jruoho             Return ()
   2790      1.1    jruoho         }
   2791      1.1    jruoho 
   2792      1.1    jruoho         Method (_E11)
   2793      1.1    jruoho         {
   2794      1.1    jruoho             Store ("Method _GPE._E11 invoked", Debug)
   2795      1.1    jruoho             Notify (\PRW1, 2)
   2796      1.1    jruoho         }
   2797      1.1    jruoho 
   2798      1.1    jruoho         Method (_L22)
   2799      1.1    jruoho         {
   2800      1.1    jruoho             Store ("Method _GPE._L22 invoked", Debug)
   2801      1.1    jruoho             Return ()
   2802      1.1    jruoho         }
   2803      1.1    jruoho 
   2804      1.1    jruoho         Method (_L33)
   2805      1.1    jruoho         {
   2806      1.1    jruoho             Store ("Method _GPE._L33 invoked", Debug)
   2807      1.1    jruoho             Return ()
   2808      1.1    jruoho         }
   2809      1.1    jruoho 
   2810      1.1    jruoho         Method (_E64)
   2811      1.1    jruoho         {
   2812      1.1    jruoho             Store ("Method _GPE._E64 invoked", Debug)
   2813      1.1    jruoho             Return ()
   2814      1.1    jruoho         }
   2815      1.1    jruoho 
   2816      1.1    jruoho     }   //  _GPE
   2817      1.1    jruoho 
   2818      1.1    jruoho     Device (PRW1)
   2819      1.1    jruoho     {
   2820      1.1    jruoho         Name (_PRW, Package(2) {0x11, 3})
   2821      1.1    jruoho     }
   2822      1.1    jruoho 
   2823      1.1    jruoho     Device (PWRB)
   2824      1.1    jruoho     {
   2825      1.1    jruoho         Name (_HID, EISAID("PNP0C0C"))
   2826      1.1    jruoho         Name (_PRW, Package(2) {0x33, 3})
   2827      1.1    jruoho     }
   2828      1.1    jruoho 
   2829      1.1    jruoho 
   2830      1.1    jruoho     Scope (\_SB)    //  System Bus
   2831      1.1    jruoho     {   //  _SB system bus
   2832      1.1    jruoho 
   2833      1.1    jruoho         Device (ACAD)
   2834      1.1    jruoho         {   //  ACAD:   AC adapter device
   2835      1.1    jruoho             Name (_HID, "ACPI0003") //  AC adapter device
   2836      1.1    jruoho 
   2837      1.1    jruoho             Name (_PCL, Package () {\_SB})
   2838      1.1    jruoho 
   2839      1.1    jruoho             OperationRegion (AREG, SystemIO, 0x0372, 2)
   2840      1.1    jruoho             Field (AREG, ByteAcc, NoLock, Preserve)
   2841      1.1    jruoho             {
   2842      1.1    jruoho                 AIDX,   8,
   2843      1.1    jruoho                 ADAT,   8
   2844      1.1    jruoho             }
   2845      1.1    jruoho             IndexField (AIDX, ADAT, ByteAcc, NoLock, Preserve)
   2846      1.1    jruoho             {
   2847      1.1    jruoho                      ,  1,  //  skips
   2848      1.1    jruoho                 ACIN,   1,
   2849      1.1    jruoho                      ,  2,  //  skips
   2850      1.1    jruoho                 CHAG,   1,
   2851      1.1    jruoho                      ,  3,  //  skips
   2852      1.1    jruoho                      ,  7,  //  skips
   2853      1.1    jruoho                 ABAT,   1,
   2854      1.1    jruoho             }   //  IndexField
   2855      1.1    jruoho 
   2856      1.1    jruoho             Method (_PSR)
   2857      1.1    jruoho             {
   2858      1.1    jruoho                 Store (\_GPE.ACST, Local0)
   2859      1.1    jruoho                 Store (ACIN, Local1)
   2860      1.1    jruoho                 If (LNotEqual (\_GPE.ACST, Local1))
   2861      1.1    jruoho                 {
   2862      1.1    jruoho                     Store (Local1, \_GPE.ACST)
   2863      1.1    jruoho                     // This Notify is commented because it causes a
   2864      1.1    jruoho                     //  method error when running on a system without the
   2865      1.1    jruoho                     //  specific device.
   2866      1.1    jruoho                     // Notify (\_SB_.ACAD, 0)
   2867      1.1    jruoho                 }
   2868      1.1    jruoho                 Return (Local0)
   2869      1.1    jruoho             }   //  _PSR
   2870      1.1    jruoho 
   2871      1.1    jruoho             Method (_STA)
   2872      1.1    jruoho             {
   2873      1.1    jruoho                 Return (0x0F)
   2874      1.1    jruoho             }
   2875      1.1    jruoho 
   2876      1.1    jruoho             Method (_INI)
   2877      1.1    jruoho             {
   2878      1.1    jruoho                 Store (ACIN, \_GPE.ACST)
   2879      1.1    jruoho             }
   2880      1.1    jruoho         }   //  ACAD:   AC adapter device
   2881      1.1    jruoho 
   2882      1.1    jruoho         //  test implicit return from control method
   2883      1.1    jruoho         Method (DIS_, 1)
   2884      1.1    jruoho         {
   2885      1.1    jruoho             Store (Arg0, Local0)
   2886      1.1    jruoho         }
   2887      1.1    jruoho 
   2888      1.1    jruoho         Device (RTLV)
   2889      1.1    jruoho         {
   2890      1.1    jruoho             //  test implicit return inside nested if with explicit return of Lvalue
   2891      1.1    jruoho             Method (_DCK, 1)
   2892      1.1    jruoho             //  Arg0:   1 == dock, 0 == undock
   2893      1.1    jruoho             {
   2894      1.1    jruoho                 If (Arg0)
   2895      1.1    jruoho                 {   //  dock
   2896      1.1    jruoho                     Store (0x87, Local0)
   2897      1.1    jruoho 
   2898      1.1    jruoho                     If (Local0)
   2899      1.1    jruoho                     {
   2900      1.1    jruoho                         DIS_ (0x23)
   2901      1.1    jruoho                         Return (1)
   2902      1.1    jruoho                     }
   2903      1.1    jruoho 
   2904      1.1    jruoho                     Return (0)
   2905      1.1    jruoho                 }   //  dock
   2906      1.1    jruoho                 Else
   2907      1.1    jruoho                 {   //  undock
   2908      1.1    jruoho                     Store (Arg0, Local0)
   2909      1.1    jruoho 
   2910      1.1    jruoho                     If (Local0)
   2911      1.1    jruoho                     {
   2912      1.1    jruoho                         DIS_ (0x23)
   2913      1.1    jruoho                         Return (1)
   2914      1.1    jruoho                     }
   2915      1.1    jruoho 
   2916      1.1    jruoho                     Return (0)
   2917      1.1    jruoho                 }   //  undock
   2918      1.1    jruoho             }   //  _DCK control method
   2919      1.1    jruoho 
   2920      1.1    jruoho             Method (TEST)
   2921      1.1    jruoho             {
   2922      1.1    jruoho                 Store ("++++++++ RetLVal Test", Debug)
   2923      1.1    jruoho 
   2924      1.1    jruoho                 //  store _PSR return value into Local0
   2925      1.1    jruoho                 Store (\_SB_.ACAD._PSR, Local0)
   2926      1.1    jruoho 
   2927      1.1    jruoho                 //  save Local0 object type value into Local1
   2928      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   2929      1.1    jruoho 
   2930      1.1    jruoho                 //  validate Local0 is a Number
   2931      1.1    jruoho                 If (LNotEqual (Local1, 1))  //  Number/Integer type is 1
   2932      1.1    jruoho                 {
   2933      1.1    jruoho                     Return (1)      //  failure
   2934      1.1    jruoho                 }
   2935      1.1    jruoho 
   2936      1.1    jruoho                 //  test implicit return inside nested if with explicit return of Lvalue
   2937      1.1    jruoho                 Store (_DCK (1), Local2)
   2938      1.1    jruoho 
   2939      1.1    jruoho                 //  save Local2 object type value into Local3
   2940      1.1    jruoho                 Store (ObjectType (Local2), Local3)
   2941      1.1    jruoho 
   2942      1.1    jruoho                 //  validate Local2 is a Number
   2943      1.1    jruoho                 If (LNotEqual (Local3, 1))  //  Number/Integer type is 1
   2944      1.1    jruoho                 {
   2945      1.1    jruoho                     Return (2)      //  failure
   2946      1.1    jruoho                 }
   2947      1.1    jruoho 
   2948      1.1    jruoho                 If (LNotEqual (Local2, 1))
   2949      1.1    jruoho                 {
   2950      1.1    jruoho                     Return (3)      //  failure
   2951      1.1    jruoho                 }
   2952      1.1    jruoho 
   2953      1.1    jruoho                 Return (0)  //  success
   2954      1.1    jruoho             }   //  TEST
   2955      1.1    jruoho         }   //  RTLV
   2956      1.1    jruoho     }   //  _SB system bus
   2957      1.1    jruoho 
   2958      1.1    jruoho //
   2959      1.1    jruoho // test RetPkg.asl
   2960      1.1    jruoho //
   2961      1.1    jruoho //  Test ReturnOp(Package)
   2962      1.1    jruoho //      This is required to support _PRT on Dell Optiplex Workstations (e.g. GX1)
   2963      1.1    jruoho //
   2964      1.1    jruoho 
   2965      1.1    jruoho     Scope (\_SB)    //  System Bus
   2966      1.1    jruoho     {   //  _SB system bus
   2967      1.1    jruoho         Device(LNKA)
   2968      1.1    jruoho         {
   2969      1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2970      1.1    jruoho             Name (_UID, 1)
   2971      1.1    jruoho         }
   2972      1.1    jruoho         Device(LNKB)
   2973      1.1    jruoho         {
   2974      1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2975      1.1    jruoho             Name (_UID, 2)
   2976      1.1    jruoho         }
   2977      1.1    jruoho         Device(LNKC)
   2978      1.1    jruoho         {
   2979      1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2980      1.1    jruoho             Name (_UID, 3)
   2981      1.1    jruoho         }
   2982      1.1    jruoho         Device(LNKD)
   2983      1.1    jruoho         {
   2984      1.1    jruoho             Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
   2985      1.1    jruoho             Name (_UID, 4)
   2986      1.1    jruoho         }
   2987      1.1    jruoho 
   2988      1.1    jruoho         Device (PCI1)
   2989      1.1    jruoho         {   //  PCI1:   Root PCI Bus
   2990      1.1    jruoho             Name (_HID, "PNP0A03")  //  Need _HID for root device (String format)
   2991      1.1    jruoho             Name (_ADR,0x00000000)
   2992      1.1    jruoho             Name (_CRS,0)
   2993      1.1    jruoho 
   2994      1.1    jruoho             Name (_PRT, Package ()
   2995      1.1    jruoho             {
   2996      1.1    jruoho                 Package () {0x0004ffff, 0, LNKA, 0},            //  Slot 1, INTA
   2997      1.1    jruoho                 Package () {0x0004ffff, 1, LNKB, 0},            //  Slot 1, INTB
   2998      1.1    jruoho                 Package () {0x0004ffff, 2, LNKC, 0},            //  Slot 1, INTC
   2999      1.1    jruoho                 Package () {0x0004ffff, 3, LNKD, 0},            //  Slot 1, INTD
   3000      1.1    jruoho                 Package () {0x0005ffff, 0, \_SB_.LNKB, 0},  //  Slot 2, INTA
   3001      1.1    jruoho                 Package () {0x0005ffff, 1, \_SB_.LNKC, 0},  //  Slot 2, INTB
   3002      1.1    jruoho                 Package () {0x0005ffff, 2, \_SB_.LNKD, 0},  //  Slot 2, INTC
   3003      1.1    jruoho                 Package () {0x0006ffff, 3, \_SB_.LNKA, 0},  //  Slot 2, INTD
   3004      1.1    jruoho                 Package () {0x0006ffff, 0, LNKC, 0},            //  Slot 3, INTA
   3005      1.1    jruoho                 Package () {0x0006ffff, 1, LNKD, 0},            //  Slot 3, INTB
   3006      1.1    jruoho                 Package () {0x0006ffff, 2, LNKA, 0},            //  Slot 3, INTC
   3007      1.1    jruoho                 Package () {0x0006ffff, 3, LNKB, 0},            //  Slot 3, INTD
   3008      1.1    jruoho             })
   3009      1.1    jruoho 
   3010      1.1    jruoho             Device (PX40)
   3011      1.1    jruoho             {   // Map f0 space, Start PX40
   3012      1.1    jruoho                 Name (_ADR,0x00070000)  //  Address+function.
   3013      1.1    jruoho             }
   3014      1.1    jruoho         }   //  PCI0:   Root PCI Bus
   3015      1.1    jruoho 
   3016      1.1    jruoho         Device (RETP)
   3017      1.1    jruoho         {
   3018      1.1    jruoho             Method (RPKG)
   3019      1.1    jruoho             {   //  RPKG: Return Package from local variable
   3020      1.1    jruoho 
   3021      1.1    jruoho                 //  store _PRT package into Local0
   3022      1.1    jruoho                 Store (\_SB_.PCI1._PRT, Local0)
   3023      1.1    jruoho 
   3024      1.1    jruoho                 //  return Local0 Package
   3025      1.1    jruoho                 Return (Local0)
   3026      1.1    jruoho             }   //  RPKG
   3027      1.1    jruoho 
   3028      1.1    jruoho             Method (TEST)
   3029      1.1    jruoho             {
   3030      1.1    jruoho                 Store ("++++++++ RetPkg Test", Debug)
   3031      1.1    jruoho 
   3032      1.1    jruoho                 //  store RPKG package return value into Local0
   3033      1.1    jruoho                 Store (RPKG, Local0)
   3034      1.1    jruoho 
   3035      1.1    jruoho                 //  save Local0 object type value into Local1
   3036      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   3037      1.1    jruoho 
   3038      1.1    jruoho                 //  validate Local0 is a Package
   3039      1.1    jruoho                 If (LNotEqual (Local1, 4))  //  Package type is 4
   3040      1.1    jruoho                     {   Return (1)  }   //  failure
   3041      1.1    jruoho                 Else
   3042      1.1    jruoho                     {   Return (0)  }   //  success
   3043      1.1    jruoho             }   //  TEST
   3044      1.1    jruoho         }   //  RETP
   3045      1.1    jruoho     } // _SB_
   3046      1.1    jruoho 
   3047      1.1    jruoho //
   3048      1.1    jruoho // test WhileRet.asl
   3049      1.1    jruoho //
   3050      1.1    jruoho //  WhileRet.asl tests a ReturnOp nested in a IfOp nested in a WhileOp.
   3051      1.1    jruoho //
   3052      1.1    jruoho     Device (WHLR)
   3053      1.1    jruoho     {
   3054      1.1    jruoho         Name (LCNT, 0)
   3055      1.1    jruoho         Method (WIR)
   3056      1.1    jruoho         {   //  WIR:    control method that returns inside of IfOp inside of WhileOp
   3057      1.1    jruoho             While (LLess (LCNT, 4))
   3058      1.1    jruoho             {
   3059      1.1    jruoho                     If (LEqual (LCNT, 2))
   3060      1.1    jruoho                     {
   3061      1.1    jruoho                         Return (0)
   3062      1.1    jruoho                     }
   3063      1.1    jruoho 
   3064      1.1    jruoho                 Increment (LCNT)
   3065      1.1    jruoho             }
   3066      1.1    jruoho 
   3067      1.1    jruoho             Return (LCNT)
   3068      1.1    jruoho         }   //  WIR:    control method that returns inside of IfOp inside of WhileOp
   3069      1.1    jruoho 
   3070      1.1    jruoho         Method (TEST)
   3071      1.1    jruoho         {
   3072      1.1    jruoho             Store ("++++++++ WhileRet Test", Debug)
   3073      1.1    jruoho 
   3074      1.1    jruoho             Store (WIR, Local0)
   3075      1.1    jruoho 
   3076      1.1    jruoho             Return (Local0)
   3077      1.1    jruoho         }   //  TEST
   3078      1.1    jruoho     }   //  WHLR
   3079      1.1    jruoho 
   3080      1.1    jruoho //
   3081      1.1    jruoho // test AndOrOp.asl
   3082      1.1    jruoho //
   3083      1.1    jruoho //This code tests the bitwise AndOp and OrOp Operator terms
   3084      1.1    jruoho //
   3085      1.1    jruoho //Syntax of Andop term
   3086      1.1    jruoho //And - Bitwise And
   3087      1.1    jruoho //AndTerm   := And(
   3088      1.1    jruoho //  Source1,    //TermArg=>Integer
   3089      1.1    jruoho //  Source2,    //TermArg=>Integer
   3090      1.1    jruoho //  Result  //Nothing | SuperName
   3091      1.1    jruoho //) => Integer
   3092      1.1    jruoho //Source1 and Source2 are evaluated as integer data types,
   3093      1.1    jruoho // a bit-wise AND is performed, and the result is optionally
   3094      1.1    jruoho //stored into Result.
   3095      1.1    jruoho //
   3096      1.1    jruoho //
   3097      1.1    jruoho //Syntax of OrOp
   3098      1.1    jruoho //Or - Bit-wise Or
   3099      1.1    jruoho //OrTerm    := Or(
   3100      1.1    jruoho //  Source1,    //TermArg=>Integer
   3101      1.1    jruoho //  Source2 //TermArg=>Integer
   3102      1.1    jruoho //  Result  //Nothing | SuperName
   3103      1.1    jruoho //) => Integer
   3104      1.1    jruoho //Source1 and Source2 are evaluated as integer data types,
   3105      1.1    jruoho // a bit-wide OR is performed, and the result is optionally
   3106      1.1    jruoho //stored in Result
   3107      1.1    jruoho //
   3108      1.1    jruoho     Device (ANDO)
   3109      1.1    jruoho     {
   3110      1.1    jruoho         OperationRegion (TMEM, SystemMemory, 0xC4, 0x02)
   3111      1.1    jruoho         Field (TMEM, ByteAcc, NoLock, Preserve)
   3112      1.1    jruoho         {
   3113      1.1    jruoho                 ,   3,
   3114      1.1    jruoho             TOUD,   13
   3115      1.1    jruoho         }
   3116      1.1    jruoho 
   3117      1.1    jruoho         //Create System Memory Operation Region and field overlays
   3118      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3119      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3120      1.1    jruoho         {
   3121      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3122      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3123      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3124      1.1    jruoho         }// Field(RAM)
   3125      1.1    jruoho 
   3126      1.1    jruoho 
   3127      1.1    jruoho         //And with Byte Data
   3128      1.1    jruoho         Name (BYT1, 0xff)
   3129      1.1    jruoho         Name (BYT2, 0xff)
   3130      1.1    jruoho         Name (BRSL, 0x00)
   3131      1.1    jruoho 
   3132      1.1    jruoho         //And with Word Data
   3133      1.1    jruoho         Name (WRD1, 0xffff)
   3134      1.1    jruoho         Name (WRD2, 0xffff)
   3135      1.1    jruoho         Name (WRSL, 0x0000)
   3136      1.1    jruoho 
   3137      1.1    jruoho         //And with DWord Data
   3138      1.1    jruoho         Name (DWD1, 0xffffffff)
   3139      1.1    jruoho         Name (DWD2, 0xffffffff)
   3140      1.1    jruoho         Name (DRSL, 0x00000000)
   3141      1.1    jruoho 
   3142      1.1    jruoho         Method (ANDP)
   3143      1.1    jruoho         {
   3144      1.1    jruoho             //Check with 1 And 1 on byte data
   3145      1.1    jruoho             And(BYT1, BYT2, BRSL)
   3146      1.1    jruoho             if(LNotEqual(BRSL,0xff))
   3147      1.1    jruoho             {Return(1)}
   3148      1.1    jruoho 
   3149      1.1    jruoho             //Check with 1 And 1 on Word data
   3150      1.1    jruoho             And(WRD1, WRD2, WRSL)
   3151      1.1    jruoho             if(LNotEqual(WRSL,0xffff))
   3152      1.1    jruoho             {
   3153      1.1    jruoho                 Return (1)      //  failure
   3154      1.1    jruoho             }
   3155      1.1    jruoho 
   3156      1.1    jruoho             //Check with 1 And 1 Dword
   3157      1.1    jruoho             And(DWD1, DWD2, DRSL)
   3158      1.1    jruoho             if(LNotEqual(DRSL,0xffffffff))
   3159      1.1    jruoho             {
   3160      1.1    jruoho                 Return (1)      //  failure
   3161      1.1    jruoho             }
   3162      1.1    jruoho 
   3163      1.1    jruoho             //Check with 0 And 0 on byte data
   3164      1.1    jruoho             Store(0x00,BYT1)
   3165      1.1    jruoho             Store(0x00,BYT2)
   3166      1.1    jruoho             Store(0x00,BRSL)
   3167      1.1    jruoho             And(BYT1, BYT2, BRSL)
   3168      1.1    jruoho             if(LNotEqual(BRSL,0x00))
   3169      1.1    jruoho             {
   3170      1.1    jruoho                 Return (1)      //  failure
   3171      1.1    jruoho             }
   3172      1.1    jruoho 
   3173      1.1    jruoho             //Check with 0 And 0 on Word data
   3174      1.1    jruoho             Store (0x0000,WRD1)
   3175      1.1    jruoho             Store (0x0000,WRD2)
   3176      1.1    jruoho             Store (0x0000,WRSL)
   3177      1.1    jruoho             And(WRD1, WRD2, WRSL)
   3178      1.1    jruoho             if(LNotEqual(WRSL,0x0000))
   3179      1.1    jruoho             {
   3180      1.1    jruoho                 Return (1)      //  failure
   3181      1.1    jruoho             }
   3182      1.1    jruoho 
   3183      1.1    jruoho             //Check with 0 And 0 Dword
   3184      1.1    jruoho             Store (0x00000000,DWD1)
   3185      1.1    jruoho             Store (0x00000000,DWD2)
   3186      1.1    jruoho             Store (0x00000000,DRSL)
   3187      1.1    jruoho             And(DWD1, DWD2, DRSL)
   3188      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   3189      1.1    jruoho             {
   3190      1.1    jruoho                 Return (1)      //  failure
   3191      1.1    jruoho             }
   3192      1.1    jruoho 
   3193      1.1    jruoho 
   3194      1.1    jruoho             //Check with 1 And 0 on byte data
   3195      1.1    jruoho             Store(0x55,BYT1)
   3196      1.1    jruoho             Store(0xAA,BYT2)
   3197      1.1    jruoho             Store(0x00,BRSL)
   3198      1.1    jruoho             And(BYT1, BYT2, BRSL)
   3199      1.1    jruoho             if(LNotEqual(BRSL,0x00))
   3200      1.1    jruoho             {
   3201      1.1    jruoho                 Return (1)      //  failure
   3202      1.1    jruoho             }
   3203      1.1    jruoho 
   3204      1.1    jruoho             //Check with 1 And 0 on Word data
   3205      1.1    jruoho             Store (0x5555,WRD1)
   3206      1.1    jruoho             Store (0xAAAA,WRD2)
   3207      1.1    jruoho             Store (0x0000,WRSL)
   3208      1.1    jruoho             And(WRD1, WRD2, WRSL)
   3209      1.1    jruoho             if(LNotEqual(WRSL,0x0000))
   3210      1.1    jruoho             {
   3211      1.1    jruoho                 Return (1)      //  failure
   3212      1.1    jruoho             }
   3213      1.1    jruoho 
   3214      1.1    jruoho             //Check with 1 And 0 on Dword
   3215      1.1    jruoho             Store (0x55555555,DWD1)
   3216      1.1    jruoho             Store (0xAAAAAAAA,DWD2)
   3217      1.1    jruoho             Store (0x00000000,DRSL)
   3218      1.1    jruoho             And(DWD1, DWD2, DRSL)
   3219      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   3220      1.1    jruoho             {
   3221      1.1    jruoho                 Return (1)      //  failure
   3222      1.1    jruoho             }
   3223      1.1    jruoho 
   3224      1.1    jruoho             Store (0x1FFF, TOUD)
   3225      1.1    jruoho             Store (TOUD, Local0)
   3226      1.1    jruoho             if(LNotEqual(Local0,0x1FFF))
   3227      1.1    jruoho             {
   3228      1.1    jruoho                 Return (1)      //  failure
   3229      1.1    jruoho             }
   3230      1.1    jruoho 
   3231      1.1    jruoho             //TBD- Do We need to check for system memory data also for each test case ??
   3232      1.1    jruoho 
   3233      1.1    jruoho             Return(0)
   3234      1.1    jruoho 
   3235      1.1    jruoho         }//ANDP
   3236      1.1    jruoho 
   3237      1.1    jruoho         Method (OROP)
   3238      1.1    jruoho         {
   3239      1.1    jruoho 
   3240      1.1    jruoho             //Check with 1 Ored with 1 on byte data
   3241      1.1    jruoho             Store(0xff,BYT1)
   3242      1.1    jruoho             Store(0xff,BYT2)
   3243      1.1    jruoho             Store(0x00,BRSL)
   3244      1.1    jruoho             Or(BYT1, BYT2, BRSL)
   3245      1.1    jruoho             if(LNotEqual(BRSL,0xff))
   3246      1.1    jruoho             {
   3247      1.1    jruoho                 Return (1)      //  failure
   3248      1.1    jruoho             }
   3249      1.1    jruoho 
   3250      1.1    jruoho 
   3251      1.1    jruoho             //Check with 1 Ored with 1 on Word data
   3252      1.1    jruoho             Store(0xffff,WRD1)
   3253      1.1    jruoho             Store(0xffff,WRD2)
   3254      1.1    jruoho             Store(0x0000,WRSL)
   3255      1.1    jruoho             Or(WRD1, WRD2, WRSL)
   3256      1.1    jruoho             if(LNotEqual(WRSL,0xffff))
   3257      1.1    jruoho             {
   3258      1.1    jruoho                 Return (1)      //  failure
   3259      1.1    jruoho             }
   3260      1.1    jruoho 
   3261      1.1    jruoho             //Check with 1 Ored with 1 on Dword data
   3262      1.1    jruoho             Store(0xffffffff,DWD1)
   3263      1.1    jruoho             Store(0xffffffff,DWD2)
   3264      1.1    jruoho             Store(0x00000000,DRSL)
   3265      1.1    jruoho             Or(DWD1, DWD2, DRSL)
   3266      1.1    jruoho             if(LNotEqual(DRSL,0xffffffff))
   3267      1.1    jruoho             {
   3268      1.1    jruoho                 Return (1)      //  failure
   3269      1.1    jruoho             }
   3270      1.1    jruoho 
   3271      1.1    jruoho             //Check with 0 Ored with 0 on byte data
   3272      1.1    jruoho             Store(0x00,BYT1)
   3273      1.1    jruoho             Store(0x00,BYT2)
   3274      1.1    jruoho             Store(0x00,BRSL)
   3275      1.1    jruoho             Or(BYT1, BYT2, BRSL)
   3276      1.1    jruoho             if(LNotEqual(BRSL,0x00))
   3277      1.1    jruoho             {
   3278      1.1    jruoho                 Return (1)      //  failure
   3279      1.1    jruoho             }
   3280      1.1    jruoho 
   3281      1.1    jruoho             //Check with 0 Ored with 0 on Word data
   3282      1.1    jruoho             Store (0x0000,WRD1)
   3283      1.1    jruoho             Store (0x0000,WRD2)
   3284      1.1    jruoho             Store (0x0000,WRSL)
   3285      1.1    jruoho             Or(WRD1, WRD2, WRSL)
   3286      1.1    jruoho             if(LNotEqual(WRSL,0x0000))
   3287      1.1    jruoho             {
   3288      1.1    jruoho                 Return (1)      //  failure
   3289      1.1    jruoho             }
   3290      1.1    jruoho 
   3291      1.1    jruoho             //Check with 0 Ored with  0 Dword data
   3292      1.1    jruoho             Store (0x00000000,DWD1)
   3293      1.1    jruoho             Store (0x00000000,DWD2)
   3294      1.1    jruoho             Store (0x00000000,DRSL)
   3295      1.1    jruoho             Or(DWD1, DWD2, DRSL)
   3296      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   3297      1.1    jruoho             {
   3298      1.1    jruoho                 Return (1)      //  failure
   3299      1.1    jruoho             }
   3300      1.1    jruoho 
   3301      1.1    jruoho 
   3302      1.1    jruoho             //Check with 1 Ored with 0 on byte data
   3303      1.1    jruoho             Store(0x55,BYT1)
   3304      1.1    jruoho             Store(0xAA,BYT2)
   3305      1.1    jruoho             Store(0x00,BRSL)
   3306      1.1    jruoho             Or(BYT1, BYT2, BRSL)
   3307      1.1    jruoho             if(LNotEqual(BRSL,0xff))
   3308      1.1    jruoho             {
   3309      1.1    jruoho                 Return (1)      //  failure
   3310      1.1    jruoho             }
   3311      1.1    jruoho 
   3312      1.1    jruoho             //Check with 1 Ored with 0 on Word data
   3313      1.1    jruoho             Store (0x5555,WRD1)
   3314      1.1    jruoho             Store (0xAAAA,WRD2)
   3315      1.1    jruoho             Store (0x0000,WRSL)
   3316      1.1    jruoho             Or(WRD1, WRD2, WRSL)
   3317      1.1    jruoho             if(LNotEqual(WRSL,0xffff))
   3318      1.1    jruoho             {
   3319      1.1    jruoho                 Return (1)      //  failure
   3320      1.1    jruoho             }
   3321      1.1    jruoho 
   3322      1.1    jruoho             //Check with 1 Ored with 0 on Dword data
   3323      1.1    jruoho             Store (0x55555555,DWD1)
   3324      1.1    jruoho             Store (0xAAAAAAAA,DWD2)
   3325      1.1    jruoho             Store (0x00000000,DRSL)
   3326      1.1    jruoho             Or(DWD1, DWD2, DRSL)
   3327      1.1    jruoho             if(LNotEqual(DRSL,0xffffffff))
   3328      1.1    jruoho             {
   3329      1.1    jruoho                 Return (1)      //  failure
   3330      1.1    jruoho             }
   3331      1.1    jruoho 
   3332      1.1    jruoho             //TBD - Do We need to check for system memory data also for each test case ??
   3333      1.1    jruoho 
   3334      1.1    jruoho             Return(0)
   3335      1.1    jruoho 
   3336      1.1    jruoho         }//OROP
   3337      1.1    jruoho 
   3338  1.1.1.3  christos         Method(TEST,, Serialized)
   3339      1.1    jruoho         {
   3340      1.1    jruoho             Store ("++++++++ AndOrOp Test", Debug)
   3341      1.1    jruoho 
   3342      1.1    jruoho             Name(RSLT,1)
   3343      1.1    jruoho             //Call Andop method
   3344      1.1    jruoho             Store(ANDP,RSLT)
   3345      1.1    jruoho             if(LEqual(RSLT,1))
   3346      1.1    jruoho             {
   3347      1.1    jruoho                 Return (RSLT)
   3348      1.1    jruoho             }
   3349      1.1    jruoho 
   3350      1.1    jruoho             //Call OrOp Method
   3351      1.1    jruoho             Store(OROP,RSLT)
   3352      1.1    jruoho             if(LEqual(RSLT,1))
   3353      1.1    jruoho             {
   3354      1.1    jruoho                 Return(RSLT)
   3355      1.1    jruoho             }
   3356      1.1    jruoho 
   3357      1.1    jruoho             //
   3358      1.1    jruoho             // Return original conditions to allow iterative execution
   3359      1.1    jruoho             //
   3360      1.1    jruoho             Store(0xff,BYT1)
   3361      1.1    jruoho             Store(0xff,BYT2)
   3362      1.1    jruoho             Store(0x00,BRSL)
   3363      1.1    jruoho             Store (0xffff,WRD1)
   3364      1.1    jruoho             Store (0xffff,WRD2)
   3365      1.1    jruoho             Store (0x0000,WRSL)
   3366      1.1    jruoho             Store (0xffffffff,DWD1)
   3367      1.1    jruoho             Store (0xffffffff,DWD2)
   3368      1.1    jruoho             Store (0x00000000,DRSL)
   3369      1.1    jruoho 
   3370      1.1    jruoho             Return(0)
   3371      1.1    jruoho         }   //TEST
   3372      1.1    jruoho     }   //ANDO
   3373      1.1    jruoho 
   3374      1.1    jruoho //
   3375      1.1    jruoho // test BreakPnt.asl
   3376      1.1    jruoho //
   3377      1.1    jruoho // This code tests the BreakPoint opcode term. The syntax of BreakPoint Term is
   3378      1.1    jruoho // BreakPointTerm    := BreakPoint
   3379      1.1    jruoho // Used for debugging, the Breakpoint opcode stops the execution and enters the AML debugger.
   3380      1.1    jruoho // In the non-debug version of the interpreter, BreakPoint is equivalent to Noop.
   3381      1.1    jruoho //
   3382      1.1    jruoho     Device (BRKP)
   3383      1.1    jruoho     {
   3384      1.1    jruoho         Name(CNT0,0)
   3385      1.1    jruoho 
   3386      1.1    jruoho         Method (BK1)
   3387      1.1    jruoho         {
   3388      1.1    jruoho             BreakPoint
   3389      1.1    jruoho             Return(0)
   3390      1.1    jruoho         }
   3391      1.1    jruoho 
   3392      1.1    jruoho         Method (TEST)
   3393      1.1    jruoho         {
   3394      1.1    jruoho             Store ("++++++++ BreakPnt Test", Debug)
   3395      1.1    jruoho 
   3396      1.1    jruoho             Store(0,CNT0)
   3397      1.1    jruoho 
   3398      1.1    jruoho             //Check BreakPoint statement
   3399      1.1    jruoho             While(LLess(CNT0,10))
   3400      1.1    jruoho             {
   3401      1.1    jruoho                 Increment(CNT0)
   3402      1.1    jruoho             }
   3403      1.1    jruoho 
   3404      1.1    jruoho             //Check the BreakPoint statement
   3405      1.1    jruoho             If(LEqual(CNT0,10))
   3406      1.1    jruoho             {
   3407      1.1    jruoho     //            BreakPoint
   3408      1.1    jruoho                 Return(0)
   3409      1.1    jruoho             }
   3410      1.1    jruoho 
   3411      1.1    jruoho             //failed
   3412      1.1    jruoho             Return(1)
   3413      1.1    jruoho         }
   3414      1.1    jruoho     }
   3415      1.1    jruoho 
   3416      1.1    jruoho //
   3417      1.1    jruoho // test AddSubOp.asl
   3418      1.1    jruoho //
   3419      1.1    jruoho     Device (ADSU)
   3420      1.1    jruoho     {
   3421      1.1    jruoho         //  create System Memory Operation Region and field overlays
   3422      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3423      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3424      1.1    jruoho         {
   3425      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3426      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3427      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3428      1.1    jruoho         }   //  Field(RAM)
   3429      1.1    jruoho 
   3430  1.1.1.3  christos         Method (TEST,, Serialized)
   3431      1.1    jruoho         {
   3432      1.1    jruoho             Store ("++++++++ AddSubOp Test", Debug)
   3433      1.1    jruoho 
   3434      1.1    jruoho             Name (DWRD, 0x12345678)
   3435      1.1    jruoho             Name (WRD, 0x1234)
   3436      1.1    jruoho             Name (BYT, 0x12)
   3437      1.1    jruoho 
   3438      1.1    jruoho             //  Test AddOp with DWORD data
   3439      1.1    jruoho             Store (0x12345678, DWRD)
   3440      1.1    jruoho             Add (DWRD, 7, DWRD)
   3441      1.1    jruoho             If (LNotEqual (DWRD, 0x1234567F))
   3442      1.1    jruoho                 {   Return (DWRD)   }
   3443      1.1    jruoho 
   3444      1.1    jruoho             //  Test AddOp with WORD data
   3445      1.1    jruoho             Add (WRD, 5, WRD)
   3446      1.1    jruoho             If (LNotEqual (WRD, 0x1239))
   3447      1.1    jruoho                 {   Return (WRD)    }
   3448      1.1    jruoho 
   3449      1.1    jruoho             //  Test AddOp with BYTE data
   3450      1.1    jruoho             Add (BYT, 3, BYT)
   3451      1.1    jruoho             If (LNotEqual (BYT, 0x15))
   3452      1.1    jruoho                 {   Return (BYT)    }
   3453      1.1    jruoho 
   3454      1.1    jruoho             //  Test SubtractOp with DWORD data
   3455      1.1    jruoho             Subtract (DWRD, 7, DWRD)
   3456      1.1    jruoho             If (LNotEqual (DWRD, 0x12345678))
   3457      1.1    jruoho                 {   Return (DWRD)   }
   3458      1.1    jruoho 
   3459      1.1    jruoho             //  Test SubtractOp with WORD data
   3460      1.1    jruoho             Subtract (WRD, 3, WRD)
   3461      1.1    jruoho             If (LNotEqual (WRD, 0x1236))
   3462      1.1    jruoho                 {   Return (WRD)    }
   3463      1.1    jruoho 
   3464      1.1    jruoho             //  Test SubtractOp with BYTE data
   3465      1.1    jruoho             Subtract (BYT, 3, BYT)
   3466      1.1    jruoho             If (LNotEqual (BYT, 0x12))
   3467      1.1    jruoho                 {   Return (BYT)    }
   3468      1.1    jruoho 
   3469      1.1    jruoho 
   3470      1.1    jruoho             //  test AddOp with DWORD SystemMemory OpRegion
   3471      1.1    jruoho             Store (0x01234567, SMDW)
   3472      1.1    jruoho             Add (SMDW, 8, SMDW)
   3473      1.1    jruoho             If (LNotEqual (SMDW, 0x0123456F))
   3474      1.1    jruoho                 {   Return (SMDW)   }
   3475      1.1    jruoho 
   3476      1.1    jruoho             //  test SubtractOp with DWORD SystemMemory OpRegion
   3477      1.1    jruoho             Subtract (SMDW, 7, SMDW)
   3478      1.1    jruoho             If (LNotEqual (SMDW, 0x01234568))
   3479      1.1    jruoho                 {   Return (SMDW)   }
   3480      1.1    jruoho 
   3481      1.1    jruoho 
   3482      1.1    jruoho             //  test AddOp with WORD SystemMemory OpRegion
   3483      1.1    jruoho             Store (0x0123, SMWD)
   3484      1.1    jruoho             Add (SMWD, 6, SMWD)
   3485      1.1    jruoho             If (LNotEqual (SMWD, 0x0129))
   3486      1.1    jruoho                 {   Return (SMWD)   }
   3487      1.1    jruoho 
   3488      1.1    jruoho             //  test SubtractOp with WORD SystemMemory OpRegion
   3489      1.1    jruoho             Subtract (SMWD, 5, SMWD)
   3490      1.1    jruoho             If (LNotEqual (SMWD, 0x0124))
   3491      1.1    jruoho                 {   Return (SMWD)   }
   3492      1.1    jruoho 
   3493      1.1    jruoho 
   3494      1.1    jruoho             //  test AddOp with BYTE SystemMemory OpRegion
   3495      1.1    jruoho             Store (0x01, SMBY)
   3496      1.1    jruoho             Add (SMBY, 4, SMBY)
   3497      1.1    jruoho             If (LNotEqual (SMBY, 0x05))
   3498      1.1    jruoho                 {   Return (SMBY)   }
   3499      1.1    jruoho 
   3500      1.1    jruoho             //  test SubtractOp with BYTE SystemMemory OpRegion
   3501      1.1    jruoho             Subtract (SMBY, 3, SMBY)
   3502      1.1    jruoho             If (LNotEqual (SMBY, 0x02))
   3503      1.1    jruoho                 {   Return (SMBY)   }
   3504      1.1    jruoho 
   3505      1.1    jruoho             Return (0)
   3506      1.1    jruoho         }   //  TEST
   3507      1.1    jruoho     }   //  ADSU
   3508      1.1    jruoho 
   3509      1.1    jruoho //
   3510      1.1    jruoho // test IncDecOp.asl
   3511      1.1    jruoho //
   3512      1.1    jruoho     Device (INDC)
   3513      1.1    jruoho     {
   3514      1.1    jruoho         //  create System Memory Operation Region and field overlays
   3515      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3516      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3517      1.1    jruoho         {
   3518      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3519      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3520      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3521      1.1    jruoho         }   //  Field(RAM)
   3522      1.1    jruoho 
   3523  1.1.1.3  christos         Method (TEST,, Serialized)
   3524      1.1    jruoho         {
   3525      1.1    jruoho             Store ("++++++++ IncDecOp Test", Debug)
   3526      1.1    jruoho 
   3527      1.1    jruoho             Name (DWRD, 0x12345678)
   3528      1.1    jruoho             Name (WRD, 0x1234)
   3529      1.1    jruoho             Name (BYT, 0x12)
   3530      1.1    jruoho 
   3531      1.1    jruoho             //  Test IncrementOp with DWORD data
   3532      1.1    jruoho             Store (0x12345678, DWRD)
   3533      1.1    jruoho             Increment (DWRD)
   3534      1.1    jruoho             If (LNotEqual (DWRD, 0x12345679))
   3535      1.1    jruoho                 {   Return (DWRD)   }
   3536      1.1    jruoho 
   3537      1.1    jruoho             //  Test IncrementOp with WORD data
   3538      1.1    jruoho             Increment (WRD)
   3539      1.1    jruoho             If (LNotEqual (WRD, 0x1235))
   3540      1.1    jruoho                 {   Return (WRD)    }
   3541      1.1    jruoho 
   3542      1.1    jruoho             //  Test IncrementOp with BYTE data
   3543      1.1    jruoho             Increment (BYT)
   3544      1.1    jruoho             If (LNotEqual (BYT, 0x13))
   3545      1.1    jruoho                 {   Return (BYT)    }
   3546      1.1    jruoho 
   3547      1.1    jruoho             //  Test DecrementOp with DWORD data
   3548      1.1    jruoho             Decrement (DWRD)
   3549      1.1    jruoho             If (LNotEqual (DWRD, 0x12345678))
   3550      1.1    jruoho                 {   Return (DWRD)   }
   3551      1.1    jruoho 
   3552      1.1    jruoho             //  Test DecrementOp with WORD data
   3553      1.1    jruoho             Decrement (WRD)
   3554      1.1    jruoho             If (LNotEqual (WRD, 0x1234))
   3555      1.1    jruoho                 {   Return (WRD)    }
   3556      1.1    jruoho 
   3557      1.1    jruoho             //  Test DecrementOp with BYTE data
   3558      1.1    jruoho             Decrement (BYT)
   3559      1.1    jruoho             If (LNotEqual (BYT, 0x12))
   3560      1.1    jruoho                 {   Return (BYT)    }
   3561      1.1    jruoho 
   3562      1.1    jruoho 
   3563      1.1    jruoho             //  test IncrementOp with DWORD SystemMemory OpRegion
   3564      1.1    jruoho             Store (0x01234567, SMDW)
   3565      1.1    jruoho             Increment (SMDW)
   3566      1.1    jruoho             If (LNotEqual (SMDW, 0x01234568))
   3567      1.1    jruoho                 {   Return (SMDW)   }
   3568      1.1    jruoho 
   3569      1.1    jruoho             //  test DecrementOp with DWORD SystemMemory OpRegion
   3570      1.1    jruoho             Decrement (SMDW)
   3571      1.1    jruoho             If (LNotEqual (SMDW, 0x01234567))
   3572      1.1    jruoho                 {   Return (SMDW)   }
   3573      1.1    jruoho 
   3574      1.1    jruoho 
   3575      1.1    jruoho             //  test IncrementOp with WORD SystemMemory OpRegion
   3576      1.1    jruoho             Store (0x0123, SMWD)
   3577      1.1    jruoho             Increment (SMWD)
   3578      1.1    jruoho             If (LNotEqual (SMWD, 0x0124))
   3579      1.1    jruoho                 {   Return (SMWD)   }
   3580      1.1    jruoho 
   3581      1.1    jruoho             //  test DecrementOp with WORD SystemMemory OpRegion
   3582      1.1    jruoho             Decrement (SMWD)
   3583      1.1    jruoho             If (LNotEqual (SMWD, 0x0123))
   3584      1.1    jruoho                 {   Return (SMWD)   }
   3585      1.1    jruoho 
   3586      1.1    jruoho 
   3587      1.1    jruoho             //  test IncrementOp with BYTE SystemMemory OpRegion
   3588      1.1    jruoho             Store (0x01, SMBY)
   3589      1.1    jruoho             Increment (SMBY)
   3590      1.1    jruoho             If (LNotEqual (SMBY, 0x02))
   3591      1.1    jruoho                 {   Return (SMBY)   }
   3592      1.1    jruoho 
   3593      1.1    jruoho             //  test DecrementOp with BYTE SystemMemory OpRegion
   3594      1.1    jruoho             Decrement (SMBY)
   3595      1.1    jruoho             If (LNotEqual (SMBY, 0x01))
   3596      1.1    jruoho                 {   Return (SMBY)   }
   3597      1.1    jruoho 
   3598      1.1    jruoho             Return (0)
   3599      1.1    jruoho         }   //  TEST
   3600      1.1    jruoho     }   //  INDC
   3601      1.1    jruoho 
   3602      1.1    jruoho //
   3603      1.1    jruoho // test LOps.asl
   3604      1.1    jruoho //
   3605      1.1    jruoho //This source tests all the logical operators. Logical operators in ASL are as follows.
   3606      1.1    jruoho //LAnd, LEqual, LGreater, LLess, LNot, LNotEqual, LOr.
   3607      1.1    jruoho // Success will return 0 and failure will return a non zero number. Check the source code for
   3608      1.1    jruoho // non zero number to find where the test failed
   3609      1.1    jruoho 
   3610      1.1    jruoho     Device (LOPS)
   3611      1.1    jruoho     {
   3612      1.1    jruoho         //Create System Memory Operation Region and field overlays
   3613      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3614      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3615      1.1    jruoho         {
   3616      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3617      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3618      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   3619      1.1    jruoho         }// Field(RAM)
   3620      1.1    jruoho 
   3621      1.1    jruoho         //And with Byte Data
   3622      1.1    jruoho         Name (BYT1, 0xff)
   3623      1.1    jruoho         Name (BYT2, 0xff)
   3624      1.1    jruoho         Name (BRSL, 0x00)
   3625      1.1    jruoho 
   3626      1.1    jruoho         //And with Word Data
   3627      1.1    jruoho         Name (WRD1, 0xffff)
   3628      1.1    jruoho         Name (WRD2, 0xffff)
   3629      1.1    jruoho         Name (WRSL, 0x0000)
   3630      1.1    jruoho 
   3631      1.1    jruoho         //And with DWord Data
   3632      1.1    jruoho         Name (DWD1, 0xffffffff)
   3633      1.1    jruoho         Name (DWD2, 0xffffffff)
   3634      1.1    jruoho         Name (DRSL, 0x00000000)
   3635      1.1    jruoho 
   3636      1.1    jruoho         Name(RSLT,1)
   3637      1.1    jruoho 
   3638      1.1    jruoho         Method (ANDL,2) // Test Logical And
   3639      1.1    jruoho         {
   3640      1.1    jruoho             //test with the arguments passed
   3641      1.1    jruoho             if(LEqual(Arg0,Arg1))
   3642      1.1    jruoho             { Store(LAnd(Arg0,Arg1),RSLT)
   3643      1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3644      1.1    jruoho                 {Return(11)}
   3645      1.1    jruoho             }
   3646      1.1    jruoho 
   3647      1.1    jruoho             //test with he locals
   3648      1.1    jruoho             Store(Arg0,Local0)
   3649      1.1    jruoho             Store(Arg1,Local1)
   3650      1.1    jruoho 
   3651      1.1    jruoho             if(LEqual(Local0,Local1))
   3652      1.1    jruoho             {
   3653      1.1    jruoho                 Store(LAnd(Local0,Local1),RSLT)
   3654      1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3655      1.1    jruoho                     {Return(12)}
   3656      1.1    jruoho             }
   3657      1.1    jruoho 
   3658      1.1    jruoho             //test with BYTE data
   3659      1.1    jruoho             if(LEqual(BYT1,BYT2))
   3660      1.1    jruoho             { Store(LAnd(BYT1,BYT2),BRSL)
   3661      1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3662      1.1    jruoho                 {Return(13)}
   3663      1.1    jruoho             }
   3664      1.1    jruoho 
   3665      1.1    jruoho             //test with WORD data
   3666      1.1    jruoho             if(LEqual(WRD1,WRD2))
   3667      1.1    jruoho             { Store(LAnd(WRD1,WRD2),WRSL)
   3668      1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3669      1.1    jruoho                 {Return(14)}
   3670      1.1    jruoho             }
   3671      1.1    jruoho 
   3672      1.1    jruoho             //test with DWORD data
   3673      1.1    jruoho             if(LEqual(DWD1,DWD2))
   3674      1.1    jruoho             { Store(LAnd(DWD1,DWD2),DRSL)
   3675      1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3676      1.1    jruoho                 {Return(15)}
   3677      1.1    jruoho             }
   3678      1.1    jruoho 
   3679      1.1    jruoho             //Test for system memory data for each test case.
   3680      1.1    jruoho 
   3681      1.1    jruoho                 Store(0xff,BYT1)
   3682      1.1    jruoho                 Store(0xff,SMBY)
   3683      1.1    jruoho                 Store(0x00,BRSL)
   3684      1.1    jruoho 
   3685      1.1    jruoho             //test with BYTE system memory data
   3686      1.1    jruoho             if(LEqual(BYT1,SMBY))
   3687      1.1    jruoho             { Store(LAnd(BYT1,SMBY),BRSL)
   3688      1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3689      1.1    jruoho                 {Return(16)}
   3690      1.1    jruoho             }
   3691      1.1    jruoho 
   3692      1.1    jruoho             Store (0xffff,WRD1)
   3693      1.1    jruoho             Store(0xffff,SMWD)
   3694      1.1    jruoho             Store(0x0000,WRSL)
   3695      1.1    jruoho             //test with WORD system memory data
   3696      1.1    jruoho             if(LEqual(WRD1,SMWD))
   3697      1.1    jruoho             { Store(LAnd(WRD1,SMWD),WRSL)
   3698      1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3699      1.1    jruoho                 {Return(17)}
   3700      1.1    jruoho             }
   3701      1.1    jruoho 
   3702      1.1    jruoho             Store(0x000000,DRSL)
   3703      1.1    jruoho             Store (0xffffff,DWD1)
   3704      1.1    jruoho             Store(0xffffff,SMDW)
   3705      1.1    jruoho 
   3706      1.1    jruoho             //test with DWORD system memory data
   3707      1.1    jruoho             if(LEqual(DWD1,SMDW))
   3708      1.1    jruoho             { Store(LAnd(DWD1,SMDW),DRSL)
   3709      1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3710      1.1    jruoho                 {Return(18)}
   3711      1.1    jruoho             }
   3712      1.1    jruoho 
   3713      1.1    jruoho             Return(0)
   3714      1.1    jruoho 
   3715      1.1    jruoho         }//ANDL
   3716      1.1    jruoho 
   3717      1.1    jruoho         //Test the LOr Operator
   3718      1.1    jruoho 
   3719      1.1    jruoho         Method (ORL_,2)
   3720      1.1    jruoho         {//ORL_
   3721      1.1    jruoho 
   3722      1.1    jruoho             //test with the arguments passed
   3723      1.1    jruoho             if(LEqual(Arg0,Arg1))
   3724      1.1    jruoho             {
   3725      1.1    jruoho                 Store(LOr(Arg0,Arg1),RSLT)
   3726      1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3727      1.1    jruoho                 {
   3728      1.1    jruoho                     Return(21)
   3729      1.1    jruoho                 }
   3730      1.1    jruoho             }
   3731      1.1    jruoho 
   3732      1.1    jruoho             //test with he locals
   3733      1.1    jruoho             Store(Arg0,Local0)
   3734      1.1    jruoho             Store(Arg1,Local1)
   3735      1.1    jruoho 
   3736      1.1    jruoho             if(LEqual(Local0,Local1))
   3737      1.1    jruoho             {
   3738      1.1    jruoho                 Store(LOr(Local0,Local1),RSLT)
   3739      1.1    jruoho                 if(LNotEqual(Ones,RSLT))
   3740      1.1    jruoho                     {Return(22)}
   3741      1.1    jruoho             }
   3742      1.1    jruoho 
   3743      1.1    jruoho             //Check with 1 LOred with 0 on byte data
   3744      1.1    jruoho             Store(0xff,BYT1)
   3745      1.1    jruoho             Store(0x00,BYT2)
   3746      1.1    jruoho             Store(0x00,BRSL)
   3747      1.1    jruoho 
   3748      1.1    jruoho             if(LNotEqual(BYT1, BYT2))
   3749      1.1    jruoho             {
   3750      1.1    jruoho                 Store(LOr(BYT1, BYT2), BRSL)
   3751      1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3752      1.1    jruoho                 {Return(23)}
   3753      1.1    jruoho             }
   3754      1.1    jruoho 
   3755      1.1    jruoho             //Check with 1 LOred with 0 on WORD data
   3756      1.1    jruoho             Store(0xffff,WRD1)
   3757      1.1    jruoho             Store(0x0000,WRD2)
   3758      1.1    jruoho             Store(0x0000,WRSL)
   3759      1.1    jruoho 
   3760      1.1    jruoho             if(LNotEqual(WRD1, WRD2))
   3761      1.1    jruoho             {
   3762      1.1    jruoho                 Store(LOr(WRD1, WRD2), WRSL)
   3763      1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3764      1.1    jruoho                 {Return(24)}
   3765      1.1    jruoho             }
   3766      1.1    jruoho 
   3767      1.1    jruoho             //Check with 1 LOred with 0 on DWORD data
   3768      1.1    jruoho             Store(0xffffffff,DWD1)
   3769      1.1    jruoho             Store(0x00000000,DWD2)
   3770      1.1    jruoho             Store(0x00000000,DRSL)
   3771      1.1    jruoho 
   3772      1.1    jruoho             if(LNotEqual(DWD1, DWD2))
   3773      1.1    jruoho             {
   3774      1.1    jruoho                 Store(LOr(DWD1, DWD2), DRSL)
   3775      1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3776      1.1    jruoho                 {Return(25)}
   3777      1.1    jruoho             }
   3778      1.1    jruoho 
   3779      1.1    jruoho             Store(0x00,BYT1)
   3780      1.1    jruoho             Store(0xff,SMBY)
   3781      1.1    jruoho             Store(0x00,BRSL)
   3782      1.1    jruoho 
   3783      1.1    jruoho             //test with BYTE system memory data
   3784      1.1    jruoho             if(LEqual(BYT1,SMBY))
   3785      1.1    jruoho             { Store(LOr(BYT1,SMBY),BRSL)
   3786      1.1    jruoho                 if(LNotEqual(Ones,BRSL))
   3787      1.1    jruoho                 {Return(26)}
   3788      1.1    jruoho             }
   3789      1.1    jruoho 
   3790      1.1    jruoho             Store (0x0000,WRD1)
   3791      1.1    jruoho             Store(0xffff,SMWD)
   3792      1.1    jruoho             Store(0x0000,WRSL)
   3793      1.1    jruoho 
   3794      1.1    jruoho             //test with WORD system memory data
   3795      1.1    jruoho             if(LEqual(WRD1,SMWD))
   3796      1.1    jruoho             { Store(LOr(WRD1,SMWD),WRSL)
   3797      1.1    jruoho                 if(LNotEqual(Ones,WRSL))
   3798      1.1    jruoho                 {Return(27)}
   3799      1.1    jruoho             }
   3800      1.1    jruoho 
   3801      1.1    jruoho 
   3802      1.1    jruoho             Store(0x00000000,DWD1)
   3803      1.1    jruoho             Store(0xffffffff,SMDW)
   3804      1.1    jruoho             Store(0x00000000,DRSL)
   3805      1.1    jruoho 
   3806      1.1    jruoho             //test with DWORD system memory data
   3807      1.1    jruoho             if(LEqual(DWD1,SMDW))
   3808      1.1    jruoho             { Store(LAnd(DWD1,SMDW),DRSL)
   3809      1.1    jruoho                 if(LNotEqual(Ones,DRSL))
   3810      1.1    jruoho                 {Return(28)}
   3811      1.1    jruoho             }
   3812      1.1    jruoho             Return(0)
   3813      1.1    jruoho 
   3814      1.1    jruoho         }//ORL_
   3815      1.1    jruoho 
   3816      1.1    jruoho         //This method tests LGreater and LNot operator
   3817      1.1    jruoho         Method(LSGR,2)
   3818      1.1    jruoho         {//LSGR
   3819      1.1    jruoho 
   3820      1.1    jruoho             //Test on arguements passed
   3821      1.1    jruoho 
   3822      1.1    jruoho             //in test data, Arg1 > Arg0
   3823      1.1    jruoho             if(LEqual(Ones,LNot(LGreater(Arg1,Arg0))))
   3824      1.1    jruoho             {Return(31)}
   3825      1.1    jruoho 
   3826      1.1    jruoho             //test LLessEqual
   3827      1.1    jruoho             if(LEqual(Ones,LNot(LGreaterEqual(Arg1,Arg0))))
   3828      1.1    jruoho             {Return(32)}
   3829      1.1    jruoho 
   3830      1.1    jruoho             if(LEqual(Ones,LLess(Arg1,Arg0)))
   3831      1.1    jruoho             {Return(33)}
   3832      1.1    jruoho 
   3833      1.1    jruoho             //test LLessEqual
   3834      1.1    jruoho             if(LEqual(Ones,LLessEqual(Arg1,Arg0)))
   3835      1.1    jruoho             {Return(34)}
   3836      1.1    jruoho 
   3837      1.1    jruoho             Store(Arg0,Local0)
   3838      1.1    jruoho             Store(Arg1,Local1)
   3839      1.1    jruoho 
   3840      1.1    jruoho             //test with the locals
   3841      1.1    jruoho             if(LNot(LGreater(Local1,Local0)))
   3842      1.1    jruoho                 {Return(35)}
   3843      1.1    jruoho 
   3844      1.1    jruoho             //test on Byte data
   3845      1.1    jruoho             Store(0x12,BYT1)
   3846      1.1    jruoho             Store(0x21,BYT2)
   3847      1.1    jruoho 
   3848      1.1    jruoho             if(LNot(LGreater(BYT2,BYT1)))
   3849      1.1    jruoho                 {Return(36)}
   3850      1.1    jruoho 
   3851      1.1    jruoho             if(LNot(LLess(BYT1,BYT2)))
   3852      1.1    jruoho                 {Return(37)}
   3853      1.1    jruoho 
   3854      1.1    jruoho             //test LGreaterEqual with byte data
   3855      1.1    jruoho             if(LNot(LGreaterEqual(BYT2,BYT1)))
   3856      1.1    jruoho                 {Return(38)}
   3857      1.1    jruoho 
   3858      1.1    jruoho             //test LLessEqual byte data
   3859      1.1    jruoho             if(LNot(LLessEqual(BYT1,BYT2)))
   3860      1.1    jruoho                 {Return(39)}
   3861      1.1    jruoho 
   3862      1.1    jruoho 
   3863      1.1    jruoho             //test on Word data
   3864      1.1    jruoho             Store(0x1212,WRD1)
   3865      1.1    jruoho             Store(0x2121,WRD2)
   3866      1.1    jruoho 
   3867      1.1    jruoho             if(LNot(LGreater(WRD2,WRD1)))
   3868      1.1    jruoho                 {Return(310)}
   3869      1.1    jruoho 
   3870      1.1    jruoho             if(LNot(LLess(WRD1,WRD2)))
   3871      1.1    jruoho                 {Return(311)}
   3872      1.1    jruoho 
   3873      1.1    jruoho             //Test LGreaterEqual with Word Data
   3874      1.1    jruoho             if(LNot(LGreaterEqual(WRD2,WRD1)))
   3875      1.1    jruoho                 {Return(312)}
   3876      1.1    jruoho 
   3877      1.1    jruoho 
   3878      1.1    jruoho             //Test LLessEqual with Word Data
   3879      1.1    jruoho             if(LNot(LLessEqual(WRD1,WRD2)))
   3880      1.1    jruoho                 {Return(313)}
   3881      1.1    jruoho 
   3882      1.1    jruoho             //test on DWord data
   3883      1.1    jruoho             Store(0x12121212,DWD1)
   3884      1.1    jruoho             Store(0x21212121,DWD2)
   3885      1.1    jruoho 
   3886      1.1    jruoho             if(LNot(LGreater(DWD2,DWD1)))
   3887      1.1    jruoho                 {Return(314)}
   3888      1.1    jruoho 
   3889      1.1    jruoho             if(LNot(LLess(DWD1,DWD2)))
   3890      1.1    jruoho                 {Return(315)}
   3891      1.1    jruoho 
   3892      1.1    jruoho 
   3893      1.1    jruoho             //Test LGreaterEqual with Dword
   3894      1.1    jruoho             if(LNot(LGreaterEqual(DWD2,DWD1)))
   3895      1.1    jruoho                 {Return(316)}
   3896      1.1    jruoho 
   3897      1.1    jruoho             //Test LLessEqual DWord
   3898      1.1    jruoho             if(LNot(LLessEqual(DWD1,DWD2)))
   3899      1.1    jruoho                 {Return(317)}
   3900      1.1    jruoho 
   3901      1.1    jruoho             Return(0)
   3902      1.1    jruoho         }//LSGR
   3903      1.1    jruoho 
   3904      1.1    jruoho         //The test method
   3905      1.1    jruoho         Method(TEST)
   3906      1.1    jruoho         {
   3907      1.1    jruoho             Store ("++++++++ LOps Test", Debug)
   3908      1.1    jruoho 
   3909      1.1    jruoho             Store(0,RSLT)
   3910      1.1    jruoho             //Call LAndOp method
   3911      1.1    jruoho             Store(ANDL(2,2),RSLT)
   3912      1.1    jruoho             if(LNotEqual(RSLT,0))
   3913      1.1    jruoho              {Return(RSLT)}
   3914      1.1    jruoho 
   3915      1.1    jruoho             //Call LOrOp Method
   3916      1.1    jruoho             Store(ORL_(5,5),RSLT)
   3917      1.1    jruoho             if(LNotEqual(RSLT,0))
   3918      1.1    jruoho             {Return(RSLT)}
   3919      1.1    jruoho 
   3920      1.1    jruoho             //Call LSGR Method
   3921      1.1    jruoho             Store(LSGR(5,7),RSLT)
   3922      1.1    jruoho             if(LNotEqual(RSLT,0))
   3923      1.1    jruoho             {Return(RSLT)}
   3924      1.1    jruoho 
   3925      1.1    jruoho             Return(0)
   3926      1.1    jruoho         }//TEST
   3927      1.1    jruoho     }//LOPS
   3928      1.1    jruoho 
   3929      1.1    jruoho //
   3930      1.1    jruoho // test FdSetOps.asl
   3931      1.1    jruoho //
   3932      1.1    jruoho //  FindSetLeftBit - Find Set Left Bit
   3933      1.1    jruoho //  FindSetLeftBitTerm  := FindSetLeftBit
   3934      1.1    jruoho //  (   Source, //TermArg=>Integer
   3935      1.1    jruoho //      Result  //Nothing | SuperName
   3936      1.1    jruoho //  ) => Integer
   3937      1.1    jruoho //  Source is evaluated as integer data type, and the one-based bit location of
   3938      1.1    jruoho //  the first MSb (most significant set bit) is optionally stored into Result.
   3939      1.1    jruoho //  The result of 0 means no bit was set, 1 means the left-most bit set is the
   3940      1.1    jruoho //  first bit, 2 means the left-most bit set is the second bit, and so on.
   3941      1.1    jruoho //  FindSetRightBit - Find Set Right Bit
   3942      1.1    jruoho 
   3943      1.1    jruoho //  FindSetRightBitTerm := FindSetRightBit
   3944      1.1    jruoho //  (   Source, //TermArg=>Integer
   3945      1.1    jruoho //      Result  //Nothing | SuperName
   3946      1.1    jruoho //  ) => Integer
   3947      1.1    jruoho //  Source is evaluated as integer data type, and the one-based bit location of
   3948      1.1    jruoho //  the most LSb (least significant set bit) is optionally stored in Result.
   3949      1.1    jruoho //  The result of 0 means no bit was set, 32 means the first bit set is the
   3950      1.1    jruoho //  32nd bit, 31 means the first bit set is the 31st bit, and so on.
   3951      1.1    jruoho 
   3952      1.1    jruoho //  If the Control method is success Zero is returned. Otherwise a non-zero
   3953      1.1    jruoho //  number is returned.
   3954      1.1    jruoho //
   3955      1.1    jruoho     Device (FDSO)
   3956      1.1    jruoho     {   //  FDSO
   3957      1.1    jruoho 
   3958      1.1    jruoho         //  Create System Memory Operation Region and field overlays
   3959      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   3960      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   3961      1.1    jruoho         {
   3962      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   3963      1.1    jruoho             SMWD,   16, //  16-bit WORD
   3964      1.1    jruoho             SMBY,   8,      //  8-bit BYTE
   3965      1.1    jruoho         }   //  Field(RAM)
   3966      1.1    jruoho 
   3967      1.1    jruoho         //  Byte Data
   3968      1.1    jruoho         Name (BYT1, 1)
   3969      1.1    jruoho         Name (BRSL, 0x00)
   3970      1.1    jruoho 
   3971      1.1    jruoho         //  Word Data
   3972      1.1    jruoho         Name (WRD1, 0x100)
   3973      1.1    jruoho         Name (WRSL, 0x0000)
   3974      1.1    jruoho 
   3975      1.1    jruoho         //  DWord Data
   3976      1.1    jruoho         Name (DWD1, 0x10000)
   3977      1.1    jruoho         Name (DRSL, 0x00000000)
   3978      1.1    jruoho         Name (RSLT, 1)
   3979      1.1    jruoho         Name (CNTR, 1)
   3980      1.1    jruoho 
   3981      1.1    jruoho         Method (SHFT,2)
   3982      1.1    jruoho         //  Arg0 is the actual data and Arg1 is the bit position
   3983      1.1    jruoho         {   //  SHFT
   3984      1.1    jruoho             Store (Arg0, Local0)
   3985      1.1    jruoho             Store (Arg1, Local1)
   3986      1.1    jruoho 
   3987      1.1    jruoho             FindSetLeftBit (Arg0, BRSL)
   3988      1.1    jruoho             If (LNotEqual (BRSL, Arg1))
   3989      1.1    jruoho                 {   Return (0x11)   }
   3990      1.1    jruoho             If (LNotEqual (Arg0, Local0))
   3991      1.1    jruoho                 {   Return (0x12)   }
   3992      1.1    jruoho 
   3993      1.1    jruoho             FindSetLeftBit (Local0, BRSL)
   3994      1.1    jruoho             If (LNotEqual (BRSL, Local1))
   3995      1.1    jruoho                 {   Return (0x13)   }
   3996      1.1    jruoho             If (LNotEqual (Arg0, Local0))
   3997      1.1    jruoho                 {   Return (0x14)   }
   3998      1.1    jruoho 
   3999      1.1    jruoho             //  test the byte value for SetLeftBit
   4000      1.1    jruoho             Store (7, BYT1)
   4001      1.1    jruoho             FindSetLeftBit (BYT1, BRSL)
   4002      1.1    jruoho             If (LNotEqual (BRSL, 3))
   4003      1.1    jruoho                 {   Return (0x15)   }
   4004      1.1    jruoho             If (LNotEqual (BYT1, 7))
   4005      1.1    jruoho                 {   Return (0x16)   }
   4006      1.1    jruoho 
   4007      1.1    jruoho             Store (1, BYT1)
   4008      1.1    jruoho             Store (1, CNTR)
   4009      1.1    jruoho             While (LLessEqual (CNTR, 8))
   4010      1.1    jruoho             {   //  FindSetLeftBit check loop for byte data
   4011      1.1    jruoho                 FindSetLeftBit (BYT1, BRSL)
   4012      1.1    jruoho                 If (LNotEqual (BRSL, CNTR))
   4013      1.1    jruoho                     {   Return (0x17)   }
   4014      1.1    jruoho 
   4015      1.1    jruoho                 //  Shift the bits to check the same
   4016      1.1    jruoho                 ShiftLeft (BYT1, 1, BYT1)
   4017      1.1    jruoho                 Increment (CNTR)
   4018      1.1    jruoho             }   //  FindSetLeftBit check loop for byte data
   4019      1.1    jruoho 
   4020      1.1    jruoho 
   4021      1.1    jruoho             //  Check BYTE value for SetRightBit
   4022      1.1    jruoho             Store (7, BYT1)
   4023      1.1    jruoho             FindSetRightBit (BYT1, BRSL)
   4024      1.1    jruoho             If (LNotEqual (BRSL, 1))
   4025      1.1    jruoho                 {   Return (0x21)   }
   4026      1.1    jruoho             If (LNotEqual (BYT1, 7))
   4027      1.1    jruoho                 {   Return (0x22)   }
   4028      1.1    jruoho 
   4029      1.1    jruoho             Store (1, CNTR)
   4030      1.1    jruoho             Store (0xFF, BYT1)
   4031      1.1    jruoho             While (LLessEqual (CNTR, 8))
   4032      1.1    jruoho             {   //  FindSetRightBit check loop for byte data
   4033      1.1    jruoho                 FindSetRightBit (BYT1, BRSL)
   4034      1.1    jruoho                 If (LNotEqual (BRSL, CNTR))
   4035      1.1    jruoho                     {   Return (0x23)   }
   4036      1.1    jruoho 
   4037      1.1    jruoho                 ShiftLeft (BYT1, 1, BYT1)
   4038      1.1    jruoho                 Increment (CNTR)
   4039      1.1    jruoho             }   //  FindSetRightBit check loop for byte data
   4040      1.1    jruoho 
   4041      1.1    jruoho 
   4042      1.1    jruoho             //  Test Word value for SetLeftBit
   4043      1.1    jruoho             Store (9, CNTR)
   4044      1.1    jruoho             Store (0x100, WRD1)
   4045      1.1    jruoho             While (LLessEqual (CNTR, 16))
   4046      1.1    jruoho             {
   4047      1.1    jruoho                 //  FindSetLeftBit check loop for Word data
   4048      1.1    jruoho                 FindSetLeftBit (WRD1, WRSL)
   4049      1.1    jruoho                 If (LNotEqual (WRSL, CNTR))
   4050      1.1    jruoho                     {   Return (0x31)   }
   4051      1.1    jruoho 
   4052      1.1    jruoho                 //  Shift the bits to check the same
   4053      1.1    jruoho                 ShiftLeft (WRD1, 1, WRD1)
   4054      1.1    jruoho                 Increment (CNTR)
   4055      1.1    jruoho             }   //  FindSetLeftBit check loop for Word data
   4056      1.1    jruoho 
   4057      1.1    jruoho             //  Check Word value for SetRightBit
   4058      1.1    jruoho             Store (9, CNTR)
   4059      1.1    jruoho             Store (0xFF00, WRD1)
   4060      1.1    jruoho             While (LLessEqual (CNTR, 16))
   4061      1.1    jruoho             {
   4062      1.1    jruoho                 //  FindSetRightBit check loop for Word data
   4063      1.1    jruoho                 FindSetRightBit (WRD1, WRSL)
   4064      1.1    jruoho                 If (LNotEqual (WRSL, CNTR))
   4065      1.1    jruoho                     {   Return (0x32)   }
   4066      1.1    jruoho 
   4067      1.1    jruoho                 ShiftLeft (WRD1, 1, WRD1)
   4068      1.1    jruoho                 Increment (CNTR)
   4069      1.1    jruoho             }   //  FindSetRightBit check loop for Word data
   4070      1.1    jruoho 
   4071      1.1    jruoho             //  Test the DWord value for SetLeftBit
   4072      1.1    jruoho             Store (17, CNTR)
   4073      1.1    jruoho             Store (0x10000, DWD1)
   4074      1.1    jruoho             While (LLessEqual (CNTR, 32))
   4075      1.1    jruoho             {
   4076      1.1    jruoho                 //  FindSetLeftBit check loop for Dword
   4077      1.1    jruoho                 FindSetLeftBit (DWD1, DRSL)
   4078      1.1    jruoho                 If (LNotEqual (DRSL, CNTR))
   4079      1.1    jruoho                     {   Return (0x41)   }
   4080      1.1    jruoho 
   4081      1.1    jruoho                 //  Shift the bits to check the same
   4082      1.1    jruoho                 ShiftLeft (DWD1, 1, DWD1)
   4083      1.1    jruoho                 Increment (CNTR)
   4084      1.1    jruoho             }   //  FindSetLeftBit check loop for Dword
   4085      1.1    jruoho 
   4086      1.1    jruoho             //  Check DWord value for SetRightBit
   4087      1.1    jruoho             Store (17, CNTR)
   4088      1.1    jruoho             Store (0xFFFF0000, DWD1)
   4089      1.1    jruoho             While (LLessEqual (CNTR, 32))
   4090      1.1    jruoho             {   //  FindSetRightBit Check loop for DWORD
   4091      1.1    jruoho                 FindSetRightBit (DWD1, DRSL)
   4092      1.1    jruoho                 If (LNotEqual (DRSL, CNTR))
   4093      1.1    jruoho                     {   Return (0x42)   }
   4094      1.1    jruoho 
   4095      1.1    jruoho                 ShiftLeft (DWD1, 1, DWD1)
   4096      1.1    jruoho                 Increment (CNTR)
   4097      1.1    jruoho             }   //  FindSetRightBit Check loop for DWORD
   4098      1.1    jruoho 
   4099      1.1    jruoho             Return (0)
   4100      1.1    jruoho         }   //  SHFT
   4101      1.1    jruoho 
   4102      1.1    jruoho         //  Test method called from amlexec
   4103      1.1    jruoho         Method (TEST)
   4104      1.1    jruoho         {   //  TEST
   4105      1.1    jruoho 
   4106      1.1    jruoho             Store ("++++++++ FdSetOps Test", Debug)
   4107      1.1    jruoho 
   4108      1.1    jruoho             Store (SHFT (0x80, 8), RSLT)
   4109      1.1    jruoho             If (LNotEqual (RSLT, 0))
   4110      1.1    jruoho                 {   Return (RSLT)   }
   4111      1.1    jruoho 
   4112      1.1    jruoho             Return (0)  //  pass
   4113      1.1    jruoho         }   //  TEST
   4114      1.1    jruoho     }   //  Device FDSO
   4115      1.1    jruoho 
   4116      1.1    jruoho //
   4117      1.1    jruoho // test MulDivOp.asl
   4118      1.1    jruoho //
   4119      1.1    jruoho     Device (MLDV)
   4120      1.1    jruoho     {
   4121      1.1    jruoho         //  create System Memory Operation Region and field overlays
   4122      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   4123      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   4124      1.1    jruoho         {
   4125      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   4126      1.1    jruoho             SMWD,   16, //  16-bit WORD
   4127      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   4128      1.1    jruoho         }   //  Field(RAM)
   4129      1.1    jruoho 
   4130  1.1.1.3  christos         Method (TEST,, Serialized)
   4131      1.1    jruoho         {
   4132      1.1    jruoho             Store ("++++++++ MulDivOp Test", Debug)
   4133      1.1    jruoho 
   4134      1.1    jruoho             Name (RMDR, 0)
   4135      1.1    jruoho             Name (DWRD, 0x12345678)
   4136      1.1    jruoho             Name (WRD, 0x1234)
   4137      1.1    jruoho             Name (BYT, 0x12)
   4138      1.1    jruoho 
   4139      1.1    jruoho             //  Test MultiplyOp with DWORD data
   4140      1.1    jruoho             Store (0x12345678, DWRD)
   4141      1.1    jruoho             Multiply (DWRD, 3, DWRD)
   4142      1.1    jruoho             If (LNotEqual (DWRD, 0x369D0368))
   4143      1.1    jruoho                 {   Return (DWRD)   }
   4144      1.1    jruoho 
   4145      1.1    jruoho             //  Test MultiplyOp with WORD data
   4146      1.1    jruoho             Multiply (WRD, 4, WRD)
   4147      1.1    jruoho             If (LNotEqual (WRD, 0x48D0))
   4148      1.1    jruoho                 {   Return (WRD)    }
   4149      1.1    jruoho 
   4150      1.1    jruoho             //  Test MultiplyOp with BYTE data
   4151      1.1    jruoho             Multiply (BYT, 5, BYT)
   4152      1.1    jruoho             If (LNotEqual (BYT, 0x5A))
   4153      1.1    jruoho                 {   Return (BYT)    }
   4154      1.1    jruoho 
   4155      1.1    jruoho             //  Test DivideOp with DWORD data
   4156      1.1    jruoho             Divide (DWRD, 3, DWRD, RMDR)
   4157      1.1    jruoho             If (LNotEqual (DWRD, 0x12345678))
   4158      1.1    jruoho                 {   Return (DWRD)   }
   4159      1.1    jruoho             If (LNotEqual (RMDR, 0))
   4160      1.1    jruoho                 {   Return (RMDR)   }
   4161      1.1    jruoho 
   4162      1.1    jruoho             //  Test DivideOp with WORD data
   4163      1.1    jruoho             Divide (WRD, 4, WRD, RMDR)
   4164      1.1    jruoho             If (LNotEqual (WRD, 0x1234))
   4165      1.1    jruoho                 {   Return (WRD)    }
   4166      1.1    jruoho             If (LNotEqual (RMDR, 0))
   4167      1.1    jruoho                 {   Return (RMDR)   }
   4168      1.1    jruoho 
   4169      1.1    jruoho             //  Test DivideOp with BYTE data
   4170      1.1    jruoho             Divide (BYT, 5, BYT, RMDR)
   4171      1.1    jruoho             If (LNotEqual (BYT, 0x12))
   4172      1.1    jruoho                 {   Return (BYT)    }
   4173      1.1    jruoho             If (LNotEqual (RMDR, 0))
   4174      1.1    jruoho                 {   Return (RMDR)   }
   4175      1.1    jruoho 
   4176      1.1    jruoho 
   4177      1.1    jruoho             //  test MultiplyOp with DWORD SystemMemory OpRegion
   4178      1.1    jruoho             Store (0x01234567, SMDW)
   4179      1.1    jruoho             Multiply (SMDW, 2, SMDW)
   4180      1.1    jruoho             If (LNotEqual (SMDW, 0x02468ACE))
   4181      1.1    jruoho                 {   Return (SMDW)   }
   4182      1.1    jruoho 
   4183      1.1    jruoho             //  test DivideOp with DWORD SystemMemory OpRegion
   4184      1.1    jruoho             Divide (SMDW, 3, SMDW, RMDR)
   4185      1.1    jruoho             If (LNotEqual (SMDW, 0x00C22E44))
   4186      1.1    jruoho                 {   Return (SMDW)   }
   4187      1.1    jruoho             If (LNotEqual (RMDR, 2))
   4188      1.1    jruoho                 {   Return (RMDR)   }
   4189      1.1    jruoho 
   4190      1.1    jruoho 
   4191      1.1    jruoho             //  test MultiplyOp with WORD SystemMemory OpRegion
   4192      1.1    jruoho             Store (0x0123, SMWD)
   4193      1.1    jruoho             Multiply (SMWD, 3, SMWD)
   4194      1.1    jruoho             If (LNotEqual (SMWD, 0x369))
   4195      1.1    jruoho                 {   Return (SMWD)   }
   4196      1.1    jruoho 
   4197      1.1    jruoho             //  test DivideOp with WORD SystemMemory OpRegion
   4198      1.1    jruoho             Divide (SMWD, 2, SMWD, RMDR)
   4199      1.1    jruoho             If (LNotEqual (SMWD, 0x01B4))
   4200      1.1    jruoho                 {   Return (SMWD)   }
   4201      1.1    jruoho             If (LNotEqual (RMDR, 1))
   4202      1.1    jruoho                 {   Return (RMDR)   }
   4203      1.1    jruoho 
   4204      1.1    jruoho 
   4205      1.1    jruoho             //  test MultiplyOp with BYTE SystemMemory OpRegion
   4206      1.1    jruoho             Store (0x01, SMBY)
   4207      1.1    jruoho             Multiply (SMBY, 7, SMBY)
   4208      1.1    jruoho             If (LNotEqual (SMBY, 0x07))
   4209      1.1    jruoho                 {   Return (SMBY)   }
   4210      1.1    jruoho 
   4211      1.1    jruoho             //  test DivideOp with BYTE SystemMemory OpRegion
   4212      1.1    jruoho             Divide (SMBY, 4, SMBY, RMDR)
   4213      1.1    jruoho             If (LNotEqual (SMBY, 0x01))
   4214      1.1    jruoho                 {   Return (SMBY)   }
   4215      1.1    jruoho             If (LNotEqual (RMDR, 3))
   4216      1.1    jruoho                 {   Return (RMDR)   }
   4217      1.1    jruoho 
   4218      1.1    jruoho             Return (0)
   4219      1.1    jruoho         }   //  TEST
   4220      1.1    jruoho     }   //  MLDV
   4221      1.1    jruoho 
   4222      1.1    jruoho //
   4223      1.1    jruoho // test NBitOps.asl
   4224      1.1    jruoho //
   4225      1.1    jruoho //NAnd - Bit-wise NAnd
   4226      1.1    jruoho //NAndTerm  := NAnd(
   4227      1.1    jruoho //  Source1,    //TermArg=>Integer
   4228      1.1    jruoho //  Source2 //TermArg=>Integer
   4229      1.1    jruoho //  Result  //Nothing | SuperName
   4230      1.1    jruoho //) => Integer
   4231      1.1    jruoho //Source1 and Source2 are evaluated as integer data types, a bit-wise NAND is performed, and the result is optionally
   4232      1.1    jruoho //stored in Result.
   4233      1.1    jruoho 
   4234      1.1    jruoho //NOr - Bitwise NOr
   4235      1.1    jruoho //NOrTerm   := NOr(
   4236      1.1    jruoho //  Source1,    //TermArg=>Integer
   4237      1.1    jruoho //  Source2 //TermArg=>Integer
   4238      1.1    jruoho //  Result  //Nothing | SuperName
   4239      1.1    jruoho //) => Integer
   4240      1.1    jruoho //Source1 and Source2 are evaluated as integer data types, a bit-wise NOR is performed, and the result is optionally
   4241      1.1    jruoho //stored in Result.
   4242      1.1    jruoho // Not - Not
   4243      1.1    jruoho //NotTerm   := Not(
   4244      1.1    jruoho //  Source, //TermArg=>Integer
   4245      1.1    jruoho //  Result  //Nothing | SuperName
   4246      1.1    jruoho //) => Integer
   4247      1.1    jruoho //Source1 is evaluated as an integer data type, a bit-wise NOT is performed, and the result is optionally stored in
   4248      1.1    jruoho //Result.
   4249      1.1    jruoho 
   4250      1.1    jruoho //If the Control method is success Zero is returned else a non-zero number is returned
   4251      1.1    jruoho 
   4252      1.1    jruoho     Device (NBIT)
   4253      1.1    jruoho     {//NBIT
   4254      1.1    jruoho 
   4255      1.1    jruoho         //Create System Memory Operation Region and field overlays
   4256      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   4257      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   4258      1.1    jruoho         {
   4259      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   4260      1.1    jruoho             SMWD,   16, //  16-bit WORD
   4261      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   4262      1.1    jruoho         }// Field(RAM)
   4263      1.1    jruoho 
   4264      1.1    jruoho 
   4265      1.1    jruoho         //And with Byte Data
   4266      1.1    jruoho         Name (BYT1, 0xff)
   4267      1.1    jruoho         Name (BYT2, 0xff)
   4268      1.1    jruoho         Name (BRSL, 0x00)
   4269      1.1    jruoho 
   4270      1.1    jruoho         //And with Word Data
   4271      1.1    jruoho         Name (WRD1, 0xffff)
   4272      1.1    jruoho         Name (WRD2, 0xffff)
   4273      1.1    jruoho         Name (WRSL, 0x0000)
   4274      1.1    jruoho 
   4275      1.1    jruoho         //And with DWord Data
   4276      1.1    jruoho         Name (DWD1, 0xffffffff)
   4277      1.1    jruoho         Name (DWD2, 0xffffffff)
   4278      1.1    jruoho         Name (DRSL, 0x00000000)
   4279      1.1    jruoho         Name(RSLT,1)
   4280      1.1    jruoho 
   4281      1.1    jruoho 
   4282      1.1    jruoho         Name(ARSL,0x00)
   4283      1.1    jruoho         Name(LRSL,0x00)
   4284      1.1    jruoho 
   4285      1.1    jruoho         Method(NNDB,2)
   4286      1.1    jruoho         {//NNDB
   4287      1.1    jruoho 
   4288      1.1    jruoho             Store(0xffffffff,SMDW)
   4289      1.1    jruoho             Store(0xffff,SMWD)
   4290      1.1    jruoho             Store(0xff,SMBY)
   4291      1.1    jruoho 
   4292      1.1    jruoho 
   4293      1.1    jruoho             NAnd(Arg0,Arg1,ARSL)
   4294      1.1    jruoho             if(LNotEqual(ARSL,0xfffffffd))
   4295      1.1    jruoho              {Return(11)}
   4296      1.1    jruoho 
   4297      1.1    jruoho              Store(Arg0,local0)
   4298      1.1    jruoho              Store(Arg1,Local1)
   4299      1.1    jruoho 
   4300      1.1    jruoho              NAnd(Local0,Local1,LRSL)
   4301      1.1    jruoho                 if(LNotEqual(LRSL,0xfffffffd))
   4302      1.1    jruoho              {Return(12)}
   4303      1.1    jruoho 
   4304      1.1    jruoho 
   4305      1.1    jruoho             //Byte data
   4306      1.1    jruoho             NAnd(BYT1,BYT2,BRSL)
   4307      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4308      1.1    jruoho              {Return(13)}
   4309      1.1    jruoho 
   4310      1.1    jruoho             //Word Data
   4311      1.1    jruoho              NAnd(WRD1,WRD2,WRSL)
   4312      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4313      1.1    jruoho              {Return(14)}
   4314      1.1    jruoho 
   4315      1.1    jruoho              //DWord Data
   4316      1.1    jruoho              NAnd(DWD1,DWD2,DRSL)
   4317      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4318      1.1    jruoho              {Return(15)}
   4319      1.1    jruoho 
   4320      1.1    jruoho              //Byte data
   4321      1.1    jruoho             NAnd(SMBY,0xff,BRSL)
   4322      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4323      1.1    jruoho              {Return(16)}
   4324      1.1    jruoho 
   4325      1.1    jruoho             //Word Data
   4326      1.1    jruoho              NAnd(SMWD,0xffff,WRSL)
   4327      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4328      1.1    jruoho              {Return(17)}
   4329      1.1    jruoho 
   4330      1.1    jruoho              //DWord Data
   4331      1.1    jruoho              NAnd(SMDW,0xffffffff,DRSL)
   4332      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4333      1.1    jruoho              {Return(18)}
   4334      1.1    jruoho 
   4335      1.1    jruoho             Return(0)
   4336      1.1    jruoho 
   4337      1.1    jruoho         }//NNDB
   4338      1.1    jruoho 
   4339      1.1    jruoho         Method(NNOR,2)
   4340      1.1    jruoho         {//NNOR
   4341      1.1    jruoho 
   4342      1.1    jruoho             NOr(Arg0,Arg1,ARSL)
   4343      1.1    jruoho             if(LNotEqual(ARSL,0xfffffffd))
   4344      1.1    jruoho              {Return(21)}
   4345      1.1    jruoho 
   4346      1.1    jruoho             Store(Arg0,local0)
   4347      1.1    jruoho             Store(Arg1,Local1)
   4348      1.1    jruoho 
   4349      1.1    jruoho             NOr(Local0,Local1,LRSL)
   4350      1.1    jruoho             if(LNotEqual(LRSL,0xfffffffd))
   4351      1.1    jruoho              {Return(22)}
   4352      1.1    jruoho 
   4353      1.1    jruoho 
   4354      1.1    jruoho             //Byte data
   4355      1.1    jruoho             NOr(BYT1,BYT2,BRSL)
   4356      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4357      1.1    jruoho              {Return(23)}
   4358      1.1    jruoho 
   4359      1.1    jruoho             //Word Data
   4360      1.1    jruoho             NOr(WRD1,WRD2,WRSL)
   4361      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4362      1.1    jruoho              {Return(24)}
   4363      1.1    jruoho 
   4364      1.1    jruoho             //DWord Data
   4365      1.1    jruoho             NOr(DWD1,DWD2,DRSL)
   4366      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4367      1.1    jruoho              {Return(25)}
   4368      1.1    jruoho 
   4369      1.1    jruoho              //System Memory Byte data
   4370      1.1    jruoho             NOr(SMBY,0xff,BRSL)
   4371      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4372      1.1    jruoho              {Return(26)}
   4373      1.1    jruoho 
   4374      1.1    jruoho             //System Memory Word Data
   4375      1.1    jruoho             NOr(SMWD,0xffff,WRSL)
   4376      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4377      1.1    jruoho              {Return(27)}
   4378      1.1    jruoho 
   4379      1.1    jruoho             //System Memory DWord Data
   4380      1.1    jruoho             NOr(SMDW,0xffffffff,DRSL)
   4381      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4382      1.1    jruoho              {Return(28)}
   4383      1.1    jruoho 
   4384      1.1    jruoho             Return(0)
   4385      1.1    jruoho 
   4386      1.1    jruoho         }//NNOR
   4387      1.1    jruoho 
   4388      1.1    jruoho         Method(NNOT,2)
   4389      1.1    jruoho         {//NNOT
   4390      1.1    jruoho 
   4391      1.1    jruoho             Or(Arg0,Arg1,ARSL)
   4392      1.1    jruoho             Not(ARSL,ARSL)
   4393      1.1    jruoho             if(LNotEqual(ARSL,0xfffffffd))
   4394      1.1    jruoho              {Return(31)}
   4395      1.1    jruoho 
   4396      1.1    jruoho             Store(Arg0,local0)
   4397      1.1    jruoho             Store(Arg1,Local1)
   4398      1.1    jruoho 
   4399      1.1    jruoho             Or(Local0,Local1,LRSL)
   4400      1.1    jruoho             Not(LRSL,LRSL)
   4401      1.1    jruoho             if(LNotEqual(LRSL,0xfffffffd))
   4402      1.1    jruoho              {Return(32)}
   4403      1.1    jruoho 
   4404      1.1    jruoho 
   4405      1.1    jruoho             //Byte data
   4406      1.1    jruoho             Or(BYT1,BYT2,BRSL)
   4407      1.1    jruoho             Not(BRSL,BRSL)
   4408      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4409      1.1    jruoho              {Return(33)}
   4410      1.1    jruoho 
   4411      1.1    jruoho             //Word Data
   4412      1.1    jruoho             Or(WRD1,WRD2,WRSL)
   4413      1.1    jruoho             Not(WRSL,WRSL)
   4414      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4415      1.1    jruoho              {Return(34)}
   4416      1.1    jruoho 
   4417      1.1    jruoho             //DWord Data
   4418      1.1    jruoho             Or(DWD1,DWD2,DRSL)
   4419      1.1    jruoho             Not(DRSL,DRSL)
   4420      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4421      1.1    jruoho              {Return(35)}
   4422      1.1    jruoho 
   4423      1.1    jruoho              //System Memory Byte data
   4424      1.1    jruoho             Or(SMBY,0xff,BRSL)
   4425      1.1    jruoho             Not(BRSL,BRSL)
   4426      1.1    jruoho             if(LNotEqual(BRSL,0xffffff00))
   4427      1.1    jruoho              {Return(36)}
   4428      1.1    jruoho 
   4429      1.1    jruoho             //System Memory Word Data
   4430      1.1    jruoho             Or(SMWD,0xffff,WRSL)
   4431      1.1    jruoho             Not(WRSL,WRSL)
   4432      1.1    jruoho             if(LNotEqual(WRSL,0xffff0000))
   4433      1.1    jruoho              {Return(37)}
   4434      1.1    jruoho 
   4435      1.1    jruoho             //System Memory DWord Data
   4436      1.1    jruoho             Or(SMDW,0xffffffff,DRSL)
   4437      1.1    jruoho             Not(DRSL,DRSL)
   4438      1.1    jruoho             if(LNotEqual(DRSL,0x00000000))
   4439      1.1    jruoho              {Return(38)}
   4440      1.1    jruoho 
   4441      1.1    jruoho             Return(0)
   4442      1.1    jruoho         }//NNOT
   4443      1.1    jruoho 
   4444      1.1    jruoho 
   4445      1.1    jruoho         Method(TEST)
   4446      1.1    jruoho         {
   4447      1.1    jruoho 
   4448      1.1    jruoho             Store ("++++++++ NBitOps Test", Debug)
   4449      1.1    jruoho 
   4450      1.1    jruoho             Store(NNDB(2,2),RSLT)
   4451      1.1    jruoho             if(LNotEqual(RSLT,0))
   4452      1.1    jruoho                 {Return(RSLT)}
   4453      1.1    jruoho 
   4454      1.1    jruoho             Store(NNOR(2,2),RSLT)
   4455      1.1    jruoho             if(LNotEqual(RSLT,0))
   4456      1.1    jruoho                 {Return(RSLT)}
   4457      1.1    jruoho 
   4458      1.1    jruoho             Store(NNOT(2,2),RSLT)
   4459      1.1    jruoho             if(LNotEqual(RSLT,0))
   4460      1.1    jruoho                 {Return(RSLT)}
   4461      1.1    jruoho 
   4462      1.1    jruoho 
   4463      1.1    jruoho            Return(0)
   4464      1.1    jruoho         }
   4465      1.1    jruoho 
   4466      1.1    jruoho     }//Device NBIT
   4467      1.1    jruoho 
   4468      1.1    jruoho //
   4469      1.1    jruoho // test ShftOp.asl
   4470      1.1    jruoho //
   4471      1.1    jruoho //ShiftRightTerm    := ShiftRight(
   4472      1.1    jruoho //  Source, //TermArg=>Integer
   4473      1.1    jruoho //  ShiftCount  //TermArg=>Integer
   4474      1.1    jruoho //  Result  //Nothing | SuperName
   4475      1.1    jruoho //) => Integer
   4476      1.1    jruoho //Source and ShiftCount are evaluated as integer data types. Source is shifted right with the most significant bit
   4477      1.1    jruoho //zeroed ShiftCount times.  The result is optionally stored into Result.
   4478      1.1    jruoho 
   4479      1.1    jruoho //ShiftLeft(
   4480      1.1    jruoho //  Source, //TermArg=>Integer
   4481      1.1    jruoho //  ShiftCount  //TermArg=>Integer
   4482      1.1    jruoho //  Result  //Nothing | SuperName
   4483      1.1    jruoho //) => Integer
   4484      1.1    jruoho //Source and ShiftCount are evaluated as integer data types. Source is shifted left with the least significant
   4485      1.1    jruoho //bit zeroed ShiftCount times. The result is optionally stored into Result.
   4486      1.1    jruoho 
   4487      1.1    jruoho //If the Control method is success Zero is returned else a non-zero number is returned
   4488      1.1    jruoho     Device (SHFT)
   4489      1.1    jruoho     {//SHFT
   4490      1.1    jruoho 
   4491      1.1    jruoho         //Create System Memory Operation Region and field overlays
   4492      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   4493      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   4494      1.1    jruoho         {
   4495      1.1    jruoho             SMDW,   32, //  32-bit DWORD
   4496      1.1    jruoho             SMWD,   16, //  16-bit WORD
   4497      1.1    jruoho             SMBY,   8,  //  8-bit BYTE
   4498      1.1    jruoho         }// Field(RAM)
   4499      1.1    jruoho 
   4500      1.1    jruoho 
   4501      1.1    jruoho         Name(SHFC,0x00)
   4502      1.1    jruoho 
   4503      1.1    jruoho         //And with Byte Data
   4504      1.1    jruoho         Name (BYT1, 0xff)
   4505      1.1    jruoho         Name (BRSL, 0x00)
   4506      1.1    jruoho 
   4507      1.1    jruoho         //And with Word Data
   4508      1.1    jruoho         Name (WRD1, 0xffff)
   4509      1.1    jruoho         Name (WRSL, 0x0000)
   4510      1.1    jruoho 
   4511      1.1    jruoho         //And with DWord Data
   4512      1.1    jruoho         Name (DWD1, 0xffffffff)
   4513      1.1    jruoho         Name (DRSL, 0x00000000)
   4514      1.1    jruoho 
   4515      1.1    jruoho         Name(RSLT,1)
   4516      1.1    jruoho 
   4517      1.1    jruoho         Name(ARSL,0x00)
   4518      1.1    jruoho         Name(LRSL,0x00)
   4519      1.1    jruoho 
   4520      1.1    jruoho         Method(SLFT,2)
   4521      1.1    jruoho         {//SLFT
   4522      1.1    jruoho 
   4523      1.1    jruoho             Store(0xffffffff,SMDW)
   4524      1.1    jruoho             Store(0xffff,SMWD)
   4525      1.1    jruoho             Store(0xff,SMBY)
   4526      1.1    jruoho 
   4527      1.1    jruoho 
   4528      1.1    jruoho             //Arg0-> 2 & Arg1->2
   4529      1.1    jruoho             ShiftLeft(Arg0,Arg1,ARSL)
   4530      1.1    jruoho             if(LNotEqual(ARSL,8))
   4531      1.1    jruoho             {Return(11)}
   4532      1.1    jruoho 
   4533      1.1    jruoho              Store(Arg0,local0)
   4534      1.1    jruoho              Store(Arg1,Local1)
   4535      1.1    jruoho 
   4536      1.1    jruoho              //Local0->8 and Local1->2
   4537      1.1    jruoho              ShiftLeft(Local0,Local1,LRSL)
   4538      1.1    jruoho                 if(LNotEqual(LRSL,8))
   4539      1.1    jruoho              {Return(12)}
   4540      1.1    jruoho 
   4541      1.1    jruoho             Store(2,SHFC)
   4542      1.1    jruoho             //Byte data
   4543      1.1    jruoho             ShiftLeft(BYT1,SHFC,BRSL)
   4544      1.1    jruoho             if(LNotEqual(BRSL,0x3FC))
   4545      1.1    jruoho              {Return(13)}
   4546      1.1    jruoho 
   4547      1.1    jruoho             Store(4,SHFC)
   4548      1.1    jruoho             //Word Data
   4549      1.1    jruoho              ShiftLeft(WRD1,SHFC,WRSL)
   4550      1.1    jruoho             if(LNotEqual(WRSL,0xFFFF0))
   4551      1.1    jruoho              {Return(14)}
   4552      1.1    jruoho 
   4553      1.1    jruoho             Store(8,SHFC)
   4554      1.1    jruoho             //DWord Data
   4555      1.1    jruoho             ShiftLeft(DWD1,SHFC,DRSL)
   4556      1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF00))
   4557      1.1    jruoho              {Return(15)}
   4558      1.1    jruoho 
   4559      1.1    jruoho 
   4560      1.1    jruoho              //System Memory Byte data
   4561      1.1    jruoho             Store(4,SHFC)
   4562      1.1    jruoho             ShiftLeft(SMBY,SHFC,BRSL)
   4563      1.1    jruoho             if(LNotEqual(BRSL,0xFF0))
   4564      1.1    jruoho             {Return(16)}
   4565      1.1    jruoho 
   4566      1.1    jruoho             //Word Data
   4567      1.1    jruoho             Store(4,SHFC)
   4568      1.1    jruoho             ShiftLeft(SMWD,SHFC,WRSL)
   4569      1.1    jruoho             if(LNotEqual(WRSL,0xffff0))
   4570      1.1    jruoho              {Return(17)}
   4571      1.1    jruoho 
   4572      1.1    jruoho             //DWord Data
   4573      1.1    jruoho             Store(8,SHFC)
   4574      1.1    jruoho             ShiftLeft(SMDW,SHFC,DRSL)
   4575      1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF00))
   4576      1.1    jruoho                 {Return(18)}
   4577      1.1    jruoho 
   4578      1.1    jruoho             Return(0)
   4579      1.1    jruoho 
   4580      1.1    jruoho         }//SLFT
   4581      1.1    jruoho 
   4582      1.1    jruoho         Method(SRGT,2)
   4583      1.1    jruoho         {//SRGT
   4584      1.1    jruoho             //And with Byte Data
   4585      1.1    jruoho             Store (0xff,BYT1)
   4586      1.1    jruoho             Store (0x00,BRSL)
   4587      1.1    jruoho 
   4588      1.1    jruoho             //And with Word Data
   4589      1.1    jruoho             Store (0xffff,WRD1)
   4590      1.1    jruoho             Store (0x0000,WRSL)
   4591      1.1    jruoho 
   4592      1.1    jruoho             //And with DWord Data
   4593      1.1    jruoho             Store(0xffffffff,DWD1)
   4594      1.1    jruoho             Store (0x00000000,DRSL)
   4595      1.1    jruoho 
   4596      1.1    jruoho             //Reinitialize the result objects
   4597      1.1    jruoho             Store(0x00,ARSL)
   4598      1.1    jruoho             Store(0x00,LRSL)
   4599      1.1    jruoho 
   4600      1.1    jruoho             Store(0xffffffff,SMDW)
   4601      1.1    jruoho             Store(0xffff,SMWD)
   4602      1.1    jruoho             Store(0xff,SMBY)
   4603      1.1    jruoho 
   4604      1.1    jruoho             //Arg0-> 2 & Arg1->2
   4605      1.1    jruoho             ShiftRight(Arg0,Arg1,ARSL)
   4606      1.1    jruoho             if(LNotEqual(ARSL,0))
   4607      1.1    jruoho             {Return(21)}
   4608      1.1    jruoho 
   4609      1.1    jruoho              Store(Arg0,local0)
   4610      1.1    jruoho              Store(Arg1,Local1)
   4611      1.1    jruoho 
   4612      1.1    jruoho              //Local0->8 and Local1->2
   4613      1.1    jruoho              ShiftRight(Local0,Local1,LRSL)
   4614      1.1    jruoho                 if(LNotEqual(LRSL,0))
   4615      1.1    jruoho              {Return(22)}
   4616      1.1    jruoho 
   4617      1.1    jruoho             Store(2,SHFC)
   4618      1.1    jruoho             //Byte data
   4619      1.1    jruoho             ShiftRight(BYT1,SHFC,BRSL)
   4620      1.1    jruoho             if(LNotEqual(BRSL,0x3F))
   4621      1.1    jruoho              {Return(23)}
   4622      1.1    jruoho 
   4623      1.1    jruoho             Store(4,SHFC)
   4624      1.1    jruoho             //Word Data
   4625      1.1    jruoho              ShiftRight(WRD1,SHFC,WRSL)
   4626      1.1    jruoho             if(LNotEqual(WRSL,0xFFF))
   4627      1.1    jruoho              {Return(24)}
   4628      1.1    jruoho 
   4629      1.1    jruoho             Store(8,SHFC)
   4630      1.1    jruoho             //DWord Data
   4631      1.1    jruoho             ShiftRight(DWD1,SHFC,DRSL)
   4632      1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF))
   4633      1.1    jruoho              {Return(25)}
   4634      1.1    jruoho 
   4635      1.1    jruoho             //System Memory Byte data
   4636      1.1    jruoho             Store(4,SHFC)
   4637      1.1    jruoho             ShiftRight(SMBY,SHFC,BRSL)
   4638      1.1    jruoho             if(LNotEqual(BRSL,0xF))
   4639      1.1    jruoho             {Return(26)}
   4640      1.1    jruoho 
   4641      1.1    jruoho             //Word Data
   4642      1.1    jruoho             Store(4,SHFC)
   4643      1.1    jruoho             ShiftRight(SMWD,SHFC,WRSL)
   4644      1.1    jruoho             if(LNotEqual(WRSL,0xFFF))
   4645      1.1    jruoho              {Return(27)}
   4646      1.1    jruoho 
   4647      1.1    jruoho             //DWord Data
   4648      1.1    jruoho             Store(8,SHFC)
   4649      1.1    jruoho             ShiftRight(SMDW,SHFC,DRSL)
   4650      1.1    jruoho             if(LNotEqual(DRSL,0xFFFFFF))
   4651      1.1    jruoho                 {Return(28)}
   4652      1.1    jruoho 
   4653      1.1    jruoho             Return(0)
   4654      1.1    jruoho         }//SRGT
   4655      1.1    jruoho 
   4656      1.1    jruoho         //Test method called from amlexec
   4657      1.1    jruoho         Method(TEST)
   4658      1.1    jruoho         {
   4659      1.1    jruoho             Store ("++++++++ ShftOp Test", Debug)
   4660      1.1    jruoho 
   4661      1.1    jruoho             Store(SLFT(2,2),RSLT)
   4662      1.1    jruoho             if(LNotEqual(RSLT,0))
   4663      1.1    jruoho                 {Return(RSLT)}
   4664      1.1    jruoho             Store(SRGT(2,2),RSLT)
   4665      1.1    jruoho             if(LNotEqual(RSLT,0))
   4666      1.1    jruoho                 {Return(RSLT)}
   4667      1.1    jruoho            Return(0)
   4668      1.1    jruoho         }
   4669      1.1    jruoho 
   4670      1.1    jruoho     }//Device SHFT
   4671      1.1    jruoho 
   4672      1.1    jruoho //
   4673      1.1    jruoho // test Xor.asl and slightly modified
   4674      1.1    jruoho //
   4675      1.1    jruoho //This code tests the XOR opcode term
   4676      1.1    jruoho //Syntax of XOR term
   4677      1.1    jruoho //          XOr(
   4678      1.1    jruoho //                  Source1  //TermArg=>BufferTerm
   4679      1.1    jruoho //                  Source2  //TermArg=>Integer
   4680      1.1    jruoho //                  Result //NameString
   4681      1.1    jruoho //              )
   4682      1.1    jruoho //"Source1" and "Source2" are evaluated as integers, a bit-wise XOR is performed, and the result is optionally stored in
   4683      1.1    jruoho // Result
   4684      1.1    jruoho     Device (XORD)
   4685      1.1    jruoho     {
   4686      1.1    jruoho         //This Method tests XOr operator for all the data types i.e. BYTE, WORD and DWORD
   4687  1.1.1.3  christos         Method (TEST,, Serialized)
   4688      1.1    jruoho         {
   4689      1.1    jruoho             Store ("++++++++ Xor Test", Debug)
   4690      1.1    jruoho 
   4691      1.1    jruoho             //Overlay in system memory
   4692      1.1    jruoho             OperationRegion (RAM, SystemMemory, 0x800000, 256)
   4693      1.1    jruoho             Field (RAM, ByteAcc, NoLock, Preserve)
   4694      1.1    jruoho             {
   4695      1.1    jruoho                 RES1,   1,  //Offset
   4696      1.1    jruoho                 BYT1,   8,  //First BYTE
   4697      1.1    jruoho                 BYT2,   8,  //Second BYTE
   4698      1.1    jruoho                 RBYT,   8,  //Result Byte
   4699      1.1    jruoho                 RES2,   1,  //Offset
   4700      1.1    jruoho                 WRD1,   16, //First WORD field
   4701      1.1    jruoho                 WRD2,   16, //Second WORD field
   4702      1.1    jruoho                 RWRD,   16, //RSLT WORD field
   4703      1.1    jruoho                 RES3,   1,  //Offset
   4704      1.1    jruoho                 DWD1,   32, //First Dword
   4705      1.1    jruoho                 DWD2,   32, //Second Dword
   4706      1.1    jruoho                 RDWD,   32, //Result Dword
   4707      1.1    jruoho                 RES4,   1,  //Offset
   4708      1.1    jruoho             }
   4709      1.1    jruoho 
   4710      1.1    jruoho             // Store bits in the single bit fields for checking
   4711      1.1    jruoho             //  at the end
   4712      1.1    jruoho             Store(1, RES1)
   4713      1.1    jruoho             Store(1, RES2)
   4714      1.1    jruoho             Store(1, RES3)
   4715      1.1    jruoho             Store(1, RES4)
   4716      1.1    jruoho 
   4717      1.1    jruoho             // Check the stored single bits
   4718      1.1    jruoho             if(LNotEqual(RES1, 1))
   4719      1.1    jruoho             {
   4720      1.1    jruoho                 Return(1)
   4721      1.1    jruoho             }
   4722      1.1    jruoho 
   4723      1.1    jruoho             if(LNotEqual(RES2, 1))
   4724      1.1    jruoho             {
   4725      1.1    jruoho                 Return(1)
   4726      1.1    jruoho             }
   4727      1.1    jruoho 
   4728      1.1    jruoho             if(LNotEqual(RES3, 1))
   4729      1.1    jruoho             {
   4730      1.1    jruoho                 Return(1)
   4731      1.1    jruoho             }
   4732      1.1    jruoho 
   4733      1.1    jruoho             if(LNotEqual(RES4, 1))
   4734      1.1    jruoho             {
   4735      1.1    jruoho                 Return(1)
   4736      1.1    jruoho             }
   4737      1.1    jruoho 
   4738      1.1    jruoho             //************************************************
   4739      1.1    jruoho             // (BYT1) Bit1 ->0 and (BYT2)Bit2 -> 0 condition
   4740      1.1    jruoho             Store(0x00,BYT1)
   4741      1.1    jruoho             Store(0x00,BYT2)
   4742      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4743      1.1    jruoho             Store (Local0, RBYT)
   4744      1.1    jruoho             if(LNotEqual(RBYT,0))
   4745      1.1    jruoho             {   Return(1)}
   4746      1.1    jruoho 
   4747      1.1    jruoho             // (BYT1) Bit1 ->1 and (BYT2)Bit2 -> 1 condition
   4748      1.1    jruoho             Store(0xff,BYT1)
   4749      1.1    jruoho             Store(0xff,BYT2)
   4750      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4751      1.1    jruoho             Store (Local0, RBYT)
   4752      1.1    jruoho             if(LNotEqual(RBYT,0))
   4753      1.1    jruoho             {   Return(1)}
   4754      1.1    jruoho 
   4755      1.1    jruoho             // (BYT1) Bit1 ->1 and (BYT)Bit2 -> 0 condition
   4756      1.1    jruoho             Store(0x55,BYT1)
   4757      1.1    jruoho             Store(0xAA,BYT2)
   4758      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4759      1.1    jruoho             Store (Local0, RBYT)
   4760      1.1    jruoho             if(LNotEqual(RBYT,0xFF))
   4761      1.1    jruoho             {   Return(1)}
   4762      1.1    jruoho 
   4763      1.1    jruoho             //(BYT1) Bit1 ->0 and (BYT2)Bit2 -> 1 condition
   4764      1.1    jruoho             Store(0xAA,BYT1)
   4765      1.1    jruoho             Store(0x55,BYT2)
   4766      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4767      1.1    jruoho             Store (Local0, RBYT)
   4768      1.1    jruoho             if(LNotEqual(RBYT,0xFF))
   4769      1.1    jruoho             {   Return(1)}
   4770      1.1    jruoho 
   4771      1.1    jruoho             Store(0x12,BYT1)
   4772      1.1    jruoho             Store(0xED,BYT2)
   4773      1.1    jruoho 
   4774      1.1    jruoho             XOr(BYT1,BYT2,Local0)
   4775      1.1    jruoho             Store (Local0, RBYT)
   4776      1.1    jruoho             if(LNotEqual(RBYT,0xFF))
   4777      1.1    jruoho             {
   4778      1.1    jruoho                 Return(1)
   4779      1.1    jruoho             }
   4780      1.1    jruoho 
   4781      1.1    jruoho             // Store known values for checking later
   4782      1.1    jruoho             Store(0x12, BYT1)
   4783      1.1    jruoho             if(LNotEqual(BYT1, 0x12))
   4784      1.1    jruoho             {
   4785      1.1    jruoho                 Return(1)
   4786      1.1    jruoho             }
   4787      1.1    jruoho 
   4788      1.1    jruoho             Store(0xFE, BYT2)
   4789      1.1    jruoho             if(LNotEqual(BYT2, 0xFE))
   4790      1.1    jruoho             {
   4791      1.1    jruoho                 Return(1)
   4792      1.1    jruoho             }
   4793      1.1    jruoho 
   4794      1.1    jruoho             Store(0xAB, RBYT)
   4795      1.1    jruoho             if(LNotEqual(RBYT, 0xAB))
   4796      1.1    jruoho             {
   4797      1.1    jruoho                 Return(1)
   4798      1.1    jruoho             }
   4799      1.1    jruoho 
   4800      1.1    jruoho             //***********************************************
   4801      1.1    jruoho             // (WRD1) Bit1 ->0 and (WRD2)Bit2 -> 0 condition
   4802      1.1    jruoho             Store(0x0000,WRD1)
   4803      1.1    jruoho             Store(0x0000,WRD2)
   4804      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4805      1.1    jruoho             if(LNotEqual(RWRD,0))
   4806      1.1    jruoho             {   Return(1)}
   4807      1.1    jruoho 
   4808      1.1    jruoho             // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 1 condition
   4809      1.1    jruoho             Store(0xffff,WRD1)
   4810      1.1    jruoho             Store(0xffff,WRD2)
   4811      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4812      1.1    jruoho             if(LNotEqual(RWRD,0))
   4813      1.1    jruoho             {   Return(1)}
   4814      1.1    jruoho 
   4815      1.1    jruoho             // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 0 condition
   4816      1.1    jruoho             Store(0x5555,WRD1)
   4817      1.1    jruoho             Store(0xAAAA,WRD2)
   4818      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4819      1.1    jruoho             if(LNotEqual(RWRD,0xFFFF))
   4820      1.1    jruoho             {   Return(1)}
   4821      1.1    jruoho 
   4822      1.1    jruoho             //(WRD1) Bit1 ->0 and (WRD2)Bit2 -> 1 condition
   4823      1.1    jruoho             Store(0xAAAA,WRD1)
   4824      1.1    jruoho             Store(0x5555,WRD2)
   4825      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4826      1.1    jruoho             if(LNotEqual(RWRD,0xFFFF))
   4827      1.1    jruoho             {   Return(1)}
   4828      1.1    jruoho 
   4829      1.1    jruoho             Store(0x1234,WRD1)
   4830      1.1    jruoho             Store(0xEDCB,WRD2)
   4831      1.1    jruoho             XOr(WRD1,WRD2,RWRD)
   4832      1.1    jruoho             if(LNotEqual(RWRD,0xFFFF))
   4833      1.1    jruoho             {   Return(1)}
   4834      1.1    jruoho 
   4835      1.1    jruoho             // Store known values for checking later
   4836      1.1    jruoho             Store(0x1234, WRD1)
   4837      1.1    jruoho             if(LNotEqual(WRD1, 0x1234))
   4838      1.1    jruoho             {
   4839      1.1    jruoho                 Return(1)
   4840      1.1    jruoho             }
   4841      1.1    jruoho 
   4842      1.1    jruoho             Store(0xFEDC, WRD2)
   4843      1.1    jruoho             if(LNotEqual(WRD2, 0xFEDC))
   4844      1.1    jruoho             {
   4845      1.1    jruoho                 Return(1)
   4846      1.1    jruoho             }
   4847      1.1    jruoho 
   4848      1.1    jruoho             Store(0x87AB, RWRD)
   4849      1.1    jruoho             if(LNotEqual(RWRD, 0x87AB))
   4850      1.1    jruoho             {
   4851      1.1    jruoho                 Return(1)
   4852      1.1    jruoho             }
   4853      1.1    jruoho 
   4854      1.1    jruoho 
   4855      1.1    jruoho             //**************************************************
   4856      1.1    jruoho             // (DWD1) Bit1 ->0 and (DWD2)Bit2 -> 0 condition
   4857      1.1    jruoho             Store(0x00000000,DWD1)
   4858      1.1    jruoho             Store(0x00000000,DWD2)
   4859      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4860      1.1    jruoho             if(LNotEqual(RDWD,0))
   4861      1.1    jruoho             {   Return(1)}
   4862      1.1    jruoho 
   4863      1.1    jruoho             // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 1 condition
   4864      1.1    jruoho             Store(0xffffffff,DWD1)
   4865      1.1    jruoho             Store(0xffffffff,DWD2)
   4866      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4867      1.1    jruoho             if(LNotEqual(RDWD,0))
   4868      1.1    jruoho             {   Return(1)}
   4869      1.1    jruoho 
   4870      1.1    jruoho             // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
   4871      1.1    jruoho             Store(0x55555555,DWD1)
   4872      1.1    jruoho             Store(0xAAAAAAAA,DWD2)
   4873      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4874      1.1    jruoho             if(LNotEqual(RDWD,0xFFFFFFFF))
   4875      1.1    jruoho             {   Return(1)}
   4876      1.1    jruoho 
   4877      1.1    jruoho             //(DWD1) Bit1 ->0 and (DWD2)Bit2 -> 1 condition
   4878      1.1    jruoho             Store(0xAAAAAAAA,DWD1)
   4879      1.1    jruoho             Store(0x55555555,DWD2)
   4880      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4881      1.1    jruoho             if(LNotEqual(RDWD,0xFFFFFFFF))
   4882      1.1    jruoho             {   Return(1)}
   4883      1.1    jruoho 
   4884      1.1    jruoho             // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
   4885      1.1    jruoho             Store(0x12345678,DWD1)
   4886      1.1    jruoho             Store(0xEDCBA987,DWD2)
   4887      1.1    jruoho             XOr(DWD1,DWD2,RDWD)
   4888      1.1    jruoho             if(LNotEqual(RDWD,0xFFFFFFFF))
   4889      1.1    jruoho             {   Return(1)}
   4890      1.1    jruoho 
   4891      1.1    jruoho             Store(0x12345678,DWD1)
   4892      1.1    jruoho             if(LNotEqual(DWD1,0x12345678))
   4893      1.1    jruoho             {
   4894      1.1    jruoho                 Return(1)
   4895      1.1    jruoho             }
   4896      1.1    jruoho 
   4897      1.1    jruoho             Store(0xFEDCBA98,DWD2)
   4898      1.1    jruoho             if(LNotEqual(DWD2,0xFEDCBA98))
   4899      1.1    jruoho             {
   4900      1.1    jruoho                 Return(1)
   4901      1.1    jruoho             }
   4902      1.1    jruoho 
   4903      1.1    jruoho             Store(0x91827364,RDWD)
   4904      1.1    jruoho             if(LNotEqual(RDWD,0x91827364))
   4905      1.1    jruoho             {
   4906      1.1    jruoho                 Return(1)
   4907      1.1    jruoho             }
   4908      1.1    jruoho 
   4909      1.1    jruoho             //****************************************************
   4910      1.1    jruoho             // Check the stored single bits
   4911      1.1    jruoho             if(LNotEqual(RES1, 1))
   4912      1.1    jruoho             {
   4913      1.1    jruoho                 Return(1)
   4914      1.1    jruoho             }
   4915      1.1    jruoho 
   4916      1.1    jruoho             if(LNotEqual(RES2, 1))
   4917      1.1    jruoho             {
   4918      1.1    jruoho                 Return(1)
   4919      1.1    jruoho             }
   4920      1.1    jruoho 
   4921      1.1    jruoho             if(LNotEqual(RES3, 1))
   4922      1.1    jruoho             {
   4923      1.1    jruoho                 Return(1)
   4924      1.1    jruoho             }
   4925      1.1    jruoho 
   4926      1.1    jruoho             if(LNotEqual(RES4, 1))
   4927      1.1    jruoho             {
   4928      1.1    jruoho                 Return(1)
   4929      1.1    jruoho             }
   4930      1.1    jruoho 
   4931      1.1    jruoho             // Change all of the single bit fields to zero
   4932      1.1    jruoho             Store(0, RES1)
   4933      1.1    jruoho             Store(0, RES2)
   4934      1.1    jruoho             Store(0, RES3)
   4935      1.1    jruoho             Store(0, RES4)
   4936      1.1    jruoho 
   4937      1.1    jruoho             // Now, check all of the fields
   4938      1.1    jruoho 
   4939      1.1    jruoho             // Byte
   4940      1.1    jruoho             if(LNotEqual(BYT1, 0x12))
   4941      1.1    jruoho             {
   4942      1.1    jruoho                 Return(1)
   4943      1.1    jruoho             }
   4944      1.1    jruoho 
   4945      1.1    jruoho             if(LNotEqual(BYT2, 0xFE))
   4946      1.1    jruoho             {
   4947      1.1    jruoho                 Return(1)
   4948      1.1    jruoho             }
   4949      1.1    jruoho 
   4950      1.1    jruoho             if(LNotEqual(RBYT, 0xAB))
   4951      1.1    jruoho             {
   4952      1.1    jruoho                 Return(1)
   4953      1.1    jruoho             }
   4954      1.1    jruoho 
   4955      1.1    jruoho             // Word
   4956      1.1    jruoho             if(LNotEqual(WRD1, 0x1234))
   4957      1.1    jruoho             {
   4958      1.1    jruoho                 Return(1)
   4959      1.1    jruoho             }
   4960      1.1    jruoho 
   4961      1.1    jruoho             if(LNotEqual(WRD2, 0xFEDC))
   4962      1.1    jruoho             {
   4963      1.1    jruoho                 Return(1)
   4964      1.1    jruoho             }
   4965      1.1    jruoho 
   4966      1.1    jruoho             if(LNotEqual(RWRD, 0x87AB))
   4967      1.1    jruoho             {
   4968      1.1    jruoho                 Return(1)
   4969      1.1    jruoho             }
   4970      1.1    jruoho 
   4971      1.1    jruoho             // Dword
   4972      1.1    jruoho             if(LNotEqual(DWD1, 0x12345678))
   4973      1.1    jruoho             {
   4974      1.1    jruoho                 Return(1)
   4975      1.1    jruoho             }
   4976      1.1    jruoho 
   4977      1.1    jruoho             if(LNotEqual(DWD2, 0xFEDCBA98))
   4978      1.1    jruoho             {
   4979      1.1    jruoho                 Return(1)
   4980      1.1    jruoho             }
   4981      1.1    jruoho 
   4982      1.1    jruoho             if(LNotEqual(RDWD, 0x91827364))
   4983      1.1    jruoho             {
   4984      1.1    jruoho                 Return(1)
   4985      1.1    jruoho             }
   4986      1.1    jruoho 
   4987      1.1    jruoho             // Bits
   4988      1.1    jruoho             if(LNotEqual(RES1, 0))
   4989      1.1    jruoho             {
   4990      1.1    jruoho                 Return(1)
   4991      1.1    jruoho             }
   4992      1.1    jruoho 
   4993      1.1    jruoho             if(LNotEqual(RES2, 0))
   4994      1.1    jruoho             {
   4995      1.1    jruoho                 Return(1)
   4996      1.1    jruoho             }
   4997      1.1    jruoho 
   4998      1.1    jruoho             if(LNotEqual(RES3, 0))
   4999      1.1    jruoho             {
   5000      1.1    jruoho                 Return(1)
   5001      1.1    jruoho             }
   5002      1.1    jruoho 
   5003      1.1    jruoho             if(LNotEqual(RES4, 0))
   5004      1.1    jruoho             {
   5005      1.1    jruoho                 Return(1)
   5006      1.1    jruoho             }
   5007      1.1    jruoho 
   5008      1.1    jruoho 
   5009      1.1    jruoho             Return(0)
   5010      1.1    jruoho         }   //  TEST
   5011      1.1    jruoho     }   //  XORD
   5012      1.1    jruoho 
   5013      1.1    jruoho //
   5014      1.1    jruoho // test CrBytFld.asl
   5015      1.1    jruoho //
   5016      1.1    jruoho //  CrBytFld test
   5017      1.1    jruoho //      Test for CreateByteField.
   5018      1.1    jruoho //      Tests creating byte field overlay of buffer stored in Local0.
   5019      1.1    jruoho //      Tests need to be added for Arg0 and Name buffers.
   5020      1.1    jruoho //
   5021      1.1    jruoho     Device (CRBF)
   5022      1.1    jruoho     {   //  Test device name
   5023      1.1    jruoho         Method (TEST)
   5024      1.1    jruoho         {
   5025      1.1    jruoho             Store ("++++++++ CrBytFld Test", Debug)
   5026      1.1    jruoho 
   5027      1.1    jruoho             //  Local0 is unitialized buffer with 4 elements
   5028      1.1    jruoho             Store (Buffer (4) {}, Local0)
   5029      1.1    jruoho 
   5030      1.1    jruoho             //  create Byte Field named BF0 based on Local0 element 0
   5031      1.1    jruoho             CreateByteField (Local0, 0, BF0)
   5032      1.1    jruoho 
   5033      1.1    jruoho             //  validate CreateByteField did not alter Local0
   5034      1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5035      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5036      1.1    jruoho                 {   Return (2)  }
   5037      1.1    jruoho 
   5038      1.1    jruoho             //  store something into BF0
   5039      1.1    jruoho             Store (1, BF0)
   5040      1.1    jruoho 
   5041      1.1    jruoho             //  validate Store did not alter Local0 object type
   5042      1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5043      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5044      1.1    jruoho                 {   Return (3)  }
   5045      1.1    jruoho 
   5046      1.1    jruoho             //  verify that the Store into BF0 was successful
   5047      1.1    jruoho             If (LNotEqual (BF0, 1))
   5048      1.1    jruoho                 {   Return (4)  }
   5049      1.1    jruoho 
   5050      1.1    jruoho 
   5051      1.1    jruoho             //  create Byte Field named BF1 based on Local0 element 1
   5052      1.1    jruoho             CreateByteField (Local0, 1, BF1)
   5053      1.1    jruoho 
   5054      1.1    jruoho             //  validate CreateByteField did not alter Local0
   5055      1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5056      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5057      1.1    jruoho                 {   Return (10) }
   5058      1.1    jruoho 
   5059      1.1    jruoho             //  store something into BF1
   5060      1.1    jruoho             Store (5, BF1)
   5061      1.1    jruoho 
   5062      1.1    jruoho             //  validate Store did not alter Local0 object type
   5063      1.1    jruoho             Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
   5064      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
   5065      1.1    jruoho                 {   Return (11) }
   5066      1.1    jruoho 
   5067      1.1    jruoho             //  verify that the Store into BF1 was successful
   5068      1.1    jruoho             If (LNotEqual (BF1, 5))
   5069      1.1    jruoho                 {   Return (12) }
   5070      1.1    jruoho 
   5071      1.1    jruoho             //  verify that the Store into BF1 did not alter BF0
   5072      1.1    jruoho             If (LNotEqual (BF0, 1))
   5073      1.1    jruoho                 {   Return (13) }
   5074      1.1    jruoho 
   5075      1.1    jruoho 
   5076      1.1    jruoho             //  store something into BF0
   5077      1.1    jruoho             Store (0xFFFF, BF0)
   5078      1.1    jruoho 
   5079      1.1    jruoho             //  verify that the Store into BF0 was successful
   5080      1.1    jruoho             If (LNotEqual (BF0, 0xFF))
   5081      1.1    jruoho                 {   Return (20) }
   5082      1.1    jruoho 
   5083      1.1    jruoho             //  verify that the Store into BF0 did not alter BF1
   5084      1.1    jruoho             If (LNotEqual (BF1, 5))
   5085      1.1    jruoho                 {   Return (21) }
   5086      1.1    jruoho 
   5087      1.1    jruoho 
   5088      1.1    jruoho             Return (0)
   5089      1.1    jruoho         }   //  TEST
   5090      1.1    jruoho     }   //  CRBF
   5091      1.1    jruoho 
   5092      1.1    jruoho //
   5093      1.1    jruoho // test IndexOp4.asl
   5094      1.1    jruoho //
   5095      1.1    jruoho //  IndexOp4 test
   5096      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   5097      1.1    jruoho //      Tests access of index fields smaller than 8 bits.
   5098      1.1    jruoho //
   5099      1.1    jruoho     Device (IDX4)
   5100      1.1    jruoho     {   //  Test device name
   5101      1.1    jruoho 
   5102      1.1    jruoho         //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
   5103      1.1    jruoho         //          Tests OperationRegion memory access using misaligned BYTE,
   5104      1.1    jruoho         //          WORD, and DWORD field element accesses. Validation is performed
   5105      1.1    jruoho         //          using both misaligned field entries and aligned field entries.
   5106      1.1    jruoho         //
   5107      1.1    jruoho         //          MADM returns 0 if all test cases pass or non-zero identifying
   5108      1.1    jruoho         //          the failing test case for debug purposes. This non-zero numbers
   5109      1.1    jruoho         //          are not guaranteed to be in perfect sequence (i.e., test case
   5110      1.1    jruoho         //          index), but are guaranteed to be unique so the failing test
   5111      1.1    jruoho         //          case can be uniquely identified.
   5112      1.1    jruoho         //
   5113  1.1.1.3  christos         Method (MADM, 1, Serialized)    //  Misaligned Dynamic RAM SystemMemory OperationRegion
   5114      1.1    jruoho         //  Arg0    --  SystemMemory OperationRegion base address
   5115      1.1    jruoho         {   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
   5116      1.1    jruoho             OperationRegion (RAM, SystemMemory, Arg0, 0x100)
   5117      1.1    jruoho             Field (RAM, DwordAcc, NoLock, Preserve)
   5118      1.1    jruoho             {   //  aligned field definition (for verification)
   5119      1.1    jruoho                 DWD0,   32, //  aligned DWORD field
   5120      1.1    jruoho                 DWD1,   32      //  aligned DWORD field
   5121      1.1    jruoho             }
   5122      1.1    jruoho             Field (RAM, ByteAcc, NoLock, Preserve)
   5123      1.1    jruoho             {   //  bit access field definition
   5124      1.1    jruoho                 BIT0,   1,      //  single bit field entry
   5125      1.1    jruoho                 BIT1,   1,      //  single bit field entry
   5126      1.1    jruoho                 BIT2,   1,      //  single bit field entry
   5127      1.1    jruoho                 BIT3,   1,      //  single bit field entry
   5128      1.1    jruoho                 BIT4,   1,      //  single bit field entry
   5129      1.1    jruoho                 BIT5,   1,      //  single bit field entry
   5130      1.1    jruoho                 BIT6,   1,      //  single bit field entry
   5131      1.1    jruoho                 BIT7,   1,      //  single bit field entry
   5132      1.1    jruoho                 BIT8,   1,      //  single bit field entry
   5133      1.1    jruoho                 BIT9,   1,      //  single bit field entry
   5134      1.1    jruoho                 BITA,   1,      //  single bit field entry
   5135      1.1    jruoho                 BITB,   1,      //  single bit field entry
   5136      1.1    jruoho                 BITC,   1,      //  single bit field entry
   5137      1.1    jruoho                 BITD,   1,      //  single bit field entry
   5138      1.1    jruoho                 BITE,   1,      //  single bit field entry
   5139      1.1    jruoho                 BITF,   1,      //  single bit field entry
   5140      1.1    jruoho                 BI10,   1,      //  single bit field entry
   5141      1.1    jruoho                 BI11,   1,      //  single bit field entry
   5142      1.1    jruoho                 BI12,   1,      //  single bit field entry
   5143      1.1    jruoho                 BI13,   1,      //  single bit field entry
   5144      1.1    jruoho                 BI14,   1,      //  single bit field entry
   5145      1.1    jruoho                 BI15,   1,      //  single bit field entry
   5146      1.1    jruoho                 BI16,   1,      //  single bit field entry
   5147      1.1    jruoho                 BI17,   1,      //  single bit field entry
   5148      1.1    jruoho                 BI18,   1,      //  single bit field entry
   5149      1.1    jruoho                 BI19,   1,      //  single bit field entry
   5150      1.1    jruoho                 BI1A,   1,      //  single bit field entry
   5151      1.1    jruoho                 BI1B,   1,      //  single bit field entry
   5152      1.1    jruoho                 BI1C,   1,      //  single bit field entry
   5153      1.1    jruoho                 BI1D,   1,      //  single bit field entry
   5154      1.1    jruoho                 BI1E,   1,      //  single bit field entry
   5155      1.1    jruoho                 BI1F,   1       //  single bit field entry
   5156      1.1    jruoho             }   //  bit access field definition
   5157      1.1    jruoho 
   5158      1.1    jruoho             Field (RAM, ByteAcc, NoLock, Preserve)
   5159      1.1    jruoho             {   //  two-bit access field definition
   5160      1.1    jruoho                 B2_0,   2,      //  single bit field entry
   5161      1.1    jruoho                 B2_1,   2,      //  single bit field entry
   5162      1.1    jruoho                 B2_2,   2,      //  single bit field entry
   5163      1.1    jruoho                 B2_3,   2,      //  single bit field entry
   5164      1.1    jruoho                 B2_4,   2,      //  single bit field entry
   5165      1.1    jruoho                 B2_5,   2,      //  single bit field entry
   5166      1.1    jruoho                 B2_6,   2,      //  single bit field entry
   5167      1.1    jruoho                 B2_7,   2,      //  single bit field entry
   5168      1.1    jruoho                 B2_8,   2,      //  single bit field entry
   5169      1.1    jruoho                 B2_9,   2,      //  single bit field entry
   5170      1.1    jruoho                 B2_A,   2,      //  single bit field entry
   5171      1.1    jruoho                 B2_B,   2,      //  single bit field entry
   5172      1.1    jruoho                 B2_C,   2,      //  single bit field entry
   5173      1.1    jruoho                 B2_D,   2,      //  single bit field entry
   5174      1.1    jruoho                 B2_E,   2,      //  single bit field entry
   5175      1.1    jruoho                 B2_F,   2       //  single bit field entry
   5176      1.1    jruoho             }   //  bit access field definition
   5177      1.1    jruoho 
   5178      1.1    jruoho             //  initialize memory contents using aligned field entries
   5179      1.1    jruoho             Store (0x5AA55AA5, DWD0)
   5180      1.1    jruoho             Store (0x5AA55AA5, DWD1)
   5181      1.1    jruoho 
   5182      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5183      1.1    jruoho             Store (0, BIT0)
   5184      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5185      1.1    jruoho                 If (LNotEqual (BIT0, 0))
   5186      1.1    jruoho                     {   Return (1)  }
   5187      1.1    jruoho                 //  verify memory contents using aligned field entries
   5188      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AA4))
   5189      1.1    jruoho                     {   Return (2)  }
   5190      1.1    jruoho 
   5191      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5192      1.1    jruoho             Store (1, BIT1)
   5193      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5194      1.1    jruoho                 If (LNotEqual (BIT1, 1))
   5195      1.1    jruoho                     {   Return (3)  }
   5196      1.1    jruoho                 //  verify memory contents using aligned field entries
   5197      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AA6))
   5198      1.1    jruoho                     {   Return (4)  }
   5199      1.1    jruoho 
   5200      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5201      1.1    jruoho             Store (0, BIT2)
   5202      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5203      1.1    jruoho                 If (LNotEqual (BIT2, 0))
   5204      1.1    jruoho                     {   Return (5)  }
   5205      1.1    jruoho                 //  verify memory contents using aligned field entries
   5206      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AA2))
   5207      1.1    jruoho                     {   Return (6)  }
   5208      1.1    jruoho 
   5209      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5210      1.1    jruoho             Store (1, BIT3)
   5211      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5212      1.1    jruoho                 If (LNotEqual (BIT3, 1))
   5213      1.1    jruoho                     {   Return (7)  }
   5214      1.1    jruoho                 //  verify memory contents using aligned field entries
   5215      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55AAA))
   5216      1.1    jruoho                     {   Return (8)  }
   5217      1.1    jruoho 
   5218      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5219      1.1    jruoho             Store (1, BIT4)
   5220      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5221      1.1    jruoho                 If (LNotEqual (BIT4, 1))
   5222      1.1    jruoho                     {   Return (9)  }
   5223      1.1    jruoho                 //  verify memory contents using aligned field entries
   5224      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55ABA))
   5225      1.1    jruoho                     {   Return (10) }
   5226      1.1    jruoho 
   5227      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5228      1.1    jruoho             Store (0, BIT5)
   5229      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5230      1.1    jruoho                 If (LNotEqual (BIT5, 0))
   5231      1.1    jruoho                     {   Return (11) }
   5232      1.1    jruoho                 //  verify memory contents using aligned field entries
   5233      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55A9A))
   5234      1.1    jruoho                     {   Return (12) }
   5235      1.1    jruoho 
   5236      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5237      1.1    jruoho             Store (1, BIT6)
   5238      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5239      1.1    jruoho                 If (LNotEqual (BIT6, 1))
   5240      1.1    jruoho                     {   Return (13) }
   5241      1.1    jruoho                 //  verify memory contents using aligned field entries
   5242      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55ADA))
   5243      1.1    jruoho                     {   Return (14) }
   5244      1.1    jruoho 
   5245      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5246      1.1    jruoho             Store (0, BIT7)
   5247      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5248      1.1    jruoho                 If (LNotEqual (BIT7, 0))
   5249      1.1    jruoho                     {   Return (15) }
   5250      1.1    jruoho                 //  verify memory contents using aligned field entries
   5251      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55A5A))
   5252      1.1    jruoho                     {   Return (16) }
   5253      1.1    jruoho 
   5254      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5255      1.1    jruoho             Store (1, BIT8)
   5256      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5257      1.1    jruoho                 If (LNotEqual (BIT8, 1))
   5258      1.1    jruoho                     {   Return (17) }
   5259      1.1    jruoho                 //  verify memory contents using aligned field entries
   5260      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55B5A))
   5261      1.1    jruoho                     {   Return (18) }
   5262      1.1    jruoho 
   5263      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5264      1.1    jruoho             Store (0, BIT9)
   5265      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5266      1.1    jruoho                 If (LNotEqual (BIT9, 0))
   5267      1.1    jruoho                     {   Return (19) }
   5268      1.1    jruoho                 //  verify memory contents using aligned field entries
   5269      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5595A))
   5270      1.1    jruoho                     {   Return (20) }
   5271      1.1    jruoho 
   5272      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5273      1.1    jruoho             Store (1, BITA)
   5274      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5275      1.1    jruoho                 If (LNotEqual (BITA, 1))
   5276      1.1    jruoho                     {   Return (21) }
   5277      1.1    jruoho                 //  verify memory contents using aligned field entries
   5278      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA55D5A))
   5279      1.1    jruoho                     {   Return (22) }
   5280      1.1    jruoho 
   5281      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5282      1.1    jruoho             Store (0, BITB)
   5283      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5284      1.1    jruoho                 If (LNotEqual (BITB, 0))
   5285      1.1    jruoho                     {   Return (23) }
   5286      1.1    jruoho                 //  verify memory contents using aligned field entries
   5287      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5555A))
   5288      1.1    jruoho                     {   Return (24) }
   5289      1.1    jruoho 
   5290      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5291      1.1    jruoho             Store (0, BITC)
   5292      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5293      1.1    jruoho                 If (LNotEqual (BITC, 0))
   5294      1.1    jruoho                     {   Return (25) }
   5295      1.1    jruoho                 //  verify memory contents using aligned field entries
   5296      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5455A))
   5297      1.1    jruoho                     {   Return (26) }
   5298      1.1    jruoho 
   5299      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5300      1.1    jruoho             Store (1, BITD)
   5301      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5302      1.1    jruoho                 If (LNotEqual (BITD, 1))
   5303      1.1    jruoho                     {   Return (27) }
   5304      1.1    jruoho                 //  verify memory contents using aligned field entries
   5305      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5655A))
   5306      1.1    jruoho                     {   Return (28) }
   5307      1.1    jruoho 
   5308      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5309      1.1    jruoho             Store (0, BITE)
   5310      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5311      1.1    jruoho                 If (LNotEqual (BITE, 0))
   5312      1.1    jruoho                     {   Return (29) }
   5313      1.1    jruoho                 //  verify memory contents using aligned field entries
   5314      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5255A))
   5315      1.1    jruoho                     {   Return (30) }
   5316      1.1    jruoho 
   5317      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5318      1.1    jruoho             Store (1, BITF)
   5319      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5320      1.1    jruoho                 If (LNotEqual (BITF, 1))
   5321      1.1    jruoho                     {   Return (31) }
   5322      1.1    jruoho                 //  verify memory contents using aligned field entries
   5323      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA5A55A))
   5324      1.1    jruoho                     {   Return (32) }
   5325      1.1    jruoho 
   5326      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5327      1.1    jruoho             Store (0, BI10)
   5328      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5329      1.1    jruoho                 If (LNotEqual (BI10, 0))
   5330      1.1    jruoho                     {   Return (33) }
   5331      1.1    jruoho                 //  verify memory contents using aligned field entries
   5332      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA4A55A))
   5333      1.1    jruoho                     {   Return (34) }
   5334      1.1    jruoho 
   5335      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5336      1.1    jruoho             Store (1, BI11)
   5337      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5338      1.1    jruoho                 If (LNotEqual (BI11, 1))
   5339      1.1    jruoho                     {   Return (35) }
   5340      1.1    jruoho                 //  verify memory contents using aligned field entries
   5341      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA6A55A))
   5342      1.1    jruoho                     {   Return (36) }
   5343      1.1    jruoho 
   5344      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5345      1.1    jruoho             Store (0, BI12)
   5346      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5347      1.1    jruoho                 If (LNotEqual (BI12, 0))
   5348      1.1    jruoho                     {   Return (37) }
   5349      1.1    jruoho                 //  verify memory contents using aligned field entries
   5350      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AA2A55A))
   5351      1.1    jruoho                     {   Return (38) }
   5352      1.1    jruoho 
   5353      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5354      1.1    jruoho             Store (1, BI13)
   5355      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5356      1.1    jruoho                 If (LNotEqual (BI13, 1))
   5357      1.1    jruoho                     {   Return (39) }
   5358      1.1    jruoho                 //  verify memory contents using aligned field entries
   5359      1.1    jruoho                 If (LNotEqual (DWD0, 0x5AAAA55A))
   5360      1.1    jruoho                     {   Return (40) }
   5361      1.1    jruoho 
   5362      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5363      1.1    jruoho             Store (1, BI14)
   5364      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5365      1.1    jruoho                 If (LNotEqual (BI14, 1))
   5366      1.1    jruoho                     {   Return (41) }
   5367      1.1    jruoho                 //  verify memory contents using aligned field entries
   5368      1.1    jruoho                 If (LNotEqual (DWD0, 0x5ABAA55A))
   5369      1.1    jruoho                     {   Return (42) }
   5370      1.1    jruoho 
   5371      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5372      1.1    jruoho             Store (0, BI15)
   5373      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5374      1.1    jruoho                 If (LNotEqual (BI15, 0))
   5375      1.1    jruoho                     {   Return (43) }
   5376      1.1    jruoho                 //  verify memory contents using aligned field entries
   5377      1.1    jruoho                 If (LNotEqual (DWD0, 0x5A9AA55A))
   5378      1.1    jruoho                     {   Return (44) }
   5379      1.1    jruoho 
   5380      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5381      1.1    jruoho             Store (1, BI16)
   5382      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5383      1.1    jruoho                 If (LNotEqual (BI16, 1))
   5384      1.1    jruoho                     {   Return (45) }
   5385      1.1    jruoho                 //  verify memory contents using aligned field entries
   5386      1.1    jruoho                 If (LNotEqual (DWD0, 0x5ADAA55A))
   5387      1.1    jruoho                     {   Return (46) }
   5388      1.1    jruoho 
   5389      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5390      1.1    jruoho             Store (0, BI17)
   5391      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5392      1.1    jruoho                 If (LNotEqual (BI17, 0))
   5393      1.1    jruoho                     {   Return (47) }
   5394      1.1    jruoho                 //  verify memory contents using aligned field entries
   5395      1.1    jruoho                 If (LNotEqual (DWD0, 0x5A5AA55A))
   5396      1.1    jruoho                     {   Return (48) }
   5397      1.1    jruoho 
   5398      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5399      1.1    jruoho             Store (1, BI18)
   5400      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5401      1.1    jruoho                 If (LNotEqual (BI18, 1))
   5402      1.1    jruoho                     {   Return (49) }
   5403      1.1    jruoho                 //  verify memory contents using aligned field entries
   5404      1.1    jruoho                 If (LNotEqual (DWD0, 0x5B5AA55A))
   5405      1.1    jruoho                     {   Return (50) }
   5406      1.1    jruoho 
   5407      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5408      1.1    jruoho             Store (0, BI19)
   5409      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5410      1.1    jruoho                 If (LNotEqual (BI19, 0))
   5411      1.1    jruoho                     {   Return (51) }
   5412      1.1    jruoho                 //  verify memory contents using aligned field entries
   5413      1.1    jruoho                 If (LNotEqual (DWD0, 0x595AA55A))
   5414      1.1    jruoho                     {   Return (52) }
   5415      1.1    jruoho 
   5416      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5417      1.1    jruoho             Store (1, BI1A)
   5418      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5419      1.1    jruoho                 If (LNotEqual (BI1A, 1))
   5420      1.1    jruoho                     {   Return (53) }
   5421      1.1    jruoho                 //  verify memory contents using aligned field entries
   5422      1.1    jruoho                 If (LNotEqual (DWD0, 0x5D5AA55A))
   5423      1.1    jruoho                     {   Return (54) }
   5424      1.1    jruoho 
   5425      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5426      1.1    jruoho             Store (0, BI1B)
   5427      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5428      1.1    jruoho                 If (LNotEqual (BI1B, 0))
   5429      1.1    jruoho                     {   Return (55) }
   5430      1.1    jruoho                 //  verify memory contents using aligned field entries
   5431      1.1    jruoho                 If (LNotEqual (DWD0, 0x555AA55A))
   5432      1.1    jruoho                     {   Return (56) }
   5433      1.1    jruoho 
   5434      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5435      1.1    jruoho             Store (0, BI1C)
   5436      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5437      1.1    jruoho                 If (LNotEqual (BI1C, 0))
   5438      1.1    jruoho                     {   Return (57) }
   5439      1.1    jruoho                 //  verify memory contents using aligned field entries
   5440      1.1    jruoho                 If (LNotEqual (DWD0, 0x455AA55A))
   5441      1.1    jruoho                     {   Return (58) }
   5442      1.1    jruoho 
   5443      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5444      1.1    jruoho             Store (1, BI1D)
   5445      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5446      1.1    jruoho                 If (LNotEqual (BI1D, 1))
   5447      1.1    jruoho                     {   Return (59) }
   5448      1.1    jruoho                 //  verify memory contents using aligned field entries
   5449      1.1    jruoho                 If (LNotEqual (DWD0, 0x655AA55A))
   5450      1.1    jruoho                     {   Return (60) }
   5451      1.1    jruoho 
   5452      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5453      1.1    jruoho             Store (0, BI1E)
   5454      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5455      1.1    jruoho                 If (LNotEqual (BI1E, 0))
   5456      1.1    jruoho                     {   Return (61) }
   5457      1.1    jruoho                 //  verify memory contents using aligned field entries
   5458      1.1    jruoho                 If (LNotEqual (DWD0, 0x255AA55A))
   5459      1.1    jruoho                     {   Return (62) }
   5460      1.1    jruoho 
   5461      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5462      1.1    jruoho             Store (1, BI1F)
   5463      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5464      1.1    jruoho                 If (LNotEqual (BI1F, 1))
   5465      1.1    jruoho                     {   Return (63) }
   5466      1.1    jruoho                 //  verify memory contents using aligned field entries
   5467      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA55A))
   5468      1.1    jruoho                     {   Return (64) }
   5469      1.1    jruoho 
   5470      1.1    jruoho 
   5471      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5472      1.1    jruoho             Store (3, B2_0)
   5473      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5474      1.1    jruoho                 If (LNotEqual (B2_0, 3))
   5475      1.1    jruoho                     {   Return (65) }
   5476      1.1    jruoho                 //  verify memory contents using aligned field entries
   5477      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA55B))
   5478      1.1    jruoho                     {   Return (66) }
   5479      1.1    jruoho 
   5480      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5481      1.1    jruoho             Store (1, B2_1)
   5482      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5483      1.1    jruoho                 If (LNotEqual (B2_1, 1))
   5484      1.1    jruoho                     {   Return (67) }
   5485      1.1    jruoho                 //  verify memory contents using aligned field entries
   5486      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA557))
   5487      1.1    jruoho                     {   Return (68) }
   5488      1.1    jruoho 
   5489      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5490      1.1    jruoho             Store (0, B2_2)
   5491      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5492      1.1    jruoho                 If (LNotEqual (B2_2, 0))
   5493      1.1    jruoho                     {   Return (69) }
   5494      1.1    jruoho                 //  verify memory contents using aligned field entries
   5495      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA547))
   5496      1.1    jruoho                     {   Return (70) }
   5497      1.1    jruoho 
   5498      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5499      1.1    jruoho             Store (3, B2_3)
   5500      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5501      1.1    jruoho                 If (LNotEqual (B2_3, 3))
   5502      1.1    jruoho                     {   Return (71) }
   5503      1.1    jruoho                 //  verify memory contents using aligned field entries
   5504      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA5C7))
   5505      1.1    jruoho                     {   Return (72) }
   5506      1.1    jruoho 
   5507      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5508      1.1    jruoho             Store (3, B2_4)
   5509      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5510      1.1    jruoho                 If (LNotEqual (B2_4, 3))
   5511      1.1    jruoho                     {   Return (73) }
   5512      1.1    jruoho                 //  verify memory contents using aligned field entries
   5513      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA7C7))
   5514      1.1    jruoho                     {   Return (74) }
   5515      1.1    jruoho 
   5516      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5517      1.1    jruoho             Store (0, B2_5)
   5518      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5519      1.1    jruoho                 If (LNotEqual (B2_5, 0))
   5520      1.1    jruoho                     {   Return (75) }
   5521      1.1    jruoho                 //  verify memory contents using aligned field entries
   5522      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55AA3C7))
   5523      1.1    jruoho                     {   Return (76) }
   5524      1.1    jruoho 
   5525      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5526      1.1    jruoho             Store (1, B2_6)
   5527      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5528      1.1    jruoho                 If (LNotEqual (B2_6, 1))
   5529      1.1    jruoho                     {   Return (77) }
   5530      1.1    jruoho                 //  verify memory contents using aligned field entries
   5531      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55A93C7))
   5532      1.1    jruoho                     {   Return (78) }
   5533      1.1    jruoho 
   5534      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5535      1.1    jruoho             Store (1, B2_7)
   5536      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5537      1.1    jruoho                 If (LNotEqual (B2_7, 1))
   5538      1.1    jruoho                     {   Return (79) }
   5539      1.1    jruoho                 //  verify memory contents using aligned field entries
   5540      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55A53C7))
   5541      1.1    jruoho                     {   Return (80) }
   5542      1.1    jruoho 
   5543      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5544      1.1    jruoho             Store (0, B2_8)
   5545      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5546      1.1    jruoho                 If (LNotEqual (B2_8, 0))
   5547      1.1    jruoho                     {   Return (81) }
   5548      1.1    jruoho                 //  verify memory contents using aligned field entries
   5549      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55853C7))
   5550      1.1    jruoho                     {   Return (82) }
   5551      1.1    jruoho 
   5552      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5553      1.1    jruoho             Store (1, B2_9)
   5554      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5555      1.1    jruoho                 If (LNotEqual (B2_9, 1))
   5556      1.1    jruoho                     {   Return (83) }
   5557      1.1    jruoho                 //  verify memory contents using aligned field entries
   5558      1.1    jruoho                 If (LNotEqual (DWD0, 0xA55453C7))
   5559      1.1    jruoho                     {   Return (84) }
   5560      1.1    jruoho 
   5561      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5562      1.1    jruoho             Store (2, B2_A)
   5563      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5564      1.1    jruoho                 If (LNotEqual (B2_A, 2))
   5565      1.1    jruoho                     {   Return (85) }
   5566      1.1    jruoho                 //  verify memory contents using aligned field entries
   5567      1.1    jruoho                 If (LNotEqual (DWD0, 0xA56453C7))
   5568      1.1    jruoho                     {   Return (86) }
   5569      1.1    jruoho 
   5570      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5571      1.1    jruoho             Store (2, B2_B)
   5572      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5573      1.1    jruoho                 If (LNotEqual (B2_B, 2))
   5574      1.1    jruoho                     {   Return (87) }
   5575      1.1    jruoho                 //  verify memory contents using aligned field entries
   5576      1.1    jruoho                 If (LNotEqual (DWD0, 0xA5A453C7))
   5577      1.1    jruoho                     {   Return (88) }
   5578      1.1    jruoho 
   5579      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5580      1.1    jruoho             Store (3, B2_C)
   5581      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5582      1.1    jruoho                 If (LNotEqual (B2_C, 3))
   5583      1.1    jruoho                     {   Return (89) }
   5584      1.1    jruoho                 //  verify memory contents using aligned field entries
   5585      1.1    jruoho                 If (LNotEqual (DWD0, 0xA7A453C7))
   5586      1.1    jruoho                     {   Return (90) }
   5587      1.1    jruoho 
   5588      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5589      1.1    jruoho             Store (3, B2_D)
   5590      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5591      1.1    jruoho                 If (LNotEqual (B2_D, 3))
   5592      1.1    jruoho                     {   Return (91) }
   5593      1.1    jruoho                 //  verify memory contents using aligned field entries
   5594      1.1    jruoho                 If (LNotEqual (DWD0, 0xAFA453C7))
   5595      1.1    jruoho                     {   Return (92) }
   5596      1.1    jruoho 
   5597      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5598      1.1    jruoho             Store (1, B2_E)
   5599      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5600      1.1    jruoho                 If (LNotEqual (B2_E, 1))
   5601      1.1    jruoho                     {   Return (93) }
   5602      1.1    jruoho                 //  verify memory contents using aligned field entries
   5603      1.1    jruoho                 If (LNotEqual (DWD0, 0x9FA453C7))
   5604      1.1    jruoho                     {   Return (94) }
   5605      1.1    jruoho 
   5606      1.1    jruoho             //  set memory contents to known values using misaligned field entries
   5607      1.1    jruoho             Store (0, B2_F)
   5608      1.1    jruoho                 //  verify memory contents using misaligned field entries
   5609      1.1    jruoho                 If (LNotEqual (B2_F, 0))
   5610      1.1    jruoho                     {   Return (95) }
   5611      1.1    jruoho                 //  verify memory contents using aligned field entries
   5612      1.1    jruoho                 If (LNotEqual (DWD0, 0x1FA453C7))
   5613      1.1    jruoho                     {   Return (96) }
   5614      1.1    jruoho 
   5615      1.1    jruoho 
   5616      1.1    jruoho             Return (0)  //  pass
   5617      1.1    jruoho         }   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
   5618      1.1    jruoho 
   5619      1.1    jruoho         Method (TEST)
   5620      1.1    jruoho         {
   5621      1.1    jruoho             Store ("++++++++ IndexOp4 Test", Debug)
   5622      1.1    jruoho 
   5623      1.1    jruoho             //  MADM (Misaligned Dynamic RAM SystemMemory OperationRegion) arguments:
   5624      1.1    jruoho             //      Arg0    --  SystemMemory OperationRegion base address
   5625      1.1    jruoho             Store (MADM (0x800000), Local0)
   5626      1.1    jruoho             If (LNotEqual (Local0, 0))      //  MADM returns zero if successful
   5627      1.1    jruoho                 {   Return (Local0) }       //  failure:    return MADM error code
   5628      1.1    jruoho 
   5629      1.1    jruoho             Return (Local0)
   5630      1.1    jruoho         }   //  TEST
   5631      1.1    jruoho     }   //  IDX4
   5632      1.1    jruoho 
   5633      1.1    jruoho //
   5634      1.1    jruoho // test Event.asl
   5635      1.1    jruoho //
   5636      1.1    jruoho //  EventOp, ResetOp, SignalOp, and WaitOp test cases.
   5637      1.1    jruoho //
   5638      1.1    jruoho     Device (EVNT)
   5639      1.1    jruoho     {
   5640      1.1    jruoho         Event (EVNT)    //  event synchronization object
   5641      1.1    jruoho 
   5642      1.1    jruoho         Method (TEVN, 1)
   5643      1.1    jruoho         //  Arg0:   time to Wait for event in milliseconds
   5644      1.1    jruoho         {   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
   5645      1.1    jruoho             //  reset EVNT to initialization (zero) state
   5646      1.1    jruoho             Reset (EVNT)
   5647      1.1    jruoho 
   5648      1.1    jruoho             //  prime EVNT with two outstanding signals
   5649      1.1    jruoho             Signal (EVNT)
   5650      1.1    jruoho             Signal (EVNT)
   5651      1.1    jruoho 
   5652      1.1    jruoho 
   5653      1.1    jruoho             //  acquire existing signal
   5654      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5655      1.1    jruoho 
   5656      1.1    jruoho             //  validate Local0 is a Number
   5657      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5658      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5659      1.1    jruoho                 {   Return (0x21)   }       //  Local1 indicates Local0 is not a Number
   5660      1.1    jruoho 
   5661      1.1    jruoho             If (LNotEqual (Local0, 0))  //  Number is type 1
   5662      1.1    jruoho                 {   Return (0x22)   }       //  timeout occurred without acquiring signal
   5663      1.1    jruoho 
   5664      1.1    jruoho             Store ("Acquire 1st existing signal PASS", Debug)
   5665      1.1    jruoho 
   5666      1.1    jruoho 
   5667      1.1    jruoho             //  acquire existing signal
   5668      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5669      1.1    jruoho 
   5670      1.1    jruoho             //  validate Local0 is a Number
   5671      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5672      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5673      1.1    jruoho                 {   Return (0x31)   }       //  Local1 indicates Local0 is not a Number
   5674      1.1    jruoho 
   5675      1.1    jruoho             If (LNotEqual (Local0, 0))  //  Number is type 1
   5676      1.1    jruoho                 {   Return (0x32)   }       //  timeout occurred without acquiring signal
   5677      1.1    jruoho 
   5678      1.1    jruoho             Store ("Acquire 2nd existing signal PASS", Debug)
   5679      1.1    jruoho 
   5680      1.1    jruoho 
   5681      1.1    jruoho             //  ensure WaitOp timeout test cases do not hang
   5682      1.1    jruoho             if (LEqual (Arg0, 0xFFFF))
   5683      1.1    jruoho                 {   Store (0xFFFE, Arg0)    }
   5684      1.1    jruoho 
   5685      1.1    jruoho             //  acquire non-existing signal
   5686      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5687      1.1    jruoho 
   5688      1.1    jruoho             //  validate Local0 is a Number
   5689      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5690      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5691      1.1    jruoho                 {   Return (0x41)   }       //  Local1 indicates Local0 is not a Number
   5692      1.1    jruoho 
   5693      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5694      1.1    jruoho                 {   Return (0x42)   }       //  non-existant signal was acquired
   5695      1.1    jruoho 
   5696      1.1    jruoho             Store ("Acquire signal timeout PASS", Debug)
   5697      1.1    jruoho 
   5698      1.1    jruoho 
   5699      1.1    jruoho             //  prime EVNT with two outstanding signals
   5700      1.1    jruoho             Signal (EVNT)
   5701      1.1    jruoho             Signal (EVNT)
   5702      1.1    jruoho 
   5703      1.1    jruoho             //  reset EVNT to initialization (zero) state
   5704      1.1    jruoho             Reset (EVNT)
   5705      1.1    jruoho 
   5706      1.1    jruoho             //  acquire non-existing signal
   5707      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5708      1.1    jruoho 
   5709      1.1    jruoho             //  validate Local0 is a Number
   5710      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5711      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5712      1.1    jruoho                 {   Return (0x51)   }       //  Local1 indicates Local0 is not a Number
   5713      1.1    jruoho 
   5714      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5715      1.1    jruoho                 {   Return (0x52)   }       //  non-existant signal was acquired
   5716      1.1    jruoho 
   5717      1.1    jruoho             Store ("Reset signal PASS", Debug)
   5718      1.1    jruoho 
   5719      1.1    jruoho 
   5720      1.1    jruoho             //  acquire non-existing signal using Lvalue timeout
   5721      1.1    jruoho             Store (Wait (EVNT, Zero), Local0)
   5722      1.1    jruoho 
   5723      1.1    jruoho             //  validate Local0 is a Number
   5724      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5725      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5726      1.1    jruoho                 {   Return (0x61)   }       //  Local1 indicates Local0 is not a Number
   5727      1.1    jruoho 
   5728      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5729      1.1    jruoho                 {   Return (0x62)   }       //  non-existant signal was acquired
   5730      1.1    jruoho 
   5731      1.1    jruoho             Store ("Zero Lvalue PASS", Debug)
   5732      1.1    jruoho 
   5733      1.1    jruoho 
   5734      1.1    jruoho             //  acquire non-existing signal using Lvalue timeout
   5735      1.1    jruoho             Store (Wait (EVNT, One), Local0)
   5736      1.1    jruoho 
   5737      1.1    jruoho             //  validate Local0 is a Number
   5738      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5739      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5740      1.1    jruoho                 {   Return (0x71)   }       //  Local1 indicates Local0 is not a Number
   5741      1.1    jruoho 
   5742      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5743      1.1    jruoho                 {   Return (0x72)   }       //  non-existant signal was acquired
   5744      1.1    jruoho 
   5745      1.1    jruoho             Store ("One Lvalue PASS", Debug)
   5746      1.1    jruoho 
   5747      1.1    jruoho             //  Lvalue Event test cases
   5748      1.1    jruoho     // ILLEGAL SOURCE OPERAND        Store (EVNT, Local2)
   5749      1.1    jruoho 
   5750      1.1    jruoho             //  validate Local2 is an Event
   5751      1.1    jruoho             Store (ObjectType (EVNT), Local1)
   5752      1.1    jruoho             If (LNotEqual (Local1, 7))  //  Event is type 7
   5753      1.1    jruoho                 {   Return (0x81)   }       //  Local1 indicates Local0 is not a Number
   5754      1.1    jruoho 
   5755      1.1    jruoho             //  reset EVNT to initialization (zero) state
   5756      1.1    jruoho             Reset (EVNT)
   5757      1.1    jruoho 
   5758      1.1    jruoho             //  prime EVNT with two outstanding signals
   5759      1.1    jruoho             Signal (EVNT)
   5760      1.1    jruoho 
   5761      1.1    jruoho             //  acquire existing signal
   5762      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5763      1.1    jruoho 
   5764      1.1    jruoho             //  validate Local0 is a Number
   5765      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5766      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5767      1.1    jruoho                 {   Return (0x82)   }       //  Local1 indicates Local0 is not a Number
   5768      1.1    jruoho 
   5769      1.1    jruoho             If (LNotEqual (Local0, 0))  //  Number is type 1
   5770      1.1    jruoho                 {   Return (0x83)   }       //  timeout occurred without acquiring signal
   5771      1.1    jruoho 
   5772      1.1    jruoho             Store ("Acquire Lvalue existing signal PASS", Debug)
   5773      1.1    jruoho 
   5774      1.1    jruoho 
   5775      1.1    jruoho             //  acquire non-existing signal
   5776      1.1    jruoho             Store (Wait (EVNT, Arg0), Local0)
   5777      1.1    jruoho 
   5778      1.1    jruoho             //  validate Local0 is a Number
   5779      1.1    jruoho             Store (ObjectType (Local0), Local1)
   5780      1.1    jruoho             If (LNotEqual (Local1, 1))  //  Number is type 1
   5781      1.1    jruoho                 {   Return (0x84)   }       //  Local1 indicates Local0 is not a Number
   5782      1.1    jruoho 
   5783      1.1    jruoho             If (LEqual (Local0, 0))     //  Number is type 1
   5784      1.1    jruoho                 {   Return (0x85)   }       //  non-existant signal was acquired
   5785      1.1    jruoho 
   5786      1.1    jruoho             Store ("Acquire Lvalue signal timeout PASS", Debug)
   5787      1.1    jruoho 
   5788      1.1    jruoho 
   5789      1.1    jruoho             Return (0)  //  success
   5790      1.1    jruoho         }   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
   5791      1.1    jruoho 
   5792      1.1    jruoho         Method (TEST)
   5793      1.1    jruoho         {
   5794      1.1    jruoho             Store ("++++++++ Event Test", Debug)
   5795      1.1    jruoho 
   5796      1.1    jruoho             Store (TEVN (100), Local0)
   5797      1.1    jruoho 
   5798      1.1    jruoho             Return (Local0)
   5799      1.1    jruoho         }   //  TEST
   5800      1.1    jruoho     }   //  EVNT
   5801      1.1    jruoho 
   5802      1.1    jruoho //
   5803      1.1    jruoho // test SizeOfLv.asl
   5804      1.1    jruoho //
   5805      1.1    jruoho //  Test for SizeOf (Lvalue)
   5806      1.1    jruoho //
   5807      1.1    jruoho //  This next section will contain the packages that the SizeOfOp will be
   5808      1.1    jruoho //  exercised on.  The first one, PKG0, is a regular package of 3 elements.
   5809      1.1    jruoho //  The 2nd one, PKG1, is a nested package with 3 packages inside it, each
   5810      1.1    jruoho //  with 3 elements.  It is expected that SizeOf operator will return the
   5811      1.1    jruoho //  same value for these two packages since they both have 3 elements.  The
   5812      1.1    jruoho //  final package, PKG2, has 4 elements and the SizeOf operator is expected
   5813      1.1    jruoho //  to return different results for this package.
   5814      1.1    jruoho 
   5815      1.1    jruoho     Name (PKG0,
   5816      1.1    jruoho         Package (3)
   5817      1.1    jruoho         {0x0123, 0x4567, 0x89AB}
   5818      1.1    jruoho     )   //  PKG0
   5819      1.1    jruoho 
   5820      1.1    jruoho     Name (PKG1,
   5821      1.1    jruoho         Package (3)
   5822      1.1    jruoho         {
   5823      1.1    jruoho             Package (3) {0x0123, 0x4567, 0x89AB},
   5824      1.1    jruoho             Package (3) {0xCDEF, 0xFEDC, 0xBA98},
   5825      1.1    jruoho             Package (3) {0x7654, 0x3210, 0x1234}
   5826      1.1    jruoho         }
   5827      1.1    jruoho     )   //  PKG1
   5828      1.1    jruoho 
   5829      1.1    jruoho     Name (PKG2,
   5830      1.1    jruoho         Package (4)
   5831      1.1    jruoho         {0x0123, 0x4567, 0x89AB, 0x8888}
   5832      1.1    jruoho     )   //  PKG2
   5833      1.1    jruoho 
   5834      1.1    jruoho     Name (PKG3,
   5835      1.1    jruoho         Package (5)
   5836      1.1    jruoho         {0x0123, 0x4567, 0x89AB, 0x8888, 0x7777}
   5837      1.1    jruoho     )   //  PKG3
   5838      1.1    jruoho 
   5839      1.1    jruoho //  End Packages    **********************************************************
   5840      1.1    jruoho 
   5841      1.1    jruoho //  The following section will declare the data strings that will be used to
   5842      1.1    jruoho //  exercise the SizeOf operator.  STR0 and STR1 are expected to be equal,
   5843      1.1    jruoho //  STR2 is expected to have a different SizeOf value than STR0 and STR1.
   5844      1.1    jruoho 
   5845      1.1    jruoho     Name (STR0, "ACPI permits very flexible methods of expressing a system")
   5846      1.1    jruoho 
   5847      1.1    jruoho     Name (STR1, "MIKE permits very flexible methods of expressing a system")
   5848      1.1    jruoho 
   5849      1.1    jruoho     Name (STR2, "Needless to say, Mike and ACPI are frequently at odds")
   5850      1.1    jruoho 
   5851      1.1    jruoho //  This string is being made in case we want to do a SizeOf comparison
   5852      1.1    jruoho //  between strings and packages or buffers
   5853      1.1    jruoho     Name (STR3, "12345")
   5854      1.1    jruoho 
   5855      1.1    jruoho //  End Strings     **********************************************************
   5856      1.1    jruoho 
   5857      1.1    jruoho //  The following section will declare the buffers that will be used to exercise
   5858      1.1    jruoho //  the SizeOf operator.
   5859      1.1    jruoho 
   5860      1.1    jruoho     Name (BUF0, Buffer (10) {})
   5861      1.1    jruoho     Name (BUF1, Buffer (10) {})
   5862      1.1    jruoho     Name (BUF2, Buffer (8)  {})
   5863      1.1    jruoho     Name (BUF3, Buffer (5)  {})
   5864      1.1    jruoho 
   5865      1.1    jruoho //  End Buffers     **********************************************************
   5866      1.1    jruoho     Device (SZLV)
   5867      1.1    jruoho     {
   5868      1.1    jruoho 
   5869      1.1    jruoho         Method (CMPR, 2)
   5870      1.1    jruoho         {
   5871      1.1    jruoho             //  CMPR is passed two arguments.  If unequal, return 1 to indicate
   5872      1.1    jruoho             //  that, otherwise return 0 to indicate SizeOf each is equal.
   5873      1.1    jruoho 
   5874      1.1    jruoho             Store (0x01, Local0)
   5875      1.1    jruoho 
   5876      1.1    jruoho             if (LEqual (SizeOf(Arg0), SizeOf(Arg1)))
   5877      1.1    jruoho             {
   5878      1.1    jruoho                 Store (0x00, Local0)
   5879      1.1    jruoho             }
   5880      1.1    jruoho 
   5881      1.1    jruoho             return (Local0)
   5882      1.1    jruoho         }   //  CMPR
   5883      1.1    jruoho 
   5884      1.1    jruoho 
   5885      1.1    jruoho         Method (TEST)
   5886      1.1    jruoho         {
   5887      1.1    jruoho 
   5888      1.1    jruoho             Store ("++++++++ SizeOfLv Test", Debug)
   5889      1.1    jruoho 
   5890      1.1    jruoho             //  TBD:    SizeOf ("string")
   5891      1.1    jruoho             //          SizeOf (Buffer)
   5892      1.1    jruoho             //          SizeOf (Package)
   5893      1.1    jruoho             //          SizeOf (String)
   5894      1.1    jruoho             //          SizeOf (STR0)   --  where Name (STR0,...) -- lot's of cases
   5895      1.1    jruoho             //              buffer, string, package,
   5896      1.1    jruoho             //          SizeOf (METH) -- where METH control method returns
   5897      1.1    jruoho             //              buffer, string, package,
   5898      1.1    jruoho 
   5899      1.1    jruoho             //  TBD:    SLOC [SizeOf (Local0)] -- dup SARG
   5900      1.1    jruoho 
   5901      1.1    jruoho             //  Compare the elements that we expect to be the same.  Exit out with an error
   5902      1.1    jruoho             //  code on the first failure.
   5903      1.1    jruoho             if (LNotEqual (0x00, CMPR (STR0, STR1)))
   5904      1.1    jruoho             {
   5905      1.1    jruoho                 Return (0x01)
   5906      1.1    jruoho             }
   5907      1.1    jruoho 
   5908      1.1    jruoho             if (LNotEqual (0x00, CMPR (STR3, BUF3)))
   5909      1.1    jruoho             {
   5910      1.1    jruoho                 Return (0x02)
   5911      1.1    jruoho             }
   5912      1.1    jruoho 
   5913      1.1    jruoho             if (LNotEqual (0x00, CMPR (STR3, PKG3)))
   5914      1.1    jruoho             {
   5915      1.1    jruoho                 Return (0x03)
   5916      1.1    jruoho             }
   5917      1.1    jruoho 
   5918      1.1    jruoho             //  In the following section, this test will cover the SizeOf
   5919      1.1    jruoho             //  operator for Local values.
   5920      1.1    jruoho             //  In this case, both Local0 and Local1 should have the same Size
   5921      1.1    jruoho             Store (STR0, Local0)
   5922      1.1    jruoho             Store (STR1, Local1)
   5923      1.1    jruoho 
   5924      1.1    jruoho             if (LNotEqual (SizeOf (Local0), SizeOf (Local1)))
   5925      1.1    jruoho             {
   5926      1.1    jruoho                 Return (0x04)
   5927      1.1    jruoho             }
   5928      1.1    jruoho 
   5929      1.1    jruoho             //  Now create a case where Local0 and Local1 are different
   5930      1.1    jruoho             Store (STR2, Local1)
   5931      1.1    jruoho 
   5932      1.1    jruoho             if (LEqual (SizeOf (Local0), SizeOf (Local1)))
   5933      1.1    jruoho             {
   5934      1.1    jruoho                 Return (0x05)
   5935      1.1    jruoho             }
   5936      1.1    jruoho 
   5937      1.1    jruoho             //  Finally, check for the return of SizeOf for a known Buffer.  Just
   5938      1.1    jruoho             //  in case we magically pass above cases due to all Buffers being Zero
   5939      1.1    jruoho             //  bytes in size, or Infinity, etc.
   5940      1.1    jruoho             if (LNotEqual (0x05, SizeOf (BUF3)))
   5941      1.1    jruoho             {
   5942      1.1    jruoho                 Return (0x06)
   5943      1.1    jruoho             }
   5944      1.1    jruoho 
   5945      1.1    jruoho             Return (0)
   5946      1.1    jruoho         }   //  TEST
   5947      1.1    jruoho     }   //  SZLV
   5948      1.1    jruoho 
   5949      1.1    jruoho 
   5950      1.1    jruoho //
   5951      1.1    jruoho // test BytField.asl
   5952      1.1    jruoho //
   5953      1.1    jruoho //  BytField test
   5954      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   5955      1.1    jruoho //      Tests access of TBD.
   5956      1.1    jruoho //
   5957      1.1    jruoho     Scope (\_SB)    //  System Bus
   5958      1.1    jruoho     {   //  _SB system bus
   5959      1.1    jruoho         Device (BYTF)
   5960      1.1    jruoho         {   //  Test device name
   5961      1.1    jruoho             Method (TEST)
   5962      1.1    jruoho             {
   5963      1.1    jruoho                 Store ("++++++++ BytField Test", Debug)
   5964      1.1    jruoho 
   5965      1.1    jruoho                 Return (\_TZ.C19B.RSLT)
   5966      1.1    jruoho             }   //  TEST
   5967      1.1    jruoho         }   //  BYTF
   5968      1.1    jruoho 
   5969      1.1    jruoho         Device (C005)
   5970      1.1    jruoho         {   //  Device C005
   5971      1.1    jruoho             Device (C013)
   5972      1.1    jruoho             {   //  Device C013
   5973      1.1    jruoho             }   //  Device C013
   5974      1.1    jruoho         }   //  Device C005
   5975      1.1    jruoho 
   5976      1.1    jruoho         Method (C115)
   5977      1.1    jruoho         {   //  C115 control method
   5978      1.1    jruoho             Acquire (\_GL, 0xFFFF)
   5979      1.1    jruoho             Store (\_SB.C005.C013.C058.C07E, Local0)
   5980      1.1    jruoho             Release (\_GL)
   5981      1.1    jruoho             And (Local0, 16, Local0)
   5982      1.1    jruoho             Store (ShiftRight (Local0, 4, ), Local1)
   5983      1.1    jruoho             If (LEqual (Local1, 0))
   5984      1.1    jruoho                 {   Return (1)  }
   5985      1.1    jruoho             Else
   5986      1.1    jruoho                 {   Return (0)  }
   5987      1.1    jruoho         }   //  C115 control method
   5988      1.1    jruoho     }   //  _SB system bus
   5989      1.1    jruoho 
   5990      1.1    jruoho     OperationRegion (C018, SystemIO, 0x5028, 4)
   5991      1.1    jruoho     Field (C018, AnyAcc, NoLock, Preserve)
   5992      1.1    jruoho     {   //  Field overlaying C018
   5993      1.1    jruoho         C019,   32
   5994      1.1    jruoho     }   //  Field overlaying C018
   5995      1.1    jruoho 
   5996      1.1    jruoho     OperationRegion (C01A, SystemIO, 0x5030, 4)
   5997      1.1    jruoho     Field (C01A, ByteAcc, NoLock, Preserve)
   5998      1.1    jruoho     {   //  Field overlaying C01A
   5999      1.1    jruoho         C01B,   8,
   6000      1.1    jruoho         C01C,   8,
   6001      1.1    jruoho         C01D,   8,
   6002      1.1    jruoho         C01E,   8
   6003      1.1    jruoho     }   //  Field overlaying C01A
   6004      1.1    jruoho 
   6005      1.1    jruoho     Mutex (\C01F, 0)
   6006      1.1    jruoho     Name (\C020, 0)
   6007      1.1    jruoho     Name (\C021, 0)
   6008      1.1    jruoho 
   6009      1.1    jruoho     Method (\C022, 0)
   6010      1.1    jruoho     {   //  \C022 control method
   6011      1.1    jruoho         Acquire (\C01F, 0xFFFF)
   6012      1.1    jruoho         If (LEqual (\C021, 0))
   6013      1.1    jruoho         {
   6014      1.1    jruoho             Store (C019, Local0)
   6015      1.1    jruoho             And (Local0, 0xFFFEFFFE, Local0)
   6016      1.1    jruoho             Store (Local0, C019)
   6017      1.1    jruoho             Increment (\C021)
   6018      1.1    jruoho         }
   6019      1.1    jruoho         Release (\C01F)
   6020      1.1    jruoho     }   //  \C022 control method
   6021      1.1    jruoho 
   6022      1.1    jruoho     Scope (\_SB.C005.C013)
   6023      1.1    jruoho     {   //  Scope \_SB.C005.C013
   6024      1.1    jruoho         Device (C058)
   6025      1.1    jruoho         {   //  Device C058
   6026      1.1    jruoho             Name (_HID, "*PNP0A06")
   6027      1.1    jruoho 
   6028      1.1    jruoho             OperationRegion (C059, SystemIO, 0xE0, 2)
   6029      1.1    jruoho             Field (C059, ByteAcc, NoLock, Preserve)
   6030      1.1    jruoho             {   //  Field overlaying C059
   6031      1.1    jruoho                 C05A,   8,
   6032      1.1    jruoho                 C05B,   8
   6033      1.1    jruoho             }   //  Field overlaying C059
   6034      1.1    jruoho 
   6035      1.1    jruoho             OperationRegion (C05C, SystemIO, 0xE2, 2)
   6036      1.1    jruoho             Field (C05C, ByteAcc, NoLock, Preserve)
   6037      1.1    jruoho             {   //  Field overlaying C05C
   6038      1.1    jruoho                 C05D,   8,
   6039      1.1    jruoho                 C05E,   8
   6040      1.1    jruoho             }   //  Field overlaying C05C
   6041      1.1    jruoho             IndexField (C05D, C05E, ByteAcc, NoLock, Preserve)
   6042      1.1    jruoho             {   //  IndexField overlaying C05D/C05E
   6043      1.1    jruoho                 ,       0x410,  //  skip
   6044      1.1    jruoho                 C05F,   8,
   6045      1.1    jruoho                 C060,   8,
   6046      1.1    jruoho                 C061,   8,
   6047      1.1    jruoho                 C062,   8,
   6048      1.1    jruoho                 C063,   8,
   6049      1.1    jruoho                 C064,   8,
   6050      1.1    jruoho                 C065,   8,
   6051      1.1    jruoho                 C066,   8,
   6052      1.1    jruoho                 C067,   8,
   6053      1.1    jruoho                 C068,   8,
   6054      1.1    jruoho                 C069,   8,
   6055      1.1    jruoho                 C06A,   8,
   6056      1.1    jruoho                 C06B,   8,
   6057      1.1    jruoho                 C06C,   8,
   6058      1.1    jruoho                 C06D,   8,
   6059      1.1    jruoho                 C06E,   8,
   6060      1.1    jruoho                 ,       0x70,       //  skip
   6061      1.1    jruoho                 C06F,   8,
   6062      1.1    jruoho                 C070,   8,
   6063      1.1    jruoho                 C071,   8,
   6064      1.1    jruoho                 C072,   8,
   6065      1.1    jruoho                 C073,   8,
   6066      1.1    jruoho                 C074,   8,
   6067      1.1    jruoho                 C075,   8,
   6068      1.1    jruoho                 C076,   8,
   6069      1.1    jruoho                 C077,   8,
   6070      1.1    jruoho                 C078,   8,
   6071      1.1    jruoho                 C079,   8,
   6072      1.1    jruoho                 C07A,   8,
   6073      1.1    jruoho                 C07B,   8,
   6074      1.1    jruoho                 C07C,   8,
   6075      1.1    jruoho                 C07D,   8,
   6076      1.1    jruoho                 C07E,   8
   6077      1.1    jruoho             }   //  IndexField overlaying C05D/C05E
   6078      1.1    jruoho 
   6079      1.1    jruoho             OperationRegion (C07F, SystemIO, 0xE4, 2)
   6080      1.1    jruoho             Field (C07F, ByteAcc, NoLock, Preserve)
   6081      1.1    jruoho             {   //  Field overlaying C07F
   6082      1.1    jruoho                 C080,   8,
   6083      1.1    jruoho                 C081,   8
   6084      1.1    jruoho             }   //  Field overlaying C07F
   6085      1.1    jruoho 
   6086      1.1    jruoho             OperationRegion (C082, SystemIO, 0xE0, 1)
   6087      1.1    jruoho             Field (C082, ByteAcc, NoLock, Preserve)
   6088      1.1    jruoho             {   //  Field overlaying C082
   6089      1.1    jruoho                 C083,   8
   6090      1.1    jruoho             }   //  Field overlaying C082
   6091      1.1    jruoho 
   6092      1.1    jruoho             OperationRegion (C084, SystemIO, 0xFF, 1)
   6093      1.1    jruoho             Field (C084, ByteAcc, NoLock, Preserve)
   6094      1.1    jruoho             {   //  Field overlaying C084
   6095      1.1    jruoho                 C085,   8
   6096      1.1    jruoho             }   //  Field overlaying C084
   6097      1.1    jruoho 
   6098      1.1    jruoho             OperationRegion (C086, SystemIO, 0xFD, 1)
   6099      1.1    jruoho             Field (C086, ByteAcc, NoLock, Preserve)
   6100      1.1    jruoho             {   //  Field overlaying C086
   6101      1.1    jruoho                 C087,   8
   6102      1.1    jruoho             }   //  Field overlaying C086
   6103      1.1    jruoho 
   6104      1.1    jruoho             Mutex (C088, 0)
   6105      1.1    jruoho             Mutex (C089, 0)
   6106      1.1    jruoho             Mutex (C08A, 0)
   6107      1.1    jruoho             Mutex (C08B, 0)
   6108      1.1    jruoho             Mutex (C08C, 0)
   6109      1.1    jruoho             Mutex (C08D, 0)
   6110      1.1    jruoho 
   6111      1.1    jruoho             Name (C08E, 0xFFFFFFFD)
   6112      1.1    jruoho             Name (C08F, 0)
   6113      1.1    jruoho 
   6114      1.1    jruoho             Method (C0AA, 4)
   6115      1.1    jruoho             {   //  C0AA control method
   6116      1.1    jruoho                 Store (Buffer (4) {}, Local7)
   6117      1.1    jruoho                 CreateByteField (Local7, 0, C0AB)
   6118      1.1    jruoho                 CreateByteField (Local7, 1, C0AC)
   6119      1.1    jruoho                 CreateByteField (Local7, 2, C0AD)
   6120      1.1    jruoho                 CreateByteField (Local7, 3, C0AE)
   6121      1.1    jruoho                 Acquire (^C08B, 0xFFFF)
   6122      1.1    jruoho                 Acquire (\_GL, 0xFFFF)
   6123      1.1    jruoho                 \C022 ()
   6124      1.1    jruoho                 Store (1, \_SB.C005.C013.C058.C06B)
   6125      1.1    jruoho                 While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
   6126      1.1    jruoho                     {   Stall (100) }
   6127      1.1    jruoho                 Store (Arg3, \_SB.C005.C013.C058.C06E)
   6128      1.1    jruoho                 Store (Arg2, \_SB.C005.C013.C058.C06D)
   6129      1.1    jruoho                 Store (Arg1, \_SB.C005.C013.C058.C06C)
   6130      1.1    jruoho                 Store (Arg0, \_SB.C005.C013.C058.C06B)
   6131      1.1    jruoho                 While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
   6132      1.1    jruoho                     {   Stall (100) }
   6133      1.1    jruoho                 Store (\_SB.C005.C013.C058.C06E, C0AB)
   6134      1.1    jruoho                 Store (\_SB.C005.C013.C058.C06D, C0AC)
   6135      1.1    jruoho                 Store (\_SB.C005.C013.C058.C06C, C0AD)
   6136      1.1    jruoho                 Store (\_SB.C005.C013.C058.C06B, C0AE)
   6137      1.1    jruoho                 If (LNot (LEqual (Arg0, 23)))
   6138      1.1    jruoho                 {
   6139      1.1    jruoho                     Store (2, \_SB.C005.C013.C058.C06B)
   6140      1.1    jruoho                     Stall (100)
   6141      1.1    jruoho                 }
   6142      1.1    jruoho                 Release (\_GL)
   6143      1.1    jruoho                 Release (^C08B)
   6144      1.1    jruoho                 Return (Local7)
   6145      1.1    jruoho             }   //  C0AA control method
   6146      1.1    jruoho         }   //  Device C058
   6147      1.1    jruoho     }   //  Scope \_SB.C005.C013
   6148      1.1    jruoho 
   6149      1.1    jruoho     Scope (\_TZ)
   6150      1.1    jruoho     {   //  \_TZ thermal zone scope
   6151      1.1    jruoho         Name (C18B, Package (2)
   6152      1.1    jruoho         {
   6153      1.1    jruoho             Package (2)
   6154      1.1    jruoho             {
   6155      1.1    jruoho                 Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
   6156      1.1    jruoho                 Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
   6157      1.1    jruoho             },
   6158      1.1    jruoho             Package (2)
   6159      1.1    jruoho             {
   6160      1.1    jruoho                 Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
   6161      1.1    jruoho                 Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
   6162      1.1    jruoho             }
   6163      1.1    jruoho         })  //  C18B
   6164      1.1    jruoho 
   6165      1.1    jruoho         Name (C18C, Package (2)
   6166      1.1    jruoho         {
   6167      1.1    jruoho             Package (2)
   6168      1.1    jruoho             {
   6169      1.1    jruoho                 Package (3) {0x64, 0x4B, 0x32},
   6170      1.1    jruoho                 Package (3) {0x64, 0x4B, 0x32}
   6171      1.1    jruoho             }
   6172      1.1    jruoho         })  //  C81C
   6173      1.1    jruoho 
   6174      1.1    jruoho         Name (C18D, 0)
   6175      1.1    jruoho         Name (C18E, 0)
   6176      1.1    jruoho         Name (C18F, 0)
   6177      1.1    jruoho         Name (C190, 0)
   6178      1.1    jruoho         Name (C191, 3)
   6179      1.1    jruoho         Name (C192, 0)
   6180      1.1    jruoho         Name (C193, 1)
   6181      1.1    jruoho         Name (C194, 2)
   6182      1.1    jruoho         Mutex (C195, 0)
   6183      1.1    jruoho         Name (C196, 1)
   6184      1.1    jruoho         Name (C197, 0x0B9C)
   6185      1.1    jruoho         Name (C198, 0x0B9C)
   6186      1.1    jruoho         Name (C199, 0xFFFFFFFD)
   6187      1.1    jruoho         Name (C19A, 0)
   6188      1.1    jruoho 
   6189      1.1    jruoho         Device (C19B)
   6190      1.1    jruoho         {   //  Device C19B
   6191      1.1    jruoho             Name (RSLT, 0)  //  default to zero
   6192      1.1    jruoho 
   6193      1.1    jruoho             Method (XINI)
   6194      1.1    jruoho             {   //  _INI control method (Uses Global Lock -- can't run under AcpiExec)
   6195      1.1    jruoho                 Store (\_SB.C115, C19A)
   6196      1.1    jruoho                 \_TZ.C19C._SCP (0)
   6197      1.1    jruoho                 Subtract (0x0EB2, 0x0AAC, Local1)   //  Local1 = AACh - EB2h
   6198      1.1    jruoho                 Divide (Local1, 10, Local0, Local2) //  Local0 = Local1 / 10
   6199      1.1    jruoho                                                                 //  Local2 = Local1 % 10
   6200      1.1    jruoho                 \_SB.C005.C013.C058.C0AA (14, Local2, 0, 0)
   6201      1.1    jruoho                 Store
   6202      1.1    jruoho                     (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 0, )), C18D)
   6203      1.1    jruoho                 Store
   6204      1.1    jruoho                     (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 1, )), C18E)
   6205      1.1    jruoho                 Store
   6206      1.1    jruoho                     (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 2, )), C18F)
   6207      1.1    jruoho 
   6208      1.1    jruoho                 Store (1, RSLT) //  set RSLT to 1 if _INI control method completes
   6209      1.1    jruoho             }   //  _INI control method
   6210      1.1    jruoho 
   6211      1.1    jruoho             //  PowerResource (C19D) {...}
   6212      1.1    jruoho         }   //  Device C19B
   6213      1.1    jruoho 
   6214      1.1    jruoho         ThermalZone (C19C)
   6215      1.1    jruoho         {
   6216      1.1    jruoho             Method (_SCP, 1)
   6217      1.1    jruoho             {   //  _SCP control method
   6218      1.1    jruoho                 Store (Arg0, Local0)
   6219      1.1    jruoho                 If (LEqual (Local0, 0))
   6220      1.1    jruoho                 {
   6221      1.1    jruoho                     Store (0, \_TZ.C192)
   6222      1.1    jruoho                     Store (1, \_TZ.C193)
   6223      1.1    jruoho                     Store (2, \_TZ.C194)
   6224      1.1    jruoho                     Store (3, \_TZ.C191)
   6225      1.1    jruoho                 }
   6226      1.1    jruoho                 Else
   6227      1.1    jruoho                 {
   6228      1.1    jruoho                     Store (0, \_TZ.C191)
   6229      1.1    jruoho                     Store (1, \_TZ.C192)
   6230      1.1    jruoho                     Store (2, \_TZ.C193)
   6231      1.1    jruoho                     Store (3, \_TZ.C194)
   6232      1.1    jruoho                 }
   6233      1.1    jruoho             }   //  _SCP control method
   6234      1.1    jruoho         }   //  ThermalZone C19C
   6235      1.1    jruoho     }   //  \_TZ thermal zone scope
   6236      1.1    jruoho 
   6237      1.1    jruoho 
   6238      1.1    jruoho //
   6239      1.1    jruoho // test DwrdFld.asl
   6240      1.1    jruoho //
   6241      1.1    jruoho     Name (BUFR, buffer(10) {0,0,0,0,0,0,0,0,0,0} )
   6242      1.1    jruoho 
   6243      1.1    jruoho     Device (DWDF)
   6244      1.1    jruoho     {
   6245      1.1    jruoho         Method (TEST)
   6246      1.1    jruoho         {
   6247      1.1    jruoho             Store ("++++++++ DwrdFld Test", Debug)
   6248      1.1    jruoho 
   6249      1.1    jruoho             CreateByteField (BUFR, 0, BYTE)
   6250      1.1    jruoho             Store (0xAA, BYTE)
   6251      1.1    jruoho 
   6252      1.1    jruoho             CreateWordField (BUFR, 1, WORD)
   6253      1.1    jruoho             Store (0xBBCC, WORD)
   6254      1.1    jruoho 
   6255      1.1    jruoho             CreateDWordField (BUFR, 3, DWRD)
   6256      1.1    jruoho             Store (0xDDEEFF00, DWRD)
   6257      1.1    jruoho 
   6258      1.1    jruoho             CreateByteField (BUFR, 7, BYT2)
   6259      1.1    jruoho             Store (0x11, BYT2)
   6260      1.1    jruoho 
   6261      1.1    jruoho             CreateWordField (BUFR, 8, WRD2)
   6262      1.1    jruoho             Store (0x2233, WRD2)
   6263      1.1    jruoho 
   6264      1.1    jruoho             Return (0)
   6265      1.1    jruoho 
   6266      1.1    jruoho         }   //  End Method TEST
   6267      1.1    jruoho     }   //  Device DWDF
   6268      1.1    jruoho 
   6269      1.1    jruoho     //
   6270      1.1    jruoho     // test DivAddx.asl
   6271      1.1    jruoho     //
   6272      1.1    jruoho     Name (B1LO, 0xAA)
   6273      1.1    jruoho     Name (B1HI, 0xBB)
   6274      1.1    jruoho 
   6275      1.1    jruoho     Method (MKW_, 2)
   6276      1.1    jruoho     {   //  This control method will take two bytes and make them into a WORD
   6277      1.1    jruoho 
   6278      1.1    jruoho         Multiply (B1HI, 256, Local0)    //  Make high byte.....high
   6279      1.1    jruoho         Or (Local0, B1LO, Local0)       //  OR in the low byte
   6280      1.1    jruoho         Return (Local0)                 //  Return the WORD
   6281      1.1    jruoho 
   6282      1.1    jruoho     }   //  MKW_
   6283      1.1    jruoho 
   6284      1.1    jruoho     Device (DVAX)
   6285      1.1    jruoho     {
   6286      1.1    jruoho         Method (TEST)
   6287      1.1    jruoho         {
   6288      1.1    jruoho 
   6289      1.1    jruoho             Store ("++++++++ DivAddx Test", Debug)
   6290      1.1    jruoho 
   6291      1.1    jruoho             Store (25, B1LO)
   6292      1.1    jruoho             Store (0, B1HI)
   6293      1.1    jruoho 
   6294      1.1    jruoho             //  We'll multiply 25 * 3 to get 75, add 99 to it then divide
   6295      1.1    jruoho             //  by 100.  We expect to get 74 for the remainder and 1 for
   6296      1.1    jruoho             //  the quotient.
   6297      1.1    jruoho             Divide(
   6298      1.1    jruoho                 Add (Multiply (3, MKW_ (B1LO, B1HI)), 0x63),
   6299      1.1    jruoho                             //  Dividend,
   6300      1.1    jruoho                 100,        //  Divisor
   6301      1.1    jruoho                 Local4,     //  Remainder
   6302      1.1    jruoho                 Local2)     //  Quotient
   6303      1.1    jruoho 
   6304      1.1    jruoho             If (LAnd (LEqual (74, Local4), LEqual (1, Local2)))
   6305      1.1    jruoho             {   //  Indicate Pass
   6306      1.1    jruoho                 Store (0x00, Local0)
   6307      1.1    jruoho             }
   6308      1.1    jruoho 
   6309      1.1    jruoho             Else
   6310      1.1    jruoho             {   //  Indicate Fail
   6311      1.1    jruoho                 Store (0x01, Local0)
   6312      1.1    jruoho             }
   6313      1.1    jruoho 
   6314      1.1    jruoho             Return (Local0)
   6315      1.1    jruoho         }   //  End Method TEST
   6316      1.1    jruoho     }   //  Device DVAX
   6317      1.1    jruoho 
   6318      1.1    jruoho //
   6319      1.1    jruoho // test IndexFld.asl (IndexOp6.asl)
   6320      1.1    jruoho //
   6321      1.1    jruoho //  IndexFld test
   6322      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   6323      1.1    jruoho //      Tests index field element AccessAs macro.
   6324      1.1    jruoho //      Also tests name resolution of index field elements with same names
   6325      1.1    jruoho //      but different namespace scopes.
   6326      1.1    jruoho //
   6327      1.1    jruoho     Device (IDX6)
   6328      1.1    jruoho     {   //  Test device name
   6329      1.1    jruoho 
   6330      1.1    jruoho         OperationRegion (SIO, SystemIO, 0x100, 2)
   6331      1.1    jruoho         Field (SIO, ByteAcc, NoLock, Preserve)
   6332      1.1    jruoho         {
   6333      1.1    jruoho             INDX,   8,
   6334      1.1    jruoho             DATA,   8
   6335      1.1    jruoho         }
   6336      1.1    jruoho         IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
   6337      1.1    jruoho         {
   6338      1.1    jruoho             AccessAs (ByteAcc, 0),
   6339      1.1    jruoho             IFE0,   8,
   6340      1.1    jruoho             IFE1,   8,
   6341      1.1    jruoho             IFE2,   8,
   6342      1.1    jruoho             IFE3,   8,
   6343      1.1    jruoho             IFE4,   8,
   6344      1.1    jruoho             IFE5,   8,
   6345      1.1    jruoho             IFE6,   8,
   6346      1.1    jruoho             IFE7,   8,
   6347      1.1    jruoho             IFE8,   8,
   6348      1.1    jruoho             IFE9,   8,
   6349      1.1    jruoho         }
   6350      1.1    jruoho 
   6351      1.1    jruoho         Device (TST_)
   6352      1.1    jruoho         {   //  TST_:   provides a different namespace scope for IFE0 and IFE1
   6353      1.1    jruoho             OperationRegion (SIO2, SystemIO, 0x100, 2)
   6354      1.1    jruoho             Field (SIO2, ByteAcc, NoLock, Preserve)
   6355      1.1    jruoho             {
   6356      1.1    jruoho                 IND2,   8,
   6357      1.1    jruoho                 DAT2,   8
   6358      1.1    jruoho             }
   6359      1.1    jruoho             IndexField (IND2, DAT2, AnyAcc, NoLock, WriteAsOnes)
   6360      1.1    jruoho             {
   6361      1.1    jruoho                 IFE0,   8,  //  duplicate IndexField name with different scope
   6362      1.1    jruoho                 IFE1,   8
   6363      1.1    jruoho             }
   6364      1.1    jruoho         }   //  TST_:   provides a different namespace scope for IFE0 and IFE1
   6365      1.1    jruoho 
   6366      1.1    jruoho         Method (TEST)
   6367      1.1    jruoho         {
   6368      1.1    jruoho             Store ("++++++++ IndexOp6 Test", Debug)
   6369      1.1    jruoho 
   6370      1.1    jruoho             Store (IFE0, Local0)
   6371      1.1    jruoho             Store (IFE1, Local1)
   6372      1.1    jruoho             Store (IFE2, Local2)
   6373      1.1    jruoho 
   6374      1.1    jruoho             //  validate name resolution of IndexFields with different scopes
   6375      1.1    jruoho             Store (\IDX6.IFE0, Local3)
   6376      1.1    jruoho             Store (\IDX6.IFE1, Local4)
   6377      1.1    jruoho             //  verioading of namespace can resolve following names
   6378      1.1    jruoho             Store (\IDX6.TST_.IFE0, Local5)
   6379      1.1    jruoho             Store (\IDX6.TST_.IFE1, Local6)
   6380      1.1    jruoho 
   6381      1.1    jruoho             Return (0)
   6382      1.1    jruoho         }   //  TEST
   6383      1.1    jruoho     }   //  IDX6
   6384      1.1    jruoho 
   6385      1.1    jruoho //
   6386      1.1    jruoho // test IndexOp5.asl
   6387      1.1    jruoho //
   6388      1.1    jruoho //  IndexOp5 test
   6389      1.1    jruoho //      This is just a subset of the many RegionOp/Index Field test cases.
   6390      1.1    jruoho //      Tests copying string into buffer then performing IndexOp on result.
   6391      1.1    jruoho //
   6392      1.1    jruoho     Device (IDX5)
   6393      1.1    jruoho     {   //  Test device name
   6394      1.1    jruoho 
   6395      1.1    jruoho         Name (OSFL, 0)  //  0 == Windows 98, 1 == Windows NT
   6396      1.1    jruoho 
   6397      1.1    jruoho         //  MCTH is a control method to compare two strings. It returns
   6398      1.1    jruoho         //  zero if the strings mismatch, or 1 if the strings match.
   6399      1.1    jruoho         //  This exercises the test case of copying a string into a buffer
   6400      1.1    jruoho         //  and performing an IndexOp on the resulting buffer.
   6401  1.1.1.3  christos         Method (MCTH, 2, Serialized)    //  Control Method to compare two strings
   6402      1.1    jruoho         {   //  MCTH:   Control Method to compare two strings
   6403      1.1    jruoho             //  Arg0:       first string to compare
   6404      1.1    jruoho             //  Arg1:       second string to compare
   6405      1.1    jruoho             //  Return: zero if strings mismatch, 1 if strings match
   6406      1.1    jruoho 
   6407      1.1    jruoho             //  check if first string's length is less than second string's length
   6408      1.1    jruoho             If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
   6409      1.1    jruoho                 {   Return (0)  }
   6410      1.1    jruoho 
   6411      1.1    jruoho             //  increment length to include NULL termination character
   6412      1.1    jruoho             Add (SizeOf (Arg0), 1, Local0)  //  Local0 = strlen(Arg0) + 1
   6413      1.1    jruoho 
   6414      1.1    jruoho             //  create two buffers of size Local0 [strlen(Arg0)+1]
   6415      1.1    jruoho             Name (BUF0, Buffer (Local0) {})
   6416      1.1    jruoho             Name (BUF1, Buffer (Local0) {})
   6417      1.1    jruoho 
   6418      1.1    jruoho             //  copy strings into buffers
   6419      1.1    jruoho             Store (Arg0, BUF0)
   6420      1.1    jruoho             Store (Arg1, BUF1)
   6421      1.1    jruoho 
   6422      1.1    jruoho             //  validate BUF0 and BUF1 are still buffers
   6423      1.1    jruoho             Store (ObjectType (BUF0), Local1)
   6424      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer is type 3
   6425      1.1    jruoho                 {   Return (20) }
   6426      1.1    jruoho             Store (ObjectType (BUF1), Local1)
   6427      1.1    jruoho             If (LNotEqual (Local1, 3))  //  Buffer is type 3
   6428      1.1    jruoho                 {   Return (21) }
   6429      1.1    jruoho 
   6430      1.1    jruoho             // Decrement because the Index base below is zero based
   6431      1.1    jruoho             //  while Local0 length is one based.
   6432      1.1    jruoho             Decrement (Local0)
   6433      1.1    jruoho 
   6434      1.1    jruoho             While (Local0)
   6435      1.1    jruoho             {   //  loop through all BUF0 buffer elements
   6436      1.1    jruoho                 Decrement (Local0)
   6437      1.1    jruoho 
   6438      1.1    jruoho                 //  check if BUF0[n] == BUF1[n]
   6439      1.1    jruoho                 If (LEqual (DerefOf (Index (BUF0, Local0, )),
   6440      1.1    jruoho                         DerefOf (Index (BUF1, Local0, ))))
   6441      1.1    jruoho                     {   }   //  this is how the code was really implemented
   6442      1.1    jruoho                 Else
   6443      1.1    jruoho                     {   Return (Zero)   }
   6444      1.1    jruoho             }   //  loop through all BUF0 buffer elements
   6445      1.1    jruoho 
   6446      1.1    jruoho             Return (One)    //  strings / buffers match
   6447      1.1    jruoho         }   //  MCTH:   Control Method to compare two strings
   6448      1.1    jruoho 
   6449      1.1    jruoho 
   6450      1.1    jruoho         Method (TEST)
   6451      1.1    jruoho         {
   6452      1.1    jruoho             Store ("++++++++ IndexOp5 Test", Debug)
   6453      1.1    jruoho 
   6454      1.1    jruoho             If (MCTH (\_OS, "Microsoft Windows NT"))
   6455      1.1    jruoho                 {   Store (1, OSFL) }
   6456      1.1    jruoho 
   6457      1.1    jruoho             If (LNotEqual (OSFL, 1))
   6458      1.1    jruoho                 {   Return (11) }
   6459      1.1    jruoho 
   6460      1.1    jruoho             Return (0)
   6461      1.1    jruoho         }   //  TEST
   6462      1.1    jruoho     }   //  IDX5
   6463      1.1    jruoho 
   6464      1.1    jruoho //
   6465      1.1    jruoho // test IndexOp.asl
   6466      1.1    jruoho //
   6467      1.1    jruoho     Scope (\_SB)    //  System Bus
   6468      1.1    jruoho     {   //  _SB system bus
   6469      1.1    jruoho 
   6470      1.1    jruoho         Method (C097)
   6471      1.1    jruoho             {   Return (1)  }
   6472      1.1    jruoho 
   6473      1.1    jruoho         Device (PCI2)
   6474      1.1    jruoho         {   //  Root PCI Bus
   6475      1.1    jruoho             Name (_HID, EISAID("PNP0A03"))
   6476      1.1    jruoho             Name (_ADR, 0x00000000)
   6477      1.1    jruoho             Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
   6478      1.1    jruoho             Method (_STA)   {Return (0x0F)}
   6479      1.1    jruoho 
   6480      1.1    jruoho             Device (ISA)
   6481      1.1    jruoho             {   //  ISA bridge
   6482      1.1    jruoho                 Name (_ADR, 0x00030000)     //  ISA bus ID
   6483      1.1    jruoho 
   6484      1.1    jruoho                 Device (EC0)
   6485      1.1    jruoho                 {   //  Embedded Controller
   6486      1.1    jruoho                     Name (_GPE, 0)              //  EC use GPE0
   6487      1.1    jruoho                     Name (_ADR, 0x0030000)  //  PCI address
   6488      1.1    jruoho 
   6489      1.1    jruoho                     Method (_STA,0)         //  EC Status
   6490      1.1    jruoho                         {   Return(0xF) }       //  EC is functioning
   6491      1.1    jruoho 
   6492      1.1    jruoho                     Name (_CRS, ResourceTemplate()
   6493      1.1    jruoho                         {
   6494      1.1    jruoho                             IO (Decode16, 0x62, 0x62, 1, 1)
   6495      1.1    jruoho                             IO (Decode16, 0x66, 0x66, 1, 1)
   6496      1.1    jruoho                         }
   6497      1.1    jruoho                     )
   6498      1.1    jruoho 
   6499      1.1    jruoho                 //  create EC's region and field
   6500      1.1    jruoho                     OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
   6501      1.1    jruoho                     Field (RAM, AnyAcc, NoLock, Preserve)
   6502      1.1    jruoho                     {
   6503      1.1    jruoho                         //  AC information
   6504      1.1    jruoho                         ADP,    1,      //  AC Adapter 1:On-line, 0:Off-line
   6505      1.1    jruoho                         AFLT,   1,      //  AC Adapter Fault  1:Fault  0:Normal
   6506      1.1    jruoho                         BAT0,   1,      //  BAT0  1:present, 0:not present
   6507      1.1    jruoho                         ,       1,      //  reserved
   6508      1.1    jruoho                         ,       28, //  filler to force DWORD alignment
   6509      1.1    jruoho 
   6510      1.1    jruoho                         //  CMBatt information
   6511      1.1    jruoho                         BPU0,   32, //  Power Unit
   6512      1.1    jruoho                         BDC0,   32, //  Designed Capacity
   6513      1.1    jruoho                         BFC0,   32, //  Last Full Charge Capacity
   6514      1.1    jruoho                         BTC0,   32, //  Battery Technology
   6515      1.1    jruoho                         BDV0,   32, //  Design Voltage
   6516      1.1    jruoho                         BST0,   32, //  Battery State
   6517      1.1    jruoho                         BPR0,   32, //  Battery Present Rate
   6518      1.1    jruoho                                         //  (Designed Capacity)x(%)/{(h)x100}
   6519      1.1    jruoho                         BRC0,   32, //  Battery Remaining Capacity
   6520      1.1    jruoho                                         //  (Designed Capacity)(%)^100
   6521      1.1    jruoho                         BPV0,   32, //  Battery Present Voltage
   6522      1.1    jruoho                         BTP0,   32, //  Trip Point
   6523      1.1    jruoho                         BCW0,   32, //  Design capacity of Warning
   6524      1.1    jruoho                         BCL0,   32, //  Design capacity of Low
   6525      1.1    jruoho                         BCG0,   32, //  capacity granularity 1
   6526      1.1    jruoho                         BG20,   32, //  capacity granularity 2
   6527      1.1    jruoho                         BMO0,   32, //  Battery model number field
   6528      1.1    jruoho                         BIF0,   32, //  OEM Information(00h)
   6529      1.1    jruoho                         BSN0,   32, //  Battery Serial Number
   6530      1.1    jruoho                         BTY0,   32, //  Battery Type (e.g., "Li-Ion")
   6531      1.1    jruoho                         BTY1,   32      //  Battery Type (e.g., "Li-Ion")
   6532      1.1    jruoho                     }   //  Field
   6533      1.1    jruoho                 }   //  EC0: Embedded Controller
   6534      1.1    jruoho             }   //  ISA bridge
   6535      1.1    jruoho         }   //  PCI2 Root PCI Bus
   6536      1.1    jruoho 
   6537      1.1    jruoho         Device (IDX0)
   6538      1.1    jruoho         {   //  Test device name
   6539      1.1    jruoho             Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
   6540      1.1    jruoho             Name (_PCL, Package() {\_SB})
   6541      1.1    jruoho             Method (_STA)
   6542      1.1    jruoho             {
   6543      1.1    jruoho                 //  _STA bits 0-3 indicate existence of battery slot
   6544      1.1    jruoho                 //  _STA bit 4 indicates battery (not) present
   6545      1.1    jruoho                 If (\_SB.PCI2.ISA.EC0.BAT0)
   6546      1.1    jruoho                     {   Return (0x1F)   }   //  Battery present
   6547      1.1    jruoho                 else
   6548      1.1    jruoho                     {   Return (0x0F)   }   //  Battery not present
   6549      1.1    jruoho             }   //  _STA
   6550      1.1    jruoho 
   6551  1.1.1.3  christos             Method (_BIF,, Serialized)
   6552      1.1    jruoho             {
   6553      1.1    jruoho                 Name (BUFR, Package(13) {})
   6554      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BPU0, Index (BUFR,0))  //  Power Unit
   6555      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BDC0, Index (BUFR,1))  //  Designed Capacity
   6556      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BFC0, Index (BUFR,2))  //  Last Full Charge Capa.
   6557      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BTC0, Index (BUFR,3))  //  Battery Technology
   6558      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BDV0, Index (BUFR,4))  //  Designed Voltage
   6559      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BCW0, Index (BUFR,5))  //  Designed warning level
   6560      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BCL0, Index (BUFR,6))  //  Designed Low level
   6561      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BCG0, Index (BUFR,7))  //  Capacity granularity 1
   6562      1.1    jruoho                 Store (\_SB.PCI2.ISA.EC0.BG20, Index (BUFR,8))  //  Capacity granularity 2
   6563      1.1    jruoho 
   6564      1.1    jruoho                 Store ("", Index (BUFR,9))                              //  Model Number
   6565      1.1    jruoho 
   6566      1.1    jruoho                 Store ("", Index (BUFR,10))                         //  Serial Number
   6567      1.1    jruoho 
   6568      1.1    jruoho                 Store ("LiOn", Index (BUFR,11))                     //  Battery Type
   6569      1.1    jruoho 
   6570      1.1    jruoho                 Store ("Chicony", Index (BUFR,12))                  //  OEM Information
   6571      1.1    jruoho 
   6572      1.1    jruoho                 Return (BUFR)
   6573      1.1    jruoho             }   //  _BIF
   6574      1.1    jruoho 
   6575  1.1.1.3  christos             Method (_BST,, Serialized)
   6576      1.1    jruoho             {
   6577      1.1    jruoho                 Name (BUFR, Package(4) {1, 0x100, 0x76543210, 0x180})
   6578      1.1    jruoho                 Return (BUFR)
   6579      1.1    jruoho             }   //  _BST
   6580      1.1    jruoho 
   6581      1.1    jruoho             Method (_BTP,1)
   6582      1.1    jruoho             {
   6583      1.1    jruoho                 Store (arg0, \_SB.PCI2.ISA.EC0.BTP0)    //  Set Battery Trip point
   6584      1.1    jruoho             }
   6585      1.1    jruoho 
   6586  1.1.1.3  christos             Method (TEST,, Serialized)
   6587      1.1    jruoho             {
   6588      1.1    jruoho 
   6589      1.1    jruoho                 Store ("++++++++ IndexOp Test", Debug)
   6590      1.1    jruoho 
   6591      1.1    jruoho                 //  test storing into uninitialized package elements
   6592      1.1    jruoho                 Name (PBUF, Package(4) {})  //  leave unitialized
   6593      1.1    jruoho                 Store (0x01234567, Index (PBUF,0))
   6594      1.1    jruoho                 Store (0x89ABCDEF, Index (PBUF,1))
   6595      1.1    jruoho                 Store (0xFEDCBA98, Index (PBUF,2))
   6596      1.1    jruoho                 Store (0x76543210, Index (PBUF,3))
   6597      1.1    jruoho 
   6598      1.1    jruoho                 //  verify values stored into uninitialized package elements
   6599      1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,0)), 0x01234567))
   6600      1.1    jruoho                     {   Return (0x10)   }
   6601      1.1    jruoho 
   6602      1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,1)), 0x89ABCDEF))
   6603      1.1    jruoho                     {   Return (0x11)   }
   6604      1.1    jruoho 
   6605      1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,2)), 0xFEDCBA98))
   6606      1.1    jruoho                     {   Return (0x12)   }
   6607      1.1    jruoho 
   6608      1.1    jruoho                 If (LNotEqual (DerefOf (Index (PBUF,3)), 0x76543210))
   6609      1.1    jruoho                     {   Return (0x13)   }
   6610      1.1    jruoho 
   6611      1.1    jruoho 
   6612      1.1    jruoho                 //  store _BIF package return value into Local0
   6613      1.1    jruoho                 Store (_BIF, Local0)
   6614      1.1    jruoho 
   6615      1.1    jruoho                 //  save Local0 object type value into Local1
   6616      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   6617      1.1    jruoho 
   6618      1.1    jruoho                 //  validate Local0 is a Package
   6619      1.1    jruoho                 If (LNotEqual (Local1, 4))  //  Package type is 4
   6620      1.1    jruoho                     {   Return (0x21)   }   //  failure
   6621      1.1    jruoho 
   6622      1.1    jruoho 
   6623      1.1    jruoho                 //  test storing into buffer field elements
   6624      1.1    jruoho                 Name (BUFR, Buffer(16)
   6625      1.1    jruoho                     {   //  initial values
   6626      1.1    jruoho                         00, 00, 00, 00, 00, 00, 00, 00,
   6627      1.1    jruoho                         00, 00, 00, 00, 00, 00, 00, 00,
   6628      1.1    jruoho                     }
   6629      1.1    jruoho                 )   //  BUFR
   6630      1.1    jruoho                 //  test storing into buffer field elements
   6631      1.1    jruoho                 Store (0x01234567, Index (BUFR,0))  //  should only store 0x67
   6632      1.1    jruoho                 Store (0x89ABCDEF, Index (BUFR,4))  //  should only store 0xEF
   6633      1.1    jruoho                 Store (0xFEDCBA98, Index (BUFR,8))  //  should only store 0x98
   6634      1.1    jruoho                 Store (0x76543210, Index (BUFR,12)) //  should only store 0x10
   6635      1.1    jruoho 
   6636      1.1    jruoho                 //  verify storing into buffer field elements
   6637      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,0)), 0x67))
   6638      1.1    jruoho                     {   Return (0x30)   }
   6639      1.1    jruoho 
   6640      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,1)), 0))
   6641      1.1    jruoho                     {   Return (0x31)   }
   6642      1.1    jruoho 
   6643      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,4)), 0xEF))
   6644      1.1    jruoho                     {   Return (0x34)   }
   6645      1.1    jruoho 
   6646      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,8)), 0x98))
   6647      1.1    jruoho                     {   Return (0x38)   }
   6648      1.1    jruoho 
   6649      1.1    jruoho                 If (LNotEqual (DerefOf (Index (BUFR,12)), 0x10))
   6650      1.1    jruoho                     {   Return (0x3C)   }
   6651      1.1    jruoho 
   6652      1.1    jruoho 
   6653      1.1    jruoho                 Return (0)  //  pass
   6654      1.1    jruoho             }   //  TEST
   6655      1.1    jruoho         }   //  IDX0
   6656      1.1    jruoho     }   //  _SB system bus
   6657      1.1    jruoho 
   6658      1.1    jruoho //
   6659      1.1    jruoho // test BitIndex.asl
   6660      1.1    jruoho //
   6661      1.1    jruoho //  BitIndex test
   6662      1.1    jruoho //  This is a test case for accessing fields defined as single bits in
   6663      1.1    jruoho //  memory.  This is done by creating two index fields that overlay the
   6664      1.1    jruoho //  same DWORD in memory.  One field accesses the DWORD as a DWORD, the
   6665      1.1    jruoho //  other accesses individual bits of the same DWORD field in memory.
   6666      1.1    jruoho //
   6667      1.1    jruoho     Scope (\_SB)    //  System Bus
   6668      1.1    jruoho     {   //  _SB system bus
   6669      1.1    jruoho         OperationRegion (RAM, SystemMemory, 0x800000, 0x100)
   6670      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   6671      1.1    jruoho         {   //  Any access
   6672      1.1    jruoho             TREE,   3,
   6673      1.1    jruoho             WRD0,   16,
   6674      1.1    jruoho             WRD1,   16,
   6675      1.1    jruoho             WRD2,   16,
   6676      1.1    jruoho             WRD3,   16,
   6677      1.1    jruoho             WRD4,   16,
   6678      1.1    jruoho             DWRD,   32, //  DWORD field
   6679      1.1    jruoho         }
   6680      1.1    jruoho         Field (RAM, AnyAcc, NoLock, Preserve)
   6681      1.1    jruoho         {   //  Any access
   6682      1.1    jruoho             THRE,   3,
   6683      1.1    jruoho             WD00,   16,
   6684      1.1    jruoho             WD01,   16,
   6685      1.1    jruoho             WD02,   16,
   6686      1.1    jruoho             WD03,   16,
   6687      1.1    jruoho             WD04,   16,
   6688      1.1    jruoho             BYT0,   8,  //  Start off with a BYTE
   6689      1.1    jruoho             BIT0,   1,  //  single-bit field
   6690      1.1    jruoho             BIT1,   1,  //  single-bit field
   6691      1.1    jruoho             BIT2,   1,  //  single-bit field
   6692      1.1    jruoho             BIT3,   1,  //  single-bit field
   6693      1.1    jruoho             BIT4,   1,  //  single-bit field
   6694      1.1    jruoho             BIT5,   1,  //  single-bit field
   6695      1.1    jruoho             BIT6,   1,  //  single-bit field
   6696      1.1    jruoho             BIT7,   1,  //  single-bit field
   6697      1.1    jruoho             BIT8,   1,  //  single-bit field
   6698      1.1    jruoho             BIT9,   1,  //  single-bit field
   6699      1.1    jruoho             BITA,   1,  //  single-bit field
   6700      1.1    jruoho             BITB,   1,  //  single-bit field
   6701      1.1    jruoho             BITC,   1,  //  single-bit field
   6702      1.1    jruoho             BITD,   1,  //  single-bit field
   6703      1.1    jruoho             BITE,   1,  //  single-bit field
   6704      1.1    jruoho             BITF,   1,  //  single-bit field
   6705      1.1    jruoho             BYTZ,   8,  //  End with a BYTE for a total of 32 bits
   6706      1.1    jruoho         }
   6707      1.1    jruoho 
   6708      1.1    jruoho         Device (BITI)
   6709      1.1    jruoho         {   //  Test device name
   6710      1.1    jruoho 
   6711      1.1    jruoho             Method (MBIT)   //  Test single bit memory accesses
   6712      1.1    jruoho             {
   6713      1.1    jruoho 
   6714      1.1    jruoho                 If (LNotEqual (DWRD, 0x00))
   6715      1.1    jruoho                 {
   6716      1.1    jruoho                     Store (0xFF00, Local0)
   6717      1.1    jruoho                 }
   6718      1.1    jruoho                 Else
   6719      1.1    jruoho                 {
   6720      1.1    jruoho                     //  Prime Local0 with 0...assume passing condition
   6721      1.1    jruoho                     Store (0, Local0)
   6722      1.1    jruoho 
   6723      1.1    jruoho                     //  set memory contents to known values using DWORD field
   6724      1.1    jruoho                     Store (0x5A5A5A5A, DWRD)
   6725      1.1    jruoho 
   6726      1.1    jruoho                     //  Given the value programmed into DWRD, only the odd bits
   6727      1.1    jruoho                     //  of the lower nibble should be set. BIT1, BIT3 should be set.
   6728      1.1    jruoho                     //  BIT0 and BIT2 should be clear
   6729      1.1    jruoho 
   6730      1.1    jruoho                     If (BIT0)
   6731      1.1    jruoho                     {
   6732      1.1    jruoho                         Or (Local0, 0x01, Local0)
   6733      1.1    jruoho                     }
   6734      1.1    jruoho 
   6735      1.1    jruoho                     If (LNot (BIT1))
   6736      1.1    jruoho                     {
   6737      1.1    jruoho                         Or (Local0, 0x02, Local0)
   6738      1.1    jruoho                     }
   6739      1.1    jruoho 
   6740      1.1    jruoho                     If (BIT2)
   6741      1.1    jruoho                     {
   6742      1.1    jruoho                         Or (Local0, 0x04, Local0)
   6743      1.1    jruoho                     }
   6744      1.1    jruoho 
   6745      1.1    jruoho                     If (LNot (BIT3))
   6746      1.1    jruoho                     {
   6747      1.1    jruoho                         Or (Local0, 0x08, Local0)
   6748      1.1    jruoho                     }
   6749      1.1    jruoho 
   6750      1.1    jruoho                     //  Now check the upper nibble.  Only the "even" bits should
   6751      1.1    jruoho                     //  be set.  BIT4, BIT6.  BIT5 and BIT7 should be clear.
   6752      1.1    jruoho                     If (LNot (BIT4))
   6753      1.1    jruoho                     {
   6754      1.1    jruoho                         Or (Local0, 0x10, Local0)
   6755      1.1    jruoho                     }
   6756      1.1    jruoho 
   6757      1.1    jruoho                     If (BIT5)
   6758      1.1    jruoho                     {
   6759      1.1    jruoho                         Or (Local0, 0x20, Local0)
   6760      1.1    jruoho                     }
   6761      1.1    jruoho 
   6762      1.1    jruoho                     If (LNot (BIT6))
   6763      1.1    jruoho                     {
   6764      1.1    jruoho                         Or (Local0, 0x40, Local0)
   6765      1.1    jruoho                     }
   6766      1.1    jruoho 
   6767      1.1    jruoho                     If (BIT7)
   6768      1.1    jruoho                     {
   6769      1.1    jruoho                         Or (Local0, 0x80, Local0)
   6770      1.1    jruoho                     }
   6771      1.1    jruoho                 }   //  End Else DWRD zeroed out
   6772      1.1    jruoho 
   6773      1.1    jruoho                 Return (Local0)
   6774      1.1    jruoho             }   //  MBIT:   Test single bit memory accesses
   6775      1.1    jruoho 
   6776      1.1    jruoho             Method (TEST)
   6777      1.1    jruoho             {
   6778      1.1    jruoho 
   6779      1.1    jruoho                 Store ("++++++++ BitIndex Test", Debug)
   6780      1.1    jruoho 
   6781      1.1    jruoho                 //  Zero out DWRD
   6782      1.1    jruoho                 Store (0x00000000, DWRD)
   6783      1.1    jruoho 
   6784      1.1    jruoho                 //  MBIT returns zero if successful
   6785      1.1    jruoho                 //  This may be causing problems -- Return (MBIT)
   6786      1.1    jruoho                 Store (MBIT, Local0)
   6787      1.1    jruoho 
   6788      1.1    jruoho                 Return (Local0)
   6789      1.1    jruoho             }   //  TEST
   6790      1.1    jruoho         }   //  BITI
   6791      1.1    jruoho     }   //  _SB system bus
   6792      1.1    jruoho 
   6793      1.1    jruoho //
   6794      1.1    jruoho // test IndexOp3.asl
   6795      1.1    jruoho //
   6796      1.1    jruoho //  Additional IndexOp test cases to support ACPICMB (control method battery
   6797      1.1    jruoho //  test) on Compaq laptops. Test cases include storing a package into
   6798      1.1    jruoho //  an IndexOp target and validating that changing source and destination
   6799      1.1    jruoho //  package contents are independent of each other.
   6800      1.1    jruoho //
   6801      1.1    jruoho     Scope (\_SB)    //  System Bus
   6802      1.1    jruoho     {   //  _SB system bus
   6803      1.1    jruoho 
   6804      1.1    jruoho         Name (C174, 13)
   6805      1.1    jruoho         Name (C175, 8)
   6806      1.1    jruoho 
   6807      1.1    jruoho         Device (C158)
   6808      1.1    jruoho         {   //  C158:   AC Adapter device
   6809      1.1    jruoho             Name (_HID, "ACPI0003") //  AC Adapter device
   6810      1.1    jruoho             Name (_PCL, Package (1) {\_SB})
   6811      1.1    jruoho 
   6812      1.1    jruoho             Method (_PSR)
   6813      1.1    jruoho             {
   6814      1.1    jruoho                 Acquire (\_GL, 0xFFFF)
   6815      1.1    jruoho                 Release (\_GL)
   6816      1.1    jruoho                 And (Local0, 1, Local0) //  Local0 &= 1
   6817      1.1    jruoho                 Return (Local0)
   6818      1.1    jruoho             }   //  _PSR
   6819      1.1    jruoho         }   //  C158:   AC Adapter device
   6820      1.1    jruoho 
   6821      1.1    jruoho         Name (C176, Package (4) {"Primary", "MultiBay", "DockRight", "DockLeft"})
   6822      1.1    jruoho 
   6823      1.1    jruoho         Name (C177, Package (4) {0x99F5, 0x99F5, 0x995F, 0x995F})
   6824      1.1    jruoho 
   6825      1.1    jruoho         Name (C178, Package (4)
   6826      1.1    jruoho         {
   6827      1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190},
   6828      1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190},
   6829      1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190},
   6830      1.1    jruoho             Package (4) {0, 0, 0x966B, 0x4190}
   6831      1.1    jruoho         })  //  C178
   6832      1.1    jruoho 
   6833      1.1    jruoho         Name (C179, Package (4) {0, 0, 0x966B, 0x4190})
   6834      1.1    jruoho 
   6835      1.1    jruoho         Name (C17A, Package (4)
   6836      1.1    jruoho         {
   6837      1.1    jruoho             Package (3) {0, 0, 0},
   6838      1.1    jruoho             Package (3) {0, 0, 0},
   6839      1.1    jruoho             Package (3) {0, 0, 0},
   6840      1.1    jruoho             Package (3) {0, 0, 0}
   6841      1.1    jruoho         })  //  C17A
   6842      1.1    jruoho 
   6843  1.1.1.3  christos         Method (C17B, 1, Serialized)
   6844      1.1    jruoho         {   //  C17B:   _BIF implementation
   6845      1.1    jruoho             Name (C17C, Package (13)
   6846      1.1    jruoho             {   //  C17C:   _BIF control method return package
   6847      1.1    jruoho                 0,                  //  Power Unit (0 ==> mWh and mW)
   6848      1.1    jruoho                 0x99F5,         //  Design Capacity
   6849      1.1    jruoho                 0x99F5,         //  Last Full Charge Capacity
   6850      1.1    jruoho                 1,                  //  Battery Technology (1 ==> rechargeable)
   6851      1.1    jruoho                 0x3840,         //  Design Voltage
   6852      1.1    jruoho                 0x1280,         //  Design Capacity of Warning
   6853      1.1    jruoho                 0x0AC7,         //  Design Capacity of Low
   6854      1.1    jruoho                 1,                  //  Battery Capacity Granularity 1 (Low -- Warning)
   6855      1.1    jruoho                 1,                  //  Battery Capacity Granularity 2 (Warning -- Full)
   6856      1.1    jruoho                 "2891",         //  Model Number (ASCIIZ)
   6857      1.1    jruoho                 "(-Unknown-)",  //  Serial Number (ASCIIZ)
   6858      1.1    jruoho                 "LIon",         //  Battery Type (ASCIIZ)
   6859      1.1    jruoho                 0                   //  OEM Information (ASCIIZ)
   6860      1.1    jruoho             })  //  C17C:   _BIF control method return package
   6861      1.1    jruoho 
   6862      1.1    jruoho             And (Arg0, 7, Local0)                       //  Local0 = Arg0 & 7
   6863      1.1    jruoho 
   6864      1.1    jruoho             ShiftRight (Local0, 1, Local4)          //  Local4 = Local0 >> 1
   6865      1.1    jruoho 
   6866      1.1    jruoho             Store (C179, Index (C178, Local4, ))    //  C178->Local4 = C179
   6867      1.1    jruoho 
   6868      1.1    jruoho             //  verify source and destination packages can be altered independent
   6869      1.1    jruoho             //  of each other (i.e., changing one's contents does NOT change other's
   6870      1.1    jruoho             //  contents)
   6871      1.1    jruoho             Store (0x1234, Index (C179, 2, ))               //  C179[2] = 0x1234
   6872      1.1    jruoho             Store (DerefOf (Index (C179, 2, )), Local2) //  Local2 = C179[2]
   6873      1.1    jruoho             if (LNotEqual (Local2, 0x1234))
   6874      1.1    jruoho                 {   Return (0x1234) }
   6875      1.1    jruoho                                                                         //  Local2 = C178[0,2]
   6876      1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 2, )), Local2)
   6877      1.1    jruoho             if (LNotEqual (Local2, 0x966B))
   6878      1.1    jruoho                 {   Return (0x1234) }
   6879      1.1    jruoho 
   6880      1.1    jruoho             // Restore data to allow iterative execution
   6881      1.1    jruoho             Store (0x966B, Index (C179, 2, ))               //  C179[2] = 0x966B
   6882      1.1    jruoho 
   6883      1.1    jruoho                                                                         //  C178[0,3] = 0x5678
   6884      1.1    jruoho             Store (0x5678, Index (DerefOf (Index (C178, 0, )), 3, ))
   6885      1.1    jruoho                                                                         //  Local2 = C178[0,3]
   6886      1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 3, )), Local2)
   6887      1.1    jruoho             if (LNotEqual (Local2, 0x5678))
   6888      1.1    jruoho                 {   Return (0x5678) }
   6889      1.1    jruoho 
   6890      1.1    jruoho             Store (DerefOf (Index (C179, 3, )), Local2) //  Local2 = C179[3]
   6891      1.1    jruoho             if (LNotEqual (Local2, 0x4190))
   6892      1.1    jruoho                 {   Return (0x5678) }
   6893      1.1    jruoho 
   6894      1.1    jruoho             // Restore data to allow iterative execution
   6895      1.1    jruoho             Store (0x4190, Index (DerefOf (Index (C178, 0, )), 3, ))    //  C179[2] = 0x4190
   6896      1.1    jruoho 
   6897      1.1    jruoho             Return (C17C)
   6898      1.1    jruoho         }   //  C17B:   _BIF implementation
   6899      1.1    jruoho 
   6900      1.1    jruoho         Device (C154)
   6901      1.1    jruoho         {   //  C154:   Battery 0
   6902      1.1    jruoho             Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
   6903      1.1    jruoho             Name (_UID, 0)                  //  first instance
   6904      1.1    jruoho 
   6905      1.1    jruoho             Method (_BIF)
   6906      1.1    jruoho             {   //  _BIF
   6907      1.1    jruoho                 Return (C17B (48))
   6908      1.1    jruoho             }   //  _BIF
   6909      1.1    jruoho         }   //  C154:   Battery 0
   6910      1.1    jruoho 
   6911      1.1    jruoho         Device (IDX3)
   6912      1.1    jruoho         {
   6913  1.1.1.3  christos             Method (LCLB,, Serialized)
   6914      1.1    jruoho             {   //  LCLB control method: test Index(Local#) where Local# is buffer
   6915      1.1    jruoho                 //  Local0 is index counter
   6916      1.1    jruoho                 //  Local1 is buffer
   6917      1.1    jruoho                 //  Local2 receives BUFR[Local0] via Deref(Index(Local1...))
   6918      1.1    jruoho                 //  Local3 is Local1 or Local2 object type
   6919      1.1    jruoho                 //  Local4 is return error code
   6920      1.1    jruoho 
   6921      1.1    jruoho                 Name (BUFR, Buffer ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
   6922      1.1    jruoho 
   6923      1.1    jruoho                 //  save PKG into Local1
   6924      1.1    jruoho                 Store (BUFR, Local1)
   6925      1.1    jruoho 
   6926      1.1    jruoho                 //  save Local2 object type value into Local3
   6927      1.1    jruoho                 Store (ObjectType (Local1), Local3)
   6928      1.1    jruoho 
   6929      1.1    jruoho                 //  validate Local1 is a Buffer
   6930      1.1    jruoho                 If (LNotEqual (Local3, 3))      //  Buffer type is 3
   6931      1.1    jruoho                     {   Return (0x9F)   }
   6932      1.1    jruoho 
   6933      1.1    jruoho 
   6934      1.1    jruoho                 Store (0, Local0)
   6935      1.1    jruoho                 While (LLess (Local0, 5))
   6936      1.1    jruoho                 {   //  While (Local0 < 5)
   6937      1.1    jruoho                     //  Local2 = Local1[Local0]
   6938      1.1    jruoho                     Store (DerefOf (Index (Local1, Local0, )), Local2)
   6939      1.1    jruoho 
   6940      1.1    jruoho                     //  save Local2 object type value into Local3
   6941      1.1    jruoho                     Store (ObjectType (Local2), Local3)
   6942      1.1    jruoho 
   6943      1.1    jruoho                     //  validate Local2 is a Number
   6944      1.1    jruoho                     If (LNotEqual (Local3, 1))      //  Number type is 1
   6945      1.1    jruoho                         {   Return (0x9E)   }
   6946      1.1    jruoho 
   6947      1.1    jruoho                     //  validate Local1[Local0] value == Local0
   6948      1.1    jruoho                     If (LNotEqual (Local0, Local2))
   6949      1.1    jruoho                     {   //  Local0 != Local2 == PKG[Local0]
   6950      1.1    jruoho                         //  Local4 = 0x90 + loop index (Local0)
   6951      1.1    jruoho                         Add (0x90, Local0, Local4)
   6952      1.1    jruoho 
   6953      1.1    jruoho                         //  return 0x90 + loop index
   6954      1.1    jruoho                         Return (Local4)
   6955      1.1    jruoho                     }
   6956      1.1    jruoho 
   6957      1.1    jruoho                     Increment (Local0)
   6958      1.1    jruoho                 }   //  While (Local0 < 5)
   6959      1.1    jruoho 
   6960      1.1    jruoho                 Store ("DerefOf(Index(LocalBuffer,,)) PASS", Debug)
   6961      1.1    jruoho 
   6962      1.1    jruoho                 Return (0)  //  Pass
   6963      1.1    jruoho             }   //  LCLB control method: test Index(Local#) where Local# is buffer
   6964      1.1    jruoho 
   6965  1.1.1.3  christos             Method (LCLP,, Serialized)
   6966      1.1    jruoho             {   //  LCLP control method: test Index(Local#) where Local# is package
   6967      1.1    jruoho                 //  Local0 is index counter
   6968      1.1    jruoho                 //  Local1 is package
   6969      1.1    jruoho                 //  Local2 receives PKG[Local0] via Deref(Index(Local1...))
   6970      1.1    jruoho                 //  Local3 is Local1 or Local2 object type
   6971      1.1    jruoho                 //  Local4 is return error code
   6972      1.1    jruoho 
   6973      1.1    jruoho                 Name (PKG, Package ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
   6974      1.1    jruoho 
   6975      1.1    jruoho                 //  save PKG into Local1
   6976      1.1    jruoho                 Store (PKG, Local1)
   6977      1.1    jruoho 
   6978      1.1    jruoho                 //  save Local2 object type value into Local3
   6979      1.1    jruoho                 Store (ObjectType (Local1), Local3)
   6980      1.1    jruoho 
   6981      1.1    jruoho                 //  validate Local1 is a Package
   6982      1.1    jruoho                 If (LNotEqual (Local3, 4))      //  Package type is 4
   6983      1.1    jruoho                     {   Return (0x8F)   }
   6984      1.1    jruoho 
   6985      1.1    jruoho 
   6986      1.1    jruoho                 Store (0, Local0)
   6987      1.1    jruoho                 While (LLess (Local0, 5))
   6988      1.1    jruoho                 {   //  While (Local0 < 5)
   6989      1.1    jruoho                     //  Local2 = Local1[Local0]
   6990      1.1    jruoho                     Store (DerefOf (Index (Local1, Local0, )), Local2)
   6991      1.1    jruoho 
   6992      1.1    jruoho                     //  save Local2 object type value into Local3
   6993      1.1    jruoho                     Store (ObjectType (Local2), Local3)
   6994      1.1    jruoho 
   6995      1.1    jruoho                     //  validate Local2 is a Number
   6996      1.1    jruoho                     If (LNotEqual (Local3, 1))      //  Number type is 1
   6997      1.1    jruoho                         {   Return (0x8E)   }
   6998      1.1    jruoho 
   6999      1.1    jruoho                     //  validate Local1[Local0] value == Local0
   7000      1.1    jruoho                     If (LNotEqual (Local0, Local2))
   7001      1.1    jruoho                     {   //  Local0 != Local2 == PKG[Local0]
   7002      1.1    jruoho                         //  Local4 = 0x80 + loop index (Local0)
   7003      1.1    jruoho                         Add (0x80, Local0, Local4)
   7004      1.1    jruoho 
   7005      1.1    jruoho                         //  return 0x80 + loop index
   7006      1.1    jruoho                         Return (Local4)
   7007      1.1    jruoho                     }
   7008      1.1    jruoho 
   7009      1.1    jruoho                     Increment (Local0)
   7010      1.1    jruoho                 }   //  While (Local0 < 5)
   7011      1.1    jruoho 
   7012      1.1    jruoho                 Store ("DerefOf(Index(LocalPackage,,)) PASS", Debug)
   7013      1.1    jruoho 
   7014      1.1    jruoho                 Return (0)  //  Pass
   7015      1.1    jruoho             }   //  LCLP control method: test Index(Local#) where Local# is package
   7016      1.1    jruoho 
   7017      1.1    jruoho             Method (TEST)
   7018      1.1    jruoho             {
   7019      1.1    jruoho 
   7020      1.1    jruoho                 Store ("++++++++ IndexOp3 Test", Debug)
   7021      1.1    jruoho 
   7022      1.1    jruoho                 //  store _BIF package return value into Local0
   7023      1.1    jruoho                 Store (\_SB.C154._BIF, Local0)
   7024      1.1    jruoho 
   7025      1.1    jruoho                 //  save Local0 object type value into Local1
   7026      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   7027      1.1    jruoho 
   7028      1.1    jruoho                 //  validate Local0 is a Package
   7029      1.1    jruoho                 If (LNotEqual (Local1, 4))      //  Package type is 4
   7030      1.1    jruoho                 {   //  failure: did not return a Package (type 4)
   7031      1.1    jruoho                     //  if Local0 is a Number, it contains an error code
   7032      1.1    jruoho                     If (LEqual (Local1, 1))     //  Number type is 1
   7033      1.1    jruoho                         {   Return (Local0) }   //  return Local0 error code
   7034      1.1    jruoho                     Else                                //  Local0 is not a Number
   7035      1.1    jruoho                         {   Return (1)  }           //  return default error code
   7036      1.1    jruoho                 }   //  failure: did not return a Package (type 4)
   7037      1.1    jruoho 
   7038      1.1    jruoho                 //  save LCLB control method return value into Local2
   7039      1.1    jruoho                 Store (LCLB, Local2)
   7040      1.1    jruoho                 If (LNotEqual (Local2, 0))
   7041      1.1    jruoho                     {   Return (Local2) }   //  return failure code
   7042      1.1    jruoho 
   7043      1.1    jruoho                 //  save LCLP control method return value into Local2
   7044      1.1    jruoho                 Store (LCLP, Local2)
   7045      1.1    jruoho                 If (LNotEqual (Local2, 0))
   7046      1.1    jruoho                     {   Return (Local2) }   //  return failure code
   7047      1.1    jruoho 
   7048      1.1    jruoho                 Return (0)  //  Pass
   7049      1.1    jruoho             }   //  TEST
   7050      1.1    jruoho         }   //  IDX3:   Test device name
   7051      1.1    jruoho     }   //  _SB system bus
   7052      1.1    jruoho 
   7053      1.1    jruoho //
   7054      1.1    jruoho // MTL developed test to exercise Indexes into buffers
   7055      1.1    jruoho //
   7056      1.1    jruoho     Device(IDX7)
   7057      1.1    jruoho     {
   7058      1.1    jruoho 
   7059      1.1    jruoho         Name (PKG4, Package() {
   7060      1.1    jruoho                 0x2,
   7061      1.1    jruoho                 "A short string",
   7062      1.1    jruoho                 Buffer() {0xA, 0xB, 0xC, 0xD},
   7063      1.1    jruoho                 0x1234,
   7064      1.1    jruoho                 Package() {IDX7, 0x3}
   7065      1.1    jruoho                 })
   7066      1.1    jruoho 
   7067      1.1    jruoho         //
   7068      1.1    jruoho         // Generic Test method
   7069      1.1    jruoho         //
   7070      1.1    jruoho         // This test returns 0xE (14) - ObjectType = Buffer Field
   7071  1.1.1.3  christos         Method(TST1,, Serialized)
   7072      1.1    jruoho         {
   7073      1.1    jruoho             Name (DEST, Buffer ()                           //  62 characters plus NULL
   7074      1.1    jruoho                 {"Destination buffer that is longer than the short source buffer"})
   7075      1.1    jruoho 
   7076      1.1    jruoho             //  verify object type returned by Index(Buffer,Element,)
   7077      1.1    jruoho             Store (Index (DEST, 2, ), Local1)
   7078      1.1    jruoho             Store (ObjectType (Local1), Local2)
   7079      1.1    jruoho             If (LEqual(Local2, 14))
   7080      1.1    jruoho             {
   7081      1.1    jruoho                 Return(0)
   7082      1.1    jruoho             }
   7083      1.1    jruoho             Else
   7084      1.1    jruoho             {
   7085      1.1    jruoho                 Return(0x1)
   7086      1.1    jruoho             }
   7087      1.1    jruoho 
   7088      1.1    jruoho         }
   7089      1.1    jruoho 
   7090  1.1.1.3  christos         Method(TST2,, Serialized)
   7091      1.1    jruoho         {
   7092      1.1    jruoho             Name (BUF0, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
   7093      1.1    jruoho             Store(0x55, Index(BUF0, 2))
   7094      1.1    jruoho             Store(DerefOf(Index(BUF0, 2)), Local0)
   7095      1.1    jruoho             If (LEqual(Local0, 0x55))
   7096      1.1    jruoho             {
   7097      1.1    jruoho                 Return(0)
   7098      1.1    jruoho             }
   7099      1.1    jruoho             Else
   7100      1.1    jruoho             {
   7101      1.1    jruoho                 Return(0x2)
   7102      1.1    jruoho             }
   7103      1.1    jruoho 
   7104      1.1    jruoho 
   7105      1.1    jruoho         }
   7106      1.1    jruoho 
   7107  1.1.1.3  christos         Method(TST3,, Serialized)
   7108      1.1    jruoho         {
   7109      1.1    jruoho             Name (BUF1, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
   7110      1.1    jruoho             Store(Index(BUF1, 1), Local0)
   7111      1.1    jruoho             Store(DerefOf(Local0), Local1)
   7112      1.1    jruoho             If (LEqual(Local1, 0x2))
   7113      1.1    jruoho             {
   7114      1.1    jruoho                 Return(0)
   7115      1.1    jruoho             }
   7116      1.1    jruoho             Else
   7117      1.1    jruoho             {
   7118      1.1    jruoho                 Return(0x3)
   7119      1.1    jruoho             }
   7120      1.1    jruoho 
   7121      1.1    jruoho         }
   7122      1.1    jruoho 
   7123      1.1    jruoho         Method(TST4)
   7124      1.1    jruoho         {
   7125      1.1    jruoho             // Index (PKG4, 0) is a Number
   7126      1.1    jruoho             Store (Index (PKG4, 0), Local0)
   7127      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7128      1.1    jruoho             If (LEqual(Local1, 0x1))
   7129      1.1    jruoho             {
   7130      1.1    jruoho                 Return(0)
   7131      1.1    jruoho             }
   7132      1.1    jruoho             Else
   7133      1.1    jruoho             {
   7134      1.1    jruoho                 Return(0x4)
   7135      1.1    jruoho             }
   7136      1.1    jruoho 
   7137      1.1    jruoho         }
   7138      1.1    jruoho 
   7139      1.1    jruoho         Method(TST5)
   7140      1.1    jruoho         {
   7141      1.1    jruoho             // Index (PKG4, 1) is a String
   7142      1.1    jruoho             Store (Index (PKG4, 1), Local0)
   7143      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7144      1.1    jruoho             If (LEqual(Local1, 0x2))
   7145      1.1    jruoho             {
   7146      1.1    jruoho                 Return(0)
   7147      1.1    jruoho             }
   7148      1.1    jruoho             Else
   7149      1.1    jruoho             {
   7150      1.1    jruoho                 Return(0x5)
   7151      1.1    jruoho             }
   7152      1.1    jruoho 
   7153      1.1    jruoho         }
   7154      1.1    jruoho 
   7155      1.1    jruoho         Method(TST6)
   7156      1.1    jruoho         {
   7157      1.1    jruoho             // Index (PKG4, 2) is a Buffer
   7158      1.1    jruoho             Store (Index (PKG4, 2), Local0)
   7159      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7160      1.1    jruoho             If (LEqual(Local1, 0x3))
   7161      1.1    jruoho             {
   7162      1.1    jruoho                 Return(0)
   7163      1.1    jruoho             }
   7164      1.1    jruoho             Else
   7165      1.1    jruoho             {
   7166      1.1    jruoho                 Return(0x6)
   7167      1.1    jruoho             }
   7168      1.1    jruoho 
   7169      1.1    jruoho         }
   7170      1.1    jruoho 
   7171      1.1    jruoho         Method(TST7)
   7172      1.1    jruoho         {
   7173      1.1    jruoho             // Index (PKG4, 3) is a Number
   7174      1.1    jruoho             Store (Index (PKG4, 3), Local0)
   7175      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7176      1.1    jruoho             If (LEqual(Local1, 0x1))
   7177      1.1    jruoho             {
   7178      1.1    jruoho                 Return(0)
   7179      1.1    jruoho             }
   7180      1.1    jruoho             Else
   7181      1.1    jruoho             {
   7182      1.1    jruoho                 Return(0x7)
   7183      1.1    jruoho             }
   7184      1.1    jruoho 
   7185      1.1    jruoho         }
   7186      1.1    jruoho 
   7187      1.1    jruoho         Method(TST8)
   7188      1.1    jruoho         {
   7189      1.1    jruoho             // Index (PKG4, 4) is a Package
   7190      1.1    jruoho             Store (Index (PKG4, 4), Local0)
   7191      1.1    jruoho             Store (ObjectType(Local0), Local1)
   7192      1.1    jruoho             If (LEqual(Local1, 0x4))
   7193      1.1    jruoho             {
   7194      1.1    jruoho                 Return(0)
   7195      1.1    jruoho             }
   7196      1.1    jruoho             Else
   7197      1.1    jruoho             {
   7198      1.1    jruoho                 Return(0x8)
   7199      1.1    jruoho             }
   7200      1.1    jruoho 
   7201      1.1    jruoho         }
   7202      1.1    jruoho 
   7203      1.1    jruoho         Method(TST9)
   7204      1.1    jruoho         {
   7205      1.1    jruoho             // DerefOf (Index (PKG4, 0)) is a Number
   7206      1.1    jruoho             Store (DerefOf (Index (PKG4, 0)), Local0)
   7207      1.1    jruoho             If (LEqual(Local0, 0x2))
   7208      1.1    jruoho             {
   7209      1.1    jruoho                 Return(0)
   7210      1.1    jruoho             }
   7211      1.1    jruoho             Else
   7212      1.1    jruoho             {
   7213      1.1    jruoho                 Return(0x9)
   7214      1.1    jruoho             }
   7215      1.1    jruoho 
   7216      1.1    jruoho         }
   7217      1.1    jruoho 
   7218      1.1    jruoho         Method(TSTA)
   7219      1.1    jruoho         {
   7220      1.1    jruoho             // DerefOf (Index (PKG4, 1)) is a String
   7221      1.1    jruoho             Store (DerefOf (Index (PKG4, 1)), Local0)
   7222      1.1    jruoho             Store (SizeOf(Local0), Local1)
   7223      1.1    jruoho             If (LEqual(Local1, 0xE))
   7224      1.1    jruoho             {
   7225      1.1    jruoho                 Return(0)
   7226      1.1    jruoho             }
   7227      1.1    jruoho             Else
   7228      1.1    jruoho             {
   7229      1.1    jruoho                 Return(0xA)
   7230      1.1    jruoho             }
   7231      1.1    jruoho 
   7232      1.1    jruoho         }
   7233      1.1    jruoho 
   7234      1.1    jruoho         Method(TSTB)
   7235      1.1    jruoho         {
   7236      1.1    jruoho             // DerefOf (Index (PKG4, 2)) is a Buffer
   7237      1.1    jruoho             Store (DerefOf (Index (PKG4, 2)), Local0)
   7238      1.1    jruoho             Store (SizeOf(Local0), Local1)
   7239      1.1    jruoho             If (LEqual(Local1, 0x4))
   7240      1.1    jruoho             {
   7241      1.1    jruoho                 Return(0)
   7242      1.1    jruoho             }
   7243      1.1    jruoho             Else
   7244      1.1    jruoho             {
   7245      1.1    jruoho                 Return(0xB)
   7246      1.1    jruoho             }
   7247      1.1    jruoho 
   7248      1.1    jruoho         }
   7249      1.1    jruoho 
   7250      1.1    jruoho         Method(TSTC)
   7251      1.1    jruoho         {
   7252      1.1    jruoho             // DerefOf (Index (PKG4, 3)) is a Number
   7253      1.1    jruoho             Store (DerefOf (Index (PKG4, 3)), Local0)
   7254      1.1    jruoho             If (LEqual(Local0, 0x1234))
   7255      1.1    jruoho             {
   7256      1.1    jruoho                 Return(0)
   7257      1.1    jruoho             }
   7258      1.1    jruoho             Else
   7259      1.1    jruoho             {
   7260      1.1    jruoho                 Return(0xC)
   7261      1.1    jruoho             }
   7262      1.1    jruoho 
   7263      1.1    jruoho         }
   7264      1.1    jruoho 
   7265      1.1    jruoho         Method(TSTD)
   7266      1.1    jruoho         {
   7267      1.1    jruoho             // DerefOf (Index (PKG4, 4)) is a Package
   7268      1.1    jruoho             Store (DerefOf (Index (PKG4, 4)), Local0)
   7269      1.1    jruoho             Store (SizeOf(Local0), Local1)
   7270      1.1    jruoho             If (LEqual(Local1, 0x2))
   7271      1.1    jruoho             {
   7272      1.1    jruoho                 Return(0)
   7273      1.1    jruoho             }
   7274      1.1    jruoho             Else
   7275      1.1    jruoho             {
   7276      1.1    jruoho                 Return(0xD)
   7277      1.1    jruoho             }
   7278      1.1    jruoho 
   7279      1.1    jruoho         }
   7280      1.1    jruoho 
   7281      1.1    jruoho         Method(TSTE)
   7282      1.1    jruoho         {
   7283      1.1    jruoho             // DerefOf (Index (PKG4, 2)) is a Buffer
   7284      1.1    jruoho             Store (DerefOf (Index (PKG4, 2)), Local0)
   7285      1.1    jruoho             // DerefOf (Index (Local0, 1)) is a Number
   7286      1.1    jruoho             Store (DerefOf (Index (Local0, 1)), Local1)
   7287      1.1    jruoho             If (LEqual(Local1, 0xB))
   7288      1.1    jruoho             {
   7289      1.1    jruoho                 Return(0)
   7290      1.1    jruoho             }
   7291      1.1    jruoho             Else
   7292      1.1    jruoho             {
   7293      1.1    jruoho                 Return(0xE)
   7294      1.1    jruoho             }
   7295      1.1    jruoho 
   7296      1.1    jruoho         }
   7297      1.1    jruoho 
   7298  1.1.1.3  christos         Method (TSTF,, Serialized)
   7299      1.1    jruoho         {
   7300      1.1    jruoho             Name (SRCB, Buffer (12) {}) //  12 characters
   7301      1.1    jruoho             Store ("Short Buffer", SRCB)
   7302      1.1    jruoho 
   7303      1.1    jruoho             Name (DEST, Buffer ()                       //  62 characters plus NULL
   7304      1.1    jruoho                 {"Destination buffer that is longer than the short source buffer"})
   7305      1.1    jruoho 
   7306      1.1    jruoho             //  overwrite DEST contents, starting at buffer position 2
   7307      1.1    jruoho             Store (SRCB, Index (DEST, 2))
   7308      1.1    jruoho 
   7309      1.1    jruoho             //
   7310      1.1    jruoho             //  The DEST buffer element should be replaced with the last element of
   7311      1.1    jruoho             //      the SRCB element (i.e. 's'->'r')
   7312      1.1    jruoho             Store (DerefOf (Index (DEST, 2)), Local0)
   7313      1.1    jruoho 
   7314      1.1    jruoho             If (LNotEqual (Local0, 0x72))       //  'r'
   7315      1.1    jruoho             {
   7316      1.1    jruoho                 //  DEST element does not match the value from SRCB
   7317      1.1    jruoho                 Return(Or(Local0, 0x1000))
   7318      1.1    jruoho             }
   7319      1.1    jruoho 
   7320      1.1    jruoho             Return(0)
   7321      1.1    jruoho         }
   7322      1.1    jruoho 
   7323  1.1.1.3  christos         Method (TSTG,, Serialized)
   7324      1.1    jruoho         {
   7325      1.1    jruoho 
   7326      1.1    jruoho             Name (SRCB, Buffer (12) {}) //  12 characters
   7327      1.1    jruoho             Store ("Short Buffer", SRCB)
   7328      1.1    jruoho 
   7329      1.1    jruoho             Name (DEST, Buffer ()                       //  62 characters plus NULL
   7330      1.1    jruoho                 {"Destination buffer that is longer than the short source buffer"})
   7331      1.1    jruoho 
   7332      1.1    jruoho             //  overwrite DEST contents, starting at buffer position 2
   7333      1.1    jruoho             Store (SRCB, Index (DEST, 2))
   7334      1.1    jruoho 
   7335      1.1    jruoho             //
   7336      1.1    jruoho             // The next element of DEST should be unchanged
   7337      1.1    jruoho             //
   7338      1.1    jruoho             Store (DerefOf (Index (DEST, 3)), Local0)
   7339      1.1    jruoho 
   7340      1.1    jruoho             If (LNotEqual (Local0, 0x74))       //  't'
   7341      1.1    jruoho             {
   7342      1.1    jruoho                 //  DEST has been changed
   7343      1.1    jruoho                 Return(Or(Local0, 0x2000))
   7344      1.1    jruoho             }
   7345      1.1    jruoho 
   7346      1.1    jruoho             //
   7347      1.1    jruoho             // The next element of DEST should be unchanged
   7348      1.1    jruoho             //
   7349      1.1    jruoho             Store (DerefOf (Index (DEST, 4)), Local0)
   7350      1.1    jruoho 
   7351      1.1    jruoho             If (LNotEqual (Local0, 0x69))       //  'i'
   7352      1.1    jruoho             {
   7353      1.1    jruoho                 //  DEST has been changed
   7354      1.1    jruoho                 Return(Or(Local0, 0x2100))
   7355      1.1    jruoho             }
   7356      1.1    jruoho 
   7357      1.1    jruoho             //
   7358      1.1    jruoho             // The next element of DEST should be unchanged
   7359      1.1    jruoho             //
   7360      1.1    jruoho             Store (DerefOf (Index (DEST, 5)), Local0)
   7361      1.1    jruoho 
   7362      1.1    jruoho             If (LNotEqual (Local0, 0x6E))       //  'n'
   7363      1.1    jruoho             {
   7364      1.1    jruoho                 //  DEST has been changed
   7365      1.1    jruoho                 Return(Or(Local0, 0x2200))
   7366      1.1    jruoho             }
   7367      1.1    jruoho 
   7368      1.1    jruoho             //
   7369      1.1    jruoho             // The next element of DEST should be unchanged
   7370      1.1    jruoho             //
   7371      1.1    jruoho             Store (DerefOf (Index (DEST, 6)), Local0)
   7372      1.1    jruoho 
   7373      1.1    jruoho             If (LNotEqual (Local0, 0x61))       //  'a'
   7374      1.1    jruoho             {
   7375      1.1    jruoho                 //  DEST has been changed
   7376      1.1    jruoho                 Return(Or(Local0, 0x2300))
   7377      1.1    jruoho             }
   7378      1.1    jruoho 
   7379      1.1    jruoho             //
   7380      1.1    jruoho             // The next element of DEST should be unchanged
   7381      1.1    jruoho             //
   7382      1.1    jruoho             Store (DerefOf (Index (DEST, 7)), Local0)
   7383      1.1    jruoho 
   7384      1.1    jruoho             If (LNotEqual (Local0, 0x74))       //  't'
   7385      1.1    jruoho             {
   7386      1.1    jruoho                 //  DEST has been changed
   7387      1.1    jruoho                 Return(Or(Local0, 0x2400))
   7388      1.1    jruoho             }
   7389      1.1    jruoho 
   7390      1.1    jruoho             //
   7391      1.1    jruoho             //  Verify DEST elements beyond end of SRCB buffer copy
   7392      1.1    jruoho             //  have not been changed
   7393      1.1    jruoho             Store (DerefOf (Index (DEST, 14)), Local0)
   7394      1.1    jruoho 
   7395      1.1    jruoho             If (LNotEqual (Local0, 0x66))       // 'f'
   7396      1.1    jruoho             {
   7397      1.1    jruoho                 //  DEST has been changed
   7398      1.1    jruoho                 Return(Or(Local0, 0x2400))
   7399      1.1    jruoho             }
   7400      1.1    jruoho 
   7401      1.1    jruoho             Return(0)
   7402      1.1    jruoho         }
   7403      1.1    jruoho 
   7404      1.1    jruoho         //
   7405      1.1    jruoho         // This test shows that MS ACPI.SYS stores only the lower 8-bits of a 32-bit
   7406      1.1    jruoho         //  number into the index'ed buffer
   7407      1.1    jruoho         //
   7408  1.1.1.3  christos         Method (TSTH,, Serialized)
   7409      1.1    jruoho         {
   7410      1.1    jruoho             // Create a Destination Buffer
   7411      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7412      1.1    jruoho 
   7413      1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7414      1.1    jruoho             Store (0x12345678, Index(DBUF, 2))
   7415      1.1    jruoho 
   7416      1.1    jruoho             // Check the results
   7417      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7418      1.1    jruoho             If (LNotEqual (Local0, 0x78))   // 0x78
   7419      1.1    jruoho             {
   7420      1.1    jruoho                 Return(Or(Local0, 0x3000))
   7421      1.1    jruoho             }
   7422      1.1    jruoho 
   7423      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7424      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7425      1.1    jruoho             {
   7426      1.1    jruoho                 Return(Or(Local0, 0x3100))
   7427      1.1    jruoho             }
   7428      1.1    jruoho 
   7429      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7430      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7431      1.1    jruoho             {
   7432      1.1    jruoho                 Return(Or(Local0, 0x3200))
   7433      1.1    jruoho             }
   7434      1.1    jruoho 
   7435      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7436      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7437      1.1    jruoho             {
   7438      1.1    jruoho                 Return(Or(Local0, 0x3300))
   7439      1.1    jruoho             }
   7440      1.1    jruoho 
   7441      1.1    jruoho             Return(0)
   7442      1.1    jruoho         }
   7443      1.1    jruoho 
   7444  1.1.1.3  christos         Method (TSTI,, Serialized)
   7445      1.1    jruoho         {
   7446      1.1    jruoho             // Create a Destination Buffer
   7447      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7448      1.1    jruoho 
   7449      1.1    jruoho             // Store a String into an index of the buffer
   7450      1.1    jruoho             Store ("ABCDEFGH", Index(DBUF, 2))
   7451      1.1    jruoho 
   7452      1.1    jruoho             // Check the results
   7453      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7454      1.1    jruoho             If (LNotEqual (Local0, 0x48))   // 'H'
   7455      1.1    jruoho             {
   7456      1.1    jruoho                 Return(Or(Local0, 0x4000))
   7457      1.1    jruoho             }
   7458      1.1    jruoho 
   7459      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7460      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7461      1.1    jruoho             {
   7462      1.1    jruoho                 Return(Or(Local0, 0x4100))
   7463      1.1    jruoho             }
   7464      1.1    jruoho 
   7465      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7466      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7467      1.1    jruoho             {
   7468      1.1    jruoho                 Return(Or(Local0, 0x4200))
   7469      1.1    jruoho             }
   7470      1.1    jruoho 
   7471      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7472      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7473      1.1    jruoho             {
   7474      1.1    jruoho                 Return(Or(Local0, 0x4300))
   7475      1.1    jruoho             }
   7476      1.1    jruoho 
   7477      1.1    jruoho             Return(0)
   7478      1.1    jruoho         }
   7479      1.1    jruoho 
   7480  1.1.1.3  christos         Method(TSTJ,, Serialized)
   7481      1.1    jruoho         {
   7482      1.1    jruoho             // Create a Destination Buffer
   7483      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7484      1.1    jruoho 
   7485      1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7486      1.1    jruoho             Store (0x1234, Index(DBUF, 2))
   7487      1.1    jruoho 
   7488      1.1    jruoho             // Check the results
   7489      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7490      1.1    jruoho             If (LNotEqual (Local0, 0x34))   // 0x34
   7491      1.1    jruoho             {
   7492      1.1    jruoho                 Return(Or(Local0, 0x3000))
   7493      1.1    jruoho             }
   7494      1.1    jruoho 
   7495      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7496      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7497      1.1    jruoho             {
   7498      1.1    jruoho                 Return(Or(Local0, 0x3100))
   7499      1.1    jruoho             }
   7500      1.1    jruoho 
   7501      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7502      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7503      1.1    jruoho             {
   7504      1.1    jruoho                 Return(Or(Local0, 0x3200))
   7505      1.1    jruoho             }
   7506      1.1    jruoho 
   7507      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7508      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7509      1.1    jruoho             {
   7510      1.1    jruoho                 Return(Or(Local0, 0x3300))
   7511      1.1    jruoho             }
   7512      1.1    jruoho 
   7513      1.1    jruoho             Return(0)
   7514      1.1    jruoho         }
   7515      1.1    jruoho 
   7516  1.1.1.3  christos         Method(TSTK,, Serialized)
   7517      1.1    jruoho         {
   7518      1.1    jruoho             // Create a Destination Buffer
   7519      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7520      1.1    jruoho 
   7521      1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7522      1.1    jruoho             Store (0x123456, Index(DBUF, 2))
   7523      1.1    jruoho 
   7524      1.1    jruoho             // Check the results
   7525      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7526      1.1    jruoho             If (LNotEqual (Local0, 0x56))   // 0x56
   7527      1.1    jruoho             {
   7528      1.1    jruoho                 Return(Or(Local0, 0x3000))
   7529      1.1    jruoho             }
   7530      1.1    jruoho 
   7531      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7532      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7533      1.1    jruoho             {
   7534      1.1    jruoho                 Return(Or(Local0, 0x3100))
   7535      1.1    jruoho             }
   7536      1.1    jruoho 
   7537      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7538      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7539      1.1    jruoho             {
   7540      1.1    jruoho                 Return(Or(Local0, 0x3200))
   7541      1.1    jruoho             }
   7542      1.1    jruoho 
   7543      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7544      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7545      1.1    jruoho             {
   7546      1.1    jruoho                 Return(Or(Local0, 0x3300))
   7547      1.1    jruoho             }
   7548      1.1    jruoho 
   7549      1.1    jruoho             Return(0)
   7550      1.1    jruoho         }
   7551      1.1    jruoho 
   7552  1.1.1.3  christos         Method(TSTL,, Serialized)
   7553      1.1    jruoho         {
   7554      1.1    jruoho             // Create a Destination Buffer
   7555      1.1    jruoho             Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
   7556      1.1    jruoho 
   7557      1.1    jruoho             // Store a number > UINT8 into an index of the buffer
   7558      1.1    jruoho             Store (0x12, Index(DBUF, 2))
   7559      1.1    jruoho 
   7560      1.1    jruoho             // Check the results
   7561      1.1    jruoho             Store (DerefOf (Index (DBUF, 2)), Local0)
   7562      1.1    jruoho             If (LNotEqual (Local0, 0x12))   // 0x12
   7563      1.1    jruoho             {
   7564      1.1    jruoho                 Return(Or(Local0, 0x3000))
   7565      1.1    jruoho             }
   7566      1.1    jruoho 
   7567      1.1    jruoho             Store (DerefOf (Index (DBUF, 3)), Local0)
   7568      1.1    jruoho             If (LNotEqual (Local0, 0x64))   // 'd'
   7569      1.1    jruoho             {
   7570      1.1    jruoho                 Return(Or(Local0, 0x3100))
   7571      1.1    jruoho             }
   7572      1.1    jruoho 
   7573      1.1    jruoho             Store (DerefOf (Index (DBUF, 4)), Local0)
   7574      1.1    jruoho             If (LNotEqual (Local0, 0x65))   // 'e'
   7575      1.1    jruoho             {
   7576      1.1    jruoho                 Return(Or(Local0, 0x3200))
   7577      1.1    jruoho             }
   7578      1.1    jruoho 
   7579      1.1    jruoho             Store (DerefOf (Index (DBUF, 5)), Local0)
   7580      1.1    jruoho             If (LNotEqual (Local0, 0x66))   // 'f'
   7581      1.1    jruoho             {
   7582      1.1    jruoho                 Return(Or(Local0, 0x3300))
   7583      1.1    jruoho             }
   7584      1.1    jruoho 
   7585      1.1    jruoho             Return(0)
   7586      1.1    jruoho         }
   7587      1.1    jruoho 
   7588      1.1    jruoho         Method(TEST)
   7589      1.1    jruoho         {
   7590      1.1    jruoho             Store ("++++++++ IndexOp7 Test", Debug)
   7591      1.1    jruoho 
   7592      1.1    jruoho             Store(TST1(), Local0)
   7593      1.1    jruoho             if (LGreater (Local0, 0))
   7594      1.1    jruoho             {
   7595      1.1    jruoho                 Return(Local0)
   7596      1.1    jruoho             }
   7597      1.1    jruoho 
   7598      1.1    jruoho             Store(TST2(), Local0)
   7599      1.1    jruoho             if (LGreater (Local0, 0))
   7600      1.1    jruoho             {
   7601      1.1    jruoho                 Return(Local0)
   7602      1.1    jruoho             }
   7603      1.1    jruoho 
   7604      1.1    jruoho             Store(TST3(), Local0)
   7605      1.1    jruoho             if (LGreater (Local0, 0))
   7606      1.1    jruoho             {
   7607      1.1    jruoho                 Return(Local0)
   7608      1.1    jruoho             }
   7609      1.1    jruoho 
   7610      1.1    jruoho             Store(TST4(), Local0)
   7611      1.1    jruoho             if (LGreater (Local0, 0))
   7612      1.1    jruoho             {
   7613      1.1    jruoho                 Return(Local0)
   7614      1.1    jruoho             }
   7615      1.1    jruoho 
   7616      1.1    jruoho             Store(TST5(), Local0)
   7617      1.1    jruoho             if (LGreater (Local0, 0))
   7618      1.1    jruoho             {
   7619      1.1    jruoho                 Return(Local0)
   7620      1.1    jruoho             }
   7621      1.1    jruoho 
   7622      1.1    jruoho             Store(TST6(), Local0)
   7623      1.1    jruoho             if (LGreater (Local0, 0))
   7624      1.1    jruoho             {
   7625      1.1    jruoho                 Return(Local0)
   7626      1.1    jruoho             }
   7627      1.1    jruoho 
   7628      1.1    jruoho             Store(TST7(), Local0)
   7629      1.1    jruoho             if (LGreater (Local0, 0))
   7630      1.1    jruoho             {
   7631      1.1    jruoho                 Return(Local0)
   7632      1.1    jruoho             }
   7633      1.1    jruoho 
   7634      1.1    jruoho             Store(TST8(), Local0)
   7635      1.1    jruoho             if (LGreater (Local0, 0))
   7636      1.1    jruoho             {
   7637      1.1    jruoho                 Return(Local0)
   7638      1.1    jruoho             }
   7639      1.1    jruoho 
   7640      1.1    jruoho             Store(TST9(), Local0)
   7641      1.1    jruoho             if (LGreater (Local0, 0))
   7642      1.1    jruoho             {
   7643      1.1    jruoho                 Return(Local0)
   7644      1.1    jruoho             }
   7645      1.1    jruoho 
   7646      1.1    jruoho             Store(TSTA(), Local0)
   7647      1.1    jruoho             if (LGreater (Local0, 0))
   7648      1.1    jruoho             {
   7649      1.1    jruoho                 Return(Local0)
   7650      1.1    jruoho             }
   7651      1.1    jruoho 
   7652      1.1    jruoho             Store(TSTB(), Local0)
   7653      1.1    jruoho             if (LGreater (Local0, 0))
   7654      1.1    jruoho             {
   7655      1.1    jruoho                 Return(Local0)
   7656      1.1    jruoho             }
   7657      1.1    jruoho 
   7658      1.1    jruoho             Store(TSTC(), Local0)
   7659      1.1    jruoho             if (LGreater (Local0, 0))
   7660      1.1    jruoho             {
   7661      1.1    jruoho                 Return(Local0)
   7662      1.1    jruoho             }
   7663      1.1    jruoho 
   7664      1.1    jruoho             Store(TSTD(), Local0)
   7665      1.1    jruoho             if (LGreater (Local0, 0))
   7666      1.1    jruoho             {
   7667      1.1    jruoho                 Return(Local0)
   7668      1.1    jruoho             }
   7669      1.1    jruoho 
   7670      1.1    jruoho             Store(TSTE(), Local0)
   7671      1.1    jruoho             if (LGreater (Local0, 0))
   7672      1.1    jruoho             {
   7673      1.1    jruoho                 Return(Local0)
   7674      1.1    jruoho             }
   7675      1.1    jruoho 
   7676      1.1    jruoho     /* No longer ACPI compliant */
   7677      1.1    jruoho     /*
   7678      1.1    jruoho             Store(TSTF(), Local0)
   7679      1.1    jruoho             if (LGreater (Local0, 0))
   7680      1.1    jruoho             {
   7681      1.1    jruoho                 Return(Local0)
   7682      1.1    jruoho             }
   7683      1.1    jruoho     */
   7684      1.1    jruoho 
   7685      1.1    jruoho             Store(TSTG(), Local0)
   7686      1.1    jruoho             if (LGreater (Local0, 0))
   7687      1.1    jruoho             {
   7688      1.1    jruoho                 Return(Local0)
   7689      1.1    jruoho             }
   7690      1.1    jruoho 
   7691      1.1    jruoho             Store(TSTH(), Local0)
   7692      1.1    jruoho             if (LGreater (Local0, 0))
   7693      1.1    jruoho             {
   7694      1.1    jruoho                 Return(Local0)
   7695      1.1    jruoho             }
   7696      1.1    jruoho 
   7697      1.1    jruoho     /* No longer ACPI compliant */
   7698      1.1    jruoho     /*
   7699      1.1    jruoho             Store(TSTI(), Local0)
   7700      1.1    jruoho             if (LGreater (Local0, 0))
   7701      1.1    jruoho             {
   7702      1.1    jruoho                 Return(Local0)
   7703      1.1    jruoho             }
   7704      1.1    jruoho     */
   7705      1.1    jruoho             Store(TSTJ(), Local0)
   7706      1.1    jruoho             if (LGreater (Local0, 0))
   7707      1.1    jruoho             {
   7708      1.1    jruoho                 Return(Local0)
   7709      1.1    jruoho             }
   7710      1.1    jruoho 
   7711      1.1    jruoho             Store(TSTK(), Local0)
   7712      1.1    jruoho             if (LGreater (Local0, 0))
   7713      1.1    jruoho             {
   7714      1.1    jruoho                 Return(Local0)
   7715      1.1    jruoho             }
   7716      1.1    jruoho 
   7717      1.1    jruoho             Store(TSTL(), Local0)
   7718      1.1    jruoho             if (LGreater (Local0, 0))
   7719      1.1    jruoho             {
   7720      1.1    jruoho                 Return(Local0)
   7721      1.1    jruoho             }
   7722      1.1    jruoho 
   7723      1.1    jruoho             Return(Local0)
   7724      1.1    jruoho 
   7725      1.1    jruoho         }
   7726      1.1    jruoho 
   7727      1.1    jruoho     } // Device(IDX7)
   7728      1.1    jruoho 
   7729      1.1    jruoho //
   7730      1.1    jruoho // test MatchOp.asl
   7731      1.1    jruoho //
   7732      1.1    jruoho //  MatchOp test cases that utilize nested DerefOf(Index(...)) to validate
   7733      1.1    jruoho //  MatchOp, DerefOfOp, and IndexOp of nested packages.
   7734      1.1    jruoho //
   7735      1.1    jruoho     Device (MTCH)
   7736      1.1    jruoho     {
   7737      1.1    jruoho 
   7738  1.1.1.3  christos         Method (TEST,, Serialized)
   7739      1.1    jruoho         {
   7740      1.1    jruoho             Store ("++++++++ MatchOp Test", Debug)
   7741      1.1    jruoho 
   7742      1.1    jruoho             Name (TIM0, Package ()
   7743      1.1    jruoho                 {
   7744      1.1    jruoho                     Package ()  {0x78, 0xB4, 0xF0, 0x0384},
   7745      1.1    jruoho                     Package ()  {0x23, 0x21, 0x10, 0},
   7746      1.1    jruoho                     Package ()  {0x0B, 9, 4, 0},
   7747      1.1    jruoho                     Package ()  {0x70, 0x49, 0x36, 0x27, 0x19},
   7748      1.1    jruoho                     Package ()  {0, 1, 2, 1, 2},
   7749      1.1    jruoho                     Package ()  {0, 0, 0, 1, 1},
   7750      1.1    jruoho                     Package ()  {4, 3, 2, 0},
   7751      1.1    jruoho                     Package ()  {2, 1, 0, 0}
   7752      1.1    jruoho                 })  //  TIM0
   7753      1.1    jruoho 
   7754      1.1    jruoho             Name (TMD0, Buffer (20) {0xFF, 0xFF, 0xFF, 0xFF })
   7755      1.1    jruoho             CreateDWordField (TMD0, 0, PIO0)    //  0xFFFFFFFF
   7756      1.1    jruoho             CreateDWordField (TMD0, 4, DMA0)
   7757      1.1    jruoho             CreateDWordField (TMD0, 8, PIO1)
   7758      1.1    jruoho             CreateDWordField (TMD0, 12, DMA1)
   7759      1.1    jruoho             CreateDWordField (TMD0, 16, CHNF)
   7760      1.1    jruoho 
   7761      1.1    jruoho 
   7762      1.1    jruoho             //  validate PIO0 value
   7763      1.1    jruoho             Store (PIO0, Local3)
   7764      1.1    jruoho 
   7765      1.1    jruoho             //  save Local3 object type value into Local2
   7766      1.1    jruoho             Store (ObjectType (Local3), Local2)
   7767      1.1    jruoho 
   7768      1.1    jruoho             //  validate Local3 is a Number
   7769      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7770      1.1    jruoho                 {   Return (2)  }   //  failure
   7771      1.1    jruoho 
   7772      1.1    jruoho             //  validate Local3 Number value
   7773      1.1    jruoho             If (LNotEqual (Local3, 0xFFFFFFFF)) //  Number value 0xFFFFFFFF
   7774      1.1    jruoho                 {   Return (3)  }   //  failure
   7775      1.1    jruoho 
   7776      1.1    jruoho             Store ("DWordField PASS", Debug)
   7777      1.1    jruoho 
   7778      1.1    jruoho 
   7779      1.1    jruoho             Store (0, Local5)
   7780      1.1    jruoho             Store (Match (DerefOf (Index (TIM0, 1, )), MLE, Local5, MTR, 0, 0), Local6)
   7781      1.1    jruoho 
   7782      1.1    jruoho             //  save Local6 object type value into Local2
   7783      1.1    jruoho             Store (ObjectType (Local6), Local2)
   7784      1.1    jruoho 
   7785      1.1    jruoho             //  validate Local6 is a Number
   7786      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7787      1.1    jruoho                 {   Return (4)  }   //  failure
   7788      1.1    jruoho 
   7789      1.1    jruoho             Store ("Match(DerefOf(Index(TIM0,1)),... PASS", Debug)
   7790      1.1    jruoho 
   7791      1.1    jruoho 
   7792      1.1    jruoho             //  validate following produces a nested package to validate
   7793      1.1    jruoho             //  that MatchOp did not corrupt SearchPackage (TIM0)
   7794      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7795      1.1    jruoho 
   7796      1.1    jruoho             //  save Local4 object type value into Local2
   7797      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7798      1.1    jruoho 
   7799      1.1    jruoho             //  validate Local4 is a Package
   7800      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7801      1.1    jruoho                 {   Return (5)  }   //  failure
   7802      1.1    jruoho 
   7803      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS", Debug)
   7804      1.1    jruoho 
   7805      1.1    jruoho 
   7806      1.1    jruoho             And (Match (DerefOf (Index (TIM0, 0, )), MGE, PIO0, MTR, 0, 0), 3, Local0)
   7807      1.1    jruoho 
   7808      1.1    jruoho             //  save Local0 object type value into Local2
   7809      1.1    jruoho             Store (ObjectType (Local0), Local2)
   7810      1.1    jruoho 
   7811      1.1    jruoho             //  validate Local0 is a Number
   7812      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7813      1.1    jruoho                 {   Return (6)  }   //  failure
   7814      1.1    jruoho 
   7815      1.1    jruoho             //  validate Local0 Number value
   7816      1.1    jruoho             If (LNotEqual (Local0, 3))  //  Number value 3
   7817      1.1    jruoho                 {   Return (7)  }   //  failure
   7818      1.1    jruoho 
   7819      1.1    jruoho             Store ("And(Match(DerefOf(Index(TIM0,0)),... PASS", Debug)
   7820      1.1    jruoho 
   7821      1.1    jruoho 
   7822      1.1    jruoho             //  again, validate following produces a nested package
   7823      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7824      1.1    jruoho 
   7825      1.1    jruoho             //  save Local4 object type value into Local2
   7826      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7827      1.1    jruoho 
   7828      1.1    jruoho             //  validate Local4 is a Package
   7829      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7830      1.1    jruoho                 {   Return (8)  }   //  failure
   7831      1.1    jruoho 
   7832      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7833      1.1    jruoho 
   7834      1.1    jruoho 
   7835      1.1    jruoho             //  again, validate following produces a nested package
   7836      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7837      1.1    jruoho 
   7838      1.1    jruoho             //  save Local4 object type value into Local2
   7839      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7840      1.1    jruoho 
   7841      1.1    jruoho             //  validate Local4 is a Package
   7842      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7843      1.1    jruoho                 {   Return (9)  }   //  failure
   7844      1.1    jruoho 
   7845      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7846      1.1    jruoho 
   7847      1.1    jruoho 
   7848      1.1    jruoho             //  test nested DerefOf(Index) operators
   7849      1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
   7850      1.1    jruoho 
   7851      1.1    jruoho             //  save Local1 object type value into Local2
   7852      1.1    jruoho             Store (ObjectType (Local1), Local2)
   7853      1.1    jruoho 
   7854      1.1    jruoho             //  validate Local1 is a Number
   7855      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7856      1.1    jruoho                 {   Return (10) }   //  failure
   7857      1.1    jruoho 
   7858      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   7859      1.1    jruoho             If (LNotEqual (Local1, 0))
   7860      1.1    jruoho                 {   Return (11) }   //  failure
   7861      1.1    jruoho 
   7862      1.1    jruoho             Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS", Debug)
   7863      1.1    jruoho 
   7864      1.1    jruoho 
   7865      1.1    jruoho             //  again, validate following produces a nested package
   7866      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7867      1.1    jruoho 
   7868      1.1    jruoho             //  save Local4 object type value into Local2
   7869      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7870      1.1    jruoho 
   7871      1.1    jruoho             //  validate Local4 is a Package
   7872      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7873      1.1    jruoho                 {   Return (12) }   //  failure
   7874      1.1    jruoho 
   7875      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7876      1.1    jruoho 
   7877      1.1    jruoho 
   7878      1.1    jruoho             //  retest nested DerefOf(Index) operators
   7879      1.1    jruoho             Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
   7880      1.1    jruoho 
   7881      1.1    jruoho             //  save Local1 object type value into Local2
   7882      1.1    jruoho             Store (ObjectType (Local1), Local2)
   7883      1.1    jruoho 
   7884      1.1    jruoho             //  validate Local1 is a Number
   7885      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   7886      1.1    jruoho                 {   Return (13) }   //  failure
   7887      1.1    jruoho 
   7888      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   7889      1.1    jruoho             If (LNotEqual (Local1, 0))
   7890      1.1    jruoho                 {   Return (14) }   //  failure
   7891      1.1    jruoho 
   7892      1.1    jruoho             Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7893      1.1    jruoho 
   7894      1.1    jruoho 
   7895      1.1    jruoho             //  again, validate following produces a nested package
   7896      1.1    jruoho             Store (DerefOf (Index (TIM0, 1, )), Local4)
   7897      1.1    jruoho 
   7898      1.1    jruoho             //  save Local4 object type value into Local2
   7899      1.1    jruoho             Store (ObjectType (Local4), Local2)
   7900      1.1    jruoho 
   7901      1.1    jruoho             //  validate Local4 is a Package
   7902      1.1    jruoho             If (LNotEqual (Local2, 4))  //  Package type is 4
   7903      1.1    jruoho                 {   Return (15) }   //  failure
   7904      1.1    jruoho 
   7905      1.1    jruoho             Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
   7906      1.1    jruoho 
   7907      1.1    jruoho 
   7908      1.1    jruoho             Return (0)  //  pass
   7909      1.1    jruoho         }   //  TEST
   7910      1.1    jruoho     }   // MTCH
   7911      1.1    jruoho 
   7912      1.1    jruoho //
   7913      1.1    jruoho // test WhileBrk.asl
   7914      1.1    jruoho //
   7915      1.1    jruoho //  This code tests the Break term and While term
   7916      1.1    jruoho //
   7917      1.1    jruoho //  Syntax of Break term
   7918      1.1    jruoho //      BreakTerm := Break
   7919      1.1    jruoho //  The break operation causes the current package execution to complete.
   7920      1.1    jruoho //
   7921      1.1    jruoho //  Syntax of While Term
   7922      1.1    jruoho //      WhileTerm   := While(
   7923      1.1    jruoho //          Predicate   //TermArg=>Integer
   7924      1.1    jruoho //      ) {TermList}
   7925      1.1    jruoho //  Predicate is evaluated as an integer.
   7926      1.1    jruoho //  If the integer is non-zero, the list of terms in TermList is executed.
   7927      1.1    jruoho //  The operation repeats until the Predicate evaluates to zero.
   7928      1.1    jruoho //
   7929      1.1    jruoho // MTL NOTE: This test has been modified to reflect ACPI 2.0 break
   7930      1.1    jruoho // NOTE: This test, when run under the MS ACPI.SYS grinds the system to
   7931      1.1    jruoho //  a halt.
   7932      1.1    jruoho //
   7933      1.1    jruoho     Device (WHLB)
   7934      1.1    jruoho     {
   7935      1.1    jruoho         Name (CNT0, 0)
   7936      1.1    jruoho         Name (CNT1, 0)
   7937      1.1    jruoho 
   7938      1.1    jruoho         Method (TEST)
   7939      1.1    jruoho         {
   7940      1.1    jruoho             //  Check Break statement nested in If nested in While nested in
   7941      1.1    jruoho             //  While only exits inner-most While loop
   7942      1.1    jruoho             Store (0, CNT0)
   7943      1.1    jruoho 
   7944      1.1    jruoho             While (LLess (CNT0, 4))
   7945      1.1    jruoho             {
   7946      1.1    jruoho                 Store (0, CNT1)
   7947      1.1    jruoho                 While (LLess (CNT1, 10))
   7948      1.1    jruoho                 {
   7949      1.1    jruoho                     if (LEqual (CNT1, 1))
   7950      1.1    jruoho                     {
   7951      1.1    jruoho                         Break       //  exit encompassing loop
   7952      1.1    jruoho                     }
   7953      1.1    jruoho 
   7954      1.1    jruoho                     Increment (CNT1)
   7955      1.1    jruoho                 }
   7956      1.1    jruoho 
   7957      1.1    jruoho                 If (LNotEqual (CNT1, 1))
   7958      1.1    jruoho                 {
   7959      1.1    jruoho                     //  failure
   7960      1.1    jruoho                     Return (7)
   7961      1.1    jruoho                 }
   7962      1.1    jruoho 
   7963      1.1    jruoho                 Increment (CNT0)
   7964      1.1    jruoho             }
   7965      1.1    jruoho 
   7966      1.1    jruoho             //  Verify Break only exited inner-most While loop
   7967      1.1    jruoho 
   7968      1.1    jruoho             If (LNotEqual (CNT0, 4))
   7969      1.1    jruoho             {
   7970      1.1    jruoho                 //  failure
   7971      1.1    jruoho                 Return (8)
   7972      1.1    jruoho             }
   7973      1.1    jruoho 
   7974      1.1    jruoho             Store ("While/While/If/Break PASS", Debug)
   7975      1.1    jruoho 
   7976      1.1    jruoho             Store ("++++++++ WhileBrk Test", Debug)
   7977      1.1    jruoho 
   7978      1.1    jruoho             //  Check Break statement nested in While
   7979      1.1    jruoho             Store (0, CNT0)
   7980      1.1    jruoho 
   7981      1.1    jruoho             While (LLess (CNT0, 10))
   7982      1.1    jruoho             {
   7983      1.1    jruoho                 Break       //  exit encompassing package
   7984      1.1    jruoho                 Increment (CNT0)
   7985      1.1    jruoho             }
   7986      1.1    jruoho 
   7987      1.1    jruoho             If (LNotEqual (CNT0, 0))    //  instruction after Break executed
   7988      1.1    jruoho             {
   7989      1.1    jruoho                 Return (4)
   7990      1.1    jruoho             }
   7991      1.1    jruoho 
   7992      1.1    jruoho 
   7993      1.1    jruoho             Store (0, CNT0)
   7994      1.1    jruoho 
   7995      1.1    jruoho             //  Test While Term
   7996      1.1    jruoho             While (LLess (CNT0, 10))
   7997      1.1    jruoho             {
   7998      1.1    jruoho                 Increment (CNT0)
   7999      1.1    jruoho             }
   8000      1.1    jruoho 
   8001      1.1    jruoho             //  Check if the while loop was executed until the condition is satisfied.
   8002      1.1    jruoho             If (LNotEqual (CNT0, 10))
   8003      1.1    jruoho             {
   8004      1.1    jruoho                 Return (1)
   8005      1.1    jruoho             }
   8006      1.1    jruoho 
   8007      1.1    jruoho 
   8008      1.1    jruoho             //  While loop in a reverse order
   8009      1.1    jruoho             While (LGreater (CNT0, 0))
   8010      1.1    jruoho             {
   8011      1.1    jruoho                 Decrement (CNT0)
   8012      1.1    jruoho             }
   8013      1.1    jruoho 
   8014      1.1    jruoho             //  Check if the while loop was executed until the condition is satisfied.
   8015      1.1    jruoho             If (LNotEqual (CNT0, 0))
   8016      1.1    jruoho             {
   8017      1.1    jruoho                 Return (2)
   8018      1.1    jruoho             }
   8019      1.1    jruoho 
   8020      1.1    jruoho 
   8021      1.1    jruoho             Store ("While/Break PASS", Debug)
   8022      1.1    jruoho 
   8023      1.1    jruoho 
   8024      1.1    jruoho             //  Check Break statement nested in If nested in While
   8025      1.1    jruoho             Store (0, CNT0)
   8026      1.1    jruoho 
   8027      1.1    jruoho             While (LLess (CNT0, 10))
   8028      1.1    jruoho             {
   8029      1.1    jruoho                 if (LEqual (CNT0, 5))
   8030      1.1    jruoho                 {
   8031      1.1    jruoho                     Break       //  exit encompassing Package (If)
   8032      1.1    jruoho 
   8033      1.1    jruoho                     //  if we execute the next instruction,
   8034      1.1    jruoho                     //  Break did not exit the loop
   8035      1.1    jruoho                     Store (20, CNT0)    //  exit While loop with value larger
   8036      1.1    jruoho                                             //  than above
   8037      1.1    jruoho                 }
   8038      1.1    jruoho 
   8039      1.1    jruoho                 Increment (CNT0)    //  check if Break exited both If and While
   8040      1.1    jruoho             }   //  While
   8041      1.1    jruoho 
   8042      1.1    jruoho             If (LGreater (CNT0, 19))
   8043      1.1    jruoho             {   //  instruction after Break inside IfOp executed
   8044      1.1    jruoho                 Return (5)
   8045      1.1    jruoho             }
   8046      1.1    jruoho 
   8047      1.1    jruoho             //
   8048      1.1    jruoho             // Break will exit out of the while loop, therefore
   8049      1.1    jruoho             //  the CNT0 counter should still Increment until 5
   8050      1.1    jruoho             //
   8051      1.1    jruoho             If (LNotEqual (CNT0, 5))
   8052      1.1    jruoho             {   //  instruction after Break inside WhileOp executed
   8053      1.1    jruoho                 Return (6)
   8054      1.1    jruoho             }
   8055      1.1    jruoho             Store ("While/If/Break PASS", Debug)
   8056      1.1    jruoho 
   8057      1.1    jruoho 
   8058      1.1    jruoho             //  All the conditions passed
   8059      1.1    jruoho             Return (0)
   8060      1.1    jruoho         }   //  TEST
   8061      1.1    jruoho     }   //  WHLB
   8062      1.1    jruoho 
   8063      1.1    jruoho 
   8064      1.1    jruoho //
   8065      1.1    jruoho // test IndexOp2.asl
   8066      1.1    jruoho //
   8067      1.1    jruoho //  Additional IndexOp test cases to support ACPICMB (control method battery
   8068      1.1    jruoho //  test) on Toshiba Portege 7020CT. Test cases include appropriate bit
   8069      1.1    jruoho //  shifting of Field elements and reading Field elements greater than 64 bits.
   8070      1.1    jruoho //
   8071      1.1    jruoho // MTL NOTE: This test has been modified slightly from the original test
   8072      1.1    jruoho //  to take into account ACPI specification limitations.
   8073      1.1    jruoho //
   8074      1.1    jruoho     Scope (\_SB)    //  System Bus
   8075      1.1    jruoho     {   //  _SB system bus
   8076      1.1    jruoho 
   8077      1.1    jruoho         Device (MEM)
   8078      1.1    jruoho         {   //  MEM
   8079      1.1    jruoho             Name (_HID, 0x010CD041)
   8080      1.1    jruoho             Name (_STA, 0x0F)
   8081      1.1    jruoho 
   8082      1.1    jruoho             OperationRegion (SMEM, SystemMemory, 0x800000, 0x100)
   8083      1.1    jruoho             Field (SMEM, AnyAcc, NoLock, Preserve)
   8084      1.1    jruoho             {   //  Field:  SMEM overlay using 32-bit field elements
   8085      1.1    jruoho                 SMD0,   32, //  32-bits
   8086      1.1    jruoho                 SMD1,   32,     //  32-bits
   8087      1.1    jruoho                 SMD2,   32,     //  32-bits
   8088      1.1    jruoho                 SMD3,   32  //  32-bits
   8089      1.1    jruoho             }   //  Field:  SMEM overlay using 32-bit field elements
   8090      1.1    jruoho             Field (SMEM, AnyAcc, NoLock, Preserve)
   8091      1.1    jruoho             {   //  Field:  SMEM overlay using greater than 32-bit field elements
   8092      1.1    jruoho                 SME0,   69, //  larger than an integer (32 or 64)
   8093      1.1    jruoho                 SME1,   97  //  larger than an integer
   8094      1.1    jruoho             }   //  Field:  SMEM overlay using greater than 32-bit field elements
   8095      1.1    jruoho 
   8096      1.1    jruoho             OperationRegion (SRAM, SystemMemory, 0x100B0000, 0xF000)
   8097      1.1    jruoho             Field (SRAM, AnyAcc, NoLock, Preserve)
   8098      1.1    jruoho             {   //  Field:  SRAM overlay
   8099      1.1    jruoho                     ,   0x34000,    //  skip
   8100      1.1    jruoho                 IEAX,   0x20,
   8101      1.1    jruoho                 IEBX,   0x20,
   8102      1.1    jruoho                 IECX,   0x20,
   8103      1.1    jruoho                 IEDX,   0x20,
   8104      1.1    jruoho                 IESI,   0x20,
   8105      1.1    jruoho                 IEDI,   0x20,
   8106      1.1    jruoho                 IEBP,   0x20,
   8107      1.1    jruoho                     ,   0x20,
   8108      1.1    jruoho                 OEAX,   0x20,
   8109      1.1    jruoho                 OEBX,   0x20,
   8110      1.1    jruoho                 OECX,   0x20,
   8111      1.1    jruoho                 OEDX,   0x20,
   8112      1.1    jruoho                 OESI,   0x20,
   8113      1.1    jruoho                 OEDI,   0x20,
   8114      1.1    jruoho                 OEBP,   0x20,
   8115      1.1    jruoho                     ,   0x618,  //  skip
   8116      1.1    jruoho                 ACST,   1,
   8117      1.1    jruoho                 BES1,   1,
   8118      1.1    jruoho                 BES2,   1,
   8119      1.1    jruoho                     ,   5,          //  skip
   8120      1.1    jruoho                 BMN1,   0x68,
   8121      1.1    jruoho                 BSN1,   0x58,
   8122      1.1    jruoho                 BTP1,   0x48,
   8123      1.1    jruoho                 BPU1,   0x20,
   8124      1.1    jruoho                 BDC1,   0x20,
   8125      1.1    jruoho                 BLF1,   0x20,
   8126      1.1    jruoho                 BTC1,   0x20,
   8127      1.1    jruoho                 BDV1,   0x20,
   8128      1.1    jruoho                 BST1,   0x20,
   8129      1.1    jruoho                 BPR1,   0x20,
   8130      1.1    jruoho                 BRC1,   0x20,
   8131      1.1    jruoho                 BPV1,   0x20,
   8132      1.1    jruoho                     ,   0x20,
   8133      1.1    jruoho                 BCW1,   0x20,
   8134      1.1    jruoho                 BCL1,   0x20,
   8135      1.1    jruoho                 BG11,   0x20,
   8136      1.1    jruoho                 BG21,   0x20,
   8137      1.1    jruoho                 BOI1,   0x20,
   8138      1.1    jruoho                     ,   0x530,  //  skip
   8139      1.1    jruoho                 BMN2,   0x68,
   8140      1.1    jruoho                 BSN2,   0x58,
   8141      1.1    jruoho                 BTP2,   0x48,
   8142      1.1    jruoho                 BPU2,   0x20,
   8143      1.1    jruoho                 BDC2,   0x20,
   8144      1.1    jruoho                 BLF2,   0x20,
   8145      1.1    jruoho                 BTC2,   0x20,
   8146      1.1    jruoho                 BDV2,   0x20,
   8147      1.1    jruoho                 BST2,   0x20,
   8148      1.1    jruoho                 BPR2,   0x20,
   8149      1.1    jruoho                 BRC2,   0x20,
   8150      1.1    jruoho                 BPV2,   0x20,
   8151      1.1    jruoho                     ,   0x20,
   8152      1.1    jruoho                 BCW2,   0x20,
   8153      1.1    jruoho                 BCL2,   0x20,
   8154      1.1    jruoho                 BG12,   0x20,
   8155      1.1    jruoho                 BG22,   0x20,
   8156      1.1    jruoho                 BOI2,   0x20,
   8157      1.1    jruoho                     ,   0x518,  //  skip
   8158      1.1    jruoho                 AC01,   0x10,
   8159      1.1    jruoho                 AC11,   0x10,
   8160      1.1    jruoho                 PSV1,   0x10,
   8161      1.1    jruoho                 CRT1,   0x10,
   8162      1.1    jruoho                 TMP1,   0x10,
   8163      1.1    jruoho                 AST1,   0x10,
   8164      1.1    jruoho                 AC21,   0x10,
   8165      1.1    jruoho                 AC31,   0x10,
   8166      1.1    jruoho                 AC02,   0x10,
   8167      1.1    jruoho                 AC12,   0x10,
   8168      1.1    jruoho                 PSV2,   0x10,
   8169      1.1    jruoho                 CRT2,   0x10,
   8170      1.1    jruoho                 TMP2,   0x10,
   8171      1.1    jruoho                 AST2,   0x10,
   8172      1.1    jruoho                 AC22,   0x10,
   8173      1.1    jruoho                 AC32,   0x10,
   8174      1.1    jruoho                 AC03,   0x10,
   8175      1.1    jruoho                 AC13,   0x10,
   8176      1.1    jruoho                 PSV3,   0x10,
   8177      1.1    jruoho                 CRT3,   0x10,
   8178      1.1    jruoho                 TMP3,   0x10,
   8179      1.1    jruoho                 AST3,   0x10,
   8180      1.1    jruoho                 AC23,   0x10,
   8181      1.1    jruoho                 AC33,   0x10,
   8182      1.1    jruoho                     ,   0x80,       //  skip
   8183      1.1    jruoho                 TMPF,   0x10,
   8184      1.1    jruoho                     ,   0x570,  //  skip
   8185      1.1    jruoho                 FANH,   1,
   8186      1.1    jruoho                 FANL,   7,
   8187      1.1    jruoho                 TF11,   1,
   8188      1.1    jruoho                 TF21,   1,
   8189      1.1    jruoho                 TF31,   1,
   8190      1.1    jruoho                     ,   1,
   8191      1.1    jruoho                 TF10,   1,
   8192      1.1    jruoho                 TF20,   1,
   8193      1.1    jruoho                 TF30,   1,
   8194      1.1    jruoho                     ,   1,
   8195      1.1    jruoho                 TP11,   1,
   8196      1.1    jruoho                 TP21,   1,
   8197      1.1    jruoho                 TP31,   1,
   8198      1.1    jruoho                     ,   0x6D,   //  109
   8199      1.1    jruoho                 GP50,   1,
   8200      1.1    jruoho                 GP51,   1,
   8201      1.1    jruoho                 GP52,   1,
   8202      1.1    jruoho                 GP53,   1,
   8203      1.1    jruoho                     ,   4,
   8204      1.1    jruoho                 GP60,   1,
   8205      1.1    jruoho                 GP61,   1,
   8206      1.1    jruoho                 GP62,   1,
   8207      1.1    jruoho                 GP63,   1,
   8208      1.1    jruoho                 GP64,   1,
   8209      1.1    jruoho                 GP65,   1,
   8210      1.1    jruoho                 GP66,   1,
   8211      1.1    jruoho                     ,   1,
   8212      1.1    jruoho                 GP70,   1,
   8213      1.1    jruoho                 GP71,   1,
   8214      1.1    jruoho                 GP72,   1,
   8215      1.1    jruoho                 GP73,   1,
   8216      1.1    jruoho                 GP74,   1,
   8217      1.1    jruoho                 GP75,   1,
   8218      1.1    jruoho                 GP76,   1,
   8219      1.1    jruoho                     ,   1,
   8220      1.1    jruoho                 WED0,   1,
   8221      1.1    jruoho                 WED1,   1,
   8222      1.1    jruoho                 WED2,   1,
   8223      1.1    jruoho                 WED3,   1,
   8224      1.1    jruoho                 WED4,   1,
   8225      1.1    jruoho                     ,   3,
   8226      1.1    jruoho                 SBL0,   1,
   8227      1.1    jruoho                 SBL1,   1,
   8228      1.1    jruoho                 SBL2,   1,
   8229      1.1    jruoho                 SBL3,   1,
   8230      1.1    jruoho                     ,   4,
   8231      1.1    jruoho                 LIDS,   1,
   8232      1.1    jruoho                 VALF,   1,
   8233      1.1    jruoho                     ,   2,
   8234      1.1    jruoho                 DCKI,   1,
   8235      1.1    jruoho                 DCKF,   1,
   8236      1.1    jruoho                 BT1F,   1,
   8237      1.1    jruoho                 BT2F,   1,
   8238      1.1    jruoho                     ,   0x7D0,  //  skip
   8239      1.1    jruoho                 HKCD,   8,
   8240      1.1    jruoho                     ,   8,
   8241      1.1    jruoho                 DLID,   0x20,
   8242      1.1    jruoho                 DSRN,   0x20,
   8243      1.1    jruoho                     ,   0x20,
   8244      1.1    jruoho                 BDID,   0x20,
   8245      1.1    jruoho                 DSPW,   1,
   8246      1.1    jruoho                 VGAF,   1,
   8247      1.1    jruoho                 VWE0,   1,
   8248      1.1    jruoho                 VWE1,   1,
   8249      1.1    jruoho                 PPSC,   1,
   8250      1.1    jruoho                 SPSC,   1,
   8251      1.1    jruoho                 EWLD,   1,
   8252      1.1    jruoho                 EWPS,   1,
   8253      1.1    jruoho                     ,   0x1768, //  skip
   8254      1.1    jruoho                 PRES,   0x8000
   8255      1.1    jruoho             }   //  Field:  SRAM overlay
   8256      1.1    jruoho         }   //  MEM
   8257      1.1    jruoho 
   8258      1.1    jruoho         Device (BAT1)
   8259      1.1    jruoho         {   //  BAT1
   8260      1.1    jruoho             Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
   8261      1.1    jruoho             Name (_UID, 1)
   8262      1.1    jruoho             Name (_PCL, Package (1) {\_SB})
   8263      1.1    jruoho 
   8264      1.1    jruoho             Method (_STA)
   8265      1.1    jruoho             {   //  _STA
   8266      1.1    jruoho                 If (\_SB.MEM.BES1)
   8267      1.1    jruoho                     {   Return (0x1F)   }   //  battery present
   8268      1.1    jruoho                 Else
   8269      1.1    jruoho                     {   Return (0x0F)   }   //  battery not present
   8270      1.1    jruoho             }   //  _STA
   8271      1.1    jruoho 
   8272  1.1.1.3  christos             Method (_BIF,, Serialized)
   8273      1.1    jruoho             {   //  _BIF
   8274      1.1    jruoho                 Name (BUFR, Package (13)    {})
   8275      1.1    jruoho 
   8276      1.1    jruoho                 Store (\_SB.MEM.BPU1, Index (BUFR, 0))
   8277      1.1    jruoho                 Store (\_SB.MEM.BDC1, Index (BUFR, 1))
   8278      1.1    jruoho                 Store (\_SB.MEM.BLF1, Index (BUFR, 2))
   8279      1.1    jruoho                 Store (\_SB.MEM.BTC1, Index (BUFR, 3))
   8280      1.1    jruoho                 Store (\_SB.MEM.BDV1, Index (BUFR, 4))
   8281      1.1    jruoho                 Store (\_SB.MEM.BCW1, Index (BUFR, 5))
   8282      1.1    jruoho                 Store (\_SB.MEM.BCL1, Index (BUFR, 6))
   8283      1.1    jruoho                 Store (\_SB.MEM.BG11, Index (BUFR, 7))
   8284      1.1    jruoho                 Store (\_SB.MEM.BG21, Index (BUFR, 8))
   8285      1.1    jruoho                 Store (\_SB.MEM.BMN1, Index (BUFR, 9))
   8286      1.1    jruoho                 Store (\_SB.MEM.BSN1, Index (BUFR, 10))
   8287      1.1    jruoho                 Store (\_SB.MEM.BTP1, Index (BUFR, 11))
   8288      1.1    jruoho                 Store (\_SB.MEM.BOI1, Index (BUFR, 12))
   8289      1.1    jruoho 
   8290      1.1    jruoho                 Return (BUFR)
   8291      1.1    jruoho             }   //  _BIF
   8292      1.1    jruoho         }   //  BAT1
   8293      1.1    jruoho 
   8294      1.1    jruoho         Device (IDX2)
   8295      1.1    jruoho         {
   8296  1.1.1.3  christos             Method (B2IB,, Serialized)
   8297      1.1    jruoho             {   //  B2IB:   store from Buffer into Index'ed Buffer
   8298      1.1    jruoho 
   8299      1.1    jruoho                 Name (SRCB, Buffer ()   {"Short Buffer"})   //  12 characters plus NULL
   8300      1.1    jruoho 
   8301      1.1    jruoho                 Name (DEST, Buffer ()                           //  62 characters plus NULL
   8302      1.1    jruoho                     {"Destination buffer that is longer than the short source buffer"})
   8303      1.1    jruoho 
   8304      1.1    jruoho 
   8305      1.1    jruoho                 //  verify object type returned by Index(Buffer,Element,)
   8306      1.1    jruoho 
   8307      1.1    jruoho                 Store (Index (DEST, 2, ), Local1)
   8308      1.1    jruoho                 Store (ObjectType (Local1), Local2)
   8309      1.1    jruoho 
   8310      1.1    jruoho                 If (LNotEqual (Local2, 14))     //  Buffer Field is type 14
   8311      1.1    jruoho                 {
   8312      1.1    jruoho                     //  Local2 indicates Local1 is not a Buffer Field
   8313      1.1    jruoho 
   8314      1.1    jruoho                     Return (0x61)
   8315      1.1    jruoho                 }
   8316      1.1    jruoho 
   8317      1.1    jruoho                 //  verify object type and value returned by DerefOf(Index(Buffer,Element,))
   8318      1.1    jruoho                 //  should return Number containing element value
   8319      1.1    jruoho 
   8320      1.1    jruoho                 Store (DerefOf (Local1), Local3)
   8321      1.1    jruoho                 Store (ObjectType (Local3), Local4)
   8322      1.1    jruoho 
   8323      1.1    jruoho                 If (LNotEqual (Local4, 1))          //  Number is type 1
   8324      1.1    jruoho                 {
   8325      1.1    jruoho                     //  Local2 indicates Local1 is not a Number
   8326      1.1    jruoho                     Return (0x62)
   8327      1.1    jruoho                 }
   8328      1.1    jruoho                 Else
   8329      1.1    jruoho                 {
   8330      1.1    jruoho                     If (LNotEqual (Local3, 0x73))       //  expect 's' element from DEST
   8331      1.1    jruoho                     {
   8332      1.1    jruoho                         Return (0x63)
   8333      1.1    jruoho                     }
   8334      1.1    jruoho                 }
   8335      1.1    jruoho 
   8336      1.1    jruoho                 Store ("DerefOf(Index(Buffer,,)) PASS", Debug)
   8337      1.1    jruoho 
   8338      1.1    jruoho 
   8339      1.1    jruoho                 //
   8340      1.1    jruoho                 // The following sections have been rewritten because storing into
   8341      1.1    jruoho                 // an Indexed buffer only changes one byte - the FIRST byte of the
   8342      1.1    jruoho                 // buffer is written to the source index.  This is the ONLY byte
   8343      1.1    jruoho                 // written -- as per ACPI 2.0
   8344      1.1    jruoho                 //
   8345      1.1    jruoho                 // Overwrite DEST contents, at buffer position 2 [only]
   8346      1.1    jruoho 
   8347      1.1    jruoho                 Store (SRCB, Index (DEST, 2, ))
   8348      1.1    jruoho 
   8349      1.1    jruoho                 //
   8350      1.1    jruoho                 // Check that the next byte is not changed
   8351      1.1    jruoho                 //
   8352      1.1    jruoho                 Store (DerefOf (Index (DEST, 3, )), Local0)
   8353      1.1    jruoho                 If (LNotEqual (Local0, 0x74))       //  't'
   8354      1.1    jruoho                 {
   8355      1.1    jruoho                     //  DEST element is not matching original value
   8356      1.1    jruoho                     If (LEqual (Local0, 0x68))
   8357      1.1    jruoho                     {
   8358      1.1    jruoho                         //  DEST element was altered to 'h'
   8359      1.1    jruoho                         Return (0x68)
   8360      1.1    jruoho                     }
   8361      1.1    jruoho                     Else
   8362      1.1    jruoho                     {
   8363      1.1    jruoho                         // DEST element is an unknown value
   8364      1.1    jruoho                         Return (0x69)
   8365      1.1    jruoho                     }
   8366      1.1    jruoho                 }
   8367      1.1    jruoho 
   8368      1.1    jruoho                 //
   8369      1.1    jruoho                 // Check that the elements beyond the SRCB buffer copy
   8370      1.1    jruoho                 //  have not been altered.
   8371      1.1    jruoho                 //
   8372      1.1    jruoho                 Store (DerefOf (Index (DEST, 14)), Local0)
   8373      1.1    jruoho 
   8374      1.1    jruoho                 //
   8375      1.1    jruoho                 // This should be an 'f'.
   8376      1.1    jruoho                 //
   8377      1.1    jruoho                 If (LNotEqual (Local0, 0x66))
   8378      1.1    jruoho                 {
   8379      1.1    jruoho                     //  DEST element was zero'd by buffer copy
   8380      1.1    jruoho                     If (LEqual (Local0, 0))
   8381      1.1    jruoho                     {
   8382      1.1    jruoho                         //  DEST element is zero
   8383      1.1    jruoho                         Return (0x6A)
   8384      1.1    jruoho                     }
   8385      1.1    jruoho                     Else
   8386      1.1    jruoho                     {
   8387      1.1    jruoho                         //  DEST element is unknown value
   8388      1.1    jruoho                         Return (0x6B)
   8389      1.1    jruoho                     }
   8390      1.1    jruoho                 }
   8391      1.1    jruoho 
   8392      1.1    jruoho                 Store ("Store(SRCB,Index(Buffer,,)) PASS", Debug)
   8393      1.1    jruoho 
   8394      1.1    jruoho                 //
   8395      1.1    jruoho                 //  verify altering SRCB does NOT alter DEST
   8396      1.1    jruoho                 //
   8397      1.1    jruoho                 Store (0x6A, Index (SRCB, 1))   //  SRCB = "Sjort Buffer"
   8398      1.1    jruoho 
   8399      1.1    jruoho                 Store (DerefOf (Index (SRCB, 1)), Local0)
   8400      1.1    jruoho 
   8401      1.1    jruoho                 If (LNotEqual (Local0, 0x6A))       //  'j'
   8402      1.1    jruoho                 {
   8403      1.1    jruoho                     //  SRCB element is unaltered
   8404      1.1    jruoho                     Return (0x71)
   8405      1.1    jruoho                 }
   8406      1.1    jruoho 
   8407      1.1    jruoho                 Store (DerefOf (Index (DEST, 3)), Local0) // DEST = "Destination buffer that...
   8408      1.1    jruoho 
   8409      1.1    jruoho                 If (LNotEqual (Local0, 0x74))       //  't'
   8410      1.1    jruoho                 {
   8411      1.1    jruoho                     //  DEST element is altered
   8412      1.1    jruoho                     If (LEqual (Local0, 0x6A))  //  'j'
   8413      1.1    jruoho                     {
   8414      1.1    jruoho                         //  SRCB change altered DEST element
   8415      1.1    jruoho                         Return (0x72)
   8416      1.1    jruoho                     }
   8417      1.1    jruoho                     Else
   8418      1.1    jruoho                     {
   8419      1.1    jruoho                         //  DEST element is unknown value
   8420      1.1    jruoho                         Return (0x73)
   8421      1.1    jruoho                     }
   8422      1.1    jruoho                 }
   8423      1.1    jruoho 
   8424      1.1    jruoho                 //  verify altering DEST does NOT alter SRCB
   8425      1.1    jruoho 
   8426      1.1    jruoho                 Store (0x6B, Index (DEST, 4, )) //  DEST = "DeSkination buffer..."
   8427      1.1    jruoho 
   8428      1.1    jruoho                 Store (DerefOf (Index (DEST, 4, )), Local0)
   8429      1.1    jruoho 
   8430      1.1    jruoho                 If (LNotEqual (Local0, 0x6B))       //  'k'
   8431      1.1    jruoho                 {
   8432      1.1    jruoho                     //  DEST element is unaltered
   8433      1.1    jruoho                     Return (0x74)
   8434      1.1    jruoho                 }
   8435      1.1    jruoho 
   8436      1.1    jruoho                 Store (DerefOf (Index (SRCB, 2, )), Local0)
   8437      1.1    jruoho 
   8438      1.1    jruoho                 If (LNotEqual (Local0, 0x6F))       //  'o'
   8439      1.1    jruoho                 {   //  SRC element is altered
   8440      1.1    jruoho                     If (LEqual (Local0, 0x6B))  //  'k'
   8441      1.1    jruoho                     {
   8442      1.1    jruoho                         //  DEST change altered SRCB element
   8443      1.1    jruoho                         Return (0x75)
   8444      1.1    jruoho                     }
   8445      1.1    jruoho                     Else
   8446      1.1    jruoho                     {
   8447      1.1    jruoho                         //  SRCB element is unknown value
   8448      1.1    jruoho                         Return (0x76)
   8449      1.1    jruoho                     }
   8450      1.1    jruoho                 }
   8451      1.1    jruoho 
   8452      1.1    jruoho                 Store ("SRCB and DEST independent PASS", Debug)
   8453      1.1    jruoho 
   8454      1.1    jruoho 
   8455      1.1    jruoho                 // verify string can be written to Index target/destination
   8456      1.1    jruoho                 // Only FIRST byte is written
   8457      1.1    jruoho 
   8458      1.1    jruoho                 Store ("New Buff", Index (DEST, 2, ))   //  DEST = "DeNkination buffer..."
   8459      1.1    jruoho 
   8460      1.1    jruoho                 Store (DerefOf (Index (DEST, 2, )), Local0)
   8461      1.1    jruoho 
   8462      1.1    jruoho                 If (LNotEqual (Local0, 0x4E))       //  'N'
   8463      1.1    jruoho                 {
   8464      1.1    jruoho                     //  DEST element is unaltered
   8465      1.1    jruoho                     Return (0x81)
   8466      1.1    jruoho                 }
   8467      1.1    jruoho 
   8468      1.1    jruoho                 Store (DerefOf (Index (DEST, 6, )), Local0)
   8469      1.1    jruoho 
   8470      1.1    jruoho                 If (LNotEqual (Local0, 0x61))       //  'a'
   8471      1.1    jruoho                 {
   8472      1.1    jruoho                     //  DEST element is unaltered
   8473      1.1    jruoho                     Return (0x82)
   8474      1.1    jruoho                 }
   8475      1.1    jruoho 
   8476      1.1    jruoho                 Store (DerefOf (Index (DEST, 10, )), Local0)
   8477      1.1    jruoho 
   8478      1.1    jruoho                 If (LNotEqual (Local0, 0x6E))       //  'n'
   8479      1.1    jruoho                 {
   8480      1.1    jruoho                     //  DEST element is unaltered
   8481      1.1    jruoho                     Return (0x83)
   8482      1.1    jruoho                 }
   8483      1.1    jruoho 
   8484      1.1    jruoho                 Store ("Store(String,Index) PASS", Debug)
   8485      1.1    jruoho 
   8486      1.1    jruoho 
   8487      1.1    jruoho                 Return (0)  //  pass
   8488      1.1    jruoho             }   //  B2IB:   store from Buffer into Index'ed Buffer
   8489      1.1    jruoho 
   8490  1.1.1.3  christos             Method (FB2P,, Serialized)
   8491      1.1    jruoho             {   //  FB2P:   store from Field Buffer into Index'ed Package
   8492      1.1    jruoho                 Name (DEST, Package (2) {})
   8493      1.1    jruoho 
   8494      1.1    jruoho                 //  initialize memory using 32-bit field elements
   8495      1.1    jruoho                 Store (0x01234567, \_SB.MEM.SMD0)
   8496      1.1    jruoho                 Store (0x89ABCDEF, \_SB.MEM.SMD1)
   8497      1.1    jruoho                 Store (0xFEDCBA98, \_SB.MEM.SMD2)
   8498      1.1    jruoho                 Store (0x76543210, \_SB.MEM.SMD3)
   8499      1.1    jruoho 
   8500      1.1    jruoho                 //  move greater than 64-bit buffers into DEST package
   8501      1.1    jruoho                 Store (\_SB.MEM.SME0, Index (DEST, 0))
   8502      1.1    jruoho                 Store (\_SB.MEM.SME1, Index (DEST, 1))
   8503      1.1    jruoho 
   8504      1.1    jruoho                 //  validate DEST contents
   8505      1.1    jruoho                 Store (DerefOf (Index (DEST, 0, )), Local0)
   8506      1.1    jruoho                 Store (DerefOf (Index (DEST, 1, )), Local1)
   8507      1.1    jruoho 
   8508      1.1    jruoho                 //  verify Local0 and Local1 are Buffers
   8509      1.1    jruoho                 Store (ObjectType (Local0), Local2)
   8510      1.1    jruoho                 if (LNotEqual (Local2, 3))  //  Buffer type is 3
   8511      1.1    jruoho                 {
   8512      1.1    jruoho                     Return (0x11)
   8513      1.1    jruoho                 }
   8514      1.1    jruoho 
   8515      1.1    jruoho                 Store (ObjectType (Local1), Local3)
   8516      1.1    jruoho                 if (LNotEqual (Local3, 3))  //  Buffer type is 3
   8517      1.1    jruoho                 {
   8518      1.1    jruoho                     Return (0x12)
   8519      1.1    jruoho                 }
   8520      1.1    jruoho 
   8521      1.1    jruoho                 //  validate DEST buffer contents
   8522      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 0)), Local4)
   8523      1.1    jruoho                 If (LNotEqual (Local4, 0x67))
   8524      1.1    jruoho                 {
   8525      1.1    jruoho                     Return (0x13)
   8526      1.1    jruoho                 }
   8527      1.1    jruoho 
   8528      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 1)), Local4)
   8529      1.1    jruoho                 If (LNotEqual (Local4, 0x45))
   8530      1.1    jruoho                 {
   8531      1.1    jruoho                     Return (0x14)
   8532      1.1    jruoho                 }
   8533      1.1    jruoho 
   8534      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 4)), Local4)
   8535      1.1    jruoho                 If (LNotEqual (Local4, 0xEF))
   8536      1.1    jruoho                 {
   8537      1.1    jruoho                     Return (0x15)
   8538      1.1    jruoho                 }
   8539      1.1    jruoho 
   8540      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 5, )), Local4)
   8541      1.1    jruoho                 If (LNotEqual (Local4, 0xCD))
   8542      1.1    jruoho                 {
   8543      1.1    jruoho                     Return (0x16)
   8544      1.1    jruoho                 }
   8545      1.1    jruoho 
   8546      1.1    jruoho                 Store ("Store(Mem,PkgElement) PASS", Debug)
   8547      1.1    jruoho 
   8548      1.1    jruoho 
   8549      1.1    jruoho                 //  validate changing source \_SB.MEM.SMD* does not impact DEST
   8550      1.1    jruoho                 Store (0x12345678, \_SB.MEM.SMD0)
   8551      1.1    jruoho 
   8552      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 0, )), Local5)
   8553      1.1    jruoho                 If (LNotEqual (Local5, 0x67))
   8554      1.1    jruoho                 {
   8555      1.1    jruoho                     Return (0x21)
   8556      1.1    jruoho                 }
   8557      1.1    jruoho 
   8558      1.1    jruoho                 Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 1, )), Local5)
   8559      1.1    jruoho                 If (LNotEqual (Local5, 0x45))
   8560      1.1    jruoho                 {
   8561      1.1    jruoho                     Return (0x22)
   8562      1.1    jruoho                 }
   8563      1.1    jruoho 
   8564      1.1    jruoho                 //  validate changing DEST does not impact source \_SB.MEM.SMD*
   8565      1.1    jruoho                 Store (0x30, Index (DerefOf (Index (DEST, 0)), 0))
   8566      1.1    jruoho 
   8567      1.1    jruoho                 Store (DerefOf(Index (DerefOf (Index (DEST, 0)), 0)), Local5)
   8568      1.1    jruoho                 If (LNotEqual (Local5, 0x30))
   8569      1.1    jruoho                 {
   8570      1.1    jruoho                     Return (0x23)
   8571      1.1    jruoho                 }
   8572      1.1    jruoho 
   8573      1.1    jruoho                 //
   8574      1.1    jruoho                 // This section was modified from the original iPCO code because
   8575      1.1    jruoho                 //  it attempted to compare two buffers.  This is not allowed until
   8576      1.1    jruoho                 //  ACPI v2.0, so the test has been modified to just check the
   8577      1.1    jruoho                 //  changed \_SB.MEM.SMD0
   8578      1.1    jruoho                 //
   8579      1.1    jruoho                 Store (\_SB.MEM.SMD0, Local5)
   8580      1.1    jruoho 
   8581      1.1    jruoho                 If(LNotEqual(Local5, 0x12345678))
   8582      1.1    jruoho                 {
   8583      1.1    jruoho                     Return (0x24)
   8584      1.1    jruoho                 }
   8585      1.1    jruoho 
   8586      1.1    jruoho                 Store ("Mem and Pkg independent PASS", Debug)
   8587      1.1    jruoho 
   8588      1.1    jruoho 
   8589      1.1    jruoho                 Return (0)
   8590      1.1    jruoho             }   //  FB2P:   store from Field Buffer into Index'ed Package
   8591      1.1    jruoho 
   8592      1.1    jruoho             Method (TEST)
   8593      1.1    jruoho             {
   8594      1.1    jruoho                 Store ("++++++++ IndexOp2 Test", Debug)
   8595      1.1    jruoho 
   8596      1.1    jruoho                 //  store _BIF package return value into Local0
   8597      1.1    jruoho 
   8598      1.1    jruoho                 Store (\_SB.BAT1._BIF, Local0)
   8599      1.1    jruoho 
   8600      1.1    jruoho                 //  save Local0 object type value into Local1
   8601      1.1    jruoho                 Store (ObjectType (Local0), Local1)
   8602      1.1    jruoho 
   8603      1.1    jruoho                 //  validate Local0 is a Package
   8604      1.1    jruoho                 If (LNotEqual (Local1, 4))  //  Package type is 4
   8605      1.1    jruoho                 {
   8606      1.1    jruoho                     //  failure
   8607      1.1    jruoho                     Return (2)
   8608      1.1    jruoho                 }
   8609      1.1    jruoho 
   8610      1.1    jruoho                 //  validate source and destination buffers are independent of each
   8611      1.1    jruoho                 //  of each other (i.e., changing one's contents does not change
   8612      1.1    jruoho                 //  other's contents) using B2IB (store from Buffer into Index'ed
   8613      1.1    jruoho                 //  Buffer) and FB2P (store from Field Buffer into Index'ed Package)
   8614      1.1    jruoho 
   8615      1.1    jruoho                 //  call B2IB (store from Buffer into Index'ed Buffer)
   8616      1.1    jruoho                 Store (B2IB, Local2)    //  Local2 is B2IB return value
   8617      1.1    jruoho 
   8618      1.1    jruoho                 //  save Local2 object type value into Local3
   8619      1.1    jruoho                 Store (ObjectType (Local2), Local3)
   8620      1.1    jruoho 
   8621      1.1    jruoho                 //  validate Local2 is a Number
   8622      1.1    jruoho                 If (LNotEqual (Local3, 1))  //  Number type is 1
   8623      1.1    jruoho                 {
   8624      1.1    jruoho                     //  failure
   8625      1.1    jruoho                     Return (4)
   8626      1.1    jruoho                 }
   8627      1.1    jruoho 
   8628      1.1    jruoho                 //  zero indicates pass, non-zero is an error code
   8629      1.1    jruoho                 If (LNotEqual (Local2, 0))
   8630      1.1    jruoho                 {
   8631      1.1    jruoho                     //  return B2IB error code
   8632      1.1    jruoho                     Return (Local2)
   8633      1.1    jruoho                 }
   8634      1.1    jruoho 
   8635      1.1    jruoho                 //  call FB2P (store from Field Buffer into Index'ed Package)
   8636      1.1    jruoho                 Store (FB2P, Local2)    //  Local2 is FB2P return value
   8637      1.1    jruoho 
   8638      1.1    jruoho                 //  save Local2 object type value into Local3
   8639      1.1    jruoho                 Store (ObjectType (Local2), Local3)
   8640      1.1    jruoho 
   8641      1.1    jruoho                 //  validate Local2 is a Number
   8642      1.1    jruoho                 If (LNotEqual (Local3, 1))  //  Number type is 1
   8643      1.1    jruoho                 {
   8644      1.1    jruoho                     //  failure
   8645      1.1    jruoho                     Return (5)
   8646      1.1    jruoho                 }
   8647      1.1    jruoho 
   8648      1.1    jruoho                 //  zero indicates pass, non-zero is an error code
   8649      1.1    jruoho                 If (LNotEqual (Local2, 0))
   8650      1.1    jruoho                 {
   8651      1.1    jruoho                     //  return FB2P error code
   8652      1.1    jruoho                     Return (Local2)
   8653      1.1    jruoho                 }
   8654      1.1    jruoho 
   8655      1.1    jruoho 
   8656      1.1    jruoho                 Return (0)
   8657      1.1    jruoho             }   //  TEST
   8658      1.1    jruoho         }   //  IDX2:   Test device name
   8659      1.1    jruoho     }   //  _SB system bus
   8660      1.1    jruoho 
   8661      1.1    jruoho //
   8662      1.1    jruoho // test SizeOf.asl
   8663      1.1    jruoho //
   8664      1.1    jruoho //  Test for SizeOf
   8665      1.1    jruoho //      test cases include following SizeOf arguments:
   8666      1.1    jruoho //          buffer, buffer field;
   8667      1.1    jruoho //          control method argument, control method local variable;
   8668      1.1    jruoho //          control method return values;
   8669      1.1    jruoho //          direct string, string;
   8670      1.1    jruoho //          package;
   8671      1.1    jruoho //          buffer, package, and string package elements
   8672      1.1    jruoho //
   8673      1.1    jruoho // MTL NOTE: This test has been modified to remove any SizeOf(Index(Buff,...
   8674      1.1    jruoho //  calls because it is not legal to perform a SizeOf operation on a Buffer Field.
   8675      1.1    jruoho //  This test has also been extended to test additional Package element sizes.
   8676      1.1    jruoho //
   8677      1.1    jruoho     Device (SIZO)
   8678      1.1    jruoho     {
   8679      1.1    jruoho         //  SAR0 control method validates SizeOf(Arg)
   8680      1.1    jruoho         //      SAR0 should only be called by SARG
   8681      1.1    jruoho         Method (SAR0, 2)
   8682      1.1    jruoho         //  Arg0    object to determine size of
   8683      1.1    jruoho         //  Arg1    expected Arg length
   8684      1.1    jruoho         {   //  SAR0:   SizeOf(Arg) test control method
   8685      1.1    jruoho             //  Local0  Arg0 length
   8686      1.1    jruoho             //  Local1  Local0 object type
   8687      1.1    jruoho 
   8688      1.1    jruoho             //  Store first string size (Arg0) into Local7
   8689      1.1    jruoho             Store (SizeOf (Arg0), Local0)
   8690      1.1    jruoho 
   8691      1.1    jruoho             //  save Local0 object type value into Local1
   8692      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8693      1.1    jruoho 
   8694      1.1    jruoho             //  validate Local0 is a Number
   8695      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8696      1.1    jruoho                 {   Return (0x21)   }
   8697      1.1    jruoho 
   8698      1.1    jruoho             //  If strings are not of equal size, return error code
   8699      1.1    jruoho             If (LNotEqual (Local0, Arg1))
   8700      1.1    jruoho                 {   Return (0x22)   }
   8701      1.1    jruoho 
   8702      1.1    jruoho             Return (0)
   8703      1.1    jruoho         }   //  SAR0:   SizeOf(Arg) test control method
   8704      1.1    jruoho 
   8705  1.1.1.3  christos         Method (SARG,, Serialized)
   8706      1.1    jruoho         {   //  SARG:   SizeOf(Arg) test control method
   8707      1.1    jruoho             Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
   8708      1.1    jruoho             Name (BUF1, Buffer() {0x01, 0x02, 0x03, 0x04, 0x05})
   8709      1.1    jruoho             Name (PKG0, Package (4) {}) //  uninitialized Package
   8710      1.1    jruoho             Name (STR0, "String")
   8711      1.1    jruoho             Name (PKG1, Package (4)
   8712      1.1    jruoho             {
   8713      1.1    jruoho                 BUFR,
   8714      1.1    jruoho                 "String2",
   8715      1.1    jruoho                 STR0,
   8716      1.1    jruoho                 PKG0
   8717      1.1    jruoho             })  //  PKG1
   8718      1.1    jruoho 
   8719      1.1    jruoho             Name (PKG2, Package (4)
   8720      1.1    jruoho             {
   8721      1.1    jruoho                 Buffer (15) {},
   8722      1.1    jruoho                 "String 1",
   8723      1.1    jruoho                 Package (2) {}
   8724      1.1    jruoho             })  //  PKG2
   8725      1.1    jruoho 
   8726      1.1    jruoho             //  Namespace entry buffer reference
   8727      1.1    jruoho             Store (SAR0 (BUFR, 12), Local0)
   8728      1.1    jruoho 
   8729      1.1    jruoho             //  save Local0 object type value into Local1
   8730      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8731      1.1    jruoho 
   8732      1.1    jruoho             //  validate Local0 is a Number
   8733      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8734      1.1    jruoho             {
   8735      1.1    jruoho                 Return (0x23)
   8736      1.1    jruoho             }
   8737      1.1    jruoho 
   8738      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8739      1.1    jruoho             {
   8740      1.1    jruoho                 Return (Local0)
   8741      1.1    jruoho             }
   8742      1.1    jruoho 
   8743      1.1    jruoho             Store ("SizeOf(Arg=BUFR) PASS", Debug)
   8744      1.1    jruoho 
   8745      1.1    jruoho 
   8746      1.1    jruoho             //  Namespace entry package reference
   8747      1.1    jruoho             Store (SAR0 (PKG0, 4), Local0)
   8748      1.1    jruoho 
   8749      1.1    jruoho             //  save Local0 object type value into Local1
   8750      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8751      1.1    jruoho 
   8752      1.1    jruoho             //  validate Local0 is a Number
   8753      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8754      1.1    jruoho             {
   8755      1.1    jruoho                 Return (0x24)
   8756      1.1    jruoho             }
   8757      1.1    jruoho 
   8758      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8759      1.1    jruoho             {
   8760      1.1    jruoho                 Return (Local0)
   8761      1.1    jruoho             }
   8762      1.1    jruoho 
   8763      1.1    jruoho             Store ("SizeOf(Arg=PKG0) PASS", Debug)
   8764      1.1    jruoho 
   8765      1.1    jruoho 
   8766      1.1    jruoho             //  Namespace entry string reference
   8767      1.1    jruoho             Store (SAR0 (STR0, 6), Local0)
   8768      1.1    jruoho 
   8769      1.1    jruoho             //  save Local0 object type value into Local1
   8770      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8771      1.1    jruoho 
   8772      1.1    jruoho             //  validate Local0 is a Number
   8773      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8774      1.1    jruoho             {
   8775      1.1    jruoho                 Return (0x25)
   8776      1.1    jruoho             }
   8777      1.1    jruoho 
   8778      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8779      1.1    jruoho             {
   8780      1.1    jruoho                 Return (Local0)
   8781      1.1    jruoho             }
   8782      1.1    jruoho 
   8783      1.1    jruoho             Store ("SizeOf(Arg=STR0) PASS", Debug)
   8784      1.1    jruoho 
   8785      1.1    jruoho 
   8786      1.1    jruoho             //  direct string reference
   8787      1.1    jruoho             Store (SAR0 ("String", 6), Local0)
   8788      1.1    jruoho 
   8789      1.1    jruoho             //  save Local0 object type value into Local1
   8790      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8791      1.1    jruoho 
   8792      1.1    jruoho             //  validate Local0 is a Number
   8793      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8794      1.1    jruoho             {
   8795      1.1    jruoho                 Return (0x26)
   8796      1.1    jruoho             }
   8797      1.1    jruoho 
   8798      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8799      1.1    jruoho             {
   8800      1.1    jruoho                 Return (Local0)
   8801      1.1    jruoho             }
   8802      1.1    jruoho 
   8803      1.1    jruoho             Store ("SizeOf(Arg=String) PASS", Debug)
   8804      1.1    jruoho 
   8805      1.1    jruoho             Store (0x55, Index (BUF1, 2))
   8806      1.1    jruoho 
   8807      1.1    jruoho             /****************************************************
   8808      1.1    jruoho             //
   8809      1.1    jruoho             // This section is commented because it is illegal to
   8810      1.1    jruoho             //  perform a SizeOf operation on a Buffer Field
   8811      1.1    jruoho             //
   8812      1.1    jruoho             //  Namespace BufferField reference
   8813      1.1    jruoho             Store (SAR0 (Index (BUFR, 2, ), 10), Local0)
   8814      1.1    jruoho 
   8815      1.1    jruoho             //  save Local0 object type value into Local1
   8816      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8817      1.1    jruoho 
   8818      1.1    jruoho             //  validate Local0 is a Number
   8819      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8820      1.1    jruoho                 {   Return (0x27)   }
   8821      1.1    jruoho 
   8822      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8823      1.1    jruoho                 {   Return (Local0) }
   8824      1.1    jruoho 
   8825      1.1    jruoho             Store ("SizeOf(Arg=BufferField) PASS", Debug)
   8826      1.1    jruoho             ****************************************************/
   8827      1.1    jruoho 
   8828      1.1    jruoho             //  Namespace BufferPackageElement reference
   8829      1.1    jruoho             //
   8830      1.1    jruoho             Store (SAR0 (Index(PKG1, 0), 12), Local0)
   8831      1.1    jruoho 
   8832      1.1    jruoho             //  save Local0 object type value into Local1
   8833      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8834      1.1    jruoho 
   8835      1.1    jruoho             //  validate Local0 is a Number
   8836      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8837      1.1    jruoho             {
   8838      1.1    jruoho                 Return (0x28)
   8839      1.1    jruoho             }
   8840      1.1    jruoho 
   8841      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8842      1.1    jruoho             {
   8843      1.1    jruoho                 Return (Local0)
   8844      1.1    jruoho             }
   8845      1.1    jruoho 
   8846      1.1    jruoho             Store ("SizeOf(Arg=PackageBuffer NTE Reference Element) PASS", Debug)
   8847      1.1    jruoho 
   8848      1.1    jruoho 
   8849      1.1    jruoho             //  Namespace StringPackageElement reference
   8850      1.1    jruoho             Store (SAR0 (Index (PKG1, 1, ), 7), Local0)
   8851      1.1    jruoho 
   8852      1.1    jruoho             //  save Local0 object type value into Local1
   8853      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8854      1.1    jruoho 
   8855      1.1    jruoho             //  validate Local0 is a Number
   8856      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8857      1.1    jruoho             {
   8858      1.1    jruoho                 Return (0x29)
   8859      1.1    jruoho             }
   8860      1.1    jruoho 
   8861      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8862      1.1    jruoho             {
   8863      1.1    jruoho                 Return (Local0)
   8864      1.1    jruoho             }
   8865      1.1    jruoho 
   8866      1.1    jruoho             Store ("SizeOf(Arg=Package String Element) PASS", Debug)
   8867      1.1    jruoho 
   8868      1.1    jruoho 
   8869      1.1    jruoho             //  Namespace StringPackageElement reference
   8870      1.1    jruoho             Store (SAR0 (Index (PKG1, 2, ), 6), Local0)
   8871      1.1    jruoho 
   8872      1.1    jruoho             //  save Local0 object type value into Local1
   8873      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8874      1.1    jruoho 
   8875      1.1    jruoho             //  validate Local0 is a Number
   8876      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8877      1.1    jruoho             {
   8878      1.1    jruoho                 Return (0x2A)
   8879      1.1    jruoho             }
   8880      1.1    jruoho 
   8881      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8882      1.1    jruoho             {
   8883      1.1    jruoho                 Return (Local0)
   8884      1.1    jruoho             }
   8885      1.1    jruoho 
   8886      1.1    jruoho             Store ("SizeOf(Arg=Package String NTE Reference Element) PASS", Debug)
   8887      1.1    jruoho 
   8888      1.1    jruoho 
   8889      1.1    jruoho             //  Namespace PackagePackageElement reference
   8890      1.1    jruoho             Store (SAR0 (Index (PKG1, 3, ), 4), Local0)
   8891      1.1    jruoho 
   8892      1.1    jruoho             //  save Local0 object type value into Local1
   8893      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8894      1.1    jruoho 
   8895      1.1    jruoho             //  validate Local0 is a Number
   8896      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8897      1.1    jruoho             {
   8898      1.1    jruoho                 Return (0x2B)
   8899      1.1    jruoho             }
   8900      1.1    jruoho 
   8901      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8902      1.1    jruoho             {
   8903      1.1    jruoho                 Return (Local0)
   8904      1.1    jruoho             }
   8905      1.1    jruoho 
   8906      1.1    jruoho             Store ("SizeOf(Arg=Package Package NTE Reference Element) PASS", Debug)
   8907      1.1    jruoho 
   8908      1.1    jruoho             // Package Buffer Element
   8909      1.1    jruoho             Store (SAR0 (Index (PKG2, 0), 15), Local0)
   8910      1.1    jruoho 
   8911      1.1    jruoho             //  save Local0 object type value into Local1
   8912      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8913      1.1    jruoho 
   8914      1.1    jruoho             //  validate Local0 is a Number
   8915      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8916      1.1    jruoho             {
   8917      1.1    jruoho                 Return (0x2B)
   8918      1.1    jruoho             }
   8919      1.1    jruoho 
   8920      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8921      1.1    jruoho             {
   8922      1.1    jruoho                 Return (Local0)
   8923      1.1    jruoho             }
   8924      1.1    jruoho 
   8925      1.1    jruoho             Store ("SizeOf(Arg=Package Buffer Element) PASS", Debug)
   8926      1.1    jruoho 
   8927      1.1    jruoho             // Package String Element
   8928      1.1    jruoho             Store (SAR0 (Index (PKG2, 1), 8), Local0)
   8929      1.1    jruoho 
   8930      1.1    jruoho             //  save Local0 object type value into Local1
   8931      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8932      1.1    jruoho 
   8933      1.1    jruoho             //  validate Local0 is a Number
   8934      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8935      1.1    jruoho             {
   8936      1.1    jruoho                 Return (0x2B)
   8937      1.1    jruoho             }
   8938      1.1    jruoho 
   8939      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8940      1.1    jruoho             {
   8941      1.1    jruoho                 Return (Local0)
   8942      1.1    jruoho             }
   8943      1.1    jruoho 
   8944      1.1    jruoho             Store ("SizeOf(Arg=Package String Element) PASS", Debug)
   8945      1.1    jruoho 
   8946      1.1    jruoho             // Package Package Element
   8947      1.1    jruoho             Store (SAR0 (Index (PKG2, 2), 2), Local0)
   8948      1.1    jruoho 
   8949      1.1    jruoho             //  save Local0 object type value into Local1
   8950      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8951      1.1    jruoho 
   8952      1.1    jruoho             //  validate Local0 is a Number
   8953      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8954      1.1    jruoho             {
   8955      1.1    jruoho                 Return (0x2B)
   8956      1.1    jruoho             }
   8957      1.1    jruoho 
   8958      1.1    jruoho             If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
   8959      1.1    jruoho             {
   8960      1.1    jruoho                 Return (Local0)
   8961      1.1    jruoho             }
   8962      1.1    jruoho 
   8963      1.1    jruoho             Store ("SizeOf(Arg=Package Package Element) PASS", Debug)
   8964      1.1    jruoho 
   8965      1.1    jruoho             Store ("SizeOf(Arg) PASS", Debug)
   8966      1.1    jruoho 
   8967      1.1    jruoho             Return (0)
   8968      1.1    jruoho         }   //  SARG:   SizeOf(Arg) test control method
   8969      1.1    jruoho 
   8970  1.1.1.3  christos         Method (SBUF,, Serialized)
   8971      1.1    jruoho         {   //  SBUF:   SizeOf(Buffer) test control method
   8972      1.1    jruoho             Name (BUFR, Buffer (12) {})
   8973      1.1    jruoho 
   8974      1.1    jruoho             //  store size of BUFR buffer into Local0
   8975      1.1    jruoho             Store (SizeOf (BUFR), Local0)
   8976      1.1    jruoho 
   8977      1.1    jruoho             //  save Local0 object type value into Local1
   8978      1.1    jruoho             Store (ObjectType (Local0), Local1)
   8979      1.1    jruoho 
   8980      1.1    jruoho             //  validate Local0 is a Number
   8981      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   8982      1.1    jruoho             {
   8983      1.1    jruoho                 Return (0x31)
   8984      1.1    jruoho             }
   8985      1.1    jruoho 
   8986      1.1    jruoho             If (LNotEqual (Local0, 12))     //  BUFR size is 12
   8987      1.1    jruoho             {
   8988      1.1    jruoho                 Return (0x32)
   8989      1.1    jruoho             }
   8990      1.1    jruoho 
   8991      1.1    jruoho             Store ("SizeOf(BUFR) PASS", Debug)
   8992      1.1    jruoho 
   8993      1.1    jruoho             Return (0)
   8994      1.1    jruoho         }   //  SBUF:   SizeOf(Buffer) test control method
   8995      1.1    jruoho 
   8996      1.1    jruoho 
   8997      1.1    jruoho         /****************************************************
   8998      1.1    jruoho         //
   8999      1.1    jruoho         // This section is commented because it is illegal to
   9000      1.1    jruoho         //  perform a SizeOf operation on a Buffer Field
   9001      1.1    jruoho         //
   9002      1.1    jruoho         Method (SIND)
   9003      1.1    jruoho         {   //  SIND:   SizeOf(Index(,,)) test control method
   9004      1.1    jruoho             Name (BUFR, Buffer (12) {})
   9005      1.1    jruoho 
   9006      1.1    jruoho             //  store size of Index(BUFR,2,) buffer into Local0
   9007      1.1    jruoho             Store (SizeOf (Index (BUFR, 2, )), Local0)
   9008      1.1    jruoho 
   9009      1.1    jruoho             //  save Local0 object type value into Local1
   9010      1.1    jruoho             Store (ObjectType (Local0), Local1)
   9011      1.1    jruoho 
   9012      1.1    jruoho             //  validate Local0 is a Number
   9013      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9014      1.1    jruoho             {
   9015      1.1    jruoho                 Return (0x41)
   9016      1.1    jruoho             }
   9017      1.1    jruoho 
   9018      1.1    jruoho             If (LNotEqual (Local0, 10))     //  12 - 2 = 10
   9019      1.1    jruoho             {
   9020      1.1    jruoho                 Return (0x42)
   9021      1.1    jruoho             }
   9022      1.1    jruoho 
   9023      1.1    jruoho             Store ("SizeOf(Index(BUFR,,)) PASS", Debug)
   9024      1.1    jruoho 
   9025      1.1    jruoho             //  TBD:    strings and packages
   9026      1.1    jruoho 
   9027      1.1    jruoho             Return (0)
   9028      1.1    jruoho         }   //  SIND:   SizeOf(Index(,,)) test control method
   9029      1.1    jruoho         ****************************************************/
   9030      1.1    jruoho 
   9031  1.1.1.3  christos         Method (SLOC,, Serialized)
   9032      1.1    jruoho         {   //  SLOC:   SizeOf(Local) test control method
   9033      1.1    jruoho             Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
   9034      1.1    jruoho             Name (STR0, "String")
   9035      1.1    jruoho             Name (PKG0, Package (4) {}) //  uninitialized Package
   9036      1.1    jruoho 
   9037      1.1    jruoho 
   9038      1.1    jruoho             //  store BUFR Buffer into Local2
   9039      1.1    jruoho             Store (BUFR, Local2)
   9040      1.1    jruoho 
   9041      1.1    jruoho             //  store size of BUFR buffer into Local0
   9042      1.1    jruoho             Store (SizeOf (Local2), Local0)
   9043      1.1    jruoho 
   9044      1.1    jruoho             //  save Local0 object type value into Local1
   9045      1.1    jruoho             Store (ObjectType (Local0), Local1)
   9046      1.1    jruoho 
   9047      1.1    jruoho             //  validate Local0 is a Number
   9048      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9049      1.1    jruoho             {
   9050      1.1    jruoho                 Return (0x51)
   9051      1.1    jruoho             }
   9052      1.1    jruoho 
   9053      1.1    jruoho             If (LNotEqual (Local0, 12)) //  BUFR size is 12
   9054      1.1    jruoho             {
   9055      1.1    jruoho                 Return (0x52)
   9056      1.1    jruoho             }
   9057      1.1    jruoho 
   9058      1.1    jruoho             Store ("SizeOf(Local2=Buffer) PASS", Debug)
   9059      1.1    jruoho 
   9060      1.1    jruoho 
   9061      1.1    jruoho             //  store STR0 string into Local2
   9062      1.1    jruoho             Store (STR0, Local2)
   9063      1.1    jruoho 
   9064      1.1    jruoho             //  store size of STR0 buffer into Local0
   9065      1.1    jruoho             Store (SizeOf (Local2), Local0)
   9066      1.1    jruoho 
   9067      1.1    jruoho             //  save Local0 object type value into Local1
   9068      1.1    jruoho             Store (ObjectType (Local0), Local1)
   9069      1.1    jruoho 
   9070      1.1    jruoho             //  validate Local0 is a Number
   9071      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9072      1.1    jruoho             {
   9073      1.1    jruoho                 Return (0x53)
   9074      1.1    jruoho             }
   9075      1.1    jruoho 
   9076      1.1    jruoho             If (LNotEqual (Local0, 6))      //  STR0 size is 6
   9077      1.1    jruoho             {
   9078      1.1    jruoho                 Return (0x54)
   9079      1.1    jruoho             }
   9080      1.1    jruoho 
   9081      1.1    jruoho             Store ("SizeOf(Local2=String) PASS", Debug)
   9082      1.1    jruoho 
   9083      1.1    jruoho 
   9084      1.1    jruoho             //  store PKG0 Package into Local2
   9085      1.1    jruoho             Store (PKG0, Local2)
   9086      1.1    jruoho 
   9087      1.1    jruoho             //  store size of PKG0 buffer into Local0
   9088      1.1    jruoho             Store (SizeOf (Local2), Local0)
   9089      1.1    jruoho 
   9090      1.1    jruoho             //  save Local0 object type value into Local1
   9091      1.1    jruoho             Store (ObjectType (Local0), Local1)
   9092      1.1    jruoho 
   9093      1.1    jruoho             //  validate Local0 is a Number
   9094      1.1    jruoho             If (LNotEqual (Local1, 1))      //  Number type is 1
   9095      1.1    jruoho             {
   9096      1.1    jruoho                 Return (0x55)
   9097      1.1    jruoho             }
   9098      1.1    jruoho 
   9099      1.1    jruoho             If (LNotEqual (Local0, 4))      //  PKG0 size is 4
   9100      1.1    jruoho             {
   9101      1.1    jruoho                 Return (0x56)
   9102      1.1    jruoho             }
   9103      1.1    jruoho 
   9104      1.1    jruoho             Store ("SizeOf(Local2=Package) PASS", Debug)
   9105      1.1    jruoho 
   9106      1.1    jruoho 
   9107      1.1    jruoho             Return (0)
   9108      1.1    jruoho         }   //  SLOC:   SizeOf(Local) test control method
   9109      1.1    jruoho 
   9110      1.1    jruoho         Method (TEST)
   9111      1.1    jruoho         {
   9112      1.1    jruoho             Store ("++++++++ SizeOf Test", Debug)
   9113      1.1    jruoho 
   9114      1.1    jruoho             //  Store current operating system string into Local0
   9115      1.1    jruoho             Store (_OS, Local0)
   9116      1.1    jruoho 
   9117      1.1    jruoho             Store (SizeOf (_OS), Local3)
   9118      1.1    jruoho 
   9119      1.1    jruoho             //  save Local3 object type value into Local4
   9120      1.1    jruoho             Store (ObjectType (Local3), Local4)
   9121      1.1    jruoho 
   9122      1.1    jruoho             //  validate Local3 is a Number
   9123      1.1    jruoho             If (LNotEqual (Local4, 1))  //  Number type is 1
   9124      1.1    jruoho             {
   9125      1.1    jruoho                 //  failure
   9126      1.1    jruoho                 Return (0x61)
   9127      1.1    jruoho             }
   9128      1.1    jruoho 
   9129      1.1    jruoho             //  Store current operating system string into Local0
   9130      1.1    jruoho             //  This verifies above SizeOf(_OS) did not corrupt ACPI namespace
   9131      1.1    jruoho             Store (_OS, Local0)
   9132      1.1    jruoho 
   9133      1.1    jruoho             //  Store SARG [Validate SizeOf(Arg)] return value into Local1
   9134      1.1    jruoho             Store (SARG, Local1)
   9135      1.1    jruoho 
   9136      1.1    jruoho             //  save Local1 object type value into Local2
   9137      1.1    jruoho             Store (ObjectType (Local1), Local2)
   9138      1.1    jruoho 
   9139      1.1    jruoho             //  validate Local1 is a Number
   9140      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9141      1.1    jruoho             {
   9142      1.1    jruoho                 //  failure
   9143      1.1    jruoho                 Return (0x62)
   9144      1.1    jruoho             }
   9145      1.1    jruoho 
   9146      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9147      1.1    jruoho             If (LNotEqual (Local1, 0))
   9148      1.1    jruoho             {
   9149      1.1    jruoho                 //  return SARG error code
   9150      1.1    jruoho                 Return (Local1)
   9151      1.1    jruoho             }
   9152      1.1    jruoho 
   9153      1.1    jruoho 
   9154      1.1    jruoho             //  Store SBUF [Validate SizeOf(Buffer)] return value into Local1
   9155      1.1    jruoho             Store (SBUF, Local1)
   9156      1.1    jruoho 
   9157      1.1    jruoho             //  save Local1 object type value into Local2
   9158      1.1    jruoho             Store (ObjectType (Local1), Local2)
   9159      1.1    jruoho 
   9160      1.1    jruoho             //  validate Local1 is a Number
   9161      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9162      1.1    jruoho             {
   9163      1.1    jruoho                 //  failure
   9164      1.1    jruoho                 Return (0x63)
   9165      1.1    jruoho             }
   9166      1.1    jruoho 
   9167      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9168      1.1    jruoho             If (LNotEqual (Local1, 0))
   9169      1.1    jruoho             {
   9170      1.1    jruoho                 //  return SBUF error code
   9171      1.1    jruoho                 Return (Local1)
   9172      1.1    jruoho             }
   9173      1.1    jruoho 
   9174      1.1    jruoho             /****************************************************
   9175      1.1    jruoho             //
   9176      1.1    jruoho             // This section is commented because it is illegal to
   9177      1.1    jruoho             //  perform a SizeOf operation on a Buffer Field
   9178      1.1    jruoho             //
   9179      1.1    jruoho             //  Store SIND [verify SizeOf(Index(,,))] return value into Local1
   9180      1.1    jruoho             Store (SIND, Local1)
   9181      1.1    jruoho 
   9182      1.1    jruoho             //  save Local1 object type value into Local2
   9183      1.1    jruoho             Store (ObjectType (Local1), Local2)
   9184      1.1    jruoho 
   9185      1.1    jruoho             //  validate Local1 is a Number
   9186      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9187      1.1    jruoho             {
   9188      1.1    jruoho                 //  failure
   9189      1.1    jruoho                 Return (0x64)
   9190      1.1    jruoho             }
   9191      1.1    jruoho 
   9192      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9193      1.1    jruoho             If (LNotEqual (Local1, 0))
   9194      1.1    jruoho             {
   9195      1.1    jruoho                 //  return SARG error code
   9196      1.1    jruoho                 Return (Local1)
   9197      1.1    jruoho             }
   9198      1.1    jruoho             ****************************************************/
   9199      1.1    jruoho 
   9200      1.1    jruoho             //  Store SLOC [verify SizeOf(Local)] return value into Local1
   9201      1.1    jruoho             Store (SLOC, Local1)
   9202      1.1    jruoho 
   9203      1.1    jruoho             //  save Local1 object type value into Local2
   9204      1.1    jruoho             Store (ObjectType (Local1), Local2)
   9205      1.1    jruoho 
   9206      1.1    jruoho             //  validate Local1 is a Number
   9207      1.1    jruoho             If (LNotEqual (Local2, 1))  //  Number type is 1
   9208      1.1    jruoho             {
   9209      1.1    jruoho                 //  failure
   9210      1.1    jruoho                 Return (0x65)
   9211      1.1    jruoho             }
   9212      1.1    jruoho 
   9213      1.1    jruoho             //  zero indicates pass, non-zero is an error code
   9214      1.1    jruoho             If (LNotEqual (Local1, 0))
   9215      1.1    jruoho             {
   9216      1.1    jruoho                 //  return SLOC error code
   9217      1.1    jruoho                 Return (Local1)
   9218      1.1    jruoho             }
   9219      1.1    jruoho 
   9220      1.1    jruoho 
   9221      1.1    jruoho             //  TBD:    SizeOf (METH) -- where METH control method returns
   9222      1.1    jruoho             //              buffer, BufferField, string, package, package element
   9223      1.1    jruoho 
   9224      1.1    jruoho 
   9225      1.1    jruoho             Return (0)
   9226      1.1    jruoho         }   //  TEST
   9227      1.1    jruoho     }   //  SIZO
   9228      1.1    jruoho 
   9229      1.1    jruoho //
   9230      1.1    jruoho // test SmiShare.asl
   9231      1.1    jruoho //
   9232      1.1    jruoho     Scope (\_SB)    //  System Bus
   9233      1.1    jruoho     {   //  _SB system bus
   9234      1.1    jruoho         //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
   9235      1.1    jruoho         OperationRegion(RAM1, SystemMemory, 0x400000, 0xA)
   9236      1.1    jruoho 
   9237      1.1    jruoho         Field (RAM1, AnyAcc, NoLock, Preserve)
   9238      1.1    jruoho         {
   9239      1.1    jruoho             BI1T, 1,        // Create some bits in memory to access
   9240      1.1    jruoho             BI2T, 2,
   9241      1.1    jruoho             BI3T, 3,
   9242      1.1    jruoho             LST2, 2
   9243      1.1    jruoho         }   //  End Field RAM1
   9244      1.1    jruoho 
   9245      1.1    jruoho         Field (RAM1, WordAcc, NoLock, WriteAsZeros)
   9246      1.1    jruoho         {
   9247      1.1    jruoho             WRD, 16
   9248      1.1    jruoho         }   //  End 2nd Field RAM1
   9249      1.1    jruoho 
   9250      1.1    jruoho         Field (RAM1, ByteAcc, NoLock, WriteAsOnes)
   9251      1.1    jruoho         {
   9252      1.1    jruoho             BYTE, 8
   9253      1.1    jruoho         }   //  End 3rd Field RAM1
   9254      1.1    jruoho 
   9255      1.1    jruoho         Field (RAM1, ByteAcc, NoLock, Preserve)
   9256      1.1    jruoho         {
   9257      1.1    jruoho             SMIC, 8,
   9258      1.1    jruoho             SMID, 8
   9259      1.1    jruoho         }
   9260      1.1    jruoho 
   9261      1.1    jruoho         Device (MBIT)
   9262      1.1    jruoho         {
   9263      1.1    jruoho             Method (_INI)
   9264      1.1    jruoho             {
   9265      1.1    jruoho                 Store (0, BI1T)
   9266      1.1    jruoho                 Store (3, BI2T)
   9267      1.1    jruoho                 Store (7, BI3T)
   9268      1.1    jruoho                 Store (0, LST2)
   9269      1.1    jruoho             }   //  End _INI Method
   9270      1.1    jruoho         }   //  End Device MBIT
   9271      1.1    jruoho 
   9272      1.1    jruoho         Device (MWRD)
   9273      1.1    jruoho         {
   9274      1.1    jruoho             Method (_INI)
   9275      1.1    jruoho             {
   9276      1.1    jruoho                 Store (0, WRD)
   9277      1.1    jruoho             }   //  End _INI Method
   9278      1.1    jruoho         }   //  End Device MWRD
   9279      1.1    jruoho 
   9280      1.1    jruoho         Device (MBYT)
   9281      1.1    jruoho         {
   9282      1.1    jruoho             Method (_INI)
   9283      1.1    jruoho             {
   9284      1.1    jruoho                 Store (0, BYTE)
   9285      1.1    jruoho                 Store (0xC, SMIC)
   9286      1.1    jruoho                 Store (0xD, SMID)
   9287      1.1    jruoho             }   //  End _INI Method
   9288      1.1    jruoho         }   //  End Device MBYT
   9289      1.1    jruoho 
   9290      1.1    jruoho     /*
   9291      1.1    jruoho         //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
   9292      1.1    jruoho         OperationRegion(\RAM1, SystemMemory, 0x400000, 0xA)
   9293      1.1    jruoho 
   9294      1.1    jruoho         Field (\RAM1, AnyAcc, NoLock, Preserve)
   9295      1.1    jruoho         {
   9296      1.1    jruoho             BI1T, 1,        // Create some bits in memory to access
   9297      1.1    jruoho             BI2T, 2,
   9298      1.1    jruoho             BI3T, 3,
   9299      1.1    jruoho             LST2, 2
   9300      1.1    jruoho         }   //  End Field RAM1
   9301      1.1    jruoho 
   9302      1.1    jruoho         Field (\RAM1, WordAcc, NoLock, WriteAsZeros)
   9303      1.1    jruoho         {
   9304      1.1    jruoho             WRD, 16
   9305      1.1    jruoho         }   //  End 2nd Field RAM1
   9306      1.1    jruoho 
   9307      1.1    jruoho         Field (\RAM1, ByteAcc, NoLock, WriteAsOnes)
   9308      1.1    jruoho         {
   9309      1.1    jruoho             BYTE, 8
   9310      1.1    jruoho         }   //  End 3rd Field RAM1
   9311      1.1    jruoho 
   9312      1.1    jruoho         Field (\RAM1, ByteAcc, NoLock, Preserve)
   9313      1.1    jruoho         {
   9314      1.1    jruoho             SMIC, 8,
   9315      1.1    jruoho             SMID, 8
   9316      1.1    jruoho         }
   9317      1.1    jruoho     */
   9318      1.1    jruoho         Method (SMIX)
   9319      1.1    jruoho         {
   9320      1.1    jruoho             Return (BYTE)
   9321      1.1    jruoho         }   //  End SMIX
   9322      1.1    jruoho 
   9323      1.1    jruoho         Method (EVNT)
   9324      1.1    jruoho         {
   9325      1.1    jruoho             Store (SMIX, Local0)
   9326      1.1    jruoho 
   9327  1.1.1.3  christos             Notify (\_SB_, 0x29)
   9328      1.1    jruoho             If (And (Local0, 0x01))
   9329      1.1    jruoho             {   Notify (\_SB_.SMIS, 0x21)}
   9330      1.1    jruoho 
   9331      1.1    jruoho             If (And (Local0, 0x02))
   9332      1.1    jruoho             {   Notify (\_SB_.SMIS, 0x22)}
   9333      1.1    jruoho 
   9334      1.1    jruoho             If (And (Local0, 0x04))
   9335      1.1    jruoho             {   Notify (\_SB_.SMIS, 0x24)}
   9336      1.1    jruoho 
   9337      1.1    jruoho             If (And (Local0, 0x08))
   9338      1.1    jruoho             {   Notify (\_SB_.SMIS, 0x28)}
   9339      1.1    jruoho 
   9340      1.1    jruoho         }   //  End Method EVNT
   9341      1.1    jruoho 
   9342  1.1.1.3  christos         Method (NTFY)
   9343  1.1.1.3  christos         {
   9344  1.1.1.3  christos             Notify (\_SB_, 1)
   9345  1.1.1.3  christos             Notify (\_TZ_.TZ1, 2)
   9346  1.1.1.3  christos             Notify (\_PR_.CPU0, 3)
   9347  1.1.1.3  christos 
   9348  1.1.1.3  christos             Notify (\_SB_, 0x81)
   9349  1.1.1.3  christos             Notify (\_TZ_.TZ1, 0x82)
   9350  1.1.1.3  christos             Notify (\_PR_.CPU0, 0x83)
   9351  1.1.1.3  christos         }
   9352  1.1.1.3  christos 
   9353      1.1    jruoho         Device (SMIS)
   9354      1.1    jruoho         {
   9355      1.1    jruoho             Method (BINK)
   9356      1.1    jruoho             {
   9357      1.1    jruoho                 Store (0, Local0)               //  Zero out Local0
   9358      1.1    jruoho 
   9359      1.1    jruoho                 If (LNotEqual (SMID, 0xD))
   9360      1.1    jruoho                 {   Or (0x80, Local0, Local0)}
   9361      1.1    jruoho 
   9362      1.1    jruoho                 If (LNotEqual (SMIC, 0xC))
   9363      1.1    jruoho                 {   Or (0x40, Local0, Local0)}
   9364      1.1    jruoho 
   9365      1.1    jruoho                 If (LNotEqual (BYTE, 0))
   9366      1.1    jruoho                 {   Or (0x20, Local0, Local0)}
   9367      1.1    jruoho 
   9368      1.1    jruoho                 If (LNotEqual (WRD, 0))
   9369      1.1    jruoho                 {   Or (0x10, Local0, Local0)}
   9370      1.1    jruoho 
   9371      1.1    jruoho                 If (LNotEqual (LST2, 0))
   9372      1.1    jruoho                 {   Or (0x8, Local0, Local0)}
   9373      1.1    jruoho 
   9374      1.1    jruoho                 If (LNotEqual (BI3T, 0x7))
   9375      1.1    jruoho                 {   Or (0x4, Local0, Local0)}
   9376      1.1    jruoho 
   9377      1.1    jruoho                 If (LNotEqual (BI2T, 0x3))
   9378      1.1    jruoho                 {   Or (0x2, Local0, Local0)}
   9379      1.1    jruoho 
   9380      1.1    jruoho                 If (LNotEqual (BI1T, 0))
   9381      1.1    jruoho                 {   Or (0x1, Local0, Local0)}
   9382      1.1    jruoho 
   9383      1.1    jruoho                 Return (Local0)
   9384      1.1    jruoho             }   //  End Method BINK
   9385      1.1    jruoho 
   9386      1.1    jruoho             Method (TEST)
   9387      1.1    jruoho             {
   9388      1.1    jruoho                 Store ("++++++++ SmiShare Test", Debug)
   9389      1.1    jruoho 
   9390      1.1    jruoho                 //  Expect EVNT to generate Notify value we just previously
   9391      1.1    jruoho                 //  stored in BYTE
   9392  1.1.1.3  christos 
   9393      1.1    jruoho                 Store (0x20, BYTE)
   9394      1.1    jruoho                 EVNT ()
   9395      1.1    jruoho                 Store (0x21, BYTE)
   9396      1.1    jruoho                 EVNT ()
   9397      1.1    jruoho                 Store (0x22, BYTE)
   9398      1.1    jruoho                 EVNT ()
   9399      1.1    jruoho                 Store (0x23, BYTE)
   9400      1.1    jruoho                 EVNT ()
   9401      1.1    jruoho 
   9402  1.1.1.3  christos                 NTFY ()
   9403      1.1    jruoho                 Return (0)  //  pass
   9404      1.1    jruoho             }   //  End Method TEST
   9405      1.1    jruoho         }   //  Device SMIS
   9406      1.1    jruoho 
   9407      1.1    jruoho         Device(CNDT)
   9408      1.1    jruoho         {
   9409      1.1    jruoho             Method(TEST)
   9410      1.1    jruoho             {
   9411      1.1    jruoho                 If (ECOK)
   9412      1.1    jruoho                 {
   9413      1.1    jruoho                     return("Broken")
   9414      1.1    jruoho                 }
   9415      1.1    jruoho                 Else
   9416      1.1    jruoho                 {
   9417      1.1    jruoho                     return("Works")
   9418      1.1    jruoho                 }
   9419      1.1    jruoho             }
   9420      1.1    jruoho 
   9421      1.1    jruoho             Method(ECOK)
   9422      1.1    jruoho             {
   9423      1.1    jruoho                 Return(0x0)
   9424      1.1    jruoho             }
   9425      1.1    jruoho         }
   9426      1.1    jruoho 
   9427      1.1    jruoho     }   //  _SB system bus
   9428      1.1    jruoho 
   9429      1.1    jruoho 
   9430      1.1    jruoho /* Test a very big buffer */
   9431      1.1    jruoho 
   9432      1.1    jruoho     Name(WQAB, Buffer(6756)
   9433      1.1    jruoho     {
   9434      1.1    jruoho         0x46,0x4F,0x4D,0x42,0x01,0x00,0x00,0x00,
   9435      1.1    jruoho         0x54,0x1A,0x00,0x00,0xBA,0xAD,0x00,0x00,
   9436      1.1    jruoho         0x44,0x53,0x00,0x01,0x1A,0x7D,0xDA,0x54,
   9437      1.1    jruoho         0x98,0xBD,0x92,0x00,0x01,0x06,0x18,0x42,
   9438      1.1    jruoho         0x10,0x47,0x10,0x92,0x46,0x62,0x02,0x89,
   9439      1.1    jruoho         0x80,0x90,0x18,0x18,0x14,0x81,0x85,0x00,
   9440      1.1    jruoho         0x49,0x02,0x88,0xC4,0x41,0xE1,0x20,0xD4,
   9441      1.1    jruoho         0x9F,0x40,0x7E,0x05,0x20,0x74,0x28,0x40,
   9442      1.1    jruoho         0xA6,0x00,0x83,0x02,0x9C,0x22,0x88,0xA0,
   9443      1.1    jruoho         0x57,0x01,0x36,0x05,0x98,0x14,0x60,0x51,
   9444      1.1    jruoho         0x80,0x76,0x01,0x96,0x05,0xE8,0x16,0x20,
   9445      1.1    jruoho         0x1D,0x96,0x88,0x04,0x47,0x89,0x01,0x47,
   9446      1.1    jruoho         0xE9,0xC4,0x16,0x6E,0xD8,0xE0,0x85,0xA2,
   9447      1.1    jruoho         0x68,0x06,0x51,0x12,0x94,0x8B,0x20,0x5D,
   9448      1.1    jruoho         0x10,0x52,0x2E,0xC0,0x37,0x82,0x06,0x10,
   9449      1.1    jruoho         0xA5,0x77,0x01,0xB6,0x05,0x98,0x86,0x27,
   9450      1.1    jruoho         0xD2,0x20,0xE4,0x60,0x08,0x54,0xCE,0x80,
   9451      1.1    jruoho         0x20,0x69,0x44,0x21,0x1E,0xA7,0x44,0x08,
   9452      1.1    jruoho         0x0A,0x84,0x90,0xD4,0xF1,0xA0,0xA0,0x71,
   9453      1.1    jruoho         0x88,0xAD,0xCE,0x46,0x93,0xA9,0x74,0x7E,
   9454      1.1    jruoho         0x48,0x82,0x70,0xC6,0x2A,0x7E,0x3A,0x9A,
   9455      1.1    jruoho         0xD0,0xD9,0x9C,0x60,0xE7,0x18,0x72,0x3C,
   9456      1.1    jruoho         0x48,0xF4,0x20,0xB8,0x00,0x0F,0x1C,0x2C,
   9457      1.1    jruoho         0x34,0x84,0x22,0x6B,0x80,0xC1,0x8C,0xDD,
   9458      1.1    jruoho         0x63,0xB1,0x0B,0x4E,0x0A,0xEC,0x61,0xB3,
   9459      1.1    jruoho         0x01,0x19,0xA2,0x24,0x38,0xD4,0x11,0xC0,
   9460      1.1    jruoho         0x12,0x05,0x98,0x1F,0x87,0x0C,0x0F,0x95,
   9461      1.1    jruoho         0x8C,0x25,0x24,0x1B,0xAB,0x87,0xC2,0xA5,
   9462      1.1    jruoho         0x40,0x68,0x6C,0x27,0xED,0x19,0x45,0x2C,
   9463      1.1    jruoho         0x79,0x4A,0x82,0x49,0xE0,0x51,0x44,0x36,
   9464      1.1    jruoho         0x1A,0x27,0x28,0x1B,0x1A,0x25,0x03,0x42,
   9465      1.1    jruoho         0x9E,0x05,0x58,0x07,0x26,0x04,0x76,0x2F,
   9466      1.1    jruoho         0xC0,0x9A,0x00,0x73,0xB3,0x90,0xB1,0xB9,
   9467      1.1    jruoho         0xE8,0xFF,0x0F,0x71,0xB0,0x31,0xDA,0x9A,
   9468      1.1    jruoho         0xAE,0x90,0xC2,0xC4,0x88,0x12,0x2C,0x5E,
   9469      1.1    jruoho         0xC5,0xC3,0x10,0xCA,0x93,0x42,0xA8,0x48,
   9470      1.1    jruoho         0x95,0xA1,0x68,0xB4,0x51,0x2A,0x14,0xE0,
   9471      1.1    jruoho         0x4C,0x80,0x30,0x5C,0x1D,0x03,0x82,0x46,
   9472      1.1    jruoho         0x88,0x15,0x29,0x56,0xFB,0x83,0x20,0xF1,
   9473      1.1    jruoho         0x2D,0x40,0x54,0x01,0xA2,0x48,0xA3,0x41,
   9474      1.1    jruoho         0x9D,0x03,0x3C,0x5C,0x0F,0xF5,0xF0,0x3D,
   9475      1.1    jruoho         0xF6,0x93,0x0C,0x72,0x90,0x67,0xF1,0xA8,
   9476      1.1    jruoho         0x70,0x9C,0x06,0x49,0xE0,0x0B,0x80,0x4F,
   9477      1.1    jruoho         0x08,0x1E,0x38,0xDE,0x35,0xA0,0x66,0x7C,
   9478      1.1    jruoho         0xBC,0x4C,0x10,0x1C,0x6A,0x88,0x1E,0x68,
   9479      1.1    jruoho         0xB8,0x13,0x38,0x44,0x06,0xE8,0x49,0x3D,
   9480      1.1    jruoho         0x52,0x60,0x07,0x77,0x32,0xEF,0x01,0xAF,
   9481      1.1    jruoho         0x0A,0xCD,0x5E,0x12,0x08,0xC1,0xF1,0xF8,
   9482      1.1    jruoho         0x7E,0xC0,0x26,0x9C,0xC0,0xF2,0x07,0x81,
   9483      1.1    jruoho         0x1A,0x99,0xA1,0x3D,0xCA,0xD3,0x8A,0x19,
   9484      1.1    jruoho         0xF2,0x31,0xC1,0x04,0x16,0x0B,0x21,0x05,
   9485      1.1    jruoho         0x10,0x1A,0x0F,0xF8,0x6F,0x00,0x8F,0x17,
   9486      1.1    jruoho         0xBE,0x12,0xC4,0xF6,0x80,0x12,0x0C,0x0B,
   9487      1.1    jruoho         0x21,0x23,0xAB,0xF0,0x78,0xE8,0x28,0x7C,
   9488      1.1    jruoho         0x95,0x38,0x9C,0xD3,0x8A,0x67,0x82,0xE1,
   9489      1.1    jruoho         0x20,0xF4,0x05,0x90,0x00,0x51,0xE7,0x0C,
   9490      1.1    jruoho         0xD4,0x61,0xC1,0xE7,0x04,0x76,0x33,0x38,
   9491      1.1    jruoho         0x83,0x47,0x00,0x8F,0xE4,0x84,0xFC,0x2B,
   9492      1.1    jruoho         0xF1,0xC0,0xE0,0x03,0xE2,0xEF,0x1F,0xA7,
   9493      1.1    jruoho         0xEC,0x11,0x9C,0xA9,0x01,0x7D,0x1C,0xF0,
   9494      1.1    jruoho         0xFF,0x7F,0x28,0x7C,0x88,0x1E,0xDF,0x29,
   9495      1.1    jruoho         0x1F,0xAF,0x4F,0x17,0x96,0x35,0x4E,0xE8,
   9496      1.1    jruoho         0x77,0x08,0x9F,0x38,0x7C,0x64,0x71,0x44,
   9497      1.1    jruoho         0x08,0x39,0x39,0x05,0xA0,0x81,0x4F,0xF7,
   9498      1.1    jruoho         0xEC,0x22,0x9C,0xAE,0x27,0xE5,0x40,0xC3,
   9499      1.1    jruoho         0xA0,0xE3,0x04,0xC7,0x79,0x00,0x1C,0xE3,
   9500      1.1    jruoho         0x84,0x7F,0x2E,0x80,0x3F,0x40,0x7E,0xCA,
   9501      1.1    jruoho         0x78,0xC5,0x48,0xE0,0x98,0x23,0x44,0x9F,
   9502      1.1    jruoho         0x6B,0x3C,0x42,0x2C,0xFC,0x53,0x45,0xE1,
   9503      1.1    jruoho         0x03,0x21,0x63,0x04,0x17,0xA0,0xC7,0x08,
   9504      1.1    jruoho         0x7C,0x03,0x8E,0x11,0x7D,0x94,0xE0,0xEA,
   9505      1.1    jruoho         0x0F,0x1A,0x74,0x80,0xB8,0xFF,0xFF,0x00,
   9506      1.1    jruoho         0xE1,0x83,0x7A,0x80,0xC0,0x37,0xFA,0xD1,
   9507      1.1    jruoho         0x03,0x3D,0x2E,0x8B,0x3E,0x0F,0xC8,0xF8,
   9508      1.1    jruoho         0x89,0x46,0xF3,0xE2,0xA7,0x03,0x7E,0xF8,
   9509      1.1    jruoho         0x00,0x0F,0xA8,0x87,0x84,0x03,0xC5,0x4C,
   9510      1.1    jruoho         0x9B,0x83,0x3E,0xBB,0x1C,0x3A,0x76,0xB8,
   9511      1.1    jruoho         0xE0,0x3F,0x81,0x80,0x4B,0xDE,0x21,0x0C,
   9512      1.1    jruoho         0x14,0x23,0xC6,0x9F,0x83,0x7C,0x0A,0x03,
   9513      1.1    jruoho         0xFF,0xFF,0xFF,0x14,0x06,0xFE,0xE1,0xF0,
   9514      1.1    jruoho         0x20,0x4F,0x07,0x9F,0xB6,0xA8,0x74,0x18,
   9515      1.1    jruoho         0xD4,0x81,0x0B,0xB0,0x32,0x89,0x08,0xCF,
   9516      1.1    jruoho         0x12,0xB5,0x41,0xE8,0xD4,0xF0,0x36,0xF1,
   9517      1.1    jruoho         0xB6,0xE5,0x5B,0x40,0x9C,0xD3,0xEC,0xED,
   9518      1.1    jruoho         0xC0,0x45,0x30,0x22,0xD4,0x0C,0x45,0x4E,
   9519      1.1    jruoho         0x5A,0x11,0x63,0x44,0x79,0xDC,0x32,0xCA,
   9520      1.1    jruoho         0xDB,0xD6,0x0B,0x40,0xBC,0x13,0x7B,0xDE,
   9521      1.1    jruoho         0x32,0x46,0xF0,0xC8,0x0F,0x5C,0x2C,0xC6,
   9522      1.1    jruoho         0xEA,0xF5,0x5F,0xF3,0x81,0x0B,0x70,0xF6,
   9523      1.1    jruoho         0xFF,0x3F,0x70,0x01,0x1C,0x0A,0x7A,0x18,
   9524      1.1    jruoho         0x42,0x0F,0xC3,0x53,0x39,0x97,0x87,0xC8,
   9525      1.1    jruoho         0x53,0x89,0x18,0x35,0x4C,0xD4,0x67,0x28,
   9526      1.1    jruoho         0xDF,0x2D,0x7C,0x20,0x02,0xDF,0x99,0x0B,
   9527      1.1    jruoho         0xF8,0xFD,0xFF,0x0F,0x44,0x70,0x8E,0x29,
   9528      1.1    jruoho         0xB8,0x33,0x0D,0x78,0x7C,0xCE,0x40,0x20,
   9529      1.1    jruoho         0xA7,0xE2,0x43,0x0D,0x60,0x41,0xF4,0x13,
   9530      1.1    jruoho         0xC2,0x27,0x1A,0x2A,0x13,0x06,0x75,0xA8,
   9531      1.1    jruoho         0x01,0xAC,0x5C,0x61,0x9E,0x46,0xCF,0xF9,
   9532      1.1    jruoho         0x59,0xC6,0xA7,0x1A,0x1F,0x4A,0x8D,0x63,
   9533      1.1    jruoho         0x88,0x97,0x99,0x87,0x1A,0x1F,0x0B,0x5E,
   9534      1.1    jruoho         0x49,0x7D,0xA8,0x31,0x54,0x9C,0x87,0x1A,
   9535      1.1    jruoho         0x0F,0x37,0x50,0xD4,0x37,0x9B,0x67,0x1B,
   9536      1.1    jruoho         0xA3,0xC7,0xF7,0x0D,0xD5,0x10,0x0F,0x35,
   9537      1.1    jruoho         0x4C,0xF2,0x4A,0x35,0x16,0x1F,0x6A,0xC0,
   9538      1.1    jruoho         0xF1,0xFF,0x3F,0xD4,0x00,0xFC,0xFF,0xFF,
   9539      1.1    jruoho         0x1F,0x6A,0x00,0x47,0x47,0x03,0x38,0x47,
   9540      1.1    jruoho         0x46,0xDC,0xD1,0x00,0x5C,0x87,0x52,0xE0,
   9541      1.1    jruoho         0x70,0x34,0x00,0x1E,0x47,0x21,0x30,0x5F,
   9542      1.1    jruoho         0x68,0x7C,0x14,0x02,0x16,0xFF,0xFF,0xA3,
   9543      1.1    jruoho         0x10,0xF8,0x65,0x9F,0x83,0x50,0x42,0x8F,
   9544      1.1    jruoho         0x42,0x80,0xA0,0xDB,0xCF,0x53,0xC4,0xB3,
   9545      1.1    jruoho         0x8F,0x2F,0x3F,0x0F,0x04,0x11,0x5E,0xF3,
   9546      1.1    jruoho         0x7D,0x0A,0xF2,0x21,0xDF,0x47,0x21,0x06,
   9547      1.1    jruoho         0x63,0x28,0x5F,0x83,0x7C,0x14,0x62,0x50,
   9548      1.1    jruoho         0xAF,0x41,0xBE,0xEF,0x1B,0xE4,0xF1,0x22,
   9549      1.1    jruoho         0x48,0xEC,0x67,0x02,0x1F,0x85,0x98,0xE8,
   9550      1.1    jruoho         0xA3,0x10,0xA0,0xF0,0xFF,0x7F,0x14,0x02,
   9551      1.1    jruoho         0xF8,0xFF,0xFF,0x3F,0x0A,0x01,0xCE,0x02,
   9552      1.1    jruoho         0x1C,0x0D,0x40,0x37,0xAD,0x47,0x21,0xF0,
   9553      1.1    jruoho         0xDE,0x59,0x4E,0xFB,0x04,0x7C,0x16,0x02,
   9554      1.1    jruoho         0xCC,0xFE,0xFF,0xCF,0x42,0xC0,0xEC,0x28,
   9555      1.1    jruoho         0x74,0x14,0x67,0xF9,0x2A,0xF4,0x04,0xF0,
   9556      1.1    jruoho         0x02,0x10,0x23,0xCC,0x3B,0xD0,0x4B,0x26,
   9557      1.1    jruoho         0xBB,0x8B,0x1B,0xE7,0xC9,0xE5,0x2C,0x9E,
   9558      1.1    jruoho         0xC4,0x7D,0x09,0xF2,0x81,0xE2,0x59,0xC8,
   9559      1.1    jruoho         0x50,0xA7,0x1B,0xF4,0x8D,0xDC,0x03,0x8B,
   9560      1.1    jruoho         0x19,0x3F,0xC4,0xF3,0x90,0x21,0x9E,0x85,
   9561      1.1    jruoho         0x00,0x76,0xFD,0xFF,0xCF,0x42,0x00,0xFF,
   9562      1.1    jruoho         0xFF,0xFF,0x47,0x03,0xF8,0x2F,0x00,0x9F,
   9563      1.1    jruoho         0x85,0x80,0xE7,0x09,0xE0,0x41,0xDB,0x67,
   9564      1.1    jruoho         0x21,0x80,0x33,0x87,0xCB,0xF3,0x7F,0x05,
   9565      1.1    jruoho         0x3A,0x96,0xF7,0x08,0xCF,0xFA,0x24,0x5F,
   9566      1.1    jruoho         0x2F,0x3D,0xD3,0x87,0x82,0x67,0x21,0x86,
   9567      1.1    jruoho         0x75,0x18,0x3E,0x0B,0x31,0x88,0x17,0x4D,
   9568      1.1    jruoho         0x43,0xBC,0x70,0xFA,0x30,0xE0,0xFF,0x3F,
   9569      1.1    jruoho         0x5E,0xE0,0x57,0x4E,0x03,0x05,0x09,0xF4,
   9570      1.1    jruoho         0x2C,0x04,0x30,0xFE,0xFF,0x7F,0x16,0x02,
   9571      1.1    jruoho         0xC8,0xB8,0x46,0x9D,0x85,0x80,0xE5,0x6D,
   9572      1.1    jruoho         0xE5,0x19,0xDB,0xA7,0x95,0x04,0xFF,0xFF,
   9573      1.1    jruoho         0x67,0x21,0xC0,0x41,0x2E,0x23,0x07,0x21,
   9574      1.1    jruoho         0x4C,0xC4,0x87,0x83,0x8F,0x99,0x80,0x9E,
   9575      1.1    jruoho         0x29,0xBE,0xB8,0x1B,0xE3,0x09,0xE0,0x45,
   9576      1.1    jruoho         0xE2,0x31,0x93,0x1D,0x35,0x0D,0xF3,0x2C,
   9577      1.1    jruoho         0x64,0xBC,0xB3,0x78,0x0D,0x78,0x82,0xF7,
   9578      1.1    jruoho         0xE4,0x9F,0x85,0x18,0xD8,0x61,0x05,0x7B,
   9579      1.1    jruoho         0x14,0x32,0xA8,0xC1,0x63,0x87,0x08,0x13,
   9580      1.1    jruoho         0xE8,0x59,0x88,0xC5,0x7D,0xAE,0xE8,0x3C,
   9581      1.1    jruoho         0xE1,0xB3,0x10,0xF0,0xFE,0xFF,0x9F,0x25,
   9582      1.1    jruoho         0xE0,0x5E,0x0D,0x9E,0x85,0x00,0x13,0x87,
   9583      1.1    jruoho         0x0D,0x9F,0x35,0xC0,0x33,0x7C,0x8F,0xEA,
   9584      1.1    jruoho         0x1C,0x1E,0x8F,0x81,0x7F,0x56,0x1D,0xE7,
   9585      1.1    jruoho         0x04,0x96,0x7B,0xD1,0xB2,0x71,0xA0,0xA1,
   9586      1.1    jruoho         0x23,0xB2,0x3A,0x20,0x8D,0x0D,0x73,0x29,
   9587      1.1    jruoho         0x89,0x7C,0x72,0x6C,0xD4,0x56,0x04,0xA7,
   9588      1.1    jruoho         0x33,0x93,0x4F,0x00,0xD6,0x42,0x21,0x05,
   9589      1.1    jruoho         0x34,0x1A,0x8B,0xE1,0x9D,0xF9,0xE8,0x44,
   9590      1.1    jruoho         0x41,0x0C,0xE8,0xE3,0x90,0x6D,0x1C,0x0A,
   9591      1.1    jruoho         0x50,0x7B,0xD1,0x14,0xC8,0x39,0x07,0xA3,
   9592      1.1    jruoho         0x7F,0x76,0x74,0x36,0xBE,0x13,0x70,0x0D,
   9593      1.1    jruoho         0x10,0x3A,0x25,0x18,0xDA,0x6A,0x04,0xFC,
   9594      1.1    jruoho         0xFF,0x67,0x89,0x01,0x33,0xFE,0x53,0x8C,
   9595      1.1    jruoho         0x09,0x7C,0x8E,0xC1,0x1F,0x0C,0xF0,0x03,
   9596      1.1    jruoho         0x7F,0x31,0xA8,0xFA,0x5E,0xA0,0xFB,0x82,
   9597      1.1    jruoho         0xD5,0xDD,0x64,0x20,0xCC,0xC8,0x04,0xF5,
   9598      1.1    jruoho         0x9D,0x0E,0x40,0x01,0xE4,0x0B,0x81,0xCF,
   9599      1.1    jruoho         0x51,0x0F,0x05,0x6C,0x22,0x21,0xC2,0x44,
   9600      1.1    jruoho         0x33,0x3A,0x62,0xC2,0xA8,0xE8,0x13,0xA6,
   9601      1.1    jruoho         0x20,0x9E,0xB0,0x63,0x4D,0x18,0x3D,0x13,
   9602      1.1    jruoho         0x5F,0x74,0xD8,0x88,0x31,0x21,0xAE,0x1E,
   9603      1.1    jruoho         0xD0,0x26,0x18,0xD4,0x97,0x22,0x58,0x43,
   9604      1.1    jruoho         0xE6,0x63,0xF1,0x05,0x02,0x37,0x65,0x30,
   9605      1.1    jruoho         0xCE,0x89,0x5D,0x13,0x7C,0xD9,0xC1,0xCD,
   9606      1.1    jruoho         0x19,0x8C,0xF0,0x98,0xBB,0x18,0xBF,0x3A,
   9607      1.1    jruoho         0x79,0x74,0xFC,0xA0,0xE0,0x1B,0x0E,0xC3,
   9608      1.1    jruoho         0x7E,0x32,0xF3,0x8C,0xDE,0xCB,0x7C,0x8D,
   9609      1.1    jruoho         0xC3,0xC0,0x7A,0xBC,0x1C,0xD6,0x68,0x61,
   9610      1.1    jruoho         0x0F,0xED,0x3D,0xC4,0xFF,0xFF,0x43,0x8C,
   9611      1.1    jruoho         0xCF,0x13,0xC6,0x08,0xEB,0xDB,0x0B,0x38,
   9612      1.1    jruoho         0xEE,0x59,0xF0,0xEF,0x1A,0xE0,0xB9,0x84,
   9613      1.1    jruoho         0xF8,0xAE,0x01,0x30,0xF0,0xFF,0x7F,0xD7,
   9614      1.1    jruoho         0x00,0x4E,0xD7,0x04,0xDF,0x35,0x80,0xF7,
   9615      1.1    jruoho         0xD0,0x7D,0xD7,0x00,0xAE,0xD9,0xEF,0x1A,
   9616      1.1    jruoho         0xA8,0x63,0x80,0x15,0xDE,0x35,0xA0,0x5D,
   9617      1.1    jruoho         0xD9,0xDE,0xD7,0x9E,0xB0,0xAC,0xE9,0xB2,
   9618      1.1    jruoho         0x81,0x52,0x73,0xD9,0x00,0x14,0xFC,0xFF,
   9619      1.1    jruoho         0x2F,0x1B,0x80,0x01,0x29,0x13,0x46,0x85,
   9620      1.1    jruoho         0x9F,0x30,0x05,0xF1,0x84,0x1D,0xEC,0xB2,
   9621      1.1    jruoho         0x01,0x8A,0x18,0x97,0x0D,0xD0,0x8F,0xED,
   9622      1.1    jruoho         0x65,0x03,0x18,0xDC,0x13,0xF8,0x6D,0x03,
   9623      1.1    jruoho         0x78,0x43,0xFA,0xB6,0x01,0xD6,0xFF,0xFF,
   9624      1.1    jruoho         0x6D,0x03,0xAC,0xF9,0x6F,0x1B,0x28,0x0E,
   9625      1.1    jruoho         0xAB,0xBC,0x6D,0x40,0x3C,0xC9,0x33,0x02,
   9626      1.1    jruoho         0xAB,0xBA,0x6E,0xA0,0xF4,0x5C,0x37,0x00,
   9627      1.1    jruoho         0x12,0x88,0x99,0x30,0x2A,0xFE,0x84,0x29,
   9628      1.1    jruoho         0x88,0x27,0xEC,0x68,0xD7,0x0D,0x50,0x04,
   9629      1.1    jruoho         0xB9,0x6E,0x80,0x7E,0x5E,0x09,0xFE,0xFF,
   9630      1.1    jruoho         0xAF,0x1B,0xC0,0xE0,0xA2,0x80,0xB9,0x6F,
   9631      1.1    jruoho         0x00,0x6F,0x58,0x7E,0xDF,0x00,0x7C,0xDC,
   9632      1.1    jruoho         0xC4,0x31,0xF7,0x0D,0xC0,0xCC,0xFF,0xFF,
   9633      1.1    jruoho         0xBE,0x01,0xB0,0xE7,0xA2,0x80,0xBB,0x6F,
   9634      1.1    jruoho         0x00,0xEF,0x8B,0xB4,0xEF,0x1B,0x60,0xFE,
   9635      1.1    jruoho         0xFF,0xDF,0x37,0xC0,0x28,0x6D,0xFD,0x1E,
   9636      1.1    jruoho         0x1C,0x3D,0x21,0x78,0x7C,0xB8,0xFB,0xA5,
   9637      1.1    jruoho         0xC7,0xE7,0xBB,0x39,0x38,0x06,0x79,0x8C,
   9638      1.1    jruoho         0x87,0x76,0xC0,0xAF,0xEF,0x9E,0x98,0xEF,
   9639      1.1    jruoho         0xE6,0xC0,0xFF,0x4C,0x70,0x3C,0x18,0x68,
   9640      1.1    jruoho         0x1C,0x62,0xAB,0x97,0x06,0x72,0x34,0x38,
   9641      1.1    jruoho         0x3F,0xDC,0x19,0x81,0x61,0x15,0x7F,0xF2,
   9642      1.1    jruoho         0x47,0x38,0xC7,0xD0,0xD9,0xE1,0x20,0xB1,
   9643      1.1    jruoho         0x83,0xE0,0xC1,0x56,0x6D,0x02,0x85,0x86,
   9644      1.1    jruoho         0x50,0x14,0x18,0x14,0x8B,0x0F,0x18,0xF8,
   9645      1.1    jruoho         0x61,0xB3,0xB3,0x00,0x93,0x04,0x87,0x3A,
   9646      1.1    jruoho         0x02,0xF8,0x3E,0xD1,0xFC,0x38,0x74,0x37,
   9647      1.1    jruoho         0x38,0x54,0x8F,0xE5,0xA1,0x80,0x9E,0x01,
   9648      1.1    jruoho         0x71,0xC7,0x0C,0x32,0x69,0xCF,0x28,0xE2,
   9649      1.1    jruoho         0x53,0xC2,0x29,0x85,0x49,0xE0,0xF3,0x03,
   9650      1.1    jruoho         0x43,0xE3,0x04,0xAF,0x0D,0xA1,0xF9,0xFF,
   9651      1.1    jruoho         0xFF,0xA4,0xC0,0x3C,0xDF,0x31,0x04,0x6C,
   9652      1.1    jruoho         0x02,0xBB,0xBF,0x64,0xC8,0xDA,0xC0,0x75,
   9653      1.1    jruoho         0x4B,0x32,0x44,0x6F,0x38,0xB2,0x85,0xA2,
   9654      1.1    jruoho         0xE9,0x44,0x79,0xDF,0x88,0x62,0x67,0x08,
   9655      1.1    jruoho         0xC2,0x88,0x12,0x2C,0xC8,0xA3,0x42,0xAC,
   9656      1.1    jruoho         0x28,0x2F,0x05,0x46,0x88,0x18,0xE2,0x95,
   9657      1.1    jruoho         0x23,0xD0,0x09,0x87,0x0F,0xF2,0xD8,0x14,
   9658      1.1    jruoho         0xA7,0xFD,0x41,0x90,0x58,0x4F,0x02,0x8D,
   9659      1.1    jruoho         0xC5,0x91,0x46,0x83,0x3A,0x07,0x78,0xB8,
   9660      1.1    jruoho         0x3E,0xC4,0x78,0xF8,0x0F,0x21,0x06,0x39,
   9661      1.1    jruoho         0xC8,0x73,0x7B,0x54,0x38,0x4E,0x5F,0x25,
   9662      1.1    jruoho         0x4C,0xF0,0x02,0xE0,0x83,0x0A,0x1C,0xD7,
   9663      1.1    jruoho         0x80,0x9A,0xF1,0x33,0x06,0x58,0x8E,0xE3,
   9664      1.1    jruoho         0x3E,0xA9,0xC0,0x1D,0x8F,0xEF,0x07,0x6C,
   9665      1.1    jruoho         0xC2,0x09,0x2C,0x7F,0x10,0xA8,0xE3,0x0C,
   9666      1.1    jruoho         0x9F,0xE7,0x0B,0x8B,0x21,0x1F,0x13,0x4C,
   9667      1.1    jruoho         0x60,0xB1,0x27,0x1B,0x3A,0x1E,0xF0,0xDF,
   9668      1.1    jruoho         0x63,0x1E,0x2F,0x7C,0x32,0xF1,0x7C,0x4D,
   9669      1.1    jruoho         0x30,0x22,0x84,0x9C,0x8C,0x07,0x7D,0x87,
   9670      1.1    jruoho         0xC0,0x5C,0x6F,0xD8,0xB9,0x85,0x8B,0x3A,
   9671      1.1    jruoho         0x68,0xA0,0x4E,0x0B,0x3E,0x28,0xB0,0x9B,
   9672      1.1    jruoho         0x11,0xE6,0xB8,0xCE,0xCF,0x2A,0x60,0xF8,
   9673      1.1    jruoho         0xFF,0x9F,0x55,0x60,0x8F,0x10,0xFE,0xED,
   9674      1.1    jruoho         0xC1,0xF3,0xF2,0x95,0xE1,0xD5,0x21,0x81,
   9675      1.1    jruoho         0x43,0x8E,0x10,0x3D,0x2E,0x8F,0x10,0x73,
   9676      1.1    jruoho         0x3E,0xC2,0x0C,0x11,0x5C,0x67,0x01,0x70,
   9677      1.1    jruoho         0x0C,0x11,0xF8,0x1C,0x70,0xC0,0x71,0x69,
   9678      1.1    jruoho         0xE2,0x03,0xF5,0x01,0x07,0x70,0x70,0x4D,
   9679      1.1    jruoho         0xC3,0x1D,0x70,0xC0,0x71,0x16,0x60,0xFF,
   9680      1.1    jruoho         0xFF,0xC3,0x0D,0x2C,0x49,0x26,0x0E,0x23,
   9681      1.1    jruoho         0x18,0x11,0x30,0x28,0x02,0x02,0xA4,0xB3,
   9682      1.1    jruoho         0x80,0x0F,0x29,0x00,0x1F,0xAE,0x0C,0x0F,
   9683      1.1    jruoho         0x29,0xD8,0x93,0x86,0x07,0x8E,0x1B,0x85,
   9684      1.1    jruoho         0x07,0x8D,0x0B,0x30,0x68,0x7A,0xE2,0x80,
   9685      1.1    jruoho         0x7F,0x4C,0xF0,0x19,0x05,0x1C,0xE3,0x06,
   9686      1.1    jruoho         0xDF,0x2A,0x0C,0xFC,0xFF,0x3F,0x30,0xCC,
   9687      1.1    jruoho         0xE1,0xC2,0x63,0x39,0x8A,0xA0,0x07,0x1E,
   9688      1.1    jruoho         0xD4,0xF7,0x8C,0x33,0xF7,0x24,0x8F,0xD1,
   9689      1.1    jruoho         0x51,0x0F,0x27,0xF4,0xE4,0x85,0x3B,0x57,
   9690      1.1    jruoho         0xF9,0x0A,0x71,0x14,0x18,0xB8,0x77,0x29,
   9691      1.1    jruoho         0x8F,0xCF,0x17,0x2B,0xC3,0x63,0x46,0xFB,
   9692      1.1    jruoho         0x1E,0x72,0xD6,0x11,0x02,0xE2,0x2F,0x75,
   9693      1.1    jruoho         0x6C,0xC0,0x60,0x39,0x18,0x00,0x87,0x01,
   9694      1.1    jruoho         0xE3,0x13,0x0D,0x58,0x67,0x1B,0x3C,0xF4,
   9695      1.1    jruoho         0x69,0x31,0xC4,0xE3,0x0B,0xFB,0x56,0x61,
   9696      1.1    jruoho         0x82,0xEA,0x41,0x75,0x12,0xF4,0xD0,0xC0,
   9697      1.1    jruoho         0x01,0xE8,0xA1,0xC1,0x3F,0xB9,0x90,0xFB,
   9698      1.1    jruoho         0x2B,0x1D,0x82,0xB5,0xE2,0x69,0xDE,0x47,
   9699      1.1    jruoho         0x1E,0xF3,0xDC,0xA2,0xBC,0x0D,0x3C,0x07,
   9700      1.1    jruoho         0xF0,0xD3,0x82,0x87,0xE3,0x63,0x81,0xC7,
   9701      1.1    jruoho         0xE9,0x4B,0x58,0x82,0xF7,0x1A,0x9F,0x6C,
   9702      1.1    jruoho         0x1E,0x5C,0x58,0xB2,0x21,0xA0,0x06,0xEB,
   9703      1.1    jruoho         0x21,0x60,0xA6,0x9A,0xC0,0x49,0x46,0x80,
   9704      1.1    jruoho         0xCA,0x00,0xA1,0x1B,0xCB,0xE9,0x3E,0x8B,
   9705      1.1    jruoho         0x84,0x38,0xCD,0x47,0x99,0xC7,0x02,0x8F,
   9706      1.1    jruoho         0xF5,0xC1,0xC0,0xFF,0x7F,0xCD,0x23,0xD4,
   9707      1.1    jruoho         0x7D,0xCD,0x33,0x7B,0x3A,0xC0,0xAC,0x22,
   9708      1.1    jruoho         0xDC,0x7B,0xCE,0x1B,0x86,0xD1,0x9E,0x2D,
   9709      1.1    jruoho         0x7C,0xCD,0x78,0xD6,0x34,0x42,0x38,0x76,
   9710      1.1    jruoho         0x83,0xF3,0x48,0x8C,0xF0,0x82,0xC0,0x4E,
   9711      1.1    jruoho         0x0C,0x0F,0x30,0xC6,0x39,0x79,0xC3,0xFA,
   9712      1.1    jruoho         0xC2,0xCB,0x40,0x83,0x19,0xDB,0x97,0x01,
   9713      1.1    jruoho         0x36,0x2A,0xDF,0x88,0xC0,0x97,0xFC,0x62,
   9714      1.1    jruoho         0x00,0x65,0x16,0xBE,0x9E,0xF8,0xA0,0xC4,
   9715      1.1    jruoho         0x2E,0x06,0x2C,0xE5,0xC5,0x00,0x54,0x37,
   9716      1.1    jruoho         0x0C,0x5F,0x0C,0xE0,0x5F,0x89,0x5E,0x0C,
   9717      1.1    jruoho         0xC0,0x70,0x71,0xF2,0x3D,0xC0,0x1E,0xEE,
   9718      1.1    jruoho         0xA3,0x74,0x9C,0xBE,0xFD,0xBD,0x19,0xF8,
   9719      1.1    jruoho         0x6C,0xC0,0x60,0x3C,0xC3,0x30,0xC6,0x08,
   9720      1.1    jruoho         0xE3,0x51,0x86,0x31,0xC1,0xDC,0xB7,0x03,
   9721      1.1    jruoho         0xE8,0x39,0x87,0x81,0x4A,0x78,0x3B,0x80,
   9722      1.1    jruoho         0x72,0x0E,0xE8,0xF2,0x68,0x42,0x4F,0x01,
   9723      1.1    jruoho         0x4F,0x07,0x3E,0x29,0x1A,0xA2,0xAF,0xB1,
   9724      1.1    jruoho         0x0A,0x26,0x50,0xC4,0x07,0x0D,0x3E,0xB5,
   9725      1.1    jruoho         0x28,0x3E,0x15,0x78,0x2D,0xCF,0x4E,0xE1,
   9726      1.1    jruoho         0xE2,0x9C,0x89,0xA7,0x6A,0x38,0x03,0xBD,
   9727      1.1    jruoho         0xE6,0x86,0x63,0xFF,0x7F,0x38,0xFC,0xA9,
   9728      1.1    jruoho         0xE0,0x35,0x80,0x1D,0x24,0x3D,0x2D,0x23,
   9729      1.1    jruoho         0xC2,0x38,0xA4,0x3C,0x32,0xF8,0xB6,0x18,
   9730      1.1    jruoho         0xC7,0x90,0x0F,0x91,0xBE,0x13,0x18,0xF2,
   9731      1.1    jruoho         0x21,0xEF,0x79,0xC7,0xC0,0xAF,0x08,0x71,
   9732      1.1    jruoho         0x9E,0xB2,0x7C,0x67,0xF0,0x65,0x01,0x7C,
   9733      1.1    jruoho         0x91,0x2E,0x0B,0x68,0x68,0x9F,0x64,0x7C,
   9734      1.1    jruoho         0x41,0x30,0xEC,0x89,0xB3,0x00,0x77,0x05,
   9735      1.1    jruoho         0x50,0x81,0xFA,0xAE,0x00,0xFF,0x42,0xF0,
   9736      1.1    jruoho         0xAE,0x00,0x86,0x79,0xF9,0x56,0xC0,0x35,
   9737      1.1    jruoho         0x1D,0x4A,0xD0,0x67,0x12,0x5F,0x17,0x70,
   9738      1.1    jruoho         0x53,0x64,0xA9,0x8E,0x0A,0xD0,0x53,0x4C,
   9739      1.1    jruoho         0x02,0x75,0x47,0xF7,0x51,0x01,0xC6,0x4D,
   9740      1.1    jruoho         0xD9,0x07,0x54,0x76,0x5A,0x60,0x67,0x21,
   9741      1.1    jruoho         0x76,0x1D,0xC1,0x5D,0x49,0x18,0xCA,0xB3,
   9742      1.1    jruoho         0x81,0x2F,0x59,0xFC,0x70,0x00,0x03,0xDC,
   9743      1.1    jruoho         0xB3,0x38,0xC4,0x08,0xB1,0xD9,0x81,0xEB,
   9744      1.1    jruoho         0x75,0xD2,0x70,0x2F,0x44,0xEC,0xFF,0x7F,
   9745      1.1    jruoho         0x32,0x00,0xE3,0x51,0x1B,0x1C,0x27,0x9D,
   9746      1.1    jruoho         0xF0,0x91,0x9E,0x59,0xF8,0x49,0x19,0x30,
   9747      1.1    jruoho         0x71,0xF2,0x03,0xE3,0xC9,0x1A,0xC6,0x00,
   9748      1.1    jruoho         0xB8,0xBC,0x57,0x95,0x81,0xFC,0x43,0x90,
   9749      1.1    jruoho         0x20,0x18,0xD4,0x29,0x19,0x38,0x1C,0xC5,
   9750      1.1    jruoho         0x70,0xA7,0x64,0x78,0x50,0xF8,0xC3,0x00,
   9751      1.1    jruoho         0xE6,0x46,0xE8,0x7B,0x82,0xA1,0xDE,0x93,
   9752      1.1    jruoho         0x0E,0xE3,0x91,0xD0,0x04,0x3E,0x2D,0xC3,
   9753      1.1    jruoho         0xFA,0xFF,0x9F,0x96,0x81,0xD5,0xB1,0xDD,
   9754      1.1    jruoho         0x43,0xF6,0x59,0x01,0x77,0x76,0x80,0x3B,
   9755      1.1    jruoho         0x3D,0x7E,0x7A,0x00,0x9C,0x00,0x3D,0x3D,
   9756      1.1    jruoho         0x80,0xED,0xBC,0x01,0xF7,0x40,0x80,0x38,
   9757      1.1    jruoho         0xFE,0xA3,0x82,0x5F,0x59,0x28,0x1C,0x3F,
   9758      1.1    jruoho         0xB6,0xF3,0x63,0x09,0xEE,0x70,0xE0,0x23,
   9759      1.1    jruoho         0x83,0x0F,0x90,0xB8,0xA1,0xF8,0x50,0x81,
   9760      1.1    jruoho         0x3C,0x0B,0x80,0x62,0xF4,0x6C,0x04,0xEC,
   9761      1.1    jruoho         0x06,0xF3,0xD2,0x12,0xE5,0xFF,0xFF,0xDE,
   9762      1.1    jruoho         0xC0,0x4E,0x29,0xB8,0x83,0x00,0xF8,0x8E,
   9763      1.1    jruoho         0x01,0xE0,0x1D,0x0C,0x97,0x35,0x66,0x94,
   9764      1.1    jruoho         0x10,0x18,0x8D,0x19,0x77,0x08,0xE1,0x27,
   9765      1.1    jruoho         0x02,0xDC,0x98,0x3D,0x6E,0x8F,0x19,0x77,
   9766      1.1    jruoho         0x9C,0xE5,0xA3,0x7A,0xCA,0x08,0xE5,0x03,
   9767      1.1    jruoho         0x07,0x3B,0x67,0xBC,0x11,0xF0,0xA1,0x03,
   9768      1.1    jruoho         0x8F,0x03,0x0C,0xEE,0x48,0x01,0xC6,0xCB,
   9769      1.1    jruoho         0x01,0x1B,0x3B,0xB8,0x83,0x90,0x53,0x20,
   9770      1.1    jruoho         0x4B,0x87,0xD1,0xD8,0x71,0xB2,0x81,0x74,
   9771      1.1    jruoho         0x8C,0xF1,0x21,0xD7,0x63,0xC7,0x0D,0xD6,
   9772      1.1    jruoho         0x63,0xC7,0x1D,0x5F,0xB0,0xFF,0xFF,0xE3,
   9773      1.1    jruoho         0x0B,0x18,0xC6,0xC0,0xC5,0x0F,0x03,0x7D,
   9774      1.1    jruoho         0xF3,0xF3,0xE8,0x0C,0xEE,0x61,0xFB,0x04,
   9775      1.1    jruoho         0x13,0xE3,0xF9,0x25,0xC4,0x23,0xCC,0x8B,
   9776      1.1    jruoho         0x4B,0x84,0xA3,0x08,0xF2,0xE6,0x12,0xE7,
   9777      1.1    jruoho         0xD5,0x20,0xCC,0x63,0x4B,0x94,0x10,0x11,
   9778      1.1    jruoho         0x0E,0x26,0xCE,0x13,0x8C,0x11,0x0E,0x3C,
   9779      1.1    jruoho         0x8A,0x21,0x22,0x9C,0x40,0x88,0x93,0x3E,
   9780      1.1    jruoho         0xD9,0x20,0xE1,0x63,0x84,0x8D,0xF6,0x04,
   9781      1.1    jruoho         0xC3,0xC7,0xC2,0xCF,0x2B,0x1E,0x3C,0x3F,
   9782      1.1    jruoho         0xAD,0xF9,0x2E,0xE8,0xC9,0x9C,0xE3,0x43,
   9783      1.1    jruoho         0x96,0xA7,0xF6,0x38,0xE9,0xC3,0x2C,0x6E,
   9784      1.1    jruoho         0x50,0x0F,0x8E,0xEC,0xAE,0xE3,0xE3,0x35,
   9785      1.1    jruoho         0xF6,0x14,0xE4,0x21,0xF0,0x13,0x81,0x2F,
   9786      1.1    jruoho         0x88,0x9E,0xAC,0xEF,0x7A,0xEC,0x5E,0x66,
   9787      1.1    jruoho         0x8C,0xEA,0xA7,0x80,0x3A,0xA6,0x9C,0xC1,
   9788      1.1    jruoho         0x2B,0x04,0xBB,0xE7,0xF9,0x90,0xED,0xBB,
   9789      1.1    jruoho         0x24,0x1B,0x05,0xEE,0x90,0xE0,0x33,0x12,
   9790      1.1    jruoho         0x3F,0x55,0x78,0x18,0x1E,0x05,0x8C,0x19,
   9791      1.1    jruoho         0xBC,0x23,0x1C,0x5A,0x88,0x03,0x7E,0xDF,
   9792      1.1    jruoho         0x65,0x43,0x8D,0x71,0x7A,0x3E,0x7F,0xB0,
   9793      1.1    jruoho         0x41,0xC0,0x87,0x3A,0x54,0x0F,0xF3,0xA8,
   9794      1.1    jruoho         0x5E,0x0A,0x19,0xCE,0xD9,0xC1,0x1D,0x04,
   9795      1.1    jruoho         0xF6,0xF8,0xE1,0x41,0xF0,0x9B,0x25,0x1F,
   9796      1.1    jruoho         0x04,0x3B,0xDF,0xBC,0xC1,0x19,0xE4,0xFF,
   9797      1.1    jruoho         0x7F,0x0C,0xB0,0xCF,0x54,0x3E,0x9A,0x20,
   9798      1.1    jruoho         0x8E,0x80,0xE8,0xF3,0x87,0xC7,0xF0,0x26,
   9799      1.1    jruoho         0xC7,0x87,0x83,0x3D,0x7A,0xE0,0x4E,0x22,
   9800      1.1    jruoho         0x70,0x8F,0x5D,0x07,0xED,0x6B,0x9C,0x2F,
   9801      1.1    jruoho         0x5A,0x30,0xEE,0x7B,0xCF,0x22,0xE0,0xC7,
   9802      1.1    jruoho         0x78,0x6C,0x01,0xC7,0xA1,0x04,0xDC,0xC1,
   9803      1.1    jruoho         0x8E,0x6B,0x1C,0x42,0x51,0x60,0x74,0x28,
   9804      1.1    jruoho         0xC1,0xC5,0x00,0x12,0x8C,0x63,0x9C,0xD1,
   9805      1.1    jruoho         0xD0,0x97,0x48,0x1F,0xD2,0xE0,0x0C,0x1A,
   9806      1.1    jruoho         0xF6,0x3C,0x9F,0x50,0xB8,0x3D,0x01,0x8A,
   9807      1.1    jruoho         0x4E,0x28,0x20,0xC3,0x7D,0x06,0xC1,0x9E,
   9808      1.1    jruoho         0x10,0xF8,0x19,0x84,0xFD,0xFF,0x0F,0x8E,
   9809      1.1    jruoho         0x1E,0xF7,0x7B,0xA3,0x4F,0x8D,0x6C,0xEE,
   9810      1.1    jruoho         0x0F,0x01,0x27,0x70,0xEE,0xEC,0xD4,0x8C,
   9811      1.1    jruoho         0x3B,0x33,0x60,0xCF,0x1F,0x1E,0x02,0x3F,
   9812      1.1    jruoho         0x17,0x78,0xF8,0x1E,0x02,0x7E,0xF0,0x0F,
   9813      1.1    jruoho         0xCC,0x06,0x07,0xE3,0x29,0xC2,0xD7,0x0E,
   9814      1.1    jruoho         0x0E,0xCE,0x4F,0x03,0x06,0xE7,0xAF,0x50,
   9815      1.1    jruoho         0x9F,0xE7,0x19,0x38,0xF6,0xD4,0xEB,0x7B,
   9816      1.1    jruoho         0x87,0xE7,0xEB,0x43,0x05,0xFE,0xA6,0xE7,
   9817      1.1    jruoho         0x43,0x05,0x38,0x0E,0x0F,0xFC,0xB0,0xC2,
   9818      1.1    jruoho         0x86,0xF0,0x28,0x80,0x3F,0xB5,0xF8,0xF8,
   9819      1.1    jruoho         0x17,0xE7,0x29,0x82,0xDD,0x46,0xB0,0x87,
   9820      1.1    jruoho         0x0B,0xC0,0x51,0xB4,0xB3,0x18,0x2A,0xCC,
   9821      1.1    jruoho         0x59,0x8C,0xFC,0xFF,0xCF,0x51,0xA8,0xB3,
   9822      1.1    jruoho         0x18,0x3D,0x5C,0x00,0x2E,0x04,0x1F,0x0F,
   9823      1.1    jruoho         0x40,0x73,0x10,0x78,0x5C,0xF0,0x85,0xE0,
   9824      1.1    jruoho         0x48,0x0E,0xE4,0xE9,0x00,0xF0,0x19,0x4A,
   9825      1.1    jruoho         0xC3,0xA1,0x09,0x13,0x03,0x06,0x75,0x3E,
   9826      1.1    jruoho         0xF0,0x09,0xC5,0xC7,0x0E,0x7E,0x36,0xF0,
   9827      1.1    jruoho         0x8D,0xDC,0x43,0xE5,0xA7,0x66,0x5F,0xF2,
   9828      1.1    jruoho         0x11,0xE0,0x02,0x75,0xA0,0x61,0xA0,0x46,
   9829      1.1    jruoho         0xE4,0x23,0xD2,0xFF,0xFF,0xB9,0x0D,0x1B,
   9830      1.1    jruoho         0x60,0x68,0xF4,0x1C,0x0E,0xE3,0x80,0xEB,
   9831      1.1    jruoho         0x73,0x38,0x76,0x40,0x3E,0x87,0xC3,0x3F,
   9832      1.1    jruoho         0x47,0xC3,0x1F,0x1B,0x3B,0xDD,0xF3,0x81,
   9833      1.1    jruoho         0xC1,0xBA,0x7E,0x63,0x06,0x06,0xB6,0x6F,
   9834      1.1    jruoho         0x91,0x07,0x06,0x1C,0x51,0xCF,0xC6,0x57,
   9835      1.1    jruoho         0x08,0x0F,0x0C,0x6C,0x80,0x1E,0x18,0xF0,
   9836      1.1    jruoho         0x89,0x05,0x21,0x27,0x03,0x43,0x9D,0x32,
   9837      1.1    jruoho         0x8C,0x1C,0xF3,0x89,0xC3,0xC3,0xF0,0xA1,
   9838      1.1    jruoho         0x22,0xEA,0x33,0xC0,0x23,0x1E,0x1B,0x1B,
   9839      1.1    jruoho         0xFB,0xFF,0x8F,0x0D,0x2C,0xC7,0x16,0x8F,
   9840      1.1    jruoho         0x0D,0xFC,0x47,0x78,0xFC,0xD8,0xE0,0x8C,
   9841      1.1    jruoho         0xE5,0xD1,0xC4,0x97,0x99,0x23,0x3B,0x8D,
   9842      1.1    jruoho         0x33,0x7B,0x0D,0xF1,0xD1,0xEE,0xF1,0xDB,
   9843      1.1    jruoho         0x63,0x03,0x97,0x85,0xB1,0x01,0xA5,0x90,
   9844      1.1    jruoho         0x63,0x43,0x1F,0x52,0x7C,0x0A,0xB0,0x71,
   9845      1.1    jruoho         0x54,0x32,0x0F,0x1F,0xAF,0x7C,0x62,0x38,
   9846      1.1    jruoho         0xBA,0x20,0x6F,0xE8,0xBE,0x5C,0xF8,0x48,
   9847      1.1    jruoho         0x63,0x30,0x5F,0x5A,0x7C,0x06,0xE5,0x43,
   9848      1.1    jruoho         0x04,0xD7,0x57,0xC5,0x43,0x04,0x3E,0xA1,
   9849      1.1    jruoho         0x86,0x88,0x1E,0xCF,0xFF,0xFF,0x11,0xCC,
   9850      1.1    jruoho         0x43,0x64,0x43,0x03,0xAF,0x87,0xA1,0x01,
   9851      1.1    jruoho         0xA5,0x98,0xC0,0x5E,0x85,0x87,0x46,0x4F,
   9852      1.1    jruoho         0x3F,0x3E,0x04,0x30,0x08,0xDF,0x06,0xD8,
   9853      1.1    jruoho         0x55,0xC0,0x57,0x21,0x83,0x24,0x18,0xE7,
   9854      1.1    jruoho         0x64,0x41,0x07,0x07,0x8E,0x21,0x79,0x70,
   9855      1.1    jruoho         0xF0,0x07,0xE3,0x21,0x70,0x60,0xCF,0xE0,
   9856      1.1    jruoho         0xB9,0xE8,0x31,0xD8,0xA7,0x1D,0x9F,0x4A,
   9857      1.1    jruoho         0xC0,0x77,0xE6,0x04,0xC7,0xE9,0x1D,0x7B,
   9858      1.1    jruoho         0x29,0xF0,0x08,0x1E,0xAD,0x3C,0x02,0x7E,
   9859      1.1    jruoho         0xB4,0x02,0x66,0xFF,0xFF,0xA3,0x15,0x30,
   9860      1.1    jruoho         0x09,0x7A,0xE6,0xA4,0x03,0x77,0x34,0x18,
   9861      1.1    jruoho         0xD4,0xD1,0x0A,0x5C,0x11,0xC0,0x75,0xDC,
   9862      1.1    jruoho         0xF0,0xD1,0x02,0xCE,0x50,0x0F,0xDA,0x07,
   9863      1.1    jruoho         0x65,0xCF,0xDA,0x97,0x21,0x76,0xB4,0x00,
   9864      1.1    jruoho         0x97,0x89,0x43,0x08,0xD0,0x04,0x3E,0x89,
   9865      1.1    jruoho         0x67,0xEF,0x43,0x03,0xB3,0x8A,0xA1,0x01,
   9866      1.1    jruoho         0xA5,0xA3,0x01,0xEE,0x44,0x81,0xFD,0xFF,
   9867      1.1    jruoho         0x9F,0x28,0x60,0xDE,0x30,0x70,0x07,0x0A,
   9868      1.1    jruoho         0xC0,0xCD,0xE9,0xDB,0xE3,0xE2,0xD0,0x38,
   9869      1.1    jruoho         0xC4,0xE7,0xA7,0x73,0xF6,0xD1,0xE8,0x4C,
   9870      1.1    jruoho         0x71,0x67,0x11,0x30,0x9C,0x7D,0x11,0x8F,
   9871      1.1    jruoho         0x18,0x03,0xF9,0x81,0x21,0x59,0x30,0x28,
   9872      1.1    jruoho         0x16,0x0F,0xC5,0x07,0x03,0x0E,0xEC,0x23,
   9873      1.1    jruoho         0x02,0x3B,0x17,0xB0,0x73,0xAD,0xE1,0xF8,
   9874      1.1    jruoho         0x59,0xC0,0xA7,0x84,0xB7,0xA6,0x17,0x7B,
   9875      1.1    jruoho         0x9F,0xD7,0x7D,0xD6,0x08,0xC9,0xCE,0xF4,
   9876      1.1    jruoho         0x3E,0x89,0xE2,0x0E,0xA2,0x70,0x4E,0x9F,
   9877      1.1    jruoho         0xE0,0x22,0xF0,0x65,0xDF,0xA3,0xE0,0xA7,
   9878      1.1    jruoho         0x07,0xCF,0xF1,0x8D,0xC1,0xA7,0x07,0xE6,
   9879      1.1    jruoho         0x7E,0xF8,0x9A,0xF1,0x33,0xC3,0xE3,0x43,
   9880      1.1    jruoho         0x88,0x27,0xE2,0xDA,0xA6,0x20,0x5B,0x18,
   9881      1.1    jruoho         0x42,0x09,0xF4,0xFF,0x8F,0x10,0xE5,0x6D,
   9882      1.1    jruoho         0x20,0xCA,0x29,0x44,0x88,0x12,0xA4,0xB1,
   9883      1.1    jruoho         0xC9,0x0B,0x35,0xCA,0xD9,0x45,0x6E,0x6D,
   9884      1.1    jruoho         0xF6,0x82,0x0B,0x14,0x2A,0x66,0x9C,0x28,
   9885      1.1    jruoho         0xEF,0x10,0xB1,0xDA,0x1F,0x04,0x91,0xF4,
   9886      1.1    jruoho         0x32,0xD0,0x71,0xC9,0x91,0x0E,0x7D,0xE8,
   9887      1.1    jruoho         0x61,0xFB,0x04,0x8C,0x3F,0x48,0xE2,0xAE,
   9888      1.1    jruoho         0x2A,0x3E,0x28,0xF8,0x00,0x80,0x77,0x09,
   9889      1.1    jruoho         0xA8,0x5B,0x9D,0xC7,0xED,0xF3,0x06,0xF8,
   9890      1.1    jruoho         0xAF,0x17,0x58,0x82,0xF2,0x07,0x81,0x1A,
   9891      1.1    jruoho         0x99,0xA1,0x3D,0xCC,0xB7,0x19,0x43,0xBE,
   9892      1.1    jruoho         0x07,0x1C,0x16,0x3B,0x27,0xF9,0xF0,0x08,
   9893      1.1    jruoho         0x1C,0x8E,0x01,0x4F,0x1B,0xBE,0x51,0x7B,
   9894      1.1    jruoho         0xBE,0x3E,0x62,0x01,0x8E,0xFE,0xFF,0x47,
   9895      1.1    jruoho         0x2C,0x30,0x9D,0xDF,0x7D,0x82,0x01,0xC7,
   9896      1.1    jruoho         0xCD,0x82,0x9F,0x61,0x00,0x67,0x40,0xCF,
   9897      1.1    jruoho         0x30,0x60,0x1F,0x2A,0x6E,0x08,0x5C,0xEE,
   9898      1.1    jruoho         0x8A,0x28,0x90,0x05,0xC2,0xA0,0x0E,0xFD,
   9899      1.1    jruoho         0xE4,0x08,0x42,0xCF,0x9C,0x70,0x86,0x72,
   9900      1.1    jruoho         0xB2,0xBD,0x5F,0x1D,0xC8,0x2D,0xC2,0x43,
   9901      1.1    jruoho         0x3D,0x8B,0xC7,0x04,0x76,0xDA,0x02,0x36,
   9902      1.1    jruoho         0xFF,0xFF,0xE3,0x29,0xB0,0x98,0xF7,0xD3,
   9903      1.1    jruoho         0x69,0x84,0x63,0x03,0xFB,0x71,0x0B,0x38,
   9904      1.1    jruoho         0x1D,0xCC,0xE0,0xDC,0x7F,0xD8,0x2D,0x1A,
   9905      1.1    jruoho         0x37,0x34,0xB0,0x0D,0xCC,0x43,0x03,0x3E,
   9906      1.1    jruoho         0x27,0x47,0x30,0x9E,0x98,0xF8,0x55,0xE2,
   9907      1.1    jruoho         0xE1,0x89,0x1F,0x43,0xC0,0xFA,0xFF,0x3F,
   9908      1.1    jruoho         0x99,0x01,0xF6,0x84,0x1E,0xCB,0x50,0xD2,
   9909      1.1    jruoho         0x4E,0x66,0x80,0xC0,0xFB,0xD8,0x3B,0xC3,
   9910      1.1    jruoho         0x4B,0x83,0xE7,0x74,0xD2,0xCF,0x62,0x3E,
   9911      1.1    jruoho         0x99,0x19,0x21,0x0A,0xBB,0x8F,0x19,0xAD,
   9912      1.1    jruoho         0x37,0x14,0xCD,0x3C,0xE8,0x3B,0x99,0x51,
   9913      1.1    jruoho         0x62,0x46,0x6A,0x0E,0x4C,0x48,0x11,0x0F,
   9914      1.1    jruoho         0x27,0x4A,0x88,0x60,0xAF,0x13,0x6F,0x67,
   9915      1.1    jruoho         0x4F,0x66,0x4C,0xD6,0xC9,0x0C,0x24,0xFF,
   9916      1.1    jruoho         0xFF,0x93,0x19,0x98,0x5C,0x9F,0xCC,0x80,
   9917      1.1    jruoho         0xCA,0x39,0x0A,0x7F,0x32,0x03,0x78,0x74,
   9918      1.1    jruoho         0xC0,0xC2,0x9D,0xCC,0xC0,0xF2,0xFF,0x3F,
   9919      1.1    jruoho         0xC4,0x00,0xCE,0xC7,0x0A,0x63,0x0C,0x3C,
   9920      1.1    jruoho         0xDA,0xC1,0x0C,0x15,0xE6,0x6C,0x86,0x0E,
   9921      1.1    jruoho         0x72,0x08,0xA1,0xC1,0x0E,0x21,0x50,0xE6,
   9922      1.1    jruoho         0x72,0xA0,0xA7,0xF0,0x9A,0xE0,0x73,0x14,
   9923      1.1    jruoho         0xD8,0x0F,0x67,0xC0,0xE1,0xD4,0x80,0x0F,
   9924      1.1    jruoho         0x74,0xE2,0x42,0x8F,0xC2,0x23,0x0E,0x58,
   9925      1.1    jruoho         0xFD,0xC0,0xC8,0xFF,0xFF,0x64,0x06,0x18,
   9926      1.1    jruoho         0x78,0x6A,0xF8,0x40,0x82,0x63,0x31,0xEA,
   9927      1.1    jruoho         0x1B,0xC4,0x21,0xBE,0x8D,0xF8,0xE8,0xFE,
   9928      1.1    jruoho         0x6A,0xE2,0x4B,0x00,0xE6,0x42,0xE2,0xD3,
   9929      1.1    jruoho         0x09,0xB3,0x70,0x38,0x03,0x5A,0x43,0x60,
   9930      1.1    jruoho         0x57,0x26,0xCF,0x9C,0x0F,0xE1,0x6C,0x3C,
   9931      1.1    jruoho         0x7A,0xDC,0xE9,0x04,0xDE,0x38,0x7C,0x3A,
   9932      1.1    jruoho         0x01,0x5E,0x07,0x0C,0xCC,0x0C,0xC2,0x3F,
   9933      1.1    jruoho         0x84,0xB0,0x21,0x9C,0xAA,0xC7,0x70,0xEE,
   9934      1.1    jruoho         0xAF,0x38,0x3E,0x9D,0x80,0xF3,0xFF,0x7F,
   9935      1.1    jruoho         0x62,0x03,0x0C,0x0A,0x7E,0x32,0xF8,0xB8,
   9936      1.1    jruoho         0x46,0x25,0xC2,0xA0,0x8E,0xE6,0x80,0x7B,
   9937      1.1    jruoho         0x98,0x27,0x36,0x26,0x6F,0xC5,0x1A,0x8B,
   9938      1.1    jruoho         0x4F,0x6C,0x30,0xFF,0xFF,0x27,0x36,0x80,
   9939      1.1    jruoho         0xD1,0x87,0x20,0xB0,0xFD,0xFF,0x0F,0x41,
   9940      1.1    jruoho         0x60,0x1C,0xA0,0x0F,0x41,0x80,0x9B,0xD3,
   9941      1.1    jruoho         0x09,0xEE,0xC4,0x07,0xB6,0x63,0x10,0x60,
   9942      1.1    jruoho         0x6D,0xE8,0x3E,0x06,0x81,0xF9,0xFF,0x3F,
   9943      1.1    jruoho         0x5A,0x98,0xA3,0xE0,0xC2,0x8E,0x7C,0x28,
   9944      1.1    jruoho         0x29,0xA7,0x3E,0xB4,0x0C,0x20,0x69,0x38,
   9945      1.1    jruoho         0xC9,0x01,0x9D,0xD3,0x3D,0x70,0x92,0x75,
   9946      1.1    jruoho         0xEA,0x40,0x8F,0xC7,0xA0,0xAF,0x1C,0xBE,
   9947      1.1    jruoho         0x12,0xF0,0x23,0x07,0x93,0x00,0xAA,0x41,
   9948      1.1    jruoho         0xFA,0xCC,0x07,0x9C,0x8E,0x1C,0xE0,0x38,
   9949      1.1    jruoho         0x26,0x05,0xC6,0xDE,0x0E,0xDE,0x22,0x3D,
   9950      1.1    jruoho         0x89,0xA7,0xA1,0xE3,0x0C,0x51,0x38,0x26,
   9951      1.1    jruoho         0x39,0x18,0x44,0x7A,0x95,0x62,0x03,0x7C,
   9952      1.1    jruoho         0xAB,0xF1,0xD9,0xC8,0x07,0x10,0x78,0xE3,
   9953      1.1    jruoho         0xF6,0xD8,0x61,0xFF,0xFF,0x0F,0x75,0xC0,
   9954      1.1    jruoho         0x01,0xE2,0xA4,0xF8,0x21,0xC3,0x98,0x67,
   9955      1.1    jruoho         0xC5,0x0F,0x75,0x80,0xF5,0x18,0x27,0x3A,
   9956      1.1    jruoho         0x94,0xF0,0x43,0x1D,0x20,0xE8,0xFF,0x7F,
   9957      1.1    jruoho         0xA8,0x03,0x86,0x38,0x6F,0x24,0xD1,0x1E,
   9958      1.1    jruoho         0xEA,0x98,0xE8,0x43,0x1D,0x40,0xC8,0xFF,
   9959      1.1    jruoho         0xFF,0xA1,0x0E,0x18,0x9E,0x87,0x00,0xAE,
   9960      1.1    jruoho         0x9C,0xEF,0xC0,0x7C,0x22,0x02,0xEF,0xFF,
   9961      1.1    jruoho         0xFF,0x7C,0x07,0xB8,0x1B,0x2D,0xCC,0x51,
   9962      1.1    jruoho         0x70,0x41,0xAF,0x0E,0x03,0x51,0x09,0x30,
   9963      1.1    jruoho         0x28,0x02,0xC7,0x5F,0x9B,0x60,0x1C,0xEA,
   9964      1.1    jruoho         0x7C,0x87,0x3E,0x2F,0x78,0xD8,0x4F,0x05,
   9965      1.1    jruoho         0x9E,0xC4,0xA9,0xFA,0x5A,0x70,0x14,0x4F,
   9966      1.1    jruoho         0x00,0x3E,0xE1,0x01,0xFF,0xA1,0xC1,0x9A,
   9967      1.1    jruoho         0x44,0xF1,0x43,0x03,0xF5,0x11,0xE4,0xFF,
   9968      1.1    jruoho         0x7F,0x68,0xC0,0x28,0xEA,0xF9,0x06,0x7D,
   9969      1.1    jruoho         0xCC,0xF2,0xD9,0x20,0xE6,0x0B,0x48,0x84,
   9970      1.1    jruoho         0x07,0x10,0x5F,0x1F,0xD8,0x71,0xD2,0x67,
   9971      1.1    jruoho         0xA0,0x40,0x51,0xDE,0x37,0xF8,0x09,0x07,
   9972      1.1    jruoho         0x5C,0x83,0xF3,0x09,0x07,0xBC,0x87,0x23,
   9973      1.1    jruoho         0x1F,0x4B,0xC0,0x77,0xD0,0x84,0x73,0x81,
   9974      1.1    jruoho         0xF1,0x8D,0x8D,0x9D,0x06,0xC0,0x76,0x00,
   9975      1.1    jruoho         0x06,0xDF,0x69,0x00,0x1C,0xC7,0x24,0x7E,
   9976      1.1    jruoho         0x3A,0x04,0x13,0xCC,0xC1,0xBC,0x34,0xFB,
   9977      1.1    jruoho         0xFF,0xEF,0xFD,0x94,0x43,0xCF,0x86,0x80,
   9978      1.1    jruoho         0x75,0x49,0x07,0x43,0x94,0x88,0xB3,0x21,
   9979      1.1    jruoho         0x20,0xFD,0xFF,0x7F,0x36,0xC4,0x20,0xC4,
   9980      1.1    jruoho         0x09,0xFC,0x12,0xD1,0xDC,0xD9,0x90,0xAE,
   9981      1.1    jruoho         0xD8,0x67,0x43,0x80,0xE1,0xFF,0xFF,0x23,
   9982      1.1    jruoho         0x00,0xF6,0x7C,0x04,0x38,0x3D,0x64,0x83,
   9983      1.1    jruoho         0xE7,0x14,0x08,0xE3,0xE4,0x03,0x38,0xFE,
   9984      1.1    jruoho         0xFF,0x8F,0x15,0xE6,0x18,0x78,0xEA,0x97,
   9985      1.1    jruoho         0x9B,0x8F,0x03,0x54,0xD4,0x2B,0xC2,0x30,
   9986      1.1    jruoho         0x94,0xC5,0x87,0x05,0x1F,0x11,0xF8,0x61,
   9987      1.1    jruoho         0xC1,0x23,0xA8,0x78,0x9C,0xF4,0x74,0xE3,
   9988      1.1    jruoho         0x33,0x21,0x3B,0x24,0x38,0xFC,0x20,0xE9,
   9989      1.1    jruoho         0x41,0x13,0x3C,0xE7,0x23,0x78,0xB7,0x1E,
   9990      1.1    jruoho         0x38,0xA7,0x02,0xC0,0x4D,0xAE,0x27,0xA3,
   9991      1.1    jruoho         0x4E,0x17,0x0E,0x70,0x8E,0x92,0x8D,0x63,
   9992      1.1    jruoho         0x08,0xE5,0x70,0xCC,0xB7,0x87,0xA6,0xC9,
   9993      1.1    jruoho         0x4E,0x56,0x30,0x63,0x41,0xEA,0x24,0xE0,
   9994      1.1    jruoho         0x01,0x38,0x10,0x8C,0xB4,0x93,0x68,0x34,
   9995      1.1    jruoho         0x86,0xB3,0x5A,0x18,0xC1,0x19,0xC4,0xC7,
   9996      1.1    jruoho         0x11,0xE7,0x3A,0x19,0xA1,0x3F,0x07,0x3E,
   9997      1.1    jruoho         0x15,0x61,0x82,0xDC,0x4B,0xE8,0xBC,0x7D,
   9998      1.1    jruoho         0x37,0xE0,0x57,0x61,0x8F,0xC5,0xFF,0x7F,
   9999      1.1    jruoho         0x60,0xDF,0x4E,0xC0,0x31,0x17,0xAB,0x01,
   10000      1.1    jruoho         0x45,0x0D,0xC0,0x68,0x98,0x53,0xC0,0x53,
   10001      1.1    jruoho         0x09,0xB8,0x82,0xCD,0x0D,0x7D,0x61,0xB1,
   10002      1.1    jruoho         0xD6,0xA9,0xE8,0x14,0xF4,0x3E,0x70,0x70,
   10003      1.1    jruoho         0xC0,0x63,0xF6,0x1E,0x1C,0x2C,0x34,0x0F,
   10004      1.1    jruoho         0x0E,0x6C,0xD9,0x06,0x87,0x56,0x72,0x17,
   10005      1.1    jruoho         0x21,0x87,0x0F,0xFC,0xEC,0x80,0x03,0xA0,
   10006      1.1    jruoho         0x67,0x07,0x0B,0xC9,0xB3,0x03,0x9B,0xBE,
   10007      1.1    jruoho         0xB3,0x08,0x28,0x70,0xFE,0xFF,0x11,0xDE,
   10008      1.1    jruoho         0x3B,0x7C,0x6E,0x79,0xF6,0x60,0x63,0x78,
   10009      1.1    jruoho         0x74,0x31,0x9A,0xD1,0xB9,0xA6,0xDB,0x04,
   10010      1.1    jruoho         0x4A,0xC5,0x6D,0x82,0x82,0xF8,0x06,0xE0,
   10011      1.1    jruoho         0x84,0x34,0xBA,0x75,0xE2,0x66,0x62,0xFC,
   10012      1.1    jruoho         0x47,0x0C,0x1F,0x11,0x0E,0xE9,0x6C,0x4D,
   10013      1.1    jruoho         0x30,0x0F,0xA4,0x9E,0x81,0xBE,0xB3,0xE1,
   10014      1.1    jruoho         0x67,0x1F,0xF2,0xC1,0xC5,0xD3,0xF0,0xF5,
   10015      1.1    jruoho         0x86,0xDC,0x3B,0xE8,0xB4,0x7D,0x66,0xC0,
   10016      1.1    jruoho         0x1C,0x74,0x7D,0x9D,0x7A,0x83,0x27,0x57,
   10017      1.1    jruoho         0x09,0xEA,0xE1,0x02,0x42,0x2F,0x34,0xBE,
   10018      1.1    jruoho         0xDC,0x25,0x78,0xE0,0xF4,0xE9,0xEE,0xBD,
   10019      1.1    jruoho         0x84,0x9D,0xF1,0x12,0xBC,0xE0,0x25,0x98,
   10020      1.1    jruoho         0x77,0x10,0xA8,0x51,0x79,0x10,0x98,0xAB,
   10021      1.1    jruoho         0x3C,0xCB,0x37,0x06,0x54,0xB2,0x8B,0x16,
   10022      1.1    jruoho         0x3D,0xC3,0xBC,0xC3,0xF8,0x92,0xE0,0xEB,
   10023      1.1    jruoho         0x87,0xCF,0x2D,0x5E,0xC0,0xEB,0x16,0x0C,
   10024      1.1    jruoho         0x82,0x67,0xA0,0x57,0x17,0xDF,0xD9,0x0D,
   10025      1.1    jruoho         0xFC,0x2A,0xF0,0x46,0x13,0x22,0x98,0x61,
   10026      1.1    jruoho         0x0F,0xFF,0xDD,0xDD,0xA8,0xBE,0xE9,0x18,
   10027      1.1    jruoho         0xEB,0x75,0xC4,0x23,0xE5,0xC7,0x96,0x03,
   10028      1.1    jruoho         0x8A,0xF4,0xF2,0xE6,0x09,0xF8,0x2C,0xE3,
   10029      1.1    jruoho         0x53,0xDD,0x49,0xF9,0x7A,0x68,0xF4,0x57,
   10030      1.1    jruoho         0x08,0x1F,0x7E,0x8C,0xEC,0x73,0x0E,0x3B,
   10031      1.1    jruoho         0xDF,0xB1,0x41,0x71,0xC4,0x07,0x86,0x97,
   10032      1.1    jruoho         0x1A,0x4F,0x85,0x9D,0xBB,0x60,0x1C,0x1C,
   10033      1.1    jruoho         0xD8,0xB1,0x08,0x73,0x7C,0x05,0xD7,0xC9,
   10034      1.1    jruoho         0xE6,0xFF,0xFF,0xE4,0x00,0x6E,0x78,0xCC,
   10035      1.1    jruoho         0xC1,0xD7,0xE7,0x0D,0xDF,0x0C,0x3C,0x2E,
   10036      1.1    jruoho         0x7E,0xE4,0xF0,0x49,0xE3,0xA5,0xD3,0xD8,
   10037      1.1    jruoho         0xA7,0xE9,0xA3,0xD1,0xCB,0x9B,0x4F,0x2F,
   10038      1.1    jruoho         0x18,0x58,0x5F,0x1A,0x38,0xAC,0xD1,0xC2,
   10039      1.1    jruoho         0x3E,0x06,0x9C,0xB9,0x2F,0x44,0xB8,0xC3,
   10040      1.1    jruoho         0x23,0x58,0x00,0xF1,0xB7,0x92,0x47,0x0E,
   10041      1.1    jruoho         0x4F,0xC0,0x80,0x4C,0xD3,0xBA,0x74,0x20,
   10042      1.1    jruoho         0xE2,0xA7,0x3C,0x2B,0x5F,0x99,0x2E,0x43,
   10043      1.1    jruoho         0x0C,0xE3,0xA9,0xF2,0xF1,0xC3,0xB3,0xF1,
   10044      1.1    jruoho         0x51,0xC0,0xC7,0x28,0xCF,0xFC,0x8C,0x22,
   10045      1.1    jruoho         0xBD,0x32,0x10,0x50,0x9D,0x88,0xB8,0x42,
   10046      1.1    jruoho         0x18,0x89,0xA1,0xD1,0x9D,0x83,0xC7,0x1F,
   10047      1.1    jruoho         0x22,0x05,0x31,0xA0,0x6F,0x2E,0xC0,0xF4,
   10048      1.1    jruoho         0x4C,0x04,0x5C,0xFE,0xFF,0x37,0x17,0x80,
   10049      1.1    jruoho         0xFF,0xFF,0xFF,0x9B,0x0B,0xE0,0xE6,0xFE,
   10050      1.1    jruoho         0xE0,0x9B,0x0B,0x70,0x8D,0xB4,0x2A,0x7A,
   10051      1.1    jruoho         0x61,0x77,0x08,0x18,0xD4,0x9D,0x1D,0x70,
   10052      1.1    jruoho         0x78,0x2B,0x78,0x67,0x87,0xF5,0xFF,0xBF,
   10053      1.1    jruoho         0xB3,0xC3,0xC3,0x8C,0x13,0xE5,0x85,0x21,
   10054      1.1    jruoho         0xC6,0x3B,0x3B,0x0B,0xF0,0x26,0xD0,0x51,
   10055      1.1    jruoho         0xC6,0x77,0x76,0x80,0x1F,0x67,0xD8,0x77,
   10056      1.1    jruoho         0x69,0xF0,0x5E,0x75,0x81,0xF5,0xFF,0xFF,
   10057      1.1    jruoho         0xAA,0x0B,0x3C,0x04,0xDF,0xA7,0x41,0x3E,
   10058      1.1    jruoho         0x5E,0x30,0x8C,0x83,0x2B,0x27,0xA1,0xC7,
   10059      1.1    jruoho         0x02,0x6B,0x85,0x41,0xDD,0xA9,0xC1,0xA5,
   10060      1.1    jruoho         0x09,0x5C,0x17,0x5F,0x1F,0x6A,0x7C,0xA4,
   10061      1.1    jruoho         0xC5,0x9F,0x2F,0x70,0x01,0x86,0x4C,0x4F,
   10062      1.1    jruoho         0x65,0x30,0xAE,0x29,0x3E,0x95,0x61,0xEE,
   10063      1.1    jruoho         0x0E,0x1E,0x90,0x8F,0x18,0xC0,0x67,0x15,
   10064      1.1    jruoho         0x1E,0x18,0xEE,0xB4,0xE0,0x9B,0x92,0x41,
   10065      1.1    jruoho         0xCF,0x31,0xA8,0x8F,0x3C,0x27,0xEF,0x7B,
   10066      1.1    jruoho         0xC2,0xE3,0x84,0xA3,0x9E,0x83,0xE8,0xD8,
   10067      1.1    jruoho         0xC0,0x71,0xDC,0xC0,0xFD,0xFF,0xC7,0x06,
   10068      1.1    jruoho         0xEF,0x70,0x83,0x3B,0xE8,0xF8,0x62,0x70,
   10069      1.1    jruoho         0x5C,0x18,0xB8,0xE7,0x02,0x0F,0xC3,0x37,
   10070      1.1    jruoho         0x1D,0x8F,0x08,0x33,0xFE,0xD7,0x3F,0x23,
   10071      1.1    jruoho         0x04,0xC4,0x5F,0x8C,0xD8,0x80,0xC1,0x78,
   10072      1.1    jruoho         0x6B,0xF3,0xF5,0x0D,0x37,0x60,0x5F,0x1D,
   10073      1.1    jruoho         0x7C,0xC1,0xF0,0x09,0xCC,0xE8,0x2F,0x30,
   10074      1.1    jruoho         0x4F,0x62,0x3E,0x36,0x90,0x0B,0x1C,0x1D,
   10075      1.1    jruoho         0x30,0x38,0x00,0x3D,0x60,0xF8,0x87,0x8B,
   10076      1.1    jruoho         0x77,0x39,0x30,0x5C,0x05,0x7D,0x5C,0xF0,
   10077      1.1    jruoho         0xB1,0xC7,0x8A,0xEE,0x72,0xE8,0x9B,0x9C,
   10078      1.1    jruoho         0x61,0xE2,0x18,0xE2,0x0D,0x8C,0xDD,0x25,
   10079      1.1    jruoho         0xC8,0x61,0x0E,0xEA,0x5D,0xC2,0x73,0xE0,
   10080      1.1    jruoho         0x67,0x0B,0x9F,0xE0,0x7C,0xF3,0x09,0x71,
   10081      1.1    jruoho         0xAA,0x8F,0x56,0xEF,0x01,0x3E,0x7A,0xBC,
   10082      1.1    jruoho         0x77,0xF9,0xEC,0xC4,0x2E,0x02,0x3E,0x72,
   10083      1.1    jruoho         0x19,0xC7,0xD3,0xF4,0x15,0xD0,0x43,0x36,
   10084      1.1    jruoho         0xD8,0xAB,0x86,0x4F,0x60,0x3E,0xBA,0xE1,
   10085      1.1    jruoho         0x8E,0x51,0x9E,0x89,0xA7,0xEF,0x3B,0x08,
   10086      1.1    jruoho         0x3B,0x92,0x1C,0x75,0xA8,0x6B,0x7A,0x44,
   10087      1.1    jruoho         0xF9,0xFF,0x9F,0xD0,0x81,0xF8,0xD6,0x06,
   10088      1.1    jruoho         0xCE,0x68,0xF7,0x0F,0xF4,0x36,0x3D,0x32,
   10089      1.1    jruoho         0xCC,0xD1,0x00,0xD6,0x25,0x04,0x5C,0x77,
   10090      1.1    jruoho         0x0C,0x5F,0x42,0x80,0x4F,0xD0,0x4B,0x04,
   10091      1.1    jruoho         0xFA,0x9A,0xE1,0xD1,0x3D,0x02,0x60,0xAE,
   10092      1.1    jruoho         0x18,0xEC,0x58,0xE0,0xC3,0x86,0xAF,0x01,
   10093      1.1    jruoho         0xEC,0x5E,0xE0,0x30,0xF7,0x08,0x50,0x81,
   10094      1.1    jruoho         0x7A,0x78,0xF0,0xD5,0xDE,0x23,0x40,0x71,
   10095      1.1    jruoho         0xB2,0xF4,0xA1,0xC1,0x03,0xB5,0xAA,0x33,
   10096      1.1    jruoho         0x26,0x94,0x23,0x26,0x3F,0x9B,0xF9,0x26,
   10097      1.1    jruoho         0x81,0xB9,0x5D,0xFA,0x26,0x01,0x37,0xCF,
   10098      1.1    jruoho         0x2C,0x50,0x49,0x20,0xF4,0xFF,0xBF,0x49,
   10099      1.1    jruoho         0xC0,0x85,0xE9,0xF2,0x32,0x43,0xE7,0x7F,
   10100      1.1    jruoho         0xE0,0xBE,0xD5,0x79,0x84,0x3E,0x44,0x30,
   10101      1.1    jruoho         0x94,0xF7,0x3C,0x9F,0xC2,0xF8,0x19,0xC2,
   10102      1.1    jruoho         0x07,0x4C,0x76,0xA6,0xE0,0x67,0x4D,0xDC,
   10103      1.1    jruoho         0x1D,0xC0,0x28,0x6F,0x9E,0x9E,0x00,0x3B,
   10104      1.1    jruoho         0x7F,0x1A,0xF9,0xDD,0xE0,0x5D,0xC0,0xD3,
   10105      1.1    jruoho         0xF7,0xBD,0x88,0x9F,0x28,0xC0,0x17,0xEC,
   10106      1.1    jruoho         0x4E,0x07,0x05,0xFA,0x84,0x3C,0x22,0xA3,
   10107      1.1    jruoho         0xFA,0x88,0xC0,0x2F,0x49,0x60,0x3C,0x92,
   10108      1.1    jruoho         0xF8,0x40,0x01,0x84,0xEE,0x05,0xA8,0xD3,
   10109      1.1    jruoho         0x07,0x47,0x3D,0xE3,0x17,0x54,0x63,0xBE,
   10110      1.1    jruoho         0x5B,0x3D,0xC2,0x79,0x72,0x98,0xCB,0x01,
   10111      1.1    jruoho         0x8B,0x73,0x4D,0x02,0xD5,0x71,0x97,0x8F,
   10112      1.1    jruoho         0x0E,0xEE,0xB5,0x15,0xFB,0xFF,0x27,0x38,
   10113      1.1    jruoho         0xB8,0x77,0x96,0x77,0x3E,0x43,0x79,0x90,
   10114      1.1    jruoho         0xE0,0xBB,0xB6,0x82,0xE3,0xAA,0x06,0xE3,
   10115      1.1    jruoho         0xD8,0xC2,0x2F,0x79,0x80,0x9D,0x61,0x71,
   10116      1.1    jruoho         0xC1,0x7F,0x0F,0x03,0x51,0x89,0x30,0x28,
   10117      1.1    jruoho         0x02,0xCB,0xBB,0xB7,0x52,0xF8,0x43,0x06,
   10118      1.1    jruoho         0xE3,0x4D,0x81,0x4F,0x1A,0x3B,0x6A,0xE0,
   10119      1.1    jruoho         0xFB,0xFF,0x1F,0x35,0xD8,0x86,0x8A,0xBB,
   10120      1.1    jruoho         0x29,0x82,0x75,0xAA,0x98,0x21,0xF0,0x60,
   10121      1.1    jruoho         0x0F,0x00,0x9F,0xAF,0x7C,0x06,0x50,0x14,
   10122      1.1    jruoho         0x18,0xD4,0xA1,0x1D,0xCE,0x6D,0x18,0x70,
   10123      1.1    jruoho         0x30,0x62,0xDC,0xA5,0x10,0xEE,0x94,0xDF,
   10124      1.1    jruoho         0x51,0x62,0x3F,0x97,0xB3,0xE9,0xE2,0xAE,
   10125      1.1    jruoho         0xE6,0x3E,0x9D,0xB0,0x0B,0x32,0x8C,0xB3,
   10126      1.1    jruoho         0xC0,0x23,0xC0,0xAB,0x39,0xBF,0x20,0x3F,
   10127      1.1    jruoho         0x17,0xBF,0x10,0x3C,0x26,0x85,0x78,0x53,
   10128      1.1    jruoho         0x7A,0x25,0x36,0xC6,0x93,0x71,0x73,0xB7,
   10129      1.1    jruoho         0x62,0x72,0xDE,0x79,0x41,0x36,0xC6,0xD1,
   10130      1.1    jruoho         0x44,0x8C,0x72,0x6E,0x0F,0x03,0x91,0x5F,
   10131      1.1    jruoho         0x90,0x7D,0x3F,0x79,0x21,0x88,0x18,0xCD,
   10132      1.1    jruoho         0x10,0x41,0x9F,0x97,0x8D,0x15,0x28,0xDE,
   10133      1.1    jruoho         0x0B,0x32,0x13,0xF8,0x56,0xD0,0xC1,0xC5,
   10134      1.1    jruoho         0x17,0x64,0xEC,0xFF,0xFF,0x82,0x0C,0x30,
   10135      1.1    jruoho         0xE2,0x64,0x04,0xF8,0x3C,0x71,0xE0,0xCE,
   10136      1.1    jruoho         0x35,0x30,0xFE,0xFF,0x97,0x6A,0xD8,0x27,
   10137      1.1    jruoho         0x1B,0xC0,0xD9,0xD0,0x7D,0xB2,0x01,0xF7,
   10138      1.1    jruoho         0x68,0xE1,0x1D,0x4D,0x10,0x27,0x1B,0x0A,
   10139      1.1    jruoho         0xE4,0xE0,0xEB,0xA2,0x70,0x3C,0xF4,0x49,
   10140      1.1    jruoho         0x84,0x1E,0x9D,0x7C,0x94,0xC4,0x9D,0x19,
   10141      1.1    jruoho         0x3C,0x91,0x77,0x16,0x8F,0xE2,0x65,0xD0,
   10142      1.1    jruoho         0xF7,0x82,0x13,0x79,0x7D,0xB0,0x9C,0x63,
   10143      1.1    jruoho         0x24,0xA8,0x46,0xE2,0xE3,0x03,0xFC,0xEB,
   10144      1.1    jruoho         0x8B,0x8F,0x91,0xF0,0xF9,0xFC,0xC3,0xF2,
   10145      1.1    jruoho         0x60,0x0C,0xF9,0xFF,0x7F,0x8A,0xC4,0x80,
   10146      1.1    jruoho         0x3C,0xBB,0x3C,0x86,0xF0,0x0B,0x24,0xDC,
   10147      1.1    jruoho         0xD3,0xCC,0x01,0x60,0x64,0x5D,0x1E,0xD1,
   10148      1.1    jruoho         0x67,0x47,0x8E,0x11,0xD7,0x17,0x45,0x5F,
   10149      1.1    jruoho         0x81,0x7D,0x10,0x38,0x9F,0xE7,0x44,0xB0,
   10150      1.1    jruoho         0x8E,0x9A,0x1F,0x6D,0xF8,0xF8,0x39,0xF8,
   10151      1.1    jruoho         0x5B,0xC1,0x03,0xA5,0x8F,0x45,0x21,0x1E,
   10152      1.1    jruoho         0x91,0xF8,0x39,0x11,0x5C,0x26,0xCE,0x89,
   10153      1.1    jruoho         0x40,0xE2,0xD0,0x0B,0xE3,0xB4,0x80,0x1B,
   10154      1.1    jruoho         0x88,0xCF,0x94,0xD8,0x29,0x9F,0x08,0x3B,
   10155      1.1    jruoho         0x97,0x60,0x46,0x07,0xAE,0xCB,0xBD,0x47,
   10156      1.1    jruoho         0x07,0xFE,0x93,0x00,0x1E,0xEB,0xFF,0xFF,
   10157      1.1    jruoho         0x78,0x07,0xBE,0x93,0xBA,0xEF,0x26,0xBE,
   10158      1.1    jruoho         0xC8,0xF8,0x50,0xF4,0x7C,0x07,0xF8,0x0F,
   10159      1.1    jruoho         0x77,0xB8,0x43,0xC5,0x39,0xDF,0x01,0xD2,
   10160      1.1    jruoho         0xFE,0xFF,0xE7,0x3B,0x60,0x79,0xB6,0x7E,
   10161      1.1    jruoho         0xBE,0x03,0xBB,0xC8,0xF3,0x1D,0x40,0xAC,
   10162      1.1    jruoho         0xFF,0xFF,0xF9,0x0E,0xB0,0x73,0x46,0xC3,
   10163      1.1    jruoho         0x9D,0xEF,0xC0,0x76,0xB4,0x01,0xCC,0x4D,
   10164      1.1    jruoho         0xE3,0xD1,0x06,0xDC,0xC3,0x85,0x3D,0x0C,
   10165      1.1    jruoho         0xAE,0xD0,0xA6,0x4F,0x8D,0x46,0xAD,0x1A,
   10166      1.1    jruoho         0x94,0xA9,0x51,0xE6,0xFF,0xDF,0xA0,0x56,
   10167      1.1    jruoho         0x9F,0x4A,0x8D,0x19,0xCB,0x0E,0xA5,0x80,
   10168      1.1    jruoho         0x8F,0x0A,0x8D,0xCD,0xF2,0x28,0x04,0x62,
   10169      1.1    jruoho         0x31,0xAF,0x06,0x81,0x38,0x2C,0x08,0x8D,
   10170      1.1    jruoho         0xF4,0xCA,0x11,0x88,0x25,0x3F,0xFB,0x05,
   10171      1.1    jruoho         0x62,0xB9,0x6F,0x06,0x81,0x38,0xE0,0x1B,
   10172      1.1    jruoho         0x4C,0xE0,0xE4,0x61,0x25,0x70,0xF2,0x6E,
   10173      1.1    jruoho         0x10,0x88,0x23,0x83,0x50,0xA1,0x3A,0x40,
   10174      1.1    jruoho         0x58,0x4C,0x10,0x1A,0xCA,0x07,0x08,0x93,
   10175      1.1    jruoho         0xFE,0x48,0x10,0x20,0x31,0x02,0xC2,0xC2,
   10176      1.1    jruoho         0xBD,0xBF,0x04,0x62,0x69,0xEF,0x09,0x81,
   10177      1.1    jruoho         0x58,0x88,0x15,0x10,0x16,0x17,0x84,0x86,
   10178      1.1    jruoho         0xD3,0x02,0xC2,0x24,0x99,0x01,0x61,0x81,
   10179      1.1    jruoho         0x40,0xA8,0x7C,0x35,0x20,0x4C,0xA4,0x1B,
   10180      1.1    jruoho         0x40,0xBA,0x7A,0x81,0x38,0x88,0x1E,0x10,
   10181      1.1    jruoho         0x26,0xC3,0x0F,0x08,0x0B,0x0D,0x42,0xA3,
   10182      1.1    jruoho         0x3D,0x30,0x04,0x48,0x0C,0x81,0xB0,0xF8,
   10183      1.1    jruoho         0x8E,0x40,0x98,0xF8,0x57,0x91,0x40,0x9C,
   10184      1.1    jruoho         0xDF,0x12,0xC4,0x4D,0x69,0x88,0x35,0x01,
   10185      1.1    jruoho         0x31,0x0D,0x9E,0x80,0x98,0x22,0x10,0x01,
   10186      1.1    jruoho         0x39,0xF6,0xD3,0x43,0x40,0xD6,0x60,0x0A,
   10187      1.1    jruoho         0x88,0x45,0x07,0x11,0x90,0x85,0xA8,0x02,
   10188      1.1    jruoho         0x62,0x79,0x5D,0x01,0xB1,0xF0,0x20,0x02,
   10189      1.1    jruoho         0x72,0xE6,0x97,0x9F,0x80,0xAC,0xE0,0xA5,
   10190      1.1    jruoho         0xF3,0x10,0xC0,0xDE,0x10,0x81,0x48,0x72,
   10191      1.1    jruoho         0x10,0x01,0x39,0xB0,0x2F,0x20,0x16,0x1F,
   10192      1.1    jruoho         0x44,0x40,0xCE,0xFA,0x28,0x14,0x90,0x83,
   10193      1.1    jruoho         0x83,0x68,0x10,0xE4,0x6B,0x26,0x20,0xA7,
   10194      1.1    jruoho         0x07,0x11,0x10,0xF9,0x04,0x05,0x21,0x6A,
   10195      1.1    jruoho         0xBD,0x81,0x30,0x3D,0x8F,0x42,0x0D,0x85,
   10196      1.1    jruoho         0x80,0x50,0xE5,0xEA,0xCE,0x31,0x2C,0x07,
   10197      1.1    jruoho         0x08,0xCD,0x05,0x22,0x30,0xAB,0x70,0x07,
   10198      1.1    jruoho         0xC4,0x54,0x81,0x08,0xC8,0x09,0x80,0xC8,
   10199      1.1    jruoho         0xFF,0x9F,0x60,0x2A,0x10,0x9A,0x12,0x8C,
   10200      1.1    jruoho         0xEA,0x92,0x07,0xC4,0x12,0x80,0xD0,0x54,
   10201      1.1    jruoho         0x20,0x34,0x25,0x88,0x00,0xAD,0xCA,0x1E,
   10202      1.1    jruoho         0x10,0x53,0x0A,0x42,0x95,0x83,0xD0,0x74,
   10203      1.1    jruoho         0x20,0x54,0xB6,0xBE,0xC3,0x02,0x05,0x11,
   10204      1.1    jruoho         0x90,0xA3,0x83,0x50,0xE1,0xFE,0x40,0x98,
   10205      1.1    jruoho         0xDE,0x97,0x86,0x00,0x9D,0x0E,0x44,0x40,
   10206      1.1    jruoho         0x4E,0x0C,0x42,0x15,0x7C,0x32,0x82,0x10,
   10207      1.1    jruoho         0xB1,0x20,0x54,0xC1,0x27,0x23,0x28,0xD1,
   10208      1.1    jruoho         0xF2,0xB2,0x13,0x90,0xF5,0x81,0x50,0xBD,
   10209      1.1    jruoho         0x20,0x02,0x73,0x36,0x20,0x9A,0x17,0x84,
   10210      1.1    jruoho         0xE6,0x07,0xA3,0x5A,0x8D,0x02,0x31,0xFD,
   10211      1.1    jruoho         0x20,0x34,0x0F,0x88,0xC0,0xAC,0xE0,0xF9,
   10212      1.1    jruoho         0x71,0xC0,0x0C,0x84,0xAA,0x04,0x11,0x98,
   10213      1.1    jruoho         0x73,0x01,0xD1,0xAC,0x20,0x34,0x3B,0x18,
   10214      1.1    jruoho         0xD5,0xFE,0x0F,0xD1,0x00,0x08,0x08,0xCD,
   10215      1.1    jruoho         0x07,0xA2,0xC3,0x00,0x79,0x96,0x09,0xC8,
   10216      1.1    jruoho         0x1A,0x41,0xA8,0x66,0x10,0x81,0x39,0x27,
   10217      1.1    jruoho         0x10,0xCD,0x0E,0x42,0x95,0xFD,0x4D,0x82,
   10218      1.1    jruoho         0x91,0x8C,0x0F,0xD0,0x40,0x24,0x37,0x08,
   10219      1.1    jruoho         0xD5,0xF1,0x0C,0x0A,0x46,0x74,0x83,0x08,
   10220      1.1    jruoho         0xC8,0x59,0x40,0x68,0x36,0x30,0x9A,0x4C,
   10221      1.1    jruoho         0xED,0x91,0x80,0xBA,0x05,0x61,0xE9,0x41,
   10222      1.1    jruoho         0x68,0x3A,0xBB,0x83,0xA7,0x20,0x54,0x81,
   10223      1.1    jruoho         0x5E,0x30,0xA6,0x19,0x44,0x87,0x05,0x02,
   10224      1.1    jruoho         0x42,0x73,0x81,0x51,0x1D,0xAF,0x96,0x40,
   10225      1.1    jruoho         0x44,0x1B,0x08,0xD5,0x0A,0xA2,0x81,0x93,
   10226      1.1    jruoho         0x1F,0x53,0x10,0x92,0x14,0x84,0xFC,0xFF,
   10227      1.1    jruoho         0x07,0xAA,0xC7,0x9C,0x40,0xAC,0xFA,0x5B,
   10228      1.1    jruoho         0x25,0x50,0x27,0x01,0xA1,0xC9,0x40,0x74,
   10229      1.1    jruoho         0x7C,0x20,0x0F,0xB8,0x83,0x64,0x20,0x54,
   10230      1.1    jruoho         0x29,0x88,0xC0,0xAC,0xF4,0x63,0xA4,0x23,
   10231      1.1    jruoho         0x05,0x51,0x7D,0xBC,0xA0,0x20,0x34,0xD1,
   10232      1.1    jruoho         0x3B,0x2C,0x08,0x7B,0xB8,0x69,0xA8,0xE4,
   10233      1.1    jruoho         0x59,0xA5,0xA1,0x12,0x10,0x9A,0x0D,0x44,
   10234      1.1    jruoho         0xC7,0x04,0xF2,0xAA,0x79,0x4C,0x60,0x20,
   10235      1.1    jruoho         0x54,0x2F,0x08,0xCD,0x01,0x42,0x13,0x83,
   10236      1.1    jruoho         0x08,0xD4,0xA9,0xBF,0x37,0x1A,0x2A,0xF9,
   10237      1.1    jruoho         0x5B,0x09,0xC4,0xCA,0x5E,0x69,0x02,0xB1,
   10238      1.1    jruoho         0xDE,0xA7,0x4E,0x20,0xE6,0x1D,0x98,0xA9,
   10239      1.1    jruoho         0x05,0xA1,0xEA,0x41,0x04,0xE6,0xB4,0x40,
   10240      1.1    jruoho         0x54,0x81,0x78,0x10,0xA6,0x08,0x44,0x60,
   10241      1.1    jruoho         0x4E,0x02,0x44,0xD3,0x81,0xD0,0xEC,0x60,
   10242      1.1    jruoho         0x54,0xE7,0xA3,0x4D,0x40,0xD6,0x0E,0x42,
   10243      1.1    jruoho         0xB3,0x80,0x08,0xCC,0x59,0x1E,0x69,0x02,
   10244      1.1    jruoho         0xB1,0x92,0x2F,0x9D,0x0E,0x24,0x04,0x84,
   10245      1.1    jruoho         0x26,0xD3,0x7F,0x68,0xA1,0x05,0x80,0x99,
   10246      1.1    jruoho         0x84,0x04,0x20,0x4C,0x16,0x88,0x0E,0x27,
   10247      1.1    jruoho         0xD6,0x08,0x22,0x40,0xC7,0x01,0xA3,0xD1,
   10248      1.1    jruoho         0x40,0x68,0x5C,0x40,0x9A,0x1D,0x90,0x2A,
   10249      1.1    jruoho         0x6D,0x00,0xC6,0x54,0x83,0xD0,0x24,0x20,
   10250      1.1    jruoho         0x02,0x74,0x2C,0x10,0x01,0x5A,0x74,0x04,
   10251      1.1    jruoho         0x30,0x16,0x01,0x84,0x46,0x05,0xA1,0xC9,
   10252      1.1    jruoho         0x2A,0x80,0xB2,0x9C,0x20,0x1A,0x20,0xC9,
   10253      1.1    jruoho         0x30,0x60,0x0A,0x42,0x33,0x81,0xD0,0x8C,
   10254      1.1    jruoho         0x20,0x54,0x7C,0x07,0x10,0x16,0x04,0x84,
   10255      1.1    jruoho         0x86,0x03,0xD1,0x00,0xFE,0xFF,0x8F,0x0C,
   10256      1.1    jruoho         0x02,0xD1,0x00,0x9C,0x23,0xC4,0x61,0x85,
   10257      1.1    jruoho         0x82,0xD0,0xF4,0x20,0x34,0x6C,0x09,0x50,
   10258      1.1    jruoho         0x16,0x1D,0x44,0xC7,0x23,0x92,0x02,0x8C,
   10259      1.1    jruoho         0x05,0x02,0xA1,0x31,0x41,0x68,0x6C,0x10,
   10260      1.1    jruoho         0x1A,0x29,0x06,0x28,0x13,0x54,0xE3,0x50,
   10261      1.1    jruoho         0x44,0x7B,0x80,0x31,0x99,0x20,0x54,0x36,
   10262      1.1    jruoho         0x88,0xC0,0x1C,0x14,0x88,0x86,0x07,0xA1,
   10263      1.1    jruoho         0x62,0x82,0x00,0x52,0x10,0x01,0x12,0x20,
   10264      1.1    jruoho         0x1A,0x1E,0x84,0x8A,0x29,0x32,0x74,0x0A,
   10265      1.1    jruoho         0x42,0x55,0x24,0x39,0x9A,0x50,0x10,0x1D,
   10266      1.1    jruoho         0x4D,0x08,0x08,0xCD,0x07,0x46,0x75,0x35,
   10267      1.1    jruoho         0x39,0x6E,0x50,0x10,0xAA,0x1D,0x84,0x06,
   10268      1.1    jruoho         0x05,0xA1,0x39,0xA2,0x80,0xB2,0xEC,0x20,
   10269      1.1    jruoho         0x02,0xB2,0x9E,0x2A,0x87,0x0A,0x0A,0x22,
   10270      1.1    jruoho         0x30,0xA7,0x02,0xA2,0x49,0x41,0xA8,0x8E,
   10271      1.1    jruoho         0x2C,0x47,0x0A,0x9A,0x06,0x84,0x25,0x06,
   10272      1.1    jruoho         0xA1,0xC9,0xDA,0x80,0xB0,0x0C,0x75,0x0E,
   10273      1.1    jruoho         0x24,0x14,0x84,0xE6,0x04,0xA1,0x4A,0xF2,
   10274      1.1    jruoho         0x0C,0x8F,0x82,0xE8,0x38,0x42,0x80,0x68,
   10275      1.1    jruoho         0x7A,0x10,0xAA,0xA6,0xCF,0x00,0x28,0x88,
   10276      1.1    jruoho         0x06,0x40,0x40,0x68,0x4E,0x30,0xAA,0xA8,
   10277      1.1    jruoho         0xD1,0xD1,0x84,0x82,0x50,0xDD,0x2F,0x4E,
   10278      1.1    jruoho         0x81,0xF8,0xFF,0x0F,
   10279      1.1    jruoho     })  // END MBUF
   10280      1.1    jruoho 
   10281      1.1    jruoho } //end DefinitionBlock
   10282      1.1    jruoho 
   10283