summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_bus.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/subr_bus.c')
-rw-r--r--sys/kern/subr_bus.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index b8131fe..7492a4b 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -1199,6 +1199,25 @@ device_shutdown(device_t dev)
return DEVICE_SHUTDOWN(dev);
}
+int
+device_set_unit(device_t dev, int unit)
+{
+ devclass_t dc;
+ int err;
+
+ dc = device_get_devclass(dev);
+ if (unit < dc->maxunit && dc->devices[unit])
+ return EBUSY;
+ err = devclass_delete_device(dc, dev);
+ if (err)
+ return err;
+ dev->unit = unit;
+ err = devclass_add_device(dc, dev);
+ if (err)
+ return err;
+ return 0;
+}
+
#ifdef DEVICE_SYSCTLS
/*
OpenPOWER on IntegriCloud