/*
 * Copyright (c) 2010-2013, 2015 ARM Limited
 * All rights reserved
 *
 * The license below extends only to copyright in the software and shall
 * not be construed as granting a license to any other intellectual
 * property including but not limited to intellectual property relating
 * to a hardware implementation of the functionality of the software
 * licensed hereunder.  You may use the software subject to the license
 * terms below provided that you ensure that this notice is replicated
 * unmodified and in its entirety in all distributions of the software,
 * modified or unmodified, in source code or in binary form.
 *
 * Copyright (c) 2003-2005 The Regents of The University of Michigan
 * Copyright (c) 2007-2008 The Florida State University
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met: redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer;
 * redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution;
 * neither the name of the copyright holders nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * Authors: Korey Sewell
 *          Stephen Hines
 *          Ali Saidi
 *          Giacomo Gabrielli
 */

#include "arch/arm/linux/process.hh"

#include <sys/syscall.h>

#include "arch/arm/isa_traits.hh"
#include "arch/arm/linux/linux.hh"
#include "base/loader/object_file.hh"
#include "base/trace.hh"
#include "cpu/thread_context.hh"
#include "kern/linux/linux.hh"
#include "sim/process.hh"
#include "sim/syscall_desc.hh"
#include "sim/syscall_emul.hh"
#include "sim/system.hh"

using namespace std;
using namespace ArmISA;

namespace
{

class ArmLinuxObjectFileLoader : public Process::Loader
{
  public:
    Process *
    load(ProcessParams *params, ObjectFile *obj_file) override
    {
        auto arch = obj_file->getArch();
        auto opsys = obj_file->getOpSys();

        if (arch != ObjectFile::Arm && arch != ObjectFile::Thumb &&
                arch != ObjectFile::Arm64) {
            return nullptr;
        }

        if (opsys == ObjectFile::UnknownOpSys) {
            warn("Unknown operating system; assuming Linux.");
            opsys = ObjectFile::Linux;
        }

        if (opsys == ObjectFile::LinuxArmOABI) {
            fatal("gem5 does not support ARM OABI binaries. Please recompile "
                    "with an EABI compiler.");
        }

        if (opsys != ObjectFile::Linux)
            return nullptr;

        if (arch == ObjectFile::Arm64)
            return new ArmLinuxProcess64(params, obj_file, arch);
        else
            return new ArmLinuxProcess32(params, obj_file, arch);
    }
};

ArmLinuxObjectFileLoader loader;

} // anonymous namespace

/// Target uname() handler.
static SyscallReturn
unameFunc32(SyscallDesc *desc, int callnum, ThreadContext *tc)
{
    int index = 0;
    auto process = tc->getProcessPtr();
    TypedBufferArg<Linux::utsname> name(process->getSyscallArg(tc, index));

    strcpy(name->sysname, "Linux");
    strcpy(name->nodename, "m5.eecs.umich.edu");
    strcpy(name->release, process->release.c_str());
    strcpy(name->version, "#1 SMP Sat Dec  1 00:00:00 GMT 2012");
    strcpy(name->machine, "armv7l");

    name.copyOut(tc->getVirtProxy());
    return 0;
}

/// Target uname() handler.
static SyscallReturn
unameFunc64(SyscallDesc *desc, int callnum, ThreadContext *tc)
{
    int index = 0;
    auto process = tc->getProcessPtr();
    TypedBufferArg<Linux::utsname> name(process->getSyscallArg(tc, index));

    strcpy(name->sysname, "Linux");
    strcpy(name->nodename, "gem5");
    strcpy(name->release, process->release.c_str());
    strcpy(name->version, "#1 SMP Sat Dec  1 00:00:00 GMT 2012");
    strcpy(name->machine, "armv8l");

    name.copyOut(tc->getVirtProxy());
    return 0;
}

/// Target set_tls() handler.
static SyscallReturn
setTLSFunc32(SyscallDesc *desc, int callnum, ThreadContext *tc)
{
    int index = 0;
    auto process = tc->getProcessPtr();
    uint32_t tlsPtr = process->getSyscallArg(tc, index);

    tc->getVirtProxy().writeBlob(ArmLinuxProcess32::commPage + 0x0ff0,
                                &tlsPtr, sizeof(tlsPtr));
    tc->setMiscReg(MISCREG_TPIDRURO,tlsPtr);
    return 0;
}

static SyscallReturn
setTLSFunc64(SyscallDesc *desc, int callnum, ThreadContext *tc)
{
    int index = 0;
    auto process = tc->getProcessPtr();
    uint32_t tlsPtr = process->getSyscallArg(tc, index);

    tc->setMiscReg(MISCREG_TPIDRRO_EL0, tlsPtr);
    return 0;
}

