summaryrefslogtreecommitdiffstats
path: root/sys/kern/tty_cons.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-03-09 10:28:05 +0000
committerphk <phk@FreeBSD.org>2003-03-09 10:28:05 +0000
commit0d99ca7a9d9771b5911ab3230fe241c3711c17f5 (patch)
tree08f4afd4e1839a32d9d9e45af4ad738ade44a594 /sys/kern/tty_cons.c
parent707244e8a93de0a5d6a61944cbdbfaf82ec4d056 (diff)
downloadFreeBSD-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.c19
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)
OpenPOWER on IntegriCloud