forked from PoliEcho-holding-org/kern
26 lines
1.0 KiB
Plaintext
26 lines
1.0 KiB
Plaintext
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 | | | |
|
|
|