1 /* 2 * Some or all of this work - Copyright (c) 2006 - 2021, 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 * Integer 30 * 31 * (verify exceptions caused by the imprope use of Integer type objects) 32 */ 33 Name (Z093, 0x5D) 34 Name (I100, 0xABCD1234) 35 /* Expected exceptions: */ 36 /* */ 37 /* 47 - AE_AML_OPERAND_TYPE */ 38 /* Note: an object reference is defined by spec */ 39 /* to be an Integer, nevertheless it is supposed */ 40 /* that the product should distinguish Integer Data */ 41 /* from a reference. */ 42 /* */ 43 Method (M4B1, 1, Serialized) 44 { 45 Name (I000, 0x76543210) 46 Event (E000) 47 /* Local Named Object */ 48 49 Method (M000, 1, Serialized) 50 { 51 Name (I000, 0x89ABCDEF) 52 /* DerefOf */ 53 54 If (Y083) 55 { 56 Local1 = DerefOf (I000) 57 CH06 (Arg0, 0x00, 0x2F) 58 } 59 60 /* Index */ 61 62 Local1 = I000 [0x00] 63 CH06 (Arg0, 0x02, 0x2F) 64 /* ConcatenateResTemplate */ 65 66 ConcatenateResTemplate (I000, Buffer (0x02) 67 { 68 0x79, 0x00 // y. 69 }, Local1) 70 CH06 (Arg0, 0x05, 0x2F) 71 ConcatenateResTemplate (Buffer (0x02) 72 { 73 0x79, 0x00 // y. 74 }, I000, Local1) 75 CH06 (Arg0, 0x06, 0x2F) 76 } 77 78 /* Global Named Object */ 79 80 Method (M001, 1, NotSerialized) 81 { 82 /* DerefOf */ 83 84 If (Y083) 85 { 86 Local1 = DerefOf (I100) 87 CH06 (Arg0, 0x07, 0x2F) 88 } 89 90 /* Index */ 91 92 Local1 = I100 [0x00] 93 CH06 (Arg0, 0x09, 0x2F) 94 /* ConcatenateResTemplate */ 95 96 ConcatenateResTemplate (I100, Buffer (0x02) 97 { 98 0x79, 0x00 // y. 99 }, Local1) 100 CH06 (Arg0, 0x0C, 0x2F) 101 ConcatenateResTemplate (Buffer (0x02) 102 { 103 0x79, 0x00 // y. 104 }, I100, Local1) 105 CH06 (Arg0, 0x0D, 0x2F) 106 } 107 108 /* Argument */ 109 110 Method (M002, 2, NotSerialized) 111 { 112 /* DerefOf */ 113 114 Local1 = DerefOf (Arg1) 115 CH06 (Arg0, 0x0E, 0x2F) 116 /* Release */ 117 118 Release (Arg1) 119 CH06 (Arg0, 0x0F, 0x2F) 120 /* Reset */ 121 122 Reset (Arg1) 123 CH06 (Arg0, 0x10, 0x2F) 124 /* Signal */ 125 126 Signal (Arg1) 127 CH06 (Arg0, 0x11, 0x2F) 128 /* Acquire */ 129 130 Local1 = Acquire (Arg1, 0x0000) 131 CH06 (Arg0, 0x12, 0x2F) 132 /* ConcatenateResTemplate */ 133 134 ConcatenateResTemplate (Arg1, Buffer (0x02) 135 { 136 0x79, 0x00 // y. 137 }, Local1) 138 CH06 (Arg0, 0x15, 0x2F) 139 ConcatenateResTemplate (Buffer (0x02) 140 { 141 0x79, 0x00 // y. 142 }, Arg1, Local1) 143 CH06 (Arg0, 0x16, 0x2F) 144 /* Index */ 145 146 Local1 = Arg1 [0x00] 147 CH06 (Arg0, 0x18, 0x2F) 148 /* Wait */ 149 150 Local1 = Wait (Arg1, 0x00) 151 CH06 (Arg0, 0x19, 0x2F) 152 /* Match */ 153 154 Local1 = Match (Arg1, MTR, 0x00, MTR, 0x00, 0x00) 155 CH06 (Arg0, 0x1A, 0x2F) 156 } 157 158 /* Local */ 159 160 Method (M003, 1, NotSerialized) 161 { 162 Local0 = 0x89ABCDEF 163 /* DerefOf */ 164 165 Local1 = DerefOf (Local0) 166 CH06 (Arg0, 0x1B, 0x2F) 167 /* Release */ 168 169 Release (Local0) 170 CH06 (Arg0, 0x1C, 0x2F) 171 /* Reset */ 172 173 Reset (Local0) 174 CH06 (Arg0, 0x1D, 0x2F) 175 /* Signal */ 176 177 Signal (Local0) 178 CH06 (Arg0, 0x1E, 0x2F) 179 /* Acquire */ 180 181 Local1 = Acquire (Local0, 0x0000) 182 CH06 (Arg0, 0x1F, 0x2F) 183 /* ConcatenateResTemplate */ 184 185 ConcatenateResTemplate (Local0, Buffer (0x02) 186 { 187 0x79, 0x00 // y. 188 }, Local1) 189 CH06 (Arg0, 0x22, 0x2F) 190 ConcatenateResTemplate (Buffer (0x02) 191 { 192 0x79, 0x00 // y. 193 }, Local0, Local1) 194 CH06 (Arg0, 0x23, 0x2F) 195 /* Index */ 196 197 Local1 = Local0 [0x00] 198 CH06 (Arg0, 0x25, 0x2F) 199 /* Wait */ 200 201 Local1 = Wait (Local0, 0x00) 202 CH06 (Arg0, 0x26, 0x2F) 203 /* Match */ 204 205 Local1 = Match (Local0, MTR, 0x00, MTR, 0x00, 0x00) 206 CH06 (Arg0, 0x27, 0x2F) 207 } 208 209 /* An element of Package */ 210 211 Method (M004, 1, Serialized) 212 { 213 Name (P000, Package (0x01) 214 { 215 0x89ABCDEF 216 }) 217 /* DeRefOf(Index(Package, Ind)) */ 218 219 Local1 = DerefOf (DerefOf (P000 [0x00])) 220 CH06 (Arg0, 0x28, 0x2F) 221 Store (DerefOf (P000 [0x00]) [0x00], Local1) 222 CH06 (Arg0, 0x29, 0x2F) 223 Local1 = Match (DerefOf (P000 [0x00]), MTR, 0x00, MTR, 0x00, 224 0x00) 225 CH06 (Arg0, 0x2A, 0x2F) 226 /* DeRefOf(Index(Package, Ind, Dest)) */ 227 228 Local1 = DerefOf (DerefOf (Local0 = P000 [0x00])) 229 CH06 (Arg0, 0x2B, 0x2F) 230 Store (DerefOf (Local0 = P000 [0x00]) [0x00], Local1) 231 CH06 (Arg0, 0x2C, 0x2F) 232 Local1 = Match (DerefOf (Local0 = P000 [0x00]), MTR, 0x00, MTR, 0x00, 233 0x00) 234 CH06 (Arg0, 0x2D, 0x2F) 235 } 236 237 /* Reference to Object */ 238 239 Method (M005, 2, NotSerialized) 240 { 241 Debug = Arg0 242 Debug = Arg1 243 Local0 = ObjectType (Arg1) 244 If ((Local0 != 0x01)) 245 { 246 ERR (Arg0, Z093, __LINE__, 0x00, 0x00, Local0, 0x01) 247 Return (0x01) 248 } 249 250 Local1 = DerefOf (Arg1) 251 CH03 (__METHOD__, Z093, __LINE__, 0x00, 0x00) 252 Local1 = DerefOf (DerefOf (Arg1)) 253 CH06 (Arg0, 0x2F, 0x2F) 254 Store (DerefOf (Arg1) [0x00], Local1) 255 CH06 (Arg0, 0x30, 0x2F) 256 Local1 = Match (DerefOf (Arg1), MTR, 0x00, MTR, 0x00, 0x00) 257 CH06 (Arg0, 0x31, 0x2F) 258 Return (0x00) 259 } 260 261 /* Result of Method invocation */ 262 263 Method (M006, 1, Serialized) 264 { 265 Name (I000, 0x00) /* Label to check m000 invocations */ 266 Method (M000, 1, NotSerialized) 267 { 268 I000 = Arg0 269 Local0 = 0x89ABCDEF 270 Return (Local0) 271 } 272 273 Method (CH00, 2, NotSerialized) 274 { 275 If ((I000 != Arg1)) 276 { 277 ERR (Arg0, Z093, __LINE__, 0x00, 0x00, I000, Arg1) 278 } 279 } 280 281 Local1 = DerefOf (M000 (0x01)) 282 CH06 (Arg0, 0x33, 0x2F) 283 CH00 (Arg0, 0x01) 284 Release (M000 (0x02)) 285 CH06 (Arg0, 0x34, 0x2F) 286 If (Y600) 287 { 288 CH00 (Arg0, 0x02) 289 } 290 291 Reset (M000 (0x03)) 292 CH06 (Arg0, 0x35, 0x2F) 293 If (Y600) 294 { 295 CH00 (Arg0, 0x03) 296 } 297 298 Signal (M000 (0x04)) 299 CH06 (Arg0, 0x36, 0x2F) 300 If (Y600) 301 { 302 CH00 (Arg0, 0x04) 303 } 304 305 Local1 = Acquire (M000 (0x05), 0x0000) 306 CH06 (Arg0, 0x37, 0x2F) 307 If (Y600) 308 { 309 CH00 (Arg0, 0x05) 310 } 311 312 Store (M000 (0x06) [0x00], Local1) 313 CH06 (Arg0, 0x38, 0x2F) 314 CH00 (Arg0, 0x06) 315 Local1 = Wait (M000 (0x07), 0x00) 316 CH06 (Arg0, 0x39, 0x2F) 317 If (Y600) 318 { 319 CH00 (Arg0, 0x07) 320 } 321 322 Local1 = Match (M000 (0x08), MTR, 0x00, MTR, 0x00, 0x00) 323 CH06 (Arg0, 0x3A, 0x2F) 324 CH00 (Arg0, 0x08) 325 } 326 327 /* Reference to Object as Result of Method invocation */ 328 329 Method (M007, 1, Serialized) 330 { 331 Name (I000, 0x89ABCDEF) 332 Name (I001, 0x00) /* Label to check m000 invocations */ 333 Method (M000, 2, NotSerialized) 334 { 335 I001 = Arg0 336 If ((Arg1 == 0x00)) 337 { 338 Local0 = RefOf (I100) 339 } 340 ElseIf ((Arg1 == 0x01)) 341 { 342 Local0 = RefOf (I000) 343 } 344 345 Return (Local0) 346 } 347 348 Method (CH00, 2, NotSerialized) 349 { 350 If ((I001 != Arg1)) 351 { 352 ERR (Arg0, Z093, __LINE__, 0x00, 0x00, I000, Arg1) 353 } 354 } 355 356 Name (LPN0, 0x02) 357 Name (LPC0, 0x00) 358 While (LPN0) 359 { 360 Local0 = (0x03 * LPC0) /* \M4B1.M007.LPC0 */ 361 I001 = 0x00 362 Local1 = DerefOf (M000 (0x01, LPC0)) 363 CH03 (__METHOD__, Z093, __LINE__, 0x00, 0x00) 364 CH00 (Arg0, 0x01) 365 Local1 = DerefOf (DerefOf (M000 (0x02, LPC0))) 366 CH06 (Arg0, (0x3C + Local0), 0x2F) 367 CH00 (Arg0, 0x02) 368 Store (DerefOf (M000 (0x03, LPC0)) [0x00], Local1) 369 CH06 (Arg0, (0x3D + Local0), 0x2F) 370 CH00 (Arg0, 0x03) 371 Local1 = Match (DerefOf (M000 (0x04, LPC0)), MTR, 0x00, MTR, 0x00, 0x00) 372 CH06 (Arg0, (0x3E + Local0), 0x2F) 373 CH00 (Arg0, 0x04) 374 LPN0-- 375 LPC0++ 376 } 377 } 378 379 CH03 (__METHOD__, Z093, __LINE__, 0x00, 0x00) 380 /* Local Named Object */ 381 382 M000 (__METHOD__) 383 /* Global Named Object */ 384 385 M001 (__METHOD__) 386 /* Argument */ 387 388 M002 (__METHOD__, 0x76543210) 389 /* Local */ 390 391 M003 (__METHOD__) 392 /* An element of Package */ 393 394 M004 (__METHOD__) 395 /* Reference to Local Named Object */ 396 397 M005 (Concatenate (__METHOD__, "-m005-RefLocName"), RefOf (I000)) 398 Local0 = RefOf (I000) 399 M005 (Concatenate (__METHOD__, "-m005-RefLocName2"), Local0) 400 CondRefOf (I000, Local0) 401 M005 (Concatenate (__METHOD__, "-m005-CondRefLocName"), Local0) 402 M005 (Concatenate (__METHOD__, "-m005-RefGlobName"), RefOf (I100)) 403 Local0 = RefOf (I100) 404 M005 (Concatenate (__METHOD__, "-m005-RefGlobName2"), Local0) 405 CondRefOf (I100, Local0) 406 M005 (Concatenate (__METHOD__, "-m005-CondRefGlobName"), Local0) 407 /* Reference to Local */ 408 409 Local0 = 0x89ABCDEF 410 M005 (Concatenate (__METHOD__, "-m005-RefLocal"), RefOf (Local0)) 411 Local1 = RefOf (Local0) 412 M005 (Concatenate (__METHOD__, "-m005-RefLocal2"), Local1) 413 CondRefOf (Local0, Local1) 414 M005 (Concatenate (__METHOD__, "-m005-CondRefLocal"), Local1) 415 /* Reference to Arg */ 416 417 M005 (Concatenate (__METHOD__, "-m005-RefArg"), RefOf (Arg0)) 418 Local0 = RefOf (Arg0) 419 M005 (Concatenate (__METHOD__, "-m005-RefArg2"), Local0) 420 CondRefOf (Arg0, Local0) 421 M005 (Concatenate (__METHOD__, "-m005-CondRefArg"), Local0) 422 /* Index to Package */ 423 424 Name (P000, Package (0x01) 425 { 426 0x76543210 427 }) 428 If (Y113) 429 { 430 M005 (Concatenate (__METHOD__, "-m005-Index"), P000 [0x00]) 431 } 432 433 Store (P000 [0x00], Local0) 434 M005 (Concatenate (__METHOD__, "-m005-Index2"), Local0) 435 If (Y113) 436 { 437 M005 (Concatenate (__METHOD__, "-m005-Index3"), Local0 = P000 [0x00]) 438 } 439 440 Local0 = P000 [0x00] 441 M005 (Concatenate (__METHOD__, "-m005-Index4"), Local0) 442 Local1 = Local0 = P000 [0x00] 443 M005 (Concatenate (__METHOD__, "-m005-Index5"), Local1) 444 /* Result of Method invocation */ 445 446 M006 (__METHOD__) 447 /* Reference to Object as Result of Method invocation */ 448 449 If (Y500) 450 { 451 M007 (__METHOD__) 452 } 453 } 454