1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 05:37:34 +00:00

UserspaceEmulator: Sort syscalls in alphabetic order

This commit is contained in:
Jean-Baptiste Boric 2021-12-12 11:23:28 +01:00 committed by Andreas Kling
parent b840c8f68e
commit 493c958b9e
2 changed files with 295 additions and 295 deletions

View file

@ -129,114 +129,114 @@ private:
void emit_profile_sample(AK::OutputStream&); void emit_profile_sample(AK::OutputStream&);
void emit_profile_event(AK::OutputStream&, StringView event_name, String contents); void emit_profile_event(AK::OutputStream&, StringView event_name, String contents);
int virt$emuctl(FlatPtr, FlatPtr, FlatPtr); int virt$accept4(FlatPtr);
int virt$fork();
int virt$execve(FlatPtr);
int virt$access(FlatPtr, size_t, int); int virt$access(FlatPtr, size_t, int);
int virt$sigaction(int, FlatPtr, FlatPtr); u32 virt$allocate_tls(FlatPtr, size_t);
int virt$sigreturn(); int virt$anon_create(size_t, int);
int virt$get_dir_entries(int fd, FlatPtr buffer, ssize_t); int virt$beep();
int virt$ioctl(int fd, unsigned, FlatPtr); int virt$bind(int sockfd, FlatPtr address, socklen_t address_length);
int virt$stat(FlatPtr); int virt$chdir(FlatPtr, size_t);
int virt$realpath(FlatPtr); int virt$chmod(FlatPtr, size_t, mode_t);
int virt$gethostname(FlatPtr, ssize_t); int virt$chown(FlatPtr);
int virt$profiling_enable(pid_t);
int virt$profiling_disable(pid_t);
FlatPtr virt$perf_event(int type, FlatPtr arg1, FlatPtr arg2);
FlatPtr virt$perf_register_string(FlatPtr, size_t);
int virt$disown(pid_t);
int virt$purge(int mode);
u32 virt$mmap(u32);
FlatPtr virt$mremap(FlatPtr);
u32 virt$sysconf(u32 name);
u32 virt$mount(u32);
u32 virt$munmap(FlatPtr address, size_t size);
u32 virt$gettid();
u32 virt$getpid();
u32 virt$unveil(u32);
u32 virt$pledge(u32);
uid_t virt$getuid();
uid_t virt$geteuid();
gid_t virt$getgid();
gid_t virt$getegid();
int virt$setuid(uid_t);
int virt$setgid(gid_t);
u32 virt$read(int, FlatPtr, ssize_t);
u32 virt$write(int, FlatPtr, ssize_t);
u32 virt$mprotect(FlatPtr, size_t, int);
u32 virt$madvise(FlatPtr, size_t, int);
u32 virt$open(u32);
int virt$pipe(FlatPtr pipefd, int flags);
int virt$close(int);
int virt$mkdir(FlatPtr path, size_t path_length, mode_t mode);
int virt$rmdir(FlatPtr path, size_t path_length);
int virt$unlink(FlatPtr path, size_t path_length);
int virt$symlink(FlatPtr address);
int virt$rename(FlatPtr address);
int virt$set_coredump_metadata(FlatPtr address);
int virt$get_process_name(FlatPtr buffer, int size);
int virt$set_process_name(FlatPtr buffer, int size);
int virt$set_mmap_name(FlatPtr);
int virt$clock_gettime(int, FlatPtr); int virt$clock_gettime(int, FlatPtr);
int virt$clock_nanosleep(FlatPtr); int virt$clock_nanosleep(FlatPtr);
int virt$dbgputstr(FlatPtr characters, int length);
int virt$chmod(FlatPtr, size_t, mode_t);
int virt$fchmod(int, mode_t);
int virt$chown(FlatPtr);
int virt$fchown(int, uid_t, gid_t);
int virt$clock_settime(uint32_t clock_id, FlatPtr user_ts); int virt$clock_settime(uint32_t clock_id, FlatPtr user_ts);
int virt$listen(int, int); int virt$close(int);
int virt$kill(pid_t, int);
int virt$killpg(int pgrp, int sig);
int virt$fstat(int, FlatPtr);
u32 virt$fcntl(int fd, int, u32);
int virt$getgroups(ssize_t count, FlatPtr);
int virt$setgroups(ssize_t count, FlatPtr);
int virt$lseek(int fd, FlatPtr offset_addr, int whence);
int virt$socket(int, int, int);
int virt$getsockopt(FlatPtr);
int virt$setsockopt(FlatPtr);
int virt$getsockname(FlatPtr);
int virt$getpeername(FlatPtr);
int virt$select(FlatPtr);
int virt$get_stack_bounds(FlatPtr, FlatPtr);
int virt$accept4(FlatPtr);
int virt$bind(int sockfd, FlatPtr address, socklen_t address_length);
int virt$recvmsg(int sockfd, FlatPtr msg_addr, int flags);
int virt$sendmsg(int sockfd, FlatPtr msg_addr, int flags);
int virt$connect(int sockfd, FlatPtr address, socklen_t address_size); int virt$connect(int sockfd, FlatPtr address, socklen_t address_size);
int virt$shutdown(int sockfd, int how);
void virt$sync();
void virt$exit(int);
ssize_t virt$getrandom(FlatPtr buffer, size_t buffer_size, unsigned int flags);
int virt$chdir(FlatPtr, size_t);
int virt$dup2(int, int);
int virt$getpgrp();
int virt$getpgid(pid_t);
int virt$setpgid(pid_t pid, pid_t pgid);
int virt$ttyname(int fd, FlatPtr buffer, size_t buffer_size);
int virt$getcwd(FlatPtr buffer, size_t buffer_size);
int virt$waitid(FlatPtr);
int virt$getsid(pid_t);
int virt$sched_setparam(int, FlatPtr);
int virt$sched_getparam(pid_t, FlatPtr);
int virt$set_thread_name(pid_t, FlatPtr, size_t);
pid_t virt$setsid();
int virt$create_inode_watcher(unsigned); int virt$create_inode_watcher(unsigned);
int virt$dbgputstr(FlatPtr characters, int length);
int virt$disown(pid_t);
int virt$dup2(int, int);
int virt$emuctl(FlatPtr, FlatPtr, FlatPtr);
int virt$execve(FlatPtr);
void virt$exit(int);
int virt$fchmod(int, mode_t);
int virt$fchown(int, uid_t, gid_t);
u32 virt$fcntl(int fd, int, u32);
int virt$fork();
int virt$fstat(int, FlatPtr);
int virt$ftruncate(int fd, FlatPtr length_addr);
int virt$futex(FlatPtr);
int virt$get_dir_entries(int fd, FlatPtr buffer, ssize_t);
int virt$get_process_name(FlatPtr buffer, int size);
int virt$get_stack_bounds(FlatPtr, FlatPtr);
int virt$getcwd(FlatPtr buffer, size_t buffer_size);
gid_t virt$getegid();
uid_t virt$geteuid();
gid_t virt$getgid();
int virt$getgroups(ssize_t count, FlatPtr);
int virt$gethostname(FlatPtr, ssize_t);
int virt$getpeername(FlatPtr);
int virt$getpgid(pid_t);
int virt$getpgrp();
u32 virt$getpid();
ssize_t virt$getrandom(FlatPtr buffer, size_t buffer_size, unsigned int flags);
int virt$getsid(pid_t);
int virt$getsockname(FlatPtr);
int virt$getsockopt(FlatPtr);
u32 virt$gettid();
uid_t virt$getuid();
int virt$inode_watcher_add_watch(FlatPtr); int virt$inode_watcher_add_watch(FlatPtr);
int virt$inode_watcher_remove_watch(int, int); int virt$inode_watcher_remove_watch(int, int);
int virt$readlink(FlatPtr); int virt$ioctl(int fd, unsigned, FlatPtr);
u32 virt$allocate_tls(FlatPtr, size_t); int virt$kill(pid_t, int);
int virt$killpg(int pgrp, int sig);
int virt$listen(int, int);
int virt$lseek(int fd, FlatPtr offset_addr, int whence);
u32 virt$madvise(FlatPtr, size_t, int);
int virt$mkdir(FlatPtr path, size_t path_length, mode_t mode);
u32 virt$mmap(u32);
u32 virt$mount(u32);
u32 virt$mprotect(FlatPtr, size_t, int);
FlatPtr virt$mremap(FlatPtr);
int virt$msyscall(FlatPtr);
u32 virt$munmap(FlatPtr address, size_t size);
u32 virt$open(u32);
FlatPtr virt$perf_event(int type, FlatPtr arg1, FlatPtr arg2);
FlatPtr virt$perf_register_string(FlatPtr, size_t);
int virt$pipe(FlatPtr pipefd, int flags);
u32 virt$pledge(u32);
int virt$profiling_disable(pid_t);
int virt$profiling_enable(pid_t);
int virt$ptsname(int fd, FlatPtr buffer, size_t buffer_size); int virt$ptsname(int fd, FlatPtr buffer, size_t buffer_size);
int virt$beep(); int virt$purge(int mode);
int virt$ftruncate(int fd, FlatPtr length_addr); u32 virt$read(int, FlatPtr, ssize_t);
int virt$readlink(FlatPtr);
int virt$realpath(FlatPtr);
int virt$recvfd(int, int);
int virt$recvmsg(int sockfd, FlatPtr msg_addr, int flags);
int virt$rename(FlatPtr address);
int virt$rmdir(FlatPtr path, size_t path_length);
int virt$sched_getparam(pid_t, FlatPtr);
int virt$sched_setparam(int, FlatPtr);
int virt$select(FlatPtr);
int virt$sendfd(int, int);
int virt$sendmsg(int sockfd, FlatPtr msg_addr, int flags);
int virt$set_coredump_metadata(FlatPtr address);
int virt$set_mmap_name(FlatPtr);
int virt$set_process_name(FlatPtr buffer, int size);
int virt$set_thread_name(pid_t, FlatPtr, size_t);
int virt$setgid(gid_t);
int virt$setgroups(ssize_t count, FlatPtr);
int virt$setpgid(pid_t pid, pid_t pgid);
pid_t virt$setsid();
int virt$setsockopt(FlatPtr);
int virt$setuid(uid_t);
int virt$shutdown(int sockfd, int how);
int virt$sigaction(int, FlatPtr, FlatPtr);
int virt$sigreturn();
int virt$socket(int, int, int);
int virt$stat(FlatPtr);
int virt$symlink(FlatPtr address);
void virt$sync();
u32 virt$sysconf(u32 name);
int virt$ttyname(int fd, FlatPtr buffer, size_t buffer_size);
mode_t virt$umask(mode_t); mode_t virt$umask(mode_t);
int virt$uname(FlatPtr params_addr); int virt$uname(FlatPtr params_addr);
int virt$anon_create(size_t, int); int virt$unlink(FlatPtr path, size_t path_length);
int virt$recvfd(int, int); u32 virt$unveil(u32);
int virt$sendfd(int, int); int virt$waitid(FlatPtr);
int virt$msyscall(FlatPtr); u32 virt$write(int, FlatPtr, ssize_t);
int virt$futex(FlatPtr);
void dispatch_one_pending_signal(); void dispatch_one_pending_signal();
MmapRegion const* find_text_region(FlatPtr address); MmapRegion const* find_text_region(FlatPtr address);

