xref: /netbsd-src/sys/external/bsd/acpica/dist/include/acnamesp.h (revision 2c7d7e3ca2e4f0b675c6c58e614f6aede66c678e)
128c506b8Sjruoho /******************************************************************************
228c506b8Sjruoho  *
328c506b8Sjruoho  * Name: acnamesp.h - Namespace subcomponent prototypes and defines
428c506b8Sjruoho  *
528c506b8Sjruoho  *****************************************************************************/
628c506b8Sjruoho 
7159c4e26Sjruoho /*
8*2c7d7e3cSchristos  * Copyright (C) 2000 - 2023, Intel Corp.
928c506b8Sjruoho  * All rights reserved.
1028c506b8Sjruoho  *
11159c4e26Sjruoho  * Redistribution and use in source and binary forms, with or without
12159c4e26Sjruoho  * modification, are permitted provided that the following conditions
13159c4e26Sjruoho  * are met:
14159c4e26Sjruoho  * 1. Redistributions of source code must retain the above copyright
15159c4e26Sjruoho  *    notice, this list of conditions, and the following disclaimer,
16159c4e26Sjruoho  *    without modification.
17159c4e26Sjruoho  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18159c4e26Sjruoho  *    substantially similar to the "NO WARRANTY" disclaimer below
19159c4e26Sjruoho  *    ("Disclaimer") and any redistribution must be conditioned upon
20159c4e26Sjruoho  *    including a substantially similar Disclaimer requirement for further
21159c4e26Sjruoho  *    binary redistribution.
22159c4e26Sjruoho  * 3. Neither the names of the above-listed copyright holders nor the names
23159c4e26Sjruoho  *    of any contributors may be used to endorse or promote products derived
24159c4e26Sjruoho  *    from this software without specific prior written permission.
2528c506b8Sjruoho  *
26159c4e26Sjruoho  * Alternatively, this software may be distributed under the terms of the
27159c4e26Sjruoho  * GNU General Public License ("GPL") version 2 as published by the Free
28159c4e26Sjruoho  * Software Foundation.
2928c506b8Sjruoho  *
30159c4e26Sjruoho  * NO WARRANTY
31159c4e26Sjruoho  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32159c4e26Sjruoho  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3398244dcfSchristos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34159c4e26Sjruoho  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35159c4e26Sjruoho  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36159c4e26Sjruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37159c4e26Sjruoho  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38159c4e26Sjruoho  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39159c4e26Sjruoho  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40159c4e26Sjruoho  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41159c4e26Sjruoho  * POSSIBILITY OF SUCH DAMAGES.
42159c4e26Sjruoho  */
4328c506b8Sjruoho 
4428c506b8Sjruoho #ifndef __ACNAMESP_H__
4528c506b8Sjruoho #define __ACNAMESP_H__
4628c506b8Sjruoho 
4728c506b8Sjruoho 
4828c506b8Sjruoho /* To search the entire name space, pass this as SearchBase */
4928c506b8Sjruoho 
5028c506b8Sjruoho #define ACPI_NS_ALL                 ((ACPI_HANDLE)0)
5128c506b8Sjruoho 
5228c506b8Sjruoho /*
5328c506b8Sjruoho  * Elements of AcpiNsProperties are bit significant
5428c506b8Sjruoho  * and should be one-to-one with values of ACPI_OBJECT_TYPE
5528c506b8Sjruoho  */
5628c506b8Sjruoho #define ACPI_NS_NORMAL              0
5728c506b8Sjruoho #define ACPI_NS_NEWSCOPE            1   /* a definition of this type opens a name scope */
5828c506b8Sjruoho #define ACPI_NS_LOCAL               2   /* suppress search of enclosing scopes */
5928c506b8Sjruoho 
6028c506b8Sjruoho /* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
6128c506b8Sjruoho 
6228c506b8Sjruoho #define ACPI_NS_NO_UPSEARCH         0
63a147b75fSchristos #define ACPI_NS_SEARCH_PARENT       0x0001
64a147b75fSchristos #define ACPI_NS_DONT_OPEN_SCOPE     0x0002
65a147b75fSchristos #define ACPI_NS_NO_PEER_SEARCH      0x0004
66a147b75fSchristos #define ACPI_NS_ERROR_IF_FOUND      0x0008
67a147b75fSchristos #define ACPI_NS_PREFIX_IS_SCOPE     0x0010
68a147b75fSchristos #define ACPI_NS_EXTERNAL            0x0020
69a147b75fSchristos #define ACPI_NS_TEMPORARY           0x0040
70a147b75fSchristos #define ACPI_NS_OVERRIDE_IF_FOUND   0x0080
71a147b75fSchristos #define ACPI_NS_EARLY_INIT          0x0100
727efa3256Schristos #define ACPI_NS_PREFIX_MUST_EXIST   0x0200
7328c506b8Sjruoho 
7428c506b8Sjruoho /* Flags for AcpiNsWalkNamespace */
7528c506b8Sjruoho 
7628c506b8Sjruoho #define ACPI_NS_WALK_NO_UNLOCK      0
7728c506b8Sjruoho #define ACPI_NS_WALK_UNLOCK         0x01
7828c506b8Sjruoho #define ACPI_NS_WALK_TEMP_NODES     0x02
7928c506b8Sjruoho 
8028c506b8Sjruoho /* Object is not a package element */
8128c506b8Sjruoho 
8228c506b8Sjruoho #define ACPI_NOT_PACKAGE_ELEMENT    ACPI_UINT32_MAX
8381bd9c9cSchristos #define ACPI_ALL_PACKAGE_ELEMENTS   (ACPI_UINT32_MAX-1)
8428c506b8Sjruoho 
8528c506b8Sjruoho /* Always emit warning message, not dependent on node flags */
8628c506b8Sjruoho 
8728c506b8Sjruoho #define ACPI_WARN_ALWAYS            0
8828c506b8Sjruoho 
8928c506b8Sjruoho 
9028c506b8Sjruoho /*
9128c506b8Sjruoho  * nsinit - Namespace initialization
9228c506b8Sjruoho  */
9328c506b8Sjruoho ACPI_STATUS
9428c506b8Sjruoho AcpiNsInitializeObjects (
9528c506b8Sjruoho     void);
9628c506b8Sjruoho 
9728c506b8Sjruoho ACPI_STATUS
9828c506b8Sjruoho AcpiNsInitializeDevices (
9949c2f1f4Schristos     UINT32                  Flags);
10028c506b8Sjruoho 
101a147b75fSchristos ACPI_STATUS
102a147b75fSchristos AcpiNsInitOnePackage (
103a147b75fSchristos     ACPI_HANDLE             ObjHandle,
104a147b75fSchristos     UINT32                  Level,
105a147b75fSchristos     void                    *Context,
106a147b75fSchristos     void                    **ReturnValue);
10728c506b8Sjruoho 
10828c506b8Sjruoho /*
10928c506b8Sjruoho  * nsload -  Namespace loading
11028c506b8Sjruoho  */
11128c506b8Sjruoho ACPI_STATUS
11228c506b8Sjruoho AcpiNsLoadNamespace (
11328c506b8Sjruoho     void);
11428c506b8Sjruoho 
11528c506b8Sjruoho ACPI_STATUS
11628c506b8Sjruoho AcpiNsLoadTable (
11728c506b8Sjruoho     UINT32                  TableIndex,
11828c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node);
11928c506b8Sjruoho 
12028c506b8Sjruoho 
12128c506b8Sjruoho /*
12228c506b8Sjruoho  * nswalk - walk the namespace
12328c506b8Sjruoho  */
12428c506b8Sjruoho ACPI_STATUS
12528c506b8Sjruoho AcpiNsWalkNamespace (
12628c506b8Sjruoho     ACPI_OBJECT_TYPE        Type,
12728c506b8Sjruoho     ACPI_HANDLE             StartObject,
12828c506b8Sjruoho     UINT32                  MaxDepth,
12928c506b8Sjruoho     UINT32                  Flags,
130a2c051a9Schristos     ACPI_WALK_CALLBACK      DescendingCallback,
131a2c051a9Schristos     ACPI_WALK_CALLBACK      AscendingCallback,
13228c506b8Sjruoho     void                    *Context,
13328c506b8Sjruoho     void                    **ReturnValue);
13428c506b8Sjruoho 
13528c506b8Sjruoho ACPI_NAMESPACE_NODE *
13628c506b8Sjruoho AcpiNsGetNextNode (
13728c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Parent,
13828c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Child);
13928c506b8Sjruoho 
14028c506b8Sjruoho ACPI_NAMESPACE_NODE *
14128c506b8Sjruoho AcpiNsGetNextNodeTyped (
14228c506b8Sjruoho     ACPI_OBJECT_TYPE        Type,
14328c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Parent,
14428c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Child);
14528c506b8Sjruoho 
14628c506b8Sjruoho /*
14728c506b8Sjruoho  * nsparse - table parsing
14828c506b8Sjruoho  */
14928c506b8Sjruoho ACPI_STATUS
15028c506b8Sjruoho AcpiNsParseTable (
15128c506b8Sjruoho     UINT32                  TableIndex,
15228c506b8Sjruoho     ACPI_NAMESPACE_NODE     *StartNode);
15328c506b8Sjruoho 
15428c506b8Sjruoho ACPI_STATUS
15547dc3895Schristos AcpiNsExecuteTable (
15647dc3895Schristos     UINT32                  TableIndex,
15747dc3895Schristos     ACPI_NAMESPACE_NODE     *StartNode);
15847dc3895Schristos 
15947dc3895Schristos ACPI_STATUS
16028c506b8Sjruoho AcpiNsOneCompleteParse (
16128c506b8Sjruoho     UINT32                  PassNumber,
16228c506b8Sjruoho     UINT32                  TableIndex,
16328c506b8Sjruoho     ACPI_NAMESPACE_NODE     *StartNode);
16428c506b8Sjruoho 
16528c506b8Sjruoho 
16628c506b8Sjruoho /*
16728c506b8Sjruoho  * nsaccess - Top-level namespace access
16828c506b8Sjruoho  */
16928c506b8Sjruoho ACPI_STATUS
17028c506b8Sjruoho AcpiNsRootInitialize (
17128c506b8Sjruoho     void);
17228c506b8Sjruoho 
17328c506b8Sjruoho ACPI_STATUS
17428c506b8Sjruoho AcpiNsLookup (
17528c506b8Sjruoho     ACPI_GENERIC_STATE      *ScopeInfo,
17628c506b8Sjruoho     char                    *Name,
17728c506b8Sjruoho     ACPI_OBJECT_TYPE        Type,
17828c506b8Sjruoho     ACPI_INTERPRETER_MODE   InterpreterMode,
17928c506b8Sjruoho     UINT32                  Flags,
18028c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
18128c506b8Sjruoho     ACPI_NAMESPACE_NODE     **RetNode);
18228c506b8Sjruoho 
18328c506b8Sjruoho 
18428c506b8Sjruoho /*
18528c506b8Sjruoho  * nsalloc - Named object allocation/deallocation
18628c506b8Sjruoho  */
18728c506b8Sjruoho ACPI_NAMESPACE_NODE *
18828c506b8Sjruoho AcpiNsCreateNode (
18928c506b8Sjruoho     UINT32                  Name);
19028c506b8Sjruoho 
19128c506b8Sjruoho void
19228c506b8Sjruoho AcpiNsDeleteNode (
19328c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node);
19428c506b8Sjruoho 
19528c506b8Sjruoho void
19628c506b8Sjruoho AcpiNsRemoveNode (
19728c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node);
19828c506b8Sjruoho 
19928c506b8Sjruoho void
20028c506b8Sjruoho AcpiNsDeleteNamespaceSubtree (
20128c506b8Sjruoho     ACPI_NAMESPACE_NODE     *ParentHandle);
20228c506b8Sjruoho 
20328c506b8Sjruoho void
20428c506b8Sjruoho AcpiNsDeleteNamespaceByOwner (
20528c506b8Sjruoho     ACPI_OWNER_ID           OwnerId);
20628c506b8Sjruoho 
20728c506b8Sjruoho void
20828c506b8Sjruoho AcpiNsDetachObject (
20928c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node);
21028c506b8Sjruoho 
21128c506b8Sjruoho void
21228c506b8Sjruoho AcpiNsDeleteChildren (
21328c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Parent);
21428c506b8Sjruoho 
21528c506b8Sjruoho int
21628c506b8Sjruoho AcpiNsCompareNames (
21728c506b8Sjruoho     char                    *Name1,
21828c506b8Sjruoho     char                    *Name2);
21928c506b8Sjruoho 
22028c506b8Sjruoho 
22128c506b8Sjruoho /*
222a2c051a9Schristos  * nsconvert - Dynamic object conversion routines
223a2c051a9Schristos  */
224a2c051a9Schristos ACPI_STATUS
225a2c051a9Schristos AcpiNsConvertToInteger (
226a2c051a9Schristos     ACPI_OPERAND_OBJECT     *OriginalObject,
227a2c051a9Schristos     ACPI_OPERAND_OBJECT     **ReturnObject);
228a2c051a9Schristos 
229a2c051a9Schristos ACPI_STATUS
230a2c051a9Schristos AcpiNsConvertToString (
231a2c051a9Schristos     ACPI_OPERAND_OBJECT     *OriginalObject,
232a2c051a9Schristos     ACPI_OPERAND_OBJECT     **ReturnObject);
233a2c051a9Schristos 
234a2c051a9Schristos ACPI_STATUS
235a2c051a9Schristos AcpiNsConvertToBuffer (
236a2c051a9Schristos     ACPI_OPERAND_OBJECT     *OriginalObject,
237a2c051a9Schristos     ACPI_OPERAND_OBJECT     **ReturnObject);
238a2c051a9Schristos 
239a2c051a9Schristos ACPI_STATUS
240a2c051a9Schristos AcpiNsConvertToUnicode (
24181bd9c9cSchristos     ACPI_NAMESPACE_NODE     *Scope,
242a2c051a9Schristos     ACPI_OPERAND_OBJECT     *OriginalObject,
243a2c051a9Schristos     ACPI_OPERAND_OBJECT     **ReturnObject);
244a2c051a9Schristos 
245a2c051a9Schristos ACPI_STATUS
246a2c051a9Schristos AcpiNsConvertToResource (
24781bd9c9cSchristos     ACPI_NAMESPACE_NODE     *Scope,
24881bd9c9cSchristos     ACPI_OPERAND_OBJECT     *OriginalObject,
24981bd9c9cSchristos     ACPI_OPERAND_OBJECT     **ReturnObject);
25081bd9c9cSchristos 
25181bd9c9cSchristos ACPI_STATUS
25281bd9c9cSchristos AcpiNsConvertToReference (
25381bd9c9cSchristos     ACPI_NAMESPACE_NODE     *Scope,
254a2c051a9Schristos     ACPI_OPERAND_OBJECT     *OriginalObject,
255a2c051a9Schristos     ACPI_OPERAND_OBJECT     **ReturnObject);
256a2c051a9Schristos 
257a2c051a9Schristos 
258a2c051a9Schristos /*
25928c506b8Sjruoho  * nsdump - Namespace dump/print utilities
26028c506b8Sjruoho  */
26128c506b8Sjruoho void
26228c506b8Sjruoho AcpiNsDumpTables (
26328c506b8Sjruoho     ACPI_HANDLE             SearchBase,
26428c506b8Sjruoho     UINT32                  MaxDepth);
26528c506b8Sjruoho 
26628c506b8Sjruoho void
26728c506b8Sjruoho AcpiNsDumpEntry (
26828c506b8Sjruoho     ACPI_HANDLE             Handle,
26928c506b8Sjruoho     UINT32                  DebugLevel);
27028c506b8Sjruoho 
27128c506b8Sjruoho void
27228c506b8Sjruoho AcpiNsDumpPathname (
27328c506b8Sjruoho     ACPI_HANDLE             Handle,
274716c1ee0Sjruoho     const char              *Msg,
27528c506b8Sjruoho     UINT32                  Level,
27628c506b8Sjruoho     UINT32                  Component);
27728c506b8Sjruoho 
27828c506b8Sjruoho void
27928c506b8Sjruoho AcpiNsPrintPathname (
28028c506b8Sjruoho     UINT32                  NumSegments,
28149c2f1f4Schristos     const char              *Pathname);
28228c506b8Sjruoho 
28328c506b8Sjruoho ACPI_STATUS
28428c506b8Sjruoho AcpiNsDumpOneObject (
28528c506b8Sjruoho     ACPI_HANDLE             ObjHandle,
28628c506b8Sjruoho     UINT32                  Level,
28728c506b8Sjruoho     void                    *Context,
28828c506b8Sjruoho     void                    **ReturnValue);
28928c506b8Sjruoho 
29028c506b8Sjruoho void
29128c506b8Sjruoho AcpiNsDumpObjects (
29228c506b8Sjruoho     ACPI_OBJECT_TYPE        Type,
29328c506b8Sjruoho     UINT8                   DisplayType,
29428c506b8Sjruoho     UINT32                  MaxDepth,
29528c506b8Sjruoho     ACPI_OWNER_ID           OwnerId,
29628c506b8Sjruoho     ACPI_HANDLE             StartHandle);
29728c506b8Sjruoho 
298a2c051a9Schristos void
299a2c051a9Schristos AcpiNsDumpObjectPaths (
300a2c051a9Schristos     ACPI_OBJECT_TYPE        Type,
301a2c051a9Schristos     UINT8                   DisplayType,
302a2c051a9Schristos     UINT32                  MaxDepth,
303a2c051a9Schristos     ACPI_OWNER_ID           OwnerId,
304a2c051a9Schristos     ACPI_HANDLE             StartHandle);
305a2c051a9Schristos 
30628c506b8Sjruoho 
30728c506b8Sjruoho /*
30828c506b8Sjruoho  * nseval - Namespace evaluation functions
30928c506b8Sjruoho  */
31028c506b8Sjruoho ACPI_STATUS
31128c506b8Sjruoho AcpiNsEvaluate (
31228c506b8Sjruoho     ACPI_EVALUATE_INFO      *Info);
31328c506b8Sjruoho 
31428c506b8Sjruoho 
31528c506b8Sjruoho /*
316a2c051a9Schristos  * nsarguments - Argument count/type checking for predefined/reserved names
31728c506b8Sjruoho  */
31828c506b8Sjruoho void
319a2c051a9Schristos AcpiNsCheckArgumentCount (
32028c506b8Sjruoho     char                        *Pathname,
32128c506b8Sjruoho     ACPI_NAMESPACE_NODE         *Node,
32228c506b8Sjruoho     UINT32                      UserParamCount,
32328c506b8Sjruoho     const ACPI_PREDEFINED_INFO  *Info);
32428c506b8Sjruoho 
325a2c051a9Schristos void
326a2c051a9Schristos AcpiNsCheckAcpiCompliance (
327a2c051a9Schristos     char                        *Pathname,
328a2c051a9Schristos     ACPI_NAMESPACE_NODE         *Node,
329a2c051a9Schristos     const ACPI_PREDEFINED_INFO  *Predefined);
330a2c051a9Schristos 
331a2c051a9Schristos void
332a2c051a9Schristos AcpiNsCheckArgumentTypes (
333a2c051a9Schristos     ACPI_EVALUATE_INFO          *Info);
334a2c051a9Schristos 
335a2c051a9Schristos 
336a2c051a9Schristos /*
337a2c051a9Schristos  * nspredef - Return value checking for predefined/reserved names
338a2c051a9Schristos  */
339a2c051a9Schristos ACPI_STATUS
340a2c051a9Schristos AcpiNsCheckReturnValue (
341a2c051a9Schristos     ACPI_NAMESPACE_NODE         *Node,
342a2c051a9Schristos     ACPI_EVALUATE_INFO          *Info,
343a2c051a9Schristos     UINT32                      UserParamCount,
344a2c051a9Schristos     ACPI_STATUS                 ReturnStatus,
345a2c051a9Schristos     ACPI_OPERAND_OBJECT         **ReturnObject);
346a2c051a9Schristos 
347a2c051a9Schristos ACPI_STATUS
348a2c051a9Schristos AcpiNsCheckObjectType (
349a2c051a9Schristos     ACPI_EVALUATE_INFO          *Info,
350a2c051a9Schristos     ACPI_OPERAND_OBJECT         **ReturnObjectPtr,
351a2c051a9Schristos     UINT32                      ExpectedBtypes,
352a2c051a9Schristos     UINT32                      PackageIndex);
353a2c051a9Schristos 
354a2c051a9Schristos 
355a2c051a9Schristos /*
356a2c051a9Schristos  * nsprepkg - Validation of predefined name packages
357a2c051a9Schristos  */
358a2c051a9Schristos ACPI_STATUS
359a2c051a9Schristos AcpiNsCheckPackage (
360a2c051a9Schristos     ACPI_EVALUATE_INFO          *Info,
361a2c051a9Schristos     ACPI_OPERAND_OBJECT         **ReturnObjectPtr);
362a2c051a9Schristos 
36328c506b8Sjruoho 
36428c506b8Sjruoho /*
36528c506b8Sjruoho  * nsnames - Name and Scope manipulation
36628c506b8Sjruoho  */
36728c506b8Sjruoho UINT32
36828c506b8Sjruoho AcpiNsOpensScope (
36928c506b8Sjruoho     ACPI_OBJECT_TYPE        Type);
37028c506b8Sjruoho 
37128c506b8Sjruoho char *
37228c506b8Sjruoho AcpiNsGetExternalPathname (
37328c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node);
37428c506b8Sjruoho 
3759b9ee194Schristos UINT32
3769b9ee194Schristos AcpiNsBuildNormalizedPath (
3779b9ee194Schristos     ACPI_NAMESPACE_NODE     *Node,
3789b9ee194Schristos     char                    *FullPath,
3799b9ee194Schristos     UINT32                  PathSize,
3809b9ee194Schristos     BOOLEAN                 NoTrailing);
3819b9ee194Schristos 
3829ddb8508Schristos void
3839ddb8508Schristos AcpiNsNormalizePathname (
3849ddb8508Schristos     char                    *OriginalPath);
3859ddb8508Schristos 
3869b9ee194Schristos char *
3879b9ee194Schristos AcpiNsGetNormalizedPathname (
3889b9ee194Schristos     ACPI_NAMESPACE_NODE     *Node,
3899b9ee194Schristos     BOOLEAN                 NoTrailing);
3909b9ee194Schristos 
39128c506b8Sjruoho char *
39225666a51Schristos AcpiNsBuildPrefixedPathname (
39325666a51Schristos     ACPI_GENERIC_STATE      *PrefixScope,
39425666a51Schristos     const char              *InternalPath);
39525666a51Schristos 
39625666a51Schristos char *
39728c506b8Sjruoho AcpiNsNameOfCurrentScope (
39828c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
39928c506b8Sjruoho 
40028c506b8Sjruoho ACPI_STATUS
401660602a8Schristos AcpiNsHandleToName (
402660602a8Schristos     ACPI_HANDLE             TargetHandle,
403660602a8Schristos     ACPI_BUFFER             *Buffer);
404660602a8Schristos 
405660602a8Schristos ACPI_STATUS
40628c506b8Sjruoho AcpiNsHandleToPathname (
40728c506b8Sjruoho     ACPI_HANDLE             TargetHandle,
4089b9ee194Schristos     ACPI_BUFFER             *Buffer,
4099b9ee194Schristos     BOOLEAN                 NoTrailing);
41028c506b8Sjruoho 
41128c506b8Sjruoho BOOLEAN
41228c506b8Sjruoho AcpiNsPatternMatch (
41328c506b8Sjruoho     ACPI_NAMESPACE_NODE     *ObjNode,
41428c506b8Sjruoho     char                    *SearchFor);
41528c506b8Sjruoho 
41628c506b8Sjruoho ACPI_STATUS
41747dc3895Schristos AcpiNsGetNodeUnlocked (
41847dc3895Schristos     ACPI_NAMESPACE_NODE     *PrefixNode,
41947dc3895Schristos     const char              *ExternalPathname,
42047dc3895Schristos     UINT32                  Flags,
42147dc3895Schristos     ACPI_NAMESPACE_NODE     **OutNode);
42247dc3895Schristos 
42347dc3895Schristos ACPI_STATUS
42428c506b8Sjruoho AcpiNsGetNode (
42528c506b8Sjruoho     ACPI_NAMESPACE_NODE     *PrefixNode,
42628c506b8Sjruoho     const char              *ExternalPathname,
42728c506b8Sjruoho     UINT32                  Flags,
42828c506b8Sjruoho     ACPI_NAMESPACE_NODE     **OutNode);
42928c506b8Sjruoho 
43028c506b8Sjruoho ACPI_SIZE
43128c506b8Sjruoho AcpiNsGetPathnameLength (
43228c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node);
43328c506b8Sjruoho 
43428c506b8Sjruoho 
43528c506b8Sjruoho /*
43628c506b8Sjruoho  * nsobject - Object management for namespace nodes
43728c506b8Sjruoho  */
43828c506b8Sjruoho ACPI_STATUS
43928c506b8Sjruoho AcpiNsAttachObject (
44028c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
44128c506b8Sjruoho     ACPI_OPERAND_OBJECT     *Object,
44228c506b8Sjruoho     ACPI_OBJECT_TYPE        Type);
44328c506b8Sjruoho 
44428c506b8Sjruoho ACPI_OPERAND_OBJECT *
44528c506b8Sjruoho AcpiNsGetAttachedObject (
44628c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node);
44728c506b8Sjruoho 
44828c506b8Sjruoho ACPI_OPERAND_OBJECT *
44928c506b8Sjruoho AcpiNsGetSecondaryObject (
45028c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ObjDesc);
45128c506b8Sjruoho 
45228c506b8Sjruoho ACPI_STATUS
45328c506b8Sjruoho AcpiNsAttachData (
45428c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
45528c506b8Sjruoho     ACPI_OBJECT_HANDLER     Handler,
45628c506b8Sjruoho     void                    *Data);
45728c506b8Sjruoho 
45828c506b8Sjruoho ACPI_STATUS
45928c506b8Sjruoho AcpiNsDetachData (
46028c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
46128c506b8Sjruoho     ACPI_OBJECT_HANDLER     Handler);
46228c506b8Sjruoho 
46328c506b8Sjruoho ACPI_STATUS
46428c506b8Sjruoho AcpiNsGetAttachedData (
46528c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
46628c506b8Sjruoho     ACPI_OBJECT_HANDLER     Handler,
46728c506b8Sjruoho     void                    **Data);
46828c506b8Sjruoho 
46928c506b8Sjruoho 
47028c506b8Sjruoho /*
47128c506b8Sjruoho  * nsrepair - General return object repair for all
47228c506b8Sjruoho  * predefined methods/objects
47328c506b8Sjruoho  */
47428c506b8Sjruoho ACPI_STATUS
475a2c051a9Schristos AcpiNsSimpleRepair (
476a2c051a9Schristos     ACPI_EVALUATE_INFO      *Info,
47728c506b8Sjruoho     UINT32                  ExpectedBtypes,
47828c506b8Sjruoho     UINT32                  PackageIndex,
47928c506b8Sjruoho     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
48028c506b8Sjruoho 
48128c506b8Sjruoho ACPI_STATUS
482a2c051a9Schristos AcpiNsWrapWithPackage (
483a2c051a9Schristos     ACPI_EVALUATE_INFO      *Info,
484a2c051a9Schristos     ACPI_OPERAND_OBJECT     *OriginalObject,
48528c506b8Sjruoho     ACPI_OPERAND_OBJECT     **ObjDescPtr);
48628c506b8Sjruoho 
48728c506b8Sjruoho ACPI_STATUS
48828c506b8Sjruoho AcpiNsRepairNullElement (
489a2c051a9Schristos     ACPI_EVALUATE_INFO      *Info,
49028c506b8Sjruoho     UINT32                  ExpectedBtypes,
49128c506b8Sjruoho     UINT32                  PackageIndex,
49228c506b8Sjruoho     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
49328c506b8Sjruoho 
49428c506b8Sjruoho void
49528c506b8Sjruoho AcpiNsRemoveNullElements (
496a2c051a9Schristos     ACPI_EVALUATE_INFO      *Info,
49728c506b8Sjruoho     UINT8                   PackageType,
49828c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ObjDesc);
49928c506b8Sjruoho 
50028c506b8Sjruoho 
50128c506b8Sjruoho /*
50228c506b8Sjruoho  * nsrepair2 - Return object repair for specific
50328c506b8Sjruoho  * predefined methods/objects
50428c506b8Sjruoho  */
50528c506b8Sjruoho ACPI_STATUS
50628c506b8Sjruoho AcpiNsComplexRepairs (
507a2c051a9Schristos     ACPI_EVALUATE_INFO      *Info,
50828c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
50928c506b8Sjruoho     ACPI_STATUS             ValidateStatus,
51028c506b8Sjruoho     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
51128c506b8Sjruoho 
51228c506b8Sjruoho 
51328c506b8Sjruoho /*
51428c506b8Sjruoho  * nssearch - Namespace searching and entry
51528c506b8Sjruoho  */
51628c506b8Sjruoho ACPI_STATUS
51728c506b8Sjruoho AcpiNsSearchAndEnter (
51828c506b8Sjruoho     UINT32                  EntryName,
51928c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
52028c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
52128c506b8Sjruoho     ACPI_INTERPRETER_MODE   InterpreterMode,
52228c506b8Sjruoho     ACPI_OBJECT_TYPE        Type,
52328c506b8Sjruoho     UINT32                  Flags,
52428c506b8Sjruoho     ACPI_NAMESPACE_NODE     **RetNode);
52528c506b8Sjruoho 
52628c506b8Sjruoho ACPI_STATUS
52728c506b8Sjruoho AcpiNsSearchOneScope (
52828c506b8Sjruoho     UINT32                  EntryName,
52928c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
53028c506b8Sjruoho     ACPI_OBJECT_TYPE        Type,
53128c506b8Sjruoho     ACPI_NAMESPACE_NODE     **RetNode);
53228c506b8Sjruoho 
53328c506b8Sjruoho void
53428c506b8Sjruoho AcpiNsInstallNode (
53528c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
53628c506b8Sjruoho     ACPI_NAMESPACE_NODE     *ParentNode,
53728c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
53828c506b8Sjruoho     ACPI_OBJECT_TYPE        Type);
53928c506b8Sjruoho 
54028c506b8Sjruoho 
54128c506b8Sjruoho /*
54228c506b8Sjruoho  * nsutils - Utility functions
54328c506b8Sjruoho  */
54428c506b8Sjruoho ACPI_OBJECT_TYPE
54528c506b8Sjruoho AcpiNsGetType (
54628c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node);
54728c506b8Sjruoho 
54828c506b8Sjruoho UINT32
54928c506b8Sjruoho AcpiNsLocal (
55028c506b8Sjruoho     ACPI_OBJECT_TYPE        Type);
55128c506b8Sjruoho 
55228c506b8Sjruoho void
55328c506b8Sjruoho AcpiNsPrintNodePathname (
55428c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
55528c506b8Sjruoho     const char              *Msg);
55628c506b8Sjruoho 
55728c506b8Sjruoho ACPI_STATUS
55828c506b8Sjruoho AcpiNsBuildInternalName (
55928c506b8Sjruoho     ACPI_NAMESTRING_INFO    *Info);
56028c506b8Sjruoho 
56128c506b8Sjruoho void
56228c506b8Sjruoho AcpiNsGetInternalNameLength (
56328c506b8Sjruoho     ACPI_NAMESTRING_INFO    *Info);
56428c506b8Sjruoho 
56528c506b8Sjruoho ACPI_STATUS
56628c506b8Sjruoho AcpiNsInternalizeName (
56728c506b8Sjruoho     const char              *DottedName,
56828c506b8Sjruoho     char                    **ConvertedName);
56928c506b8Sjruoho 
57028c506b8Sjruoho ACPI_STATUS
57128c506b8Sjruoho AcpiNsExternalizeName (
57228c506b8Sjruoho     UINT32                  InternalNameLength,
57328c506b8Sjruoho     const char              *InternalName,
57428c506b8Sjruoho     UINT32                  *ConvertedNameLength,
57528c506b8Sjruoho     char                    **ConvertedName);
57628c506b8Sjruoho 
57728c506b8Sjruoho ACPI_NAMESPACE_NODE *
57828c506b8Sjruoho AcpiNsValidateHandle (
57928c506b8Sjruoho     ACPI_HANDLE             Handle);
58028c506b8Sjruoho 
58128c506b8Sjruoho void
58228c506b8Sjruoho AcpiNsTerminate (
58328c506b8Sjruoho     void);
58428c506b8Sjruoho 
58528c506b8Sjruoho #endif /* __ACNAMESP_H__ */
586