/*
 * 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 SyscallDescABI<DefaultSyscallABI> 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", ignoreFunc },
    /* 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 SyscallDescABI<DefaultSyscallABI> 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 SyscallDescABI<DefaultSyscallABI> privSyscallDescs32[] = {
    /*  1 */ { "breakpoint" },
    /*  2 */ { "cacheflush" },
    /*  3 */ { "usr26" },
    /*  4 */ { "usr32" },
    /*  5 */ { "set_tls", setTLSFunc32 }
};

// Indices 1, 3 and 4 are unallocated.
static SyscallDescABI<DefaultSyscallABI> 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);
}
