167754Smsmith/******************************************************************************
267754Smsmith *
367754Smsmith * Name: acnamesp.h - Namespace subcomponent prototypes and defines
467754Smsmith *
567754Smsmith *****************************************************************************/
667754Smsmith
7217365Sjkim/*
8306536Sjkim * Copyright (C) 2000 - 2016, Intel Corp.
970243Smsmith * All rights reserved.
1067754Smsmith *
11217365Sjkim * Redistribution and use in source and binary forms, with or without
12217365Sjkim * modification, are permitted provided that the following conditions
13217365Sjkim * are met:
14217365Sjkim * 1. Redistributions of source code must retain the above copyright
15217365Sjkim *    notice, this list of conditions, and the following disclaimer,
16217365Sjkim *    without modification.
17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18217365Sjkim *    substantially similar to the "NO WARRANTY" disclaimer below
19217365Sjkim *    ("Disclaimer") and any redistribution must be conditioned upon
20217365Sjkim *    including a substantially similar Disclaimer requirement for further
21217365Sjkim *    binary redistribution.
22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names
23217365Sjkim *    of any contributors may be used to endorse or promote products derived
24217365Sjkim *    from this software without specific prior written permission.
2567754Smsmith *
26217365Sjkim * Alternatively, this software may be distributed under the terms of the
27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free
28217365Sjkim * Software Foundation.
2967754Smsmith *
30217365Sjkim * NO WARRANTY
31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41217365Sjkim * POSSIBILITY OF SUCH DAMAGES.
42217365Sjkim */
4367754Smsmith
4467754Smsmith#ifndef __ACNAMESP_H__
4567754Smsmith#define __ACNAMESP_H__
4667754Smsmith
4767754Smsmith
4867754Smsmith/* To search the entire name space, pass this as SearchBase */
4967754Smsmith
5091116Smsmith#define ACPI_NS_ALL                 ((ACPI_HANDLE)0)
5167754Smsmith
5267754Smsmith/*
5367754Smsmith * Elements of AcpiNsProperties are bit significant
5467754Smsmith * and should be one-to-one with values of ACPI_OBJECT_TYPE
5567754Smsmith */
5691116Smsmith#define ACPI_NS_NORMAL              0
5791116Smsmith#define ACPI_NS_NEWSCOPE            1   /* a definition of this type opens a name scope */
5891116Smsmith#define ACPI_NS_LOCAL               2   /* suppress search of enclosing scopes */
5967754Smsmith
6067754Smsmith/* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
6167754Smsmith
6291116Smsmith#define ACPI_NS_NO_UPSEARCH         0
6391116Smsmith#define ACPI_NS_SEARCH_PARENT       0x01
6491116Smsmith#define ACPI_NS_DONT_OPEN_SCOPE     0x02
6591116Smsmith#define ACPI_NS_NO_PEER_SEARCH      0x04
6691116Smsmith#define ACPI_NS_ERROR_IF_FOUND      0x08
67167802Sjkim#define ACPI_NS_PREFIX_IS_SCOPE     0x10
68167802Sjkim#define ACPI_NS_EXTERNAL            0x20
69167802Sjkim#define ACPI_NS_TEMPORARY           0x40
70306536Sjkim#define ACPI_NS_OVERRIDE_IF_FOUND   0x80
7167754Smsmith
72167802Sjkim/* Flags for AcpiNsWalkNamespace */
7367754Smsmith
74167802Sjkim#define ACPI_NS_WALK_NO_UNLOCK      0
75167802Sjkim#define ACPI_NS_WALK_UNLOCK         0x01
76167802Sjkim#define ACPI_NS_WALK_TEMP_NODES     0x02
7767754Smsmith
78197104Sjkim/* Object is not a package element */
79167802Sjkim
80197104Sjkim#define ACPI_NOT_PACKAGE_ELEMENT    ACPI_UINT32_MAX
81306536Sjkim#define ACPI_ALL_PACKAGE_ELEMENTS   (ACPI_UINT32_MAX-1)
82197104Sjkim
83197104Sjkim/* Always emit warning message, not dependent on node flags */
84197104Sjkim
85197104Sjkim#define ACPI_WARN_ALWAYS            0
86197104Sjkim
87197104Sjkim
88151937Sjkim/*
89151937Sjkim * nsinit - Namespace initialization
90151937Sjkim */
9167754SmsmithACPI_STATUS
9267754SmsmithAcpiNsInitializeObjects (
9367754Smsmith    void);
9467754Smsmith
9567754SmsmithACPI_STATUS
9667754SmsmithAcpiNsInitializeDevices (
97306536Sjkim    UINT32                  Flags);
9867754Smsmith
9967754Smsmith
100151937Sjkim/*
101151937Sjkim * nsload -  Namespace loading
102151937Sjkim */
10367754SmsmithACPI_STATUS
104151937SjkimAcpiNsLoadNamespace (
105151937Sjkim    void);
10667754Smsmith
10767754SmsmithACPI_STATUS
108151937SjkimAcpiNsLoadTable (
109193267Sjkim    UINT32                  TableIndex,
110151937Sjkim    ACPI_NAMESPACE_NODE     *Node);
11167754Smsmith
11267754Smsmith
113151937Sjkim/*
114151937Sjkim * nswalk - walk the namespace
115151937Sjkim */
11667754SmsmithACPI_STATUS
11767754SmsmithAcpiNsWalkNamespace (
11891116Smsmith    ACPI_OBJECT_TYPE        Type,
11967754Smsmith    ACPI_HANDLE             StartObject,
12067754Smsmith    UINT32                  MaxDepth,
121167802Sjkim    UINT32                  Flags,
122253690Sjkim    ACPI_WALK_CALLBACK      DescendingCallback,
123253690Sjkim    ACPI_WALK_CALLBACK      AscendingCallback,
12467754Smsmith    void                    *Context,
12567754Smsmith    void                    **ReturnValue);
12667754Smsmith
12767754SmsmithACPI_NAMESPACE_NODE *
12885756SmsmithAcpiNsGetNextNode (
129193267Sjkim    ACPI_NAMESPACE_NODE     *Parent,
130193267Sjkim    ACPI_NAMESPACE_NODE     *Child);
131193267Sjkim
132193267SjkimACPI_NAMESPACE_NODE *
133193267SjkimAcpiNsGetNextNodeTyped (
13491116Smsmith    ACPI_OBJECT_TYPE        Type,
13567754Smsmith    ACPI_NAMESPACE_NODE     *Parent,
13667754Smsmith    ACPI_NAMESPACE_NODE     *Child);
13767754Smsmith
138151937Sjkim/*
139151937Sjkim * nsparse - table parsing
140151937Sjkim */
14167754SmsmithACPI_STATUS
14267754SmsmithAcpiNsParseTable (
143193267Sjkim    UINT32                  TableIndex,
144167802Sjkim    ACPI_NAMESPACE_NODE     *StartNode);
14567754Smsmith
14667754SmsmithACPI_STATUS
147151937SjkimAcpiNsOneCompleteParse (
148193267Sjkim    UINT32                  PassNumber,
149193267Sjkim    UINT32                  TableIndex,
150193267Sjkim    ACPI_NAMESPACE_NODE     *StartNode);
15167754Smsmith
15267754Smsmith
15367754Smsmith/*
154151937Sjkim * nsaccess - Top-level namespace access
15567754Smsmith */
15667754SmsmithACPI_STATUS
15767754SmsmithAcpiNsRootInitialize (
15867754Smsmith    void);
15967754Smsmith
16067754SmsmithACPI_STATUS
16167754SmsmithAcpiNsLookup (
16267754Smsmith    ACPI_GENERIC_STATE      *ScopeInfo,
163114237Snjl    char                    *Name,
16491116Smsmith    ACPI_OBJECT_TYPE        Type,
16591116Smsmith    ACPI_INTERPRETER_MODE   InterpreterMode,
16667754Smsmith    UINT32                  Flags,
16767754Smsmith    ACPI_WALK_STATE         *WalkState,
16867754Smsmith    ACPI_NAMESPACE_NODE     **RetNode);
16967754Smsmith
17067754Smsmith
17167754Smsmith/*
172151937Sjkim * nsalloc - Named object allocation/deallocation
17367754Smsmith */
17467754SmsmithACPI_NAMESPACE_NODE *
17567754SmsmithAcpiNsCreateNode (
17684491Smsmith    UINT32                  Name);
17767754Smsmith
17867754Smsmithvoid
17967754SmsmithAcpiNsDeleteNode (
18067754Smsmith    ACPI_NAMESPACE_NODE     *Node);
18167754Smsmith
18299679Siwasakivoid
183197104SjkimAcpiNsRemoveNode (
184197104Sjkim    ACPI_NAMESPACE_NODE     *Node);
185197104Sjkim
186197104Sjkimvoid
18767754SmsmithAcpiNsDeleteNamespaceSubtree (
18867754Smsmith    ACPI_NAMESPACE_NODE     *ParentHandle);
18967754Smsmith
19067754Smsmithvoid
191151937SjkimAcpiNsDeleteNamespaceByOwner (
192151937Sjkim    ACPI_OWNER_ID           OwnerId);
193151937Sjkim
194151937Sjkimvoid
19567754SmsmithAcpiNsDetachObject (
19667754Smsmith    ACPI_NAMESPACE_NODE     *Node);
19767754Smsmith
19867754Smsmithvoid
19967754SmsmithAcpiNsDeleteChildren (
20067754Smsmith    ACPI_NAMESPACE_NODE     *Parent);
20167754Smsmith
202107325Siwasakiint
203107325SiwasakiAcpiNsCompareNames (
204107325Siwasaki    char                    *Name1,
205107325Siwasaki    char                    *Name2);
20667754Smsmith
207117521Snjl
20867754Smsmith/*
209246849Sjkim * nsconvert - Dynamic object conversion routines
210246849Sjkim */
211246849SjkimACPI_STATUS
212246849SjkimAcpiNsConvertToInteger (
213246849Sjkim    ACPI_OPERAND_OBJECT     *OriginalObject,
214246849Sjkim    ACPI_OPERAND_OBJECT     **ReturnObject);
215246849Sjkim
216246849SjkimACPI_STATUS
217246849SjkimAcpiNsConvertToString (
218246849Sjkim    ACPI_OPERAND_OBJECT     *OriginalObject,
219246849Sjkim    ACPI_OPERAND_OBJECT     **ReturnObject);
220246849Sjkim
221246849SjkimACPI_STATUS
222246849SjkimAcpiNsConvertToBuffer (
223246849Sjkim    ACPI_OPERAND_OBJECT     *OriginalObject,
224246849Sjkim    ACPI_OPERAND_OBJECT     **ReturnObject);
225246849Sjkim
226246849SjkimACPI_STATUS
227246849SjkimAcpiNsConvertToUnicode (
228306536Sjkim    ACPI_NAMESPACE_NODE     *Scope,
229246849Sjkim    ACPI_OPERAND_OBJECT     *OriginalObject,
230246849Sjkim    ACPI_OPERAND_OBJECT     **ReturnObject);
231246849Sjkim
232246849SjkimACPI_STATUS
233246849SjkimAcpiNsConvertToResource (
234306536Sjkim    ACPI_NAMESPACE_NODE     *Scope,
235246849Sjkim    ACPI_OPERAND_OBJECT     *OriginalObject,
236246849Sjkim    ACPI_OPERAND_OBJECT     **ReturnObject);
237246849Sjkim
238306536SjkimACPI_STATUS
239306536SjkimAcpiNsConvertToReference (
240306536Sjkim    ACPI_NAMESPACE_NODE     *Scope,
241306536Sjkim    ACPI_OPERAND_OBJECT     *OriginalObject,
242306536Sjkim    ACPI_OPERAND_OBJECT     **ReturnObject);
243246849Sjkim
244306536Sjkim
245246849Sjkim/*
246151937Sjkim * nsdump - Namespace dump/print utilities
24767754Smsmith */
24867754Smsmithvoid
24967754SmsmithAcpiNsDumpTables (
25067754Smsmith    ACPI_HANDLE             SearchBase,
25167754Smsmith    UINT32                  MaxDepth);
25267754Smsmith
25367754Smsmithvoid
25467754SmsmithAcpiNsDumpEntry (
25567754Smsmith    ACPI_HANDLE             Handle,
25667754Smsmith    UINT32                  DebugLevel);
25767754Smsmith
258114237Snjlvoid
25967754SmsmithAcpiNsDumpPathname (
26067754Smsmith    ACPI_HANDLE             Handle,
261306536Sjkim    const char              *Msg,
26267754Smsmith    UINT32                  Level,
26367754Smsmith    UINT32                  Component);
26467754Smsmith
26567754Smsmithvoid
26687031SmsmithAcpiNsPrintPathname (
26787031Smsmith    UINT32                  NumSegments,
268306536Sjkim    const char              *Pathname);
26987031Smsmith
27099679SiwasakiACPI_STATUS
27199679SiwasakiAcpiNsDumpOneObject (
27299679Siwasaki    ACPI_HANDLE             ObjHandle,
27399679Siwasaki    UINT32                  Level,
27499679Siwasaki    void                    *Context,
27599679Siwasaki    void                    **ReturnValue);
27699679Siwasaki
27767754Smsmithvoid
27867754SmsmithAcpiNsDumpObjects (
27991116Smsmith    ACPI_OBJECT_TYPE        Type,
28085756Smsmith    UINT8                   DisplayType,
28167754Smsmith    UINT32                  MaxDepth,
282151937Sjkim    ACPI_OWNER_ID           OwnerId,
28367754Smsmith    ACPI_HANDLE             StartHandle);
28467754Smsmith
285254745Sjkimvoid
286254745SjkimAcpiNsDumpObjectPaths (
287254745Sjkim    ACPI_OBJECT_TYPE        Type,
288254745Sjkim    UINT8                   DisplayType,
289254745Sjkim    UINT32                  MaxDepth,
290254745Sjkim    ACPI_OWNER_ID           OwnerId,
291254745Sjkim    ACPI_HANDLE             StartHandle);
29267754Smsmith
293254745Sjkim
29467754Smsmith/*
295151937Sjkim * nseval - Namespace evaluation functions
29667754Smsmith */
29767754SmsmithACPI_STATUS
298167802SjkimAcpiNsEvaluate (
299167802Sjkim    ACPI_EVALUATE_INFO      *Info);
30067754Smsmith
301197104Sjkimvoid
302197104SjkimAcpiNsExecModuleCodeList (
303197104Sjkim    void);
30467754Smsmith
305197104Sjkim
30667754Smsmith/*
307249663Sjkim * nsarguments - Argument count/type checking for predefined/reserved names
308193267Sjkim */
309193267Sjkimvoid
310249663SjkimAcpiNsCheckArgumentCount (
311193267Sjkim    char                        *Pathname,
312193267Sjkim    ACPI_NAMESPACE_NODE         *Node,
313193267Sjkim    UINT32                      UserParamCount,
314193267Sjkim    const ACPI_PREDEFINED_INFO  *Info);
315193267Sjkim
316249663Sjkimvoid
317249663SjkimAcpiNsCheckAcpiCompliance (
318249663Sjkim    char                        *Pathname,
319249663Sjkim    ACPI_NAMESPACE_NODE         *Node,
320249663Sjkim    const ACPI_PREDEFINED_INFO  *Predefined);
321249663Sjkim
322249663Sjkimvoid
323249663SjkimAcpiNsCheckArgumentTypes (
324249663Sjkim    ACPI_EVALUATE_INFO          *Info);
325249663Sjkim
326249663Sjkim
327249663Sjkim/*
328249663Sjkim * nspredef - Return value checking for predefined/reserved names
329249663Sjkim */
330245582SjkimACPI_STATUS
331249663SjkimAcpiNsCheckReturnValue (
332249663Sjkim    ACPI_NAMESPACE_NODE         *Node,
333249663Sjkim    ACPI_EVALUATE_INFO          *Info,
334249663Sjkim    UINT32                      UserParamCount,
335249663Sjkim    ACPI_STATUS                 ReturnStatus,
336249663Sjkim    ACPI_OPERAND_OBJECT         **ReturnObject);
337249663Sjkim
338249663SjkimACPI_STATUS
339245582SjkimAcpiNsCheckObjectType (
340249663Sjkim    ACPI_EVALUATE_INFO          *Info,
341245582Sjkim    ACPI_OPERAND_OBJECT         **ReturnObjectPtr,
342245582Sjkim    UINT32                      ExpectedBtypes,
343245582Sjkim    UINT32                      PackageIndex);
344193267Sjkim
345245582Sjkim
346193267Sjkim/*
347245582Sjkim * nsprepkg - Validation of predefined name packages
348245582Sjkim */
349245582SjkimACPI_STATUS
350245582SjkimAcpiNsCheckPackage (
351249663Sjkim    ACPI_EVALUATE_INFO          *Info,
352245582Sjkim    ACPI_OPERAND_OBJECT         **ReturnObjectPtr);
353245582Sjkim
354245582Sjkim
355245582Sjkim/*
356151937Sjkim * nsnames - Name and Scope manipulation
35767754Smsmith */
35867754SmsmithUINT32
35967754SmsmithAcpiNsOpensScope (
36091116Smsmith    ACPI_OBJECT_TYPE        Type);
36167754Smsmith
362114237Snjlchar *
36391116SmsmithAcpiNsGetExternalPathname (
36467754Smsmith    ACPI_NAMESPACE_NODE     *Node);
36567754Smsmith
366306536SjkimUINT32
367306536SjkimAcpiNsBuildNormalizedPath (
368306536Sjkim    ACPI_NAMESPACE_NODE     *Node,
369306536Sjkim    char                    *FullPath,
370306536Sjkim    UINT32                  PathSize,
371306536Sjkim    BOOLEAN                 NoTrailing);
372306536Sjkim
373114237Snjlchar *
374306536SjkimAcpiNsGetNormalizedPathname (
375306536Sjkim    ACPI_NAMESPACE_NODE     *Node,
376306536Sjkim    BOOLEAN                 NoTrailing);
377306536Sjkim
378306536Sjkimchar *
37967754SmsmithAcpiNsNameOfCurrentScope (
38067754Smsmith    ACPI_WALK_STATE         *WalkState);
38167754Smsmith
38267754SmsmithACPI_STATUS
38367754SmsmithAcpiNsHandleToPathname (
38491116Smsmith    ACPI_HANDLE             TargetHandle,
385306536Sjkim    ACPI_BUFFER             *Buffer,
386306536Sjkim    BOOLEAN                 NoTrailing);
38767754Smsmith
38867754SmsmithBOOLEAN
38967754SmsmithAcpiNsPatternMatch (
39067754Smsmith    ACPI_NAMESPACE_NODE     *ObjNode,
391114237Snjl    char                    *SearchFor);
39267754Smsmith
39367754SmsmithACPI_STATUS
394167802SjkimAcpiNsGetNode (
395167802Sjkim    ACPI_NAMESPACE_NODE     *PrefixNode,
396193267Sjkim    const char              *ExternalPathname,
39791116Smsmith    UINT32                  Flags,
39867754Smsmith    ACPI_NAMESPACE_NODE     **OutNode);
39967754Smsmith
40091116SmsmithACPI_SIZE
40173561SmsmithAcpiNsGetPathnameLength (
40273561Smsmith    ACPI_NAMESPACE_NODE     *Node);
40373561Smsmith
40473561Smsmith
40567754Smsmith/*
406151937Sjkim * nsobject - Object management for namespace nodes
40767754Smsmith */
40867754SmsmithACPI_STATUS
40967754SmsmithAcpiNsAttachObject (
41067754Smsmith    ACPI_NAMESPACE_NODE     *Node,
41167754Smsmith    ACPI_OPERAND_OBJECT     *Object,
41291116Smsmith    ACPI_OBJECT_TYPE        Type);
41367754Smsmith
41487031SmsmithACPI_OPERAND_OBJECT *
41587031SmsmithAcpiNsGetAttachedObject (
41687031Smsmith    ACPI_NAMESPACE_NODE     *Node);
41767754Smsmith
41887031SmsmithACPI_OPERAND_OBJECT *
41987031SmsmithAcpiNsGetSecondaryObject (
42087031Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
42187031Smsmith
42287031SmsmithACPI_STATUS
42387031SmsmithAcpiNsAttachData (
42487031Smsmith    ACPI_NAMESPACE_NODE     *Node,
42587031Smsmith    ACPI_OBJECT_HANDLER     Handler,
42687031Smsmith    void                    *Data);
42787031Smsmith
42887031SmsmithACPI_STATUS
42987031SmsmithAcpiNsDetachData (
43087031Smsmith    ACPI_NAMESPACE_NODE     *Node,
43187031Smsmith    ACPI_OBJECT_HANDLER     Handler);
43287031Smsmith
43387031SmsmithACPI_STATUS
43487031SmsmithAcpiNsGetAttachedData (
43587031Smsmith    ACPI_NAMESPACE_NODE     *Node,
43687031Smsmith    ACPI_OBJECT_HANDLER     Handler,
43787031Smsmith    void                    **Data);
43887031Smsmith
43987031Smsmith
44067754Smsmith/*
441199337Sjkim * nsrepair - General return object repair for all
442199337Sjkim * predefined methods/objects
443197104Sjkim */
444197104SjkimACPI_STATUS
445246849SjkimAcpiNsSimpleRepair (
446249663Sjkim    ACPI_EVALUATE_INFO      *Info,
447197104Sjkim    UINT32                  ExpectedBtypes,
448197104Sjkim    UINT32                  PackageIndex,
449197104Sjkim    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
450197104Sjkim
451197104SjkimACPI_STATUS
452233617SjkimAcpiNsWrapWithPackage (
453249663Sjkim    ACPI_EVALUATE_INFO      *Info,
454233617Sjkim    ACPI_OPERAND_OBJECT     *OriginalObject,
455197104Sjkim    ACPI_OPERAND_OBJECT     **ObjDescPtr);
456197104Sjkim
457202771SjkimACPI_STATUS
458202771SjkimAcpiNsRepairNullElement (
459249663Sjkim    ACPI_EVALUATE_INFO      *Info,
460202771Sjkim    UINT32                  ExpectedBtypes,
461202771Sjkim    UINT32                  PackageIndex,
462202771Sjkim    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
463197104Sjkim
464202771Sjkimvoid
465202771SjkimAcpiNsRemoveNullElements (
466249663Sjkim    ACPI_EVALUATE_INFO      *Info,
467202771Sjkim    UINT8                   PackageType,
468202771Sjkim    ACPI_OPERAND_OBJECT     *ObjDesc);
469202771Sjkim
470202771Sjkim
471197104Sjkim/*
472199337Sjkim * nsrepair2 - Return object repair for specific
473199337Sjkim * predefined methods/objects
474199337Sjkim */
475199337SjkimACPI_STATUS
476199337SjkimAcpiNsComplexRepairs (
477249663Sjkim    ACPI_EVALUATE_INFO      *Info,
478199337Sjkim    ACPI_NAMESPACE_NODE     *Node,
479199337Sjkim    ACPI_STATUS             ValidateStatus,
480199337Sjkim    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
481199337Sjkim
482199337Sjkim
483199337Sjkim/*
484151937Sjkim * nssearch - Namespace searching and entry
48567754Smsmith */
48667754SmsmithACPI_STATUS
48767754SmsmithAcpiNsSearchAndEnter (
48867754Smsmith    UINT32                  EntryName,
48967754Smsmith    ACPI_WALK_STATE         *WalkState,
49067754Smsmith    ACPI_NAMESPACE_NODE     *Node,
49191116Smsmith    ACPI_INTERPRETER_MODE   InterpreterMode,
49291116Smsmith    ACPI_OBJECT_TYPE        Type,
49367754Smsmith    UINT32                  Flags,
49467754Smsmith    ACPI_NAMESPACE_NODE     **RetNode);
49567754Smsmith
49667754SmsmithACPI_STATUS
497167802SjkimAcpiNsSearchOneScope (
49867754Smsmith    UINT32                  EntryName,
49967754Smsmith    ACPI_NAMESPACE_NODE     *Node,
50091116Smsmith    ACPI_OBJECT_TYPE        Type,
50167754Smsmith    ACPI_NAMESPACE_NODE     **RetNode);
50267754Smsmith
50367754Smsmithvoid
50467754SmsmithAcpiNsInstallNode (
50567754Smsmith    ACPI_WALK_STATE         *WalkState,
506107325Siwasaki    ACPI_NAMESPACE_NODE     *ParentNode,
507107325Siwasaki    ACPI_NAMESPACE_NODE     *Node,
50891116Smsmith    ACPI_OBJECT_TYPE        Type);
50967754Smsmith
51067754Smsmith
51167754Smsmith/*
512151937Sjkim * nsutils - Utility functions
51367754Smsmith */
51491116SmsmithACPI_OBJECT_TYPE
51567754SmsmithAcpiNsGetType (
51677424Smsmith    ACPI_NAMESPACE_NODE     *Node);
51767754Smsmith
51867754SmsmithUINT32
51967754SmsmithAcpiNsLocal (
52091116Smsmith    ACPI_OBJECT_TYPE        Type);
52167754Smsmith
522104470Siwasakivoid
523114237SnjlAcpiNsPrintNodePathname (
524114237Snjl    ACPI_NAMESPACE_NODE     *Node,
525193267Sjkim    const char              *Msg);
526114237Snjl
52767754SmsmithACPI_STATUS
52877424SmsmithAcpiNsBuildInternalName (
52977424Smsmith    ACPI_NAMESTRING_INFO    *Info);
53077424Smsmith
53199679Siwasakivoid
53277424SmsmithAcpiNsGetInternalNameLength (
53377424Smsmith    ACPI_NAMESTRING_INFO    *Info);
53477424Smsmith
53577424SmsmithACPI_STATUS
53667754SmsmithAcpiNsInternalizeName (
537193267Sjkim    const char              *DottedName,
538114237Snjl    char                    **ConvertedName);
53967754Smsmith
54067754SmsmithACPI_STATUS
54167754SmsmithAcpiNsExternalizeName (
54267754Smsmith    UINT32                  InternalNameLength,
543193267Sjkim    const char              *InternalName,
54467754Smsmith    UINT32                  *ConvertedNameLength,
545114237Snjl    char                    **ConvertedName);
54667754Smsmith
54767754SmsmithACPI_NAMESPACE_NODE *
548200553SjkimAcpiNsValidateHandle (
54967754Smsmith    ACPI_HANDLE             Handle);
55067754Smsmith
55167754Smsmithvoid
55267754SmsmithAcpiNsTerminate (
55367754Smsmith    void);
55467754Smsmith
55567754Smsmith#endif /* __ACNAMESP_H__ */
556