ReactOS 0.4.15-dev-8344-g0574987
exstore.c File Reference
#include "acpi.h"
#include "accommon.h"
#include "acdispat.h"
#include "acinterp.h"
#include "amlcode.h"
#include "acnamesp.h"
Include dependency graph for exstore.c:

Go to the source code of this file.

Macros

#define _COMPONENT   ACPI_EXECUTER
 

Functions

static ACPI_STATUS AcpiExStoreObjectToIndex (ACPI_OPERAND_OBJECT *ValDesc, ACPI_OPERAND_OBJECT *DestDesc, ACPI_WALK_STATE *WalkState)
 
static ACPI_STATUS AcpiExStoreDirectToNode (ACPI_OPERAND_OBJECT *SourceDesc, ACPI_NAMESPACE_NODE *Node, ACPI_WALK_STATE *WalkState)
 
ACPI_STATUS AcpiExStore (ACPI_OPERAND_OBJECT *SourceDesc, ACPI_OPERAND_OBJECT *DestDesc, ACPI_WALK_STATE *WalkState)
 
ACPI_STATUS AcpiExStoreObjectToNode (ACPI_OPERAND_OBJECT *SourceDesc, ACPI_NAMESPACE_NODE *Node, ACPI_WALK_STATE *WalkState, UINT8 ImplicitConversion)
 

Macro Definition Documentation

◆ _COMPONENT

#define _COMPONENT   ACPI_EXECUTER

Definition at line 52 of file exstore.c.

Function Documentation

◆ AcpiExStore()

ACPI_STATUS AcpiExStore ( ACPI_OPERAND_OBJECT SourceDesc,
ACPI_OPERAND_OBJECT DestDesc,
ACPI_WALK_STATE WalkState 
)

Definition at line 91 of file exstore.c.

