1 NoEcho(' 2 /****************************************************************************** 3 * 4 * Module Name: aslresources.y - Bison/Yacc production rules for resources 5 * - Keep this file synched with the 6 * CvParseOpBlockType function in cvcompiler.c 7 * 8 *****************************************************************************/ 9 10 /****************************************************************************** 11 * 12 * 1. Copyright Notice 13 * 14 * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp. 15 * All rights reserved. 16 * 17 * 2. License 18 * 19 * 2.1. This is your license from Intel Corp. under its intellectual property 20 * rights. You may have additional license terms from the party that provided 21 * you this software, covering your right to use that party's intellectual 22 * property rights. 23 * 24 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 25 * copy of the source code appearing in this file ("Covered Code") an 26 * irrevocable, perpetual, worldwide license under Intel's copyrights in the 27 * base code distributed originally by Intel ("Original Intel Code") to copy, 28 * make derivatives, distribute, use and display any portion of the Covered 29 * Code in any form, with the right to sublicense such rights; and 30 * 31 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 32 * license (with the right to sublicense), under only those claims of Intel 33 * patents that are infringed by the Original Intel Code, to make, use, sell, 34 * offer to sell, and import the Covered Code and derivative works thereof 35 * solely to the minimum extent necessary to exercise the above copyright 36 * license, and in no event shall the patent license extend to any additions 37 * to or modifications of the Original Intel Code. No other license or right 38 * is granted directly or by implication, estoppel or otherwise; 39 * 40 * The above copyright and patent license is granted only if the following 41 * conditions are met: 42 * 43 * 3. Conditions 44 * 45 * 3.1. Redistribution of Source with Rights to Further Distribute Source. 46 * Redistribution of source code of any substantial portion of the Covered 47 * Code or modification with rights to further distribute source must include 48 * the above Copyright Notice, the above License, this list of Conditions, 49 * and the following Disclaimer and Export Compliance provision. In addition, 50 * Licensee must cause all Covered Code to which Licensee contributes to 51 * contain a file documenting the changes Licensee made to create that Covered 52 * Code and the date of any change. Licensee must include in that file the 53 * documentation of any changes made by any predecessor Licensee. Licensee 54 * must include a prominent statement that the modification is derived, 55 * directly or indirectly, from Original Intel Code. 56 * 57 * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 58 * Redistribution of source code of any substantial portion of the Covered 59 * Code or modification without rights to further distribute source must 60 * include the following Disclaimer and Export Compliance provision in the 61 * documentation and/or other materials provided with distribution. In 62 * addition, Licensee may not authorize further sublicense of source of any 63 * portion of the Covered Code, and must include terms to the effect that the 64 * license from Licensee to its licensee is limited to the intellectual 65 * property embodied in the software Licensee provides to its licensee, and 66 * not to intellectual property embodied in modifications its licensee may 67 * make. 68 * 69 * 3.3. Redistribution of Executable. Redistribution in executable form of any 70 * substantial portion of the Covered Code or modification must reproduce the 71 * above Copyright Notice, and the following Disclaimer and Export Compliance 72 * provision in the documentation and/or other materials provided with the 73 * distribution. 74 * 75 * 3.4. Intel retains all right, title, and interest in and to the Original 76 * Intel Code. 77 * 78 * 3.5. Neither the name Intel nor any other trademark owned or controlled by 79 * Intel shall be used in advertising or otherwise to promote the sale, use or 80 * other dealings in products derived from or relating to the Covered Code 81 * without prior written authorization from Intel. 82 * 83 * 4. Disclaimer and Export Compliance 84 * 85 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 86 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 87 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 88 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 89 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 90 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 91 * PARTICULAR PURPOSE. 92 * 93 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 94 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 95 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 96 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 97 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 98 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 99 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 100 * LIMITED REMEDY. 101 * 102 * 4.3. Licensee shall not export, either directly or indirectly, any of this 103 * software or system incorporating such software without first obtaining any 104 * required license or other approval from the U. S. Department of Commerce or 105 * any other agency or department of the United States Government. In the 106 * event Licensee exports any such software from the United States or 107 * re-exports any such software from a foreign destination, Licensee shall 108 * ensure that the distribution and export/re-export of the software is in 109 * compliance with all laws, regulations, orders, or other restrictions of the 110 * U.S. Export Administration Regulations. Licensee agrees that neither it nor 111 * any of its subsidiaries will export/re-export any technical data, process, 112 * software, or service, directly or indirectly, to any country for which the 113 * United States government or any agency thereof requires an export license, 114 * other governmental approval, or letter of assurance, without first obtaining 115 * such license, approval or letter. 116 * 117 ***************************************************************************** 118 * 119 * Alternatively, you may choose to be licensed under the terms of the 120 * following license: 121 * 122 * Redistribution and use in source and binary forms, with or without 123 * modification, are permitted provided that the following conditions 124 * are met: 125 * 1. Redistributions of source code must retain the above copyright 126 * notice, this list of conditions, and the following disclaimer, 127 * without modification. 128 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 129 * substantially similar to the "NO WARRANTY" disclaimer below 130 * ("Disclaimer") and any redistribution must be conditioned upon 131 * including a substantially similar Disclaimer requirement for further 132 * binary redistribution. 133 * 3. Neither the names of the above-listed copyright holders nor the names 134 * of any contributors may be used to endorse or promote products derived 135 * from this software without specific prior written permission. 136 * 137 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 138 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 139 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 140 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 141 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 142 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 143 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 144 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 145 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 146 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 147 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 148 * 149 * Alternatively, you may choose to be licensed under the terms of the 150 * GNU General Public License ("GPL") version 2 as published by the Free 151 * Software Foundation. 152 * 153 *****************************************************************************/ 154 155 ') 156 157 158 /******************************************************************************* 159 * 160 * ASL Resource Template Terms 161 * 162 ******************************************************************************/ 163 164 /* 165 * Note: Create two default nodes to allow conversion to a Buffer AML opcode 166 * Also, insert the EndTag at the end of the template. 167 */ 168 ResourceTemplateTerm 169 : PARSEOP_RESOURCETEMPLATE {COMMENT_CAPTURE_OFF;} 170 OptionalParentheses 171 '{' 172 ResourceMacroList '}' {$$ = TrCreateOp (PARSEOP_RESOURCETEMPLATE,4, 173 TrCreateLeafOp (PARSEOP_DEFAULT_ARG), 174 TrCreateLeafOp (PARSEOP_DEFAULT_ARG), 175 $5, 176 TrCreateLeafOp (PARSEOP_ENDTAG)); 177 COMMENT_CAPTURE_ON;} 178 ; 179 180 OptionalParentheses 181 : {$$ = NULL;} 182 | PARSEOP_OPEN_PAREN 183 PARSEOP_CLOSE_PAREN {$$ = NULL;} 184 ; 185 186 ResourceMacroList 187 : {$$ = NULL;} 188 | ResourceMacroList 189 ResourceMacroTerm {$$ = TrLinkPeerOp ($1,$2);} 190 ; 191 192 ResourceMacroTerm 193 : Csi2SerialBusTerm {} 194 | DMATerm {} 195 | DWordIOTerm {} 196 | DWordMemoryTerm {} 197 | DWordPccTerm {} 198 | DWordSpaceTerm {} 199 | EndDependentFnTerm {} 200 | ExtendedIOTerm {} 201 | ExtendedMemoryTerm {} 202 | ExtendedSpaceTerm {} 203 | FixedDmaTerm {} 204 | FixedIOTerm {} 205 | GpioIntTerm {} 206 | GpioIoTerm {} 207 | I2cSerialBusTerm {} 208 | I2cSerialBusTermV2 {} 209 | InterruptTerm {} 210 | IOTerm {} 211 | IRQNoFlagsTerm {} 212 | IRQTerm {} 213 | Memory24Term {} 214 | Memory32FixedTerm {} 215 | Memory32Term {} 216 | PinConfigTerm {} 217 | PinFunctionTerm {} 218 | ClockInputTerm {} 219 | PinGroupTerm {} 220 | PinGroupConfigTerm {} 221 | PinGroupFunctionTerm {} 222 | QWordIOTerm {} 223 | QWordMemoryTerm {} 224 | QWordPccTerm {} 225 | QWordSpaceTerm {} 226 | RegisterTerm {} 227 | SpiSerialBusTerm {} 228 | SpiSerialBusTermV2 {} 229 | StartDependentFnNoPriTerm {} 230 | StartDependentFnTerm {} 231 | UartSerialBusTerm {} 232 | UartSerialBusTermV2 {} 233 | VendorLongTerm {} 234 | VendorShortTerm {} 235 | WordBusNumberTerm {} 236 | WordIOTerm {} 237 | WordPccTerm {} 238 | WordSpaceTerm {} 239 ; 240 241 Csi2SerialBusTerm 242 : PARSEOP_CSI2_SERIALBUS 243 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CSI2_SERIALBUS);} 244 OptionalSlaveMode_First {UtCheckIntegerRange ($4, 0x00, 0x01);} /* 04: SlaveMode */ 245 ',' ByteConstExpr {UtCheckIntegerRange ($7, 0x00, 0x03);} /* 07: PhyType */ 246 OptionalByteConstExpr {UtCheckIntegerRange ($9, 0x00, 0xFC);} /* 09: LocalPortInstance */ 247 ',' StringData /* 12: ResourceSource */ 248 ',' ByteConstExpr /* 14: ResourceSourceIndex */ 249 OptionalResourceType /* 15; ResourceType (ResourceUsage) */ 250 OptionalNameString /* 16: DescriptorName */ 251 OptionalBuffer_Last /* 17: VendorData */ 252 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8, 253 $4,$7,$9,$12,$14,$15,$16,$17);} 254 | PARSEOP_CSI2_SERIALBUS 255 PARSEOP_OPEN_PAREN 256 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 257 258 DMATerm 259 : PARSEOP_DMA 260 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DMA);} 261 DMATypeKeyword 262 OptionalBusMasterKeyword 263 ',' XferTypeKeyword 264 OptionalNameString_Last 265 PARSEOP_CLOSE_PAREN '{' 266 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$7,$8,$11);} 267 | PARSEOP_DMA 268 PARSEOP_OPEN_PAREN 269 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 270 ; 271 272 DWordIOTerm 273 : PARSEOP_DWORDIO 274 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDIO);} 275 OptionalResourceType_First 276 OptionalMinType 277 OptionalMaxType 278 OptionalDecodeType 279 OptionalRangeType 280 ',' DWordConstExpr 281 ',' DWordConstExpr 282 ',' DWordConstExpr 283 ',' DWordConstExpr 284 ',' DWordConstExpr 285 OptionalByteConstExpr 286 OptionalStringData 287 OptionalNameString 288 OptionalType 289 OptionalTranslationType_Last 290 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 291 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 292 | PARSEOP_DWORDIO 293 PARSEOP_OPEN_PAREN 294 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 295 ; 296 297 DWordMemoryTerm 298 : PARSEOP_DWORDMEMORY 299 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDMEMORY);} 300 OptionalResourceType_First 301 OptionalDecodeType 302 OptionalMinType 303 OptionalMaxType 304 OptionalMemType 305 ',' OptionalReadWriteKeyword 306 ',' DWordConstExpr 307 ',' DWordConstExpr 308 ',' DWordConstExpr 309 ',' DWordConstExpr 310 ',' DWordConstExpr 311 OptionalByteConstExpr 312 OptionalStringData 313 OptionalNameString 314 OptionalAddressRange 315 OptionalType_Last 316 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16, 317 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 318 | PARSEOP_DWORDMEMORY 319 PARSEOP_OPEN_PAREN 320 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 321 ; 322 323 DWordPccTerm 324 : PARSEOP_DWORDPCC 325 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDPCC);} 326 ByteConstExpr 327 OptionalByteConstExpr 328 OptionalStringData 329 OptionalNameString_Last 330 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4, 331 $4,$5,$6,$7);} 332 | PARSEOP_DWORDPCC 333 PARSEOP_OPEN_PAREN 334 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 335 ; 336 337 DWordSpaceTerm 338 : PARSEOP_DWORDSPACE 339 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDSPACE);} 340 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 341 OptionalResourceType 342 OptionalDecodeType 343 OptionalMinType 344 OptionalMaxType 345 ',' ByteConstExpr 346 ',' DWordConstExpr 347 ',' DWordConstExpr 348 ',' DWordConstExpr 349 ',' DWordConstExpr 350 ',' DWordConstExpr 351 OptionalByteConstExpr 352 OptionalStringData 353 OptionalNameString_Last 354 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 355 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 356 | PARSEOP_DWORDSPACE 357 PARSEOP_OPEN_PAREN 358 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 359 ; 360 361 EndDependentFnTerm 362 : PARSEOP_ENDDEPENDENTFN 363 PARSEOP_OPEN_PAREN 364 PARSEOP_CLOSE_PAREN {$$ = TrCreateLeafOp (PARSEOP_ENDDEPENDENTFN);} 365 | PARSEOP_ENDDEPENDENTFN 366 PARSEOP_OPEN_PAREN 367 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 368 ; 369 370 ExtendedIOTerm 371 : PARSEOP_EXTENDEDIO 372 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDIO);} 373 OptionalResourceType_First 374 OptionalMinType 375 OptionalMaxType 376 OptionalDecodeType 377 OptionalRangeType 378 ',' QWordConstExpr 379 ',' QWordConstExpr 380 ',' QWordConstExpr 381 ',' QWordConstExpr 382 ',' QWordConstExpr 383 OptionalQWordConstExpr 384 OptionalNameString 385 OptionalType 386 OptionalTranslationType_Last 387 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 388 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);} 389 | PARSEOP_EXTENDEDIO 390 PARSEOP_OPEN_PAREN 391 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 392 ; 393 394 ExtendedMemoryTerm 395 : PARSEOP_EXTENDEDMEMORY 396 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDMEMORY);} 397 OptionalResourceType_First 398 OptionalDecodeType 399 OptionalMinType 400 OptionalMaxType 401 OptionalMemType 402 ',' OptionalReadWriteKeyword 403 ',' QWordConstExpr 404 ',' QWordConstExpr 405 ',' QWordConstExpr 406 ',' QWordConstExpr 407 ',' QWordConstExpr 408 OptionalQWordConstExpr 409 OptionalNameString 410 OptionalAddressRange 411 OptionalType_Last 412 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 413 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);} 414 | PARSEOP_EXTENDEDMEMORY 415 PARSEOP_OPEN_PAREN 416 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 417 ; 418 419 ExtendedSpaceTerm 420 : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDSPACE);} 421 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 422 OptionalResourceType 423 OptionalDecodeType 424 OptionalMinType 425 OptionalMaxType 426 ',' ByteConstExpr 427 ',' QWordConstExpr 428 ',' QWordConstExpr 429 ',' QWordConstExpr 430 ',' QWordConstExpr 431 ',' QWordConstExpr 432 OptionalQWordConstExpr 433 OptionalNameString_Last 434 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,13, 435 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);} 436 | PARSEOP_EXTENDEDSPACE 437 PARSEOP_OPEN_PAREN 438 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 439 ; 440 441 FixedDmaTerm 442 : PARSEOP_FIXEDDMA 443 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDDMA);} 444 WordConstExpr /* 04: DMA RequestLines */ 445 ',' WordConstExpr /* 06: DMA Channels */ 446 OptionalXferSize /* 07: DMA TransferSize */ 447 OptionalNameString /* 08: DescriptorName */ 448 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$7,$8);} 449 | PARSEOP_FIXEDDMA 450 PARSEOP_OPEN_PAREN 451 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 452 ; 453 454 FixedIOTerm 455 : PARSEOP_FIXEDIO 456 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDIO);} 457 WordConstExpr 458 ',' ByteConstExpr 459 OptionalNameString_Last 460 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);} 461 | PARSEOP_FIXEDIO 462 PARSEOP_OPEN_PAREN 463 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 464 ; 465 466 GpioIntTerm 467 : PARSEOP_GPIO_INT 468 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_INT);} 469 InterruptTypeKeyword /* 04: InterruptType */ 470 ',' InterruptLevel /* 06: InterruptLevel */ 471 OptionalShareType /* 07: SharedType */ 472 ',' PinConfigByte /* 09: PinConfig */ 473 OptionalWordConstExpr /* 10: DebounceTimeout */ 474 ',' StringData /* 12: ResourceSource */ 475 OptionalByteConstExpr /* 13: ResourceSourceIndex */ 476 OptionalResourceType /* 14: ResourceType */ 477 OptionalNameString /* 15: DescriptorName */ 478 OptionalBuffer_Last /* 16: VendorData */ 479 PARSEOP_CLOSE_PAREN '{' 480 DWordConstExpr '}' {$$ = TrLinkOpChildren ($<n>3,11, 481 $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);} 482 | PARSEOP_GPIO_INT 483 PARSEOP_OPEN_PAREN 484 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 485 ; 486 487 GpioIoTerm 488 : PARSEOP_GPIO_IO 489 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_IO);} 490 OptionalShareType_First /* 04: SharedType */ 491 ',' PinConfigByte /* 06: PinConfig */ 492 OptionalWordConstExpr /* 07: DebounceTimeout */ 493 OptionalWordConstExpr /* 08: DriveStrength */ 494 OptionalIoRestriction /* 09: IoRestriction */ 495 ',' StringData /* 11: ResourceSource */ 496 OptionalByteConstExpr /* 12: ResourceSourceIndex */ 497 OptionalResourceType /* 13: ResourceType */ 498 OptionalNameString /* 14: DescriptorName */ 499 OptionalBuffer_Last /* 15: VendorData */ 500 PARSEOP_CLOSE_PAREN '{' 501 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,11, 502 $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);} 503 | PARSEOP_GPIO_IO 504 PARSEOP_OPEN_PAREN 505 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 506 ; 507 508 I2cSerialBusTerm 509 : PARSEOP_I2C_SERIALBUS 510 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS);} 511 WordConstExpr /* 04: SlaveAddress */ 512 OptionalSlaveMode /* 05: SlaveMode */ 513 ',' DWordConstExpr /* 07: ConnectionSpeed */ 514 OptionalAddressingMode /* 08: AddressingMode */ 515 ',' StringData /* 10: ResourceSource */ 516 OptionalByteConstExpr /* 11: ResourceSourceIndex */ 517 OptionalResourceType /* 12: ResourceType */ 518 OptionalNameString /* 13: DescriptorName */ 519 OptionalBuffer_Last /* 14: VendorData */ 520 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10, 521 $4,$5,$7,$8,$10,$11,$12,$13, 522 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$14);} 523 | PARSEOP_I2C_SERIALBUS 524 PARSEOP_OPEN_PAREN 525 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 526 ; 527 528 I2cSerialBusTermV2 529 : PARSEOP_I2C_SERIALBUS_V2 530 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS_V2);} 531 WordConstExpr /* 04: SlaveAddress */ 532 OptionalSlaveMode /* 05: SlaveMode */ 533 ',' DWordConstExpr /* 07: ConnectionSpeed */ 534 OptionalAddressingMode /* 08: AddressingMode */ 535 ',' StringData /* 10: ResourceSource */ 536 OptionalByteConstExpr /* 11: ResourceSourceIndex */ 537 OptionalResourceType /* 12: ResourceType */ 538 OptionalNameString /* 13: DescriptorName */ 539 OptionalShareType /* 14: Share */ 540 OptionalBuffer_Last /* 15: VendorData */ 541 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10, 542 $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);} 543 | PARSEOP_I2C_SERIALBUS_V2 544 PARSEOP_OPEN_PAREN 545 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 546 ; 547 548 InterruptTerm 549 : PARSEOP_INTERRUPT 550 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INTERRUPT);} 551 OptionalResourceType_First 552 ',' InterruptTypeKeyword 553 ',' InterruptLevel 554 OptionalShareType 555 OptionalByteConstExpr 556 OptionalStringData 557 OptionalNameString_Last 558 PARSEOP_CLOSE_PAREN '{' 559 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,8, 560 $4,$6,$8,$9,$10,$11,$12,$15);} 561 | PARSEOP_INTERRUPT 562 PARSEOP_OPEN_PAREN 563 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 564 ; 565 566 IOTerm 567 : PARSEOP_IO 568 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IO);} 569 IODecodeKeyword 570 ',' WordConstExpr 571 ',' WordConstExpr 572 ',' ByteConstExpr 573 ',' ByteConstExpr 574 OptionalNameString_Last 575 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 576 | PARSEOP_IO 577 PARSEOP_OPEN_PAREN 578 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 579 ; 580 581 IRQNoFlagsTerm 582 : PARSEOP_IRQNOFLAGS 583 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQNOFLAGS);} 584 OptionalNameString_First 585 PARSEOP_CLOSE_PAREN '{' 586 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} 587 | PARSEOP_IRQNOFLAGS 588 PARSEOP_OPEN_PAREN 589 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 590 ; 591 592 IRQTerm 593 : PARSEOP_IRQ 594 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQ);} 595 InterruptTypeKeyword 596 ',' InterruptLevel 597 OptionalShareType 598 OptionalNameString_Last 599 PARSEOP_CLOSE_PAREN '{' 600 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$6,$7,$8,$11);} 601 | PARSEOP_IRQ 602 PARSEOP_OPEN_PAREN 603 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 604 ; 605 606 Memory24Term 607 : PARSEOP_MEMORY24 608 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY24);} 609 OptionalReadWriteKeyword 610 ',' WordConstExpr 611 ',' WordConstExpr 612 ',' WordConstExpr 613 ',' WordConstExpr 614 OptionalNameString_Last 615 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 616 | PARSEOP_MEMORY24 617 PARSEOP_OPEN_PAREN 618 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 619 ; 620 621 Memory32FixedTerm 622 : PARSEOP_MEMORY32FIXED 623 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32FIXED);} 624 OptionalReadWriteKeyword 625 ',' DWordConstExpr 626 ',' DWordConstExpr 627 OptionalNameString_Last 628 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$8,$9);} 629 | PARSEOP_MEMORY32FIXED 630 PARSEOP_OPEN_PAREN 631 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 632 ; 633 634 Memory32Term 635 : PARSEOP_MEMORY32 636 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32);} 637 OptionalReadWriteKeyword 638 ',' DWordConstExpr 639 ',' DWordConstExpr 640 ',' DWordConstExpr 641 ',' DWordConstExpr 642 OptionalNameString_Last 643 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 644 | PARSEOP_MEMORY32 645 PARSEOP_OPEN_PAREN 646 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 647 ; 648 649 PinConfigTerm 650 : PARSEOP_PINCONFIG 651 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINCONFIG);} 652 OptionalShareType_First /* 04: SharedType */ 653 ',' ByteConstExpr /* 06: PinConfigType */ 654 ',' DWordConstExpr /* 08: PinConfigValue */ 655 ',' StringData /* 10: ResourceSource */ 656 OptionalByteConstExpr /* 11: ResourceSourceIndex */ 657 OptionalResourceType /* 12: ResourceType */ 658 OptionalNameString /* 13: DescriptorName */ 659 OptionalBuffer_Last /* 14: VendorData */ 660 PARSEOP_CLOSE_PAREN '{' 661 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9, 662 $4,$6,$8,$10,$11,$12,$13,$14,$17);} 663 | PARSEOP_PINCONFIG 664 PARSEOP_OPEN_PAREN 665 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 666 ; 667 668 PinFunctionTerm 669 : PARSEOP_PINFUNCTION 670 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINFUNCTION);} 671 OptionalShareType_First /* 04: SharedType */ 672 ',' PinConfigByte /* 06: PinConfig */ 673 ',' WordConstExpr /* 08: FunctionNumber */ 674 ',' StringData /* 10: ResourceSource */ 675 OptionalByteConstExpr /* 11: ResourceSourceIndex */ 676 OptionalResourceType /* 12: ResourceType */ 677 OptionalNameString /* 13: DescriptorName */ 678 OptionalBuffer_Last /* 14: VendorData */ 679 PARSEOP_CLOSE_PAREN '{' 680 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9, 681 $4,$6,$8,$10,$11,$12,$13,$14,$17);} 682 | PARSEOP_PINFUNCTION 683 PARSEOP_OPEN_PAREN 684 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 685 ; 686 687 ClockInputTerm 688 : PARSEOP_CLOCKINPUT 689 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CLOCKINPUT);} 690 DWordConstExpr /* 04: FrequencyNumerator */ 691 ',' WordConstExpr /* 06: FrequencyDivisor */ 692 ',' ClockScaleKeyword /* 08: Scale */ 693 ',' ClockModeKeyword /* 10: Mode*/ 694 OptionalStringData /* 11: ResourceSource */ 695 OptionalByteConstExpr /* 12: ResourceSourceIndex */ 696 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);} 697 | PARSEOP_CLOCKINPUT 698 PARSEOP_OPEN_PAREN 699 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 700 ; 701 702 PinGroupTerm 703 : PARSEOP_PINGROUP 704 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUP);} 705 StringData /* 04: ResourceLabel */ 706 OptionalProducerResourceType /* 05: ResourceType */ 707 OptionalNameString /* 06: DescriptorName */ 708 OptionalBuffer_Last /* 07: VendorData */ 709 PARSEOP_CLOSE_PAREN '{' 710 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);} 711 | PARSEOP_PINGROUP 712 PARSEOP_OPEN_PAREN 713 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 714 ; 715 716 PinGroupConfigTerm 717 : PARSEOP_PINGROUPCONFIG 718 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPCONFIG);} 719 OptionalShareType_First /* 04: SharedType */ 720 ',' ByteConstExpr /* 06: PinConfigType */ 721 ',' DWordConstExpr /* 08: PinConfigValue */ 722 ',' StringData /* 10: ResourceSource */ 723 OptionalByteConstExpr /* 11: ResourceSourceIndex */ 724 ',' StringData /* 13: ResourceSourceLabel */ 725 OptionalResourceType /* 14: ResourceType */ 726 OptionalNameString /* 15: DescriptorName */ 727 OptionalBuffer_Last /* 16: VendorData */ 728 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,9, 729 $4,$6,$8,$10,$11,$13,$14,$15,$16);} 730 | PARSEOP_PINGROUPCONFIG 731 PARSEOP_OPEN_PAREN 732 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 733 ; 734 735 PinGroupFunctionTerm 736 : PARSEOP_PINGROUPFUNCTION 737 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPFUNCTION);} 738 OptionalShareType_First /* 04: SharedType */ 739 ',' WordConstExpr /* 06: FunctionNumber */ 740 ',' StringData /* 08: ResourceSource */ 741 OptionalByteConstExpr /* 09: ResourceSourceIndex */ 742 ',' StringData /* 11: ResourceSourceLabel */ 743 OptionalResourceType /* 12: ResourceType */ 744 OptionalNameString /* 13: DescriptorName */ 745 OptionalBuffer_Last /* 14: VendorData */ 746 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8, 747 $4,$6,$8,$9,$11,$12,$13,$14);} 748 | PARSEOP_PINGROUPFUNCTION 749 PARSEOP_OPEN_PAREN 750 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 751 ; 752 753 QWordIOTerm 754 : PARSEOP_QWORDIO 755 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDIO);} 756 OptionalResourceType_First 757 OptionalMinType 758 OptionalMaxType 759 OptionalDecodeType 760 OptionalRangeType 761 ',' QWordConstExpr 762 ',' QWordConstExpr 763 ',' QWordConstExpr 764 ',' QWordConstExpr 765 ',' QWordConstExpr 766 OptionalByteConstExpr 767 OptionalStringData 768 OptionalNameString 769 OptionalType 770 OptionalTranslationType_Last 771 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 772 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 773 | PARSEOP_QWORDIO 774 PARSEOP_OPEN_PAREN 775 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 776 ; 777 778 QWordMemoryTerm 779 : PARSEOP_QWORDMEMORY 780 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDMEMORY);} 781 OptionalResourceType_First 782 OptionalDecodeType 783 OptionalMinType 784 OptionalMaxType 785 OptionalMemType 786 ',' OptionalReadWriteKeyword 787 ',' QWordConstExpr 788 ',' QWordConstExpr 789 ',' QWordConstExpr 790 ',' QWordConstExpr 791 ',' QWordConstExpr 792 OptionalByteConstExpr 793 OptionalStringData 794 OptionalNameString 795 OptionalAddressRange 796 OptionalType_Last 797 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16, 798 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 799 | PARSEOP_QWORDMEMORY 800 PARSEOP_OPEN_PAREN 801 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 802 ; 803 804 QWordPccTerm 805 : PARSEOP_QWORDPCC 806 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDPCC);} 807 ByteConstExpr 808 OptionalByteConstExpr 809 OptionalStringData 810 OptionalNameString_Last 811 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4, 812 $4,$5,$6,$7);} 813 | PARSEOP_QWORDPCC 814 PARSEOP_OPEN_PAREN 815 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 816 ; 817 818 QWordSpaceTerm 819 : PARSEOP_QWORDSPACE 820 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDSPACE);} 821 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 822 OptionalResourceType 823 OptionalDecodeType 824 OptionalMinType 825 OptionalMaxType 826 ',' ByteConstExpr 827 ',' QWordConstExpr 828 ',' QWordConstExpr 829 ',' QWordConstExpr 830 ',' QWordConstExpr 831 ',' QWordConstExpr 832 OptionalByteConstExpr 833 OptionalStringData 834 OptionalNameString_Last 835 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 836 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 837 | PARSEOP_QWORDSPACE 838 PARSEOP_OPEN_PAREN 839 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 840 ; 841 842 RegisterTerm 843 : PARSEOP_REGISTER 844 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_REGISTER);} 845 AddressSpaceKeyword 846 ',' ByteConstExpr 847 ',' ByteConstExpr 848 ',' QWordConstExpr 849 OptionalAccessSize 850 OptionalNameString_Last 851 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);} 852 | PARSEOP_REGISTER 853 PARSEOP_OPEN_PAREN 854 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 855 ; 856 857 SpiSerialBusTerm 858 : PARSEOP_SPI_SERIALBUS 859 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS);} 860 WordConstExpr /* 04: DeviceSelection */ 861 OptionalDevicePolarity /* 05: DevicePolarity */ 862 OptionalWireMode /* 06: WireMode */ 863 ',' ByteConstExpr /* 08: DataBitLength */ 864 OptionalSlaveMode /* 09: SlaveMode */ 865 ',' DWordConstExpr /* 11: ConnectionSpeed */ 866 ',' ClockPolarityKeyword /* 13: ClockPolarity */ 867 ',' ClockPhaseKeyword /* 15: ClockPhase */ 868 ',' StringData /* 17: ResourceSource */ 869 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 870 OptionalResourceType /* 19: ResourceType */ 871 OptionalNameString /* 20: DescriptorName */ 872 OptionalBuffer_Last /* 21: VendorData */ 873 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 874 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20, 875 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);} 876 | PARSEOP_SPI_SERIALBUS 877 PARSEOP_OPEN_PAREN 878 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 879 ; 880 881 SpiSerialBusTermV2 882 : PARSEOP_SPI_SERIALBUS_V2 883 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS_V2);} 884 WordConstExpr /* 04: DeviceSelection */ 885 OptionalDevicePolarity /* 05: DevicePolarity */ 886 OptionalWireMode /* 06: WireMode */ 887 ',' ByteConstExpr /* 08: DataBitLength */ 888 OptionalSlaveMode /* 09: SlaveMode */ 889 ',' DWordConstExpr /* 11: ConnectionSpeed */ 890 ',' ClockPolarityKeyword /* 13: ClockPolarity */ 891 ',' ClockPhaseKeyword /* 15: ClockPhase */ 892 ',' StringData /* 17: ResourceSource */ 893 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 894 OptionalResourceType /* 19: ResourceType */ 895 OptionalNameString /* 20: DescriptorName */ 896 OptionalShareType /* 21: Share */ 897 OptionalBuffer_Last /* 22: VendorData */ 898 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 899 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);} 900 | PARSEOP_SPI_SERIALBUS_V2 901 PARSEOP_OPEN_PAREN 902 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 903 ; 904 905 StartDependentFnNoPriTerm 906 : PARSEOP_STARTDEPENDENTFN_NOPRI 907 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN_NOPRI);} 908 PARSEOP_CLOSE_PAREN '{' 909 ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,1,$6);} 910 | PARSEOP_STARTDEPENDENTFN_NOPRI 911 PARSEOP_OPEN_PAREN 912 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 913 ; 914 915 StartDependentFnTerm 916 : PARSEOP_STARTDEPENDENTFN 917 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN);} 918 ByteConstExpr 919 ',' ByteConstExpr 920 PARSEOP_CLOSE_PAREN '{' 921 ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$9);} 922 | PARSEOP_STARTDEPENDENTFN 923 PARSEOP_OPEN_PAREN 924 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 925 ; 926 927 UartSerialBusTerm 928 : PARSEOP_UART_SERIALBUS 929 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS);} 930 DWordConstExpr /* 04: ConnectionSpeed */ 931 OptionalBitsPerByte /* 05: BitsPerByte */ 932 OptionalStopBits /* 06: StopBits */ 933 ',' ByteConstExpr /* 08: LinesInUse */ 934 OptionalEndian /* 09: Endianness */ 935 OptionalParityType /* 10: Parity */ 936 OptionalFlowControl /* 11: FlowControl */ 937 ',' WordConstExpr /* 13: Rx BufferSize */ 938 ',' WordConstExpr /* 15: Tx BufferSize */ 939 ',' StringData /* 17: ResourceSource */ 940 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 941 OptionalResourceType /* 19: ResourceType */ 942 OptionalNameString /* 20: DescriptorName */ 943 OptionalBuffer_Last /* 21: VendorData */ 944 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 945 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20, 946 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);} 947 | PARSEOP_UART_SERIALBUS 948 PARSEOP_OPEN_PAREN 949 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 950 ; 951 952 UartSerialBusTermV2 953 : PARSEOP_UART_SERIALBUS_V2 954 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS_V2);} 955 DWordConstExpr /* 04: ConnectionSpeed */ 956 OptionalBitsPerByte /* 05: BitsPerByte */ 957 OptionalStopBits /* 06: StopBits */ 958 ',' ByteConstExpr /* 08: LinesInUse */ 959 OptionalEndian /* 09: Endianness */ 960 OptionalParityType /* 10: Parity */ 961 OptionalFlowControl /* 11: FlowControl */ 962 ',' WordConstExpr /* 13: Rx BufferSize */ 963 ',' WordConstExpr /* 15: Tx BufferSize */ 964 ',' StringData /* 17: ResourceSource */ 965 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 966 OptionalResourceType /* 19: ResourceType */ 967 OptionalNameString /* 20: DescriptorName */ 968 OptionalShareType /* 21: Share */ 969 OptionalBuffer_Last /* 22: VendorData */ 970 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 971 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);} 972 | PARSEOP_UART_SERIALBUS_V2 973 PARSEOP_OPEN_PAREN 974 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 975 ; 976 977 VendorLongTerm 978 : PARSEOP_VENDORLONG 979 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORLONG);} 980 OptionalNameString_First 981 PARSEOP_CLOSE_PAREN '{' 982 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} 983 | PARSEOP_VENDORLONG 984 PARSEOP_OPEN_PAREN 985 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 986 ; 987 988 VendorShortTerm 989 : PARSEOP_VENDORSHORT 990 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORSHORT);} 991 OptionalNameString_First 992 PARSEOP_CLOSE_PAREN '{' 993 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} 994 | PARSEOP_VENDORSHORT 995 PARSEOP_OPEN_PAREN 996 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 997 ; 998 999 WordBusNumberTerm 1000 : PARSEOP_WORDBUSNUMBER 1001 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDBUSNUMBER);} 1002 OptionalResourceType_First 1003 OptionalMinType 1004 OptionalMaxType 1005 OptionalDecodeType 1006 ',' WordConstExpr 1007 ',' WordConstExpr 1008 ',' WordConstExpr 1009 ',' WordConstExpr 1010 ',' WordConstExpr 1011 OptionalByteConstExpr 1012 OptionalStringData 1013 OptionalNameString_Last 1014 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,12, 1015 $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);} 1016 | PARSEOP_WORDBUSNUMBER 1017 PARSEOP_OPEN_PAREN 1018 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 1019 ; 1020 1021 WordIOTerm 1022 : PARSEOP_WORDIO 1023 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDIO);} 1024 OptionalResourceType_First 1025 OptionalMinType 1026 OptionalMaxType 1027 OptionalDecodeType 1028 OptionalRangeType 1029 ',' WordConstExpr 1030 ',' WordConstExpr 1031 ',' WordConstExpr 1032 ',' WordConstExpr 1033 ',' WordConstExpr 1034 OptionalByteConstExpr 1035 OptionalStringData 1036 OptionalNameString 1037 OptionalType 1038 OptionalTranslationType_Last 1039 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15, 1040 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 1041 | PARSEOP_WORDIO 1042 PARSEOP_OPEN_PAREN 1043 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 1044 ; 1045 1046 WordPccTerm 1047 : PARSEOP_WORDPCC 1048 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDPCC);} 1049 ByteConstExpr 1050 OptionalByteConstExpr 1051 OptionalStringData 1052 OptionalNameString_Last 1053 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4, 1054 $4,$5,$6,$7);} 1055 | PARSEOP_WORDPCC 1056 PARSEOP_OPEN_PAREN 1057 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 1058 ; 1059 1060 WordSpaceTerm 1061 : PARSEOP_WORDSPACE 1062 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDSPACE);} 1063 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 1064 OptionalResourceType 1065 OptionalDecodeType 1066 OptionalMinType 1067 OptionalMaxType 1068 ',' ByteConstExpr 1069 ',' WordConstExpr 1070 ',' WordConstExpr 1071 ',' WordConstExpr 1072 ',' WordConstExpr 1073 ',' WordConstExpr 1074 OptionalByteConstExpr 1075 OptionalStringData 1076 OptionalNameString_Last 1077 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14, 1078 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 1079 | PARSEOP_WORDSPACE 1080 PARSEOP_OPEN_PAREN 1081 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} 1082 ; 1083