10d02842fSSascha Wildner %{ 20d02842fSSascha Wildner /****************************************************************************** 30d02842fSSascha Wildner * 40d02842fSSascha Wildner * Module Name: aslcompiler.l - Flex/lex input file 50d02842fSSascha Wildner * 60d02842fSSascha Wildner *****************************************************************************/ 70d02842fSSascha Wildner 8b4315fc7SSascha Wildner /****************************************************************************** 9b4315fc7SSascha Wildner * 10b4315fc7SSascha Wildner * 1. Copyright Notice 11b4315fc7SSascha Wildner * 12383048acSSascha Wildner * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. 130d02842fSSascha Wildner * All rights reserved. 140d02842fSSascha Wildner * 15b4315fc7SSascha Wildner * 2. License 16b4315fc7SSascha Wildner * 17b4315fc7SSascha Wildner * 2.1. This is your license from Intel Corp. under its intellectual property 18b4315fc7SSascha Wildner * rights. You may have additional license terms from the party that provided 19b4315fc7SSascha Wildner * you this software, covering your right to use that party's intellectual 20b4315fc7SSascha Wildner * property rights. 21b4315fc7SSascha Wildner * 22b4315fc7SSascha Wildner * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 23b4315fc7SSascha Wildner * copy of the source code appearing in this file ("Covered Code") an 24b4315fc7SSascha Wildner * irrevocable, perpetual, worldwide license under Intel's copyrights in the 25b4315fc7SSascha Wildner * base code distributed originally by Intel ("Original Intel Code") to copy, 26b4315fc7SSascha Wildner * make derivatives, distribute, use and display any portion of the Covered 27b4315fc7SSascha Wildner * Code in any form, with the right to sublicense such rights; and 28b4315fc7SSascha Wildner * 29b4315fc7SSascha Wildner * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 30b4315fc7SSascha Wildner * license (with the right to sublicense), under only those claims of Intel 31b4315fc7SSascha Wildner * patents that are infringed by the Original Intel Code, to make, use, sell, 32b4315fc7SSascha Wildner * offer to sell, and import the Covered Code and derivative works thereof 33b4315fc7SSascha Wildner * solely to the minimum extent necessary to exercise the above copyright 34b4315fc7SSascha Wildner * license, and in no event shall the patent license extend to any additions 35b4315fc7SSascha Wildner * to or modifications of the Original Intel Code. No other license or right 36b4315fc7SSascha Wildner * is granted directly or by implication, estoppel or otherwise; 37b4315fc7SSascha Wildner * 38b4315fc7SSascha Wildner * The above copyright and patent license is granted only if the following 39b4315fc7SSascha Wildner * conditions are met: 40b4315fc7SSascha Wildner * 41b4315fc7SSascha Wildner * 3. Conditions 42b4315fc7SSascha Wildner * 43b4315fc7SSascha Wildner * 3.1. Redistribution of Source with Rights to Further Distribute Source. 44b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 45b4315fc7SSascha Wildner * Code or modification with rights to further distribute source must include 46b4315fc7SSascha Wildner * the above Copyright Notice, the above License, this list of Conditions, 47b4315fc7SSascha Wildner * and the following Disclaimer and Export Compliance provision. In addition, 48b4315fc7SSascha Wildner * Licensee must cause all Covered Code to which Licensee contributes to 49b4315fc7SSascha Wildner * contain a file documenting the changes Licensee made to create that Covered 50b4315fc7SSascha Wildner * Code and the date of any change. Licensee must include in that file the 51b4315fc7SSascha Wildner * documentation of any changes made by any predecessor Licensee. Licensee 52b4315fc7SSascha Wildner * must include a prominent statement that the modification is derived, 53b4315fc7SSascha Wildner * directly or indirectly, from Original Intel Code. 54b4315fc7SSascha Wildner * 55b4315fc7SSascha Wildner * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 56b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 57b4315fc7SSascha Wildner * Code or modification without rights to further distribute source must 58b4315fc7SSascha Wildner * include the following Disclaimer and Export Compliance provision in the 59b4315fc7SSascha Wildner * documentation and/or other materials provided with distribution. In 60b4315fc7SSascha Wildner * addition, Licensee may not authorize further sublicense of source of any 61b4315fc7SSascha Wildner * portion of the Covered Code, and must include terms to the effect that the 62b4315fc7SSascha Wildner * license from Licensee to its licensee is limited to the intellectual 63b4315fc7SSascha Wildner * property embodied in the software Licensee provides to its licensee, and 64b4315fc7SSascha Wildner * not to intellectual property embodied in modifications its licensee may 65b4315fc7SSascha Wildner * make. 66b4315fc7SSascha Wildner * 67b4315fc7SSascha Wildner * 3.3. Redistribution of Executable. Redistribution in executable form of any 68b4315fc7SSascha Wildner * substantial portion of the Covered Code or modification must reproduce the 69b4315fc7SSascha Wildner * above Copyright Notice, and the following Disclaimer and Export Compliance 70b4315fc7SSascha Wildner * provision in the documentation and/or other materials provided with the 71b4315fc7SSascha Wildner * distribution. 72b4315fc7SSascha Wildner * 73b4315fc7SSascha Wildner * 3.4. Intel retains all right, title, and interest in and to the Original 74b4315fc7SSascha Wildner * Intel Code. 75b4315fc7SSascha Wildner * 76b4315fc7SSascha Wildner * 3.5. Neither the name Intel nor any other trademark owned or controlled by 77b4315fc7SSascha Wildner * Intel shall be used in advertising or otherwise to promote the sale, use or 78b4315fc7SSascha Wildner * other dealings in products derived from or relating to the Covered Code 79b4315fc7SSascha Wildner * without prior written authorization from Intel. 80b4315fc7SSascha Wildner * 81b4315fc7SSascha Wildner * 4. Disclaimer and Export Compliance 82b4315fc7SSascha Wildner * 83b4315fc7SSascha Wildner * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 84b4315fc7SSascha Wildner * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 85b4315fc7SSascha Wildner * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 86b4315fc7SSascha Wildner * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 87b4315fc7SSascha Wildner * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 88b4315fc7SSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 89b4315fc7SSascha Wildner * PARTICULAR PURPOSE. 90b4315fc7SSascha Wildner * 91b4315fc7SSascha Wildner * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 92b4315fc7SSascha Wildner * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 93b4315fc7SSascha Wildner * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 94b4315fc7SSascha Wildner * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 95b4315fc7SSascha Wildner * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 96b4315fc7SSascha Wildner * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 97b4315fc7SSascha Wildner * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 98b4315fc7SSascha Wildner * LIMITED REMEDY. 99b4315fc7SSascha Wildner * 100b4315fc7SSascha Wildner * 4.3. Licensee shall not export, either directly or indirectly, any of this 101b4315fc7SSascha Wildner * software or system incorporating such software without first obtaining any 102b4315fc7SSascha Wildner * required license or other approval from the U. S. Department of Commerce or 103b4315fc7SSascha Wildner * any other agency or department of the United States Government. In the 104b4315fc7SSascha Wildner * event Licensee exports any such software from the United States or 105b4315fc7SSascha Wildner * re-exports any such software from a foreign destination, Licensee shall 106b4315fc7SSascha Wildner * ensure that the distribution and export/re-export of the software is in 107b4315fc7SSascha Wildner * compliance with all laws, regulations, orders, or other restrictions of the 108b4315fc7SSascha Wildner * U.S. Export Administration Regulations. Licensee agrees that neither it nor 109b4315fc7SSascha Wildner * any of its subsidiaries will export/re-export any technical data, process, 110b4315fc7SSascha Wildner * software, or service, directly or indirectly, to any country for which the 111b4315fc7SSascha Wildner * United States government or any agency thereof requires an export license, 112b4315fc7SSascha Wildner * other governmental approval, or letter of assurance, without first obtaining 113b4315fc7SSascha Wildner * such license, approval or letter. 114b4315fc7SSascha Wildner * 115b4315fc7SSascha Wildner ***************************************************************************** 116b4315fc7SSascha Wildner * 117b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 118b4315fc7SSascha Wildner * following license: 119b4315fc7SSascha Wildner * 1200d02842fSSascha Wildner * Redistribution and use in source and binary forms, with or without 1210d02842fSSascha Wildner * modification, are permitted provided that the following conditions 1220d02842fSSascha Wildner * are met: 1230d02842fSSascha Wildner * 1. Redistributions of source code must retain the above copyright 1240d02842fSSascha Wildner * notice, this list of conditions, and the following disclaimer, 1250d02842fSSascha Wildner * without modification. 1260d02842fSSascha Wildner * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1270d02842fSSascha Wildner * substantially similar to the "NO WARRANTY" disclaimer below 1280d02842fSSascha Wildner * ("Disclaimer") and any redistribution must be conditioned upon 1290d02842fSSascha Wildner * including a substantially similar Disclaimer requirement for further 1300d02842fSSascha Wildner * binary redistribution. 1310d02842fSSascha Wildner * 3. Neither the names of the above-listed copyright holders nor the names 1320d02842fSSascha Wildner * of any contributors may be used to endorse or promote products derived 1330d02842fSSascha Wildner * from this software without specific prior written permission. 1340d02842fSSascha Wildner * 135b4315fc7SSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 136b4315fc7SSascha Wildner * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 137b4315fc7SSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 138b4315fc7SSascha Wildner * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 139b4315fc7SSascha Wildner * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 140b4315fc7SSascha Wildner * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 141b4315fc7SSascha Wildner * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 142b4315fc7SSascha Wildner * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 143b4315fc7SSascha Wildner * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 144b4315fc7SSascha Wildner * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 145b4315fc7SSascha Wildner * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 146b4315fc7SSascha Wildner * 147b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 1480d02842fSSascha Wildner * GNU General Public License ("GPL") version 2 as published by the Free 1490d02842fSSascha Wildner * Software Foundation. 1500d02842fSSascha Wildner * 151b4315fc7SSascha Wildner *****************************************************************************/ 1520d02842fSSascha Wildner 1530d02842fSSascha Wildner #include "aslcompiler.h" 1540d02842fSSascha Wildner #include "aslcompiler.y.h" 155d638c6eeSSascha Wildner #include "acconvert.h" 1560d02842fSSascha Wildner 1570d02842fSSascha Wildner #include <stdlib.h> 1580d02842fSSascha Wildner #include <string.h> 1590d02842fSSascha Wildner 1600d02842fSSascha Wildner /* 1610d02842fSSascha Wildner * Generation: Use the following command line: 1620d02842fSSascha Wildner * 1630d02842fSSascha Wildner * flex.exe -PAslCompiler -i -o$(InputPath).c $(InputPath) 1640d02842fSSascha Wildner * 1650d02842fSSascha Wildner * -i: Scanner must be case-insensitive 1660d02842fSSascha Wildner */ 1670d02842fSSascha Wildner 1680d02842fSSascha Wildner #define _COMPONENT ACPI_COMPILER 1690d02842fSSascha Wildner ACPI_MODULE_NAME ("aslscanner") 1700d02842fSSascha Wildner 1710d02842fSSascha Wildner 1720d02842fSSascha Wildner /* Local prototypes */ 1730d02842fSSascha Wildner 1740d02842fSSascha Wildner static void 1750d02842fSSascha Wildner AslDoLineDirective (void); 1760d02842fSSascha Wildner 177d638c6eeSSascha Wildner static BOOLEAN 1780d02842fSSascha Wildner AslDoComment (void); 1790d02842fSSascha Wildner 180d638c6eeSSascha Wildner static BOOLEAN 1810d02842fSSascha Wildner AslDoCommentType2 (void); 1820d02842fSSascha Wildner 1830d02842fSSascha Wildner static char 1840d02842fSSascha Wildner AslDoStringLiteral (void); 1850d02842fSSascha Wildner 1860d02842fSSascha Wildner static void 1870d02842fSSascha Wildner count (int type); 1880d02842fSSascha Wildner 1890d02842fSSascha Wildner 1900d02842fSSascha Wildner /*! [Begin] no source code translation */ 1910d02842fSSascha Wildner 1920d02842fSSascha Wildner %} 1930d02842fSSascha Wildner /* Definitions */ 1940d02842fSSascha Wildner 1950d02842fSSascha Wildner LeadNameChar [A-Za-z_] 1960d02842fSSascha Wildner DigitChar [0-9] 19771c97a3cSSascha Wildner ErrorCode [(][ ]*[1-9][0-9][0-9][0-9][ ]*[)] 198cf6b3eb1SSascha Wildner OctalChar [0-7] 1990d02842fSSascha Wildner HexDigitChar [A-Fa-f0-9] 2000d02842fSSascha Wildner RootChar [\\] 2010d02842fSSascha Wildner Nothing [] 2020d02842fSSascha Wildner 2030d02842fSSascha Wildner NameChar [A-Za-z_0-9] 2040d02842fSSascha Wildner NameSeg1 {LeadNameChar}{NameChar} 2050d02842fSSascha Wildner NameSeg2 {LeadNameChar}{NameChar}{NameChar} 2060d02842fSSascha Wildner NameSeg3 {LeadNameChar}{NameChar}{NameChar}{NameChar} 2070d02842fSSascha Wildner NameSeg {LeadNameChar}|{NameSeg1}|{NameSeg2}|{NameSeg3} 2080d02842fSSascha Wildner 2090d02842fSSascha Wildner NameString {RootChar}|{RootChar}{NamePath}|[\^]+{NamePath}|{NonEmptyNamePath} 2100d02842fSSascha Wildner NamePath {NonEmptyNamePath}? 2110d02842fSSascha Wildner NonEmptyNamePath {NameSeg}{NamePathTail}* 2120d02842fSSascha Wildner NamePathTail [.]{NameSeg} 2130d02842fSSascha Wildner 2140d02842fSSascha Wildner %% 2150d02842fSSascha Wildner /* Rules */ 2160d02842fSSascha Wildner 2170d02842fSSascha Wildner [ ] { count (0); } 2180d02842fSSascha Wildner [\n] { count (0); } /* Handle files with both LF and CR/LF */ 2190d02842fSSascha Wildner [\r] { count (0); } /* termination on both Unix and Windows */ 2200d02842fSSascha Wildner [ \t] { count (0); } 2210d02842fSSascha Wildner 2220d02842fSSascha Wildner 223066b6da2SSascha Wildner "/*" { if (!AslDoComment ()) {yyterminate ();} } 224066b6da2SSascha Wildner "//" { if (!AslDoCommentType2 ()) {yyterminate ();} } 2250d02842fSSascha Wildner 22679eafdd7SSascha Wildner "\"" { if (AslDoStringLiteral ()) {return (PARSEOP_STRING_LITERAL);} 22779eafdd7SSascha Wildner else {yyterminate ();} } 2280d02842fSSascha Wildner ";" { count (0); return(';'); } 2290d02842fSSascha Wildner 2302e2672b8SSascha Wildner /* ASL Extension: Standard C operators */ 2310d02842fSSascha Wildner 2322e2672b8SSascha Wildner "~" { count (3); return (PARSEOP_EXP_NOT); } 2332e2672b8SSascha Wildner "!" { count (3); return (PARSEOP_EXP_LOGICAL_NOT); } 2342e2672b8SSascha Wildner "*" { count (3); return (PARSEOP_EXP_MULTIPLY); } 2352e2672b8SSascha Wildner "/" { count (3); return (PARSEOP_EXP_DIVIDE); } 2362e2672b8SSascha Wildner "%" { count (3); return (PARSEOP_EXP_MODULO); } 2372e2672b8SSascha Wildner "+" { count (3); return (PARSEOP_EXP_ADD); } 2382e2672b8SSascha Wildner "-" { count (3); return (PARSEOP_EXP_SUBTRACT); } 2392e2672b8SSascha Wildner ">>" { count (3); return (PARSEOP_EXP_SHIFT_RIGHT); } 2402e2672b8SSascha Wildner "<<" { count (3); return (PARSEOP_EXP_SHIFT_LEFT); } 2412e2672b8SSascha Wildner "<" { count (3); return (PARSEOP_EXP_LESS); } 2422e2672b8SSascha Wildner ">" { count (3); return (PARSEOP_EXP_GREATER); } 2432e2672b8SSascha Wildner "&" { count (3); return (PARSEOP_EXP_AND); } 2442e2672b8SSascha Wildner "<=" { count (3); return (PARSEOP_EXP_LESS_EQUAL); } 2452e2672b8SSascha Wildner ">=" { count (3); return (PARSEOP_EXP_GREATER_EQUAL); } 2462e2672b8SSascha Wildner "==" { count (3); return (PARSEOP_EXP_EQUAL); } 2472e2672b8SSascha Wildner "!=" { count (3); return (PARSEOP_EXP_NOT_EQUAL); } 2482e2672b8SSascha Wildner "|" { count (3); return (PARSEOP_EXP_OR); } 2492e2672b8SSascha Wildner "&&" { count (3); return (PARSEOP_EXP_LOGICAL_AND); } 2502e2672b8SSascha Wildner "||" { count (3); return (PARSEOP_EXP_LOGICAL_OR); } 2512e2672b8SSascha Wildner "++" { count (3); return (PARSEOP_EXP_INCREMENT); } 2522e2672b8SSascha Wildner "--" { count (3); return (PARSEOP_EXP_DECREMENT); } 2532e2672b8SSascha Wildner "^ " { count (3); return (PARSEOP_EXP_XOR); } 2542e2672b8SSascha Wildner 2552e2672b8SSascha Wildner /* ASL Extension: Standard C assignment operators */ 2562e2672b8SSascha Wildner 2572e2672b8SSascha Wildner "=" { count (3); return (PARSEOP_EXP_EQUALS); } 2582e2672b8SSascha Wildner "+=" { count (3); return (PARSEOP_EXP_ADD_EQ); } 2592e2672b8SSascha Wildner "-=" { count (3); return (PARSEOP_EXP_SUB_EQ); } 2602e2672b8SSascha Wildner "*=" { count (3); return (PARSEOP_EXP_MUL_EQ); } 2612e2672b8SSascha Wildner "/=" { count (3); return (PARSEOP_EXP_DIV_EQ); } 2622e2672b8SSascha Wildner "%=" { count (3); return (PARSEOP_EXP_MOD_EQ); } 2632e2672b8SSascha Wildner "<<=" { count (3); return (PARSEOP_EXP_SHL_EQ); } 2642e2672b8SSascha Wildner ">>=" { count (3); return (PARSEOP_EXP_SHR_EQ); } 2652e2672b8SSascha Wildner "&=" { count (3); return (PARSEOP_EXP_AND_EQ); } 2662e2672b8SSascha Wildner "^=" { count (3); return (PARSEOP_EXP_XOR_EQ); } 2672e2672b8SSascha Wildner "|=" { count (3); return (PARSEOP_EXP_OR_EQ); } 2682e2672b8SSascha Wildner 269c6400d37SSascha Wildner "[" { count (3); return (PARSEOP_EXP_INDEX_LEFT); } 270c6400d37SSascha Wildner "]" { count (0); return (PARSEOP_EXP_INDEX_RIGHT); } 271a96e04f2SSascha Wildner "(" { count (0); return (PARSEOP_OPEN_PAREN); } 272a96e04f2SSascha Wildner ")" { count (0); return (PARSEOP_CLOSE_PAREN); } 273a96e04f2SSascha Wildner 274a96e04f2SSascha Wildner "{" { count (0); return ('{'); } 275a96e04f2SSascha Wildner "}" { count (0); return ('}'); } 276a96e04f2SSascha Wildner "," { count (0); return (','); } 277c6400d37SSascha Wildner 2782e2672b8SSascha Wildner 2792e2672b8SSascha Wildner /* 2802e2672b8SSascha Wildner * Begin standard ASL grammar 2812e2672b8SSascha Wildner */ 282c5a52fd3SSascha Wildner [0-9][a-zA-Z0-9]* { count (1); AslCompilerlval.i = UtDoConstant ((char *) AslCompilertext); 283c5a52fd3SSascha Wildner return (PARSEOP_INTEGER); } 2840d02842fSSascha Wildner 2850d02842fSSascha Wildner "Include" { count (1); return (PARSEOP_INCLUDE); } 2860d02842fSSascha Wildner "External" { count (1); return (PARSEOP_EXTERNAL); } 2870d02842fSSascha Wildner 2880d02842fSSascha Wildner /* 2890d02842fSSascha Wildner * The #line directive is emitted by the preprocessor and handled 2900d02842fSSascha Wildner * here in the main iASL lexer - simply set the line number and 2910d02842fSSascha Wildner * optionally the current filename. 2920d02842fSSascha Wildner */ 2930d02842fSSascha Wildner "#line" { AslDoLineDirective ();} 2940d02842fSSascha Wildner 2950d02842fSSascha Wildner 2960d02842fSSascha Wildner /**************************************************************************** 2970d02842fSSascha Wildner * 2980d02842fSSascha Wildner * Main ASL operators 2990d02842fSSascha Wildner * 3000d02842fSSascha Wildner ****************************************************************************/ 3010d02842fSSascha Wildner 3020d02842fSSascha Wildner "AccessAs" { count (1); return (PARSEOP_ACCESSAS); } 3030d02842fSSascha Wildner "Acquire" { count (3); return (PARSEOP_ACQUIRE); } 3040d02842fSSascha Wildner "Add" { count (3); return (PARSEOP_ADD); } 3050d02842fSSascha Wildner "Alias" { count (2); return (PARSEOP_ALIAS); } 3060d02842fSSascha Wildner "And" { count (3); return (PARSEOP_AND); } 3070d02842fSSascha Wildner "BankField" { count (2); return (PARSEOP_BANKFIELD); } 3080d02842fSSascha Wildner "Break" { count (3); return (PARSEOP_BREAK); } 3090d02842fSSascha Wildner "BreakPoint" { count (3); return (PARSEOP_BREAKPOINT); } 3100d02842fSSascha Wildner "Buffer" { count (1); return (PARSEOP_BUFFER); } 3110d02842fSSascha Wildner "Case" { count (3); return (PARSEOP_CASE); } 3120d02842fSSascha Wildner "Concatenate" { count (3); return (PARSEOP_CONCATENATE); } 3130d02842fSSascha Wildner "ConcatenateResTemplate" { count (3); return (PARSEOP_CONCATENATERESTEMPLATE); } 3140d02842fSSascha Wildner "CondRefOf" { count (3); return (PARSEOP_CONDREFOF); } 3150d02842fSSascha Wildner "Connection" { count (2); return (PARSEOP_CONNECTION); } 3160d02842fSSascha Wildner "Continue" { count (3); return (PARSEOP_CONTINUE); } 3170d02842fSSascha Wildner "CopyObject" { count (3); return (PARSEOP_COPYOBJECT); } 3180d02842fSSascha Wildner "CreateBitField" { count (2); return (PARSEOP_CREATEBITFIELD); } 3190d02842fSSascha Wildner "CreateByteField" { count (2); return (PARSEOP_CREATEBYTEFIELD); } 3200d02842fSSascha Wildner "CreateDWordField" { count (2); return (PARSEOP_CREATEDWORDFIELD); } 3210d02842fSSascha Wildner "CreateField" { count (2); return (PARSEOP_CREATEFIELD); } 3220d02842fSSascha Wildner "CreateQWordField" { count (2); return (PARSEOP_CREATEQWORDFIELD); } 3230d02842fSSascha Wildner "CreateWordField" { count (2); return (PARSEOP_CREATEWORDFIELD); } 3240d02842fSSascha Wildner "DataTableRegion" { count (2); return (PARSEOP_DATATABLEREGION); } 3250d02842fSSascha Wildner "Debug" { count (1); return (PARSEOP_DEBUG); } 3260d02842fSSascha Wildner "Decrement" { count (3); return (PARSEOP_DECREMENT); } 3270d02842fSSascha Wildner "Default" { count (3); return (PARSEOP_DEFAULT); } 328820c5b08SSascha Wildner "DefinitionBlock" { count (1); return (PARSEOP_DEFINITION_BLOCK); } 3290d02842fSSascha Wildner "DeRefOf" { count (3); return (PARSEOP_DEREFOF); } 3300d02842fSSascha Wildner "Device" { count (2); return (PARSEOP_DEVICE); } 3310d02842fSSascha Wildner "Divide" { count (3); return (PARSEOP_DIVIDE); } 3320d02842fSSascha Wildner "Eisaid" { count (1); return (PARSEOP_EISAID); } 3330d02842fSSascha Wildner "Else" { count (3); return (PARSEOP_ELSE); } 3340d02842fSSascha Wildner "ElseIf" { count (3); return (PARSEOP_ELSEIF); } 3350d02842fSSascha Wildner "Event" { count (2); return (PARSEOP_EVENT); } 3360d02842fSSascha Wildner "Fatal" { count (3); return (PARSEOP_FATAL); } 3370d02842fSSascha Wildner "Field" { count (2); return (PARSEOP_FIELD); } 3380d02842fSSascha Wildner "FindSetLeftBit" { count (3); return (PARSEOP_FINDSETLEFTBIT); } 3390d02842fSSascha Wildner "FindSetRightBit" { count (3); return (PARSEOP_FINDSETRIGHTBIT); } 3400d02842fSSascha Wildner "FromBcd" { count (3); return (PARSEOP_FROMBCD); } 3410d02842fSSascha Wildner "Function" { count (2); return (PARSEOP_FUNCTION); } 3420d02842fSSascha Wildner "If" { count (3); return (PARSEOP_IF); } 3430d02842fSSascha Wildner "Increment" { count (3); return (PARSEOP_INCREMENT); } 3440d02842fSSascha Wildner "Index" { count (3); return (PARSEOP_INDEX); } 3450d02842fSSascha Wildner "IndexField" { count (2); return (PARSEOP_INDEXFIELD); } 3460d02842fSSascha Wildner "LAnd" { count (3); return (PARSEOP_LAND); } 3470d02842fSSascha Wildner "LEqual" { count (3); return (PARSEOP_LEQUAL); } 3480d02842fSSascha Wildner "LGreater" { count (3); return (PARSEOP_LGREATER); } 3490d02842fSSascha Wildner "LGreaterEqual" { count (3); return (PARSEOP_LGREATEREQUAL); } 3500d02842fSSascha Wildner "LLess" { count (3); return (PARSEOP_LLESS); } 3510d02842fSSascha Wildner "LLessEqual" { count (3); return (PARSEOP_LLESSEQUAL); } 3520d02842fSSascha Wildner "LNot" { count (3); return (PARSEOP_LNOT); } 3530d02842fSSascha Wildner "LNotEqual" { count (3); return (PARSEOP_LNOTEQUAL); } 3540d02842fSSascha Wildner "Load" { count (3); return (PARSEOP_LOAD); } 3550d02842fSSascha Wildner "LoadTable" { count (3); return (PARSEOP_LOADTABLE); } 3560d02842fSSascha Wildner "LOr" { count (3); return (PARSEOP_LOR); } 3570d02842fSSascha Wildner "Match" { count (3); return (PARSEOP_MATCH); } 3580d02842fSSascha Wildner "Method" { count (2); return (PARSEOP_METHOD); } 3590d02842fSSascha Wildner "Mid" { count (3); return (PARSEOP_MID); } 3600d02842fSSascha Wildner "Mod" { count (3); return (PARSEOP_MOD); } 3610d02842fSSascha Wildner "Multiply" { count (3); return (PARSEOP_MULTIPLY); } 3620d02842fSSascha Wildner "Mutex" { count (2); return (PARSEOP_MUTEX); } 3630d02842fSSascha Wildner "Name" { count (2); return (PARSEOP_NAME); } 3640d02842fSSascha Wildner "NAnd" { count (3); return (PARSEOP_NAND); } 3650d02842fSSascha Wildner "Noop" { if (!AcpiGbl_IgnoreNoopOperator) {count (3); return (PARSEOP_NOOP);} } 3660d02842fSSascha Wildner "NOr" { count (3); return (PARSEOP_NOR); } 3670d02842fSSascha Wildner "Not" { count (3); return (PARSEOP_NOT); } 3680d02842fSSascha Wildner "Notify" { count (3); return (PARSEOP_NOTIFY); } 3690d02842fSSascha Wildner "ObjectType" { count (3); return (PARSEOP_OBJECTTYPE); } 3700d02842fSSascha Wildner "Offset" { count (1); return (PARSEOP_OFFSET); } 3710d02842fSSascha Wildner "One" { count (1); return (PARSEOP_ONE); } 3720d02842fSSascha Wildner "Ones" { count (1); return (PARSEOP_ONES); } 3730d02842fSSascha Wildner "OperationRegion" { count (2); return (PARSEOP_OPERATIONREGION); } 3740d02842fSSascha Wildner "Or" { count (3); return (PARSEOP_OR); } 3750d02842fSSascha Wildner "Package" { count (1); return (PARSEOP_PACKAGE); } 3760d02842fSSascha Wildner "PowerResource" { count (2); return (PARSEOP_POWERRESOURCE); } 3770d02842fSSascha Wildner "Processor" { count (2); return (PARSEOP_PROCESSOR); } 3780d02842fSSascha Wildner "RefOf" { count (3); return (PARSEOP_REFOF); } 3790d02842fSSascha Wildner "Release" { count (3); return (PARSEOP_RELEASE); } 3800d02842fSSascha Wildner "Reset" { count (3); return (PARSEOP_RESET); } 3810d02842fSSascha Wildner "Return" { count (3); return (PARSEOP_RETURN); } 3820d02842fSSascha Wildner "Revision" { count (1); return (PARSEOP_REVISION); } 3830d02842fSSascha Wildner "Scope" { count (2); return (PARSEOP_SCOPE); } 3840d02842fSSascha Wildner "ShiftLeft" { count (3); return (PARSEOP_SHIFTLEFT); } 3850d02842fSSascha Wildner "ShiftRight" { count (3); return (PARSEOP_SHIFTRIGHT); } 3860d02842fSSascha Wildner "Signal" { count (3); return (PARSEOP_SIGNAL); } 3870d02842fSSascha Wildner "SizeOf" { count (3); return (PARSEOP_SIZEOF); } 3880d02842fSSascha Wildner "Sleep" { count (3); return (PARSEOP_SLEEP); } 3890d02842fSSascha Wildner "Stall" { count (3); return (PARSEOP_STALL); } 3900d02842fSSascha Wildner "Store" { count (3); return (PARSEOP_STORE); } 3910d02842fSSascha Wildner "Subtract" { count (3); return (PARSEOP_SUBTRACT); } 3920d02842fSSascha Wildner "Switch" { count (3); return (PARSEOP_SWITCH); } 3930d02842fSSascha Wildner "ThermalZone" { count (2); return (PARSEOP_THERMALZONE); } 3940d02842fSSascha Wildner "Timer" { count (3); return (PARSEOP_TIMER); } 3950d02842fSSascha Wildner "ToBcd" { count (3); return (PARSEOP_TOBCD); } 3960d02842fSSascha Wildner "ToBuffer" { count (3); return (PARSEOP_TOBUFFER); } 3970d02842fSSascha Wildner "ToDecimalString" { count (3); return (PARSEOP_TODECIMALSTRING); } 3980d02842fSSascha Wildner "ToHexString" { count (3); return (PARSEOP_TOHEXSTRING); } 3990d02842fSSascha Wildner "ToInteger" { count (3); return (PARSEOP_TOINTEGER); } 4000d02842fSSascha Wildner "ToString" { count (3); return (PARSEOP_TOSTRING); } 4010d02842fSSascha Wildner "ToUuid" { count (1); return (PARSEOP_TOUUID); } 4020d02842fSSascha Wildner "Unicode" { count (1); return (PARSEOP_UNICODE); } 4030d02842fSSascha Wildner "Unload" { count (3); return (PARSEOP_UNLOAD); } 4040d02842fSSascha Wildner "Wait" { count (3); return (PARSEOP_WAIT); } 4050d02842fSSascha Wildner "While" { count (3); return (PARSEOP_WHILE); } 4060d02842fSSascha Wildner "XOr" { count (3); return (PARSEOP_XOR); } 4070d02842fSSascha Wildner "Zero" { count (1); return (PARSEOP_ZERO); } 4080d02842fSSascha Wildner 4090d02842fSSascha Wildner /* Control method arguments and locals */ 4100d02842fSSascha Wildner 4110d02842fSSascha Wildner "Arg0" { count (1); return (PARSEOP_ARG0); } 4120d02842fSSascha Wildner "Arg1" { count (1); return (PARSEOP_ARG1); } 4130d02842fSSascha Wildner "Arg2" { count (1); return (PARSEOP_ARG2); } 4140d02842fSSascha Wildner "Arg3" { count (1); return (PARSEOP_ARG3); } 4150d02842fSSascha Wildner "Arg4" { count (1); return (PARSEOP_ARG4); } 4160d02842fSSascha Wildner "Arg5" { count (1); return (PARSEOP_ARG5); } 4170d02842fSSascha Wildner "Arg6" { count (1); return (PARSEOP_ARG6); } 4180d02842fSSascha Wildner "Local0" { count (1); return (PARSEOP_LOCAL0); } 4190d02842fSSascha Wildner "Local1" { count (1); return (PARSEOP_LOCAL1); } 4200d02842fSSascha Wildner "Local2" { count (1); return (PARSEOP_LOCAL2); } 4210d02842fSSascha Wildner "Local3" { count (1); return (PARSEOP_LOCAL3); } 4220d02842fSSascha Wildner "Local4" { count (1); return (PARSEOP_LOCAL4); } 4230d02842fSSascha Wildner "Local5" { count (1); return (PARSEOP_LOCAL5); } 4240d02842fSSascha Wildner "Local6" { count (1); return (PARSEOP_LOCAL6); } 4250d02842fSSascha Wildner "Local7" { count (1); return (PARSEOP_LOCAL7); } 4260d02842fSSascha Wildner 4270d02842fSSascha Wildner 4280d02842fSSascha Wildner /**************************************************************************** 4290d02842fSSascha Wildner * 4300d02842fSSascha Wildner * Resource Descriptor macros 4310d02842fSSascha Wildner * 4320d02842fSSascha Wildner ****************************************************************************/ 4330d02842fSSascha Wildner 4340d02842fSSascha Wildner "ResourceTemplate" { count (1); return (PARSEOP_RESOURCETEMPLATE); } 4350d02842fSSascha Wildner "RawDataBuffer" { count (1); return (PARSEOP_DATABUFFER); } 4360d02842fSSascha Wildner 437*01d5d5dfSSascha Wildner "Csi2Bus" { count (1); return (PARSEOP_CSI2_SERIALBUS); } 4380d02842fSSascha Wildner "DMA" { count (1); return (PARSEOP_DMA); } 4390d02842fSSascha Wildner "DWordIO" { count (1); return (PARSEOP_DWORDIO); } 4400d02842fSSascha Wildner "DWordMemory" { count (1); return (PARSEOP_DWORDMEMORY); } 4410d02842fSSascha Wildner "DWordSpace" { count (1); return (PARSEOP_DWORDSPACE); } 4420d02842fSSascha Wildner "EndDependentFn" { count (1); return (PARSEOP_ENDDEPENDENTFN); } 4430d02842fSSascha Wildner "ExtendedIO" { count (1); return (PARSEOP_EXTENDEDIO); } 4440d02842fSSascha Wildner "ExtendedMemory" { count (1); return (PARSEOP_EXTENDEDMEMORY); } 4450d02842fSSascha Wildner "ExtendedSpace" { count (1); return (PARSEOP_EXTENDEDSPACE); } 4460d02842fSSascha Wildner "FixedDma" { count (1); return (PARSEOP_FIXEDDMA); } 4470d02842fSSascha Wildner "FixedIO" { count (1); return (PARSEOP_FIXEDIO); } 4480d02842fSSascha Wildner "GpioInt" { count (1); return (PARSEOP_GPIO_INT); } 4490d02842fSSascha Wildner "GpioIo" { count (1); return (PARSEOP_GPIO_IO); } 4500d02842fSSascha Wildner "I2cSerialBus" { count (1); return (PARSEOP_I2C_SERIALBUS); } 4510d27ae55SSascha Wildner "I2cSerialBusV2" { count (1); return (PARSEOP_I2C_SERIALBUS_V2); } 4520d02842fSSascha Wildner "Interrupt" { count (1); return (PARSEOP_INTERRUPT); } 4530d02842fSSascha Wildner "IO" { count (1); return (PARSEOP_IO); } 4540d02842fSSascha Wildner "IRQ" { count (1); return (PARSEOP_IRQ); } 4550d02842fSSascha Wildner "IRQNoFlags" { count (1); return (PARSEOP_IRQNOFLAGS); } 4560d02842fSSascha Wildner "Memory24" { count (1); return (PARSEOP_MEMORY24); } 4570d02842fSSascha Wildner "Memory32" { count (1); return (PARSEOP_MEMORY32); } 4580d02842fSSascha Wildner "Memory32Fixed" { count (1); return (PARSEOP_MEMORY32FIXED); } 4591093ca81SSascha Wildner "PinConfig" { count (1); return (PARSEOP_PINCONFIG); } 4601093ca81SSascha Wildner "PinFunction" { count (1); return (PARSEOP_PINFUNCTION); } 4611093ca81SSascha Wildner "PinGroup" { count (1); return (PARSEOP_PINGROUP); } 4621093ca81SSascha Wildner "PinGroupConfig" { count (1); return (PARSEOP_PINGROUPCONFIG); } 4631093ca81SSascha Wildner "PinGroupFunction" { count (1); return (PARSEOP_PINGROUPFUNCTION); } 4640d02842fSSascha Wildner "QWordIO" { count (1); return (PARSEOP_QWORDIO); } 4650d02842fSSascha Wildner "QWordMemory" { count (1); return (PARSEOP_QWORDMEMORY); } 4660d02842fSSascha Wildner "QWordSpace" { count (1); return (PARSEOP_QWORDSPACE); } 4670d02842fSSascha Wildner "Register" { count (1); return (PARSEOP_REGISTER); } 4680d02842fSSascha Wildner "SpiSerialBus" { count (1); return (PARSEOP_SPI_SERIALBUS); } 4690d27ae55SSascha Wildner "SpiSerialBusV2" { count (1); return (PARSEOP_SPI_SERIALBUS_V2); } 4700d02842fSSascha Wildner "StartDependentFn" { count (1); return (PARSEOP_STARTDEPENDENTFN); } 4710d02842fSSascha Wildner "StartDependentFnNoPri" { count (1); return (PARSEOP_STARTDEPENDENTFN_NOPRI); } 4720d02842fSSascha Wildner "UartSerialBus" { count (1); return (PARSEOP_UART_SERIALBUS); } 4730d27ae55SSascha Wildner "UartSerialBusV2" { count (1); return (PARSEOP_UART_SERIALBUS_V2); } 4740d02842fSSascha Wildner "VendorLong" { count (1); return (PARSEOP_VENDORLONG); } 4750d02842fSSascha Wildner "VendorShort" { count (1); return (PARSEOP_VENDORSHORT); } 4760d02842fSSascha Wildner "WordBusNumber" { count (1); return (PARSEOP_WORDBUSNUMBER); } 4770d02842fSSascha Wildner "WordIO" { count (1); return (PARSEOP_WORDIO); } 4780d02842fSSascha Wildner "WordSpace" { count (1); return (PARSEOP_WORDSPACE); } 4790d02842fSSascha Wildner 4800d02842fSSascha Wildner 4810d02842fSSascha Wildner /**************************************************************************** 4820d02842fSSascha Wildner * 4830d02842fSSascha Wildner * Keywords used as arguments to ASL operators and macros 4840d02842fSSascha Wildner * 4850d02842fSSascha Wildner ****************************************************************************/ 4860d02842fSSascha Wildner 4870d02842fSSascha Wildner /* AccessAttribKeyword: Serial Bus Attributes (ACPI 5.0) */ 4880d02842fSSascha Wildner 4890d02842fSSascha Wildner "AttribQuick" { count (0); return (PARSEOP_ACCESSATTRIB_QUICK); } 4900d02842fSSascha Wildner "AttribSendReceive" { count (0); return (PARSEOP_ACCESSATTRIB_SND_RCV); } 4910d02842fSSascha Wildner "AttribByte" { count (0); return (PARSEOP_ACCESSATTRIB_BYTE); } 4920d02842fSSascha Wildner "AttribWord" { count (0); return (PARSEOP_ACCESSATTRIB_WORD); } 4930d02842fSSascha Wildner "AttribBlock" { count (0); return (PARSEOP_ACCESSATTRIB_BLOCK); } 4940d02842fSSascha Wildner "AttribProcessCall" { count (0); return (PARSEOP_ACCESSATTRIB_WORD_CALL); } 4950d02842fSSascha Wildner "AttribBlockProcessCall" { count (0); return (PARSEOP_ACCESSATTRIB_BLOCK_CALL); } 4960d02842fSSascha Wildner 4970d02842fSSascha Wildner /* AccessAttribKeyword: Legacy synonyms for above (pre-ACPI 5.0) */ 4980d02842fSSascha Wildner 4990d02842fSSascha Wildner "SMBQuick" { count (0); return (PARSEOP_ACCESSATTRIB_QUICK); } 5000d02842fSSascha Wildner "SMBSendReceive" { count (0); return (PARSEOP_ACCESSATTRIB_SND_RCV); } 5010d02842fSSascha Wildner "SMBByte" { count (0); return (PARSEOP_ACCESSATTRIB_BYTE); } 5020d02842fSSascha Wildner "SMBWord" { count (0); return (PARSEOP_ACCESSATTRIB_WORD); } 5030d02842fSSascha Wildner "SMBBlock" { count (0); return (PARSEOP_ACCESSATTRIB_BLOCK); } 5040d02842fSSascha Wildner "SMBProcessCall" { count (0); return (PARSEOP_ACCESSATTRIB_WORD_CALL); } 5050d02842fSSascha Wildner "SMBBlockProcessCall" { count (0); return (PARSEOP_ACCESSATTRIB_BLOCK_CALL); } 5060d02842fSSascha Wildner 5070d02842fSSascha Wildner /* AccessTypeKeyword: Field Access Types */ 5080d02842fSSascha Wildner 5090d02842fSSascha Wildner "AnyAcc" { count (0); return (PARSEOP_ACCESSTYPE_ANY); } 5100d02842fSSascha Wildner "ByteAcc" { count (0); return (PARSEOP_ACCESSTYPE_BYTE); } 5110d02842fSSascha Wildner "WordAcc" { count (0); return (PARSEOP_ACCESSTYPE_WORD); } 5120d02842fSSascha Wildner "DWordAcc" { count (0); return (PARSEOP_ACCESSTYPE_DWORD); } 5130d02842fSSascha Wildner "QWordAcc" { count (0); return (PARSEOP_ACCESSTYPE_QWORD); } 5140d02842fSSascha Wildner "BufferAcc" { count (0); return (PARSEOP_ACCESSTYPE_BUF); } 5150d02842fSSascha Wildner 5160d02842fSSascha Wildner /* AddressingModeKeyword: Mode - Resource Descriptors (ACPI 5.0) */ 5170d02842fSSascha Wildner 5180d02842fSSascha Wildner "AddressingMode7Bit" { count (0); return (PARSEOP_ADDRESSINGMODE_7BIT); } 5190d02842fSSascha Wildner "AddressingMode10Bit" { count (0); return (PARSEOP_ADDRESSINGMODE_10BIT); } 5200d02842fSSascha Wildner 5210d02842fSSascha Wildner /* AddressKeyword: ACPI memory range types */ 5220d02842fSSascha Wildner 5230d02842fSSascha Wildner "AddressRangeMemory" { count (0); return (PARSEOP_ADDRESSTYPE_MEMORY); } 5240d02842fSSascha Wildner "AddressRangeReserved" { count (0); return (PARSEOP_ADDRESSTYPE_RESERVED); } 5250d02842fSSascha Wildner "AddressRangeNVS" { count (0); return (PARSEOP_ADDRESSTYPE_NVS); } 5260d02842fSSascha Wildner "AddressRangeACPI" { count (0); return (PARSEOP_ADDRESSTYPE_ACPI); } 5270d02842fSSascha Wildner 5280d02842fSSascha Wildner /* BusMasterKeyword: DMA Bus Mastering */ 5290d02842fSSascha Wildner 5300d02842fSSascha Wildner "BusMaster" { count (0); return (PARSEOP_BUSMASTERTYPE_MASTER); } 5310d02842fSSascha Wildner "NotBusMaster" { count (0); return (PARSEOP_BUSMASTERTYPE_NOTMASTER); } 5320d02842fSSascha Wildner 5330d02842fSSascha Wildner /* ByteLengthKeyword: Bits per Byte - Resource Descriptors (ACPI 5.0) */ 5340d02842fSSascha Wildner 5350d02842fSSascha Wildner "DataBitsFive" { count (0); return (PARSEOP_BITSPERBYTE_FIVE); } 5360d02842fSSascha Wildner "DataBitsSix" { count (0); return (PARSEOP_BITSPERBYTE_SIX); } 5370d02842fSSascha Wildner "DataBitsSeven" { count (0); return (PARSEOP_BITSPERBYTE_SEVEN); } 5380d02842fSSascha Wildner "DataBitsEight" { count (0); return (PARSEOP_BITSPERBYTE_EIGHT); } 5390d02842fSSascha Wildner "DataBitsNine" { count (0); return (PARSEOP_BITSPERBYTE_NINE); } 5400d02842fSSascha Wildner 5410d02842fSSascha Wildner /* ClockPhaseKeyword: Resource Descriptors (ACPI 5.0) */ 5420d02842fSSascha Wildner 5430d02842fSSascha Wildner "ClockPhaseFirst" { count (0); return (PARSEOP_CLOCKPHASE_FIRST); } 5440d02842fSSascha Wildner "ClockPhaseSecond" { count (0); return (PARSEOP_CLOCKPHASE_SECOND); } 5450d02842fSSascha Wildner 5460d02842fSSascha Wildner /* ClockPolarityKeyword: Resource Descriptors (ACPI 5.0) */ 5470d02842fSSascha Wildner 5480d02842fSSascha Wildner "ClockPolarityLow" { count (0); return (PARSEOP_CLOCKPOLARITY_LOW); } 5490d02842fSSascha Wildner "ClockPolarityHigh" { count (0); return (PARSEOP_CLOCKPOLARITY_HIGH); } 5500d02842fSSascha Wildner 5510d02842fSSascha Wildner /* DecodeKeyword: Type of Memory Decoding - Resource Descriptors */ 5520d02842fSSascha Wildner 5530d02842fSSascha Wildner "PosDecode" { count (0); return (PARSEOP_DECODETYPE_POS); } 5540d02842fSSascha Wildner "SubDecode" { count (0); return (PARSEOP_DECODETYPE_SUB); } 5550d02842fSSascha Wildner 5560d02842fSSascha Wildner /* DmaTypeKeyword: DMA Types - DMA Resource Descriptor */ 5570d02842fSSascha Wildner 5580d02842fSSascha Wildner "Compatibility" { count (0); return (PARSEOP_DMATYPE_COMPATIBILITY); } 5590d02842fSSascha Wildner "TypeA" { count (0); return (PARSEOP_DMATYPE_A); } 5600d02842fSSascha Wildner "TypeB" { count (0); return (PARSEOP_DMATYPE_B); } 5610d02842fSSascha Wildner "TypeF" { count (0); return (PARSEOP_DMATYPE_F); } 5620d02842fSSascha Wildner 5630d02842fSSascha Wildner /* EndianKeyword: Endian type - Resource Descriptor (ACPI 5.0) */ 5640d02842fSSascha Wildner 5650d02842fSSascha Wildner "LittleEndian" { count (0); return (PARSEOP_ENDIAN_LITTLE); } 5660d02842fSSascha Wildner "BigEndian" { count (0); return (PARSEOP_ENDIAN_BIG); } 5670d02842fSSascha Wildner 5680d02842fSSascha Wildner /* ExtendedAttribKeyword: Bus attributes, AccessAs operator (ACPI 5.0) */ 5690d02842fSSascha Wildner 570806343b9SSascha Wildner "AttribBytes" { count (0); return (PARSEOP_ACCESSATTRIB_BYTES); } 5710d02842fSSascha Wildner "AttribRawBytes" { count (0); return (PARSEOP_ACCESSATTRIB_RAW_BYTES); } 5720d02842fSSascha Wildner "AttribRawProcessBytes" { count (0); return (PARSEOP_ACCESSATTRIB_RAW_PROCESS); } 5730d02842fSSascha Wildner 5740d02842fSSascha Wildner /* FlowControlKeyword: Resource Descriptors (ACPI 5.0) */ 5750d02842fSSascha Wildner 5760d02842fSSascha Wildner "FlowControlHardware" { count (0); return (PARSEOP_FLOWCONTROL_HW); } 5770d02842fSSascha Wildner "FlowControlNone" { count (0); return (PARSEOP_FLOWCONTROL_NONE); } 5780d02842fSSascha Wildner "FlowControlXon" { count (0); return (PARSEOP_FLOWCONTROL_SW); } 5790d02842fSSascha Wildner 5800d02842fSSascha Wildner /* InterruptLevelKeyword: Interrupt Active Types */ 5810d02842fSSascha Wildner 5820d02842fSSascha Wildner "ActiveBoth" { count (0); return (PARSEOP_INTLEVEL_ACTIVEBOTH); } 5830d02842fSSascha Wildner "ActiveHigh" { count (0); return (PARSEOP_INTLEVEL_ACTIVEHIGH); } 5840d02842fSSascha Wildner "ActiveLow" { count (0); return (PARSEOP_INTLEVEL_ACTIVELOW); } 5850d02842fSSascha Wildner 5860d02842fSSascha Wildner /* InterruptTypeKeyword: Interrupt Types */ 5870d02842fSSascha Wildner 5880d02842fSSascha Wildner "Edge" { count (0); return (PARSEOP_INTTYPE_EDGE); } 5890d02842fSSascha Wildner "Level" { count (0); return (PARSEOP_INTTYPE_LEVEL); } 5900d02842fSSascha Wildner 5910d02842fSSascha Wildner /* IoDecodeKeyword: Type of Memory Decoding - Resource Descriptors */ 5920d02842fSSascha Wildner 5930d02842fSSascha Wildner "Decode10" { count (0); return (PARSEOP_IODECODETYPE_10); } 5940d02842fSSascha Wildner "Decode16" { count (0); return (PARSEOP_IODECODETYPE_16); } 5950d02842fSSascha Wildner 5960d02842fSSascha Wildner /* IoRestrictionKeyword: I/O Restriction - GPIO Resource Descriptors (ACPI 5.0) */ 5970d02842fSSascha Wildner 5980d02842fSSascha Wildner "IoRestrictionNone" { count (0); return (PARSEOP_IORESTRICT_NONE); } 5990d02842fSSascha Wildner "IoRestrictionInputOnly" { count (0); return (PARSEOP_IORESTRICT_IN); } 6000d02842fSSascha Wildner "IoRestrictionOutputOnly" { count (0); return (PARSEOP_IORESTRICT_OUT); } 6010d02842fSSascha Wildner "IoRestrictionNoneAndPreserve" { count (0); return (PARSEOP_IORESTRICT_PRESERVE); } 6020d02842fSSascha Wildner 6030d02842fSSascha Wildner /* LockRuleKeyword: Global Lock use for Field Operator */ 6040d02842fSSascha Wildner 6050d02842fSSascha Wildner "Lock" { count (0); return (PARSEOP_LOCKRULE_LOCK); } 6060d02842fSSascha Wildner "NoLock" { count (0); return (PARSEOP_LOCKRULE_NOLOCK); } 6070d02842fSSascha Wildner 6080d02842fSSascha Wildner /* MatchOpKeyword: Types for Match Operator */ 6090d02842fSSascha Wildner 6100d02842fSSascha Wildner "MTR" { count (0); return (PARSEOP_MATCHTYPE_MTR); } 6110d02842fSSascha Wildner "MEQ" { count (0); return (PARSEOP_MATCHTYPE_MEQ); } 6120d02842fSSascha Wildner "MLE" { count (0); return (PARSEOP_MATCHTYPE_MLE); } 6130d02842fSSascha Wildner "MLT" { count (0); return (PARSEOP_MATCHTYPE_MLT); } 6140d02842fSSascha Wildner "MGE" { count (0); return (PARSEOP_MATCHTYPE_MGE); } 6150d02842fSSascha Wildner "MGT" { count (0); return (PARSEOP_MATCHTYPE_MGT); } 6160d02842fSSascha Wildner 6170d02842fSSascha Wildner /* MaxKeyword: Max Range Type - Resource Descriptors */ 6180d02842fSSascha Wildner 6190d02842fSSascha Wildner "MaxFixed" { count (0); return (PARSEOP_MAXTYPE_FIXED); } 6200d02842fSSascha Wildner "MaxNotFixed" { count (0); return (PARSEOP_MAXTYPE_NOTFIXED); } 6210d02842fSSascha Wildner 6220d02842fSSascha Wildner /* MemTypeKeyword: Memory Types - Resource Descriptors */ 6230d02842fSSascha Wildner 6240d02842fSSascha Wildner "Cacheable" { count (0); return (PARSEOP_MEMTYPE_CACHEABLE); } 6250d02842fSSascha Wildner "WriteCombining" { count (0); return (PARSEOP_MEMTYPE_WRITECOMBINING); } 6260d02842fSSascha Wildner "Prefetchable" { count (0); return (PARSEOP_MEMTYPE_PREFETCHABLE); } 6270d02842fSSascha Wildner "NonCacheable" { count (0); return (PARSEOP_MEMTYPE_NONCACHEABLE); } 6280d02842fSSascha Wildner 6290d02842fSSascha Wildner /* MinKeyword: Min Range Type - Resource Descriptors */ 6300d02842fSSascha Wildner 6310d02842fSSascha Wildner "MinFixed" { count (0); return (PARSEOP_MINTYPE_FIXED); } 6320d02842fSSascha Wildner "MinNotFixed" { count (0); return (PARSEOP_MINTYPE_NOTFIXED); } 6330d02842fSSascha Wildner 6340d02842fSSascha Wildner /* ObjectTypeKeyword: ACPI Object Types */ 6350d02842fSSascha Wildner 6360d02842fSSascha Wildner "UnknownObj" { count (0); return (PARSEOP_OBJECTTYPE_UNK); } 6370d02842fSSascha Wildner "IntObj" { count (0); return (PARSEOP_OBJECTTYPE_INT); } 6380d02842fSSascha Wildner "StrObj" { count (0); return (PARSEOP_OBJECTTYPE_STR); } 6390d02842fSSascha Wildner "BuffObj" { count (0); return (PARSEOP_OBJECTTYPE_BUF); } 6400d02842fSSascha Wildner "PkgObj" { count (0); return (PARSEOP_OBJECTTYPE_PKG); } 6410d02842fSSascha Wildner "FieldUnitObj" { count (0); return (PARSEOP_OBJECTTYPE_FLD); } 6420d02842fSSascha Wildner "DeviceObj" { count (0); return (PARSEOP_OBJECTTYPE_DEV); } 6430d02842fSSascha Wildner "EventObj" { count (0); return (PARSEOP_OBJECTTYPE_EVT); } 6440d02842fSSascha Wildner "MethodObj" { count (0); return (PARSEOP_OBJECTTYPE_MTH); } 6450d02842fSSascha Wildner "MutexObj" { count (0); return (PARSEOP_OBJECTTYPE_MTX); } 6460d02842fSSascha Wildner "OpRegionObj" { count (0); return (PARSEOP_OBJECTTYPE_OPR); } 6470d02842fSSascha Wildner "PowerResObj" { count (0); return (PARSEOP_OBJECTTYPE_POW); } 6480d02842fSSascha Wildner "ProcessorObj" { count (0); return (PARSEOP_OBJECTTYPE_PRO); } 6490d02842fSSascha Wildner "ThermalZoneObj" { count (0); return (PARSEOP_OBJECTTYPE_THZ); } 6500d02842fSSascha Wildner "BuffFieldObj" { count (0); return (PARSEOP_OBJECTTYPE_BFF); } 6510d02842fSSascha Wildner "DDBHandleObj" { count (0); return (PARSEOP_OBJECTTYPE_DDB); } 6520d02842fSSascha Wildner 6530d02842fSSascha Wildner /* ParityKeyword: Resource Descriptors (ACPI 5.0) */ 6540d02842fSSascha Wildner 6550d02842fSSascha Wildner "ParityTypeSpace" { count (0); return (PARSEOP_PARITYTYPE_SPACE); } 6560d02842fSSascha Wildner "ParityTypeMark" { count (0); return (PARSEOP_PARITYTYPE_MARK); } 6570d02842fSSascha Wildner "ParityTypeOdd" { count (0); return (PARSEOP_PARITYTYPE_ODD); } 6580d02842fSSascha Wildner "ParityTypeEven" { count (0); return (PARSEOP_PARITYTYPE_EVEN); } 6590d02842fSSascha Wildner "ParityTypeNone" { count (0); return (PARSEOP_PARITYTYPE_NONE); } 6600d02842fSSascha Wildner 6610d02842fSSascha Wildner /* PinConfigKeyword: Pin Configuration - GPIO Resource Descriptors (ACPI 5.0) */ 6620d02842fSSascha Wildner 6630d02842fSSascha Wildner "PullDefault" { count (0); return (PARSEOP_PIN_PULLDEFAULT); } 6640d02842fSSascha Wildner "PullUp" { count (0); return (PARSEOP_PIN_PULLUP); } 6650d02842fSSascha Wildner "PullDown" { count (0); return (PARSEOP_PIN_PULLDOWN); } 6660d02842fSSascha Wildner "PullNone" { count (0); return (PARSEOP_PIN_NOPULL); } 6670d02842fSSascha Wildner 6680d02842fSSascha Wildner /* PolarityKeyword: Resource Descriptors (ACPI 5.0) */ 6690d02842fSSascha Wildner 6700d02842fSSascha Wildner "PolarityLow" { count (0); return (PARSEOP_DEVICEPOLARITY_LOW); } 6710d02842fSSascha Wildner "PolarityHigh" { count (0); return (PARSEOP_DEVICEPOLARITY_HIGH); } 6720d02842fSSascha Wildner 6730d02842fSSascha Wildner /* RangeTypeKeyword: I/O Range Types - Resource Descriptors */ 6740d02842fSSascha Wildner 6750d02842fSSascha Wildner "ISAOnlyRanges" { count (0); return (PARSEOP_RANGETYPE_ISAONLY); } 6760d02842fSSascha Wildner "NonISAOnlyRanges" { count (0); return (PARSEOP_RANGETYPE_NONISAONLY); } 6770d02842fSSascha Wildner "EntireRange" { count (0); return (PARSEOP_RANGETYPE_ENTIRE); } 6780d02842fSSascha Wildner 6790d02842fSSascha Wildner /* ReadWriteKeyword: Memory Access Types - Resource Descriptors */ 6800d02842fSSascha Wildner 6810d02842fSSascha Wildner "ReadWrite" { count (0); return (PARSEOP_READWRITETYPE_BOTH); } 6820d02842fSSascha Wildner "ReadOnly" { count (0); return (PARSEOP_READWRITETYPE_READONLY); } 6830d02842fSSascha Wildner 6840d02842fSSascha Wildner /* RegionSpaceKeyword: Operation Region Address Space Types */ 6850d02842fSSascha Wildner 6860d02842fSSascha Wildner "SystemIO" { count (0); return (PARSEOP_REGIONSPACE_IO); } 6870d02842fSSascha Wildner "SystemMemory" { count (0); return (PARSEOP_REGIONSPACE_MEM); } 6880d02842fSSascha Wildner "PCI_Config" { count (0); return (PARSEOP_REGIONSPACE_PCI); } 6890d02842fSSascha Wildner "EmbeddedControl" { count (0); return (PARSEOP_REGIONSPACE_EC); } 6900d02842fSSascha Wildner "SMBus" { count (0); return (PARSEOP_REGIONSPACE_SMBUS); } 6910d02842fSSascha Wildner "SystemCMOS" { count (0); return (PARSEOP_REGIONSPACE_CMOS); } 6920d02842fSSascha Wildner "PciBarTarget" { count (0); return (PARSEOP_REGIONSPACE_PCIBAR); } 6930d02842fSSascha Wildner "IPMI" { count (0); return (PARSEOP_REGIONSPACE_IPMI); } 6940d02842fSSascha Wildner "GeneralPurposeIo" { count (0); return (PARSEOP_REGIONSPACE_GPIO); } /* ACPI 5.0 */ 6950d02842fSSascha Wildner "GenericSerialBus" { count (0); return (PARSEOP_REGIONSPACE_GSBUS); } /* ACPI 5.0 */ 69671c97a3cSSascha Wildner "PCC" { count (0); return (PARSEOP_REGIONSPACE_PCC); } /* ACPI 5.0 */ 697d0dff17aSSascha Wildner "PlatformRtMechanism" { count (0); return (PARSEOP_REGIONSPACE_PRM); } 6980d02842fSSascha Wildner "FFixedHW" { count (0); return (PARSEOP_REGIONSPACE_FFIXEDHW); } 6990d02842fSSascha Wildner 7000d02842fSSascha Wildner /* ResourceTypeKeyword: Resource Usage - Resource Descriptors */ 7010d02842fSSascha Wildner 7020d02842fSSascha Wildner "ResourceConsumer" { count (0); return (PARSEOP_RESOURCETYPE_CONSUMER); } 7030d02842fSSascha Wildner "ResourceProducer" { count (0); return (PARSEOP_RESOURCETYPE_PRODUCER); } 7040d02842fSSascha Wildner 7050d02842fSSascha Wildner /* SerializeRuleKeyword: Control Method Serialization */ 7060d02842fSSascha Wildner 7070d02842fSSascha Wildner "Serialized" { count (0); return (PARSEOP_SERIALIZERULE_SERIAL); } 7080d02842fSSascha Wildner "NotSerialized" { count (0); return (PARSEOP_SERIALIZERULE_NOTSERIAL); } 7090d02842fSSascha Wildner 7100d02842fSSascha Wildner /* ShareTypeKeyword: Interrupt Sharing - Resource Descriptors */ 7110d02842fSSascha Wildner 7120d02842fSSascha Wildner "Shared" { count (0); return (PARSEOP_SHARETYPE_SHARED); } 7130d02842fSSascha Wildner "Exclusive" { count (0); return (PARSEOP_SHARETYPE_EXCLUSIVE); } 7140d02842fSSascha Wildner "SharedAndWake" { count (0); return (PARSEOP_SHARETYPE_SHAREDWAKE); } /* ACPI 5.0 */ 7150d02842fSSascha Wildner "ExclusiveAndWake" { count (0); return (PARSEOP_SHARETYPE_EXCLUSIVEWAKE); } /* ACPI 5.0 */ 7160d02842fSSascha Wildner 7170d02842fSSascha Wildner /* SlaveModeKeyword: Resource Descriptors (ACPI 5.0) */ 7180d02842fSSascha Wildner 7190d02842fSSascha Wildner "ControllerInitiated" { count (0); return (PARSEOP_SLAVEMODE_CONTROLLERINIT); } 7200d02842fSSascha Wildner "DeviceInitiated" { count (0); return (PARSEOP_SLAVEMODE_DEVICEINIT); } 7210d02842fSSascha Wildner 7220d02842fSSascha Wildner /* StopBitsKeyword: Resource Descriptors (ACPI 5.0) */ 7230d02842fSSascha Wildner 7240d02842fSSascha Wildner "StopBitsOne" { count (0); return (PARSEOP_STOPBITS_ONE); } 7250d02842fSSascha Wildner "StopBitsOnePlusHalf" { count (0); return (PARSEOP_STOPBITS_ONEPLUSHALF); } 7260d02842fSSascha Wildner "StopBitsTwo" { count (0); return (PARSEOP_STOPBITS_TWO); } 7270d02842fSSascha Wildner "StopBitsZero" { count (0); return (PARSEOP_STOPBITS_ZERO); } 7280d02842fSSascha Wildner 7290d02842fSSascha Wildner /* TransferWidthKeyword: DMA Widths - Fixed DMA Resource Descriptor (ACPI 5.0) */ 7300d02842fSSascha Wildner 7310d02842fSSascha Wildner "Width8bit" { count (0); return (PARSEOP_XFERSIZE_8); } 7320d02842fSSascha Wildner "Width16bit" { count (0); return (PARSEOP_XFERSIZE_16); } 7330d02842fSSascha Wildner "Width32bit" { count (0); return (PARSEOP_XFERSIZE_32); } 7340d02842fSSascha Wildner "Width64bit" { count (0); return (PARSEOP_XFERSIZE_64); } 7350d02842fSSascha Wildner "Width128bit" { count (0); return (PARSEOP_XFERSIZE_128); } 7360d02842fSSascha Wildner "Width256bit" { count (0); return (PARSEOP_XFERSIZE_256); } 7370d02842fSSascha Wildner 7380d02842fSSascha Wildner /* TranslationKeyword: Translation Density Types - Resource Descriptors */ 7390d02842fSSascha Wildner 7400d02842fSSascha Wildner "SparseTranslation" { count (0); return (PARSEOP_TRANSLATIONTYPE_SPARSE); } 7410d02842fSSascha Wildner "DenseTranslation" { count (0); return (PARSEOP_TRANSLATIONTYPE_DENSE); } 7420d02842fSSascha Wildner 7430d02842fSSascha Wildner /* TypeKeyword: Translation Types - Resource Descriptors */ 7440d02842fSSascha Wildner 7450d02842fSSascha Wildner "TypeTranslation" { count (0); return (PARSEOP_TYPE_TRANSLATION); } 7460d02842fSSascha Wildner "TypeStatic" { count (0); return (PARSEOP_TYPE_STATIC); } 7470d02842fSSascha Wildner 7480d02842fSSascha Wildner /* UpdateRuleKeyword: Field Update Rules */ 7490d02842fSSascha Wildner 7500d02842fSSascha Wildner "Preserve" { count (0); return (PARSEOP_UPDATERULE_PRESERVE); } 7510d02842fSSascha Wildner "WriteAsOnes" { count (0); return (PARSEOP_UPDATERULE_ONES); } 7520d02842fSSascha Wildner "WriteAsZeros" { count (0); return (PARSEOP_UPDATERULE_ZEROS); } 7530d02842fSSascha Wildner 7540d02842fSSascha Wildner /* WireModeKeyword: SPI Wire Mode - Resource Descriptors (ACPI 5.0) */ 7550d02842fSSascha Wildner 7560d02842fSSascha Wildner "FourWireMode" { count (0); return (PARSEOP_WIREMODE_FOUR); } 7570d02842fSSascha Wildner "ThreeWireMode" { count (0); return (PARSEOP_WIREMODE_THREE); } 7580d02842fSSascha Wildner 7590d02842fSSascha Wildner /* XferTypeKeyword: DMA Transfer Types */ 7600d02842fSSascha Wildner 7610d02842fSSascha Wildner "Transfer8" { count (0); return (PARSEOP_XFERTYPE_8); } 7620d02842fSSascha Wildner "Transfer8_16" { count (0); return (PARSEOP_XFERTYPE_8_16); } 7630d02842fSSascha Wildner "Transfer16" { count (0); return (PARSEOP_XFERTYPE_16); } 7640d02842fSSascha Wildner 7652e2672b8SSascha Wildner /* ToPld macro */ 7662e2672b8SSascha Wildner 7672e2672b8SSascha Wildner "ToPLD" { count (0); return (PARSEOP_TOPLD); } 7682e2672b8SSascha Wildner 7692e2672b8SSascha Wildner "PLD_Revision" { count (0); return (PARSEOP_PLD_REVISION); } 7702e2672b8SSascha Wildner "PLD_IgnoreColor" { count (0); return (PARSEOP_PLD_IGNORECOLOR); } 7712e2672b8SSascha Wildner "PLD_Red" { count (0); return (PARSEOP_PLD_RED); } 7722e2672b8SSascha Wildner "PLD_Green" { count (0); return (PARSEOP_PLD_GREEN); } 7732e2672b8SSascha Wildner "PLD_Blue" { count (0); return (PARSEOP_PLD_BLUE); } 7742e2672b8SSascha Wildner "PLD_Width" { count (0); return (PARSEOP_PLD_WIDTH); } 7752e2672b8SSascha Wildner "PLD_Height" { count (0); return (PARSEOP_PLD_HEIGHT); } 7762e2672b8SSascha Wildner "PLD_UserVisible" { count (0); return (PARSEOP_PLD_USERVISIBLE); } 7772e2672b8SSascha Wildner "PLD_Dock" { count (0); return (PARSEOP_PLD_DOCK); } 7782e2672b8SSascha Wildner "PLD_Lid" { count (0); return (PARSEOP_PLD_LID); } 7792e2672b8SSascha Wildner "PLD_Panel" { count (0); return (PARSEOP_PLD_PANEL); } 7802e2672b8SSascha Wildner "PLD_VerticalPosition" { count (0); return (PARSEOP_PLD_VERTICALPOSITION); } 7812e2672b8SSascha Wildner "PLD_HorizontalPosition" { count (0); return (PARSEOP_PLD_HORIZONTALPOSITION); } 7822e2672b8SSascha Wildner "PLD_Shape" { count (0); return (PARSEOP_PLD_SHAPE); } 7832e2672b8SSascha Wildner "PLD_GroupOrientation" { count (0); return (PARSEOP_PLD_GROUPORIENTATION); } 7842e2672b8SSascha Wildner "PLD_GroupToken" { count (0); return (PARSEOP_PLD_GROUPTOKEN); } 7852e2672b8SSascha Wildner "PLD_GroupPosition" { count (0); return (PARSEOP_PLD_GROUPPOSITION); } 7862e2672b8SSascha Wildner "PLD_Bay" { count (0); return (PARSEOP_PLD_BAY); } 7872e2672b8SSascha Wildner "PLD_Ejectable" { count (0); return (PARSEOP_PLD_EJECTABLE); } 7882e2672b8SSascha Wildner "PLD_EjectRequired" { count (0); return (PARSEOP_PLD_EJECTREQUIRED); } 7892e2672b8SSascha Wildner "PLD_CabinetNumber" { count (0); return (PARSEOP_PLD_CABINETNUMBER); } 7902e2672b8SSascha Wildner "PLD_CardCageNumber" { count (0); return (PARSEOP_PLD_CARDCAGENUMBER); } 7912e2672b8SSascha Wildner "PLD_Reference" { count (0); return (PARSEOP_PLD_REFERENCE); } 7922e2672b8SSascha Wildner "PLD_Rotation" { count (0); return (PARSEOP_PLD_ROTATION); } 7932e2672b8SSascha Wildner "PLD_Order" { count (0); return (PARSEOP_PLD_ORDER); } 7942e2672b8SSascha Wildner "PLD_Reserved" { count (0); return (PARSEOP_PLD_RESERVED); } 7952e2672b8SSascha Wildner "PLD_VerticalOffset" { count (0); return (PARSEOP_PLD_VERTICALOFFSET); } 7962e2672b8SSascha Wildner "PLD_HorizontalOffset" { count (0); return (PARSEOP_PLD_HORIZONTALOFFSET); } 7972e2672b8SSascha Wildner 7982e2672b8SSascha Wildner 7992e2672b8SSascha Wildner /* printf debug macros */ 8000d27ae55SSascha Wildner 8012e2672b8SSascha Wildner "printf" { count (0); return (PARSEOP_PRINTF); } 8022e2672b8SSascha Wildner "fprintf" { count (0); return (PARSEOP_FPRINTF); } 8032e2672b8SSascha Wildner 8040d27ae55SSascha Wildner /* Other macros */ 8050d27ae55SSascha Wildner 8060d27ae55SSascha Wildner "For" { count (0); return (PARSEOP_FOR); } 8070d27ae55SSascha Wildner 8080d02842fSSascha Wildner /* Predefined compiler names */ 8090d02842fSSascha Wildner 8100d02842fSSascha Wildner "__DATE__" { count (0); return (PARSEOP___DATE__); } 8110d02842fSSascha Wildner "__FILE__" { count (0); return (PARSEOP___FILE__); } 8120d02842fSSascha Wildner "__LINE__" { count (0); return (PARSEOP___LINE__); } 8130d02842fSSascha Wildner "__PATH__" { count (0); return (PARSEOP___PATH__); } 8143c639e0cSSascha Wildner "__METHOD__" { count (0); return (PARSEOP___METHOD__); } 81571c97a3cSSascha Wildner "__EXPECT__"{ErrorCode} { char *s; 81608343eafSSascha Wildner unsigned int index = 0; 81771c97a3cSSascha Wildner count (0); 81808343eafSSascha Wildner while (!isdigit ((int) AslCompilertext[index])) 81971c97a3cSSascha Wildner { 82071c97a3cSSascha Wildner index++; 82171c97a3cSSascha Wildner } 82271c97a3cSSascha Wildner 82371c97a3cSSascha Wildner /* 8240f79e681SSascha Wildner * The error code is contained inside the 82571c97a3cSSascha Wildner * {ErrorCode} pattern. Extract it and log it 82671c97a3cSSascha Wildner * as the expected error code. 82771c97a3cSSascha Wildner */ 82871c97a3cSSascha Wildner s = UtLocalCacheCalloc (ASL_ERROR_CODE_LENGTH + 1); 82971c97a3cSSascha Wildner memcpy (s, AslCompilertext + index, ASL_ERROR_CODE_LENGTH); 83071c97a3cSSascha Wildner AslLogExpectedExceptionByLine (s); } 8310d02842fSSascha Wildner 8320d02842fSSascha Wildner {NameSeg} { char *s; 8330d02842fSSascha Wildner count (0); 834c1776041SSascha Wildner s=UtLocalCacheCalloc (ACPI_NAMESEG_SIZE + 1); 8350d02842fSSascha Wildner if (strcmp (AslCompilertext, "\\")) 8360d02842fSSascha Wildner { 83700ffa116SSascha Wildner /* 83800ffa116SSascha Wildner * According to the ACPI specification, 83900ffa116SSascha Wildner * NameSegments must have length of 4. If 84000ffa116SSascha Wildner * the NameSegment has length less than 4, 84100ffa116SSascha Wildner * they are padded with underscores to meet 84200ffa116SSascha Wildner * the required length. 84300ffa116SSascha Wildner */ 8440d02842fSSascha Wildner strcpy (s, "____"); 8450d02842fSSascha Wildner } 8460d02842fSSascha Wildner memcpy (s, AslCompilertext, strlen (AslCompilertext)); 8470d02842fSSascha Wildner AslCompilerlval.s = s; 8480d02842fSSascha Wildner DbgPrint (ASL_PARSE_OUTPUT, "NameSeg: %s\n", s); 8490d02842fSSascha Wildner return (PARSEOP_NAMESEG); } 8500d02842fSSascha Wildner 8510d02842fSSascha Wildner {NameString} { char *s; 8520d02842fSSascha Wildner count (0); 8537bcb6cafSSascha Wildner s=UtLocalCacheCalloc (strlen (AslCompilertext)+1); 8540d02842fSSascha Wildner strcpy (s, AslCompilertext); 8550d02842fSSascha Wildner AslCompilerlval.s = s; 8560d02842fSSascha Wildner DbgPrint (ASL_PARSE_OUTPUT, "NameString: %s\n", s); 8570d02842fSSascha Wildner return (PARSEOP_NAMESTRING); } 8580d02842fSSascha Wildner 8590d02842fSSascha Wildner . { count (1); 86025ca8c79SSascha Wildner if (isprint ((int) *AslCompilertext)) 861896f2e3aSSascha Wildner { 862806343b9SSascha Wildner sprintf (AslGbl_MsgBuffer, 863896f2e3aSSascha Wildner "Invalid character (%c), expecting ASL keyword or name", 864896f2e3aSSascha Wildner *AslCompilertext); 865896f2e3aSSascha Wildner } 866896f2e3aSSascha Wildner else 867896f2e3aSSascha Wildner { 868806343b9SSascha Wildner sprintf (AslGbl_MsgBuffer, 8690d02842fSSascha Wildner "Invalid character (0x%2.2X), expecting ASL keyword or name", 8700d02842fSSascha Wildner *AslCompilertext); 871896f2e3aSSascha Wildner } 872806343b9SSascha Wildner AslCompilererror (AslGbl_MsgBuffer);} 8730d02842fSSascha Wildner 8740d02842fSSascha Wildner <<EOF>> { if (AslPopInputFileStack ()) 875066b6da2SSascha Wildner {yyterminate();} 8760d02842fSSascha Wildner else 877066b6da2SSascha Wildner {return (PARSEOP_INCLUDE_END);} }; 8780d02842fSSascha Wildner 8790d02842fSSascha Wildner %% 8800d02842fSSascha Wildner 8810d02842fSSascha Wildner /*! [End] no source code translation !*/ 8820d02842fSSascha Wildner 8830d02842fSSascha Wildner /* 8840d02842fSSascha Wildner * Bring in the scanner support routines 8850d02842fSSascha Wildner */ 8860d02842fSSascha Wildner #include "aslsupport.l" 887