95{
97 ACPI_OPERAND_OBJECT *RefDesc = DestDesc;
98
99
100 ACPI_FUNCTION_TRACE_PTR (ExStore, DestDesc);
101
102
103 /* Validate parameters */
104
105 if (!SourceDesc || !DestDesc)
106 {
107 ACPI_ERROR ((AE_INFO, "Null parameter"));
109 }
110
111 /* DestDesc can be either a namespace node or an ACPI object */
112
114 {
115 /*
116 * Dest is a namespace node,
117 * Storing an object into a Named node.
118 */
119 Status = AcpiExStoreObjectToNode (SourceDesc,
120 (ACPI_NAMESPACE_NODE *) DestDesc, WalkState,
122
124 }
125
126 /* Destination object must be a Reference or a Constant object */
127
128 switch (DestDesc->Common.Type)
129 {
131
132 break;
133
135
136 /* Allow stores to Constants -- a Noop as per ACPI spec */
137
138 if (DestDesc->Common.Flags & AOPOBJ_AML_CONSTANT)
139 {
141 }
142
144
145 default:
146
147 /* Destination is not a Reference object */
148
150 "Target is not a Reference or Constant object - [%s] %p",
151 AcpiUtGetObjectTypeName (DestDesc), DestDesc));
152
154 }
155
156 /*
157 * Examine the Reference class. These cases are handled:
158 *
159 * 1) Store to Name (Change the object associated with a name)
160 * 2) Store to an indexed area of a Buffer or Package
161 * 3) Store to a Method Local or Arg
162 * 4) Store to the debug object
163 */
164 switch (RefDesc->Reference.Class)
165 {
167
168 /* Storing an object into a Name "container" */
169
170 Status = AcpiExStoreObjectToNode (SourceDesc,
171 RefDesc->Reference.Object,
172 WalkState, ACPI_IMPLICIT_CONVERSION);
173 break;
174
176
177 /* Storing to an Index (pointer into a packager or buffer) */
178
179 Status = AcpiExStoreObjectToIndex (SourceDesc, RefDesc, WalkState);
180 break;
181
184
185 /* Store to a method local/arg */
186
188 RefDesc->Reference.Value, SourceDesc, WalkState);
189 break;
190
192 /*
193 * Storing to the Debug object causes the value stored to be
194 * displayed and otherwise has no effect -- see ACPI Specification
195 */
197 "**** Write to Debug Object: Object %p [%s] ****:\n\n",
198 SourceDesc, AcpiUtGetObjectTypeName (SourceDesc)));
199
200 ACPI_DEBUG_OBJECT (SourceDesc, 0, 0);
201 break;
202
203 default:
204
205 ACPI_ERROR ((AE_INFO, "Unknown Reference Class 0x%2.2X",
206 RefDesc->Reference.Class));
207 ACPI_DUMP_ENTRY (RefDesc, ACPI_LV_INFO);
208
210 break;
211 }
212
214}
#define AE_AML_NO_OPERAND
Definition: acexcep.h:181
#define AE_AML_INTERNAL
Definition: acexcep.h:194
#define AE_AML_OPERAND_TYPE
Definition: acexcep.h:182
#define AE_OK
Definition: acexcep.h:97
#define ACPI_GET_DESCRIPTOR_TYPE(d)
Definition: acmacros.h:414
#define ACPI_DESC_TYPE_NAMED
Definition: acobject.h:577
@ ACPI_REFCLASS_ARG
Definition: acobject.h:460
@ ACPI_REFCLASS_INDEX
Definition: acobject.h:462
@ ACPI_REFCLASS_LOCAL
Definition: acobject.h:459
@ ACPI_REFCLASS_REFOF
Definition: acobject.h:461
@ ACPI_REFCLASS_DEBUG
Definition: acobject.h:465
#define AOPOBJ_AML_CONSTANT
Definition: acobject.h:94
#define ACPI_DEBUG_PRINT(pl)
Definition: acoutput.h:475
#define ACPI_LV_INFO
Definition: acoutput.h:90
#define ACPI_DB_EXEC
Definition: acoutput.h:165
#define ACPI_FUNCTION_TRACE_PTR(a, b)
Definition: acoutput.h:481
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_ERROR(plist)
Definition: acoutput.h:240
#define ACPI_DEBUG_OBJECT(obj, l, i)
Definition: acoutput.h:244
#define AE_INFO
Definition: acoutput.h:230
#define ACPI_DUMP_ENTRY(a, b)
Definition: acoutput.h:487
#define ACPI_TYPE_LOCAL_REFERENCE
Definition: actypes.h:719
#define ACPI_TYPE_INTEGER
Definition: actypes.h:688
UINT32 ACPI_STATUS
Definition: actypes.h:460
#define ACPI_FALLTHROUGH
Definition: actypes.h:1466
const char * AcpiUtGetObjectTypeName(ACPI_OPERAND_OBJECT *ObjDesc)
Definition: utdecode.c:264
#define ACPI_IMPLICIT_CONVERSION
Definition: acutils.h:145
ACPI_STATUS AcpiDsStoreObjectToLocal(UINT8 Type, UINT32 Index, ACPI_OPERAND_OBJECT *ObjDesc, ACPI_WALK_STATE *WalkState)
Definition: dsmthdat.c:585
ACPI_STATUS AcpiExStoreObjectToNode(ACPI_OPERAND_OBJECT *SourceDesc, ACPI_NAMESPACE_NODE *Node, ACPI_WALK_STATE *WalkState, UINT8 ImplicitConversion)
Definition: exstore.c:412
static ACPI_STATUS AcpiExStoreObjectToIndex(ACPI_OPERAND_OBJECT *ValDesc, ACPI_OPERAND_OBJECT *DestDesc, ACPI_WALK_STATE *WalkState)
Definition: exstore.c:232
Status
Definition: gdiplustypes.h:25
ACPI_OBJECT_COMMON_HEADER UINT8 Class
Definition: acobject.h:443
ACPI_OBJECT_REFERENCE Reference
Definition: acobject.h:540
ACPI_OBJECT_COMMON Common
Definition: acobject.h:519

Referenced by AcpiExLoadTableOp(), AcpiExOpcode_1A_0T_1R(), AcpiExOpcode_1A_1T_1R(), AcpiExOpcode_2A_1T_1R(), AcpiExOpcode_2A_2T_1R(), and AcpiExOpcode_3A_1T_1R().

◆ AcpiExStoreDirectToNode()

static ACPI_STATUS AcpiExStoreDirectToNode ( ACPI_OPERAND_OBJECT SourceDesc,
ACPI_NAMESPACE_NODE Node,
ACPI_WALK_STATE WalkState 
)
static

Definition at line 613 of file exstore.c.

