/*
 * Copyright (c) 2003-2005 The Regents of The University of Michigan
 * 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.
 */

#include "arch/sparc/linux/process.hh"
#include "sim/syscall_desc.hh"
#include "sim/syscall_emul.hh"

class Process;
class ThreadContext;

namespace SparcISA {

/// Target uname() handler.
static SyscallReturn
unameFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<Linux::utsname> name)
{
    auto process = tc->getProcessPtr();

    strcpy(name->sysname, "Linux");
    strcpy(name->nodename, "sim.gem5.org");
    strcpy(name->release, process->release.c_str());
    strcpy(name->version, "#1 Mon Aug 18 11:32:15 EDT 2003");
    strcpy(name->machine, "sparc");

    return 0;
}


SyscallReturn
getresuidFunc(SyscallDesc *desc, ThreadContext *tc,
              Addr ruid, Addr euid, Addr suid)
{
    const uint64_t id = htobe(100);
    // Handle the EFAULT case
    // Set the ruid
    if (ruid) {
        BufferArg ruidBuff(ruid, sizeof(uint64_t));
        memcpy(ruidBuff.bufferPtr(), &id, sizeof(uint64_t));
        ruidBuff.copyOut(tc->getVirtProxy());
    }
    // Set the euid
    if (euid) {
        BufferArg euidBuff(euid, sizeof(uint64_t));
        memcpy(euidBuff.bufferPtr(), &id, sizeof(uint64_t));
        euidBuff.copyOut(tc->getVirtProxy());
    }
    // Set the suid
    if (suid) {
        BufferArg suidBuff(suid, sizeof(uint64_t));
        memcpy(suidBuff.bufferPtr(), &id, sizeof(uint64_t));
        suidBuff.copyOut(tc->getVirtProxy());
    }
    return 0;
}

