1433d6423SLionel Sambuc /****************************************************************************** 2433d6423SLionel Sambuc * 3433d6423SLionel Sambuc * Name: acnamesp.h - Namespace subcomponent prototypes and defines 4433d6423SLionel Sambuc * 5433d6423SLionel Sambuc *****************************************************************************/ 6433d6423SLionel Sambuc 7*29492bb7SDavid van Moolenbroek /* 8*29492bb7SDavid van Moolenbroek * Copyright (C) 2000 - 2014, Intel Corp. 9433d6423SLionel Sambuc * All rights reserved. 10433d6423SLionel Sambuc * 11*29492bb7SDavid van Moolenbroek * Redistribution and use in source and binary forms, with or without 12*29492bb7SDavid van Moolenbroek * modification, are permitted provided that the following conditions 13*29492bb7SDavid van Moolenbroek * are met: 14*29492bb7SDavid van Moolenbroek * 1. Redistributions of source code must retain the above copyright 15*29492bb7SDavid van Moolenbroek * notice, this list of conditions, and the following disclaimer, 16*29492bb7SDavid van Moolenbroek * without modification. 17*29492bb7SDavid van Moolenbroek * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18*29492bb7SDavid van Moolenbroek * substantially similar to the "NO WARRANTY" disclaimer below 19*29492bb7SDavid van Moolenbroek * ("Disclaimer") and any redistribution must be conditioned upon 20*29492bb7SDavid van Moolenbroek * including a substantially similar Disclaimer requirement for further 21*29492bb7SDavid van Moolenbroek * binary redistribution. 22*29492bb7SDavid van Moolenbroek * 3. Neither the names of the above-listed copyright holders nor the names 23*29492bb7SDavid van Moolenbroek * of any contributors may be used to endorse or promote products derived 24*29492bb7SDavid van Moolenbroek * from this software without specific prior written permission. 25433d6423SLionel Sambuc * 26*29492bb7SDavid van Moolenbroek * Alternatively, this software may be distributed under the terms of the 27*29492bb7SDavid van Moolenbroek * GNU General Public License ("GPL") version 2 as published by the Free 28*29492bb7SDavid van Moolenbroek * Software Foundation. 29433d6423SLionel Sambuc * 30*29492bb7SDavid van Moolenbroek * NO WARRANTY 31*29492bb7SDavid van Moolenbroek * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32*29492bb7SDavid van Moolenbroek * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33*29492bb7SDavid van Moolenbroek * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34*29492bb7SDavid van Moolenbroek * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35*29492bb7SDavid van Moolenbroek * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36*29492bb7SDavid van Moolenbroek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37*29492bb7SDavid van Moolenbroek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38*29492bb7SDavid van Moolenbroek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39*29492bb7SDavid van Moolenbroek * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40*29492bb7SDavid van Moolenbroek * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41*29492bb7SDavid van Moolenbroek * POSSIBILITY OF SUCH DAMAGES. 42*29492bb7SDavid van Moolenbroek */ 43433d6423SLionel Sambuc 44433d6423SLionel Sambuc #ifndef __ACNAMESP_H__ 45433d6423SLionel Sambuc #define __ACNAMESP_H__ 46433d6423SLionel Sambuc 47433d6423SLionel Sambuc 48433d6423SLionel Sambuc /* To search the entire name space, pass this as SearchBase */ 49433d6423SLionel Sambuc 50433d6423SLionel Sambuc #define ACPI_NS_ALL ((ACPI_HANDLE)0) 51433d6423SLionel Sambuc 52433d6423SLionel Sambuc /* 53433d6423SLionel Sambuc * Elements of AcpiNsProperties are bit significant 54433d6423SLionel Sambuc * and should be one-to-one with values of ACPI_OBJECT_TYPE 55433d6423SLionel Sambuc */ 56433d6423SLionel Sambuc #define ACPI_NS_NORMAL 0 57433d6423SLionel Sambuc #define ACPI_NS_NEWSCOPE 1 /* a definition of this type opens a name scope */ 58433d6423SLionel Sambuc #define ACPI_NS_LOCAL 2 /* suppress search of enclosing scopes */ 59433d6423SLionel Sambuc 60433d6423SLionel Sambuc /* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */ 61433d6423SLionel Sambuc 62433d6423SLionel Sambuc #define ACPI_NS_NO_UPSEARCH 0 63433d6423SLionel Sambuc #define ACPI_NS_SEARCH_PARENT 0x01 64433d6423SLionel Sambuc #define ACPI_NS_DONT_OPEN_SCOPE 0x02 65433d6423SLionel Sambuc #define ACPI_NS_NO_PEER_SEARCH 0x04 66433d6423SLionel Sambuc #define ACPI_NS_ERROR_IF_FOUND 0x08 67433d6423SLionel Sambuc #define ACPI_NS_PREFIX_IS_SCOPE 0x10 68433d6423SLionel Sambuc #define ACPI_NS_EXTERNAL 0x20 69433d6423SLionel Sambuc #define ACPI_NS_TEMPORARY 0x40 70433d6423SLionel Sambuc 71433d6423SLionel Sambuc /* Flags for AcpiNsWalkNamespace */ 72433d6423SLionel Sambuc 73433d6423SLionel Sambuc #define ACPI_NS_WALK_NO_UNLOCK 0 74433d6423SLionel Sambuc #define ACPI_NS_WALK_UNLOCK 0x01 75433d6423SLionel Sambuc #define ACPI_NS_WALK_TEMP_NODES 0x02 76433d6423SLionel Sambuc 77433d6423SLionel Sambuc /* Object is not a package element */ 78433d6423SLionel Sambuc 79433d6423SLionel Sambuc #define ACPI_NOT_PACKAGE_ELEMENT ACPI_UINT32_MAX 80433d6423SLionel Sambuc 81433d6423SLionel Sambuc /* Always emit warning message, not dependent on node flags */ 82433d6423SLionel Sambuc 83433d6423SLionel Sambuc #define ACPI_WARN_ALWAYS 0 84433d6423SLionel Sambuc 85433d6423SLionel Sambuc 86433d6423SLionel Sambuc /* 87433d6423SLionel Sambuc * nsinit - Namespace initialization 88433d6423SLionel Sambuc */ 89433d6423SLionel Sambuc ACPI_STATUS 90433d6423SLionel Sambuc AcpiNsInitializeObjects ( 91433d6423SLionel Sambuc void); 92433d6423SLionel Sambuc 93433d6423SLionel Sambuc ACPI_STATUS 94433d6423SLionel Sambuc AcpiNsInitializeDevices ( 95433d6423SLionel Sambuc void); 96433d6423SLionel Sambuc 97433d6423SLionel Sambuc 98433d6423SLionel Sambuc /* 99433d6423SLionel Sambuc * nsload - Namespace loading 100433d6423SLionel Sambuc */ 101433d6423SLionel Sambuc ACPI_STATUS 102433d6423SLionel Sambuc AcpiNsLoadNamespace ( 103433d6423SLionel Sambuc void); 104433d6423SLionel Sambuc 105433d6423SLionel Sambuc ACPI_STATUS 106433d6423SLionel Sambuc AcpiNsLoadTable ( 107433d6423SLionel Sambuc UINT32 TableIndex, 108433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node); 109433d6423SLionel Sambuc 110433d6423SLionel Sambuc 111433d6423SLionel Sambuc /* 112433d6423SLionel Sambuc * nswalk - walk the namespace 113433d6423SLionel Sambuc */ 114433d6423SLionel Sambuc ACPI_STATUS 115433d6423SLionel Sambuc AcpiNsWalkNamespace ( 116433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type, 117433d6423SLionel Sambuc ACPI_HANDLE StartObject, 118433d6423SLionel Sambuc UINT32 MaxDepth, 119433d6423SLionel Sambuc UINT32 Flags, 120*29492bb7SDavid van Moolenbroek ACPI_WALK_CALLBACK DescendingCallback, 121*29492bb7SDavid van Moolenbroek ACPI_WALK_CALLBACK AscendingCallback, 122433d6423SLionel Sambuc void *Context, 123433d6423SLionel Sambuc void **ReturnValue); 124433d6423SLionel Sambuc 125433d6423SLionel Sambuc ACPI_NAMESPACE_NODE * 126433d6423SLionel Sambuc AcpiNsGetNextNode ( 127433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Parent, 128433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Child); 129433d6423SLionel Sambuc 130433d6423SLionel Sambuc ACPI_NAMESPACE_NODE * 131433d6423SLionel Sambuc AcpiNsGetNextNodeTyped ( 132433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type, 133433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Parent, 134433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Child); 135433d6423SLionel Sambuc 136433d6423SLionel Sambuc /* 137433d6423SLionel Sambuc * nsparse - table parsing 138433d6423SLionel Sambuc */ 139433d6423SLionel Sambuc ACPI_STATUS 140433d6423SLionel Sambuc AcpiNsParseTable ( 141433d6423SLionel Sambuc UINT32 TableIndex, 142433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *StartNode); 143433d6423SLionel Sambuc 144433d6423SLionel Sambuc ACPI_STATUS 145433d6423SLionel Sambuc AcpiNsOneCompleteParse ( 146433d6423SLionel Sambuc UINT32 PassNumber, 147433d6423SLionel Sambuc UINT32 TableIndex, 148433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *StartNode); 149433d6423SLionel Sambuc 150433d6423SLionel Sambuc 151433d6423SLionel Sambuc /* 152433d6423SLionel Sambuc * nsaccess - Top-level namespace access 153433d6423SLionel Sambuc */ 154433d6423SLionel Sambuc ACPI_STATUS 155433d6423SLionel Sambuc AcpiNsRootInitialize ( 156433d6423SLionel Sambuc void); 157433d6423SLionel Sambuc 158433d6423SLionel Sambuc ACPI_STATUS 159433d6423SLionel Sambuc AcpiNsLookup ( 160433d6423SLionel Sambuc ACPI_GENERIC_STATE *ScopeInfo, 161433d6423SLionel Sambuc char *Name, 162433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type, 163433d6423SLionel Sambuc ACPI_INTERPRETER_MODE InterpreterMode, 164433d6423SLionel Sambuc UINT32 Flags, 165433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 166433d6423SLionel Sambuc ACPI_NAMESPACE_NODE **RetNode); 167433d6423SLionel Sambuc 168433d6423SLionel Sambuc 169433d6423SLionel Sambuc /* 170433d6423SLionel Sambuc * nsalloc - Named object allocation/deallocation 171433d6423SLionel Sambuc */ 172433d6423SLionel Sambuc ACPI_NAMESPACE_NODE * 173433d6423SLionel Sambuc AcpiNsCreateNode ( 174433d6423SLionel Sambuc UINT32 Name); 175433d6423SLionel Sambuc 176433d6423SLionel Sambuc void 177433d6423SLionel Sambuc AcpiNsDeleteNode ( 178433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node); 179433d6423SLionel Sambuc 180433d6423SLionel Sambuc void 181433d6423SLionel Sambuc AcpiNsRemoveNode ( 182433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node); 183433d6423SLionel Sambuc 184433d6423SLionel Sambuc void 185433d6423SLionel Sambuc AcpiNsDeleteNamespaceSubtree ( 186433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *ParentHandle); 187433d6423SLionel Sambuc 188433d6423SLionel Sambuc void 189433d6423SLionel Sambuc AcpiNsDeleteNamespaceByOwner ( 190433d6423SLionel Sambuc ACPI_OWNER_ID OwnerId); 191433d6423SLionel Sambuc 192433d6423SLionel Sambuc void 193433d6423SLionel Sambuc AcpiNsDetachObject ( 194433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node); 195433d6423SLionel Sambuc 196433d6423SLionel Sambuc void 197433d6423SLionel Sambuc AcpiNsDeleteChildren ( 198433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Parent); 199433d6423SLionel Sambuc 200433d6423SLionel Sambuc int 201433d6423SLionel Sambuc AcpiNsCompareNames ( 202433d6423SLionel Sambuc char *Name1, 203433d6423SLionel Sambuc char *Name2); 204433d6423SLionel Sambuc 205433d6423SLionel Sambuc 206433d6423SLionel Sambuc /* 207*29492bb7SDavid van Moolenbroek * nsconvert - Dynamic object conversion routines 208*29492bb7SDavid van Moolenbroek */ 209*29492bb7SDavid van Moolenbroek ACPI_STATUS 210*29492bb7SDavid van Moolenbroek AcpiNsConvertToInteger ( 211*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT *OriginalObject, 212*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT **ReturnObject); 213*29492bb7SDavid van Moolenbroek 214*29492bb7SDavid van Moolenbroek ACPI_STATUS 215*29492bb7SDavid van Moolenbroek AcpiNsConvertToString ( 216*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT *OriginalObject, 217*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT **ReturnObject); 218*29492bb7SDavid van Moolenbroek 219*29492bb7SDavid van Moolenbroek ACPI_STATUS 220*29492bb7SDavid van Moolenbroek AcpiNsConvertToBuffer ( 221*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT *OriginalObject, 222*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT **ReturnObject); 223*29492bb7SDavid van Moolenbroek 224*29492bb7SDavid van Moolenbroek ACPI_STATUS 225*29492bb7SDavid van Moolenbroek AcpiNsConvertToUnicode ( 226*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT *OriginalObject, 227*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT **ReturnObject); 228*29492bb7SDavid van Moolenbroek 229*29492bb7SDavid van Moolenbroek ACPI_STATUS 230*29492bb7SDavid van Moolenbroek AcpiNsConvertToResource ( 231*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT *OriginalObject, 232*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT **ReturnObject); 233*29492bb7SDavid van Moolenbroek 234*29492bb7SDavid van Moolenbroek 235*29492bb7SDavid van Moolenbroek /* 236433d6423SLionel Sambuc * nsdump - Namespace dump/print utilities 237433d6423SLionel Sambuc */ 238433d6423SLionel Sambuc void 239433d6423SLionel Sambuc AcpiNsDumpTables ( 240433d6423SLionel Sambuc ACPI_HANDLE SearchBase, 241433d6423SLionel Sambuc UINT32 MaxDepth); 242433d6423SLionel Sambuc 243433d6423SLionel Sambuc void 244433d6423SLionel Sambuc AcpiNsDumpEntry ( 245433d6423SLionel Sambuc ACPI_HANDLE Handle, 246433d6423SLionel Sambuc UINT32 DebugLevel); 247433d6423SLionel Sambuc 248433d6423SLionel Sambuc void 249433d6423SLionel Sambuc AcpiNsDumpPathname ( 250433d6423SLionel Sambuc ACPI_HANDLE Handle, 251433d6423SLionel Sambuc char *Msg, 252433d6423SLionel Sambuc UINT32 Level, 253433d6423SLionel Sambuc UINT32 Component); 254433d6423SLionel Sambuc 255433d6423SLionel Sambuc void 256433d6423SLionel Sambuc AcpiNsPrintPathname ( 257433d6423SLionel Sambuc UINT32 NumSegments, 258433d6423SLionel Sambuc char *Pathname); 259433d6423SLionel Sambuc 260433d6423SLionel Sambuc ACPI_STATUS 261433d6423SLionel Sambuc AcpiNsDumpOneObject ( 262433d6423SLionel Sambuc ACPI_HANDLE ObjHandle, 263433d6423SLionel Sambuc UINT32 Level, 264433d6423SLionel Sambuc void *Context, 265433d6423SLionel Sambuc void **ReturnValue); 266433d6423SLionel Sambuc 267433d6423SLionel Sambuc void 268433d6423SLionel Sambuc AcpiNsDumpObjects ( 269433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type, 270433d6423SLionel Sambuc UINT8 DisplayType, 271433d6423SLionel Sambuc UINT32 MaxDepth, 272433d6423SLionel Sambuc ACPI_OWNER_ID OwnerId, 273433d6423SLionel Sambuc ACPI_HANDLE StartHandle); 274433d6423SLionel Sambuc 275*29492bb7SDavid van Moolenbroek void 276*29492bb7SDavid van Moolenbroek AcpiNsDumpObjectPaths ( 277*29492bb7SDavid van Moolenbroek ACPI_OBJECT_TYPE Type, 278*29492bb7SDavid van Moolenbroek UINT8 DisplayType, 279*29492bb7SDavid van Moolenbroek UINT32 MaxDepth, 280*29492bb7SDavid van Moolenbroek ACPI_OWNER_ID OwnerId, 281*29492bb7SDavid van Moolenbroek ACPI_HANDLE StartHandle); 282*29492bb7SDavid van Moolenbroek 283433d6423SLionel Sambuc 284433d6423SLionel Sambuc /* 285433d6423SLionel Sambuc * nseval - Namespace evaluation functions 286433d6423SLionel Sambuc */ 287433d6423SLionel Sambuc ACPI_STATUS 288433d6423SLionel Sambuc AcpiNsEvaluate ( 289433d6423SLionel Sambuc ACPI_EVALUATE_INFO *Info); 290433d6423SLionel Sambuc 291433d6423SLionel Sambuc void 292433d6423SLionel Sambuc AcpiNsExecModuleCodeList ( 293433d6423SLionel Sambuc void); 294433d6423SLionel Sambuc 295433d6423SLionel Sambuc 296433d6423SLionel Sambuc /* 297*29492bb7SDavid van Moolenbroek * nsarguments - Argument count/type checking for predefined/reserved names 298433d6423SLionel Sambuc */ 299433d6423SLionel Sambuc void 300*29492bb7SDavid van Moolenbroek AcpiNsCheckArgumentCount ( 301433d6423SLionel Sambuc char *Pathname, 302433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 303433d6423SLionel Sambuc UINT32 UserParamCount, 304433d6423SLionel Sambuc const ACPI_PREDEFINED_INFO *Info); 305433d6423SLionel Sambuc 306*29492bb7SDavid van Moolenbroek void 307*29492bb7SDavid van Moolenbroek AcpiNsCheckAcpiCompliance ( 308*29492bb7SDavid van Moolenbroek char *Pathname, 309*29492bb7SDavid van Moolenbroek ACPI_NAMESPACE_NODE *Node, 310*29492bb7SDavid van Moolenbroek const ACPI_PREDEFINED_INFO *Predefined); 311*29492bb7SDavid van Moolenbroek 312*29492bb7SDavid van Moolenbroek void 313*29492bb7SDavid van Moolenbroek AcpiNsCheckArgumentTypes ( 314*29492bb7SDavid van Moolenbroek ACPI_EVALUATE_INFO *Info); 315*29492bb7SDavid van Moolenbroek 316*29492bb7SDavid van Moolenbroek 317*29492bb7SDavid van Moolenbroek /* 318*29492bb7SDavid van Moolenbroek * nspredef - Return value checking for predefined/reserved names 319*29492bb7SDavid van Moolenbroek */ 320*29492bb7SDavid van Moolenbroek ACPI_STATUS 321*29492bb7SDavid van Moolenbroek AcpiNsCheckReturnValue ( 322*29492bb7SDavid van Moolenbroek ACPI_NAMESPACE_NODE *Node, 323*29492bb7SDavid van Moolenbroek ACPI_EVALUATE_INFO *Info, 324*29492bb7SDavid van Moolenbroek UINT32 UserParamCount, 325*29492bb7SDavid van Moolenbroek ACPI_STATUS ReturnStatus, 326*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT **ReturnObject); 327*29492bb7SDavid van Moolenbroek 328*29492bb7SDavid van Moolenbroek ACPI_STATUS 329*29492bb7SDavid van Moolenbroek AcpiNsCheckObjectType ( 330*29492bb7SDavid van Moolenbroek ACPI_EVALUATE_INFO *Info, 331*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT **ReturnObjectPtr, 332*29492bb7SDavid van Moolenbroek UINT32 ExpectedBtypes, 333*29492bb7SDavid van Moolenbroek UINT32 PackageIndex); 334*29492bb7SDavid van Moolenbroek 335*29492bb7SDavid van Moolenbroek 336*29492bb7SDavid van Moolenbroek /* 337*29492bb7SDavid van Moolenbroek * nsprepkg - Validation of predefined name packages 338*29492bb7SDavid van Moolenbroek */ 339*29492bb7SDavid van Moolenbroek ACPI_STATUS 340*29492bb7SDavid van Moolenbroek AcpiNsCheckPackage ( 341*29492bb7SDavid van Moolenbroek ACPI_EVALUATE_INFO *Info, 342*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT **ReturnObjectPtr); 343*29492bb7SDavid van Moolenbroek 344433d6423SLionel Sambuc 345433d6423SLionel Sambuc /* 346433d6423SLionel Sambuc * nsnames - Name and Scope manipulation 347433d6423SLionel Sambuc */ 348433d6423SLionel Sambuc UINT32 349433d6423SLionel Sambuc AcpiNsOpensScope ( 350433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type); 351433d6423SLionel Sambuc 352433d6423SLionel Sambuc ACPI_STATUS 353433d6423SLionel Sambuc AcpiNsBuildExternalPath ( 354433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 355433d6423SLionel Sambuc ACPI_SIZE Size, 356433d6423SLionel Sambuc char *NameBuffer); 357433d6423SLionel Sambuc 358433d6423SLionel Sambuc char * 359433d6423SLionel Sambuc AcpiNsGetExternalPathname ( 360433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node); 361433d6423SLionel Sambuc 362433d6423SLionel Sambuc char * 363433d6423SLionel Sambuc AcpiNsNameOfCurrentScope ( 364433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 365433d6423SLionel Sambuc 366433d6423SLionel Sambuc ACPI_STATUS 367433d6423SLionel Sambuc AcpiNsHandleToPathname ( 368433d6423SLionel Sambuc ACPI_HANDLE TargetHandle, 369433d6423SLionel Sambuc ACPI_BUFFER *Buffer); 370433d6423SLionel Sambuc 371433d6423SLionel Sambuc BOOLEAN 372433d6423SLionel Sambuc AcpiNsPatternMatch ( 373433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *ObjNode, 374433d6423SLionel Sambuc char *SearchFor); 375433d6423SLionel Sambuc 376433d6423SLionel Sambuc ACPI_STATUS 377433d6423SLionel Sambuc AcpiNsGetNode ( 378433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *PrefixNode, 379433d6423SLionel Sambuc const char *ExternalPathname, 380433d6423SLionel Sambuc UINT32 Flags, 381433d6423SLionel Sambuc ACPI_NAMESPACE_NODE **OutNode); 382433d6423SLionel Sambuc 383433d6423SLionel Sambuc ACPI_SIZE 384433d6423SLionel Sambuc AcpiNsGetPathnameLength ( 385433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node); 386433d6423SLionel Sambuc 387433d6423SLionel Sambuc 388433d6423SLionel Sambuc /* 389433d6423SLionel Sambuc * nsobject - Object management for namespace nodes 390433d6423SLionel Sambuc */ 391433d6423SLionel Sambuc ACPI_STATUS 392433d6423SLionel Sambuc AcpiNsAttachObject ( 393433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 394433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *Object, 395433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type); 396433d6423SLionel Sambuc 397433d6423SLionel Sambuc ACPI_OPERAND_OBJECT * 398433d6423SLionel Sambuc AcpiNsGetAttachedObject ( 399433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node); 400433d6423SLionel Sambuc 401433d6423SLionel Sambuc ACPI_OPERAND_OBJECT * 402433d6423SLionel Sambuc AcpiNsGetSecondaryObject ( 403433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ObjDesc); 404433d6423SLionel Sambuc 405433d6423SLionel Sambuc ACPI_STATUS 406433d6423SLionel Sambuc AcpiNsAttachData ( 407433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 408433d6423SLionel Sambuc ACPI_OBJECT_HANDLER Handler, 409433d6423SLionel Sambuc void *Data); 410433d6423SLionel Sambuc 411433d6423SLionel Sambuc ACPI_STATUS 412433d6423SLionel Sambuc AcpiNsDetachData ( 413433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 414433d6423SLionel Sambuc ACPI_OBJECT_HANDLER Handler); 415433d6423SLionel Sambuc 416433d6423SLionel Sambuc ACPI_STATUS 417433d6423SLionel Sambuc AcpiNsGetAttachedData ( 418433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 419433d6423SLionel Sambuc ACPI_OBJECT_HANDLER Handler, 420433d6423SLionel Sambuc void **Data); 421433d6423SLionel Sambuc 422433d6423SLionel Sambuc 423433d6423SLionel Sambuc /* 424433d6423SLionel Sambuc * nsrepair - General return object repair for all 425433d6423SLionel Sambuc * predefined methods/objects 426433d6423SLionel Sambuc */ 427433d6423SLionel Sambuc ACPI_STATUS 428*29492bb7SDavid van Moolenbroek AcpiNsSimpleRepair ( 429*29492bb7SDavid van Moolenbroek ACPI_EVALUATE_INFO *Info, 430433d6423SLionel Sambuc UINT32 ExpectedBtypes, 431433d6423SLionel Sambuc UINT32 PackageIndex, 432433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **ReturnObjectPtr); 433433d6423SLionel Sambuc 434433d6423SLionel Sambuc ACPI_STATUS 435*29492bb7SDavid van Moolenbroek AcpiNsWrapWithPackage ( 436*29492bb7SDavid van Moolenbroek ACPI_EVALUATE_INFO *Info, 437*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT *OriginalObject, 438433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **ObjDescPtr); 439433d6423SLionel Sambuc 440433d6423SLionel Sambuc ACPI_STATUS 441433d6423SLionel Sambuc AcpiNsRepairNullElement ( 442*29492bb7SDavid van Moolenbroek ACPI_EVALUATE_INFO *Info, 443433d6423SLionel Sambuc UINT32 ExpectedBtypes, 444433d6423SLionel Sambuc UINT32 PackageIndex, 445433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **ReturnObjectPtr); 446433d6423SLionel Sambuc 447433d6423SLionel Sambuc void 448433d6423SLionel Sambuc AcpiNsRemoveNullElements ( 449*29492bb7SDavid van Moolenbroek ACPI_EVALUATE_INFO *Info, 450433d6423SLionel Sambuc UINT8 PackageType, 451433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ObjDesc); 452433d6423SLionel Sambuc 453433d6423SLionel Sambuc 454433d6423SLionel Sambuc /* 455433d6423SLionel Sambuc * nsrepair2 - Return object repair for specific 456433d6423SLionel Sambuc * predefined methods/objects 457433d6423SLionel Sambuc */ 458433d6423SLionel Sambuc ACPI_STATUS 459433d6423SLionel Sambuc AcpiNsComplexRepairs ( 460*29492bb7SDavid van Moolenbroek ACPI_EVALUATE_INFO *Info, 461433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 462433d6423SLionel Sambuc ACPI_STATUS ValidateStatus, 463433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **ReturnObjectPtr); 464433d6423SLionel Sambuc 465433d6423SLionel Sambuc 466433d6423SLionel Sambuc /* 467433d6423SLionel Sambuc * nssearch - Namespace searching and entry 468433d6423SLionel Sambuc */ 469433d6423SLionel Sambuc ACPI_STATUS 470433d6423SLionel Sambuc AcpiNsSearchAndEnter ( 471433d6423SLionel Sambuc UINT32 EntryName, 472433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 473433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 474433d6423SLionel Sambuc ACPI_INTERPRETER_MODE InterpreterMode, 475433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type, 476433d6423SLionel Sambuc UINT32 Flags, 477433d6423SLionel Sambuc ACPI_NAMESPACE_NODE **RetNode); 478433d6423SLionel Sambuc 479433d6423SLionel Sambuc ACPI_STATUS 480433d6423SLionel Sambuc AcpiNsSearchOneScope ( 481433d6423SLionel Sambuc UINT32 EntryName, 482433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 483433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type, 484433d6423SLionel Sambuc ACPI_NAMESPACE_NODE **RetNode); 485433d6423SLionel Sambuc 486433d6423SLionel Sambuc void 487433d6423SLionel Sambuc AcpiNsInstallNode ( 488433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 489433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *ParentNode, 490433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 491433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type); 492433d6423SLionel Sambuc 493433d6423SLionel Sambuc 494433d6423SLionel Sambuc /* 495433d6423SLionel Sambuc * nsutils - Utility functions 496433d6423SLionel Sambuc */ 497433d6423SLionel Sambuc ACPI_OBJECT_TYPE 498433d6423SLionel Sambuc AcpiNsGetType ( 499433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node); 500433d6423SLionel Sambuc 501433d6423SLionel Sambuc UINT32 502433d6423SLionel Sambuc AcpiNsLocal ( 503433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type); 504433d6423SLionel Sambuc 505433d6423SLionel Sambuc void 506433d6423SLionel Sambuc AcpiNsPrintNodePathname ( 507433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 508433d6423SLionel Sambuc const char *Msg); 509433d6423SLionel Sambuc 510433d6423SLionel Sambuc ACPI_STATUS 511433d6423SLionel Sambuc AcpiNsBuildInternalName ( 512433d6423SLionel Sambuc ACPI_NAMESTRING_INFO *Info); 513433d6423SLionel Sambuc 514433d6423SLionel Sambuc void 515433d6423SLionel Sambuc AcpiNsGetInternalNameLength ( 516433d6423SLionel Sambuc ACPI_NAMESTRING_INFO *Info); 517433d6423SLionel Sambuc 518433d6423SLionel Sambuc ACPI_STATUS 519433d6423SLionel Sambuc AcpiNsInternalizeName ( 520433d6423SLionel Sambuc const char *DottedName, 521433d6423SLionel Sambuc char **ConvertedName); 522433d6423SLionel Sambuc 523433d6423SLionel Sambuc ACPI_STATUS 524433d6423SLionel Sambuc AcpiNsExternalizeName ( 525433d6423SLionel Sambuc UINT32 InternalNameLength, 526433d6423SLionel Sambuc const char *InternalName, 527433d6423SLionel Sambuc UINT32 *ConvertedNameLength, 528433d6423SLionel Sambuc char **ConvertedName); 529433d6423SLionel Sambuc 530433d6423SLionel Sambuc ACPI_NAMESPACE_NODE * 531433d6423SLionel Sambuc AcpiNsValidateHandle ( 532433d6423SLionel Sambuc ACPI_HANDLE Handle); 533433d6423SLionel Sambuc 534433d6423SLionel Sambuc void 535433d6423SLionel Sambuc AcpiNsTerminate ( 536433d6423SLionel Sambuc void); 537433d6423SLionel Sambuc 538433d6423SLionel Sambuc #endif /* __ACNAMESP_H__ */ 539