hyperv/ic: Cleanup driver glue.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8849
This commit is contained in:
sephe 2016-12-20 07:34:44 +00:00
parent ccc1d74c5c
commit 1e8a5107d0
3 changed files with 78 additions and 66 deletions

View File

@ -46,6 +46,9 @@ __FBSDID("$FreeBSD$");
#define VMBUS_HEARTBEAT_MSGVER \
VMBUS_IC_VERSION(VMBUS_HEARTBEAT_MSGVER_MAJOR, 0)
static int vmbus_heartbeat_probe(device_t);
static int vmbus_heartbeat_attach(device_t);
static const struct vmbus_ic_desc vmbus_heartbeat_descs[] = {
{
.ic_guid = { .hv_guid = {
@ -56,6 +59,27 @@ static const struct vmbus_ic_desc vmbus_heartbeat_descs[] = {
VMBUS_IC_DESC_END
};
static device_method_t vmbus_heartbeat_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, vmbus_heartbeat_probe),
DEVMETHOD(device_attach, vmbus_heartbeat_attach),
DEVMETHOD(device_detach, vmbus_ic_detach),
DEVMETHOD_END
};
static driver_t vmbus_heartbeat_driver = {
"hvheartbeat",
vmbus_heartbeat_methods,
sizeof(struct vmbus_ic_softc)
};
static devclass_t vmbus_heartbeat_devclass;
DRIVER_MODULE(hv_heartbeat, vmbus, vmbus_heartbeat_driver,
vmbus_heartbeat_devclass, NULL, NULL);
MODULE_VERSION(hv_heartbeat, 1);
MODULE_DEPEND(hv_heartbeat, vmbus, 1, 1, 1);
static void
vmbus_heartbeat_cb(struct vmbus_channel *chan, void *xsc)
{
@ -114,35 +138,15 @@ vmbus_heartbeat_cb(struct vmbus_channel *chan, void *xsc)
}
static int
hv_heartbeat_probe(device_t dev)
vmbus_heartbeat_probe(device_t dev)
{
return (vmbus_ic_probe(dev, vmbus_heartbeat_descs));
}
static int
hv_heartbeat_attach(device_t dev)
vmbus_heartbeat_attach(device_t dev)
{
return (vmbus_ic_attach(dev, vmbus_heartbeat_cb));
}
static device_method_t heartbeat_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, hv_heartbeat_probe),
DEVMETHOD(device_attach, hv_heartbeat_attach),
DEVMETHOD(device_detach, vmbus_ic_detach),
{ 0, 0 }
};
static driver_t heartbeat_driver = {
"hvheartbeat",
heartbeat_methods,
sizeof(struct vmbus_ic_softc)
};
static devclass_t heartbeat_devclass;
DRIVER_MODULE(hv_heartbeat, vmbus, heartbeat_driver, heartbeat_devclass, NULL, NULL);
MODULE_VERSION(hv_heartbeat, 1);
MODULE_DEPEND(hv_heartbeat, vmbus, 1, 1, 1);

View File

