Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1498 serge 1
/******************************************************************************
2
 *
3
 * Name: acdisasm.h - AML disassembler
4
 *
5
 *****************************************************************************/
6
 
7
/******************************************************************************
8
 *
9
 * 1. Copyright Notice
10
 *
11
 * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp.
12
 * All rights reserved.
13
 *
14
 * 2. License
15
 *
16
 * 2.1. This is your license from Intel Corp. under its intellectual property
17
 * rights.  You may have additional license terms from the party that provided
18
 * you this software, covering your right to use that party's intellectual
19
 * property rights.
20
 *
21
 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22
 * copy of the source code appearing in this file ("Covered Code") an
23
 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24
 * base code distributed originally by Intel ("Original Intel Code") to copy,
25
 * make derivatives, distribute, use and display any portion of the Covered
26
 * Code in any form, with the right to sublicense such rights; and
27
 *
28
 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29
 * license (with the right to sublicense), under only those claims of Intel
30
 * patents that are infringed by the Original Intel Code, to make, use, sell,
31
 * offer to sell, and import the Covered Code and derivative works thereof
32
 * solely to the minimum extent necessary to exercise the above copyright
33
 * license, and in no event shall the patent license extend to any additions
34
 * to or modifications of the Original Intel Code.  No other license or right
35
 * is granted directly or by implication, estoppel or otherwise;
36
 *
37
 * The above copyright and patent license is granted only if the following
38
 * conditions are met:
39
 *
40
 * 3. Conditions
41
 *
42
 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43
 * Redistribution of source code of any substantial portion of the Covered
44
 * Code or modification with rights to further distribute source must include
45
 * the above Copyright Notice, the above License, this list of Conditions,
46
 * and the following Disclaimer and Export Compliance provision.  In addition,
47
 * Licensee must cause all Covered Code to which Licensee contributes to
48
 * contain a file documenting the changes Licensee made to create that Covered
49
 * Code and the date of any change.  Licensee must include in that file the
50
 * documentation of any changes made by any predecessor Licensee.  Licensee
51
 * must include a prominent statement that the modification is derived,
52
 * directly or indirectly, from Original Intel Code.
53
 *
54
 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55
 * Redistribution of source code of any substantial portion of the Covered
56
 * Code or modification without rights to further distribute source must
57
 * include the following Disclaimer and Export Compliance provision in the
58
 * documentation and/or other materials provided with distribution.  In
59
 * addition, Licensee may not authorize further sublicense of source of any
60
 * portion of the Covered Code, and must include terms to the effect that the
61
 * license from Licensee to its licensee is limited to the intellectual
62
 * property embodied in the software Licensee provides to its licensee, and
63
 * not to intellectual property embodied in modifications its licensee may
64
 * make.
65
 *
66
 * 3.3. Redistribution of Executable. Redistribution in executable form of any
67
 * substantial portion of the Covered Code or modification must reproduce the
68
 * above Copyright Notice, and the following Disclaimer and Export Compliance
69
 * provision in the documentation and/or other materials provided with the
70
 * distribution.
71
 *
72
 * 3.4. Intel retains all right, title, and interest in and to the Original
73
 * Intel Code.
74
 *
75
 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76
 * Intel shall be used in advertising or otherwise to promote the sale, use or
77
 * other dealings in products derived from or relating to the Covered Code
78
 * without prior written authorization from Intel.
79
 *
80
 * 4. Disclaimer and Export Compliance
81
 *
82
 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83
 * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84
 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
85
 * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
86
 * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
87
 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88
 * PARTICULAR PURPOSE.
89
 *
90
 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91
 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92
 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93
 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94
 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95
 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
96
 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97
 * LIMITED REMEDY.
98
 *
99
 * 4.3. Licensee shall not export, either directly or indirectly, any of this
100
 * software or system incorporating such software without first obtaining any
101
 * required license or other approval from the U. S. Department of Commerce or
102
 * any other agency or department of the United States Government.  In the
103
 * event Licensee exports any such software from the United States or
104
 * re-exports any such software from a foreign destination, Licensee shall
105
 * ensure that the distribution and export/re-export of the software is in
106
 * compliance with all laws, regulations, orders, or other restrictions of the
107
 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108
 * any of its subsidiaries will export/re-export any technical data, process,
109
 * software, or service, directly or indirectly, to any country for which the
110
 * United States government or any agency thereof requires an export license,
111
 * other governmental approval, or letter of assurance, without first obtaining
112
 * such license, approval or letter.
113
 *
114
 *****************************************************************************/
