System Calls ============ Syscall handlers are prefixed by 'sys_'. Syscalls can be called using int 0x80. Arguments are passed in registers like this: * EAX - Syscall number * EBX - Argument 0 * ECX - Argument 1 * EDX - Argument 2 If the syscall returns, the return value will be in EAX. Syscall Table (TODO: Update this) ------------- | NR | SYSC NAME | RETURN (EAX) | ARG0 (EBX) | ARG1 (ECX) | ARG2 (EDX) | | 00 | reserved | - | - | - | - | | 01 | sleep | - | uint ms | - | - | | 02 | read | int count | int fd | char* buf | uint count | | 03 | write | int count | int fd | char* buf | uint count | | 04 | open | int fd | char* path | int oflag | - | | 05 | close | int status | int fd | - | - | | 06 | malloc | void* buf | int count | - | - | | 07 | free | - | void* buf | - | - | | 08 | seek | #TBD | | | |