xref: /freebsd/sys/contrib/dev/acpica/include/acnamesp.h (revision f8146b882bc156c1d8ddf14bbea67253ebc064bb)
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 /*
8*f8146b88SJung-uk Kim  * Copyright (C) 2000 - 2016, 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
81*f8146b88SJung-uk Kim #define ACPI_ALL_PACKAGE_ELEMENTS   (ACPI_UINT32_MAX-1)
82d6dd1baeSJung-uk Kim 
83d6dd1baeSJung-uk Kim /* Always emit warning message, not dependent on node flags */
84d6dd1baeSJung-uk Kim 
85d6dd1baeSJung-uk Kim #define ACPI_WARN_ALWAYS            0
86d6dd1baeSJung-uk Kim 
87a9f12690SJung-uk Kim 
88a9f12690SJung-uk Kim /*
89a9f12690SJung-uk Kim  * nsinit - Namespace initialization
90a9f12690SJung-uk Kim  */
91a9f12690SJung-uk Kim ACPI_STATUS
92a9f12690SJung-uk Kim AcpiNsInitializeObjects (
93a9f12690SJung-uk Kim     void);
94a9f12690SJung-uk Kim 
95a9f12690SJung-uk Kim ACPI_STATUS
96a9f12690SJung-uk Kim AcpiNsInitializeDevices (
97*f8146b88SJung-uk Kim     UINT32                  Flags);
98a9f12690SJung-uk Kim 
99a9f12690SJung-uk Kim 
100a9f12690SJung-uk Kim /*
101a9f12690SJung-uk Kim  * nsload -  Namespace loading
102a9f12690SJung-uk Kim  */
103a9f12690SJung-uk Kim ACPI_STATUS
104a9f12690SJung-uk Kim AcpiNsLoadNamespace (
105a9f12690SJung-uk Kim     void);
106a9f12690SJung-uk Kim 
107a9f12690SJung-uk Kim ACPI_STATUS
108a9f12690SJung-uk Kim AcpiNsLoadTable (
109a9f12690SJung-uk Kim     UINT32                  TableIndex,
110a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
111a9f12690SJung-uk Kim 
112a9f12690SJung-uk Kim 
113a9f12690SJung-uk Kim /*
114a9f12690SJung-uk Kim  * nswalk - walk the namespace
115a9f12690SJung-uk Kim  */
116a9f12690SJung-uk Kim ACPI_STATUS
117a9f12690SJung-uk Kim AcpiNsWalkNamespace (
118a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
119a9f12690SJung-uk Kim     ACPI_HANDLE             StartObject,
120a9f12690SJung-uk Kim     UINT32                  MaxDepth,
121a9f12690SJung-uk Kim     UINT32                  Flags,
122bf6fac21SJung-uk Kim     ACPI_WALK_CALLBACK      DescendingCallback,
123bf6fac21SJung-uk Kim     ACPI_WALK_CALLBACK      AscendingCallback,
124a9f12690SJung-uk Kim     void                    *Context,
125a9f12690SJung-uk Kim     void                    **ReturnValue);
126a9f12690SJung-uk Kim 
127a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
128a9f12690SJung-uk Kim AcpiNsGetNextNode (
129a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Parent,
130a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Child);
131a9f12690SJung-uk Kim 
132a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
133a9f12690SJung-uk Kim AcpiNsGetNextNodeTyped (
134a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
135a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Parent,
136a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Child);
137a9f12690SJung-uk Kim 
138a9f12690SJung-uk Kim /*
139a9f12690SJung-uk Kim  * nsparse - table parsing
140a9f12690SJung-uk Kim  */
141a9f12690SJung-uk Kim ACPI_STATUS
142a9f12690SJung-uk Kim AcpiNsParseTable (
143a9f12690SJung-uk Kim     UINT32                  TableIndex,
144a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *StartNode);
145a9f12690SJung-uk Kim 
146a9f12690SJung-uk Kim ACPI_STATUS
147a9f12690SJung-uk Kim AcpiNsOneCompleteParse (
148a9f12690SJung-uk Kim     UINT32                  PassNumber,
149a9f12690SJung-uk Kim     UINT32                  TableIndex,
150a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *StartNode);
151a9f12690SJung-uk Kim 
152a9f12690SJung-uk Kim 
153a9f12690SJung-uk Kim /*
154a9f12690SJung-uk Kim  * nsaccess - Top-level namespace access
155a9f12690SJung-uk Kim  */
156a9f12690SJung-uk Kim ACPI_STATUS
157a9f12690SJung-uk Kim AcpiNsRootInitialize (
158a9f12690SJung-uk Kim     void);
159a9f12690SJung-uk Kim 
160a9f12690SJung-uk Kim ACPI_STATUS
161a9f12690SJung-uk Kim AcpiNsLookup (
162a9f12690SJung-uk Kim     ACPI_GENERIC_STATE      *ScopeInfo,
163a9f12690SJung-uk Kim     char                    *Name,
164a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
165a9f12690SJung-uk Kim     ACPI_INTERPRETER_MODE   InterpreterMode,
166a9f12690SJung-uk Kim     UINT32                  Flags,
167a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
168a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **RetNode);
169a9f12690SJung-uk Kim 
170a9f12690SJung-uk Kim 
171a9f12690SJung-uk Kim /*
172a9f12690SJung-uk Kim  * nsalloc - Named object allocation/deallocation
173a9f12690SJung-uk Kim  */
174a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
175a9f12690SJung-uk Kim AcpiNsCreateNode (
176a9f12690SJung-uk Kim     UINT32                  Name);
177a9f12690SJung-uk Kim 
178a9f12690SJung-uk Kim void
179a9f12690SJung-uk Kim AcpiNsDeleteNode (
180a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
181a9f12690SJung-uk Kim 
182a9f12690SJung-uk Kim void
183d6dd1baeSJung-uk Kim AcpiNsRemoveNode (
184d6dd1baeSJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
185d6dd1baeSJung-uk Kim 
186d6dd1baeSJung-uk Kim void
187a9f12690SJung-uk Kim AcpiNsDeleteNamespaceSubtree (
188a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *ParentHandle);
189a9f12690SJung-uk Kim 
190a9f12690SJung-uk Kim void
191a9f12690SJung-uk Kim AcpiNsDeleteNamespaceByOwner (
192a9f12690SJung-uk Kim     ACPI_OWNER_ID           OwnerId);
193a9f12690SJung-uk Kim 
194a9f12690SJung-uk Kim void
195a9f12690SJung-uk Kim AcpiNsDetachObject (
196a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
197a9f12690SJung-uk Kim 
198a9f12690SJung-uk Kim void
199a9f12690SJung-uk Kim AcpiNsDeleteChildren (
200a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Parent);
201a9f12690SJung-uk Kim 
202a9f12690SJung-uk Kim int
203a9f12690SJung-uk Kim AcpiNsCompareNames (
204a9f12690SJung-uk Kim     char                    *Name1,
205a9f12690SJung-uk Kim     char                    *Name2);
206a9f12690SJung-uk Kim 
207a9f12690SJung-uk Kim 
208a9f12690SJung-uk Kim /*
2099c48c75eSJung-uk Kim  * nsconvert - Dynamic object conversion routines
2109c48c75eSJung-uk Kim  */
2119c48c75eSJung-uk Kim ACPI_STATUS
2129c48c75eSJung-uk Kim AcpiNsConvertToInteger (
2139c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2149c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2159c48c75eSJung-uk Kim 
2169c48c75eSJung-uk Kim ACPI_STATUS
2179c48c75eSJung-uk Kim AcpiNsConvertToString (
2189c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2199c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2209c48c75eSJung-uk Kim 
2219c48c75eSJung-uk Kim ACPI_STATUS
2229c48c75eSJung-uk Kim AcpiNsConvertToBuffer (
2239c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2249c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2259c48c75eSJung-uk Kim 
2269c48c75eSJung-uk Kim ACPI_STATUS
2279c48c75eSJung-uk Kim AcpiNsConvertToUnicode (
228*f8146b88SJung-uk Kim     ACPI_NAMESPACE_NODE     *Scope,
2299c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2309c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2319c48c75eSJung-uk Kim 
2329c48c75eSJung-uk Kim ACPI_STATUS
2339c48c75eSJung-uk Kim AcpiNsConvertToResource (
234*f8146b88SJung-uk Kim     ACPI_NAMESPACE_NODE     *Scope,
235*f8146b88SJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
236*f8146b88SJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
237*f8146b88SJung-uk Kim 
238*f8146b88SJung-uk Kim ACPI_STATUS
239*f8146b88SJung-uk Kim AcpiNsConvertToReference (
240*f8146b88SJung-uk Kim     ACPI_NAMESPACE_NODE     *Scope,
2419c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
2429c48c75eSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
2439c48c75eSJung-uk Kim 
2449c48c75eSJung-uk Kim 
2459c48c75eSJung-uk Kim /*
246a9f12690SJung-uk Kim  * nsdump - Namespace dump/print utilities
247a9f12690SJung-uk Kim  */
248a9f12690SJung-uk Kim void
249a9f12690SJung-uk Kim AcpiNsDumpTables (
250a9f12690SJung-uk Kim     ACPI_HANDLE             SearchBase,
251a9f12690SJung-uk Kim     UINT32                  MaxDepth);
252a9f12690SJung-uk Kim 
253a9f12690SJung-uk Kim void
254a9f12690SJung-uk Kim AcpiNsDumpEntry (
255a9f12690SJung-uk Kim     ACPI_HANDLE             Handle,
256a9f12690SJung-uk Kim     UINT32                  DebugLevel);
257a9f12690SJung-uk Kim 
258a9f12690SJung-uk Kim void
259a9f12690SJung-uk Kim AcpiNsDumpPathname (
260a9f12690SJung-uk Kim     ACPI_HANDLE             Handle,
261*f8146b88SJung-uk Kim     const char              *Msg,
262a9f12690SJung-uk Kim     UINT32                  Level,
263a9f12690SJung-uk Kim     UINT32                  Component);
264a9f12690SJung-uk Kim 
265a9f12690SJung-uk Kim void
266a9f12690SJung-uk Kim AcpiNsPrintPathname (
267a9f12690SJung-uk Kim     UINT32                  NumSegments,
268*f8146b88SJung-uk Kim     const char              *Pathname);
269a9f12690SJung-uk Kim 
270a9f12690SJung-uk Kim ACPI_STATUS
271a9f12690SJung-uk Kim AcpiNsDumpOneObject (
272a9f12690SJung-uk Kim     ACPI_HANDLE             ObjHandle,
273a9f12690SJung-uk Kim     UINT32                  Level,
274a9f12690SJung-uk Kim     void                    *Context,
275a9f12690SJung-uk Kim     void                    **ReturnValue);
276a9f12690SJung-uk Kim 
277a9f12690SJung-uk Kim void
278a9f12690SJung-uk Kim AcpiNsDumpObjects (
279a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
280a9f12690SJung-uk Kim     UINT8                   DisplayType,
281a9f12690SJung-uk Kim     UINT32                  MaxDepth,
282a9f12690SJung-uk Kim     ACPI_OWNER_ID           OwnerId,
283a9f12690SJung-uk Kim     ACPI_HANDLE             StartHandle);
284a9f12690SJung-uk Kim 
28579c6d946SJung-uk Kim void
28679c6d946SJung-uk Kim AcpiNsDumpObjectPaths (
28779c6d946SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
28879c6d946SJung-uk Kim     UINT8                   DisplayType,
28979c6d946SJung-uk Kim     UINT32                  MaxDepth,
29079c6d946SJung-uk Kim     ACPI_OWNER_ID           OwnerId,
29179c6d946SJung-uk Kim     ACPI_HANDLE             StartHandle);
29279c6d946SJung-uk Kim 
293a9f12690SJung-uk Kim 
294a9f12690SJung-uk Kim /*
295a9f12690SJung-uk Kim  * nseval - Namespace evaluation functions
296a9f12690SJung-uk Kim  */
297a9f12690SJung-uk Kim ACPI_STATUS
298a9f12690SJung-uk Kim AcpiNsEvaluate (
299a9f12690SJung-uk Kim     ACPI_EVALUATE_INFO      *Info);
300a9f12690SJung-uk Kim 
301d6dd1baeSJung-uk Kim void
302d6dd1baeSJung-uk Kim AcpiNsExecModuleCodeList (
303d6dd1baeSJung-uk Kim     void);
304d6dd1baeSJung-uk Kim 
305a9f12690SJung-uk Kim 
306a9f12690SJung-uk Kim /*
307895f26a9SJung-uk Kim  * nsarguments - Argument count/type checking for predefined/reserved names
308a9f12690SJung-uk Kim  */
309a9f12690SJung-uk Kim void
310895f26a9SJung-uk Kim AcpiNsCheckArgumentCount (
311a9f12690SJung-uk Kim     char                        *Pathname,
312a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE         *Node,
313a9f12690SJung-uk Kim     UINT32                      UserParamCount,
314a9f12690SJung-uk Kim     const ACPI_PREDEFINED_INFO  *Info);
315a9f12690SJung-uk Kim 
316895f26a9SJung-uk Kim void
317895f26a9SJung-uk Kim AcpiNsCheckAcpiCompliance (
318895f26a9SJung-uk Kim     char                        *Pathname,
319895f26a9SJung-uk Kim     ACPI_NAMESPACE_NODE         *Node,
320895f26a9SJung-uk Kim     const ACPI_PREDEFINED_INFO  *Predefined);
321895f26a9SJung-uk Kim 
322895f26a9SJung-uk Kim void
323895f26a9SJung-uk Kim AcpiNsCheckArgumentTypes (
324895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO          *Info);
325895f26a9SJung-uk Kim 
326895f26a9SJung-uk Kim 
327895f26a9SJung-uk Kim /*
328895f26a9SJung-uk Kim  * nspredef - Return value checking for predefined/reserved names
329895f26a9SJung-uk Kim  */
330895f26a9SJung-uk Kim ACPI_STATUS
331895f26a9SJung-uk Kim AcpiNsCheckReturnValue (
332895f26a9SJung-uk Kim     ACPI_NAMESPACE_NODE         *Node,
333895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO          *Info,
334895f26a9SJung-uk Kim     UINT32                      UserParamCount,
335895f26a9SJung-uk Kim     ACPI_STATUS                 ReturnStatus,
336895f26a9SJung-uk Kim     ACPI_OPERAND_OBJECT         **ReturnObject);
337895f26a9SJung-uk Kim 
338efcc2a30SJung-uk Kim ACPI_STATUS
339efcc2a30SJung-uk Kim AcpiNsCheckObjectType (
340895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO          *Info,
341efcc2a30SJung-uk Kim     ACPI_OPERAND_OBJECT         **ReturnObjectPtr,
342efcc2a30SJung-uk Kim     UINT32                      ExpectedBtypes,
343efcc2a30SJung-uk Kim     UINT32                      PackageIndex);
344efcc2a30SJung-uk Kim 
345efcc2a30SJung-uk Kim 
346efcc2a30SJung-uk Kim /*
347efcc2a30SJung-uk Kim  * nsprepkg - Validation of predefined name packages
348efcc2a30SJung-uk Kim  */
349efcc2a30SJung-uk Kim ACPI_STATUS
350efcc2a30SJung-uk Kim AcpiNsCheckPackage (
351895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO          *Info,
352efcc2a30SJung-uk Kim     ACPI_OPERAND_OBJECT         **ReturnObjectPtr);
353efcc2a30SJung-uk Kim 
354a9f12690SJung-uk Kim 
355a9f12690SJung-uk Kim /*
356a9f12690SJung-uk Kim  * nsnames - Name and Scope manipulation
357a9f12690SJung-uk Kim  */
358a9f12690SJung-uk Kim UINT32
359a9f12690SJung-uk Kim AcpiNsOpensScope (
360a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
361a9f12690SJung-uk Kim 
362a9f12690SJung-uk Kim char *
363a9f12690SJung-uk Kim AcpiNsGetExternalPathname (
364a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
365a9f12690SJung-uk Kim 
366fe0f0bbbSJung-uk Kim UINT32
367fe0f0bbbSJung-uk Kim AcpiNsBuildNormalizedPath (
368fe0f0bbbSJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
369fe0f0bbbSJung-uk Kim     char                    *FullPath,
370fe0f0bbbSJung-uk Kim     UINT32                  PathSize,
371fe0f0bbbSJung-uk Kim     BOOLEAN                 NoTrailing);
372fe0f0bbbSJung-uk Kim 
373fe0f0bbbSJung-uk Kim char *
374fe0f0bbbSJung-uk Kim AcpiNsGetNormalizedPathname (
375fe0f0bbbSJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
376fe0f0bbbSJung-uk Kim     BOOLEAN                 NoTrailing);
377fe0f0bbbSJung-uk Kim 
378a9f12690SJung-uk Kim char *
379a9f12690SJung-uk Kim AcpiNsNameOfCurrentScope (
380a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
381a9f12690SJung-uk Kim 
382a9f12690SJung-uk Kim ACPI_STATUS
383a9f12690SJung-uk Kim AcpiNsHandleToPathname (
384a9f12690SJung-uk Kim     ACPI_HANDLE             TargetHandle,
385fe0f0bbbSJung-uk Kim     ACPI_BUFFER             *Buffer,
386fe0f0bbbSJung-uk Kim     BOOLEAN                 NoTrailing);
387a9f12690SJung-uk Kim 
388a9f12690SJung-uk Kim BOOLEAN
389a9f12690SJung-uk Kim AcpiNsPatternMatch (
390a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *ObjNode,
391a9f12690SJung-uk Kim     char                    *SearchFor);
392a9f12690SJung-uk Kim 
393a9f12690SJung-uk Kim ACPI_STATUS
394a9f12690SJung-uk Kim AcpiNsGetNode (
395a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *PrefixNode,
396a9f12690SJung-uk Kim     const char              *ExternalPathname,
397a9f12690SJung-uk Kim     UINT32                  Flags,
398a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **OutNode);
399a9f12690SJung-uk Kim 
400a9f12690SJung-uk Kim ACPI_SIZE
401a9f12690SJung-uk Kim AcpiNsGetPathnameLength (
402a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
403a9f12690SJung-uk Kim 
404a9f12690SJung-uk Kim 
405a9f12690SJung-uk Kim /*
406a9f12690SJung-uk Kim  * nsobject - Object management for namespace nodes
407a9f12690SJung-uk Kim  */
408a9f12690SJung-uk Kim ACPI_STATUS
409a9f12690SJung-uk Kim AcpiNsAttachObject (
410a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
411a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *Object,
412a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
413a9f12690SJung-uk Kim 
414a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *
415a9f12690SJung-uk Kim AcpiNsGetAttachedObject (
416a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
417a9f12690SJung-uk Kim 
418a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *
419a9f12690SJung-uk Kim AcpiNsGetSecondaryObject (
420a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
421a9f12690SJung-uk Kim 
422a9f12690SJung-uk Kim ACPI_STATUS
423a9f12690SJung-uk Kim AcpiNsAttachData (
424a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
425a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
426a9f12690SJung-uk Kim     void                    *Data);
427a9f12690SJung-uk Kim 
428a9f12690SJung-uk Kim ACPI_STATUS
429a9f12690SJung-uk Kim AcpiNsDetachData (
430a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
431a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler);
432a9f12690SJung-uk Kim 
433a9f12690SJung-uk Kim ACPI_STATUS
434a9f12690SJung-uk Kim AcpiNsGetAttachedData (
435a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
436a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
437a9f12690SJung-uk Kim     void                    **Data);
438a9f12690SJung-uk Kim 
439a9f12690SJung-uk Kim 
440a9f12690SJung-uk Kim /*
4412272d050SJung-uk Kim  * nsrepair - General return object repair for all
4422272d050SJung-uk Kim  * predefined methods/objects
443d6dd1baeSJung-uk Kim  */
444d6dd1baeSJung-uk Kim ACPI_STATUS
4459c48c75eSJung-uk Kim AcpiNsSimpleRepair (
446895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
447d6dd1baeSJung-uk Kim     UINT32                  ExpectedBtypes,
448d6dd1baeSJung-uk Kim     UINT32                  PackageIndex,
449d6dd1baeSJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
450d6dd1baeSJung-uk Kim 
451d6dd1baeSJung-uk Kim ACPI_STATUS
4523f8d720fSJung-uk Kim AcpiNsWrapWithPackage (
453895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
4543f8d720fSJung-uk Kim     ACPI_OPERAND_OBJECT     *OriginalObject,
455d6dd1baeSJung-uk Kim     ACPI_OPERAND_OBJECT     **ObjDescPtr);
456d6dd1baeSJung-uk Kim 
4579a179dd8SJung-uk Kim ACPI_STATUS
4589a179dd8SJung-uk Kim AcpiNsRepairNullElement (
459895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
4609a179dd8SJung-uk Kim     UINT32                  ExpectedBtypes,
4619a179dd8SJung-uk Kim     UINT32                  PackageIndex,
4629a179dd8SJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
4639a179dd8SJung-uk Kim 
4649a179dd8SJung-uk Kim void
4659a179dd8SJung-uk Kim AcpiNsRemoveNullElements (
466895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
4679a179dd8SJung-uk Kim     UINT8                   PackageType,
4689a179dd8SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
4699a179dd8SJung-uk Kim 
470d6dd1baeSJung-uk Kim 
471d6dd1baeSJung-uk Kim /*
4722272d050SJung-uk Kim  * nsrepair2 - Return object repair for specific
4732272d050SJung-uk Kim  * predefined methods/objects
4742272d050SJung-uk Kim  */
4752272d050SJung-uk Kim ACPI_STATUS
4762272d050SJung-uk Kim AcpiNsComplexRepairs (
477895f26a9SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
4782272d050SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
4792272d050SJung-uk Kim     ACPI_STATUS             ValidateStatus,
4802272d050SJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
4812272d050SJung-uk Kim 
4822272d050SJung-uk Kim 
4832272d050SJung-uk Kim /*
484a9f12690SJung-uk Kim  * nssearch - Namespace searching and entry
485a9f12690SJung-uk Kim  */
486a9f12690SJung-uk Kim ACPI_STATUS
487a9f12690SJung-uk Kim AcpiNsSearchAndEnter (
488a9f12690SJung-uk Kim     UINT32                  EntryName,
489a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
490a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
491a9f12690SJung-uk Kim     ACPI_INTERPRETER_MODE   InterpreterMode,
492a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
493a9f12690SJung-uk Kim     UINT32                  Flags,
494a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **RetNode);
495a9f12690SJung-uk Kim 
496a9f12690SJung-uk Kim ACPI_STATUS
497a9f12690SJung-uk Kim AcpiNsSearchOneScope (
498a9f12690SJung-uk Kim     UINT32                  EntryName,
499a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
500a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
501a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **RetNode);
502a9f12690SJung-uk Kim 
503a9f12690SJung-uk Kim void
504a9f12690SJung-uk Kim AcpiNsInstallNode (
505a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
506a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *ParentNode,
507a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
508a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
509a9f12690SJung-uk Kim 
510a9f12690SJung-uk Kim 
511a9f12690SJung-uk Kim /*
512a9f12690SJung-uk Kim  * nsutils - Utility functions
513a9f12690SJung-uk Kim  */
514a9f12690SJung-uk Kim ACPI_OBJECT_TYPE
515a9f12690SJung-uk Kim AcpiNsGetType (
516a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
517a9f12690SJung-uk Kim 
518a9f12690SJung-uk Kim UINT32
519a9f12690SJung-uk Kim AcpiNsLocal (
520a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
521a9f12690SJung-uk Kim 
522a9f12690SJung-uk Kim void
523a9f12690SJung-uk Kim AcpiNsPrintNodePathname (
524a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
525a9f12690SJung-uk Kim     const char              *Msg);
526a9f12690SJung-uk Kim 
527a9f12690SJung-uk Kim ACPI_STATUS
528a9f12690SJung-uk Kim AcpiNsBuildInternalName (
529a9f12690SJung-uk Kim     ACPI_NAMESTRING_INFO    *Info);
530a9f12690SJung-uk Kim 
531a9f12690SJung-uk Kim void
532a9f12690SJung-uk Kim AcpiNsGetInternalNameLength (
533a9f12690SJung-uk Kim     ACPI_NAMESTRING_INFO    *Info);
534a9f12690SJung-uk Kim 
535a9f12690SJung-uk Kim ACPI_STATUS
536a9f12690SJung-uk Kim AcpiNsInternalizeName (
537a9f12690SJung-uk Kim     const char              *DottedName,
538a9f12690SJung-uk Kim     char                    **ConvertedName);
539a9f12690SJung-uk Kim 
540a9f12690SJung-uk Kim ACPI_STATUS
541a9f12690SJung-uk Kim AcpiNsExternalizeName (
542a9f12690SJung-uk Kim     UINT32                  InternalNameLength,
543a9f12690SJung-uk Kim     const char              *InternalName,
544a9f12690SJung-uk Kim     UINT32                  *ConvertedNameLength,
545a9f12690SJung-uk Kim     char                    **ConvertedName);
546a9f12690SJung-uk Kim 
547a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
548572c8255SJung-uk Kim AcpiNsValidateHandle (
549a9f12690SJung-uk Kim     ACPI_HANDLE             Handle);
550a9f12690SJung-uk Kim 
551a9f12690SJung-uk Kim void
552a9f12690SJung-uk Kim AcpiNsTerminate (
553a9f12690SJung-uk Kim     void);
554a9f12690SJung-uk Kim 
555a9f12690SJung-uk Kim #endif /* __ACNAMESP_H__ */
556