summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_conf.c13
-rw-r--r--sys/sys/conf.h1
-rw-r--r--sys/sys/linedisc.h1
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));
OpenPOWER on IntegriCloud