@ -47,6 +47,9 @@ __FBSDID("$FreeBSD$");
#define VMBUS_SHUTDOWN_MSGVER \
VMBUS_IC_VERSION(VMBUS_SHUTDOWN_MSGVER_MAJOR, 0)
static int vmbus_shutdown_probe(device_t);
static int vmbus_shutdown_attach(device_t);
static const struct vmbus_ic_desc vmbus_shutdown_descs[] = {
{
.ic_guid = { .hv_guid = {
@ -57,6 +60,27 @@ static const struct vmbus_ic_desc vmbus_shutdown_descs[] = {
VMBUS_IC_DESC_END
};
static device_method_t vmbus_shutdown_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, vmbus_shutdown_probe),
DEVMETHOD(device_attach, vmbus_shutdown_attach),
DEVMETHOD(device_detach, vmbus_ic_detach),
DEVMETHOD_END
};
static driver_t vmbus_shutdown_driver = {
"hvshutdown",
vmbus_shutdown_methods,
sizeof(struct vmbus_ic_softc)
};
static devclass_t vmbus_shutdown_devclass;
DRIVER_MODULE(hv_shutdown, vmbus, vmbus_shutdown_driver,
vmbus_shutdown_devclass, NULL, NULL);
MODULE_VERSION(hv_shutdown, 1);
MODULE_DEPEND(hv_shutdown, vmbus, 1, 1, 1);
static void
vmbus_shutdown_cb(struct vmbus_channel *chan, void *xsc)
{
@ -129,35 +153,15 @@ vmbus_shutdown_cb(struct vmbus_channel *chan, void *xsc)
}
static int
hv_shutdown_probe(device_t dev)
vmbus_shutdown_probe(device_t dev)
{
return (vmbus_ic_probe(dev, vmbus_shutdown_descs));
}
static int
hv_shutdown_attach(device_t dev)
vmbus_shutdown_attach(device_t dev)
{
return (vmbus_ic_attach(dev, vmbus_shutdown_cb));
}
static device_method_t shutdown_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, hv_shutdown_probe),
DEVMETHOD(device_attach, hv_shutdown_attach),
DEVMETHOD(device_detach, vmbus_ic_detach),
{ 0, 0 }
};
static driver_t shutdown_driver = {
"hvshutdown",
shutdown_methods,
sizeof(struct vmbus_ic_softc)
};
static devclass_t shutdown_devclass;
DRIVER_MODULE(hv_shutdown, vmbus, shutdown_driver, shutdown_devclass, NULL, NULL);
MODULE_VERSION(hv_shutdown, 1);
MODULE_DEPEND(hv_shutdown, vmbus, 1, 1, 1);

View File

@ -52,6 +52,9 @@ __FBSDID("$FreeBSD$");
((sc)->ic_msgver >= VMBUS_IC_VERSION(4, 0) && \
(hyperv_features & CPUID_HV_MSR_TIME_REFCNT))
static int vmbus_timesync_probe(device_t);
static int vmbus_timesync_attach(device_t);
static const struct vmbus_ic_desc vmbus_timesync_descs[] = {
{
.ic_guid = { .hv_guid = {
@ -62,6 +65,27 @@ static const struct vmbus_ic_desc vmbus_timesync_descs[] = {
VMBUS_IC_DESC_END
};
static device_method_t vmbus_timesync_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, vmbus_timesync_probe),
DEVMETHOD(device_attach, vmbus_timesync_attach),
DEVMETHOD(device_detach, vmbus_ic_detach),
DEVMETHOD_END
};
static driver_t vmbus_timesync_driver = {
"hvtimesync",
vmbus_timesync_methods,
sizeof(struct vmbus_ic_softc)
};
static devclass_t vmbus_timesync_devclass;
DRIVER_MODULE(hv_timesync, vmbus, vmbus_timesync_driver,
vmbus_timesync_devclass, NULL, NULL);
MODULE_VERSION(hv_timesync, 1);
MODULE_DEPEND(hv_timesync, vmbus, 1, 1, 1);
SYSCTL_NODE(_hw, OID_AUTO, hvtimesync, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
"Hyper-V timesync interface");
@ -207,35 +231,15 @@ vmbus_timesync_cb(struct vmbus_channel *chan, void *xsc)
}
static int
hv_timesync_probe(device_t dev)
vmbus_timesync_probe(device_t dev)
{
return (vmbus_ic_probe(dev, vmbus_timesync_descs));
}
static int
hv_timesync_attach(device_t dev)
vmbus_timesync_attach(device_t dev)
{
return (vmbus_ic_attach(dev, vmbus_timesync_cb));
}
static device_method_t timesync_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, hv_timesync_probe),
DEVMETHOD(device_attach, hv_timesync_attach),
DEVMETHOD(device_detach, vmbus_ic_detach),
{ 0, 0 }
};
static driver_t timesync_driver = {
"hvtimesync",
timesync_methods,
sizeof(struct vmbus_ic_softc)
};
static devclass_t timesync_devclass;
DRIVER_MODULE(hv_timesync, vmbus, timesync_driver, timesync_devclass, NULL, NULL);
MODULE_VERSION(hv_timesync, 1);
MODULE_DEPEND(hv_timesync, vmbus, 1, 1, 1);