Deleted Added
full compact
kern_conf.c (65632) kern_conf.c (65747)
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 * $FreeBSD: head/sys/kern/kern_conf.c 65632 2000-09-09 11:39:59Z phk $
33 * $FreeBSD: head/sys/kern/kern_conf.c 65747 2000-09-11 17:15:33Z phk $
34 */
35
36#include <sys/param.h>
37#include <sys/kernel.h>
38#include <sys/sysctl.h>
39#include <sys/systm.h>
40#include <sys/module.h>
41#include <sys/malloc.h>

--- 268 unchanged lines hidden (view full) ---

310dev_t
311make_dev(struct cdevsw *devsw, int minor, uid_t uid, gid_t gid, int perms, char *fmt, ...)
312{
313 dev_t dev;
314 va_list ap;
315 int i;
316
317 dev = makedev(devsw->d_maj, minor);
34 */
35
36#include <sys/param.h>
37#include <sys/kernel.h>
38#include <sys/sysctl.h>
39#include <sys/systm.h>
40#include <sys/module.h>
41#include <sys/malloc.h>

--- 268 unchanged lines hidden (view full) ---

310dev_t
311make_dev(struct cdevsw *devsw, int minor, uid_t uid, gid_t gid, int perms, char *fmt, ...)
312{
313 dev_t dev;
314 va_list ap;
315 int i;
316
317 dev = makedev(devsw->d_maj, minor);
318 if (dev->si_flags & SI_NAMED) {
319 printf( "WARNING: Driver mistake: repeat make_dev(\"%s\")\n",
320 dev->si_name);
321 return (dev);
322 }
318 va_start(ap, fmt);
319 i = kvprintf(fmt, NULL, dev->si_name, 32, ap);
320 dev->si_name[i] = '\0';
321 va_end(ap);
322 dev->si_devsw = devsw;
323 dev->si_uid = uid;
324 dev->si_gid = gid;
325 dev->si_mode = perms;
323 va_start(ap, fmt);
324 i = kvprintf(fmt, NULL, dev->si_name, 32, ap);
325 dev->si_name[i] = '\0';
326 va_end(ap);
327 dev->si_devsw = devsw;
328 dev->si_uid = uid;
329 dev->si_gid = gid;
330 dev->si_mode = perms;
331 dev->si_flags |= SI_NAMED;
326
327 if (devfs_create_hook)
328 devfs_create_hook(dev);
329 return (dev);
330}
331
332dev_t
333make_dev_alias(dev_t pdev, char *fmt, ...)
334{
335 dev_t dev;
336 va_list ap;
337 int i;
338
339 dev = allocdev();
340 dev->si_flags |= SI_ALIAS;
332
333 if (devfs_create_hook)
334 devfs_create_hook(dev);
335 return (dev);
336}
337
338dev_t
339make_dev_alias(dev_t pdev, char *fmt, ...)
340{
341 dev_t dev;
342 va_list ap;
343 int i;
344
345 dev = allocdev();
346 dev->si_flags |= SI_ALIAS;
347 dev->si_flags |= SI_NAMED;
341 dev->si_drv1 = pdev;
342 LIST_INSERT_HEAD(&pdev->si_names, dev, si_hash);
343
344 va_start(ap, fmt);
345 i = kvprintf(fmt, NULL, dev->si_name, 32, ap);
346 dev->si_name[i] = '\0';
347 va_end(ap);
348
349 if (devfs_create_hook)
350 devfs_create_hook(dev);
351 return (dev);
352}
353
354void
355destroy_dev(dev_t dev)
356{
348 dev->si_drv1 = pdev;
349 LIST_INSERT_HEAD(&pdev->si_names, dev, si_hash);
350
351 va_start(ap, fmt);
352 i = kvprintf(fmt, NULL, dev->si_name, 32, ap);
353 dev->si_name[i] = '\0';
354 va_end(ap);
355
356 if (devfs_create_hook)
357 devfs_create_hook(dev);
358 return (dev);
359}
360
361void
362destroy_dev(dev_t dev)
363{
364
365 if (!(dev->si_flags & SI_NAMED)) {
366 printf( "WARNING: Driver mistake: destroy_dev on %d/%d\n",
367 major(dev), minor(dev));
368 return;
369 }
370
357 if (devfs_destroy_hook)
358 devfs_destroy_hook(dev);
359 dev->si_drv1 = 0;
360 dev->si_drv2 = 0;
361 dev->si_devsw = 0;
371 if (devfs_destroy_hook)
372 devfs_destroy_hook(dev);
373 dev->si_drv1 = 0;
374 dev->si_drv2 = 0;
375 dev->si_devsw = 0;
376 dev->si_flags &= ~SI_NAMED;
377 dev->si_flags &= ~SI_ALIAS;
362 freedev(dev);
363}
364
365const char *
366devtoname(dev_t dev)
367{
368 char *p;
369 int mynor;

--- 66 unchanged lines hidden ---
378 freedev(dev);
379}
380
381const char *
382devtoname(dev_t dev)
383{
384 char *p;
385 int mynor;

--- 66 unchanged lines hidden ---