[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/9] tests: acpi: make sure FADT is fetched only onc
From: |
Igor Mammedov |
Subject: |
[Qemu-devel] [PATCH 3/9] tests: acpi: make sure FADT is fetched only once |
Date: |
Mon, 10 Dec 2018 19:10:09 +0100 |
Whole FADT is fetched as part of RSDT referenced tables in
fetch_rsdt_referenced_tables() albeit a bit later than when FADT
is partially parsed in fadt_fetch_facs_and_dsdt_ptrs().
However there is no reason for calling fetch_rsdt_referenced_tables()
so late, just move it right after we fetched RSDT and before
fadt_fetch_facs_and_dsdt_ptrs(). That way we can reuse whole FADT
fetched by fetch_rsdt_referenced_tables() and avoid duplicate
custom fields fetching in fadt_fetch_facs_and_dsdt_ptrs().
While at it rename fadt_fetch_facs_and_dsdt_ptrs() to
test_acpi_fadt_table(). The follow up patch will merge
fadt_fetch_facs_and_dsdt_ptrs() into test_acpi_rsdt_table(),
so that we would end up calling only test_acpi_FOO_table()
for consistency for tables that require special processing.
Signed-off-by: Igor Mammedov <address@hidden>
---
tests/bios-tables-test.c | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
index 1666cf7..5faf75f 100644
--- a/tests/bios-tables-test.c
+++ b/tests/bios-tables-test.c
@@ -139,18 +139,15 @@ static void test_acpi_rsdt_table(test_data *data)
data->rsdt_tables_nr = tables_nr;
}
-static void fadt_fetch_facs_and_dsdt_ptrs(test_data *data)
+static void test_acpi_fadt_table(test_data *data)
{
- uint32_t addr;
- AcpiTableHeader hdr;
+ /* FADT table is 1st */
+ AcpiSdtTable *fadt = &g_array_index(data->tables, typeof(*fadt), 0);
- /* FADT table comes first */
- addr = le32_to_cpu(data->rsdt_tables_addr[0]);
- ACPI_READ_TABLE_HEADER(&hdr, addr);
- ACPI_ASSERT_CMP(hdr.signature, "FACP");
+ ACPI_ASSERT_CMP(fadt->header->signature, "FACP");
- ACPI_READ_FIELD(data->facs_addr, addr);
- ACPI_READ_FIELD(data->dsdt_addr, addr);
+ memcpy(&data->facs_addr, fadt->aml + 36 /* FIRMWARE_CTRL */, 4);
+ memcpy(&data->dsdt_addr, fadt->aml + 40 /* DSDT */, 4);
}
static void sanitize_fadt_ptrs(test_data *data)
@@ -622,10 +619,10 @@ static void test_acpi_one(const char *params, test_data
*data)
test_acpi_rsdp_address(data);
test_acpi_rsdp_table(data);
test_acpi_rsdt_table(data);
- fadt_fetch_facs_and_dsdt_ptrs(data);
+ fetch_rsdt_referenced_tables(data);
+ test_acpi_fadt_table(data);
test_acpi_facs_table(data);
test_acpi_dsdt_table(data);
- fetch_rsdt_referenced_tables(data);
sanitize_fadt_ptrs(data);
--
2.7.4
- [Qemu-devel] [PATCH 0/9] tests: apci: consolidate and cleanup ACPI test code, Igor Mammedov, 2018/12/10
- [Qemu-devel] [PATCH 1/9] tests: acpi: remove not used ACPI_READ_GENERIC_ADDRESS macro, Igor Mammedov, 2018/12/10
- [Qemu-devel] [PATCH 4/9] tests: acpi: simplify rsdt handling, Igor Mammedov, 2018/12/10
- [Qemu-devel] [PATCH 3/9] tests: acpi: make sure FADT is fetched only once,
Igor Mammedov <=
- [Qemu-devel] [PATCH 2/9] tests: acpi: use AcpiSdtTable::aml in consistent way, Igor Mammedov, 2018/12/10
- [Qemu-devel] [PATCH 5/9] tests: acpi: reuse fetch_table() for fetching FACS and DSDT, Igor Mammedov, 2018/12/10
- [Qemu-devel] [PATCH 6/9] tests: acpi: reuse fetch_table() in vmgenid-test, Igor Mammedov, 2018/12/10
- [Qemu-devel] [PATCH 8/9] tests: acpi: squash sanitize_fadt_ptrs() into test_acpi_fadt_table(), Igor Mammedov, 2018/12/10
- [Qemu-devel] [PATCH 7/9] tests: smbios: fetch whole table in one step instead of reading it step by step, Igor Mammedov, 2018/12/10
- [Qemu-devel] [PATCH 9/9] tests: acpi: use AcpiSdtTable::aml instead of AcpiSdtTable::header::signature, Igor Mammedov, 2018/12/10
- Re: [Qemu-devel] [PATCH 0/9] tests: apci: consolidate and cleanup ACPI test code, Michael S. Tsirkin, 2018/12/19