Al Stone 69fdad
/*
Al Stone 69fdad
 * Some or all of this work - Copyright (c) 2006 - 2018, Intel Corp.
Al Stone 69fdad
 * All rights reserved.
Al Stone 69fdad
 *
Al Stone 69fdad
 * Redistribution and use in source and binary forms, with or without modification,
Al Stone 69fdad
 * are permitted provided that the following conditions are met:
Al Stone 69fdad
 *
Al Stone 69fdad
 * Redistributions of source code must retain the above copyright notice,
Al Stone 69fdad
 * this list of conditions and the following disclaimer.
Al Stone 69fdad
 * Redistributions in binary form must reproduce the above copyright notice,
Al Stone 69fdad
 * this list of conditions and the following disclaimer in the documentation
Al Stone 69fdad
 * and/or other materials provided with the distribution.
Al Stone 69fdad
 * Neither the name of Intel Corporation nor the names of its contributors
Al Stone 69fdad
 * may be used to endorse or promote products derived from this software
Al Stone 69fdad
 * without specific prior written permission.
Al Stone 69fdad
 *
Al Stone 69fdad
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Al Stone 69fdad
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Al Stone 69fdad
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
Al Stone 69fdad
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
Al Stone 69fdad
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Al Stone 69fdad
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
Al Stone 69fdad
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Al Stone 69fdad
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
Al Stone 69fdad
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
Al Stone 69fdad
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Al Stone 69fdad
 */
Al Stone 69fdad
Al Stone 69fdad
//
Al Stone 69fdad
//
Al Stone 69fdad
// Grammar.asl - Minimally excercises most ASL constructs
Al Stone 69fdad
//
Al Stone 69fdad
// NOTE -- use: iasl -f -of grammar.asl to compile
Al Stone 69fdad
//
Al Stone 69fdad
//         This 1) Ignores errors (checks compiler error handling)
Al Stone 69fdad
//              2) Disables constant folding
Al Stone 69fdad
//
Al Stone 69fdad
//
Al Stone 69fdad
Al Stone 69fdad
/*******************************************************************************
Al Stone 69fdad
Compilation should look like this:
Al Stone 69fdad
Al Stone 69fdad
C:\acpica\tests\misc>iasl -f -of grammar.asl
Al Stone 69fdad
Al Stone 69fdad
Intel ACPI Component Architecture
Al Stone 69fdad
ASL Optimizing Compiler version 20090422 [Apr 22 2009]
Al Stone 69fdad
Copyright (C) 2000 - 2009 Intel Corporation
Al Stone 69fdad
Supports ACPI Specification Revision 3.0a
Al Stone 69fdad
Al Stone 69fdad
grammar.asl   187:     Name (_NPK, Package (8)
Al Stone 69fdad
Warning  1098 -                 ^ Unknown reserved name (_NPK)
Al Stone 69fdad
Al Stone 69fdad
grammar.asl   510:     NAME (ESC1, "abcdefg\x00hijklmn")
Al Stone 69fdad
Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
Al Stone 69fdad
Al Stone 69fdad
grammar.asl   511:     NAME (ESC2, "abcdefg\000hijklmn")
Al Stone 69fdad
Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
Al Stone 69fdad
Al Stone 69fdad
grammar.asl   601:     Method (RCIV, 1)
Al Stone 69fdad
Warning  1087 -                   ^ Not all control paths return a value (RCIV)
Al Stone 69fdad
Al Stone 69fdad
grammar.asl   608:         RCIV (Subtract (Arg0, 1))
Al Stone 69fdad
Remark   5073 -               ^ Recursive method call (RCIV)
Al Stone 69fdad
Al Stone 69fdad
grammar.asl   937:     Method (_ERR, 2)
Al Stone 69fdad
Warning  1077 -                   ^ Reserved method has too few arguments (_ERR requires 3)
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  1377:         Store (0x1234567887654321, QWD2)
Al Stone 69fdad
Warning  1032 -                                    ^ 64-bit integer in 32-bit table, truncating
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  1379:         if (LNotEqual (Local0, 0x1234567887654321))
Al Stone 69fdad
Warning  1032 -         64-bit integer in 32-bit table, truncating ^
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  1459:         SizeOf (BUFO)
Al Stone 69fdad
Warning  1105 -                       ^ Result is not used, operator has no effect
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  1485:         Acquire (MTX2, 1)
Al Stone 69fdad
Warning  1104 -                           ^ Possible operator timeout is ignored
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  1633:         Add (Local0, Local1)
Al Stone 69fdad
Warning  1105 -                      ^ Result is not used, operator has no effect
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  1804:     Method (COND)
Al Stone 69fdad
Warning  1087 -                   ^ Not all control paths return a value (COND)
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  6010:             Name (_HID, "*PNP0A06")
Al Stone 69fdad
Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0A06)
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  6461:             Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
Al Stone 69fdad
Warning  1038 -        Invalid or unknown escape sequence ^
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  6800:                 And (Local0, 1, Local0) //  Local0 &= 1
Al Stone 69fdad
Error    4050 -                              ^ Method local variable is not initialized (Local0)
Al Stone 69fdad
Al Stone 69fdad
grammar.asl  6886:             Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
Al Stone 69fdad
Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0C0A)
Al Stone 69fdad
Al Stone 69fdad
ASL Input:  grammar.asl - 10254 lines, 322162 bytes, 4810 keywords
Al Stone 69fdad
AML Output: grammar.aml - 43392 bytes, 669 named objects, 4141 executable opcodes
Al Stone 69fdad
Al Stone 69fdad
Compilation complete. 3 Errors, 12 Warnings, 1 Remarks, 1101 Optimizations
Al Stone 69fdad
Al Stone 69fdad
***************************************************************************************************/
Al Stone 69fdad
Al Stone 69fdad
DefinitionBlock (
Al Stone 69fdad
    "grammar.aml",      //Output filename
Al Stone 69fdad
    "DSDT",             //Signature
Al Stone 69fdad
    0x01,               //DSDT Revision ---> 32-bit table
Al Stone 69fdad
    "Intel",            //OEMID
Al Stone 69fdad
    "GRMTEST",          //TABLE ID
Al Stone 69fdad
    0x20090511          //OEM Revision
Al Stone 69fdad
    )
Al Stone 69fdad
{
Al Stone 69fdad
Al Stone 69fdad
    External (\ABCD, UnknownObj)
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    /* Device with _STA and _INI */
Al Stone 69fdad
Al Stone 69fdad
    Device (A1)
Al Stone 69fdad
    {
Al Stone 69fdad
        Method (_STA)
Al Stone 69fdad
        {
Al Stone 69fdad
            Return (0x0F)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_INI)
Al Stone 69fdad
        {
Al Stone 69fdad
            Return
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    /* Device with no _STA, has _INI */
Al Stone 69fdad
Al Stone 69fdad
    Device (A2)
Al Stone 69fdad
    {
Al Stone 69fdad
        Method (_INI)
Al Stone 69fdad
        {
Al Stone 69fdad
            Return
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    /* Device with _STA, no _INI */
Al Stone 69fdad
Al Stone 69fdad
    Device (A3)
Al Stone 69fdad
    {
Al Stone 69fdad
        Method (_STA)
Al Stone 69fdad
        {
Al Stone 69fdad
            Return (0x0F)
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    /* Device with _STA and _INI, but not present */
Al Stone 69fdad
Al Stone 69fdad
    Device (A4)
Al Stone 69fdad
    {
Al Stone 69fdad
        Method (_STA)
Al Stone 69fdad
        {
Al Stone 69fdad
            Return (Zero)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_INI)
Al Stone 69fdad
        {
Al Stone 69fdad
            Return
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    /* Resource descriptors */
Al Stone 69fdad
Al Stone 69fdad
    Device (IRES)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (PRT0, ResourceTemplate ()
Al Stone 69fdad
        {
Al Stone 69fdad
            IRQ (Edge, ActiveHigh, Exclusive) {3,4,5,6,7,9,10,11,14,15}
Al Stone 69fdad
Al Stone 69fdad
            StartDependentFn (1,1)
Al Stone 69fdad
            {
Al Stone 69fdad
                IRQNoFlags () {0,1,2}
Al Stone 69fdad
            }
Al Stone 69fdad
            EndDependentFn ()
Al Stone 69fdad
        })
Al Stone 69fdad
Al Stone 69fdad
        Method (_CRS, 0, NotSerialized)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("_CRS:", Debug)
Al Stone 69fdad
            Store (PRT0, Debug)
Al Stone 69fdad
            Return (PRT0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_SRS, 1, Serialized)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("_SRS:", Debug)
Al Stone 69fdad
            Store (Arg0, Debug)
Al Stone 69fdad
            Return (Zero)
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Name (_NPK, Package ()
Al Stone 69fdad
    {
Al Stone 69fdad
        0x1111,
Al Stone 69fdad
        0x2222,
Al Stone 69fdad
        0x3333,
Al Stone 69fdad
        0x4444
Al Stone 69fdad
    })
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Device (RES)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (_PRT, Package (0x04)
Al Stone 69fdad
        {
Al Stone 69fdad
            Package (0x04)
Al Stone 69fdad
            {
Al Stone 69fdad
                0x0002FFFF,
Al Stone 69fdad
                Zero,
Al Stone 69fdad
                Zero,
Al Stone 69fdad
                Zero
Al Stone 69fdad
            },
Al Stone 69fdad
Al Stone 69fdad
            Package (0x04)
Al Stone 69fdad
            {
Al Stone 69fdad
                0x0002FFFF,
Al Stone 69fdad
                One,
Al Stone 69fdad
                Zero,
Al Stone 69fdad
                Zero
Al Stone 69fdad
            },
Al Stone 69fdad
Al Stone 69fdad
            Package (0x04)
Al Stone 69fdad
            {
Al Stone 69fdad
                0x000AFFFF,
Al Stone 69fdad
                Zero,
Al Stone 69fdad
                Zero,
Al Stone 69fdad
                Zero
Al Stone 69fdad
            },
Al Stone 69fdad
Al Stone 69fdad
            Package (0x04)
Al Stone 69fdad
            {
Al Stone 69fdad
                0x000BFFFF,
Al Stone 69fdad
                Zero,
Al Stone 69fdad
                Zero,
Al Stone 69fdad
                Zero
Al Stone 69fdad
            }
Al Stone 69fdad
        })
Al Stone 69fdad
Al Stone 69fdad
        Method (_CRS, 0, Serialized)
Al Stone 69fdad
        {
Al Stone 69fdad
            Name (PRT0, ResourceTemplate ()
Al Stone 69fdad
            {
Al Stone 69fdad
                WordBusNumber (ResourceConsumer, MinFixed, MaxFixed, SubDecode,
Al Stone 69fdad
                    0x0000, // Address Space Granularity
Al Stone 69fdad
                    0xFFF2, // Address Range Minimum
Al Stone 69fdad
                    0xFFF3, // Address Range Maximum
Al Stone 69fdad
                    0x0032, // Address Translation Offset
Al Stone 69fdad
                    0x0002,,,)
Al Stone 69fdad
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
Al Stone 69fdad
                    0x0000, // Address Space Granularity
Al Stone 69fdad
                    0x0000, // Address Range Minimum
Al Stone 69fdad
                    0x00FF, // Address Range Maximum
Al Stone 69fdad
                    0x0000, // Address Translation Offset
Al Stone 69fdad
                    0x0100,,,)
Al Stone 69fdad
                WordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
Al Stone 69fdad
                    0x0000, // Address Space Granularity
Al Stone 69fdad
                    0xA000, // Address Range Minimum
Al Stone 69fdad
                    0xBFFF, // Address Range Maximum
Al Stone 69fdad
                    0x0000, // Address Translation Offset
Al Stone 69fdad
                    0x2000,,,)
Al Stone 69fdad
                IO (Decode16, 0x0CF8, 0x0CFF, 0x01, 0x08)
Al Stone 69fdad
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
Al Stone 69fdad
                    0x0000, // Address Space Granularity
Al Stone 69fdad
                    0x0000, // Address Range Minimum
Al Stone 69fdad
                    0x0CF7, // Address Range Maximum
Al Stone 69fdad
                    0x0000, // Address Translation Offset
Al Stone 69fdad
                    0x0CF8,,,
Al Stone 69fdad
                    , TypeStatic)
Al Stone 69fdad
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
Al Stone 69fdad
                    0x0000, // Address Space Granularity
Al Stone 69fdad
                    0x0D00, // Address Range Minimum
Al Stone 69fdad
                    0xFFFF, // Address Range Maximum
Al Stone 69fdad
                    0x0000, // Address Translation Offset
Al Stone 69fdad
                    0xF300,,,
Al Stone 69fdad
                    , TypeStatic)
Al Stone 69fdad
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
Al Stone 69fdad
                    0x00000000, // Address Space Granularity
Al Stone 69fdad
                    0x00000000, // Address Range Minimum
Al Stone 69fdad
                    0x00000CF7, // Address Range Maximum
Al Stone 69fdad
                    0x00000000, // Address Translation Offset
Al Stone 69fdad
                    0x00000CF8,,,
Al Stone 69fdad
                    , TypeStatic)
Al Stone 69fdad
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
Al Stone 69fdad
                    0x00000000, // Address Space Granularity
Al Stone 69fdad
                    0x000C8000, // Address Range Minimum
Al Stone 69fdad
                    0x000EFFFF, // Address Range Maximum
Al Stone 69fdad
                    0x00000000, // Address Translation Offset
Al Stone 69fdad
                    0x00028000,,,
Al Stone 69fdad
                    , AddressRangeMemory, TypeStatic)
Al Stone 69fdad
                DWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
Al Stone 69fdad
                    0x00000000, // Address Space Granularity
Al Stone 69fdad
                    0x000C8000, // Address Range Minimum
Al Stone 69fdad
                    0x000EFFFF, // Address Range Maximum
Al Stone 69fdad
                    0x00000000, // Address Translation Offset
Al Stone 69fdad
                    0x00028000,,,)
Al Stone 69fdad
                QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
Al Stone 69fdad
                    0x0000000000000000, // Address Space Granularity
Al Stone 69fdad
                    0x0000000000000000, // Address Range Minimum
Al Stone 69fdad
                    0x0000000000000CF7, // Address Range Maximum
Al Stone 69fdad
                    0x0000000000000000, // Address Translation Offset
Al Stone 69fdad
                    0x0000000000000CF8, 0x44, "This is a ResouceSource string",
Al Stone 69fdad
                    , TypeStatic)
Al Stone 69fdad
                QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
Al Stone 69fdad
                    0x0000000000000000, // Address Space Granularity
Al Stone 69fdad
                    0x0000000000000000, // Address Range Minimum
Al Stone 69fdad
                    0x0000000000000CF7, // Address Range Maximum
Al Stone 69fdad
                    0x0000000000000000, // Address Translation Offset
Al Stone 69fdad
                    0x0000000000000CF8,,,
Al Stone 69fdad
                    , TypeStatic)
Al Stone 69fdad
                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
Al Stone 69fdad
                    0x0000000000000000, // Address Space Granularity
Al Stone 69fdad
                    0x0000000000100000, // Address Range Minimum
Al Stone 69fdad
                    0x00000000FFDFFFFF, // Address Range Maximum
Al Stone 69fdad
                    0x0000000000000000, // Address Translation Offset
Al Stone 69fdad
                    0x00000000FFD00000,,,
Al Stone 69fdad
                    , AddressRangeMemory, TypeStatic)
Al Stone 69fdad
                QWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
Al Stone 69fdad
                    0x0000000000000000, // Address Space Granularity
Al Stone 69fdad
                    0x0000000000000000, // Address Range Minimum
Al Stone 69fdad
                    0x0000000000000CF7, // Address Range Maximum
Al Stone 69fdad
                    0x0000000000000000, // Address Translation Offset
Al Stone 69fdad
                    0x0000000000000CF8,,,)
Al Stone 69fdad
                ExtendedIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
Al Stone 69fdad
                    0x0000000000000000, // Address Space Granularity
Al Stone 69fdad
                    0x0000000000000000, // Address Range Minimum
Al Stone 69fdad
                    0x0000000000000CF7, // Address Range Maximum
Al Stone 69fdad
                    0x0000000000000000, // Address Translation Offset
Al Stone 69fdad
                    0x0000000000000CF8, // Address Length
Al Stone 69fdad
                    0x0000000000000000, // Type Specific Attributes
Al Stone 69fdad
                    , TypeStatic)
