summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-02-15 10:35:33 +0000
committerphk <phk@FreeBSD.org>2004-02-15 10:35:33 +0000
commit4fea4ee178feac41f437356f8d465e4fcef38914 (patch)
treebccdae502ed7fd02eb58fea0a6e6b3426552b2b8 /sys/kern
parentb28b0a820dcca2f8f2ad0d8d22a9d9197795ce23 (diff)
downloadFreeBSD-src-4fea4ee178feac41f437356f8d465e4fcef38914.zip
FreeBSD-src-4fea4ee178feac41f437356f8d465e4fcef38914.tar.gz
Split the initialization of the cdevsw into a separate function.
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_conf.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c
index 21052f1..86c6a41 100644
--- a/sys/kern/kern_conf.c
+++ b/sys/kern/kern_conf.c
@@ -325,16 +325,11 @@ makeudev(int x, int y)
return ((x << 8) | y);
}
-dev_t
-make_dev(struct cdevsw *devsw, int minor, uid_t uid, gid_t gid, int perms, const char *fmt, ...)
+static void
+prep_cdevsw(struct cdevsw *devsw)
{
- dev_t dev;
- va_list ap;
int i;
- KASSERT((minor & ~0xffff00ff) == 0,
- ("Invalid minor (0x%x) in make_dev", minor));
-
if (devsw->d_open == NULL) devsw->d_open = null_open;
if (devsw->d_close == NULL) devsw->d_close = null_close;
if (devsw->d_read == NULL) devsw->d_read = no_read;
@@ -365,7 +360,19 @@ make_dev(struct cdevsw *devsw, int minor, uid_t uid, gid_t gid, int perms, const
reserved_majors[devsw->d_maj] = devsw->d_maj;
}
}
+}
+
+dev_t
+make_dev(struct cdevsw *devsw, int minor, uid_t uid, gid_t gid, int perms, const char *fmt, ...)
+{
+ dev_t dev;
+ va_list ap;
+ int i;
+
+ KASSERT((minor & ~0xffff00ff) == 0,
+ ("Invalid minor (0x%x) in make_dev", minor));
+ prep_cdevsw(devsw);
dev = makedev(devsw->d_maj, minor);
if (dev->si_flags & SI_CHEAPCLONE &&
dev->si_flags & SI_NAMED &&
OpenPOWER on IntegriCloud