617{
619 ACPI_OPERAND_OBJECT *NewDesc;
620
621
622 ACPI_FUNCTION_TRACE (ExStoreDirectToNode);
623
624
626 "Storing [%s] (%p) directly into node [%s] (%p)"
627 " with no implicit conversion\n",
628 AcpiUtGetObjectTypeName (SourceDesc), SourceDesc,
629 AcpiUtGetTypeName (Node->Type), Node));
630
631 /* Copy the source object to a new object */
632
633 Status = AcpiUtCopyIobjectToIobject (SourceDesc, &NewDesc, WalkState);
634 if (ACPI_FAILURE (Status))
635 {
637 }
638
639 /* Attach the new object to the node */
640
641 Status = AcpiNsAttachObject (Node, NewDesc, NewDesc->Common.Type);
642 AcpiUtRemoveReference (NewDesc);
644}
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
ACPI_STATUS AcpiNsAttachObject(ACPI_NAMESPACE_NODE *Node, ACPI_OPERAND_OBJECT *Object, ACPI_OBJECT_TYPE Type)
Definition: nsobject.c:76
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
const char * AcpiUtGetTypeName(ACPI_OBJECT_TYPE Type)
Definition: utdecode.c:250
void AcpiUtRemoveReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:790
ACPI_STATUS AcpiUtCopyIobjectToIobject(ACPI_OPERAND_OBJECT *SourceDesc, ACPI_OPERAND_OBJECT **DestDesc, ACPI_WALK_STATE *WalkState)
Definition: utcopy.c:1037
Definition: dlist.c:348

Referenced by AcpiExStoreObjectToNode().

◆ AcpiExStoreObjectToIndex()

static ACPI_STATUS AcpiExStoreObjectToIndex ( ACPI_OPERAND_OBJECT ValDesc,
ACPI_OPERAND_OBJECT DestDesc,
ACPI_WALK_STATE WalkState 
)
static

Definition at line 232 of file exstore.c.

236{
238 ACPI_OPERAND_OBJECT *ObjDesc;
239 ACPI_OPERAND_OBJECT *NewDesc;
240 UINT8 Value = 0;
241 UINT32 i;
242
243
244 ACPI_FUNCTION_TRACE (ExStoreObjectToIndex);
245
246
247 /*
248 * Destination must be a reference pointer, and
249 * must point to either a buffer or a package
250 */
251 switch (IndexDesc->Reference.TargetType)
252 {
254 /*
255 * Storing to a package element. Copy the object and replace
256 * any existing object with the new object. No implicit
257 * conversion is performed.
258 *
259 * The object at *(IndexDesc->Reference.Where) is the
260 * element within the package that is to be modified.
261 * The parent package object is at IndexDesc->Reference.Object
262 */
263 ObjDesc = *(IndexDesc->Reference.Where);
264
265 if (SourceDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE &&
266 SourceDesc->Reference.Class == ACPI_REFCLASS_TABLE)
267 {
268 /* This is a DDBHandle, just add a reference to it */
269
270 AcpiUtAddReference (SourceDesc);
271 NewDesc = SourceDesc;
272 }
273 else
274 {
275 /* Normal object, copy it */
276
278 SourceDesc, &NewDesc, WalkState);
279 if (ACPI_FAILURE (Status))
280 {
282 }
283 }
284
285 if (ObjDesc)
286 {
287 /* Decrement reference count by the ref count of the parent package */
288
289 for (i = 0;
291 IndexDesc->Reference.Object)->Common.ReferenceCount;
292 i++)
293 {
294 AcpiUtRemoveReference (ObjDesc);
295 }
296 }
297
298 *(IndexDesc->Reference.Where) = NewDesc;
299
300 /* Increment ref count by the ref count of the parent package-1 */
301
302 for (i = 1;
304 IndexDesc->Reference.Object)->Common.ReferenceCount;
305 i++)
306 {
307 AcpiUtAddReference (NewDesc);
308 }
309
310 break;
311
313 /*
314 * Store into a Buffer or String (not actually a real BufferField)
315 * at a location defined by an Index.
316 *
317 * The first 8-bit element of the source object is written to the
318 * 8-bit Buffer location defined by the Index destination object,
319 * according to the ACPI 2.0 specification.
320 */
321
322 /*
323 * Make sure the target is a Buffer or String. An error should
324 * not happen here, since the ReferenceObject was constructed
325 * by the INDEX_OP code.
326 */
327 ObjDesc = IndexDesc->Reference.Object;
328 if ((ObjDesc->Common.Type != ACPI_TYPE_BUFFER) &&
329 (ObjDesc->Common.Type != ACPI_TYPE_STRING))
330 {
332 }
333
334 /*
335 * The assignment of the individual elements will be slightly
336 * different for each source type.
337 */
338 switch (SourceDesc->Common.Type)
339 {
341
342 /* Use the least-significant byte of the integer */
343
344 Value = (UINT8) (SourceDesc->Integer.Value);
345 break;
346
347 case ACPI_TYPE_BUFFER:
348 case ACPI_TYPE_STRING:
349
350 /* Note: Takes advantage of common string/buffer fields */
351
352 Value = SourceDesc->Buffer.Pointer[0];
353 break;
354
355 default:
356
357 /* All other types are invalid */
358
360 "Source must be type [Integer/Buffer/String], found [%s]",
361 AcpiUtGetObjectTypeName (SourceDesc)));
363 }
364
365 /* Store the source value into the target buffer byte */
366
367 ObjDesc->Buffer.Pointer[IndexDesc->Reference.Value] = Value;
368 break;
369
370 default:
372 "Target is not of type [Package/BufferField]"));
374 break;
375 }
376
378}
unsigned char UINT8
unsigned int UINT32
#define AE_AML_TARGET_TYPE
Definition: acexcep.h:214
@ ACPI_REFCLASS_TABLE
Definition: acobject.h:463
#define ACPI_TYPE_BUFFER_FIELD
Definition: actypes.h:701
#define ACPI_TYPE_STRING
Definition: actypes.h:689
#define ACPI_TYPE_BUFFER
Definition: actypes.h:690
#define ACPI_TYPE_PACKAGE
Definition: actypes.h:691
void AcpiUtAddReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:752
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_BUFFER Buffer
Definition: acobject.h:522
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413