static SyscallDesc syscallDescs32[] = {
    /*  0 */ { "syscall" },
    /*  1 */ { "exit", exitFunc },
    /*  2 */ { "fork" },
    /*  3 */ { "read", readFunc<ArmLinux32> },
    /*  4 */ { "write", writeFunc<ArmLinux32> },
    /*  5 */ { "open", openFunc<ArmLinux32> },
    /*  6 */ { "close", closeFunc },
    /*  7 */ { "unused#7" },
    /*  8 */ { "creat" },
    /*  9 */ { "link" },
    /* 10 */ { "unlink", unlinkFunc },
    /* 11 */ { "execve", execveFunc<ArmLinux32> },
    /* 12 */ { "chdir" },
    /* 13 */ { "time", timeFunc<ArmLinux32> },
    /* 14 */ { "mknod" },
    /* 15 */ { "chmod", chmodFunc<ArmLinux32> },
    /* 16 */ { "lchown", chownFunc },
    /* 17 */ { "unused#17" },
    /* 18 */ { "unused#18" },
    /* 19 */ { "lseek", lseekFunc },
    /* 20 */ { "getpid", getpidFunc },
    /* 21 */ { "mount" },
    /* 22 */ { "umount" },
    /* 23 */ { "setuid", setuidFunc },
    /* 24 */ { "getuid", getuidFunc },
    /* 25 */ { "stime" },
    /* 26 */ { "ptrace" },
    /* 27 */ { "alarm" },
    /* 28 */ { "unused#28" },
    /* 29 */ { "pause" },
    /* 30 */ { "utime" },
    /* 31 */ { "unused#31" },
    /* 32 */ { "unused#32" },
    /* 33 */ { "access", accessFunc },
    /* 34 */ { "nice" },
    /* 35 */ { "unused#35" },
    /* 36 */ { "sync" },
    /* 37 */ { "kill", ignoreFunc },
    /* 38 */ { "rename", renameFunc },
    /* 39 */ { "mkdir", mkdirFunc },
    /* 40 */ { "rmdir" },
    /* 41 */ { "dup", dupFunc },
    /* 42 */ { "pipe", pipePseudoFunc },
    /* 43 */ { "times", timesFunc<ArmLinux32> },
    /* 44 */ { "unused#44" },
    /* 45 */ { "brk", brkFunc },
    /* 46 */ { "setgid" },
    /* 47 */ { "getgid", getgidFunc },
    /* 48 */ { "unused#48" },
    /* 49 */ { "geteuid", geteuidFunc },
    /* 50 */ { "getegid", getegidFunc },
    /* 51 */ { "acct" },
    /* 52 */ { "umount2" },
    /* 53 */ { "unused#53" },
    /* 54 */ { "ioctl", ioctlFunc<ArmLinux32> },
    /* 55 */ { "fcntl", fcntlFunc },
    /* 56 */ { "unused#56" },
    /* 57 */ { "setpgid" },
    /* 58 */ { "unused#58" },
    /* 59 */ { "unused#59" },
    /* 60 */ { "umask", umaskFunc },
    /* 61 */ { "chroot" },
    /* 62 */ { "ustat" },
    /* 63 */ { "dup2" },
    /* 64 */ { "getppid", getppidFunc },
    /* 65 */ { "getpgrp" },
    /* 66 */ { "setsid" },
    /* 67 */ { "sigaction" },
    /* 68 */ { "unused#68" },
    /* 69 */ { "unused#69" },
    /* 70 */ { "setreuid" },
    /* 71 */ { "setregid" },
    /* 72 */ { "sigsuspend" },
    /* 73 */ { "sigpending" },
    /* 74 */ { "sethostname", ignoreFunc },
    /* 75 */ { "setrlimit", ignoreFunc },
    /* 76 */ { "getrlimit", getrlimitFunc<ArmLinux32> },
    /* 77 */ { "getrusage", getrusageFunc<ArmLinux32> },
    /* 78 */ { "gettimeofday", gettimeofdayFunc<ArmLinux32> },
    /* 79 */ { "settimeofday" },
    /* 80 */ { "getgroups" },
    /* 81 */ { "setgroups" },
    /* 82 */ { "reserved#82" },
    /* 83 */ { "symlink" },
    /* 84 */ { "unused#84" },
    /* 85 */ { "readlink", readlinkFunc },
    /* 86 */ { "uselib" },
    /* 87 */ { "swapon" },
    /* 88 */ { "reboot" },
    /* 89 */ { "readdir" },
    /* 90 */ { "mmap", mmapFunc<ArmLinux32> },
    /* 91 */ { "munmap", munmapFunc },
    /* 92 */ { "truncate", truncateFunc },
    /* 93 */ { "ftruncate", ftruncateFunc },
    /* 94 */ { "fchmod" },
    /* 95 */ { "fchown" },
    /* 96 */ { "getpriority" },
    /* 97 */ { "setpriority" },
    /* 98 */ { "unused#98" },
    /* 99 */ { "statfs" },
    /* 100 */ { "fstatfs" },
    /* 101 */ { "unused#101" },
    /* 102 */ { "socketcall" },
    /* 103 */ { "syslog" },
    /* 104 */ { "setitimer" },
    /* 105 */ { "getitimer" },
    /* 106 */ { "stat",  statFunc<ArmLinux32> },
    /* 107 */ { "lstat" },
    /* 108 */ { "fstat", fstatFunc<ArmLinux32> },
    /* 109 */ { "unused#109" },
    /* 110 */ { "unused#101" },
    /* 111 */ { "vhangup" },
    /* 112 */ { "unused#112" },
    /* 113 */ { "syscall" },
    /* 114 */ { "wait4" },
    /* 115 */ { "swapoff" },
    /* 116 */ { "sysinfo", sysinfoFunc<ArmLinux32> },
    /* 117 */ { "ipc" },
    /* 118 */ { "fsync" },
    /* 119 */ { "sigreturn" },
    /* 120 */ { "clone", cloneFunc<ArmLinux32> },
    /* 121 */ { "setdomainname" },
    /* 122 */ { "uname", unameFunc32 },
    /* 123 */ { "unused#123" },
    /* 124 */ { "adjtimex" },
    /* 125 */ { "mprotect", ignoreFunc },
    /* 126 */ { "sigprocmask", ignoreWarnOnceFunc },
    /* 127 */ { "unused#127" },
    /* 128 */ { "init_module" },
    /* 129 */ { "delete_module" },
    /* 130 */ { "unused#130" },
    /* 131 */ { "quotactl" },
    /* 132 */ { "getpgid" },
    /* 133 */ { "fchdir" },
    /* 134 */ { "bdflush" },
    /* 135 */ { "sysfs" },
    /* 136 */ { "personality" },
    /* 137 */ { "reserved#138" },
    /* 138 */ { "setfsuid" },
    /* 139 */ { "setfsgid" },
    /* 140 */ { "llseek", _llseekFunc },
#if defined(SYS_getdents)
    /* 141 */ { "getdents", getdentsFunc },
#else
    /* 141 */ { "getdents" },
#endif
    /* 142 */ { "newselect" },
    /* 143 */ { "flock" },
    /* 144 */ { "msync" },
    /* 145 */ { "readv" },
    /* 146 */ { "writev", writevFunc<ArmLinux32> },
    /* 147 */ { "getsid" },
    /* 148 */ { "fdatasync" },
    /* 149 */ { "sysctl" },
    /* 150 */ { "mlock" },
    /* 151 */ { "munlock" },
    /* 152 */ { "mlockall" },
    /* 153 */ { "munlockall" },
    /* 154 */ { "sched_setparam" },
    /* 155 */ { "sched_getparam" },
    /* 156 */ { "sched_setscheduler" },
    /* 157 */ { "sched_getscheduler" },
    /* 158 */ { "sched_yield" },
    /* 159 */ { "sched_get_priority_max" },
    /* 160 */ { "sched_get_priority_min" },
    /* 161 */ { "sched_rr_get_interval" },
    /* 162 */ { "nanosleep", ignoreWarnOnceFunc },
    /* 163 */ { "mremap", mremapFunc<ArmLinux32> }, // ARM-specific
    /* 164 */ { "setresuid" },
    /* 165 */ { "getresuid" },
    /* 166 */ { "unused#166" },
    /* 167 */ { "unused#167" },
    /* 168 */ { "poll" },
    /* 169 */ { "nfsservctl" },
    /* 170 */ { "setresgid" },
    /* 171 */ { "getresgid" },
    /* 172 */ { "prctl" },
    /* 173 */ { "rt_sigreturn" },
    /* 174 */ { "rt_sigaction", ignoreWarnOnceFunc },
    /* 175 */ { "rt_sigprocmask", ignoreWarnOnceFunc },
    /* 176 */ { "rt_sigpending" },
    /* 177 */ { "rt_sigtimedwait" },
    /* 178 */ { "rt_sigqueueinfo", ignoreFunc },
    /* 179 */ { "rt_sigsuspend" },
    /* 180 */ { "pread64" },
    /* 181 */ { "pwrite64" },
    /* 182 */ { "chown" },
    /* 183 */ { "getcwd", getcwdFunc },
    /* 184 */ { "capget" },
    /* 185 */ { "capset" },
    /* 186 */ { "sigaltstack" },
    /* 187 */ { "sendfile" },
    /* 188 */ { "unused#188" },
    /* 189 */ { "unused#189" },
    /* 190 */ { "vfork" },
    /* 191 */ { "getrlimit", getrlimitFunc<ArmLinux32> },
    /* 192 */ { "mmap2", mmapFunc<ArmLinux32> },
    /* 193 */ { "truncate64" },
    /* 194 */ { "ftruncate64", ftruncate64Func },
    /* 195 */ { "stat64", stat64Func<ArmLinux32> },
    /* 196 */ { "lstat64", lstat64Func<ArmLinux32> },
    /* 197 */ { "fstat64", fstat64Func<ArmLinux32> },
    /* 198 */ { "lchown" },
    /* 199 */ { "getuid", getuidFunc },
    /* 200 */ { "getgid", getgidFunc },
    /* 201 */ { "geteuid", geteuidFunc },
    /* 202 */ { "getegid", getegidFunc },
    /* 203 */ { "setreuid" },
    /* 204 */ { "setregid" },
    /* 205 */ { "getgroups" },
    /* 206 */ { "setgroups" },
    /* 207 */ { "fchown" },
    /* 208 */ { "setresuid" },
    /* 209 */ { "getresuid" },
    /* 210 */ { "setresgid" },
    /* 211 */ { "getresgid" },
    /* 212 */ { "chown" },
    /* 213 */ { "setuid" },
    /* 214 */ { "setgid" },
    /* 215 */ { "setfsuid" },
    /* 216 */ { "setfsgid" },
#if defined(SYS_getdents64)
    /* 217 */ { "getdents64", getdents64Func },
#else
    /* 217 */ { "getdents64" },
#endif
    /* 218 */ { "pivot_root" },
    /* 219 */ { "mincore" },
    /* 220 */ { "madvise", ignoreFunc },
    /* 221 */ { "fcntl64", fcntl64Func },
    /* 222 */ { "unused#222" },
    /* 223 */ { "unknown#223" },
    /* 224 */ { "gettid", gettidFunc },
    /* 225 */ { "readahead" },
    /* 226 */ { "setxattr" },
    /* 227 */ { "lsetxattr" },
    /* 228 */ { "fsetxattr" },
    /* 229 */ { "getxattr" },
    /* 230 */ { "lgetxattr" },
    /* 231 */ { "fgetxattr" },
    /* 232 */ { "listxattr" },
    /* 233 */ { "llistxattr" },
    /* 234 */ { "flistxattr" },
    /* 235 */ { "removexattr" },
    /* 236 */ { "lremovexattr" },
    /* 237 */ { "fremovexattr" },
    /* 238 */ { "tkill" },
    /* 239 */ { "sendfile64" },
    /* 240 */ { "futex", futexFunc<ArmLinux32> },
    /* 241 */ { "sched_setaffinity" },
    /* 242 */ { "sched_getaffinity", ignoreFunc },
    /* 243 */ { "io_setup" },
    /* 244 */ { "io_destroy" },
    /* 245 */ { "io_getevents" },
    /* 246 */ { "io_submit" },
    /* 247 */ { "io_cancel" },
    /* 248 */ { "exit_group", exitGroupFunc },
    /* 249 */ { "lookup_dcookie" },
    /* 250 */ { "epoll_create" },
    /* 251 */ { "epoll_ctl" },
    /* 252 */ { "epoll_wait" },
    /* 253 */ { "remap_file_pages" },
    /* 254 */ { "unused#254" },
    /* 255 */ { "unused#255" },
    /* 256 */ { "set_tid_address", setTidAddressFunc },
    /* 257 */ { "timer_create" },
    /* 258 */ { "timer_settime" },
    /* 259 */ { "timer_gettime" },
    /* 260 */ { "timer_getoverrun" },
    /* 261 */ { "timer_delete" },
    /* 262 */ { "clock_settime" },
    /* 263 */ { "clock_gettime", clock_gettimeFunc<ArmLinux32> },
    /* 264 */ { "clock_getres", clock_getresFunc<ArmLinux32> },
    /* 265 */ { "clock_nanosleep" },
    /* 266 */ { "statfs64" },
    /* 267 */ { "fstatfs64" },
    /* 268 */ { "tgkill", tgkillFunc<ArmLinux32> },
    /* 269 */ { "utimes" },
    /* 270 */ { "arm_fadvise64_64" },
    /* 271 */ { "pciconfig_iobase" },
    /* 272 */ { "pciconfig_read" },
    /* 273 */ { "pciconfig_write" },
    /* 274 */ { "mq_open" },
    /* 275 */ { "mq_unlink" },
    /* 276 */ { "mq_timedsend" },
    /* 277 */ { "mq_timedreceive" },
    /* 278 */ { "mq_notify" },
    /* 279 */ { "mq_getsetattr" },
    /* 280 */ { "waitid" },
    /* 281 */ { "socket" },
    /* 282 */ { "bind" },
    /* 283 */ { "connect" },
    /* 284 */ { "listen" },
    /* 285 */ { "accept" },
    /* 286 */ { "getsockname" },
    /* 287 */ { "getpeername" },
    /* 288 */ { "socketpair" },
    /* 289 */ { "send" },
    /* 290 */ { "sendto" },
    /* 291 */ { "recv" },
    /* 292 */ { "recvfrom" },
    /* 293 */ { "shutdown" },
    /* 294 */ { "setsockopt" },
    /* 295 */ { "getsockopt" },
    /* 296 */ { "sendmsg" },
    /* 297 */ { "rcvmsg" },
    /* 298 */ { "semop" },
    /* 299 */ { "semget" },
    /* 300 */ { "semctl" },
    /* 301 */ { "msgsend" },
    /* 302 */ { "msgrcv" },
    /* 303 */ { "msgget" },
    /* 304 */ { "msgctl" },
    /* 305 */ { "shmat" },
    /* 306 */ { "shmdt" },
    /* 307 */ { "shmget" },
    /* 308 */ { "shmctl" },
    /* 309 */ { "add_key" },
    /* 310 */ { "request_key" },
    /* 311 */ { "keyctl" },
    /* 312 */ { "semtimedop" },
    /* 313 */ { "unused#313" },
    /* 314 */ { "ioprio_set" },
    /* 315 */ { "ioprio_get" },
    /* 316 */ { "inotify_init" },
    /* 317 */ { "inotify_add_watch" },
    /* 318 */ { "inotify_rm_watch" },
    /* 319 */ { "mbind" },
    /* 320 */ { "get_mempolicy" },
    /* 321 */ { "set_mempolicy" },
    /* 322 */ { "openat", openatFunc<ArmLinux32> },
    /* 323 */ { "mkdirat" },
    /* 324 */ { "mknodat" },
    /* 325 */ { "fchownat" },
    /* 326 */ { "futimesat" },
    /* 327 */ { "fstatat64" },
    /* 328 */ { "unlinkat" },
    /* 329 */ { "renameat" },
    /* 330 */ { "linkat" },
    /* 331 */ { "symlinkat" },
    /* 332 */ { "readlinkat" },
    /* 333 */ { "fchmodat" },
    /* 334 */ { "faccessat" },
    /* 335 */ { "pselect6" },
    /* 336 */ { "ppoll" },
    /* 337 */ { "unshare" },
    /* 338 */ { "set_robust_list", ignoreFunc },
    /* 339 */ { "get_robust_list" },
    /* 340 */ { "splice" },
    /* 341 */ { "arm_sync_file_range" },
    /* 342 */ { "tee" },
    /* 343 */ { "vmsplice" },
    /* 344 */ { "move_pages" },
    /* 345 */ { "getcpu" },
    /* 346 */ { "epoll_pwait" },
    /* 347 */ { "sys_kexec_load" },
    /* 348 */ { "sys_utimensat" },
    /* 349 */ { "sys_signalfd" },
    /* 350 */ { "sys_timerfd_create" },
    /* 351 */ { "sys_eventfd" },
    /* 352 */ { "sys_fallocate" },
    /* 353 */ { "sys_timerfd_settime" },
    /* 354 */ { "sys_timerfd_gettime" },
    /* 355 */ { "sys_signalfd4" },
    /* 356 */ { "sys_eventfd2" },
    /* 357 */ { "sys_epoll_create1" },
    /* 358 */ { "sys_dup3" },
    /* 359 */ { "sys_pipe2" },
    /* 360 */ { "sys_inotify_init1" },
    /* 361 */ { "sys_preadv" },
    /* 362 */ { "sys_pwritev" },
    /* 363 */ { "sys_rt_tgsigqueueinfo" },
    /* 364 */ { "sys_perf_event_open" },
    /* 365 */ { "sys_recvmmsg" },
};

