1 NoEcho(' 2 /****************************************************************************** 3 * 4 * Module Name: aslresources.y - Bison/Yacc production rules for resources 5 * 6 *****************************************************************************/ 7 8 /* 9 * Copyright (C) 2000 - 2016, Intel Corp. 10 * All rights reserved. 11 * 12 * Redistribution and use in source and binary forms, with or without 13 * modification, are permitted provided that the following conditions 14 * are met: 15 * 1. Redistributions of source code must retain the above copyright 16 * notice, this list of conditions, and the following disclaimer, 17 * without modification. 18 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 19 * substantially similar to the "NO WARRANTY" disclaimer below 20 * ("Disclaimer") and any redistribution must be conditioned upon 21 * including a substantially similar Disclaimer requirement for further 22 * binary redistribution. 23 * 3. Neither the names of the above-listed copyright holders nor the names 24 * of any contributors may be used to endorse or promote products derived 25 * from this software without specific prior written permission. 26 * 27 * Alternatively, this software may be distributed under the terms of the 28 * GNU General Public License ("GPL") version 2 as published by the Free 29 * Software Foundation. 30 * 31 * NO WARRANTY 32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 36 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 40 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 41 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42 * POSSIBILITY OF SUCH DAMAGES. 43 */ 44 45 ') 46 47 48 /******************************************************************************* 49 * 50 * ASL Resource Template Terms 51 * 52 ******************************************************************************/ 53 54 /* 55 * Note: Create two default nodes to allow conversion to a Buffer AML opcode 56 * Also, insert the EndTag at the end of the template. 57 */ 58 ResourceTemplateTerm 59 : PARSEOP_RESOURCETEMPLATE OptionalParentheses 60 '{' 61 ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4, 62 TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 63 TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 64 $4, 65 TrCreateLeafNode (PARSEOP_ENDTAG));} 66 ; 67 68 OptionalParentheses 69 : {$$ = NULL;} 70 | '(' ')' {$$ = NULL;} 71 ; 72 73 ResourceMacroList 74 : {$$ = NULL;} 75 | ResourceMacroList 76 ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);} 77 ; 78 79 ResourceMacroTerm 80 : DMATerm {} 81 | DWordIOTerm {} 82 | DWordMemoryTerm {} 83 | DWordSpaceTerm {} 84 | EndDependentFnTerm {} 85 | ExtendedIOTerm {} 86 | ExtendedMemoryTerm {} 87 | ExtendedSpaceTerm {} 88 | FixedDmaTerm {} 89 | FixedIOTerm {} 90 | GpioIntTerm {} 91 | GpioIoTerm {} 92 | I2cSerialBusTerm {} 93 | I2cSerialBusTermV2 {} 94 | InterruptTerm {} 95 | IOTerm {} 96 | IRQNoFlagsTerm {} 97 | IRQTerm {} 98 | Memory24Term {} 99 | Memory32FixedTerm {} 100 | Memory32Term {} 101 | QWordIOTerm {} 102 | QWordMemoryTerm {} 103 | QWordSpaceTerm {} 104 | RegisterTerm {} 105 | SpiSerialBusTerm {} 106 | SpiSerialBusTermV2 {} 107 | StartDependentFnNoPriTerm {} 108 | StartDependentFnTerm {} 109 | UartSerialBusTerm {} 110 | UartSerialBusTermV2 {} 111 | VendorLongTerm {} 112 | VendorShortTerm {} 113 | WordBusNumberTerm {} 114 | WordIOTerm {} 115 | WordSpaceTerm {} 116 ; 117 118 DMATerm 119 : PARSEOP_DMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);} 120 DMATypeKeyword 121 OptionalBusMasterKeyword 122 ',' XferTypeKeyword 123 OptionalNameString_Last 124 ')' '{' 125 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);} 126 | PARSEOP_DMA '(' 127 error ')' {$$ = AslDoError(); yyclearin;} 128 ; 129 130 DWordIOTerm 131 : PARSEOP_DWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);} 132 OptionalResourceType_First 133 OptionalMinType 134 OptionalMaxType 135 OptionalDecodeType 136 OptionalRangeType 137 ',' DWordConstExpr 138 ',' DWordConstExpr 139 ',' DWordConstExpr 140 ',' DWordConstExpr 141 ',' DWordConstExpr 142 OptionalByteConstExpr 143 OptionalStringData 144 OptionalNameString 145 OptionalType 146 OptionalTranslationType_Last 147 ')' {$$ = TrLinkChildren ($<n>3,15, 148 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 149 | PARSEOP_DWORDIO '(' 150 error ')' {$$ = AslDoError(); yyclearin;} 151 ; 152 153 DWordMemoryTerm 154 : PARSEOP_DWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);} 155 OptionalResourceType_First 156 OptionalDecodeType 157 OptionalMinType 158 OptionalMaxType 159 OptionalMemType 160 ',' OptionalReadWriteKeyword 161 ',' DWordConstExpr 162 ',' DWordConstExpr 163 ',' DWordConstExpr 164 ',' DWordConstExpr 165 ',' DWordConstExpr 166 OptionalByteConstExpr 167 OptionalStringData 168 OptionalNameString 169 OptionalAddressRange 170 OptionalType_Last 171 ')' {$$ = TrLinkChildren ($<n>3,16, 172 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 173 | PARSEOP_DWORDMEMORY '(' 174 error ')' {$$ = AslDoError(); yyclearin;} 175 ; 176 177 DWordSpaceTerm 178 : PARSEOP_DWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);} 179 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 180 OptionalResourceType 181 OptionalDecodeType 182 OptionalMinType 183 OptionalMaxType 184 ',' ByteConstExpr 185 ',' DWordConstExpr 186 ',' DWordConstExpr 187 ',' DWordConstExpr 188 ',' DWordConstExpr 189 ',' DWordConstExpr 190 OptionalByteConstExpr 191 OptionalStringData 192 OptionalNameString_Last 193 ')' {$$ = TrLinkChildren ($<n>3,14, 194 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 195 | PARSEOP_DWORDSPACE '(' 196 error ')' {$$ = AslDoError(); yyclearin;} 197 ; 198 199 EndDependentFnTerm 200 : PARSEOP_ENDDEPENDENTFN '(' 201 ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);} 202 | PARSEOP_ENDDEPENDENTFN '(' 203 error ')' {$$ = AslDoError(); yyclearin;} 204 ; 205 206 ExtendedIOTerm 207 : PARSEOP_EXTENDEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);} 208 OptionalResourceType_First 209 OptionalMinType 210 OptionalMaxType 211 OptionalDecodeType 212 OptionalRangeType 213 ',' QWordConstExpr 214 ',' QWordConstExpr 215 ',' QWordConstExpr 216 ',' QWordConstExpr 217 ',' QWordConstExpr 218 OptionalQWordConstExpr 219 OptionalNameString 220 OptionalType 221 OptionalTranslationType_Last 222 ')' {$$ = TrLinkChildren ($<n>3,14, 223 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);} 224 | PARSEOP_EXTENDEDIO '(' 225 error ')' {$$ = AslDoError(); yyclearin;} 226 ; 227 228 ExtendedMemoryTerm 229 : PARSEOP_EXTENDEDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);} 230 OptionalResourceType_First 231 OptionalDecodeType 232 OptionalMinType 233 OptionalMaxType 234 OptionalMemType 235 ',' OptionalReadWriteKeyword 236 ',' QWordConstExpr 237 ',' QWordConstExpr 238 ',' QWordConstExpr 239 ',' QWordConstExpr 240 ',' QWordConstExpr 241 OptionalQWordConstExpr 242 OptionalNameString 243 OptionalAddressRange 244 OptionalType_Last 245 ')' {$$ = TrLinkChildren ($<n>3,15, 246 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);} 247 | PARSEOP_EXTENDEDMEMORY '(' 248 error ')' {$$ = AslDoError(); yyclearin;} 249 ; 250 251 ExtendedSpaceTerm 252 : PARSEOP_EXTENDEDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);} 253 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 254 OptionalResourceType 255 OptionalDecodeType 256 OptionalMinType 257 OptionalMaxType 258 ',' ByteConstExpr 259 ',' QWordConstExpr 260 ',' QWordConstExpr 261 ',' QWordConstExpr 262 ',' QWordConstExpr 263 ',' QWordConstExpr 264 OptionalQWordConstExpr 265 OptionalNameString_Last 266 ')' {$$ = TrLinkChildren ($<n>3,13, 267 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);} 268 | PARSEOP_EXTENDEDSPACE '(' 269 error ')' {$$ = AslDoError(); yyclearin;} 270 ; 271 272 FixedDmaTerm 273 : PARSEOP_FIXEDDMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);} 274 WordConstExpr /* 04: DMA RequestLines */ 275 ',' WordConstExpr /* 06: DMA Channels */ 276 OptionalXferSize /* 07: DMA TransferSize */ 277 OptionalNameString /* 08: DescriptorName */ 278 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);} 279 | PARSEOP_FIXEDDMA '(' 280 error ')' {$$ = AslDoError(); yyclearin;} 281 ; 282 283 FixedIOTerm 284 : PARSEOP_FIXEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);} 285 WordConstExpr 286 ',' ByteConstExpr 287 OptionalNameString_Last 288 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);} 289 | PARSEOP_FIXEDIO '(' 290 error ')' {$$ = AslDoError(); yyclearin;} 291 ; 292 293 GpioIntTerm 294 : PARSEOP_GPIO_INT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);} 295 InterruptTypeKeyword /* 04: InterruptType */ 296 ',' InterruptLevel /* 06: InterruptLevel */ 297 OptionalShareType /* 07: SharedType */ 298 ',' PinConfigByte /* 09: PinConfig */ 299 OptionalWordConstExpr /* 10: DebounceTimeout */ 300 ',' StringData /* 12: ResourceSource */ 301 OptionalByteConstExpr /* 13: ResourceSourceIndex */ 302 OptionalResourceType /* 14: ResourceType */ 303 OptionalNameString /* 15: DescriptorName */ 304 OptionalBuffer_Last /* 16: VendorData */ 305 ')' '{' 306 DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11, 307 $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);} 308 | PARSEOP_GPIO_INT '(' 309 error ')' {$$ = AslDoError(); yyclearin;} 310 ; 311 312 GpioIoTerm 313 : PARSEOP_GPIO_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);} 314 OptionalShareType_First /* 04: SharedType */ 315 ',' PinConfigByte /* 06: PinConfig */ 316 OptionalWordConstExpr /* 07: DebounceTimeout */ 317 OptionalWordConstExpr /* 08: DriveStrength */ 318 OptionalIoRestriction /* 09: IoRestriction */ 319 ',' StringData /* 11: ResourceSource */ 320 OptionalByteConstExpr /* 12: ResourceSourceIndex */ 321 OptionalResourceType /* 13: ResourceType */ 322 OptionalNameString /* 14: DescriptorName */ 323 OptionalBuffer_Last /* 15: VendorData */ 324 ')' '{' 325 DWordList '}' {$$ = TrLinkChildren ($<n>3,11, 326 $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);} 327 | PARSEOP_GPIO_IO '(' 328 error ')' {$$ = AslDoError(); yyclearin;} 329 ; 330 331 I2cSerialBusTerm 332 : PARSEOP_I2C_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);} 333 WordConstExpr /* 04: SlaveAddress */ 334 OptionalSlaveMode /* 05: SlaveMode */ 335 ',' DWordConstExpr /* 07: ConnectionSpeed */ 336 OptionalAddressingMode /* 08: AddressingMode */ 337 ',' StringData /* 10: ResourceSource */ 338 OptionalByteConstExpr /* 11: ResourceSourceIndex */ 339 OptionalResourceType /* 12: ResourceType */ 340 OptionalNameString /* 13: DescriptorName */ 341 OptionalBuffer_Last /* 14: VendorData */ 342 ')' {$$ = TrLinkChildren ($<n>3,10, 343 $4,$5,$7,$8,$10,$11,$12,$13, 344 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);} 345 | PARSEOP_I2C_SERIALBUS '(' 346 error ')' {$$ = AslDoError(); yyclearin;} 347 ; 348 349 I2cSerialBusTermV2 350 : PARSEOP_I2C_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);} 351 WordConstExpr /* 04: SlaveAddress */ 352 OptionalSlaveMode /* 05: SlaveMode */ 353 ',' DWordConstExpr /* 07: ConnectionSpeed */ 354 OptionalAddressingMode /* 08: AddressingMode */ 355 ',' StringData /* 10: ResourceSource */ 356 OptionalByteConstExpr /* 11: ResourceSourceIndex */ 357 OptionalResourceType /* 12: ResourceType */ 358 OptionalNameString /* 13: DescriptorName */ 359 OptionalShareType /* 14: Share */ 360 OptionalBuffer_Last /* 15: VendorData */ 361 ')' {$$ = TrLinkChildren ($<n>3,10, 362 $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);} 363 | PARSEOP_I2C_SERIALBUS_V2 '(' 364 error ')' {$$ = AslDoError(); yyclearin;} 365 ; 366 367 InterruptTerm 368 : PARSEOP_INTERRUPT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);} 369 OptionalResourceType_First 370 ',' InterruptTypeKeyword 371 ',' InterruptLevel 372 OptionalShareType 373 OptionalByteConstExpr 374 OptionalStringData 375 OptionalNameString_Last 376 ')' '{' 377 DWordList '}' {$$ = TrLinkChildren ($<n>3,8, 378 $4,$6,$8,$9,$10,$11,$12,$15);} 379 | PARSEOP_INTERRUPT '(' 380 error ')' {$$ = AslDoError(); yyclearin;} 381 ; 382 383 IOTerm 384 : PARSEOP_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IO);} 385 IODecodeKeyword 386 ',' WordConstExpr 387 ',' WordConstExpr 388 ',' ByteConstExpr 389 ',' ByteConstExpr 390 OptionalNameString_Last 391 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 392 | PARSEOP_IO '(' 393 error ')' {$$ = AslDoError(); yyclearin;} 394 ; 395 396 IRQNoFlagsTerm 397 : PARSEOP_IRQNOFLAGS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);} 398 OptionalNameString_First 399 ')' '{' 400 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 401 | PARSEOP_IRQNOFLAGS '(' 402 error ')' {$$ = AslDoError(); yyclearin;} 403 ; 404 405 IRQTerm 406 : PARSEOP_IRQ '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);} 407 InterruptTypeKeyword 408 ',' InterruptLevel 409 OptionalShareType 410 OptionalNameString_Last 411 ')' '{' 412 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);} 413 | PARSEOP_IRQ '(' 414 error ')' {$$ = AslDoError(); yyclearin;} 415 ; 416 417 Memory24Term 418 : PARSEOP_MEMORY24 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);} 419 OptionalReadWriteKeyword 420 ',' WordConstExpr 421 ',' WordConstExpr 422 ',' WordConstExpr 423 ',' WordConstExpr 424 OptionalNameString_Last 425 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 426 | PARSEOP_MEMORY24 '(' 427 error ')' {$$ = AslDoError(); yyclearin;} 428 ; 429 430 Memory32FixedTerm 431 : PARSEOP_MEMORY32FIXED '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);} 432 OptionalReadWriteKeyword 433 ',' DWordConstExpr 434 ',' DWordConstExpr 435 OptionalNameString_Last 436 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);} 437 | PARSEOP_MEMORY32FIXED '(' 438 error ')' {$$ = AslDoError(); yyclearin;} 439 ; 440 441 Memory32Term 442 : PARSEOP_MEMORY32 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);} 443 OptionalReadWriteKeyword 444 ',' DWordConstExpr 445 ',' DWordConstExpr 446 ',' DWordConstExpr 447 ',' DWordConstExpr 448 OptionalNameString_Last 449 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 450 | PARSEOP_MEMORY32 '(' 451 error ')' {$$ = AslDoError(); yyclearin;} 452 ; 453 454 QWordIOTerm 455 : PARSEOP_QWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);} 456 OptionalResourceType_First 457 OptionalMinType 458 OptionalMaxType 459 OptionalDecodeType 460 OptionalRangeType 461 ',' QWordConstExpr 462 ',' QWordConstExpr 463 ',' QWordConstExpr 464 ',' QWordConstExpr 465 ',' QWordConstExpr 466 OptionalByteConstExpr 467 OptionalStringData 468 OptionalNameString 469 OptionalType 470 OptionalTranslationType_Last 471 ')' {$$ = TrLinkChildren ($<n>3,15, 472 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 473 | PARSEOP_QWORDIO '(' 474 error ')' {$$ = AslDoError(); yyclearin;} 475 ; 476 477 QWordMemoryTerm 478 : PARSEOP_QWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);} 479 OptionalResourceType_First 480 OptionalDecodeType 481 OptionalMinType 482 OptionalMaxType 483 OptionalMemType 484 ',' OptionalReadWriteKeyword 485 ',' QWordConstExpr 486 ',' QWordConstExpr 487 ',' QWordConstExpr 488 ',' QWordConstExpr 489 ',' QWordConstExpr 490 OptionalByteConstExpr 491 OptionalStringData 492 OptionalNameString 493 OptionalAddressRange 494 OptionalType_Last 495 ')' {$$ = TrLinkChildren ($<n>3,16, 496 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 497 | PARSEOP_QWORDMEMORY '(' 498 error ')' {$$ = AslDoError(); yyclearin;} 499 ; 500 501 QWordSpaceTerm 502 : PARSEOP_QWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);} 503 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 504 OptionalResourceType 505 OptionalDecodeType 506 OptionalMinType 507 OptionalMaxType 508 ',' ByteConstExpr 509 ',' QWordConstExpr 510 ',' QWordConstExpr 511 ',' QWordConstExpr 512 ',' QWordConstExpr 513 ',' QWordConstExpr 514 OptionalByteConstExpr 515 OptionalStringData 516 OptionalNameString_Last 517 ')' {$$ = TrLinkChildren ($<n>3,14, 518 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 519 | PARSEOP_QWORDSPACE '(' 520 error ')' {$$ = AslDoError(); yyclearin;} 521 ; 522 523 RegisterTerm 524 : PARSEOP_REGISTER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);} 525 AddressSpaceKeyword 526 ',' ByteConstExpr 527 ',' ByteConstExpr 528 ',' QWordConstExpr 529 OptionalAccessSize 530 OptionalNameString_Last 531 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);} 532 | PARSEOP_REGISTER '(' 533 error ')' {$$ = AslDoError(); yyclearin;} 534 ; 535 536 SpiSerialBusTerm 537 : PARSEOP_SPI_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);} 538 WordConstExpr /* 04: DeviceSelection */ 539 OptionalDevicePolarity /* 05: DevicePolarity */ 540 OptionalWireMode /* 06: WireMode */ 541 ',' ByteConstExpr /* 08: DataBitLength */ 542 OptionalSlaveMode /* 09: SlaveMode */ 543 ',' DWordConstExpr /* 11: ConnectionSpeed */ 544 ',' ClockPolarityKeyword /* 13: ClockPolarity */ 545 ',' ClockPhaseKeyword /* 15: ClockPhase */ 546 ',' StringData /* 17: ResourceSource */ 547 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 548 OptionalResourceType /* 19: ResourceType */ 549 OptionalNameString /* 20: DescriptorName */ 550 OptionalBuffer_Last /* 21: VendorData */ 551 ')' {$$ = TrLinkChildren ($<n>3,14, 552 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20, 553 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);} 554 | PARSEOP_SPI_SERIALBUS '(' 555 error ')' {$$ = AslDoError(); yyclearin;} 556 ; 557 558 SpiSerialBusTermV2 559 : PARSEOP_SPI_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);} 560 WordConstExpr /* 04: DeviceSelection */ 561 OptionalDevicePolarity /* 05: DevicePolarity */ 562 OptionalWireMode /* 06: WireMode */ 563 ',' ByteConstExpr /* 08: DataBitLength */ 564 OptionalSlaveMode /* 09: SlaveMode */ 565 ',' DWordConstExpr /* 11: ConnectionSpeed */ 566 ',' ClockPolarityKeyword /* 13: ClockPolarity */ 567 ',' ClockPhaseKeyword /* 15: ClockPhase */ 568 ',' StringData /* 17: ResourceSource */ 569 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 570 OptionalResourceType /* 19: ResourceType */ 571 OptionalNameString /* 20: DescriptorName */ 572 OptionalShareType /* 21: Share */ 573 OptionalBuffer_Last /* 22: VendorData */ 574 ')' {$$ = TrLinkChildren ($<n>3,14, 575 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);} 576 | PARSEOP_SPI_SERIALBUS_V2 '(' 577 error ')' {$$ = AslDoError(); yyclearin;} 578 ; 579 580 StartDependentFnNoPriTerm 581 : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);} 582 ')' '{' 583 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);} 584 | PARSEOP_STARTDEPENDENTFN_NOPRI '(' 585 error ')' {$$ = AslDoError(); yyclearin;} 586 ; 587 588 StartDependentFnTerm 589 : PARSEOP_STARTDEPENDENTFN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);} 590 ByteConstExpr 591 ',' ByteConstExpr 592 ')' '{' 593 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);} 594 | PARSEOP_STARTDEPENDENTFN '(' 595 error ')' {$$ = AslDoError(); yyclearin;} 596 ; 597 598 UartSerialBusTerm 599 : PARSEOP_UART_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);} 600 DWordConstExpr /* 04: ConnectionSpeed */ 601 OptionalBitsPerByte /* 05: BitsPerByte */ 602 OptionalStopBits /* 06: StopBits */ 603 ',' ByteConstExpr /* 08: LinesInUse */ 604 OptionalEndian /* 09: Endianess */ 605 OptionalParityType /* 10: Parity */ 606 OptionalFlowControl /* 11: FlowControl */ 607 ',' WordConstExpr /* 13: Rx BufferSize */ 608 ',' WordConstExpr /* 15: Tx BufferSize */ 609 ',' StringData /* 17: ResourceSource */ 610 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 611 OptionalResourceType /* 19: ResourceType */ 612 OptionalNameString /* 20: DescriptorName */ 613 OptionalBuffer_Last /* 21: VendorData */ 614 ')' {$$ = TrLinkChildren ($<n>3,15, 615 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20, 616 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);} 617 | PARSEOP_UART_SERIALBUS '(' 618 error ')' {$$ = AslDoError(); yyclearin;} 619 ; 620 621 UartSerialBusTermV2 622 : PARSEOP_UART_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);} 623 DWordConstExpr /* 04: ConnectionSpeed */ 624 OptionalBitsPerByte /* 05: BitsPerByte */ 625 OptionalStopBits /* 06: StopBits */ 626 ',' ByteConstExpr /* 08: LinesInUse */ 627 OptionalEndian /* 09: Endianess */ 628 OptionalParityType /* 10: Parity */ 629 OptionalFlowControl /* 11: FlowControl */ 630 ',' WordConstExpr /* 13: Rx BufferSize */ 631 ',' WordConstExpr /* 15: Tx BufferSize */ 632 ',' StringData /* 17: ResourceSource */ 633 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 634 OptionalResourceType /* 19: ResourceType */ 635 OptionalNameString /* 20: DescriptorName */ 636 OptionalShareType /* 21: Share */ 637 OptionalBuffer_Last /* 22: VendorData */ 638 ')' {$$ = TrLinkChildren ($<n>3,15, 639 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);} 640 | PARSEOP_UART_SERIALBUS_V2 '(' 641 error ')' {$$ = AslDoError(); yyclearin;} 642 ; 643 644 VendorLongTerm 645 : PARSEOP_VENDORLONG '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);} 646 OptionalNameString_First 647 ')' '{' 648 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 649 | PARSEOP_VENDORLONG '(' 650 error ')' {$$ = AslDoError(); yyclearin;} 651 ; 652 653 VendorShortTerm 654 : PARSEOP_VENDORSHORT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);} 655 OptionalNameString_First 656 ')' '{' 657 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 658 | PARSEOP_VENDORSHORT '(' 659 error ')' {$$ = AslDoError(); yyclearin;} 660 ; 661 662 WordBusNumberTerm 663 : PARSEOP_WORDBUSNUMBER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);} 664 OptionalResourceType_First 665 OptionalMinType 666 OptionalMaxType 667 OptionalDecodeType 668 ',' WordConstExpr 669 ',' WordConstExpr 670 ',' WordConstExpr 671 ',' WordConstExpr 672 ',' WordConstExpr 673 OptionalByteConstExpr 674 OptionalStringData 675 OptionalNameString_Last 676 ')' {$$ = TrLinkChildren ($<n>3,12, 677 $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);} 678 | PARSEOP_WORDBUSNUMBER '(' 679 error ')' {$$ = AslDoError(); yyclearin;} 680 ; 681 682 WordIOTerm 683 : PARSEOP_WORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);} 684 OptionalResourceType_First 685 OptionalMinType 686 OptionalMaxType 687 OptionalDecodeType 688 OptionalRangeType 689 ',' WordConstExpr 690 ',' WordConstExpr 691 ',' WordConstExpr 692 ',' WordConstExpr 693 ',' WordConstExpr 694 OptionalByteConstExpr 695 OptionalStringData 696 OptionalNameString 697 OptionalType 698 OptionalTranslationType_Last 699 ')' {$$ = TrLinkChildren ($<n>3,15, 700 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 701 | PARSEOP_WORDIO '(' 702 error ')' {$$ = AslDoError(); yyclearin;} 703 ; 704 705 WordSpaceTerm 706 : PARSEOP_WORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);} 707 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 708 OptionalResourceType 709 OptionalDecodeType 710 OptionalMinType 711 OptionalMaxType 712 ',' ByteConstExpr 713 ',' WordConstExpr 714 ',' WordConstExpr 715 ',' WordConstExpr 716 ',' WordConstExpr 717 ',' WordConstExpr 718 OptionalByteConstExpr 719 OptionalStringData 720 OptionalNameString_Last 721 ')' {$$ = TrLinkChildren ($<n>3,14, 722 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 723 | PARSEOP_WORDSPACE '(' 724 error ')' {$$ = AslDoError(); yyclearin;} 725 ; 726