Subversion Repositories Kolibri OS

Rev

Rev 1498 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1498 serge 1
/******************************************************************************
2
 *
3
 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4
 *
5
 *****************************************************************************/
6
 
7
/******************************************************************************
8
 *
9
 * 1. Copyright Notice
10
 *
2216 Serge 11
 * Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp.
1498 serge 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 __ACINTERP_H__
117
#define __ACINTERP_H__
118
 
119
 
120
#define ACPI_WALK_OPERANDS          (&(WalkState->Operands [WalkState->NumOperands -1]))
121
 
122
/* Macros for tables used for debug output */
123
 
124
#define ACPI_EXD_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f)
125
#define ACPI_EXD_NSOFFSET(f)        (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f)
126
#define ACPI_EXD_TABLE_SIZE(name)   (sizeof(name) / sizeof (ACPI_EXDUMP_INFO))
127
 
128
/*
129
 * If possible, pack the following structures to byte alignment, since we
130
 * don't care about performance for debug output. Two cases where we cannot
131
 * pack the structures:
132
 *
133
 * 1) Hardware does not support misaligned memory transfers
134
 * 2) Compiler does not support pointers within packed structures
135
 */
136
#if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
137
#pragma pack(1)
138
#endif
139
 
140
typedef const struct acpi_exdump_info
141
{
142
    UINT8                   Opcode;
143
    UINT8                   Offset;
144
    char                    *Name;
145
 
146
} ACPI_EXDUMP_INFO;
147
 
148
/* Values for the Opcode field above */
149
 
150
#define ACPI_EXD_INIT                   0
151
#define ACPI_EXD_TYPE                   1
152
#define ACPI_EXD_UINT8                  2
153
#define ACPI_EXD_UINT16                 3
154
#define ACPI_EXD_UINT32                 4
155
#define ACPI_EXD_UINT64                 5
156
#define ACPI_EXD_LITERAL                6
157
#define ACPI_EXD_POINTER                7
158
#define ACPI_EXD_ADDRESS                8
159
#define ACPI_EXD_STRING                 9
160
#define ACPI_EXD_BUFFER                 10
161
#define ACPI_EXD_PACKAGE                11
162
#define ACPI_EXD_FIELD                  12
163
#define ACPI_EXD_REFERENCE              13
164
 
165
/* restore default alignment */
166
 
167
#pragma pack()
168
 
169
 
170
/*
171
 * exconvrt - object conversion
172
 */
173
ACPI_STATUS
174
AcpiExConvertToInteger (
175
    ACPI_OPERAND_OBJECT     *ObjDesc,
176
    ACPI_OPERAND_OBJECT     **ResultDesc,
177
    UINT32                  Flags);
178
 
179
ACPI_STATUS
180
AcpiExConvertToBuffer (
181
    ACPI_OPERAND_OBJECT     *ObjDesc,
182
    ACPI_OPERAND_OBJECT     **ResultDesc);
183
 
184
ACPI_STATUS
185
AcpiExConvertToString (
186
    ACPI_OPERAND_OBJECT     *ObjDesc,
187
    ACPI_OPERAND_OBJECT     **ResultDesc,
188
    UINT32                  Type);
189
 
190
/* Types for ->String conversion */
191
 
192
#define ACPI_EXPLICIT_BYTE_COPY         0x00000000
193
#define ACPI_EXPLICIT_CONVERT_HEX       0x00000001
194
#define ACPI_IMPLICIT_CONVERT_HEX       0x00000002
195
#define ACPI_EXPLICIT_CONVERT_DECIMAL   0x00000003
196
 
197
ACPI_STATUS
198
AcpiExConvertToTargetType (
199
    ACPI_OBJECT_TYPE        DestinationType,
200
    ACPI_OPERAND_OBJECT     *SourceDesc,
201
    ACPI_OPERAND_OBJECT     **ResultDesc,
202
    ACPI_WALK_STATE         *WalkState);
203
 
204
 
205
/*
206
 * exdebug - AML debug object
207
 */
208
void
209
AcpiExDoDebugObject (
210
    ACPI_OPERAND_OBJECT     *SourceDesc,
211
    UINT32                  Level,
212
    UINT32                  Index);
213
 
