ReactOS  0.4.14-dev-297-g23e575c
dspkginit.c File Reference
#include "acpi.h"
#include "accommon.h"
#include "acnamesp.h"
#include "amlcode.h"
#include "acdispat.h"
#include "acinterp.h"
#include "acparser.h"
Include dependency graph for dspkginit.c:

Go to the source code of this file.

Macros

#define _COMPONENT   ACPI_NAMESPACE
 

Functions

static void AcpiDsResolvePackageElement (ACPI_OPERAND_OBJECT **Element)
 
ACPI_STATUS AcpiDsBuildInternalPackageObj (ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT *Op, UINT32 ElementCount, ACPI_OPERAND_OBJECT **ObjDescPtr)
 
ACPI_STATUS AcpiDsInitPackageElement (UINT8 ObjectType, ACPI_OPERAND_OBJECT *SourceObject, ACPI_GENERIC_STATE *State, void *Context)
 

Macro Definition Documentation

◆ _COMPONENT

#define _COMPONENT   ACPI_NAMESPACE

Definition at line 53 of file dspkginit.c.

Function Documentation

◆ AcpiDsBuildInternalPackageObj()

ACPI_STATUS AcpiDsBuildInternalPackageObj ( ACPI_WALK_STATE WalkState,
ACPI_PARSE_OBJECT Op,
UINT32  ElementCount,
ACPI_OPERAND_OBJECT **  ObjDescPtr 
)

Definition at line 94 of file dspkginit.c.

