Module syscall

Source
Expand description

System Calls on x86

This implements the syscall entries for x86. One function for each possible number of arguments is provided: syscall0 to syscall6.

The implementation uses the x86-int$0x80 software interrupt to enter the kernel. It would be much faster to use the VDSO entry point, but it does require access to %gs and the TLS mappings, and thus is left for future improvements (if anyone cares enough for 32bit x86).

Arguments are passed as: Nr: eax Args: ebx, ecx, edx, esi, edi, ebp Return value is in: Ret: eax

The entry-points are currently not marked as readonly. That is, the system calls are allowed to modify memory. If necessary, alternative calls with readonly (or maybe even pure) can be provided in the future.