42 lines
1.4 KiB
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.}
|