mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
There are a lot of under the hood changes here: - Move syscalls to be a dispatch table, defined by syscalls.inc - Don't need a full process state (push_all) in syscalls now - In push_all, define REGS instead of using offsets - Save TWO stack pointers as well as current saved stack pointer in TCB: - rsp0 is the base of the kernel stack for interrupts - rsp3 is the saved user stack from cpu_data - Update syscall numbers in nulldrv - Some asm-debugging enhancements to the gdb script - fork() still not working
34 lines
556 B
PHP
34 lines
556 B
PHP
struc TCB
|
|
.rsp: resq 1
|
|
.rsp0: resq 1
|
|
.rsp3: resq 1
|
|
.pml4: resq 1
|
|
endstruc
|
|
|
|
struc CPU_DATA
|
|
.rsp0: resq 1
|
|
.rsp3: resq 1
|
|
.tcb: resq 1
|
|
endstruc
|
|
|
|
struc TSS
|
|
.res0: resd 1
|
|
.rsp0: resq 1
|
|
.rsp1: resq 1
|
|
.rsp2: resq 1
|
|
.ist0: resq 1
|
|
.ist1: resq 1
|
|
.ist2: resq 1
|
|
.ist3: resq 1
|
|
.ist4: resq 1
|
|
.ist5: resq 1
|
|
.ist6: resq 1
|
|
.ist7: resq 1
|
|
.res1: resq 1
|
|
.res2: resw 1
|
|
.iomap: resw 1
|
|
endstruc
|
|
|
|
|
|
; vim: ft=asm
|