View file

@ -37,226 +37,226 @@ u32 Emulator::virt_syscall(u32 function, u32 arg1, u32 arg2, u32 arg3)
if constexpr (SPAM_DEBUG) if constexpr (SPAM_DEBUG)
reportln("Syscall: {} ({:x})", Syscall::to_string((Syscall::Function)function), function); reportln("Syscall: {} ({:x})", Syscall::to_string((Syscall::Function)function), function);
switch (function) { switch (function) {
case SC_chdir: case SC_accept4:
return virt$chdir(arg1, arg2); return virt$accept4(arg1);
case SC_dup2:
return virt$dup2(arg1, arg2);
case SC_get_stack_bounds:
return virt$get_stack_bounds(arg1, arg2);
case SC_access: case SC_access:
return virt$access(arg1, arg2, arg3); return virt$access(arg1, arg2, arg3);
case SC_waitid: case SC_allocate_tls:
return virt$waitid(arg1); return virt$allocate_tls(arg1, arg2);
case SC_getcwd:
return virt$getcwd(arg1, arg2);
case SC_ttyname:
return virt$ttyname(arg1, arg2, arg3);
case SC_getpgrp:
return virt$getpgrp();
case SC_getpgid:
return virt$getpgid(arg1);
case SC_setpgid:
return virt$setpgid(arg1, arg2);
case SC_execve:
return virt$execve(arg1);
case SC_sigaction:
return virt$sigaction(arg1, arg2, arg3);
case SC_sigreturn:
return virt$sigreturn();
case SC_stat:
return virt$stat(arg1);
case SC_realpath:
return virt$realpath(arg1);
case SC_gethostname:
return virt$gethostname(arg1, arg2);
case SC_ioctl:
return virt$ioctl(arg1, arg2, arg3);
case SC_get_dir_entries:
return virt$get_dir_entries(arg1, arg2, arg3);
case SC_profiling_enable:
return virt$profiling_enable(arg1);
case SC_profiling_disable:
return virt$profiling_disable(arg1);
case SC_perf_event:
return virt$perf_event((int)arg1, arg2, arg3);
case SC_perf_register_string:
return virt$perf_register_string(arg1, arg2);
case SC_disown:
return virt$disown(arg1);
case SC_purge:
return virt$purge(arg1);
case SC_mmap:
return virt$mmap(arg1);
case SC_mount:
return virt$mount(arg1);
case SC_munmap:
return virt$munmap(arg1, arg2);
case SC_mremap:
return virt$mremap(arg1);
case SC_gettid:
return virt$gettid();
case SC_sysconf:
return virt$sysconf(arg1);
case SC_getpid:
return virt$getpid();
case SC_getsid:
return virt$getsid(arg1);
case SC_pledge:
return virt$pledge(arg1);
case SC_unveil:
return virt$unveil(arg1);
case SC_getuid:
return virt$getuid();
case SC_geteuid:
return virt$geteuid();
case SC_getgid:
return virt$getgid();
case SC_getegid:
return virt$getegid();
case SC_setuid:
return virt$setuid(arg1);
case SC_setgid:
return virt$setgid(arg2);
case SC_close:
return virt$close(arg1);
case SC_fstat:
return virt$fstat(arg1, arg2);
case SC_mkdir:
return virt$mkdir(arg1, arg2, arg3);
case SC_rmdir:
return virt$rmdir(arg1, arg2);
case SC_unlink:
return virt$unlink(arg1, arg2);
case SC_symlink:
return virt$symlink(arg1);
case SC_rename:
return virt$rename(arg1);
case SC_set_coredump_metadata:
return virt$set_coredump_metadata(arg1);
case SC_write:
return virt$write(arg1, arg2, arg3);
case SC_read:
return virt$read(arg1, arg2, arg3);
case SC_mprotect:
return virt$mprotect(arg1, arg2, arg3);
case SC_madvise:
return virt$madvise(arg1, arg2, arg3);
case SC_anon_create: case SC_anon_create:
return virt$anon_create(arg1, arg2); return virt$anon_create(arg1, arg2);
case SC_sendfd: case SC_beep:
return virt$sendfd(arg1, arg2); return virt$beep();
case SC_recvfd: case SC_bind:
return virt$recvfd(arg1, arg2); return virt$bind(arg1, arg2, arg3);
case SC_open: case SC_chdir:
return virt$open(arg1); return virt$chdir(arg1, arg2);
case SC_pipe:
return virt$pipe(arg1, arg2);
case SC_fcntl:
return virt$fcntl(arg1, arg2, arg3);
case SC_getgroups:
return virt$getgroups(arg1, arg2);
case SC_setgroups:
return virt$setgroups(arg1, arg2);
case SC_lseek:
return virt$lseek(arg1, arg2, arg3);
case SC_socket:
return virt$socket(arg1, arg2, arg3);
case SC_getsockopt:
return virt$getsockopt(arg1);
case SC_get_process_name:
return virt$get_process_name(arg1, arg2);
case SC_set_process_name:
return virt$set_process_name(arg1, arg2);
case SC_dbgputstr:
return virt$dbgputstr(arg1, arg2);
case SC_chmod: case SC_chmod:
return virt$chmod(arg1, arg2, arg3); return virt$chmod(arg1, arg2, arg3);
case SC_chown:
return virt$chown(arg1);
case SC_clock_gettime:
return virt$clock_gettime(arg1, arg2);
case SC_clock_nanosleep:
return virt$clock_nanosleep(arg1);
case SC_clock_settime:
return virt$clock_settime(arg1, arg2);
case SC_close:
return virt$close(arg1);
case SC_connect:
return virt$connect(arg1, arg2, arg3);
case SC_create_inode_watcher:
return virt$create_inode_watcher(arg1);
case SC_dbgputstr:
return virt$dbgputstr(arg1, arg2);
case SC_disown:
return virt$disown(arg1);
case SC_dup2:
return virt$dup2(arg1, arg2);
case SC_emuctl:
return virt$emuctl(arg1, arg2, arg3);
case SC_execve:
return virt$execve(arg1);
case SC_exit:
virt$exit((int)arg1);
return 0;
case SC_fchmod: case SC_fchmod:
return virt$fchmod(arg1, arg2); return virt$fchmod(arg1, arg2);
case SC_fchown: case SC_fchown:
return virt$fchown(arg1, arg2, arg3); return virt$fchown(arg1, arg2, arg3);
case SC_accept4: case SC_fcntl:
return virt$accept4(arg1); return virt$fcntl(arg1, arg2, arg3);
case SC_setsockopt:
return virt$setsockopt(arg1);
case SC_getsockname:
return virt$getsockname(arg1);
case SC_getpeername:
return virt$getpeername(arg1);
case SC_bind:
return virt$bind(arg1, arg2, arg3);
case SC_connect:
return virt$connect(arg1, arg2, arg3);
case SC_shutdown:
return virt$shutdown(arg1, arg2);
case SC_listen:
return virt$listen(arg1, arg2);
case SC_select:
return virt$select(arg1);
case SC_recvmsg:
return virt$recvmsg(arg1, arg2, arg3);
case SC_sendmsg:
return virt$sendmsg(arg1, arg2, arg3);
case SC_kill:
return virt$kill(arg1, arg2);
case SC_killpg:
return virt$killpg(arg1, arg2);
case SC_set_mmap_name:
return virt$set_mmap_name(arg1);
case SC_sync:
virt$sync();
return 0;
case SC_exit:
virt$exit((int)arg1);
return 0;
case SC_clock_gettime:
return virt$clock_gettime(arg1, arg2);
case SC_clock_settime:
return virt$clock_settime(arg1, arg2);
case SC_getrandom:
return virt$getrandom(arg1, arg2, arg3);
case SC_fork: case SC_fork:
return virt$fork(); return virt$fork();
case SC_emuctl: case SC_fstat:
return virt$emuctl(arg1, arg2, arg3); return virt$fstat(arg1, arg2);
case SC_sched_getparam: case SC_ftruncate:
return virt$sched_getparam(arg1, arg2); return virt$ftruncate(arg1, arg2);
case SC_sched_setparam: case SC_futex:
return virt$sched_setparam(arg1, arg2); return virt$futex(arg1);
case SC_set_thread_name: case SC_get_dir_entries:
return virt$set_thread_name(arg1, arg2, arg3); return virt$get_dir_entries(arg1, arg2, arg3);
case SC_setsid: case SC_get_process_name:
return virt$setsid(); return virt$get_process_name(arg1, arg2);
case SC_create_inode_watcher: case SC_get_stack_bounds:
return virt$create_inode_watcher(arg1); return virt$get_stack_bounds(arg1, arg2);
case SC_getcwd:
return virt$getcwd(arg1, arg2);
case SC_getegid:
return virt$getegid();
case SC_geteuid:
return virt$geteuid();
case SC_getgid:
return virt$getgid();
case SC_getgroups:
return virt$getgroups(arg1, arg2);
case SC_gethostname:
return virt$gethostname(arg1, arg2);
case SC_getpeername:
return virt$getpeername(arg1);
case SC_getpgid:
return virt$getpgid(arg1);
case SC_getpgrp:
return virt$getpgrp();
case SC_getpid:
return virt$getpid();
case SC_getrandom:
return virt$getrandom(arg1, arg2, arg3);
case SC_getsid:
return virt$getsid(arg1);
case SC_getsockname:
return virt$getsockname(arg1);
case SC_getsockopt:
return virt$getsockopt(arg1);
case SC_gettid:
return virt$gettid();
case SC_getuid:
return virt$getuid();
case SC_inode_watcher_add_watch: case SC_inode_watcher_add_watch:
return virt$inode_watcher_add_watch(arg1); return virt$inode_watcher_add_watch(arg1);
case SC_inode_watcher_remove_watch: case SC_inode_watcher_remove_watch:
return virt$inode_watcher_remove_watch(arg1, arg2); return virt$inode_watcher_remove_watch(arg1, arg2);
case SC_clock_nanosleep: case SC_ioctl:
return virt$clock_nanosleep(arg1); return virt$ioctl(arg1, arg2, arg3);
case SC_readlink: case SC_kill:
return virt$readlink(arg1); return virt$kill(arg1, arg2);
case SC_killpg:
return virt$killpg(arg1, arg2);
case SC_listen:
return virt$listen(arg1, arg2);
case SC_lseek:
return virt$lseek(arg1, arg2, arg3);
case SC_madvise:
return virt$madvise(arg1, arg2, arg3);
case SC_map_time_page:
return -ENOSYS;
case SC_mkdir:
return virt$mkdir(arg1, arg2, arg3);
case SC_mmap:
return virt$mmap(arg1);
case SC_mount:
return virt$mount(arg1);
case SC_mprotect:
return virt$mprotect(arg1, arg2, arg3);
case SC_mremap:
return virt$mremap(arg1);
case SC_msyscall:
return virt$msyscall(arg1);
case SC_munmap:
return virt$munmap(arg1, arg2);
case SC_open:
return virt$open(arg1);
case SC_perf_event:
return virt$perf_event((int)arg1, arg2, arg3);
case SC_perf_register_string:
return virt$perf_register_string(arg1, arg2);
case SC_pipe:
return virt$pipe(arg1, arg2);
case SC_pledge:
return virt$pledge(arg1);
case SC_profiling_disable:
return virt$profiling_disable(arg1);
case SC_profiling_enable:
return virt$profiling_enable(arg1);
case SC_ptsname: case SC_ptsname:
return virt$ptsname(arg1, arg2, arg3); return virt$ptsname(arg1, arg2, arg3);
case SC_allocate_tls: case SC_purge:
return virt$allocate_tls(arg1, arg2); return virt$purge(arg1);
case SC_beep: case SC_read:
return virt$beep(); return virt$read(arg1, arg2, arg3);
case SC_ftruncate: case SC_readlink:
return virt$ftruncate(arg1, arg2); return virt$readlink(arg1);
case SC_realpath:
return virt$realpath(arg1);
case SC_recvfd:
return virt$recvfd(arg1, arg2);
case SC_recvmsg:
return virt$recvmsg(arg1, arg2, arg3);
case SC_rename:
return virt$rename(arg1);
case SC_rmdir:
return virt$rmdir(arg1, arg2);
case SC_sched_getparam:
return virt$sched_getparam(arg1, arg2);
case SC_sched_setparam:
return virt$sched_setparam(arg1, arg2);
case SC_select:
return virt$select(arg1);
case SC_sendfd:
return virt$sendfd(arg1, arg2);
case SC_sendmsg:
return virt$sendmsg(arg1, arg2, arg3);
case SC_set_coredump_metadata:
return virt$set_coredump_metadata(arg1);
case SC_set_mmap_name:
return virt$set_mmap_name(arg1);
case SC_set_process_name:
return virt$set_process_name(arg1, arg2);
case SC_set_thread_name:
return virt$set_thread_name(arg1, arg2, arg3);
case SC_setgid:
return virt$setgid(arg2);
case SC_setgroups:
return virt$setgroups(arg1, arg2);
case SC_setpgid:
return virt$setpgid(arg1, arg2);
case SC_setsid:
return virt$setsid();
case SC_setsockopt:
return virt$setsockopt(arg1);
case SC_setuid:
return virt$setuid(arg1);
case SC_shutdown:
return virt$shutdown(arg1, arg2);
case SC_sigaction:
return virt$sigaction(arg1, arg2, arg3);
case SC_sigreturn:
return virt$sigreturn();
case SC_socket:
return virt$socket(arg1, arg2, arg3);
case SC_stat:
return virt$stat(arg1);
case SC_symlink:
return virt$symlink(arg1);
case SC_sync:
virt$sync();
return 0;
case SC_sysconf:
return virt$sysconf(arg1);
case SC_ttyname:
return virt$ttyname(arg1, arg2, arg3);
case SC_umask: case SC_umask:
return virt$umask(arg1); return virt$umask(arg1);
case SC_uname: case SC_uname:
return virt$uname(arg1); return virt$uname(arg1);
case SC_chown: case SC_unlink:
return virt$chown(arg1); return virt$unlink(arg1, arg2);
case SC_msyscall: case SC_unveil:
return virt$msyscall(arg1); return virt$unveil(arg1);
case SC_futex: case SC_waitid:
return virt$futex(arg1); return virt$waitid(arg1);
case SC_map_time_page: case SC_write:
return -ENOSYS; return virt$write(arg1, arg2, arg3);
default: default:
reportln("\n=={}== \033[31;1mUnimplemented syscall: {}\033[0m, {:p}", getpid(), Syscall::to_string((Syscall::Function)function), function); reportln("\n=={}== \033[31;1mUnimplemented syscall: {}\033[0m, {:p}", getpid(), Syscall::to_string((Syscall::Function)function), function);
dump_backtrace(); dump_backtrace();