1 NoEcho(' 2 /****************************************************************************** 3 * 4 * Module Name: asltypes.y - Bison/Yacc production types/names 5 * 6 *****************************************************************************/ 7 8 /* 9 * Copyright (C) 2000 - 2023, 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 MERCHANTABILITY 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 * Production names 50 * 51 *****************************************************************************/ 52 53 %type <n> ArgList 54 %type <n> AslCode 55 %type <n> BufferData 56 %type <n> BufferTermData 57 %type <n> CompilerDirective 58 %type <n> DataObject 59 %type <n> DefinitionBlockTerm 60 %type <n> DefinitionBlockList 61 %type <n> IntegerData 62 %type <n> NamedObject 63 %type <n> NameSpaceModifier 64 %type <n> Object 65 %type <n> PackageData 66 %type <n> ParameterTypePackage 67 %type <n> ParameterTypePackageList 68 %type <n> ParameterTypesPackage 69 %type <n> ParameterTypesPackageList 70 /* 71 %type <n> RequiredTarget 72 */ 73 %type <n> SimpleName 74 %type <n> StringData 75 %type <n> StringLiteral 76 %type <n> Target 77 %type <n> Term 78 %type <n> TermArg 79 %type <n> TermList 80 %type <n> MethodInvocationTerm 81 82 /* Type4Opcode is obsolete */ 83 84 %type <n> Type1Opcode 85 %type <n> Type2BufferOpcode 86 %type <n> Type2BufferOrStringOpcode 87 %type <n> Type2IntegerOpcode 88 %type <n> Type2Opcode 89 %type <n> Type2StringOpcode 90 %type <n> Type3Opcode 91 %type <n> Type5Opcode 92 %type <n> Type6Opcode 93 94 %type <n> AccessAsTerm 95 %type <n> ExternalTerm 96 %type <n> FieldUnit 97 %type <n> FieldUnitEntry 98 %type <n> FieldUnitList 99 %type <n> IncludeTerm 100 %type <n> OffsetTerm 101 %type <n> OptionalAccessAttribTerm 102 103 /* Named Objects */ 104 105 %type <n> BankFieldTerm 106 %type <n> CreateBitFieldTerm 107 %type <n> CreateByteFieldTerm 108 %type <n> CreateDWordFieldTerm 109 %type <n> CreateFieldTerm 110 %type <n> CreateQWordFieldTerm 111 %type <n> CreateWordFieldTerm 112 %type <n> DataRegionTerm 113 %type <n> DeviceTerm 114 %type <n> EventTerm 115 %type <n> FieldTerm 116 %type <n> FunctionTerm 117 %type <n> IndexFieldTerm 118 %type <n> MethodTerm 119 %type <n> MutexTerm 120 %type <n> OpRegionTerm 121 %type <n> OpRegionSpaceIdTerm 122 %type <n> PowerResTerm 123 %type <n> ProcessorTerm 124 %type <n> ThermalZoneTerm 125 126 /* Namespace modifiers */ 127 128 %type <n> AliasTerm 129 %type <n> NameTerm 130 %type <n> ScopeTerm 131 132 /* Type 1 opcodes */ 133 134 %type <n> BreakPointTerm 135 %type <n> BreakTerm 136 %type <n> CaseDefaultTermList 137 %type <n> CaseTerm 138 %type <n> ContinueTerm 139 %type <n> DefaultTerm 140 %type <n> ElseTerm 141 %type <n> FatalTerm 142 %type <n> ElseIfTerm 143 %type <n> IfTerm 144 %type <n> LoadTerm 145 %type <n> NoOpTerm 146 %type <n> NotifyTerm 147 %type <n> ReleaseTerm 148 %type <n> ResetTerm 149 %type <n> ReturnTerm 150 %type <n> SignalTerm 151 %type <n> SleepTerm 152 %type <n> StallTerm 153 %type <n> SwitchTerm 154 %type <n> UnloadTerm 155 %type <n> WhileTerm 156 /* %type <n> CaseTermList */ 157 158 /* Type 2 opcodes */ 159 160 %type <n> AcquireTerm 161 %type <n> AddTerm 162 %type <n> AndTerm 163 %type <n> ConcatResTerm 164 %type <n> ConcatTerm 165 %type <n> CondRefOfTerm 166 %type <n> CopyObjectTerm 167 %type <n> DecTerm 168 %type <n> DerefOfTerm 169 %type <n> DivideTerm 170 %type <n> FindSetLeftBitTerm 171 %type <n> FindSetRightBitTerm 172 %type <n> FromBCDTerm 173 %type <n> IncTerm 174 %type <n> IndexTerm 175 %type <n> LAndTerm 176 %type <n> LEqualTerm 177 %type <n> LGreaterEqualTerm 178 %type <n> LGreaterTerm 179 %type <n> LLessEqualTerm 180 %type <n> LLessTerm 181 %type <n> LNotEqualTerm 182 %type <n> LNotTerm 183 %type <n> LoadTableTerm 184 %type <n> LOrTerm 185 %type <n> MatchTerm 186 %type <n> MidTerm 187 %type <n> ModTerm 188 %type <n> MultiplyTerm 189 %type <n> NAndTerm 190 %type <n> NOrTerm 191 %type <n> NotTerm 192 %type <n> ObjectTypeTerm 193 %type <n> OrTerm 194 %type <n> RawDataBufferTerm 195 %type <n> RefOfTerm 196 %type <n> ShiftLeftTerm 197 %type <n> ShiftRightTerm 198 %type <n> SizeOfTerm 199 %type <n> StoreTerm 200 %type <n> SubtractTerm 201 %type <n> TimerTerm 202 %type <n> ToBCDTerm 203 %type <n> ToBufferTerm 204 %type <n> ToDecimalStringTerm 205 %type <n> ToHexStringTerm 206 %type <n> ToIntegerTerm 207 %type <n> ToStringTerm 208 %type <n> WaitTerm 209 %type <n> XOrTerm 210 211 /* Keywords */ 212 213 %type <n> AccessAttribKeyword 214 %type <n> AccessTypeKeyword 215 %type <n> AddressingModeKeyword 216 %type <n> AddressKeyword 217 %type <n> AddressSpaceKeyword 218 %type <n> BitsPerByteKeyword 219 %type <n> ClockPhaseKeyword 220 %type <n> ClockPolarityKeyword 221 %type <n> DecodeKeyword 222 %type <n> DevicePolarityKeyword 223 %type <n> DMATypeKeyword 224 %type <n> EndianKeyword 225 %type <n> FlowControlKeyword 226 %type <n> InterruptLevel 227 %type <n> InterruptTypeKeyword 228 %type <n> IODecodeKeyword 229 %type <n> IoRestrictionKeyword 230 %type <n> LockRuleKeyword 231 %type <n> MatchOpKeyword 232 %type <n> MaxKeyword 233 %type <n> MemTypeKeyword 234 %type <n> MinKeyword 235 %type <n> ObjectTypeKeyword 236 %type <n> OptionalBusMasterKeyword 237 %type <n> OptionalReadWriteKeyword 238 %type <n> ParityTypeKeyword 239 %type <n> PinConfigByte 240 %type <n> PinConfigKeyword 241 %type <n> RangeTypeKeyword 242 %type <n> RegionSpaceKeyword 243 %type <n> ResourceTypeKeyword 244 %type <n> SerializeRuleKeyword 245 %type <n> ShareTypeKeyword 246 %type <n> SlaveModeKeyword 247 %type <n> StopBitsKeyword 248 %type <n> TranslationKeyword 249 %type <n> TypeKeyword 250 %type <n> UpdateRuleKeyword 251 %type <n> WireModeKeyword 252 %type <n> XferSizeKeyword 253 %type <n> XferTypeKeyword 254 %type <n> ClockScaleKeyword 255 %type <n> ClockModeKeyword 256 257 /* Types */ 258 259 %type <n> SuperName 260 %type <n> ObjectTypeSource 261 %type <n> DerefOfSource 262 %type <n> RefOfSource 263 %type <n> CondRefOfSource 264 %type <n> ArgTerm 265 %type <n> LocalTerm 266 %type <n> DebugTerm 267 268 %type <n> Integer 269 %type <n> ByteConst 270 %type <n> WordConst 271 %type <n> DWordConst 272 %type <n> QWordConst 273 %type <n> String 274 275 %type <n> ConstTerm 276 %type <n> ConstExprTerm 277 %type <n> ByteConstExpr 278 %type <n> WordConstExpr 279 %type <n> DWordConstExpr 280 %type <n> QWordConstExpr 281 282 %type <n> DWordList 283 %type <n> BufferTerm 284 %type <n> ByteList 285 286 %type <n> PackageElement 287 %type <n> PackageList 288 %type <n> PackageTerm 289 290 /* Macros */ 291 292 %type <n> EISAIDTerm 293 %type <n> ResourceMacroList 294 %type <n> ResourceMacroTerm 295 %type <n> ResourceTemplateTerm 296 %type <n> PldKeyword 297 %type <n> PldKeywordList 298 %type <n> ToPLDTerm 299 %type <n> ToUUIDTerm 300 %type <n> UnicodeTerm 301 %type <n> PrintfArgList 302 %type <n> PrintfTerm 303 %type <n> FprintfTerm 304 %type <n> ForTerm 305 306 /* Resource Descriptors */ 307 308 %type <n> ClockInputTerm 309 %type <n> ConnectionTerm 310 %type <n> Csi2SerialBusTerm 311 %type <n> DMATerm 312 %type <n> DWordIOTerm 313 %type <n> DWordMemoryTerm 314 %type <n> DWordPccTerm 315 %type <n> DWordSpaceTerm 316 %type <n> EndDependentFnTerm 317 %type <n> ExtendedIOTerm 318 %type <n> ExtendedMemoryTerm 319 %type <n> ExtendedSpaceTerm 320 %type <n> FixedDmaTerm 321 %type <n> FixedIOTerm 322 %type <n> GpioIntTerm 323 %type <n> GpioIoTerm 324 %type <n> I2cSerialBusTerm 325 %type <n> I2cSerialBusTermV2 326 %type <n> InterruptTerm 327 %type <n> IOTerm 328 %type <n> IRQNoFlagsTerm 329 %type <n> IRQTerm 330 %type <n> Memory24Term 331 %type <n> Memory32FixedTerm 332 %type <n> Memory32Term 333 %type <n> NameSeg 334 %type <n> NameString 335 %type <n> PinConfigTerm 336 %type <n> PinFunctionTerm 337 %type <n> PinGroupTerm 338 %type <n> PinGroupConfigTerm 339 %type <n> PinGroupFunctionTerm 340 %type <n> QWordIOTerm 341 %type <n> QWordMemoryTerm 342 %type <n> QWordPccTerm 343 %type <n> QWordSpaceTerm 344 %type <n> RegisterTerm 345 %type <n> SpiSerialBusTerm 346 %type <n> SpiSerialBusTermV2 347 %type <n> StartDependentFnNoPriTerm 348 %type <n> StartDependentFnTerm 349 %type <n> UartSerialBusTerm 350 %type <n> UartSerialBusTermV2 351 %type <n> VendorLongTerm 352 %type <n> VendorShortTerm 353 %type <n> WordBusNumberTerm 354 %type <n> WordIOTerm 355 %type <n> WordPccTerm 356 %type <n> WordSpaceTerm 357 358 /* Local types that help construct the AML, not in ACPI spec */ 359 360 %type <n> AmlPackageLengthTerm 361 %type <n> IncludeEndTerm 362 %type <n> NameStringItem 363 %type <n> TermArgItem 364 365 %type <n> OptionalAccessSize 366 %type <n> OptionalAccessTypeKeyword 367 %type <n> OptionalAddressingMode 368 %type <n> OptionalAddressRange 369 %type <n> OptionalBitsPerByte 370 %type <n> OptionalBuffer_Last 371 %type <n> OptionalByteConstExpr 372 %type <n> OptionalCount 373 %type <n> OptionalDataCount 374 %type <n> OptionalDecodeType 375 %type <n> OptionalDevicePolarity 376 %type <n> OptionalDWordConstExpr 377 %type <n> OptionalEndian 378 %type <n> OptionalFlowControl 379 %type <n> OptionalIoRestriction 380 %type <n> OptionalListString 381 %type <n> OptionalLockRuleKeyword 382 %type <n> OptionalMaxType 383 %type <n> OptionalMemType 384 %type <n> OptionalMinType 385 %type <n> OptionalNameString 386 %type <n> OptionalNameString_First 387 %type <n> OptionalNameString_Last 388 %type <n> OptionalObjectTypeKeyword 389 %type <n> OptionalParameterTypePackage 390 %type <n> OptionalParameterTypesPackage 391 %type <n> OptionalParentheses 392 %type <n> OptionalParityType 393 %type <n> OptionalPredicate 394 %type <n> OptionalQWordConstExpr 395 %type <n> OptionalRangeType 396 %type <n> OptionalReference 397 %type <n> OptionalResourceType 398 %type <n> OptionalResourceType_First 399 %type <n> OptionalProducerResourceType 400 %type <n> OptionalReturnArg 401 %type <n> OptionalSerializeRuleKeyword 402 %type <n> OptionalShareType 403 %type <n> OptionalShareType_First 404 %type <n> OptionalSlaveMode 405 %type <n> OptionalSlaveMode_First 406 %type <n> OptionalStopBits 407 %type <n> OptionalStringData 408 %type <n> OptionalSyncLevel 409 %type <n> OptionalTermArg 410 %type <n> OptionalTranslationType_Last 411 %type <n> OptionalType 412 %type <n> OptionalType_Last 413 %type <n> OptionalUpdateRuleKeyword 414 %type <n> OptionalWireMode 415 %type <n> OptionalWordConst 416 %type <n> OptionalWordConstExpr 417 %type <n> OptionalXferSize 418 419 /* 420 * ASL+ (C-style) parser 421 */ 422 423 /* Expressions and symbolic operators */ 424 425 %type <n> Expression 426 %type <n> EqualsTerm 427 %type <n> IndexExpTerm 428 429 /* ASL+ Named object declaration support */ 430 /* 431 %type <n> NameTermAslPlus 432 433 %type <n> BufferBegin 434 %type <n> BufferEnd 435 %type <n> PackageBegin 436 %type <n> PackageEnd 437 %type <n> OptionalLength 438 */ 439 /* ASL+ Structure declarations */ 440 /* 441 %type <n> StructureTerm 442 %type <n> StructureTermBegin 443 %type <n> StructureType 444 %type <n> StructureTag 445 %type <n> StructureElementList 446 %type <n> StructureElement 447 %type <n> StructureElementType 448 %type <n> OptionalStructureElementType 449 %type <n> StructureId 450 */ 451 /* Structure instantiantion */ 452 /* 453 %type <n> StructureInstanceTerm 454 %type <n> StructureTagReference 455 %type <n> StructureInstanceEnd 456 */ 457 /* Pseudo-instantiantion for method Args/Locals */ 458 /* 459 %type <n> MethodStructureTerm 460 %type <n> LocalStructureName 461 */ 462 /* Direct structure references via the Index operator */ 463 /* 464 %type <n> StructureReference 465 %type <n> StructureIndexTerm 466 %type <n> StructurePointerTerm 467 %type <n> StructurePointerReference 468 %type <n> OptionalDefinePointer 469 */ 470