refactor(syscall): 调用号改用 enum 并全面对齐 Linux x86-64 ABI

内核 intr/syscall.vp 与 vpsdk/syscall.vp 各一份 1..34 的 define 表改为同名 enum Syscall。编号口径:与 Linux 同名同号;Linux 有而我们未实现的留空不占号(12 brk / 39 getpid / 84 rmdir / 217 getdents64 / 257 openat … 需要时按号补)。

15 个语义重合的调用直接用 Linux 号:READ 0 / WRITE 1 / OPEN 2 / CLOSE 3 / STAT 4 / SEEK 8 / MMAP 9 / MUNMAP 11 / YIELD 24 / THREAD_CREATE 56(≈clone) / SPAWN 59(≈execve) / THREAD_EXIT 60(exit) / MKDIR 83 / REMOVE 87 / EXIT 231(exit_group)。

其余 19 个(UI 11 个 + SERIAL_PUTS/TELL/SIZE/OPENDIR/READDIR/CLOSEDIR/LOAD_SO/SO_CALL1)暂放 0x1000 起的**临时私有段**,每条带迁移标注:私有能力最终不占 syscall 号、改走 devfs 设备文件;UI 11 个待用户态 explorer(图形壳)接管 framebuffer 与输入后删除。

内核派发链改 n == int(Syscall.X)(n 是 int/i64、成员是 i32,显式 int() 规避未证实的混合宽度比较);SDK 全部调用点统一为 syscall.Syscall.X;stdlib 的 SYSCALL_MMAP 别名并入 Syscall.MMAP;Terminal 里硬编码的 uint64(18) 改为常量。
This commit is contained in:
TermiNexus committed 2026-10-16 18:32:33 +08:00
1 parent 4e1be2be88
commit ca72ddbbf7
12 files changed
+171 -150

No files matched your search

+1 -1
View File
@@ -20,7 +20,7 @@ export def _start() -> int:
master: vpui.Tk* = &root
def _sdbg(msg: str):
_syscall._syscall1(uint64(18), uint64(msg))
_syscall._syscall1(uint64(_syscall.Syscall.SERIAL_PUTS), uint64(msg))
_sdbg("[term] start\n")