115
 
116
#ifndef __ACDISASM_H__
117
#define __ACDISASM_H__
118
 
119
#include "amlresrc.h"
120
 
121
 
122
#define BLOCK_NONE              0
123
#define BLOCK_PAREN             1
124
#define BLOCK_BRACE             2
125
#define BLOCK_COMMA_LIST        4
126
#define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
127
 
128
 
129
typedef const struct acpi_dmtable_info
130
{
131
    UINT8                       Opcode;
132
    UINT8                       Offset;
133
    char                        *Name;
134
    UINT8                       Flags;
135
 
136
} ACPI_DMTABLE_INFO;
137
 
138
#define DT_LENGTH                       0x01    /* Field is a subtable length */
139
#define DT_FLAG                         0x02    /* Field is a flag value */
140
#define DT_NON_ZERO                     0x04    /* Field must be non-zero */
141
 
142
/* TBD: Not used at this time */
143
 
144
#define DT_OPTIONAL                     0x08
145
#define DT_COUNT                        0x10
146
 
147
/*
148
 * Values for Opcode above.
149
 * Note: 0-7 must not change, used as a flag shift value
150
 */
151
#define ACPI_DMT_FLAG0                  0
152
#define ACPI_DMT_FLAG1                  1
153
#define ACPI_DMT_FLAG2                  2
154
#define ACPI_DMT_FLAG3                  3
155
#define ACPI_DMT_FLAG4                  4
156
#define ACPI_DMT_FLAG5                  5
157
#define ACPI_DMT_FLAG6                  6
158
#define ACPI_DMT_FLAG7                  7
159
#define ACPI_DMT_FLAGS0                 8
160
#define ACPI_DMT_FLAGS2                 9
161
#define ACPI_DMT_UINT8                  10
162
#define ACPI_DMT_UINT16                 11
163
#define ACPI_DMT_UINT24                 12
164
#define ACPI_DMT_UINT32                 13
165
#define ACPI_DMT_UINT56                 14
166
#define ACPI_DMT_UINT64                 15
167
#define ACPI_DMT_STRING                 16
168
#define ACPI_DMT_NAME4                  17
169
#define ACPI_DMT_NAME6                  18
170
#define ACPI_DMT_NAME8                  19
171
#define ACPI_DMT_CHKSUM                 20
172
#define ACPI_DMT_SPACEID                21
173
#define ACPI_DMT_GAS                    22
174
#define ACPI_DMT_ASF                    23
175
#define ACPI_DMT_DMAR                   24
176
#define ACPI_DMT_HEST                   25
177
#define ACPI_DMT_HESTNTFY               26
178
#define ACPI_DMT_HESTNTYP               27
179
#define ACPI_DMT_MADT                   28
180
#define ACPI_DMT_SRAT                   29
181
#define ACPI_DMT_EXIT                   30
182
#define ACPI_DMT_SIG                    31
183
#define ACPI_DMT_FADTPM                 32
184
#define ACPI_DMT_BUF16                  33
185
#define ACPI_DMT_IVRS                   34
186
#define ACPI_DMT_BUFFER                 35
187
#define ACPI_DMT_PCI_PATH               36
188
 
189
 
190
typedef
191
void (*ACPI_DMTABLE_HANDLER) (
192
    ACPI_TABLE_HEADER       *Table);
193
 
