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