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