Il 11/07/2014 10:19, Andrew Jones ha scritto:
+enum virtio_hwdesc_type {
+ VIRTIO_HWDESC_TYPE_DT = 0, /* device tree */
+ NR_VIRTIO_HWDESC_TYPES,
+};
+
+enum virtio_bus_type {
+ VIRTIO_BUS_TYPE_MMIO = 0, /* virtio-mmio */
+ NR_VIRTIO_BUS_TYPES,
+};
+
+struct virtio_bind_bus {
+ bool (*hwdesc_probe)(void);
+ struct virtio_device *(*device_bind)(u32 devid);
+};
+
+static struct virtio_device *vm_dt_device_bind(u32 devid);
+
+static struct virtio_bind_bus
+virtio_bind_busses[NR_VIRTIO_HWDESC_TYPES][NR_VIRTIO_BUS_TYPES] = {
+
+[VIRTIO_HWDESC_TYPE_DT] = {
+
+ [VIRTIO_BUS_TYPE_MMIO] = {
+ .hwdesc_probe = dt_available,
+ .device_bind = vm_dt_device_bind,
+ },
+},
+};
+
If you put this in lib/virtio.c, it is overengineered. It would make
sense if something else provided virtio_bind_busses[][].
I suggest that you drop it and split this file in four:
lib/virtio.c
lib/virtio-mmio.c
lib/virtio-mmio-dt.c
lib/arm/virtio.c
where virtio_bind is in lib/arm/virtio.c.
Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html