#pragma once

#define enumerate_syscalls(_e)                                                                                         \
    _e(exit) _e(clock_gettime) _e(mmap) _e(munmap) _e(usleep) _e(openat) _e(close) _e(read) _e(getpid) _e(write)       \
        _e(lseek) _e(mkdir) _e(execve) _e(mknod) _e(fork) _e(waitpid) _e(getppid) _e(fcntl) _e(getdents) _e(getuid)    \
            _e(geteuid) _e(getgid) _e(getegid) _e(setuid) _e(setgid) _e(seteuid) _e(setegid) _e(fchmodat) _e(fchownat) \
                _e(ioctl) _e(fstatat) _e(chdir) _e(getcwd) _e(unlinkat) _e(uname) _e(sethostname) _e(dup2) _e(pipe)    \
                    _e(mount) _e(umount)

enum Syscalls
{
#undef __enumerate
#define __enumerate(name) SYS_##name,
    enumerate_syscalls(__enumerate)
#undef __enumerate
        __count
};