214
 
215
/*
216
 * exfield - ACPI AML (p-code) execution - field manipulation
217
 */
218
ACPI_STATUS
219
AcpiExCommonBufferSetup (
220
    ACPI_OPERAND_OBJECT     *ObjDesc,
221
    UINT32                  BufferLength,
222
    UINT32                  *DatumCount);
223
 
224
ACPI_STATUS
225
AcpiExWriteWithUpdateRule (
226
    ACPI_OPERAND_OBJECT     *ObjDesc,
227
    UINT64                  Mask,
228
    UINT64                  FieldValue,
229
    UINT32                  FieldDatumByteOffset);
230
 
231
void
232
AcpiExGetBufferDatum(
233
    UINT64                  *Datum,
234
    void                    *Buffer,
235
    UINT32                  BufferLength,
236
    UINT32                  ByteGranularity,
237
    UINT32                  BufferOffset);
238
 
239
void
240
AcpiExSetBufferDatum (
241
    UINT64                  MergedDatum,
242
    void                    *Buffer,
243
    UINT32                  BufferLength,
244
    UINT32                  ByteGranularity,
245
    UINT32                  BufferOffset);
246
 
247
ACPI_STATUS
248
AcpiExReadDataFromField (
249
    ACPI_WALK_STATE         *WalkState,
250
    ACPI_OPERAND_OBJECT     *ObjDesc,
251
    ACPI_OPERAND_OBJECT     **RetBufferDesc);
252
 
253
ACPI_STATUS
254
AcpiExWriteDataToField (
255
    ACPI_OPERAND_OBJECT     *SourceDesc,
256
    ACPI_OPERAND_OBJECT     *ObjDesc,
257
    ACPI_OPERAND_OBJECT     **ResultDesc);
258
 
259
 
260
/*
261
 * exfldio - low level field I/O
262
 */
263
ACPI_STATUS
264
AcpiExExtractFromField (
265
    ACPI_OPERAND_OBJECT     *ObjDesc,
266
    void                    *Buffer,
267
    UINT32                  BufferLength);
268
 
269
ACPI_STATUS
270
AcpiExInsertIntoField (
271
    ACPI_OPERAND_OBJECT     *ObjDesc,
272
    void                    *Buffer,
273
    UINT32                  BufferLength);
274
 
275
ACPI_STATUS
276
AcpiExAccessRegion (
277
    ACPI_OPERAND_OBJECT     *ObjDesc,
278
    UINT32                  FieldDatumByteOffset,
279
    UINT64                  *Value,
280
    UINT32                  ReadWrite);
281
 
282
 
283
/*
284
 * exmisc - misc support routines
285
 */
286
ACPI_STATUS
287
AcpiExGetObjectReference (
288
    ACPI_OPERAND_OBJECT     *ObjDesc,
289
    ACPI_OPERAND_OBJECT     **ReturnDesc,
290
    ACPI_WALK_STATE         *WalkState);
291
 
292
ACPI_STATUS
293
AcpiExConcatTemplate (
294
    ACPI_OPERAND_OBJECT     *ObjDesc,
295
    ACPI_OPERAND_OBJECT     *ObjDesc2,
296
    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
297
    ACPI_WALK_STATE         *WalkState);
298
 
299
ACPI_STATUS
300
AcpiExDoConcatenate (
301
    ACPI_OPERAND_OBJECT     *ObjDesc,
302
    ACPI_OPERAND_OBJECT     *ObjDesc2,
303
    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
304
    ACPI_WALK_STATE         *WalkState);
305
 
306
ACPI_STATUS
307
AcpiExDoLogicalNumericOp (
308
    UINT16                  Opcode,
309
    UINT64                  Integer0,
310
    UINT64                  Integer1,
311
    BOOLEAN                 *LogicalResult);
312
 
313
ACPI_STATUS
314
AcpiExDoLogicalOp (
315
    UINT16                  Opcode,
316
    ACPI_OPERAND_OBJECT     *Operand0,
317
    ACPI_OPERAND_OBJECT     *Operand1,
318
    BOOLEAN                 *LogicalResult);
319
 
320
UINT64
321
AcpiExDoMathOp (
322
    UINT16                  Opcode,
323
    UINT64                  Operand0,
324
    UINT64                  Operand1);
