ReactOS 0.4.15-dev-7934-g1dc8d80
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{
102 ACPI_OPERAND_OBJECT *ObjDesc = NULL;
104 BOOLEAN ModuleLevelCode = FALSE;
105 UINT16 ReferenceCount;
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
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}
unsigned short UINT16
unsigned char BOOLEAN
unsigned int UINT32
#define AE_SUPPORT
Definition: acexcep.h:123
#define AE_NOT_FOUND
Definition: acexcep.h:113
#define AE_NO_MEMORY
Definition: acexcep.h:112
#define AE_OK
Definition: acexcep.h:97
#define ACPI_GET_FUNCTION_NAME
Definition: acgcc.h:67
#define AOPOBJ_DATA_VALID
Definition: acobject.h:96
#define ACPI_EXCEPTION(plist)
Definition: acoutput.h:239
#define ACPI_DB_PARSE
Definition: acoutput.h:162
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
#define ACPI_ERROR(plist)
Definition: acoutput.h:240
#define AE_INFO
Definition: acoutput.h:230
#define ACPI_INFO(plist)
Definition: acoutput.h:237
#define ACPI_DEBUG_PRINT_RAW(pl)
Definition: acoutput.h:476
#define ACPI_DB_INFO
Definition: acoutput.h:153
#define ACPI_PARSE_MODULE_LEVEL
Definition: acparser.h:67
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx 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:732
UINT32 ACPI_STATUS
Definition: actypes.h:460
#define ACPI_CAST_PTR(t, p)
Definition: actypes.h:544
#define ACPI_ALLOCATE_ZEROED(a)
Definition: actypes.h:385
#define ACPI_TYPE_PACKAGE
Definition: actypes.h:691
#define ACPI_TYPE_METHOD
Definition: actypes.h:695
#define AcpiUtCreateInternalObject(t)
Definition: acutils.h:681
void AcpiUtRemoveReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:790
void AcpiUtDeleteObjectDesc(ACPI_OPERAND_OBJECT *Object)
Definition: utobject.c:473
void AcpiUtAddReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:752
#define AML_VARIABLE_PACKAGE_OP
Definition: amlcode.h:63
#define AML_PACKAGE_OP
Definition: amlcode.h:62
#define AML_INT_NAMEPATH_OP
Definition: amlcode.h:205
#define AML_INT_RETURN_VALUE_OP
Definition: amlcode.h:211
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
ACPI_STATUS AcpiDsBuildInternalObject(ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT *Op, ACPI_OPERAND_OBJECT **ObjDescPtr)
Definition: dsobject.c:72
ACPI_STATUS AcpiDsInitPackageElement(UINT8 ObjectType, ACPI_OPERAND_OBJECT *SourceObject, ACPI_GENERIC_STATE *State, void *Context)
Definition: dspkginit.c:369
Status
Definition: gdiplustypes.h:25
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
ACPI_OBJECT_COMMON_HEADER ACPI_NAMESPACE_NODE * Node
Definition: acobject.h:160
union acpi_operand_object ** Elements
Definition: acobject.h:161
ACPI_STATE_COMMON union acpi_operand_object * ObjDesc[ACPI_RESULTS_FRAME_OBJ_NUM]
Definition: aclocal.h:779
UINT8 * Aml
Definition: acstruct.h:91
ACPI_GENERIC_STATE * Results
Definition: acstruct.h:122
UINT32 ParseFlags
Definition: acstruct.h:95
ACPI_RESULT_VALUES Results
Definition: aclocal.h:829
ACPI_OBJECT_PACKAGE Package
Definition: acobject.h:523
ACPI_PARSE_OBJ_COMMON Common
Definition: aclocal.h:1078
_In_ WDFCOLLECTION _In_ ULONG Index

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}
#define ACPI_TYPE_LOCAL_REFERENCE
Definition: actypes.h:719
static void AcpiDsResolvePackageElement(ACPI_OPERAND_OBJECT **Element)
Definition: dspkginit.c:436
ACPI_OBJECT_COMMON Common
Definition: acobject.h:519

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
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;
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;
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;
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 {
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:
568 case ACPI_TYPE_METHOD:
569 break;
570
571 case ACPI_TYPE_MUTEX:
572 case ACPI_TYPE_POWER:
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
594}
Type
Definition: Type.h:7
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
#define ACPI_SUCCESS(a)
Definition: acexcep.h:94
@ ACPI_IMODE_EXECUTE
Definition: aclocal.h:169
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:328
ACPI_STATUS AcpiNsExternalizeName(UINT32 InternalNameLength, const char *InternalName, UINT32 *ConvertedNameLength, char **ConvertedName)
Definition: nsutils.c:470
#define ACPI_NS_DONT_OPEN_SCOPE
Definition: acnamesp.h:64
#define ACPI_NS_SEARCH_PARENT
Definition: acnamesp.h:63
#define return_VOID
Definition: acoutput.h:495
#define ACPI_TYPE_EVENT
Definition: actypes.h:694
#define ACPI_TYPE_PROCESSOR
Definition: actypes.h:699
UINT32 ACPI_OBJECT_TYPE
Definition: actypes.h:685
#define ACPI_TYPE_MUTEX
Definition: actypes.h:696
#define ACPI_TYPE_LOCAL_ALIAS
Definition: actypes.h:720
#define ACPI_TYPE_REGION
Definition: actypes.h:697
#define ACPI_FREE(a)
Definition: actypes.h:386
#define ACPI_TYPE_POWER
Definition: actypes.h:698
#define ACPI_TYPE_ANY
Definition: actypes.h:687
#define ACPI_TYPE_DEVICE
Definition: actypes.h:693
#define ACPI_UINT32_MAX
Definition: actypes.h:66
#define ACPI_TYPE_THERMAL
Definition: actypes.h:700
ACPI_STATUS AcpiExResolveNodeToValue(ACPI_NAMESPACE_NODE **ObjectPtr, ACPI_WALK_STATE *WalkState)
Definition: exresnte.c:82
union acpi_operand_object * Object
Definition: aclocal.h:187
ACPI_NAME_UNION Name
Definition: aclocal.h:191
ACPI_NAMESPACE_NODE * Node
Definition: acobject.h:447
ACPI_STATE_COMMON ACPI_NAMESPACE_NODE * Node
Definition: aclocal.h:740
ACPI_SCOPE_STATE Scope
Definition: aclocal.h:825
char Ascii[4]
Definition: actbl.h:394
ACPI_OBJECT_REFERENCE Reference
Definition: acobject.h:540

Referenced by AcpiDsInitPackageElement().