194
typedef
195
ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
196
    void                    **PFieldList);
197
 
198
typedef struct acpi_dmtable_data
199
{
200
    char                    *Signature;
201
    ACPI_DMTABLE_INFO       *TableInfo;
202
    ACPI_DMTABLE_HANDLER    TableHandler;
203
    ACPI_CMTABLE_HANDLER    CmTableHandler;
204
    char                    *Name;
205
 
206
} ACPI_DMTABLE_DATA;
207
 
208
 
209
typedef struct acpi_op_walk_info
210
{
211
    UINT32                  Level;
212
    UINT32                  LastLevel;
213
    UINT32                  Count;
214
    UINT32                  BitOffset;
215
    UINT32                  Flags;
216
    ACPI_WALK_STATE         *WalkState;
217
 
218
} ACPI_OP_WALK_INFO;
219
 
220
/*
221
 * TBD - another copy of this is in asltypes.h, fix
222
 */
223
#ifndef ASL_WALK_CALLBACK_DEFINED
224
typedef
225
ACPI_STATUS (*ASL_WALK_CALLBACK) (
226
    ACPI_PARSE_OBJECT           *Op,
227
    UINT32                      Level,
228
    void                        *Context);
229
#define ASL_WALK_CALLBACK_DEFINED
230
#endif
231
 
232
 
233
typedef struct acpi_resource_tag
234
{
235
    UINT32                  BitIndex;
236
    char                    *Tag;
237
 
238
} ACPI_RESOURCE_TAG;
239
 
240
/* Strings used for decoding flags to ASL keywords */
241
 
242
extern const char               *AcpiGbl_WordDecode[];
243
extern const char               *AcpiGbl_IrqDecode[];
244
extern const char               *AcpiGbl_LockRule[];
245
extern const char               *AcpiGbl_AccessTypes[];
246
extern const char               *AcpiGbl_UpdateRules[];
247
extern const char               *AcpiGbl_MatchOps[];
248
 
249
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
250
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
251
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
252
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
253
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
254
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
255
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
256
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
257
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
258
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
259
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
260
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
261
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
262
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
263
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
264
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
265
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
266
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
267
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
268
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
269
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
270
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
271
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
272
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
273
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
274
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
275
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
276
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
277
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
278
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
279
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
280
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
281
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
282
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
283
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
284
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
285
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
286
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
287
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
288
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
289
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
290
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
291
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
292
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
293
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
294
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
295
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
296
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
297
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
298
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
299
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
300
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
301
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
302
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
303
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
304
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
305
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
306
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
307
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
308
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
309
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
310
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
311
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
312
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
313
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
314
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
315
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
316
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
317
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
318
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
319
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
320
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
321
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
322
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
323
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
324
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
325
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
326
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
327
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
328
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
329
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
330
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
331
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
332
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
333
extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
334
 
335
 
336
/*
337
 * dmtable
338
 */
339
 
340
ACPI_DMTABLE_DATA *
341
AcpiDmGetTableData (
342
    char                    *Signature);
343
 
344
void
345
AcpiDmDumpDataTable (
346
    ACPI_TABLE_HEADER       *Table);
347
 
348
ACPI_STATUS
349
AcpiDmDumpTable (
350
    UINT32                  TableLength,
351
    UINT32                  TableOffset,
352
    void                    *Table,
353
    UINT32                  SubTableLength,
354
    ACPI_DMTABLE_INFO        *Info);
355
 
356
void
357
AcpiDmLineHeader (
358
    UINT32                  Offset,
359
    UINT32                  ByteLength,
360
    char                    *Name);
361
 
362
void
363
AcpiDmLineHeader2 (
364
    UINT32                  Offset,
365
    UINT32                  ByteLength,
366
    char                    *Name,
367
    UINT32                  Value);
368
 
369
 
370
/*
371
 * dmtbdump
372
 */
373
void
374
AcpiDmDumpAsf (
375
    ACPI_TABLE_HEADER       *Table);
376
 
