diff mbox

[v1,11/15] qdev: Add qdev_pass_all_gpios API

Message ID 2b1cacbb49ec4ad0d83d1313477477e47b79b8f2.1438200827.git.alistair.francis@xilinx.com
State New
Headers show

Commit Message

Alistair Francis July 29, 2015, 8:25 p.m. UTC
From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

For passing all GPIOs of all names from a contained device to a
container.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---

 hw/core/qdev.c         |    9 +++++++++
 include/hw/qdev-core.h |    1 +
 2 files changed, 10 insertions(+), 0 deletions(-)
diff mbox

Patch

diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index 3594151..75f8139 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -576,6 +576,15 @@  void qdev_pass_gpios(DeviceState *dev, DeviceState *container,
     QLIST_INSERT_HEAD(&container->gpios, ngl, node);
 }
 
+void qdev_pass_all_gpios(DeviceState *dev, DeviceState *container)
+{
+    NamedGPIOList *ngl;
+
+    QLIST_FOREACH(ngl, &dev->gpios, node) {
+        qdev_pass_gpios(dev, container, ngl->name);
+    }
+}
+
 BusState *qdev_get_child_bus(DeviceState *dev, const char *name)
 {
     BusState *bus;
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index 0a21d57..1cf44e1 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -299,6 +299,7 @@  void qdev_init_gpio_out_named(DeviceState *dev, qemu_irq *pins,
 
 void qdev_pass_gpios(DeviceState *dev, DeviceState *container,
                      const char *name);
+void qdev_pass_all_gpios(DeviceState *dev, DeviceState *container);
 
 BusState *qdev_get_parent_bus(DeviceState *dev);