1 NoEcho(' 2 /****************************************************************************** 3 * 4 * Module Name: aslresources.y - Bison/Yacc production rules for resources 5 * 6 *****************************************************************************/ 7 8 /* 9 * Copyright (C) 2000 - 2015, 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 * ASL Parameter Keyword Terms 50 * 51 ******************************************************************************/ 52 53 AccessAttribKeyword 54 : PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);} 55 | PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);} 56 | PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);} 57 | PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );} 58 | PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);} 59 | PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);} 60 | PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);} 61 | PARSEOP_ACCESSATTRIB_MULTIBYTE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);} 62 ByteConst 63 ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 64 | PARSEOP_ACCESSATTRIB_RAW_BYTES '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);} 65 ByteConst 66 ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 67 | PARSEOP_ACCESSATTRIB_RAW_PROCESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);} 68 ByteConst 69 ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 70 ; 71 72 AccessTypeKeyword 73 : PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);} 74 | PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);} 75 | PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);} 76 | PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);} 77 | PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);} 78 | PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);} 79 ; 80 81 AddressingModeKeyword 82 : PARSEOP_ADDRESSINGMODE_7BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);} 83 | PARSEOP_ADDRESSINGMODE_10BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);} 84 ; 85 86 AddressKeyword 87 : PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);} 88 | PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);} 89 | PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);} 90 | PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);} 91 ; 92 93 AddressSpaceKeyword 94 : ByteConst {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);} 95 | RegionSpaceKeyword {} 96 ; 97 98 BitsPerByteKeyword 99 : PARSEOP_BITSPERBYTE_FIVE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);} 100 | PARSEOP_BITSPERBYTE_SIX {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);} 101 | PARSEOP_BITSPERBYTE_SEVEN {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);} 102 | PARSEOP_BITSPERBYTE_EIGHT {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);} 103 | PARSEOP_BITSPERBYTE_NINE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);} 104 ; 105 106 ClockPhaseKeyword 107 : PARSEOP_CLOCKPHASE_FIRST {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);} 108 | PARSEOP_CLOCKPHASE_SECOND {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);} 109 ; 110 111 ClockPolarityKeyword 112 : PARSEOP_CLOCKPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);} 113 | PARSEOP_CLOCKPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);} 114 ; 115 116 DecodeKeyword 117 : PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);} 118 | PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);} 119 ; 120 121 DevicePolarityKeyword 122 : PARSEOP_DEVICEPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);} 123 | PARSEOP_DEVICEPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);} 124 ; 125 126 DMATypeKeyword 127 : PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);} 128 | PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);} 129 | PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);} 130 | PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);} 131 ; 132 133 EndianKeyword 134 : PARSEOP_ENDIAN_LITTLE {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);} 135 | PARSEOP_ENDIAN_BIG {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);} 136 ; 137 138 FlowControlKeyword 139 : PARSEOP_FLOWCONTROL_HW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);} 140 | PARSEOP_FLOWCONTROL_NONE {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);} 141 | PARSEOP_FLOWCONTROL_SW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);} 142 ; 143 144 InterruptLevel 145 : PARSEOP_INTLEVEL_ACTIVEBOTH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);} 146 | PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);} 147 | PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);} 148 ; 149 150 InterruptTypeKeyword 151 : PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);} 152 | PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);} 153 ; 154 155 IODecodeKeyword 156 : PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);} 157 | PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);} 158 ; 159 160 IoRestrictionKeyword 161 : PARSEOP_IORESTRICT_IN {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);} 162 | PARSEOP_IORESTRICT_OUT {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);} 163 | PARSEOP_IORESTRICT_NONE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);} 164 | PARSEOP_IORESTRICT_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);} 165 ; 166 167 LockRuleKeyword 168 : PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);} 169 | PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);} 170 ; 171 172 MatchOpKeyword 173 : PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);} 174 | PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);} 175 | PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);} 176 | PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);} 177 | PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);} 178 | PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);} 179 ; 180 181 MaxKeyword 182 : PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);} 183 | PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);} 184 ; 185 186 MemTypeKeyword 187 : PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);} 188 | PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);} 189 | PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);} 190 | PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);} 191 ; 192 193 MinKeyword 194 : PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);} 195 | PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);} 196 ; 197 198 ObjectTypeKeyword 199 : PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);} 200 | PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);} 201 | PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);} 202 | PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);} 203 | PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);} 204 | PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);} 205 | PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);} 206 | PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);} 207 | PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);} 208 | PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);} 209 | PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);} 210 | PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);} 211 | PARSEOP_OBJECTTYPE_PRO {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);} 212 | PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);} 213 | PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);} 214 | PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);} 215 ; 216 217 ParityTypeKeyword 218 : PARSEOP_PARITYTYPE_SPACE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);} 219 | PARSEOP_PARITYTYPE_MARK {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);} 220 | PARSEOP_PARITYTYPE_ODD {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);} 221 | PARSEOP_PARITYTYPE_EVEN {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);} 222 | PARSEOP_PARITYTYPE_NONE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);} 223 ; 224 225 PinConfigByte 226 : PinConfigKeyword {$$ = $1;} 227 | ByteConstExpr {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);} 228 ; 229 230 PinConfigKeyword 231 : PARSEOP_PIN_NOPULL {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);} 232 | PARSEOP_PIN_PULLDOWN {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);} 233 | PARSEOP_PIN_PULLUP {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);} 234 | PARSEOP_PIN_PULLDEFAULT {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);} 235 ; 236 237 PldKeyword 238 : PARSEOP_PLD_REVISION {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);} 239 | PARSEOP_PLD_IGNORECOLOR {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);} 240 | PARSEOP_PLD_RED {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);} 241 | PARSEOP_PLD_GREEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);} 242 | PARSEOP_PLD_BLUE {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);} 243 | PARSEOP_PLD_WIDTH {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);} 244 | PARSEOP_PLD_HEIGHT {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);} 245 | PARSEOP_PLD_USERVISIBLE {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);} 246 | PARSEOP_PLD_DOCK {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);} 247 | PARSEOP_PLD_LID {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);} 248 | PARSEOP_PLD_PANEL {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);} 249 | PARSEOP_PLD_VERTICALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);} 250 | PARSEOP_PLD_HORIZONTALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);} 251 | PARSEOP_PLD_SHAPE {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);} 252 | PARSEOP_PLD_GROUPORIENTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);} 253 | PARSEOP_PLD_GROUPTOKEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);} 254 | PARSEOP_PLD_GROUPPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);} 255 | PARSEOP_PLD_BAY {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);} 256 | PARSEOP_PLD_EJECTABLE {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);} 257 | PARSEOP_PLD_EJECTREQUIRED {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);} 258 | PARSEOP_PLD_CABINETNUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);} 259 | PARSEOP_PLD_CARDCAGENUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);} 260 | PARSEOP_PLD_REFERENCE {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);} 261 | PARSEOP_PLD_ROTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);} 262 | PARSEOP_PLD_ORDER {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);} 263 | PARSEOP_PLD_RESERVED {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);} 264 | PARSEOP_PLD_VERTICALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);} 265 | PARSEOP_PLD_HORIZONTALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);} 266 ; 267 268 RangeTypeKeyword 269 : PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);} 270 | PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);} 271 | PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);} 272 ; 273 274 RegionSpaceKeyword 275 : PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);} 276 | PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);} 277 | PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);} 278 | PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);} 279 | PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);} 280 | PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);} 281 | PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);} 282 | PARSEOP_REGIONSPACE_IPMI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);} 283 | PARSEOP_REGIONSPACE_GPIO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);} 284 | PARSEOP_REGIONSPACE_GSBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);} 285 | PARSEOP_REGIONSPACE_PCC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);} 286 | PARSEOP_REGIONSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);} 287 ; 288 289 ResourceTypeKeyword 290 : PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);} 291 | PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);} 292 ; 293 294 SerializeRuleKeyword 295 : PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);} 296 | PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);} 297 ; 298 299 ShareTypeKeyword 300 : PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);} 301 | PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);} 302 | PARSEOP_SHARETYPE_SHAREDWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);} 303 | PARSEOP_SHARETYPE_EXCLUSIVEWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);} 304 ; 305 306 SlaveModeKeyword 307 : PARSEOP_SLAVEMODE_CONTROLLERINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);} 308 | PARSEOP_SLAVEMODE_DEVICEINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);} 309 ; 310 311 StopBitsKeyword 312 : PARSEOP_STOPBITS_TWO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);} 313 | PARSEOP_STOPBITS_ONEPLUSHALF {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);} 314 | PARSEOP_STOPBITS_ONE {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);} 315 | PARSEOP_STOPBITS_ZERO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);} 316 ; 317 318 TranslationKeyword 319 : PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);} 320 | PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);} 321 ; 322 323 TypeKeyword 324 : PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);} 325 | PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);} 326 ; 327 328 UpdateRuleKeyword 329 : PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);} 330 | PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);} 331 | PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);} 332 ; 333 334 WireModeKeyword 335 : PARSEOP_WIREMODE_FOUR {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);} 336 | PARSEOP_WIREMODE_THREE {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);} 337 ; 338 339 XferSizeKeyword 340 : PARSEOP_XFERSIZE_8 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8, 0);} 341 | PARSEOP_XFERSIZE_16 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16, 1);} 342 | PARSEOP_XFERSIZE_32 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);} 343 | PARSEOP_XFERSIZE_64 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64, 3);} 344 | PARSEOP_XFERSIZE_128 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);} 345 | PARSEOP_XFERSIZE_256 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);} 346 ; 347 348 XferTypeKeyword 349 : PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);} 350 | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);} 351 | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);} 352 ; 353 354 355 /******************************************************************************* 356 * 357 * ASL Resource Template Terms 358 * 359 ******************************************************************************/ 360 361 /* 362 * Note: Create two default nodes to allow conversion to a Buffer AML opcode 363 * Also, insert the EndTag at the end of the template. 364 */ 365 ResourceTemplateTerm 366 : PARSEOP_RESOURCETEMPLATE '(' ')' 367 '{' 368 ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4, 369 TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 370 TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 371 $5, 372 TrCreateLeafNode (PARSEOP_ENDTAG));} 373 ; 374 375 ResourceMacroList 376 : {$$ = NULL;} 377 | ResourceMacroList 378 ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);} 379 ; 380 381 ResourceMacroTerm 382 : DMATerm {} 383 | DWordIOTerm {} 384 | DWordMemoryTerm {} 385 | DWordSpaceTerm {} 386 | EndDependentFnTerm {} 387 | ExtendedIOTerm {} 388 | ExtendedMemoryTerm {} 389 | ExtendedSpaceTerm {} 390 | FixedDmaTerm {} 391 | FixedIOTerm {} 392 | GpioIntTerm {} 393 | GpioIoTerm {} 394 | I2cSerialBusTerm {} 395 | InterruptTerm {} 396 | IOTerm {} 397 | IRQNoFlagsTerm {} 398 | IRQTerm {} 399 | Memory24Term {} 400 | Memory32FixedTerm {} 401 | Memory32Term {} 402 | QWordIOTerm {} 403 | QWordMemoryTerm {} 404 | QWordSpaceTerm {} 405 | RegisterTerm {} 406 | SpiSerialBusTerm {} 407 | StartDependentFnNoPriTerm {} 408 | StartDependentFnTerm {} 409 | UartSerialBusTerm {} 410 | VendorLongTerm {} 411 | VendorShortTerm {} 412 | WordBusNumberTerm {} 413 | WordIOTerm {} 414 | WordSpaceTerm {} 415 ; 416 417 DMATerm 418 : PARSEOP_DMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);} 419 DMATypeKeyword 420 OptionalBusMasterKeyword 421 ',' XferTypeKeyword 422 OptionalNameString_Last 423 ')' '{' 424 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);} 425 | PARSEOP_DMA '(' 426 error ')' {$$ = AslDoError(); yyclearin;} 427 ; 428 429 DWordIOTerm 430 : PARSEOP_DWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);} 431 OptionalResourceType_First 432 OptionalMinType 433 OptionalMaxType 434 OptionalDecodeType 435 OptionalRangeType 436 ',' DWordConstExpr 437 ',' DWordConstExpr 438 ',' DWordConstExpr 439 ',' DWordConstExpr 440 ',' DWordConstExpr 441 OptionalByteConstExpr 442 OptionalStringData 443 OptionalNameString 444 OptionalType 445 OptionalTranslationType_Last 446 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 447 | PARSEOP_DWORDIO '(' 448 error ')' {$$ = AslDoError(); yyclearin;} 449 ; 450 451 DWordMemoryTerm 452 : PARSEOP_DWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);} 453 OptionalResourceType_First 454 OptionalDecodeType 455 OptionalMinType 456 OptionalMaxType 457 OptionalMemType 458 ',' OptionalReadWriteKeyword 459 ',' DWordConstExpr 460 ',' DWordConstExpr 461 ',' DWordConstExpr 462 ',' DWordConstExpr 463 ',' DWordConstExpr 464 OptionalByteConstExpr 465 OptionalStringData 466 OptionalNameString 467 OptionalAddressRange 468 OptionalType_Last 469 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 470 | PARSEOP_DWORDMEMORY '(' 471 error ')' {$$ = AslDoError(); yyclearin;} 472 ; 473 474 DWordSpaceTerm 475 : PARSEOP_DWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);} 476 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 477 OptionalResourceType 478 OptionalDecodeType 479 OptionalMinType 480 OptionalMaxType 481 ',' ByteConstExpr 482 ',' DWordConstExpr 483 ',' DWordConstExpr 484 ',' DWordConstExpr 485 ',' DWordConstExpr 486 ',' DWordConstExpr 487 OptionalByteConstExpr 488 OptionalStringData 489 OptionalNameString_Last 490 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 491 | PARSEOP_DWORDSPACE '(' 492 error ')' {$$ = AslDoError(); yyclearin;} 493 ; 494 495 EndDependentFnTerm 496 : PARSEOP_ENDDEPENDENTFN '(' 497 ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);} 498 | PARSEOP_ENDDEPENDENTFN '(' 499 error ')' {$$ = AslDoError(); yyclearin;} 500 ; 501 502 ExtendedIOTerm 503 : PARSEOP_EXTENDEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);} 504 OptionalResourceType_First 505 OptionalMinType 506 OptionalMaxType 507 OptionalDecodeType 508 OptionalRangeType 509 ',' QWordConstExpr 510 ',' QWordConstExpr 511 ',' QWordConstExpr 512 ',' QWordConstExpr 513 ',' QWordConstExpr 514 OptionalQWordConstExpr 515 OptionalNameString 516 OptionalType 517 OptionalTranslationType_Last 518 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);} 519 | PARSEOP_EXTENDEDIO '(' 520 error ')' {$$ = AslDoError(); yyclearin;} 521 ; 522 523 ExtendedMemoryTerm 524 : PARSEOP_EXTENDEDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);} 525 OptionalResourceType_First 526 OptionalDecodeType 527 OptionalMinType 528 OptionalMaxType 529 OptionalMemType 530 ',' OptionalReadWriteKeyword 531 ',' QWordConstExpr 532 ',' QWordConstExpr 533 ',' QWordConstExpr 534 ',' QWordConstExpr 535 ',' QWordConstExpr 536 OptionalQWordConstExpr 537 OptionalNameString 538 OptionalAddressRange 539 OptionalType_Last 540 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);} 541 | PARSEOP_EXTENDEDMEMORY '(' 542 error ')' {$$ = AslDoError(); yyclearin;} 543 ; 544 545 ExtendedSpaceTerm 546 : PARSEOP_EXTENDEDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);} 547 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 548 OptionalResourceType 549 OptionalDecodeType 550 OptionalMinType 551 OptionalMaxType 552 ',' ByteConstExpr 553 ',' QWordConstExpr 554 ',' QWordConstExpr 555 ',' QWordConstExpr 556 ',' QWordConstExpr 557 ',' QWordConstExpr 558 OptionalQWordConstExpr 559 OptionalNameString_Last 560 ')' {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);} 561 | PARSEOP_EXTENDEDSPACE '(' 562 error ')' {$$ = AslDoError(); yyclearin;} 563 ; 564 565 FixedDmaTerm 566 : PARSEOP_FIXEDDMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);} 567 WordConstExpr /* 04: DMA RequestLines */ 568 ',' WordConstExpr /* 06: DMA Channels */ 569 OptionalXferSize /* 07: DMA TransferSize */ 570 OptionalNameString /* 08: DescriptorName */ 571 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);} 572 | PARSEOP_FIXEDDMA '(' 573 error ')' {$$ = AslDoError(); yyclearin;} 574 ; 575 576 FixedIOTerm 577 : PARSEOP_FIXEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);} 578 WordConstExpr 579 ',' ByteConstExpr 580 OptionalNameString_Last 581 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);} 582 | PARSEOP_FIXEDIO '(' 583 error ')' {$$ = AslDoError(); yyclearin;} 584 ; 585 586 GpioIntTerm 587 : PARSEOP_GPIO_INT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);} 588 InterruptTypeKeyword /* 04: InterruptType */ 589 ',' InterruptLevel /* 06: InterruptLevel */ 590 OptionalShareType /* 07: SharedType */ 591 ',' PinConfigByte /* 09: PinConfig */ 592 OptionalWordConstExpr /* 10: DebounceTimeout */ 593 ',' StringData /* 12: ResourceSource */ 594 OptionalByteConstExpr /* 13: ResourceSourceIndex */ 595 OptionalResourceType /* 14: ResourceType */ 596 OptionalNameString /* 15: DescriptorName */ 597 OptionalBuffer_Last /* 16: VendorData */ 598 ')' '{' 599 DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);} 600 | PARSEOP_GPIO_INT '(' 601 error ')' {$$ = AslDoError(); yyclearin;} 602 ; 603 604 GpioIoTerm 605 : PARSEOP_GPIO_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);} 606 OptionalShareType_First /* 04: SharedType */ 607 ',' PinConfigByte /* 06: PinConfig */ 608 OptionalWordConstExpr /* 07: DebounceTimeout */ 609 OptionalWordConstExpr /* 08: DriveStrength */ 610 OptionalIoRestriction /* 09: IoRestriction */ 611 ',' StringData /* 11: ResourceSource */ 612 OptionalByteConstExpr /* 12: ResourceSourceIndex */ 613 OptionalResourceType /* 13: ResourceType */ 614 OptionalNameString /* 14: DescriptorName */ 615 OptionalBuffer_Last /* 15: VendorData */ 616 ')' '{' 617 DWordList '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);} 618 | PARSEOP_GPIO_IO '(' 619 error ')' {$$ = AslDoError(); yyclearin;} 620 ; 621 622 I2cSerialBusTerm 623 : PARSEOP_I2C_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);} 624 WordConstExpr /* 04: SlaveAddress */ 625 OptionalSlaveMode /* 05: SlaveMode */ 626 ',' DWordConstExpr /* 07: ConnectionSpeed */ 627 OptionalAddressingMode /* 08: AddressingMode */ 628 ',' StringData /* 10: ResourceSource */ 629 OptionalByteConstExpr /* 11: ResourceSourceIndex */ 630 OptionalResourceType /* 12: ResourceType */ 631 OptionalNameString /* 13: DescriptorName */ 632 OptionalBuffer_Last /* 14: VendorData */ 633 ')' {$$ = TrLinkChildren ($<n>3,9,$4,$5,$7,$8,$10,$11,$12,$13,$14);} 634 | PARSEOP_I2C_SERIALBUS '(' 635 error ')' {$$ = AslDoError(); yyclearin;} 636 ; 637 638 InterruptTerm 639 : PARSEOP_INTERRUPT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);} 640 OptionalResourceType_First 641 ',' InterruptTypeKeyword 642 ',' InterruptLevel 643 OptionalShareType 644 OptionalByteConstExpr 645 OptionalStringData 646 OptionalNameString_Last 647 ')' '{' 648 DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);} 649 | PARSEOP_INTERRUPT '(' 650 error ')' {$$ = AslDoError(); yyclearin;} 651 ; 652 653 IOTerm 654 : PARSEOP_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IO);} 655 IODecodeKeyword 656 ',' WordConstExpr 657 ',' WordConstExpr 658 ',' ByteConstExpr 659 ',' ByteConstExpr 660 OptionalNameString_Last 661 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 662 | PARSEOP_IO '(' 663 error ')' {$$ = AslDoError(); yyclearin;} 664 ; 665 666 IRQNoFlagsTerm 667 : PARSEOP_IRQNOFLAGS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);} 668 OptionalNameString_First 669 ')' '{' 670 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 671 | PARSEOP_IRQNOFLAGS '(' 672 error ')' {$$ = AslDoError(); yyclearin;} 673 ; 674 675 IRQTerm 676 : PARSEOP_IRQ '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);} 677 InterruptTypeKeyword 678 ',' InterruptLevel 679 OptionalShareType 680 OptionalNameString_Last 681 ')' '{' 682 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);} 683 | PARSEOP_IRQ '(' 684 error ')' {$$ = AslDoError(); yyclearin;} 685 ; 686 687 Memory24Term 688 : PARSEOP_MEMORY24 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);} 689 OptionalReadWriteKeyword 690 ',' WordConstExpr 691 ',' WordConstExpr 692 ',' WordConstExpr 693 ',' WordConstExpr 694 OptionalNameString_Last 695 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 696 | PARSEOP_MEMORY24 '(' 697 error ')' {$$ = AslDoError(); yyclearin;} 698 ; 699 700 Memory32FixedTerm 701 : PARSEOP_MEMORY32FIXED '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);} 702 OptionalReadWriteKeyword 703 ',' DWordConstExpr 704 ',' DWordConstExpr 705 OptionalNameString_Last 706 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);} 707 | PARSEOP_MEMORY32FIXED '(' 708 error ')' {$$ = AslDoError(); yyclearin;} 709 ; 710 711 Memory32Term 712 : PARSEOP_MEMORY32 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);} 713 OptionalReadWriteKeyword 714 ',' DWordConstExpr 715 ',' DWordConstExpr 716 ',' DWordConstExpr 717 ',' DWordConstExpr 718 OptionalNameString_Last 719 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 720 | PARSEOP_MEMORY32 '(' 721 error ')' {$$ = AslDoError(); yyclearin;} 722 ; 723 724 QWordIOTerm 725 : PARSEOP_QWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);} 726 OptionalResourceType_First 727 OptionalMinType 728 OptionalMaxType 729 OptionalDecodeType 730 OptionalRangeType 731 ',' QWordConstExpr 732 ',' QWordConstExpr 733 ',' QWordConstExpr 734 ',' QWordConstExpr 735 ',' QWordConstExpr 736 OptionalByteConstExpr 737 OptionalStringData 738 OptionalNameString 739 OptionalType 740 OptionalTranslationType_Last 741 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 742 | PARSEOP_QWORDIO '(' 743 error ')' {$$ = AslDoError(); yyclearin;} 744 ; 745 746 QWordMemoryTerm 747 : PARSEOP_QWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);} 748 OptionalResourceType_First 749 OptionalDecodeType 750 OptionalMinType 751 OptionalMaxType 752 OptionalMemType 753 ',' OptionalReadWriteKeyword 754 ',' QWordConstExpr 755 ',' QWordConstExpr 756 ',' QWordConstExpr 757 ',' QWordConstExpr 758 ',' QWordConstExpr 759 OptionalByteConstExpr 760 OptionalStringData 761 OptionalNameString 762 OptionalAddressRange 763 OptionalType_Last 764 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 765 | PARSEOP_QWORDMEMORY '(' 766 error ')' {$$ = AslDoError(); yyclearin;} 767 ; 768 769 QWordSpaceTerm 770 : PARSEOP_QWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);} 771 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 772 OptionalResourceType 773 OptionalDecodeType 774 OptionalMinType 775 OptionalMaxType 776 ',' ByteConstExpr 777 ',' QWordConstExpr 778 ',' QWordConstExpr 779 ',' QWordConstExpr 780 ',' QWordConstExpr 781 ',' QWordConstExpr 782 OptionalByteConstExpr 783 OptionalStringData 784 OptionalNameString_Last 785 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 786 | PARSEOP_QWORDSPACE '(' 787 error ')' {$$ = AslDoError(); yyclearin;} 788 ; 789 790 RegisterTerm 791 : PARSEOP_REGISTER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);} 792 AddressSpaceKeyword 793 ',' ByteConstExpr 794 ',' ByteConstExpr 795 ',' QWordConstExpr 796 OptionalAccessSize 797 OptionalNameString_Last 798 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);} 799 | PARSEOP_REGISTER '(' 800 error ')' {$$ = AslDoError(); yyclearin;} 801 ; 802 803 SpiSerialBusTerm 804 : PARSEOP_SPI_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);} 805 WordConstExpr /* 04: DeviceSelection */ 806 OptionalDevicePolarity /* 05: DevicePolarity */ 807 OptionalWireMode /* 06: WireMode */ 808 ',' ByteConstExpr /* 08: DataBitLength */ 809 OptionalSlaveMode /* 09: SlaveMode */ 810 ',' DWordConstExpr /* 11: ConnectionSpeed */ 811 ',' ClockPolarityKeyword /* 13: ClockPolarity */ 812 ',' ClockPhaseKeyword /* 15: ClockPhase */ 813 ',' StringData /* 17: ResourceSource */ 814 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 815 OptionalResourceType /* 19: ResourceType */ 816 OptionalNameString /* 20: DescriptorName */ 817 OptionalBuffer_Last /* 21: VendorData */ 818 ')' {$$ = TrLinkChildren ($<n>3,13,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21);} 819 | PARSEOP_SPI_SERIALBUS '(' 820 error ')' {$$ = AslDoError(); yyclearin;} 821 ; 822 823 StartDependentFnNoPriTerm 824 : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);} 825 ')' '{' 826 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);} 827 | PARSEOP_STARTDEPENDENTFN_NOPRI '(' 828 error ')' {$$ = AslDoError(); yyclearin;} 829 ; 830 831 StartDependentFnTerm 832 : PARSEOP_STARTDEPENDENTFN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);} 833 ByteConstExpr 834 ',' ByteConstExpr 835 ')' '{' 836 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);} 837 | PARSEOP_STARTDEPENDENTFN '(' 838 error ')' {$$ = AslDoError(); yyclearin;} 839 ; 840 841 UartSerialBusTerm 842 : PARSEOP_UART_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);} 843 DWordConstExpr /* 04: ConnectionSpeed */ 844 OptionalBitsPerByte /* 05: BitsPerByte */ 845 OptionalStopBits /* 06: StopBits */ 846 ',' ByteConstExpr /* 08: LinesInUse */ 847 OptionalEndian /* 09: Endianess */ 848 OptionalParityType /* 10: Parity */ 849 OptionalFlowControl /* 11: FlowControl */ 850 ',' WordConstExpr /* 13: Rx BufferSize */ 851 ',' WordConstExpr /* 15: Tx BufferSize */ 852 ',' StringData /* 17: ResourceSource */ 853 OptionalByteConstExpr /* 18: ResourceSourceIndex */ 854 OptionalResourceType /* 19: ResourceType */ 855 OptionalNameString /* 20: DescriptorName */ 856 OptionalBuffer_Last /* 21: VendorData */ 857 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21);} 858 | PARSEOP_UART_SERIALBUS '(' 859 error ')' {$$ = AslDoError(); yyclearin;} 860 ; 861 862 VendorLongTerm 863 : PARSEOP_VENDORLONG '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);} 864 OptionalNameString_First 865 ')' '{' 866 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 867 | PARSEOP_VENDORLONG '(' 868 error ')' {$$ = AslDoError(); yyclearin;} 869 ; 870 871 VendorShortTerm 872 : PARSEOP_VENDORSHORT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);} 873 OptionalNameString_First 874 ')' '{' 875 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 876 | PARSEOP_VENDORSHORT '(' 877 error ')' {$$ = AslDoError(); yyclearin;} 878 ; 879 880 WordBusNumberTerm 881 : PARSEOP_WORDBUSNUMBER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);} 882 OptionalResourceType_First 883 OptionalMinType 884 OptionalMaxType 885 OptionalDecodeType 886 ',' WordConstExpr 887 ',' WordConstExpr 888 ',' WordConstExpr 889 ',' WordConstExpr 890 ',' WordConstExpr 891 OptionalByteConstExpr 892 OptionalStringData 893 OptionalNameString_Last 894 ')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);} 895 | PARSEOP_WORDBUSNUMBER '(' 896 error ')' {$$ = AslDoError(); yyclearin;} 897 ; 898 899 WordIOTerm 900 : PARSEOP_WORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);} 901 OptionalResourceType_First 902 OptionalMinType 903 OptionalMaxType 904 OptionalDecodeType 905 OptionalRangeType 906 ',' WordConstExpr 907 ',' WordConstExpr 908 ',' WordConstExpr 909 ',' WordConstExpr 910 ',' WordConstExpr 911 OptionalByteConstExpr 912 OptionalStringData 913 OptionalNameString 914 OptionalType 915 OptionalTranslationType_Last 916 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 917 | PARSEOP_WORDIO '(' 918 error ')' {$$ = AslDoError(); yyclearin;} 919 ; 920 921 WordSpaceTerm 922 : PARSEOP_WORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);} 923 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 924 OptionalResourceType 925 OptionalDecodeType 926 OptionalMinType 927 OptionalMaxType 928 ',' ByteConstExpr 929 ',' WordConstExpr 930 ',' WordConstExpr 931 ',' WordConstExpr 932 ',' WordConstExpr 933 ',' WordConstExpr 934 OptionalByteConstExpr 935 OptionalStringData 936 OptionalNameString_Last 937 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 938 | PARSEOP_WORDSPACE '(' 939 error ')' {$$ = AslDoError(); yyclearin;} 940 ; 941 942 943 /******* Object References ***********************************************/ 944 945 /* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */ 946 947 NameString 948 : NameSeg {} 949 | PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);} 950 | PARSEOP_IO {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");} 951 | PARSEOP_DMA {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");} 952 | PARSEOP_IRQ {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");} 953 ; 954 955 NameSeg 956 : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);} 957 ; 958 959 960 /******************************************************************************* 961 * 962 * ASL Helper Terms 963 * 964 ******************************************************************************/ 965 966 OptionalBusMasterKeyword 967 : ',' {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);} 968 | ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);} 969 | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);} 970 ; 971 972 OptionalAccessAttribTerm 973 : {$$ = NULL;} 974 | ',' {$$ = NULL;} 975 | ',' ByteConstExpr {$$ = $2;} 976 | ',' AccessAttribKeyword {$$ = $2;} 977 ; 978 979 OptionalAccessSize 980 : {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);} 981 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);} 982 | ',' ByteConstExpr {$$ = $2;} 983 ; 984 985 OptionalAddressingMode 986 : ',' {$$ = NULL;} 987 | ',' AddressingModeKeyword {$$ = $2;} 988 ; 989 990 OptionalAddressRange 991 : {$$ = NULL;} 992 | ',' {$$ = NULL;} 993 | ',' AddressKeyword {$$ = $2;} 994 ; 995 996 OptionalBitsPerByte 997 : ',' {$$ = NULL;} 998 | ',' BitsPerByteKeyword {$$ = $2;} 999 ; 1000 1001 OptionalBuffer_Last 1002 : {$$ = NULL;} 1003 | ',' {$$ = NULL;} 1004 | ',' RawDataBufferTerm {$$ = $2;} 1005 ; 1006 1007 OptionalByteConstExpr 1008 : {$$ = NULL;} 1009 | ',' {$$ = NULL;} 1010 | ',' ByteConstExpr {$$ = $2;} 1011 ; 1012 1013 OptionalDecodeType 1014 : ',' {$$ = NULL;} 1015 | ',' DecodeKeyword {$$ = $2;} 1016 ; 1017 1018 OptionalDevicePolarity 1019 : ',' {$$ = NULL;} 1020 | ',' DevicePolarityKeyword {$$ = $2;} 1021 ; 1022 1023 OptionalDWordConstExpr 1024 : {$$ = NULL;} 1025 | ',' {$$ = NULL;} 1026 | ',' DWordConstExpr {$$ = $2;} 1027 ; 1028 1029 OptionalEndian 1030 : ',' {$$ = NULL;} 1031 | ',' EndianKeyword {$$ = $2;} 1032 ; 1033 1034 OptionalFlowControl 1035 : ',' {$$ = NULL;} 1036 | ',' FlowControlKeyword {$$ = $2;} 1037 ; 1038 1039 OptionalIoRestriction 1040 : ',' {$$ = NULL;} 1041 | ',' IoRestrictionKeyword {$$ = $2;} 1042 ; 1043 1044 OptionalListString 1045 : {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */ 1046 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */ 1047 | ',' TermArg {$$ = $2;} 1048 ; 1049 1050 OptionalMaxType 1051 : ',' {$$ = NULL;} 1052 | ',' MaxKeyword {$$ = $2;} 1053 ; 1054 1055 OptionalMemType 1056 : ',' {$$ = NULL;} 1057 | ',' MemTypeKeyword {$$ = $2;} 1058 ; 1059 1060 OptionalMinType 1061 : ',' {$$ = NULL;} 1062 | ',' MinKeyword {$$ = $2;} 1063 ; 1064 1065 OptionalNameString 1066 : {$$ = NULL;} 1067 | ',' {$$ = NULL;} 1068 | ',' NameString {$$ = $2;} 1069 ; 1070 1071 OptionalNameString_Last 1072 : {$$ = NULL;} 1073 | ',' {$$ = NULL;} 1074 | ',' NameString {$$ = $2;} 1075 ; 1076 1077 OptionalNameString_First 1078 : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} 1079 | NameString {$$ = $1;} 1080 ; 1081 1082 OptionalObjectTypeKeyword 1083 : {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);} 1084 | ',' ObjectTypeKeyword {$$ = $2;} 1085 ; 1086 1087 OptionalParityType 1088 : ',' {$$ = NULL;} 1089 | ',' ParityTypeKeyword {$$ = $2;} 1090 ; 1091 1092 OptionalQWordConstExpr 1093 : {$$ = NULL;} 1094 | ',' {$$ = NULL;} 1095 | ',' QWordConstExpr {$$ = $2;} 1096 ; 1097 1098 OptionalRangeType 1099 : ',' {$$ = NULL;} 1100 | ',' RangeTypeKeyword {$$ = $2;} 1101 ; 1102 1103 OptionalReadWriteKeyword 1104 : {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);} 1105 | PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);} 1106 | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);} 1107 ; 1108 1109 OptionalResourceType_First 1110 : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);} 1111 | ResourceTypeKeyword {$$ = $1;} 1112 ; 1113 1114 OptionalResourceType 1115 : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);} 1116 | ',' {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);} 1117 | ',' ResourceTypeKeyword {$$ = $2;} 1118 ; 1119 1120 OptionalSlaveMode 1121 : ',' {$$ = NULL;} 1122 | ',' SlaveModeKeyword {$$ = $2;} 1123 ; 1124 1125 OptionalShareType 1126 : {$$ = NULL;} 1127 | ',' {$$ = NULL;} 1128 | ',' ShareTypeKeyword {$$ = $2;} 1129 ; 1130 1131 OptionalShareType_First 1132 : {$$ = NULL;} 1133 | ShareTypeKeyword {$$ = $1;} 1134 ; 1135 1136 OptionalStopBits 1137 : ',' {$$ = NULL;} 1138 | ',' StopBitsKeyword {$$ = $2;} 1139 ; 1140 1141 OptionalStringData 1142 : {$$ = NULL;} 1143 | ',' {$$ = NULL;} 1144 | ',' StringData {$$ = $2;} 1145 ; 1146 1147 OptionalTranslationType_Last 1148 : {$$ = NULL;} 1149 | ',' {$$ = NULL;} 1150 | ',' TranslationKeyword {$$ = $2;} 1151 ; 1152 1153 OptionalType 1154 : {$$ = NULL;} 1155 | ',' {$$ = NULL;} 1156 | ',' TypeKeyword {$$ = $2;} 1157 ; 1158 1159 OptionalType_Last 1160 : {$$ = NULL;} 1161 | ',' {$$ = NULL;} 1162 | ',' TypeKeyword {$$ = $2;} 1163 ; 1164 1165 OptionalWireMode 1166 : ',' {$$ = NULL;} 1167 | ',' WireModeKeyword {$$ = $2;} 1168 ; 1169 1170 OptionalWordConstExpr 1171 : ',' {$$ = NULL;} 1172 | ',' WordConstExpr {$$ = $2;} 1173 ; 1174 1175 OptionalXferSize 1176 : {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);} 1177 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);} 1178 | ',' XferSizeKeyword {$$ = $2;} 1179 ; 1180