summaryrefslogtreecommitdiff
path: root/sys/dev/cons
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-07-01 21:16:58 -0400
committerIan Moffett <ian@osmora.org>2025-07-01 21:16:58 -0400
commit5af7b47284b63715e1599b07873ebeb5f9edb257 (patch)
tree270911a871dc59abe7c7306d5b85ad777e33b9a9 /sys/dev/cons
parent65f1d611cfad98817a2b6d350737f38638a57f96 (diff)
kernel: console: Introduce cons_screen features
Introduce a 'feat' field in the cons_screen structure to allow certain console features to be turned on or off. Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/dev/cons')
-rw-r--r--sys/dev/cons/cons.c3
-rw-r--r--sys/dev/cons/cons_ansi.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/sys/dev/cons/cons.c b/sys/dev/cons/cons.c
index 8470a60..3eb7c33 100644
--- a/sys/dev/cons/cons.c
+++ b/sys/dev/cons/cons.c
@@ -488,7 +488,10 @@ void
cons_init(void)
{
struct fbdev fbdev = fbdev_get();
+ struct console_feat *featp;
+ featp = &g_root_scr.feat;
+ featp->ansi_esc = 1;
g_root_scr.ch_col = 0;
g_root_scr.ch_row = 0;
g_root_scr.fg = CONSOLE_FG;
diff --git a/sys/dev/cons/cons_ansi.c b/sys/dev/cons/cons_ansi.c
index fafb4ff..e00bdc9 100644
--- a/sys/dev/cons/cons_ansi.c
+++ b/sys/dev/cons/cons_ansi.c
@@ -29,6 +29,7 @@
#include <sys/types.h>
#include <sys/cdefs.h>
+#include <sys/console.h>
#include <dev/cons/cons.h>
#include <dev/cons/ansi.h>
#include <string.h>
@@ -61,6 +62,8 @@ int
ansi_feed(struct ansi_state *statep, char c)
{
struct cons_screen *scr = &g_root_scr;
+ struct console_feat *featp;
+
/* Standard colors */
static uint32_t colortab[] = {
@@ -70,6 +73,11 @@ ansi_feed(struct ansi_state *statep, char c)
ANSI_CYAN, ANSI_WHITE
};
+ featp = &scr->feat;
+ if (!featp->ansi_esc) {
+ return 0;
+ }
+
/*
* Handle the control sequence introducer
* bytes.