process.cc revision 13987
111723Sar4jc@virginia.edu/* 211723Sar4jc@virginia.edu * Copyright (c) 2005 The Regents of The University of Michigan 311723Sar4jc@virginia.edu * Copyright (c) 2007 MIPS Technologies, Inc. 411723Sar4jc@virginia.edu * Copyright (c) 2016 The University of Virginia 511723Sar4jc@virginia.edu * All rights reserved. 611723Sar4jc@virginia.edu * 711723Sar4jc@virginia.edu * Redistribution and use in source and binary forms, with or without 811723Sar4jc@virginia.edu * modification, are permitted provided that the following conditions are 911723Sar4jc@virginia.edu * met: redistributions of source code must retain the above copyright 1011723Sar4jc@virginia.edu * notice, this list of conditions and the following disclaimer; 1111723Sar4jc@virginia.edu * redistributions in binary form must reproduce the above copyright 1211723Sar4jc@virginia.edu * notice, this list of conditions and the following disclaimer in the 1311723Sar4jc@virginia.edu * documentation and/or other materials provided with the distribution; 1411723Sar4jc@virginia.edu * neither the name of the copyright holders nor the names of its 1511723Sar4jc@virginia.edu * contributors may be used to endorse or promote products derived from 1611723Sar4jc@virginia.edu * this software without specific prior written permission. 1711723Sar4jc@virginia.edu * 1811723Sar4jc@virginia.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1911723Sar4jc@virginia.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2011723Sar4jc@virginia.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2111723Sar4jc@virginia.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2211723Sar4jc@virginia.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2311723Sar4jc@virginia.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2411723Sar4jc@virginia.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2511723Sar4jc@virginia.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2611723Sar4jc@virginia.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2711723Sar4jc@virginia.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2811723Sar4jc@virginia.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2911723Sar4jc@virginia.edu * 3011723Sar4jc@virginia.edu * Authors: Gabe Black 3111723Sar4jc@virginia.edu * Korey Sewell 3211723Sar4jc@virginia.edu * Alec Roelke 3311723Sar4jc@virginia.edu */ 3411723Sar4jc@virginia.edu 3511723Sar4jc@virginia.edu#include "arch/riscv/linux/process.hh" 3611723Sar4jc@virginia.edu 3711723Sar4jc@virginia.edu#include <map> 3811723Sar4jc@virginia.edu 3911723Sar4jc@virginia.edu#include "arch/riscv/isa_traits.hh" 4011723Sar4jc@virginia.edu#include "arch/riscv/linux/linux.hh" 4113987Sgabeblack@google.com#include "base/loader/object_file.hh" 4211723Sar4jc@virginia.edu#include "base/trace.hh" 4311723Sar4jc@virginia.edu#include "cpu/thread_context.hh" 4411723Sar4jc@virginia.edu#include "debug/SyscallVerbose.hh" 4511723Sar4jc@virginia.edu#include "kern/linux/linux.hh" 4611723Sar4jc@virginia.edu#include "sim/eventq.hh" 4711723Sar4jc@virginia.edu#include "sim/process.hh" 4811794Sbrandon.potter@amd.com#include "sim/syscall_desc.hh" 4911723Sar4jc@virginia.edu#include "sim/syscall_emul.hh" 5011723Sar4jc@virginia.edu#include "sim/system.hh" 5111723Sar4jc@virginia.edu 5211723Sar4jc@virginia.eduusing namespace std; 5311723Sar4jc@virginia.eduusing namespace RiscvISA; 5411723Sar4jc@virginia.edu 5513987Sgabeblack@google.comnamespace 5613987Sgabeblack@google.com{ 5713987Sgabeblack@google.com 5813987Sgabeblack@google.comclass RiscvLinuxObjectFileLoader : public ObjectFile::Loader 5913987Sgabeblack@google.com{ 6013987Sgabeblack@google.com public: 6113987Sgabeblack@google.com Process * 6213987Sgabeblack@google.com load(ProcessParams *params, ObjectFile *obj_file) override 6313987Sgabeblack@google.com { 6413987Sgabeblack@google.com auto arch = obj_file->getArch(); 6513987Sgabeblack@google.com auto opsys = obj_file->getOpSys(); 6613987Sgabeblack@google.com 6713987Sgabeblack@google.com if (arch != ObjectFile::Riscv64 && arch != ObjectFile::Riscv32) 6813987Sgabeblack@google.com return nullptr; 6913987Sgabeblack@google.com 7013987Sgabeblack@google.com if (opsys == ObjectFile::UnknownOpSys) { 7113987Sgabeblack@google.com warn("Unknown operating system; assuming Linux."); 7213987Sgabeblack@google.com opsys = ObjectFile::Linux; 7313987Sgabeblack@google.com } 7413987Sgabeblack@google.com 7513987Sgabeblack@google.com if (opsys != ObjectFile::Linux) 7613987Sgabeblack@google.com return nullptr; 7713987Sgabeblack@google.com 7813987Sgabeblack@google.com if (arch == ObjectFile::Riscv64) 7913987Sgabeblack@google.com return new RiscvLinuxProcess64(params, obj_file); 8013987Sgabeblack@google.com else 8113987Sgabeblack@google.com return new RiscvLinuxProcess32(params, obj_file); 8213987Sgabeblack@google.com } 8313987Sgabeblack@google.com}; 8413987Sgabeblack@google.com 8513987Sgabeblack@google.comRiscvLinuxObjectFileLoader loader; 8613987Sgabeblack@google.com 8713987Sgabeblack@google.com} // anonymous namespace 8813987Sgabeblack@google.com 8911723Sar4jc@virginia.edu/// Target uname() handler. 9011723Sar4jc@virginia.edustatic SyscallReturn 9113634Saustinharris@utexas.eduunameFunc64(SyscallDesc *desc, int callnum, Process *process, 9211723Sar4jc@virginia.edu ThreadContext *tc) 9311723Sar4jc@virginia.edu{ 9411723Sar4jc@virginia.edu int index = 0; 9511723Sar4jc@virginia.edu TypedBufferArg<Linux::utsname> name(process->getSyscallArg(tc, index)); 9611723Sar4jc@virginia.edu 9711723Sar4jc@virginia.edu strcpy(name->sysname, "Linux"); 9811723Sar4jc@virginia.edu strcpy(name->nodename,"sim.gem5.org"); 9911723Sar4jc@virginia.edu strcpy(name->release, "3.0.0"); 10011723Sar4jc@virginia.edu strcpy(name->version, "#1 Mon Aug 18 11:32:15 EDT 2003"); 10113634Saustinharris@utexas.edu strcpy(name->machine, "riscv64"); 10211723Sar4jc@virginia.edu 10311723Sar4jc@virginia.edu name.copyOut(tc->getMemProxy()); 10411723Sar4jc@virginia.edu return 0; 10511723Sar4jc@virginia.edu} 10611723Sar4jc@virginia.edu 10713634Saustinharris@utexas.edu/// Target uname() handler. 10813634Saustinharris@utexas.edustatic SyscallReturn 10913634Saustinharris@utexas.eduunameFunc32(SyscallDesc *desc, int callnum, Process *process, 11013634Saustinharris@utexas.edu ThreadContext *tc) 11113634Saustinharris@utexas.edu{ 11213634Saustinharris@utexas.edu int index = 0; 11313634Saustinharris@utexas.edu TypedBufferArg<Linux::utsname> name(process->getSyscallArg(tc, index)); 11413634Saustinharris@utexas.edu 11513634Saustinharris@utexas.edu strcpy(name->sysname, "Linux"); 11613634Saustinharris@utexas.edu strcpy(name->nodename,"sim.gem5.org"); 11713634Saustinharris@utexas.edu strcpy(name->release, "3.0.0"); 11813634Saustinharris@utexas.edu strcpy(name->version, "#1 Mon Aug 18 11:32:15 EDT 2003"); 11913634Saustinharris@utexas.edu strcpy(name->machine, "riscv32"); 12013634Saustinharris@utexas.edu 12113634Saustinharris@utexas.edu name.copyOut(tc->getMemProxy()); 12213634Saustinharris@utexas.edu return 0; 12313634Saustinharris@utexas.edu} 12413634Saustinharris@utexas.edu 12513634Saustinharris@utexas.edustd::map<int, SyscallDesc> RiscvLinuxProcess64::syscallDescs = { 12612297Sar4jc@virginia.edu {0, SyscallDesc("io_setup")}, 12712297Sar4jc@virginia.edu {1, SyscallDesc("io_destroy")}, 12812297Sar4jc@virginia.edu {2, SyscallDesc("io_submit")}, 12912297Sar4jc@virginia.edu {3, SyscallDesc("io_cancel")}, 13012297Sar4jc@virginia.edu {4, SyscallDesc("io_getevents")}, 13112297Sar4jc@virginia.edu {5, SyscallDesc("setxattr")}, 13212297Sar4jc@virginia.edu {6, SyscallDesc("lsetxattr")}, 13312297Sar4jc@virginia.edu {7, SyscallDesc("fsetxattr")}, 13412297Sar4jc@virginia.edu {8, SyscallDesc("getxattr")}, 13512297Sar4jc@virginia.edu {9, SyscallDesc("lgetxattr")}, 13612297Sar4jc@virginia.edu {10, SyscallDesc("fgetxattr")}, 13712297Sar4jc@virginia.edu {11, SyscallDesc("listxattr")}, 13812297Sar4jc@virginia.edu {12, SyscallDesc("llistxattr")}, 13912297Sar4jc@virginia.edu {13, SyscallDesc("flistxattr")}, 14012297Sar4jc@virginia.edu {14, SyscallDesc("removexattr")}, 14112297Sar4jc@virginia.edu {15, SyscallDesc("lremovexattr")}, 14212297Sar4jc@virginia.edu {16, SyscallDesc("fremovexattr")}, 14312297Sar4jc@virginia.edu {17, SyscallDesc("getcwd", getcwdFunc)}, 14412297Sar4jc@virginia.edu {18, SyscallDesc("lookup_dcookie")}, 14512297Sar4jc@virginia.edu {19, SyscallDesc("eventfd2")}, 14612297Sar4jc@virginia.edu {20, SyscallDesc("epoll_create1")}, 14712297Sar4jc@virginia.edu {21, SyscallDesc("epoll_ctl")}, 14812297Sar4jc@virginia.edu {22, SyscallDesc("epoll_pwait")}, 14912297Sar4jc@virginia.edu {23, SyscallDesc("dup", dupFunc)}, 15012297Sar4jc@virginia.edu {24, SyscallDesc("dup3")}, 15112297Sar4jc@virginia.edu {25, SyscallDesc("fcntl", fcntl64Func)}, 15212297Sar4jc@virginia.edu {26, SyscallDesc("inotify_init1")}, 15312297Sar4jc@virginia.edu {27, SyscallDesc("inotify_add_watch")}, 15412297Sar4jc@virginia.edu {28, SyscallDesc("inotify_rm_watch")}, 15513634Saustinharris@utexas.edu {29, SyscallDesc("ioctl", ioctlFunc<RiscvLinux64>)}, 15612297Sar4jc@virginia.edu {30, SyscallDesc("ioprio_get")}, 15712297Sar4jc@virginia.edu {31, SyscallDesc("ioprio_set")}, 15812297Sar4jc@virginia.edu {32, SyscallDesc("flock")}, 15912297Sar4jc@virginia.edu {33, SyscallDesc("mknodat")}, 16012297Sar4jc@virginia.edu {34, SyscallDesc("mkdirat")}, 16113634Saustinharris@utexas.edu {35, SyscallDesc("unlinkat", unlinkatFunc<RiscvLinux64>)}, 16212297Sar4jc@virginia.edu {36, SyscallDesc("symlinkat")}, 16312297Sar4jc@virginia.edu {37, SyscallDesc("linkat")}, 16413634Saustinharris@utexas.edu {38, SyscallDesc("renameat", renameatFunc<RiscvLinux64>)}, 16512297Sar4jc@virginia.edu {39, SyscallDesc("umount2")}, 16612297Sar4jc@virginia.edu {40, SyscallDesc("mount")}, 16712297Sar4jc@virginia.edu {41, SyscallDesc("pivot_root")}, 16812297Sar4jc@virginia.edu {42, SyscallDesc("nfsservctl")}, 16913634Saustinharris@utexas.edu {43, SyscallDesc("statfs", statfsFunc<RiscvLinux64>)}, 17013634Saustinharris@utexas.edu {44, SyscallDesc("fstatfs", fstatfsFunc<RiscvLinux64>)}, 17112297Sar4jc@virginia.edu {45, SyscallDesc("truncate", truncateFunc)}, 17212297Sar4jc@virginia.edu {46, SyscallDesc("ftruncate", ftruncate64Func)}, 17312297Sar4jc@virginia.edu {47, SyscallDesc("fallocate", fallocateFunc)}, 17413634Saustinharris@utexas.edu {48, SyscallDesc("faccessat", faccessatFunc<RiscvLinux64>)}, 17512297Sar4jc@virginia.edu {49, SyscallDesc("chdir")}, 17612297Sar4jc@virginia.edu {50, SyscallDesc("fchdir")}, 17712297Sar4jc@virginia.edu {51, SyscallDesc("chroot")}, 17813634Saustinharris@utexas.edu {52, SyscallDesc("fchmod", fchmodFunc<RiscvLinux64>)}, 17912297Sar4jc@virginia.edu {53, SyscallDesc("fchmodat")}, 18012297Sar4jc@virginia.edu {54, SyscallDesc("fchownat")}, 18112297Sar4jc@virginia.edu {55, SyscallDesc("fchown", fchownFunc)}, 18213634Saustinharris@utexas.edu {56, SyscallDesc("openat", openatFunc<RiscvLinux64>)}, 18312297Sar4jc@virginia.edu {57, SyscallDesc("close", closeFunc)}, 18412297Sar4jc@virginia.edu {58, SyscallDesc("vhangup")}, 18512297Sar4jc@virginia.edu {59, SyscallDesc("pipe2")}, 18612297Sar4jc@virginia.edu {60, SyscallDesc("quotactl")}, 18712297Sar4jc@virginia.edu {61, SyscallDesc("getdents64")}, 18812297Sar4jc@virginia.edu {62, SyscallDesc("lseek", lseekFunc)}, 18913634Saustinharris@utexas.edu {63, SyscallDesc("read", readFunc<RiscvLinux64>)}, 19013634Saustinharris@utexas.edu {64, SyscallDesc("write", writeFunc<RiscvLinux64>)}, 19113634Saustinharris@utexas.edu {66, SyscallDesc("writev", writevFunc<RiscvLinux64>)}, 19212297Sar4jc@virginia.edu {67, SyscallDesc("pread64")}, 19313634Saustinharris@utexas.edu {68, SyscallDesc("pwrite64", pwrite64Func<RiscvLinux64>)}, 19412297Sar4jc@virginia.edu {69, SyscallDesc("preadv")}, 19512297Sar4jc@virginia.edu {70, SyscallDesc("pwritev")}, 19612297Sar4jc@virginia.edu {71, SyscallDesc("sendfile")}, 19712297Sar4jc@virginia.edu {72, SyscallDesc("pselect6")}, 19812297Sar4jc@virginia.edu {73, SyscallDesc("ppoll")}, 19912297Sar4jc@virginia.edu {74, SyscallDesc("signalfd64")}, 20012297Sar4jc@virginia.edu {75, SyscallDesc("vmsplice")}, 20112297Sar4jc@virginia.edu {76, SyscallDesc("splice")}, 20212297Sar4jc@virginia.edu {77, SyscallDesc("tee")}, 20313634Saustinharris@utexas.edu {78, SyscallDesc("readlinkat", readlinkatFunc<RiscvLinux64>)}, 20413634Saustinharris@utexas.edu {79, SyscallDesc("fstatat", fstatat64Func<RiscvLinux64>)}, 20513634Saustinharris@utexas.edu {80, SyscallDesc("fstat", fstat64Func<RiscvLinux64>)}, 20612297Sar4jc@virginia.edu {81, SyscallDesc("sync")}, 20712297Sar4jc@virginia.edu {82, SyscallDesc("fsync")}, 20812297Sar4jc@virginia.edu {83, SyscallDesc("fdatasync")}, 20912297Sar4jc@virginia.edu {84, SyscallDesc("sync_file_range2")}, 21012297Sar4jc@virginia.edu {85, SyscallDesc("timerfd_create")}, 21112297Sar4jc@virginia.edu {86, SyscallDesc("timerfd_settime")}, 21212297Sar4jc@virginia.edu {87, SyscallDesc("timerfd_gettime")}, 21312297Sar4jc@virginia.edu {88, SyscallDesc("utimensat")}, 21412297Sar4jc@virginia.edu {89, SyscallDesc("acct")}, 21512297Sar4jc@virginia.edu {90, SyscallDesc("capget")}, 21612297Sar4jc@virginia.edu {91, SyscallDesc("capset")}, 21712297Sar4jc@virginia.edu {92, SyscallDesc("personality")}, 21812297Sar4jc@virginia.edu {93, SyscallDesc("exit", exitFunc)}, 21912297Sar4jc@virginia.edu {94, SyscallDesc("exit_group", exitGroupFunc)}, 22012297Sar4jc@virginia.edu {95, SyscallDesc("waitid")}, 22112414Sqtt2@cornell.edu {96, SyscallDesc("set_tid_address", setTidAddressFunc)}, 22212297Sar4jc@virginia.edu {97, SyscallDesc("unshare")}, 22313634Saustinharris@utexas.edu {98, SyscallDesc("futex", futexFunc<RiscvLinux64>)}, 22412415Sqtt2@cornell.edu {99, SyscallDesc("set_robust_list", ignoreFunc, SyscallDesc::WarnOnce)}, 22512415Sqtt2@cornell.edu {100, SyscallDesc("get_robust_list", ignoreFunc, SyscallDesc::WarnOnce)}, 22613645Sqtt2@cornell.edu {101, SyscallDesc("nanosleep", ignoreFunc, SyscallDesc::WarnOnce)}, 22712297Sar4jc@virginia.edu {102, SyscallDesc("getitimer")}, 22812297Sar4jc@virginia.edu {103, SyscallDesc("setitimer")}, 22912297Sar4jc@virginia.edu {104, SyscallDesc("kexec_load")}, 23012297Sar4jc@virginia.edu {105, SyscallDesc("init_module")}, 23112297Sar4jc@virginia.edu {106, SyscallDesc("delete_module")}, 23212297Sar4jc@virginia.edu {107, SyscallDesc("timer_create")}, 23312297Sar4jc@virginia.edu {108, SyscallDesc("timer_gettime")}, 23412297Sar4jc@virginia.edu {109, SyscallDesc("timer_getoverrun")}, 23512297Sar4jc@virginia.edu {110, SyscallDesc("timer_settime")}, 23612297Sar4jc@virginia.edu {111, SyscallDesc("timer_delete")}, 23712297Sar4jc@virginia.edu {112, SyscallDesc("clock_settime")}, 23813634Saustinharris@utexas.edu {113, SyscallDesc("clock_gettime", clock_gettimeFunc<RiscvLinux64>)}, 23913634Saustinharris@utexas.edu {114, SyscallDesc("clock_getres", clock_getresFunc<RiscvLinux64>)}, 24012297Sar4jc@virginia.edu {115, SyscallDesc("clock_nanosleep")}, 24112297Sar4jc@virginia.edu {116, SyscallDesc("syslog")}, 24212297Sar4jc@virginia.edu {117, SyscallDesc("ptrace")}, 24312297Sar4jc@virginia.edu {118, SyscallDesc("sched_setparam")}, 24412297Sar4jc@virginia.edu {119, SyscallDesc("sched_setscheduler")}, 24512297Sar4jc@virginia.edu {120, SyscallDesc("sched_getscheduler")}, 24612297Sar4jc@virginia.edu {121, SyscallDesc("sched_getparam")}, 24712297Sar4jc@virginia.edu {122, SyscallDesc("sched_setaffinity")}, 24812297Sar4jc@virginia.edu {123, SyscallDesc("sched_getaffinity")}, 24912417Sqtt2@cornell.edu {124, SyscallDesc("sched_yield", ignoreFunc, SyscallDesc::WarnOnce)}, 25012297Sar4jc@virginia.edu {125, SyscallDesc("sched_get_priority_max")}, 25112297Sar4jc@virginia.edu {126, SyscallDesc("sched_get_priority_min")}, 25212297Sar4jc@virginia.edu {127, SyscallDesc("scheD_rr_get_interval")}, 25312297Sar4jc@virginia.edu {128, SyscallDesc("restart_syscall")}, 25412297Sar4jc@virginia.edu {129, SyscallDesc("kill")}, 25512297Sar4jc@virginia.edu {130, SyscallDesc("tkill")}, 25613634Saustinharris@utexas.edu {131, SyscallDesc("tgkill", tgkillFunc<RiscvLinux64>)}, 25712297Sar4jc@virginia.edu {132, SyscallDesc("sigaltstack")}, 25812297Sar4jc@virginia.edu {133, SyscallDesc("rt_sigsuspend", ignoreFunc, SyscallDesc::WarnOnce)}, 25912297Sar4jc@virginia.edu {134, SyscallDesc("rt_sigaction", ignoreFunc, SyscallDesc::WarnOnce)}, 26012297Sar4jc@virginia.edu {135, SyscallDesc("rt_sigprocmask", ignoreFunc, SyscallDesc::WarnOnce)}, 26112297Sar4jc@virginia.edu {136, SyscallDesc("rt_sigpending", ignoreFunc, SyscallDesc::WarnOnce)}, 26212297Sar4jc@virginia.edu {137, SyscallDesc("rt_sigtimedwait", ignoreFunc,SyscallDesc::WarnOnce)}, 26312297Sar4jc@virginia.edu {138, SyscallDesc("rt_sigqueueinfo", ignoreFunc,SyscallDesc::WarnOnce)}, 26412297Sar4jc@virginia.edu {139, SyscallDesc("rt_sigreturn", ignoreFunc, SyscallDesc::WarnOnce)}, 26512297Sar4jc@virginia.edu {140, SyscallDesc("setpriority")}, 26612297Sar4jc@virginia.edu {141, SyscallDesc("getpriority")}, 26712297Sar4jc@virginia.edu {142, SyscallDesc("reboot")}, 26812297Sar4jc@virginia.edu {143, SyscallDesc("setregid")}, 26912297Sar4jc@virginia.edu {144, SyscallDesc("setgid")}, 27012297Sar4jc@virginia.edu {145, SyscallDesc("setreuid")}, 27112297Sar4jc@virginia.edu {146, SyscallDesc("setuid", setuidFunc)}, 27212297Sar4jc@virginia.edu {147, SyscallDesc("setresuid")}, 27312297Sar4jc@virginia.edu {148, SyscallDesc("getresuid")}, 27412297Sar4jc@virginia.edu {149, SyscallDesc("getresgid")}, 27512297Sar4jc@virginia.edu {150, SyscallDesc("getresgid")}, 27612297Sar4jc@virginia.edu {151, SyscallDesc("setfsuid")}, 27712297Sar4jc@virginia.edu {152, SyscallDesc("setfsgid")}, 27813634Saustinharris@utexas.edu {153, SyscallDesc("times", timesFunc<RiscvLinux64>)}, 27912297Sar4jc@virginia.edu {154, SyscallDesc("setpgid", setpgidFunc)}, 28012297Sar4jc@virginia.edu {155, SyscallDesc("getpgid")}, 28112297Sar4jc@virginia.edu {156, SyscallDesc("getsid")}, 28212297Sar4jc@virginia.edu {157, SyscallDesc("setsid")}, 28312297Sar4jc@virginia.edu {158, SyscallDesc("getgroups")}, 28412297Sar4jc@virginia.edu {159, SyscallDesc("setgroups")}, 28513634Saustinharris@utexas.edu {160, SyscallDesc("uname", unameFunc64)}, 28612297Sar4jc@virginia.edu {161, SyscallDesc("sethostname")}, 28712297Sar4jc@virginia.edu {162, SyscallDesc("setdomainname")}, 28813634Saustinharris@utexas.edu {163, SyscallDesc("getrlimit", getrlimitFunc<RiscvLinux64>)}, 28912297Sar4jc@virginia.edu {164, SyscallDesc("setrlimit", ignoreFunc)}, 29013634Saustinharris@utexas.edu {165, SyscallDesc("getrusage", getrusageFunc<RiscvLinux64>)}, 29112297Sar4jc@virginia.edu {166, SyscallDesc("umask", umaskFunc)}, 29212297Sar4jc@virginia.edu {167, SyscallDesc("prctl")}, 29312297Sar4jc@virginia.edu {168, SyscallDesc("getcpu")}, 29413634Saustinharris@utexas.edu {169, SyscallDesc("gettimeofday", gettimeofdayFunc<RiscvLinux64>)}, 29512297Sar4jc@virginia.edu {170, SyscallDesc("settimeofday")}, 29612297Sar4jc@virginia.edu {171, SyscallDesc("adjtimex")}, 29712297Sar4jc@virginia.edu {172, SyscallDesc("getpid", getpidFunc)}, 29812297Sar4jc@virginia.edu {173, SyscallDesc("getppid", getppidFunc)}, 29912297Sar4jc@virginia.edu {174, SyscallDesc("getuid", getuidFunc)}, 30012297Sar4jc@virginia.edu {175, SyscallDesc("geteuid", geteuidFunc)}, 30112297Sar4jc@virginia.edu {176, SyscallDesc("getgid", getgidFunc)}, 30212297Sar4jc@virginia.edu {177, SyscallDesc("getegid", getegidFunc)}, 30312297Sar4jc@virginia.edu {178, SyscallDesc("gettid", gettidFunc)}, 30413634Saustinharris@utexas.edu {179, SyscallDesc("sysinfo", sysinfoFunc<RiscvLinux64>)}, 30512297Sar4jc@virginia.edu {180, SyscallDesc("mq_open")}, 30612297Sar4jc@virginia.edu {181, SyscallDesc("mq_unlink")}, 30712297Sar4jc@virginia.edu {182, SyscallDesc("mq_timedsend")}, 30812297Sar4jc@virginia.edu {183, SyscallDesc("mq_timedrecieve")}, 30912297Sar4jc@virginia.edu {184, SyscallDesc("mq_notify")}, 31012297Sar4jc@virginia.edu {185, SyscallDesc("mq_getsetattr")}, 31112297Sar4jc@virginia.edu {186, SyscallDesc("msgget")}, 31212297Sar4jc@virginia.edu {187, SyscallDesc("msgctl")}, 31312297Sar4jc@virginia.edu {188, SyscallDesc("msgrcv")}, 31412297Sar4jc@virginia.edu {189, SyscallDesc("msgsnd")}, 31512297Sar4jc@virginia.edu {190, SyscallDesc("semget")}, 31612297Sar4jc@virginia.edu {191, SyscallDesc("semctl")}, 31712297Sar4jc@virginia.edu {192, SyscallDesc("semtimedop")}, 31812297Sar4jc@virginia.edu {193, SyscallDesc("semop")}, 31912297Sar4jc@virginia.edu {194, SyscallDesc("shmget")}, 32012297Sar4jc@virginia.edu {195, SyscallDesc("shmctl")}, 32112297Sar4jc@virginia.edu {196, SyscallDesc("shmat")}, 32212297Sar4jc@virginia.edu {197, SyscallDesc("shmdt")}, 32312297Sar4jc@virginia.edu {198, SyscallDesc("socket")}, 32412297Sar4jc@virginia.edu {199, SyscallDesc("socketpair")}, 32512297Sar4jc@virginia.edu {200, SyscallDesc("bind")}, 32612297Sar4jc@virginia.edu {201, SyscallDesc("listen")}, 32712297Sar4jc@virginia.edu {202, SyscallDesc("accept")}, 32812297Sar4jc@virginia.edu {203, SyscallDesc("connect")}, 32912297Sar4jc@virginia.edu {204, SyscallDesc("getsockname")}, 33012297Sar4jc@virginia.edu {205, SyscallDesc("getpeername")}, 33112297Sar4jc@virginia.edu {206, SyscallDesc("sendo")}, 33212297Sar4jc@virginia.edu {207, SyscallDesc("recvfrom")}, 33312297Sar4jc@virginia.edu {208, SyscallDesc("setsockopt")}, 33412297Sar4jc@virginia.edu {209, SyscallDesc("getsockopt")}, 33512297Sar4jc@virginia.edu {210, SyscallDesc("shutdown")}, 33612297Sar4jc@virginia.edu {211, SyscallDesc("sendmsg")}, 33712297Sar4jc@virginia.edu {212, SyscallDesc("recvmsg")}, 33812297Sar4jc@virginia.edu {213, SyscallDesc("readahead")}, 33912297Sar4jc@virginia.edu {214, SyscallDesc("brk", brkFunc)}, 34012297Sar4jc@virginia.edu {215, SyscallDesc("munmap", munmapFunc)}, 34113634Saustinharris@utexas.edu {216, SyscallDesc("mremap", mremapFunc<RiscvLinux64>)}, 34212297Sar4jc@virginia.edu {217, SyscallDesc("add_key")}, 34312297Sar4jc@virginia.edu {218, SyscallDesc("request_key")}, 34412297Sar4jc@virginia.edu {219, SyscallDesc("keyctl")}, 34513634Saustinharris@utexas.edu {220, SyscallDesc("clone", cloneFunc<RiscvLinux64>)}, 34613634Saustinharris@utexas.edu {221, SyscallDesc("execve", execveFunc<RiscvLinux64>)}, 34713634Saustinharris@utexas.edu {222, SyscallDesc("mmap", mmapFunc<RiscvLinux64>)}, 34812297Sar4jc@virginia.edu {223, SyscallDesc("fadvise64")}, 34912297Sar4jc@virginia.edu {224, SyscallDesc("swapon")}, 35012297Sar4jc@virginia.edu {225, SyscallDesc("swapoff")}, 35112297Sar4jc@virginia.edu {226, SyscallDesc("mprotect", ignoreFunc)}, 35212297Sar4jc@virginia.edu {227, SyscallDesc("msync", ignoreFunc)}, 35312297Sar4jc@virginia.edu {228, SyscallDesc("mlock", ignoreFunc)}, 35412297Sar4jc@virginia.edu {229, SyscallDesc("munlock", ignoreFunc)}, 35512297Sar4jc@virginia.edu {230, SyscallDesc("mlockall", ignoreFunc)}, 35612297Sar4jc@virginia.edu {231, SyscallDesc("munlockall", ignoreFunc)}, 35712297Sar4jc@virginia.edu {232, SyscallDesc("mincore", ignoreFunc)}, 35812297Sar4jc@virginia.edu {233, SyscallDesc("madvise", ignoreFunc)}, 35912297Sar4jc@virginia.edu {234, SyscallDesc("remap_file_pages")}, 36012297Sar4jc@virginia.edu {235, SyscallDesc("mbind", ignoreFunc)}, 36112297Sar4jc@virginia.edu {236, SyscallDesc("get_mempolicy")}, 36212297Sar4jc@virginia.edu {237, SyscallDesc("set_mempolicy")}, 36312297Sar4jc@virginia.edu {238, SyscallDesc("migrate_pages")}, 36412297Sar4jc@virginia.edu {239, SyscallDesc("move_pages")}, 36512297Sar4jc@virginia.edu {240, SyscallDesc("tgsigqueueinfo")}, 36612297Sar4jc@virginia.edu {241, SyscallDesc("perf_event_open")}, 36712297Sar4jc@virginia.edu {242, SyscallDesc("accept4")}, 36812297Sar4jc@virginia.edu {243, SyscallDesc("recvmmsg")}, 36912297Sar4jc@virginia.edu {260, SyscallDesc("wait4")}, 37013634Saustinharris@utexas.edu {261, SyscallDesc("prlimit64", prlimitFunc<RiscvLinux64>)}, 37112297Sar4jc@virginia.edu {262, SyscallDesc("fanotify_init")}, 37212297Sar4jc@virginia.edu {263, SyscallDesc("fanotify_mark")}, 37312297Sar4jc@virginia.edu {264, SyscallDesc("name_to_handle_at")}, 37412297Sar4jc@virginia.edu {265, SyscallDesc("open_by_handle_at")}, 37512297Sar4jc@virginia.edu {266, SyscallDesc("clock_adjtime")}, 37612297Sar4jc@virginia.edu {267, SyscallDesc("syncfs")}, 37712297Sar4jc@virginia.edu {268, SyscallDesc("setns")}, 37812297Sar4jc@virginia.edu {269, SyscallDesc("sendmmsg")}, 37912297Sar4jc@virginia.edu {270, SyscallDesc("process_vm_ready")}, 38012297Sar4jc@virginia.edu {271, SyscallDesc("process_vm_writev")}, 38112297Sar4jc@virginia.edu {272, SyscallDesc("kcmp")}, 38212297Sar4jc@virginia.edu {273, SyscallDesc("finit_module")}, 38312297Sar4jc@virginia.edu {274, SyscallDesc("sched_setattr")}, 38412297Sar4jc@virginia.edu {275, SyscallDesc("sched_getattr")}, 38512297Sar4jc@virginia.edu {276, SyscallDesc("renameat2")}, 38612297Sar4jc@virginia.edu {277, SyscallDesc("seccomp")}, 38712297Sar4jc@virginia.edu {278, SyscallDesc("getrandom")}, 38812297Sar4jc@virginia.edu {279, SyscallDesc("memfd_create")}, 38912297Sar4jc@virginia.edu {280, SyscallDesc("bpf")}, 39012297Sar4jc@virginia.edu {281, SyscallDesc("execveat")}, 39112297Sar4jc@virginia.edu {282, SyscallDesc("userfaultid")}, 39212297Sar4jc@virginia.edu {283, SyscallDesc("membarrier")}, 39312297Sar4jc@virginia.edu {284, SyscallDesc("mlock2")}, 39412297Sar4jc@virginia.edu {285, SyscallDesc("copy_file_range")}, 39512297Sar4jc@virginia.edu {286, SyscallDesc("preadv2")}, 39612297Sar4jc@virginia.edu {287, SyscallDesc("pwritev2")}, 39713634Saustinharris@utexas.edu {1024, SyscallDesc("open", openFunc<RiscvLinux64>)}, 39812297Sar4jc@virginia.edu {1025, SyscallDesc("link")}, 39911723Sar4jc@virginia.edu {1026, SyscallDesc("unlink", unlinkFunc)}, 40012297Sar4jc@virginia.edu {1027, SyscallDesc("mknod")}, 40113634Saustinharris@utexas.edu {1028, SyscallDesc("chmod", chmodFunc<RiscvLinux64>)}, 40212297Sar4jc@virginia.edu {1029, SyscallDesc("chown", chownFunc)}, 40311723Sar4jc@virginia.edu {1030, SyscallDesc("mkdir", mkdirFunc)}, 40412297Sar4jc@virginia.edu {1031, SyscallDesc("rmdir")}, 40512297Sar4jc@virginia.edu {1032, SyscallDesc("lchown")}, 40611723Sar4jc@virginia.edu {1033, SyscallDesc("access", accessFunc)}, 40712297Sar4jc@virginia.edu {1034, SyscallDesc("rename", renameFunc)}, 40812297Sar4jc@virginia.edu {1035, SyscallDesc("readlink", readlinkFunc)}, 40912297Sar4jc@virginia.edu {1036, SyscallDesc("symlink")}, 41013634Saustinharris@utexas.edu {1037, SyscallDesc("utimes", utimesFunc<RiscvLinux64>)}, 41113634Saustinharris@utexas.edu {1038, SyscallDesc("stat", stat64Func<RiscvLinux64>)}, 41213634Saustinharris@utexas.edu {1039, SyscallDesc("lstat", lstat64Func<RiscvLinux64>)}, 41312297Sar4jc@virginia.edu {1040, SyscallDesc("pipe", pipeFunc)}, 41412297Sar4jc@virginia.edu {1041, SyscallDesc("dup2", dup2Func)}, 41512297Sar4jc@virginia.edu {1042, SyscallDesc("epoll_create")}, 41612297Sar4jc@virginia.edu {1043, SyscallDesc("inotifiy_init")}, 41712297Sar4jc@virginia.edu {1044, SyscallDesc("eventfd")}, 41812297Sar4jc@virginia.edu {1045, SyscallDesc("signalfd")}, 41912297Sar4jc@virginia.edu {1046, SyscallDesc("sendfile")}, 42012297Sar4jc@virginia.edu {1047, SyscallDesc("ftruncate", ftruncate64Func)}, 42112297Sar4jc@virginia.edu {1048, SyscallDesc("truncate", truncate64Func)}, 42213634Saustinharris@utexas.edu {1049, SyscallDesc("stat", stat64Func<RiscvLinux64>)}, 42313634Saustinharris@utexas.edu {1050, SyscallDesc("lstat", lstat64Func<RiscvLinux64>)}, 42413634Saustinharris@utexas.edu {1051, SyscallDesc("fstat", fstat64Func<RiscvLinux64>)}, 42512297Sar4jc@virginia.edu {1052, SyscallDesc("fcntl", fcntl64Func)}, 42612297Sar4jc@virginia.edu {1053, SyscallDesc("fadvise64")}, 42712297Sar4jc@virginia.edu {1054, SyscallDesc("newfstatat")}, 42813634Saustinharris@utexas.edu {1055, SyscallDesc("fstatfs", fstatfsFunc<RiscvLinux64>)}, 42913634Saustinharris@utexas.edu {1056, SyscallDesc("statfs", statfsFunc<RiscvLinux64>)}, 43012297Sar4jc@virginia.edu {1057, SyscallDesc("lseek", lseekFunc)}, 43113634Saustinharris@utexas.edu {1058, SyscallDesc("mmap", mmapFunc<RiscvLinux64>)}, 43212297Sar4jc@virginia.edu {1059, SyscallDesc("alarm")}, 43312297Sar4jc@virginia.edu {1060, SyscallDesc("getpgrp")}, 43412297Sar4jc@virginia.edu {1061, SyscallDesc("pause")}, 43513634Saustinharris@utexas.edu {1062, SyscallDesc("time", timeFunc<RiscvLinux64>)}, 43612297Sar4jc@virginia.edu {1063, SyscallDesc("utime")}, 43712297Sar4jc@virginia.edu {1064, SyscallDesc("creat")}, 43812297Sar4jc@virginia.edu {1065, SyscallDesc("getdents")}, 43912297Sar4jc@virginia.edu {1066, SyscallDesc("futimesat")}, 44012297Sar4jc@virginia.edu {1067, SyscallDesc("select")}, 44112297Sar4jc@virginia.edu {1068, SyscallDesc("poll")}, 44212297Sar4jc@virginia.edu {1069, SyscallDesc("epoll_wait")}, 44312297Sar4jc@virginia.edu {1070, SyscallDesc("ustat")}, 44412297Sar4jc@virginia.edu {1071, SyscallDesc("vfork")}, 44512297Sar4jc@virginia.edu {1072, SyscallDesc("oldwait4")}, 44612297Sar4jc@virginia.edu {1073, SyscallDesc("recv")}, 44712297Sar4jc@virginia.edu {1074, SyscallDesc("send")}, 44812297Sar4jc@virginia.edu {1075, SyscallDesc("bdflush")}, 44912297Sar4jc@virginia.edu {1076, SyscallDesc("umount")}, 45012297Sar4jc@virginia.edu {1077, SyscallDesc("uselib")}, 45112297Sar4jc@virginia.edu {1078, SyscallDesc("sysctl")}, 45212297Sar4jc@virginia.edu {1079, SyscallDesc("fork")}, 45312297Sar4jc@virginia.edu {2011, SyscallDesc("getmainvars")} 45411723Sar4jc@virginia.edu}; 45511723Sar4jc@virginia.edu 45613634Saustinharris@utexas.edustd::map<int, SyscallDesc> RiscvLinuxProcess32::syscallDescs = { 45713634Saustinharris@utexas.edu {0, SyscallDesc("io_setup")}, 45813634Saustinharris@utexas.edu {1, SyscallDesc("io_destroy")}, 45913634Saustinharris@utexas.edu {2, SyscallDesc("io_submit")}, 46013634Saustinharris@utexas.edu {3, SyscallDesc("io_cancel")}, 46113634Saustinharris@utexas.edu {4, SyscallDesc("io_getevents")}, 46213634Saustinharris@utexas.edu {5, SyscallDesc("setxattr")}, 46313634Saustinharris@utexas.edu {6, SyscallDesc("lsetxattr")}, 46413634Saustinharris@utexas.edu {7, SyscallDesc("fsetxattr")}, 46513634Saustinharris@utexas.edu {8, SyscallDesc("getxattr")}, 46613634Saustinharris@utexas.edu {9, SyscallDesc("lgetxattr")}, 46713634Saustinharris@utexas.edu {10, SyscallDesc("fgetxattr")}, 46813634Saustinharris@utexas.edu {11, SyscallDesc("listxattr")}, 46913634Saustinharris@utexas.edu {12, SyscallDesc("llistxattr")}, 47013634Saustinharris@utexas.edu {13, SyscallDesc("flistxattr")}, 47113634Saustinharris@utexas.edu {14, SyscallDesc("removexattr")}, 47213634Saustinharris@utexas.edu {15, SyscallDesc("lremovexattr")}, 47313634Saustinharris@utexas.edu {16, SyscallDesc("fremovexattr")}, 47413634Saustinharris@utexas.edu {17, SyscallDesc("getcwd", getcwdFunc)}, 47513634Saustinharris@utexas.edu {18, SyscallDesc("lookup_dcookie")}, 47613634Saustinharris@utexas.edu {19, SyscallDesc("eventfd2")}, 47713634Saustinharris@utexas.edu {20, SyscallDesc("epoll_create1")}, 47813634Saustinharris@utexas.edu {21, SyscallDesc("epoll_ctl")}, 47913634Saustinharris@utexas.edu {22, SyscallDesc("epoll_pwait")}, 48013634Saustinharris@utexas.edu {23, SyscallDesc("dup", dupFunc)}, 48113634Saustinharris@utexas.edu {24, SyscallDesc("dup3")}, 48213634Saustinharris@utexas.edu {25, SyscallDesc("fcntl", fcntlFunc)}, 48313634Saustinharris@utexas.edu {26, SyscallDesc("inotify_init1")}, 48413634Saustinharris@utexas.edu {27, SyscallDesc("inotify_add_watch")}, 48513634Saustinharris@utexas.edu {28, SyscallDesc("inotify_rm_watch")}, 48613634Saustinharris@utexas.edu {29, SyscallDesc("ioctl", ioctlFunc<RiscvLinux32>)}, 48713634Saustinharris@utexas.edu {30, SyscallDesc("ioprio_get")}, 48813634Saustinharris@utexas.edu {31, SyscallDesc("ioprio_set")}, 48913634Saustinharris@utexas.edu {32, SyscallDesc("flock")}, 49013634Saustinharris@utexas.edu {33, SyscallDesc("mknodat")}, 49113634Saustinharris@utexas.edu {34, SyscallDesc("mkdirat")}, 49213634Saustinharris@utexas.edu {35, SyscallDesc("unlinkat", unlinkatFunc<RiscvLinux32>)}, 49313634Saustinharris@utexas.edu {36, SyscallDesc("symlinkat")}, 49413634Saustinharris@utexas.edu {37, SyscallDesc("linkat")}, 49513634Saustinharris@utexas.edu {38, SyscallDesc("renameat", renameatFunc<RiscvLinux32>)}, 49613634Saustinharris@utexas.edu {39, SyscallDesc("umount2")}, 49713634Saustinharris@utexas.edu {40, SyscallDesc("mount")}, 49813634Saustinharris@utexas.edu {41, SyscallDesc("pivot_root")}, 49913634Saustinharris@utexas.edu {42, SyscallDesc("nfsservctl")}, 50013634Saustinharris@utexas.edu {43, SyscallDesc("statfs", statfsFunc<RiscvLinux32>)}, 50113634Saustinharris@utexas.edu {44, SyscallDesc("fstatfs", fstatfsFunc<RiscvLinux32>)}, 50213634Saustinharris@utexas.edu {45, SyscallDesc("truncate", truncateFunc)}, 50313634Saustinharris@utexas.edu {46, SyscallDesc("ftruncate", ftruncateFunc)}, 50413634Saustinharris@utexas.edu {47, SyscallDesc("fallocate", fallocateFunc)}, 50513634Saustinharris@utexas.edu {48, SyscallDesc("faccessat", faccessatFunc<RiscvLinux32>)}, 50613634Saustinharris@utexas.edu {49, SyscallDesc("chdir")}, 50713634Saustinharris@utexas.edu {50, SyscallDesc("fchdir")}, 50813634Saustinharris@utexas.edu {51, SyscallDesc("chroot")}, 50913634Saustinharris@utexas.edu {52, SyscallDesc("fchmod", fchmodFunc<RiscvLinux32>)}, 51013634Saustinharris@utexas.edu {53, SyscallDesc("fchmodat")}, 51113634Saustinharris@utexas.edu {54, SyscallDesc("fchownat")}, 51213634Saustinharris@utexas.edu {55, SyscallDesc("fchown", fchownFunc)}, 51313634Saustinharris@utexas.edu {56, SyscallDesc("openat", openatFunc<RiscvLinux32>)}, 51413634Saustinharris@utexas.edu {57, SyscallDesc("close", closeFunc)}, 51513634Saustinharris@utexas.edu {58, SyscallDesc("vhangup")}, 51613634Saustinharris@utexas.edu {59, SyscallDesc("pipe2")}, 51713634Saustinharris@utexas.edu {60, SyscallDesc("quotactl")}, 51813634Saustinharris@utexas.edu {61, SyscallDesc("getdents64")}, 51913634Saustinharris@utexas.edu {62, SyscallDesc("lseek", lseekFunc)}, 52013634Saustinharris@utexas.edu {63, SyscallDesc("read", readFunc<RiscvLinux32>)}, 52113634Saustinharris@utexas.edu {64, SyscallDesc("write", writeFunc<RiscvLinux32>)}, 52213634Saustinharris@utexas.edu {66, SyscallDesc("writev", writevFunc<RiscvLinux32>)}, 52313634Saustinharris@utexas.edu {67, SyscallDesc("pread64")}, 52413634Saustinharris@utexas.edu {68, SyscallDesc("pwrite64", pwrite64Func<RiscvLinux32>)}, 52513634Saustinharris@utexas.edu {69, SyscallDesc("preadv")}, 52613634Saustinharris@utexas.edu {70, SyscallDesc("pwritev")}, 52713634Saustinharris@utexas.edu {71, SyscallDesc("sendfile")}, 52813634Saustinharris@utexas.edu {72, SyscallDesc("pselect6")}, 52913634Saustinharris@utexas.edu {73, SyscallDesc("ppoll")}, 53013634Saustinharris@utexas.edu {74, SyscallDesc("signalfd64")}, 53113634Saustinharris@utexas.edu {75, SyscallDesc("vmsplice")}, 53213634Saustinharris@utexas.edu {76, SyscallDesc("splice")}, 53313634Saustinharris@utexas.edu {77, SyscallDesc("tee")}, 53413634Saustinharris@utexas.edu {78, SyscallDesc("readlinkat", readlinkatFunc<RiscvLinux32>)}, 53513634Saustinharris@utexas.edu {79, SyscallDesc("fstatat")}, 53613634Saustinharris@utexas.edu {80, SyscallDesc("fstat", fstatFunc<RiscvLinux32>)}, 53713634Saustinharris@utexas.edu {81, SyscallDesc("sync")}, 53813634Saustinharris@utexas.edu {82, SyscallDesc("fsync")}, 53913634Saustinharris@utexas.edu {83, SyscallDesc("fdatasync")}, 54013634Saustinharris@utexas.edu {84, SyscallDesc("sync_file_range2")}, 54113634Saustinharris@utexas.edu {85, SyscallDesc("timerfd_create")}, 54213634Saustinharris@utexas.edu {86, SyscallDesc("timerfd_settime")}, 54313634Saustinharris@utexas.edu {87, SyscallDesc("timerfd_gettime")}, 54413634Saustinharris@utexas.edu {88, SyscallDesc("utimensat")}, 54513634Saustinharris@utexas.edu {89, SyscallDesc("acct")}, 54613634Saustinharris@utexas.edu {90, SyscallDesc("capget")}, 54713634Saustinharris@utexas.edu {91, SyscallDesc("capset")}, 54813634Saustinharris@utexas.edu {92, SyscallDesc("personality")}, 54913634Saustinharris@utexas.edu {93, SyscallDesc("exit", exitFunc)}, 55013634Saustinharris@utexas.edu {94, SyscallDesc("exit_group", exitGroupFunc)}, 55113634Saustinharris@utexas.edu {95, SyscallDesc("waitid")}, 55213634Saustinharris@utexas.edu {96, SyscallDesc("set_tid_address", setTidAddressFunc)}, 55313634Saustinharris@utexas.edu {97, SyscallDesc("unshare")}, 55413634Saustinharris@utexas.edu {98, SyscallDesc("futex", futexFunc<RiscvLinux32>)}, 55513634Saustinharris@utexas.edu {99, SyscallDesc("set_robust_list", ignoreFunc, SyscallDesc::WarnOnce)}, 55613634Saustinharris@utexas.edu {100, SyscallDesc("get_robust_list", ignoreFunc, SyscallDesc::WarnOnce)}, 55713634Saustinharris@utexas.edu {101, SyscallDesc("nanosleep")}, 55813634Saustinharris@utexas.edu {102, SyscallDesc("getitimer")}, 55913634Saustinharris@utexas.edu {103, SyscallDesc("setitimer")}, 56013634Saustinharris@utexas.edu {104, SyscallDesc("kexec_load")}, 56113634Saustinharris@utexas.edu {105, SyscallDesc("init_module")}, 56213634Saustinharris@utexas.edu {106, SyscallDesc("delete_module")}, 56313634Saustinharris@utexas.edu {107, SyscallDesc("timer_create")}, 56413634Saustinharris@utexas.edu {108, SyscallDesc("timer_gettime")}, 56513634Saustinharris@utexas.edu {109, SyscallDesc("timer_getoverrun")}, 56613634Saustinharris@utexas.edu {110, SyscallDesc("timer_settime")}, 56713634Saustinharris@utexas.edu {111, SyscallDesc("timer_delete")}, 56813634Saustinharris@utexas.edu {112, SyscallDesc("clock_settime")}, 56913634Saustinharris@utexas.edu {113, SyscallDesc("clock_gettime", clock_gettimeFunc<RiscvLinux32>)}, 57013634Saustinharris@utexas.edu {114, SyscallDesc("clock_getres", clock_getresFunc<RiscvLinux32>)}, 57113634Saustinharris@utexas.edu {115, SyscallDesc("clock_nanosleep")}, 57213634Saustinharris@utexas.edu {116, SyscallDesc("syslog")}, 57313634Saustinharris@utexas.edu {117, SyscallDesc("ptrace")}, 57413634Saustinharris@utexas.edu {118, SyscallDesc("sched_setparam")}, 57513634Saustinharris@utexas.edu {119, SyscallDesc("sched_setscheduler")}, 57613634Saustinharris@utexas.edu {120, SyscallDesc("sched_getscheduler")}, 57713634Saustinharris@utexas.edu {121, SyscallDesc("sched_getparam")}, 57813634Saustinharris@utexas.edu {122, SyscallDesc("sched_setaffinity")}, 57913634Saustinharris@utexas.edu {123, SyscallDesc("sched_getaffinity")}, 58013634Saustinharris@utexas.edu {124, SyscallDesc("sched_yield", ignoreFunc, SyscallDesc::WarnOnce)}, 58113634Saustinharris@utexas.edu {125, SyscallDesc("sched_get_priority_max")}, 58213634Saustinharris@utexas.edu {126, SyscallDesc("sched_get_priority_min")}, 58313634Saustinharris@utexas.edu {127, SyscallDesc("scheD_rr_get_interval")}, 58413634Saustinharris@utexas.edu {128, SyscallDesc("restart_syscall")}, 58513634Saustinharris@utexas.edu {129, SyscallDesc("kill")}, 58613634Saustinharris@utexas.edu {130, SyscallDesc("tkill")}, 58713634Saustinharris@utexas.edu {131, SyscallDesc("tgkill", tgkillFunc<RiscvLinux32>)}, 58813634Saustinharris@utexas.edu {132, SyscallDesc("sigaltstack")}, 58913634Saustinharris@utexas.edu {133, SyscallDesc("rt_sigsuspend", ignoreFunc, SyscallDesc::WarnOnce)}, 59013634Saustinharris@utexas.edu {134, SyscallDesc("rt_sigaction", ignoreFunc, SyscallDesc::WarnOnce)}, 59113634Saustinharris@utexas.edu {135, SyscallDesc("rt_sigprocmask", ignoreFunc, SyscallDesc::WarnOnce)}, 59213634Saustinharris@utexas.edu {136, SyscallDesc("rt_sigpending", ignoreFunc, SyscallDesc::WarnOnce)}, 59313634Saustinharris@utexas.edu {137, SyscallDesc("rt_sigtimedwait", ignoreFunc,SyscallDesc::WarnOnce)}, 59413634Saustinharris@utexas.edu {138, SyscallDesc("rt_sigqueueinfo", ignoreFunc,SyscallDesc::WarnOnce)}, 59513634Saustinharris@utexas.edu {139, SyscallDesc("rt_sigreturn", ignoreFunc, SyscallDesc::WarnOnce)}, 59613634Saustinharris@utexas.edu {140, SyscallDesc("setpriority")}, 59713634Saustinharris@utexas.edu {141, SyscallDesc("getpriority")}, 59813634Saustinharris@utexas.edu {142, SyscallDesc("reboot")}, 59913634Saustinharris@utexas.edu {143, SyscallDesc("setregid")}, 60013634Saustinharris@utexas.edu {144, SyscallDesc("setgid")}, 60113634Saustinharris@utexas.edu {145, SyscallDesc("setreuid")}, 60213634Saustinharris@utexas.edu {146, SyscallDesc("setuid", setuidFunc)}, 60313634Saustinharris@utexas.edu {147, SyscallDesc("setresuid")}, 60413634Saustinharris@utexas.edu {148, SyscallDesc("getresuid")}, 60513634Saustinharris@utexas.edu {149, SyscallDesc("getresgid")}, 60613634Saustinharris@utexas.edu {150, SyscallDesc("getresgid")}, 60713634Saustinharris@utexas.edu {151, SyscallDesc("setfsuid")}, 60813634Saustinharris@utexas.edu {152, SyscallDesc("setfsgid")}, 60913634Saustinharris@utexas.edu {153, SyscallDesc("times", timesFunc<RiscvLinux32>)}, 61013634Saustinharris@utexas.edu {154, SyscallDesc("setpgid", setpgidFunc)}, 61113634Saustinharris@utexas.edu {155, SyscallDesc("getpgid")}, 61213634Saustinharris@utexas.edu {156, SyscallDesc("getsid")}, 61313634Saustinharris@utexas.edu {157, SyscallDesc("setsid")}, 61413634Saustinharris@utexas.edu {158, SyscallDesc("getgroups")}, 61513634Saustinharris@utexas.edu {159, SyscallDesc("setgroups")}, 61613634Saustinharris@utexas.edu {160, SyscallDesc("uname", unameFunc32)}, 61713634Saustinharris@utexas.edu {161, SyscallDesc("sethostname")}, 61813634Saustinharris@utexas.edu {162, SyscallDesc("setdomainname")}, 61913634Saustinharris@utexas.edu {163, SyscallDesc("getrlimit", getrlimitFunc<RiscvLinux32>)}, 62013634Saustinharris@utexas.edu {164, SyscallDesc("setrlimit", ignoreFunc)}, 62113634Saustinharris@utexas.edu {165, SyscallDesc("getrusage", getrusageFunc<RiscvLinux32>)}, 62213634Saustinharris@utexas.edu {166, SyscallDesc("umask", umaskFunc)}, 62313634Saustinharris@utexas.edu {167, SyscallDesc("prctl")}, 62413634Saustinharris@utexas.edu {168, SyscallDesc("getcpu")}, 62513634Saustinharris@utexas.edu {169, SyscallDesc("gettimeofday", gettimeofdayFunc<RiscvLinux32>)}, 62613634Saustinharris@utexas.edu {170, SyscallDesc("settimeofday")}, 62713634Saustinharris@utexas.edu {171, SyscallDesc("adjtimex")}, 62813634Saustinharris@utexas.edu {172, SyscallDesc("getpid", getpidFunc)}, 62913634Saustinharris@utexas.edu {173, SyscallDesc("getppid", getppidFunc)}, 63013634Saustinharris@utexas.edu {174, SyscallDesc("getuid", getuidFunc)}, 63113634Saustinharris@utexas.edu {175, SyscallDesc("geteuid", geteuidFunc)}, 63213634Saustinharris@utexas.edu {176, SyscallDesc("getgid", getgidFunc)}, 63313634Saustinharris@utexas.edu {177, SyscallDesc("getegid", getegidFunc)}, 63413634Saustinharris@utexas.edu {178, SyscallDesc("gettid", gettidFunc)}, 63513634Saustinharris@utexas.edu {179, SyscallDesc("sysinfo", sysinfoFunc<RiscvLinux32>)}, 63613634Saustinharris@utexas.edu {180, SyscallDesc("mq_open")}, 63713634Saustinharris@utexas.edu {181, SyscallDesc("mq_unlink")}, 63813634Saustinharris@utexas.edu {182, SyscallDesc("mq_timedsend")}, 63913634Saustinharris@utexas.edu {183, SyscallDesc("mq_timedrecieve")}, 64013634Saustinharris@utexas.edu {184, SyscallDesc("mq_notify")}, 64113634Saustinharris@utexas.edu {185, SyscallDesc("mq_getsetattr")}, 64213634Saustinharris@utexas.edu {186, SyscallDesc("msgget")}, 64313634Saustinharris@utexas.edu {187, SyscallDesc("msgctl")}, 64413634Saustinharris@utexas.edu {188, SyscallDesc("msgrcv")}, 64513634Saustinharris@utexas.edu {189, SyscallDesc("msgsnd")}, 64613634Saustinharris@utexas.edu {190, SyscallDesc("semget")}, 64713634Saustinharris@utexas.edu {191, SyscallDesc("semctl")}, 64813634Saustinharris@utexas.edu {192, SyscallDesc("semtimedop")}, 64913634Saustinharris@utexas.edu {193, SyscallDesc("semop")}, 65013634Saustinharris@utexas.edu {194, SyscallDesc("shmget")}, 65113634Saustinharris@utexas.edu {195, SyscallDesc("shmctl")}, 65213634Saustinharris@utexas.edu {196, SyscallDesc("shmat")}, 65313634Saustinharris@utexas.edu {197, SyscallDesc("shmdt")}, 65413634Saustinharris@utexas.edu {198, SyscallDesc("socket")}, 65513634Saustinharris@utexas.edu {199, SyscallDesc("socketpair")}, 65613634Saustinharris@utexas.edu {200, SyscallDesc("bind")}, 65713634Saustinharris@utexas.edu {201, SyscallDesc("listen")}, 65813634Saustinharris@utexas.edu {202, SyscallDesc("accept")}, 65913634Saustinharris@utexas.edu {203, SyscallDesc("connect")}, 66013634Saustinharris@utexas.edu {204, SyscallDesc("getsockname")}, 66113634Saustinharris@utexas.edu {205, SyscallDesc("getpeername")}, 66213634Saustinharris@utexas.edu {206, SyscallDesc("sendo")}, 66313634Saustinharris@utexas.edu {207, SyscallDesc("recvfrom")}, 66413634Saustinharris@utexas.edu {208, SyscallDesc("setsockopt")}, 66513634Saustinharris@utexas.edu {209, SyscallDesc("getsockopt")}, 66613634Saustinharris@utexas.edu {210, SyscallDesc("shutdown")}, 66713634Saustinharris@utexas.edu {211, SyscallDesc("sendmsg")}, 66813634Saustinharris@utexas.edu {212, SyscallDesc("recvmsg")}, 66913634Saustinharris@utexas.edu {213, SyscallDesc("readahead")}, 67013634Saustinharris@utexas.edu {214, SyscallDesc("brk", brkFunc)}, 67113634Saustinharris@utexas.edu {215, SyscallDesc("munmap", munmapFunc)}, 67213634Saustinharris@utexas.edu {216, SyscallDesc("mremap", mremapFunc<RiscvLinux32>)}, 67313634Saustinharris@utexas.edu {217, SyscallDesc("add_key")}, 67413634Saustinharris@utexas.edu {218, SyscallDesc("request_key")}, 67513634Saustinharris@utexas.edu {219, SyscallDesc("keyctl")}, 67613634Saustinharris@utexas.edu {220, SyscallDesc("clone", cloneFunc<RiscvLinux32>)}, 67713634Saustinharris@utexas.edu {221, SyscallDesc("execve", execveFunc<RiscvLinux32>)}, 67813634Saustinharris@utexas.edu {222, SyscallDesc("mmap", mmapFunc<RiscvLinux32>)}, 67913634Saustinharris@utexas.edu {223, SyscallDesc("fadvise64")}, 68013634Saustinharris@utexas.edu {224, SyscallDesc("swapon")}, 68113634Saustinharris@utexas.edu {225, SyscallDesc("swapoff")}, 68213634Saustinharris@utexas.edu {226, SyscallDesc("mprotect", ignoreFunc)}, 68313634Saustinharris@utexas.edu {227, SyscallDesc("msync", ignoreFunc)}, 68413634Saustinharris@utexas.edu {228, SyscallDesc("mlock", ignoreFunc)}, 68513634Saustinharris@utexas.edu {229, SyscallDesc("munlock", ignoreFunc)}, 68613634Saustinharris@utexas.edu {230, SyscallDesc("mlockall", ignoreFunc)}, 68713634Saustinharris@utexas.edu {231, SyscallDesc("munlockall", ignoreFunc)}, 68813634Saustinharris@utexas.edu {232, SyscallDesc("mincore", ignoreFunc)}, 68913634Saustinharris@utexas.edu {233, SyscallDesc("madvise", ignoreFunc)}, 69013634Saustinharris@utexas.edu {234, SyscallDesc("remap_file_pages")}, 69113634Saustinharris@utexas.edu {235, SyscallDesc("mbind", ignoreFunc)}, 69213634Saustinharris@utexas.edu {236, SyscallDesc("get_mempolicy")}, 69313634Saustinharris@utexas.edu {237, SyscallDesc("set_mempolicy")}, 69413634Saustinharris@utexas.edu {238, SyscallDesc("migrate_pages")}, 69513634Saustinharris@utexas.edu {239, SyscallDesc("move_pages")}, 69613634Saustinharris@utexas.edu {240, SyscallDesc("tgsigqueueinfo")}, 69713634Saustinharris@utexas.edu {241, SyscallDesc("perf_event_open")}, 69813634Saustinharris@utexas.edu {242, SyscallDesc("accept4")}, 69913634Saustinharris@utexas.edu {243, SyscallDesc("recvmmsg")}, 70013634Saustinharris@utexas.edu {260, SyscallDesc("wait4")}, 70113634Saustinharris@utexas.edu {261, SyscallDesc("prlimit64", prlimitFunc<RiscvLinux32>)}, 70213634Saustinharris@utexas.edu {262, SyscallDesc("fanotify_init")}, 70313634Saustinharris@utexas.edu {263, SyscallDesc("fanotify_mark")}, 70413634Saustinharris@utexas.edu {264, SyscallDesc("name_to_handle_at")}, 70513634Saustinharris@utexas.edu {265, SyscallDesc("open_by_handle_at")}, 70613634Saustinharris@utexas.edu {266, SyscallDesc("clock_adjtime")}, 70713634Saustinharris@utexas.edu {267, SyscallDesc("syncfs")}, 70813634Saustinharris@utexas.edu {268, SyscallDesc("setns")}, 70913634Saustinharris@utexas.edu {269, SyscallDesc("sendmmsg")}, 71013634Saustinharris@utexas.edu {270, SyscallDesc("process_vm_ready")}, 71113634Saustinharris@utexas.edu {271, SyscallDesc("process_vm_writev")}, 71213634Saustinharris@utexas.edu {272, SyscallDesc("kcmp")}, 71313634Saustinharris@utexas.edu {273, SyscallDesc("finit_module")}, 71413634Saustinharris@utexas.edu {274, SyscallDesc("sched_setattr")}, 71513634Saustinharris@utexas.edu {275, SyscallDesc("sched_getattr")}, 71613634Saustinharris@utexas.edu {276, SyscallDesc("renameat2")}, 71713634Saustinharris@utexas.edu {277, SyscallDesc("seccomp")}, 71813634Saustinharris@utexas.edu {278, SyscallDesc("getrandom")}, 71913634Saustinharris@utexas.edu {279, SyscallDesc("memfd_create")}, 72013634Saustinharris@utexas.edu {280, SyscallDesc("bpf")}, 72113634Saustinharris@utexas.edu {281, SyscallDesc("execveat")}, 72213634Saustinharris@utexas.edu {282, SyscallDesc("userfaultid")}, 72313634Saustinharris@utexas.edu {283, SyscallDesc("membarrier")}, 72413634Saustinharris@utexas.edu {284, SyscallDesc("mlock2")}, 72513634Saustinharris@utexas.edu {285, SyscallDesc("copy_file_range")}, 72613634Saustinharris@utexas.edu {286, SyscallDesc("preadv2")}, 72713634Saustinharris@utexas.edu {287, SyscallDesc("pwritev2")}, 72813634Saustinharris@utexas.edu {1024, SyscallDesc("open", openFunc<RiscvLinux32>)}, 72913634Saustinharris@utexas.edu {1025, SyscallDesc("link")}, 73013634Saustinharris@utexas.edu {1026, SyscallDesc("unlink", unlinkFunc)}, 73113634Saustinharris@utexas.edu {1027, SyscallDesc("mknod")}, 73213634Saustinharris@utexas.edu {1028, SyscallDesc("chmod", chmodFunc<RiscvLinux32>)}, 73313634Saustinharris@utexas.edu {1029, SyscallDesc("chown", chownFunc)}, 73413634Saustinharris@utexas.edu {1030, SyscallDesc("mkdir", mkdirFunc)}, 73513634Saustinharris@utexas.edu {1031, SyscallDesc("rmdir")}, 73613634Saustinharris@utexas.edu {1032, SyscallDesc("lchown")}, 73713634Saustinharris@utexas.edu {1033, SyscallDesc("access", accessFunc)}, 73813634Saustinharris@utexas.edu {1034, SyscallDesc("rename", renameFunc)}, 73913634Saustinharris@utexas.edu {1035, SyscallDesc("readlink", readlinkFunc)}, 74013634Saustinharris@utexas.edu {1036, SyscallDesc("symlink")}, 74113634Saustinharris@utexas.edu {1037, SyscallDesc("utimes", utimesFunc<RiscvLinux32>)}, 74213634Saustinharris@utexas.edu {1038, SyscallDesc("stat", statFunc<RiscvLinux32>)}, 74313634Saustinharris@utexas.edu {1039, SyscallDesc("lstat", lstatFunc<RiscvLinux32>)}, 74413634Saustinharris@utexas.edu {1040, SyscallDesc("pipe", pipeFunc)}, 74513634Saustinharris@utexas.edu {1041, SyscallDesc("dup2", dup2Func)}, 74613634Saustinharris@utexas.edu {1042, SyscallDesc("epoll_create")}, 74713634Saustinharris@utexas.edu {1043, SyscallDesc("inotifiy_init")}, 74813634Saustinharris@utexas.edu {1044, SyscallDesc("eventfd")}, 74913634Saustinharris@utexas.edu {1045, SyscallDesc("signalfd")}, 75013634Saustinharris@utexas.edu {1046, SyscallDesc("sendfile")}, 75113634Saustinharris@utexas.edu {1047, SyscallDesc("ftruncate", ftruncateFunc)}, 75213634Saustinharris@utexas.edu {1048, SyscallDesc("truncate", truncateFunc)}, 75313634Saustinharris@utexas.edu {1049, SyscallDesc("stat", statFunc<RiscvLinux32>)}, 75413634Saustinharris@utexas.edu {1050, SyscallDesc("lstat", lstatFunc<RiscvLinux32>)}, 75513634Saustinharris@utexas.edu {1051, SyscallDesc("fstat", fstatFunc<RiscvLinux32>)}, 75613634Saustinharris@utexas.edu {1052, SyscallDesc("fcntl", fcntlFunc)}, 75713634Saustinharris@utexas.edu {1053, SyscallDesc("fadvise64")}, 75813634Saustinharris@utexas.edu {1054, SyscallDesc("newfstatat")}, 75913634Saustinharris@utexas.edu {1055, SyscallDesc("fstatfs", fstatfsFunc<RiscvLinux32>)}, 76013634Saustinharris@utexas.edu {1056, SyscallDesc("statfs", statfsFunc<RiscvLinux32>)}, 76113634Saustinharris@utexas.edu {1057, SyscallDesc("lseek", lseekFunc)}, 76213634Saustinharris@utexas.edu {1058, SyscallDesc("mmap", mmapFunc<RiscvLinux32>)}, 76313634Saustinharris@utexas.edu {1059, SyscallDesc("alarm")}, 76413634Saustinharris@utexas.edu {1060, SyscallDesc("getpgrp")}, 76513634Saustinharris@utexas.edu {1061, SyscallDesc("pause")}, 76613634Saustinharris@utexas.edu {1062, SyscallDesc("time", timeFunc<RiscvLinux32>)}, 76713634Saustinharris@utexas.edu {1063, SyscallDesc("utime")}, 76813634Saustinharris@utexas.edu {1064, SyscallDesc("creat")}, 76913634Saustinharris@utexas.edu {1065, SyscallDesc("getdents")}, 77013634Saustinharris@utexas.edu {1066, SyscallDesc("futimesat")}, 77113634Saustinharris@utexas.edu {1067, SyscallDesc("select")}, 77213634Saustinharris@utexas.edu {1068, SyscallDesc("poll")}, 77313634Saustinharris@utexas.edu {1069, SyscallDesc("epoll_wait")}, 77413634Saustinharris@utexas.edu {1070, SyscallDesc("ustat")}, 77513634Saustinharris@utexas.edu {1071, SyscallDesc("vfork")}, 77613634Saustinharris@utexas.edu {1072, SyscallDesc("oldwait4")}, 77713634Saustinharris@utexas.edu {1073, SyscallDesc("recv")}, 77813634Saustinharris@utexas.edu {1074, SyscallDesc("send")}, 77913634Saustinharris@utexas.edu {1075, SyscallDesc("bdflush")}, 78013634Saustinharris@utexas.edu {1076, SyscallDesc("umount")}, 78113634Saustinharris@utexas.edu {1077, SyscallDesc("uselib")}, 78213634Saustinharris@utexas.edu {1078, SyscallDesc("sysctl")}, 78313634Saustinharris@utexas.edu {1079, SyscallDesc("fork")}, 78413634Saustinharris@utexas.edu {2011, SyscallDesc("getmainvars")} 78513634Saustinharris@utexas.edu}; 78613634Saustinharris@utexas.edu 78713634Saustinharris@utexas.eduRiscvLinuxProcess64::RiscvLinuxProcess64(ProcessParams * params, 78813634Saustinharris@utexas.edu ObjectFile *objFile) : RiscvProcess64(params, objFile) 78911723Sar4jc@virginia.edu{} 79011723Sar4jc@virginia.edu 79111723Sar4jc@virginia.eduSyscallDesc* 79213634Saustinharris@utexas.eduRiscvLinuxProcess64::getDesc(int callnum) 79311723Sar4jc@virginia.edu{ 79411723Sar4jc@virginia.edu return syscallDescs.find(callnum) != syscallDescs.end() ? 79511723Sar4jc@virginia.edu &syscallDescs.at(callnum) : nullptr; 79611723Sar4jc@virginia.edu} 79713634Saustinharris@utexas.edu 79813634Saustinharris@utexas.eduRiscvLinuxProcess32::RiscvLinuxProcess32(ProcessParams * params, 79913634Saustinharris@utexas.edu ObjectFile *objFile) : RiscvProcess32(params, objFile) 80013634Saustinharris@utexas.edu{} 80113634Saustinharris@utexas.edu 80213634Saustinharris@utexas.eduSyscallDesc* 80313634Saustinharris@utexas.eduRiscvLinuxProcess32::getDesc(int callnum) 80413634Saustinharris@utexas.edu{ 80513634Saustinharris@utexas.edu return syscallDescs.find(callnum) != syscallDescs.end() ? 80613634Saustinharris@utexas.edu &syscallDescs.at(callnum) : nullptr; 80713634Saustinharris@utexas.edu} 808