SyscallDescTable<Sparc32Process::SyscallABI>
    SparcLinuxProcess::syscall32Descs = {
    {   0, "restart_syscall" },
    {   1, "exit", exitFunc }, // 32 bit
    {   2, "fork" },
    {   3, "read", readFunc<Sparc32Linux> },
    {   4, "write", writeFunc<Sparc32Linux> },
    {   5, "open", openFunc<Sparc32Linux> }, // 32 bit
    {   6, "close", closeFunc },
    {   7, "wait4" }, // 32 bit
    {   8, "creat" }, // 32 bit
    {   9, "link" },
    {  10, "unlink", unlinkFunc },
    {  11, "execv" },
    {  12, "chdir" },
    {  13, "chown", chownFunc }, // 32 bit
    {  14, "mknod" },
    {  15, "chmod" },
    {  16, "lchown" }, // 32 bit
    {  17, "brk", brkFunc },
    {  18, "perfctr" }, // 32 bit
    {  19, "lseek", lseekFunc }, // 32 bit
    {  20, "getpid", getpidFunc },
    {  21, "capget" },
    {  22, "capset" },
    {  23, "setuid", ignoreFunc }, // 32 bit
    {  24, "getuid", getuidFunc }, // 32 bit
    {  25, "time" },
    {  26, "ptrace" },
    {  27, "alarm" },
    {  28, "sigaltstack" }, // 32 bit
    {  29, "pause" }, // 32 bit
    {  30, "utime" },
    {  31, "lchown32" },
    {  32, "fchown32" },
    {  33, "access" }, // 32 bit
    {  34, "nice" }, // 32 bit
    {  35, "chown32" },
    {  36, "sync" },
    {  37, "kill" }, // 32 bit
    {  38, "stat" },
    {  39, "sendfile" }, // 32 bit
    {  40, "lstat" },
    {  41, "dup" },
    {  42, "pipe", pipePseudoFunc },
    {  43, "times", ignoreFunc },
    {  44, "getuid32" },
    {  45, "umount2" }, // 32 bit
    {  46, "setgid" }, // 32 bit
    {  47, "getgid", getgidFunc }, // 32 bit
    {  48, "signal" }, // 32 bit
    {  49, "geteuid", geteuidFunc }, // 32 bit
    {  50, "getegid", getegidFunc }, // 32 bit
    {  51, "acct" },
    {  52, "memory_ordering" },
    {  53, "getgid32" },
    {  54, "ioctl" },
    {  55, "reboot" }, // 32 bit
    {  56, "mmap2" }, // 32 bit
    {  57, "symlink" },
    {  58, "readlink", readlinkFunc }, // 32 bit
    {  59, "execve" }, // 32 bit
    {  60, "umask" }, // 32 bit
    {  61, "chroot" },
    {  62, "fstat" },
    {  63, "fstat64", fstat64Func<Sparc32Linux> },
    {  64, "getpagesize" },
    {  65, "msync" }, // 32 bit
    {  66, "vfork" },
    {  67, "pread64" }, // 32 bit
    {  68, "pwrite64" }, // 32 bit
    {  69, "geteuid32" },
    {  70, "getegid32" },
    {  71, "mmap", mmapFunc<Sparc32Linux> },
    {  72, "setreuid32" },
    {  73, "munmap", munmapFunc },
    {  74, "mprotect", ignoreFunc },
    {  75, "madvise" },
    {  76, "vhangup" },
    {  77, "truncate64" }, // 32 bit
    {  78, "mincore" },
    {  79, "getgroups" }, // 32 bit
    {  80, "setgroups" }, // 32 bit
    {  81, "getpgrp" },
    {  82, "setgroups32" }, // 32 bit
    {  83, "setitimer" }, // 32 bit
    {  84, "ftruncate64" }, // 32 bit
    {  85, "swapon" }, // 32 bit
    {  86, "getitimer" }, // 32 bit
    {  87, "setuid32" },
    {  88, "sethostname" }, // 32 bit
    {  89, "setgid32" },
    {  90, "dup2" },
    {  91, "setfsuid32" },
    {  92, "fcntl" },
    {  93, "select" }, // 32 bit
    {  94, "setfsgid32" },
    {  95, "fsync" },
    {  96, "setpriority" }, // 32 bit
    {  97, "socket" },
    {  98, "connect" },
    {  99, "accept" },
    { 100, "getpriority" }, // 32 bit
    { 101, "rt_sigreturn" }, // 32 bit
    { 102, "rt_sigaction", ignoreFunc }, // 32 bit
    { 103, "rt_sigprocmask", ignoreFunc }, // 32 bit
    { 104, "rt_sigpending" }, // 32 bit
    { 105, "rt_sigtimedwait" },
    { 106, "rt_sigqueueinfo" }, // 32 bit
    { 107, "rt_sigsuspend" },
    { 108, "setresuid32" },
    { 109, "getresuid32", getresuidFunc },
    { 110, "setresgid32", ignoreFunc },
    { 111, "getresgid32" },
    { 112, "setregid32" },
    { 113, "revcmsg" },
    { 114, "sendmsg" },
    { 115, "getgroups32" }, // 32 bit
    { 116, "gettimeofday", gettimeofdayFunc<Sparc32Linux> }, // 32 bit
    { 117, "getrusage" }, // 32 bit
    { 118, "getsockopt" },
    { 119, "getcwd", getcwdFunc },
    { 120, "readv" },
    { 121, "writev" },
    { 122, "settimeofday" }, // 32 bit
    { 123, "fchown" }, // 32 bit
    { 124, "fchmod" },
    { 125, "recvfrom" },
    { 126, "setreuid" }, // 32 bit
    { 127, "setregid" }, // 32 bit
    { 128, "rename", renameFunc },
    { 129, "truncate" },
    { 130, "ftruncate" },
    { 131, "flock" },
    { 132, "lstat64" },
    { 133, "sendto" },
    { 134, "shutdown" },
    { 135, "socketpair" },
    { 136, "mkdir", mkdirFunc }, // 32 bit
    { 137, "rmdir" },
    { 138, "utimes" }, // 32 bit
    { 139, "stat64" },
    { 140, "sendfile64" }, // 32 bit
    { 141, "getpeername" },
    { 142, "futex" }, // 32 bit
    { 143, "gettid" },
    { 144, "getrlimit" },
    { 145, "setrlimit" },
    { 146, "pivot_root" },
    { 147, "prctl" }, // 32 bit
    { 148, "pciconfig_read" },
    { 149, "pciconfig_write" },
    { 150, "getsockname" },
    { 151, "inotify_init" },
    { 152, "inotify_add_watch" },
    { 153, "poll" },
    { 154, "getdents64" },
    { 155, "fcntl64" },
    { 156, "inotify_rm_watch" },
    { 157, "statfs" },
    { 158, "fstatfs" },
    { 159, "umount" },
    { 160, "sched_setaffinity" },
    { 161, "sched_getaffinity" },
    { 162, "getdomainname" }, // 32 bit
    { 163, "setdomainname" }, // 32 bit
    { 164, "ni_syscall" },
    { 165, "quotactl" },
    { 166, "set_tid_address" },
    { 167, "mount" },
    { 168, "ustat" },
    { 169, "setxattr" }, // 32 bit
    { 170, "lsetxattr" }, // 32 bit
    { 171, "fsetxattr" }, // 32 bit
    { 172, "getxattr" },
    { 173, "lgetxattr" },
    { 174, "getdents" },
    { 175, "setsid" },
    { 176, "fchdir" },
    { 177, "fgetxattr" }, // 32 bit
    { 178, "listxattr" },
    { 179, "llistxattr" },
    { 180, "flistxattr" }, // 32 bit
    { 181, "removexattr" },
    { 182, "lremovexattr" },
    { 183, "sigpending" },
    { 184, "query_module" },
    { 185, "setpgid" }, // 32 bit
    { 186, "fremovexattr" }, // 32 bit
    { 187, "tkill" }, // 32 bit
    { 188, "exit_group", exitGroupFunc }, // 32 bit
    { 189, "uname", unameFunc },
    { 190, "init_module" }, // 32 bit
    { 191, "personality" },
    { 192, "remap_file_pages" },
    { 193, "epoll_create" }, // 32 bit
    { 194, "epoll_ctl" }, // 32 bit
    { 195, "epoll_wait" }, // 32 bit
    { 196, "ioprio_set" }, // 32 bit
    { 197, "getppid", getppidFunc },
    { 198, "sigaction" }, // 32 bit
    { 199, "sgetmask" },
    { 200, "ssetmask" },
    { 201, "sigsuspend" },
    { 202, "oldlstat" },
    { 203, "uselib" },
    { 204, "readdir" },
    { 205, "readahead" }, // 32 bit
    { 206, "socketcall" }, // 32 bit
    { 207, "syslog" }, // 32 bit
    { 208, "lookup_dcookie" }, // 32 bit
    { 209, "fadvise64" }, // 32 bit
    { 210, "fadvise64_64" }, // 32 bit
    { 211, "tgkill" }, // 32 bit
    { 212, "waitpid" }, // 32 bit
    { 213, "swapoff" },
    { 214, "sysinfo", sysinfoFunc<Sparc32Linux> }, // 32 bit
    { 215, "ipc" }, // 32 bit
    { 216, "sigreturn" }, // 32 bit
    { 217, "clone", cloneFunc<Sparc32Linux> },
    { 218, "ioprio_get" }, // 32 bit
    { 219, "adjtimex" }, // 32 bit
    { 220, "sigprocmask" }, // 32 bit
    { 221, "create_module" },
    { 222, "delete_module" }, // 32 bit
    { 223, "get_kernel_syms" },
    { 224, "getpgid" }, // 32 bit
    { 225, "bdflush" }, // 32 bit
    { 226, "sysfs" }, // 32 bit
    { 227, "afs_syscall" },
    { 228, "setfsuid" }, // 32 bit
    { 229, "setfsgid" }, // 32 bit
    { 230, "_newselect" }, // 32 bit
    { 231, "time", ignoreFunc },
    { 232, "oldstat" },
    { 233, "stime" },
    { 234, "statfs64" },
    { 235, "fstatfs64" },
    { 236, "_llseek", _llseekFunc },
    { 237, "mlock" },
    { 238, "munlock" },
    { 239, "mlockall" }, // 32 bit
    { 240, "munlockall" },
    { 241, "sched_setparam" }, // 32 bit
    { 242, "sched_getparam" }, // 32 bit
    { 243, "sched_setscheduler" }, // 32 bit
    { 244, "sched_getscheduler" }, // 32 bit
    { 245, "sched_yield" },
    { 246, "sched_get_priority_max" }, // 32 bit
    { 247, "sched_get_priority_min" }, // 32 bit
    { 248, "sched_rr_get_interval" }, // 32 bit
    { 249, "nanosleep" },
    { 250, "mremap", mremapFunc<Sparc32Linux> }, // 32 bit
    { 251, "_sysctl" }, // 32 bit
    { 252, "getsid" }, // 32 bit
    { 253, "fdatasync" },
    { 254, "nfsservctl" }, // 32 bit
    { 255, "aplib" },
    { 256, "clock_settime" },
    { 257, "clock_gettime" },
    { 258, "clock_getres" },
    { 259, "clock_nanosleep" }, // 32 bit
    { 260, "sched_getaffinity" },
    { 261, "sched_setaffinity" },
    { 262, "timer_settime" }, // 32 bit
    { 263, "timer_gettime" },
    { 264, "timer_getoverrun" },
    { 265, "timer_delete" },
    { 266, "timer_create" },
    { 267, "vserver" },
    { 268, "io_setup" },
    { 269, "io_destroy" },
    { 270, "io_submit" }, // 32 bit
    { 271, "io_cancel" },
    { 272, "io_getevents" },
    { 273, "mq_open" }, // 32 bit
    { 274, "mq_unlink" },
    { 275, "mq_timedsend" },
    { 276, "mq_timedreceive" },
    { 277, "mq_notify" },
    { 278, "mq_getsetattr" },
    { 279, "waitid" },
    { 280, "sys_setaltroot" },
    { 281, "add_key" },
    { 282, "request_key" },
    { 283, "keyctl" },
    { 284, "openat" },
    { 285, "mkdirat" },
    { 286, "mknodat" },
    { 287, "fchownat" },
    { 288, "futimesat" },
    { 289, "fstatat64" },
    { 290, "unlinkat" },
    { 291, "renameat" },
    { 292, "linkat" },
    { 293, "symlinkat" },
    { 294, "readlinkat" },
    { 295, "fchmodat" },
    { 296, "faccessat" },
    { 297, "pselect6" },
    { 298, "ppoll" },
    { 299, "unshare" }
};

