Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
syscall.h
Go to the documentation of this file.
1#ifndef __SYS__SYSCALL_H__
2#define __SYS__SYSCALL_H__
3
4#include "procc/process.h"
5#include <type.h>
6
7// unix/linux compatible
8#define SYSCALL_READ 0X0
9#define SYSCALL_WRITE 0X1
10#define SYSCALL_OPEN 0X2
11#define SYSCALL_CLOSE 0x3
12#define SYSCALL_FSTAT 0X4
13#define SYSCALL_ALLOC 0x8
14#define SYSCALL_ARCH_PRCTL 158
15#define SYSCALL_API 0X9F
16#define SYSCALL_SET_TID 0xDA
17#define SYSCALL_EXIT 0x3C
18#define SYSCALL_IOCTL 0x10
19#define SYSCALL_WRITEV 0x14
20#define SYSCALL_EXIT_GROUP 0xE7
21#define SYSCALL_BRK 0x0C
22#define SYSCALL_MMAP 0x9
23#define SYSCALL_MPORTECT 0x0A
24
25#define PROT_NONE 0
26#define PROT_READ 1
27#define PROT_WRITE 2
28#define PROT_EXEC 4
29#define PROT_GROWSDOWN 0x01000000
30#define PROT_GROWSUP 0x02000000
31
32void syscall_init(void);
33int syscall_read(int fd, void* buf, long count);
34int syscall_write(int fd, void* buf, long count);
35int syscall_open(const char* path, int flags, int mode);
36int syscall_arch_prctl(int code, unsigned long addr);
38int syscall_ioctl(int fd, uint32_t req, void* arg);
39intptr_t syscall_brk(void* addr);
40void* syscall_mmap(void* addr, size_t len, int prot, int flags, int fd,
41 long off);
42int syscall_mprotect(void* addr, size_t len, int prot);
43struct iovec {
44 void* iov_base;
46};
47
48long syscall_writev(int fd, const struct iovec* iov, int iovcnt);
50
51#endif // __SYS__SYSCALL_H__
int count
Definition cache.h:2
volatile uint64_t addr
Definition e1000.hpp:0
volatile uint8_t status
Definition e1000.hpp:3
uint8_t mode
Definition fd.h:3
uint16_t flags
Definition thread.h:5
uint8_t code
Definition icmp.h:1
size_t len
Definition oct2bin.h:7
uint32_t pid_t
Definition process.h:11
void * iov_base
Definition syscall.h:44
int iov_len
Definition syscall.h:45
void * syscall_mmap(void *addr, size_t len, int prot, int flags, int fd, long off)
Definition mmap.c:100
void syscall_exit_group(int status)
Definition exit_group.c:5
int syscall_mprotect(void *addr, size_t len, int prot)
Definition mprotect.c:9
int syscall_open(const char *path, int flags, int mode)
Definition open.c:6
void syscall_init(void)
Definition syscall.c:15
pid_t syscall_set_tid(uint32_t tid)
Definition set_tid.c:5
int syscall_write(int fd, void *buf, long count)
Definition write.c:8
int syscall_arch_prctl(int code, unsigned long addr)
Definition arch_prctl.c:14
int syscall_read(int fd, void *buf, long count)
Definition read.c:9
long syscall_writev(int fd, const struct iovec *iov, int iovcnt)
Definition writev.c:9
int syscall_ioctl(int fd, uint32_t req, void *arg)
Definition ioctl.c:8
intptr_t syscall_brk(void *addr)
Definition brk.c:8
unsigned int uint32_t
Definition type.h:19
kstring path
Definition voxmo.h:7