377
void
378
AcpiDmDumpCpep (
379
    ACPI_TABLE_HEADER       *Table);
380
 
381
void
382
AcpiDmDumpDmar (
383
    ACPI_TABLE_HEADER       *Table);
384
 
385
void
386
AcpiDmDumpEinj (
387
    ACPI_TABLE_HEADER       *Table);
388
 
389
void
390
AcpiDmDumpErst (
391
    ACPI_TABLE_HEADER       *Table);
392
 
393
void
394
AcpiDmDumpFadt (
395
    ACPI_TABLE_HEADER       *Table);
396
 
397
void
398
AcpiDmDumpHest (
399
    ACPI_TABLE_HEADER       *Table);
400
 
401
void
402
AcpiDmDumpIvrs (
403
    ACPI_TABLE_HEADER       *Table);
404
 
405
void
406
AcpiDmDumpMcfg (
407
    ACPI_TABLE_HEADER       *Table);
408
 
409
void
410
AcpiDmDumpMadt (
411
    ACPI_TABLE_HEADER       *Table);
412
 
413
void
414
AcpiDmDumpMsct (
415
    ACPI_TABLE_HEADER       *Table);
416
 
417
UINT32
418
AcpiDmDumpRsdp (
419
    ACPI_TABLE_HEADER       *Table);
420
 
421
void
422
AcpiDmDumpRsdt (
423
    ACPI_TABLE_HEADER       *Table);
424
 
425
void
426
AcpiDmDumpSlit (
427
    ACPI_TABLE_HEADER       *Table);
428
 
429
void
430
AcpiDmDumpSrat (
431
    ACPI_TABLE_HEADER       *Table);
432
 
433
void
434
AcpiDmDumpWdat (
435
    ACPI_TABLE_HEADER       *Table);
436
 
437
void
438
AcpiDmDumpXsdt (
439
    ACPI_TABLE_HEADER       *Table);
440
 
441
 
442
/*
443
 * dmwalk
444
 */
445
void
446
AcpiDmDisassemble (
447
    ACPI_WALK_STATE         *WalkState,
448
    ACPI_PARSE_OBJECT       *Origin,
449
    UINT32                  NumOpcodes);
450
 
451
void
452
AcpiDmWalkParseTree (
453
    ACPI_PARSE_OBJECT       *Op,
454
    ASL_WALK_CALLBACK       DescendingCallback,
455
    ASL_WALK_CALLBACK       AscendingCallback,
456
    void                    *Context);
457
 
458
 
459
/*
460
 * dmopcode
461
 */
462
void
463
AcpiDmDisassembleOneOp (
464
    ACPI_WALK_STATE         *WalkState,
465
    ACPI_OP_WALK_INFO       *Info,
466
    ACPI_PARSE_OBJECT       *Op);
467
 
468
void
469
AcpiDmDecodeInternalObject (
470
    ACPI_OPERAND_OBJECT     *ObjDesc);
471
 
472
UINT32
473
AcpiDmListType (
474
    ACPI_PARSE_OBJECT       *Op);
475
 
476
void
477
AcpiDmMethodFlags (
478
    ACPI_PARSE_OBJECT       *Op);
479
 
480
void
481
AcpiDmFieldFlags (
482
    ACPI_PARSE_OBJECT       *Op);
483
 
484
void
485
AcpiDmAddressSpace (
486
    UINT8                   SpaceId);
487
 
488
void
489
AcpiDmRegionFlags (
490
    ACPI_PARSE_OBJECT       *Op);
491
 
492
void
493
AcpiDmMatchOp (
494
    ACPI_PARSE_OBJECT       *Op);
495
 
496
 
497
/*
498
 * dmnames
499
 */
500
UINT32
501
AcpiDmDumpName (
502
    UINT32                  Name);
503
 
504
ACPI_STATUS
505
AcpiPsDisplayObjectPathname (
506
    ACPI_WALK_STATE         *WalkState,
507
    ACPI_PARSE_OBJECT       *Op);