99 {
100  ACPI_PARSE_OBJECT *Arg;
102  ACPI_OPERAND_OBJECT *ObjDesc = NULL;
104  BOOLEAN ModuleLevelCode = FALSE;
105  UINT16 ReferenceCount;
106  UINT32 Index;
107  UINT32 i;
108 
109 
110  ACPI_FUNCTION_TRACE (DsBuildInternalPackageObj);
111 
112 
113  /* Check if we are executing module level code */
114 
115  if (WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL)
116  {
117  ModuleLevelCode = TRUE;
118  }
119 
120  /* Find the parent of a possibly nested package */
121 
122  Parent = Op->Common.Parent;
123  while ((Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
124  (Parent->Common.AmlOpcode == AML_VARIABLE_PACKAGE_OP))
125  {
126  Parent = Parent->Common.Parent;
127  }
128 
129  /*
130  * If we are evaluating a Named package object of the form:
131  * Name (xxxx, Package)
132  * the package object already exists, otherwise it must be created.
133  */
134  ObjDesc = *ObjDescPtr;
135  if (!ObjDesc)
136  {
138  *ObjDescPtr = ObjDesc;
139  if (!ObjDesc)
140  {
142  }
143 
144  ObjDesc->Package.Node = Parent->Common.Node;
145  }
146 
147  if (ObjDesc->Package.Flags & AOPOBJ_DATA_VALID) /* Just in case */
148  {
150  }
151 
152  /*
153  * Allocate the element array (array of pointers to the individual
154  * objects) if necessary. the count is based on the NumElements
155  * parameter. Add an extra pointer slot so that the list is always
156  * null terminated.
157  */
158  if (!ObjDesc->Package.Elements)
159  {
161  ((ACPI_SIZE) ElementCount + 1) * sizeof (void *));
162 
163  if (!ObjDesc->Package.Elements)
164  {
165  AcpiUtDeleteObjectDesc (ObjDesc);
167  }
168 
169  ObjDesc->Package.Count = ElementCount;
170  }
171 
172  /* First arg is element count. Second arg begins the initializer list */
173 
174  Arg = Op->Common.Value.Arg;
175  Arg = Arg->Common.Next;
176 
177  /*
178  * If we are executing module-level code, we will defer the
179  * full resolution of the package elements in order to support
180  * forward references from the elements. This provides
181  * compatibility with other ACPI implementations.
182  */
183  if (ModuleLevelCode)
184  {
185  ObjDesc->Package.AmlStart = WalkState->Aml;
186  ObjDesc->Package.AmlLength = 0;
187 
189  "%s: Deferring resolution of Package elements\n",
191  }
192 
193  /*
194  * Initialize the elements of the package, up to the NumElements count.
195  * Package is automatically padded with uninitialized (NULL) elements
196  * if NumElements is greater than the package list length. Likewise,
197  * Package is truncated if NumElements is less than the list length.
198  */
199  for (i = 0; Arg && (i < ElementCount); i++)
200  {
201  if (Arg->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP)
202  {
203  if (!Arg->Common.Node)
204  {
205  /*
206  * This is the case where an expression has returned a value.
207  * The use of expressions (TermArgs) within individual
208  * package elements is not supported by the AML interpreter,
209  * even though the ASL grammar supports it. Example:
210  *
211  * Name (INT1, 0x1234)
212  *
213  * Name (PKG3, Package () {
214  * Add (INT1, 0xAAAA0000)
215  * })
216  *
217  * 1) No known AML interpreter supports this type of construct
218  * 2) This fixes a fault if the construct is encountered
219  */
221  "Expressions within package elements are not supported"));
222 
223  /* Cleanup the return object, it is not needed */
224 
225  AcpiUtRemoveReference (WalkState->Results->Results.ObjDesc[0]);
227  }
228 
229  if (Arg->Common.Node->Type == ACPI_TYPE_METHOD)
230  {
231  /*
232  * A method reference "looks" to the parser to be a method
233  * invocation, so we special case it here
234  */
235  Arg->Common.AmlOpcode = AML_INT_NAMEPATH_OP;
237  WalkState, Arg, &ObjDesc->Package.Elements[i]);
238  }
239  else
240  {
241  /* This package element is already built, just get it */
242 
243  ObjDesc->Package.Elements[i] =
245  }
246  }
247  else
248  {
250  WalkState, Arg, &ObjDesc->Package.Elements[i]);
251  if (Status == AE_NOT_FOUND)
252  {
253  ACPI_ERROR ((AE_INFO, "%-48s", "****DS namepath not found"));
254  }
255 
256  if (!ModuleLevelCode)
257  {
258  /*
259  * Initialize this package element. This function handles the
260  * resolution of named references within the package.
261  * Forward references from module-level code are deferred
262  * until all ACPI tables are loaded.
263  */
265  NULL, &ObjDesc->Package.Elements[i]);
266  }
267  }
268 
269  if (*ObjDescPtr)
270  {
271  /* Existing package, get existing reference count */
272 
273  ReferenceCount = (*ObjDescPtr)->Common.ReferenceCount;
274  if (ReferenceCount > 1)
275  {
276  /* Make new element ref count match original ref count */
277  /* TBD: Probably need an AcpiUtAddReferences function */
278 
279  for (Index = 0; Index < ((UINT32) ReferenceCount - 1); Index++)
280  {
281  AcpiUtAddReference ((ObjDesc->Package.Elements[i]));
282  }
283  }
284  }
285 
286  Arg = Arg->Common.Next;
287  }
288 
289  /* Check for match between NumElements and actual length of PackageList */
290 
291  if (Arg)
292  {
293  /*
294  * NumElements was exhausted, but there are remaining elements in
295  * the PackageList. Truncate the package to NumElements.
296  *
297  * Note: technically, this is an error, from ACPI spec: "It is an
298  * error for NumElements to be less than the number of elements in
299  * the PackageList". However, we just print a message and no
300  * exception is returned. This provides compatibility with other
301  * ACPI implementations. Some firmware implementations will alter
302  * the NumElements on the fly, possibly creating this type of
303  * ill-formed package object.
304  */
305  while (Arg)
306  {
307  /*
308  * We must delete any package elements that were created earlier
309  * and are not going to be used because of the package truncation.
310  */
311  if (Arg->Common.Node)
312  {
315  Arg->Common.Node = NULL;
316  }
317 
318  /* Find out how many elements there really are */
319 
320  i++;
321  Arg = Arg->Common.Next;
322  }
323 
324  ACPI_INFO ((
325  "Actual Package length (%u) is larger than "
326  "NumElements field (%u), truncated",
327  i, ElementCount));
328  }
329  else if (i < ElementCount)
330  {
331  /*
332  * Arg list (elements) was exhausted, but we did not reach
333  * NumElements count.
334  *
335  * Note: this is not an error, the package is padded out
336  * with NULLs as per the ACPI specification.
337  */
339  "%s: Package List length (%u) smaller than NumElements "
340  "count (%u), padded with null elements\n",
341  ACPI_GET_FUNCTION_NAME, i, ElementCount));
342  }
343 
344  /* Module-level packages will be resolved later */
345 
346  if (!ModuleLevelCode)
347  {
348  ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
349  }
350 
351  Op->Common.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjDesc);
353 }
#define ACPI_EXCEPTION(plist)
Definition: acoutput.h:239
#define ACPI_DEBUG_PRINT_RAW(pl)
Definition: acoutput.h:476
void AcpiUtAddReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:746
ACPI_PARSE_OBJ_COMMON Common
Definition: aclocal.h:1078
#define ACPI_ALLOCATE_ZEROED(a)
Definition: actypes.h:385
#define TRUE
Definition: types.h:120
ACPI_GENERIC_STATE * Results
Definition: acstruct.h:122
ACPI_OBJECT_COMMON_HEADER ACPI_NAMESPACE_NODE * Node
Definition: acobject.h:160
#define AE_NO_MEMORY
Definition: acexcep.h:112
ACPI_OBJECT_PACKAGE Package
Definition: acobject.h:520
ACPI_STATE_COMMON union acpi_operand_object * ObjDesc[ACPI_RESULTS_FRAME_OBJ_NUM]
Definition: aclocal.h:779
void AcpiUtDeleteObjectDesc(ACPI_OPERAND_OBJECT *Object)
Definition: utobject.c:473
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:722
#define ACPI_DB_PARSE
Definition: acoutput.h:162
UINT32 ParseFlags
Definition: acstruct.h:95
UINT32 ACPI_STATUS
Definition: actypes.h:460
#define AML_VARIABLE_PACKAGE_OP
Definition: amlcode.h:63
#define AML_INT_NAMEPATH_OP
Definition: amlcode.h:205
#define ACPI_TYPE_PACKAGE
Definition: actypes.h:682
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int UINT32
unsigned char BOOLEAN
#define AE_INFO
Definition: acoutput.h:230
smooth NULL
Definition: ftsmooth.c:416
#define ACPI_TYPE_METHOD
Definition: actypes.h:686
static const UCHAR Index[8]
Definition: usbohci.c:18
#define AML_INT_RETURN_VALUE_OP
Definition: amlcode.h:211
#define AE_SUPPORT
Definition: acexcep.h:123
#define AE_NOT_FOUND
Definition: acexcep.h:113
#define ACPI_INFO(plist)
Definition: acoutput.h:237
#define ACPI_GET_FUNCTION_NAME
Definition: acgcc.h:67
Status
Definition: gdiplustypes.h:24
#define ACPI_DB_INFO
Definition: acoutput.h:153
ACPI_STATUS AcpiDsInitPackageElement(UINT8 ObjectType, ACPI_OPERAND_OBJECT *SourceObject, ACPI_GENERIC_STATE *State, void *Context)
Definition: dspkginit.c:369
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
#define ACPI_PARSE_MODULE_LEVEL
Definition: acparser.h:67
ACPI_RESULT_VALUES Results
Definition: aclocal.h:829
void AcpiUtRemoveReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:784
unsigned short UINT16
ACPI_STATUS AcpiDsBuildInternalObject(ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT *Op, ACPI_OPERAND_OBJECT **ObjDescPtr)
Definition: dsobject.c:72
#define ACPI_ERROR(plist)
Definition: acoutput.h:240
#define AOPOBJ_DATA_VALID
Definition: acobject.h:96
#define AcpiUtCreateInternalObject(t)
Definition: acutils.h:654
#define ACPI_CAST_PTR(t, p)
Definition: actypes.h:544
#define AE_OK
Definition: acexcep.h:97
#define AML_PACKAGE_OP
Definition: amlcode.h:62
union acpi_operand_object ** Elements
Definition: acobject.h:161
UINT8 * Aml
Definition: acstruct.h:91

