Alex Suykov b1d4b246c6 rework makefiles / thin lib.a 3 years ago
..
bits 4edcf60d53 lib: sigset_t -> struct sigset 5 years ago
Makefile b1d4b246c6 rework makefiles / thin lib.a 3 years ago
README a0c2517a46 minor text tweaks 7 years ago
_start.s 73d514e87a lib: drop envp from _start.s 7 years ago
errnames.h 839edb137c lib: i386 target 7 years ago
sigreturn.s 839edb137c lib: i386 target 7 years ago
syscall.h 5cfbf5d84f lib: trailing whitespace cleanup 6 years ago
syscall.s 839edb137c lib: i386 target 7 years ago

README

This implementation does int 0x80 style syscalls, which work on any
i?86 but may be slow on some.

The official recommended way of doing syscalls on unknown i?86 is to
locate and use syscall trampoline. Doing so in minibase however is tricky.
For all other architectures, syscall is something self-contained.
Trampoline means syscall code depends on a global, runtime-set variable.
Which in minibase context means either a wasted rw page, or some register
tricks -- and x86 is notoriously short on those.

It's not decided yet how to handle this problem well, and 32-bit x86 support
in minibase is more of a backward-compatibility kludge anyway, so it stays
like this for now. It should work on pretty much any x86 hardware, and whoever
may be running x86 in 2018 is clearly not concerned with performance anyway.