508
 
509
void
510
AcpiDmNamestring (
511
    char                    *Name);
512
 
513
 
514
/*
515
 * dmobject
516
 */
517
void
518
AcpiDmDisplayInternalObject (
519
    ACPI_OPERAND_OBJECT     *ObjDesc,
520
    ACPI_WALK_STATE         *WalkState);
521
 
522
void
523
AcpiDmDisplayArguments (
524
    ACPI_WALK_STATE         *WalkState);
525
 
526
void
527
AcpiDmDisplayLocals (
528
    ACPI_WALK_STATE         *WalkState);
529
 
530
void
531
AcpiDmDumpMethodInfo (
532
    ACPI_STATUS             Status,
533
    ACPI_WALK_STATE         *WalkState,
534
    ACPI_PARSE_OBJECT       *Op);
535
 
536
 
537
/*
538
 * dmbuffer
539
 */
540
void
541
AcpiDmDisasmByteList (
542
    UINT32                  Level,
543
    UINT8                   *ByteData,
544
    UINT32                  ByteCount);
545
 
546
void
547
AcpiDmByteList (
548
    ACPI_OP_WALK_INFO       *Info,
549
    ACPI_PARSE_OBJECT       *Op);
550
 
551
void
552
AcpiDmIsEisaId (
553
    ACPI_PARSE_OBJECT       *Op);
554
 
555
void
556
AcpiDmEisaId (
557
    UINT32                  EncodedId);
558
 
559
BOOLEAN
560
AcpiDmIsUnicodeBuffer (
561
    ACPI_PARSE_OBJECT       *Op);
562
 
563
BOOLEAN
564
AcpiDmIsStringBuffer (
565
    ACPI_PARSE_OBJECT       *Op);
566
 
567
 
568
/*
569
 * dmextern
570
 */
571
void
572
AcpiDmAddToExternalList (
573
    ACPI_PARSE_OBJECT       *Op,
574
    char                    *Path,
575
    UINT8                   Type,
576
    UINT32                  Value);
577
 
578
void
579
AcpiDmAddExternalsToNamespace (
580
    void);
581
 
582
UINT32
583
AcpiDmGetExternalMethodCount (
584
    void);
585
 
586
void
587
AcpiDmClearExternalList (
588
    void);
589
 
590
void
591
AcpiDmEmitExternals (
592
    void);
593
 
594
 
595
/*
596
 * dmresrc
597
 */
598
void
599
AcpiDmDumpInteger8 (
600
    UINT8                   Value,
601
    char                    *Name);
602
 
603
void
604
AcpiDmDumpInteger16 (
605
    UINT16                  Value,
606
    char                    *Name);
607
 
608
void
609
AcpiDmDumpInteger32 (
610
    UINT32                  Value,
611
    char                    *Name);
612
 
613
void
614
AcpiDmDumpInteger64 (
615
    UINT64                  Value,
616
    char                    *Name);
617
 
618
void
619
AcpiDmResourceTemplate (
620
    ACPI_OP_WALK_INFO       *Info,
621
    ACPI_PARSE_OBJECT       *Op,
622
    UINT8                   *ByteData,
623
    UINT32                  ByteCount);
624
 
625
ACPI_STATUS
626
AcpiDmIsResourceTemplate (
627
    ACPI_PARSE_OBJECT       *Op);
628
 
629
void
630
AcpiDmBitList (
631
    UINT16                  Mask);
632
 
633
void
634
AcpiDmDescriptorName (
635
    void);
636
 
637
 
638
/*
639
 * dmresrcl
640
 */
641
void
642
AcpiDmWordDescriptor (
643
    AML_RESOURCE            *Resource,
644
    UINT32                  Length,
645
    UINT32                  Level);
646
 
647
void
648
AcpiDmDwordDescriptor (
649
    AML_RESOURCE            *Resource,
650
    UINT32                  Length,
651
    UINT32                  Level);
