Fix up alarm and pvcalarm tests
[akaros.git] / kern / include / syscall.h
index c24b69b..5fc130e 100644 (file)
@@ -14,6 +14,8 @@
 #define MAX_NUM_TRACED                         10
 #define MAX_SYSTRACES                          1024
 
+#define SYSCALL_STRLEN                         128
+
 #define MAX_ASRC_BATCH                         10
 
 /* Consider cache aligning this */
@@ -38,14 +40,22 @@ struct sys_table_entry {
        syscall_t call;
        char *name;
 };
-const static struct sys_table_entry syscall_table[];
+extern const struct sys_table_entry syscall_table[];
+extern const int max_syscall;
 /* Syscall invocation */
 void prep_syscalls(struct proc *p, struct syscall *sysc, unsigned int nr_calls);
 void run_local_syscall(struct syscall *sysc);
 intreg_t syscall(struct proc *p, uintreg_t sc_num, uintreg_t a0, uintreg_t a1,
                  uintreg_t a2, uintreg_t a3, uintreg_t a4, uintreg_t a5);
 void set_errno(int errno);
-void signal_syscall(struct syscall *sysc, struct proc *p);
+int get_errno(void);
+void unset_errno(void);
+void set_errstr(char *errstr, ...);
+char *current_errstr(void);
+struct errbuf *get_cur_errbuf(void);
+void set_cur_errbuf(struct errbuf *ebuf);
+char *get_cur_genbuf(void);
+void __signal_syscall(struct syscall *sysc, struct proc *p);
 
 /* Tracing functions */
 void systrace_start(bool silent);
@@ -55,4 +65,7 @@ int systrace_dereg(bool all, struct proc *p);
 void systrace_print(bool all, struct proc *p);
 void systrace_clear_buffer(void);
 
+/* Utility */
+bool syscall_uses_fd(struct syscall *sysc, int fd);
+
 #endif /* !ROS_KERN_SYSCALL_H */