/* Copyright (C) 2014 Stony Brook University This file is part of Graphene Library OS. Graphene Library OS is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Graphene Library OS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* * shim_table.c * * This file contains the system call table used by application libraries. */ #include #include void debug_unsupp(int num) { debug("Unsupported system call %d\n", num); } shim_fp shim_table[LIBOS_SYSCALL_BOUND] = { (shim_fp)__shim_read, (shim_fp)__shim_write, (shim_fp)__shim_open, (shim_fp)__shim_close, (shim_fp)__shim_stat, (shim_fp)__shim_fstat, (shim_fp)__shim_lstat, (shim_fp)__shim_poll, (shim_fp)__shim_lseek, (shim_fp)__shim_mmap, (shim_fp)__shim_mprotect, (shim_fp)__shim_munmap, (shim_fp)__shim_brk, (shim_fp)__shim_rt_sigaction, (shim_fp)__shim_rt_sigprocmask, (shim_fp)__shim_rt_sigreturn, (shim_fp)__shim_ioctl, (shim_fp)__shim_pread64, (shim_fp)__shim_pwrite64, (shim_fp)__shim_readv, (shim_fp)__shim_writev, (shim_fp)__shim_access, (shim_fp)__shim_pipe, (shim_fp)__shim_select, (shim_fp)__shim_sched_yield, (shim_fp)__shim_mremap, (shim_fp)__shim_msync, (shim_fp)__shim_mincore, (shim_fp)__shim_madvise, (shim_fp)__shim_shmget, (shim_fp)__shim_shmat, (shim_fp)__shim_shmctl, (shim_fp)__shim_dup, (shim_fp)__shim_dup2, (shim_fp)__shim_pause, (shim_fp)__shim_nanosleep, (shim_fp)__shim_getitimer, (shim_fp)__shim_alarm, (shim_fp)__shim_setitimer, (shim_fp)__shim_getpid, (shim_fp)__shim_sendfile, (shim_fp)__shim_socket, (shim_fp)__shim_connect, (shim_fp)__shim_accept, (shim_fp)__shim_sendto, (shim_fp)__shim_recvfrom, (shim_fp)__shim_sendmsg, (shim_fp)__shim_recvmsg, (shim_fp)__shim_shutdown, (shim_fp)__shim_bind, (shim_fp)__shim_listen, (shim_fp)__shim_getsockname, (shim_fp)__shim_getpeername, (shim_fp)__shim_socketpair, (shim_fp)__shim_setsockopt, (shim_fp)__shim_getsockopt, (shim_fp)__shim_clone, (shim_fp)__shim_fork, (shim_fp)__shim_vfork, (shim_fp)__shim_execve, (shim_fp)__shim_exit, (shim_fp)__shim_wait4, (shim_fp)__shim_kill, (shim_fp)__shim_uname, (shim_fp)__shim_semget, (shim_fp)__shim_semop, (shim_fp)__shim_semctl, (shim_fp)__shim_shmdt, (shim_fp)__shim_msgget, (shim_fp)__shim_msgsnd, (shim_fp)__shim_msgrcv, (shim_fp)__shim_msgctl, (shim_fp)__shim_fcntl, (shim_fp)__shim_flock, (shim_fp)__shim_fsync, (shim_fp)__shim_fdatasync, (shim_fp)__shim_truncate, (shim_fp)__shim_ftruncate, (shim_fp)__shim_getdents, (shim_fp)__shim_getcwd, (shim_fp)__shim_chdir, (shim_fp)__shim_fchdir, (shim_fp)__shim_rename, (shim_fp)__shim_mkdir, (shim_fp)__shim_rmdir, (shim_fp)__shim_creat, (shim_fp)__shim_link, (shim_fp)__shim_unlink, (shim_fp)__shim_symlink, (shim_fp)__shim_readlink, (shim_fp)__shim_chmod, (shim_fp)__shim_fchmod, (shim_fp)__shim_chown, (shim_fp)__shim_fchown, (shim_fp)__shim_lchown, (shim_fp)__shim_umask, (shim_fp)__shim_gettimeofday, (shim_fp)__shim_getrlimit, (shim_fp)__shim_getrusage, (shim_fp)__shim_sysinfo, (shim_fp)__shim_times, (shim_fp)__shim_ptrace, (shim_fp)__shim_getuid, (shim_fp)__shim_syslog, (shim_fp)__shim_getgid, (shim_fp)__shim_setuid, (shim_fp)__shim_setgid, (shim_fp)__shim_geteuid, (shim_fp)__shim_getegid, (shim_fp)__shim_setpgid, (shim_fp)__shim_getppid, (shim_fp)__shim_getpgrp, (shim_fp)__shim_setsid, (shim_fp)__shim_setreuid, (shim_fp)__shim_setregid, (shim_fp)__shim_getgroups, (shim_fp)__shim_setgroups, (shim_fp)__shim_setresuid, (shim_fp)__shim_getresuid, (shim_fp)__shim_setresgid, (shim_fp)__shim_getresgid, (shim_fp)__shim_getpgid, (shim_fp)__shim_setfsuid, (shim_fp)__shim_setfsgid, (shim_fp)__shim_getsid, (shim_fp)__shim_capget, (shim_fp)__shim_capset, (shim_fp)__shim_rt_sigpending, (shim_fp)__shim_rt_sigtimedwait, (shim_fp)__shim_rt_sigqueueinfo, (shim_fp)__shim_rt_sigsuspend, (shim_fp)__shim_sigaltstack, (shim_fp)__shim_utime, (shim_fp)__shim_mknod, (shim_fp)__shim_uselib, (shim_fp)__shim_personality, (shim_fp)__shim_ustat, (shim_fp)__shim_statfs, (shim_fp)__shim_fstatfs, (shim_fp)__shim_sysfs, (shim_fp)__shim_getpriority, (shim_fp)__shim_setpriority, (shim_fp)__shim_sched_setparam, (shim_fp)__shim_sched_getparam, (shim_fp)__shim_sched_setscheduler, (shim_fp)__shim_sched_getscheduler, (shim_fp)__shim_sched_get_priority_max, (shim_fp)__shim_sched_get_priority_min, (shim_fp)__shim_sched_rr_get_interval, (shim_fp)__shim_mlock, (shim_fp)__shim_munlock, (shim_fp)__shim_mlockall, (shim_fp)__shim_munlockall, (shim_fp)__shim_vhangup, (shim_fp)__shim_modify_ldt, (shim_fp)__shim_pivot_root, (shim_fp)__shim__sysctl, (shim_fp)__shim_prctl, (shim_fp)__shim_arch_prctl, (shim_fp)__shim_adjtimex, (shim_fp)__shim_setrlimit, (shim_fp)__shim_chroot, (shim_fp)__shim_sync, (shim_fp)__shim_acct, (shim_fp)__shim_settimeofday, (shim_fp)__shim_mount, (shim_fp)__shim_umount2, (shim_fp)__shim_swapon, (shim_fp)__shim_swapoff, (shim_fp)__shim_reboot, (shim_fp)__shim_sethostname, (shim_fp)__shim_setdomainname, (shim_fp)__shim_iopl, (shim_fp)__shim_ioperm, (shim_fp)__shim_create_module, (shim_fp)__shim_init_module, (shim_fp)__shim_delete_module, (shim_fp)0, // shim_get_kernel_syms, (shim_fp)__shim_query_module, (shim_fp)__shim_quotactl, (shim_fp)0, // shim_nfsservctl, (shim_fp)0, // shim_getpmsg, (shim_fp)0, // shim_putpmsg, (shim_fp)0, // shim_afs_syscall, (shim_fp)0, // shim_tuxcall, (shim_fp)0, // shim_security, (shim_fp)__shim_gettid, (shim_fp)__shim_readahead, (shim_fp)__shim_setxattr, (shim_fp)__shim_lsetxattr, (shim_fp)__shim_fsetxattr, (shim_fp)__shim_getxattr, (shim_fp)__shim_lgetxattr, (shim_fp)__shim_fgetxattr, (shim_fp)__shim_listxattr, (shim_fp)__shim_llistxattr, (shim_fp)__shim_flistxattr, (shim_fp)__shim_removexattr, (shim_fp)__shim_lremovexattr, (shim_fp)__shim_fremovexattr, (shim_fp)__shim_tkill, (shim_fp)__shim_time, (shim_fp)__shim_futex, (shim_fp)__shim_sched_setaffinity, (shim_fp)__shim_sched_getaffinity, (shim_fp)__shim_set_thread_area, (shim_fp)__shim_io_setup, (shim_fp)__shim_io_destroy, (shim_fp)__shim_io_getevents, (shim_fp)__shim_io_submit, (shim_fp)__shim_io_cancel, (shim_fp)__shim_get_thread_area, (shim_fp)__shim_lookup_dcookie, (shim_fp)__shim_epoll_create, (shim_fp)0, // shim_epoll_ctl_old, (shim_fp)0, // shim_epoll_wait_old, (shim_fp)__shim_remap_file_pages, (shim_fp)__shim_getdents64, (shim_fp)__shim_set_tid_address, (shim_fp)__shim_restart_syscall, (shim_fp)__shim_semtimedop, (shim_fp)__shim_fadvise64, (shim_fp)__shim_timer_create, (shim_fp)__shim_timer_settime, (shim_fp)__shim_timer_gettime, (shim_fp)__shim_timer_getoverrun, (shim_fp)__shim_timer_delete, (shim_fp)__shim_clock_settime, (shim_fp)__shim_clock_gettime, (shim_fp)__shim_clock_getres, (shim_fp)__shim_clock_nanosleep, (shim_fp)__shim_exit_group, (shim_fp)__shim_epoll_wait, (shim_fp)__shim_epoll_ctl, (shim_fp)__shim_tgkill, (shim_fp)__shim_utimes, (shim_fp)0, // shim_vserver, (shim_fp)__shim_mbind, (shim_fp)__shim_set_mempolicy, (shim_fp)__shim_get_mempolicy, (shim_fp)__shim_mq_open, (shim_fp)__shim_mq_unlink, (shim_fp)__shim_mq_timedsend, (shim_fp)__shim_mq_timedreceive, (shim_fp)__shim_mq_notify, (shim_fp)__shim_mq_getsetattr, (shim_fp)0, // shim_kexec_load, (shim_fp)__shim_waitid, (shim_fp)0, // shim_add_key, (shim_fp)0, // shim_request_key, (shim_fp)0, // shim_keyctl, (shim_fp)__shim_ioprio_set, (shim_fp)__shim_ioprio_get, (shim_fp)__shim_inotify_init, (shim_fp)__shim_inotify_add_watch, (shim_fp)__shim_inotify_rm_watch, (shim_fp)__shim_migrate_pages, (shim_fp)__shim_openat, (shim_fp)__shim_mkdirat, (shim_fp)__shim_mknodat, (shim_fp)__shim_fchownat, (shim_fp)__shim_futimesat, (shim_fp)__shim_newfstatat, (shim_fp)__shim_unlinkat, (shim_fp)__shim_renameat, (shim_fp)__shim_linkat, (shim_fp)__shim_symlinkat, (shim_fp)__shim_readlinkat, (shim_fp)__shim_fchmodat, (shim_fp)__shim_faccessat, (shim_fp)__shim_pselect6, (shim_fp)__shim_ppoll, (shim_fp)__shim_unshare, (shim_fp)__shim_set_robust_list, (shim_fp)__shim_get_robust_list, (shim_fp)__shim_splice, (shim_fp)__shim_tee, (shim_fp)__shim_sync_file_range, (shim_fp)__shim_vmsplice, (shim_fp)__shim_move_pages, (shim_fp)__shim_utimensat, (shim_fp)__shim_epoll_pwait, (shim_fp)__shim_signalfd, (shim_fp)__shim_timerfd_create, (shim_fp)__shim_eventfd, (shim_fp)__shim_fallocate, (shim_fp)__shim_timerfd_settime, (shim_fp)__shim_timerfd_gettime, (shim_fp)__shim_accept4, (shim_fp)__shim_signalfd4, (shim_fp)__shim_eventfd2, (shim_fp)__shim_epoll_create1, (shim_fp)__shim_dup3, (shim_fp)__shim_pipe2, (shim_fp)__shim_inotify_init1, (shim_fp)__shim_preadv, (shim_fp)__shim_pwritev, (shim_fp)__shim_rt_tgsigqueueinfo, (shim_fp)__shim_perf_event_open, (shim_fp)__shim_recvmmsg, (shim_fp)__shim_fanotify_init, (shim_fp)__shim_fanotify_mark, (shim_fp)__shim_prlimit64, (shim_fp)__shim_name_to_handle_at, (shim_fp)__shim_open_by_handle_at, (shim_fp)__shim_clock_adjtime, (shim_fp)__shim_syncfs, (shim_fp)__shim_sendmmsg, (shim_fp)__shim_setns, (shim_fp)__shim_getcpu, [LIBOS_SYSCALL_BASE] = (shim_fp)NULL, (shim_fp)__shim_msgpersist, (shim_fp)__shim_benchmark_rpc, (shim_fp)__shim_send_rpc, (shim_fp)__shim_recv_rpc, (shim_fp)__shim_checkpoint, };