static SyscallDesc syscallDescs64[] = {
    /*    0 */ { "io_setup" },
    /*    1 */ { "io_destroy" },
    /*    2 */ { "io_submit" },
    /*    3 */ { "io_cancel" },
    /*    4 */ { "io_getevents" },
    /*    5 */ { "setxattr" },
    /*    6 */ { "lsetxattr" },
    /*    7 */ { "fsetxattr" },
    /*    8 */ { "getxattr" },
    /*    9 */ { "lgetxattr" },
    /*   10 */ { "fgetxattr" },
    /*   11 */ { "listxattr" },
    /*   12 */ { "llistxattr" },
    /*   13 */ { "flistxattr" },
    /*   14 */ { "removexattr" },
    /*   15 */ { "lremovexattr" },
    /*   16 */ { "fremovexattr" },
    /*   17 */ { "getcwd", getcwdFunc },
    /*   18 */ { "lookup_dcookie" },
    /*   19 */ { "eventfd2" },
    /*   20 */ { "epoll_create1" },
    /*   21 */ { "epoll_ctl" },
    /*   22 */ { "epoll_pwait" },
    /*   23 */ { "dup", dupFunc },
    /*   24 */ { "dup3" },
    /*   25 */ { "fcntl64", fcntl64Func },
    /*   26 */ { "inotify_init1" },
    /*   27 */ { "inotify_add_watch" },
    /*   28 */ { "inotify_rm_watch" },
    /*   29 */ { "ioctl", ioctlFunc<ArmLinux64> },
    /*   30 */ { "ioprio_set" },
    /*   31 */ { "ioprio_get" },
    /*   32 */ { "flock" },
    /*   33 */ { "mknodat" },
    /*   34 */ { "mkdirat" },
    /*   35 */ { "unlinkat", unlinkatFunc<ArmLinux64> },
    /*   36 */ { "symlinkat" },
    /*   37 */ { "linkat" },
    /*   38 */ { "renameat", renameatFunc<ArmLinux64> },
    /*   39 */ { "umount2" },
    /*   40 */ { "mount" },
    /*   41 */ { "pivot_root" },
    /*   42 */ { "nfsservctl" },
    /*   43 */ { "statfs64" },
    /*   44 */ { "fstatfs64" },
    /*   45 */ { "truncate64" },
    /*   46 */ { "ftruncate64", ftruncate64Func },
    /*   47 */ { "fallocate" },
    /*   48 */ { "faccessat", faccessatFunc<ArmLinux64> },
    /*   49 */ { "chdir" },
    /*   50 */ { "fchdir" },
    /*   51 */ { "chroot" },
    /*   52 */ { "fchmod" },
    /*   53 */ { "fchmodat" },
    /*   54 */ { "fchownat" },
    /*   55 */ { "fchown" },
    /*   56 */ { "openat", openatFunc<ArmLinux64> },
    /*   57 */ { "close", closeFunc },
    /*   58 */ { "vhangup" },
    /*   59 */ { "pipe2" },
    /*   60 */ { "quotactl" },
#if defined(SYS_getdents64)
    /*   61 */ { "getdents64", getdents64Func },
#else
    /*   61 */ { "getdents64" },
#endif
    /*   62 */ { "llseek", lseekFunc },
    /*   63 */ { "read", readFunc<ArmLinux64> },
    /*   64 */ { "write", writeFunc<ArmLinux64> },
    /*   65 */ { "readv" },
    /*   66 */ { "writev", writevFunc<ArmLinux64> },
    /*   67 */ { "pread64" },
    /*   68 */ { "pwrite64" },
    /*   69 */ { "preadv" },
    /*   70 */ { "pwritev" },
    /*   71 */ { "sendfile64" },
    /*   72 */ { "pselect6" },
    /*   73 */ { "ppoll" },
    /*   74 */ { "signalfd4" },
    /*   75 */ { "vmsplice" },
    /*   76 */ { "splice" },
    /*   77 */ { "tee" },
    /*   78 */ { "readlinkat", readlinkatFunc<ArmLinux64> },
    /*   79 */ { "fstatat64", fstatat64Func<ArmLinux64> },
    /*   80 */ { "fstat64", fstat64Func<ArmLinux64> },
    /*   81 */ { "sync" },
    /*   82 */ { "fsync" },
    /*   83 */ { "fdatasync" },
    /*   84 */ { "sync_file_range" },
    /*   85 */ { "timerfd_create" },
    /*   86 */ { "timerfd_settime" },
    /*   87 */ { "timerfd_gettime" },
    /*   88 */ { "utimensat" },
    /*   89 */ { "acct" },
    /*   90 */ { "capget" },
    /*   91 */ { "capset" },
    /*   92 */ { "personality" },
    /*   93 */ { "exit", exitFunc },
    /*   94 */ { "exit_group", exitGroupFunc },
    /*   95 */ { "waitid" },
    /*   96 */ { "set_tid_address", setTidAddressFunc },
    /*   97 */ { "unshare" },
    /*   98 */ { "futex", futexFunc<ArmLinux64> },
    /*   99 */ { "set_robust_list", ignoreFunc },
    /*  100 */ { "get_robust_list" },
    /*  101 */ { "nanosleep", ignoreWarnOnceFunc },
    /*  102 */ { "getitimer" },
    /*  103 */ { "setitimer" },
    /*  104 */ { "kexec_load" },
    /*  105 */ { "init_module" },
    /*  106 */ { "delete_module" },
    /*  107 */ { "timer_create" },
    /*  108 */ { "timer_gettime" },
    /*  109 */ { "timer_getoverrun" },
    /*  110 */ { "timer_settime" },
    /*  111 */ { "timer_delete" },
    /*  112 */ { "clock_settime" },
    /*  113 */ { "clock_gettime", clock_gettimeFunc<ArmLinux64> },
    /*  114 */ { "clock_getres" },
    /*  115 */ { "clock_nanosleep" },
    /*  116 */ { "syslog" },
    /*  117 */ { "ptrace" },
    /*  118 */ { "sched_setparam" },
    /*  119 */ { "sched_setscheduler" },
    /*  120 */ { "sched_getscheduler" },
    /*  121 */ { "sched_getparam" },
    /*  122 */ { "sched_setaffinity" },
    /*  123 */ { "sched_getaffinity", ignoreFunc },
    /*  124 */ { "sched_yield" },
    /*  125 */ { "sched_get_priority_max" },
    /*  126 */ { "sched_get_priority_min" },
    /*  127 */ { "sched_rr_get_interval" },
    /*  128 */ { "restart_syscall" },
    /*  129 */ { "kill", ignoreFunc },
    /*  130 */ { "tkill" },
    /*  131 */ { "tgkill", tgkillFunc<ArmLinux64> },
    /*  132 */ { "sigaltstack" },
    /*  133 */ { "rt_sigsuspend" },
    /*  134 */ { "rt_sigaction", ignoreFunc },
    /*  135 */ { "rt_sigprocmask", ignoreWarnOnceFunc },
    /*  136 */ { "rt_sigpending" },
    /*  137 */ { "rt_sigtimedwait" },
    /*  138 */ { "rt_sigqueueinfo", ignoreFunc },
    /*  139 */ { "rt_sigreturn" },
    /*  140 */ { "setpriority" },
    /*  141 */ { "getpriority" },
    /*  142 */ { "reboot" },
    /*  143 */ { "setregid" },
    /*  144 */ { "setgid" },
    /*  145 */ { "setreuid" },
    /*  146 */ { "setuid" },
    /*  147 */ { "setresuid" },
    /*  148 */ { "getresuid" },
    /*  149 */ { "setresgid" },
    /*  150 */ { "getresgid" },
    /*  151 */ { "setfsuid" },
    /*  152 */ { "setfsgid" },
    /*  153 */ { "times", timesFunc<ArmLinux64> },
    /*  154 */ { "setpgid" },
    /*  155 */ { "getpgid" },
    /*  156 */ { "getsid" },
    /*  157 */ { "setsid" },
    /*  158 */ { "getgroups" },
    /*  159 */ { "setgroups" },
    /*  160 */ { "uname", unameFunc64 },
    /*  161 */ { "sethostname", ignoreFunc },
    /*  162 */ { "setdomainname" },
    /*  163 */ { "getrlimit", getrlimitFunc<ArmLinux64> },
    /*  164 */ { "setrlimit", ignoreFunc },
    /*  165 */ { "getrusage", getrusageFunc<ArmLinux64> },
    /*  166 */ { "umask" },
    /*  167 */ { "prctl" },
    /*  168 */ { "getcpu" },
    /*  169 */ { "gettimeofday", gettimeofdayFunc<ArmLinux64> },
    /*  170 */ { "settimeofday" },
    /*  171 */ { "adjtimex" },
    /*  172 */ { "getpid", getpidFunc },
    /*  173 */ { "getppid", getppidFunc },
    /*  174 */ { "getuid", getuidFunc },
    /*  175 */ { "geteuid", geteuidFunc },
    /*  176 */ { "getgid", getgidFunc },
    /*  177 */ { "getegid", getegidFunc },
    /*  178 */ { "gettid", gettidFunc },
    /*  179 */ { "sysinfo", sysinfoFunc<ArmLinux64> },
    /*  180 */ { "mq_open" },
    /*  181 */ { "mq_unlink" },
    /*  182 */ { "mq_timedsend" },
    /*  183 */ { "mq_timedreceive" },
    /*  184 */ { "mq_notify" },
    /*  185 */ { "mq_getsetattr" },
    /*  186 */ { "msgget" },
    /*  187 */ { "msgctl" },
    /*  188 */ { "msgrcv" },
    /*  189 */ { "msgsnd" },
    /*  190 */ { "semget" },
    /*  191 */ { "semctl" },
    /*  192 */ { "semtimedop" },
    /*  193 */ { "semop" },
    /*  194 */ { "shmget" },
    /*  195 */ { "shmctl" },
    /*  196 */ { "shmat" },
    /*  197 */ { "shmdt" },
    /*  198 */ { "socket" },
    /*  199 */ { "socketpair" },
    /*  200 */ { "bind" },
    /*  201 */ { "listen" },
    /*  202 */ { "accept" },
    /*  203 */ { "connect" },
    /*  204 */ { "getsockname" },
    /*  205 */ { "getpeername" },
    /*  206 */ { "sendto" },
    /*  207 */ { "recvfrom" },
    /*  208 */ { "setsockopt" },
    /*  209 */ { "getsockopt" },
    /*  210 */ { "shutdown" },
    /*  211 */ { "sendmsg" },
    /*  212 */ { "recvmsg" },
    /*  213 */ { "readahead" },
    /*  214 */ { "brk", brkFunc },
    /*  215 */ { "munmap", munmapFunc },
    /*  216 */ { "mremap", mremapFunc<ArmLinux64> },
    /*  217 */ { "add_key" },
    /*  218 */ { "request_key" },
    /*  219 */ { "keyctl" },
    /*  220 */ { "clone", cloneFunc<ArmLinux64> },
    /*  221 */ { "execve", execveFunc<ArmLinux64> },
    /*  222 */ { "mmap2", mmapFunc<ArmLinux64> },
    /*  223 */ { "fadvise64_64" },
    /*  224 */ { "swapon" },
    /*  225 */ { "swapoff" },
    /*  226 */ { "mprotect", ignoreFunc },
    /*  227 */ { "msync" },
    /*  228 */ { "mlock" },
    /*  229 */ { "munlock" },
    /*  230 */ { "mlockall" },
    /*  231 */ { "munlockall" },
    /*  232 */ { "mincore" },
    /*  233 */ { "madvise", ignoreFunc },
    /*  234 */ { "remap_file_pages" },
    /*  235 */ { "mbind" },
    /*  236 */ { "get_mempolicy" },
    /*  237 */ { "set_mempolicy" },
    /*  238 */ { "migrate_pages" },
    /*  239 */ { "move_pages" },
    /*  240 */ { "rt_tgsigqueueinfo" },
    /*  241 */ { "perf_event_open" },
    /*  242 */ { "accept4" },
    /*  243 */ { "recvmmsg" },
    /*  244 */ { "unused#244" },
    /*  245 */ { "unused#245" },
    /*  246 */ { "unused#246" },
    /*  247 */ { "unused#247" },
    /*  248 */ { "unused#248" },
    /*  249 */ { "unused#249" },
    /*  250 */ { "unused#250" },
    /*  251 */ { "unused#251" },
    /*  252 */ { "unused#252" },
    /*  253 */ { "unused#253" },
    /*  254 */ { "unused#254" },
    /*  255 */ { "unused#255" },
    /*  256 */ { "unused#256" },
    /*  257 */ { "unused#257" },
    /*  258 */ { "unused#258" },
    /*  259 */ { "unused#259" },
    /*  260 */ { "wait4" },
    /*  261 */ { "prlimit64", prlimitFunc<ArmLinux64> },
    /*  262 */ { "fanotify_init" },
    /*  263 */ { "fanotify_mark" },
    /*  264 */ { "name_to_handle_at" },
    /*  265 */ { "open_by_handle_at" },
    /*  266 */ { "clock_adjtime" },
    /*  267 */ { "syncfs" },
    /*  268 */ { "setns" },
    /*  269 */ { "sendmmsg" },
    /*  270 */ { "process_vm_readv" },
    /*  271 */ { "process_vm_writev" },
    /*  272 */ { "unused#272" },
    /*  273 */ { "unused#273" },
    /*  274 */ { "unused#274" },
    /*  275 */ { "unused#275" },
    /*  276 */ { "unused#276" },
    /*  277 */ { "unused#277" },
    /*  278 */ { "unused#278" },
    /*  279 */ { "unused#279" },
    /*  280 */ { "unused#280" },
    /*  281 */ { "unused#281" },
    /*  282 */ { "unused#282" },
    /*  283 */ { "unused#283" },
    /*  284 */ { "unused#284" },
    /*  285 */ { "unused#285" },
    /*  286 */ { "unused#286" },
    /*  287 */ { "unused#287" },
    /*  288 */ { "unused#288" },
    /*  289 */ { "unused#289" },
    /*  290 */ { "unused#290" },
    /*  291 */ { "unused#291" },
    /*  292 */ { "unused#292" },
    /*  293 */ { "unused#293" },
    /*  294 */ { "unused#294" },
    /*  295 */ { "unused#295" },
    /*  296 */ { "unused#296" },
    /*  297 */ { "unused#297" },
    /*  298 */ { "unused#298" },
    /*  299 */ { "unused#299" },
    /*  300 */ { "unused#300" },
    /*  301 */ { "unused#301" },
    /*  302 */ { "unused#302" },
    /*  303 */ { "unused#303" },
    /*  304 */ { "unused#304" },
    /*  305 */ { "unused#305" },
    /*  306 */ { "unused#306" },
    /*  307 */ { "unused#307" },
    /*  308 */ { "unused#308" },
    /*  309 */ { "unused#309" },
    /*  310 */ { "unused#310" },
    /*  311 */ { "unused#311" },
    /*  312 */ { "unused#312" },
    /*  313 */ { "unused#313" },
    /*  314 */ { "unused#314" },
    /*  315 */ { "unused#315" },
    /*  316 */ { "unused#316" },
    /*  317 */ { "unused#317" },
    /*  318 */ { "unused#318" },
    /*  319 */ { "unused#319" },
    /*  320 */ { "unused#320" },
    /*  321 */ { "unused#321" },
    /*  322 */ { "unused#322" },
    /*  323 */ { "unused#323" },
    /*  324 */ { "unused#324" },
    /*  325 */ { "unused#325" },
    /*  326 */ { "unused#326" },
    /*  327 */ { "unused#327" },
    /*  328 */ { "unused#328" },
    /*  329 */ { "unused#329" },
    /*  330 */ { "unused#330" },
    /*  331 */ { "unused#331" },
    /*  332 */ { "unused#332" },
    /*  333 */ { "unused#333" },
    /*  334 */ { "unused#334" },
    /*  335 */ { "unused#335" },
    /*  336 */ { "unused#336" },
    /*  337 */ { "unused#337" },
    /*  338 */ { "unused#338" },
    /*  339 */ { "unused#339" },
    /*  340 */ { "unused#340" },
    /*  341 */ { "unused#341" },
    /*  342 */ { "unused#342" },
    /*  343 */ { "unused#343" },
    /*  344 */ { "unused#344" },
    /*  345 */ { "unused#345" },
    /*  346 */ { "unused#346" },
    /*  347 */ { "unused#347" },
    /*  348 */ { "unused#348" },
    /*  349 */ { "unused#349" },
    /*  350 */ { "unused#350" },
    /*  351 */ { "unused#351" },
    /*  352 */ { "unused#352" },
    /*  353 */ { "unused#353" },
    /*  354 */ { "unused#354" },
    /*  355 */ { "unused#355" },
    /*  356 */ { "unused#356" },
    /*  357 */ { "unused#357" },
    /*  358 */ { "unused#358" },
    /*  359 */ { "unused#359" },
    /*  360 */ { "unused#360" },
    /*  361 */ { "unused#361" },
    /*  362 */ { "unused#362" },
    /*  363 */ { "unused#363" },
    /*  364 */ { "unused#364" },
    /*  365 */ { "unused#365" },
    /*  366 */ { "unused#366" },
    /*  367 */ { "unused#367" },
    /*  368 */ { "unused#368" },
    /*  369 */ { "unused#369" },
    /*  370 */ { "unused#370" },
    /*  371 */ { "unused#371" },
    /*  372 */ { "unused#372" },
    /*  373 */ { "unused#373" },
    /*  374 */ { "unused#374" },
    /*  375 */ { "unused#375" },
    /*  376 */ { "unused#376" },
    /*  377 */ { "unused#377" },
    /*  378 */ { "unused#378" },
    /*  379 */ { "unused#379" },
    /*  380 */ { "unused#380" },
    /*  381 */ { "unused#381" },
    /*  382 */ { "unused#382" },
    /*  383 */ { "unused#383" },
    /*  384 */ { "unused#384" },
    /*  385 */ { "unused#385" },
    /*  386 */ { "unused#386" },
    /*  387 */ { "unused#387" },
    /*  388 */ { "unused#388" },
    /*  389 */ { "unused#389" },
    /*  390 */ { "unused#390" },
    /*  391 */ { "unused#391" },
    /*  392 */ { "unused#392" },
    /*  393 */ { "unused#393" },
    /*  394 */ { "unused#394" },
    /*  395 */ { "unused#395" },
    /*  396 */ { "unused#396" },
    /*  397 */ { "unused#397" },
    /*  398 */ { "unused#398" },
    /*  399 */ { "unused#399" },
    /*  400 */ { "unused#400" },
    /*  401 */ { "unused#401" },
    /*  402 */ { "unused#402" },
    /*  403 */ { "unused#403" },
    /*  404 */ { "unused#404" },
    /*  405 */ { "unused#405" },
    /*  406 */ { "unused#406" },
    /*  407 */ { "unused#407" },
    /*  408 */ { "unused#408" },
    /*  409 */ { "unused#409" },
    /*  410 */ { "unused#410" },
    /*  411 */ { "unused#411" },
    /*  412 */ { "unused#412" },
    /*  413 */ { "unused#413" },
    /*  414 */ { "unused#414" },
    /*  415 */ { "unused#415" },
    /*  416 */ { "unused#416" },
    /*  417 */ { "unused#417" },
    /*  418 */ { "unused#418" },
    /*  419 */ { "unused#419" },
    /*  420 */ { "unused#420" },
    /*  421 */ { "unused#421" },
    /*  422 */ { "unused#422" },
    /*  423 */ { "unused#423" },
    /*  424 */ { "unused#424" },
    /*  425 */ { "unused#425" },
    /*  426 */ { "unused#426" },
    /*  427 */ { "unused#427" },
    /*  428 */ { "unused#428" },
    /*  429 */ { "unused#429" },
    /*  430 */ { "unused#430" },
    /*  431 */ { "unused#431" },
    /*  432 */ { "unused#432" },
    /*  433 */ { "unused#433" },
    /*  434 */ { "unused#434" },
    /*  435 */ { "unused#435" },
    /*  436 */ { "unused#436" },
    /*  437 */ { "unused#437" },
    /*  438 */ { "unused#438" },
    /*  439 */ { "unused#439" },
    /*  440 */ { "unused#440" },
    /*  441 */ { "unused#441" },
    /*  442 */ { "unused#442" },
    /*  443 */ { "unused#443" },
    /*  444 */ { "unused#444" },
    /*  445 */ { "unused#445" },
    /*  446 */ { "unused#446" },
    /*  447 */ { "unused#447" },
    /*  448 */ { "unused#448" },
    /*  449 */ { "unused#449" },
    /*  450 */ { "unused#450" },
    /*  451 */ { "unused#451" },
    /*  452 */ { "unused#452" },
    /*  453 */ { "unused#453" },
    /*  454 */ { "unused#454" },
    /*  455 */ { "unused#455" },
    /*  456 */ { "unused#456" },
    /*  457 */ { "unused#457" },
    /*  458 */ { "unused#458" },
    /*  459 */ { "unused#459" },
    /*  460 */ { "unused#460" },
    /*  461 */ { "unused#461" },
    /*  462 */ { "unused#462" },
    /*  463 */ { "unused#463" },
    /*  464 */ { "unused#464" },
    /*  465 */ { "unused#465" },
    /*  466 */ { "unused#466" },
    /*  467 */ { "unused#467" },
    /*  468 */ { "unused#468" },
    /*  469 */ { "unused#469" },
    /*  470 */ { "unused#470" },
    /*  471 */ { "unused#471" },
    /*  472 */ { "unused#472" },
    /*  473 */ { "unused#473" },
    /*  474 */ { "unused#474" },
    /*  475 */ { "unused#475" },
    /*  476 */ { "unused#476" },
    /*  477 */ { "unused#477" },
    /*  478 */ { "unused#478" },
    /*  479 */ { "unused#479" },
    /*  480 */ { "unused#480" },
    /*  481 */ { "unused#481" },
    /*  482 */ { "unused#482" },
    /*  483 */ { "unused#483" },
    /*  484 */ { "unused#484" },
    /*  485 */ { "unused#485" },
    /*  486 */ { "unused#486" },
    /*  487 */ { "unused#487" },
    /*  488 */ { "unused#488" },
    /*  489 */ { "unused#489" },
    /*  490 */ { "unused#490" },
    /*  491 */ { "unused#491" },
    /*  492 */ { "unused#492" },
    /*  493 */ { "unused#493" },
    /*  494 */ { "unused#494" },
    /*  495 */ { "unused#495" },
    /*  496 */ { "unused#496" },
    /*  497 */ { "unused#497" },
    /*  498 */ { "unused#498" },
    /*  499 */ { "unused#499" },
    /*  500 */ { "unused#500" },
    /*  501 */ { "unused#501" },
    /*  502 */ { "unused#502" },
    /*  503 */ { "unused#503" },
    /*  504 */ { "unused#504" },
    /*  505 */ { "unused#505" },
    /*  506 */ { "unused#506" },
    /*  507 */ { "unused#507" },
    /*  508 */ { "unused#508" },
    /*  509 */ { "unused#509" },
    /*  510 */ { "unused#510" },
    /*  511 */ { "unused#511" },
    /*  512 */ { "unused#512" },
    /*  513 */ { "unused#513" },
    /*  514 */ { "unused#514" },
    /*  515 */ { "unused#515" },
    /*  516 */ { "unused#516" },
    /*  517 */ { "unused#517" },
    /*  518 */ { "unused#518" },
    /*  519 */ { "unused#519" },
    /*  520 */ { "unused#520" },
    /*  521 */ { "unused#521" },
    /*  522 */ { "unused#522" },
    /*  523 */ { "unused#523" },
    /*  524 */ { "unused#524" },
    /*  525 */ { "unused#525" },
    /*  526 */ { "unused#526" },
    /*  527 */ { "unused#527" },
    /*  528 */ { "unused#528" },
    /*  529 */ { "unused#529" },
    /*  530 */ { "unused#530" },
    /*  531 */ { "unused#531" },
    /*  532 */ { "unused#532" },
    /*  533 */ { "unused#533" },
    /*  534 */ { "unused#534" },
    /*  535 */ { "unused#535" },
    /*  536 */ { "unused#536" },
    /*  537 */ { "unused#537" },
    /*  538 */ { "unused#538" },
    /*  539 */ { "unused#539" },
    /*  540 */ { "unused#540" },
    /*  541 */ { "unused#541" },
    /*  542 */ { "unused#542" },
    /*  543 */ { "unused#543" },
    /*  544 */ { "unused#544" },
    /*  545 */ { "unused#545" },
    /*  546 */ { "unused#546" },
    /*  547 */ { "unused#547" },
    /*  548 */ { "unused#548" },
    /*  549 */ { "unused#549" },
    /*  550 */ { "unused#550" },
    /*  551 */ { "unused#551" },
    /*  552 */ { "unused#552" },
    /*  553 */ { "unused#553" },
    /*  554 */ { "unused#554" },
    /*  555 */ { "unused#555" },
    /*  556 */ { "unused#556" },
    /*  557 */ { "unused#557" },
    /*  558 */ { "unused#558" },
    /*  559 */ { "unused#559" },
    /*  560 */ { "unused#560" },
    /*  561 */ { "unused#561" },
    /*  562 */ { "unused#562" },
    /*  563 */ { "unused#563" },
    /*  564 */ { "unused#564" },
    /*  565 */ { "unused#565" },
    /*  566 */ { "unused#566" },
    /*  567 */ { "unused#567" },
    /*  568 */ { "unused#568" },
    /*  569 */ { "unused#569" },
    /*  570 */ { "unused#570" },
    /*  571 */ { "unused#571" },
    /*  572 */ { "unused#572" },
    /*  573 */ { "unused#573" },
    /*  574 */ { "unused#574" },
    /*  575 */ { "unused#575" },
    /*  576 */ { "unused#576" },
    /*  577 */ { "unused#577" },
    /*  578 */ { "unused#578" },
    /*  579 */ { "unused#579" },
    /*  580 */ { "unused#580" },
    /*  581 */ { "unused#581" },
    /*  582 */ { "unused#582" },
    /*  583 */ { "unused#583" },
    /*  584 */ { "unused#584" },
    /*  585 */ { "unused#585" },
    /*  586 */ { "unused#586" },
    /*  587 */ { "unused#587" },
    /*  588 */ { "unused#588" },
    /*  589 */ { "unused#589" },
    /*  590 */ { "unused#590" },
    /*  591 */ { "unused#591" },
    /*  592 */ { "unused#592" },
    /*  593 */ { "unused#593" },
    /*  594 */ { "unused#594" },
    /*  595 */ { "unused#595" },
    /*  596 */ { "unused#596" },
    /*  597 */ { "unused#597" },
    /*  598 */ { "unused#598" },
    /*  599 */ { "unused#599" },
    /*  600 */ { "unused#600" },
    /*  601 */ { "unused#601" },
    /*  602 */ { "unused#602" },
    /*  603 */ { "unused#603" },
    /*  604 */ { "unused#604" },
    /*  605 */ { "unused#605" },
    /*  606 */ { "unused#606" },
    /*  607 */ { "unused#607" },
    /*  608 */ { "unused#608" },
    /*  609 */ { "unused#609" },
    /*  610 */ { "unused#610" },
    /*  611 */ { "unused#611" },
    /*  612 */ { "unused#612" },
    /*  613 */ { "unused#613" },
    /*  614 */ { "unused#614" },
    /*  615 */ { "unused#615" },
    /*  616 */ { "unused#616" },
    /*  617 */ { "unused#617" },
    /*  618 */ { "unused#618" },
    /*  619 */ { "unused#619" },
    /*  620 */ { "unused#620" },
    /*  621 */ { "unused#621" },
    /*  622 */ { "unused#622" },
    /*  623 */ { "unused#623" },
    /*  624 */ { "unused#624" },
    /*  625 */ { "unused#625" },
    /*  626 */ { "unused#626" },
    /*  627 */ { "unused#627" },
    /*  628 */ { "unused#628" },
    /*  629 */ { "unused#629" },
    /*  630 */ { "unused#630" },
    /*  631 */ { "unused#631" },
    /*  632 */ { "unused#632" },
    /*  633 */ { "unused#633" },
    /*  634 */ { "unused#634" },
    /*  635 */ { "unused#635" },
    /*  636 */ { "unused#636" },
    /*  637 */ { "unused#637" },
    /*  638 */ { "unused#638" },
    /*  639 */ { "unused#639" },
    /*  640 */ { "unused#640" },
    /*  641 */ { "unused#641" },
    /*  642 */ { "unused#642" },
    /*  643 */ { "unused#643" },
    /*  644 */ { "unused#644" },
    /*  645 */ { "unused#645" },
    /*  646 */ { "unused#646" },
    /*  647 */ { "unused#647" },
    /*  648 */ { "unused#648" },
    /*  649 */ { "unused#649" },
    /*  650 */ { "unused#650" },
    /*  651 */ { "unused#651" },
    /*  652 */ { "unused#652" },
    /*  653 */ { "unused#653" },
    /*  654 */ { "unused#654" },
    /*  655 */ { "unused#655" },
    /*  656 */ { "unused#656" },
    /*  657 */ { "unused#657" },
    /*  658 */ { "unused#658" },
    /*  659 */ { "unused#659" },
    /*  660 */ { "unused#660" },
    /*  661 */ { "unused#661" },
    /*  662 */ { "unused#662" },
    /*  663 */ { "unused#663" },
    /*  664 */ { "unused#664" },
    /*  665 */ { "unused#665" },
    /*  666 */ { "unused#666" },
    /*  667 */ { "unused#667" },
    /*  668 */ { "unused#668" },
    /*  669 */ { "unused#669" },
    /*  670 */ { "unused#670" },
    /*  671 */ { "unused#671" },
    /*  672 */ { "unused#672" },
    /*  673 */ { "unused#673" },
    /*  674 */ { "unused#674" },
    /*  675 */ { "unused#675" },
    /*  676 */ { "unused#676" },
    /*  677 */ { "unused#677" },
    /*  678 */ { "unused#678" },
    /*  679 */ { "unused#679" },
    /*  680 */ { "unused#680" },
    /*  681 */ { "unused#681" },
    /*  682 */ { "unused#682" },
    /*  683 */ { "unused#683" },
    /*  684 */ { "unused#684" },
    /*  685 */ { "unused#685" },
    /*  686 */ { "unused#686" },
    /*  687 */ { "unused#687" },
    /*  688 */ { "unused#688" },
    /*  689 */ { "unused#689" },
    /*  690 */ { "unused#690" },
    /*  691 */ { "unused#691" },
    /*  692 */ { "unused#692" },
    /*  693 */ { "unused#693" },
    /*  694 */ { "unused#694" },
    /*  695 */ { "unused#695" },
    /*  696 */ { "unused#696" },
    /*  697 */ { "unused#697" },
    /*  698 */ { "unused#698" },
    /*  699 */ { "unused#699" },
    /*  700 */ { "unused#700" },
    /*  701 */ { "unused#701" },
    /*  702 */ { "unused#702" },
    /*  703 */ { "unused#703" },
    /*  704 */ { "unused#704" },
    /*  705 */ { "unused#705" },
    /*  706 */ { "unused#706" },
    /*  707 */ { "unused#707" },
    /*  708 */ { "unused#708" },
    /*  709 */ { "unused#709" },
    /*  710 */ { "unused#710" },
    /*  711 */ { "unused#711" },
    /*  712 */ { "unused#712" },
    /*  713 */ { "unused#713" },
    /*  714 */ { "unused#714" },
    /*  715 */ { "unused#715" },
    /*  716 */ { "unused#716" },
    /*  717 */ { "unused#717" },
    /*  718 */ { "unused#718" },
    /*  719 */ { "unused#719" },
    /*  720 */ { "unused#720" },
    /*  721 */ { "unused#721" },
    /*  722 */ { "unused#722" },
    /*  723 */ { "unused#723" },
    /*  724 */ { "unused#724" },
    /*  725 */ { "unused#725" },
    /*  726 */ { "unused#726" },
    /*  727 */ { "unused#727" },
    /*  728 */ { "unused#728" },
    /*  729 */ { "unused#729" },
    /*  730 */ { "unused#730" },
    /*  731 */ { "unused#731" },
    /*  732 */ { "unused#732" },
    /*  733 */ { "unused#733" },
    /*  734 */ { "unused#734" },
    /*  735 */ { "unused#735" },
    /*  736 */ { "unused#736" },
    /*  737 */ { "unused#737" },
    /*  738 */ { "unused#738" },
    /*  739 */ { "unused#739" },
    /*  740 */ { "unused#740" },
    /*  741 */ { "unused#741" },
    /*  742 */ { "unused#742" },
    /*  743 */ { "unused#743" },
    /*  744 */ { "unused#744" },
    /*  745 */ { "unused#745" },
    /*  746 */ { "unused#746" },
    /*  747 */ { "unused#747" },
    /*  748 */ { "unused#748" },
    /*  749 */ { "unused#749" },
    /*  750 */ { "unused#750" },
    /*  751 */ { "unused#751" },
    /*  752 */ { "unused#752" },
    /*  753 */ { "unused#753" },
    /*  754 */ { "unused#754" },
    /*  755 */ { "unused#755" },
    /*  756 */ { "unused#756" },
    /*  757 */ { "unused#757" },
    /*  758 */ { "unused#758" },
    /*  759 */ { "unused#759" },
    /*  760 */ { "unused#760" },
    /*  761 */ { "unused#761" },
    /*  762 */ { "unused#762" },
    /*  763 */ { "unused#763" },
    /*  764 */ { "unused#764" },
    /*  765 */ { "unused#765" },
    /*  766 */ { "unused#766" },
    /*  767 */ { "unused#767" },
    /*  768 */ { "unused#768" },
    /*  769 */ { "unused#769" },
    /*  770 */ { "unused#770" },
    /*  771 */ { "unused#771" },
    /*  772 */ { "unused#772" },
    /*  773 */ { "unused#773" },
    /*  774 */ { "unused#774" },
    /*  775 */ { "unused#775" },
    /*  776 */ { "unused#776" },
    /*  777 */ { "unused#777" },
    /*  778 */ { "unused#778" },
    /*  779 */ { "unused#779" },
    /*  780 */ { "unused#780" },
    /*  781 */ { "unused#781" },
    /*  782 */ { "unused#782" },
    /*  783 */ { "unused#783" },
    /*  784 */ { "unused#784" },
    /*  785 */ { "unused#785" },
    /*  786 */ { "unused#786" },
    /*  787 */ { "unused#787" },
    /*  788 */ { "unused#788" },
    /*  789 */ { "unused#789" },
    /*  790 */ { "unused#790" },
    /*  791 */ { "unused#791" },
    /*  792 */ { "unused#792" },
    /*  793 */ { "unused#793" },
    /*  794 */ { "unused#794" },
    /*  795 */ { "unused#795" },
    /*  796 */ { "unused#796" },
    /*  797 */ { "unused#797" },
    /*  798 */ { "unused#798" },
    /*  799 */ { "unused#799" },
    /*  800 */ { "unused#800" },
    /*  801 */ { "unused#801" },
    /*  802 */ { "unused#802" },
    /*  803 */ { "unused#803" },
    /*  804 */ { "unused#804" },
    /*  805 */ { "unused#805" },
    /*  806 */ { "unused#806" },
    /*  807 */ { "unused#807" },
    /*  808 */ { "unused#808" },
    /*  809 */ { "unused#809" },
    /*  810 */ { "unused#810" },
    /*  811 */ { "unused#811" },
    /*  812 */ { "unused#812" },
    /*  813 */ { "unused#813" },
    /*  814 */ { "unused#814" },
    /*  815 */ { "unused#815" },
    /*  816 */ { "unused#816" },
    /*  817 */ { "unused#817" },
    /*  818 */ { "unused#818" },
    /*  819 */ { "unused#819" },
    /*  820 */ { "unused#820" },
    /*  821 */ { "unused#821" },
    /*  822 */ { "unused#822" },
    /*  823 */ { "unused#823" },
    /*  824 */ { "unused#824" },
    /*  825 */ { "unused#825" },
    /*  826 */ { "unused#826" },
    /*  827 */ { "unused#827" },
    /*  828 */ { "unused#828" },
    /*  829 */ { "unused#829" },
    /*  830 */ { "unused#830" },
    /*  831 */ { "unused#831" },
    /*  832 */ { "unused#832" },
    /*  833 */ { "unused#833" },
    /*  834 */ { "unused#834" },
    /*  835 */ { "unused#835" },
    /*  836 */ { "unused#836" },
    /*  837 */ { "unused#837" },
    /*  838 */ { "unused#838" },
    /*  839 */ { "unused#839" },
    /*  840 */ { "unused#840" },
    /*  841 */ { "unused#841" },
    /*  842 */ { "unused#842" },
    /*  843 */ { "unused#843" },
    /*  844 */ { "unused#844" },
    /*  845 */ { "unused#845" },
    /*  846 */ { "unused#846" },
    /*  847 */ { "unused#847" },
    /*  848 */ { "unused#848" },
    /*  849 */ { "unused#849" },
    /*  850 */ { "unused#850" },
    /*  851 */ { "unused#851" },
    /*  852 */ { "unused#852" },
    /*  853 */ { "unused#853" },
    /*  854 */ { "unused#854" },
    /*  855 */ { "unused#855" },
    /*  856 */ { "unused#856" },
    /*  857 */ { "unused#857" },
    /*  858 */ { "unused#858" },
    /*  859 */ { "unused#859" },
    /*  860 */ { "unused#860" },
    /*  861 */ { "unused#861" },
    /*  862 */ { "unused#862" },
    /*  863 */ { "unused#863" },
    /*  864 */ { "unused#864" },
    /*  865 */ { "unused#865" },
    /*  866 */ { "unused#866" },
    /*  867 */ { "unused#867" },
    /*  868 */ { "unused#868" },
    /*  869 */ { "unused#869" },
    /*  870 */ { "unused#870" },
    /*  871 */ { "unused#871" },
    /*  872 */ { "unused#872" },
    /*  873 */ { "unused#873" },
    /*  874 */ { "unused#874" },
    /*  875 */ { "unused#875" },
    /*  876 */ { "unused#876" },
    /*  877 */ { "unused#877" },
    /*  878 */ { "unused#878" },
    /*  879 */ { "unused#879" },
    /*  880 */ { "unused#880" },
    /*  881 */ { "unused#881" },
    /*  882 */ { "unused#882" },
    /*  883 */ { "unused#883" },
    /*  884 */ { "unused#884" },
    /*  885 */ { "unused#885" },
    /*  886 */ { "unused#886" },
    /*  887 */ { "unused#887" },
    /*  888 */ { "unused#888" },
    /*  889 */ { "unused#889" },
    /*  890 */ { "unused#890" },
    /*  891 */ { "unused#891" },
    /*  892 */ { "unused#892" },
    /*  893 */ { "unused#893" },
    /*  894 */ { "unused#894" },
    /*  895 */ { "unused#895" },
    /*  896 */ { "unused#896" },
    /*  897 */ { "unused#897" },
    /*  898 */ { "unused#898" },
    /*  899 */ { "unused#899" },
    /*  900 */ { "unused#900" },
    /*  901 */ { "unused#901" },
    /*  902 */ { "unused#902" },
    /*  903 */ { "unused#903" },
    /*  904 */ { "unused#904" },
    /*  905 */ { "unused#905" },
    /*  906 */ { "unused#906" },
    /*  907 */ { "unused#907" },
    /*  908 */ { "unused#908" },
    /*  909 */ { "unused#909" },
    /*  910 */ { "unused#910" },
    /*  911 */ { "unused#911" },
    /*  912 */ { "unused#912" },
    /*  913 */ { "unused#913" },
    /*  914 */ { "unused#914" },
    /*  915 */ { "unused#915" },
    /*  916 */ { "unused#916" },
    /*  917 */ { "unused#917" },
    /*  918 */ { "unused#918" },
    /*  919 */ { "unused#919" },
    /*  920 */ { "unused#920" },
    /*  921 */ { "unused#921" },
    /*  922 */ { "unused#922" },
    /*  923 */ { "unused#923" },
    /*  924 */ { "unused#924" },
    /*  925 */ { "unused#925" },
    /*  926 */ { "unused#926" },
    /*  927 */ { "unused#927" },
    /*  928 */ { "unused#928" },
    /*  929 */ { "unused#929" },
    /*  930 */ { "unused#930" },
    /*  931 */ { "unused#931" },
    /*  932 */ { "unused#932" },
    /*  933 */ { "unused#933" },
    /*  934 */ { "unused#934" },
    /*  935 */ { "unused#935" },
    /*  936 */ { "unused#936" },
    /*  937 */ { "unused#937" },
    /*  938 */ { "unused#938" },
    /*  939 */ { "unused#939" },
    /*  940 */ { "unused#940" },
    /*  941 */ { "unused#941" },
    /*  942 */ { "unused#942" },
    /*  943 */ { "unused#943" },
    /*  944 */ { "unused#944" },
    /*  945 */ { "unused#945" },
    /*  946 */ { "unused#946" },
    /*  947 */ { "unused#947" },
    /*  948 */ { "unused#948" },
    /*  949 */ { "unused#949" },
    /*  950 */ { "unused#950" },
    /*  951 */ { "unused#951" },
    /*  952 */ { "unused#952" },
    /*  953 */ { "unused#953" },
    /*  954 */ { "unused#954" },
    /*  955 */ { "unused#955" },
    /*  956 */ { "unused#956" },
    /*  957 */ { "unused#957" },
    /*  958 */ { "unused#958" },
    /*  959 */ { "unused#959" },
    /*  960 */ { "unused#960" },
    /*  961 */ { "unused#961" },
    /*  962 */ { "unused#962" },
    /*  963 */ { "unused#963" },
    /*  964 */ { "unused#964" },
    /*  965 */ { "unused#965" },
    /*  966 */ { "unused#966" },
    /*  967 */ { "unused#967" },
    /*  968 */ { "unused#968" },
    /*  969 */ { "unused#969" },
    /*  970 */ { "unused#970" },
    /*  971 */ { "unused#971" },
    /*  972 */ { "unused#972" },
    /*  973 */ { "unused#973" },
    /*  974 */ { "unused#974" },
    /*  975 */ { "unused#975" },
    /*  976 */ { "unused#976" },
    /*  977 */ { "unused#977" },
    /*  978 */ { "unused#978" },
    /*  979 */ { "unused#979" },
    /*  980 */ { "unused#980" },
    /*  981 */ { "unused#981" },
    /*  982 */ { "unused#982" },
    /*  983 */ { "unused#983" },
    /*  984 */ { "unused#984" },
    /*  985 */ { "unused#985" },
    /*  986 */ { "unused#986" },
    /*  987 */ { "unused#987" },
    /*  988 */ { "unused#988" },
    /*  989 */ { "unused#989" },
    /*  990 */ { "unused#990" },
    /*  991 */ { "unused#991" },
    /*  992 */ { "unused#992" },
    /*  993 */ { "unused#993" },
    /*  994 */ { "unused#994" },
    /*  995 */ { "unused#995" },
    /*  996 */ { "unused#996" },
    /*  997 */ { "unused#997" },
    /*  998 */ { "unused#998" },
    /*  999 */ { "unused#999" },
    /* 1000 */ { "unused#1000" },
    /* 1001 */ { "unused#1001" },
    /* 1002 */ { "unused#1002" },
    /* 1003 */ { "unused#1003" },
    /* 1004 */ { "unused#1004" },
    /* 1005 */ { "unused#1005" },
    /* 1006 */ { "unused#1006" },
    /* 1007 */ { "unused#1007" },
    /* 1008 */ { "unused#1008" },
    /* 1009 */ { "unused#1009" },
    /* 1010 */ { "unused#1010" },
    /* 1011 */ { "unused#1011" },
    /* 1012 */ { "unused#1012" },
    /* 1013 */ { "unused#1013" },
    /* 1014 */ { "unused#1014" },
    /* 1015 */ { "unused#1015" },
    /* 1016 */ { "unused#1016" },
    /* 1017 */ { "unused#1017" },
    /* 1018 */ { "unused#1018" },
    /* 1019 */ { "unused#1019" },
    /* 1020 */ { "unused#1020" },
    /* 1021 */ { "unused#1021" },
    /* 1022 */ { "unused#1022" },
    /* 1023 */ { "unused#1023" },
    /* 1024 */ { "open", openFunc<ArmLinux64> },
    /* 1025 */ { "link" },
    /* 1026 */ { "unlink", unlinkFunc },
    /* 1027 */ { "mknod" },
    /* 1028 */ { "chmod", chmodFunc<ArmLinux64> },
    /* 1029 */ { "chown" },
    /* 1030 */ { "mkdir", mkdirFunc },
    /* 1031 */ { "rmdir" },
    /* 1032 */ { "lchown" },
    /* 1033 */ { "access", accessFunc },
    /* 1034 */ { "rename", renameFunc },
    /* 1035 */ { "readlink", readlinkFunc },
    /* 1036 */ { "symlink" },
    /* 1037 */ { "utimes" },
    /* 1038 */ { "stat64", stat64Func<ArmLinux64> },
    /* 1039 */ { "lstat64", lstat64Func<ArmLinux64> },
    /* 1040 */ { "pipe", pipePseudoFunc },
    /* 1041 */ { "dup2" },
    /* 1042 */ { "epoll_create" },
    /* 1043 */ { "inotify_init" },
    /* 1044 */ { "eventfd" },
    /* 1045 */ { "signalfd" },
    /* 1046 */ { "sendfile" },
    /* 1047 */ { "ftruncate", ftruncateFunc },
    /* 1048 */ { "truncate", truncateFunc },
    /* 1049 */ { "stat", statFunc<ArmLinux64> },
    /* 1050 */ { "lstat" },
    /* 1051 */ { "fstat", fstatFunc<ArmLinux64> },
    /* 1052 */ { "fcntl", fcntlFunc },
    /* 1053 */ { "fadvise64" },
    /* 1054 */ { "newfstatat" },
    /* 1055 */ { "fstatfs" },
    /* 1056 */ { "statfs" },
    /* 1057 */ { "lseek", lseekFunc },
    /* 1058 */ { "mmap", mmapFunc<ArmLinux64> },
    /* 1059 */ { "alarm" },
    /* 1060 */ { "getpgrp" },
    /* 1061 */ { "pause" },
    /* 1062 */ { "time", timeFunc<ArmLinux64> },
    /* 1063 */ { "utime" },
    /* 1064 */ { "creat" },
#if defined(SYS_getdents)
    /* 1065 */ { "getdents", getdentsFunc },
#else
    /* 1065 */ { "getdents" },
#endif
    /* 1066 */ { "futimesat" },
    /* 1067 */ { "select" },
    /* 1068 */ { "poll" },
    /* 1069 */ { "epoll_wait" },
    /* 1070 */ { "ustat" },
    /* 1071 */ { "vfork" },
    /* 1072 */ { "oldwait4" },
    /* 1073 */ { "recv" },
    /* 1074 */ { "send" },
    /* 1075 */ { "bdflush" },
    /* 1076 */ { "umount" },
    /* 1077 */ { "uselib" },
    /* 1078 */ { "_sysctl" },
    /* 1079 */ { "fork" }
};