325
 
326
ACPI_STATUS
327
AcpiExCreateMutex (
328
    ACPI_WALK_STATE         *WalkState);
329
 
330
ACPI_STATUS
331
AcpiExCreateProcessor (
332
    ACPI_WALK_STATE         *WalkState);
333
 
334
ACPI_STATUS
335
AcpiExCreatePowerResource (
336
    ACPI_WALK_STATE         *WalkState);
337
 
338
ACPI_STATUS
339
AcpiExCreateRegion (
340
    UINT8                   *AmlStart,
341
    UINT32                  AmlLength,
342
    UINT8                   RegionSpace,
343
    ACPI_WALK_STATE         *WalkState);
344
 
345
ACPI_STATUS
346
AcpiExCreateEvent (
347
    ACPI_WALK_STATE         *WalkState);
348
 
349
ACPI_STATUS
350
AcpiExCreateAlias (
351
    ACPI_WALK_STATE         *WalkState);
352
 
353
ACPI_STATUS
354
AcpiExCreateMethod (
355
    UINT8                   *AmlStart,
356
    UINT32                  AmlLength,
357
    ACPI_WALK_STATE         *WalkState);
358
 
359
 
360
/*
361
 * exconfig - dynamic table load/unload
362
 */
363
ACPI_STATUS
364
AcpiExLoadOp (
365
    ACPI_OPERAND_OBJECT     *ObjDesc,
366
    ACPI_OPERAND_OBJECT     *Target,
367
    ACPI_WALK_STATE         *WalkState);
368
 
369
ACPI_STATUS
370
AcpiExLoadTableOp (
371
    ACPI_WALK_STATE         *WalkState,
372
    ACPI_OPERAND_OBJECT     **ReturnDesc);
373
 
374
ACPI_STATUS
375
AcpiExUnloadTable (
376
    ACPI_OPERAND_OBJECT     *DdbHandle);
377
 
378
 
379
/*
380
 * exmutex - mutex support
381
 */
382
ACPI_STATUS
383
AcpiExAcquireMutex (
384
    ACPI_OPERAND_OBJECT     *TimeDesc,
385
    ACPI_OPERAND_OBJECT     *ObjDesc,
386
    ACPI_WALK_STATE         *WalkState);
387
 
388
ACPI_STATUS
389
AcpiExAcquireMutexObject (
390
    UINT16                  Timeout,
391
    ACPI_OPERAND_OBJECT     *ObjDesc,
392
    ACPI_THREAD_ID          ThreadId);
393
 
394
ACPI_STATUS
395
AcpiExReleaseMutex (
396
    ACPI_OPERAND_OBJECT     *ObjDesc,
397
    ACPI_WALK_STATE         *WalkState);
398
 
399
ACPI_STATUS
400
AcpiExReleaseMutexObject (
401
    ACPI_OPERAND_OBJECT     *ObjDesc);
402
 
403
void
404
AcpiExReleaseAllMutexes (
405
    ACPI_THREAD_STATE       *Thread);
406
 
407
void
408
AcpiExUnlinkMutex (
409
    ACPI_OPERAND_OBJECT     *ObjDesc);
410
 
411
 
412
/*
413
 * exprep - ACPI AML execution - prep utilities
414
 */
415
ACPI_STATUS
416
AcpiExPrepCommonFieldObject (
417
    ACPI_OPERAND_OBJECT     *ObjDesc,
418
    UINT8                   FieldFlags,
419
    UINT8                   FieldAttribute,
420
    UINT32                  FieldBitPosition,
421
    UINT32                  FieldBitLength);
422
 
423
ACPI_STATUS
424
AcpiExPrepFieldValue (
425
    ACPI_CREATE_FIELD_INFO  *Info);
426
 
427
 
428
/*
429
 * exsystem - Interface to OS services
430
 */
431
ACPI_STATUS
432
AcpiExSystemDoNotifyOp (
433
    ACPI_OPERAND_OBJECT     *Value,
434
    ACPI_OPERAND_OBJECT     *ObjDesc);
435
 
436
ACPI_STATUS
437
AcpiExSystemDoSleep(
438
    UINT64                  Time);