Al Stone 69fdad
                ExtendedMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
Al Stone 69fdad
                    0x0000000000000000, // Address Space Granularity
Al Stone 69fdad
                    0x0000000000100000, // Address Range Minimum
Al Stone 69fdad
                    0x00000000FFDFFFFF, // Address Range Maximum
Al Stone 69fdad
                    0x0000000000000000, // Address Translation Offset
Al Stone 69fdad
                    0x00000000FFD00000, // Address Length
Al Stone 69fdad
                    0x0000000000000000, // Type Specific Attributes
Al Stone 69fdad
                    , AddressRangeMemory, TypeStatic)
Al Stone 69fdad
                ExtendedSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0xA3,
Al Stone 69fdad
                    0x0000000000000000, // Address Space Granularity
Al Stone 69fdad
                    0x0000000000100000, // Address Range Minimum
Al Stone 69fdad
                    0x00000000FFDFFFFF, // Address Range Maximum
Al Stone 69fdad
                    0x0000000000000000, // Address Translation Offset
Al Stone 69fdad
                    0x00000000FFD00000, // Address Length
Al Stone 69fdad
                    0x0000000000000000) // Type Specific Attributes
Al Stone 69fdad
                IO (Decode16, 0x0010, 0x0020, 0x01, 0x10)
Al Stone 69fdad
                IO (Decode16, 0x0090, 0x00A0, 0x01, 0x10)
Al Stone 69fdad
                FixedIO (0x0061, 0x01)
Al Stone 69fdad
                IRQNoFlags () {2}
Al Stone 69fdad
                DMA (Compatibility, BusMaster, Transfer8_16) {4}
Al Stone 69fdad
                DMA (Compatibility, BusMaster, Transfer8) {2,5,7}
Al Stone 69fdad
                Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
Al Stone 69fdad
                Memory32Fixed (ReadOnly, 0xFFFE0000, 0x00020000)
Al Stone 69fdad
                Memory32 (ReadOnly, 0x00020000, 0xFFFE0000, 0x00000004, 0x00000200)
Al Stone 69fdad
                Memory24 (ReadOnly, 0x1111, 0x2222, 0x0004, 0x0200)
Al Stone 69fdad
                Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, 0xE, "\\_SB_.TEST")
Al Stone 69fdad
                {
Al Stone 69fdad
                    0x00000E01,
Al Stone 69fdad
                }
Al Stone 69fdad
                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0x6, "xxxx")
Al Stone 69fdad
                {
Al Stone 69fdad
                    0x00000601,
Al Stone 69fdad
                    0x00000003,
Al Stone 69fdad
                    0x00000002,
Al Stone 69fdad
                    0x00000001,
Al Stone 69fdad
                }
Al Stone 69fdad
                Interrupt (ResourceProducer, Edge, ActiveHigh, Exclusive)
Al Stone 69fdad
                {
Al Stone 69fdad
                    0xFFFF0000,
Al Stone 69fdad
                    0x00000003,
Al Stone 69fdad
                    0x00000002,
Al Stone 69fdad
                    0x00000001,
Al Stone 69fdad
                    0x00000005,
Al Stone 69fdad
                    0x00000007,
Al Stone 69fdad
                    0x00000009,
Al Stone 69fdad
                }
Al Stone 69fdad
                VendorShort () {0x01, 0x02, 0x03}
Al Stone 69fdad
                VendorLong ()
Al Stone 69fdad
                {
Al Stone 69fdad
                    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
Al Stone 69fdad
                    0x09
Al Stone 69fdad
                }
Al Stone 69fdad
                Register (SystemIO, 0x08, 0x00, 0x00000000000000B2, , R000)
Al Stone 69fdad
                Register (SystemMemory, 0x08, 0x00, 0x00000000000000B2)
Al Stone 69fdad
                StartDependentFnNoPri ()
Al Stone 69fdad
                {
Al Stone 69fdad
                    IRQNoFlags () {0,1,2}
Al Stone 69fdad
                    IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,14,15}
Al Stone 69fdad
                }
Al Stone 69fdad
                EndDependentFn ()
Al Stone 69fdad
            })
Al Stone 69fdad
            CreateWordField (PRT0, 0x08, BMIN)
Al Stone 69fdad
            CreateByteField (PRT0, R000._ASZ, RSIZ)
Al Stone 69fdad
            Store (0x03, BMIN)
Al Stone 69fdad
            Return (PRT0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_PRS, 0, Serialized)
