Message ID | 20210907144814.741785-35-imammedo@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | acpi: refactor error prone build_header() and packed structures usage in ACPI tables | expand |
On 9/7/21 4:48 PM, Igor Mammedov wrote: > Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Eric > --- > include/hw/acpi/acpi-defs.h | 25 ------------------------- > include/hw/acpi/aml-build.h | 4 ---- > hw/acpi/aml-build.c | 23 ----------------------- > 3 files changed, 52 deletions(-) > > diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h > index 1a0774edd6..ee733840aa 100644 > --- a/include/hw/acpi/acpi-defs.h > +++ b/include/hw/acpi/acpi-defs.h > @@ -48,31 +48,6 @@ typedef struct AcpiRsdpData { > unsigned *xsdt_tbl_offset; > } AcpiRsdpData; > > -/* Table structure from Linux kernel (the ACPI tables are under the > - BSD license) */ > - > - > -#define ACPI_TABLE_HEADER_DEF /* ACPI common table header */ \ > - uint32_t signature; /* 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 */ \ > - uint8_t oem_id[6] \ > - QEMU_NONSTRING; /* OEM identification */ \ > - uint8_t oem_table_id[8] \ > - QEMU_NONSTRING; /* OEM table identification */ \ > - uint32_t oem_revision; /* OEM revision number */ \ > - uint8_t asl_compiler_id[4] \ > - QEMU_NONSTRING; /* ASL compiler vendor ID */ \ > - uint32_t asl_compiler_revision; /* ASL compiler revision number */ > - > - > -/* ACPI common table header */ > -struct AcpiTableHeader { > - ACPI_TABLE_HEADER_DEF > -} QEMU_PACKED; > -typedef struct AcpiTableHeader AcpiTableHeader; > - > struct AcpiGenericAddress { > uint8_t space_id; /* Address space where struct or register exists */ > uint8_t bit_width; /* Size in bits of given register */ > diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h > index 6f3d1de1b1..b8272c239a 100644 > --- a/include/hw/acpi/aml-build.h > +++ b/include/hw/acpi/aml-build.h > @@ -445,10 +445,6 @@ void acpi_table_begin(AcpiTable *desc, GArray *array); > */ > void acpi_table_end(BIOSLinker *linker, AcpiTable *table); > > -void > -build_header(BIOSLinker *linker, GArray *table_data, > - AcpiTableHeader *h, const char *sig, int len, uint8_t rev, > - const char *oem_id, const char *oem_table_id); > void *acpi_data_push(GArray *table_data, unsigned size); > unsigned acpi_data_len(GArray *table); > void acpi_add_table(GArray *table_offsets, GArray *table_data); > diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c > index 4135b385e5..b261ecfbc1 100644 > --- a/hw/acpi/aml-build.c > +++ b/hw/acpi/aml-build.c > @@ -1754,29 +1754,6 @@ void acpi_table_end(BIOSLinker *linker, AcpiTable *desc) > desc->table_offset, table_len, desc->table_offset + checksum_offset); > } > > -void > -build_header(BIOSLinker *linker, GArray *table_data, > - AcpiTableHeader *h, const char *sig, int len, uint8_t rev, > - const char *oem_id, const char *oem_table_id) > -{ > - unsigned tbl_offset = (char *)h - table_data->data; > - unsigned checksum_offset = (char *)&h->checksum - table_data->data; > - memcpy(&h->signature, sig, 4); > - h->length = cpu_to_le32(len); > - h->revision = rev; > - > - strpadcpy((char *)h->oem_id, sizeof h->oem_id, oem_id, ' '); > - strpadcpy((char *)h->oem_table_id, sizeof h->oem_table_id, > - oem_table_id, ' '); > - > - h->oem_revision = cpu_to_le32(1); > - memcpy(h->asl_compiler_id, ACPI_BUILD_APPNAME8, 4); > - h->asl_compiler_revision = cpu_to_le32(1); > - /* Checksum to be filled in by Guest linker */ > - bios_linker_loader_add_checksum(linker, ACPI_BUILD_TABLE_FILE, > - tbl_offset, len, checksum_offset); > -} > - > void *acpi_data_push(GArray *table_data, unsigned size) > { > unsigned off = table_data->len; >
diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h index 1a0774edd6..ee733840aa 100644 --- a/include/hw/acpi/acpi-defs.h +++ b/include/hw/acpi/acpi-defs.h @@ -48,31 +48,6 @@ typedef struct AcpiRsdpData { unsigned *xsdt_tbl_offset; } AcpiRsdpData; -/* Table structure from Linux kernel (the ACPI tables are under the - BSD license) */ - - -#define ACPI_TABLE_HEADER_DEF /* ACPI common table header */ \ - uint32_t signature; /* 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 */ \ - uint8_t oem_id[6] \ - QEMU_NONSTRING; /* OEM identification */ \ - uint8_t oem_table_id[8] \ - QEMU_NONSTRING; /* OEM table identification */ \ - uint32_t oem_revision; /* OEM revision number */ \ - uint8_t asl_compiler_id[4] \ - QEMU_NONSTRING; /* ASL compiler vendor ID */ \ - uint32_t asl_compiler_revision; /* ASL compiler revision number */ - - -/* ACPI common table header */ -struct AcpiTableHeader { - ACPI_TABLE_HEADER_DEF -} QEMU_PACKED; -typedef struct AcpiTableHeader AcpiTableHeader; - struct AcpiGenericAddress { uint8_t space_id; /* Address space where struct or register exists */ uint8_t bit_width; /* Size in bits of given register */ diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h index 6f3d1de1b1..b8272c239a 100644 --- a/include/hw/acpi/aml-build.h +++ b/include/hw/acpi/aml-build.h @@ -445,10 +445,6 @@ void acpi_table_begin(AcpiTable *desc, GArray *array); */ void acpi_table_end(BIOSLinker *linker, AcpiTable *table); -void -build_header(BIOSLinker *linker, GArray *table_data, - AcpiTableHeader *h, const char *sig, int len, uint8_t rev, - const char *oem_id, const char *oem_table_id); void *acpi_data_push(GArray *table_data, unsigned size); unsigned acpi_data_len(GArray *table); void acpi_add_table(GArray *table_offsets, GArray *table_data); diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 4135b385e5..b261ecfbc1 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -1754,29 +1754,6 @@ void acpi_table_end(BIOSLinker *linker, AcpiTable *desc) desc->table_offset, table_len, desc->table_offset + checksum_offset); } -void -build_header(BIOSLinker *linker, GArray *table_data, - AcpiTableHeader *h, const char *sig, int len, uint8_t rev, - const char *oem_id, const char *oem_table_id) -{ - unsigned tbl_offset = (char *)h - table_data->data; - unsigned checksum_offset = (char *)&h->checksum - table_data->data; - memcpy(&h->signature, sig, 4); - h->length = cpu_to_le32(len); - h->revision = rev; - - strpadcpy((char *)h->oem_id, sizeof h->oem_id, oem_id, ' '); - strpadcpy((char *)h->oem_table_id, sizeof h->oem_table_id, - oem_table_id, ' '); - - h->oem_revision = cpu_to_le32(1); - memcpy(h->asl_compiler_id, ACPI_BUILD_APPNAME8, 4); - h->asl_compiler_revision = cpu_to_le32(1); - /* Checksum to be filled in by Guest linker */ - bios_linker_loader_add_checksum(linker, ACPI_BUILD_TABLE_FILE, - tbl_offset, len, checksum_offset); -} - void *acpi_data_push(GArray *table_data, unsigned size) { unsigned off = table_data->len;
Signed-off-by: Igor Mammedov <imammedo@redhat.com> --- include/hw/acpi/acpi-defs.h | 25 ------------------------- include/hw/acpi/aml-build.h | 4 ---- hw/acpi/aml-build.c | 23 ----------------------- 3 files changed, 52 deletions(-)