static SyscallDesc privSyscallDescs32[] = {
    /*  1 */ { "breakpoint" },
    /*  2 */ { "cacheflush" },
    /*  3 */ { "usr26" },
    /*  4 */ { "usr32" },
    /*  5 */ { "set_tls", setTLSFunc32 }
};

// Indices 1, 3 and 4 are unallocated.
static SyscallDesc privSyscallDescs64[] = {
    /*  1 */ { "unallocated" },
    /*  2 */ { "cacheflush" },
    /*  3 */ { "unallocated" },
    /*  4 */ { "unallocated" },
    /*  5 */ { "set_tls", setTLSFunc64 }
};

ArmLinuxProcess32::ArmLinuxProcess32(ProcessParams * params,
        ObjectFile *objFile, ObjectFile::Arch _arch)
    : ArmProcess32(params, objFile, _arch)
{
    SyscallTable table;

    table.descs = syscallDescs32;
    table.size = sizeof(syscallDescs32) / sizeof(SyscallDesc);
    table.base = 0;
    syscallTables.push_back(table);
    table.base = 0x900000;
    syscallTables.push_back(table);

    table.descs = privSyscallDescs32;
    table.size = sizeof(privSyscallDescs32) / sizeof(SyscallDesc);
    table.base = 0xf0001;
    syscallTables.push_back(table);
}

