aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_cons.c
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2014-07-02 13:24:21 +0000
committerEd Maste <emaste@FreeBSD.org>2014-07-02 13:24:21 +0000
commit018147eef98b09a05f37f2746f653a458c6c223c (patch)
tree9d29c4db53b73ea523b6c246c6e969f9e69ac429 /sys/kern/kern_cons.c
parentd398c8634a4c67a4ef891f62c3ad92c81021b109 (diff)
downloadsrc-018147eef98b09a05f37f2746f653a458c6c223c.tar.gz
src-018147eef98b09a05f37f2746f653a458c6c223c.zip
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.
Notes
Notes: svn path=/head/; revision=268158
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 1d5ac0e38a69..6545bc9ccd2b 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
+}
+