[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] Allow additions of ACPI tables from command
From: |
Gleb Natapov |
Subject: |
Re: [Qemu-devel] [PATCH v2] Allow additions of ACPI tables from command line |
Date: |
Tue, 17 Feb 2009 09:29:01 +0200 |
On Mon, Feb 16, 2009 at 09:27:26AM -0600, Anthony Liguori wrote:
> Gleb Natapov wrote:
>> This is needed to dynamically add SLIC tables with Windows
>> activation keys.
>>
>> Signed-off-by: Gleb Natapov <address@hidden>
>> diff --git a/hw/acpi.c b/hw/acpi.c
>> index 4338d02..7175598 100644
>> --- a/hw/acpi.c
>> +++ b/hw/acpi.c
>> @@ -561,3 +561,170 @@ void qemu_system_powerdown(void)
>> }
>> }
>> #endif
>> +
>> +struct acpi_table_header
>> +{
>> + char signature [4]; /* ACPI signature (4 ASCII characters) */
>> + uint32_t length; /* Length of table, in bytes, including
>> header */
>> + uint8_t revision; /* ACPI Specification minor version # */
>> + uint8_t checksum; /* To make sum of entire table == 0 */
>> + char oem_id [6]; /* OEM identification */
>> + char oem_table_id [8]; /* OEM table identification */
>> + uint32_t oem_revision; /* OEM revision number */
>> + char asl_compiler_id [4]; /* ASL compiler vendor ID */
>> + uint32_t asl_compiler_revision; /* ASL compiler revision number */
>> +};
>>
>
> I don't have a lot of confidence that this table is going to be padded
> correctly by all compilers on all architectures. I'd suggest explicit
> padding.
>
__attribute_((packed)) should be enough, no?
>> + if (get_param_value(buf, sizeof(buf), "oem_id", t)) {
>> + strncpy(acpi_hdr.oem_id, buf, 6);
>>
>
> is oem_id supposed to be NULL terminated or just NULL padded?
ACPI spec rev 3.0b 18.2.1:
OEM ID of up to 6 characters. If the OEM ID is shorter than 6
characters, it can be terminated with a NULL character.
--
Gleb.