Started adding sanity checks to syscalls. Added SYS_CHDIR and helpers. Used SYS_CHDIR...
[tpg/acess2.git] / Usermode / include / acess / sys.h
index 1b39c5c..7fec475 100644 (file)
 
 // === 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,6 +46,7 @@ struct s_sysFInfo {
        struct s_sysACL acls[];
 };
 typedef struct s_sysFInfo      t_sysFInfo;
+typedef struct s_sysACL        t_sysACL;
 
 // === FUNCTIONS ===
 void   _SysDebug(char *str, ...);
@@ -44,6 +57,7 @@ void  wait(int miliseconds);
  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);
@@ -52,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);

UCC git Repository :: git.ucc.asn.au