ReactOS  0.4.15-dev-439-g292f67a
dswload.c File Reference
#include "acpi.h"
#include "accommon.h"
#include "acparser.h"
#include "amlcode.h"
#include "acdispat.h"
#include "acinterp.h"
#include "acnamesp.h"
Include dependency graph for dswload.c:

Go to the source code of this file.

Macros

#define _COMPONENT   ACPI_DISPATCHER
 

Functions

ACPI_STATUS AcpiDsInitCallbacks (ACPI_WALK_STATE *WalkState, UINT32 PassNumber)
 
ACPI_STATUS AcpiDsLoad1BeginOp (ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT **OutOp)
 
ACPI_STATUS AcpiDsLoad1EndOp (ACPI_WALK_STATE *WalkState)
 

Macro Definition Documentation

◆ _COMPONENT

#define _COMPONENT   ACPI_DISPATCHER

Definition at line 55 of file dswload.c.

Function Documentation

◆ AcpiDsInitCallbacks()

ACPI_STATUS AcpiDsInitCallbacks ( ACPI_WALK_STATE WalkState,
UINT32  PassNumber 
)

Definition at line 73 of file dswload.c.

76 {
77 
78  switch (PassNumber)
79  {
80  case 0:
81 
82  /* Parse only - caller will setup callbacks */
83 
84  WalkState->ParseFlags = ACPI_PARSE_LOAD_PASS1 |
87  WalkState->DescendingCallback = NULL;
88  WalkState->AscendingCallback = NULL;
89  break;
90 
91  case 1:
92 
93  /* Load pass 1 */
94 
95  WalkState->ParseFlags = ACPI_PARSE_LOAD_PASS1 |
99  break;
100 
101  case 2:
102 
103  /* Load pass 2 */
104 
105  WalkState->ParseFlags = ACPI_PARSE_LOAD_PASS1 |
108  WalkState->AscendingCallback = AcpiDsLoad2EndOp;
109  break;
110 
111  case 3:
112 
113  /* Execution pass */
114 
115  WalkState->ParseFlags |= ACPI_PARSE_EXECUTE |
118  WalkState->AscendingCallback = AcpiDsExecEndOp;
119  break;
120 
121  default:
122 
123  return (AE_BAD_PARAMETER);
124  }
125 
126  return (AE_OK);
127 }
ACPI_STATUS AcpiDsLoad2BeginOp(ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT **OutOp)
Definition: dswload2.c:74
#define AE_BAD_PARAMETER
Definition: acexcep.h:151
ACPI_STATUS AcpiDsLoad1BeginOp(ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT **OutOp)
Definition: dswload.c:144
UINT32 ParseFlags
Definition: acstruct.h:95
#define ACPI_PARSE_EXECUTE
Definition: acparser.h:61
ACPI_PARSE_UPWARDS AscendingCallback
Definition: acstruct.h:129
smooth NULL
Definition: ftsmooth.c:416
ACPI_STATUS AcpiDsLoad1EndOp(ACPI_WALK_STATE *WalkState)
Definition: dswload.c:443
ACPI_STATUS AcpiDsLoad2EndOp(ACPI_WALK_STATE *WalkState)
Definition: dswload2.c:418
#define ACPI_PARSE_LOAD_PASS1
Definition: acparser.h:59
ACPI_STATUS AcpiDsExecBeginOp(ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT **OutOp)
Definition: dswexec.c:234
#define ACPI_PARSE_DISASSEMBLE
Definition: acparser.h:65
ACPI_PARSE_DOWNWARDS DescendingCallback
Definition: acstruct.h:128
ACPI_STATUS AcpiDsExecEndOp(ACPI_WALK_STATE *WalkState)
Definition: dswexec.c:392
#define AE_OK
Definition: acexcep.h:97
#define ACPI_PARSE_DELETE_TREE
Definition: acparser.h:55

Referenced by AcpiDsInitAmlWalk().

◆ AcpiDsLoad1BeginOp()

