diff options
-rw-r--r-- | sys/kern/kern_conf.c | 13 | ||||
-rw-r--r-- | sys/sys/conf.h | 1 | ||||
-rw-r--r-- | sys/sys/linedisc.h | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c index 2f3bf92..9935b85 100644 --- a/sys/kern/kern_conf.c +++ b/sys/kern/kern_conf.c @@ -300,6 +300,19 @@ make_dev(struct cdevsw *devsw, int minor, uid_t uid, gid_t gid, int perms, const return (dev); } +int +dev_named(dev_t pdev, const char *name) +{ + dev_t cdev; + + if (strcmp(devtoname(pdev), name) == 0) + return (1); + LIST_FOREACH(cdev, &pdev->si_children, si_siblings) + if (strcmp(devtoname(cdev), name) == 0) + return (1); + return (0); +} + void dev_depends(dev_t pdev, dev_t cdev) { diff --git a/sys/sys/conf.h b/sys/sys/conf.h index f7ce9c7..5c7bf82 100644 --- a/sys/sys/conf.h +++ b/sys/sys/conf.h @@ -315,6 +315,7 @@ int count_dev __P((dev_t dev)); void destroy_dev __P((dev_t dev)); struct cdevsw *devsw __P((dev_t dev)); const char *devtoname __P((dev_t dev)); +int dev_named __P((dev_t pdev, const char *name)); void dev_depends __P((dev_t pdev, dev_t cdev)); void freedev __P((dev_t dev)); int iszerodev __P((dev_t dev)); diff --git a/sys/sys/linedisc.h b/sys/sys/linedisc.h index f7ce9c7..5c7bf82 100644 --- a/sys/sys/linedisc.h +++ b/sys/sys/linedisc.h @@ -315,6 +315,7 @@ int count_dev __P((dev_t dev)); void destroy_dev __P((dev_t dev)); struct cdevsw *devsw __P((dev_t dev)); const char *devtoname __P((dev_t dev)); +int dev_named __P((dev_t pdev, const char *name)); void dev_depends __P((dev_t pdev, dev_t cdev)); void freedev __P((dev_t dev)); int iszerodev __P((dev_t dev)); |