summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_cons.c
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2014-07-02 13:24:21 +0000
committeremaste <emaste@FreeBSD.org>2014-07-02 13:24:21 +0000
commit9825a4c80655e3cdb8527dc1f056c63016ed08e9 (patch)
tree9d29c4db53b73ea523b6c246c6e969f9e69ac429 /sys/kern/kern_cons.c
parent39ab708a856a41b70f1934b000d5e8fbd3141f3f (diff)
downloadFreeBSD-src-9825a4c80655e3cdb8527dc1f056c63016ed08e9.zip
FreeBSD-src-9825a4c80655e3cdb8527dc1f056c63016ed08e9.tar.gz
Prefer vt(4) for UEFI boot
The UEFI framebuffer driver vt_efifb requires vt(4), so add a mechanism for the startup routine to set the preferred console. This change is ugly because console init happens very early in the boot, making a cleaner interface difficult. This change is intended only to facilitate the sc(4) / vt(4) transition, and can be reverted once vt(4) is the default.
Diffstat (limited to 'sys/kern/kern_cons.c')
-rw-r--r--sys/kern/kern_cons.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/kern/kern_cons.c b/sys/kern/kern_cons.c
index 1d5ac0e..6545bc9 100644
--- a/sys/kern/kern_cons.c
+++ b/sys/kern/kern_cons.c
@@ -652,6 +652,7 @@ sysbeep(int pitch __unused, int period __unused)
/*
* Temporary support for sc(4) to vt(4) transition.
*/
+static unsigned vty_prefer;
static char vty_name[16];
SYSCTL_STRING(_kern, OID_AUTO, vty, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, vty_name,
0, "Console vty driver");
@@ -676,6 +677,10 @@ vty_enabled(unsigned vty)
break;
}
#endif
+ if (vty_prefer != 0) {
+ vty_selected = vty_prefer;
+ break;
+ }
#if defined(DEV_SC)
vty_selected = VTY_SC;
#elif defined(DEV_VT)
@@ -691,3 +696,16 @@ vty_enabled(unsigned vty)
return ((vty_selected & vty) != 0);
}
+void
+vty_set_preferred(unsigned vty)
+{
+
+ vty_prefer = vty;
+#if !defined(DEV_SC)
+ vty_prefer &= ~DEV_SC;
+#endif
+#if !defined(DEV_VT)
+ vty_prefer &= ~DEV_VT;
+#endif
+}
+
OpenPOWER on IntegriCloud