39 lines
971 B
Markdown
39 lines
971 B
Markdown
# Rumpk Core (L1)
|
|
|
|
**Language:** Nim
|
|
**Purpose:** Architecture-agnostic kernel logic
|
|
|
|
## Module Index
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `kernel.nim` | Main entry point (`kmain`), fiber test |
|
|
| `fiber.nim` | Cooperative fiber abstraction |
|
|
| `ring.nim` | Lock-free Disruptor ring buffer |
|
|
| `panicoverride.nim` | Nim panic handler for freestanding |
|
|
|
|
## Architecture Independence
|
|
|
|
This folder contains **no architecture-specific code**. All platform-specific
|
|
details are handled by the HAL layer (`../hal/`).
|
|
|
|
Compile-time architecture selection uses Nim's `when defined()`:
|
|
```nim
|
|
when defined(amd64):
|
|
const CONTEXT_SIZE = 56
|
|
elif defined(arm64):
|
|
const CONTEXT_SIZE = 96
|
|
elif defined(riscv64):
|
|
const CONTEXT_SIZE = 112
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
- Imports `console_write`, `rumpk_halt` from HAL (Zig L0)
|
|
- Imports `cpu_switch_to` from arch-specific assembly
|
|
- Uses `mm:arc` memory management (no GC)
|
|
|
|
## Build
|
|
|
|
Built via `../build.sh [aarch64|x86_64|riscv64]`
|