/*
 * 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, Addr utsname)
{
    auto process = tc->getProcessPtr();
    TypedBufferArg<Linux::utsname> name(utsname);

    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");

    name.copyOut(tc->getVirtProxy());

    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