Referenced by AcpiDsEvalDataObjectOperands().

◆ AcpiDsInitPackageElement()

ACPI_STATUS AcpiDsInitPackageElement ( UINT8  ObjectType,
ACPI_OPERAND_OBJECT SourceObject,
ACPI_GENERIC_STATE State,
void Context 
)

Definition at line 369 of file dspkginit.c.

374 {
375  ACPI_OPERAND_OBJECT **ElementPtr;
376 
377 
378  ACPI_FUNCTION_TRACE (DsInitPackageElement);
379 
380 
381  if (!SourceObject)
382  {
384  }
385 
386  /*
387  * The following code is a bit of a hack to workaround a (current)
388  * limitation of the ACPI_PKG_CALLBACK interface. We need a pointer
389  * to the location within the element array because a new object
390  * may be created and stored there.
391  */
392  if (Context)
393  {
394  /* A direct call was made to this function */
395 
396  ElementPtr = (ACPI_OPERAND_OBJECT **) Context;
397  }
398  else
399  {
400  /* Call came from AcpiUtWalkPackageTree */
401 
402  ElementPtr = State->Pkg.ThisTargetObj;
403  }
404 
405  /* We are only interested in reference objects/elements */
406 
407  if (SourceObject->Common.Type == ACPI_TYPE_LOCAL_REFERENCE)
408  {
409  /* Attempt to resolve the (named) reference to a namespace node */
410 
411  AcpiDsResolvePackageElement (ElementPtr);
412  }
413  else if (SourceObject->Common.Type == ACPI_TYPE_PACKAGE)
414  {
415  SourceObject->Package.Flags |= AOPOBJ_DATA_VALID;
416  }
417 
419 }
ACPI_OBJECT_PACKAGE Package
Definition: acobject.h:520
#define ACPI_TYPE_LOCAL_REFERENCE
Definition: actypes.h:710
#define ACPI_TYPE_PACKAGE
Definition: actypes.h:682
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
ACPI_OBJECT_COMMON Common
Definition: acobject.h:516
#define AOPOBJ_DATA_VALID
Definition: acobject.h:96
#define AE_OK
Definition: acexcep.h:97
static void AcpiDsResolvePackageElement(ACPI_OPERAND_OBJECT **Element)
Definition: dspkginit.c:436

