149{
158
159
161
162
165 {
167 }
168
171 {
174
176 }
177
179 "Opcode %X [%s] RequiredOperandTypes=%8.8X\n",
180 Opcode, OpInfo->Name, ArgTypes));
181
182
183
184
185
186
187
188
190 {
191 if (!StackPtr || !*StackPtr)
192 {
194 StackPtr));
195
197 }
198
199
200
201 ObjDesc = *StackPtr;
202
203
204
206 {
208
209
210
212
213
214
215
216
217
219 {
222 *StackPtr = ObjDesc;
224 }
225 break;
226
228
229
230
232
233
234
236 {
238 "Bad operand object type [0x%X]",
ObjectType));
239
241 }
242
244 {
245
246
248 {
250
252
254
261
263 "Operand is a Reference, Class [%s] %2.2X\n",
266 break;
267
268 default:
269
271 "Unknown Reference Class 0x%2.2X in %p",
273
275 }
276 }
277 break;
278
279 default:
280
281
282
285
287 }
288
289
290
293
294
295
296
297
298 switch (ThisArgType)
299 {
301
305 {
306
307
308
309
310 goto NextOperand;
311 }
312
313
314
315
316
318
327
328
329
330
331
333 {
334 goto NextOperand;
335 }
336
340 {
342 }
343 goto NextOperand;
344
346
347
348
349
350
351
355 {
356 goto NextOperand;
357 }
358 break;
359
360 default:
361
362
363
364 break;
365 }
366
367
368
369
372 {
374 }
375
376
377
378 ObjDesc = *StackPtr;
379
380
381
382
383 switch (ThisArgType)
384 {
385
386
387
388
390
391
392
394 break;
395
397
398
399
401 break;
402
404
405
406
408 break;
409
411
412
413
415 break;
416
418
419
420
422 break;
423
424
425
426
427
429
430
431
432
433
434
435
439 {
441 {
443 "Needed [Integer/String/Buffer], found [%s] %p",
445
447 }
448
450 }
451
452 if (ObjDesc != *StackPtr)
453 {
455 }
456 goto NextOperand;
457
459
460
461
462
463
466 {
468 {
470 "Needed [Integer/String/Buffer], found [%s] %p",
472
474 }
475
477 }
478
479 if (ObjDesc != *StackPtr)
480 {
482 }
483 goto NextOperand;
484
486
487
488
489
490
494 {
496 {
498 "Needed [Integer/String/Buffer], found [%s] %p",
500
502 }
503
505 }
506
507 if (ObjDesc != *StackPtr)
508 {
510 }
511 goto NextOperand;
512
514
515
516
517 switch (ObjDesc->
Common.Type)
518 {
522
523
524 break;
525
526 default:
528 "Needed [Integer/String/Buffer], found [%s] %p",
530
532 }
533 goto NextOperand;
534
536
537
538
539 switch (ObjDesc->
Common.Type)
540 {
543
544
545 break;
546
548
549
550
553 {
555 }
556
557 if (ObjDesc != *StackPtr)
558 {
560 }
561 break;
562
563 default:
565 "Needed [Integer/String/Buffer], found [%s] %p",
567
569 }
570 goto NextOperand;
571
573
574
575
576
577
578
579
580 switch (ObjDesc->
Common.Type)
581 {
586
587
588 break;
589
590 default:
591
593 "Needed [Buffer/String/Package/Reference], found [%s] %p",
595
597 }
598 goto NextOperand;
599
601
602
603
604 switch (ObjDesc->
Common.Type)
605 {
609
610
611 break;
612
613 default:
614
616 "Needed [Buffer/String/Package], found [%s] %p",
618
620 }
621 goto NextOperand;
622
624
625
626
627
628
629 switch (ObjDesc->
Common.Type)
630 {
633
634
635 break;
636
637 default:
638
640 "Needed [Region/Buffer], found [%s] %p",
642
644 }
645 goto NextOperand;
646
648
649
650
651 switch (ObjDesc->
Common.Type)
652 {
663
664
665 break;
666
667 default:
668
669 if (AcpiGbl_EnableInterpreterSlack)
670 {
671
672
673
674
675
676 break;
677 }
678
680 {
681
682
683 break;
684 }
685
687 "Needed Integer/Buffer/String/Package/Ref/Ddb]"
688 ", found [%s] %p",
690
692 }
693 goto NextOperand;
694
695 default:
696
697
698
700 "Internal - Unknown ARGI (required operand) type 0x%X",
701 ThisArgType));
702
704 }
705
706
707
708
709
711 TypeNeeded, (*StackPtr)->Common.Type, *StackPtr);
713 {
715 }
716
717NextOperand:
718
719
720
721
723 {
724 StackPtr--;
725 }
726 }
727
730
732}
#define AE_AML_BAD_OPCODE
#define ACPI_IMPLICIT_CONVERT_HEX
#define ACPI_GET_DESCRIPTOR_TYPE(d)
#define GET_CURRENT_ARG_TYPE(List)
#define INCREMENT_ARG_LIST(List)
ACPI_OPERAND_OBJECT * AcpiNsGetAttachedObject(ACPI_NAMESPACE_NODE *Node)
#define ACPI_DESC_TYPE_OPERAND
#define ACPI_DESC_TYPE_NAMED
#define ACPI_DEBUG_PRINT(pl)
#define ACPI_FUNCTION_TRACE_U32(a, b)
#define ACPI_DUMP_OPERANDS(a, b, c)
#define return_ACPI_STATUS(s)
const char * AcpiPsGetOpcodeName(UINT16 Opcode)
const ACPI_OPCODE_INFO * AcpiPsGetOpcodeInfo(UINT16 Opcode)
#define ACPI_TYPE_BUFFER_FIELD
#define ACPI_TYPE_LOCAL_BANK_FIELD
#define ACPI_TYPE_LOCAL_ALIAS
#define ACPI_TYPE_LOCAL_REGION_FIELD
#define ACPI_TYPE_DDB_HANDLE
#define ACPI_TYPE_PACKAGE
#define ACPI_TYPE_LOCAL_INDEX_FIELD
const char * AcpiUtGetReferenceName(ACPI_OPERAND_OBJECT *Object)
void AcpiUtRemoveReference(ACPI_OPERAND_OBJECT *Object)
BOOLEAN AcpiUtValidObjectType(ACPI_OBJECT_TYPE Type)
const char * AcpiUtGetObjectTypeName(ACPI_OPERAND_OBJECT *ObjDesc)
#define ACPI_IMPLICIT_CONVERSION
const char * AcpiUtGetDescriptorName(void *Object)
#define ARGI_BUFFER_OR_STRING
#define ARGI_INVALID_OPCODE
#define ARGI_REF_OR_STRING
#define ARGI_FIXED_TARGET
#define ARGI_REGION_OR_BUFFER
#define AML_CLASS_UNKNOWN
#define ARGI_STORE_TARGET
#define ARGI_SIMPLE_TARGET
ACPI_STATUS AcpiExConvertToBuffer(ACPI_OPERAND_OBJECT *ObjDesc, ACPI_OPERAND_OBJECT **ResultDesc)
ACPI_STATUS AcpiExConvertToInteger(ACPI_OPERAND_OBJECT *ObjDesc, ACPI_OPERAND_OBJECT **ResultDesc, UINT32 ImplicitConversion)
ACPI_STATUS AcpiExConvertToString(ACPI_OPERAND_OBJECT *ObjDesc, ACPI_OPERAND_OBJECT **ResultDesc, UINT32 Type)
ACPI_STATUS AcpiExResolveToValue(ACPI_OPERAND_OBJECT **StackPtr, ACPI_WALK_STATE *WalkState)
static ACPI_STATUS AcpiExCheckObjectType(ACPI_OBJECT_TYPE TypeNeeded, ACPI_OBJECT_TYPE ThisType, void *Object)
_In_ PVOID _In_ ULONG Opcode
ACPI_OBJECT_COMMON_HEADER UINT8 Class
union acpi_operand_object * Operands[ACPI_OBJ_NUM_OPERANDS+1]
ACPI_OBJECT_REFERENCE Reference
ACPI_OBJECT_COMMON Common