1/******************************************************************************
2 *
3 * Module Name: ahaslops - Table of all known ASL operators
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2023, Intel Corp.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 *    notice, this list of conditions, and the following disclaimer,
16 *    without modification.
17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 *    substantially similar to the "NO WARRANTY" disclaimer below
19 *    ("Disclaimer") and any redistribution must be conditioned upon
20 *    including a substantially similar Disclaimer requirement for further
21 *    binary redistribution.
22 * 3. Neither the names of the above-listed copyright holders nor the names
23 *    of any contributors may be used to endorse or promote products derived
24 *    from this software without specific prior written permission.
25 *
26 * Alternatively, this software may be distributed under the terms of the
27 * GNU General Public License ("GPL") version 2 as published by the Free
28 * Software Foundation.
29 *
30 * NO WARRANTY
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 * POSSIBILITY OF SUCH DAMAGES.
42 */
43
44#include "acpihelp.h"
45
46/*
47 * ASL operators with syntax (directly from ACPI specification).
48 * Note: All tokens require a space separator.
49 * Long lines are automatically split during output.
50 */
51const AH_ASL_OPERATOR       Gbl_AslOperatorInfo[] =
52{
53    {"AccessAs",                "(AccessType, AccessAttribKeyword | "
54                                "ExtendedAttribKeyword (AccessLength))",
55                                "ChangeFieldUnitAccess"},
56    {"Acquire",                 "(SyncObject, TimeoutValue) => Boolean",
57                                "Acquire a mutex"},
58    {"Add",                     "(Addend1, Addend2, Result) => Integer",
59                                "Integer Add"},
60    {"Alias",                   "(SourceObject, AliasObject)",
61                                "Define a name alias"},
62    {"And",                     "(Source1, Source2, Result) => Integer",
63                                "Integer Bitwise And"},
64    {"Arg",                     "Arg0 - Arg6",
65                                "Method argument data objects"},
66    {"BankField",               "(RegionName, BankName, BankValue, "
67                                "AccessTypeKeyword, LockRuleKeyword, "
68                                "UpdateRuleKeyword) {FieldUnitList}",
69                                "Declare fields in a banked configuration object"},
70    {"Break",                   "No parameters",
71                                "Continue following the innermost enclosing While"},
72    {"BreakPoint",              "No parameters",
73                                "Used for debugging, stops execution in the debugger"},
74    {"Buffer",                  "(BufferSize) {String or ByteList} => Buffer",
75                                "Declare Buffer object"},
76    {"Case",                    "(Value) {TermList}",
77                                "Expression for conditional execution"},
78    {"Concatenate",             "(Source1, Source2, Result) => ComputationalData",
79                                "Concatenate two strings, integers or buffers"},
80    {"ConcatenateResTemplate",  "(Source1, Source2, Result) => Buffer",
81                                "Concatenate two resource templates"},
82    {"CondRefOf",               "(Source, Result) => Boolean",
83                                "Conditional reference to an object"},
84    {"Connection",              "(ResourceMacro)",
85                                "Associate connection with FieldUnits within a Field object"},
86    {"Continue",                "No parameters",
87                                "Continue innermost enclosing While loop"},
88    {"CopyObject",              "(Source, Destination) => DataRefObject",
89                                "Copy and existing object"},
90    {"CreateBitField",          "(SourceBuffer, BitIndex, BitFieldName)",
91                                "Declare a bit field object of a buffer object"},
92    {"CreateByteField",         "(SourceBuffer, ByteIndex, ByteFieldName)",
93                                "Declare a byte field object of a buffer object"},
94    {"CreateDWordField",        "(SourceBuffer, ByteIndex, DWordFieldName)",
95                                "Declare a DWord field object of a buffer object"},
96    {"CreateField",             "(SourceBuffer, BitIndex, NumBits, FieldName)",
97                                "Declare an arbitrary length bit field of a buffer object"},
98    {"CreateQWordField",        "(SourceBuffer, ByteIndex, QWordFieldName)",
99                                "Declare a QWord field object of a buffer object"},
100    {"CreateWordField",         "(SourceBuffer, ByteIndex, WordFieldName)",
101                                "Declare a Word field object of a buffer object"},
102    {"DataTableRegion",         "(RegionName, SignatureString, OemIDString, OemTableIDString)",
103                                "Declare a Data Table Region"},
104    {"Debug",                   "No parameters",
105                                "Debugger output"},
106    {"Decrement",               "(Minuend) => Integer",
107                                "Decrement an Integer"},
108    {"Default",                 "{TermList}",
109                                "Default execution path in Switch()"},
110    {"DefinitionBlock",         "(AmlFileName, TableSignature, ComplianceRevision, "
111                                "OemId, TableId, OemRevision) {TermList}",
112                                "Declare a Definition Block"},
113    {"DerefOf",                 "(Source) => Object",
114                                "Dereference an object reference"},
115    {"Device",                  "(DeviceName) {TermList}",
116                                "Declare a bus/device object"},
117    {"Divide",                  "(Dividend, Divisor, Remainder, Result) => Integer",
118                                "Integer Divide"},
119    {"Dma",                     "(DmaTypeKeyword, BusMasterKeyword, XferTypeKeyword, "
120                                "DescriptorName) {DmaChannelList} => Buffer",
121                                "DMA Resource Descriptor macro"},
122    {"DWordIo",                 "(ResourceTypeKeyword, MinKeyword, MaxKeyword, "
123                                "DecodeKeyword, RangeTypeKeyword, AddressGranularity, "
124                                "AddressMinimum, AddressMaximum, AddressTranslation, "
125                                "RangeLength, ResourceSourceIndex, "
126                                "ResourceSource, DescriptorName, TypeKeyword, TranslationKeyword)",
127                                "DWord I/O Resource Descriptor macro"},
128    {"DWordMemory",             "(ResourceTypeKeyword, DecodeKeyword, MinKeyword, "
129                                "MaxKeyword, MemTypeKeyword, ReadWriteKeyword, "
130                                "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, "
131                                "RangeLength, ResourceSourceIndex, ResourceSource, DescriptorName, AddressKeyword, "
132                                "TypeKeyword)",
133                                "DWord Memory Resource Descriptor macro"},
134    {"DWordSpace",              "(ResourceType, ResourceTypeKeyword, DecodeKeyword, "
135                                "MinKeyword, MaxKeyword, TypeSpecificFlags, "
136                                "AddressGranularity, AddressMinimum, AddressMaximum, "
137                                "AddressTranslation, RangeLength, "
138                                "ResourceSourceIndex, ResourceSource, DescriptorName)",
139                                "DWord Space Resource Descriptor macro"},
140    {"EisaId",                  "(EisaIdString) => DWordConst",
141                                "EISA ID String to Integer conversion macro"},
142    {"Else",                    "{TermList}",
143                                "Alternate conditional execution"},
144    {"ElseIf",                  "(Predicate)",
145                                "Conditional execution"},
146    {"EndDependentFn",          "() => Buffer",
147                                "End Dependent Function Resource Descriptor macro"},
148    {"Event",                   "(EventName)",
149                                "Declare an event synchronization object"},
150    {"ExtendedIo",              "(ResourceTypeKeyword, MinKeyword, MaxKeyword, "
151                                "DecodeKeyword, RangeTypeKeyword, AddressGranularity, "
152                                "AddressMinimum, AddressMaximum, AddressTranslation, RangeLength, "
153                                "TypeSpecificAttributes, DescriptorName, TypeKeyword, TranslationKeyword)",
154                                "Extended I/O Resource Descriptor macro"},
155    {"ExtendedMemory",          "(ResourceTypeKeyword, DecodeKeyword, MinKeyword, "
156                                "MaxKeyword, MemTypeKeyword, ReadWriteKeyword, "
157                                "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, "
158                                "RangeLength, TypeSpecificAttributes, DescriptorName, "
159                                "AddressKeyword, TypeKeyword)",
160                                "Extended Memory Resource Descriptor macro"},
161    {"ExtendedSpace",           "(ResourceType, ResourceTypeKeyword, DecodeKeyword, "
162                                "MinKeyword, MaxKeyword, TypeSpecificFlags, "
163                                "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, "
164                                "RangeLength, TypeSpecificAttributes, DescriptorName)",
165                                "Extended Space Resource Descriptor macro"},
166    {"External",                "(ObjectName, ObjectTypeKeyword, ReturnType, ParameterTypes)",
167                                "Declare external objects"},
168    {"Fatal",                   "(Type, Code, Arg)",
169                                "Fatal error check"},
170    {"Field",                   "(RegionName, AccessTypeKeyword, LockRuleKeyword, "
171                                "UpdateRuleKeyword) {FieldUnitList}",
172                                "Declare fields of an operation region object"},
173    {"FindSetLeftBit",          "(Source, Result) => Integer",
174                                "Index of first least significant bit set"},
175    {"FindSetRightBit",         "(Source, Result) => Integer",
176                                "Index of first most significant bit set"},
177    {"FixedDma",                "(DmaRequestLine, Channel, TransferWidthKeyword, DescriptorName) => Buffer",
178                                "Fixed DMA Resource Descriptor macro"},
179    {"FixedIo",                 "(AddressBase, RangeLength, DescriptorName) => Buffer",
180                                "Fixed I/O Resource Descriptor macro"},
181    {"FromBcd",                 "(BcdValue, Result) => Integer",
182                                "Convert from BCD to numeric"},
183    {"Function",                "(FunctionName, ReturnType, ParameterTypes) {TermList}",
184                                "Declare control method"},
185    {"GpioInt",                 "(InterruptTypeKeyword, InterruptLevelKeyword, "
186                                "ShareTypeKeyword, PinConfigKeyword, "
187                                "DebounceTimeout, ResourceSource, "
188                                "ResourceSourceIndex, ResourceTypeKeyword, DescriptorName, "
189                                "RawDataBuffer() {VendorData}) {Pin}",
190                                "GPIO Interrupt Connection Resource Descriptor Macro"},
191    {"GpioIo",                  "(ShareTypeKeyword, PinConfigKeyword, DebounceTimeout, DriveStrength, "
192                                "IoRestrictionKeyword, ResourceSource, "
193                                "ResourceSourceIndex, ResourceTypeKeyword, DescriptorName, "
194                                "RawDataBuffer() {VendorData}) {PinList}",
195                                "GPIO I/O Connection Resource Descriptor Macro"},
196    {"I2cSerialBusV2",           "(SlaveAddress, SlaveModeKeyword, ConnectionSpeed, "
197                                "AddressingModeKeyword, ResourceSource, "
198                                "ResourceSourceIndex, ResourceTypeKeyword, DescriptorName, Shared, "
199                                "RawDataBuffer() {VendorData})",
200                                "I2C Serial Bus Connection Resource Descriptor Macro"},
201    {"If",                      "(Predicate) {TermList}",
202                                "Conditional execution"},
203    {"Include",                 "(FilePathName)",
204                                "Include another ASL file"},
205    {"Increment",               "(Addend) => Integer",
206                                "Increment a Integer"},
207    {"Index",                   "(Source, Index, Destination) => ObjectReference",
208                                "Indexed Reference to member object"},
209    {"IndexField",              "(IndexName, DataName, AccessTypeKeyword, LockRuleKeyword, "
210                                "UpdateRuleKeyword) {FieldUnitList}",
211                                "Declare Index/Data Fields"},
212    {"Interrupt",               "(ResourceTypeKeyword, InterruptTypeKeyword, InterruptLevelKeyword, "
213                                "ShareTypeKeyword, ResourceSourceIndex, "
214                                "ResourceSource, DescriptorName) {InterruptList} => Buffer",
215                                "Interrupt Resource Descriptor macro"},
216    {"Io",                      "(IoDecodeKeyword, AddressMin, AddressMax, AddressAlignment, "
217                                "RangeLength, DescriptorName) => Buffer",
218                                "I/O Resource Descriptor macro"},
219    {"Irq",                     "(InterruptTypeKeyword, InterruptLevelKeyword, ShareTypeKeyword, "
220                                "DescriptorName) {InterruptList} => Buffer",
221                                "Interrupt Resource Descriptor macro"},
222    {"IrqNoFlags",              "(DescriptorName) {InterruptList} => Buffer",
223                                "Short Interrupt Resource Descriptor macro"},
224    {"LAnd",                    "(Source1, Source2) => Boolean",
225                                "Logical And"},
226    {"LEqual",                  "(Source1, Source2) => Boolean",
227                                "Logical Equal"},
228    {"LGreater",                "(Source1, Source2) => Boolean",
229                                "Logical Greater"},
230    {"LGreaterEqual",           "(Source1, Source2) => Boolean",
231                                "Logical Not less"},
232    {"LLess",                   "(Source1, Source2) => Boolean",
233                                "Logical Less"},
234    {"LLessEqual",              "(Source1, Source2) => Boolean",
235                                "Logical Not greater"},
236    {"LNot",                    "(Source) => Boolean",
237                                "Logical Not"},
238    {"LNotEqual",               "(Source1, Source2) => Boolean",
239                                "Logical Not equal"},
240    {"Load",                    "(Object, DDBHandle)",
241                                "Load differentiating definition block"},
242    {"LoadTable",               "(SignatureString, OemIdString, OemTableIdString, RootPathString, "
243                                "ParameterPathString, ParameterData) => DDBHandle",
244                                "Load Table from RSDT/XSDT"},
245    {"Local",                   "Local0 - Local7",
246                                "Method local data objects"},
247    {"LOr",                     "(Source1, Source2) => Boolean",
248                                "Logical Or"},
249    {"Match",                   "(SearchPackage, MatchOpKeyword, MatchObject1, MatchOpKeyword, "
250                                "MatchObject2, StartIndex) => Ones | Integer",
251                                "Search for match in package array"},
252    {"Memory24",                "(ReadWriteKeyword, AddressMinimum, AddressMaximum, AddressAlignment, "
253                                "RangeLength, DescriptorName)",
254                                "Memory Resource Descriptor macro"},
255    {"Memory32",                "(ReadWriteKeyword, AddressMinimum, AddressMaximum, AddressAlignment, "
256                                "RangeLength, DescriptorName)",
257                                "Memory Resource Descriptor macro"},
258    {"Memory32Fixed",           "(ReadWriteKeyword, AddressBase, RangeLength, DescriptorName)",
259                                "Memory Resource Descriptor macro"},
260    {"Method",                  "(MethodName, NumArgs, SerializeRuleKeyword, "
261                                "SyncLevel, ReturnType, ParameterTypes) "
262                                "{TermList}",
263                                "Declare a control method"},
264    {"Mid",                     "(Source, Index, Length, Result) => Buffer or String",
265                                "Return a portion of buffer or string"},
266    {"Mod",                     "(Dividend, Divisor, Result) => Integer",
267                                "Integer Modulo"},
268    {"Multiply",                "(Multiplicand, Multiplier, Result) => Integer",
269                                "Integer Multiply"},
270    {"Mutex",                   "(MutexName, SyncLevel)",
271                                "Declare a mutex synchronization object"},
272    {"Name",                    "(ObjectName, Object)",
273                                "Declare a Named object"},
274    {"NAnd",                    "(Source1, Source2, Result) => Integer",
275                                "Integer Bitwise Nand"},
276    {"NoOp",                    "No parameters",
277                                "No operation"},
278    {"NOr",                     "(Source1, Source2, Result) => Integer",
279                                "Integer Bitwise Nor"},
280    {"Not",                     "(Source, Result) => Integer",
281                                "Integer Bitwise Not"},
282    {"Notify",                  "(Object, NotificationValue)",
283                                "Notify Object of event"},
284    {"ObjectType",              "(Object) => Integer",
285                                "Type of object"},
286    {"Offset",                  "(ByteOffset)",
287                                "Change Current Field Unit Offset"},
288    {"One",                     "=> Integer",
289                                "Constant One Object (1)"},
290    {"Ones",                    "=> Integer",
291                                "Constant Ones Object (0xFFFFFFFF or 0xFFFFFFFFFFFFFFFF)"},
292    {"OperationRegion",         "(RegionName, RegionSpaceKeyword, Offset, Length)",
293                                "Declare an operational region"},
294    {"Or",                      "(Source1, Source2, Result) => Integer",
295                                "Integer Bitwise Or"},
296    {"Package",                 "(NumElements) {PackageList} => Package",
297                                "Declare a package object"},
298    {"PowerResource",           "(ResourceName, SystemLevel, ResourceOrder) {TermList}",
299                                "Declare a power resource object"},
300    {"Processor",               "(ProcessorName, ProcessorID, PBlockAddress, PblockLength) {TermList}",
301                                "Declare a processor package"},
302    {"QWordIo",                 "(ResourceTypeKeyword, MinKeyword, MaxKeyword, DecodeKeyword, "
303                                "RangeTypeKeyword, AddressGranularity, "
304                                "AddressMinimum, AddressMaximum, AddressTranslation, RangeLength, "
305                                "ResourceSourceIndex, ResourceSource, DescriptorName, TypeKeyword, "
306                                "TranslationKeyword)",
307                                "QWord I/O Resource Descriptor macro"},
308    {"QWordMemory",             "(ResourceTypeKeyword, DecodeKeyword, MinKeyword, MaxKeyword, "
309                                "MemTypeKeyword, ReadWriteKeyword, "
310                                "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, "
311                                "RangeLength, ResourceSourceIndex, ResourceSource, "
312                                "DescriptorName, AddressKeyword, "
313                                "TypeKeyword)",
314                                "QWord Memory Resource Descriptor macro"},
315    {"QWordSpace",              "(ResourceType, ResourceTypeKeyword, DecodeKeyword, "
316                                "MinKeyword, MaxKeyword, TypeSpecificFlags, "
317                                "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, "
318                                "RangeLength, ResourceSourceIndex, ResourceSource, DescriptorName)",
319                                "Qword Space Resource Descriptor macro"},
320    {"RawDataBuffer",           "(BufferSize) {ByteList} => RawDataBuffer",
321                                "Create a raw data buffer (does not use Buffer AML opcode)"},
322    {"RefOf",                   "(Object) => ObjectReference",
323                                "Create Reference to an object"},
324    {"Register",                "(AddressSpaceKeyword, RegisterBitWidth, "
325                                "RegisterBitOffset, RegisterAddress, "
326                                "AccessSize, DescriptorName)",
327                                "Generic register Resource Descriptor macro"},
328    {"Release",                 "(SyncObject)",
329                                "Release a synchronization object"},
330    {"Reset",                   "(SyncObject)",
331                                "Reset a synchronization object"},
332    {"ResourceTemplate",        "() {ResourceMacroList} => Buffer",
333                                "Resource to buffer conversion macro"},
334    {"Return",                  "None | () | (ReturnArg)",
335                                "Return from method execution"},
336    {"Revision",                "=> Integer",
337                                "Constant revision object"},
338    {"Scope",                   "(Location) {TermList}",
339                                "Open named scope "},
340    {"ShiftLeft",               "(Source, ShiftCount, Result) => Integer",
341                                "Integer shift value left"},
342    {"ShiftRight",              "(Source, ShiftCount, Result) => Integer",
343                                "Integer shift value right"},
344    {"Signal",                  "(SyncObject)",
345                                "Signal a synchronization object"},
346    {"SizeOf",                  "(ObjectName) => Integer",
347                                "Get the size of a buffer}, string}, or package"},
348    {"Sleep",                   "(Milliseconds)",
349                                "Sleep n milliseconds (yields the processor)"},
350    {"SpiSerialBusV2",          "(DeviceSelection, PolarityKeyword, WireModeKeyword, "
351                                "DataBitLength, SlaveModeKeyword, "
352                                "ConnectionSpeed, ClockPolarityKeyword, ClockPhaseKeyword, "
353                                "ResourceSource, ResourceSourceIndex, "
354                                "ResourceTypeKeyword, DescriptorName, Shared, RawDataBuffer() {VendorData})",
355                                "SPI Serial Bus Connection Resource Descriptor Macro"},
356    {"Stall",                   "(Microseconds)",
357                                "Delay n microseconds (does not yield the processor)"},
358    {"StartDependentFn",        "(CompatibilityPriority, PerformancePriority) {ResourceList}",
359                                "Start Dependent Function Resource Descriptor macro"},
360    {"StartDependentFnNoPri",   "() {ResourceList}",
361                                "Start Dependent Function Resource Descriptor macro"},
362    {"Store",                   "(Source, Destination) => DataRefObject",
363                                "Store object"},
364    {"Subtract",                "(Minuend, Subtrahend, Result) => Integer",
365                                "Integer Subtract"},
366    {"Switch",                  "(Expression) {CaseTermList}",
367                                "Select code to execute based on expression value"},
368    {"ThermalZone",             "(ThermalZoneName) {TermList}",
369                                "Declare a thermal zone package"},
370    {"Timer",                   "=> Integer",
371                                "Get 64-bit timer value"},
372    {"ToBcd",                   "(Value, Result) => Integer",
373                                "Convert Integer to BCD"},
374    {"ToBuffer",                "(Data, Result) => Buffer",
375                                "Convert data type to buffer"},
376    {"ToDecimalString",         "(Data, Result) => String",
377                                "Convert data type to decimal string"},
378    {"ToHexString",             "(Data, Result) => String",
379                                "Convert data type to hexadecimal string"},
380    {"ToInteger",               "(Data, Result) => Integer",
381                                "Convert data type to integer"},
382    {"ToString",                "(Source, Length, Result) => String",
383                                "Copy ASCII string from buffer"},
384    {"ToUuid",                  "(AsciiString) => Buffer",
385                                "Convert Ascii string to UUID"},
386    {"UartSerialBusV2",         "(ConnectionSpeed, ByteLengthKeyword, StopBitsKeyword, "
387                                "LinesInUse, EndianKeyword, ParityKeyword, "
388                                "FlowControlKeyword, ReceiveBufferSize, TransmitBufferSize, ResourceSource, "
389                                "ResourceSourceIndex, ResourceTypeKeyword, DescriptorName, Shared, "
390                                "RawDataBuffer() {VendorData})",
391                                "UART Serial Bus Connection Resource Descriptor Macro"},
392    {"Unicode",                 "(String) => Buffer",
393                                "String to Unicode conversion macro"},
394    {"Unload",                  "(Handle)",
395                                "Unload definition block"},
396    {"VendorLong",              "(DescriptorName) {VendorByteList}",
397                                "Vendor Resource Descriptor"},
398    {"VendorShort",             "(DescriptorName) {VendorByteList}",
399                                "Vendor Resource Descriptor"},
400    {"Wait",                    "(SyncObject, TimeoutValue) => Boolean",
401                                "Wait on an Event"},
402    {"While",                   "(Predicate) {TermList}",
403                                "Conditional loop"},
404    {"WordBusNumber",           "(ResourceTypeKeyword, MinKeyword, MaxKeyword, DecodeKeyword, "
405                                "AddressGranularity, AddressMinimum, "
406                                "AddressMaximum, AddressTranslation, RangeLength, ResourceSourceIndex, "
407                                "ResourceSource, DescriptorName)",
408                                "Word Bus number Resource Descriptor macro"},
409    {"WordIo",                  "(ResourceTypeKeyword, MinKeyword, MaxKeyword, DecodeKeyword, "
410                                "RangeTypeKeyword, AddressGranularity, "
411                                "AddressMinimum, AddressMaximum, AddressTranslation, RangeLength, "
412                                "ResourceSourceIndex, ResourceSource, DescriptorName, TypeKeyword, "
413                                "TranslationKeyword)",
414                                "Word I/O Resource Descriptor macro"},
415    {"WordSpace",               "(ResourceType, ResourceTypeKeyword, DecodeKeyword, MinKeyword, "
416                                "MaxKeyword, TypeSpecificFlags, "
417                                "AddressGranularity, AddressMinimum, AddressMaximum, AddressTranslation, "
418                                "RangeLength, ResourceSourceIndex, ResourceSource, DescriptorName)",
419                                "Word Space Resource Descriptor macro"},
420    {"Xor",                     "(Source1, Source2, Result) => Integer",
421                                "Integer Bitwise Xor"},
422    {"Zero",                    "=> Integer",
423                                "Constant Zero object (0)"},
424    {NULL, NULL, NULL}
425};
426