@@ -1766,12 +1766,12 @@ static void e1000_register_types(void)
type_register_static(&e1000_base_info);
for (i = 0; i < ARRAY_SIZE(e1000_devices); i++) {
const E1000Info *info = &e1000_devices[i];
- TypeInfo type_info = {};
-
- type_info.name = info->name;
- type_info.parent = TYPE_E1000_BASE;
- type_info.class_data = info;
- type_info.class_init = e1000_class_init;
+ const TypeInfo type_info = {
+ .name = info->name,
+ .parent = TYPE_E1000_BASE,
+ .class_data = info,
+ .class_init = e1000_class_init,
+ };
type_register_static(&type_info);
}
@@ -51,7 +51,7 @@ struct M48txxISADeviceClass {
M48txxInfo info;
};
-static M48txxInfo m48txx_isa_info[] = {
+static const M48txxInfo m48txx_isa_info[] = {
{
.bus_name = "isa-m48t59",
.model = 59,
@@ -148,18 +148,18 @@ static const TypeInfo m48txx_isa_type_info = {
static void m48t59_isa_register_types(void)
{
- TypeInfo isa_type_info = {
- .parent = TYPE_M48TXX_ISA,
- .class_size = sizeof(M48txxISADeviceClass),
- .class_init = m48txx_isa_concrete_class_init,
- };
- int i;
-
type_register_static(&m48txx_isa_type_info);
- for (i = 0; i < ARRAY_SIZE(m48txx_isa_info); i++) {
- isa_type_info.name = m48txx_isa_info[i].bus_name;
- isa_type_info.class_data = &m48txx_isa_info[i];
+ for (unsigned i = 0; i < ARRAY_SIZE(m48txx_isa_info); i++) {
+ const M48txxInfo *info = &m48txx_isa_info[i];
+ const TypeInfo isa_type_info = {
+ .name = info->bus_name,
+ .parent = TYPE_M48TXX_ISA,
+ .class_size = sizeof(M48txxISADeviceClass),
+ .class_init = m48txx_isa_concrete_class_init,
+ .class_data = info,
+ };
+
type_register_static(&isa_type_info);
}
}
@@ -66,7 +66,7 @@ struct M48txxSysBusDeviceClass {
M48txxInfo info;
};
-static M48txxInfo m48txx_sysbus_info[] = {
+static const M48txxInfo m48txx_sysbus_info[] = {
{
.bus_name = "sysbus-m48t02",
.model = 2,
@@ -666,19 +666,19 @@ static const TypeInfo m48txx_sysbus_type_info = {
static void m48t59_register_types(void)
{
- TypeInfo sysbus_type_info = {
- .parent = TYPE_M48TXX_SYS_BUS,
- .class_size = sizeof(M48txxSysBusDeviceClass),
- .class_init = m48txx_sysbus_concrete_class_init,
- };
- int i;
-
type_register_static(&nvram_info);
type_register_static(&m48txx_sysbus_type_info);
- for (i = 0; i < ARRAY_SIZE(m48txx_sysbus_info); i++) {
- sysbus_type_info.name = m48txx_sysbus_info[i].bus_name;
- sysbus_type_info.class_data = &m48txx_sysbus_info[i];
+ for (unsigned i = 0; i < ARRAY_SIZE(m48txx_sysbus_info); i++) {
+ const M48txxInfo *info = &m48txx_sysbus_info[i];
+ const TypeInfo sysbus_type_info = {
+ .name = info->bus_name,
+ .parent = TYPE_M48TXX_SYS_BUS,
+ .class_size = sizeof(M48txxSysBusDeviceClass),
+ .class_init = m48txx_sysbus_concrete_class_init,
+ .class_data = info,
+ };
+
type_register_static(&sysbus_type_info);
}
}
@@ -2490,7 +2490,7 @@ typedef struct MegasasInfo {
const InterfaceInfo *interfaces;
} MegasasInfo;
-static struct MegasasInfo megasas_devices[] = {
+static const struct MegasasInfo megasas_devices[] = {
{
.name = TYPE_MEGASAS_GEN1,
.desc = "LSI MegaRAID SAS 1078",
@@ -2569,13 +2569,13 @@ static void megasas_register_types(void)
type_register_static(&megasas_info);
for (i = 0; i < ARRAY_SIZE(megasas_devices); i++) {
const MegasasInfo *info = &megasas_devices[i];
- TypeInfo type_info = {};
-
- type_info.name = info->name;
- type_info.parent = TYPE_MEGASAS_BASE;
- type_info.class_data = info;
- type_info.class_init = megasas_class_init;
- type_info.interfaces = info->interfaces;
+ const TypeInfo type_info = {
+ .name = info->name,
+ .parent = TYPE_MEGASAS_BASE,
+ .class_data = info,
+ .class_init = megasas_class_init,
+ .interfaces = info->interfaces,
+ };
type_register_static(&type_info);
}
@@ -193,7 +193,7 @@ static void ehci_data_class_init(ObjectClass *klass, const void *data)
}
}
-static struct EHCIPCIInfo ehci_pci_info[] = {
+static const struct EHCIPCIInfo ehci_pci_info[] = {
{
.name = "usb-ehci",
.vendor_id = PCI_VENDOR_ID_INTEL,
@@ -216,17 +216,17 @@ static struct EHCIPCIInfo ehci_pci_info[] = {
static void ehci_pci_register_types(void)
{
- TypeInfo ehci_type_info = {
- .parent = TYPE_PCI_EHCI,
- .class_init = ehci_data_class_init,
- };
- int i;
-
type_register_static(&ehci_pci_type_info);
- for (i = 0; i < ARRAY_SIZE(ehci_pci_info); i++) {
- ehci_type_info.name = ehci_pci_info[i].name;
- ehci_type_info.class_data = ehci_pci_info + i;
+ for (unsigned i = 0; i < ARRAY_SIZE(ehci_pci_info); i++) {
+ const EHCIPCIInfo *info = &ehci_pci_info[i];
+ const TypeInfo ehci_type_info = {
+ .name = info->name,
+ .parent = TYPE_PCI_EHCI,
+ .class_data = info,
+ .class_init = ehci_data_class_init,
+ };
+
type_register_static(&ehci_type_info);
}
}
@@ -1309,7 +1309,7 @@ void uhci_data_class_init(ObjectClass *klass, const void *data)
u->info = *info;
}
-static UHCIInfo uhci_info[] = {
+static const UHCIInfo uhci_info[] = {
{
.name = TYPE_PIIX3_USB_UHCI,
.vendor_id = PCI_VENDOR_ID_INTEL,
@@ -1371,17 +1371,17 @@ static UHCIInfo uhci_info[] = {
static void uhci_register_types(void)
{
- TypeInfo uhci_type_info = {
- .parent = TYPE_UHCI,
- .class_init = uhci_data_class_init,
- };
- int i;
-
type_register_static(&uhci_pci_type_info);
- for (i = 0; i < ARRAY_SIZE(uhci_info); i++) {
- uhci_type_info.name = uhci_info[i].name;
- uhci_type_info.class_data = uhci_info + i;
+ for (unsigned i = 0; i < ARRAY_SIZE(uhci_info); i++) {
+ const UHCIInfo *info = &uhci_info[i];
+ const TypeInfo uhci_type_info = {
+ .name = info->name,
+ .parent = TYPE_UHCI,
+ .class_data = info,
+ .class_init = uhci_data_class_init,
+ };
+
type_register_static(&uhci_type_info);
}
}
@@ -26,7 +26,7 @@ static void usb_uhci_vt82c686b_realize(PCIDevice *dev, Error **errp)
s->irq = qemu_allocate_irq(uhci_isa_set_irq, s, 0);
}
-static UHCIInfo uhci_info[] = {
+static const UHCIInfo uhci_info[] = {
{
.name = TYPE_VT82C686B_USB_UHCI,
.vendor_id = PCI_VENDOR_ID_VIA,
@@ -37,14 +37,14 @@ static UHCIInfo uhci_info[] = {
.unplug = true,
/* Reason: only works as USB function of VT82xx superio chips */
.notuser = true,
- }
+ },
};
static const TypeInfo vt82c686b_usb_uhci_type_info = {
.parent = TYPE_UHCI,
.name = TYPE_VT82C686B_USB_UHCI,
.class_init = uhci_data_class_init,
- .class_data = uhci_info,
+ .class_data = &uhci_info[0],
};
static void vt82c686b_usb_uhci_register_types(void)
Constify various TypeInfo structures. When they are generated from an array, also constify the array. Suggested-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/net/e1000.c | 12 ++++++------ hw/rtc/m48t59-isa.c | 22 +++++++++++----------- hw/rtc/m48t59.c | 22 +++++++++++----------- hw/scsi/megasas.c | 16 ++++++++-------- hw/usb/hcd-ehci-pci.c | 20 ++++++++++---------- hw/usb/hcd-uhci.c | 20 ++++++++++---------- hw/usb/vt82c686-uhci-pci.c | 6 +++--- 7 files changed, 59 insertions(+), 59 deletions(-)