xref: /freebsd/sys/contrib/dev/acpica/include/acnamesp.h (revision 572c8255e6c7ee86cc42e91e539d2b2310cf6676)
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 
7a9f12690SJung-uk Kim /******************************************************************************
8a9f12690SJung-uk Kim  *
9a9f12690SJung-uk Kim  * 1. Copyright Notice
10a9f12690SJung-uk Kim  *
11a9f12690SJung-uk Kim  * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
12a9f12690SJung-uk Kim  * All rights reserved.
13a9f12690SJung-uk Kim  *
14a9f12690SJung-uk Kim  * 2. License
15a9f12690SJung-uk Kim  *
16a9f12690SJung-uk Kim  * 2.1. This is your license from Intel Corp. under its intellectual property
17a9f12690SJung-uk Kim  * rights.  You may have additional license terms from the party that provided
18a9f12690SJung-uk Kim  * you this software, covering your right to use that party's intellectual
19a9f12690SJung-uk Kim  * property rights.
20a9f12690SJung-uk Kim  *
21a9f12690SJung-uk Kim  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22a9f12690SJung-uk Kim  * copy of the source code appearing in this file ("Covered Code") an
23a9f12690SJung-uk Kim  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24a9f12690SJung-uk Kim  * base code distributed originally by Intel ("Original Intel Code") to copy,
25a9f12690SJung-uk Kim  * make derivatives, distribute, use and display any portion of the Covered
26a9f12690SJung-uk Kim  * Code in any form, with the right to sublicense such rights; and
27a9f12690SJung-uk Kim  *
28a9f12690SJung-uk Kim  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29a9f12690SJung-uk Kim  * license (with the right to sublicense), under only those claims of Intel
30a9f12690SJung-uk Kim  * patents that are infringed by the Original Intel Code, to make, use, sell,
31a9f12690SJung-uk Kim  * offer to sell, and import the Covered Code and derivative works thereof
32a9f12690SJung-uk Kim  * solely to the minimum extent necessary to exercise the above copyright
33a9f12690SJung-uk Kim  * license, and in no event shall the patent license extend to any additions
34a9f12690SJung-uk Kim  * to or modifications of the Original Intel Code.  No other license or right
35a9f12690SJung-uk Kim  * is granted directly or by implication, estoppel or otherwise;
36a9f12690SJung-uk Kim  *
37a9f12690SJung-uk Kim  * The above copyright and patent license is granted only if the following
38a9f12690SJung-uk Kim  * conditions are met:
39a9f12690SJung-uk Kim  *
40a9f12690SJung-uk Kim  * 3. Conditions
41a9f12690SJung-uk Kim  *
42a9f12690SJung-uk Kim  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43a9f12690SJung-uk Kim  * Redistribution of source code of any substantial portion of the Covered
44a9f12690SJung-uk Kim  * Code or modification with rights to further distribute source must include
45a9f12690SJung-uk Kim  * the above Copyright Notice, the above License, this list of Conditions,
46a9f12690SJung-uk Kim  * and the following Disclaimer and Export Compliance provision.  In addition,
47a9f12690SJung-uk Kim  * Licensee must cause all Covered Code to which Licensee contributes to
48a9f12690SJung-uk Kim  * contain a file documenting the changes Licensee made to create that Covered
49a9f12690SJung-uk Kim  * Code and the date of any change.  Licensee must include in that file the
50a9f12690SJung-uk Kim  * documentation of any changes made by any predecessor Licensee.  Licensee
51a9f12690SJung-uk Kim  * must include a prominent statement that the modification is derived,
52a9f12690SJung-uk Kim  * directly or indirectly, from Original Intel Code.
53a9f12690SJung-uk Kim  *
54a9f12690SJung-uk Kim  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55a9f12690SJung-uk Kim  * Redistribution of source code of any substantial portion of the Covered
56a9f12690SJung-uk Kim  * Code or modification without rights to further distribute source must
57a9f12690SJung-uk Kim  * include the following Disclaimer and Export Compliance provision in the
58a9f12690SJung-uk Kim  * documentation and/or other materials provided with distribution.  In
59a9f12690SJung-uk Kim  * addition, Licensee may not authorize further sublicense of source of any
60a9f12690SJung-uk Kim  * portion of the Covered Code, and must include terms to the effect that the
61a9f12690SJung-uk Kim  * license from Licensee to its licensee is limited to the intellectual
62a9f12690SJung-uk Kim  * property embodied in the software Licensee provides to its licensee, and
63a9f12690SJung-uk Kim  * not to intellectual property embodied in modifications its licensee may
64a9f12690SJung-uk Kim  * make.
65a9f12690SJung-uk Kim  *
66a9f12690SJung-uk Kim  * 3.3. Redistribution of Executable. Redistribution in executable form of any
67a9f12690SJung-uk Kim  * substantial portion of the Covered Code or modification must reproduce the
68a9f12690SJung-uk Kim  * above Copyright Notice, and the following Disclaimer and Export Compliance
69a9f12690SJung-uk Kim  * provision in the documentation and/or other materials provided with the
70a9f12690SJung-uk Kim  * distribution.
71a9f12690SJung-uk Kim  *
72a9f12690SJung-uk Kim  * 3.4. Intel retains all right, title, and interest in and to the Original
73a9f12690SJung-uk Kim  * Intel Code.
74a9f12690SJung-uk Kim  *
75a9f12690SJung-uk Kim  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76a9f12690SJung-uk Kim  * Intel shall be used in advertising or otherwise to promote the sale, use or
77a9f12690SJung-uk Kim  * other dealings in products derived from or relating to the Covered Code
78a9f12690SJung-uk Kim  * without prior written authorization from Intel.
79a9f12690SJung-uk Kim  *
80a9f12690SJung-uk Kim  * 4. Disclaimer and Export Compliance
81a9f12690SJung-uk Kim  *
82a9f12690SJung-uk Kim  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83a9f12690SJung-uk Kim  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84a9f12690SJung-uk Kim  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
85a9f12690SJung-uk Kim  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
86a9f12690SJung-uk Kim  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
87a9f12690SJung-uk Kim  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88a9f12690SJung-uk Kim  * PARTICULAR PURPOSE.
89a9f12690SJung-uk Kim  *
90a9f12690SJung-uk Kim  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91a9f12690SJung-uk Kim  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92a9f12690SJung-uk Kim  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93a9f12690SJung-uk Kim  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94a9f12690SJung-uk Kim  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95a9f12690SJung-uk Kim  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
96a9f12690SJung-uk Kim  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97a9f12690SJung-uk Kim  * LIMITED REMEDY.
98a9f12690SJung-uk Kim  *
99a9f12690SJung-uk Kim  * 4.3. Licensee shall not export, either directly or indirectly, any of this
100a9f12690SJung-uk Kim  * software or system incorporating such software without first obtaining any
101a9f12690SJung-uk Kim  * required license or other approval from the U. S. Department of Commerce or
102a9f12690SJung-uk Kim  * any other agency or department of the United States Government.  In the
103a9f12690SJung-uk Kim  * event Licensee exports any such software from the United States or
104a9f12690SJung-uk Kim  * re-exports any such software from a foreign destination, Licensee shall
105a9f12690SJung-uk Kim  * ensure that the distribution and export/re-export of the software is in
106a9f12690SJung-uk Kim  * compliance with all laws, regulations, orders, or other restrictions of the
107a9f12690SJung-uk Kim  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108a9f12690SJung-uk Kim  * any of its subsidiaries will export/re-export any technical data, process,
109a9f12690SJung-uk Kim  * software, or service, directly or indirectly, to any country for which the
110a9f12690SJung-uk Kim  * United States government or any agency thereof requires an export license,
111a9f12690SJung-uk Kim  * other governmental approval, or letter of assurance, without first obtaining
112a9f12690SJung-uk Kim  * such license, approval or letter.
113a9f12690SJung-uk Kim  *
114a9f12690SJung-uk Kim  *****************************************************************************/
115a9f12690SJung-uk Kim 
116a9f12690SJung-uk Kim #ifndef __ACNAMESP_H__
117a9f12690SJung-uk Kim #define __ACNAMESP_H__
118a9f12690SJung-uk Kim 
119a9f12690SJung-uk Kim 
120a9f12690SJung-uk Kim /* To search the entire name space, pass this as SearchBase */
121a9f12690SJung-uk Kim 
122a9f12690SJung-uk Kim #define ACPI_NS_ALL                 ((ACPI_HANDLE)0)
123a9f12690SJung-uk Kim 
124a9f12690SJung-uk Kim /*
125a9f12690SJung-uk Kim  * Elements of AcpiNsProperties are bit significant
126a9f12690SJung-uk Kim  * and should be one-to-one with values of ACPI_OBJECT_TYPE
127a9f12690SJung-uk Kim  */
128a9f12690SJung-uk Kim #define ACPI_NS_NORMAL              0
129a9f12690SJung-uk Kim #define ACPI_NS_NEWSCOPE            1   /* a definition of this type opens a name scope */
130a9f12690SJung-uk Kim #define ACPI_NS_LOCAL               2   /* suppress search of enclosing scopes */
131a9f12690SJung-uk Kim 
132a9f12690SJung-uk Kim /* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
133a9f12690SJung-uk Kim 
134a9f12690SJung-uk Kim #define ACPI_NS_NO_UPSEARCH         0
135a9f12690SJung-uk Kim #define ACPI_NS_SEARCH_PARENT       0x01
136a9f12690SJung-uk Kim #define ACPI_NS_DONT_OPEN_SCOPE     0x02
137a9f12690SJung-uk Kim #define ACPI_NS_NO_PEER_SEARCH      0x04
138a9f12690SJung-uk Kim #define ACPI_NS_ERROR_IF_FOUND      0x08
139a9f12690SJung-uk Kim #define ACPI_NS_PREFIX_IS_SCOPE     0x10
140a9f12690SJung-uk Kim #define ACPI_NS_EXTERNAL            0x20
141a9f12690SJung-uk Kim #define ACPI_NS_TEMPORARY           0x40
142a9f12690SJung-uk Kim 
143a9f12690SJung-uk Kim /* Flags for AcpiNsWalkNamespace */
144a9f12690SJung-uk Kim 
145a9f12690SJung-uk Kim #define ACPI_NS_WALK_NO_UNLOCK      0
146a9f12690SJung-uk Kim #define ACPI_NS_WALK_UNLOCK         0x01
147a9f12690SJung-uk Kim #define ACPI_NS_WALK_TEMP_NODES     0x02
148a9f12690SJung-uk Kim 
149d6dd1baeSJung-uk Kim /* Object is not a package element */
150d6dd1baeSJung-uk Kim 
151d6dd1baeSJung-uk Kim #define ACPI_NOT_PACKAGE_ELEMENT    ACPI_UINT32_MAX
152d6dd1baeSJung-uk Kim 
153d6dd1baeSJung-uk Kim /* Always emit warning message, not dependent on node flags */
154d6dd1baeSJung-uk Kim 
155d6dd1baeSJung-uk Kim #define ACPI_WARN_ALWAYS            0
156d6dd1baeSJung-uk Kim 
157a9f12690SJung-uk Kim 
158a9f12690SJung-uk Kim /*
159a9f12690SJung-uk Kim  * nsinit - Namespace initialization
160a9f12690SJung-uk Kim  */
161a9f12690SJung-uk Kim ACPI_STATUS
162a9f12690SJung-uk Kim AcpiNsInitializeObjects (
163a9f12690SJung-uk Kim     void);
164a9f12690SJung-uk Kim 
165a9f12690SJung-uk Kim ACPI_STATUS
166a9f12690SJung-uk Kim AcpiNsInitializeDevices (
167a9f12690SJung-uk Kim     void);
168a9f12690SJung-uk Kim 
169a9f12690SJung-uk Kim 
170a9f12690SJung-uk Kim /*
171a9f12690SJung-uk Kim  * nsload -  Namespace loading
172a9f12690SJung-uk Kim  */
173a9f12690SJung-uk Kim ACPI_STATUS
174a9f12690SJung-uk Kim AcpiNsLoadNamespace (
175a9f12690SJung-uk Kim     void);
176a9f12690SJung-uk Kim 
177a9f12690SJung-uk Kim ACPI_STATUS
178a9f12690SJung-uk Kim AcpiNsLoadTable (
179a9f12690SJung-uk Kim     UINT32                  TableIndex,
180a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
181a9f12690SJung-uk Kim 
182a9f12690SJung-uk Kim 
183a9f12690SJung-uk Kim /*
184a9f12690SJung-uk Kim  * nswalk - walk the namespace
185a9f12690SJung-uk Kim  */
186a9f12690SJung-uk Kim ACPI_STATUS
187a9f12690SJung-uk Kim AcpiNsWalkNamespace (
188a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
189a9f12690SJung-uk Kim     ACPI_HANDLE             StartObject,
190a9f12690SJung-uk Kim     UINT32                  MaxDepth,
191a9f12690SJung-uk Kim     UINT32                  Flags,
1922272d050SJung-uk Kim     ACPI_WALK_CALLBACK      PreOrderVisit,
1932272d050SJung-uk Kim     ACPI_WALK_CALLBACK      PostOrderVisit,
194a9f12690SJung-uk Kim     void                    *Context,
195a9f12690SJung-uk Kim     void                    **ReturnValue);
196a9f12690SJung-uk Kim 
197a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
198a9f12690SJung-uk Kim AcpiNsGetNextNode (
199a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Parent,
200a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Child);
201a9f12690SJung-uk Kim 
202a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
203a9f12690SJung-uk Kim AcpiNsGetNextNodeTyped (
204a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
205a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Parent,
206a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Child);
207a9f12690SJung-uk Kim 
208a9f12690SJung-uk Kim /*
209a9f12690SJung-uk Kim  * nsparse - table parsing
210a9f12690SJung-uk Kim  */
211a9f12690SJung-uk Kim ACPI_STATUS
212a9f12690SJung-uk Kim AcpiNsParseTable (
213a9f12690SJung-uk Kim     UINT32                  TableIndex,
214a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *StartNode);
215a9f12690SJung-uk Kim 
216a9f12690SJung-uk Kim ACPI_STATUS
217a9f12690SJung-uk Kim AcpiNsOneCompleteParse (
218a9f12690SJung-uk Kim     UINT32                  PassNumber,
219a9f12690SJung-uk Kim     UINT32                  TableIndex,
220a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *StartNode);
221a9f12690SJung-uk Kim 
222a9f12690SJung-uk Kim 
223a9f12690SJung-uk Kim /*
224a9f12690SJung-uk Kim  * nsaccess - Top-level namespace access
225a9f12690SJung-uk Kim  */
226a9f12690SJung-uk Kim ACPI_STATUS
227a9f12690SJung-uk Kim AcpiNsRootInitialize (
228a9f12690SJung-uk Kim     void);
229a9f12690SJung-uk Kim 
230a9f12690SJung-uk Kim ACPI_STATUS
231a9f12690SJung-uk Kim AcpiNsLookup (
232a9f12690SJung-uk Kim     ACPI_GENERIC_STATE      *ScopeInfo,
233a9f12690SJung-uk Kim     char                    *Name,
234a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
235a9f12690SJung-uk Kim     ACPI_INTERPRETER_MODE   InterpreterMode,
236a9f12690SJung-uk Kim     UINT32                  Flags,
237a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
238a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **RetNode);
239a9f12690SJung-uk Kim 
240a9f12690SJung-uk Kim 
241a9f12690SJung-uk Kim /*
242a9f12690SJung-uk Kim  * nsalloc - Named object allocation/deallocation
243a9f12690SJung-uk Kim  */
244a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
245a9f12690SJung-uk Kim AcpiNsCreateNode (
246a9f12690SJung-uk Kim     UINT32                  Name);
247a9f12690SJung-uk Kim 
248a9f12690SJung-uk Kim void
249a9f12690SJung-uk Kim AcpiNsDeleteNode (
250a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
251a9f12690SJung-uk Kim 
252a9f12690SJung-uk Kim void
253d6dd1baeSJung-uk Kim AcpiNsRemoveNode (
254d6dd1baeSJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
255d6dd1baeSJung-uk Kim 
256d6dd1baeSJung-uk Kim void
257a9f12690SJung-uk Kim AcpiNsDeleteNamespaceSubtree (
258a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *ParentHandle);
259a9f12690SJung-uk Kim 
260a9f12690SJung-uk Kim void
261a9f12690SJung-uk Kim AcpiNsDeleteNamespaceByOwner (
262a9f12690SJung-uk Kim     ACPI_OWNER_ID           OwnerId);
263a9f12690SJung-uk Kim 
264a9f12690SJung-uk Kim void
265a9f12690SJung-uk Kim AcpiNsDetachObject (
266a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
267a9f12690SJung-uk Kim 
268a9f12690SJung-uk Kim void
269a9f12690SJung-uk Kim AcpiNsDeleteChildren (
270a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Parent);
271a9f12690SJung-uk Kim 
272a9f12690SJung-uk Kim int
273a9f12690SJung-uk Kim AcpiNsCompareNames (
274a9f12690SJung-uk Kim     char                    *Name1,
275a9f12690SJung-uk Kim     char                    *Name2);
276a9f12690SJung-uk Kim 
277a9f12690SJung-uk Kim 
278a9f12690SJung-uk Kim /*
279a9f12690SJung-uk Kim  * nsdump - Namespace dump/print utilities
280a9f12690SJung-uk Kim  */
281a9f12690SJung-uk Kim void
282a9f12690SJung-uk Kim AcpiNsDumpTables (
283a9f12690SJung-uk Kim     ACPI_HANDLE             SearchBase,
284a9f12690SJung-uk Kim     UINT32                  MaxDepth);
285a9f12690SJung-uk Kim 
286a9f12690SJung-uk Kim void
287a9f12690SJung-uk Kim AcpiNsDumpEntry (
288a9f12690SJung-uk Kim     ACPI_HANDLE             Handle,
289a9f12690SJung-uk Kim     UINT32                  DebugLevel);
290a9f12690SJung-uk Kim 
291a9f12690SJung-uk Kim void
292a9f12690SJung-uk Kim AcpiNsDumpPathname (
293a9f12690SJung-uk Kim     ACPI_HANDLE             Handle,
294a9f12690SJung-uk Kim     char                    *Msg,
295a9f12690SJung-uk Kim     UINT32                  Level,
296a9f12690SJung-uk Kim     UINT32                  Component);
297a9f12690SJung-uk Kim 
298a9f12690SJung-uk Kim void
299a9f12690SJung-uk Kim AcpiNsPrintPathname (
300a9f12690SJung-uk Kim     UINT32                  NumSegments,
301a9f12690SJung-uk Kim     char                    *Pathname);
302a9f12690SJung-uk Kim 
303a9f12690SJung-uk Kim ACPI_STATUS
304a9f12690SJung-uk Kim AcpiNsDumpOneObject (
305a9f12690SJung-uk Kim     ACPI_HANDLE             ObjHandle,
306a9f12690SJung-uk Kim     UINT32                  Level,
307a9f12690SJung-uk Kim     void                    *Context,
308a9f12690SJung-uk Kim     void                    **ReturnValue);
309a9f12690SJung-uk Kim 
310a9f12690SJung-uk Kim void
311a9f12690SJung-uk Kim AcpiNsDumpObjects (
312a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
313a9f12690SJung-uk Kim     UINT8                   DisplayType,
314a9f12690SJung-uk Kim     UINT32                  MaxDepth,
315a9f12690SJung-uk Kim     ACPI_OWNER_ID           OwnerId,
316a9f12690SJung-uk Kim     ACPI_HANDLE             StartHandle);
317a9f12690SJung-uk Kim 
318a9f12690SJung-uk Kim 
319a9f12690SJung-uk Kim /*
320a9f12690SJung-uk Kim  * nseval - Namespace evaluation functions
321a9f12690SJung-uk Kim  */
322a9f12690SJung-uk Kim ACPI_STATUS
323a9f12690SJung-uk Kim AcpiNsEvaluate (
324a9f12690SJung-uk Kim     ACPI_EVALUATE_INFO      *Info);
325a9f12690SJung-uk Kim 
326d6dd1baeSJung-uk Kim void
327d6dd1baeSJung-uk Kim AcpiNsExecModuleCodeList (
328d6dd1baeSJung-uk Kim     void);
329d6dd1baeSJung-uk Kim 
330a9f12690SJung-uk Kim 
331a9f12690SJung-uk Kim /*
332a9f12690SJung-uk Kim  * nspredef - Support for predefined/reserved names
333a9f12690SJung-uk Kim  */
334a9f12690SJung-uk Kim ACPI_STATUS
335a9f12690SJung-uk Kim AcpiNsCheckPredefinedNames (
336a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
337a9f12690SJung-uk Kim     UINT32                  UserParamCount,
338a9f12690SJung-uk Kim     ACPI_STATUS             ReturnStatus,
339a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObject);
340a9f12690SJung-uk Kim 
341a9f12690SJung-uk Kim const ACPI_PREDEFINED_INFO *
342a9f12690SJung-uk Kim AcpiNsCheckForPredefinedName (
343a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
344a9f12690SJung-uk Kim 
345a9f12690SJung-uk Kim void
346a9f12690SJung-uk Kim AcpiNsCheckParameterCount (
347a9f12690SJung-uk Kim     char                        *Pathname,
348a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE         *Node,
349a9f12690SJung-uk Kim     UINT32                      UserParamCount,
350a9f12690SJung-uk Kim     const ACPI_PREDEFINED_INFO  *Info);
351a9f12690SJung-uk Kim 
352a9f12690SJung-uk Kim 
353a9f12690SJung-uk Kim /*
354a9f12690SJung-uk Kim  * nsnames - Name and Scope manipulation
355a9f12690SJung-uk Kim  */
356a9f12690SJung-uk Kim UINT32
357a9f12690SJung-uk Kim AcpiNsOpensScope (
358a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
359a9f12690SJung-uk Kim 
360a9f12690SJung-uk Kim ACPI_STATUS
361a9f12690SJung-uk Kim AcpiNsBuildExternalPath (
362a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
363a9f12690SJung-uk Kim     ACPI_SIZE               Size,
364a9f12690SJung-uk Kim     char                    *NameBuffer);
365a9f12690SJung-uk Kim 
366a9f12690SJung-uk Kim char *
367a9f12690SJung-uk Kim AcpiNsGetExternalPathname (
368a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
369a9f12690SJung-uk Kim 
370a9f12690SJung-uk Kim char *
371a9f12690SJung-uk Kim AcpiNsNameOfCurrentScope (
372a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
373a9f12690SJung-uk Kim 
374a9f12690SJung-uk Kim ACPI_STATUS
375a9f12690SJung-uk Kim AcpiNsHandleToPathname (
376a9f12690SJung-uk Kim     ACPI_HANDLE             TargetHandle,
377a9f12690SJung-uk Kim     ACPI_BUFFER             *Buffer);
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
436d6dd1baeSJung-uk Kim AcpiNsRepairObject (
437d6dd1baeSJung-uk Kim     ACPI_PREDEFINED_DATA    *Data,
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
443d6dd1baeSJung-uk Kim AcpiNsRepairPackageList (
444d6dd1baeSJung-uk Kim     ACPI_PREDEFINED_DATA    *Data,
445d6dd1baeSJung-uk Kim     ACPI_OPERAND_OBJECT     **ObjDescPtr);
446d6dd1baeSJung-uk Kim 
447d6dd1baeSJung-uk Kim 
448d6dd1baeSJung-uk Kim /*
4492272d050SJung-uk Kim  * nsrepair2 - Return object repair for specific
4502272d050SJung-uk Kim  * predefined methods/objects
4512272d050SJung-uk Kim  */
4522272d050SJung-uk Kim ACPI_STATUS
4532272d050SJung-uk Kim AcpiNsComplexRepairs (
4542272d050SJung-uk Kim     ACPI_PREDEFINED_DATA    *Data,
4552272d050SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
4562272d050SJung-uk Kim     ACPI_STATUS             ValidateStatus,
4572272d050SJung-uk Kim     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
4582272d050SJung-uk Kim 
459572c8255SJung-uk Kim void
460572c8255SJung-uk Kim AcpiNsRemoveNullElements (
461572c8255SJung-uk Kim     ACPI_PREDEFINED_DATA    *Data,
462572c8255SJung-uk Kim     UINT8                   PackageType,
463572c8255SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
4642272d050SJung-uk Kim 
4652272d050SJung-uk Kim /*
466a9f12690SJung-uk Kim  * nssearch - Namespace searching and entry
467a9f12690SJung-uk Kim  */
468a9f12690SJung-uk Kim ACPI_STATUS
469a9f12690SJung-uk Kim AcpiNsSearchAndEnter (
470a9f12690SJung-uk Kim     UINT32                  EntryName,
471a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
472a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
473a9f12690SJung-uk Kim     ACPI_INTERPRETER_MODE   InterpreterMode,
474a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
475a9f12690SJung-uk Kim     UINT32                  Flags,
476a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **RetNode);
477a9f12690SJung-uk Kim 
478a9f12690SJung-uk Kim ACPI_STATUS
479a9f12690SJung-uk Kim AcpiNsSearchOneScope (
480a9f12690SJung-uk Kim     UINT32                  EntryName,
481a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
482a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
483a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **RetNode);
484a9f12690SJung-uk Kim 
485a9f12690SJung-uk Kim void
486a9f12690SJung-uk Kim AcpiNsInstallNode (
487a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
488a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *ParentNode,
489a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
490a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
491a9f12690SJung-uk Kim 
492a9f12690SJung-uk Kim 
493a9f12690SJung-uk Kim /*
494a9f12690SJung-uk Kim  * nsutils - Utility functions
495a9f12690SJung-uk Kim  */
496a9f12690SJung-uk Kim BOOLEAN
497a9f12690SJung-uk Kim AcpiNsValidRootPrefix (
498a9f12690SJung-uk Kim     char                    Prefix);
499a9f12690SJung-uk Kim 
500a9f12690SJung-uk Kim ACPI_OBJECT_TYPE
501a9f12690SJung-uk Kim AcpiNsGetType (
502a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
503a9f12690SJung-uk Kim 
504a9f12690SJung-uk Kim UINT32
505a9f12690SJung-uk Kim AcpiNsLocal (
506a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type);
507a9f12690SJung-uk Kim 
508a9f12690SJung-uk Kim void
509a9f12690SJung-uk Kim AcpiNsReportError (
510a9f12690SJung-uk Kim     const char              *ModuleName,
511a9f12690SJung-uk Kim     UINT32                  LineNumber,
512a9f12690SJung-uk Kim     const char              *InternalName,
513a9f12690SJung-uk Kim     ACPI_STATUS             LookupStatus);
514a9f12690SJung-uk Kim 
515a9f12690SJung-uk Kim void
516a9f12690SJung-uk Kim AcpiNsReportMethodError (
517a9f12690SJung-uk Kim     const char              *ModuleName,
518a9f12690SJung-uk Kim     UINT32                  LineNumber,
519a9f12690SJung-uk Kim     const char              *Message,
520a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
521a9f12690SJung-uk Kim     const char              *Path,
522a9f12690SJung-uk Kim     ACPI_STATUS             LookupStatus);
523a9f12690SJung-uk Kim 
524a9f12690SJung-uk Kim void
525a9f12690SJung-uk Kim AcpiNsPrintNodePathname (
526a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
527a9f12690SJung-uk Kim     const char              *Msg);
528a9f12690SJung-uk Kim 
529a9f12690SJung-uk Kim ACPI_STATUS
530a9f12690SJung-uk Kim AcpiNsBuildInternalName (
531a9f12690SJung-uk Kim     ACPI_NAMESTRING_INFO    *Info);
532a9f12690SJung-uk Kim 
533a9f12690SJung-uk Kim void
534a9f12690SJung-uk Kim AcpiNsGetInternalNameLength (
535a9f12690SJung-uk Kim     ACPI_NAMESTRING_INFO    *Info);
536a9f12690SJung-uk Kim 
537a9f12690SJung-uk Kim ACPI_STATUS
538a9f12690SJung-uk Kim AcpiNsInternalizeName (
539a9f12690SJung-uk Kim     const char              *DottedName,
540a9f12690SJung-uk Kim     char                    **ConvertedName);
541a9f12690SJung-uk Kim 
542a9f12690SJung-uk Kim ACPI_STATUS
543a9f12690SJung-uk Kim AcpiNsExternalizeName (
544a9f12690SJung-uk Kim     UINT32                  InternalNameLength,
545a9f12690SJung-uk Kim     const char              *InternalName,
546a9f12690SJung-uk Kim     UINT32                  *ConvertedNameLength,
547a9f12690SJung-uk Kim     char                    **ConvertedName);
548a9f12690SJung-uk Kim 
549a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
550572c8255SJung-uk Kim AcpiNsValidateHandle (
551a9f12690SJung-uk Kim     ACPI_HANDLE             Handle);
552a9f12690SJung-uk Kim 
553a9f12690SJung-uk Kim void
554a9f12690SJung-uk Kim AcpiNsTerminate (
555a9f12690SJung-uk Kim     void);
556a9f12690SJung-uk Kim 
557a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
558a9f12690SJung-uk Kim AcpiNsGetParentNode (
559a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
560a9f12690SJung-uk Kim 
561a9f12690SJung-uk Kim 
562a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *
563a9f12690SJung-uk Kim AcpiNsGetNextValidNode (
564a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
565a9f12690SJung-uk Kim 
566a9f12690SJung-uk Kim #endif /* __ACNAMESP_H__ */
567