kern_conf.c (43301) | kern_conf.c (44975) |
---|---|
1/*- 2 * Parts Copyright (c) 1995 Terrence R. Lambert 3 * Copyright (c) 1995 Julian R. Elischer 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 16 unchanged lines hidden (view full) --- 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * | 1/*- 2 * Parts Copyright (c) 1995 Terrence R. Lambert 3 * Copyright (c) 1995 Julian R. Elischer 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 16 unchanged lines hidden (view full) --- 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * |
33 * $Id: kern_conf.c,v 1.29 1998/11/14 21:58:51 wollman Exp $ | 33 * $Id: kern_conf.c,v 1.30 1999/01/27 21:49:55 dillon Exp $ |
34 */ 35 36#include <sys/param.h> 37#include <sys/systm.h> 38#include <sys/module.h> 39#include <sys/conf.h> 40#include <sys/vnode.h> 41 --- 126 unchanged lines hidden (view full) --- 168int 169cdevsw_module_handler(module_t mod, int what, void *arg) 170{ 171 struct cdevsw_module_data* data = (struct cdevsw_module_data*) arg; 172 int error; 173 174 switch (what) { 175 case MOD_LOAD: | 34 */ 35 36#include <sys/param.h> 37#include <sys/systm.h> 38#include <sys/module.h> 39#include <sys/conf.h> 40#include <sys/vnode.h> 41 --- 126 unchanged lines hidden (view full) --- 168int 169cdevsw_module_handler(module_t mod, int what, void *arg) 170{ 171 struct cdevsw_module_data* data = (struct cdevsw_module_data*) arg; 172 int error; 173 174 switch (what) { 175 case MOD_LOAD: |
176 if ((error = cdevsw_add(&data->dev, data->cdevsw, NULL)) != 0) 177 return error; 178 break; | 176 error = cdevsw_add(&data->dev, data->cdevsw, NULL); 177 if (!error && data->chainevh) 178 error = data->chainevh(mod, what, data->chainarg); 179 return error; |
179 180 case MOD_UNLOAD: | 180 181 case MOD_UNLOAD: |
181 if ((error = cdevsw_add(&data->dev, NULL, NULL)) != 0) 182 return error; 183 break; | 182 if (data->chainevh) { 183 error = data->chainevh(mod, what, data->chainarg); 184 if (error) 185 return error; 186 } 187 return cdevsw_add(&data->dev, NULL, NULL); |
184 } 185 186 if (data->chainevh) 187 return data->chainevh(mod, what, data->chainarg); 188 else 189 return 0; 190} 191 192int 193bdevsw_module_handler(module_t mod, int what, void* arg) 194{ 195 struct bdevsw_module_data* data = (struct bdevsw_module_data*) arg; 196 int error; 197 198 switch (what) { 199 case MOD_LOAD: | 188 } 189 190 if (data->chainevh) 191 return data->chainevh(mod, what, data->chainarg); 192 else 193 return 0; 194} 195 196int 197bdevsw_module_handler(module_t mod, int what, void* arg) 198{ 199 struct bdevsw_module_data* data = (struct bdevsw_module_data*) arg; 200 int error; 201 202 switch (what) { 203 case MOD_LOAD: |
200 if ((error = cdevsw_add(&data->cdev, data->cdevsw, NULL)) != 0) 201 return error; 202 if ((error = bdevsw_add(&data->bdev, data->cdevsw, NULL)) != 0) { 203 cdevsw_add(&data->bdev, NULL, NULL); 204 return error; 205 } 206 break; | 204 error = cdevsw_add(&data->cdev, data->cdevsw, NULL); 205 if (!error) 206 error = bdevsw_add(&data->bdev, data->cdevsw, NULL); 207 if (!error && data->chainevh) 208 error = data->chainevh(mod, what, data->chainarg); 209 return error; |
207 208 case MOD_UNLOAD: | 210 211 case MOD_UNLOAD: |
209 if ((error = bdevsw_add(&data->bdev, NULL, NULL)) != 0) 210 return error; 211 if ((error = cdevsw_add(&data->cdev, NULL, NULL)) != 0) 212 return error; 213 break; | 212 if (data->chainevh) { 213 error = data->chainevh(mod, what, data->chainarg); 214 if (error) 215 return error; 216 } 217 error = bdevsw_add(&data->bdev, NULL, NULL); 218 if (!error) 219 error = cdevsw_add(&data->cdev, NULL, NULL); 220 return error; |
214 } 215 216 if (data->chainevh) 217 return data->chainevh(mod, what, data->chainarg); 218 else 219 return 0; 220} | 221 } 222 223 if (data->chainevh) 224 return data->chainevh(mod, what, data->chainarg); 225 else 226 return 0; 227} |