652
 
653
void
654
AcpiDmExtendedDescriptor (
655
    AML_RESOURCE            *Resource,
656
    UINT32                  Length,
657
    UINT32                  Level);
658
 
659
void
660
AcpiDmQwordDescriptor (
661
    AML_RESOURCE            *Resource,
662
    UINT32                  Length,
663
    UINT32                  Level);
664
 
665
void
666
AcpiDmMemory24Descriptor (
667
    AML_RESOURCE            *Resource,
668
    UINT32                  Length,
669
    UINT32                  Level);
670
 
671
void
672
AcpiDmMemory32Descriptor (
673
    AML_RESOURCE            *Resource,
674
    UINT32                  Length,
675
    UINT32                  Level);
676
 
677
void
678
AcpiDmFixedMemory32Descriptor (
679
    AML_RESOURCE            *Resource,
680
    UINT32                  Length,
681
    UINT32                  Level);
682
 
683
void
684
AcpiDmGenericRegisterDescriptor (
685
    AML_RESOURCE            *Resource,
686
    UINT32                  Length,
687
    UINT32                  Level);
688
 
689
void
690
AcpiDmInterruptDescriptor (
691
    AML_RESOURCE            *Resource,
692
    UINT32                  Length,
693
    UINT32                  Level);
694
 
695
void
696
AcpiDmVendorLargeDescriptor (
697
    AML_RESOURCE            *Resource,
698
    UINT32                  Length,
699
    UINT32                  Level);
700
 
701
void
702
AcpiDmVendorCommon (
703
    char                    *Name,
704
    UINT8                   *ByteData,
705
    UINT32                  Length,
706
    UINT32                  Level);
707
 
708
 
709
/*
710
 * dmresrcs
711
 */
712
void
713
AcpiDmIrqDescriptor (
714
    AML_RESOURCE            *Resource,
715
    UINT32                  Length,
716
    UINT32                  Level);
717
 
718
void
719
AcpiDmDmaDescriptor (
720
    AML_RESOURCE            *Resource,
721
    UINT32                  Length,
722
    UINT32                  Level);
723
 
724
void
725
AcpiDmIoDescriptor (
726
    AML_RESOURCE            *Resource,
727
    UINT32                  Length,
728
    UINT32                  Level);
729
 
730
void
731
AcpiDmFixedIoDescriptor (
732
    AML_RESOURCE            *Resource,
733
    UINT32                  Length,
734
    UINT32                  Level);
735
 
736
void
737
AcpiDmStartDependentDescriptor (
738
    AML_RESOURCE            *Resource,
739
    UINT32                  Length,
740
    UINT32                  Level);
741
 
742
void
743
AcpiDmEndDependentDescriptor (
744
    AML_RESOURCE            *Resource,
745
    UINT32                  Length,
746
    UINT32                  Level);
747
 
748
void
749
AcpiDmVendorSmallDescriptor (
750
    AML_RESOURCE            *Resource,
751
    UINT32                  Length,
752
    UINT32                  Level);
753
 
754
 
755
/*
756
 * dmutils
757
 */
758
void
759
AcpiDmDecodeAttribute (
760
    UINT8                   Attribute);
761
 
762
void
763
AcpiDmIndent (
764
    UINT32                  Level);
765
 
766
BOOLEAN
767
AcpiDmCommaIfListMember (
768
    ACPI_PARSE_OBJECT       *Op);
769
 
770
void
771
AcpiDmCommaIfFieldMember (
772
    ACPI_PARSE_OBJECT       *Op);
773
 
774
 
775
/*
776
 * dmrestag
777
 */
778
void
779
AcpiDmFindResources (
780
    ACPI_PARSE_OBJECT       *Root);
781
 
782
void
783
AcpiDmCheckResourceReference (
784
    ACPI_PARSE_OBJECT       *Op,
785
    ACPI_WALK_STATE         *WalkState);
786
 
787
#endif  /* __ACDISASM_H__ */