qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 6/8] tests: smbios: fetch whole table in one


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH v2 6/8] tests: smbios: fetch whole table in one step instead of reading it step by step
Date: Fri, 28 Dec 2018 18:54:57 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1

On 12/27/18 3:13 PM, Igor Mammedov wrote:
> replace a bunch of ACPI_READ_ARRAY/ACPI_READ_FIELD macro, that read
> SMBIOS table field by field with one memread() to fetch whole table
> at once and drop no longer used ACPI_READ_ARRAY/ACPI_READ_FIELD macro.
> 
> Signed-off-by: Igor Mammedov <address@hidden>

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

> ---
> V2:
>   rebase: s/memread/qtest_memread/
> ---
>  tests/acpi-utils.h       | 17 -----------------
>  tests/bios-tables-test.c | 15 +--------------
>  2 files changed, 1 insertion(+), 31 deletions(-)
> 
> diff --git a/tests/acpi-utils.h b/tests/acpi-utils.h
> index 1aa00db..cb7183e 100644
> --- a/tests/acpi-utils.h
> +++ b/tests/acpi-utils.h
> @@ -30,23 +30,6 @@ typedef struct {
>      bool tmp_files_retain;   /* do not delete the temp asl/aml */
>  } AcpiSdtTable;
>  
> -#define ACPI_READ_FIELD(qts, field, addr)                \
> -    do {                                                 \
> -        qtest_memread(qts, addr, &field, sizeof(field)); \
> -        addr += sizeof(field);                           \
> -    } while (0)
> -
> -#define ACPI_READ_ARRAY_PTR(qts, arr, length, addr)      \
> -    do {                                                 \
> -        int idx;                                         \
> -        for (idx = 0; idx < length; ++idx) {             \
> -            ACPI_READ_FIELD(qts, arr[idx], addr);        \
> -        }                                                \
> -    } while (0)
> -
> -#define ACPI_READ_ARRAY(qts, arr, addr)                                 \
> -    ACPI_READ_ARRAY_PTR(qts, arr, sizeof(arr) / sizeof(arr[0]), addr)
> -
>  #define ACPI_ASSERT_CMP(actual, expected) do { \
>      char ACPI_ASSERT_CMP_str[5] = {}; \
>      memcpy(ACPI_ASSERT_CMP_str, &actual, 4); \
> diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
> index 8fdd1c1..dcd6be8 100644
> --- a/tests/bios-tables-test.c
> +++ b/tests/bios-tables-test.c
> @@ -406,32 +406,19 @@ static bool smbios_ep_table_ok(test_data *data)
>      struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;
>      uint32_t addr = data->smbios_ep_addr;
>  
> -    ACPI_READ_ARRAY(data->qts, ep_table->anchor_string, addr);
> +    qtest_memread(data->qts, addr, ep_table, sizeof(*ep_table));
>      if (memcmp(ep_table->anchor_string, "_SM_", 4)) {
>          return false;
>      }
> -    ACPI_READ_FIELD(data->qts, ep_table->checksum, addr);
> -    ACPI_READ_FIELD(data->qts, ep_table->length, addr);
> -    ACPI_READ_FIELD(data->qts, ep_table->smbios_major_version, addr);
> -    ACPI_READ_FIELD(data->qts, ep_table->smbios_minor_version, addr);
> -    ACPI_READ_FIELD(data->qts, ep_table->max_structure_size, addr);
> -    ACPI_READ_FIELD(data->qts, ep_table->entry_point_revision, addr);
> -    ACPI_READ_ARRAY(data->qts, ep_table->formatted_area, addr);
> -    ACPI_READ_ARRAY(data->qts, ep_table->intermediate_anchor_string, addr);
>      if (memcmp(ep_table->intermediate_anchor_string, "_DMI_", 5)) {
>          return false;
>      }
> -    ACPI_READ_FIELD(data->qts, ep_table->intermediate_checksum, addr);
> -    ACPI_READ_FIELD(data->qts, ep_table->structure_table_length, addr);
>      if (ep_table->structure_table_length == 0) {
>          return false;
>      }
> -    ACPI_READ_FIELD(data->qts, ep_table->structure_table_address, addr);
> -    ACPI_READ_FIELD(data->qts, ep_table->number_of_structures, addr);
>      if (ep_table->number_of_structures == 0) {
>          return false;
>      }
> -    ACPI_READ_FIELD(data->qts, ep_table->smbios_bcd_revision, addr);
>      if (acpi_calc_checksum((uint8_t *)ep_table, sizeof *ep_table) ||
>          acpi_calc_checksum((uint8_t *)ep_table + 0x10,
>                             sizeof *ep_table - 0x10)) {
> 



reply via email to

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