439
 
440
ACPI_STATUS
441
AcpiExSystemDoStall (
442
    UINT32                  Time);
443
 
444
ACPI_STATUS
445
AcpiExSystemSignalEvent(
446
    ACPI_OPERAND_OBJECT     *ObjDesc);
447
 
448
ACPI_STATUS
449
AcpiExSystemWaitEvent(
450
    ACPI_OPERAND_OBJECT     *Time,
451
    ACPI_OPERAND_OBJECT     *ObjDesc);
452
 
453
ACPI_STATUS
454
AcpiExSystemResetEvent(
455
    ACPI_OPERAND_OBJECT     *ObjDesc);
456
 
457
ACPI_STATUS
458
AcpiExSystemWaitSemaphore (
459
    ACPI_SEMAPHORE          Semaphore,
460
    UINT16                  Timeout);
461
 
462
ACPI_STATUS
463
AcpiExSystemWaitMutex (
464
    ACPI_MUTEX              Mutex,
465
    UINT16                  Timeout);
466
 
467
/*
468
 * exoparg1 - ACPI AML execution, 1 operand
469
 */
470
ACPI_STATUS
471
AcpiExOpcode_0A_0T_1R (
472
    ACPI_WALK_STATE         *WalkState);
473
 
474
ACPI_STATUS
475
AcpiExOpcode_1A_0T_0R (
476
    ACPI_WALK_STATE         *WalkState);
477
 
478
ACPI_STATUS
479
AcpiExOpcode_1A_0T_1R (
480
    ACPI_WALK_STATE         *WalkState);
481
 
482
ACPI_STATUS
483
AcpiExOpcode_1A_1T_1R (
484
    ACPI_WALK_STATE         *WalkState);
485
 
486
ACPI_STATUS
487
AcpiExOpcode_1A_1T_0R (
488
    ACPI_WALK_STATE         *WalkState);
489
 
490
/*
491
 * exoparg2 - ACPI AML execution, 2 operands
492
 */
493
ACPI_STATUS
494
AcpiExOpcode_2A_0T_0R (
495
    ACPI_WALK_STATE         *WalkState);
496
 
497
ACPI_STATUS
498
AcpiExOpcode_2A_0T_1R (
499
    ACPI_WALK_STATE         *WalkState);
500
 
501
ACPI_STATUS
502
AcpiExOpcode_2A_1T_1R (
503
    ACPI_WALK_STATE         *WalkState);
504
 
505
ACPI_STATUS
506
AcpiExOpcode_2A_2T_1R (
507
    ACPI_WALK_STATE         *WalkState);
508
 
509
 
510
/*
511
 * exoparg3 - ACPI AML execution, 3 operands
512
 */
513
ACPI_STATUS
514
AcpiExOpcode_3A_0T_0R (
515
    ACPI_WALK_STATE         *WalkState);
516
 
517
ACPI_STATUS
518
AcpiExOpcode_3A_1T_1R (
519
    ACPI_WALK_STATE         *WalkState);
520
 
521
 
522
/*
523
 * exoparg6 - ACPI AML execution, 6 operands
524
 */
525
ACPI_STATUS
526
AcpiExOpcode_6A_0T_1R (
527
    ACPI_WALK_STATE         *WalkState);
528
 
529
 
530
/*
531
 * exresolv - Object resolution and get value functions
532
 */
533
ACPI_STATUS
534
AcpiExResolveToValue (
535
    ACPI_OPERAND_OBJECT     **StackPtr,
536
    ACPI_WALK_STATE         *WalkState);
537
 
538
ACPI_STATUS
539
AcpiExResolveMultiple (
540
    ACPI_WALK_STATE         *WalkState,
541
    ACPI_OPERAND_OBJECT     *Operand,
542
    ACPI_OBJECT_TYPE        *ReturnType,
543
    ACPI_OPERAND_OBJECT     **ReturnDesc);
544
 
545
 
546
/*
547
 * exresnte - resolve namespace node
548
 */
549
ACPI_STATUS
550
AcpiExResolveNodeToValue (
551
    ACPI_NAMESPACE_NODE     **StackPtr,
552
    ACPI_WALK_STATE         *WalkState);
553
 
554
 
