From 68940415ee0932a68e2c3fb4fe0dc8b711e67d7c Mon Sep 17 00:00:00 2001 From: Alex AUVOLAT Date: Fri, 4 May 2012 21:02:43 +0200 Subject: Preparations. --- doc/syscalls.txt | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'doc') diff --git a/doc/syscalls.txt b/doc/syscalls.txt index c94db19..5df2cf6 100644 --- a/doc/syscalls.txt +++ b/doc/syscalls.txt @@ -1,25 +1,25 @@ -Syscalls pass by int64. The identifier of the called function is in eax, parameters -are in ebx, ecx, edx, esi, edi. +Syscalls pass by int64. The identifier of the called function is in ebx, with +eax = 0, parameters are in ecx, edx, esi, edi. Syscall list : -id=eax Name Parameters Description - 0 thread_exit none Signal kernel that current thread has finished - 1 schedule none Switch to next thread (might be the current one) - 2 thread_sleep ebx: time (int) msecs Tell kernel to put current thread to sleep - 3 process_exit ebx: return value (int) Tell kernel to end current process, cleaning up everything - 4 printk ebx: addr of a string Print a message to screen - 5 thread_new ebx: entry point Creates a new thread - ecx: data pointer - edx: stack pointer - 6 irq_wait ebx: irq number Waits for an IRQ (requires privilege PL_DRIVER) - 7 proc_priv none Returns current process privilege level +id=ebx Name Parameters Description + 1 thread_exit none Signal kernel that current thread has finished + 2 schedule none Switch to next thread (might be the current one) + 3 thread_sleep ecx: time (int) msecs Tell kernel to put current thread to sleep + 4 process_exit ecx: return value (int) Tell kernel to end current process, cleaning up everything + 5 printk ecx: addr of a string Print a message to screen + 6 thread_new ecx: entry point Creates a new thread + edx: data pointer + esi: stack pointer + 7 irq_wait ecx: irq number Waits for an IRQ (requires privilege PL_DRIVER) + 8 proc_priv none Returns current process privilege level - 8 sbrk ebx: size Allocates some memory - 9 brk ebx: new_end Allocates/frees some memory + 9 sbrk ecx: size Allocates some memory + 10 brk ecx: new_end Allocates/frees some memory - 10 mmap (see linux specs) - 11 munmap (see linux specs) + 11 mmap (see linux specs) + 12 munmap (see linux specs) If a processes wishes to exit with an error code, it HAS to use process_exit. thread_exit will do nothing. -- cgit v1.2.3