ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

acnamesp.h
Go to the documentation of this file.
00001 /******************************************************************************
00002  *
00003  * Name: acnamesp.h - Namespace subcomponent prototypes and defines
00004  *
00005  *****************************************************************************/
00006 
00007 /******************************************************************************
00008  *
00009  * 1. Copyright Notice
00010  *
00011  * Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp.
00012  * All rights reserved.
00013  *
00014  * 2. License
00015  *
00016  * 2.1. This is your license from Intel Corp. under its intellectual property
00017  * rights.  You may have additional license terms from the party that provided
00018  * you this software, covering your right to use that party's intellectual
00019  * property rights.
00020  *
00021  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
00022  * copy of the source code appearing in this file ("Covered Code") an
00023  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
00024  * base code distributed originally by Intel ("Original Intel Code") to copy,
00025  * make derivatives, distribute, use and display any portion of the Covered
00026  * Code in any form, with the right to sublicense such rights; and
00027  *
00028  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
00029  * license (with the right to sublicense), under only those claims of Intel
00030  * patents that are infringed by the Original Intel Code, to make, use, sell,
00031  * offer to sell, and import the Covered Code and derivative works thereof
00032  * solely to the minimum extent necessary to exercise the above copyright
00033  * license, and in no event shall the patent license extend to any additions
00034  * to or modifications of the Original Intel Code.  No other license or right
00035  * is granted directly or by implication, estoppel or otherwise;
00036  *
00037  * The above copyright and patent license is granted only if the following
00038  * conditions are met:
00039  *
00040  * 3. Conditions
00041  *
00042  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
00043  * Redistribution of source code of any substantial portion of the Covered
00044  * Code or modification with rights to further distribute source must include
00045  * the above Copyright Notice, the above License, this list of Conditions,
00046  * and the following Disclaimer and Export Compliance provision.  In addition,
00047  * Licensee must cause all Covered Code to which Licensee contributes to
00048  * contain a file documenting the changes Licensee made to create that Covered
00049  * Code and the date of any change.  Licensee must include in that file the
00050  * documentation of any changes made by any predecessor Licensee.  Licensee
00051  * must include a prominent statement that the modification is derived,
00052  * directly or indirectly, from Original Intel Code.
00053  *
00054  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
00055  * Redistribution of source code of any substantial portion of the Covered
00056  * Code or modification without rights to further distribute source must
00057  * include the following Disclaimer and Export Compliance provision in the
00058  * documentation and/or other materials provided with distribution.  In
00059  * addition, Licensee may not authorize further sublicense of source of any
00060  * portion of the Covered Code, and must include terms to the effect that the
00061  * license from Licensee to its licensee is limited to the intellectual
00062  * property embodied in the software Licensee provides to its licensee, and
00063  * not to intellectual property embodied in modifications its licensee may
00064  * make.
00065  *
00066  * 3.3. Redistribution of Executable. Redistribution in executable form of any
00067  * substantial portion of the Covered Code or modification must reproduce the
00068  * above Copyright Notice, and the following Disclaimer and Export Compliance
00069  * provision in the documentation and/or other materials provided with the
00070  * distribution.
00071  *
00072  * 3.4. Intel retains all right, title, and interest in and to the Original
00073  * Intel Code.
00074  *
00075  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
00076  * Intel shall be used in advertising or otherwise to promote the sale, use or
00077  * other dealings in products derived from or relating to the Covered Code
00078  * without prior written authorization from Intel.
00079  *
00080  * 4. Disclaimer and Export Compliance
00081  *
00082  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
00083  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
00084  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
00085  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
00086  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
00087  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
00088  * PARTICULAR PURPOSE.
00089  *
00090  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
00091  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
00092  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
00093  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
00094  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
00095  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
00096  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
00097  * LIMITED REMEDY.
00098  *
00099  * 4.3. Licensee shall not export, either directly or indirectly, any of this
00100  * software or system incorporating such software without first obtaining any
00101  * required license or other approval from the U. S. Department of Commerce or
00102  * any other agency or department of the United States Government.  In the
00103  * event Licensee exports any such software from the United States or
00104  * re-exports any such software from a foreign destination, Licensee shall
00105  * ensure that the distribution and export/re-export of the software is in
00106  * compliance with all laws, regulations, orders, or other restrictions of the
00107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
00108  * any of its subsidiaries will export/re-export any technical data, process,
00109  * software, or service, directly or indirectly, to any country for which the
00110  * United States government or any agency thereof requires an export license,
00111  * other governmental approval, or letter of assurance, without first obtaining
00112  * such license, approval or letter.
00113  *
00114  *****************************************************************************/
00115 
00116 #ifndef __ACNAMESP_H__
00117 #define __ACNAMESP_H__
00118 
00119 
00120 /* To search the entire name space, pass this as SearchBase */
00121 
00122 #define ACPI_NS_ALL                 ((ACPI_HANDLE)0)
00123 
00124 /*
00125  * Elements of AcpiNsProperties are bit significant
00126  * and should be one-to-one with values of ACPI_OBJECT_TYPE
00127  */
00128 #define ACPI_NS_NORMAL              0
00129 #define ACPI_NS_NEWSCOPE            1   /* a definition of this type opens a name scope */
00130 #define ACPI_NS_LOCAL               2   /* suppress search of enclosing scopes */
00131 
00132 /* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
00133 
00134 #define ACPI_NS_NO_UPSEARCH         0
00135 #define ACPI_NS_SEARCH_PARENT       0x01
00136 #define ACPI_NS_DONT_OPEN_SCOPE     0x02
00137 #define ACPI_NS_NO_PEER_SEARCH      0x04
00138 #define ACPI_NS_ERROR_IF_FOUND      0x08
00139 #define ACPI_NS_PREFIX_IS_SCOPE     0x10
00140 #define ACPI_NS_EXTERNAL            0x20
00141 #define ACPI_NS_TEMPORARY           0x40
00142 
00143 /* Flags for AcpiNsWalkNamespace */
00144 
00145 #define ACPI_NS_WALK_NO_UNLOCK      0
00146 #define ACPI_NS_WALK_UNLOCK         0x01
00147 #define ACPI_NS_WALK_TEMP_NODES     0x02
00148 
00149 /* Object is not a package element */
00150 
00151 #define ACPI_NOT_PACKAGE_ELEMENT    ACPI_UINT32_MAX
00152 
00153 /* Always emit warning message, not dependent on node flags */
00154 
00155 #define ACPI_WARN_ALWAYS            0
00156 
00157 
00158 /*
00159  * nsinit - Namespace initialization
00160  */
00161 ACPI_STATUS
00162 AcpiNsInitializeObjects (
00163     void);
00164 
00165 ACPI_STATUS
00166 AcpiNsInitializeDevices (
00167     void);
00168 
00169 
00170 /*
00171  * nsload -  Namespace loading
00172  */
00173 ACPI_STATUS
00174 AcpiNsLoadNamespace (
00175     void);
00176 
00177 ACPI_STATUS
00178 AcpiNsLoadTable (
00179     UINT32                  TableIndex,
00180     ACPI_NAMESPACE_NODE     *Node);
00181 
00182 
00183 /*
00184  * nswalk - walk the namespace
00185  */
00186 ACPI_STATUS
00187 AcpiNsWalkNamespace (
00188     ACPI_OBJECT_TYPE        Type,
00189     ACPI_HANDLE             StartObject,
00190     UINT32                  MaxDepth,
00191     UINT32                  Flags,
00192     ACPI_WALK_CALLBACK      PreOrderVisit,
00193     ACPI_WALK_CALLBACK      PostOrderVisit,
00194     void                    *Context,
00195     void                    **ReturnValue);
00196 
00197 ACPI_NAMESPACE_NODE *
00198 AcpiNsGetNextNode (
00199     ACPI_NAMESPACE_NODE     *Parent,
00200     ACPI_NAMESPACE_NODE     *Child);
00201 
00202 ACPI_NAMESPACE_NODE *
00203 AcpiNsGetNextNodeTyped (
00204     ACPI_OBJECT_TYPE        Type,
00205     ACPI_NAMESPACE_NODE     *Parent,
00206     ACPI_NAMESPACE_NODE     *Child);
00207 
00208 /*
00209  * nsparse - table parsing
00210  */
00211 ACPI_STATUS
00212 AcpiNsParseTable (
00213     UINT32                  TableIndex,
00214     ACPI_NAMESPACE_NODE     *StartNode);
00215 
00216 ACPI_STATUS
00217 AcpiNsOneCompleteParse (
00218     UINT32                  PassNumber,
00219     UINT32                  TableIndex,
00220     ACPI_NAMESPACE_NODE     *StartNode);
00221 
00222 
00223 /*
00224  * nsaccess - Top-level namespace access
00225  */
00226 ACPI_STATUS
00227 AcpiNsRootInitialize (
00228     void);
00229 
00230 ACPI_STATUS
00231 AcpiNsLookup (
00232     ACPI_GENERIC_STATE      *ScopeInfo,
00233     char                    *Name,
00234     ACPI_OBJECT_TYPE        Type,
00235     ACPI_INTERPRETER_MODE   InterpreterMode,
00236     UINT32                  Flags,
00237     ACPI_WALK_STATE         *WalkState,
00238     ACPI_NAMESPACE_NODE     **RetNode);
00239 
00240 
00241 /*
00242  * nsalloc - Named object allocation/deallocation
00243  */
00244 ACPI_NAMESPACE_NODE *
00245 AcpiNsCreateNode (
00246     UINT32                  Name);
00247 
00248 void
00249 AcpiNsDeleteNode (
00250     ACPI_NAMESPACE_NODE     *Node);
00251 
00252 void
00253 AcpiNsRemoveNode (
00254     ACPI_NAMESPACE_NODE     *Node);
00255 
00256 void
00257 AcpiNsDeleteNamespaceSubtree (
00258     ACPI_NAMESPACE_NODE     *ParentHandle);
00259 
00260 void
00261 AcpiNsDeleteNamespaceByOwner (
00262     ACPI_OWNER_ID           OwnerId);
00263 
00264 void
00265 AcpiNsDetachObject (
00266     ACPI_NAMESPACE_NODE     *Node);
00267 
00268 void
00269 AcpiNsDeleteChildren (
00270     ACPI_NAMESPACE_NODE     *Parent);
00271 
00272 int
00273 AcpiNsCompareNames (
00274     char                    *Name1,
00275     char                    *Name2);
00276 
00277 
00278 /*
00279  * nsdump - Namespace dump/print utilities
00280  */
00281 void
00282 AcpiNsDumpTables (
00283     ACPI_HANDLE             SearchBase,
00284     UINT32                  MaxDepth);
00285 
00286 void
00287 AcpiNsDumpEntry (
00288     ACPI_HANDLE             Handle,
00289     UINT32                  DebugLevel);
00290 
00291 void
00292 AcpiNsDumpPathname (
00293     ACPI_HANDLE             Handle,
00294     char                    *Msg,
00295     UINT32                  Level,
00296     UINT32                  Component);
00297 
00298 void
00299 AcpiNsPrintPathname (
00300     UINT32                  NumSegments,
00301     char                    *Pathname);
00302 
00303 ACPI_STATUS
00304 AcpiNsDumpOneObject (
00305     ACPI_HANDLE             ObjHandle,
00306     UINT32                  Level,
00307     void                    *Context,
00308     void                    **ReturnValue);
00309 
00310 void
00311 AcpiNsDumpObjects (
00312     ACPI_OBJECT_TYPE        Type,
00313     UINT8                   DisplayType,
00314     UINT32                  MaxDepth,
00315     ACPI_OWNER_ID           OwnerId,
00316     ACPI_HANDLE             StartHandle);
00317 
00318 
00319 /*
00320  * nseval - Namespace evaluation functions
00321  */
00322 ACPI_STATUS
00323 AcpiNsEvaluate (
00324     ACPI_EVALUATE_INFO      *Info);
00325 
00326 void
00327 AcpiNsExecModuleCodeList (
00328     void);
00329 
00330 
00331 /*
00332  * nspredef - Support for predefined/reserved names
00333  */
00334 ACPI_STATUS
00335 AcpiNsCheckPredefinedNames (
00336     ACPI_NAMESPACE_NODE     *Node,
00337     UINT32                  UserParamCount,
00338     ACPI_STATUS             ReturnStatus,
00339     ACPI_OPERAND_OBJECT     **ReturnObject);
00340 
00341 const ACPI_PREDEFINED_INFO *
00342 AcpiNsCheckForPredefinedName (
00343     ACPI_NAMESPACE_NODE     *Node);
00344 
00345 void
00346 AcpiNsCheckParameterCount (
00347     char                        *Pathname,
00348     ACPI_NAMESPACE_NODE         *Node,
00349     UINT32                      UserParamCount,
00350     const ACPI_PREDEFINED_INFO  *Info);
00351 
00352 
00353 /*
00354  * nsnames - Name and Scope manipulation
00355  */
00356 UINT32
00357 AcpiNsOpensScope (
00358     ACPI_OBJECT_TYPE        Type);
00359 
00360 ACPI_STATUS
00361 AcpiNsBuildExternalPath (
00362     ACPI_NAMESPACE_NODE     *Node,
00363     ACPI_SIZE               Size,
00364     char                    *NameBuffer);
00365 
00366 char *
00367 AcpiNsGetExternalPathname (
00368     ACPI_NAMESPACE_NODE     *Node);
00369 
00370 char *
00371 AcpiNsNameOfCurrentScope (
00372     ACPI_WALK_STATE         *WalkState);
00373 
00374 ACPI_STATUS
00375 AcpiNsHandleToPathname (
00376     ACPI_HANDLE             TargetHandle,
00377     ACPI_BUFFER             *Buffer);
00378 
00379 BOOLEAN
00380 AcpiNsPatternMatch (
00381     ACPI_NAMESPACE_NODE     *ObjNode,
00382     char                    *SearchFor);
00383 
00384 ACPI_STATUS
00385 AcpiNsGetNode (
00386     ACPI_NAMESPACE_NODE     *PrefixNode,
00387     const char              *ExternalPathname,
00388     UINT32                  Flags,
00389     ACPI_NAMESPACE_NODE     **OutNode);
00390 
00391 ACPI_SIZE
00392 AcpiNsGetPathnameLength (
00393     ACPI_NAMESPACE_NODE     *Node);
00394 
00395 
00396 /*
00397  * nsobject - Object management for namespace nodes
00398  */
00399 ACPI_STATUS
00400 AcpiNsAttachObject (
00401     ACPI_NAMESPACE_NODE     *Node,
00402     ACPI_OPERAND_OBJECT     *Object,
00403     ACPI_OBJECT_TYPE        Type);
00404 
00405 ACPI_OPERAND_OBJECT *
00406 AcpiNsGetAttachedObject (
00407     ACPI_NAMESPACE_NODE     *Node);
00408 
00409 ACPI_OPERAND_OBJECT *
00410 AcpiNsGetSecondaryObject (
00411     ACPI_OPERAND_OBJECT     *ObjDesc);
00412 
00413 ACPI_STATUS
00414 AcpiNsAttachData (
00415     ACPI_NAMESPACE_NODE     *Node,
00416     ACPI_OBJECT_HANDLER     Handler,
00417     void                    *Data);
00418 
00419 ACPI_STATUS
00420 AcpiNsDetachData (
00421     ACPI_NAMESPACE_NODE     *Node,
00422     ACPI_OBJECT_HANDLER     Handler);
00423 
00424 ACPI_STATUS
00425 AcpiNsGetAttachedData (
00426     ACPI_NAMESPACE_NODE     *Node,
00427     ACPI_OBJECT_HANDLER     Handler,
00428     void                    **Data);
00429 
00430 
00431 /*
00432  * nsrepair - General return object repair for all
00433  * predefined methods/objects
00434  */
00435 ACPI_STATUS
00436 AcpiNsRepairObject (
00437     ACPI_PREDEFINED_DATA    *Data,
00438     UINT32                  ExpectedBtypes,
00439     UINT32                  PackageIndex,
00440     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
00441 
00442 ACPI_STATUS
00443 AcpiNsRepairPackageList (
00444     ACPI_PREDEFINED_DATA    *Data,
00445     ACPI_OPERAND_OBJECT     **ObjDescPtr);
00446 
00447 ACPI_STATUS
00448 AcpiNsRepairNullElement (
00449     ACPI_PREDEFINED_DATA    *Data,
00450     UINT32                  ExpectedBtypes,
00451     UINT32                  PackageIndex,
00452     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
00453 
00454 void
00455 AcpiNsRemoveNullElements (
00456     ACPI_PREDEFINED_DATA    *Data,
00457     UINT8                   PackageType,
00458     ACPI_OPERAND_OBJECT     *ObjDesc);
00459 
00460 
00461 /*
00462  * nsrepair2 - Return object repair for specific
00463  * predefined methods/objects
00464  */
00465 ACPI_STATUS
00466 AcpiNsComplexRepairs (
00467     ACPI_PREDEFINED_DATA    *Data,
00468     ACPI_NAMESPACE_NODE     *Node,
00469     ACPI_STATUS             ValidateStatus,
00470     ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
00471 
00472 
00473 /*
00474  * nssearch - Namespace searching and entry
00475  */
00476 ACPI_STATUS
00477 AcpiNsSearchAndEnter (
00478     UINT32                  EntryName,
00479     ACPI_WALK_STATE         *WalkState,
00480     ACPI_NAMESPACE_NODE     *Node,
00481     ACPI_INTERPRETER_MODE   InterpreterMode,
00482     ACPI_OBJECT_TYPE        Type,
00483     UINT32                  Flags,
00484     ACPI_NAMESPACE_NODE     **RetNode);
00485 
00486 ACPI_STATUS
00487 AcpiNsSearchOneScope (
00488     UINT32                  EntryName,
00489     ACPI_NAMESPACE_NODE     *Node,
00490     ACPI_OBJECT_TYPE        Type,
00491     ACPI_NAMESPACE_NODE     **RetNode);
00492 
00493 void
00494 AcpiNsInstallNode (
00495     ACPI_WALK_STATE         *WalkState,
00496     ACPI_NAMESPACE_NODE     *ParentNode,
00497     ACPI_NAMESPACE_NODE     *Node,
00498     ACPI_OBJECT_TYPE        Type);
00499 
00500 
00501 /*
00502  * nsutils - Utility functions
00503  */
00504 BOOLEAN
00505 AcpiNsValidRootPrefix (
00506     char                    Prefix);
00507 
00508 ACPI_OBJECT_TYPE
00509 AcpiNsGetType (
00510     ACPI_NAMESPACE_NODE     *Node);
00511 
00512 UINT32
00513 AcpiNsLocal (
00514     ACPI_OBJECT_TYPE        Type);
00515 
00516 void
00517 AcpiNsPrintNodePathname (
00518     ACPI_NAMESPACE_NODE     *Node,
00519     const char              *Msg);
00520 
00521 ACPI_STATUS
00522 AcpiNsBuildInternalName (
00523     ACPI_NAMESTRING_INFO    *Info);
00524 
00525 void
00526 AcpiNsGetInternalNameLength (
00527     ACPI_NAMESTRING_INFO    *Info);
00528 
00529 ACPI_STATUS
00530 AcpiNsInternalizeName (
00531     const char              *DottedName,
00532     char                    **ConvertedName);
00533 
00534 ACPI_STATUS
00535 AcpiNsExternalizeName (
00536     UINT32                  InternalNameLength,
00537     const char              *InternalName,
00538     UINT32                  *ConvertedNameLength,
00539     char                    **ConvertedName);
00540 
00541 ACPI_NAMESPACE_NODE *
00542 AcpiNsValidateHandle (
00543     ACPI_HANDLE             Handle);
00544 
00545 void
00546 AcpiNsTerminate (
00547     void);
00548 
00549 #endif /* __ACNAMESP_H__ */

Generated on Sun May 27 2012 04:27:18 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.