X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2Finclude%2Facess%2Fsys.h;h=707e5bb454daed8de8aa53840c8d4df0faae41ae;hb=a2210987109ab5a6337c72b45f7e52cfc9092f8f;hp=d0b45307532b81147a1fcba951cda796f73b04cf;hpb=17e16b3110b4c5124b0707435e0427993d696545;p=tpg%2Facess2.git diff --git a/Usermode/include/acess/sys.h b/Usermode/include/acess/sys.h index d0b45307..707e5bb4 100644 --- a/Usermode/include/acess/sys.h +++ b/Usermode/include/acess/sys.h @@ -11,30 +11,58 @@ #define OPENFLAG_READ 0x02 #define OPENFLAG_WRITE 0x04 #define OPENFLAG_NOLINK 0x40 -#define SEEK_SET 1 -#define SEEK_CUR 0 -#define SEEK_END -1 +#ifndef SEEK_CUR +# define SEEK_SET 1 +# define SEEK_CUR 0 +# define SEEK_END -1 +#endif #define CLONE_VM 0x10 #define FILEFLAG_DIRECTORY 0x10 +#define FILEFLAG_SYMLINK 0x20 // === TYPES === +struct s_sysACL { + 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; uint flags; - int numacls; uint64_t size; uint64_t atime; uint64_t mtime; uint64_t ctime; + int numacls; + struct s_sysACL acls[]; }; typedef struct s_sysFInfo t_sysFInfo; +typedef struct s_sysACL t_sysACL; // === FUNCTIONS === +void _SysDebug(char *str, ...); // --- Proc --- +void _exit(int status) __attribute__((noreturn)); 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); +void setuid(int id); +void setgid(int id); // --- VFS --- + int chdir(char *dir); int open(char *path, int flags); int reopen(int fd, char *path, int flags); void close(int fd); @@ -42,7 +70,9 @@ uint64_t read(int fd, uint64_t length, void *buffer); 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 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);