555
/*
556
 * exresop - resolve operand to value
557
 */
558
ACPI_STATUS
559
AcpiExResolveOperands (
560
    UINT16                  Opcode,
561
    ACPI_OPERAND_OBJECT     **StackPtr,
562
    ACPI_WALK_STATE         *WalkState);
563
 
564
 
565
/*
566
 * exdump - Interpreter debug output routines
567
 */
568
void
569
AcpiExDumpOperand (
570
    ACPI_OPERAND_OBJECT     *ObjDesc,
571
    UINT32                  Depth);
572
 
573
void
574
AcpiExDumpOperands (
575
    ACPI_OPERAND_OBJECT     **Operands,
576
    const char              *OpcodeName,
577
    UINT32                  NumOpcodes);
578
 
579
void
580
AcpiExDumpObjectDescriptor (
581
    ACPI_OPERAND_OBJECT     *Object,
582
    UINT32                  Flags);
583
 
584
void
585
AcpiExDumpNamespaceNode (
586
    ACPI_NAMESPACE_NODE     *Node,
587
    UINT32                  Flags);
588
 
589
 
590
/*
591
 * exnames - AML namestring support
592
 */
593
ACPI_STATUS
594
AcpiExGetNameString (
595
    ACPI_OBJECT_TYPE        DataType,
596
    UINT8                   *InAmlAddress,
597
    char                    **OutNameString,
598
    UINT32                  *OutNameLength);
599
 
600
 
601
/*
602
 * exstore - Object store support
603
 */
604
ACPI_STATUS
605
AcpiExStore (
606
    ACPI_OPERAND_OBJECT     *ValDesc,
607
    ACPI_OPERAND_OBJECT     *DestDesc,
608
    ACPI_WALK_STATE         *WalkState);
609
 
610
ACPI_STATUS
611
AcpiExStoreObjectToNode (
612
    ACPI_OPERAND_OBJECT     *SourceDesc,
613
    ACPI_NAMESPACE_NODE     *Node,
614
    ACPI_WALK_STATE         *WalkState,
615
    UINT8                   ImplicitConversion);
616
 
617
#define ACPI_IMPLICIT_CONVERSION        TRUE
618
#define ACPI_NO_IMPLICIT_CONVERSION     FALSE
619
 
620
 
621
/*
622
 * exstoren - resolve/store object
623
 */
624
ACPI_STATUS
625
AcpiExResolveObject (
626
    ACPI_OPERAND_OBJECT     **SourceDescPtr,
627
    ACPI_OBJECT_TYPE        TargetType,
628
    ACPI_WALK_STATE         *WalkState);
629
 
630
ACPI_STATUS
631
AcpiExStoreObjectToObject (
632
    ACPI_OPERAND_OBJECT     *SourceDesc,
633
    ACPI_OPERAND_OBJECT     *DestDesc,
634
    ACPI_OPERAND_OBJECT     **NewDesc,
635
    ACPI_WALK_STATE         *WalkState);
636
 
637
 
638
/*
639
 * exstorob - store object - buffer/string
640
 */
641
ACPI_STATUS
642
AcpiExStoreBufferToBuffer (
643
    ACPI_OPERAND_OBJECT     *SourceDesc,
644
    ACPI_OPERAND_OBJECT     *TargetDesc);
645
 
646
ACPI_STATUS
647
AcpiExStoreStringToString (
648
    ACPI_OPERAND_OBJECT     *SourceDesc,
649
    ACPI_OPERAND_OBJECT     *TargetDesc);
650
 
651
 
652
/*
653
 * excopy - object copy
654
 */
655
ACPI_STATUS
656
AcpiExCopyIntegerToIndexField (
657
    ACPI_OPERAND_OBJECT     *SourceDesc,
658
    ACPI_OPERAND_OBJECT     *TargetDesc);
659
 
660
ACPI_STATUS
661
AcpiExCopyIntegerToBankField (
662
    ACPI_OPERAND_OBJECT     *SourceDesc,
663
    ACPI_OPERAND_OBJECT     *TargetDesc);
664
 
665
ACPI_STATUS
666
AcpiExCopyDataToNamedField (
667
    ACPI_OPERAND_OBJECT     *SourceDesc,
668
    ACPI_NAMESPACE_NODE     *Node);
