rumpk/core/kernel.nim

42 lines
1.4 KiB
Nim

# Rumpk Kernel Core (Nim)
# kmain() entry point - called from L0 Zig boot
{.push stackTrace: off.}
# =========================================================
# FFI Imports from L0 (Zig HAL)
# =========================================================
proc rumpk_console_write(p: pointer, len: csize_t) {.importc, cdecl.}
proc rumpk_halt() {.importc, cdecl, noreturn.}
# =========================================================
# Kernel I/O
# =========================================================
proc kprint(s: string) =
if s.len > 0:
rumpk_console_write(unsafeAddr s[0], csize_t(s.len))
proc kprintln(s: string) =
kprint(s)
kprint("\n")
# =========================================================
# Kernel Main
# =========================================================
proc kmain() {.exportc, cdecl, noreturn.} =
kprintln("╔═══════════════════════════════════════╗")
kprintln("║ RUMPK UNIKERNEL v0.0 ║")
kprintln("║ Zig+Nim • Zero POSIX • Modular ║")
kprintln("╚═══════════════════════════════════════╝")
kprintln("")
kprintln("[rumpk] L0 HAL initialized (Zig)")
kprintln("[rumpk] L1 Logic running (Nim)")
kprintln("[rumpk] Entering halt...")
rumpk_halt()
{.pop.}