1/* 2 * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without modification, 6 * are permitted provided that the following conditions are met: 7 * 8 * Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * Neither the name of Intel Corporation nor the names of its contributors 14 * may be used to endorse or promote products derived from this software 15 * without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29/* 30 * Resource Descriptor macros 31 * 32 * QWord Space Resource Descriptor Macro 33 */ 34 35Name (p42c, Package() { 36 37 // Byte 4 (General Flags) of QWord Address Space Descriptor 38 39 ResourceTemplate () { 40 QWordSpace (0xc0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0a, 41 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 42 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 43 }, 44 ResourceTemplate () { 45 QWordSpace (0xc1, ResourceProducer, PosDecode, MinNotFixed, MaxFixed, 0x1a, 46 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 47 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 48 }, 49 ResourceTemplate () { 50 QWordSpace (0xc2, ResourceProducer, PosDecode, MinFixed, MaxNotFixed, 0x2a, 51 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 52 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 53 }, 54 ResourceTemplate () { 55 QWordSpace (0xc3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0x3a, 56 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 57 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 58 }, 59 ResourceTemplate () { 60 QWordSpace (0xc4, ResourceProducer, SubDecode, MinNotFixed, MaxNotFixed, 0x4a, 61 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 62 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 63 }, 64 ResourceTemplate () { 65 QWordSpace (0xc5, ResourceProducer, SubDecode, MinNotFixed, MaxFixed, 0x5a, 66 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 67 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 68 }, 69 ResourceTemplate () { 70 QWordSpace (0xc6, ResourceProducer, SubDecode, MinFixed, MaxNotFixed, 0x6a, 71 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 72 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 73 }, 74 ResourceTemplate () { 75 QWordSpace (0xc7, ResourceProducer, SubDecode, MinFixed, MaxFixed, 0x7a, 76 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 77 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 78 }, 79 ResourceTemplate () { 80 QWordSpace (0xc8, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x8a, 81 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 82 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 83 }, 84 ResourceTemplate () { 85 QWordSpace (0xc9, ResourceConsumer, PosDecode, MinNotFixed, MaxFixed, 0x9a, 86 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 87 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 88 }, 89 ResourceTemplate () { 90 QWordSpace (0xca, ResourceConsumer, PosDecode, MinFixed, MaxNotFixed, 0xaa, 91 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 92 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 93 }, 94 ResourceTemplate () { 95 QWordSpace (0xcb, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xba, 96 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 97 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 98 }, 99 ResourceTemplate () { 100 QWordSpace (0xcc, ResourceConsumer, SubDecode, MinNotFixed, MaxNotFixed, 0xca, 101 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 102 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 103 }, 104 ResourceTemplate () { 105 QWordSpace (0xcd, ResourceConsumer, SubDecode, MinNotFixed, MaxFixed, 0xda, 106 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 107 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 108 }, 109 ResourceTemplate () { 110 QWordSpace (0xce, ResourceConsumer, SubDecode, MinFixed, MaxNotFixed, 0xea, 111 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 112 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 113 }, 114 ResourceTemplate () { 115 QWordSpace (0xff, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0xfa, 116 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 117 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 118 }, 119 120 // Byte 5 (Type Specific Flags) of QWord Address Space Descriptor 121 122 ResourceTemplate () { 123 QWordSpace (0xc0, , , , , 0x00, 124 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 125 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 126 }, 127 ResourceTemplate () { 128 QWordSpace (0xc0, , , , , 0xff, 129 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 130 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff) 131 }, 132 133 // Particular cases 134 135 ResourceTemplate () { 136 QWordSpace (0xc0, , , , , 0x5a, 137 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 138 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 139 , ) 140 }, 141 ResourceTemplate () { 142 QWordSpace (0xc0, , , , , 0x5a, 143 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 144 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 145 , , ) 146 }, 147 148 // Resource Source 149 150 ResourceTemplate () { 151 QWordSpace (0xc0, , , , , 0x5a, 152 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 153 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 154 0x01, "") 155 }, 156 ResourceTemplate () { 157 QWordSpace (0xc0, , , , , 0x5a, 158 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 159 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 160 0x0f, "P") 161 }, 162 ResourceTemplate () { 163 QWordSpace (0xc0, , , , , 0x5a, 164 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 165 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 166 0xf0, "PATH") 167 }, 168 ResourceTemplate () { 169 QWordSpace (0xc0, , , , , 0x5a, 170 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 171 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 172 0xff, 173 "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*", 174 ) 175 }, 176 177 // Particular cases 178 179 ResourceTemplate () { 180 QWordSpace (0xc0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x5a, 181 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 182 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 183 0xff, "PATHPATHPATH", QSP0) 184 }, 185 ResourceTemplate () { 186 QWordSpace (0xc0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0, 187 0, 0, 0, 0, 0, 188 0xff, "PATHPATHPATH", ) 189 }, 190 191 // 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection) 192 ResourceTemplate () { 193 QWordSpace (0xc0, , , , , 0x5a, 194 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 195 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 196 0x0f) 197 }, 198}) 199 200/* 201ACPI Specification, Revision 3.0, September 2, 2004 2026.4.3.5.1 QWord Address Space Descriptor 203 204Memory QWord Address Space Descriptor layout: 205 206Byte 0 (Tag Bits): Value=10001010B (0x8a) (Type = 1, Large item name = 0xA) 207Byte 1 (Length, bits[7:0]): Variable: Value = 43 (minimum) 208Byte 2 (Length, bits[15:8]): Variable: Value = 0 (minimum) 209Byte 3 (Resource Type): 210 192-255 Hardware Vendor Defined 211Byte 4 (General Flags): 212 Bits[7:4] Reserved (must be 0) 213 Bit[3] Min Address Fixed, _MAF: 214 1 The specified maximum address is fixed 215 0 The specified maximum address is not fixed 216 and can be changed 217 Bit[2] Max Address Fixed,_MIF: 218 1 The specified minimum address is fixed 219 0 The specified minimum address is not fixed 220 and can be changed 221 Bit[1] Decode Type, _DEC: 222 1 This bridge subtractively decodes this address 223 (top level bridges only) 224 0 This bridge positively decodes this address 225 Bit[0] Consumer/Producer: 226 1-This device consumes this resource 227 0-This device produces and consumes this resource 228Byte 5 (Type Specific Flags): 229 Flags that are specific to each resource type. The meaning of the flags 230 in this field depends on the value of the Resource Type field (see above) 231Byte 6 (Address space granularity, _GRA bits[7:0]): 232 A set bit in this mask means that this bit is decoded. All bits less 233 significant than the most significant set bit must be set. (in other 234 words, the value of the full Address Space Granularity field (all 32 235 bits) must be a number (2**n-1). 236Byte 7 (Address space granularity, _GRA bits[15:8]) 237Byte 8 (Address space granularity, _GRA bits[23:16]) 238Byte 9 (Address space granularity, _GRA bits[31:24]) 239Byte 10 (Address space granularity, _GRA bits[39:32]) 240Byte 11 (Address space granularity, _GRA bits[47:40]) 241Byte 12 (Address space granularity, _GRA bits[55:48]) 242Byte 13 (Address space granularity, _GRA bits[63:56]) 243Byte 14 (Address range minimum, _MIN bits [7:0]): 244 For bridges that translate addresses, this is the address space 245 on the secondary side of the bridge 246Byte 15 (Address range minimum, _MIN bits[15:8]) 247Byte 16 (Address range minimum, _MIN bits[23:16]) 248Byte 17 (Address range minimum, _MIN bits[31:24]) 249Byte 18 (Address range minimum, _MIN bits[39:32]) 250Byte 19 (Address range minimum, _MIN bits[47:40]) 251Byte 20 (Address range minimum, _MIN bits[55:48]) 252Byte 21 (Address range minimum, _MIN bits[63:56]) 253Byte 22 (Address range maximum, _MAX bits [7:0]): See comment for _MIN 254Byte 23 (Address range maximum, _MAX bits[15:8]) 255Byte 24 (Address range maximum, _MAX bits[23:16]) 256Byte 25 (Address range maximum, _MAX bits[31:24]) 257Byte 26 (Address range maximum, _MAX bits[39:32]) 258Byte 27 (Address range maximum, _MAX bits[47:40]) 259Byte 28 (Address range maximum, _MAX bits[55:48]) 260Byte 29 (Address range maximum, _MAX bits[63:56]) 261Byte 30 (Address Translation offset, _TRA bits [7:0]): 262 For bridges that translate addresses across the bridge, this is the 263 offset that must be added to the address on the secondary side to obtain 264 the address on the primary side. Non-bridge devices must list 0 for all 265 Address Translation offset bits 266Byte 31 (Address Translation offset, _TRA bits[15:8]) 267Byte 32 (Address Translation offset, _TRA bits[23:16]) 268Byte 33 (Address Translation offset, _TRA bits[31:24]) 269Byte 34 (Address Translation offset, _TRA bits[39:32]) 270Byte 35 (Address Translation offset, _TRA bits[47:40]) 271Byte 36 (Address Translation offset, _TRA bits[55:48]) 272Byte 37 (Address Translation offset, _TRA bits[63:56]) 273Byte 38 (Address Length, _LEN bits [7:0]) 274Byte 39 (Address Length, _LEN bits[15:8]) 275Byte 40 (Address Length, _LEN bits[23:16]) 276Byte 41 (Address Length, _LEN bits[31:24]) 277Byte 42 (Address Length, _LEN bits[39:32]) 278Byte 43 (Address Length, _LEN bits[47:40]) 279Byte 44 (Address Length, _LEN bits[55:48]) 280Byte 45 (Address Length, _LEN bits[63:56]) 281Byte 46 (Resource Source Index): 282 (Optional) Only present if Resource Source (below) is present. This 283 field gives an index to the specific resource descriptor that this 284 device consumes from in the current resource template for the device 285 object pointed to in Resource Source 286String (Resource Source): 287 (Optional) If present, the device that uses this descriptor consumes 288 its resources from the resources produced by the named device object. 289 If not present, the device consumes its resources out of a global pool. 290 If not present, the device consumes this resource from its hierarchical 291 parent. 292*/ 293 294Name (p42d, Package() { 295 296 // Byte 4 (General Flags) of QWord Address Space Descriptor 297 298 Buffer () {0x8a, 0x2b, 0x00, 0xc0, 0x00, 0x0a, 299 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 300 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 301 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 302 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 303 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 304 Buffer () {0x8a, 0x2b, 0x00, 0xc1, 0x08, 0x1a, 305 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 306 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 307 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 308 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 309 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 310 Buffer () {0x8a, 0x2b, 0x00, 0xc2, 0x04, 0x2a, 311 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 312 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 313 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 314 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 315 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 316 Buffer () {0x8a, 0x2b, 0x00, 0xc3, 0x0c, 0x3a, 317 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 318 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 319 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 320 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 321 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 322 Buffer () {0x8a, 0x2b, 0x00, 0xc4, 0x02, 0x4a, 323 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 324 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 325 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 326 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 327 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 328 Buffer () {0x8a, 0x2b, 0x00, 0xc5, 0x0a, 0x5a, 329 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 330 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 331 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 332 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 333 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 334 Buffer () {0x8a, 0x2b, 0x00, 0xc6, 0x06, 0x6a, 335 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 336 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 337 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 338 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 339 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 340 Buffer () {0x8a, 0x2b, 0x00, 0xc7, 0x0e, 0x7a, 341 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 342 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 343 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 344 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 345 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 346 Buffer () {0x8a, 0x2b, 0x00, 0xc8, 0x01, 0x8a, 347 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 348 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 349 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 350 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 351 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 352 Buffer () {0x8a, 0x2b, 0x00, 0xc9, 0x09, 0x9a, 353 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 354 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 355 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 356 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 357 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 358 Buffer () {0x8a, 0x2b, 0x00, 0xca, 0x05, 0xaa, 359 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 360 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 361 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 362 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 363 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 364 Buffer () {0x8a, 0x2b, 0x00, 0xcb, 0x0d, 0xba, 365 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 366 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 367 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 368 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 369 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 370 Buffer () {0x8a, 0x2b, 0x00, 0xcc, 0x03, 0xca, 371 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 372 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 373 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 374 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 375 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 376 Buffer () {0x8a, 0x2b, 0x00, 0xcd, 0x0b, 0xda, 377 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 378 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 379 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 380 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 381 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 382 Buffer () {0x8a, 0x2b, 0x00, 0xce, 0x07, 0xea, 383 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 384 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 385 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 386 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 387 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 388 Buffer () {0x8a, 0x2b, 0x00, 0xff, 0x0f, 0xfa, 389 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 390 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 391 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 392 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 393 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 394 395 // Byte 5 (Type Specific Flags) of QWord Address Space Descriptor 396 397 Buffer () {0x8a, 0x2b, 0x00, 0xc0, 0x01, 0x00, 398 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 399 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 400 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 401 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 402 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 403 Buffer () {0x8a, 0x2b, 0x00, 0xc0, 0x01, 0xff, 404 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 405 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 406 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 407 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 408 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 409 410 // Particular cases 411 412 Buffer () {0x8a, 0x2b, 0x00, 0xc0, 0x01, 0x5a, 413 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 414 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 415 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 416 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 417 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 418 Buffer () {0x8a, 0x2b, 0x00, 0xc0, 0x01, 0x5a, 419 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 420 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 421 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 422 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 423 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00}, 424 425 // Resource Source 426 427 Buffer () {0x8a, 0x2d, 0x00, 0xc0, 0x01, 0x5a, 428 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 429 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 430 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 431 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 432 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 433 0x01, 0x00, 0x79, 0x00}, 434 Buffer () {0x8a, 0x2e, 0x00, 0xc0, 0x01, 0x5a, 435 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 436 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 437 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 438 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 439 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 440 0x0f, 0x50, 0x00, 0x79, 0x00}, 441 Buffer () {0x8a, 0x31, 0x00, 0xc0, 0x01, 0x5a, 442 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 443 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 444 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 445 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 446 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 447 0xf0, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00}, 448 Buffer () {0x8a, 0xf5, 0x00, 0xc0, 0x01, 0x5a, 449 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 450 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 451 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 452 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 453 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 454 0xff, 455 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 456 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 457 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 458 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 459 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 460 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 461 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 462 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 463 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 464 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 465 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 466 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21, 467 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 468 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 469 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 470 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 471 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 472 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 473 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 474 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 475 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 476 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 477 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 478 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21, 0x22, 479 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 480 0x00, 0x79, 0x00}, 481 482 // Particular cases 483 484 Buffer () {0x8a, 0x39, 0x00, 0xc0, 0x0f, 0x5a, 485 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 486 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 487 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 488 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 489 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 490 0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54, 491 0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00}, 492 Buffer () {0x8a, 0x39, 0x00, 0xc0, 0x0f, 0x00, 493 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 494 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 495 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 496 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 497 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 498 0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54, 499 0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00}, 500 501 // 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection) 502 Buffer () {0x8a, 0x2c, 0x00, 0xc0, 0x01, 0x5a, 503 0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8, 504 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0, 505 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 506 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 507 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 508 0x0f, 0x79, 0x00}, 509}) 510 511Method(RT14,, Serialized) 512{ 513 Name(ts, "RT14") 514 515 // Emit test header, set the filename 516 517 THDR (ts, "QWordSpace Resource Descriptor Macro", __FILE__) 518 519 // Main test case for packages above 520 521 m330(ts, 27, "p42c", p42c, p42d) 522 523 // Check resource descriptor tag offsets 524 525 Store ( 526 ResourceTemplate () { 527 QWordSpace (0xc0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x5a, 528 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 529 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, , , QSP0) 530 QWordSpace (0xc0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5a, 531 0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef, 532 0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, , , QSP1) 533 }, Local0) 534 535 m331(ts, 1, QSP0._DEC, 0x21, QSP1._DEC, 0x191, "_DEC") 536 m331(ts, 2, QSP0._MIF, 0x22, QSP1._MIF, 0x192, "_MIF") 537 m331(ts, 3, QSP0._MAF, 0x23, QSP1._MAF, 0x193, "_MAF") 538 m331(ts, 7, QSP0._GRA, 0x30, QSP1._GRA, 0x1A0, "_GRA") 539 m331(ts, 8, QSP0._MIN, 0x70, QSP1._MIN, 0x1E0, "_MIN") 540 m331(ts, 9, QSP0._MAX, 0xB0, QSP1._MAX, 0x220, "_MAX") 541 m331(ts, 10, QSP0._TRA, 0xF0, QSP1._TRA, 0x260, "_TRA") 542 m331(ts, 11, QSP0._LEN, 0x130, QSP1._LEN, 0x2A0, "_LEN") 543} 544 545 546