#pragma once /* types declarations */ #include #include #include #include // ----------------------------------------------------------------------- // global constants /* open */ #define sys·ORead 0x0u #define sys·OWrite 0x1u #define sys·ORdwr 0x2u /* seek */ #define sys·SeekSet 0u #define sys·SeekCur 1u #define sys·SeekEnd 2u /* special file descriptors */ #define sys·Stdin 0 #define sys·Stdout 1 #define sys·Stderr 2 // ----------------------------------------------------------------------- // functions /* errors */ char *sys·errormsg(int num); /* file operations */ int sys·open(char *path, int flag, int mode, int *fd); int sys·close(int fd); int sys·write(int fd, uintptr len, void *buf, intptr *nw); int sys·read(int fd, uintptr len, void *buf, intptr *nr); int sys·seek(int fd, intptr offset, int from, intptr *pos); int sys·info(char *path, sys·Info *ret); int sys·infofd(int fd, sys·Info *ret); int sys·infoat(int dirfd, char *path, int flag, uint mask, sys·Info *ret); int sys·dup(int from, int to); /* directory operations */ int sys·chdir(char *path); int sys·chdirfd(int fd); int sys·mkdir(char *path, uint mode); int sys·mkdirat(int fd, char *path, uint mode); int sys·direntry(int fd, int len, void *buffer, uintptr *size); /* file node */ int sys·mknode(char *path, uint mode, uint64 dev); int sys·mknodeat(int dirfd, char *path, uint mode, uint64 device); /* ioctl :( */ int sys·ioctl(int, int, ...); /* process operations */ int sys·getpid(void); int sys·getuid(void); int sys·getgid(void); int sys·getpgid(int pid); int sys·setpgid(int pid, int pgid); int sys·fork(void); int sys·exec(char *program, char *argv[], char *env[]); int sys·wait(int *status); int sys·waitfor(int pid, int *status, int option, sys·UsageInfo *msg); /* memory operations */ int sys·brk(void *addr); //int sys·sbrk(intptr delta, void **ret); int sys·mmap(void *addr, uintptr len, int prot, int flags, int fd, intptr off, void **ret); int sys·mremap(void *old, uintptr from, uintptr to, int flags, void **new); int sys·munmap(void *addr, uintptr len); int sys·madvise(void *addr, uintptr len, int advice); int sys·mprotect(void *addr, uintptr len, int prot); int sys·mlock(void *addr, uintptr len); int sys·munlock(void *addr, uintptr len);