1*493deb39SJung-uk Kim NoEcho(' 2*493deb39SJung-uk Kim /****************************************************************************** 3*493deb39SJung-uk Kim * 4*493deb39SJung-uk Kim * Module Name: aslhelpers.y - helper and option terms 5*493deb39SJung-uk Kim * 6*493deb39SJung-uk Kim *****************************************************************************/ 7*493deb39SJung-uk Kim 8*493deb39SJung-uk Kim /* 9*493deb39SJung-uk Kim * Copyright (C) 2000 - 2016, Intel Corp. 10*493deb39SJung-uk Kim * All rights reserved. 11*493deb39SJung-uk Kim * 12*493deb39SJung-uk Kim * Redistribution and use in source and binary forms, with or without 13*493deb39SJung-uk Kim * modification, are permitted provided that the following conditions 14*493deb39SJung-uk Kim * are met: 15*493deb39SJung-uk Kim * 1. Redistributions of source code must retain the above copyright 16*493deb39SJung-uk Kim * notice, this list of conditions, and the following disclaimer, 17*493deb39SJung-uk Kim * without modification. 18*493deb39SJung-uk Kim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 19*493deb39SJung-uk Kim * substantially similar to the "NO WARRANTY" disclaimer below 20*493deb39SJung-uk Kim * ("Disclaimer") and any redistribution must be conditioned upon 21*493deb39SJung-uk Kim * including a substantially similar Disclaimer requirement for further 22*493deb39SJung-uk Kim * binary redistribution. 23*493deb39SJung-uk Kim * 3. Neither the names of the above-listed copyright holders nor the names 24*493deb39SJung-uk Kim * of any contributors may be used to endorse or promote products derived 25*493deb39SJung-uk Kim * from this software without specific prior written permission. 26*493deb39SJung-uk Kim * 27*493deb39SJung-uk Kim * Alternatively, this software may be distributed under the terms of the 28*493deb39SJung-uk Kim * GNU General Public License ("GPL") version 2 as published by the Free 29*493deb39SJung-uk Kim * Software Foundation. 30*493deb39SJung-uk Kim * 31*493deb39SJung-uk Kim * NO WARRANTY 32*493deb39SJung-uk Kim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 33*493deb39SJung-uk Kim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 34*493deb39SJung-uk Kim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 35*493deb39SJung-uk Kim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 36*493deb39SJung-uk Kim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37*493deb39SJung-uk Kim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38*493deb39SJung-uk Kim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39*493deb39SJung-uk Kim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 40*493deb39SJung-uk Kim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 41*493deb39SJung-uk Kim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42*493deb39SJung-uk Kim * POSSIBILITY OF SUCH DAMAGES. 43*493deb39SJung-uk Kim */ 44*493deb39SJung-uk Kim 45*493deb39SJung-uk Kim ') 46*493deb39SJung-uk Kim 47*493deb39SJung-uk Kim 48*493deb39SJung-uk Kim /******************************************************************************* 49*493deb39SJung-uk Kim * 50*493deb39SJung-uk Kim * ASL Helper Terms 51*493deb39SJung-uk Kim * 52*493deb39SJung-uk Kim ******************************************************************************/ 53*493deb39SJung-uk Kim 54*493deb39SJung-uk Kim OptionalBusMasterKeyword 55*493deb39SJung-uk Kim : ',' {$$ = TrCreateLeafNode ( 56*493deb39SJung-uk Kim PARSEOP_BUSMASTERTYPE_MASTER);} 57*493deb39SJung-uk Kim | ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode ( 58*493deb39SJung-uk Kim PARSEOP_BUSMASTERTYPE_MASTER);} 59*493deb39SJung-uk Kim | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode ( 60*493deb39SJung-uk Kim PARSEOP_BUSMASTERTYPE_NOTMASTER);} 61*493deb39SJung-uk Kim ; 62*493deb39SJung-uk Kim 63*493deb39SJung-uk Kim OptionalAccessAttribTerm 64*493deb39SJung-uk Kim : {$$ = NULL;} 65*493deb39SJung-uk Kim | ',' {$$ = NULL;} 66*493deb39SJung-uk Kim | ',' ByteConstExpr {$$ = $2;} 67*493deb39SJung-uk Kim | ',' AccessAttribKeyword {$$ = $2;} 68*493deb39SJung-uk Kim ; 69*493deb39SJung-uk Kim 70*493deb39SJung-uk Kim OptionalAccessSize 71*493deb39SJung-uk Kim : {$$ = TrCreateValuedLeafNode ( 72*493deb39SJung-uk Kim PARSEOP_BYTECONST, 0);} 73*493deb39SJung-uk Kim | ',' {$$ = TrCreateValuedLeafNode ( 74*493deb39SJung-uk Kim PARSEOP_BYTECONST, 0);} 75*493deb39SJung-uk Kim | ',' ByteConstExpr {$$ = $2;} 76*493deb39SJung-uk Kim ; 77*493deb39SJung-uk Kim 78*493deb39SJung-uk Kim OptionalAddressingMode 79*493deb39SJung-uk Kim : ',' {$$ = NULL;} 80*493deb39SJung-uk Kim | ',' AddressingModeKeyword {$$ = $2;} 81*493deb39SJung-uk Kim ; 82*493deb39SJung-uk Kim 83*493deb39SJung-uk Kim OptionalAddressRange 84*493deb39SJung-uk Kim : {$$ = NULL;} 85*493deb39SJung-uk Kim | ',' {$$ = NULL;} 86*493deb39SJung-uk Kim | ',' AddressKeyword {$$ = $2;} 87*493deb39SJung-uk Kim ; 88*493deb39SJung-uk Kim 89*493deb39SJung-uk Kim OptionalBitsPerByte 90*493deb39SJung-uk Kim : ',' {$$ = NULL;} 91*493deb39SJung-uk Kim | ',' BitsPerByteKeyword {$$ = $2;} 92*493deb39SJung-uk Kim ; 93*493deb39SJung-uk Kim 94*493deb39SJung-uk Kim OptionalBuffer_Last 95*493deb39SJung-uk Kim : {$$ = NULL;} 96*493deb39SJung-uk Kim | ',' {$$ = NULL;} 97*493deb39SJung-uk Kim | ',' RawDataBufferTerm {$$ = $2;} 98*493deb39SJung-uk Kim ; 99*493deb39SJung-uk Kim 100*493deb39SJung-uk Kim OptionalByteConstExpr 101*493deb39SJung-uk Kim : {$$ = NULL;} 102*493deb39SJung-uk Kim | ',' {$$ = NULL;} 103*493deb39SJung-uk Kim | ',' ByteConstExpr {$$ = $2;} 104*493deb39SJung-uk Kim ; 105*493deb39SJung-uk Kim 106*493deb39SJung-uk Kim OptionalDecodeType 107*493deb39SJung-uk Kim : ',' {$$ = NULL;} 108*493deb39SJung-uk Kim | ',' DecodeKeyword {$$ = $2;} 109*493deb39SJung-uk Kim ; 110*493deb39SJung-uk Kim 111*493deb39SJung-uk Kim OptionalDevicePolarity 112*493deb39SJung-uk Kim : ',' {$$ = NULL;} 113*493deb39SJung-uk Kim | ',' DevicePolarityKeyword {$$ = $2;} 114*493deb39SJung-uk Kim ; 115*493deb39SJung-uk Kim 116*493deb39SJung-uk Kim OptionalDWordConstExpr 117*493deb39SJung-uk Kim : {$$ = NULL;} 118*493deb39SJung-uk Kim | ',' {$$ = NULL;} 119*493deb39SJung-uk Kim | ',' DWordConstExpr {$$ = $2;} 120*493deb39SJung-uk Kim ; 121*493deb39SJung-uk Kim 122*493deb39SJung-uk Kim OptionalEndian 123*493deb39SJung-uk Kim : ',' {$$ = NULL;} 124*493deb39SJung-uk Kim | ',' EndianKeyword {$$ = $2;} 125*493deb39SJung-uk Kim ; 126*493deb39SJung-uk Kim 127*493deb39SJung-uk Kim OptionalFlowControl 128*493deb39SJung-uk Kim : ',' {$$ = NULL;} 129*493deb39SJung-uk Kim | ',' FlowControlKeyword {$$ = $2;} 130*493deb39SJung-uk Kim ; 131*493deb39SJung-uk Kim 132*493deb39SJung-uk Kim OptionalIoRestriction 133*493deb39SJung-uk Kim : ',' {$$ = NULL;} 134*493deb39SJung-uk Kim | ',' IoRestrictionKeyword {$$ = $2;} 135*493deb39SJung-uk Kim ; 136*493deb39SJung-uk Kim 137*493deb39SJung-uk Kim OptionalListString 138*493deb39SJung-uk Kim : {$$ = TrCreateValuedLeafNode ( 139*493deb39SJung-uk Kim PARSEOP_STRING_LITERAL, 140*493deb39SJung-uk Kim ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */ 141*493deb39SJung-uk Kim | ',' {$$ = TrCreateValuedLeafNode ( 142*493deb39SJung-uk Kim PARSEOP_STRING_LITERAL, 143*493deb39SJung-uk Kim ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */ 144*493deb39SJung-uk Kim | ',' TermArg {$$ = $2;} 145*493deb39SJung-uk Kim ; 146*493deb39SJung-uk Kim 147*493deb39SJung-uk Kim OptionalMaxType 148*493deb39SJung-uk Kim : ',' {$$ = NULL;} 149*493deb39SJung-uk Kim | ',' MaxKeyword {$$ = $2;} 150*493deb39SJung-uk Kim ; 151*493deb39SJung-uk Kim 152*493deb39SJung-uk Kim OptionalMemType 153*493deb39SJung-uk Kim : ',' {$$ = NULL;} 154*493deb39SJung-uk Kim | ',' MemTypeKeyword {$$ = $2;} 155*493deb39SJung-uk Kim ; 156*493deb39SJung-uk Kim 157*493deb39SJung-uk Kim OptionalMinType 158*493deb39SJung-uk Kim : ',' {$$ = NULL;} 159*493deb39SJung-uk Kim | ',' MinKeyword {$$ = $2;} 160*493deb39SJung-uk Kim ; 161*493deb39SJung-uk Kim 162*493deb39SJung-uk Kim OptionalNameString 163*493deb39SJung-uk Kim : {$$ = NULL;} 164*493deb39SJung-uk Kim | ',' {$$ = NULL;} 165*493deb39SJung-uk Kim | ',' NameString {$$ = $2;} 166*493deb39SJung-uk Kim ; 167*493deb39SJung-uk Kim 168*493deb39SJung-uk Kim OptionalNameString_Last 169*493deb39SJung-uk Kim : {$$ = NULL;} 170*493deb39SJung-uk Kim | ',' {$$ = NULL;} 171*493deb39SJung-uk Kim | ',' NameString {$$ = $2;} 172*493deb39SJung-uk Kim ; 173*493deb39SJung-uk Kim 174*493deb39SJung-uk Kim OptionalNameString_First 175*493deb39SJung-uk Kim : {$$ = TrCreateLeafNode ( 176*493deb39SJung-uk Kim PARSEOP_ZERO);} 177*493deb39SJung-uk Kim | NameString {$$ = $1;} 178*493deb39SJung-uk Kim ; 179*493deb39SJung-uk Kim 180*493deb39SJung-uk Kim OptionalObjectTypeKeyword 181*493deb39SJung-uk Kim : {$$ = TrCreateLeafNode ( 182*493deb39SJung-uk Kim PARSEOP_OBJECTTYPE_UNK);} 183*493deb39SJung-uk Kim | ',' ObjectTypeKeyword {$$ = $2;} 184*493deb39SJung-uk Kim ; 185*493deb39SJung-uk Kim 186*493deb39SJung-uk Kim OptionalParityType 187*493deb39SJung-uk Kim : ',' {$$ = NULL;} 188*493deb39SJung-uk Kim | ',' ParityTypeKeyword {$$ = $2;} 189*493deb39SJung-uk Kim ; 190*493deb39SJung-uk Kim 191*493deb39SJung-uk Kim OptionalQWordConstExpr 192*493deb39SJung-uk Kim : {$$ = NULL;} 193*493deb39SJung-uk Kim | ',' {$$ = NULL;} 194*493deb39SJung-uk Kim | ',' QWordConstExpr {$$ = $2;} 195*493deb39SJung-uk Kim ; 196*493deb39SJung-uk Kim 197*493deb39SJung-uk Kim OptionalRangeType 198*493deb39SJung-uk Kim : ',' {$$ = NULL;} 199*493deb39SJung-uk Kim | ',' RangeTypeKeyword {$$ = $2;} 200*493deb39SJung-uk Kim ; 201*493deb39SJung-uk Kim 202*493deb39SJung-uk Kim OptionalReadWriteKeyword 203*493deb39SJung-uk Kim : {$$ = TrCreateLeafNode ( 204*493deb39SJung-uk Kim PARSEOP_READWRITETYPE_BOTH);} 205*493deb39SJung-uk Kim | PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode ( 206*493deb39SJung-uk Kim PARSEOP_READWRITETYPE_BOTH);} 207*493deb39SJung-uk Kim | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode ( 208*493deb39SJung-uk Kim PARSEOP_READWRITETYPE_READONLY);} 209*493deb39SJung-uk Kim ; 210*493deb39SJung-uk Kim 211*493deb39SJung-uk Kim OptionalResourceType_First 212*493deb39SJung-uk Kim : {$$ = TrCreateLeafNode ( 213*493deb39SJung-uk Kim PARSEOP_RESOURCETYPE_CONSUMER);} 214*493deb39SJung-uk Kim | ResourceTypeKeyword {$$ = $1;} 215*493deb39SJung-uk Kim ; 216*493deb39SJung-uk Kim 217*493deb39SJung-uk Kim OptionalResourceType 218*493deb39SJung-uk Kim : {$$ = TrCreateLeafNode ( 219*493deb39SJung-uk Kim PARSEOP_RESOURCETYPE_CONSUMER);} 220*493deb39SJung-uk Kim | ',' {$$ = TrCreateLeafNode ( 221*493deb39SJung-uk Kim PARSEOP_RESOURCETYPE_CONSUMER);} 222*493deb39SJung-uk Kim | ',' ResourceTypeKeyword {$$ = $2;} 223*493deb39SJung-uk Kim ; 224*493deb39SJung-uk Kim 225*493deb39SJung-uk Kim OptionalSlaveMode 226*493deb39SJung-uk Kim : ',' {$$ = NULL;} 227*493deb39SJung-uk Kim | ',' SlaveModeKeyword {$$ = $2;} 228*493deb39SJung-uk Kim ; 229*493deb39SJung-uk Kim 230*493deb39SJung-uk Kim OptionalShareType 231*493deb39SJung-uk Kim : {$$ = NULL;} 232*493deb39SJung-uk Kim | ',' {$$ = NULL;} 233*493deb39SJung-uk Kim | ',' ShareTypeKeyword {$$ = $2;} 234*493deb39SJung-uk Kim ; 235*493deb39SJung-uk Kim 236*493deb39SJung-uk Kim OptionalShareType_First 237*493deb39SJung-uk Kim : {$$ = NULL;} 238*493deb39SJung-uk Kim | ShareTypeKeyword {$$ = $1;} 239*493deb39SJung-uk Kim ; 240*493deb39SJung-uk Kim 241*493deb39SJung-uk Kim OptionalStopBits 242*493deb39SJung-uk Kim : ',' {$$ = NULL;} 243*493deb39SJung-uk Kim | ',' StopBitsKeyword {$$ = $2;} 244*493deb39SJung-uk Kim ; 245*493deb39SJung-uk Kim 246*493deb39SJung-uk Kim OptionalStringData 247*493deb39SJung-uk Kim : {$$ = NULL;} 248*493deb39SJung-uk Kim | ',' {$$ = NULL;} 249*493deb39SJung-uk Kim | ',' StringData {$$ = $2;} 250*493deb39SJung-uk Kim ; 251*493deb39SJung-uk Kim 252*493deb39SJung-uk Kim OptionalTranslationType_Last 253*493deb39SJung-uk Kim : {$$ = NULL;} 254*493deb39SJung-uk Kim | ',' {$$ = NULL;} 255*493deb39SJung-uk Kim | ',' TranslationKeyword {$$ = $2;} 256*493deb39SJung-uk Kim ; 257*493deb39SJung-uk Kim 258*493deb39SJung-uk Kim OptionalType 259*493deb39SJung-uk Kim : {$$ = NULL;} 260*493deb39SJung-uk Kim | ',' {$$ = NULL;} 261*493deb39SJung-uk Kim | ',' TypeKeyword {$$ = $2;} 262*493deb39SJung-uk Kim ; 263*493deb39SJung-uk Kim 264*493deb39SJung-uk Kim OptionalType_Last 265*493deb39SJung-uk Kim : {$$ = NULL;} 266*493deb39SJung-uk Kim | ',' {$$ = NULL;} 267*493deb39SJung-uk Kim | ',' TypeKeyword {$$ = $2;} 268*493deb39SJung-uk Kim ; 269*493deb39SJung-uk Kim 270*493deb39SJung-uk Kim OptionalWireMode 271*493deb39SJung-uk Kim : ',' {$$ = NULL;} 272*493deb39SJung-uk Kim | ',' WireModeKeyword {$$ = $2;} 273*493deb39SJung-uk Kim ; 274*493deb39SJung-uk Kim 275*493deb39SJung-uk Kim OptionalWordConstExpr 276*493deb39SJung-uk Kim : ',' {$$ = NULL;} 277*493deb39SJung-uk Kim | ',' WordConstExpr {$$ = $2;} 278*493deb39SJung-uk Kim ; 279*493deb39SJung-uk Kim 280*493deb39SJung-uk Kim OptionalXferSize 281*493deb39SJung-uk Kim : {$$ = TrCreateValuedLeafNode ( 282*493deb39SJung-uk Kim PARSEOP_XFERSIZE_32, 2);} 283*493deb39SJung-uk Kim | ',' {$$ = TrCreateValuedLeafNode ( 284*493deb39SJung-uk Kim PARSEOP_XFERSIZE_32, 2);} 285*493deb39SJung-uk Kim | ',' XferSizeKeyword {$$ = $2;} 286*493deb39SJung-uk Kim ; 287