Al Stone 69fdad
        {
Al Stone 69fdad
            Name (BUF0, ResourceTemplate ()
Al Stone 69fdad
            {
Al Stone 69fdad
                StartDependentFn (0x01, 0x02)
Al Stone 69fdad
                {
Al Stone 69fdad
                    IO (Decode16, 0x03D8, 0x03F8, 0x01, 0x08)
Al Stone 69fdad
                    IRQNoFlags () {4}
Al Stone 69fdad
                }
Al Stone 69fdad
                StartDependentFn (0x02, 0x01)
Al Stone 69fdad
                {
Al Stone 69fdad
                    IO (Decode16, 0x03D8, 0x03E8, 0x01, 0x08)
Al Stone 69fdad
                    IRQNoFlags () {4}
Al Stone 69fdad
                }
Al Stone 69fdad
                StartDependentFn (0x00, 0x02)
Al Stone 69fdad
                {
Al Stone 69fdad
                    IO (Decode16, 0x02E8, 0x02F8, 0x01, 0x08)
Al Stone 69fdad
                    IRQNoFlags () {3}
Al Stone 69fdad
                }
Al Stone 69fdad
                StartDependentFn (0x00, 0x02)
Al Stone 69fdad
                {
Al Stone 69fdad
                    IO (Decode16, 0x02D8, 0x02E8, 0x01, 0x08)
Al Stone 69fdad
                    IRQNoFlags () {3}
Al Stone 69fdad
                }
Al Stone 69fdad
                StartDependentFn (0x02, 0x00)
Al Stone 69fdad
                {
Al Stone 69fdad
                    IO (Decode16, 0x0100, 0x03F8, 0x08, 0x08)
Al Stone 69fdad
                    IRQNoFlags () {1,3,4,5,6,7,8,10,11,12,13,14,15}
Al Stone 69fdad
                }
Al Stone 69fdad
                EndDependentFn ()
Al Stone 69fdad
            })
Al Stone 69fdad
            Return (BUF0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_SRS, 1, Serialized)
Al Stone 69fdad
        {
Al Stone 69fdad
            Return (Zero)
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Name(\_S0,Package(0x04){
Al Stone 69fdad
        0x00,
Al Stone 69fdad
        0x00,
Al Stone 69fdad
        0x00,
Al Stone 69fdad
        0x00
Al Stone 69fdad
    })
Al Stone 69fdad
    Name(\_S3,Package(0x04){
Al Stone 69fdad
        0x05,
Al Stone 69fdad
        0x05,
Al Stone 69fdad
        0x00,
Al Stone 69fdad
        0x00
Al Stone 69fdad
    })
Al Stone 69fdad
    Name(\_S4,Package(0x04){
Al Stone 69fdad
        0x06,
Al Stone 69fdad
        0x06,
Al Stone 69fdad
        0x00,
Al Stone 69fdad
        0x00
Al Stone 69fdad
    })
Al Stone 69fdad
    Name(\_S5,Package(0x04){
Al Stone 69fdad
        0x07,
Al Stone 69fdad
        0x07,
Al Stone 69fdad
        0x00,
Al Stone 69fdad
        0x00
Al Stone 69fdad
    })
Al Stone 69fdad
Al Stone 69fdad
/* Examine this table header (DSDT) */
Al Stone 69fdad
Al Stone 69fdad
/*
Al Stone 69fdad
    DataTableRegion (HDR, "DSDT", "", "")
Al Stone 69fdad
    Field (HDR, AnyAcc, NoLock, Preserve)
Al Stone 69fdad
    {
Al Stone 69fdad
        SIG,  32,
Al Stone 69fdad
        LENG, 32,
Al Stone 69fdad
        REV,  8,
Al Stone 69fdad
        SUM,  8,
Al Stone 69fdad
        OID,  48,
Al Stone 69fdad
        OTID, 64,
Al Stone 69fdad
        OREV, 32,
Al Stone 69fdad
        CID,  32,
Al Stone 69fdad
        CREV, 32
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (SIZE)
Al Stone 69fdad
    {
Al Stone 69fdad
        If (LLess (REV, 2))
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("32-bit table", Debug)
Al Stone 69fdad
        }
Al Stone 69fdad
        else
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("64-bit table", Debug)
Al Stone 69fdad
        }
Al Stone 69fdad
        Return (0)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
*/
Al Stone 69fdad
    Name (SIZE, 0)
Al Stone 69fdad
Al Stone 69fdad
    /* Custom operation region */
Al Stone 69fdad
Al Stone 69fdad
    OperationRegion(MYOP,0x80,0xFD60,0x6)
Al Stone 69fdad
    Field(MYOP,ByteAcc,NoLock,Preserve)
Al Stone 69fdad
    {
Al Stone 69fdad
        MFLD,8
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (TCOP,, Serialized)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (_STR, Unicode ("test"))
Al Stone 69fdad
        Store (4, MFLD)
Al Stone 69fdad
        Store (MFLD, Local0)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Name (ERRS, 0x0)
Al Stone 69fdad
Al Stone 69fdad
    /* Warning should be issued for premature string termination */
Al Stone 69fdad
Al Stone 69fdad
    NAME (ESC1, "abcdefg\x00hijklmn")
Al Stone 69fdad
    NAME (ESC2, "abcdefg\000hijklmn")
Al Stone 69fdad
    Name (ESC3, "abc\a\bdef\f\n\r\t\v\x03ffff\432")
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Name(CRSA,ResourceTemplate()
Al Stone 69fdad
    {
Al Stone 69fdad
        WORDBusNumber(ResourceProducer,MinFixed,MaxFixed,PosDecode,0x0000,0x0019,0x001D,0x0000,0x0005)
Al Stone 69fdad
        WORDIO(ResourceProducer,MinFixed,MaxFixed,PosDecode,NonISAOnlyRanges,0x0000,0xC000,0xCFFF,0x0000,0x1000)
Al Stone 69fdad
        DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
Al Stone 69fdad
Al Stone 69fdad
    })
Al Stone 69fdad
    Name(CRSB,ResourceTemplate()
Al Stone 69fdad
    {
Al Stone 69fdad
        DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
Al Stone 69fdad
Al Stone 69fdad
    })
Al Stone 69fdad
Al Stone 69fdad
    Name(CRSC,ResourceTemplate()
Al Stone 69fdad
    {
Al Stone 69fdad
        VendorShort () {0x1, 0x2, 0x3}
Al Stone 69fdad
    })
Al Stone 69fdad
    Name(CRSD,ResourceTemplate()
Al Stone 69fdad
    {
Al Stone 69fdad
        VendorLong (VNDL) {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9}
Al Stone 69fdad
    })
Al Stone 69fdad
Al Stone 69fdad
    Name(CRSE,ResourceTemplate()
Al Stone 69fdad
    {
Al Stone 69fdad
        IRQNoFlags(){3,4,10,11}
Al Stone 69fdad
        IRQNoFlags(xxxt){3,4,10,11}
Al Stone 69fdad
    })
Al Stone 69fdad
    Name(CRSR, Buffer (Add (SizeOf(CRSA),SizeOf(CRSB))){})
Al Stone 69fdad
    Method(_CRS,0,NotSerialized)
Al Stone 69fdad
    {
Al Stone 69fdad
        Return(CRSR)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    //
Al Stone 69fdad
    // Unnamed scope
Al Stone 69fdad
    //
Al Stone 69fdad
    Scope (\)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name(Bxxx,0xFFFFFFFF)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Name (LANS, 0x0)
Al Stone 69fdad
Al Stone 69fdad
    PowerResource(LANP,1,0)
Al Stone 69fdad
    {
Al Stone 69fdad
        Method(_STA){
Al Stone 69fdad
            If(LEqual(And(LANS,0x30),0x30)){
Al Stone 69fdad
                Return(One)
Al Stone 69fdad
            } Else {
Al Stone 69fdad
                Return(Zero)
Al Stone 69fdad
            }
Al Stone 69fdad
        }
Al Stone 69fdad
        Method(_ON){
Al Stone 69fdad
            If(LNot(_STA())){
Al Stone 69fdad
                Store (0x30, LANS)
Al Stone 69fdad
            }
Al Stone 69fdad
        }
Al Stone 69fdad
        Method(_OFF){
Al Stone 69fdad
            If(_STA()){
Al Stone 69fdad
                Store (0, LANS)
Al Stone 69fdad
            }
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    /* Can a method define another method? */
Al Stone 69fdad
Al Stone 69fdad
    /**********************************
Al Stone 69fdad
    Method (TASK, 2, SERIALIZED)
Al Stone 69fdad
    {
Al Stone 69fdad
        Sleep (100)
Al Stone 69fdad
Al Stone 69fdad
        Method (TAS2)
Al Stone 69fdad
        {
Al Stone 69fdad
            Sleep (100)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        TAS2()
Al Stone 69fdad
        Return
Al Stone 69fdad
Al Stone 69fdad
    }
Al Stone 69fdad
    ************************************/
Al Stone 69fdad
Al Stone 69fdad
    /* A recursive method */
Al Stone 69fdad
Al Stone 69fdad
    Method (RCIV, 1)
Al Stone 69fdad
    {
Al Stone 69fdad
        Store (Arg0, Debug)
Al Stone 69fdad
        If (Lequal (Arg0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            Return ()
Al Stone 69fdad
        }
Al Stone 69fdad
        RCIV (Subtract (Arg0, 1))
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (RTOP)
Al Stone 69fdad
    {
Al Stone 69fdad
        RCIV (100)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Scope(\_PR)
Al Stone 69fdad
    {
Al Stone 69fdad
        Processor(CPU0,0x0,0xFFFFFFFF,0x0) {}
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Name(B1TP,0xFFFFFFFF)
Al Stone 69fdad
Al Stone 69fdad
    Name(B2TP,0xFFFFFFFF)
Al Stone 69fdad
    Name(ADPS,0xFFFFFFFF)
Al Stone 69fdad
    Name(B1PS,0xFFFFFFFF)
Al Stone 69fdad
    Name(B1RS,0xFFFFFFFF)
Al Stone 69fdad
    Name(B1CS,0xFFFFFFFF)
Al Stone 69fdad
    Name(B2PS,0xFFFFFFFF)
Al Stone 69fdad
    Name(B2RS,0xFFFFFFFF)
Al Stone 69fdad
    Name(B2CS,0xFFFFFFFF)
Al Stone 69fdad
    Name(B1DC,3000)
Al Stone 69fdad
    Name(B2DC,2600)
Al Stone 69fdad
    Name(B1LF,3000)
Al Stone 69fdad
    Name(B2LF,2600)
Al Stone 69fdad
    Name(BPIF,0)
Al Stone 69fdad
    Name(PBLL,0)
Al Stone 69fdad
Al Stone 69fdad
    Name(RBIF,Package()
Al Stone 69fdad
    {
Al Stone 69fdad
        0x1,
Al Stone 69fdad
        2200,
Al Stone 69fdad
        2200,
Al Stone 69fdad
        0x1,
Al Stone 69fdad
        10800,
Al Stone 69fdad
        0,
Al Stone 69fdad
        0,
Al Stone 69fdad
        1,
Al Stone 69fdad
        1,
Al Stone 69fdad
        "CA54200-5003/5",
Al Stone 69fdad
        "1",
Al Stone 69fdad
        "LION",
Al Stone 69fdad
        "Fujitsu"
Al Stone 69fdad
    })
Al Stone 69fdad
Al Stone 69fdad
    Method(SMWE, 4)
Al Stone 69fdad
    {
Al Stone 69fdad
       return(ONES)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method(SMRE, 4)
Al Stone 69fdad
    {
Al Stone 69fdad
       return(ONES)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
/*
Al Stone 69fdad
    Method(RDBT,0,Serialized){
Al Stone 69fdad
        If(LNot(SMWE(0x09,0x15,1,1))){
Al Stone 69fdad
                    Store(0x18,Local2)
Al Stone 69fdad
            }
Al Stone 69fdad
    }
Al Stone 69fdad
*/
Al Stone 69fdad
    Scope(_SB)
Al Stone 69fdad
    {
Al Stone 69fdad
Al Stone 69fdad
        Name (SBUF, Buffer (128) {})
Al Stone 69fdad
Al Stone 69fdad
        CreateBitField (SBUF, 3, BITY)
Al Stone 69fdad
        CreateByteField (SBUF, 1, BYTY)
Al Stone 69fdad
        CreateWordField (SBUF, 2, WRDZ)
Al Stone 69fdad
        CreateDwordField (SBUF, 4, DWDZ)
Al Stone 69fdad
        CreateQwordField (SBUF, 8, QWDZ)
Al Stone 69fdad
        CreateField (SBUF, 128, 12, FLDZ)
Al Stone 69fdad
        CreateField (SBUF, 148, 96, FLDY)
Al Stone 69fdad
        CreateField (SBUF, 148, 96, \_SB_.FLDW)
Al Stone 69fdad
Al Stone 69fdad
        Method (_INI)
Al Stone 69fdad
        {
Al Stone 69fdad
            CreateField (\_SB_.SBUF, 148, 96, FLDV)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Device(PCI0)
Al Stone 69fdad
        {
Al Stone 69fdad
            Name(_HID,EISAID("PNP0A03"))
Al Stone 69fdad
            Name(_ADR,0x0)
Al Stone 69fdad
Al Stone 69fdad
            Method(_CRS,, Serialized)
Al Stone 69fdad
            {
Al Stone 69fdad
                Name(PRT0, ResourceTemplate() {
Al Stone 69fdad
                    WORDBusNumber(                          // Bus number resource(0)
Al Stone 69fdad
                            ResourceConsumer,               // bit 0 of general flags is 1
Al Stone 69fdad
                            MinFixed,                       // Range is notfixed
Al Stone 69fdad
                            MaxFixed,                       // Range is not fixed
Al Stone 69fdad
                            SubDecode,                      // SubDecode
Al Stone 69fdad
                            0x0000,                           // Granularity
Al Stone 69fdad
                            0xfff1,                           // Min
Al Stone 69fdad
                            0xfff2,                           // Max
Al Stone 69fdad
                            0x0032,                           // Translation
Al Stone 69fdad
                            0x0002,,,                         // Range Length
Al Stone 69fdad
                            BUS0
Al Stone 69fdad
                    ) } )// PRT0
Al Stone 69fdad
Al Stone 69fdad
                CreateWordField(PRT0, BUS0._MIN, BMIN)          //Minimum bus number suported under this bridge.
Al Stone 69fdad
Al Stone 69fdad
                Store(3, BMIN)
Al Stone 69fdad
                Return(PRT0)
Al Stone 69fdad
Al Stone 69fdad
            } // _CRS
Al Stone 69fdad
Al Stone 69fdad
            Method(_SRS)
Al Stone 69fdad
            {
Al Stone 69fdad
                Return ()
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            Device(EIO)
Al Stone 69fdad
            {
Al Stone 69fdad
                OperationRegion(FJIO,SystemIO,0xFD60,0x6)
Al Stone 69fdad
                    Field(FJIO,ByteAcc,NoLock,Preserve)
Al Stone 69fdad
                    {
Al Stone 69fdad
                        GIDX,8,
Al Stone 69fdad
Al Stone 69fdad
                        GDTA,8,
Al Stone 69fdad
Al Stone 69fdad
                        PIDX,8,
Al Stone 69fdad
Al Stone 69fdad
                        PDTA,8,
Al Stone 69fdad
Al Stone 69fdad
                        SIDX,8,
Al Stone 69fdad
Al Stone 69fdad
                        SDTA,8
Al Stone 69fdad
                    }
Al Stone 69fdad
                    IndexField(GIDX,GDTA,ByteAcc,NoLock,Preserve)
Al Stone 69fdad
                    {
Al Stone 69fdad
                        Offset(0x2),
Al Stone 69fdad
                         ,5,
Al Stone 69fdad
                        VGAS,2,
Al Stone 69fdad
                        Offset(0x4),
Al Stone 69fdad
                         ,4,
Al Stone 69fdad
                        DCKE,1,
Al Stone 69fdad
                        Offset(0x5),
Al Stone 69fdad
                         ,6,
Al Stone 69fdad
                        ACPW,1,
Al Stone 69fdad
Al Stone 69fdad
                        Offset(0xA),
Al Stone 69fdad
                        B1P,1,
Al Stone 69fdad
Al Stone 69fdad
                        B2P,1,
Al Stone 69fdad
Al Stone 69fdad
                        B1C,1,
Al Stone 69fdad
Al Stone 69fdad
                        B2C,1,
Al Stone 69fdad
Al Stone 69fdad
                        B1ER,1,
Al Stone 69fdad
Al Stone 69fdad
                        B2ER,1,
Al Stone 69fdad
Al Stone 69fdad
                        Offset(0xB),
Al Stone 69fdad
                        B1CP,8,
Al Stone 69fdad
Al Stone 69fdad
                        B2CP,8,
Al Stone 69fdad
Al Stone 69fdad
                        BCP,8,
Al Stone 69fdad
Al Stone 69fdad
                        B1VH,8,
Al Stone 69fdad
Al Stone 69fdad
                        B1VL,8,
Al Stone 69fdad
Al Stone 69fdad
                        B2VH,8,
Al Stone 69fdad
Al Stone 69fdad
                        B2VL,8,
Al Stone 69fdad
Al Stone 69fdad
                        B1TM,8,
Al Stone 69fdad
Al Stone 69fdad
                        B2TM,8,
Al Stone 69fdad
Al Stone 69fdad
                        B1CH,8,
Al Stone 69fdad
Al Stone 69fdad
                        B1CL,8,
Al Stone 69fdad
Al Stone 69fdad
                        B2CH,8,
Al Stone 69fdad
Al Stone 69fdad
                        B2CL,8
Al Stone 69fdad
                    }
Al Stone 69fdad
                }
Al Stone 69fdad
            }
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method(RDBT,3,Serialized){
Al Stone 69fdad
            Store(0x1FFF,Local1)
Al Stone 69fdad
            If( Arg0 ){
Al Stone 69fdad
                Store(0x2FFF,Local1)
Al Stone 69fdad
            }
Al Stone 69fdad
            Store(0x18,Local2)
Al Stone 69fdad
            If( Arg1 ){
Al Stone 69fdad
                Store(0x10,Local2)
Al Stone 69fdad
            }
Al Stone 69fdad
            If(LNot(SMRE(0x09,0x15,1,RefOf(Local0)))){
Al Stone 69fdad
                If(LNot(SMWE(0x08,0x14,1,Local1))){
Al Stone 69fdad
                    If(LNot(SMRE(0x09,0x17,Local2,RefOf(Local3)))){
Al Stone 69fdad
                        Store(Local1,Arg2)
Al Stone 69fdad
                    }
Al Stone 69fdad
                }
Al Stone 69fdad
                Or(Local0,0xFFF,Local0)
Al Stone 69fdad
                SMWE(0x08,0x14,1,Local0)
Al Stone 69fdad
            }
Al Stone 69fdad
        }
Al Stone 69fdad
        Method(MKWD,2)
Al Stone 69fdad
        {
Al Stone 69fdad
            If(And(Arg1,0x80)) {
Al Stone 69fdad
                Or(0xFFFF0000,Arg0,Local0)
Al Stone 69fdad
                Or(Local0,ShiftLeft(Arg1,8),Local0)
Al Stone 69fdad
                Subtract(Zero,Local0,Local0)
Al Stone 69fdad
            } else {
Al Stone 69fdad
                Store(Arg0,Local0)
Al Stone 69fdad
                Or(Local0,ShiftLeft(Arg1,8),Local0)
Al Stone 69fdad
            }
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Device(CMB1)
Al Stone 69fdad
        {
Al Stone 69fdad
            Name(_HID,EISAID("PNP0C0A"))
Al Stone 69fdad
            Name(_UID,0x1)
Al Stone 69fdad
            Alias(\_SB.PCI0.EIO.B1P,\_SB_.PCI0.XXXX)
Al Stone 69fdad
            Alias(\_SB.PCI0.EIO.B1P,B1P)
Al Stone 69fdad
            Alias(\_SB.PCI0.EIO.B1C,B1C)
Al Stone 69fdad
            Alias(\_SB.PCI0.EIO.B1CH,B1CH)
Al Stone 69fdad
            Alias(\_SB.PCI0.EIO.B1CL,B1CL)
Al Stone 69fdad
            Alias(\_SB.PCI0.EIO.B1VH,B1VH)
Al Stone 69fdad
            Alias(\_SB.PCI0.EIO.B1VL,B1VL)
Al Stone 69fdad
            Alias(\_SB.PCI0.EIO.B1CP,B1CP)
Al Stone 69fdad
Al Stone 69fdad
            Method(_INI)
Al Stone 69fdad
                        {
Al Stone 69fdad
                Store(B1P, B1PS)
Al Stone 69fdad
                Store(B1CP,B1RS)
Al Stone 69fdad
                Store(B1C, B1CS)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            Method(_BIF){
Al Stone 69fdad
                RDBT(Zero,Zero,RefOf(B1DC))
Al Stone 69fdad
                RDBT(Zero,One,RefOf(B1LF))
Al Stone 69fdad
                Store(B1DC,Index(RBIF,1))
Al Stone 69fdad
                Store(B1LF,Index(RBIF,2))
Al Stone 69fdad
                Store("CA54200-5003/5",Index(RBIF,9))
Al Stone 69fdad
                Store("1",Index(RBIF,10))
Al Stone 69fdad
                Return(RBIF)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            Method(_BST,, Serialized) {
Al Stone 69fdad
Al Stone 69fdad
                _INI()
Al Stone 69fdad
Al Stone 69fdad
                Store(Zero,Local0)
Al Stone 69fdad
Al Stone 69fdad
                if (LAnd(B1P,LNot(B1C))){
Al Stone 69fdad
                    Or(Local0,1,Local0)
Al Stone 69fdad
                }
Al Stone 69fdad
Al Stone 69fdad
                if (LAnd(B1P,B1C)) {
Al Stone 69fdad
                    Or(Local0,2,Local0)
Al Stone 69fdad
                }
Al Stone 69fdad
Al Stone 69fdad
                if (LLessEqual(B1CP,1)) {
Al Stone 69fdad
                    Or(Local0,4,Local0)
Al Stone 69fdad
                }
Al Stone 69fdad
Al Stone 69fdad
                Store(MKWD(B1CL,B1CH),Local1)
Al Stone 69fdad
Al Stone 69fdad
                Store(Divide(Add(Multiply(B1CP,B1LF),99),100),Local2)
Al Stone 69fdad
Al Stone 69fdad
                Store(MKWD(B1VL,B1VH),Local3)
Al Stone 69fdad
Al Stone 69fdad
                Name(STAT,Package(4){})
Al Stone 69fdad
                Store(Local0,Index(STAT,0))
Al Stone 69fdad
                Store(Local1,Index(STAT,1))
Al Stone 69fdad
                Store(Local2,Index(STAT,2))
Al Stone 69fdad
                Store(Local3,Index(STAT,3))
Al Stone 69fdad
Al Stone 69fdad
                If(LNot(BPIF)){
Al Stone 69fdad
//                    \_SB.PCI0.EIO.EC0.IECT()
Al Stone 69fdad
//                    \_SB.PCI0.EIO.EC0.SECT()
Al Stone 69fdad
                    Store(One,BPIF)
Al Stone 69fdad
                }
Al Stone 69fdad
                return(STAT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
    Device (DEV1)
Al Stone 69fdad
    {
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Scope(\_TZ)
Al Stone 69fdad
    {
Al Stone 69fdad
        ThermalZone(TZ1)
Al Stone 69fdad
        {
Al Stone 69fdad
            Name(_PSL,Package()
Al Stone 69fdad
            {
Al Stone 69fdad
                \_PR.CPU0
Al Stone 69fdad
            })
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (TZ2, 0, SERIALIZED)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name(_PSL,Package()
Al Stone 69fdad
        {
Al Stone 69fdad
            \_PR.CPU0
Al Stone 69fdad
        })
Al Stone 69fdad
Al Stone 69fdad
        Return (_PSL)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    ThermalZone (THM1)
Al Stone 69fdad
    {
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (NOTI)
Al Stone 69fdad
    {
Al Stone 69fdad
        Notify (\DEV1, 0)
Al Stone 69fdad
        Notify (\THM1, 0)
Al Stone 69fdad
        Notify (\_PR.CPU0, 0)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (_ERR, 3)
Al Stone 69fdad
    {
Al Stone 69fdad
        Increment (ERRS)
Al Stone 69fdad
        Store ("Run-time exception:", Debug)
Al Stone 69fdad
        Store (Arg0, Debug)
Al Stone 69fdad
        Store (Arg1, Debug)
Al Stone 69fdad
Al Stone 69fdad
        Return (0)          // Map error to AE_OK
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (DIV0)
Al Stone 69fdad
    {
Al Stone 69fdad
        Store (1, Local0)
Al Stone 69fdad
        Store (0, Local1)
Al Stone 69fdad
        Divide (Local0, Local1, Local3)
Al Stone 69fdad
Al Stone 69fdad
        Store ("DIV0 - noabort", Debug)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (ERR_, 2)
Al Stone 69fdad
    {
Al Stone 69fdad
        Local0 = ToDecimalString (Arg1)
Al Stone 69fdad
        if (LEqual (Arg0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            Printf ("+*+*+*+* MTHD_ERROR at line %o: Results not equal!", Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
        if (LEqual (Arg0, 1))
Al Stone 69fdad
        {
Al Stone 69fdad
            Printf ("+*+*+*+* MTHD_ERROR at line %o: Numeric result is incorrect!", Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
        if (LEqual (Arg0, 2))
Al Stone 69fdad
        {
Al Stone 69fdad
            Printf ("+*+*+*+* MTHD_ERROR at line %o: Operand was clobbered!", Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Notify (DEV1, Arg0)
Al Stone 69fdad
        Increment (ERRS)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (R226, 2)
Al Stone 69fdad
    {
Al Stone 69fdad
    }
Al Stone 69fdad
    Method (R225, 2)
Al Stone 69fdad
    {
Al Stone 69fdad
        R226 (Arg0, Arg1)
Al Stone 69fdad
    }
Al Stone 69fdad
    Method (R224, 2)
Al Stone 69fdad
    {
Al Stone 69fdad
        R225 (Arg1, Arg0)
Al Stone 69fdad
    }
Al Stone 69fdad
    Method (R223, 2)
Al Stone 69fdad
    {
Al Stone 69fdad
        R224 (Arg0, Arg1)
Al Stone 69fdad
    }
Al Stone 69fdad
    Method (R222, 2)
Al Stone 69fdad
    {
Al Stone 69fdad
        R223 (Arg1, Arg0)
Al Stone 69fdad
    }
Al Stone 69fdad
    Method (R111)
Al Stone 69fdad
    {
Al Stone 69fdad
        Store (0x01010101, Local0)
Al Stone 69fdad
        R222 (0xABAB, Local0)
Al Stone 69fdad
        Store (Local0, Local1)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (MAIN)
Al Stone 69fdad
    {
Al Stone 69fdad
Al Stone 69fdad
//      SIZE()
Al Stone 69fdad
        Store (NUM1(), Local0)
Al Stone 69fdad
        \CMB1._BST()
Al Stone 69fdad
        RDBT(1,2,3)
Al Stone 69fdad
        OBJ1(1)
Al Stone 69fdad
        OBJ2(2)
Al Stone 69fdad
        CHEK()
Al Stone 69fdad
        RETZ()
Al Stone 69fdad
        BITZ()
Al Stone 69fdad
        LOGS()
Al Stone 69fdad
        REFS()
Al Stone 69fdad
        COND()
Al Stone 69fdad
        TZ2()
Al Stone 69fdad
Al Stone 69fdad
        //
Al Stone 69fdad
        // iPCO tests added
Al Stone 69fdad
        //
Al Stone 69fdad
        Store (\IFEL.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\NOSV.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\IDXF.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\_SB_.NSTL.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\RTBF.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\_SB_.RTLV.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\_SB_.RETP.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\WHLR.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\ANDO.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\BRKP.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\ADSU.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\INDC.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\LOPS.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\FDSO.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\MLDV.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\NBIT.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\SHFT.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\XORD.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\CRBF.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\IDX4.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\EVNT.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\SZLV.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\_SB_.BYTF.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\DWDF.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\DVAX.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\IDX6.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\IDX5.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\_SB_.IDX0.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\_SB_.IDX3.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\IDX7.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\MTCH.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\WHLB.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\_SB_.IDX2.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\SIZO.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (\_SB_.SMIS.TEST(), Local0)
Al Stone 69fdad
        if (LGreater (Local0, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
            Return(Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        if (LGreater (ERRS, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("****** There were errors during the execution of the test ******", Debug)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        // Flush all notifies
Al Stone 69fdad
Al Stone 69fdad
        Sleep (250)
Al Stone 69fdad
Al Stone 69fdad
        //
Al Stone 69fdad
        // Last Test
Al Stone 69fdad
        //
Al Stone 69fdad
Al Stone 69fdad
        Return(0) // Success
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (OBJ1, 1, SERIALIZED)
Al Stone 69fdad
    {
Al Stone 69fdad
Al Stone 69fdad
        Store (3, Local0)
Al Stone 69fdad
        Name(BUFR, Buffer (Local0) {})
Al Stone 69fdad
        Name(BUF1, Buffer (4) {1,2,3,4})
Al Stone 69fdad
        Name(BUF2, Buffer (4) {})
Al Stone 69fdad
Al Stone 69fdad
        Store (BUF1, BUF2)
Al Stone 69fdad
        Mutex (MTX1, 4)
Al Stone 69fdad
Al Stone 69fdad
        Alias (MTX1, MTX2)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Mutex (MTXT, 0)
Al Stone 69fdad
    Mutex (MTXX, 0)
Al Stone 69fdad
Al Stone 69fdad
    /*
Al Stone 69fdad
     * Field Creation
Al Stone 69fdad
     */
Al Stone 69fdad
Al Stone 69fdad
    Method (FLDS,, Serialized)
Al Stone 69fdad
    {
Al Stone 69fdad
        Store ("++++++++ Creating BufferFields", Debug)
Al Stone 69fdad
        Name (BUF2, Buffer (128) {})
Al Stone 69fdad
Al Stone 69fdad
        CreateBitField (BUF2, 3, BIT2)
Al Stone 69fdad
        CreateByteField (BUF2, 1, BYT2)
Al Stone 69fdad
        CreateWordField (BUF2, 2, WRD2)
Al Stone 69fdad
        CreateDwordField (BUF2, 4, DWD2)
Al Stone 69fdad
        CreateQwordField (BUF2, 8, QWD2)
Al Stone 69fdad
        CreateField (BUF2, 128, 12, FLD2)
Al Stone 69fdad
        CreateField (BUF2, 148, 96, FLD3)
Al Stone 69fdad
Al Stone 69fdad
        Store (0x1, BIT2)
Al Stone 69fdad
        Store (BIT2, Local0)
Al Stone 69fdad
        if (LNotEqual (Local0, 0x1))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
        else
Al Stone 69fdad
        {
Al Stone 69fdad
            Store (DerefOf (Index (BUF2, 0)), Local0)
Al Stone 69fdad
            if (LNotEqual (Local0, 0x08))
Al Stone 69fdad
            {
Al Stone 69fdad
                ERR_ (1, __LINE__)
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store ("++++++++ Bit BufferField I/O PASS", Debug)
Al Stone 69fdad
            }
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (0x1A, BYT2)
Al Stone 69fdad
        Store (BYT2, Local0)
Al Stone 69fdad
        if (LNotEqual (Local0, 0x1A))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
        else
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ Byte BufferField I/O PASS", Debug)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (0x1234, WRD2)
Al Stone 69fdad
        Store (WRD2, Local0)
Al Stone 69fdad
        if (LNotEqual (Local0, 0x1234))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
        else
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ Word BufferField I/O PASS", Debug)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (0x123, FLD2)
Al Stone 69fdad
        Store (FLD2, Local0)
Al Stone 69fdad
        if (LNotEqual (Local0, 0x123))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
        else
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ 12-bit BufferField I/O PASS", Debug)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (0x12345678, DWD2)
Al Stone 69fdad
        Store (DWD2, Local0)
Al Stone 69fdad
        if (LNotEqual (Local0, 0x12345678))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
        else
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ Dword BufferField I/O PASS", Debug)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (0x1234567887654321, QWD2)
Al Stone 69fdad
        Store (QWD2, Local0)
Al Stone 69fdad
        if (LNotEqual (Local0, 0x1234567887654321))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
        else
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ Qword BufferField I/O PASS", Debug)
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    /* Field execution */
Al Stone 69fdad
Al Stone 69fdad
    Method (FLDX,, Serialized)
Al Stone 69fdad
    {
Al Stone 69fdad
        Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
Al Stone 69fdad
        {   //  Field:  SMEM overlay using 32-bit field elements
Al Stone 69fdad
            SMD0,   32, //  32-bits
Al Stone 69fdad
            SMD1,   32,     //  32-bits
Al Stone 69fdad
            SMD2,   32,     //  32-bits
Al Stone 69fdad
            SMD3,   32  //  32-bits
Al Stone 69fdad
        }   //  Field:  SMEM overlay using 32-bit field elements
Al Stone 69fdad
        Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
Al Stone 69fdad
        {   //  Field:  SMEM overlay using greater than 32-bit field elements
Al Stone 69fdad
            SME0,   69, //  larger than an integer (32 or 64)
Al Stone 69fdad
            SME1,   97  //  larger than an integer
Al Stone 69fdad
        }   //  Field:  SMEM overlay using greater than 32-bit field elements
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (MTX_, )
Al Stone 69fdad
    {
Al Stone 69fdad
        /* Test "Force release" of mutex on method exit */
Al Stone 69fdad
Al Stone 69fdad
        Acquire (MTXT, 0xFFFF)
Al Stone 69fdad
        Acquire (MTXX, 0xFFFF)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Acquiring Mutex MTX2", Debug)
Al Stone 69fdad
        Acquire (_GL_, 0xFFFF)
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Releasing Mutex MTX2", Debug)
Al Stone 69fdad
        Release (_GL_)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (OBJ2, 1, Serialized)
Al Stone 69fdad
    {
Al Stone 69fdad
        Store ("++++++++ Creating Buffer BUFO", Debug)
Al Stone 69fdad
        Name (BUFO, Buffer (32) {})
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Creating OpRegion OPR2", Debug)
Al Stone 69fdad
        OperationRegion (OPR2, SystemMemory, Arg0, 256)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Creating Field(s) in OpRegion OPR2", Debug)
Al Stone 69fdad
        Field (OPR2, ByteAcc, NoLock, Preserve)
Al Stone 69fdad
        {
Al Stone 69fdad
            IDX2, 8,
Al Stone 69fdad
            DAT2, 8,
Al Stone 69fdad
            BNK2, 4
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Creating BankField BNK2 in OpRegion OPR2", Debug)
Al Stone 69fdad
        //
Al Stone 69fdad
        // mcw 3/20/00 - changed FET0, 4, FET1, 3 to FET0, 1, FET1, 1
Al Stone 69fdad
        //
Al Stone 69fdad
        BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
Al Stone 69fdad
        {
Al Stone 69fdad
            FET0, 4,
Al Stone 69fdad
            FET1, 3
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Creating IndexField", Debug)
Al Stone 69fdad
        IndexField (IDX2, DAT2, ByteAcc, NoLock, Preserve)
Al Stone 69fdad
        {
Al Stone 69fdad
            FET2, 4,
Al Stone 69fdad
            FET3, 3
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ SizeOf (BUFO)", Debug)
Al Stone 69fdad
        SizeOf (BUFO)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (SizeOf (BUFO), Local0)", Debug)
Al Stone 69fdad
        Store (SizeOf (BUFO), Local0)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Concatenate (\"abd\", \"def\", Local0)", Debug)
Al Stone 69fdad
        Concatenate ("abd", "def", Local0)
Al Stone 69fdad
        Store (Local0, Debug)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Concatenate (\"abd\", 0x7B, Local0)", Debug)
Al Stone 69fdad
        Concatenate ("abd", 0x7B, Local0)
Al Stone 69fdad
        Store (Local0, Debug)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Creating Event EVT2", Debug)
Al Stone 69fdad
        Event (EVT2)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Creating Mutex MTX2", Debug)
Al Stone 69fdad
        Mutex (MTX2, 0)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Creating Alias MTXA to MTX2", Debug)
Al Stone 69fdad
        Alias (MTX2, MTXA)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Acquiring Mutex MTX2", Debug)
Al Stone 69fdad
        Acquire (MTX2, 0xFFFF)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Acquiring Mutex MTX2 (2nd acquire)", Debug)
Al Stone 69fdad
        Acquire (MTX2, 1)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Releasing Mutex MTX2", Debug)
Al Stone 69fdad
        Release (MTX2)
Al Stone 69fdad
Al Stone 69fdad
        // Type 1 opcodes
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Signalling Event EVT2", Debug)
Al Stone 69fdad
        Signal (EVT2)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Resetting Event EVT2", Debug)
Al Stone 69fdad
        Reset (EVT2)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Signalling Event EVT2", Debug)
Al Stone 69fdad
        Signal (EVT2)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Waiting Event EVT2", Debug)
Al Stone 69fdad
        Wait (EVT2, 0xFFFF)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Sleep", Debug)
Al Stone 69fdad
        Sleep (100)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Stall", Debug)
Al Stone 69fdad
        Stall (254)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ NoOperation", Debug)
Al Stone 69fdad
        Noop
Al Stone 69fdad
Al Stone 69fdad
        // Type 2 Opcodes
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Return from Method OBJ2", Debug)
Al Stone 69fdad
        return (4)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (NUM1, 0)
Al Stone 69fdad
    {
Al Stone 69fdad
        /* ADD */
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Add (0x12345678, 0x11111111, Local0)", Debug)
Al Stone 69fdad
        Add (0x12345678, 0x11111111, Local0)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (Add (0x12345678, 0x11111111), Local1)", Debug)
Al Stone 69fdad
        Store (Add (0x12345678, 0x11111111), Local1)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Checking result from ADD", Debug)
Al Stone 69fdad
        if (LNotEqual (Local0, Local1))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (0, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        /* SUBTRACT */
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Subtract (0x87654321, 0x11111111, Local4)", Debug)
Al Stone 69fdad
        Subtract (0x87654321, 0x11111111, Local4)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (Subtract (0x87654321, 0x11111111), Local5)", Debug)
Al Stone 69fdad
        Store (Subtract (0x87654321, 0x11111111), Local5)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Checking result from SUBTRACT", Debug)
Al Stone 69fdad
        if (LNotEqual (Local4, Local5))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (0, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        /* MULTIPLY */
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Multiply (33, 10, Local6)", Debug)
Al Stone 69fdad
        Multiply (33, 10, Local6)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (Multiply (33, 10), Local7)", Debug)
Al Stone 69fdad
        Store (Multiply (33, 10), Local7)
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Checking result from MULTIPLY", Debug)
Al Stone 69fdad
        if (LNotEqual (Local6, Local7))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (0, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        /* DIVIDE */
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Divide (100, 9, Local1, Local2)", Debug)
Al Stone 69fdad
        Divide (100, 9, Local1, Local2)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (Divide (100, 9), Local3)", Debug)
Al Stone 69fdad
        Store (Divide (100, 9), Local3)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Checking (quotient) result from DIVIDE", Debug)
Al Stone 69fdad
        if (LNotEqual (Local2, Local3))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (0, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        /* INCREMENT */
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Increment (Local0)", Debug)
Al Stone 69fdad
        Store (1, Local0)
Al Stone 69fdad
        Store (2, Local1)
Al Stone 69fdad
        Increment (Local0)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Checking result from INCREMENT", Debug)
Al Stone 69fdad
        if (LNotEqual (Local0, Local1))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (0, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        /* DECREMENT */
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Decrement (Local0)", Debug)
Al Stone 69fdad
        Store (2, Local0)
Al Stone 69fdad
        Store (1, Local1)
Al Stone 69fdad
        Decrement (Local0)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Checking result from DECREMENT", Debug)
Al Stone 69fdad
        if (LNotEqual (Local0, Local1))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (0, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        /* TOBCD */
Al Stone 69fdad
        /* FROMBCD */
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ ToBCD (0x1234, Local5)", Debug)
Al Stone 69fdad
        ToBCD (0x1234, Local5)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ FromBCD (Local5, Local6)", Debug)
Al Stone 69fdad
        FromBCD (Local5, Local6)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Return (Local6)", Debug)
Al Stone 69fdad
        Return (Local6)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (CHEK)
Al Stone 69fdad
    {
Al Stone 69fdad
Al Stone 69fdad
        Store (3, Local0)
Al Stone 69fdad
        Store (3, Debug)
Al Stone 69fdad
        Store (Local0, Debug)
Al Stone 69fdad
        Store (7, Local1)
Al Stone 69fdad
Al Stone 69fdad
        Add (Local0, Local1)
Al Stone 69fdad
        if (LNotEqual (Local0, 3))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
        if (LNotEqual (Local1, 7))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Add (Local0, Local1, Local2)
Al Stone 69fdad
        if (LNotEqual (Local0, 3))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
        if (LNotEqual (Local1, 7))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (RET1)
Al Stone 69fdad
    {
Al Stone 69fdad
        Store (3, Local0)
Al Stone 69fdad
        Return (Local0)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (RET2)
Al Stone 69fdad
    {
Al Stone 69fdad
        Return (RET1())
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Method (RETZ)
Al Stone 69fdad
    {
Al Stone 69fdad
        RET2 ()
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (BITZ)
Al Stone 69fdad
    {
Al Stone 69fdad
        Store ("++++++++ FindSetLeftBit (0x00100100, Local0)", Debug)
Al Stone 69fdad
        FindSetLeftBit (0x00100100, Local0)
Al Stone 69fdad
        if (LNotEqual (Local0, 21))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ FindSetRightBit (0x00100100, Local1)", Debug)
Al Stone 69fdad
        FindSetRightBit (0x00100100, Local1)
Al Stone 69fdad
        if (LNotEqual (Local1, 9))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ And (0xF0F0F0F0, 0x11111111, Local2)", Debug)
Al Stone 69fdad
        And (0xF0F0F0F0, 0x11111111, Local2)
Al Stone 69fdad
        if (LNotEqual (Local2, 0x10101010))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ NAnd (0xF0F0F0F0, 0x11111111, Local3)", Debug)
Al Stone 69fdad
        NAnd (0xF0F0F0F0, 0x11111111, Local3)
Al Stone 69fdad
        if (LNotEqual (Local3, 0xEFEFEFEF))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Or (0x11111111, 0x22222222, Local4)", Debug)
Al Stone 69fdad
        Or (0x11111111, 0x22222222, Local4)
Al Stone 69fdad
        if (LNotEqual (Local4, 0x33333333))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ NOr (0x11111111, 0x22222222, Local5)", Debug)
Al Stone 69fdad
        NOr (0x11111111, 0x22222222, Local5)
Al Stone 69fdad
        if (LNotEqual (Local5, 0xCCCCCCCC))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ XOr (0x11113333, 0x22222222, Local6)", Debug)
Al Stone 69fdad
        XOr (0x11113333, 0x22222222, Local6)
Al Stone 69fdad
        if (LNotEqual (Local6, 0x33331111))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ ShiftLeft (0x11112222, 2, Local7)", Debug)
Al Stone 69fdad
        ShiftLeft (0x11112222, 2, Local7)
Al Stone 69fdad
        if (LNotEqual (Local7, 0x44448888))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ ShiftRight (Local7, 2, Local7)", Debug)
Al Stone 69fdad
        ShiftRight (Local7, 2, Local7)
Al Stone 69fdad
        if (LNotEqual (Local7, 0x11112222))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Not (Local0, Local1)", Debug)
Al Stone 69fdad
        Store (0x22224444, Local0)
Al Stone 69fdad
        Not (Local0, Local1)
Al Stone 69fdad
        if (LNotEqual (Local0, 0x22224444))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        if (LNotEqual (Local1, 0xDDDDBBBB))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Return (Local7)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (LOGS)
Al Stone 69fdad
    {
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)", Debug)
Al Stone 69fdad
        Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (LEqual (0xFFFFFFFF, 0x11111111), Local)", Debug)
Al Stone 69fdad
        Store (LEqual (0xFFFFFFFF, 0x11111111), Local1)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)", Debug)
Al Stone 69fdad
        Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)", Debug)
Al Stone 69fdad
        Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (LLess (0xFFFFFFFF, 0x11111111), Local4)", Debug)
Al Stone 69fdad
        Store (LLess (0xFFFFFFFF, 0x11111111), Local4)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)", Debug)
Al Stone 69fdad
        Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (LNot (0x31313131), Local6)", Debug)
Al Stone 69fdad
        Store (0x00001111, Local6)
Al Stone 69fdad
        Store (LNot (Local6), Local7)
Al Stone 69fdad
        if (LNotEqual (Local6, 0x00001111))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        if (LNotEqual (Local7, 0x0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (1, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)", Debug)
Al Stone 69fdad
        Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Lor (0x0, 0x1)", Debug)
Al Stone 69fdad
        if (Lor (0x0, 0x1))
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("+_+_+_+_+ Lor (0x0, 0x1) returned TRUE", Debug)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        return (Local7)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (COND)
Al Stone 69fdad
    {
Al Stone 69fdad
        Store ("++++++++ Store (0x4, Local0)", Debug)
Al Stone 69fdad
        Store (0x4, Local0)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ While (Local0)", Debug)
Al Stone 69fdad
        While (Local0)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ Decrement (Local0)", Debug)
Al Stone 69fdad
            Decrement (Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ Store (0x3, Local6)", Debug)
Al Stone 69fdad
        Store (0x3, Local6)
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ While (Subtract (Local6, 1))", Debug)
Al Stone 69fdad
        While (Subtract (Local6, 1))
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ Decrement (Local6)", Debug)
Al Stone 69fdad
            Decrement (Local6)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
Al Stone 69fdad
        If (LGreater (0x2, 0x1))
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
Al Stone 69fdad
            If (LEqual (0x11111111, 0x22222222))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
Al Stone 69fdad
                If (LNot (0x0))
Al Stone 69fdad
                {
Al Stone 69fdad
                    Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
Al Stone 69fdad
                    If (LAnd (0xEEEEEEEE, 0x2))
Al Stone 69fdad
                    {
Al Stone 69fdad
                        Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
Al Stone 69fdad
                        If (LLess (0x44444444, 0x3))
Al Stone 69fdad
                        {
Al Stone 69fdad
                            Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
Al Stone 69fdad
                        }
Al Stone 69fdad
Al Stone 69fdad
                        else
Al Stone 69fdad
                        {
Al Stone 69fdad
                            Store ("++++++++ Exiting from nested IF/ELSE statements", Debug)
Al Stone 69fdad
                        }
Al Stone 69fdad
                    }
Al Stone 69fdad
                }
Al Stone 69fdad
            }
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
Al Stone 69fdad
        If (LGreater (0x2, 0x1))
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
Al Stone 69fdad
            If (LEqual (0x11111111, 0x22222222))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
Al Stone 69fdad
                If (LNot (0x0))
Al Stone 69fdad
                {
Al Stone 69fdad
                    Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
Al Stone 69fdad
                    If (LAnd (0xEEEEEEEE, 0x2))
Al Stone 69fdad
                    {
Al Stone 69fdad
                        Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
Al Stone 69fdad
                        If (LLess (0x44444444, 0x3))
Al Stone 69fdad
                        {
Al Stone 69fdad
                            Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
Al Stone 69fdad
                        }
Al Stone 69fdad
Al Stone 69fdad
                        else
Al Stone 69fdad
                        {
Al Stone 69fdad
                            Store ("++++++++ Returning from nested IF/ELSE statements", Debug)
Al Stone 69fdad
                            Return (Local6)
Al Stone 69fdad
                        }
Al Stone 69fdad
                    }
Al Stone 69fdad
                }
Al Stone 69fdad
            }
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (REFS,, Serialized)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (BBUF, Buffer() {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7})
Al Stone 69fdad
Al Stone 69fdad
        Name (NEST, Package ()
Al Stone 69fdad
        {
Al Stone 69fdad
            Package ()
Al Stone 69fdad
            {
Al Stone 69fdad
                0x01, 0x02, 0x03, 0x04, 0x05, 0x06
Al Stone 69fdad
            },
Al Stone 69fdad
            Package ()
Al Stone 69fdad
            {
Al Stone 69fdad
                0x11, 0x12, 0x12, 0x14, 0x15, 0x16
Al Stone 69fdad
            }
Al Stone 69fdad
        })
Al Stone 69fdad
Al Stone 69fdad
        Store (RefOf (MAIN), Local5)
Al Stone 69fdad
Al Stone 69fdad
        // For this to work, ABCD must NOT exist.
Al Stone 69fdad
Al Stone 69fdad
        Store (CondRefOf (ABCD, Local0), Local1)
Al Stone 69fdad
        if (LNotEqual (Local1, 0))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (CondRefOf (BBUF, Local0), Local1)
Al Stone 69fdad
        if (LNotEqual (Local1, Ones))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (DeRefOf (Index (BBUF, 3)), Local6)
Al Stone 69fdad
        if (LNotEqual (Local6, 0xB3))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Store (DeRefOf (Index (DeRefOf (Index (NEST, 1)), 3)), Local0)
Al Stone 69fdad
        if (LNotEqual (Local0, 0x14))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        Store (0x11223344, Local0)
Al Stone 69fdad
        Store (RefOf (Local0), Local1)
Al Stone 69fdad
Al Stone 69fdad
        Store (DerefOf (Local1), Local2)
Al Stone 69fdad
        If (LNotEqual (Local2, 0x11223344))
Al Stone 69fdad
        {
Al Stone 69fdad
            ERR_ (2, __LINE__)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    /* Parser thinks this is a method invocation!! */
Al Stone 69fdad
Al Stone 69fdad
    //  RefOf (MAIN)
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    //  RefOf (R___)
Al Stone 69fdad
    //  RefOf (BBUF)
Al Stone 69fdad
Al Stone 69fdad
    //  Store (RefOf (Local0), Local1)
Al Stone 69fdad
Al Stone 69fdad
    //  CondRefOf (BBUF, Local2)
Al Stone 69fdad
    //  CondRefOf (R___, Local3)
Al Stone 69fdad
Al Stone 69fdad
    //  Store (DerefOf (Local1), Local4)
Al Stone 69fdad
Al Stone 69fdad
    //  Return (Local4)
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Method (INDX, 0, Serialized)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name(STAT,Package(4){})
Al Stone 69fdad
        Store(0x44443333,Index(STAT,0))
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
//=================================================================
Al Stone 69fdad
//=================================================================
Al Stone 69fdad
//===================== iPCO TESTS ================================
Al Stone 69fdad
//=================================================================
Al Stone 69fdad
//=================================================================
Al Stone 69fdad
//
Al Stone 69fdad
//
Al Stone 69fdad
// test IfElseOp.asl
Al Stone 69fdad
//
Al Stone 69fdad
//  test for IfOp and ElseOp, including validation of object stack cleanup
Al Stone 69fdad
//
Al Stone 69fdad
    Device (IFEL)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (DWRD, 1)
Al Stone 69fdad
        Name (RSLT, 0)
Al Stone 69fdad
Al Stone 69fdad
        //  IFNR control method executes IfOp branch with NO nested Return
Al Stone 69fdad
        //  and no Else branch
Al Stone 69fdad
        Method (IFNR)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store (DWRD, RSLT)
Al Stone 69fdad
            If (LEqual (DWRD, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (0, RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
        }   //  IFNR
Al Stone 69fdad
Al Stone 69fdad
        //  NINR control method does not execute If branch and has no Else branch
Al Stone 69fdad
        Method (NINR)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store (0, RSLT)
Al Stone 69fdad
            If (LNotEqual (DWRD, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (DWRD, RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
        }   //  NINR
Al Stone 69fdad
Al Stone 69fdad
        //  IENR control method executes IfOp branch with NO nested Return
Al Stone 69fdad
        Method (IENR)
Al Stone 69fdad
        {
Al Stone 69fdad
            If (LEqual (DWRD, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (0, RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
            Else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (DWRD, RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
        }   //  IENR
Al Stone 69fdad
Al Stone 69fdad
        //  ELNR control method executes ElseOp branch with NO nested Return
Al Stone 69fdad
        Method (ELNR)
Al Stone 69fdad
        {
Al Stone 69fdad
            If (LNotEqual (DWRD, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (DWRD, RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
            Else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (0, RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
        }   //  ELNR
Al Stone 69fdad
Al Stone 69fdad
        //  IFRT control method executes IfOp branch with nested Return with
Al Stone 69fdad
        //  no Else branch
Al Stone 69fdad
        Method (IFRT)
Al Stone 69fdad
Al Stone 69fdad
        {
Al Stone 69fdad
            If (LEqual (DWRD, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (0)
Al Stone 69fdad
            }
Al Stone 69fdad
            Return (DWRD)
Al Stone 69fdad
        }   //  IFRT
Al Stone 69fdad
Al Stone 69fdad
        //  IERT control method executes IfOp branch with nested Return with
Al Stone 69fdad
        //  Else branch
Al Stone 69fdad
        Method (IERT)
Al Stone 69fdad
        {
Al Stone 69fdad
            If (LEqual (DWRD, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (0)
Al Stone 69fdad
            }
Al Stone 69fdad
            Else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (DWRD)
Al Stone 69fdad
            }
Al Stone 69fdad
        }   //  IERT
Al Stone 69fdad
Al Stone 69fdad
        //  ELRT control method executes ElseOp branch with nested Return
Al Stone 69fdad
        Method (ELRT)
Al Stone 69fdad
        {
Al Stone 69fdad
            If (LNotEqual (DWRD, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (DWRD)
Al Stone 69fdad
            }
Al Stone 69fdad
            Else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (0)
Al Stone 69fdad
            }
Al Stone 69fdad
        }   //  ELRT
Al Stone 69fdad
Al Stone 69fdad
        Method (TEST)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ IfElseOp Test", Debug)
Al Stone 69fdad
Al Stone 69fdad
            //  IfOp with NO return value
Al Stone 69fdad
            IFNR()
Al Stone 69fdad
            If (LNotEqual (RSLT, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  IfOp with NO return value
Al Stone 69fdad
            NINR()
Al Stone 69fdad
            If (LNotEqual (RSLT, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  IfOp with NO return value
Al Stone 69fdad
            IENR()
Al Stone 69fdad
            If (LNotEqual (RSLT, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  ElseOp with NO return value
Al Stone 69fdad
            ELNR()
Al Stone 69fdad
            If (LNotEqual (RSLT, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  IfOp with return value
Al Stone 69fdad
            Store (IFRT, RSLT)
Al Stone 69fdad
            If (LNotEqual (RSLT, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  IfOp with return value
Al Stone 69fdad
            Store (IERT, RSLT)
Al Stone 69fdad
            If (LNotEqual (RSLT, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  ElseOp with return value
Al Stone 69fdad
            Store (ELRT, RSLT)
Al Stone 69fdad
            If (LNotEqual (RSLT, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            Return (0)
Al Stone 69fdad
        }   //  TEST
Al Stone 69fdad
    }   //  IFEL
Al Stone 69fdad
Al Stone 69fdad
//
Al Stone 69fdad
// test NoSave.asl
Al Stone 69fdad
//
Al Stone 69fdad
//
Al Stone 69fdad
//  Internal test cases to validate IfOp (Operator (,,)) where Operator
Al Stone 69fdad
//  target is ZeroOp to throw away the results.
Al Stone 69fdad
//  Includes internal test cases for logical operators with no destination
Al Stone 69fdad
//  operands.
Al Stone 69fdad
//
Al Stone 69fdad
    Device (NOSV)
Al Stone 69fdad
    {
Al Stone 69fdad
        Method (TEST,, Serialized)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ NoSave Test", Debug)
Al Stone 69fdad
Al Stone 69fdad
            Name (WRD, 0x1234)
Al Stone 69fdad
Al Stone 69fdad
            //
Al Stone 69fdad
            //  Begin test of nested operators without saving results
Al Stone 69fdad
            //
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (And ()) with no save of And result
Al Stone 69fdad
            If (And (3, 1, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (1, WRD)  //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (And ()) with no save of And result
Al Stone 69fdad
            If (And (4, 1, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (2)      //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (2, WRD)  //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (NAnd ()) with no save of NAnd result
Al Stone 69fdad
            If (NAnd (3, 1, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (3, WRD)  //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (3)      //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (NAnd ()) with no save of NAnd result
Al Stone 69fdad
            If (NAnd (0xFFFFFFFF, 0xFFFFFFFF, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (4)      // fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (4, WRD)  //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (NOr ()) with no save of NOr result
Al Stone 69fdad
            If (NOr (0, 1, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (5, WRD)  //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (5)      //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (NOr ()) with no save of NOr result
Al Stone 69fdad
            If (NOr (0xFFFFFFFE, 1, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (6)      // fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (6, WRD)  //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (Not ()) with no save of Not result
Al Stone 69fdad
            If (Not (1, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (7, WRD)  //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (7)      //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (Not ()) with no save of Not result
Al Stone 69fdad
            If (Not (0xFFFFFFFF, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (8)      // fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (8, WRD)  //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (Or ()) with no save of Or result
Al Stone 69fdad
            If (Or (3, 1, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (9, WRD)  //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (9)      //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (Or ()) with no save of Or result
Al Stone 69fdad
            If (Or (0, 0, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (10)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (10, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (XOr ()) with no save of XOr result
Al Stone 69fdad
            If (XOr (3, 1, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (11, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (11)     // fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (XOr ()) with no save of XOr result
Al Stone 69fdad
            If (XOr (3, 3, ))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (12)     // fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (12, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //
Al Stone 69fdad
            //  Begin test of logical operators with no destination operands
Al Stone 69fdad
            //
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LAnd ()) with no save of LAnd result
Al Stone 69fdad
            If (LAnd (3, 3))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (21, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (21)     // fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LAnd ()) with no save of LAnd result
Al Stone 69fdad
            If (LAnd (3, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (22)     // fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (22, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LAnd ()) with no save of LAnd result
Al Stone 69fdad
            If (LAnd (0, 3))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (23)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (23, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LAnd ()) with no save of LAnd result
Al Stone 69fdad
            If (LAnd (0, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (24)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (24, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LEqual ()) with no save of LEqual result
Al Stone 69fdad
            If (LEqual (3, 3))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (31, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (31)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LEqual ()) with no save of LEqual result
Al Stone 69fdad
            If (LEqual (1, 3))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (32)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (32, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LGreater ()) with no save of LGreater result
Al Stone 69fdad
            If (LGreater (3, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (41, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (41)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LGreater ()) with no save of LGreater result
Al Stone 69fdad
            If (LGreater (4, 4))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (42)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (42, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LGreater ()) with no save of LGreater result
Al Stone 69fdad
            If (LGreater (1, 4))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (43)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (43, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
Al Stone 69fdad
            If (LGreaterEqual (3, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (44, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (44)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
Al Stone 69fdad
            If (LGreaterEqual (3, 3))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (45, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (45)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
Al Stone 69fdad
            If (LGreaterEqual (3, 4))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (46)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (46, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LLess ()) with no save of LLess result
Al Stone 69fdad
            If (LLess (1, 3))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (51, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (51)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LLess ()) with no save of LLess result
Al Stone 69fdad
            If (LLess (2, 2))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (52)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (52, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LLess ()) with no save of LLess result
Al Stone 69fdad
            If (LLess (4, 2))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (53)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (53, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LLessEqual ()) with no save of LLessEqual result
Al Stone 69fdad
            If (LLessEqual (1, 3))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (54, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (54)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LLessEqual ()) with no save of LLessEqual result
Al Stone 69fdad
            If (LLessEqual (2, 2))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (55, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (55)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LLessEqual ()) with no save of LLessEqual result
Al Stone 69fdad
            If (LLessEqual (4, 2))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (56)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (56, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LNot ()) with no save of LNot result
Al Stone 69fdad
            If (LNot (0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (61, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (61)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LNot ()) with no save of LNot result
Al Stone 69fdad
            If (LNot (1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (62)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (62, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LNotEqual ()) with no save of LNotEqual result
Al Stone 69fdad
            If (LNotEqual (3, 3))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (63)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (63, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LNotEqual ()) with no save of LNotEqual result
Al Stone 69fdad
            If (LNotEqual (1, 3))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (64, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (64)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LOr ()) with no save of LOr result
Al Stone 69fdad
            If (LOr (3, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (71, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (71)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LOr ()) with no save of LOr result
Al Stone 69fdad
            If (LOr (0, 1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (72, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (72)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LOr ()) with no save of LOr result
Al Stone 69fdad
            If (LOr (3, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (73, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (73)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  Test If (LOr ()) with no save of LOr result
Al Stone 69fdad
            If (LOr (0, 0))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (74)     //  fail
Al Stone 69fdad
            }
Al Stone 69fdad
            else
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (74, WRD) //  pass -- just do something
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            Return (0)
Al Stone 69fdad
        }   //  TEST
Al Stone 69fdad
    }   //  NOSV
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
//
Al Stone 69fdad
// test IndxFld.asl
Al Stone 69fdad
//
Al Stone 69fdad
//  IndexFld test
Al Stone 69fdad
//      This is just a subset of the many RegionOp/Index Field test cases.
Al Stone 69fdad
//      Tests index field element AccessAs macro.
Al Stone 69fdad
//
Al Stone 69fdad
    Device (IDXF)
Al Stone 69fdad
    {   //  Test device name
Al Stone 69fdad
Al Stone 69fdad
        OperationRegion (SIO, SystemIO, 0x100, 2)
Al Stone 69fdad
        Field (SIO, ByteAcc, NoLock, Preserve)
Al Stone 69fdad
        {
Al Stone 69fdad
            INDX,   8,
Al Stone 69fdad
            DATA,   8
Al Stone 69fdad
        }
Al Stone 69fdad
        IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
Al Stone 69fdad
        {
Al Stone 69fdad
            AccessAs (ByteAcc, 0),
Al Stone 69fdad
            IFE0,   8,
Al Stone 69fdad
            IFE1,   8,
Al Stone 69fdad
            IFE2,   8,
Al Stone 69fdad
            IFE3,   8,
Al Stone 69fdad
            IFE4,   8,
Al Stone 69fdad
            IFE5,   8,
Al Stone 69fdad
            IFE6,   8,
Al Stone 69fdad
            IFE7,   8,
Al Stone 69fdad
            IFE8,   8,
Al Stone 69fdad
            IFE9,   8,
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (TEST)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ IndxFld Test", Debug)
Al Stone 69fdad
Al Stone 69fdad
            Store (IFE0, Local0)
Al Stone 69fdad
            Store (IFE1, Local1)
Al Stone 69fdad
            Store (IFE2, Local2)
Al Stone 69fdad
Al Stone 69fdad
            Return (0)
Al Stone 69fdad
        }   //  TEST
Al Stone 69fdad
    }   //  IDXF
Al Stone 69fdad
Al Stone 69fdad
//
Al Stone 69fdad
// test NestdLor.asl
Al Stone 69fdad
//
Al Stone 69fdad
    Scope (\_SB)    //  System Bus
Al Stone 69fdad
    {   //  _SB system bus
Al Stone 69fdad
Al Stone 69fdad
        Name (ZER0, 0)
Al Stone 69fdad
        Name (ZER1, 0)
Al Stone 69fdad
        Name (ZER2, 0)
Al Stone 69fdad
        Name (ONE0, 1)
Al Stone 69fdad
Al Stone 69fdad
        Device (NSTL)
Al Stone 69fdad
        {
Al Stone 69fdad
            Method (TEST)
Al Stone 69fdad
            {
Al Stone 69fdad
                Store ("++++++++ NestdLor Test", Debug)
Al Stone 69fdad
Al Stone 69fdad
                If (Lor (ZER0, Lor (ZER1, Lor (ZER2, ONE0))))
Al Stone 69fdad
                {   //  Indicate Pass
Al Stone 69fdad
                    Store (0x00, Local0)
Al Stone 69fdad
                }
Al Stone 69fdad
Al Stone 69fdad
                Else
Al Stone 69fdad
                {   //  Indicate Fail
Al Stone 69fdad
                    Store (0x01, Local0)
Al Stone 69fdad
                }
Al Stone 69fdad
Al Stone 69fdad
                Return (Local0)
Al Stone 69fdad
            }   //  End Method TEST
Al Stone 69fdad
        }   //  Device NSTL
Al Stone 69fdad
    }   //  _SB system bus
Al Stone 69fdad
Al Stone 69fdad
//
Al Stone 69fdad
// test RetBuf.asl
Al Stone 69fdad
//
Al Stone 69fdad
//  Test ReturnOp(Buffer)
Al Stone 69fdad
//      This is required to support Control Method Batteries on
Al Stone 69fdad
//          Dell Latitude Laptops (e.g., CP1-A)
Al Stone 69fdad
//
Al Stone 69fdad
    Device (RTBF)
Al Stone 69fdad
    {
Al Stone 69fdad
        Method (SUBR, 1)
Al Stone 69fdad
        {
Al Stone 69fdad
            Return (Arg0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (RBUF,, Serialized)
Al Stone 69fdad
        {   //  RBUF: Return Buffer from local variable
Al Stone 69fdad
            Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
Al Stone 69fdad
Al Stone 69fdad
            //  store local buffer ABUF into Local0
Al Stone 69fdad
            Store (ABUF, Local0)
Al Stone 69fdad
Al Stone 69fdad
            //  save Local0 object type value into Local1
Al Stone 69fdad
            Store (ObjectType (Local0), Local1)
Al Stone 69fdad
Al Stone 69fdad
            //  validate Local0 is a Buffer
Al Stone 69fdad
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  store value returned by control method SUBR into Local0
Al Stone 69fdad
            Store (SUBR (ABUF), Local0)
Al Stone 69fdad
Al Stone 69fdad
            //  save Local0 object type value into Local1
Al Stone 69fdad
            Store (ObjectType (Local0), Local1)
Al Stone 69fdad
Al Stone 69fdad
            //  validate Local0 is a Buffer
Al Stone 69fdad
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (2)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  allocate buffer using Local1 as buffer size (run-time evaluation)
Al Stone 69fdad
            Store (5, Local1)
Al Stone 69fdad
            Name (BUFR, Buffer(Local1) {})
Al Stone 69fdad
Al Stone 69fdad
            //  store value returned by control method SUBR into Local0
Al Stone 69fdad
            Store (SUBR (BUFR), Local0)
Al Stone 69fdad
Al Stone 69fdad
            //  save Local0 object type value into Local1
Al Stone 69fdad
            Store (ObjectType (Local0), Local1)
Al Stone 69fdad
Al Stone 69fdad
            //  validate Local0 is a Buffer
Al Stone 69fdad
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (3)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //  store BUFR Buffer into Local0
Al Stone 69fdad
            Store (BUFR, Local0)
Al Stone 69fdad
Al Stone 69fdad
            //  save Local0 object type value into Local1
Al Stone 69fdad
            Store (ObjectType (Local0), Local1)
Al Stone 69fdad
Al Stone 69fdad
            //  validate Local0 is a Buffer
Al Stone 69fdad
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (4)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //  return Local0 Buffer
Al Stone 69fdad
            Return (Local0)
Al Stone 69fdad
        }   //  RBUF
Al Stone 69fdad
Al Stone 69fdad
        Method (TEST)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ RetBuf Test", Debug)
Al Stone 69fdad
Al Stone 69fdad
            //  store RBUF Buffer return value into Local0
Al Stone 69fdad
            Store (RBUF, Local0)
Al Stone 69fdad
Al Stone 69fdad
            //  save Local0 object type value into Local1
Al Stone 69fdad
            Store (ObjectType (Local0), Local1)
Al Stone 69fdad
Al Stone 69fdad
            //  validate Local0 is a Buffer
Al Stone 69fdad
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (10)     //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
            Else
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (0)      //  success
Al Stone 69fdad
            }
Al Stone 69fdad
        }   //  TEST
Al Stone 69fdad
    }   //  RTBF
Al Stone 69fdad
Al Stone 69fdad
//
Al Stone 69fdad
// test RetLVal.asl
Al Stone 69fdad
//
Al Stone 69fdad
//  Test ReturnOp(Lvalue)
Al Stone 69fdad
//      This is required to support _PSR on IBM ThinkPad 560D and
Al Stone 69fdad
//      _DCK on Toshiba Tecra 8000.
Al Stone 69fdad
//
Al Stone 69fdad
Al Stone 69fdad
    Device (GPE2)
Al Stone 69fdad
    {
Al Stone 69fdad
        Method (_L03)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("Method GPE2._L03 invoked", Debug)
Al Stone 69fdad
            Return ()
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_E05)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("Method GPE2._E05 invoked", Debug)
Al Stone 69fdad
            Return ()
Al Stone 69fdad
        }
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Device (PRW2)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (_PRW, Package(2) {Package(2){\GPE2, 0x05}, 3})
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Scope (\_GPE)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (ACST, 0xFF)
Al Stone 69fdad
Al Stone 69fdad
        Method (_L08)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("Method _GPE._L08 invoked", Debug)
Al Stone 69fdad
            Return ()
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_E09)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("Method _GPE._E09 invoked", Debug)
Al Stone 69fdad
            Return ()
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_E11)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("Method _GPE._E11 invoked", Debug)
Al Stone 69fdad
            Notify (\PRW1, 2)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_L22)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("Method _GPE._L22 invoked", Debug)
Al Stone 69fdad
            Return ()
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_L33)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("Method _GPE._L33 invoked", Debug)
Al Stone 69fdad
            Return ()
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Method (_E64)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("Method _GPE._E64 invoked", Debug)
Al Stone 69fdad
            Return ()
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
    }   //  _GPE
Al Stone 69fdad
Al Stone 69fdad
    Device (PRW1)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (_PRW, Package(2) {0x11, 3})
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
    Device (PWRB)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (_HID, EISAID("PNP0C0C"))
Al Stone 69fdad
        Name (_PRW, Package(2) {0x33, 3})
Al Stone 69fdad
    }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
    Scope (\_SB)    //  System Bus
Al Stone 69fdad
    {   //  _SB system bus
Al Stone 69fdad
Al Stone 69fdad
        Device (ACAD)
Al Stone 69fdad
        {   //  ACAD:   AC adapter device
Al Stone 69fdad
            Name (_HID, "ACPI0003") //  AC adapter device
Al Stone 69fdad
Al Stone 69fdad
            Name (_PCL, Package () {\_SB})
Al Stone 69fdad
Al Stone 69fdad
            OperationRegion (AREG, SystemIO, 0x0372, 2)
Al Stone 69fdad
            Field (AREG, ByteAcc, NoLock, Preserve)
Al Stone 69fdad
            {
Al Stone 69fdad
                AIDX,   8,
Al Stone 69fdad
                ADAT,   8
Al Stone 69fdad
            }
Al Stone 69fdad
            IndexField (AIDX, ADAT, ByteAcc, NoLock, Preserve)
Al Stone 69fdad
            {
Al Stone 69fdad
                     ,  1,  //  skips
Al Stone 69fdad
                ACIN,   1,
Al Stone 69fdad
                     ,  2,  //  skips
Al Stone 69fdad
                CHAG,   1,
Al Stone 69fdad
                     ,  3,  //  skips
Al Stone 69fdad
                     ,  7,  //  skips
Al Stone 69fdad
                ABAT,   1,
Al Stone 69fdad
            }   //  IndexField
Al Stone 69fdad
Al Stone 69fdad
            Method (_PSR)
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (\_GPE.ACST, Local0)
Al Stone 69fdad
                Store (ACIN, Local1)
Al Stone 69fdad
                If (LNotEqual (\_GPE.ACST, Local1))
Al Stone 69fdad
                {
Al Stone 69fdad
                    Store (Local1, \_GPE.ACST)
Al Stone 69fdad
                    // This Notify is commented because it causes a
Al Stone 69fdad
                    //  method error when running on a system without the
Al Stone 69fdad
                    //  specific device.
Al Stone 69fdad
                    // Notify (\_SB_.ACAD, 0)
Al Stone 69fdad
                }
Al Stone 69fdad
                Return (Local0)
Al Stone 69fdad
            }   //  _PSR
Al Stone 69fdad
Al Stone 69fdad
            Method (_STA)
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (0x0F)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            Method (_INI)
Al Stone 69fdad
            {
Al Stone 69fdad
                Store (ACIN, \_GPE.ACST)
Al Stone 69fdad
            }
Al Stone 69fdad
        }   //  ACAD:   AC adapter device
Al Stone 69fdad
Al Stone 69fdad
        //  test implicit return from control method
Al Stone 69fdad
        Method (DIS_, 1)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store (Arg0, Local0)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Device (RTLV)
Al Stone 69fdad
        {
Al Stone 69fdad
            //  test implicit return inside nested if with explicit return of Lvalue
Al Stone 69fdad
            Method (_DCK, 1)
Al Stone 69fdad
            //  Arg0:   1 == dock, 0 == undock
Al Stone 69fdad
            {
Al Stone 69fdad
                If (Arg0)
Al Stone 69fdad
                {   //  dock
Al Stone 69fdad
                    Store (0x87, Local0)
Al Stone 69fdad
Al Stone 69fdad
                    If (Local0)
Al Stone 69fdad
                    {
Al Stone 69fdad
                        DIS_ (0x23)
Al Stone 69fdad
                        Return (1)
Al Stone 69fdad
                    }
Al Stone 69fdad
Al Stone 69fdad
                    Return (0)
Al Stone 69fdad
                }   //  dock
Al Stone 69fdad
                Else
Al Stone 69fdad
                {   //  undock
Al Stone 69fdad
                    Store (Arg0, Local0)
Al Stone 69fdad
Al Stone 69fdad
                    If (Local0)
Al Stone 69fdad
                    {
Al Stone 69fdad
                        DIS_ (0x23)
Al Stone 69fdad
                        Return (1)
Al Stone 69fdad
                    }
Al Stone 69fdad
Al Stone 69fdad
                    Return (0)
Al Stone 69fdad
                }   //  undock
Al Stone 69fdad
            }   //  _DCK control method
Al Stone 69fdad
Al Stone 69fdad
            Method (TEST)
Al Stone 69fdad
            {
Al Stone 69fdad
                Store ("++++++++ RetLVal Test", Debug)
Al Stone 69fdad
Al Stone 69fdad
                //  store _PSR return value into Local0
Al Stone 69fdad
                Store (\_SB_.ACAD._PSR, Local0)
Al Stone 69fdad
Al Stone 69fdad
                //  save Local0 object type value into Local1
Al Stone 69fdad
                Store (ObjectType (Local0), Local1)
Al Stone 69fdad
Al Stone 69fdad
                //  validate Local0 is a Number
Al Stone 69fdad
                If (LNotEqual (Local1, 1))  //  Number/Integer type is 1
Al Stone 69fdad
                {
Al Stone 69fdad
                    Return (1)      //  failure
Al Stone 69fdad
                }
Al Stone 69fdad
Al Stone 69fdad
                //  test implicit return inside nested if with explicit return of Lvalue
Al Stone 69fdad
                Store (_DCK (1), Local2)
Al Stone 69fdad
Al Stone 69fdad
                //  save Local2 object type value into Local3
Al Stone 69fdad
                Store (ObjectType (Local2), Local3)
Al Stone 69fdad
Al Stone 69fdad
                //  validate Local2 is a Number
Al Stone 69fdad
                If (LNotEqual (Local3, 1))  //  Number/Integer type is 1
Al Stone 69fdad
                {
Al Stone 69fdad
                    Return (2)      //  failure
Al Stone 69fdad
                }
Al Stone 69fdad
Al Stone 69fdad
                If (LNotEqual (Local2, 1))
Al Stone 69fdad
                {
Al Stone 69fdad
                    Return (3)      //  failure
Al Stone 69fdad
                }
Al Stone 69fdad
Al Stone 69fdad
                Return (0)  //  success
Al Stone 69fdad
            }   //  TEST
Al Stone 69fdad
        }   //  RTLV
Al Stone 69fdad
    }   //  _SB system bus
Al Stone 69fdad
Al Stone 69fdad
//
Al Stone 69fdad
// test RetPkg.asl
Al Stone 69fdad
//
Al Stone 69fdad
//  Test ReturnOp(Package)
Al Stone 69fdad
//      This is required to support _PRT on Dell Optiplex Workstations (e.g. GX1)
Al Stone 69fdad
//
Al Stone 69fdad
Al Stone 69fdad
    Scope (\_SB)    //  System Bus
Al Stone 69fdad
    {   //  _SB system bus
Al Stone 69fdad
        Device(LNKA)
Al Stone 69fdad
        {
Al Stone 69fdad
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
Al Stone 69fdad
            Name (_UID, 1)
Al Stone 69fdad
        }
Al Stone 69fdad
        Device(LNKB)
Al Stone 69fdad
        {
Al Stone 69fdad
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
Al Stone 69fdad
            Name (_UID, 2)
Al Stone 69fdad
        }
Al Stone 69fdad
        Device(LNKC)
Al Stone 69fdad
        {
Al Stone 69fdad
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
Al Stone 69fdad
            Name (_UID, 3)
Al Stone 69fdad
        }
Al Stone 69fdad
        Device(LNKD)
Al Stone 69fdad
        {
Al Stone 69fdad
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
Al Stone 69fdad
            Name (_UID, 4)
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        Device (PCI1)
Al Stone 69fdad
        {   //  PCI1:   Root PCI Bus
Al Stone 69fdad
            Name (_HID, "PNP0A03")  //  Need _HID for root device (String format)
Al Stone 69fdad
            Name (_ADR,0x00000000)
Al Stone 69fdad
            Name (_CRS,0)
Al Stone 69fdad
Al Stone 69fdad
            Name (_PRT, Package ()
Al Stone 69fdad
            {
Al Stone 69fdad
                Package () {0x0004ffff, 0, LNKA, 0},            //  Slot 1, INTA
Al Stone 69fdad
                Package () {0x0004ffff, 1, LNKB, 0},            //  Slot 1, INTB
Al Stone 69fdad
                Package () {0x0004ffff, 2, LNKC, 0},            //  Slot 1, INTC
Al Stone 69fdad
                Package () {0x0004ffff, 3, LNKD, 0},            //  Slot 1, INTD
Al Stone 69fdad
                Package () {0x0005ffff, 0, \_SB_.LNKB, 0},  //  Slot 2, INTA
Al Stone 69fdad
                Package () {0x0005ffff, 1, \_SB_.LNKC, 0},  //  Slot 2, INTB
Al Stone 69fdad
                Package () {0x0005ffff, 2, \_SB_.LNKD, 0},  //  Slot 2, INTC
Al Stone 69fdad
                Package () {0x0006ffff, 3, \_SB_.LNKA, 0},  //  Slot 2, INTD
Al Stone 69fdad
                Package () {0x0006ffff, 0, LNKC, 0},            //  Slot 3, INTA
Al Stone 69fdad
                Package () {0x0006ffff, 1, LNKD, 0},            //  Slot 3, INTB
Al Stone 69fdad
                Package () {0x0006ffff, 2, LNKA, 0},            //  Slot 3, INTC
Al Stone 69fdad
                Package () {0x0006ffff, 3, LNKB, 0},            //  Slot 3, INTD
Al Stone 69fdad
            })
Al Stone 69fdad
Al Stone 69fdad
            Device (PX40)
Al Stone 69fdad
            {   // Map f0 space, Start PX40
Al Stone 69fdad
                Name (_ADR,0x00070000)  //  Address+function.
Al Stone 69fdad
            }
Al Stone 69fdad
        }   //  PCI0:   Root PCI Bus
Al Stone 69fdad
Al Stone 69fdad
        Device (RETP)
Al Stone 69fdad
        {
Al Stone 69fdad
            Method (RPKG)
Al Stone 69fdad
            {   //  RPKG: Return Package from local variable
Al Stone 69fdad
Al Stone 69fdad
                //  store _PRT package into Local0
Al Stone 69fdad
                Store (\_SB_.PCI1._PRT, Local0)
Al Stone 69fdad
Al Stone 69fdad
                //  return Local0 Package
Al Stone 69fdad
                Return (Local0)
Al Stone 69fdad
            }   //  RPKG
Al Stone 69fdad
Al Stone 69fdad
            Method (TEST)
Al Stone 69fdad
            {
Al Stone 69fdad
                Store ("++++++++ RetPkg Test", Debug)
Al Stone 69fdad
Al Stone 69fdad
                //  store RPKG package return value into Local0
Al Stone 69fdad
                Store (RPKG, Local0)
Al Stone 69fdad
Al Stone 69fdad
                //  save Local0 object type value into Local1
Al Stone 69fdad
                Store (ObjectType (Local0), Local1)
Al Stone 69fdad
Al Stone 69fdad
                //  validate Local0 is a Package
Al Stone 69fdad
                If (LNotEqual (Local1, 4))  //  Package type is 4
Al Stone 69fdad
                    {   Return (1)  }   //  failure
Al Stone 69fdad
                Else
Al Stone 69fdad
                    {   Return (0)  }   //  success
Al Stone 69fdad
            }   //  TEST
Al Stone 69fdad
        }   //  RETP
Al Stone 69fdad
    } // _SB_
Al Stone 69fdad
Al Stone 69fdad
//
Al Stone 69fdad
// test WhileRet.asl
Al Stone 69fdad
//
Al Stone 69fdad
//  WhileRet.asl tests a ReturnOp nested in a IfOp nested in a WhileOp.
Al Stone 69fdad
//
Al Stone 69fdad
    Device (WHLR)
Al Stone 69fdad
    {
Al Stone 69fdad
        Name (LCNT, 0)
Al Stone 69fdad
        Method (WIR)
Al Stone 69fdad
        {   //  WIR:    control method that returns inside of IfOp inside of WhileOp
Al Stone 69fdad
            While (LLess (LCNT, 4))
Al Stone 69fdad
            {
Al Stone 69fdad
                    If (LEqual (LCNT, 2))
Al Stone 69fdad
                    {
Al Stone 69fdad
                        Return (0)
Al Stone 69fdad
                    }
Al Stone 69fdad
Al Stone 69fdad
                Increment (LCNT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            Return (LCNT)
Al Stone 69fdad
        }   //  WIR:    control method that returns inside of IfOp inside of WhileOp
Al Stone 69fdad
Al Stone 69fdad
        Method (TEST)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ WhileRet Test", Debug)
Al Stone 69fdad
Al Stone 69fdad
            Store (WIR, Local0)
Al Stone 69fdad
Al Stone 69fdad
            Return (Local0)
Al Stone 69fdad
        }   //  TEST
Al Stone 69fdad
    }   //  WHLR
Al Stone 69fdad
Al Stone 69fdad
//
Al Stone 69fdad
// test AndOrOp.asl
Al Stone 69fdad
//
Al Stone 69fdad
//This code tests the bitwise AndOp and OrOp Operator terms
Al Stone 69fdad
//
Al Stone 69fdad
//Syntax of Andop term
Al Stone 69fdad
//And - Bitwise And
Al Stone 69fdad
//AndTerm   := And(
Al Stone 69fdad
//  Source1,    //TermArg=>Integer
Al Stone 69fdad
//  Source2,    //TermArg=>Integer
Al Stone 69fdad
//  Result  //Nothing | SuperName
Al Stone 69fdad
//) => Integer
Al Stone 69fdad
//Source1 and Source2 are evaluated as integer data types,
Al Stone 69fdad
// a bit-wise AND is performed, and the result is optionally
Al Stone 69fdad
//stored into Result.
Al Stone 69fdad
//
Al Stone 69fdad
//
Al Stone 69fdad
//Syntax of OrOp
Al Stone 69fdad
//Or - Bit-wise Or
Al Stone 69fdad
//OrTerm    := Or(
Al Stone 69fdad
//  Source1,    //TermArg=>Integer
Al Stone 69fdad
//  Source2 //TermArg=>Integer
Al Stone 69fdad
//  Result  //Nothing | SuperName
Al Stone 69fdad
//) => Integer
Al Stone 69fdad
//Source1 and Source2 are evaluated as integer data types,
Al Stone 69fdad
// a bit-wide OR is performed, and the result is optionally
Al Stone 69fdad
//stored in Result
Al Stone 69fdad
//
Al Stone 69fdad
    Device (ANDO)
Al Stone 69fdad
    {
Al Stone 69fdad
        OperationRegion (TMEM, SystemMemory, 0xC4, 0x02)
Al Stone 69fdad
        Field (TMEM, ByteAcc, NoLock, Preserve)
Al Stone 69fdad
        {
Al Stone 69fdad
                ,   3,
Al Stone 69fdad
            TOUD,   13
Al Stone 69fdad
        }
Al Stone 69fdad
Al Stone 69fdad
        //Create System Memory Operation Region and field overlays
Al Stone 69fdad
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
Al Stone 69fdad
        Field (RAM, AnyAcc, NoLock, Preserve)
Al Stone 69fdad
        {
Al Stone 69fdad
            SMDW,   32, //  32-bit DWORD
Al Stone 69fdad
            SMWD,   16, //  16-bit WORD
Al Stone 69fdad
            SMBY,   8,  //  8-bit BYTE
Al Stone 69fdad
        }// Field(RAM)
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
        //And with Byte Data
Al Stone 69fdad
        Name (BYT1, 0xff)
Al Stone 69fdad
        Name (BYT2, 0xff)
Al Stone 69fdad
        Name (BRSL, 0x00)
Al Stone 69fdad
Al Stone 69fdad
        //And with Word Data
Al Stone 69fdad
        Name (WRD1, 0xffff)
Al Stone 69fdad
        Name (WRD2, 0xffff)
Al Stone 69fdad
        Name (WRSL, 0x0000)
Al Stone 69fdad
Al Stone 69fdad
        //And with DWord Data
Al Stone 69fdad
        Name (DWD1, 0xffffffff)
Al Stone 69fdad
        Name (DWD2, 0xffffffff)
Al Stone 69fdad
        Name (DRSL, 0x00000000)
Al Stone 69fdad
Al Stone 69fdad
        Method (ANDP)
Al Stone 69fdad
        {
Al Stone 69fdad
            //Check with 1 And 1 on byte data
Al Stone 69fdad
            And(BYT1, BYT2, BRSL)
Al Stone 69fdad
            if(LNotEqual(BRSL,0xff))
Al Stone 69fdad
            {Return(1)}
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 And 1 on Word data
Al Stone 69fdad
            And(WRD1, WRD2, WRSL)
Al Stone 69fdad
            if(LNotEqual(WRSL,0xffff))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 And 1 Dword
Al Stone 69fdad
            And(DWD1, DWD2, DRSL)
Al Stone 69fdad
            if(LNotEqual(DRSL,0xffffffff))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 0 And 0 on byte data
Al Stone 69fdad
            Store(0x00,BYT1)
Al Stone 69fdad
            Store(0x00,BYT2)
Al Stone 69fdad
            Store(0x00,BRSL)
Al Stone 69fdad
            And(BYT1, BYT2, BRSL)
Al Stone 69fdad
            if(LNotEqual(BRSL,0x00))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 0 And 0 on Word data
Al Stone 69fdad
            Store (0x0000,WRD1)
Al Stone 69fdad
            Store (0x0000,WRD2)
Al Stone 69fdad
            Store (0x0000,WRSL)
Al Stone 69fdad
            And(WRD1, WRD2, WRSL)
Al Stone 69fdad
            if(LNotEqual(WRSL,0x0000))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 0 And 0 Dword
Al Stone 69fdad
            Store (0x00000000,DWD1)
Al Stone 69fdad
            Store (0x00000000,DWD2)
Al Stone 69fdad
            Store (0x00000000,DRSL)
Al Stone 69fdad
            And(DWD1, DWD2, DRSL)
Al Stone 69fdad
            if(LNotEqual(DRSL,0x00000000))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 And 0 on byte data
Al Stone 69fdad
            Store(0x55,BYT1)
Al Stone 69fdad
            Store(0xAA,BYT2)
Al Stone 69fdad
            Store(0x00,BRSL)
Al Stone 69fdad
            And(BYT1, BYT2, BRSL)
Al Stone 69fdad
            if(LNotEqual(BRSL,0x00))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 And 0 on Word data
Al Stone 69fdad
            Store (0x5555,WRD1)
Al Stone 69fdad
            Store (0xAAAA,WRD2)
Al Stone 69fdad
            Store (0x0000,WRSL)
Al Stone 69fdad
            And(WRD1, WRD2, WRSL)
Al Stone 69fdad
            if(LNotEqual(WRSL,0x0000))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 And 0 on Dword
Al Stone 69fdad
            Store (0x55555555,DWD1)
Al Stone 69fdad
            Store (0xAAAAAAAA,DWD2)
Al Stone 69fdad
            Store (0x00000000,DRSL)
Al Stone 69fdad
            And(DWD1, DWD2, DRSL)
Al Stone 69fdad
            if(LNotEqual(DRSL,0x00000000))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            Store (0x1FFF, TOUD)
Al Stone 69fdad
            Store (TOUD, Local0)
Al Stone 69fdad
            if(LNotEqual(Local0,0x1FFF))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //TBD- Do We need to check for system memory data also for each test case ??
Al Stone 69fdad
Al Stone 69fdad
            Return(0)
Al Stone 69fdad
Al Stone 69fdad
        }//ANDP
Al Stone 69fdad
Al Stone 69fdad
        Method (OROP)
Al Stone 69fdad
        {
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 Ored with 1 on byte data
Al Stone 69fdad
            Store(0xff,BYT1)
Al Stone 69fdad
            Store(0xff,BYT2)
Al Stone 69fdad
            Store(0x00,BRSL)
Al Stone 69fdad
            Or(BYT1, BYT2, BRSL)
Al Stone 69fdad
            if(LNotEqual(BRSL,0xff))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 Ored with 1 on Word data
Al Stone 69fdad
            Store(0xffff,WRD1)
Al Stone 69fdad
            Store(0xffff,WRD2)
Al Stone 69fdad
            Store(0x0000,WRSL)
Al Stone 69fdad
            Or(WRD1, WRD2, WRSL)
Al Stone 69fdad
            if(LNotEqual(WRSL,0xffff))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 Ored with 1 on Dword data
Al Stone 69fdad
            Store(0xffffffff,DWD1)
Al Stone 69fdad
            Store(0xffffffff,DWD2)
Al Stone 69fdad
            Store(0x00000000,DRSL)
Al Stone 69fdad
            Or(DWD1, DWD2, DRSL)
Al Stone 69fdad
            if(LNotEqual(DRSL,0xffffffff))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 0 Ored with 0 on byte data
Al Stone 69fdad
            Store(0x00,BYT1)
Al Stone 69fdad
            Store(0x00,BYT2)
Al Stone 69fdad
            Store(0x00,BRSL)
Al Stone 69fdad
            Or(BYT1, BYT2, BRSL)
Al Stone 69fdad
            if(LNotEqual(BRSL,0x00))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 0 Ored with 0 on Word data
Al Stone 69fdad
            Store (0x0000,WRD1)
Al Stone 69fdad
            Store (0x0000,WRD2)
Al Stone 69fdad
            Store (0x0000,WRSL)
Al Stone 69fdad
            Or(WRD1, WRD2, WRSL)
Al Stone 69fdad
            if(LNotEqual(WRSL,0x0000))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 0 Ored with  0 Dword data
Al Stone 69fdad
            Store (0x00000000,DWD1)
Al Stone 69fdad
            Store (0x00000000,DWD2)
Al Stone 69fdad
            Store (0x00000000,DRSL)
Al Stone 69fdad
            Or(DWD1, DWD2, DRSL)
Al Stone 69fdad
            if(LNotEqual(DRSL,0x00000000))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 Ored with 0 on byte data
Al Stone 69fdad
            Store(0x55,BYT1)
Al Stone 69fdad
            Store(0xAA,BYT2)
Al Stone 69fdad
            Store(0x00,BRSL)
Al Stone 69fdad
            Or(BYT1, BYT2, BRSL)
Al Stone 69fdad
            if(LNotEqual(BRSL,0xff))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 Ored with 0 on Word data
Al Stone 69fdad
            Store (0x5555,WRD1)
Al Stone 69fdad
            Store (0xAAAA,WRD2)
Al Stone 69fdad
            Store (0x0000,WRSL)
Al Stone 69fdad
            Or(WRD1, WRD2, WRSL)
Al Stone 69fdad
            if(LNotEqual(WRSL,0xffff))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Check with 1 Ored with 0 on Dword data
Al Stone 69fdad
            Store (0x55555555,DWD1)
Al Stone 69fdad
            Store (0xAAAAAAAA,DWD2)
Al Stone 69fdad
            Store (0x00000000,DRSL)
Al Stone 69fdad
            Or(DWD1, DWD2, DRSL)
Al Stone 69fdad
            if(LNotEqual(DRSL,0xffffffff))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (1)      //  failure
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //TBD - Do We need to check for system memory data also for each test case ??
Al Stone 69fdad
Al Stone 69fdad
            Return(0)
Al Stone 69fdad
Al Stone 69fdad
        }//OROP
Al Stone 69fdad
Al Stone 69fdad
        Method(TEST,, Serialized)
Al Stone 69fdad
        {
Al Stone 69fdad
            Store ("++++++++ AndOrOp Test", Debug)
Al Stone 69fdad
Al Stone 69fdad
            Name(RSLT,1)
Al Stone 69fdad
            //Call Andop method
Al Stone 69fdad
            Store(ANDP,RSLT)
Al Stone 69fdad
            if(LEqual(RSLT,1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return (RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //Call OrOp Method
Al Stone 69fdad
            Store(OROP,RSLT)
Al Stone 69fdad
            if(LEqual(RSLT,1))
Al Stone 69fdad
            {
Al Stone 69fdad
                Return(RSLT)
Al Stone 69fdad
            }
Al Stone 69fdad
Al Stone 69fdad
            //
Al Stone 69fdad
            // Return original conditions to allow iterative execution
Al Stone 69fdad
            //
Al Stone 69fdad
            Store(0xff,BYT1)
Al Stone 69fdad
            Store(0xff,BYT2)
Al Stone 69fdad
            Store(0x00,BRSL)
Al Stone 69fdad
            Store (0xffff,WRD1)
Al Stone 69fdad
            Store (0xffff,WRD2)
Al Stone 69fdad
            Store (0x0000,WRSL)
Al Stone 69fdad
            Store (0xffffffff,DWD1)