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
9113995Sbrandon.potter@amd.comunameFunc64(SyscallDesc *desc, int callnum, ThreadContext *tc)
9211723Sar4jc@virginia.edu{
9311723Sar4jc@virginia.edu    int index = 0;
9413995Sbrandon.potter@amd.com    auto process = tc->getProcessPtr();
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");
9914014Sciro.santilli@arm.com    strcpy(name->release, process->release.c_str());
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
10314024Sgabeblack@google.com    name.copyOut(tc->getVirtProxy());
10411723Sar4jc@virginia.edu    return 0;
10511723Sar4jc@virginia.edu}
10611723Sar4jc@virginia.edu
10713634Saustinharris@utexas.edu/// Target uname() handler.
10813634Saustinharris@utexas.edustatic SyscallReturn
10913995Sbrandon.potter@amd.comunameFunc32(SyscallDesc *desc, int callnum, ThreadContext *tc)
11013634Saustinharris@utexas.edu{
11113634Saustinharris@utexas.edu    int index = 0;
11213995Sbrandon.potter@amd.com    auto process = tc->getProcessPtr();
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");
11714014Sciro.santilli@arm.com    strcpy(name->release, process->release.c_str());
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
12114024Sgabeblack@google.com    name.copyOut(tc->getVirtProxy());
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