Referenced by AcpiExStore().

◆ AcpiExStoreObjectToNode()

ACPI_STATUS AcpiExStoreObjectToNode ( ACPI_OPERAND_OBJECT SourceDesc,
ACPI_NAMESPACE_NODE Node,
ACPI_WALK_STATE WalkState,
UINT8  ImplicitConversion 
)

Definition at line 412 of file exstore.c.

417{
419 ACPI_OPERAND_OBJECT *TargetDesc;
420 ACPI_OPERAND_OBJECT *NewDesc;
421 ACPI_OBJECT_TYPE TargetType;
422
423
424 ACPI_FUNCTION_TRACE_PTR (ExStoreObjectToNode, SourceDesc);
425
426
427 /* Get current type of the node, and object attached to Node */
428
429 TargetType = AcpiNsGetType (Node);
430 TargetDesc = AcpiNsGetAttachedObject (Node);
431
432 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Storing %p [%s] to node %p [%s]\n",
433 SourceDesc, AcpiUtGetObjectTypeName (SourceDesc),
434 Node, AcpiUtGetTypeName (TargetType)));
435
436 /* Only limited target types possible for everything except CopyObject */
437
438 if (WalkState->Opcode != AML_COPY_OBJECT_OP)
439 {
440 /*
441 * Only CopyObject allows all object types to be overwritten. For
442 * TargetRef(s), there are restrictions on the object types that
443 * are allowed.
444 *
445 * Allowable operations/typing for Store:
446 *
447 * 1) Simple Store
448 * Integer --> Integer (Named/Local/Arg)
449 * String --> String (Named/Local/Arg)
450 * Buffer --> Buffer (Named/Local/Arg)
451 * Package --> Package (Named/Local/Arg)
452 *
453 * 2) Store with implicit conversion
454 * Integer --> String or Buffer (Named)
455 * String --> Integer or Buffer (Named)
456 * Buffer --> Integer or String (Named)
457 */
458 switch (TargetType)
459 {
461 /*
462 * Here, can only store a package to an existing package.
463 * Storing a package to a Local/Arg is OK, and handled
464 * elsewhere.
465 */
466 if (WalkState->Opcode == AML_STORE_OP)
467 {
468 if (SourceDesc->Common.Type != ACPI_TYPE_PACKAGE)
469 {
471 "Cannot assign type [%s] to [Package] "
472 "(source must be type Pkg)",
473 AcpiUtGetObjectTypeName (SourceDesc)));
474
476 }
477 break;
478 }
479
481
482 case ACPI_TYPE_DEVICE:
483 case ACPI_TYPE_EVENT:
484 case ACPI_TYPE_MUTEX:
485 case ACPI_TYPE_REGION:
486 case ACPI_TYPE_POWER:
489
491 "Target must be [Buffer/Integer/String/Reference]"
492 ", found [%s] (%4.4s)",
493 AcpiUtGetTypeName (Node->Type), Node->Name.Ascii));
494
496
497 default:
498 break;
499 }
500 }
501
502 /*
503 * Resolve the source object to an actual value
504 * (If it is a reference object)
505 */
506 Status = AcpiExResolveObject (&SourceDesc, TargetType, WalkState);
507 if (ACPI_FAILURE (Status))
508 {
510 }
511
512 /* Do the actual store operation */
513
514 switch (TargetType)
515 {
516 /*
517 * The simple data types all support implicit source operand
518 * conversion before the store.
519 */
521 case ACPI_TYPE_STRING:
522 case ACPI_TYPE_BUFFER:
523
524 if ((WalkState->Opcode == AML_COPY_OBJECT_OP) ||
525 !ImplicitConversion)
526 {
527 /*
528 * However, CopyObject and Stores to ArgX do not perform
529 * an implicit conversion, as per the ACPI specification.
530 * A direct store is performed instead.
531 */
532 Status = AcpiExStoreDirectToNode (SourceDesc, Node, WalkState);
533 break;
534 }
535
536 /* Store with implicit source operand conversion support */
537
538 Status = AcpiExStoreObjectToObject (SourceDesc, TargetDesc,
539 &NewDesc, WalkState);
540 if (ACPI_FAILURE (Status))
541 {
543 }
544
545 if (NewDesc != TargetDesc)
546 {
547 /*
548 * Store the new NewDesc as the new value of the Name, and set
549 * the Name's type to that of the value being stored in it.
550 * SourceDesc reference count is incremented by AttachObject.
551 *
552 * Note: This may change the type of the node if an explicit
553 * store has been performed such that the node/object type
554 * has been changed.
555 */
557 Node, NewDesc, NewDesc->Common.Type);
558
560 "Store type [%s] into [%s] via Convert/Attach\n",
561 AcpiUtGetObjectTypeName (SourceDesc),
562 AcpiUtGetObjectTypeName (NewDesc)));
563 }
564 break;
565
570 /*
571 * For all fields, always write the source data to the target
572 * field. Any required implicit source operand conversion is
573 * performed in the function below as necessary. Note, field
574 * objects must retain their original type permanently.
575 */
576 Status = AcpiExWriteDataToField (SourceDesc, TargetDesc,
577 &WalkState->ResultObj);
578 break;
579
580 default:
581 /*
582 * CopyObject operator: No conversions for all other types.
583 * Instead, directly store a copy of the source object.
584 *
585 * This is the ACPI spec-defined behavior for the CopyObject
586 * operator. (Note, for this default case, all normal
587 * Store/Target operations exited above with an error).
588 */
589 Status = AcpiExStoreDirectToNode (SourceDesc, Node, WalkState);
590 break;
591 }
592
594}
ACPI_OPERAND_OBJECT * AcpiNsGetAttachedObject(ACPI_NAMESPACE_NODE *Node)
Definition: nsobject.c:308
ACPI_OBJECT_TYPE AcpiNsGetType(ACPI_NAMESPACE_NODE *Node)
Definition: nsutils.c:120
#define ACPI_TYPE_LOCAL_BANK_FIELD
Definition: actypes.h:717
#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_REGION
Definition: actypes.h:697
#define ACPI_TYPE_LOCAL_REGION_FIELD
Definition: actypes.h:716
#define ACPI_TYPE_POWER
Definition: actypes.h:698
#define ACPI_TYPE_DEVICE
Definition: actypes.h:693
#define ACPI_TYPE_LOCAL_INDEX_FIELD
Definition: actypes.h:718
#define ACPI_TYPE_THERMAL
Definition: actypes.h:700
#define AML_COPY_OBJECT_OP
Definition: amlcode.h:131
#define AML_STORE_OP
Definition: amlcode.h:88
ACPI_STATUS AcpiExWriteDataToField(ACPI_OPERAND_OBJECT *SourceDesc, ACPI_OPERAND_OBJECT *ObjDesc, ACPI_OPERAND_OBJECT **ResultDesc)
Definition: exfield.c:317
static ACPI_STATUS AcpiExStoreDirectToNode(ACPI_OPERAND_OBJECT *SourceDesc, ACPI_NAMESPACE_NODE *Node, ACPI_WALK_STATE *WalkState)
Definition: exstore.c:613
ACPI_STATUS AcpiExStoreObjectToObject(ACPI_OPERAND_OBJECT *SourceDesc, ACPI_OPERAND_OBJECT *DestDesc, ACPI_OPERAND_OBJECT **NewDesc, ACPI_WALK_STATE *WalkState)
Definition: exstoren.c:199
ACPI_STATUS AcpiExResolveObject(ACPI_OPERAND_OBJECT **SourceDescPtr, ACPI_OBJECT_TYPE TargetType, ACPI_WALK_STATE *WalkState)
Definition: exstoren.c:71
union acpi_operand_object * ResultObj
Definition: acstruct.h:121
UINT16 Opcode
Definition: acstruct.h:78

Referenced by AcpiDsStoreObjectToLocal(), and AcpiExStore().