BXE: min->MIN, plus an spatch
[akaros.git] / kern / include / frontend.h
index ee24588..2f1f4dd 100644 (file)
@@ -6,6 +6,7 @@
 #ifdef ROS_KERNEL
 
 #include <env.h>
+#include <vfs.h>
 #include <process.h>
 
 // Default APPSERVER_ETH_TYPE if not defined externally
@@ -23,17 +24,12 @@ int32_t frontend_syscall(pid_t pid, int32_t syscall_num,
 int frontend_syscall_errno(struct proc* p, int n, int a0, 
                            int a1, int a2, int a3);
 
-void* user_memdup(struct proc* p, const void* va, int len);
-void* user_memdup_errno(struct proc* p, const void* va, int len);
-void user_memdup_free(struct proc* p, void* va);
-char* user_strdup(struct proc* p, const char* va0, int max);
-char* user_strdup_errno(struct proc* p, const char* va, int max);
-int memcpy_to_user_errno(struct proc* p, void* dst, const void* src, int len);
-void* kmalloc_errno(int len);
-
-error_t read_page(struct proc* p, int fd, physaddr_t pa, int pgoff);
-error_t open_file(struct proc* p, const char* path, int oflag, int mode);
-error_t close_file(struct proc* p, int fd);
+void file_init(void);
+error_t file_read_page(struct file* f, physaddr_t pa, size_t pgoff);
+struct file* file_open(const char* path, int oflag, int mode);
+struct file* file_open_from_fd(struct proc* p, int fd);
+void file_incref(struct file* f);
+void file_decref(struct file* f);
 
 #endif
 
@@ -57,6 +53,7 @@ error_t close_file(struct proc* p, int fd);
 #define APPSERVER_SYSCALL_dup          41
 #define APPSERVER_SYSCALL_umask        60
 #define APPSERVER_SYSCALL_fcntl        62
+#define APPSERVER_SYSCALL_kdup         87
 #define APPSERVER_SYSCALL_lstat        88
 #define APPSERVER_SYSCALL_tcgetattr    89
 #define APPSERVER_SYSCALL_tcsetattr    90