added temporary syscall list
This commit is contained in:
parent
36584b2a6e
commit
9cee98801e
1 changed files with 44 additions and 0 deletions
44
docs/syscalls.md
Normal file
44
docs/syscalls.md
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
## Syscall list
|
||||||
|
This list is not complete, but the numbers and the arguments are most likely final
|
||||||
|
|
||||||
|
- `exit(int)`
|
||||||
|
- `void *mmap(void *addr, size_t length, int prot)`
|
||||||
|
- `void munmap(void *addr, size_t length)`
|
||||||
|
- `void closeHandle(void *handle)`
|
||||||
|
- `void *duplicateHandle(void *handle)`
|
||||||
|
- `void *createService(char name[16], int maxSessions)`
|
||||||
|
- `void *connectToService(char name[16])`
|
||||||
|
- `void *replyAndReceive(int * handleEventOut, void ** handles, int handleCount, uint8_t data[256])` - returns a handle if there is a new connection or if a handle has closed the connection
|
||||||
|
- `void *create_shared(void **handle_out, void* addr, size_t length, int prot, void *tgt_process)` - returns a handle for the other process to map shared memory
|
||||||
|
- `void *mmap_shared(void* handle, void* addr)`
|
||||||
|
- `int fork()`
|
||||||
|
- `int vfork()` - Used for threading
|
||||||
|
- `int getpid()`
|
||||||
|
- `int getppid()`
|
||||||
|
- `int setppid()`
|
||||||
|
|
||||||
|
## Example code
|
||||||
|
Bare-metal (no libc) hello world
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
auto tty_handle = connectToService("tty:u");
|
||||||
|
if(!tty_handle)
|
||||||
|
exit(1);
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
int cmd_id;
|
||||||
|
char text[252];
|
||||||
|
}__attribute__((packed))
|
||||||
|
uint8_t data[256];
|
||||||
|
} cmdbuf;
|
||||||
|
cmdbuf.cmd_id = 1; //1 == puts()
|
||||||
|
const char* s = "Hello, World!";
|
||||||
|
int i;
|
||||||
|
for(i=0;s[i];i++)
|
||||||
|
cmdbuf.text[i]=s[i];
|
||||||
|
cmdbuf.text[i]=0;
|
||||||
|
replyAndReceive(nullptr, &tty_handle, 1, cmdbuf.data); //Passing nullptr to handleEventOut will not wrote a event handle number
|
||||||
|
closeHandle(tty_handle);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue