1/******************************************************************************
2 *
3 * Name: acnamesp.h - Namespace subcomponent prototypes and defines
4 *
5 *****************************************************************************/
6
7/******************************************************************************
8 *
9 * 1. Copyright Notice
10 *
11 * Some or all of this work - Copyright (c) 1999 - 2023, 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 * Alternatively, you may choose to be licensed under the terms of the
117 * following license:
118 *
119 * Redistribution and use in source and binary forms, with or without
120 * modification, are permitted provided that the following conditions
121 * are met:
122 * 1. Redistributions of source code must retain the above copyright
123 *    notice, this list of conditions, and the following disclaimer,
124 *    without modification.
125 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
126 *    substantially similar to the "NO WARRANTY" disclaimer below
127 *    ("Disclaimer") and any redistribution must be conditioned upon
128 *    including a substantially similar Disclaimer requirement for further
129 *    binary redistribution.
130 * 3. Neither the names of the above-listed copyright holders nor the names
131 *    of any contributors may be used to endorse or promote products derived
132 *    from this software without specific prior written permission.
133 *
134 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
135 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
136 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
137 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
138 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
139 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
140 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
141 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
142 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
143 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
144 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
145 *
146 * Alternatively, you may choose to be licensed under the terms of the
147 * GNU General Public License ("GPL") version 2 as published by the Free
148 * Software Foundation.
149 *
150 *****************************************************************************/
151
152#ifndef __ACNAMESP_H__
153#define __ACNAMESP_H__
154
155
156/* To search the entire name space, pass this as SearchBase */
157
158#define ACPI_NS_ALL                 ((ACPI_HANDLE)0)
159
160/*
161 * Elements of AcpiNsProperties are bit significant
162 * and should be one-to-one with values of ACPI_OBJECT_TYPE
163 */
164#define ACPI_NS_NORMAL              0
165#define ACPI_NS_NEWSCOPE            1   /* a definition of this type opens a name scope */
166#define ACPI_NS_LOCAL               2   /* suppress search of enclosing scopes */
167
168/* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
169
170#define ACPI_NS_NO_UPSEARCH         0
171#define ACPI_NS_SEARCH_PARENT       0x0001
172#define ACPI_NS_DONT_OPEN_SCOPE     0x0002
173#define ACPI_NS_NO_PEER_SEARCH      0x0004
174#define ACPI_NS_ERROR_IF_FOUND      0x0008
175#define ACPI_NS_PREFIX_IS_SCOPE     0x0010
176#define ACPI_NS_EXTERNAL            0x0020
177#define ACPI_NS_TEMPORARY           0x0040
178#define ACPI_NS_OVERRIDE_IF_FOUND   0x0080
179#define ACPI_NS_EARLY_INIT          0x0100
180#define ACPI_NS_PREFIX_MUST_EXIST   0x0200
181
182/* Flags for AcpiNsWalkNamespace */
183
184#define ACPI_NS_WALK_NO_UNLOCK      0
185#define ACPI_NS_WALK_UNLOCK         0x01
186#define ACPI_NS_WALK_TEMP_NODES     0x02
187
188/* Object is not a package element */
189
190#define ACPI_NOT_PACKAGE_ELEMENT    ACPI_UINT32_MAX
191#define ACPI_ALL_PACKAGE_ELEMENTS   (ACPI_UINT32_MAX-1)
192
193/* Always emit warning message, not dependent on node flags */
194
195#define ACPI_WARN_ALWAYS            0
196
197
198/*
199 * nsinit - Namespace initialization
200 */
201ACPI_STATUS
202AcpiNsInitializeObjects (
203    void);
204
205ACPI_STATUS
206AcpiNsInitializeDevices (
207    UINT32                  Flags);
208
209ACPI_STATUS
210AcpiNsInitOnePackage (
211    ACPI_HANDLE             ObjHandle,
212    UINT32                  Level,
213    void                    *Context,
214    void                    **ReturnValue);
215
216/*
217 * nsload -  Namespace loading
218 */
219ACPI_STATUS
220AcpiNsLoadNamespace (
221    void);
222
223ACPI_STATUS
224AcpiNsLoadTable (
225    UINT32                  TableIndex,
226    ACPI_NAMESPACE_NODE     *Node);
227
228
229/*
230 * nswalk - walk the namespace
231 */
232ACPI_STATUS
233AcpiNsWalkNamespace (
234    ACPI_OBJECT_TYPE        Type,
235    ACPI_HANDLE             StartObject,
236    UINT32                  MaxDepth,
237    UINT32                  Flags,
238    ACPI_WALK_CALLBACK      DescendingCallback,
239    ACPI_WALK_CALLBACK      AscendingCallback,
240    void                    *Context,
241    void                    **ReturnValue);
242
243ACPI_NAMESPACE_NODE *
244AcpiNsGetNextNode (
245    ACPI_NAMESPACE_NODE     *Parent,
246    ACPI_NAMESPACE_NODE     *Child);
247
248ACPI_NAMESPACE_NODE *
249AcpiNsGetNextNodeTyped (
250    ACPI_OBJECT_TYPE        Type,
251    ACPI_NAMESPACE_NODE     *Parent,
252    ACPI_NAMESPACE_NODE     *Child);
253
254/*
255 * nsparse - table parsing
256 */
257ACPI_STATUS
258AcpiNsParseTable (
259    UINT32                  TableIndex,
260    ACPI_NAMESPACE_NODE     *StartNode);
261
262ACPI_STATUS
263AcpiNsExecuteTable (
264    UINT32                  TableIndex,
265    ACPI_NAMESPACE_NODE     *StartNode);
266
267ACPI_STATUS
268AcpiNsOneCompleteParse (
269    UINT32                  PassNumber,
270    UINT32                  TableIndex,
271    ACPI_NAMESPACE_NODE     *StartNode);
272
273
274/*
275 * nsaccess - Top-level namespace access
276 */
277ACPI_STATUS
278AcpiNsRootInitialize (
279    void);
280
281ACPI_STATUS
282AcpiNsLookup (
283    ACPI_GENERIC_STATE      *ScopeInfo,
284    char                    *Name,
285    ACPI_OBJECT_TYPE        Type,
286    ACPI_INTERPRETER_MODE   InterpreterMode,
287    UINT32                  Flags,
288    ACPI_WALK_STATE         *WalkState,
289    ACPI_NAMESPACE_NODE     **RetNode);
290
291
292/*
293 * nsalloc - Named object allocation/deallocation
294 */
295ACPI_NAMESPACE_NODE *
296AcpiNsCreateNode (
297    UINT32                  Name);
298
299void
300AcpiNsDeleteNode (
301    ACPI_NAMESPACE_NODE     *Node);
302
303void
304AcpiNsRemoveNode (
305    ACPI_NAMESPACE_NODE     *Node);
306
307void
308AcpiNsDeleteNamespaceSubtree (
309    ACPI_NAMESPACE_NODE     *ParentHandle);
310
311void
312AcpiNsDeleteNamespaceByOwner (
313    ACPI_OWNER_ID           OwnerId);
314
315void
316AcpiNsDetachObject (
317    ACPI_NAMESPACE_NODE     *Node);
318
319void
320AcpiNsDeleteChildren (
321    ACPI_NAMESPACE_NODE     *Parent);
322
323int
324AcpiNsCompareNames (
325    char                    *Name1,
326    char                    *Name2);
327
328
329/*
330 * nsconvert - Dynamic object conversion routines
331 */
332ACPI_STATUS
333AcpiNsConvertToInteger (
334    ACPI_OPERAND_OBJECT     *OriginalObject,
335    ACPI_OPERAND_OBJECT     **ReturnObject);
336
337ACPI_STATUS
338AcpiNsConvertToString (
339    ACPI_OPERAND_OBJECT     *OriginalObject,
340    ACPI_OPERAND_OBJECT     **ReturnObject);
341
342ACPI_STATUS
343AcpiNsConvertToBuffer (
344    ACPI_OPERAND_OBJECT     *OriginalObject,
345    ACPI_OPERAND_OBJECT     **ReturnObject);
346
347ACPI_STATUS
348AcpiNsConvertToUnicode (
349    ACPI_NAMESPACE_NODE     *Scope,
350    ACPI_OPERAND_OBJECT     *OriginalObject,
351    ACPI_OPERAND_OBJECT     **ReturnObject);
352
353ACPI_STATUS
354AcpiNsConvertToResource (
355    ACPI_NAMESPACE_NODE     *Scope,
356    ACPI_OPERAND_OBJECT     *OriginalObject,
357    ACPI_OPERAND_OBJECT     **ReturnObject);
358
359ACPI_STATUS
360AcpiNsConvertToReference (
361    ACPI_NAMESPACE_NODE     *Scope,
362    ACPI_OPERAND_OBJECT     *OriginalObject,
363    ACPI_OPERAND_OBJECT     **ReturnObject);
364
365
366/*
367 * nsdump - Namespace dump/print utilities
368 */
369void
370AcpiNsDumpTables (
371    ACPI_HANDLE             SearchBase,
372    UINT32                  MaxDepth);
373
374void
375AcpiNsDumpEntry (
376    ACPI_HANDLE             Handle,
377    UINT32                  DebugLevel);
378
379void
380AcpiNsDumpPathname (
381    ACPI_HANDLE             Handle,
382    const char              *Msg,
383    UINT32                  Level,
384    UINT32                  Component);
385
386void
387AcpiNsPrintPathname (
388    UINT32                  NumSegments,
389    const char              *Pathname);
390
391ACPI_STATUS
392AcpiNsDumpOneObject (
393    ACPI_HANDLE             ObjHandle,
394    UINT32                  Level,
395    void                    *Context,
396    void                    **ReturnValue);
397
398void
399AcpiNsDumpObjects (
400    ACPI_OBJECT_TYPE        Type,
401    UINT8                   DisplayType,
402    UINT32                  MaxDepth,
403    ACPI_OWNER_ID           OwnerId,
404    ACPI_HANDLE             StartHandle);
405
406void
407AcpiNsDumpObjectPaths (
408    ACPI_OBJECT_TYPE        Type,
409    UINT8                   DisplayType,
410    UINT32                  MaxDepth,
411    ACPI_OWNER_ID           OwnerId,
412    ACPI_HANDLE             StartHandle);
413
414
415/*
416 * nseval - Namespace evaluation functions
417 */
418ACPI_STATUS
419AcpiNsEvaluate (
420    ACPI_EVALUATE_INFO      *Info);
421
422
423/*
424 * nsarguments - Argument count/type checking for predefined/reserved names
425 */
426void
427AcpiNsCheckArgumentCount (
428    char                        *Pathname,
429    ACPI_NAMESPACE_NODE         *Node,
430    UINT32                      UserParamCount,
431    const ACPI_PREDEFINED_INFO  *Info);
432
433void
434AcpiNsCheckAcpiCompliance (
435    char                        *Pathname,
436    ACPI_NAMESPACE_NODE         *Node,
437    const ACPI_PREDEFINED_INFO  *Predefined);
438
439void
440AcpiNsCheckArgumentTypes (
441    ACPI_EVALUATE_INFO          *Info);
442
443
444/*
445 * nspredef - Return value checking for predefined/reserved names
446 */
447ACPI_STATUS
448AcpiNsCheckReturnValue (
449    ACPI_NAMESPACE_NODE         *Node,
450    ACPI_EVALUATE_INFO          *Info,
451    UINT32                      UserParamCount,
452    ACPI_STATUS                 ReturnStatus,
453    ACPI_OPERAND_OBJECT         **ReturnObject);
454
455ACPI_STATUS
456AcpiNsCheckObjectType (
457    ACPI_EVALUATE_INFO          *Info,
458    ACPI_OPERAND_OBJECT         **ReturnObjectPtr,
459    UINT32                      ExpectedBtypes,
460    UINT32                      PackageIndex);
461
462
463/*
464 * nsprepkg - Validation of predefined name packages
465 */
466ACPI_STATUS
467AcpiNsCheckPackage (
468    ACPI_EVALUATE_INFO          *Info,
469    ACPI_OPERAND_OBJECT         **ReturnObjectPtr);
470
471
472/*
473 * nsnames - Name and Scope manipulation
474 */
475UINT32
476AcpiNsOpensScope (
477    ACPI_OBJECT_TYPE        Type);
478
479char *
480AcpiNsGetExternalPathname (
481    ACPI_NAMESPACE_NODE     *Node);
482
483UINT32
484AcpiNsBuildNormalizedPath (
485    ACPI_NAMESPACE_NODE     *Node,
486    char                    *FullPath,
487    UINT32                  PathSize,
488    BOOLEAN                 NoTrailing);
489
490void
491AcpiNsNormalizePathname (
492    char                    *OriginalPath);
493
494char *
495AcpiNsGetNormalizedPathname (
496    ACPI_NAMESPACE_NODE     *Node,
497    BOOLEAN                 NoTrailing);
498
499char *
500AcpiNsBuildPrefixedPathname (
501    ACPI_GENERIC_STATE      *PrefixScope,
502    const char              *InternalPath);
503
504char *
505AcpiNsNameOfCurrentScope (
506    ACPI_WALK_STATE         *WalkState);
507
508ACPI_STATUS
509AcpiNsHandleToName (
510    ACPI_HANDLE             TargetHandle,
511    ACPI_BUFFER             *Buffer);
512
513ACPI_STATUS
514AcpiNsHandleToPathname (
515    ACPI_HANDLE             TargetHandle,
516    ACPI_BUFFER             *Buffer,
517    BOOLEAN                 NoTrailing);
518
519BOOLEAN
520AcpiNsPatternMatch (
521    ACPI_NAMESPACE_NODE     *ObjNode,
522    char                    *SearchFor);
523
524ACPI_STATUS
525AcpiNsGetNodeUnlocked (
526    ACPI_NAMESPACE_NODE     *PrefixNode,
527    const char              *ExternalPathname,
528    UINT32                  Flags,
529    ACPI_NAMESPACE_NODE     **OutNode);
530
531ACPI_STATUS
532AcpiNsGetNode (
533    ACPI_NAMESPACE_NODE     *PrefixNode,
534    const char              *ExternalPathname,
535    UINT32                  Flags,
536    ACPI_NAMESPACE_NODE     **OutNode);
537
538ACPI_SIZE
539AcpiNsGetPathnameLength (
540    ACPI_NAMESPACE_NODE     *Node);
541
542
543/*
544 * nsobject - Object management for namespace nodes
545 */
546ACPI_STATUS
547AcpiNsAttachObject (
548    ACPI_NAMESPACE_NODE     *Node,
549    ACPI_OPERAND_OBJECT     *Object,
550    ACPI_OBJECT_TYPE        Type);
551
552ACPI_OPERAND_OBJECT *
553AcpiNsGetAttachedObject (
554    ACPI_NAMESPACE_NODE     *Node);
555
556ACPI_OPERAND_OBJECT *
557AcpiNsGetSecondaryObject (
558    ACPI_OPERAND_OBJECT     *ObjDesc);
559
560ACPI_STATUS
561AcpiNsAttachData (
562    ACPI_NAMESPACE_NODE     *Node,
563    ACPI_OBJECT_HANDLER     Handler,
564    void                    *Data);
565
566ACPI_STATUS
567AcpiNsDetachData (
568    ACPI_NAMESPACE_NODE     *Node,
569    ACPI_OBJECT_HANDLER     Handler);
570
571ACPI_STATUS
572AcpiNsGetAttachedData (
573    ACPI_NAMESPACE_NODE     *Node,
574    ACPI_OBJECT_HANDLER     Handler,
575    void                    **Data);
576
577
578/*
579 * nsrepair - General return object repair for all
580 * predefined methods/objects
581 */
582ACPI_STATUS
583AcpiNsSimpleRepair (
584    ACPI_EVALUATE_INFO      *Info,
585    UINT32                  ExpectedBtypes,
586    UINT32                  PackageIndex,
587    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
588
589ACPI_STATUS
590AcpiNsWrapWithPackage (
591    ACPI_EVALUATE_INFO      *Info,
592    ACPI_OPERAND_OBJECT     *OriginalObject,
593    ACPI_OPERAND_OBJECT     **ObjDescPtr);
594
595ACPI_STATUS
596AcpiNsRepairNullElement (
597    ACPI_EVALUATE_INFO      *Info,
598    UINT32                  ExpectedBtypes,
599    UINT32                  PackageIndex,
600    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
601
602void
603AcpiNsRemoveNullElements (
604    ACPI_EVALUATE_INFO      *Info,
605    UINT8                   PackageType,
606    ACPI_OPERAND_OBJECT     *ObjDesc);
607
608
609/*
610 * nsrepair2 - Return object repair for specific
611 * predefined methods/objects
612 */
613ACPI_STATUS
614AcpiNsComplexRepairs (
615    ACPI_EVALUATE_INFO      *Info,
616    ACPI_NAMESPACE_NODE     *Node,
617    ACPI_STATUS             ValidateStatus,
618    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
619
620
621/*
622 * nssearch - Namespace searching and entry
623 */
624ACPI_STATUS
625AcpiNsSearchAndEnter (
626    UINT32                  EntryName,
627    ACPI_WALK_STATE         *WalkState,
628    ACPI_NAMESPACE_NODE     *Node,
629    ACPI_INTERPRETER_MODE   InterpreterMode,
630    ACPI_OBJECT_TYPE        Type,
631    UINT32                  Flags,
632    ACPI_NAMESPACE_NODE     **RetNode);
633
634ACPI_STATUS
635AcpiNsSearchOneScope (
636    UINT32                  EntryName,
637    ACPI_NAMESPACE_NODE     *Node,
638    ACPI_OBJECT_TYPE        Type,
639    ACPI_NAMESPACE_NODE     **RetNode);
640
641void
642AcpiNsInstallNode (
643    ACPI_WALK_STATE         *WalkState,
644    ACPI_NAMESPACE_NODE     *ParentNode,
645    ACPI_NAMESPACE_NODE     *Node,
646    ACPI_OBJECT_TYPE        Type);
647
648
649/*
650 * nsutils - Utility functions
651 */
652ACPI_OBJECT_TYPE
653AcpiNsGetType (
654    ACPI_NAMESPACE_NODE     *Node);
655
656UINT32
657AcpiNsLocal (
658    ACPI_OBJECT_TYPE        Type);
659
660void
661AcpiNsPrintNodePathname (
662    ACPI_NAMESPACE_NODE     *Node,
663    const char              *Msg);
664
665ACPI_STATUS
666AcpiNsBuildInternalName (
667    ACPI_NAMESTRING_INFO    *Info);
668
669void
670AcpiNsGetInternalNameLength (
671    ACPI_NAMESTRING_INFO    *Info);
672
673ACPI_STATUS
674AcpiNsInternalizeName (
675    const char              *DottedName,
676    char                    **ConvertedName);
677
678ACPI_STATUS
679AcpiNsExternalizeName (
680    UINT32                  InternalNameLength,
681    const char              *InternalName,
682    UINT32                  *ConvertedNameLength,
683    char                    **ConvertedName);
684
685ACPI_NAMESPACE_NODE *
686AcpiNsValidateHandle (
687    ACPI_HANDLE             Handle);
688
689void
690AcpiNsTerminate (
691    void);
692
693#endif /* __ACNAMESP_H__ */
694