Home | History | Annotate | Line # | Download | only in misc
badcode.asl revision 1.1.1.2.4.2
      1  1.1.1.2.4.2  rmind /*
      2  1.1.1.2.4.2  rmind  * badcode.asl
      3  1.1.1.2.4.2  rmind  *
      4  1.1.1.2.4.2  rmind  * This file contains examples of the extended error checking and
      5  1.1.1.2.4.2  rmind  * typechecking capabilities of the iASL compiler. Other ASL compilers
      6  1.1.1.2.4.2  rmind  * may ignore these errors completely. Note - this is not an exhaustive
      7  1.1.1.2.4.2  rmind  * list of errors detected by iASL, it shows many of the errors that
      8  1.1.1.2.4.2  rmind  * are not detected by other ASL compilers.
      9  1.1.1.2.4.2  rmind  *
     10  1.1.1.2.4.2  rmind  * To compile, use:
     11  1.1.1.2.4.2  rmind  * iasl badcode.asl
     12  1.1.1.2.4.2  rmind  */
     13  1.1.1.2.4.2  rmind DefinitionBlock ("badcode.aml", "DSDT", 1, "Intel", "Example", 0x00000001)
     14  1.1.1.2.4.2  rmind {
     15  1.1.1.2.4.2  rmind     Name (INT1, 0)
     16  1.1.1.2.4.2  rmind     Name (BUF1, Buffer() {0,1,2,3})
     17  1.1.1.2.4.2  rmind     Event (EVT1)
     18  1.1.1.2.4.2  rmind 
     19  1.1.1.2.4.2  rmind     // Invalid SyncLevel in Mutex declaration
     20  1.1.1.2.4.2  rmind 
     21  1.1.1.2.4.2  rmind     Mutex (MTX1, 32)
     22  1.1.1.2.4.2  rmind 
     23  1.1.1.2.4.2  rmind     // Integer beyond the table integer size (32 bits)
     24  1.1.1.2.4.2  rmind 
     25  1.1.1.2.4.2  rmind     Name (BIG, 0x1234567887654321)
     26  1.1.1.2.4.2  rmind 
     27  1.1.1.2.4.2  rmind     // CPackage length does not match initializer list length
     28  1.1.1.2.4.2  rmind 
     29  1.1.1.2.4.2  rmind     Name (PKG1, Package(5) {0,1})
     30  1.1.1.2.4.2  rmind 
     31  1.1.1.2.4.2  rmind     // Inadvertent use of single backslash in a string
     32  1.1.1.2.4.2  rmind 
     33  1.1.1.2.4.2  rmind     Name (PATH, Buffer() {"\_SB_.PCI2._CRS"})
     34  1.1.1.2.4.2  rmind 
     35  1.1.1.2.4.2  rmind     // Invalid hex escape sequence
     36  1.1.1.2.4.2  rmind 
     37  1.1.1.2.4.2  rmind     Name (ESC1, "abcdefg\x00hijklmn")
     38  1.1.1.2.4.2  rmind 
     39  1.1.1.2.4.2  rmind     // Field access beyond region bounds
     40  1.1.1.2.4.2  rmind 
     41  1.1.1.2.4.2  rmind     OperationRegion (OPR1, SystemMemory, 0x2000, 6)
     42  1.1.1.2.4.2  rmind     Field (OPR1, DWordAcc, NoLock, Preserve)
     43  1.1.1.2.4.2  rmind     {
     44  1.1.1.2.4.2  rmind         Offset (4),
     45  1.1.1.2.4.2  rmind         FLD1, 8
     46  1.1.1.2.4.2  rmind     }
     47  1.1.1.2.4.2  rmind 
     48  1.1.1.2.4.2  rmind     // Some address spaces support only ByteAcc or BufferAcc
     49  1.1.1.2.4.2  rmind 
     50  1.1.1.2.4.2  rmind     OperationRegion (OPR2, EmbeddedControl, 0x4000, 8)
     51  1.1.1.2.4.2  rmind     Field (OPR2, DWordAcc, NoLock, Preserve)
     52  1.1.1.2.4.2  rmind     {
     53  1.1.1.2.4.2  rmind         FLD2, 8
     54  1.1.1.2.4.2  rmind     }
     55  1.1.1.2.4.2  rmind     OperationRegion (OPR3, SMBus, 0x8000, 16)
     56  1.1.1.2.4.2  rmind     Field (OPR3, WordAcc, NoLock, Preserve)
     57  1.1.1.2.4.2  rmind     {
     58  1.1.1.2.4.2  rmind         FLD3, 8
     59  1.1.1.2.4.2  rmind     }
     60  1.1.1.2.4.2  rmind 
     61  1.1.1.2.4.2  rmind     // Invalid SyncLevel in method declaration
     62  1.1.1.2.4.2  rmind 
     63  1.1.1.2.4.2  rmind     Method (MTH1, 0, NotSerialized, 32)
     64  1.1.1.2.4.2  rmind     {
     65  1.1.1.2.4.2  rmind         // Invalid arguments and uninitialized locals
     66  1.1.1.2.4.2  rmind 
     67  1.1.1.2.4.2  rmind         Store (Arg3, Local0)
     68  1.1.1.2.4.2  rmind         Store (Local1, Local2)
     69  1.1.1.2.4.2  rmind 
     70  1.1.1.2.4.2  rmind         // Parameter typechecking (MTX1 is invalid type)
     71  1.1.1.2.4.2  rmind 
     72  1.1.1.2.4.2  rmind         Subtract (MTX1, 4, Local3)
     73  1.1.1.2.4.2  rmind 
     74  1.1.1.2.4.2  rmind         // Various invalid parameters
     75  1.1.1.2.4.2  rmind 
     76  1.1.1.2.4.2  rmind         CreateField (BUF1, 0, Subtract (4, 4), FLD1)
     77  1.1.1.2.4.2  rmind 
     78  1.1.1.2.4.2  rmind         // Unchecked mutex and event timeouts
     79  1.1.1.2.4.2  rmind 
     80  1.1.1.2.4.2  rmind         Acquire (MTX1, 100)
     81  1.1.1.2.4.2  rmind         Wait (EVT1, 1)
     82  1.1.1.2.4.2  rmind 
     83  1.1.1.2.4.2  rmind         // Result from operation is not used - statement has no effect
     84  1.1.1.2.4.2  rmind 
     85  1.1.1.2.4.2  rmind         Add (INT1, 8)
     86  1.1.1.2.4.2  rmind 
     87  1.1.1.2.4.2  rmind         // Unreachable code
     88  1.1.1.2.4.2  rmind 
     89  1.1.1.2.4.2  rmind         Return (0)
     90  1.1.1.2.4.2  rmind         Store (5, INT1)
     91  1.1.1.2.4.2  rmind     }
     92  1.1.1.2.4.2  rmind 
     93  1.1.1.2.4.2  rmind     Method (MTH2)
     94  1.1.1.2.4.2  rmind     {
     95  1.1.1.2.4.2  rmind         // Switch with no Case statements
     96  1.1.1.2.4.2  rmind 
     97  1.1.1.2.4.2  rmind         Switch (ToInteger (INT1))
     98  1.1.1.2.4.2  rmind         {
     99  1.1.1.2.4.2  rmind             Default
    100  1.1.1.2.4.2  rmind             {
    101  1.1.1.2.4.2  rmind             }
    102  1.1.1.2.4.2  rmind         }
    103  1.1.1.2.4.2  rmind 
    104  1.1.1.2.4.2  rmind         if (LEqual (INT1, 0))
    105  1.1.1.2.4.2  rmind         {
    106  1.1.1.2.4.2  rmind             Return (INT1)
    107  1.1.1.2.4.2  rmind         }
    108  1.1.1.2.4.2  rmind 
    109  1.1.1.2.4.2  rmind         // Fallthrough exit path does not return a value
    110  1.1.1.2.4.2  rmind     }
    111  1.1.1.2.4.2  rmind 
    112  1.1.1.2.4.2  rmind     Method (MTH3)
    113  1.1.1.2.4.2  rmind     {
    114  1.1.1.2.4.2  rmind         // Method MTH2 above does not always return a value
    115  1.1.1.2.4.2  rmind 
    116  1.1.1.2.4.2  rmind         Store (MTH2 (), Local0)
    117  1.1.1.2.4.2  rmind     }
    118  1.1.1.2.4.2  rmind 
    119  1.1.1.2.4.2  rmind     // Invalid _HID values
    120  1.1.1.2.4.2  rmind 
    121  1.1.1.2.4.2  rmind     Device (H1)
    122  1.1.1.2.4.2  rmind     {
    123  1.1.1.2.4.2  rmind         Name (_HID, "*PNP0C0A")     // Illegal leading asterisk
    124  1.1.1.2.4.2  rmind     }
    125  1.1.1.2.4.2  rmind     Device (H2)
    126  1.1.1.2.4.2  rmind     {
    127  1.1.1.2.4.2  rmind         Name (_HID, "PNP")          // Too short, must be 7 or 8 chars
    128  1.1.1.2.4.2  rmind     }
    129  1.1.1.2.4.2  rmind     Device (H3)
    130  1.1.1.2.4.2  rmind     {
    131  1.1.1.2.4.2  rmind         Name (_HID, "MYDEVICE01")   // Too long, must be 7 or 8 chars
    132  1.1.1.2.4.2  rmind     }
    133  1.1.1.2.4.2  rmind     Device (H4)
    134  1.1.1.2.4.2  rmind     {
    135  1.1.1.2.4.2  rmind         Name (_HID, "acpi0001")     // non-hex chars must be uppercase
    136  1.1.1.2.4.2  rmind     }
    137  1.1.1.2.4.2  rmind     Device (H5)
    138  1.1.1.2.4.2  rmind     {
    139  1.1.1.2.4.2  rmind         Name (_HID, "PNP-123")      // HID must be alphanumeric
    140  1.1.1.2.4.2  rmind     }
    141  1.1.1.2.4.2  rmind     Device (H6)
    142  1.1.1.2.4.2  rmind     {
    143  1.1.1.2.4.2  rmind         Name (_HID, "")             // Illegal Null HID
    144  1.1.1.2.4.2  rmind         Name (_CID, "")             // Illegal Null CID
    145  1.1.1.2.4.2  rmind     }
    146  1.1.1.2.4.2  rmind 
    147  1.1.1.2.4.2  rmind     // Predefined Name typechecking
    148  1.1.1.2.4.2  rmind 
    149  1.1.1.2.4.2  rmind     Name (_PRW, 4)
    150  1.1.1.2.4.2  rmind     Name (_FDI, Buffer () {0})
    151  1.1.1.2.4.2  rmind 
    152  1.1.1.2.4.2  rmind     // Predefined Name argument count validation
    153  1.1.1.2.4.2  rmind     // and return value validation
    154  1.1.1.2.4.2  rmind 
    155  1.1.1.2.4.2  rmind     Method (_OSC, 5)
    156  1.1.1.2.4.2  rmind     {
    157  1.1.1.2.4.2  rmind     }
    158  1.1.1.2.4.2  rmind 
    159  1.1.1.2.4.2  rmind     // Predefined Names that must be implemented as control methods
    160  1.1.1.2.4.2  rmind 
    161  1.1.1.2.4.2  rmind     Name (_L01, 1)
    162  1.1.1.2.4.2  rmind     Name (_E02, 2)
    163  1.1.1.2.4.2  rmind     Name (_Q03, 3)
    164  1.1.1.2.4.2  rmind     Name (_ON,  0)
    165  1.1.1.2.4.2  rmind     Name (_INI, 1)
    166  1.1.1.2.4.2  rmind     Name (_PTP, 2)
    167  1.1.1.2.4.2  rmind 
    168  1.1.1.2.4.2  rmind     // GPE methods that cause type collision (L vs. E)
    169  1.1.1.2.4.2  rmind 
    170  1.1.1.2.4.2  rmind     Scope (\_GPE)
    171  1.1.1.2.4.2  rmind     {
    172  1.1.1.2.4.2  rmind         Method (_L1D)
    173  1.1.1.2.4.2  rmind         {
    174  1.1.1.2.4.2  rmind         }
    175  1.1.1.2.4.2  rmind         Method (_E1D)
    176  1.1.1.2.4.2  rmind         {
    177  1.1.1.2.4.2  rmind         }
    178  1.1.1.2.4.2  rmind     }
    179  1.1.1.2.4.2  rmind 
    180  1.1.1.2.4.2  rmind     // Predefined names that should not have a return value
    181  1.1.1.2.4.2  rmind 
    182  1.1.1.2.4.2  rmind     Method (_FDM, 1)
    183  1.1.1.2.4.2  rmind     {
    184  1.1.1.2.4.2  rmind         Return (Buffer(1){0x33})
    185  1.1.1.2.4.2  rmind     }
    186  1.1.1.2.4.2  rmind     Method (_Q22)
    187  1.1.1.2.4.2  rmind     {
    188  1.1.1.2.4.2  rmind         Return ("Unexpected Return Value")
    189  1.1.1.2.4.2  rmind     }
    190  1.1.1.2.4.2  rmind 
    191  1.1.1.2.4.2  rmind     /*
    192  1.1.1.2.4.2  rmind      * Resource Descriptor error checking
    193  1.1.1.2.4.2  rmind      */
    194  1.1.1.2.4.2  rmind     Name (RSC1, ResourceTemplate ()
    195  1.1.1.2.4.2  rmind     {
    196  1.1.1.2.4.2  rmind         // Illegal nested StartDependent macros
    197  1.1.1.2.4.2  rmind 
    198  1.1.1.2.4.2  rmind         StartDependentFn (0, 0)
    199  1.1.1.2.4.2  rmind         {
    200  1.1.1.2.4.2  rmind             StartDependentFn (0, 0)
    201  1.1.1.2.4.2  rmind             {
    202  1.1.1.2.4.2  rmind             }
    203  1.1.1.2.4.2  rmind         }
    204  1.1.1.2.4.2  rmind 
    205  1.1.1.2.4.2  rmind         // Missing EndDependentFn macro
    206  1.1.1.2.4.2  rmind     })
    207  1.1.1.2.4.2  rmind 
    208  1.1.1.2.4.2  rmind     Name (RSC2, ResourceTemplate ()
    209  1.1.1.2.4.2  rmind     {
    210  1.1.1.2.4.2  rmind         // AddressMin is larger than AddressMax
    211  1.1.1.2.4.2  rmind         IO (Decode16,
    212  1.1.1.2.4.2  rmind             0x07D0,             // Range Minimum
    213  1.1.1.2.4.2  rmind             0x03E8,             // Range Maximum
    214  1.1.1.2.4.2  rmind             0x01,               // Alignment
    215  1.1.1.2.4.2  rmind             0x20,               // Length
    216  1.1.1.2.4.2  rmind             )
    217  1.1.1.2.4.2  rmind 
    218  1.1.1.2.4.2  rmind         // Length larger than Min/Max window size
    219  1.1.1.2.4.2  rmind         Memory32 (ReadOnly,
    220  1.1.1.2.4.2  rmind             0x00001000,         // Range Minimum
    221  1.1.1.2.4.2  rmind             0x00002000,         // Range Maximum
    222  1.1.1.2.4.2  rmind             0x00000004,         // Alignment
    223  1.1.1.2.4.2  rmind             0x00002000,         // Length
    224  1.1.1.2.4.2  rmind             )
    225  1.1.1.2.4.2  rmind 
    226  1.1.1.2.4.2  rmind         // Min and Max not multiples of alignment value
    227  1.1.1.2.4.2  rmind         Memory32 (ReadOnly,
    228  1.1.1.2.4.2  rmind             0x00001001,         // Range Minimum
    229  1.1.1.2.4.2  rmind             0x00002002,         // Range Maximum
    230  1.1.1.2.4.2  rmind             0x00000004,         // Alignment
    231  1.1.1.2.4.2  rmind             0x00000200,         // Length
    232  1.1.1.2.4.2  rmind             )
    233  1.1.1.2.4.2  rmind 
    234  1.1.1.2.4.2  rmind         // 10-bit ISA I/O address has a max of 0x3FF
    235  1.1.1.2.4.2  rmind         FixedIO (
    236  1.1.1.2.4.2  rmind             0xFFFF,             // Address
    237  1.1.1.2.4.2  rmind             0x20,               // Length
    238  1.1.1.2.4.2  rmind             )
    239  1.1.1.2.4.2  rmind 
    240  1.1.1.2.4.2  rmind         // Invalid AccessSize parameter
    241  1.1.1.2.4.2  rmind         Register (SystemIO,
    242  1.1.1.2.4.2  rmind             0x08,               // Bit Width
    243  1.1.1.2.4.2  rmind             0x00,               // Bit Offset
    244  1.1.1.2.4.2  rmind             0x0000000000000100, // Address
    245  1.1.1.2.4.2  rmind             0x05                // Access Size
    246  1.1.1.2.4.2  rmind             )
    247  1.1.1.2.4.2  rmind 
    248  1.1.1.2.4.2  rmind         // Invalid ResourceType (0xB0)
    249  1.1.1.2.4.2  rmind         QWordSpace (0xB0, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
    250  1.1.1.2.4.2  rmind             0x0000,             // Granularity
    251  1.1.1.2.4.2  rmind             0xA000,             // Range Minimum
    252  1.1.1.2.4.2  rmind             0xBFFF,             // Range Maximum
    253  1.1.1.2.4.2  rmind             0x0000,             // Translation Offset
    254  1.1.1.2.4.2  rmind             0x2000,             // Length
    255  1.1.1.2.4.2  rmind             ,, )
    256  1.1.1.2.4.2  rmind 
    257  1.1.1.2.4.2  rmind         // AddressMin is larger than AddressMax
    258  1.1.1.2.4.2  rmind         WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    259  1.1.1.2.4.2  rmind             0x0000,             // Granularity
    260  1.1.1.2.4.2  rmind             0x0200,             // Range Minimum
    261  1.1.1.2.4.2  rmind             0x0100,             // Range Maximum
    262  1.1.1.2.4.2  rmind             0x0000,             // Translation Offset
    263  1.1.1.2.4.2  rmind             0x0100,             // Length
    264  1.1.1.2.4.2  rmind             ,, , TypeStatic)
    265  1.1.1.2.4.2  rmind 
    266  1.1.1.2.4.2  rmind         // Length larger than Min/Max window size
    267  1.1.1.2.4.2  rmind         DWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
    268  1.1.1.2.4.2  rmind             0x00000000,         // Granularity
    269  1.1.1.2.4.2  rmind             0x000C8000,         // Range Minimum
    270  1.1.1.2.4.2  rmind             0x000C9000,         // Range Maximum
    271  1.1.1.2.4.2  rmind             0x00000000,         // Translation Offset
    272  1.1.1.2.4.2  rmind             0x00001002,         // Length
    273  1.1.1.2.4.2  rmind             ,, )
    274  1.1.1.2.4.2  rmind 
    275  1.1.1.2.4.2  rmind         // Granularity must be (power-of-two -1)
    276  1.1.1.2.4.2  rmind         DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxNotFixed, NonCacheable, ReadWrite,
    277  1.1.1.2.4.2  rmind             0x00000010,
    278  1.1.1.2.4.2  rmind             0x40000000,
    279  1.1.1.2.4.2  rmind             0xFED9FFFF,
    280  1.1.1.2.4.2  rmind             0x00000000,
    281  1.1.1.2.4.2  rmind             0xBECA0000)
    282  1.1.1.2.4.2  rmind 
    283  1.1.1.2.4.2  rmind         // Address Min (with zero length) not on granularity boundary
    284  1.1.1.2.4.2  rmind         QWordIO (ResourceProducer, MinFixed, MaxNotFixed, PosDecode, EntireRange,
    285  1.1.1.2.4.2  rmind             0x0000000000000003, // Granularity
    286  1.1.1.2.4.2  rmind             0x0000000000000B02, // Range Minimum
    287  1.1.1.2.4.2  rmind             0x0000000000000C00, // Range Maximum
    288  1.1.1.2.4.2  rmind             0x0000000000000000, // Translation Offset
    289  1.1.1.2.4.2  rmind             0x0000000000000000, // Length
    290  1.1.1.2.4.2  rmind             ,, , TypeStatic)
    291  1.1.1.2.4.2  rmind 
    292  1.1.1.2.4.2  rmind         // Address Max (with zero length) not on (granularity boundary -1)
    293  1.1.1.2.4.2  rmind         QWordMemory (ResourceProducer, PosDecode, MinNotFixed, MaxFixed, Cacheable, ReadWrite,
    294  1.1.1.2.4.2  rmind             0x0000000000000001, // Granularity
    295  1.1.1.2.4.2  rmind             0x0000000000100000, // Range Minimum
    296  1.1.1.2.4.2  rmind             0x00000000002FFFFE, // Range Maximum
    297  1.1.1.2.4.2  rmind             0x0000000000000000, // Translation Offset
    298  1.1.1.2.4.2  rmind             0x0000000000000000, // Length
    299  1.1.1.2.4.2  rmind             ,, , AddressRangeMemory, TypeStatic)
    300  1.1.1.2.4.2  rmind 
    301  1.1.1.2.4.2  rmind         // Invalid combination: zero length, both Min and Max are fixed
    302  1.1.1.2.4.2  rmind         DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    303  1.1.1.2.4.2  rmind             0x00000000,         // Granularity
    304  1.1.1.2.4.2  rmind             0x000C8000,         // Range Minimum
    305  1.1.1.2.4.2  rmind             0x000C8FFF,         // Range Maximum
    306  1.1.1.2.4.2  rmind             0x00000000,         // Translation Offset
    307  1.1.1.2.4.2  rmind             0x00000000,         // Length
    308  1.1.1.2.4.2  rmind             ,, )
    309  1.1.1.2.4.2  rmind 
    310  1.1.1.2.4.2  rmind         // Invalid combination: non-zero length, Min Fixed, Max not fixed
    311  1.1.1.2.4.2  rmind         DWordIO (ResourceProducer, MinFixed, MaxNotFixed, PosDecode, EntireRange,
    312  1.1.1.2.4.2  rmind             0x00000001,         // Granularity
    313  1.1.1.2.4.2  rmind             0x000C8000,         // Range Minimum
    314  1.1.1.2.4.2  rmind             0x000C8FFF,         // Range Maximum
    315  1.1.1.2.4.2  rmind             0x00000000,         // Translation Offset
    316  1.1.1.2.4.2  rmind             0x00000100,         // Length
    317  1.1.1.2.4.2  rmind             ,, )
    318  1.1.1.2.4.2  rmind 
    319  1.1.1.2.4.2  rmind         // Invalid combination: non-zero length, Min not Fixed, Max fixed
    320  1.1.1.2.4.2  rmind         DWordIO (ResourceProducer, MinNotFixed, MaxFixed, PosDecode, EntireRange,
    321  1.1.1.2.4.2  rmind             0x00000001,         // Granularity
    322  1.1.1.2.4.2  rmind             0x000C8000,         // Range Minimum
    323  1.1.1.2.4.2  rmind             0x000C8FFF,         // Range Maximum
    324  1.1.1.2.4.2  rmind             0x00000000,         // Translation Offset
    325  1.1.1.2.4.2  rmind             0x00000200,         // Length
    326  1.1.1.2.4.2  rmind             ,, )
    327  1.1.1.2.4.2  rmind 
    328  1.1.1.2.4.2  rmind         // Granularity must be zero if non-zero length, min/max fixed
    329  1.1.1.2.4.2  rmind         DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    330  1.1.1.2.4.2  rmind             0x0000000F,         // Granularity
    331  1.1.1.2.4.2  rmind             0x000C8000,         // Range Minimum
    332  1.1.1.2.4.2  rmind             0x000C8FFF,         // Range Maximum
    333  1.1.1.2.4.2  rmind             0x00000000,         // Translation Offset
    334  1.1.1.2.4.2  rmind             0x00001000,         // Length
    335  1.1.1.2.4.2  rmind             ,, )
    336  1.1.1.2.4.2  rmind 
    337  1.1.1.2.4.2  rmind         // Null descriptor (intended to be modified at runtime) must
    338  1.1.1.2.4.2  rmind         // have a resource tag (to allow it to be modified at runtime)
    339  1.1.1.2.4.2  rmind         DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    340  1.1.1.2.4.2  rmind             0x00000000,         // Granularity
    341  1.1.1.2.4.2  rmind             0x00000000,         // Range Minimum
    342  1.1.1.2.4.2  rmind             0x00000000,         // Range Maximum
    343  1.1.1.2.4.2  rmind             0x00000000,         // Translation Offset
    344  1.1.1.2.4.2  rmind             0x00000000,         // Length
    345  1.1.1.2.4.2  rmind             ,, )
    346  1.1.1.2.4.2  rmind 
    347  1.1.1.2.4.2  rmind         // Missing StartDependentFn macro
    348  1.1.1.2.4.2  rmind 
    349  1.1.1.2.4.2  rmind         EndDependentFn ()
    350  1.1.1.2.4.2  rmind     })
    351  1.1.1.2.4.2  rmind }
    352  1.1.1.2.4.2  rmind 
    353