qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 for-2.3 05/25] acpi: add aml_index() term


From: Marcel Apfelbaum
Subject: Re: [Qemu-devel] [PATCH v4 for-2.3 05/25] acpi: add aml_index() term
Date: Mon, 09 Mar 2015 13:37:26 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

On 03/09/2015 01:00 PM, Michael S. Tsirkin wrote:
On Mon, Mar 09, 2015 at 11:39:57AM +0100, Igor Mammedov wrote:
On Sun,  8 Mar 2015 13:16:07 +0200
Marcel Apfelbaum <address@hidden> wrote:

Add encoding for ACPI DefIndex Opcode.

Signed-off-by: Marcel Apfelbaum <address@hidden>
---
  hw/acpi/aml-build.c         | 13 +++++++++++++
  include/hw/acpi/aml-build.h |  1 +
  2 files changed, 14 insertions(+)

diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index 49ba8c1..b3372df 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -477,6 +477,19 @@ Aml *aml_add(Aml *arg1, Aml *arg2)
      return var;
  }

+/* ACPI 1.0b: 16.2.5.4 Type 2 Opcodes Encoding: DefIndex */
+Aml *aml_index(Aml *arg1, Aml *idx)
+{
+    Aml *var = aml_opcode(0x88 /* IndexOp */);
+
+    g_assert(arg1->block_flags & (AML_PACKAGE | AML_EXT_PACKAGE | AML_BUFFER));
it couldn't be AML_EXT_PACKAGE, it's either a plain DefPackage or DefBuffer
i.e. I'd suggest to add to above check also checking for
specific opcodes arg1->op = 0x11 /* buffer */ ...

Also a newer spec (>1.0b) allows to use DefString as argument as well.

You really can have a lot of things there, e.g. a method call
will also work.
I think it's best to drop these asserts at this point,
and maybe blacklist specific bad configs down the road.
OK, I'll drop the assert for now.

Thanks,
Marcel





reply via email to

[Prev in Thread] Current Thread [Next in Thread]