feat: implement fsync(2) and hard link support [link(2)]
[lunaix-os.git] / lunaix-os / includes / lunaix / syscall.h
index 42bc85b8f7b849f447f7fdabce9f0a853b0aa66f..82986ab5f83783c73fe5acf75ba8c6ccbf1847dd 100644 (file)
 #define __SYSCALL_write 22
 #define __SYSCALL_readdir 23
 #define __SYSCALL_mkdir 24
 #define __SYSCALL_write 22
 #define __SYSCALL_readdir 23
 #define __SYSCALL_mkdir 24
+#define __SYSCALL_lseek 25
+#define __SYSCALL_geterrno 26
+#define __SYSCALL_readlink 27
+#define __SYSCALL_readlinkat 28
+#define __SYSCALL_rmdir 29
+#define __SYSCALL_unlink 30
+#define __SYSCALL_unlinkat 31
+#define __SYSCALL_link 32
+#define __SYSCALL_fsync 33
 
 #define __SYSCALL_MAX 0x100
 
 #ifndef __ASM__
 
 
 #define __SYSCALL_MAX 0x100
 
 #ifndef __ASM__
 
-#define SYSCALL_ESTATUS(errno) -(errno != 0)
+#define SYSCALL_ESTATUS(errno) -((errno) != 0)
 
 void
 syscall_install();
 
 void
 syscall_install();
@@ -100,7 +109,7 @@ syscall_install();
     }
 
 #define __LXSYSCALL4(rettype, name, t1, p1, t2, p2, t3, p3, t4, p4)            \
     }
 
 #define __LXSYSCALL4(rettype, name, t1, p1, t2, p2, t3, p3, t4, p4)            \
-    static rettype name(__PARAM_MAP3(t1, p1, t2, p2, t3, p3, t4, p4))          \
+    static rettype name(__PARAM_MAP4(t1, p1, t2, p2, t3, p3, t4, p4))          \
     {                                                                          \
         asm("\n" ::"b"(p1), "c"(p2), "d"(p3), "D"(p4));                        \
         ___DOINT33(__SYSCALL_##name, rettype)                                  \
     {                                                                          \
         asm("\n" ::"b"(p1), "c"(p2), "d"(p3), "D"(p4));                        \
         ___DOINT33(__SYSCALL_##name, rettype)                                  \