Referenced by AcpiDsBuildInternalPackageObj(), and AcpiNsInitOnePackage().

◆ AcpiDsResolvePackageElement()

static void AcpiDsResolvePackageElement ( ACPI_OPERAND_OBJECT **  Element)
static

Definition at line 436 of file dspkginit.c.

438 {
440  ACPI_STATUS Status2;
441  ACPI_GENERIC_STATE ScopeInfo;
442  ACPI_OPERAND_OBJECT *Element = *ElementPtr;
443  ACPI_NAMESPACE_NODE *ResolvedNode;
444  ACPI_NAMESPACE_NODE *OriginalNode;
445  char *ExternalPath = "";
447 
448 
449  ACPI_FUNCTION_TRACE (DsResolvePackageElement);
450 
451 
452  /* Check if reference element is already resolved */
453 
454  if (Element->Reference.Resolved)
455  {
457  "%s: Package element is already resolved\n",
459 
460  return_VOID;
461  }
462 
463  /* Element must be a reference object of correct type */
464 
465  ScopeInfo.Scope.Node = Element->Reference.Node; /* Prefix node */
466 
467  Status = AcpiNsLookup (&ScopeInfo, (char *) Element->Reference.Aml,
470  NULL, &ResolvedNode);
471  if (ACPI_FAILURE (Status))
472  {
473  if ((Status == AE_NOT_FOUND) && AcpiGbl_IgnorePackageResolutionErrors)
474  {
475  /*
476  * Optionally be silent about the NOT_FOUND case for the referenced
477  * name. Although this is potentially a serious problem,
478  * it can generate a lot of noise/errors on platforms whose
479  * firmware carries around a bunch of unused Package objects.
480  * To disable these errors, set this global to TRUE:
481  * AcpiGbl_IgnorePackageResolutionErrors
482  *
483  * If the AML actually tries to use such a package, the unresolved
484  * element(s) will be replaced with NULL elements.
485  */
486 
487  /* Referenced name not found, set the element to NULL */
488 
489  AcpiUtRemoveReference (*ElementPtr);
490  *ElementPtr = NULL;
491  return_VOID;
492  }
493 
495  (char *) Element->Reference.Aml, NULL, &ExternalPath);
496 
498  "While resolving a named reference package element - %s",
499  ExternalPath));
500  if (ACPI_SUCCESS (Status2))
501  {
502  ACPI_FREE (ExternalPath);
503  }
504 
505  /* Could not resolve name, set the element to NULL */
506 
507  AcpiUtRemoveReference (*ElementPtr);
508  *ElementPtr = NULL;
509  return_VOID;
510  }
511  else if (ResolvedNode->Type == ACPI_TYPE_ANY)
512  {
513  /* Named reference not resolved, return a NULL package element */
514 
516  "Could not resolve named package element [%4.4s] in [%4.4s]",
517  ResolvedNode->Name.Ascii, ScopeInfo.Scope.Node->Name.Ascii));
518  *ElementPtr = NULL;
519  return_VOID;
520  }
521 
522  /*
523  * Special handling for Alias objects. We need ResolvedNode to point
524  * to the Alias target. This effectively "resolves" the alias.
525  */
526  if (ResolvedNode->Type == ACPI_TYPE_LOCAL_ALIAS)
527  {
528  ResolvedNode = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE,
529  ResolvedNode->Object);
530  }
531 
532  /* Update the reference object */
533 
534  Element->Reference.Resolved = TRUE;
535  Element->Reference.Node = ResolvedNode;
536  Type = Element->Reference.Node->Type;
537 
538  /*
539  * Attempt to resolve the node to a value before we insert it into
540  * the package. If this is a reference to a common data type,
541  * resolve it immediately. According to the ACPI spec, package
542  * elements can only be "data objects" or method references.
543  * Attempt to resolve to an Integer, Buffer, String or Package.
544  * If cannot, return the named reference (for things like Devices,
545  * Methods, etc.) Buffer Fields and Fields will resolve to simple
546  * objects (int/buf/str/pkg).
547  *
548  * NOTE: References to things like Devices, Methods, Mutexes, etc.
549  * will remain as named references. This behavior is not described
550  * in the ACPI spec, but it appears to be an oversight.
551  */
552  OriginalNode = ResolvedNode;
553  Status = AcpiExResolveNodeToValue (&ResolvedNode, NULL);
554  if (ACPI_FAILURE (Status))
555  {
556  return_VOID;
557  }
558 
559  switch (Type)
560  {
561  /*
562  * These object types are a result of named references, so we will
563  * leave them as reference objects. In other words, these types
564  * have no intrinsic "value".
565  */
566  case ACPI_TYPE_DEVICE:
567  case ACPI_TYPE_THERMAL:
568  case ACPI_TYPE_METHOD:
569  break;
570 
571  case ACPI_TYPE_MUTEX:
572  case ACPI_TYPE_POWER:
573  case ACPI_TYPE_PROCESSOR:
574  case ACPI_TYPE_EVENT:
575  case ACPI_TYPE_REGION:
576 
577  /* AcpiExResolveNodeToValue gave these an extra reference */
578 
579  AcpiUtRemoveReference (OriginalNode->Object);
580  break;
581 
582  default:
583  /*
584  * For all other types - the node was resolved to an actual
585  * operand object with a value, return the object. Remove
586  * a reference on the existing object.
587  */
588  AcpiUtRemoveReference (Element);
589  *ElementPtr = (ACPI_OPERAND_OBJECT *) ResolvedNode;
590  break;
591  }
592 
593  return_VOID;
594 }
#define ACPI_EXCEPTION(plist)
Definition: acoutput.h:239
#define ACPI_DEBUG_PRINT_RAW(pl)
Definition: acoutput.h:476
#define ACPI_NS_SEARCH_PARENT
Definition: acnamesp.h:63
#define ACPI_FREE(a)
Definition: actypes.h:386
union acpi_operand_object * Object
Definition: aclocal.h:187
#define ACPI_TYPE_EVENT
Definition: actypes.h:685
#define TRUE
Definition: types.h:120
#define ACPI_TYPE_LOCAL_ALIAS
Definition: actypes.h:711
#define ACPI_SUCCESS(a)
Definition: acexcep.h:94
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:691
Type
Definition: Type.h:6
#define ACPI_TYPE_POWER
Definition: actypes.h:689
char Ascii[4]
Definition: actbl.h:394
#define ACPI_DB_PARSE
Definition: acoutput.h:162
UINT32 ACPI_STATUS
Definition: actypes.h:460
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
ACPI_STATUS AcpiExResolveNodeToValue(ACPI_NAMESPACE_NODE **ObjectPtr, ACPI_WALK_STATE *WalkState)
Definition: exresnte.c:82
#define ACPI_NS_DONT_OPEN_SCOPE
Definition: acnamesp.h:64
#define AE_INFO
Definition: acoutput.h:230
smooth NULL
Definition: ftsmooth.c:416
ACPI_NAME_UNION Name
Definition: aclocal.h:191
ACPI_STATUS AcpiNsExternalizeName(UINT32 InternalNameLength, const char *InternalName, UINT32 *ConvertedNameLength, char **ConvertedName)
Definition: nsutils.c:470
UINT32 ACPI_OBJECT_TYPE
Definition: actypes.h:676
ACPI_OBJECT_REFERENCE Reference
Definition: acobject.h:537
#define ACPI_TYPE_METHOD
Definition: actypes.h:686
#define ACPI_UINT32_MAX
Definition: actypes.h:66
#define AE_NOT_FOUND
Definition: acexcep.h:113
#define return_VOID
Definition: acoutput.h:495
#define ACPI_TYPE_ANY
Definition: actypes.h:678
#define ACPI_TYPE_DEVICE
Definition: actypes.h:684
#define ACPI_TYPE_PROCESSOR
Definition: actypes.h:690
#define ACPI_GET_FUNCTION_NAME
Definition: acgcc.h:67
Status
Definition: gdiplustypes.h:24
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
ACPI_STATE_COMMON ACPI_NAMESPACE_NODE * Node
Definition: aclocal.h:740
ACPI_NAMESPACE_NODE * Node
Definition: acobject.h:444
void AcpiUtRemoveReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:784
#define ACPI_TYPE_MUTEX
Definition: actypes.h:687
#define ACPI_ERROR(plist)
Definition: acoutput.h:240
#define ACPI_TYPE_REGION
Definition: actypes.h:688
#define ACPI_CAST_PTR(t, p)
Definition: actypes.h:544
ACPI_SCOPE_STATE Scope
Definition: aclocal.h:825

Referenced by AcpiDsInitPackageElement().