ArmLinuxProcess64::ArmLinuxProcess64(ProcessParams * params,
        ObjectFile *objFile, ObjectFile::Arch _arch)
    : ArmProcess64(params, objFile, _arch)
{
    SyscallTable table;

    table.descs = syscallDescs64;
    table.size = sizeof(syscallDescs64) / sizeof(SyscallDesc);
    table.base = 0;
    syscallTables.push_back(table);
    table.base = 0x900000;
    syscallTables.push_back(table);

    table.descs = privSyscallDescs64;
    table.size = sizeof(privSyscallDescs64) / sizeof(SyscallDesc);
    table.base = 0x1001;
    syscallTables.push_back(table);
}

const Addr ArmLinuxProcess32::commPage = 0xffff0000;

SyscallDesc*
ArmLinuxProcessBits::getLinuxDesc(int callnum)
{
    // Angel SWI syscalls are unsupported in this release
    if (callnum == 0x123456)
        panic("Attempt to execute an ANGEL_SWI system call (newlib-related)");
    for (unsigned i = 0; i < syscallTables.size(); i++) {
        SyscallDesc *desc = syscallTables[i].getDesc(callnum);
        if (desc)
            return desc;
    }
    return NULL;
}

SyscallDesc *
ArmLinuxProcessBits::SyscallTable::getDesc(int callnum) const
{
    int offset = callnum - base;
    if (offset < 0 || offset >= size)
        return NULL;
    return &descs[offset];
}

