Add a monitor debug function for rendez waiters
[akaros.git] / tools / syscall_server / syscall_server.h
index 2427436..790d135 100644 (file)
@@ -2,9 +2,10 @@
 #define SERIAL_SERVER_H
 
 #include <stdint.h>
-#include <newlib_stat.h>
+#include <sys/stat.h>
+#include <newlib_trans.h>
 
-#define ROS_SLAVE_PTY ".ros_slave_pty"
+#define SANDBOX_DIR "sandbox/"
 
 #define OPEN_ID                        0
 #define CLOSE_ID               1
@@ -114,10 +115,11 @@ typedef struct syscall_rsp {
 } syscall_rsp_t;
 
 void run_server();
+int init_syscall_server(int* fd_read, int* fd_write);
 void translate_stat(struct stat* native, struct newlib_stat* newlib);
-void translate_flags(int native, int newlib);
-void translate_mode(int native, int newlib);
-void translate_dir(int native, int newlib);
+int translate_flags(int native_flags);
+int translate_mode(int native_mode);
+int translate_whence(int native_whence);
 void translate_errno(int native, int newlib);
 void set_syscall_req_payload_len(syscall_req_t* req);
 void read_syscall_req(int fd, syscall_req_t* req);
@@ -126,8 +128,10 @@ void read_syscall_req_payload(int fd, syscall_req_t* req);
 void write_syscall_rsp(int fd, syscall_rsp_t* rsp);
 void write_syscall_rsp_header(int fd, syscall_rsp_t* rsp);
 void write_syscall_rsp_payload(int fd, syscall_rsp_t* rsp);
-int read_from_serial(int fd, void* buf, int len, int peek); 
+int read_syscall_server(int fd, char* buf, int len);
+int write_syscall_server(int fd, char* buf, int len, int bytes_to_follow); 
 void error(int fd, const char* s);
+char* sandbox_file_name(char* name, uint32_t len);
 
 void handle_syscall(syscall_req_t* req, syscall_rsp_t* rsp);
 void handle_open(syscall_req_t* req, syscall_rsp_t* rsp);