WKern
Loading...
Searching...
No Matches
panic.c
Go to the documentation of this file.
1/*
2WKern - A Bare Metal OS / Kernel I am maKing (For Fun)
3Copyright (C) 2025 Wdboyes13
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 3 of the License, or
8any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <https://www.gnu.org/licenses/>.
17*/
18
19#include <io/kio.h>
24__attribute__((noreturn)) void Panic(const char *msg) {
25 Kprintf("\n\n** KERNEL PANIC **\n");
26 Kprintf("Message: ");
27 Kprintf(msg);
28 Kputchar('\n');
29 Kprintf("System Halted");
30
31 for (;;) {
32 __asm__ volatile("cli\n"
33 "hlt");
34 };
35}
void Panic(const char *msg)
void Kprintf(const char *fmt,...)
Formatted output to the screen.
Definition printer.c:152
void Kputchar(char c)
Outputs a single character to the screen at the current cursor position.
Definition printer.c:46
__attribute__((noreturn))
Kernel Panics with Message.
Definition panic.c:24