[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 13/27] qapi machine: Elide redundant has_FOO in generated C
From: |
Markus Armbruster |
Subject: |
[PATCH 13/27] qapi machine: Elide redundant has_FOO in generated C |
Date: |
Thu, 15 Sep 2022 22:43:03 +0200 |
The has_FOO for pointer-valued FOO are redundant, except for arrays.
They are also a nuisance to work with. Recent commit "qapi: Start to
elide redundant has_FOO in generated C" provided the means to elide
them step by step. This is the step for qapi/machine*.json.
Said commit explains the transformation in more detail. The invariant
violations mentioned there do not occur here.
Cc: Eduardo Habkost <eduardo@habkost.net>
Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
Cc: Yanan Wang <wangyanan55@huawei.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
hw/core/machine-hmp-cmds.c | 2 +-
hw/core/machine-qmp-cmds.c | 9 ++-------
hw/core/machine.c | 10 ++++------
hw/core/numa.c | 8 ++++----
hw/mem/pc-dimm.c | 1 -
hw/nvram/fw_cfg.c | 2 +-
hw/virtio/virtio-mem-pci.c | 4 +---
hw/virtio/virtio-pmem-pci.c | 1 -
target/arm/monitor.c | 1 -
target/i386/cpu-sysemu.c | 7 ++-----
target/i386/cpu.c | 1 -
target/s390x/cpu_models_sysemu.c | 1 -
scripts/qapi/schema.py | 2 --
13 files changed, 15 insertions(+), 34 deletions(-)
diff --git a/hw/core/machine-hmp-cmds.c b/hw/core/machine-hmp-cmds.c
index 5cb5eecbfc..a1a51e9778 100644
--- a/hw/core/machine-hmp-cmds.c
+++ b/hw/core/machine-hmp-cmds.c
@@ -62,7 +62,7 @@ void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
monitor_printf(mon, " type: \"%s\"\n", l->value->type);
monitor_printf(mon, " vcpus_count: \"%" PRIu64 "\"\n",
l->value->vcpus_count);
- if (l->value->has_qom_path) {
+ if (l->value->qom_path) {
monitor_printf(mon, " qom_path: \"%s\"\n", l->value->qom_path);
}
diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
index 4f4ab30f8c..80d5e59651 100644
--- a/hw/core/machine-qmp-cmds.c
+++ b/hw/core/machine-qmp-cmds.c
@@ -55,8 +55,7 @@ CpuInfoFastList *qmp_query_cpus_fast(Error **errp)
value->qom_path = object_get_canonical_path(OBJECT(cpu));
value->thread_id = cpu->thread_id;
- value->has_props = !!mc->cpu_index_to_instance_props;
- if (value->has_props) {
+ if (mc->cpu_index_to_instance_props) {
CpuInstanceProperties *props;
props = g_malloc0(sizeof(*props));
*props = mc->cpu_index_to_instance_props(ms, cpu->cpu_index);
@@ -90,7 +89,6 @@ MachineInfoList *qmp_query_machines(Error **errp)
}
if (mc->alias) {
- info->has_alias = true;
info->alias = g_strdup(mc->alias);
}
@@ -101,11 +99,9 @@ MachineInfoList *qmp_query_machines(Error **errp)
info->deprecated = !!mc->deprecation_reason;
if (mc->default_cpu_type) {
info->default_cpu_type = g_strdup(mc->default_cpu_type);
- info->has_default_cpu_type = true;
}
if (mc->default_ram_id) {
info->default_ram_id = g_strdup(mc->default_ram_id);
- info->has_default_ram_id = true;
}
QAPI_LIST_PREPEND(mach_list, info);
@@ -168,7 +164,6 @@ static int query_memdev(Object *obj, void *opaque)
m = g_malloc0(sizeof(*m));
m->id = g_strdup(object_get_canonical_path_component(obj));
- m->has_id = !!m->id;
m->size = object_property_get_uint(obj, "size", &error_abort);
m->merge = object_property_get_bool(obj, "merge", &error_abort);
@@ -227,7 +222,7 @@ HumanReadableText *qmp_x_query_numa(Error **errp)
for (i = 0; i < nb_numa_nodes; i++) {
g_string_append_printf(buf, "node %d cpus:", i);
for (cpu = cpu_list; cpu; cpu = cpu->next) {
- if (cpu->value->has_props && cpu->value->props->has_node_id &&
+ if (cpu->value->props && cpu->value->props->has_node_id &&
cpu->value->props->node_id == i) {
g_string_append_printf(buf, " %" PRIi64,
cpu->value->cpu_index);
}
diff --git a/hw/core/machine.c b/hw/core/machine.c
index aa520e74a8..cf9407d4aa 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -682,7 +682,6 @@ HotpluggableCPUList
*machine_query_hotpluggable_cpus(MachineState *machine)
cpu = machine->possible_cpus->cpus[i].cpu;
if (cpu) {
- cpu_item->has_qom_path = true;
cpu_item->qom_path = object_get_canonical_path(cpu);
}
QAPI_LIST_PREPEND(head, cpu_item);
@@ -871,8 +870,7 @@ static void machine_copy_boot_config(MachineState *ms,
BootConfiguration *config
machine_free_boot_config(ms);
ms->boot_config = *config;
- if (!config->has_order) {
- ms->boot_config.has_order = true;
+ if (!config->order) {
ms->boot_config.order = g_strdup(machine_class->default_boot_order);
}
}
@@ -887,13 +885,13 @@ static void machine_set_boot(Object *obj, Visitor *v,
const char *name,
if (!visit_type_BootConfiguration(v, name, &config, errp)) {
return;
}
- if (config->has_order) {
+ if (config->order) {
validate_bootdevices(config->order, errp);
if (*errp) {
goto out_free;
}
}
- if (config->has_once) {
+ if (config->once) {
validate_bootdevices(config->once, errp);
if (*errp) {
goto out_free;
@@ -1424,7 +1422,7 @@ void qdev_machine_creation_done(void)
{
cpu_synchronize_all_post_init();
- if (current_machine->boot_config.has_once) {
+ if (current_machine->boot_config.once) {
qemu_boot_set(current_machine->boot_config.once, &error_fatal);
qemu_register_reset(restore_boot_order,
g_strdup(current_machine->boot_config.order));
}
diff --git a/hw/core/numa.c b/hw/core/numa.c
index 26d8e5f616..f06328ccbb 100644
--- a/hw/core/numa.c
+++ b/hw/core/numa.c
@@ -130,9 +130,9 @@ static void parse_numa_node(MachineState *ms,
NumaNodeOptions *node,
}
}
- have_memdevs = have_memdevs ? : node->has_memdev;
- have_mem = have_mem ? : node->has_mem;
- if ((node->has_mem && have_memdevs) || (node->has_memdev && have_mem)) {
+ have_memdevs = have_memdevs || node->memdev;
+ have_mem = have_mem || node->has_mem;
+ if ((node->has_mem && have_memdevs) || (node->memdev && have_mem)) {
error_setg(errp, "numa configuration should use either mem= or
memdev=,"
"mixing both is not allowed");
return;
@@ -152,7 +152,7 @@ static void parse_numa_node(MachineState *ms,
NumaNodeOptions *node,
" use -numa node,memdev instead");
}
}
- if (node->has_memdev) {
+ if (node->memdev) {
Object *o;
o = object_resolve_path_type(node->memdev, TYPE_MEMORY_BACKEND, NULL);
if (!o) {
diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c
index f27e1a11ba..50ef83215c 100644
--- a/hw/mem/pc-dimm.c
+++ b/hw/mem/pc-dimm.c
@@ -252,7 +252,6 @@ static void pc_dimm_md_fill_device_info(const
MemoryDeviceState *md,
const DeviceState *dev = DEVICE(md);
if (dev->id) {
- di->has_id = true;
di->id = g_strdup(dev->id);
}
di->hotplugged = dev->hotplugged;
diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
index d605f3f45a..fc576ee41e 100644
--- a/hw/nvram/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
@@ -200,7 +200,7 @@ static void fw_cfg_bootsplash(FWCfgState *s)
}
/* insert splash file if user configurated */
- if (current_machine->boot_config.has_splash) {
+ if (current_machine->boot_config.splash) {
const char *boot_splash_filename = current_machine->boot_config.splash;
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, boot_splash_filename);
if (filename == NULL) {
diff --git a/hw/virtio/virtio-mem-pci.c b/hw/virtio/virtio-mem-pci.c
index be2383b0c5..62a8667f24 100644
--- a/hw/virtio/virtio-mem-pci.c
+++ b/hw/virtio/virtio-mem-pci.c
@@ -65,7 +65,6 @@ static void virtio_mem_pci_fill_device_info(const
MemoryDeviceState *md,
DeviceState *dev = DEVICE(md);
if (dev->id) {
- vi->has_id = true;
vi->id = g_strdup(dev->id);
}
@@ -90,8 +89,7 @@ static void virtio_mem_pci_size_change_notify(Notifier
*notifier, void *data)
char *qom_path = object_get_canonical_path(OBJECT(dev));
const uint64_t * const size_p = data;
- qapi_event_send_memory_device_size_change(!!dev->id, dev->id, *size_p,
- qom_path);
+ qapi_event_send_memory_device_size_change(dev->id, *size_p, qom_path);
g_free(qom_path);
}
diff --git a/hw/virtio/virtio-pmem-pci.c b/hw/virtio/virtio-pmem-pci.c
index 2b2a0b1eae..b12c16e7a8 100644
--- a/hw/virtio/virtio-pmem-pci.c
+++ b/hw/virtio/virtio-pmem-pci.c
@@ -70,7 +70,6 @@ static void virtio_pmem_pci_fill_device_info(const
MemoryDeviceState *md,
DeviceState *dev = DEVICE(md);
if (dev->id) {
- vi->has_id = true;
vi->id = g_strdup(dev->id);
}
diff --git a/target/arm/monitor.c b/target/arm/monitor.c
index 80c64fa355..ecdd5ee817 100644
--- a/target/arm/monitor.c
+++ b/target/arm/monitor.c
@@ -221,7 +221,6 @@ CpuModelExpansionInfo
*qmp_query_cpu_model_expansion(CpuModelExpansionType type,
qobject_unref(qdict_out);
} else {
expansion_info->model->props = QOBJECT(qdict_out);
- expansion_info->model->has_props = true;
}
object_unref(obj);
diff --git a/target/i386/cpu-sysemu.c b/target/i386/cpu-sysemu.c
index a6f47b7d11..fc97213a73 100644
--- a/target/i386/cpu-sysemu.c
+++ b/target/i386/cpu-sysemu.c
@@ -187,10 +187,8 @@ qmp_query_cpu_model_expansion(CpuModelExpansionType type,
QDict *props = NULL;
const char *base_name;
- xc = x86_cpu_from_model(model->name,
- model->has_props ?
- qobject_to(QDict, model->props) :
- NULL, &err);
+ xc = x86_cpu_from_model(model->name, qobject_to(QDict, model->props),
+ &err);
if (err) {
goto out;
}
@@ -198,7 +196,6 @@ qmp_query_cpu_model_expansion(CpuModelExpansionType type,
props = qdict_new();
ret->model = g_new0(CpuModelInfo, 1);
ret->model->props = QOBJECT(props);
- ret->model->has_props = true;
switch (type) {
case CPU_MODEL_EXPANSION_TYPE_STATIC:
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 1db1278a59..191df95601 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -4901,7 +4901,6 @@ static void x86_cpu_definition_entry(gpointer data,
gpointer user_data)
*/
if (default_cpu_version != CPU_VERSION_LEGACY) {
info->alias_of = x86_cpu_class_get_alias_of(cc);
- info->has_alias_of = !!info->alias_of;
}
QAPI_LIST_PREPEND(*cpu_list, info);
diff --git a/target/s390x/cpu_models_sysemu.c b/target/s390x/cpu_models_sysemu.c
index d8a141a023..63981bf36b 100644
--- a/target/s390x/cpu_models_sysemu.c
+++ b/target/s390x/cpu_models_sysemu.c
@@ -210,7 +210,6 @@ static void cpu_info_from_model(CpuModelInfo *info, const
S390CPUModel *model,
qobject_unref(qdict);
} else {
info->props = QOBJECT(qdict);
- info->has_props = true;
}
}
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 765636a1a5..1bc5b9f29d 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -759,8 +759,6 @@ def need_has(self):
assert self.type
# Temporary hack to support dropping the has_FOO in reviewable chunks
opt_out = [
- 'qapi/machine.json',
- 'qapi/machine-target.json',
'qapi/migration.json',
'qapi/misc.json',
'qapi/net.json',
--
2.37.2
- Re: [PATCH 06/27] qapi acpi: Elide redundant has_FOO in generated C, (continued)
Re: [PATCH 06/27] qapi acpi: Elide redundant has_FOO in generated C, Daniel P . Berrangé, 2022/09/16
[PATCH 26/27] qapi qga: Elide redundant has_FOO in generated C, Markus Armbruster, 2022/09/15
[PATCH 10/27] qapi crypto: Elide redundant has_FOO in generated C, Markus Armbruster, 2022/09/15
[PATCH 22/27] qapi stats: Elide redundant has_FOO in generated C, Markus Armbruster, 2022/09/15
[PATCH 13/27] qapi machine: Elide redundant has_FOO in generated C,
Markus Armbruster <=
[PATCH 25/27] qapi ui: Elide redundant has_FOO in generated C, Markus Armbruster, 2022/09/15
[PATCH 27/27] qapi: Drop temporary logic to support conversion step by step, Markus Armbruster, 2022/09/15
Re: [PATCH 00/27] qapi: Elide redundant has_FOO in generated C, Vladimir Sementsov-Ogievskiy, 2022/09/16