10d02842fSSascha Wildner /****************************************************************************** 20d02842fSSascha Wildner * 30d02842fSSascha Wildner * Module Name: ahaslops - Table of all known ASL operators 40d02842fSSascha Wildner * 50d02842fSSascha Wildner *****************************************************************************/ 60d02842fSSascha Wildner 7b4315fc7SSascha Wildner /****************************************************************************** 8b4315fc7SSascha Wildner * 9b4315fc7SSascha Wildner * 1. Copyright Notice 10b4315fc7SSascha Wildner * 11*383048acSSascha Wildner * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. 120d02842fSSascha Wildner * All rights reserved. 130d02842fSSascha Wildner * 14b4315fc7SSascha Wildner * 2. License 15b4315fc7SSascha Wildner * 16b4315fc7SSascha Wildner * 2.1. This is your license from Intel Corp. under its intellectual property 17b4315fc7SSascha Wildner * rights. You may have additional license terms from the party that provided 18b4315fc7SSascha Wildner * you this software, covering your right to use that party's intellectual 19b4315fc7SSascha Wildner * property rights. 20b4315fc7SSascha Wildner * 21b4315fc7SSascha Wildner * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22b4315fc7SSascha Wildner * copy of the source code appearing in this file ("Covered Code") an 23b4315fc7SSascha Wildner * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24b4315fc7SSascha Wildner * base code distributed originally by Intel ("Original Intel Code") to copy, 25b4315fc7SSascha Wildner * make derivatives, distribute, use and display any portion of the Covered 26b4315fc7SSascha Wildner * Code in any form, with the right to sublicense such rights; and 27b4315fc7SSascha Wildner * 28b4315fc7SSascha Wildner * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29b4315fc7SSascha Wildner * license (with the right to sublicense), under only those claims of Intel 30b4315fc7SSascha Wildner * patents that are infringed by the Original Intel Code, to make, use, sell, 31b4315fc7SSascha Wildner * offer to sell, and import the Covered Code and derivative works thereof 32b4315fc7SSascha Wildner * solely to the minimum extent necessary to exercise the above copyright 33b4315fc7SSascha Wildner * license, and in no event shall the patent license extend to any additions 34b4315fc7SSascha Wildner * to or modifications of the Original Intel Code. No other license or right 35b4315fc7SSascha Wildner * is granted directly or by implication, estoppel or otherwise; 36b4315fc7SSascha Wildner * 37b4315fc7SSascha Wildner * The above copyright and patent license is granted only if the following 38b4315fc7SSascha Wildner * conditions are met: 39b4315fc7SSascha Wildner * 40b4315fc7SSascha Wildner * 3. Conditions 41b4315fc7SSascha Wildner * 42b4315fc7SSascha Wildner * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 44b4315fc7SSascha Wildner * Code or modification with rights to further distribute source must include 45b4315fc7SSascha Wildner * the above Copyright Notice, the above License, this list of Conditions, 46b4315fc7SSascha Wildner * and the following Disclaimer and Export Compliance provision. In addition, 47b4315fc7SSascha Wildner * Licensee must cause all Covered Code to which Licensee contributes to 48b4315fc7SSascha Wildner * contain a file documenting the changes Licensee made to create that Covered 49b4315fc7SSascha Wildner * Code and the date of any change. Licensee must include in that file the 50b4315fc7SSascha Wildner * documentation of any changes made by any predecessor Licensee. Licensee 51b4315fc7SSascha Wildner * must include a prominent statement that the modification is derived, 52b4315fc7SSascha Wildner * directly or indirectly, from Original Intel Code. 53b4315fc7SSascha Wildner * 54b4315fc7SSascha Wildner * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 56b4315fc7SSascha Wildner * Code or modification without rights to further distribute source must 57b4315fc7SSascha Wildner * include the following Disclaimer and Export Compliance provision in the 58b4315fc7SSascha Wildner * documentation and/or other materials provided with distribution. In 59b4315fc7SSascha Wildner * addition, Licensee may not authorize further sublicense of source of any 60b4315fc7SSascha Wildner * portion of the Covered Code, and must include terms to the effect that the 61b4315fc7SSascha Wildner * license from Licensee to its licensee is limited to the intellectual 62b4315fc7SSascha Wildner * property embodied in the software Licensee provides to its licensee, and 63b4315fc7SSascha Wildner * not to intellectual property embodied in modifications its licensee may 64b4315fc7SSascha Wildner * make. 65b4315fc7SSascha Wildner * 66b4315fc7SSascha Wildner * 3.3. Redistribution of Executable. Redistribution in executable form of any 67b4315fc7SSascha Wildner * substantial portion of the Covered Code or modification must reproduce the 68b4315fc7SSascha Wildner * above Copyright Notice, and the following Disclaimer and Export Compliance 69b4315fc7SSascha Wildner * provision in the documentation and/or other materials provided with the 70b4315fc7SSascha Wildner * distribution. 71b4315fc7SSascha Wildner * 72b4315fc7SSascha Wildner * 3.4. Intel retains all right, title, and interest in and to the Original 73b4315fc7SSascha Wildner * Intel Code. 74b4315fc7SSascha Wildner * 75b4315fc7SSascha Wildner * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76b4315fc7SSascha Wildner * Intel shall be used in advertising or otherwise to promote the sale, use or 77b4315fc7SSascha Wildner * other dealings in products derived from or relating to the Covered Code 78b4315fc7SSascha Wildner * without prior written authorization from Intel. 79b4315fc7SSascha Wildner * 80b4315fc7SSascha Wildner * 4. Disclaimer and Export Compliance 81b4315fc7SSascha Wildner * 82b4315fc7SSascha Wildner * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83b4315fc7SSascha Wildner * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84b4315fc7SSascha Wildner * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85b4315fc7SSascha Wildner * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86b4315fc7SSascha Wildner * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87b4315fc7SSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88b4315fc7SSascha Wildner * PARTICULAR PURPOSE. 89b4315fc7SSascha Wildner * 90b4315fc7SSascha Wildner * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91b4315fc7SSascha Wildner * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92b4315fc7SSascha Wildner * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93b4315fc7SSascha Wildner * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94b4315fc7SSascha Wildner * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95b4315fc7SSascha Wildner * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96b4315fc7SSascha Wildner * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97b4315fc7SSascha Wildner * LIMITED REMEDY. 98b4315fc7SSascha Wildner * 99b4315fc7SSascha Wildner * 4.3. Licensee shall not export, either directly or indirectly, any of this 100b4315fc7SSascha Wildner * software or system incorporating such software without first obtaining any 101b4315fc7SSascha Wildner * required license or other approval from the U. S. Department of Commerce or 102b4315fc7SSascha Wildner * any other agency or department of the United States Government. In the 103b4315fc7SSascha Wildner * event Licensee exports any such software from the United States or 104b4315fc7SSascha Wildner * re-exports any such software from a foreign destination, Licensee shall 105b4315fc7SSascha Wildner * ensure that the distribution and export/re-export of the software is in 106b4315fc7SSascha Wildner * compliance with all laws, regulations, orders, or other restrictions of the 107b4315fc7SSascha Wildner * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108b4315fc7SSascha Wildner * any of its subsidiaries will export/re-export any technical data, process, 109b4315fc7SSascha Wildner * software, or service, directly or indirectly, to any country for which the 110b4315fc7SSascha Wildner * United States government or any agency thereof requires an export license, 111b4315fc7SSascha Wildner * other governmental approval, or letter of assurance, without first obtaining 112b4315fc7SSascha Wildner * such license, approval or letter. 113b4315fc7SSascha Wildner * 114b4315fc7SSascha Wildner ***************************************************************************** 115b4315fc7SSascha Wildner * 116b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 117b4315fc7SSascha Wildner * following license: 118b4315fc7SSascha Wildner * 1190d02842fSSascha Wildner * Redistribution and use in source and binary forms, with or without 1200d02842fSSascha Wildner * modification, are permitted provided that the following conditions 1210d02842fSSascha Wildner * are met: 1220d02842fSSascha Wildner * 1. Redistributions of source code must retain the above copyright 1230d02842fSSascha Wildner * notice, this list of conditions, and the following disclaimer, 1240d02842fSSascha Wildner * without modification. 1250d02842fSSascha Wildner * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1260d02842fSSascha Wildner * substantially similar to the "NO WARRANTY" disclaimer below 1270d02842fSSascha Wildner * ("Disclaimer") and any redistribution must be conditioned upon 1280d02842fSSascha Wildner * including a substantially similar Disclaimer requirement for further 1290d02842fSSascha Wildner * binary redistribution. 1300d02842fSSascha Wildner * 3. Neither the names of the above-listed copyright holders nor the names 1310d02842fSSascha Wildner * of any contributors may be used to endorse or promote products derived 1320d02842fSSascha Wildner * from this software without specific prior written permission. 1330d02842fSSascha Wildner * 134b4315fc7SSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 135b4315fc7SSascha Wildner * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 136b4315fc7SSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 137b4315fc7SSascha Wildner * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 138b4315fc7SSascha Wildner * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 139b4315fc7SSascha Wildner * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 140b4315fc7SSascha Wildner * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 141b4315fc7SSascha Wildner * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 142b4315fc7SSascha Wildner * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 143b4315fc7SSascha Wildner * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 144b4315fc7SSascha Wildner * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 145b4315fc7SSascha Wildner * 146b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 1470d02842fSSascha Wildner * GNU General Public License ("GPL") version 2 as published by the Free 1480d02842fSSascha Wildner * Software Foundation. 1490d02842fSSascha Wildner * 150b4315fc7SSascha Wildner *****************************************************************************/ 1510d02842fSSascha Wildner 1520d02842fSSascha Wildner #include "acpihelp.h" 1530d02842fSSascha Wildner 1540d02842fSSascha Wildner /* 1550d02842fSSascha Wildner * ASL operators with syntax (directly from ACPI specification). 1560d02842fSSascha Wildner * Note: All tokens require a space separator. 1570d02842fSSascha Wildner * Long lines are automatically split during output. 1580d02842fSSascha Wildner */ 15938b5d46cSSascha Wildner const AH_ASL_OPERATOR Gbl_AslOperatorInfo[] = 1600d02842fSSascha Wildner { 1610d02842fSSascha Wildner {"AccessAs", "(AccessType, AccessAttribKeyword | " 1620d02842fSSascha Wildner "ExtendedAttribKeyword (AccessLength))", 1630d02842fSSascha Wildner "ChangeFieldUnitAccess"}, 1640d02842fSSascha Wildner {"Acquire", "(SyncObject, TimeoutValue) => Boolean", 1650d02842fSSascha Wildner "Acquire a mutex"}, 1660d02842fSSascha Wildner {"Add", "(Addend1, Addend2, Result) => Integer", 1670d02842fSSascha Wildner "Integer Add"}, 1680d02842fSSascha Wildner {"Alias", "(SourceObject, AliasObject)", 1690d02842fSSascha Wildner "Define a name alias"}, 1700d02842fSSascha Wildner {"And", "(Source1, Source2, Result) => Integer", 1710d02842fSSascha Wildner "Integer Bitwise And"}, 1720d02842fSSascha Wildner {"Arg", "Arg0 - Arg6", 1730d02842fSSascha Wildner "Method argument data objects"}, 1740d02842fSSascha Wildner {"BankField", "(RegionName, BankName, BankValue, " 1750d02842fSSascha Wildner "AccessTypeKeyword, LockRuleKeyword, " 1760d02842fSSascha Wildner "UpdateRuleKeyword) {FieldUnitList}", 1770d02842fSSascha Wildner "Declare fields in a banked configuration object"}, 1780d02842fSSascha Wildner {"Break", "No parameters", 1790d02842fSSascha Wildner "Continue following the innermost enclosing While"}, 1800d02842fSSascha Wildner {"BreakPoint", "No parameters", 1810d02842fSSascha Wildner "Used for debugging, stops execution in the debugger"}, 1820d02842fSSascha Wildner {"Buffer", "(BufferSize) {String or ByteList} => Buffer", 1830d02842fSSascha Wildner "Declare Buffer object"}, 1840d02842fSSascha Wildner {"Case", "(Value) {TermList}", 1850d02842fSSascha Wildner "Expression for conditional execution"}, 1860d02842fSSascha Wildner {"Concatenate", "(Source1, Source2, Result) => ComputationalData", 1870d02842fSSascha Wildner "Concatenate two strings, integers or buffers"}, 1880d02842fSSascha Wildner {"ConcatenateResTemplate", "(Source1, Source2, Result) => Buffer", 1890d02842fSSascha Wildner "Concatenate two resource templates"}, 1900d02842fSSascha Wildner {"CondRefOf", "(Source, Result) => Boolean", 1910d02842fSSascha Wildner "Conditional reference to an object"}, 1920d02842fSSascha Wildner {"Connection", "(ResourceMacro)", 1930d02842fSSascha Wildner "Associate connection with FieldUnits within a Field object"}, 1940d02842fSSascha Wildner {"Continue", "No parameters", 1950d02842fSSascha Wildner "Continue innermost enclosing While loop"}, 1960d02842fSSascha Wildner {"CopyObject", "(Source, Destination) => DataRefObject", 1970d02842fSSascha Wildner "Copy and existing object"}, 1980d02842fSSascha Wildner {"CreateBitField", "(SourceBuffer, BitIndex, BitFieldName)", 1990d02842fSSascha Wildner "Declare a bit field object of a buffer object"}, 2000d02842fSSascha Wildner {"CreateByteField", "(SourceBuffer, ByteIndex, ByteFieldName)", 2010d02842fSSascha Wildner "Declare a byte field object of a buffer object"}, 2020d02842fSSascha Wildner {"CreateDWordField", "(SourceBuffer, ByteIndex, DWordFieldName)", 2030d02842fSSascha Wildner "Declare a DWord field object of a buffer object"}, 2040d02842fSSascha Wildner {"CreateField", "(SourceBuffer, BitIndex, NumBits, FieldName)", 2050d02842fSSascha Wildner "Declare an arbitrary length bit field of a buffer object"}, 2060d02842fSSascha Wildner {"CreateQWordField", "(SourceBuffer, ByteIndex, QWordFieldName)", 2070d02842fSSascha Wildner "Declare a QWord field object of a buffer object"}, 2080d02842fSSascha Wildner {"CreateWordField", "(SourceBuffer, ByteIndex, WordFieldName)", 2090d02842fSSascha Wildner "Declare a Word field object of a buffer object"}, 2100d02842fSSascha Wildner {"DataTableRegion", "(RegionName, SignatureString, OemIDString, OemTableIDString)", 2110d02842fSSascha Wildner "Declare a Data Table Region"}, 2120d02842fSSascha Wildner {"Debug", "No parameters", 2130d02842fSSascha Wildner "Debugger output"}, 2140d02842fSSascha Wildner {"Decrement", "(Minuend) => Integer", 2150d02842fSSascha Wildner "Decrement an Integer"}, 2160d02842fSSascha Wildner {"Default", "{TermList}", 2170d02842fSSascha Wildner "Default execution path in Switch()"}, 2180d02842fSSascha Wildner {"DefinitionBlock", "(AmlFileName, TableSignature, ComplianceRevision, " 2190d02842fSSascha Wildner "OemId, TableId, OemRevision) {TermList}", 2200d02842fSSascha Wildner "Declare a Definition Block"}, 2210d02842fSSascha Wildner {"DerefOf", "(Source) => Object", 2220d02842fSSascha Wildner "Dereference an object reference"}, 2230d27ae55SSascha Wildner {"Device", "(DeviceName) {TermList}", 2240d02842fSSascha Wildner "Declare a bus/device object"}, 2250d02842fSSascha Wildner {"Divide", "(Dividend, Divisor, Remainder, Result) => Integer", 2260d02842fSSascha Wildner "Integer Divide"}, 2275943f66cSSascha Wildner {"Dma", "(DmaTypeKeyword, BusMasterKeyword, XferTypeKeyword, " 2280d02842fSSascha Wildner "DescriptorName) {DmaChannelList} => Buffer", 2290d02842fSSascha Wildner "DMA Resource Descriptor macro"}, 2305943f66cSSascha Wildner {"DWordIo", "(ResourceTypeKeyword, MinKeyword, MaxKeyword, " 2310d02842fSSascha Wildner "DecodeKeyword, RangeTypeKeyword, AddressGranularity, " 2320d02842fSSascha Wildner "AddressMinimum, AddressMaximum, AddressTranslation, " 2330d02842fSSascha Wildner "RangeLength, ResourceSourceIndex, " 2340d02842fSSascha Wildner "ResourceSource, DescriptorName, TypeKeyword, TranslationKeyword)", 2355943f66cSSascha Wildner "DWord I/O Resource Descriptor macro"}, 2360d02842fSSascha Wildner {"DWordMemory", "(ResourceTypeKeyword, DecodeKeyword, MinKeyword, " 2370d02842fSSascha Wildner "MaxKeyword, MemTypeKeyword, ReadWriteKeyword, " 2380d02842fSSascha Wildner "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, " 2390d02842fSSascha Wildner "RangeLength, ResourceSourceIndex, ResourceSource, DescriptorName, AddressKeyword, " 2400d02842fSSascha Wildner "TypeKeyword)", 2410d02842fSSascha Wildner "DWord Memory Resource Descriptor macro"}, 2420d02842fSSascha Wildner {"DWordSpace", "(ResourceType, ResourceTypeKeyword, DecodeKeyword, " 2430d02842fSSascha Wildner "MinKeyword, MaxKeyword, TypeSpecificFlags, " 2440d02842fSSascha Wildner "AddressGranularity, AddressMinimum, AddressMaximum, " 2450d02842fSSascha Wildner "AddressTranslation, RangeLength, " 2460d02842fSSascha Wildner "ResourceSourceIndex, ResourceSource, DescriptorName)", 2470d02842fSSascha Wildner "DWord Space Resource Descriptor macro"}, 2485943f66cSSascha Wildner {"EisaId", "(EisaIdString) => DWordConst", 2490d02842fSSascha Wildner "EISA ID String to Integer conversion macro"}, 2500d02842fSSascha Wildner {"Else", "{TermList}", 2510d02842fSSascha Wildner "Alternate conditional execution"}, 2520d02842fSSascha Wildner {"ElseIf", "(Predicate)", 2530d02842fSSascha Wildner "Conditional execution"}, 2540d02842fSSascha Wildner {"EndDependentFn", "() => Buffer", 2550d02842fSSascha Wildner "End Dependent Function Resource Descriptor macro"}, 2560d02842fSSascha Wildner {"Event", "(EventName)", 2570d02842fSSascha Wildner "Declare an event synchronization object"}, 2585943f66cSSascha Wildner {"ExtendedIo", "(ResourceTypeKeyword, MinKeyword, MaxKeyword, " 2590d02842fSSascha Wildner "DecodeKeyword, RangeTypeKeyword, AddressGranularity, " 2600d02842fSSascha Wildner "AddressMinimum, AddressMaximum, AddressTranslation, RangeLength, " 2610d02842fSSascha Wildner "TypeSpecificAttributes, DescriptorName, TypeKeyword, TranslationKeyword)", 2625943f66cSSascha Wildner "Extended I/O Resource Descriptor macro"}, 2630d02842fSSascha Wildner {"ExtendedMemory", "(ResourceTypeKeyword, DecodeKeyword, MinKeyword, " 2640d02842fSSascha Wildner "MaxKeyword, MemTypeKeyword, ReadWriteKeyword, " 2650d02842fSSascha Wildner "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, " 2660d02842fSSascha Wildner "RangeLength, TypeSpecificAttributes, DescriptorName, " 2670d02842fSSascha Wildner "AddressKeyword, TypeKeyword)", 2680d02842fSSascha Wildner "Extended Memory Resource Descriptor macro"}, 2690d02842fSSascha Wildner {"ExtendedSpace", "(ResourceType, ResourceTypeKeyword, DecodeKeyword, " 2700d02842fSSascha Wildner "MinKeyword, MaxKeyword, TypeSpecificFlags, " 2710d02842fSSascha Wildner "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, " 2720d02842fSSascha Wildner "RangeLength, TypeSpecificAttributes, DescriptorName)", 2730d02842fSSascha Wildner "Extended Space Resource Descriptor macro"}, 2740d02842fSSascha Wildner {"External", "(ObjectName, ObjectTypeKeyword, ReturnType, ParameterTypes)", 2750d02842fSSascha Wildner "Declare external objects"}, 2760d02842fSSascha Wildner {"Fatal", "(Type, Code, Arg)", 2770d02842fSSascha Wildner "Fatal error check"}, 2780d02842fSSascha Wildner {"Field", "(RegionName, AccessTypeKeyword, LockRuleKeyword, " 2790d02842fSSascha Wildner "UpdateRuleKeyword) {FieldUnitList}", 2800d02842fSSascha Wildner "Declare fields of an operation region object"}, 2810d02842fSSascha Wildner {"FindSetLeftBit", "(Source, Result) => Integer", 2820d02842fSSascha Wildner "Index of first least significant bit set"}, 2830d02842fSSascha Wildner {"FindSetRightBit", "(Source, Result) => Integer", 2840d02842fSSascha Wildner "Index of first most significant bit set"}, 2855943f66cSSascha Wildner {"FixedDma", "(DmaRequestLine, Channel, TransferWidthKeyword, DescriptorName) => Buffer", 2860d02842fSSascha Wildner "Fixed DMA Resource Descriptor macro"}, 2875943f66cSSascha Wildner {"FixedIo", "(AddressBase, RangeLength, DescriptorName) => Buffer", 2880d02842fSSascha Wildner "Fixed I/O Resource Descriptor macro"}, 2895943f66cSSascha Wildner {"FromBcd", "(BcdValue, Result) => Integer", 2900d02842fSSascha Wildner "Convert from BCD to numeric"}, 2910d02842fSSascha Wildner {"Function", "(FunctionName, ReturnType, ParameterTypes) {TermList}", 2920d02842fSSascha Wildner "Declare control method"}, 2930d02842fSSascha Wildner {"GpioInt", "(InterruptTypeKeyword, InterruptLevelKeyword, " 2940d02842fSSascha Wildner "ShareTypeKeyword, PinConfigKeyword, " 2950d02842fSSascha Wildner "DebounceTimeout, ResourceSource, " 2960d02842fSSascha Wildner "ResourceSourceIndex, ResourceTypeKeyword, DescriptorName, " 2970d02842fSSascha Wildner "RawDataBuffer() {VendorData}) {Pin}", 2980d02842fSSascha Wildner "GPIO Interrupt Connection Resource Descriptor Macro"}, 2990d02842fSSascha Wildner {"GpioIo", "(ShareTypeKeyword, PinConfigKeyword, DebounceTimeout, DriveStrength, " 3000d02842fSSascha Wildner "IoRestrictionKeyword, ResourceSource, " 3010d02842fSSascha Wildner "ResourceSourceIndex, ResourceTypeKeyword, DescriptorName, " 3020d02842fSSascha Wildner "RawDataBuffer() {VendorData}) {PinList}", 3030d02842fSSascha Wildner "GPIO I/O Connection Resource Descriptor Macro"}, 3040d27ae55SSascha Wildner {"I2cSerialBusV2", "(SlaveAddress, SlaveModeKeyword, ConnectionSpeed, " 3050d02842fSSascha Wildner "AddressingModeKeyword, ResourceSource, " 3060d27ae55SSascha Wildner "ResourceSourceIndex, ResourceTypeKeyword, DescriptorName, Shared, " 3070d02842fSSascha Wildner "RawDataBuffer() {VendorData})", 3080d02842fSSascha Wildner "I2C Serial Bus Connection Resource Descriptor Macro"}, 3090d02842fSSascha Wildner {"If", "(Predicate) {TermList}", 3100d02842fSSascha Wildner "Conditional execution"}, 3110d02842fSSascha Wildner {"Include", "(FilePathName)", 3120d02842fSSascha Wildner "Include another ASL file"}, 3130d02842fSSascha Wildner {"Increment", "(Addend) => Integer", 3140d02842fSSascha Wildner "Increment a Integer"}, 3150d02842fSSascha Wildner {"Index", "(Source, Index, Destination) => ObjectReference", 3160d02842fSSascha Wildner "Indexed Reference to member object"}, 3170d02842fSSascha Wildner {"IndexField", "(IndexName, DataName, AccessTypeKeyword, LockRuleKeyword, " 3180d02842fSSascha Wildner "UpdateRuleKeyword) {FieldUnitList}", 3190d02842fSSascha Wildner "Declare Index/Data Fields"}, 3200d02842fSSascha Wildner {"Interrupt", "(ResourceTypeKeyword, InterruptTypeKeyword, InterruptLevelKeyword, " 3210d02842fSSascha Wildner "ShareTypeKeyword, ResourceSourceIndex, " 3220d02842fSSascha Wildner "ResourceSource, DescriptorName) {InterruptList} => Buffer", 3230d02842fSSascha Wildner "Interrupt Resource Descriptor macro"}, 3245943f66cSSascha Wildner {"Io", "(IoDecodeKeyword, AddressMin, AddressMax, AddressAlignment, " 3250d02842fSSascha Wildner "RangeLength, DescriptorName) => Buffer", 3265943f66cSSascha Wildner "I/O Resource Descriptor macro"}, 3275943f66cSSascha Wildner {"Irq", "(InterruptTypeKeyword, InterruptLevelKeyword, ShareTypeKeyword, " 3280d02842fSSascha Wildner "DescriptorName) {InterruptList} => Buffer", 3290d02842fSSascha Wildner "Interrupt Resource Descriptor macro"}, 3305943f66cSSascha Wildner {"IrqNoFlags", "(DescriptorName) {InterruptList} => Buffer", 3310d02842fSSascha Wildner "Short Interrupt Resource Descriptor macro"}, 3320d02842fSSascha Wildner {"LAnd", "(Source1, Source2) => Boolean", 3330d02842fSSascha Wildner "Logical And"}, 3340d02842fSSascha Wildner {"LEqual", "(Source1, Source2) => Boolean", 3350d02842fSSascha Wildner "Logical Equal"}, 3360d02842fSSascha Wildner {"LGreater", "(Source1, Source2) => Boolean", 3370d02842fSSascha Wildner "Logical Greater"}, 3380d02842fSSascha Wildner {"LGreaterEqual", "(Source1, Source2) => Boolean", 3390d02842fSSascha Wildner "Logical Not less"}, 3400d02842fSSascha Wildner {"LLess", "(Source1, Source2) => Boolean", 3410d02842fSSascha Wildner "Logical Less"}, 3420d02842fSSascha Wildner {"LLessEqual", "(Source1, Source2) => Boolean", 3430d02842fSSascha Wildner "Logical Not greater"}, 3440d02842fSSascha Wildner {"LNot", "(Source) => Boolean", 3450d02842fSSascha Wildner "Logical Not"}, 3460d02842fSSascha Wildner {"LNotEqual", "(Source1, Source2) => Boolean", 3470d02842fSSascha Wildner "Logical Not equal"}, 3480d02842fSSascha Wildner {"Load", "(Object, DDBHandle)", 3490d02842fSSascha Wildner "Load differentiating definition block"}, 3500d02842fSSascha Wildner {"LoadTable", "(SignatureString, OemIdString, OemTableIdString, RootPathString, " 3510d02842fSSascha Wildner "ParameterPathString, ParameterData) => DDBHandle", 3520d02842fSSascha Wildner "Load Table from RSDT/XSDT"}, 3530d02842fSSascha Wildner {"Local", "Local0 - Local7", 3540d02842fSSascha Wildner "Method local data objects"}, 3550d02842fSSascha Wildner {"LOr", "(Source1, Source2) => Boolean", 3560d02842fSSascha Wildner "Logical Or"}, 3570d02842fSSascha Wildner {"Match", "(SearchPackage, MatchOpKeyword, MatchObject1, MatchOpKeyword, " 3580d02842fSSascha Wildner "MatchObject2, StartIndex) => Ones | Integer", 3590d02842fSSascha Wildner "Search for match in package array"}, 3600d02842fSSascha Wildner {"Memory24", "(ReadWriteKeyword, AddressMinimum, AddressMaximum, AddressAlignment, " 3610d02842fSSascha Wildner "RangeLength, DescriptorName)", 3620d02842fSSascha Wildner "Memory Resource Descriptor macro"}, 3630d02842fSSascha Wildner {"Memory32", "(ReadWriteKeyword, AddressMinimum, AddressMaximum, AddressAlignment, " 3640d02842fSSascha Wildner "RangeLength, DescriptorName)", 3650d02842fSSascha Wildner "Memory Resource Descriptor macro"}, 3660d02842fSSascha Wildner {"Memory32Fixed", "(ReadWriteKeyword, AddressBase, RangeLength, DescriptorName)", 3670d02842fSSascha Wildner "Memory Resource Descriptor macro"}, 3680d02842fSSascha Wildner {"Method", "(MethodName, NumArgs, SerializeRuleKeyword, " 3690d02842fSSascha Wildner "SyncLevel, ReturnType, ParameterTypes) " 3700d02842fSSascha Wildner "{TermList}", 3710d02842fSSascha Wildner "Declare a control method"}, 3720d02842fSSascha Wildner {"Mid", "(Source, Index, Length, Result) => Buffer or String", 3730d02842fSSascha Wildner "Return a portion of buffer or string"}, 3740d02842fSSascha Wildner {"Mod", "(Dividend, Divisor, Result) => Integer", 3750d02842fSSascha Wildner "Integer Modulo"}, 3760d02842fSSascha Wildner {"Multiply", "(Multiplicand, Multiplier, Result) => Integer", 3770d02842fSSascha Wildner "Integer Multiply"}, 3780d02842fSSascha Wildner {"Mutex", "(MutexName, SyncLevel)", 3790d02842fSSascha Wildner "Declare a mutex synchronization object"}, 3800d02842fSSascha Wildner {"Name", "(ObjectName, Object)", 3810d02842fSSascha Wildner "Declare a Named object"}, 3820d02842fSSascha Wildner {"NAnd", "(Source1, Source2, Result) => Integer", 3830d02842fSSascha Wildner "Integer Bitwise Nand"}, 3840d02842fSSascha Wildner {"NoOp", "No parameters", 3850d02842fSSascha Wildner "No operation"}, 3860d02842fSSascha Wildner {"NOr", "(Source1, Source2, Result) => Integer", 3870d02842fSSascha Wildner "Integer Bitwise Nor"}, 3880d02842fSSascha Wildner {"Not", "(Source, Result) => Integer", 3890d02842fSSascha Wildner "Integer Bitwise Not"}, 3900d02842fSSascha Wildner {"Notify", "(Object, NotificationValue)", 3910d02842fSSascha Wildner "Notify Object of event"}, 3920d02842fSSascha Wildner {"ObjectType", "(Object) => Integer", 3930d02842fSSascha Wildner "Type of object"}, 3940d02842fSSascha Wildner {"Offset", "(ByteOffset)", 3950d02842fSSascha Wildner "Change Current Field Unit Offset"}, 3960d02842fSSascha Wildner {"One", "=> Integer", 3970d02842fSSascha Wildner "Constant One Object (1)"}, 3980d02842fSSascha Wildner {"Ones", "=> Integer", 3990d02842fSSascha Wildner "Constant Ones Object (0xFFFFFFFF or 0xFFFFFFFFFFFFFFFF)"}, 4000d02842fSSascha Wildner {"OperationRegion", "(RegionName, RegionSpaceKeyword, Offset, Length)", 4010d02842fSSascha Wildner "Declare an operational region"}, 4020d02842fSSascha Wildner {"Or", "(Source1, Source2, Result) => Integer", 4030d02842fSSascha Wildner "Integer Bitwise Or"}, 4040d02842fSSascha Wildner {"Package", "(NumElements) {PackageList} => Package", 4050d02842fSSascha Wildner "Declare a package object"}, 4060d27ae55SSascha Wildner {"PowerResource", "(ResourceName, SystemLevel, ResourceOrder) {TermList}", 4070d02842fSSascha Wildner "Declare a power resource object"}, 4080d27ae55SSascha Wildner {"Processor", "(ProcessorName, ProcessorID, PBlockAddress, PblockLength) {TermList}", 4090d02842fSSascha Wildner "Declare a processor package"}, 4105943f66cSSascha Wildner {"QWordIo", "(ResourceTypeKeyword, MinKeyword, MaxKeyword, DecodeKeyword, " 4110d02842fSSascha Wildner "RangeTypeKeyword, AddressGranularity, " 4120d02842fSSascha Wildner "AddressMinimum, AddressMaximum, AddressTranslation, RangeLength, " 4130d02842fSSascha Wildner "ResourceSourceIndex, ResourceSource, DescriptorName, TypeKeyword, " 4140d02842fSSascha Wildner "TranslationKeyword)", 4155943f66cSSascha Wildner "QWord I/O Resource Descriptor macro"}, 4160d02842fSSascha Wildner {"QWordMemory", "(ResourceTypeKeyword, DecodeKeyword, MinKeyword, MaxKeyword, " 4170d02842fSSascha Wildner "MemTypeKeyword, ReadWriteKeyword, " 4180d02842fSSascha Wildner "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, " 4190d02842fSSascha Wildner "RangeLength, ResourceSourceIndex, ResourceSource, " 4200d02842fSSascha Wildner "DescriptorName, AddressKeyword, " 4210d02842fSSascha Wildner "TypeKeyword)", 4220d02842fSSascha Wildner "QWord Memory Resource Descriptor macro"}, 4230d02842fSSascha Wildner {"QWordSpace", "(ResourceType, ResourceTypeKeyword, DecodeKeyword, " 4240d02842fSSascha Wildner "MinKeyword, MaxKeyword, TypeSpecificFlags, " 4250d02842fSSascha Wildner "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, " 4260d02842fSSascha Wildner "RangeLength, ResourceSourceIndex, ResourceSource, DescriptorName)", 4270d02842fSSascha Wildner "Qword Space Resource Descriptor macro"}, 4280d02842fSSascha Wildner {"RawDataBuffer", "(BufferSize) {ByteList} => RawDataBuffer", 4290d02842fSSascha Wildner "Create a raw data buffer (does not use Buffer AML opcode)"}, 4300d02842fSSascha Wildner {"RefOf", "(Object) => ObjectReference", 4310d02842fSSascha Wildner "Create Reference to an object"}, 4320d02842fSSascha Wildner {"Register", "(AddressSpaceKeyword, RegisterBitWidth, " 4330d02842fSSascha Wildner "RegisterBitOffset, RegisterAddress, " 4340d02842fSSascha Wildner "AccessSize, DescriptorName)", 4350d02842fSSascha Wildner "Generic register Resource Descriptor macro"}, 4360d02842fSSascha Wildner {"Release", "(SyncObject)", 4370d02842fSSascha Wildner "Release a synchronization object"}, 4380d02842fSSascha Wildner {"Reset", "(SyncObject)", 4390d02842fSSascha Wildner "Reset a synchronization object"}, 4400d02842fSSascha Wildner {"ResourceTemplate", "() {ResourceMacroList} => Buffer", 4410d02842fSSascha Wildner "Resource to buffer conversion macro"}, 4420d02842fSSascha Wildner {"Return", "None | () | (ReturnArg)", 4430d02842fSSascha Wildner "Return from method execution"}, 4440d02842fSSascha Wildner {"Revision", "=> Integer", 4450d02842fSSascha Wildner "Constant revision object"}, 4460d27ae55SSascha Wildner {"Scope", "(Location) {TermList}", 4470d02842fSSascha Wildner "Open named scope "}, 4480d02842fSSascha Wildner {"ShiftLeft", "(Source, ShiftCount, Result) => Integer", 4490d02842fSSascha Wildner "Integer shift value left"}, 4500d02842fSSascha Wildner {"ShiftRight", "(Source, ShiftCount, Result) => Integer", 4510d02842fSSascha Wildner "Integer shift value right"}, 4520d02842fSSascha Wildner {"Signal", "(SyncObject)", 4530d02842fSSascha Wildner "Signal a synchronization object"}, 4540d02842fSSascha Wildner {"SizeOf", "(ObjectName) => Integer", 4550d02842fSSascha Wildner "Get the size of a buffer}, string}, or package"}, 4560d02842fSSascha Wildner {"Sleep", "(Milliseconds)", 4570d02842fSSascha Wildner "Sleep n milliseconds (yields the processor)"}, 4580d27ae55SSascha Wildner {"SpiSerialBusV2", "(DeviceSelection, PolarityKeyword, WireModeKeyword, " 4590d02842fSSascha Wildner "DataBitLength, SlaveModeKeyword, " 4600d02842fSSascha Wildner "ConnectionSpeed, ClockPolarityKeyword, ClockPhaseKeyword, " 4610d02842fSSascha Wildner "ResourceSource, ResourceSourceIndex, " 4620d27ae55SSascha Wildner "ResourceTypeKeyword, DescriptorName, Shared, RawDataBuffer() {VendorData})", 4630d02842fSSascha Wildner "SPI Serial Bus Connection Resource Descriptor Macro"}, 4640d02842fSSascha Wildner {"Stall", "(Microseconds)", 4650d02842fSSascha Wildner "Delay n microseconds (does not yield the processor)"}, 4660d02842fSSascha Wildner {"StartDependentFn", "(CompatibilityPriority, PerformancePriority) {ResourceList}", 4670d02842fSSascha Wildner "Start Dependent Function Resource Descriptor macro"}, 4680d02842fSSascha Wildner {"StartDependentFnNoPri", "() {ResourceList}", 4690d02842fSSascha Wildner "Start Dependent Function Resource Descriptor macro"}, 4700d02842fSSascha Wildner {"Store", "(Source, Destination) => DataRefObject", 4710d02842fSSascha Wildner "Store object"}, 4720d02842fSSascha Wildner {"Subtract", "(Minuend, Subtrahend, Result) => Integer", 4730d02842fSSascha Wildner "Integer Subtract"}, 4740d02842fSSascha Wildner {"Switch", "(Expression) {CaseTermList}", 4750d02842fSSascha Wildner "Select code to execute based on expression value"}, 4760d27ae55SSascha Wildner {"ThermalZone", "(ThermalZoneName) {TermList}", 4770d02842fSSascha Wildner "Declare a thermal zone package"}, 4780d02842fSSascha Wildner {"Timer", "=> Integer", 4790d02842fSSascha Wildner "Get 64-bit timer value"}, 4805943f66cSSascha Wildner {"ToBcd", "(Value, Result) => Integer", 4810d02842fSSascha Wildner "Convert Integer to BCD"}, 4820d02842fSSascha Wildner {"ToBuffer", "(Data, Result) => Buffer", 4830d02842fSSascha Wildner "Convert data type to buffer"}, 4840d02842fSSascha Wildner {"ToDecimalString", "(Data, Result) => String", 4850d02842fSSascha Wildner "Convert data type to decimal string"}, 4860d02842fSSascha Wildner {"ToHexString", "(Data, Result) => String", 4870d02842fSSascha Wildner "Convert data type to hexadecimal string"}, 4880d02842fSSascha Wildner {"ToInteger", "(Data, Result) => Integer", 4890d02842fSSascha Wildner "Convert data type to integer"}, 4900d02842fSSascha Wildner {"ToString", "(Source, Length, Result) => String", 4910d02842fSSascha Wildner "Copy ASCII string from buffer"}, 4925943f66cSSascha Wildner {"ToUuid", "(AsciiString) => Buffer", 4930d02842fSSascha Wildner "Convert Ascii string to UUID"}, 4940d27ae55SSascha Wildner {"UartSerialBusV2", "(ConnectionSpeed, ByteLengthKeyword, StopBitsKeyword, " 4950d02842fSSascha Wildner "LinesInUse, EndianKeyword, ParityKeyword, " 4960d02842fSSascha Wildner "FlowControlKeyword, ReceiveBufferSize, TransmitBufferSize, ResourceSource, " 4970d27ae55SSascha Wildner "ResourceSourceIndex, ResourceTypeKeyword, DescriptorName, Shared, " 4980d02842fSSascha Wildner "RawDataBuffer() {VendorData})", 4990d02842fSSascha Wildner "UART Serial Bus Connection Resource Descriptor Macro"}, 5000d02842fSSascha Wildner {"Unicode", "(String) => Buffer", 5010d02842fSSascha Wildner "String to Unicode conversion macro"}, 5020d02842fSSascha Wildner {"Unload", "(Handle)", 5030d02842fSSascha Wildner "Unload definition block"}, 5040d02842fSSascha Wildner {"VendorLong", "(DescriptorName) {VendorByteList}", 5050d02842fSSascha Wildner "Vendor Resource Descriptor"}, 5060d02842fSSascha Wildner {"VendorShort", "(DescriptorName) {VendorByteList}", 5070d02842fSSascha Wildner "Vendor Resource Descriptor"}, 5080d02842fSSascha Wildner {"Wait", "(SyncObject, TimeoutValue) => Boolean", 5090d02842fSSascha Wildner "Wait on an Event"}, 5100d02842fSSascha Wildner {"While", "(Predicate) {TermList}", 5110d02842fSSascha Wildner "Conditional loop"}, 5120d02842fSSascha Wildner {"WordBusNumber", "(ResourceTypeKeyword, MinKeyword, MaxKeyword, DecodeKeyword, " 5130d02842fSSascha Wildner "AddressGranularity, AddressMinimum, " 5140d02842fSSascha Wildner "AddressMaximum, AddressTranslation, RangeLength, ResourceSourceIndex, " 5150d02842fSSascha Wildner "ResourceSource, DescriptorName)", 5160d02842fSSascha Wildner "Word Bus number Resource Descriptor macro"}, 5175943f66cSSascha Wildner {"WordIo", "(ResourceTypeKeyword, MinKeyword, MaxKeyword, DecodeKeyword, " 5180d02842fSSascha Wildner "RangeTypeKeyword, AddressGranularity, " 5190d02842fSSascha Wildner "AddressMinimum, AddressMaximum, AddressTranslation, RangeLength, " 5200d02842fSSascha Wildner "ResourceSourceIndex, ResourceSource, DescriptorName, TypeKeyword, " 5210d02842fSSascha Wildner "TranslationKeyword)", 5225943f66cSSascha Wildner "Word I/O Resource Descriptor macro"}, 5230d02842fSSascha Wildner {"WordSpace", "(ResourceType, ResourceTypeKeyword, DecodeKeyword, MinKeyword, " 5240d02842fSSascha Wildner "MaxKeyword, TypeSpecificFlags, " 5250d02842fSSascha Wildner "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, " 5260d02842fSSascha Wildner "RangeLength, ResourceSourceIndex, ResourceSource, DescriptorName)", 5270d02842fSSascha Wildner "Word Space Resource Descriptor macro"}, 5285943f66cSSascha Wildner {"Xor", "(Source1, Source2, Result) => Integer", 5290d02842fSSascha Wildner "Integer Bitwise Xor"}, 5300d02842fSSascha Wildner {"Zero", "=> Integer", 5310d02842fSSascha Wildner "Constant Zero object (0)"}, 5320d02842fSSascha Wildner {NULL, NULL, NULL} 5330d02842fSSascha Wildner }; 534