ACPI_STATUS AcpiDsLoad1BeginOp ( ACPI_WALK_STATE WalkState,
ACPI_PARSE_OBJECT **  OutOp 
)

Definition at line 144 of file dswload.c.

147 {
148  ACPI_PARSE_OBJECT *Op;
152  char *Path;
153  UINT32 Flags;
154 
155 
156  ACPI_FUNCTION_TRACE_PTR (DsLoad1BeginOp, WalkState->Op);
157 
158 
159  Op = WalkState->Op;
160  ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
161 
162  /* We are only interested in opcodes that have an associated name */
163 
164  if (Op)
165  {
166  if (!(WalkState->OpInfo->Flags & AML_NAMED))
167  {
168  *OutOp = Op;
170  }
171 
172  /* Check if this object has already been installed in the namespace */
173 
174  if (Op->Common.Node)
175  {
176  *OutOp = Op;
178  }
179  }
180 
181  Path = AcpiPsGetNextNamestring (&WalkState->ParserState);
182 
183  /* Map the raw opcode into an internal object type */
184 
185  ObjectType = WalkState->OpInfo->ObjectType;
186 
188  "State=%p Op=%p [%s]\n", WalkState, Op,
190 
191  switch (WalkState->Opcode)
192  {
193  case AML_SCOPE_OP:
194  /*
195  * The target name of the Scope() operator must exist at this point so
196  * that we can actually open the scope to enter new names underneath it.
197  * Allow search-to-root for single namesegs.
198  */
199  Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
201 #ifdef ACPI_ASL_COMPILER
202  if (Status == AE_NOT_FOUND)
203  {
204  /*
205  * Table disassembly:
206  * Target of Scope() not found. Generate an External for it, and
207  * insert the name into the namespace.
208  */
210  Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
212  WalkState, &Node);
213  }
214 #endif
215  if (ACPI_FAILURE (Status))
216  {
217  ACPI_ERROR_NAMESPACE (WalkState->ScopeInfo, Path, Status);
219  }
220 
221  /*
222  * Check to make sure that the target is
223  * one of the opcodes that actually opens a scope
224  */
225  switch (Node->Type)
226  {
227  case ACPI_TYPE_ANY:
228  case ACPI_TYPE_LOCAL_SCOPE: /* Scope */
229  case ACPI_TYPE_DEVICE:
230  case ACPI_TYPE_POWER:
231  case ACPI_TYPE_PROCESSOR:
232  case ACPI_TYPE_THERMAL:
233 
234  /* These are acceptable types */
235  break;
236 
237  case ACPI_TYPE_INTEGER:
238  case ACPI_TYPE_STRING:
239  case ACPI_TYPE_BUFFER:
240  /*
241  * These types we will allow, but we will change the type.
242  * This enables some existing code of the form:
243  *
244  * Name (DEB, 0)
245  * Scope (DEB) { ... }
246  *
247  * Note: silently change the type here. On the second pass,
248  * we will report a warning
249  */
251  "Type override - [%4.4s] had invalid type (%s) "
252  "for Scope operator, changed to type ANY\n",
254 
255  Node->Type = ACPI_TYPE_ANY;
256  WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
257  break;
258 
259  case ACPI_TYPE_METHOD:
260  /*
261  * Allow scope change to root during execution of module-level
262  * code. Root is typed METHOD during this time.
263  */
264  if ((Node == AcpiGbl_RootNode) &&
265  (WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL))
266  {
267  break;
268  }
269 
270  /*lint -fallthrough */
271 
272  default:
273 
274  /* All other types are an error */
275 
277  "Invalid type (%s) for target of "
278  "Scope operator [%4.4s] (Cannot override)",
280 
282  }
283  break;
284 
285  default:
286  /*
287  * For all other named opcodes, we will enter the name into
288  * the namespace.
289  *
290  * Setup the search flags.
291  * Since we are entering a name into the namespace, we do not want to
292  * enable the search-to-root upsearch.
293  *
294  * There are only two conditions where it is acceptable that the name
295  * already exists:
296  * 1) the Scope() operator can reopen a scoping object that was
297  * previously defined (Scope, Method, Device, etc.)
298  * 2) Whenever we are parsing a deferred opcode (OpRegion, Buffer,
299  * BufferField, or Package), the name of the object is already
300  * in the namespace.
301  */
302  if (WalkState->DeferredNode)
303  {
304  /* This name is already in the namespace, get the node */
305 
306  Node = WalkState->DeferredNode;
307  Status = AE_OK;
308  break;
309  }
310 
311  /*
312  * If we are executing a method, do not create any namespace objects
313  * during the load phase, only during execution.
314  */
315  if (WalkState->MethodNode)
316  {
317  Node = NULL;
318  Status = AE_OK;
319  break;
320  }
321 
323  if ((WalkState->Opcode != AML_SCOPE_OP) &&
324  (!(WalkState->ParseFlags & ACPI_PARSE_DEFERRED_OP)))
325  {
326  if (WalkState->NamespaceOverride)
327  {
329  ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Override allowed\n",
331  }
332  else
333  {
335  ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Cannot already exist\n",
337  }
338  }
339  else
340  {
342  "[%s] Both Find or Create allowed\n",
344  }
345 
346  /*
347  * Enter the named type into the internal namespace. We enter the name
348  * as we go downward in the parse tree. Any necessary subobjects that
349  * involve arguments to the opcode must be created as we go back up the
350  * parse tree later.
351  */
352  Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
353  ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node);
354  if (ACPI_FAILURE (Status))
355  {
356  if (Status == AE_ALREADY_EXISTS)
357  {
358  /* The name already exists in this scope */
359 
360  if (Node->Flags & ANOBJ_IS_EXTERNAL)
361  {
362  /*
363  * Allow one create on an object or segment that was
364  * previously declared External
365  */
366  Node->Flags &= ~ANOBJ_IS_EXTERNAL;
367  Node->Type = (UINT8) ObjectType;
368 
369  /* Just retyped a node, probably will need to open a scope */
370 
372  {
374  Node, ObjectType, WalkState);
375  if (ACPI_FAILURE (Status))
376  {
378  }
379  }
380 
381  Status = AE_OK;
382  }
383  }
384 
385  if (ACPI_FAILURE (Status))
386  {
387  ACPI_ERROR_NAMESPACE (WalkState->ScopeInfo, Path, Status);
389  }
390  }
391  break;
392  }
393 
394  /* Common exit */
395 
396  if (!Op)
397  {
398  /* Create a new op */
399 
400  Op = AcpiPsAllocOp (WalkState->Opcode, WalkState->Aml);
401  if (!Op)
402  {
404  }
405  }
406 
407  /* Initialize the op */
408 
409 #ifdef ACPI_CONSTANT_EVAL_ONLY
410  Op->Named.Path = Path;
411 #endif
412 
413  if (Node)
414  {
415  /*
416  * Put the Node in the "op" object that the parser uses, so we
417  * can get it again quickly when this scope is closed
418  */
419  Op->Common.Node = Node;
420  Op->Named.Name = Node->Name.Integer;
421  }
422 
424  *OutOp = Op;
426 }
#define ACPI_NS_SEARCH_PARENT
Definition: acnamesp.h:63
ObjectType
Definition: metafile.c:80
ACPI_PARSE_OBJ_COMMON Common
Definition: aclocal.h:1078
#define AML_NAMED
Definition: amlcode.h:323
ACPI_STATUS AcpiNsLookup(ACPI_GENERIC_STATE *ScopeInfo, char *Name, ACPI_OBJECT_TYPE Type, ACPI_INTERPRETER_MODE InterpreterMode, UINT32 Flags, ACPI_WALK_STATE *WalkState, ACPI_NAMESPACE_NODE **RetNode)
Definition: nsaccess.c:329
#define ACPI_TYPE_THERMAL
Definition: actypes.h:692
#define AE_NO_MEMORY
Definition: acexcep.h:112
#define ACPI_TYPE_BUFFER
Definition: actypes.h:682
#define ACPI_TYPE_INTEGER
Definition: actypes.h:680
#define ACPI_TYPE_POWER
Definition: actypes.h:690
ACPI_STATUS AcpiDsScopeStackPush(ACPI_NAMESPACE_NODE *Node, ACPI_OBJECT_TYPE Type, ACPI_WALK_STATE *WalkState)
Definition: dswscope.c:107
UINT8 ObjectType
Definition: aclocal.h:874
struct acpi_namespace_node * DeferredNode
Definition: acstruct.h:111
ACPI_PARSE_OBJECT * AcpiPsGetParentScope(ACPI_PARSE_STATE *state)
Definition: psscope.c:65
ACPI_PARSE_OBJECT * AcpiPsAllocOp(UINT16 Opcode, UINT8 *Aml)
Definition: psutils.c:130
#define ACPI_NS_ERROR_IF_FOUND
Definition: acnamesp.h:66
UINT32 ParseFlags
Definition: acstruct.h:95
UINT32 ACPI_STATUS
Definition: actypes.h:460
#define AE_AML_OPERAND_TYPE
Definition: acexcep.h:182
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
char * AcpiPsGetNextNamestring(ACPI_PARSE_STATE *ParserState)
Definition: psargs.c:172
unsigned int UINT32
union node Node
Definition: types.h:1255
smooth NULL
Definition: ftsmooth.c:416
#define AE_INFO
Definition: acoutput.h:230
UINT32 ACPI_OBJECT_TYPE
Definition: actypes.h:677
#define ACPI_FUNCTION_TRACE_PTR(a, b)
Definition: acoutput.h:481
ACPI_PARSE_OBJ_NAMED Named
Definition: aclocal.h:1079
UINT32 AcpiNsOpensScope(ACPI_OBJECT_TYPE Type)
Definition: nsutils.c:736
void AcpiDmAddOpToExternalList(ACPI_PARSE_OBJECT *Op, char *Path, UINT8 Type, UINT32 Value, UINT16 Flags)
#define ACPI_DB_DISPATCH
Definition: acoutput.h:163
#define ACPI_TYPE_METHOD
Definition: actypes.h:687
ACPI_PARSE_OBJECT * Op
Definition: acstruct.h:118
#define AE_ALREADY_EXISTS
Definition: acexcep.h:115
#define ACPI_DEBUG_PRINT(pl)
Definition: acoutput.h:475
void AcpiPsAppendArg(ACPI_PARSE_OBJECT *op, ACPI_PARSE_OBJECT *arg)
Definition: pstree.c:138
#define AML_SCOPE_OP
Definition: amlcode.h:60
#define AE_NOT_FOUND
Definition: acexcep.h:113
const ACPI_OPCODE_INFO * OpInfo
Definition: acstruct.h:119
ACPI_GENERIC_STATE * ScopeInfo
Definition: acstruct.h:124
#define ACPI_TYPE_ANY
Definition: actypes.h:679
ACPI_PARSE_STATE ParserState
Definition: acstruct.h:97
#define ACPI_TYPE_DEVICE
Definition: actypes.h:685
struct acpi_namespace_node * MethodNode
Definition: acstruct.h:116
ACPI_COMMON_STATE Common
Definition: aclocal.h:822
#define ACPI_TYPE_PROCESSOR
Definition: actypes.h:691
Status
Definition: gdiplustypes.h:24
BOOLEAN NamespaceOverride
Definition: acstruct.h:88
#define ACPI_DB_INFO
Definition: acoutput.h:153
PRTL_UNICODE_STRING_BUFFER Path
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_NS_NO_UPSEARCH
Definition: acnamesp.h:62
#define ACPI_PARSE_MODULE_LEVEL
Definition: acparser.h:67
ACPI_PARSE_COMMON char * Path
Definition: aclocal.h:1032
#define ACPI_NS_OVERRIDE_IF_FOUND
Definition: acnamesp.h:70
const char * AcpiUtGetTypeName(ACPI_OBJECT_TYPE Type)
Definition: utdecode.c:250
#define ACPI_ERROR(plist)
Definition: acoutput.h:240
const char * AcpiUtGetNodeName(void *Object)
Definition: utdecode.c:306
#define ACPI_TYPE_LOCAL_SCOPE
Definition: actypes.h:718
UINT16 Opcode
Definition: acstruct.h:78
#define ACPI_TYPE_STRING
Definition: actypes.h:681
#define ACPI_PARSE_DEFERRED_OP
Definition: acparser.h:64
#define ACPI_ERROR_NAMESPACE(s, p, e)
Definition: acmacros.h:462
unsigned char UINT8
#define AE_OK
Definition: acexcep.h:97
UINT16 Flags
Definition: aclocal.h:873
Definition: dlist.c:348
UINT8 * Aml
Definition: acstruct.h:91
#define ANOBJ_IS_EXTERNAL
Definition: aclocal.h:224

