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

acdispat.h
Go to the documentation of this file.
00001 /******************************************************************************
00002  *
00003  * Name: acdispat.h - dispatcher (parser to interpreter interface)
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 
00117 #ifndef _ACDISPAT_H_
00118 #define _ACDISPAT_H_
00119 
00120 
00121 #define NAMEOF_LOCAL_NTE    "__L0"
00122 #define NAMEOF_ARG_NTE      "__A0"
00123 
00124 
00125 /*
00126  * dsargs - execution of dynamic arguments for static objects
00127  */
00128 ACPI_STATUS
00129 AcpiDsGetBufferFieldArguments (
00130     ACPI_OPERAND_OBJECT     *ObjDesc);
00131 
00132 ACPI_STATUS
00133 AcpiDsGetBankFieldArguments (
00134     ACPI_OPERAND_OBJECT     *ObjDesc);
00135 
00136 ACPI_STATUS
00137 AcpiDsGetRegionArguments (
00138     ACPI_OPERAND_OBJECT     *RgnDesc);
00139 
00140 ACPI_STATUS
00141 AcpiDsGetBufferArguments (
00142     ACPI_OPERAND_OBJECT     *ObjDesc);
00143 
00144 ACPI_STATUS
00145 AcpiDsGetPackageArguments (
00146     ACPI_OPERAND_OBJECT     *ObjDesc);
00147 
00148 
00149 /*
00150  * dscontrol - support for execution control opcodes
00151  */
00152 ACPI_STATUS
00153 AcpiDsExecBeginControlOp (
00154     ACPI_WALK_STATE         *WalkState,
00155     ACPI_PARSE_OBJECT       *Op);
00156 
00157 ACPI_STATUS
00158 AcpiDsExecEndControlOp (
00159     ACPI_WALK_STATE         *WalkState,
00160     ACPI_PARSE_OBJECT       *Op);
00161 
00162 
00163 /*
00164  * dsopcode - support for late operand evaluation
00165  */
00166 ACPI_STATUS
00167 AcpiDsEvalBufferFieldOperands (
00168     ACPI_WALK_STATE         *WalkState,
00169     ACPI_PARSE_OBJECT       *Op);
00170 
00171 ACPI_STATUS
00172 AcpiDsEvalRegionOperands (
00173     ACPI_WALK_STATE         *WalkState,
00174     ACPI_PARSE_OBJECT       *Op);
00175 
00176 ACPI_STATUS
00177 AcpiDsEvalTableRegionOperands (
00178     ACPI_WALK_STATE         *WalkState,
00179     ACPI_PARSE_OBJECT       *Op);
00180 
00181 ACPI_STATUS
00182 AcpiDsEvalDataObjectOperands (
00183     ACPI_WALK_STATE         *WalkState,
00184     ACPI_PARSE_OBJECT       *Op,
00185     ACPI_OPERAND_OBJECT     *ObjDesc);
00186 
00187 ACPI_STATUS
00188 AcpiDsEvalBankFieldOperands (
00189     ACPI_WALK_STATE         *WalkState,
00190     ACPI_PARSE_OBJECT       *Op);
00191 
00192 ACPI_STATUS
00193 AcpiDsInitializeRegion (
00194     ACPI_HANDLE             ObjHandle);
00195 
00196 
00197 /*
00198  * dsexec - Parser/Interpreter interface, method execution callbacks
00199  */
00200 ACPI_STATUS
00201 AcpiDsGetPredicateValue (
00202     ACPI_WALK_STATE         *WalkState,
00203     ACPI_OPERAND_OBJECT     *ResultObj);
00204 
00205 ACPI_STATUS
00206 AcpiDsExecBeginOp (
00207     ACPI_WALK_STATE         *WalkState,
00208     ACPI_PARSE_OBJECT       **OutOp);
00209 
00210 ACPI_STATUS
00211 AcpiDsExecEndOp (
00212     ACPI_WALK_STATE         *State);
00213 
00214 
00215 /*
00216  * dsfield - Parser/Interpreter interface for AML fields
00217  */
00218 ACPI_STATUS
00219 AcpiDsCreateField (
00220     ACPI_PARSE_OBJECT       *Op,
00221     ACPI_NAMESPACE_NODE     *RegionNode,
00222     ACPI_WALK_STATE         *WalkState);
00223 
00224 ACPI_STATUS
00225 AcpiDsCreateBankField (
00226     ACPI_PARSE_OBJECT       *Op,
00227     ACPI_NAMESPACE_NODE     *RegionNode,
00228     ACPI_WALK_STATE         *WalkState);
00229 
00230 ACPI_STATUS
00231 AcpiDsCreateIndexField (
00232     ACPI_PARSE_OBJECT       *Op,
00233     ACPI_NAMESPACE_NODE     *RegionNode,
00234     ACPI_WALK_STATE         *WalkState);
00235 
00236 ACPI_STATUS
00237 AcpiDsCreateBufferField (
00238     ACPI_PARSE_OBJECT       *Op,
00239     ACPI_WALK_STATE         *WalkState);
00240 
00241 ACPI_STATUS
00242 AcpiDsInitFieldObjects (
00243     ACPI_PARSE_OBJECT       *Op,
00244     ACPI_WALK_STATE         *WalkState);
00245 
00246 
00247 /*
00248  * dsload - Parser/Interpreter interface, pass 1 namespace load callbacks
00249  */
00250 ACPI_STATUS
00251 AcpiDsInitCallbacks (
00252     ACPI_WALK_STATE         *WalkState,
00253     UINT32                  PassNumber);
00254 
00255 ACPI_STATUS
00256 AcpiDsLoad1BeginOp (
00257     ACPI_WALK_STATE         *WalkState,
00258     ACPI_PARSE_OBJECT       **OutOp);
00259 
00260 ACPI_STATUS
00261 AcpiDsLoad1EndOp (
00262     ACPI_WALK_STATE         *WalkState);
00263 
00264 
00265 /*
00266  * dsload - Parser/Interpreter interface, pass 2 namespace load callbacks
00267  */
00268 ACPI_STATUS
00269 AcpiDsLoad2BeginOp (
00270     ACPI_WALK_STATE         *WalkState,
00271     ACPI_PARSE_OBJECT       **OutOp);
00272 
00273 ACPI_STATUS
00274 AcpiDsLoad2EndOp (
00275     ACPI_WALK_STATE         *WalkState);
00276 
00277 
00278 /*
00279  * dsmthdat - method data (locals/args)
00280  */
00281 ACPI_STATUS
00282 AcpiDsStoreObjectToLocal (
00283     UINT8                   Type,
00284     UINT32                  Index,
00285     ACPI_OPERAND_OBJECT     *SrcDesc,
00286     ACPI_WALK_STATE         *WalkState);
00287 
00288 ACPI_STATUS
00289 AcpiDsMethodDataGetEntry (
00290     UINT16                  Opcode,
00291     UINT32                  Index,
00292     ACPI_WALK_STATE         *WalkState,
00293     ACPI_OPERAND_OBJECT     ***Node);
00294 
00295 void
00296 AcpiDsMethodDataDeleteAll (
00297     ACPI_WALK_STATE         *WalkState);
00298 
00299 BOOLEAN
00300 AcpiDsIsMethodValue (
00301     ACPI_OPERAND_OBJECT     *ObjDesc);
00302 
00303 ACPI_STATUS
00304 AcpiDsMethodDataGetValue (
00305     UINT8                   Type,
00306     UINT32                  Index,
00307     ACPI_WALK_STATE         *WalkState,
00308     ACPI_OPERAND_OBJECT     **DestDesc);
00309 
00310 ACPI_STATUS
00311 AcpiDsMethodDataInitArgs (
00312     ACPI_OPERAND_OBJECT     **Params,
00313     UINT32                  MaxParamCount,
00314     ACPI_WALK_STATE         *WalkState);
00315 
00316 ACPI_STATUS
00317 AcpiDsMethodDataGetNode (
00318     UINT8                   Type,
00319     UINT32                  Index,
00320     ACPI_WALK_STATE         *WalkState,
00321     ACPI_NAMESPACE_NODE     **Node);
00322 
00323 void
00324 AcpiDsMethodDataInit (
00325     ACPI_WALK_STATE         *WalkState);
00326 
00327 
00328 /*
00329  * dsmethod - Parser/Interpreter interface - control method parsing
00330  */
00331 ACPI_STATUS
00332 AcpiDsParseMethod (
00333     ACPI_NAMESPACE_NODE     *Node);
00334 
00335 ACPI_STATUS
00336 AcpiDsCallControlMethod (
00337     ACPI_THREAD_STATE       *Thread,
00338     ACPI_WALK_STATE         *WalkState,
00339     ACPI_PARSE_OBJECT       *Op);
00340 
00341 ACPI_STATUS
00342 AcpiDsRestartControlMethod (
00343     ACPI_WALK_STATE         *WalkState,
00344     ACPI_OPERAND_OBJECT     *ReturnDesc);
00345 
00346 void
00347 AcpiDsTerminateControlMethod (
00348     ACPI_OPERAND_OBJECT     *MethodDesc,
00349     ACPI_WALK_STATE         *WalkState);
00350 
00351 ACPI_STATUS
00352 AcpiDsBeginMethodExecution (
00353     ACPI_NAMESPACE_NODE     *MethodNode,
00354     ACPI_OPERAND_OBJECT     *ObjDesc,
00355     ACPI_WALK_STATE         *WalkState);
00356 
00357 ACPI_STATUS
00358 AcpiDsMethodError (
00359     ACPI_STATUS             Status,
00360     ACPI_WALK_STATE         *WalkState);
00361 
00362 /*
00363  * dsinit
00364  */
00365 ACPI_STATUS
00366 AcpiDsInitializeObjects (
00367     UINT32                  TableIndex,
00368     ACPI_NAMESPACE_NODE     *StartNode);
00369 
00370 
00371 /*
00372  * dsobject - Parser/Interpreter interface - object initialization and conversion
00373  */
00374 ACPI_STATUS
00375 AcpiDsBuildInternalBufferObj (
00376     ACPI_WALK_STATE         *WalkState,
00377     ACPI_PARSE_OBJECT       *Op,
00378     UINT32                  BufferLength,
00379     ACPI_OPERAND_OBJECT     **ObjDescPtr);
00380 
00381 ACPI_STATUS
00382 AcpiDsBuildInternalPackageObj (
00383     ACPI_WALK_STATE         *WalkState,
00384     ACPI_PARSE_OBJECT       *op,
00385     UINT32                  PackageLength,
00386     ACPI_OPERAND_OBJECT     **ObjDesc);
00387 
00388 ACPI_STATUS
00389 AcpiDsInitObjectFromOp (
00390     ACPI_WALK_STATE         *WalkState,
00391     ACPI_PARSE_OBJECT       *Op,
00392     UINT16                  Opcode,
00393     ACPI_OPERAND_OBJECT     **ObjDesc);
00394 
00395 ACPI_STATUS
00396 AcpiDsCreateNode (
00397     ACPI_WALK_STATE         *WalkState,
00398     ACPI_NAMESPACE_NODE     *Node,
00399     ACPI_PARSE_OBJECT       *Op);
00400 
00401 
00402 /*
00403  * dsutils - Parser/Interpreter interface utility routines
00404  */
00405 void
00406 AcpiDsClearImplicitReturn (
00407     ACPI_WALK_STATE         *WalkState);
00408 
00409 BOOLEAN
00410 AcpiDsDoImplicitReturn (
00411     ACPI_OPERAND_OBJECT     *ReturnDesc,
00412     ACPI_WALK_STATE         *WalkState,
00413     BOOLEAN                 AddReference);
00414 
00415 BOOLEAN
00416 AcpiDsIsResultUsed (
00417     ACPI_PARSE_OBJECT       *Op,
00418     ACPI_WALK_STATE         *WalkState);
00419 
00420 void
00421 AcpiDsDeleteResultIfNotUsed (
00422     ACPI_PARSE_OBJECT       *Op,
00423     ACPI_OPERAND_OBJECT     *ResultObj,
00424     ACPI_WALK_STATE         *WalkState);
00425 
00426 ACPI_STATUS
00427 AcpiDsCreateOperand (
00428     ACPI_WALK_STATE         *WalkState,
00429     ACPI_PARSE_OBJECT       *Arg,
00430     UINT32                  ArgsRemaining);
00431 
00432 ACPI_STATUS
00433 AcpiDsCreateOperands (
00434     ACPI_WALK_STATE         *WalkState,
00435     ACPI_PARSE_OBJECT       *FirstArg);
00436 
00437 ACPI_STATUS
00438 AcpiDsResolveOperands (
00439     ACPI_WALK_STATE         *WalkState);
00440 
00441 void
00442 AcpiDsClearOperands (
00443     ACPI_WALK_STATE         *WalkState);
00444 
00445 ACPI_STATUS
00446 AcpiDsEvaluateNamePath (
00447     ACPI_WALK_STATE         *WalkState);
00448 
00449 
00450 /*
00451  * dswscope - Scope Stack manipulation
00452  */
00453 ACPI_STATUS
00454 AcpiDsScopeStackPush (
00455     ACPI_NAMESPACE_NODE     *Node,
00456     ACPI_OBJECT_TYPE        Type,
00457     ACPI_WALK_STATE         *WalkState);
00458 
00459 
00460 ACPI_STATUS
00461 AcpiDsScopeStackPop (
00462     ACPI_WALK_STATE         *WalkState);
00463 
00464 void
00465 AcpiDsScopeStackClear (
00466     ACPI_WALK_STATE         *WalkState);
00467 
00468 
00469 /*
00470  * dswstate - parser WALK_STATE management routines
00471  */
00472 ACPI_STATUS
00473 AcpiDsObjStackPush (
00474     void                    *Object,
00475     ACPI_WALK_STATE         *WalkState);
00476 
00477 ACPI_STATUS
00478 AcpiDsObjStackPop (
00479     UINT32                  PopCount,
00480     ACPI_WALK_STATE         *WalkState);
00481 
00482 ACPI_WALK_STATE *
00483 AcpiDsCreateWalkState (
00484     ACPI_OWNER_ID           OwnerId,
00485     ACPI_PARSE_OBJECT       *Origin,
00486     ACPI_OPERAND_OBJECT     *MthDesc,
00487     ACPI_THREAD_STATE       *Thread);
00488 
00489 ACPI_STATUS
00490 AcpiDsInitAmlWalk (
00491     ACPI_WALK_STATE         *WalkState,
00492     ACPI_PARSE_OBJECT       *Op,
00493     ACPI_NAMESPACE_NODE     *MethodNode,
00494     UINT8                   *AmlStart,
00495     UINT32                  AmlLength,
00496     ACPI_EVALUATE_INFO      *Info,
00497     UINT8                   PassNumber);
00498 
00499 void
00500 AcpiDsObjStackPopAndDelete (
00501     UINT32                  PopCount,
00502     ACPI_WALK_STATE         *WalkState);
00503 
00504 void
00505 AcpiDsDeleteWalkState (
00506     ACPI_WALK_STATE         *WalkState);
00507 
00508 ACPI_WALK_STATE *
00509 AcpiDsPopWalkState (
00510     ACPI_THREAD_STATE       *Thread);
00511 
00512 void
00513 AcpiDsPushWalkState (
00514     ACPI_WALK_STATE         *WalkState,
00515     ACPI_THREAD_STATE       *Thread);
00516 
00517 ACPI_STATUS
00518 AcpiDsResultStackClear (
00519     ACPI_WALK_STATE         *WalkState);
00520 
00521 ACPI_WALK_STATE *
00522 AcpiDsGetCurrentWalkState (
00523     ACPI_THREAD_STATE       *Thread);
00524 
00525 ACPI_STATUS
00526 AcpiDsResultPop (
00527     ACPI_OPERAND_OBJECT     **Object,
00528     ACPI_WALK_STATE         *WalkState);
00529 
00530 ACPI_STATUS
00531 AcpiDsResultPush (
00532     ACPI_OPERAND_OBJECT     *Object,
00533     ACPI_WALK_STATE         *WalkState);
00534 
00535 #endif /* _ACDISPAT_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.