diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c --- a/sys/kern/kern_conf.c +++ b/sys/kern/kern_conf.c @@ -1245,6 +1245,19 @@ return (dev->si_name); } +void +dev_copyname(struct cdev *dev, char *path, size_t len) +{ + struct cdevsw *csw; + int ref; + + csw = dev_refthread(dev, &ref); + if (csw != NULL) { + strlcpy(path, dev->si_name, len); + dev_relthread(dev, ref); + } +} + int dev_stdclone(char *name, char **namep, const char *stem, int *unit) { diff --git a/sys/sys/conf.h b/sys/sys/conf.h --- a/sys/sys/conf.h +++ b/sys/sys/conf.h @@ -277,6 +277,7 @@ int destroy_dev_sched(struct cdev *dev); int destroy_dev_sched_cb(struct cdev *dev, void (*cb)(void *), void *arg); void destroy_dev_drain(struct cdevsw *csw); +void dev_copyname(struct cdev *dev, char *path, size_t len); struct cdevsw *dev_refthread(struct cdev *_dev, int *_ref); struct cdevsw *devvn_refthread(struct vnode *vp, struct cdev **devp, int *_ref); void dev_relthread(struct cdev *_dev, int _ref);