Referenced by AcpiDsInitCallbacks().

◆ AcpiDsLoad1EndOp()

ACPI_STATUS AcpiDsLoad1EndOp ( ACPI_WALK_STATE WalkState)

Definition at line 443 of file dswload.c.

445 {
446  ACPI_PARSE_OBJECT *Op;
449 #ifdef ACPI_ASL_COMPILER
450  UINT8 ParamCount;
451 #endif
452 
453 
454  ACPI_FUNCTION_TRACE (DsLoad1EndOp);
455 
456 
457  Op = WalkState->Op;
458  ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
459 
460  /*
461  * Disassembler: handle create field operators here.
462  *
463  * CreateBufferField is a deferred op that is typically processed in load
464  * pass 2. However, disassembly of control method contents walk the parse
465  * tree with ACPI_PARSE_LOAD_PASS1 and AML_CREATE operators are processed
466  * in a later walk. This is a problem when there is a control method that
467  * has the same name as the AML_CREATE object. In this case, any use of the
468  * name segment will be detected as a method call rather than a reference
469  * to a buffer field.
470  *
471  * This earlier creation during disassembly solves this issue by inserting
472  * the named object in the ACPI namespace so that references to this name
473  * would be a name string rather than a method call.
474  */
475  if ((WalkState->ParseFlags & ACPI_PARSE_DISASSEMBLE) &&
476  (WalkState->OpInfo->Flags & AML_CREATE))
477  {
478  Status = AcpiDsCreateBufferField (Op, WalkState);
480  }
481 
482  /* We are only interested in opcodes that have an associated name */
483 
484  if (!(WalkState->OpInfo->Flags & (AML_NAMED | AML_FIELD)))
485  {
487  }
488 
489  /* Get the object type to determine if we should pop the scope */
490 
491  ObjectType = WalkState->OpInfo->ObjectType;
492 
493  if (WalkState->OpInfo->Flags & AML_FIELD)
494  {
495  /*
496  * If we are executing a method, do not create any namespace objects
497  * during the load phase, only during execution.
498  */
499  if (!WalkState->MethodNode)
500  {
501  if (WalkState->Opcode == AML_FIELD_OP ||
502  WalkState->Opcode == AML_BANK_FIELD_OP ||
503  WalkState->Opcode == AML_INDEX_FIELD_OP)
504  {
505  Status = AcpiDsInitFieldObjects (Op, WalkState);
506  }
507  }
509  }
510 
511  /*
512  * If we are executing a method, do not create any namespace objects
513  * during the load phase, only during execution.
514  */
515  if (!WalkState->MethodNode)
516  {
517  if (Op->Common.AmlOpcode == AML_REGION_OP)
518  {
521  ((Op->Common.Value.Arg)->Common.Value.Integer),
522  WalkState);
523  if (ACPI_FAILURE (Status))
524  {
526  }
527  }
528  else if (Op->Common.AmlOpcode == AML_DATA_REGION_OP)
529  {
531  ACPI_ADR_SPACE_DATA_TABLE, WalkState);
532  if (ACPI_FAILURE (Status))
533  {
535  }
536  }
537  }
538 
539  if (Op->Common.AmlOpcode == AML_NAME_OP)
540  {
541  /* For Name opcode, get the object type from the argument */
542 
543  if (Op->Common.Value.Arg)
544  {
546  (Op->Common.Value.Arg)->Common.AmlOpcode))->ObjectType;
547 
548  /* Set node type if we have a namespace node */
549 
550  if (Op->Common.Node)
551  {
552  Op->Common.Node->Type = (UINT8) ObjectType;
553  }
554  }
555  }
556 
557 #ifdef ACPI_ASL_COMPILER
558  /*
559  * For external opcode, get the object type from the argument and
560  * get the parameter count from the argument's next.
561  */
562  if (AcpiGbl_DisasmFlag &&
563  Op->Common.Node &&
564  Op->Common.AmlOpcode == AML_EXTERNAL_OP)
565  {
566  /*
567  * Note, if this external is not a method
568  * Op->Common.Value.Arg->Common.Next->Common.Value.Integer == 0
569  * Therefore, ParamCount will be 0.
570  */
571  ParamCount = (UINT8) Op->Common.Value.Arg->Common.Next->Common.Value.Integer;
572  ObjectType = (UINT8) Op->Common.Value.Arg->Common.Value.Integer;
573  Op->Common.Node->Flags |= ANOBJ_IS_EXTERNAL;
574  Op->Common.Node->Type = (UINT8) ObjectType;
575 
577  &Op->Common.Node, ParamCount);
578 
579  /*
580  * Add the external to the external list because we may be
581  * emitting code based off of the items within the external list.
582  */
583  AcpiDmAddOpToExternalList (Op, Op->Named.Path, (UINT8)ObjectType, ParamCount,
585  }
586 #endif
587 
588  /*
589  * If we are executing a method, do not create any namespace objects
590  * during the load phase, only during execution.
591  */
592  if (!WalkState->MethodNode)
593  {
594  if (Op->Common.AmlOpcode == AML_METHOD_OP)
595  {
596  /*
597  * MethodOp PkgLength NameString MethodFlags TermList
598  *
599  * Note: We must create the method node/object pair as soon as we
600  * see the method declaration. This allows later pass1 parsing
601  * of invocations of the method (need to know the number of
602  * arguments.)
603  */
605  "LOADING-Method: State=%p Op=%p NamedObj=%p\n",
606  WalkState, Op, Op->Named.Node));
607 
608  if (!AcpiNsGetAttachedObject (Op->Named.Node))
609  {
610  WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node);
611  WalkState->NumOperands = 1;
612 
614  WalkState, Op->Common.Value.Arg);
615  if (ACPI_SUCCESS (Status))
616  {
618  Op->Named.Length, WalkState);
619  }
620 
621  WalkState->Operands[0] = NULL;
622  WalkState->NumOperands = 0;
623 
624  if (ACPI_FAILURE (Status))
625  {
627  }
628  }
629  }
630  }
631 
632  /* Pop the scope stack (only if loading a table) */
633 
634  if (!WalkState->MethodNode &&
635  Op->Common.AmlOpcode != AML_EXTERNAL_OP &&
637  {
638  ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "(%s): Popping scope for Op %p\n",
640 
641  Status = AcpiDsScopeStackPop (WalkState);
642  }
643 
645 }
ACPI_STATUS AcpiDsCreateOperands(ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT *FirstArg)
Definition: dsutils.c:753
ACPI_STATUS AcpiDsInitFieldObjects(ACPI_PARSE_OBJECT *Op, ACPI_WALK_STATE *WalkState)
Definition: dsfield.c:617
ObjectType
Definition: metafile.c:80
ACPI_PARSE_OBJ_COMMON Common
Definition: aclocal.h:1078
#define AML_NAMED
Definition: amlcode.h:323
UINT8 ACPI_ADR_SPACE_TYPE
Definition: actypes.h:850
#define ACPI_SUCCESS(a)
Definition: acexcep.h:94
ACPI_STATUS AcpiDsScopeStackPop(ACPI_WALK_STATE *WalkState)
Definition: dswscope.c:192
UINT8 NumOperands
Definition: acstruct.h:80
#define ACPI_EXT_RESOLVED_REFERENCE
Definition: aclocal.h:1379
UINT8 ObjectType
Definition: aclocal.h:874
const ACPI_OPCODE_INFO * AcpiPsGetOpcodeInfo(UINT16 Opcode)
Definition: psopinfo.c:72
#define ACPI_ADR_SPACE_DATA_TABLE
Definition: actypes.h:875
UINT32 ParseFlags
Definition: acstruct.h:95
UINT32 ACPI_STATUS
Definition: actypes.h:460
void AcpiDmCreateSubobjectForExternal(UINT8 Type, ACPI_NAMESPACE_NODE **Node, UINT32 Value)
#define AML_EXTERNAL_OP
Definition: amlcode.h:65
#define AML_REGION_OP
Definition: amlcode.h:180
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
#define AML_NAME_OP
Definition: amlcode.h:54
ACPI_STATUS AcpiExCreateMethod(UINT8 *AmlStart, UINT32 AmlLength, ACPI_WALK_STATE *WalkState)
Definition: excreate.c:483
#define AML_CREATE
Definition: amlcode.h:320
smooth NULL
Definition: ftsmooth.c:416
UINT32 ACPI_OBJECT_TYPE
Definition: actypes.h:677
ACPI_PARSE_OBJ_NAMED Named
Definition: aclocal.h:1079
UINT32 AcpiNsOpensScope(ACPI_OBJECT_TYPE Type)
Definition: nsutils.c:736
void AcpiDmAddOpToExternalList(ACPI_PARSE_OBJECT *Op, char *Path, UINT8 Type, UINT32 Value, UINT16 Flags)
#define ACPI_DB_DISPATCH
Definition: acoutput.h:163
#define AML_BANK_FIELD_OP
Definition: amlcode.h:187
ACPI_STATUS AcpiExCreateRegion(UINT8 *AmlStart, UINT32 AmlLength, UINT8 SpaceId, ACPI_WALK_STATE *WalkState)
Definition: excreate.c:268
ACPI_PARSE_OBJECT * Op
Definition: acstruct.h:118
#define AML_FIELD_OP
Definition: amlcode.h:181
#define ACPI_DEBUG_PRINT(pl)
Definition: acoutput.h:475
#define AML_FIELD
Definition: amlcode.h:321
ACPI_OPERAND_OBJECT * AcpiNsGetAttachedObject(ACPI_NAMESPACE_NODE *Node)
Definition: nsobject.c:308
const ACPI_OPCODE_INFO * OpInfo
Definition: acstruct.h:119
#define AML_INDEX_FIELD_OP
Definition: amlcode.h:186
#define ACPI_EXT_ORIGIN_FROM_OPCODE
Definition: aclocal.h:1383
#define AML_METHOD_OP
Definition: amlcode.h:64
struct acpi_namespace_node * MethodNode
Definition: acstruct.h:116
Status
Definition: gdiplustypes.h:24
#define ACPI_PARSE_DISASSEMBLE
Definition: acparser.h:65
union acpi_operand_object * Operands[ACPI_OBJ_NUM_OPERANDS+1]
Definition: acstruct.h:105
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
ACPI_PARSE_COMMON char * Path
Definition: aclocal.h:1032
const char * AcpiUtGetTypeName(ACPI_OBJECT_TYPE Type)
Definition: utdecode.c:250
UINT16 Opcode
Definition: acstruct.h:78
ACPI_STATUS AcpiDsCreateBufferField(ACPI_PARSE_OBJECT *Op, ACPI_WALK_STATE *WalkState)
Definition: dsfield.c:165
#define ACPI_CAST_PTR(t, p)
Definition: actypes.h:544
unsigned char UINT8
#define AML_DATA_REGION_OP
Definition: amlcode.h:188
#define AE_OK
Definition: acexcep.h:97
UINT16 Flags
Definition: aclocal.h:873
#define ANOBJ_IS_EXTERNAL
Definition: aclocal.h:224

Referenced by AcpiDsInitCallbacks().