Deleted Added
full compact
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 ---