669
 
670
ACPI_STATUS
671
AcpiExCopyIntegerToBufferField (
672
    ACPI_OPERAND_OBJECT     *SourceDesc,
673
    ACPI_OPERAND_OBJECT     *TargetDesc);
674
 
675
 
676
/*
677
 * exutils - interpreter/scanner utilities
678
 */
679
void
680
AcpiExEnterInterpreter (
681
    void);
682
 
683
void
684
AcpiExExitInterpreter (
685
    void);
686
 
687
void
688
AcpiExReacquireInterpreter (
689
    void);
690
 
691
void
692
AcpiExRelinquishInterpreter (
693
    void);
694
 
695
void
696
AcpiExTruncateFor32bitTable (
697
    ACPI_OPERAND_OBJECT     *ObjDesc);
698
 
699
void
700
AcpiExAcquireGlobalLock (
701
    UINT32                  Rule);
702
 
703
void
704
AcpiExReleaseGlobalLock (
705
    UINT32                  Rule);
706
 
707
void
708
AcpiExEisaIdToString (
709
    char                    *Dest,
710
    UINT64                  CompressedId);
711
 
712
void
713
AcpiExIntegerToString (
714
    char                    *Dest,
715
    UINT64                  Value);
716
 
717
 
718
/*
719
 * exregion - default OpRegion handlers
720
 */
721
ACPI_STATUS
722
AcpiExSystemMemorySpaceHandler (
723
    UINT32                  Function,
724
    ACPI_PHYSICAL_ADDRESS   Address,
725
    UINT32                  BitWidth,
726
    UINT64                  *Value,
727
    void                    *HandlerContext,
728
    void                    *RegionContext);
729
 
730
ACPI_STATUS
731
AcpiExSystemIoSpaceHandler (
732
    UINT32                  Function,
733
    ACPI_PHYSICAL_ADDRESS   Address,
734
    UINT32                  BitWidth,
735
    UINT64                  *Value,
736
    void                    *HandlerContext,
737
    void                    *RegionContext);
738
 
739
ACPI_STATUS
740
AcpiExPciConfigSpaceHandler (
741
    UINT32                  Function,
742
    ACPI_PHYSICAL_ADDRESS   Address,
743
    UINT32                  BitWidth,
744
    UINT64                  *Value,
745
    void                    *HandlerContext,
746
    void                    *RegionContext);
747
 
748
ACPI_STATUS
749
AcpiExCmosSpaceHandler (
750
    UINT32                  Function,
751
    ACPI_PHYSICAL_ADDRESS   Address,
752
    UINT32                  BitWidth,
753
    UINT64                  *Value,
754
    void                    *HandlerContext,
755
    void                    *RegionContext);
756
 
757
ACPI_STATUS
758
AcpiExPciBarSpaceHandler (
759
    UINT32                  Function,
760
    ACPI_PHYSICAL_ADDRESS   Address,
761
    UINT32                  BitWidth,
762
    UINT64                  *Value,
763
    void                    *HandlerContext,
764
    void                    *RegionContext);
765
 
766
ACPI_STATUS
767
AcpiExEmbeddedControllerSpaceHandler (
768
    UINT32                  Function,
769
    ACPI_PHYSICAL_ADDRESS   Address,
770
    UINT32                  BitWidth,
771
    UINT64                  *Value,
772
    void                    *HandlerContext,
773
    void                    *RegionContext);
774
 
775
ACPI_STATUS
776
AcpiExSmBusSpaceHandler (
777
    UINT32                  Function,
778
    ACPI_PHYSICAL_ADDRESS   Address,
779
    UINT32                  BitWidth,
780
    UINT64                  *Value,
781
    void                    *HandlerContext,
782
    void                    *RegionContext);
783
 
784
 
785
ACPI_STATUS
786
AcpiExDataTableSpaceHandler (
787
    UINT32                  Function,
788
    ACPI_PHYSICAL_ADDRESS   Address,
789
    UINT32                  BitWidth,
790
    UINT64                  *Value,
791
    void                    *HandlerContext,
792
    void                    *RegionContext);
793
 
794
#endif /* __INTERP_H__ */