kern_conf.c (125800) | kern_conf.c (125846) |
---|---|
1/*- 2 * Copyright (c) 1999-2002 Poul-Henning Kamp 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1999-2002 Poul-Henning Kamp 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> |
28__FBSDID("$FreeBSD: head/sys/kern/kern_conf.c 125800 2004-02-14 17:19:43Z phk $"); | 28__FBSDID("$FreeBSD: head/sys/kern/kern_conf.c 125846 2004-02-15 10:35:33Z phk $"); |
29 30#include <sys/param.h> 31#include <sys/kernel.h> 32#include <sys/systm.h> 33#include <sys/bio.h> 34#include <sys/lock.h> 35#include <sys/mutex.h> 36#include <sys/sysctl.h> --- 283 unchanged lines hidden (view full) --- 320} 321 322udev_t 323makeudev(int x, int y) 324{ 325 return ((x << 8) | y); 326} 327 | 29 30#include <sys/param.h> 31#include <sys/kernel.h> 32#include <sys/systm.h> 33#include <sys/bio.h> 34#include <sys/lock.h> 35#include <sys/mutex.h> 36#include <sys/sysctl.h> --- 283 unchanged lines hidden (view full) --- 320} 321 322udev_t 323makeudev(int x, int y) 324{ 325 return ((x << 8) | y); 326} 327 |
328dev_t 329make_dev(struct cdevsw *devsw, int minor, uid_t uid, gid_t gid, int perms, const char *fmt, ...) | 328static void 329prep_cdevsw(struct cdevsw *devsw) |
330{ | 330{ |
331 dev_t dev; 332 va_list ap; | |
333 int i; 334 | 331 int i; 332 |
335 KASSERT((minor & ~0xffff00ff) == 0, 336 ("Invalid minor (0x%x) in make_dev", minor)); 337 | |
338 if (devsw->d_open == NULL) devsw->d_open = null_open; 339 if (devsw->d_close == NULL) devsw->d_close = null_close; 340 if (devsw->d_read == NULL) devsw->d_read = no_read; 341 if (devsw->d_write == NULL) devsw->d_write = no_write; 342 if (devsw->d_ioctl == NULL) devsw->d_ioctl = no_ioctl; 343 if (devsw->d_poll == NULL) devsw->d_poll = no_poll; 344 if (devsw->d_mmap == NULL) devsw->d_mmap = no_mmap; 345 if (devsw->d_strategy == NULL) devsw->d_strategy = no_strategy; --- 14 unchanged lines hidden (view full) --- 360 ("Invalid major (%d) in make_dev", devsw->d_maj)); 361 if (reserved_majors[devsw->d_maj] != devsw->d_maj) { 362 printf("WARNING: driver \"%s\" used %s %d\n", 363 devsw->d_name, "unreserved major device number", 364 devsw->d_maj); 365 reserved_majors[devsw->d_maj] = devsw->d_maj; 366 } 367 } | 333 if (devsw->d_open == NULL) devsw->d_open = null_open; 334 if (devsw->d_close == NULL) devsw->d_close = null_close; 335 if (devsw->d_read == NULL) devsw->d_read = no_read; 336 if (devsw->d_write == NULL) devsw->d_write = no_write; 337 if (devsw->d_ioctl == NULL) devsw->d_ioctl = no_ioctl; 338 if (devsw->d_poll == NULL) devsw->d_poll = no_poll; 339 if (devsw->d_mmap == NULL) devsw->d_mmap = no_mmap; 340 if (devsw->d_strategy == NULL) devsw->d_strategy = no_strategy; --- 14 unchanged lines hidden (view full) --- 355 ("Invalid major (%d) in make_dev", devsw->d_maj)); 356 if (reserved_majors[devsw->d_maj] != devsw->d_maj) { 357 printf("WARNING: driver \"%s\" used %s %d\n", 358 devsw->d_name, "unreserved major device number", 359 devsw->d_maj); 360 reserved_majors[devsw->d_maj] = devsw->d_maj; 361 } 362 } |
363} |
|
368 | 364 |
365dev_t 366make_dev(struct cdevsw *devsw, int minor, uid_t uid, gid_t gid, int perms, const char *fmt, ...) 367{ 368 dev_t dev; 369 va_list ap; 370 int i; 371 372 KASSERT((minor & ~0xffff00ff) == 0, 373 ("Invalid minor (0x%x) in make_dev", minor)); 374 375 prep_cdevsw(devsw); |
|
369 dev = makedev(devsw->d_maj, minor); 370 if (dev->si_flags & SI_CHEAPCLONE && 371 dev->si_flags & SI_NAMED && 372 dev->si_devsw == devsw) { 373 /* 374 * This is allowed as it removes races and generally 375 * simplifies cloning devices. 376 */ --- 171 unchanged lines hidden --- | 376 dev = makedev(devsw->d_maj, minor); 377 if (dev->si_flags & SI_CHEAPCLONE && 378 dev->si_flags & SI_NAMED && 379 dev->si_devsw == devsw) { 380 /* 381 * This is allowed as it removes races and generally 382 * simplifies cloning devices. 383 */ --- 171 unchanged lines hidden --- |