blob: c94db1926bf74e869e5ef83de76151bcfa0961ac (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Syscalls pass by int64. The identifier of the called function is in eax, parameters
are in ebx, 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
8 sbrk ebx: size Allocates some memory
9 brk ebx: new_end Allocates/frees some memory
10 mmap (see linux specs)
11 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.
|