xref: /freebsd/sys/contrib/dev/acpica/include/acnamesp.h (revision fe0f0bbb19f4f267df5c6249d1af4d6f665dfd52)
1a9f12690SJung-uk Kim /******************************************************************************
2a9f12690SJung-uk Kim  *
3a9f12690SJung-uk Kim  * Name: acnamesp.h - Namespace subcomponent prototypes and defines
4a9f12690SJung-uk Kim  *
5a9f12690SJung-uk Kim  *****************************************************************************/
6a9f12690SJung-uk Kim 
7d244b227SJung-uk Kim /*
81c0e1b6dSJung-uk Kim  * Copyright (C) 2000 - 2015, Intel Corp.
9a9f12690SJung-uk Kim  * All rights reserved.
10a9f12690SJung-uk Kim  *
11d244b227SJung-uk Kim  * Redistribution and use in source and binary forms, with or without
12d244b227SJung-uk Kim  * modification, are permitted provided that the following conditions
13d244b227SJung-uk Kim  * are met:
14d244b227SJung-uk Kim  * 1. Redistributions of source code must retain the above copyright
15d244b227SJung-uk Kim  *    notice, this list of conditions, and the following disclaimer,
16d244b227SJung-uk Kim  *    without modification.
17d244b227SJung-uk Kim  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18d244b227SJung-uk Kim  *    substantially similar to the "NO WARRANTY" disclaimer below
19d244b227SJung-uk Kim  *    ("Disclaimer") and any redistribution must be conditioned upon
20d244b227SJung-uk Kim  *    including a substantially similar Disclaimer requirement for further
21d244b227SJung-uk Kim  *    binary redistribution.
22d244b227SJung-uk Kim  * 3. Neither the names of the above-listed copyright holders nor the names
23d244b227SJung-uk Kim  *    of any contributors may be used to endorse or promote products derived
24d244b227SJung-uk Kim  *    from this software without specific prior written permission.
25a9f12690SJung-uk Kim  *
26d244b227SJung-uk Kim  * Alternatively, this software may be distributed under the terms of the
27d244b227SJung-uk Kim  * GNU General Public License ("GPL") version 2 as published by the Free
28d244b227SJung-uk Kim  * Software Foundation.
29a9f12690SJung-uk Kim  *
30d244b227SJung-uk Kim  * NO WARRANTY
31d244b227SJung-uk Kim  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32d244b227SJung-uk Kim  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33d244b227SJung-uk Kim  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34d244b227SJung-uk Kim  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35d244b227SJung-uk Kim  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36d244b227SJung-uk Kim  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37d244b227SJung-uk Kim  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38d244b227SJung-uk Kim  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39d244b227SJung-uk Kim  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40d244b227SJung-uk Kim  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41d244b227SJung-uk Kim  * POSSIBILITY OF SUCH DAMAGES.
42d244b227SJung-uk Kim  */
43a9f12690SJung-uk Kim 
44a9f12690SJung-uk Kim #ifndef __ACNAMESP_H__
45a9f12690SJung-uk Kim #define __ACNAMESP_H__
46a9f12690SJung-uk Kim 
47a9f12690SJung-uk Kim 
48a9f12690SJung-uk Kim /* To search the entire name space, pass this as SearchBase */
49a9f12690SJung-uk Kim 
50a9f12690SJung-uk Kim #define ACPI_NS_ALL                 ((ACPI_HANDLE)0)
51a9f12690SJung-uk Kim 
52a9f12690SJung-uk Kim /*
53a9f12690SJung-uk Kim  * Elements of AcpiNsProperties are bit significant
54a9f12690SJung-uk Kim  * and should be one-to-one with values of ACPI_OBJECT_TYPE
55a9f12690SJung-uk Kim  */
56a9f12690SJung-uk Kim #define ACPI_NS_NORMAL              0
57a9f12690SJung-uk Kim #define ACPI_NS_NEWSCOPE            1   /* a definition of this type opens a name scope */
58a9f12690SJung-uk Kim #define ACPI_NS_LOCAL               2   /* suppress search of enclosing scopes */
59a9f12690SJung-uk Kim 
60a9f12690SJung-uk Kim /* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
61a9f12690SJung-uk Kim 
62a9f12690SJung-uk Kim #define ACPI_NS_NO_UPSEARCH         0
63a9f12690SJung-uk Kim #define ACPI_NS_SEARCH_PARENT       0x01
64a9f12690SJung-uk Kim #define ACPI_NS_DONT_OPEN_SCOPE     0x02
65a9f12690SJung-uk Kim #define ACPI_NS_NO_PEER_SEARCH      0x04
66a9f12690SJung-uk Kim #define ACPI_NS_ERROR_IF_FOUND      0x08
67a9f12690SJung-uk Kim #define ACPI_NS_PREFIX_IS_SCOPE     0x10
68a9f12690SJung-uk Kim #define ACPI_NS_EXTERNAL            0x20
69a9f12690SJung-uk Kim #define ACPI_NS_TEMPORARY           0x40
705ef50723SJung-uk Kim #define ACPI_NS_OVERRIDE_IF_FOUND   0x80
71a9f12690SJung-uk Kim 
72a9f12690SJung-uk Kim /* Flags for AcpiNsWalkNamespace */
73a9f12690SJung-uk Kim 
74a9f12690SJung-uk Kim #define ACPI_NS_WALK_NO_UNLOCK      0
75a9f12690SJung-uk Kim #define ACPI_NS_WALK_UNLOCK         0x01
76a9f12690SJung-uk Kim #define ACPI_NS_WALK_TEMP_NODES     0x02
77a9f12690SJung-uk Kim 
78d6dd1baeSJung-uk Kim /* Object is not a package element */
79d6dd1baeSJung-uk Kim 
80d6dd1baeSJung-uk Kim #define ACPI_NOT_PACKAGE_ELEMENT    ACPI_UINT32_MAX
81d6dd1baeSJung-uk Kim 
82d6dd1baeSJung-uk Kim /* Always emit warning message, not dependent on node flags */
83d6dd1baeSJung-uk Kim 
84d6dd1baeSJung-uk Kim #define ACPI_WARN_ALWAYS            0
85d6dd1baeSJung-uk Kim 
86a9f12690SJung-uk Kim 
87a9f12690SJung-uk Kim /*
88a9f12690SJung-uk Kim  * nsinit - Namespace initialization
89a9f12690SJung-uk Kim  */
90a9f12690SJung-uk Kim ACPI_STATUS
91a9f12690SJung-uk Kim AcpiNsInitializeObjects (
92a9f12690SJung-uk Kim     void);
93a9f12690SJung-uk Kim 
94a9f12690SJung-uk Kim ACPI_STATUS
95a9f12690SJung-uk Kim AcpiNsInitializeDevices (
96a9f12690SJung-uk Kim     void);
97a9f12690SJung-uk Kim 
98a9f12690SJung-uk Kim 
99a9f12690SJung-uk Kim /*
100a9f12690SJung-uk Kim  * nsload -  Namespace loading
101a9f12690SJung-uk Kim  */
102a9f12690SJung-uk Kim ACPI_STATUS
103a9f12690SJung-uk Kim AcpiNsLoadNamespace (
104a9f12690SJung-uk Kim     void);
105a9f12690SJung-uk Kim 
106a9f12690SJung-uk Kim ACPI_STATUS
107a9f12690SJung-uk Kim AcpiNsLoadTable (
108a9f12690SJung-uk Kim     UINT32                  TableIndex,
109a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
110a9f12690SJung-uk Kim 
111a9f12690SJung-uk Kim 
112a9f12690SJung-uk Kim /*
113a9f12690SJung-uk Kim  * nswalk - walk the namespace
114a9f12690SJung-uk Kim  */
115a9f12690SJung-uk Kim ACPI_STATUS
116a9f12690SJung-uk Kim AcpiNsWalkNamespace (
117a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
118a9f12690SJung-uk Kim     ACPI_HANDLE             StartObject,
119a9f12690SJung-uk Kim     UINT32                  MaxDepth,
120a9f12690SJung-uk Kim     UINT32                  Flags,
121bf6fac21SJung-uk Kim     ACPI_WALK_CALLBACK      DescendingCallback,
122bf6fac21SJung-uk Kim     ACPI_WALK_CALLBACK      AscendingCallback,
123a9f12690SJung-uk Kim     void                    *Context,
124a9f12690SJung-uk Kim     void                    **ReturnValue);
125a9f12690SJung-uk Kim 
126a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
127a9f12690SJung-uk Kim AcpiNsGetNextNode (
128a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Parent,
129a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Child);
130a9f12690SJung-uk Kim 
131a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
132a9f12690SJung-uk Kim AcpiNsGetNextNodeTyped (
133a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
134a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Parent,
135a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Child);
136a9f12690SJung-uk Kim 
137a9f12690SJung-uk Kim /*
138a9f12690SJung-uk Kim  * nsparse - table parsing
139a9f12690SJung-uk Kim  */
140a9f12690SJung-uk Kim ACPI_STATUS
141a9f12690SJung-uk Kim AcpiNsParseTable (
142a9f12690SJung-uk Kim     UINT32                  TableIndex,
143a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *StartNode);
144a9f12690SJung-uk Kim 
145a9f12690SJung-uk Kim ACPI_STATUS
146a9f12690SJung-uk Kim AcpiNsOneCompleteParse (
147a9f12690SJung-uk Kim     UINT32                  PassNumber,
148a9f12690SJung-uk Kim     UINT32                  TableIndex,
149a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *StartNode);
150a9f12690SJung-uk Kim 
151a9f12690SJung-uk Kim 
152a9f12690SJung-uk Kim /*
153a9f12690SJung-uk Kim  * nsaccess - Top-level namespace access
154a9f12690SJung-uk Kim  */
155a9f12690SJung-uk Kim ACPI_STATUS
156a9f12690SJung-uk Kim AcpiNsRootInitialize (
157a9f12690SJung-uk Kim     void);
158a9f12690SJung-uk Kim 
159a9f12690SJung-uk Kim ACPI_STATUS
160a9f12690SJung-uk Kim AcpiNsLookup (
161a9f12690SJung-uk Kim     ACPI_GENERIC_STATE      *ScopeInfo,
162a9f12690SJung-uk Kim     char                    *Name,
163a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
164a9f12690SJung-uk Kim     ACPI_INTERPRETER_MODE   InterpreterMode,
165a9f12690SJung-uk Kim     UINT32                  Flags,
166a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
167a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **RetNode);
168a9f12690SJung-uk Kim 
169a9f12690SJung-uk Kim 
170a9f12690SJung-uk Kim /*
171a9f12690SJung-uk Kim  * nsalloc - Named object allocation/deallocation
172a9f12690SJung-uk Kim  */
173a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
174a9f12690SJung-uk Kim AcpiNsCreateNode (
175a9f12690SJung-uk Kim     UINT32                  Name);
176a9f12690SJung-uk Kim 
177a9f12690SJung-uk Kim void
178a9f12690SJung-uk Kim AcpiNsDeleteNode (
179a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
180a9f12690SJung-uk Kim 
181a9f12690SJung-uk Kim void
182d6dd1baeSJung-uk Kim AcpiNsRemoveNode (
183d6dd1baeSJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
184d6dd1baeSJung-uk Kim 
185d6dd1baeSJung-uk Kim void
186a9f12690SJung-uk Kim AcpiNsDeleteNamespaceSubtree (
187a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *ParentHandle);
188a9f12690SJung-uk Kim 
189a9f12690SJung-uk Kim void
190a9f12690SJung-uk Kim AcpiNsDeleteNamespaceByOwner (
191a9f12690SJung-uk Kim     ACPI_OWNER_ID           OwnerId);
192a9f12690SJung-uk Kim 
193a9f12690SJung-uk Kim void
194a9f12690SJung-uk Kim AcpiNsDetachObject (
195a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
196a9f12690SJung-uk Kim 
197a9f12690SJung-uk Kim void
198a9f12690SJung-uk Kim AcpiNsDeleteChildren (
199a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Parent);
200a9f12690SJung-uk Kim 
201a9f12690SJung-uk Kim int
202a9f12690SJung-uk Kim AcpiNsCompareNames (
203a9f12690SJung-uk Kim     char                    *Name1,
204a9f12690SJung-uk Kim     char                    *Name2);
205a9f12690SJung-uk Kim 
206a9f12690SJung-uk Kim 
207a9f12690SJung-uk Kim /*
2089c48c75eSJung-uk Kim  * nsconvert - Dynamic object conversion routines
2099c48c75eSJung-uk Kim  */
2109c48c75eSJung-uk Kim ACPI_STATUS
2119c48c75eSJung-uk Kim AcpiNsConvertToInteger (
2129c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2139c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2149c48c75eSJung-uk Kim 
2159c48c75eSJung-uk Kim ACPI_STATUS
2169c48c75eSJung-uk Kim AcpiNsConvertToString (
2179c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2189c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2199c48c75eSJung-uk Kim 
2209c48c75eSJung-uk Kim ACPI_STATUS
2219c48c75eSJung-uk Kim AcpiNsConvertToBuffer (
2229c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2239c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2249c48c75eSJung-uk Kim 
2259c48c75eSJung-uk Kim ACPI_STATUS
2269c48c75eSJung-uk Kim AcpiNsConvertToUnicode (
2279c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2289c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2299c48c75eSJung-uk Kim 
2309c48c75eSJung-uk Kim ACPI_STATUS
2319c48c75eSJung-uk Kim AcpiNsConvertToResource (
2329c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2339c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2349c48c75eSJung-uk Kim 
2359c48c75eSJung-uk Kim 
2369c48c75eSJung-uk Kim /*
237a9f12690SJung-uk Kim  * nsdump - Namespace dump/print utilities
238a9f12690SJung-uk Kim  */
239a9f12690SJung-uk Kim void
240a9f12690SJung-uk Kim AcpiNsDumpTables (
241a9f12690SJung-uk Kim     ACPI_HANDLE             SearchBase,
242a9f12690SJung-uk Kim     UINT32                  MaxDepth);
243a9f12690SJung-uk Kim 
244a9f12690SJung-uk Kim void
245a9f12690SJung-uk Kim AcpiNsDumpEntry (
246a9f12690SJung-uk Kim     ACPI_HANDLE             Handle,
247a9f12690SJung-uk Kim     UINT32                  DebugLevel);
248a9f12690SJung-uk Kim 
249a9f12690SJung-uk Kim void
250a9f12690SJung-uk Kim AcpiNsDumpPathname (
251a9f12690SJung-uk Kim     ACPI_HANDLE             Handle,
252a9f12690SJung-uk Kim     char                    *Msg,
253a9f12690SJung-uk Kim     UINT32                  Level,
254a9f12690SJung-uk Kim     UINT32                  Component);
255a9f12690SJung-uk Kim 
256a9f12690SJung-uk Kim void
257a9f12690SJung-uk Kim AcpiNsPrintPathname (
258a9f12690SJung-uk Kim     UINT32                  NumSegments,
259a9f12690SJung-uk Kim     char                    *Pathname);
260a9f12690SJung-uk Kim 
261a9f12690SJung-uk Kim ACPI_STATUS
262a9f12690SJung-uk Kim AcpiNsDumpOneObject (
263a9f12690SJung-uk Kim     ACPI_HANDLE             ObjHandle,
264a9f12690SJung-uk Kim     UINT32                  Level,
265a9f12690SJung-uk Kim     void                    *Context,
266a9f12690SJung-uk Kim     void                    **ReturnValue);
267a9f12690SJung-uk Kim 
268a9f12690SJung-uk Kim void
269a9f12690SJung-uk Kim AcpiNsDumpObjects (
270a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
271a9f12690SJung-uk Kim     UINT8                   DisplayType,
272a9f12690SJung-uk Kim     UINT32                  MaxDepth,
273a9f12690SJung-uk Kim     ACPI_OWNER_ID           OwnerId,
274a9f12690SJung-uk Kim     ACPI_HANDLE             StartHandle);
275a9f12690SJung-uk Kim 
27679c6d946SJung-uk Kim void
27779c6d946SJung-uk Kim AcpiNsDumpObjectPaths (
27879c6d946SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
27979c6d946SJung-uk Kim     UINT8                   DisplayType,
28079c6d946SJung-uk Kim     UINT32                  MaxDepth,
28179c6d946SJung-uk Kim     ACPI_OWNER_ID           OwnerId,
28279c6d946SJung-uk Kim     ACPI_HANDLE             StartHandle);
28379c6d946SJung-uk Kim 
284a9f12690SJung-uk Kim 
285a9f12690SJung-uk Kim /*
286a9f12690SJung-uk Kim  * nseval - Namespace evaluation functions
287a9f12690SJung-uk Kim  */
288a9f12690SJung-uk Kim ACPI_STATUS
289a9f12690SJung-uk Kim AcpiNsEvaluate (
290a9f12690SJung-uk Kim     ACPI_EVALUATE_INFO      *Info);
291a9f12690SJung-uk Kim 
292d6dd1baeSJung-uk Kim void
293d6dd1baeSJung-uk Kim AcpiNsExecModuleCodeList (
294d6dd1baeSJung-uk Kim     void);
295d6dd1baeSJung-uk Kim 
296a9f12690SJung-uk Kim 
297a9f12690SJung-uk Kim /*
298895f26a9SJung-uk Kim  * nsarguments - Argument count/type checking for predefined/reserved names
299a9f12690SJung-uk Kim  */
300a9f12690SJung-uk Kim void
301895f26a9SJung-uk Kim AcpiNsCheckArgumentCount (
302a9f12690SJung-uk Kim     char                        *Pathname,
303a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE         *Node,
304a9f12690SJung-uk Kim     UINT32                      UserParamCount,
305a9f12690SJung-uk Kim     const ACPI_PREDEFINED_INFO  *Info);
306a9f12690SJung-uk Kim 
307895f26a9SJung-uk Kim void
308895f26a9SJung-uk Kim AcpiNsCheckAcpiCompliance (
309895f26a9SJung-uk Kim     char                        *Pathname,
310895f26a9SJung-uk Kim     ACPI_NAMESPACE_NODE         *Node,
311895f26a9SJung-uk Kim     const ACPI_PREDEFINED_INFO  *Predefined);
312895f26a9SJung-uk Kim 
313895f26a9SJung-uk Kim void
314895f26a9SJung-uk Kim AcpiNsCheckArgumentTypes (
315895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO          *Info);
316895f26a9SJung-uk Kim 
317895f26a9SJung-uk Kim 
318895f26a9SJung-uk Kim /*
319895f26a9SJung-uk Kim  * nspredef - Return value checking for predefined/reserved names
320895f26a9SJung-uk Kim  */
321895f26a9SJung-uk Kim ACPI_STATUS
322895f26a9SJung-uk Kim AcpiNsCheckReturnValue (
323895f26a9SJung-uk Kim     ACPI_NAMESPACE_NODE         *Node,
324895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO          *Info,
325895f26a9SJung-uk Kim     UINT32                      UserParamCount,
326895f26a9SJung-uk Kim     ACPI_STATUS                 ReturnStatus,
327895f26a9SJung-uk Kim     ACPI_OPERAND_OBJECT         **ReturnObject);
328895f26a9SJung-uk Kim 
329efcc2a30SJung-uk Kim ACPI_STATUS
330efcc2a30SJung-uk Kim AcpiNsCheckObjectType (
331895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO          *Info,
332efcc2a30SJung-uk Kim     ACPI_OPERAND_OBJECT         **ReturnObjectPtr,
333efcc2a30SJung-uk Kim     UINT32                      ExpectedBtypes,
334efcc2a30SJung-uk Kim     UINT32                      PackageIndex);
335efcc2a30SJung-uk Kim 
336efcc2a30SJung-uk Kim 
337efcc2a30SJung-uk Kim /*
338efcc2a30SJung-uk Kim  * nsprepkg - Validation of predefined name packages
339efcc2a30SJung-uk Kim  */
340efcc2a30SJung-uk Kim ACPI_STATUS
341efcc2a30SJung-uk Kim AcpiNsCheckPackage (
342895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO          *Info,
343efcc2a30SJung-uk Kim     ACPI_OPERAND_OBJECT         **ReturnObjectPtr);
344efcc2a30SJung-uk Kim 
345a9f12690SJung-uk Kim 
346a9f12690SJung-uk Kim /*
347a9f12690SJung-uk Kim  * nsnames - Name and Scope manipulation
348a9f12690SJung-uk Kim  */
349a9f12690SJung-uk Kim UINT32
350a9f12690SJung-uk Kim AcpiNsOpensScope (
351a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
352a9f12690SJung-uk Kim 
353a9f12690SJung-uk Kim char *
354a9f12690SJung-uk Kim AcpiNsGetExternalPathname (
355a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
356a9f12690SJung-uk Kim 
357*fe0f0bbbSJung-uk Kim UINT32
358*fe0f0bbbSJung-uk Kim AcpiNsBuildNormalizedPath (
359*fe0f0bbbSJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
360*fe0f0bbbSJung-uk Kim     char                    *FullPath,
361*fe0f0bbbSJung-uk Kim     UINT32                  PathSize,
362*fe0f0bbbSJung-uk Kim     BOOLEAN                 NoTrailing);
363*fe0f0bbbSJung-uk Kim 
364*fe0f0bbbSJung-uk Kim char *
365*fe0f0bbbSJung-uk Kim AcpiNsGetNormalizedPathname (
366*fe0f0bbbSJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
367*fe0f0bbbSJung-uk Kim     BOOLEAN                 NoTrailing);
368*fe0f0bbbSJung-uk Kim 
369a9f12690SJung-uk Kim char *
370a9f12690SJung-uk Kim AcpiNsNameOfCurrentScope (
371a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
372a9f12690SJung-uk Kim 
373a9f12690SJung-uk Kim ACPI_STATUS
374a9f12690SJung-uk Kim AcpiNsHandleToPathname (
375a9f12690SJung-uk Kim     ACPI_HANDLE             TargetHandle,
376*fe0f0bbbSJung-uk Kim     ACPI_BUFFER             *Buffer,
377*fe0f0bbbSJung-uk Kim     BOOLEAN                 NoTrailing);
378a9f12690SJung-uk Kim 
379a9f12690SJung-uk Kim BOOLEAN
380a9f12690SJung-uk Kim AcpiNsPatternMatch (
381a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *ObjNode,
382a9f12690SJung-uk Kim     char                    *SearchFor);
383a9f12690SJung-uk Kim 
384a9f12690SJung-uk Kim ACPI_STATUS
385a9f12690SJung-uk Kim AcpiNsGetNode (
386a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *PrefixNode,
387a9f12690SJung-uk Kim     const char              *ExternalPathname,
388a9f12690SJung-uk Kim     UINT32                  Flags,
389a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **OutNode);
390a9f12690SJung-uk Kim 
391a9f12690SJung-uk Kim ACPI_SIZE
392a9f12690SJung-uk Kim AcpiNsGetPathnameLength (
393a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
394a9f12690SJung-uk Kim 
395a9f12690SJung-uk Kim 
396a9f12690SJung-uk Kim /*
397a9f12690SJung-uk Kim  * nsobject - Object management for namespace nodes
398a9f12690SJung-uk Kim  */
399a9f12690SJung-uk Kim ACPI_STATUS
400a9f12690SJung-uk Kim AcpiNsAttachObject (
401a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
402a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *Object,
403a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
404a9f12690SJung-uk Kim 
405a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *
406a9f12690SJung-uk Kim AcpiNsGetAttachedObject (
407a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
408a9f12690SJung-uk Kim 
409a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *
410a9f12690SJung-uk Kim AcpiNsGetSecondaryObject (
411a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
412a9f12690SJung-uk Kim 
413a9f12690SJung-uk Kim ACPI_STATUS
414a9f12690SJung-uk Kim AcpiNsAttachData (
415a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
416a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
417a9f12690SJung-uk Kim     void                    *Data);
418a9f12690SJung-uk Kim 
419a9f12690SJung-uk Kim ACPI_STATUS
420a9f12690SJung-uk Kim AcpiNsDetachData (
421a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
422a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler);
423a9f12690SJung-uk Kim 
424a9f12690SJung-uk Kim ACPI_STATUS
425a9f12690SJung-uk Kim AcpiNsGetAttachedData (
426a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
427a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
428a9f12690SJung-uk Kim     void                    **Data);
429a9f12690SJung-uk Kim 
430a9f12690SJung-uk Kim 
431a9f12690SJung-uk Kim /*
4322272d050SJung-uk Kim  * nsrepair - General return object repair for all
4332272d050SJung-uk Kim  * predefined methods/objects
434d6dd1baeSJung-uk Kim  */
435d6dd1baeSJung-uk Kim ACPI_STATUS
4369c48c75eSJung-uk Kim AcpiNsSimpleRepair (
437895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
438d6dd1baeSJung-uk Kim     UINT32                  ExpectedBtypes,
439d6dd1baeSJung-uk Kim     UINT32                  PackageIndex,
440d6dd1baeSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
441d6dd1baeSJung-uk Kim 
442d6dd1baeSJung-uk Kim ACPI_STATUS
4433f8d720fSJung-uk Kim AcpiNsWrapWithPackage (
444895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
4453f8d720fSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
446d6dd1baeSJung-uk Kim     ACPI_OPERAND_OBJECT     **ObjDescPtr);
447d6dd1baeSJung-uk Kim 
4489a179dd8SJung-uk Kim ACPI_STATUS
4499a179dd8SJung-uk Kim AcpiNsRepairNullElement (
450895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
4519a179dd8SJung-uk Kim     UINT32                  ExpectedBtypes,
4529a179dd8SJung-uk Kim     UINT32                  PackageIndex,
4539a179dd8SJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
4549a179dd8SJung-uk Kim 
4559a179dd8SJung-uk Kim void
4569a179dd8SJung-uk Kim AcpiNsRemoveNullElements (
457895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
4589a179dd8SJung-uk Kim     UINT8                   PackageType,
4599a179dd8SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
4609a179dd8SJung-uk Kim 
461d6dd1baeSJung-uk Kim 
462d6dd1baeSJung-uk Kim /*
4632272d050SJung-uk Kim  * nsrepair2 - Return object repair for specific
4642272d050SJung-uk Kim  * predefined methods/objects
4652272d050SJung-uk Kim  */
4662272d050SJung-uk Kim ACPI_STATUS
4672272d050SJung-uk Kim AcpiNsComplexRepairs (
468895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
4692272d050SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
4702272d050SJung-uk Kim     ACPI_STATUS             ValidateStatus,
4712272d050SJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
4722272d050SJung-uk Kim 
4732272d050SJung-uk Kim 
4742272d050SJung-uk Kim /*
475a9f12690SJung-uk Kim  * nssearch - Namespace searching and entry
476a9f12690SJung-uk Kim  */
477a9f12690SJung-uk Kim ACPI_STATUS
478a9f12690SJung-uk Kim AcpiNsSearchAndEnter (
479a9f12690SJung-uk Kim     UINT32                  EntryName,
480a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
481a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
482a9f12690SJung-uk Kim     ACPI_INTERPRETER_MODE   InterpreterMode,
483a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
484a9f12690SJung-uk Kim     UINT32                  Flags,
485a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **RetNode);
486a9f12690SJung-uk Kim 
487a9f12690SJung-uk Kim ACPI_STATUS
488a9f12690SJung-uk Kim AcpiNsSearchOneScope (
489a9f12690SJung-uk Kim     UINT32                  EntryName,
490a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
491a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
492a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **RetNode);
493a9f12690SJung-uk Kim 
494a9f12690SJung-uk Kim void
495a9f12690SJung-uk Kim AcpiNsInstallNode (
496a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
497a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *ParentNode,
498a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
499a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
500a9f12690SJung-uk Kim 
501a9f12690SJung-uk Kim 
502a9f12690SJung-uk Kim /*
503a9f12690SJung-uk Kim  * nsutils - Utility functions
504a9f12690SJung-uk Kim  */
505a9f12690SJung-uk Kim ACPI_OBJECT_TYPE
506a9f12690SJung-uk Kim AcpiNsGetType (
507a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
508a9f12690SJung-uk Kim 
509a9f12690SJung-uk Kim UINT32
510a9f12690SJung-uk Kim AcpiNsLocal (
511a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
512a9f12690SJung-uk Kim 
513a9f12690SJung-uk Kim void
514a9f12690SJung-uk Kim AcpiNsPrintNodePathname (
515a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
516a9f12690SJung-uk Kim     const char              *Msg);
517a9f12690SJung-uk Kim 
518a9f12690SJung-uk Kim ACPI_STATUS
519a9f12690SJung-uk Kim AcpiNsBuildInternalName (
520a9f12690SJung-uk Kim     ACPI_NAMESTRING_INFO    *Info);
521a9f12690SJung-uk Kim 
522a9f12690SJung-uk Kim void
523a9f12690SJung-uk Kim AcpiNsGetInternalNameLength (
524a9f12690SJung-uk Kim     ACPI_NAMESTRING_INFO    *Info);
525a9f12690SJung-uk Kim 
526a9f12690SJung-uk Kim ACPI_STATUS
527a9f12690SJung-uk Kim AcpiNsInternalizeName (
528a9f12690SJung-uk Kim     const char              *DottedName,
529a9f12690SJung-uk Kim     char                    **ConvertedName);
530a9f12690SJung-uk Kim 
531a9f12690SJung-uk Kim ACPI_STATUS
532a9f12690SJung-uk Kim AcpiNsExternalizeName (
533a9f12690SJung-uk Kim     UINT32                  InternalNameLength,
534a9f12690SJung-uk Kim     const char              *InternalName,
535a9f12690SJung-uk Kim     UINT32                  *ConvertedNameLength,
536a9f12690SJung-uk Kim     char                    **ConvertedName);
537a9f12690SJung-uk Kim 
538a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
539572c8255SJung-uk Kim AcpiNsValidateHandle (
540a9f12690SJung-uk Kim     ACPI_HANDLE             Handle);
541a9f12690SJung-uk Kim 
542a9f12690SJung-uk Kim void
543a9f12690SJung-uk Kim AcpiNsTerminate (
544a9f12690SJung-uk Kim     void);
545a9f12690SJung-uk Kim 
546a9f12690SJung-uk Kim #endif /* __ACNAMESP_H__ */
547