BXE: min->MIN, plus an spatch
[akaros.git] / kern / include / frontend.h
index 35d1974..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
 void frontend_proc_init(struct proc* p);
 void frontend_proc_free(struct proc* p);
 
-int32_t frontend_syscall_from_user(env_t* p, int32_t syscall_num, 
-                                   uint32_t arg0, uint32_t arg1, 
-                                   uint32_t arg2, uint32_t translate_args);
-
 int32_t frontend_syscall(pid_t pid, int32_t syscall_num, 
                          uint32_t arg0, uint32_t arg1, uint32_t arg2, 
                          uint32_t arg3, int32_t* errno);
 
-int user_frontend_syscall(struct proc* p, int n, int a0, 
-                          int a1, int a2, int a3);
-
-int32_t frontend_nbputch(char ch);
-int32_t frontend_nbgetch();
-
-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);
+int frontend_syscall_errno(struct proc* p, int n, int a0, 
+                           int a1, int a2, int a3);
 
-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
 
@@ -64,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