#include "syscall.h" #include "traps.h" #define SYSCALL(name) \ .global name; \ name: \ mov $SYS_ ## name, %rax; \ mov %rcx, %r10 ;\ syscall ;\ ret SYSCALL(fork) .global _xv6_exit _xv6_exit: mov $SYS_exit, %rax mov %rcx, %r10 syscall ret SYSCALL(wait) SYSCALL(pipe) SYSCALL(read) SYSCALL(write) SYSCALL(close) SYSCALL(kill) SYSCALL(exec) SYSCALL(open) SYSCALL(mknod) SYSCALL(unlink) SYSCALL(fstat) SYSCALL(link) SYSCALL(mkdir) SYSCALL(chdir) SYSCALL(dup) SYSCALL(dup2) SYSCALL(fcntl) SYSCALL(getpid) SYSCALL(sbrk) SYSCALL(sleep) SYSCALL(uptime) SYSCALL(vga_sync) SYSCALL(getmouse) SYSCALL(lseek) SYSCALL(reboot) SYSCALL(shutdown) SYSCALL(sigfillset) SYSCALL(sigprocmask) SYSCALL(sigwait) SYSCALL(alarm) SYSCALL(waitpid) SYSCALL(setsid) SYSCALL(mmap) SYSCALL(munmap) SYSCALL(delete) SYSCALL(show) SYSCALL(showstat) SYSCALL(ftruncate) SYSCALL(truncate) SYSCALL(rename) SYSCALL(symlink) SYSCALL(readlink) SYSCALL(getuid) SYSCALL(geteuid) SYSCALL(nanosleep) SYSCALL(mprotect) SYSCALL(ioctl) SYSCALL(getcwd) SYSCALL(arch_prctl) SYSCALL(set_tid_address) SYSCALL(set_robust_list) SYSCALL(futex) SYSCALL(clone) SYSCALL(exit_group) SYSCALL(wait4) SYSCALL(getgid) SYSCALL(getegid) SYSCALL(umask) SYSCALL(writev) SYSCALL(readv) SYSCALL(brk) SYSCALL(prlimit) SYSCALL(stat) SYSCALL(lstat) SYSCALL(access) SYSCALL(openat) SYSCALL(fchdir) SYSCALL(enable_linux_abi) SYSCALL(getrlimit) SYSCALL(setuid) SYSCALL(setgid) SYSCALL(getsid) SYSCALL(dup3) SYSCALL(pipe2) SYSCALL(clock_gettime) SYSCALL(getppid) SYSCALL(rt_sigaction) SYSCALL(shmget) SYSCALL(shmat) SYSCALL(shmdt) SYSCALL(socket) SYSCALL(bind) SYSCALL(listen) SYSCALL(accept) SYSCALL(connect) SYSCALL(sendto) SYSCALL(recvfrom) SYSCALL(sockshutdown) SYSCALL(socketpair) SYSCALL(setsockopt) SYSCALL(getsockopt) SYSCALL(mount)