xref: /dflybsd-src/sys/contrib/dev/acpica/source/compiler/aslcompiler.l (revision 01d5d5df55caa9c47886aef5197b8c4301cc621b)
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