SyscallDescTable<Sparc64Process::SyscallABI>
    SparcLinuxProcess::syscallDescs = {
    {  0, "restart_syscall" },
    {  1, "exit", exitFunc },
    {  2, "fork" },
    {  3, "read", readFunc<SparcLinux> },
    {  4, "write", writeFunc<SparcLinux> },
    {  5, "open", openFunc<SparcLinux> },
    {  6, "close", closeFunc },
    {  7, "wait4" },
    {  8, "creat" },
    {  9, "link" },
    { 10, "unlink", unlinkFunc },
    { 11, "execv" },
    { 12, "chdir" },
    { 13, "chown", chownFunc },
    { 14, "mknod" },
    { 15, "chmod", chmodFunc<Linux> },
    { 16, "lchown" },
    { 17, "brk", brkFunc },
    { 18, "perfctr" },
    { 19, "lseek", lseekFunc },
    { 20, "getpid", getpidFunc },
    { 21, "capget" },
    { 22, "capset" },
    { 23, "setuid", ignoreFunc },
    { 24, "getuid", getuidFunc },
    { 25, "time" },
    { 26, "ptrace" },
    { 27, "alarm" },
    { 28, "sigaltstack" },
    { 29, "pause" },
    { 30, "utime" },
    { 31, "lchown32" },
    { 32, "fchown32" },
    { 33, "access" },
    { 34, "nice" },
    { 35, "chown32" },
    { 36, "sync" },
    { 37, "kill" },
    { 38, "stat" },
    { 39, "sendfile" },
    { 40, "lstat" },
    { 41, "dup" },
    { 42, "pipe", pipePseudoFunc },
    { 43, "times", ignoreFunc },
    { 44, "getuid32" },
    { 45, "umount2" },
    { 46, "setgid" },
    { 47, "getgid", getgidFunc },
    { 48, "signal" },
    { 49, "geteuid", geteuidFunc },
    { 50, "getegid", getegidFunc },
    { 51, "acct" },
    { 52, "memory_ordering" },
    { 53, "getgid32" },
    { 54, "ioctl" },
    { 55, "reboot" },
    { 56, "mmap2" },
    { 57, "symlink" },
    { 58, "readlink", readlinkFunc },
    { 59, "execve" },
    { 60, "umask" },
    { 61, "chroot" },
    { 62, "fstat", fstatFunc<SparcLinux> },
    { 63, "fstat64", fstat64Func<SparcLinux> },
    { 64, "getpagesize" },
    { 65, "msync" },
    { 66, "vfork" },
    { 67, "pread64" },
    { 68, "pwrite64" },
    { 69, "geteuid32" },
    { 70, "getegid32" },
    { 71, "mmap", mmapFunc<SparcLinux> },
    { 72, "setreuid32" },
    { 73, "munmap", munmapFunc },
    { 74, "mprotect", ignoreFunc },
    { 75, "madvise" },
    { 76, "vhangup" },
    { 77, "truncate64" },
    { 78, "mincore" },
    { 79, "getgroups" },
    { 80, "setgroups" },
    { 81, "getpgrp" },
    { 82, "setgroups32" },
    { 83, "setitimer" },
    { 84, "ftruncate64" },
    { 85, "swapon" },
    { 86, "getitimer" },
    { 87, "setuid32" },
    { 88, "sethostname" },
    { 89, "setgid32" },
    { 90, "dup2" },
    { 91, "setfsuid32" },
    { 92, "fcntl" },
    { 93, "select" },
    { 94, "setfsgid32" },
    { 95, "fsync" },
    { 96, "setpriority" },
    { 97, "socket" },
    { 98, "connect" },
    { 99, "accept" },
    { 100, "getpriority" },
    { 101, "rt_sigreturn" },
    { 102, "rt_sigaction", ignoreFunc },
    { 103, "rt_sigprocmask", ignoreFunc },
    { 104, "rt_sigpending" },
    { 105, "rt_sigtimedwait" },
    { 106, "rt_sigqueueinfo" },
    { 107, "rt_sigsuspend" },
    { 108, "setresuid" },
    { 109, "getresuid", getresuidFunc },
    { 110, "setresgid", ignoreFunc },
    { 111, "getresgid" },
    { 112, "setregid32" },
    { 113, "recvmsg" },
    { 114, "sendmsg" },
    { 115, "getgroups32" },
    { 116, "gettimeofday", gettimeofdayFunc<SparcLinux> },
    { 117, "getrusage" },
    { 118, "getsockopt" },
    { 119, "getcwd" },
    { 120, "readv" },
    { 121, "writev" },
    { 122, "settimeofday" },
    { 123, "fchown" },
    { 124, "fchmod" },
    { 125, "recvfrom" },
    { 126, "setreuid" },
    { 127, "setregid" },
    { 128, "rename", renameFunc },
    { 129, "truncate" },
    { 130, "ftruncate" },
    { 131, "flock" },
    { 132, "lstat64" },
    { 133, "sendto" },
    { 134, "shutdown" },
    { 135, "socketpair" },
    { 136, "mkdir", mkdirFunc },
    { 137, "rmdir" },
    { 138, "utimes" },
    { 139, "stat64" },
    { 140, "sendfile64" },
    { 141, "getpeername" },
    { 142, "futex" },
    { 143, "gettid" },
    { 144, "getrlimit" },
    { 145, "setrlimit" },
    { 146, "pivot_root" },
    { 147, "prctl" },
    { 148, "pciconfig_read" },
    { 149, "pciconfig_write" },
    { 150, "getsockname" },
    { 151, "inotify_init" },
    { 152, "inotify_add_watch" },
    { 153, "poll" },
    { 154, "getdents64" },
    { 155, "fcntl64" },
    { 156, "inotify_rm_watch" },
    { 157, "statfs" },
    { 158, "fstatfs" },
    { 159, "umount" },
    { 160, "sched_set_affinity" },
    { 161, "sched_get_affinity" },
    { 162, "getdomainname" },
    { 163, "setdomainname" },
    { 164, "utrap_install" },
    { 165, "quotactl" },
    { 166, "set_tid_address" },
    { 167, "mount" },
    { 168, "ustat" },
    { 169, "setxattr" },
    { 170, "lsetxattr" },
    { 171, "fsetxattr" },
    { 172, "getxattr" },
    { 173, "lgetxattr" },
    { 174, "getdents" },
    { 175, "setsid" },
    { 176, "fchdir" },
    { 177, "fgetxattr" },
    { 178, "listxattr" },
    { 179, "llistxattr" },
    { 180, "flistxattr" },
    { 181, "removexattr" },
    { 182, "lremovexattr" },
    { 183, "sigpending" },
    { 184, "query_module" },
    { 185, "setpgid" },
    { 186, "fremovexattr" },
    { 187, "tkill" },
    { 188, "exit_group", exitGroupFunc },
    { 189, "uname", unameFunc },
    { 190, "init_module" },
    { 191, "personality" },
    { 192, "remap_file_pages" },
    { 193, "epoll_create" },
    { 194, "epoll_ctl" },
    { 195, "epoll_wait" },
    { 196, "ioprio_set" },
    { 197, "getppid", getppidFunc },
    { 198, "sigaction", ignoreFunc },
    { 199, "sgetmask" },
    { 200, "ssetmask" },
    { 201, "sigsuspend" },
    { 202, "oldlstat" },
    { 203, "uselib" },
    { 204, "readdir" },
    { 205, "readahead" },
    { 206, "socketcall" },
    { 207, "syslog" },
    { 208, "lookup_dcookie" },
    { 209, "fadvise64" },
    { 210, "fadvise64_64" },
    { 211, "tgkill" },
    { 212, "waitpid" },
    { 213, "swapoff" },
    { 214, "sysinfo", sysinfoFunc<SparcLinux> },
    { 215, "ipc" },
    { 216, "sigreturn" },
    { 217, "clone", cloneFunc<SparcLinux> },
    { 218, "ioprio_get" },
    { 219, "adjtimex" },
    { 220, "sigprocmask" },
    { 221, "create_module" },
    { 222, "delete_module" },
    { 223, "get_kernel_syms" },
    { 224, "getpgid" },
    { 225, "bdflush" },
    { 226, "sysfs" },
    { 227, "afs_syscall" },
    { 228, "setfsuid" },
    { 229, "setfsgid" },
    { 230, "_newselect" },
    { 231, "time", ignoreFunc },
    { 232, "oldstat" },
    { 233, "stime" },
    { 234, "statfs64" },
    { 235, "fstatfs64" },
    { 236, "_llseek", _llseekFunc },
    { 237, "mlock" },
    { 238, "munlock" },
    { 239, "mlockall" },
    { 240, "munlockall" },
    { 241, "sched_setparam" },
    { 242, "sched_getparam" },
    { 243, "sched_setscheduler" },
    { 244, "sched_getscheduler" },
    { 245, "sched_yield" },
    { 246, "sched_get_priority_max" },
    { 247, "sched_get_priority_min" },
    { 248, "sched_rr_get_interval" },
    { 249, "nanosleep" },
    { 250, "mremap", mremapFunc<SparcLinux> },
    { 251, "_sysctl" },
    { 252, "getsid" },
    { 253, "fdatasync" },
    { 254, "nfsservctl" },
    { 255, "aplib" },
    { 256, "clock_settime" },
    { 257, "clock_gettime" },
    { 258, "clock_getres" },
    { 259, "clock_nanosleep" },
    { 260, "sched_getaffinity" },
    { 261, "sched_setaffinity" },
    { 262, "timer_settime" },
    { 263, "timer_gettime" },
    { 264, "timer_getoverrun" },
    { 265, "timer_delete" },
    { 266, "timer_create" },
    { 267, "vserver" },
    { 268, "io_setup" },
    { 269, "io_destroy" },
    { 270, "io_submit" },
    { 271, "io_cancel" },
    { 272, "io_getevents" },
    { 273, "mq_open" },
    { 274, "mq_unlink" },
    { 275, "mq_timedsend" },
    { 276, "mq_timedreceive" },
    { 277, "mq_notify" },
    { 278, "mq_getsetattr" },
    { 279, "waitid" },
    { 280, "sys_setaltroot" },
    { 281, "add_key" },
    { 282, "request_key" },
    { 283, "keyctl" }
};

} // namespace SparcISA
