From f3c1c94a613a5e117b31493b2dd213cfb9f07d0b Mon Sep 17 00:00:00 2001 From: Karina Date: Tue, 23 Dec 2025 16:30:28 +0400 Subject: [PATCH] feat: more fun messages in panic; types are not _BitInt() anymore (C's asm refused to eat that) --- kernel/include/types.h | 16 ++++++++-------- kernel/src/kmain.c | 2 +- kernel/src/modules/panic.c | 15 ++++++++++++++- kernel/src/modules/rand.c | 2 +- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/kernel/include/types.h b/kernel/include/types.h index 86478a9..78d9e66 100644 --- a/kernel/include/types.h +++ b/kernel/include/types.h @@ -1,15 +1,15 @@ #ifndef TYPES_H #define TYPES_H -typedef unsigned _BitInt(8) u8; -typedef unsigned _BitInt(16) u16; -typedef unsigned _BitInt(32) u32; -typedef unsigned _BitInt(64) u64; +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned int u32; +typedef unsigned long long u64; -typedef signed _BitInt(8) i8; -typedef signed _BitInt(16) i16; -typedef signed _BitInt(32) i32; -typedef signed _BitInt(64) i64; +typedef signed char i8; +typedef signed short i16; +typedef signed int i32; +typedef signed long long i64; typedef u64 usize; typedef u64 uintptr_t; diff --git a/kernel/src/kmain.c b/kernel/src/kmain.c index d800900..9d5f541 100644 --- a/kernel/src/kmain.c +++ b/kernel/src/kmain.c @@ -52,7 +52,7 @@ void kmain(Bootinfo* info) { // rectest(0); - // __asm__("ud2"); // panic :( + // __asm__("ud2"); // panic :( while (1) { __asm__("hlt"); } } \ No newline at end of file diff --git a/kernel/src/modules/panic.c b/kernel/src/modules/panic.c index e8a68c8..3e69dbb 100644 --- a/kernel/src/modules/panic.c +++ b/kernel/src/modules/panic.c @@ -25,7 +25,15 @@ const char* fun_messages[] = { "You little asshole, make it better", "Go and read books for programming u idiot", "TIME TO BRAKE! :3 Take a tea and try again later cutie", - "Code have been eaten by Aliens" + "Code have been eaten by Aliens", + "That's all, folks!", + "Raiden, answer me, Raiden, respond! Raiden?! RAIDEEEEEEEEEN!", + "Fatal error has been occurred. Your device will be terminated in 30 seconds.", + "I'll be back", + "Hastla la vista, baby", + "Ti chego mne tut nagovoril...", + "Your access has been denied because of your region. Please, use Chultem VPN and try again later.", + "Fatal error has been occurred. Your device will be transformed into Niva in a few seconds." }; @@ -89,6 +97,11 @@ __attribute__((noreturn)) void panic(Registers *regs) { kprintf("\t\tCode Segment (CS): %x\n", regs->cs); kprintf("\t\tFlags (RFLAGS): %x\n", regs->rflags); kprintf("\t\tStack Pointer (RSP): %x\n", regs->rsp); + if (regs->int_no == 14) { + u64 cr2; + __asm__ volatile("mov %%cr2, %0" : "=r"(cr2)); + kprintf("\t\tFaulting Address (CR2): %x\n", cr2); + } kprintf("\t\t--------------------------------\n"); kprintf("\t\t\t\tREGSISTERS\n"); kprintf("\t\t--------------------------------\n"); diff --git a/kernel/src/modules/rand.c b/kernel/src/modules/rand.c index 8c6222a..6e17b0e 100644 --- a/kernel/src/modules/rand.c +++ b/kernel/src/modules/rand.c @@ -6,7 +6,7 @@ u64 shitrand() { int lo, hi; - __asm__ volatile ("rdtsc" : "=a" (lo), "=d" (hi)); // why fucking asm refusing to eat my u32 + __asm__ volatile ("rdtsc" : "=a" (lo), "=d" (hi)); return ((u64)hi << 32) | lo; } \ No newline at end of file