X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2Finclude%2Facess%2Fsys.h;h=7fec475ffc63c1f6cbe1cd2d9777719d33e262ff;hb=adc88116d41b2d869f67bbafe42413b31679845e;hp=03a02beca7bc852eaf12ee7aa6a5ec3bc705eaf0;hpb=f8528eeb40cbea394df23878f78ff9cb19f25771;p=tpg%2Facess2.git diff --git a/Usermode/include/acess/sys.h b/Usermode/include/acess/sys.h index 03a02bec..7fec475f 100644 --- a/Usermode/include/acess/sys.h +++ b/Usermode/include/acess/sys.h @@ -20,8 +20,20 @@ // === TYPES === struct s_sysACL { - uint32_t object; - uint32_t perms; + union { + struct { + unsigned group: 1; + unsigned id: 31; + }; + uint32_t object; + }; + union { + struct { + unsigned invert: 1; + unsigned perms: 31; + }; + uint32_t rawperms; + }; }; struct s_sysFInfo { uint uid, gid; @@ -34,14 +46,18 @@ struct s_sysFInfo { struct s_sysACL acls[]; }; typedef struct s_sysFInfo t_sysFInfo; +typedef struct s_sysACL t_sysACL; // === FUNCTIONS === void _SysDebug(char *str, ...); // --- Proc --- void sleep(); +void wait(int miliseconds); + int waittid(int id, int *status); int clone(int flags, void *stack); int execve(char *path, char **argv, char **envp); // --- VFS --- + int chdir(char *dir); int open(char *path, int flags); int reopen(int fd, char *path, int flags); void close(int fd); @@ -50,6 +66,8 @@ uint64_t write(int fd, uint64_t length, void *buffer); int seek(int fd, uint64_t offset, int whence); int ioctl(int fd, int id, void *data); int finfo(int fd, t_sysFInfo *info, int maxacls); + int readdir(int fd, char *dest); + int _SysGetACL(int fd, t_sysACL *dest); // --- MEMORY --- uint64_t _SysGetPhys(uint vaddr);