blob: 7414de522fafaa03bb83199ca13440b0c7299561 [file] [log] [blame]
#pragma once
typedef bool (*dune_syscall_t)(struct vm_trapframe *);
struct dune_sys_table_entry {
dune_syscall_t call;
const char *name;
};
struct linux_stat_amd64 {
uint64_t st_dev;
uint64_t st_ino;
uint64_t st_nlink;
uint32_t st_mode;
uint32_t st_uid;
uint32_t st_gid;
int32_t pad;
uint64_t st_rdev;
int64_t st_size;
int64_t st_blksize;
int64_t st_blocks;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
int64_t unused[3];
};
#define DUNE_MAX_NUM_SYSCALLS 1024
extern struct dune_sys_table_entry dune_syscall_table[];
bool init_linuxemu(void);
void init_lemu_logging(int logging_level);
void destroy_lemu_logging(void);
void lemuprint(const uint32_t tid, uint64_t syscall_number,
const bool isError, const char *fmt, ...);
bool dune_sys_write(struct vm_trapframe *tf);
bool dune_sys_read(struct vm_trapframe *tf);