SyscallDesc*
ArmLinuxProcess32::getDesc(int callnum)
{
    return getLinuxDesc(callnum);
}

SyscallDesc*
ArmLinuxProcess64::getDesc(int callnum)
{
    return getLinuxDesc(callnum);
}

void
ArmLinuxProcess32::initState()
{
    ArmProcess32::initState();
    allocateMem(commPage, PageBytes);
    ThreadContext *tc = system->getThreadContext(contextIds[0]);

    uint8_t swiNeg1[] = {
        0xff, 0xff, 0xff, 0xef  // swi -1
    };

    // Fill this page with swi -1 so we'll no if we land in it somewhere.
    for (Addr addr = 0; addr < PageBytes; addr += sizeof(swiNeg1)) {
        tc->getVirtProxy().writeBlob(commPage + addr,
                                     swiNeg1, sizeof(swiNeg1));
    }

    uint8_t memory_barrier[] =
    {
        0x5f, 0xf0, 0x7f, 0xf5, // dmb
        0x0e, 0xf0, 0xa0, 0xe1  // return
    };
    tc->getVirtProxy().writeBlob(commPage + 0x0fa0, memory_barrier,
                                 sizeof(memory_barrier));

    uint8_t cmpxchg[] =
    {
        0x9f, 0x3f, 0x92, 0xe1,  // ldrex    r3, [r2]
        0x00, 0x30, 0x53, 0xe0,  // subs     r3, r3, r0
        0x91, 0x3f, 0x82, 0x01,  // strexeq  r3, r1, [r2]
        0x01, 0x00, 0x33, 0x03,  // teqeq    r3, #1
        0xfa, 0xff, 0xff, 0x0a,  // beq 1b
        0x00, 0x00, 0x73, 0xe2,  // rsbs r0, r3, #0
        0x5f, 0xf0, 0x7f, 0xf5,  // dmb
        0x0e, 0xf0, 0xa0, 0xe1   // return
    };
    tc->getVirtProxy().writeBlob(commPage + 0x0fc0, cmpxchg, sizeof(cmpxchg));

    uint8_t get_tls[] =
    {
                                // read user read-only thread id register
        0x70, 0x0f, 0x1d, 0xee, // mrc p15, 0, r0, c13, c0, 3
        0x0e, 0xf0, 0xa0, 0xe1  // return
    };
    tc->getVirtProxy().writeBlob(commPage + 0x0fe0, get_tls, sizeof(get_tls));
}

void
ArmLinuxProcess64::initState()
{
    ArmProcess64::initState();
    // The 64 bit equivalent of the comm page would be set up here.
}

void
ArmLinuxProcess32::syscall(ThreadContext *tc, Fault *fault)
{
    doSyscall(tc->readIntReg(INTREG_R7), tc, fault);
}

void
ArmLinuxProcess64::syscall(ThreadContext *tc, Fault *fault)
{
    doSyscall(tc->readIntReg(INTREG_X8), tc, fault);
}
