576270752ea73a2bf80069e751386b0c96de7a09
[akaros.git] / user / vmm / include / vmm / linuxemu.h
1 #pragma once
2
3 typedef bool (*dune_syscall_t)(struct vm_trapframe *);
4
5 struct dune_sys_table_entry {
6         dune_syscall_t call;
7         const char *name;
8 };
9
10 #define DUNE_MAX_NUM_SYSCALLS 1024
11
12 // TODO: Remove this once we have better management for gpcs
13 #define MAX_GPCS 12
14
15 extern struct dune_sys_table_entry dune_syscall_table[];
16
17 bool init_syscall_table(void);
18 void init_lemu_logging(int logging_level);
19 void destroy_lemu_logging(void);
20 void lemuprint(const uint32_t tid, uint64_t syscall_number,
21                const bool isError, const char *fmt, ...);
22
23 bool dune_sys_write(struct vm_trapframe *tf);
24 bool dune_sys_read(struct vm_trapframe *tf);