docs: documented syscalls
This commit is contained in:
parent
68d2ef7de4
commit
e92c45394a
|
@ -104,6 +104,38 @@ No detailed Information available (cpu_state null reference)
|
||||||
```
|
```
|
||||||
The `Error Message` could still be helpful, but good luck finding that bug.
|
The `Error Message` could still be helpful, but good luck finding that bug.
|
||||||
|
|
||||||
|
## Syscalls
|
||||||
|
NoxOS will use interrupt based syscalls.
|
||||||
|
To perform a syscall, write its ID into the `rax` register and call interrupt 0x80.
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```nasm
|
||||||
|
mov rax, 0x0000
|
||||||
|
int 0x80
|
||||||
|
```
|
||||||
|
|
||||||
|
The syscalls are grouped into groups and their ID consists of a _group-ID_ (first two digits) and a _syscall-ID_ (last two digits).
|
||||||
|
|
||||||
|
### Syscall groups
|
||||||
|
- **Misc** - 0x00
|
||||||
|
- **File** - 0x01
|
||||||
|
- **Proc** - 0x02
|
||||||
|
- **Kernel** - 0xFF
|
||||||
|
|
||||||
|
### Misc Syscalls - `0x00--`
|
||||||
|
|
||||||
|
### File Syscalls - `0x01--`
|
||||||
|
|
||||||
|
### Proc Syscalls - `0x02--`
|
||||||
|
|
||||||
|
### Kernel Syscalls - `0xFF--`
|
||||||
|
The kernel syscalls can only be called by the kernel process and its childs. All other processes, won't be able to use this functions.
|
||||||
|
|
||||||
|
| ID | Name | Description |
|
||||||
|
|--------|-----------------|------------------------------------------------------------------------------------------------------|
|
||||||
|
| 0xFF00 | scheduler_start | Initializes the Kernels main thread from the current cpu_state. This is used to start multithreading |
|
||||||
|
|
||||||
|
|
||||||
## Format strings
|
## Format strings
|
||||||
Format strings are strings that are formatted at runtime.
|
Format strings are strings that are formatted at runtime.
|
||||||
They are created by defining a pattern, like the following one:
|
They are created by defining a pattern, like the following one:
|
||||||
|
@ -220,6 +252,9 @@ This variant is the `%x` standard.
|
||||||
This is not a really a placeholder, but you can use this to mask the % sign,
|
This is not a really a placeholder, but you can use this to mask the % sign,
|
||||||
so it will be interpreted as just a `%` instead of a placeholder.
|
so it will be interpreted as just a `%` instead of a placeholder.
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**DISCLAIMER:** Only the headers are documented, because documenting the whole code itself would be very time intensive and the headers as 'public' API are the most important to document.
|
**DISCLAIMER:** Only the headers are documented, because documenting the whole code itself would be very time intensive and the headers as 'public' API are the most important to document.
|
||||||
|
|
Loading…
Reference in New Issue