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

Marcel Apfelbaum marcel at redhat.com
Mon Mar 9 12:37:26 CET 2015


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 <marcel at redhat.com> wrote:
>>
>>> Add encoding for ACPI DefIndex Opcode.
>>>
>>> Signed-off-by: Marcel Apfelbaum <marcel at redhat.com>
>>> ---
>>>   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





More information about the SeaBIOS mailing list