Skip to content

Commit

Permalink
qapi pci: Elide redundant has_FOO in generated C
Browse files Browse the repository at this point in the history
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/pci.json.

Said commit explains the transformation in more detail.  The invariant
violations mentioned there do not occur here.

Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20221018062849.3420573-18-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
  • Loading branch information
Markus Armbruster committed Oct 25, 2022
1 parent 0ba5afb commit 44f4b40
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 6 deletions.
2 changes: 0 additions & 2 deletions hw/pci/pci.c
Expand Up @@ -1879,7 +1879,6 @@ static PciDeviceInfo *qmp_query_pci_device(PCIDevice *dev, PCIBus *bus,
info->class_info->q_class = class;
desc = get_class_desc(class);
if (desc->desc) {
info->class_info->has_desc = true;
info->class_info->desc = g_strdup(desc->desc);
}

Expand All @@ -1897,7 +1896,6 @@ static PciDeviceInfo *qmp_query_pci_device(PCIDevice *dev, PCIBus *bus,

type = dev->config[PCI_HEADER_TYPE] & ~PCI_HEADER_TYPE_MULTI_FUNCTION;
if (type == PCI_HEADER_TYPE_BRIDGE) {
info->has_pci_bridge = true;
info->pci_bridge = qmp_query_pci_bridge(dev, bus, bus_num);
} else if (type == PCI_HEADER_TYPE_NORMAL) {
info->id->has_subsystem = info->id->has_subsystem_vendor = true;
Expand Down
6 changes: 3 additions & 3 deletions monitor/hmp-cmds.c
Expand Up @@ -730,7 +730,7 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev)
dev->slot, dev->function);
monitor_printf(mon, " ");

if (dev->class_info->has_desc) {
if (dev->class_info->desc) {
monitor_puts(mon, dev->class_info->desc);
} else {
monitor_printf(mon, "Class %04" PRId64, dev->class_info->q_class);
Expand All @@ -748,7 +748,7 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev)
dev->irq, (char)('A' + dev->irq_pin - 1));
}

if (dev->has_pci_bridge) {
if (dev->pci_bridge) {
monitor_printf(mon, " BUS %" PRId64 ".\n",
dev->pci_bridge->bus->number);
monitor_printf(mon, " secondary bus %" PRId64 ".\n",
Expand Down Expand Up @@ -794,7 +794,7 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev)

monitor_printf(mon, " id \"%s\"\n", dev->qdev_id);

if (dev->has_pci_bridge) {
if (dev->pci_bridge) {
if (dev->pci_bridge->has_devices) {
PciDeviceInfoList *cdev;
for (cdev = dev->pci_bridge->devices; cdev; cdev = cdev->next) {
Expand Down
1 change: 0 additions & 1 deletion scripts/qapi/schema.py
Expand Up @@ -759,7 +759,6 @@ def need_has(self):
assert self.type
# Temporary hack to support dropping the has_FOO in reviewable chunks
opt_out = [
'qapi/pci.json',
'qapi/qdev.json',
'qapi/qom.json',
'qapi/replay.json',
Expand Down

0 comments on commit 44f4b40

Please sign in to comment.