summaryrefslogtreecommitdiff
path: root/documentation/kernel-interfaces
diff options
context:
space:
mode:
authorBenji Dial <benji@benjidial.net>2024-07-27 16:57:39 -0400
committerBenji Dial <benji@benjidial.net>2024-07-27 16:57:39 -0400
commitfbfc078e9f44c1c1e95c9c484f1d5650bcf631b7 (patch)
treecab539c8cbbac81d895b6f8be695f3f53bf8f4d5 /documentation/kernel-interfaces
parent9af5588c30c4126a2800aae1afcb0de2c373dc6c (diff)
downloadhilbert-os-fbfc078e9f44c1c1e95c9c484f1d5650bcf631b7.tar.gz
lots and lots of userspace stuff
Diffstat (limited to 'documentation/kernel-interfaces')
-rw-r--r--documentation/kernel-interfaces/syscalls.txt25
1 files changed, 25 insertions, 0 deletions
diff --git a/documentation/kernel-interfaces/syscalls.txt b/documentation/kernel-interfaces/syscalls.txt
index ca93b56..399eb19 100644
--- a/documentation/kernel-interfaces/syscalls.txt
+++ b/documentation/kernel-interfaces/syscalls.txt
@@ -20,6 +20,7 @@ stream result:
12 = other end closed
13 = already exists
14 = not sized
+ 15 = not readable
encode color:
rax in: 0
@@ -173,3 +174,27 @@ get other end process handle:
rdi in: stream handle
rax out: stream result
rdi out: process handle (if rax = success)
+
+start thread:
+ rax in: 20
+ rdi in: entry point
+ rsi in: argument
+ at entry, rsp is set to the top of a new stack, rdi is set
+ to the argument, and the other registers are undefined.
+
+clear socket read queue:
+ rax in: 21
+ rdi in: stream handle
+ rax out: number of bytes cleared (0 on bad handle or not a socket)
+
+get environment variable length:
+ rax in: 22
+ rdi in: pointer to variable name
+ rsi in: variable name length
+ rax out: variable value length, or -1 if unset
+
+get environment variable value:
+ rax in: 23
+ rdi in: pointer to variable name
+ rsi in: variable name length
+ rdx in: pointer to buffer for variable value