|
|
| version 1.6, 2004/01/20 05:04:06 | version 1.7, 2004/05/13 00:23:39 |
|---|---|
| Line 215 make_dev(struct cdevsw *devsw, int minor | Line 215 make_dev(struct cdevsw *devsw, int minor |
| return (dev); | return (dev); |
| } | } |
| /* | |
| * Because the device might not be immediately removed, destroy_dev | |
| * must clean out any potential module data references and install | |
| * a device switch that returns an error for all future requests. | |
| */ | |
| void | void |
| destroy_dev(dev_t dev) | destroy_dev(dev_t dev) |
| { | { |
| static struct cdevsw dead_cdevsw; | |
| if (dead_cdevsw.d_port == NULL) | |
| compile_devsw(&dead_cdevsw); | |
| dev->si_drv1 = 0; | dev->si_drv1 = 0; |
| dev->si_drv2 = 0; | dev->si_drv2 = 0; |
| dev->si_devsw = 0; | dev->si_devsw = &dead_cdevsw; |
| freedev(dev); | freedev(dev); |
| } | } |