1// See LICENSE for license details.
2
3#ifndef _RISCV_FRONTEND_H
4#define _RISCV_FRONTEND_H
5
6#include <stdint.h>
7#include <sys/stat.h>
8
9void shutdown(int) __attribute__((noreturn));
10long frontend_syscall(long n, uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, uint64_t a4, uint64_t a5, uint64_t a6);
11
12struct frontend_stat {
13  uint64_t dev;
14  uint64_t ino;
15  uint32_t mode;
16  uint32_t nlink;
17  uint32_t uid;
18  uint32_t gid;
19  uint64_t rdev;
20  uint64_t __pad1;
21  uint64_t size;
22  uint32_t blksize;
23  uint32_t __pad2;
24  uint64_t blocks;
25  uint64_t atime;
26  uint64_t __pad3;
27  uint64_t mtime;
28  uint64_t __pad4;
29  uint64_t ctime;
30  uint64_t __pad5;
31  uint32_t __unused4;
32  uint32_t __unused5;
33};
34
35void copy_stat(struct stat* dest, struct frontend_stat* src);
36
37#endif
38