Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F110242485
D20407.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D20407.diff
View Options
Index: head/sys/dev/virtio/balloon/virtio_balloon.c
===================================================================
--- head/sys/dev/virtio/balloon/virtio_balloon.c
+++ head/sys/dev/virtio/balloon/virtio_balloon.c
@@ -158,16 +158,14 @@
MODULE_VERSION(virtio_balloon, 1);
MODULE_DEPEND(virtio_balloon, virtio, 1, 1, 1);
+VIRTIO_SIMPLE_PNPTABLE(virtio_balloon, VIRTIO_ID_BALLOON,
+ "VirtIO Balloon Adapter");
+VIRTIO_SIMPLE_PNPINFO(virtio_pci, virtio_balloon);
+
static int
vtballoon_probe(device_t dev)
{
-
- if (virtio_get_device_type(dev) != VIRTIO_ID_BALLOON)
- return (ENXIO);
-
- device_set_desc(dev, "VirtIO Balloon Adapter");
-
- return (BUS_PROBE_DEFAULT);
+ return (VIRTIO_SIMPLE_PROBE(dev, virtio_balloon));
}
static int
Index: head/sys/dev/virtio/block/virtio_blk.c
===================================================================
--- head/sys/dev/virtio/block/virtio_blk.c
+++ head/sys/dev/virtio/block/virtio_blk.c
@@ -261,6 +261,10 @@
MODULE_VERSION(virtio_blk, 1);
MODULE_DEPEND(virtio_blk, virtio, 1, 1, 1);
+VIRTIO_SIMPLE_PNPTABLE(virtio_blk, VIRTIO_ID_BLOCK, "VirtIO Block Adapter");
+VIRTIO_SIMPLE_PNPINFO(virtio_mmio, virtio_blk);
+VIRTIO_SIMPLE_PNPINFO(virtio_pci, virtio_blk);
+
static int
vtblk_modevent(module_t mod, int type, void *unused)
{
@@ -285,13 +289,7 @@
static int
vtblk_probe(device_t dev)
{
-
- if (virtio_get_device_type(dev) != VIRTIO_ID_BLOCK)
- return (ENXIO);
-
- device_set_desc(dev, "VirtIO Block Adapter");
-
- return (BUS_PROBE_DEFAULT);
+ return (VIRTIO_SIMPLE_PROBE(dev, virtio_blk));
}
static int
Index: head/sys/dev/virtio/console/virtio_console.c
===================================================================
--- head/sys/dev/virtio/console/virtio_console.c
+++ head/sys/dev/virtio/console/virtio_console.c
@@ -261,6 +261,10 @@
MODULE_VERSION(virtio_console, 1);
MODULE_DEPEND(virtio_console, virtio, 1, 1, 1);
+VIRTIO_SIMPLE_PNPTABLE(virtio_console, VIRTIO_ID_CONSOLE,
+ "VirtIO Console Adapter");
+VIRTIO_SIMPLE_PNPINFO(virtio_pci, virtio_console);
+
static int
vtcon_modevent(module_t mod, int type, void *unused)
{
@@ -305,13 +309,7 @@
static int
vtcon_probe(device_t dev)
{
-
- if (virtio_get_device_type(dev) != VIRTIO_ID_CONSOLE)
- return (ENXIO);
-
- device_set_desc(dev, "VirtIO Console Adapter");
-
- return (BUS_PROBE_DEFAULT);
+ return (VIRTIO_SIMPLE_PROBE(dev, virtio_console));
}
static int
Index: head/sys/dev/virtio/network/if_vtnet.c
===================================================================
--- head/sys/dev/virtio/network/if_vtnet.c
+++ head/sys/dev/virtio/network/if_vtnet.c
@@ -325,6 +325,10 @@
MODULE_DEPEND(vtnet, netmap, 1, 1, 1);
#endif /* DEV_NETMAP */
+VIRTIO_SIMPLE_PNPTABLE(vtnet, VIRTIO_ID_NETWORK, "VirtIO Networking Adapter");
+VIRTIO_SIMPLE_PNPINFO(virtio_mmio, vtnet);
+VIRTIO_SIMPLE_PNPINFO(virtio_pci, vtnet);
+
static int
vtnet_modevent(module_t mod, int type, void *unused)
{
@@ -361,13 +365,7 @@
static int
vtnet_probe(device_t dev)
{
-
- if (virtio_get_device_type(dev) != VIRTIO_ID_NETWORK)
- return (ENXIO);
-
- device_set_desc(dev, "VirtIO Networking Adapter");
-
- return (BUS_PROBE_DEFAULT);
+ return (VIRTIO_SIMPLE_PROBE(dev, vtnet));
}
static int
Index: head/sys/dev/virtio/random/virtio_random.c
===================================================================
--- head/sys/dev/virtio/random/virtio_random.c
+++ head/sys/dev/virtio/random/virtio_random.c
@@ -102,6 +102,10 @@
MODULE_DEPEND(virtio_random, virtio, 1, 1, 1);
MODULE_DEPEND(virtio_random, random_device, 1, 1, 1);
+VIRTIO_SIMPLE_PNPTABLE(virtio_random, VIRTIO_ID_ENTROPY,
+ "VirtIO Entropy Adapter");
+VIRTIO_SIMPLE_PNPINFO(virtio_pci, virtio_random);
+
static int
vtrnd_modevent(module_t mod, int type, void *unused)
{
@@ -125,13 +129,7 @@
static int
vtrnd_probe(device_t dev)
{
-
- if (virtio_get_device_type(dev) != VIRTIO_ID_ENTROPY)
- return (ENXIO);
-
- device_set_desc(dev, "VirtIO Entropy Adapter");
-
- return (BUS_PROBE_DEFAULT);
+ return (VIRTIO_SIMPLE_PROBE(dev, virtio_random));
}
static int
Index: head/sys/dev/virtio/scsi/virtio_scsi.c
===================================================================
--- head/sys/dev/virtio/scsi/virtio_scsi.c
+++ head/sys/dev/virtio/scsi/virtio_scsi.c
@@ -233,6 +233,9 @@
MODULE_DEPEND(virtio_scsi, virtio, 1, 1, 1);
MODULE_DEPEND(virtio_scsi, cam, 1, 1, 1);
+VIRTIO_SIMPLE_PNPTABLE(virtio_scsi, VIRTIO_ID_SCSI, "VirtIO SCSI Adapter");
+VIRTIO_SIMPLE_PNPINFO(virtio_pci, virtio_scsi);
+
static int
vtscsi_modevent(module_t mod, int type, void *unused)
{
@@ -256,13 +259,7 @@
static int
vtscsi_probe(device_t dev)
{
-
- if (virtio_get_device_type(dev) != VIRTIO_ID_SCSI)
- return (ENXIO);
-
- device_set_desc(dev, "VirtIO SCSI Adapter");
-
- return (BUS_PROBE_DEFAULT);
+ return (VIRTIO_SIMPLE_PROBE(dev, virtio_scsi));
}
static int
Index: head/sys/dev/virtio/virtio.h
===================================================================
--- head/sys/dev/virtio/virtio.h
+++ head/sys/dev/virtio/virtio.h
@@ -63,6 +63,21 @@
const char *vfd_str;
};
+struct virtio_pnp_match {
+ uint32_t device_type;
+ const char *description;
+};
+#define VIRTIO_SIMPLE_PNPTABLE(driver, devtype, desc) \
+ static const struct virtio_pnp_match driver ## _match = { \
+ .device_type = devtype, \
+ .description = desc, \
+ }
+#define VIRTIO_SIMPLE_PNPINFO(bus, driver) \
+ MODULE_PNP_INFO("U32:device_type;D:#", bus, driver, \
+ &driver ## _match, 1)
+#define VIRTIO_SIMPLE_PROBE(dev, driver) \
+ (virtio_simple_probe(dev, &driver ## _match))
+
const char *virtio_device_name(uint16_t devid);
void virtio_describe(device_t dev, const char *msg,
uint64_t features, struct virtio_feature_desc *feature_desc);
@@ -145,5 +160,15 @@
VIRTIO_WRITE_IVAR(feature_desc, VIRTIO_IVAR_FEATURE_DESC);
#undef VIRTIO_WRITE_IVAR
+
+static inline int
+virtio_simple_probe(device_t dev, const struct virtio_pnp_match *match)
+{
+
+ if (virtio_get_device_type(dev) != match->device_type)
+ return (ENXIO);
+ device_set_desc(dev, match->description);
+ return (BUS_PROBE_DEFAULT);
+}
#endif /* _VIRTIO_H_ */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Feb 16, 3:29 PM (16 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16675517
Default Alt Text
D20407.diff (6 KB)
Attached To
Mode
D20407: virtio(4): Add PNP match metadata for virtio devices
Attached
Detach File
Event Timeline
Log In to Comment