Deleted Added
sdiff udiff text old ( 243347 ) new ( 245582 )
full compact
1/******************************************************************************
2 *
3 * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2013, 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 _ACUTILS_H
45#define _ACUTILS_H
46
47
48extern const UINT8 AcpiGbl_ResourceAmlSizes[];
49extern const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[];
50
51/* Strings used by the disassembler and debugger resource dump routines */
52
53#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
54
55extern const char *AcpiGbl_BmDecode[];
56extern const char *AcpiGbl_ConfigDecode[];
57extern const char *AcpiGbl_ConsumeDecode[];
58extern const char *AcpiGbl_DecDecode[];
59extern const char *AcpiGbl_HeDecode[];
60extern const char *AcpiGbl_IoDecode[];
61extern const char *AcpiGbl_LlDecode[];
62extern const char *AcpiGbl_MaxDecode[];
63extern const char *AcpiGbl_MemDecode[];
64extern const char *AcpiGbl_MinDecode[];
65extern const char *AcpiGbl_MtpDecode[];
66extern const char *AcpiGbl_RngDecode[];
67extern const char *AcpiGbl_RwDecode[];
68extern const char *AcpiGbl_ShrDecode[];
69extern const char *AcpiGbl_SizDecode[];
70extern const char *AcpiGbl_TrsDecode[];
71extern const char *AcpiGbl_TtpDecode[];
72extern const char *AcpiGbl_TypDecode[];
73extern const char *AcpiGbl_PpcDecode[];
74extern const char *AcpiGbl_IorDecode[];
75extern const char *AcpiGbl_DtsDecode[];
76extern const char *AcpiGbl_CtDecode[];
77extern const char *AcpiGbl_SbtDecode[];
78extern const char *AcpiGbl_AmDecode[];
79extern const char *AcpiGbl_SmDecode[];
80extern const char *AcpiGbl_WmDecode[];
81extern const char *AcpiGbl_CphDecode[];
82extern const char *AcpiGbl_CpoDecode[];
83extern const char *AcpiGbl_DpDecode[];
84extern const char *AcpiGbl_EdDecode[];
85extern const char *AcpiGbl_BpbDecode[];
86extern const char *AcpiGbl_SbDecode[];
87extern const char *AcpiGbl_FcDecode[];
88extern const char *AcpiGbl_PtDecode[];
89#endif
90
91/* Types for Resource descriptor entries */
92
93#define ACPI_INVALID_RESOURCE 0
94#define ACPI_FIXED_LENGTH 1
95#define ACPI_VARIABLE_LENGTH 2
96#define ACPI_SMALL_VARIABLE_LENGTH 3
97
98typedef
99ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) (
100 UINT8 *Aml,
101 UINT32 Length,
102 UINT32 Offset,
103 UINT8 ResourceIndex,
104 void **Context);
105
106typedef
107ACPI_STATUS (*ACPI_PKG_CALLBACK) (
108 UINT8 ObjectType,
109 ACPI_OPERAND_OBJECT *SourceObject,
110 ACPI_GENERIC_STATE *State,
111 void *Context);
112
113typedef struct acpi_pkg_info
114{
115 UINT8 *FreeSpace;
116 ACPI_SIZE Length;
117 UINT32 ObjectSpace;
118 UINT32 NumPackages;
119
120} ACPI_PKG_INFO;
121
122#define REF_INCREMENT (UINT16) 0
123#define REF_DECREMENT (UINT16) 1
124#define REF_FORCE_DELETE (UINT16) 2
125
126/* AcpiUtDumpBuffer */
127
128#define DB_BYTE_DISPLAY 1
129#define DB_WORD_DISPLAY 2
130#define DB_DWORD_DISPLAY 4
131#define DB_QWORD_DISPLAY 8
132
133/*
134 * utglobal - Global data structures and procedures
135 */
136ACPI_STATUS
137AcpiUtInitGlobals (
138 void);
139
140#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
141
142char *
143AcpiUtGetMutexName (
144 UINT32 MutexId);
145
146const char *
147AcpiUtGetNotifyName (
148 UINT32 NotifyValue);
149
150#endif
151
152char *
153AcpiUtGetTypeName (
154 ACPI_OBJECT_TYPE Type);
155
156char *
157AcpiUtGetNodeName (
158 void *Object);
159
160char *
161AcpiUtGetDescriptorName (
162 void *Object);
163
164const char *
165AcpiUtGetReferenceName (
166 ACPI_OPERAND_OBJECT *Object);
167
168char *
169AcpiUtGetObjectTypeName (
170 ACPI_OPERAND_OBJECT *ObjDesc);
171
172char *
173AcpiUtGetRegionName (
174 UINT8 SpaceId);
175
176char *
177AcpiUtGetEventName (
178 UINT32 EventId);
179
180char
181AcpiUtHexToAsciiChar (
182 UINT64 Integer,
183 UINT32 Position);
184
185BOOLEAN
186AcpiUtValidObjectType (
187 ACPI_OBJECT_TYPE Type);
188
189
190/*
191 * utinit - miscellaneous initialization and shutdown
192 */
193ACPI_STATUS
194AcpiUtHardwareInitialize (
195 void);
196
197void
198AcpiUtSubsystemShutdown (
199 void);
200
201
202/*
203 * utclib - Local implementations of C library functions
204 */
205#ifndef ACPI_USE_SYSTEM_CLIBRARY
206
207ACPI_SIZE
208AcpiUtStrlen (
209 const char *String);
210
211char *
212AcpiUtStrcpy (
213 char *DstString,
214 const char *SrcString);
215
216char *
217AcpiUtStrncpy (
218 char *DstString,
219 const char *SrcString,
220 ACPI_SIZE Count);
221
222int
223AcpiUtMemcmp (
224 const char *Buffer1,
225 const char *Buffer2,
226 ACPI_SIZE Count);
227
228int
229AcpiUtStrncmp (
230 const char *String1,
231 const char *String2,
232 ACPI_SIZE Count);
233
234int
235AcpiUtStrcmp (
236 const char *String1,
237 const char *String2);
238
239char *
240AcpiUtStrcat (
241 char *DstString,
242 const char *SrcString);
243
244char *
245AcpiUtStrncat (
246 char *DstString,
247 const char *SrcString,
248 ACPI_SIZE Count);
249
250UINT32
251AcpiUtStrtoul (
252 const char *String,
253 char **Terminator,
254 UINT32 Base);
255
256char *
257AcpiUtStrstr (
258 char *String1,
259 char *String2);
260
261void *
262AcpiUtMemcpy (
263 void *Dest,
264 const void *Src,
265 ACPI_SIZE Count);
266
267void *
268AcpiUtMemset (
269 void *Dest,
270 UINT8 Value,
271 ACPI_SIZE Count);
272
273int
274AcpiUtToUpper (
275 int c);
276
277int
278AcpiUtToLower (
279 int c);
280
281extern const UINT8 _acpi_ctype[];
282
283#define _ACPI_XA 0x00 /* extra alphabetic - not supported */
284#define _ACPI_XS 0x40 /* extra space */
285#define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */
286#define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */
287#define _ACPI_DI 0x04 /* '0'-'9' */
288#define _ACPI_LO 0x02 /* 'a'-'z' */
289#define _ACPI_PU 0x10 /* punctuation */
290#define _ACPI_SP 0x08 /* space */
291#define _ACPI_UP 0x01 /* 'A'-'Z' */
292#define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */
293
294#define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI))
295#define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP))
296#define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD))
297#define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP))
298#define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO))
299#define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU))
300#define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
301
302#endif /* !ACPI_USE_SYSTEM_CLIBRARY */
303
304#define ACPI_IS_ASCII(c) ((c) < 0x80)
305
306
307/*
308 * utcopy - Object construction and conversion interfaces
309 */
310ACPI_STATUS
311AcpiUtBuildSimpleObject(
312 ACPI_OPERAND_OBJECT *Obj,
313 ACPI_OBJECT *UserObj,
314 UINT8 *DataSpace,
315 UINT32 *BufferSpaceUsed);
316
317ACPI_STATUS
318AcpiUtBuildPackageObject (
319 ACPI_OPERAND_OBJECT *Obj,
320 UINT8 *Buffer,
321 UINT32 *SpaceUsed);
322
323ACPI_STATUS
324AcpiUtCopyIobjectToEobject (
325 ACPI_OPERAND_OBJECT *Obj,
326 ACPI_BUFFER *RetBuffer);
327
328ACPI_STATUS
329AcpiUtCopyEobjectToIobject (
330 ACPI_OBJECT *Obj,
331 ACPI_OPERAND_OBJECT **InternalObj);
332
333ACPI_STATUS
334AcpiUtCopyISimpleToIsimple (
335 ACPI_OPERAND_OBJECT *SourceObj,
336 ACPI_OPERAND_OBJECT *DestObj);
337
338ACPI_STATUS
339AcpiUtCopyIobjectToIobject (
340 ACPI_OPERAND_OBJECT *SourceDesc,
341 ACPI_OPERAND_OBJECT **DestDesc,
342 ACPI_WALK_STATE *WalkState);
343
344
345/*
346 * utcreate - Object creation
347 */
348ACPI_STATUS
349AcpiUtUpdateObjectReference (
350 ACPI_OPERAND_OBJECT *Object,
351 UINT16 Action);
352
353
354/*
355 * utdebug - Debug interfaces
356 */
357void
358AcpiUtInitStackPtrTrace (
359 void);
360
361void
362AcpiUtTrackStackPtr (
363 void);
364
365void
366AcpiUtTrace (
367 UINT32 LineNumber,
368 const char *FunctionName,
369 const char *ModuleName,
370 UINT32 ComponentId);
371
372void
373AcpiUtTracePtr (
374 UINT32 LineNumber,
375 const char *FunctionName,
376 const char *ModuleName,
377 UINT32 ComponentId,
378 void *Pointer);
379
380void
381AcpiUtTraceU32 (
382 UINT32 LineNumber,
383 const char *FunctionName,
384 const char *ModuleName,
385 UINT32 ComponentId,
386 UINT32 Integer);
387
388void
389AcpiUtTraceStr (
390 UINT32 LineNumber,
391 const char *FunctionName,
392 const char *ModuleName,
393 UINT32 ComponentId,
394 char *String);
395
396void
397AcpiUtExit (
398 UINT32 LineNumber,
399 const char *FunctionName,
400 const char *ModuleName,
401 UINT32 ComponentId);
402
403void
404AcpiUtStatusExit (
405 UINT32 LineNumber,
406 const char *FunctionName,
407 const char *ModuleName,
408 UINT32 ComponentId,
409 ACPI_STATUS Status);
410
411void
412AcpiUtValueExit (
413 UINT32 LineNumber,
414 const char *FunctionName,
415 const char *ModuleName,
416 UINT32 ComponentId,
417 UINT64 Value);
418
419void
420AcpiUtPtrExit (
421 UINT32 LineNumber,
422 const char *FunctionName,
423 const char *ModuleName,
424 UINT32 ComponentId,
425 UINT8 *Ptr);
426
427void
428AcpiUtDebugDumpBuffer (
429 UINT8 *Buffer,
430 UINT32 Count,
431 UINT32 Display,
432 UINT32 ComponentId);
433
434void
435AcpiUtDumpBuffer (
436 UINT8 *Buffer,
437 UINT32 Count,
438 UINT32 Display,
439 UINT32 Offset);
440
441void
442AcpiUtReportError (
443 char *ModuleName,
444 UINT32 LineNumber);
445
446void
447AcpiUtReportInfo (
448 char *ModuleName,
449 UINT32 LineNumber);
450
451void
452AcpiUtReportWarning (
453 char *ModuleName,
454 UINT32 LineNumber);
455
456/*
457 * utdelete - Object deletion and reference counts
458 */
459void
460AcpiUtAddReference (
461 ACPI_OPERAND_OBJECT *Object);
462
463void
464AcpiUtRemoveReference (
465 ACPI_OPERAND_OBJECT *Object);
466
467void
468AcpiUtDeleteInternalPackageObject (
469 ACPI_OPERAND_OBJECT *Object);
470
471void
472AcpiUtDeleteInternalSimpleObject (
473 ACPI_OPERAND_OBJECT *Object);
474
475void
476AcpiUtDeleteInternalObjectList (
477 ACPI_OPERAND_OBJECT **ObjList);
478
479
480/*
481 * uteval - object evaluation
482 */
483ACPI_STATUS
484AcpiUtEvaluateObject (
485 ACPI_NAMESPACE_NODE *PrefixNode,
486 char *Path,
487 UINT32 ExpectedReturnBtypes,
488 ACPI_OPERAND_OBJECT **ReturnDesc);
489
490ACPI_STATUS
491AcpiUtEvaluateNumericObject (
492 char *ObjectName,
493 ACPI_NAMESPACE_NODE *DeviceNode,
494 UINT64 *Value);
495
496ACPI_STATUS
497AcpiUtExecute_STA (
498 ACPI_NAMESPACE_NODE *DeviceNode,
499 UINT32 *StatusFlags);
500
501ACPI_STATUS
502AcpiUtExecutePowerMethods (
503 ACPI_NAMESPACE_NODE *DeviceNode,
504 const char **MethodNames,
505 UINT8 MethodCount,
506 UINT8 *OutValues);
507
508
509/*
510 * utids - device ID support
511 */
512ACPI_STATUS
513AcpiUtExecute_HID (
514 ACPI_NAMESPACE_NODE *DeviceNode,
515 ACPI_PNP_DEVICE_ID **ReturnId);
516
517ACPI_STATUS
518AcpiUtExecute_UID (
519 ACPI_NAMESPACE_NODE *DeviceNode,
520 ACPI_PNP_DEVICE_ID **ReturnId);
521
522ACPI_STATUS
523AcpiUtExecute_SUB (
524 ACPI_NAMESPACE_NODE *DeviceNode,
525 ACPI_PNP_DEVICE_ID **ReturnId);
526
527ACPI_STATUS
528AcpiUtExecute_CID (
529 ACPI_NAMESPACE_NODE *DeviceNode,
530 ACPI_PNP_DEVICE_ID_LIST **ReturnCidList);
531
532
533/*
534 * utlock - reader/writer locks
535 */
536ACPI_STATUS
537AcpiUtCreateRwLock (
538 ACPI_RW_LOCK *Lock);
539
540void
541AcpiUtDeleteRwLock (
542 ACPI_RW_LOCK *Lock);
543
544ACPI_STATUS
545AcpiUtAcquireReadLock (
546 ACPI_RW_LOCK *Lock);
547
548ACPI_STATUS
549AcpiUtReleaseReadLock (
550 ACPI_RW_LOCK *Lock);
551
552ACPI_STATUS
553AcpiUtAcquireWriteLock (
554 ACPI_RW_LOCK *Lock);
555
556void
557AcpiUtReleaseWriteLock (
558 ACPI_RW_LOCK *Lock);
559
560
561/*
562 * utobject - internal object create/delete/cache routines
563 */
564ACPI_OPERAND_OBJECT *
565AcpiUtCreateInternalObjectDbg (
566 const char *ModuleName,
567 UINT32 LineNumber,
568 UINT32 ComponentId,
569 ACPI_OBJECT_TYPE Type);
570
571void *
572AcpiUtAllocateObjectDescDbg (
573 const char *ModuleName,
574 UINT32 LineNumber,
575 UINT32 ComponentId);
576
577#define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t)
578#define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT)
579
580void
581AcpiUtDeleteObjectDesc (
582 ACPI_OPERAND_OBJECT *Object);
583
584BOOLEAN
585AcpiUtValidInternalObject (
586 void *Object);
587
588ACPI_OPERAND_OBJECT *
589AcpiUtCreatePackageObject (
590 UINT32 Count);
591
592ACPI_OPERAND_OBJECT *
593AcpiUtCreateIntegerObject (
594 UINT64 Value);
595
596ACPI_OPERAND_OBJECT *
597AcpiUtCreateBufferObject (
598 ACPI_SIZE BufferSize);
599
600ACPI_OPERAND_OBJECT *
601AcpiUtCreateStringObject (
602 ACPI_SIZE StringSize);
603
604ACPI_STATUS
605AcpiUtGetObjectSize(
606 ACPI_OPERAND_OBJECT *Obj,
607 ACPI_SIZE *ObjLength);
608
609
610/*
611 * utosi - Support for the _OSI predefined control method
612 */
613ACPI_STATUS
614AcpiUtInitializeInterfaces (
615 void);
616
617void
618AcpiUtInterfaceTerminate (
619 void);
620
621ACPI_STATUS
622AcpiUtInstallInterface (
623 ACPI_STRING InterfaceName);
624
625ACPI_STATUS
626AcpiUtRemoveInterface (
627 ACPI_STRING InterfaceName);
628
629ACPI_INTERFACE_INFO *
630AcpiUtGetInterface (
631 ACPI_STRING InterfaceName);
632
633ACPI_STATUS
634AcpiUtOsiImplementation (
635 ACPI_WALK_STATE *WalkState);
636
637
638/*
639 * utstate - Generic state creation/cache routines
640 */
641void
642AcpiUtPushGenericState (
643 ACPI_GENERIC_STATE **ListHead,
644 ACPI_GENERIC_STATE *State);
645
646ACPI_GENERIC_STATE *
647AcpiUtPopGenericState (
648 ACPI_GENERIC_STATE **ListHead);
649
650
651ACPI_GENERIC_STATE *
652AcpiUtCreateGenericState (
653 void);
654
655ACPI_THREAD_STATE *
656AcpiUtCreateThreadState (
657 void);
658
659ACPI_GENERIC_STATE *
660AcpiUtCreateUpdateState (
661 ACPI_OPERAND_OBJECT *Object,
662 UINT16 Action);
663
664ACPI_GENERIC_STATE *
665AcpiUtCreatePkgState (
666 void *InternalObject,
667 void *ExternalObject,
668 UINT16 Index);
669
670ACPI_STATUS
671AcpiUtCreateUpdateStateAndPush (
672 ACPI_OPERAND_OBJECT *Object,
673 UINT16 Action,
674 ACPI_GENERIC_STATE **StateList);
675
676ACPI_STATUS
677AcpiUtCreatePkgStateAndPush (
678 void *InternalObject,
679 void *ExternalObject,
680 UINT16 Index,
681 ACPI_GENERIC_STATE **StateList);
682
683ACPI_GENERIC_STATE *
684AcpiUtCreateControlState (
685 void);
686
687void
688AcpiUtDeleteGenericState (
689 ACPI_GENERIC_STATE *State);
690
691
692/*
693 * utmath
694 */
695ACPI_STATUS
696AcpiUtDivide (
697 UINT64 InDividend,
698 UINT64 InDivisor,
699 UINT64 *OutQuotient,
700 UINT64 *OutRemainder);
701
702ACPI_STATUS
703AcpiUtShortDivide (
704 UINT64 InDividend,
705 UINT32 Divisor,
706 UINT64 *OutQuotient,
707 UINT32 *OutRemainder);
708
709/*
710 * utmisc
711 */
712const char *
713AcpiUtValidateException (
714 ACPI_STATUS Status);
715
716BOOLEAN
717AcpiUtIsPciRootBridge (
718 char *Id);
719
720BOOLEAN
721AcpiUtIsAmlTable (
722 ACPI_TABLE_HEADER *Table);
723
724ACPI_STATUS
725AcpiUtWalkPackageTree (
726 ACPI_OPERAND_OBJECT *SourceObject,
727 void *TargetObject,
728 ACPI_PKG_CALLBACK WalkCallback,
729 void *Context);
730
731
732/* Values for Base above (16=Hex, 10=Decimal) */
733
734#define ACPI_ANY_BASE 0
735
736UINT32
737AcpiUtDwordByteSwap (
738 UINT32 Value);
739
740void
741AcpiUtSetIntegerWidth (
742 UINT8 Revision);
743
744#ifdef ACPI_DEBUG_OUTPUT
745void
746AcpiUtDisplayInitPathname (
747 UINT8 Type,
748 ACPI_NAMESPACE_NODE *ObjHandle,
749 char *Path);
750#endif
751
752
753/*
754 * utownerid - Support for Table/Method Owner IDs
755 */
756ACPI_STATUS
757AcpiUtAllocateOwnerId (
758 ACPI_OWNER_ID *OwnerId);
759
760void
761AcpiUtReleaseOwnerId (
762 ACPI_OWNER_ID *OwnerId);
763
764
765/*
766 * utresrc
767 */
768ACPI_STATUS
769AcpiUtWalkAmlResources (
770 ACPI_WALK_STATE *WalkState,
771 UINT8 *Aml,
772 ACPI_SIZE AmlLength,
773 ACPI_WALK_AML_CALLBACK UserFunction,
774 void **Context);
775
776ACPI_STATUS
777AcpiUtValidateResource (
778 ACPI_WALK_STATE *WalkState,
779 void *Aml,
780 UINT8 *ReturnIndex);
781
782UINT32
783AcpiUtGetDescriptorLength (
784 void *Aml);
785
786UINT16
787AcpiUtGetResourceLength (
788 void *Aml);
789
790UINT8
791AcpiUtGetResourceHeaderLength (
792 void *Aml);
793
794UINT8
795AcpiUtGetResourceType (
796 void *Aml);
797
798ACPI_STATUS
799AcpiUtGetResourceEndTag (
800 ACPI_OPERAND_OBJECT *ObjDesc,
801 UINT8 **EndTag);
802
803
804/*
805 * utstring - String and character utilities
806 */
807void
808AcpiUtStrupr (
809 char *SrcString);
810
811void
812AcpiUtStrlwr (
813 char *SrcString);
814
815int
816AcpiUtStricmp (
817 char *String1,
818 char *String2);
819
820ACPI_STATUS
821AcpiUtStrtoul64 (
822 char *String,
823 UINT32 Base,
824 UINT64 *RetInteger);
825
826void
827AcpiUtPrintString (
828 char *String,
829 UINT8 MaxLength);
830
831void
832UtConvertBackslashes (
833 char *Pathname);
834
835BOOLEAN
836AcpiUtValidAcpiName (
837 UINT32 Name);
838
839BOOLEAN
840AcpiUtValidAcpiChar (
841 char Character,
842 UINT32 Position);
843
844void
845AcpiUtRepairName (
846 char *Name);
847
848
849/*
850 * utmutex - mutex support
851 */
852ACPI_STATUS
853AcpiUtMutexInitialize (
854 void);
855
856void
857AcpiUtMutexTerminate (
858 void);
859
860ACPI_STATUS
861AcpiUtAcquireMutex (
862 ACPI_MUTEX_HANDLE MutexId);
863
864ACPI_STATUS
865AcpiUtReleaseMutex (
866 ACPI_MUTEX_HANDLE MutexId);
867
868
869/*
870 * utalloc - memory allocation and object caching
871 */
872ACPI_STATUS
873AcpiUtCreateCaches (
874 void);
875
876ACPI_STATUS
877AcpiUtDeleteCaches (
878 void);
879
880ACPI_STATUS
881AcpiUtValidateBuffer (
882 ACPI_BUFFER *Buffer);
883
884ACPI_STATUS
885AcpiUtInitializeBuffer (
886 ACPI_BUFFER *Buffer,
887 ACPI_SIZE RequiredLength);
888
889void *
890AcpiUtAllocate (
891 ACPI_SIZE Size,
892 UINT32 Component,
893 const char *Module,
894 UINT32 Line);
895
896void *
897AcpiUtAllocateZeroed (
898 ACPI_SIZE Size,
899 UINT32 Component,
900 const char *Module,
901 UINT32 Line);
902
903#ifdef ACPI_DBG_TRACK_ALLOCATIONS
904void *
905AcpiUtAllocateAndTrack (
906 ACPI_SIZE Size,
907 UINT32 Component,
908 const char *Module,
909 UINT32 Line);
910
911void *
912AcpiUtAllocateZeroedAndTrack (
913 ACPI_SIZE Size,
914 UINT32 Component,
915 const char *Module,
916 UINT32 Line);
917
918void
919AcpiUtFreeAndTrack (
920 void *Address,
921 UINT32 Component,
922 const char *Module,
923 UINT32 Line);
924
925void
926AcpiUtDumpAllocationInfo (
927 void);
928
929void
930AcpiUtDumpAllocations (
931 UINT32 Component,
932 const char *Module);
933
934ACPI_STATUS
935AcpiUtCreateList (
936 char *ListName,
937 UINT16 ObjectSize,
938 ACPI_MEMORY_LIST **ReturnCache);
939
940#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
941
942/*
943 * utaddress - address range check
944 */
945ACPI_STATUS
946AcpiUtAddAddressRange (
947 ACPI_ADR_SPACE_TYPE SpaceId,
948 ACPI_PHYSICAL_ADDRESS Address,
949 UINT32 Length,
950 ACPI_NAMESPACE_NODE *RegionNode);
951
952void
953AcpiUtRemoveAddressRange (
954 ACPI_ADR_SPACE_TYPE SpaceId,
955 ACPI_NAMESPACE_NODE *RegionNode);
956
957UINT32
958AcpiUtCheckAddressRange (
959 ACPI_ADR_SPACE_TYPE SpaceId,
960 ACPI_PHYSICAL_ADDRESS Address,
961 UINT32 Length,
962 BOOLEAN Warn);
963
964void
965AcpiUtDeleteAddressLists (
966 void);
967
968/*
969 * utxferror - various error/warning output functions
970 */
971void ACPI_INTERNAL_VAR_XFACE
972AcpiUtPredefinedWarning (
973 const char *ModuleName,
974 UINT32 LineNumber,
975 char *Pathname,
976 UINT8 NodeFlags,
977 const char *Format,
978 ...);
979
980void ACPI_INTERNAL_VAR_XFACE
981AcpiUtPredefinedInfo (
982 const char *ModuleName,
983 UINT32 LineNumber,
984 char *Pathname,
985 UINT8 NodeFlags,
986 const char *Format,
987 ...);
988
989void
990AcpiUtNamespaceError (
991 const char *ModuleName,
992 UINT32 LineNumber,
993 const char *InternalName,
994 ACPI_STATUS LookupStatus);
995
996void
997AcpiUtMethodError (
998 const char *ModuleName,
999 UINT32 LineNumber,
1000 const char *Message,
1001 ACPI_NAMESPACE_NODE *Node,
1002 const char *Path,
1003 ACPI_STATUS LookupStatus);
1004
1005#endif /* _ACUTILS_H */