stos: Add kernel knotting impl

Signed-off-by: Chloe M. <chloe@mensia.org>
This commit is contained in:
Chloe M.
2026-06-23 05:36:10 +00:00
parent d2596979a2
commit 81d5f13a30
4 changed files with 136 additions and 1 deletions
+49
View File
@@ -0,0 +1,49 @@
/*
* Copyright (c) 2026, Chloe M.
* Provided under the BSD-3 clause.
*
* Description: Fucks and knots the kernel
* Author: Chloe M.
*/
#include <drivers/bootvid/fbio.h>
#include <ex/trace.h>
#include <ke/knot.h>
#define KNOT_REASON(Reason) \
((Reason) >= NELEM(ReasonTable)) \
? ReasonTable[0] \
: ReasonTable[(Reason)]
/* Reason lookup table */
static const CHAR *ReasonTable[] = {
[KNOT_MISC] = "unspecified reason",
[KNOT_UNBOUND_RSRC] = "unbounded resource"
};
/* Globals */
static CHAR KnotBuf[256];
static va_list Ap;
static BOOTCONS_ATTR KnotAttr = {
.Background = 0x000080,
.Foreground = 0xFFFFFF
};
static CHAR KnotMessage[] = {
"SystemPaw DR has ran into a wittle issue and the kernel pilot kitty\n"
"has suspended the CPU to prevent damage to your machine.\n\n"
"Press and hold the power button until the screen blanks.\n\n"
};
VOID
KiKnot(KNOT_REASON Reason, const CHAR *Fmt, ...)
{
va_start(Ap, Fmt);
FmtPrintf(KnotBuf, sizeof(KnotBuf), Fmt, Ap);
BootVidInitCons(&KnotAttr);
TRACE("\033[H\033[2J");
TRACE(KnotMessage);
TRACE("knot: %s", KnotBuf);
TRACE("reason: %s\n", KNOT_REASON(Reason));
}