diff options
author | phk <phk@FreeBSD.org> | 2003-03-09 10:28:05 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-03-09 10:28:05 +0000 |
commit | 0d99ca7a9d9771b5911ab3230fe241c3711c17f5 (patch) | |
tree | 08f4afd4e1839a32d9d9e45af4ad738ade44a594 /sys/kern/tty_cons.c | |
parent | 707244e8a93de0a5d6a61944cbdbfaf82ec4d056 (diff) | |
download | FreeBSD-src-0d99ca7a9d9771b5911ab3230fe241c3711c17f5.zip FreeBSD-src-0d99ca7a9d9771b5911ab3230fe241c3711c17f5.tar.gz |
Add one little hack to allow us to make MAJOR_AUTO be zero:
Let the console driver ask for major 256 and magically change this to
mean zero.
Diffstat (limited to 'sys/kern/tty_cons.c')
-rw-r--r-- | sys/kern/tty_cons.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/sys/kern/tty_cons.c b/sys/kern/tty_cons.c index cd5c84f..89bed41 100644 --- a/sys/kern/tty_cons.c +++ b/sys/kern/tty_cons.c @@ -69,7 +69,6 @@ static d_ioctl_t cnioctl; static d_poll_t cnpoll; static d_kqfilter_t cnkqfilter; -#define CDEV_MAJOR 0 static struct cdevsw cn_cdevsw = { .d_open = cnopen, .d_close = cnclose, @@ -78,7 +77,12 @@ static struct cdevsw cn_cdevsw = { .d_ioctl = cnioctl, .d_poll = cnpoll, .d_name = "console", - .d_maj = CDEV_MAJOR, + .d_maj = 256, + /* + * XXX: We really want major #0, but zero here means + * XXX: allocate a major number automatically. + * XXX: kern_conf.c knows what to do when it sees 256. + */ .d_flags = D_TTY, .d_kqfilter = cnkqfilter, }; @@ -171,6 +175,7 @@ cninit(void) * Make the best console the preferred console. */ cnselect(best_cn); + make_dev(&cn_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, "console"); } void @@ -582,13 +587,3 @@ cndbctl(int on) if (on) refcount++; } - -static void -cn_drvinit(void *unused) -{ - - make_dev(&cn_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, - "console"); -} - -SYSINIT(cndev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cn_drvinit,NULL) |