syscalls.cc revision 6701
113996Sgiacomo.travaglini@arm.com/* 29525SAndreas.Sandberg@ARM.com * Copyright (c) 2003-2005 The Regents of The University of Michigan 39525SAndreas.Sandberg@ARM.com * All rights reserved. 49525SAndreas.Sandberg@ARM.com * 59525SAndreas.Sandberg@ARM.com * Redistribution and use in source and binary forms, with or without 69525SAndreas.Sandberg@ARM.com * modification, are permitted provided that the following conditions are 79525SAndreas.Sandberg@ARM.com * met: redistributions of source code must retain the above copyright 89525SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer; 99525SAndreas.Sandberg@ARM.com * redistributions in binary form must reproduce the above copyright 109525SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer in the 119525SAndreas.Sandberg@ARM.com * documentation and/or other materials provided with the distribution; 129525SAndreas.Sandberg@ARM.com * neither the name of the copyright holders nor the names of its 139525SAndreas.Sandberg@ARM.com * contributors may be used to endorse or promote products derived from 149525SAndreas.Sandberg@ARM.com * this software without specific prior written permission. 159525SAndreas.Sandberg@ARM.com * 169525SAndreas.Sandberg@ARM.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 179525SAndreas.Sandberg@ARM.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 189525SAndreas.Sandberg@ARM.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 199525SAndreas.Sandberg@ARM.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 209525SAndreas.Sandberg@ARM.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 219525SAndreas.Sandberg@ARM.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 229525SAndreas.Sandberg@ARM.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 239525SAndreas.Sandberg@ARM.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 249525SAndreas.Sandberg@ARM.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 259525SAndreas.Sandberg@ARM.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 269525SAndreas.Sandberg@ARM.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 279525SAndreas.Sandberg@ARM.com * 289525SAndreas.Sandberg@ARM.com * Authors: Gabe Black 299525SAndreas.Sandberg@ARM.com */ 309525SAndreas.Sandberg@ARM.com 319525SAndreas.Sandberg@ARM.com#include "arch/sparc/linux/process.hh" 329525SAndreas.Sandberg@ARM.com#include "sim/syscall_emul.hh" 339525SAndreas.Sandberg@ARM.com 349525SAndreas.Sandberg@ARM.comclass LiveProcess; 359525SAndreas.Sandberg@ARM.comclass ThreadContext; 369525SAndreas.Sandberg@ARM.com 379525SAndreas.Sandberg@ARM.comnamespace SparcISA { 389525SAndreas.Sandberg@ARM.com 399525SAndreas.Sandberg@ARM.com/// Target uname() handler. 4013591Sciro.santilli@arm.comstatic SyscallReturn 4110749Smatt.evans@arm.comunameFunc(SyscallDesc *desc, int callnum, LiveProcess *process, 429525SAndreas.Sandberg@ARM.com ThreadContext *tc) 4313996Sgiacomo.travaglini@arm.com{ 4413665Sandreas.sandberg@arm.com int index = 0; 459525SAndreas.Sandberg@ARM.com TypedBufferArg<Linux::utsname> name(process->getSyscallArg(tc, index)); 469525SAndreas.Sandberg@ARM.com 479525SAndreas.Sandberg@ARM.com strcpy(name->sysname, "Linux"); 489525SAndreas.Sandberg@ARM.com strcpy(name->nodename, "m5.eecs.umich.edu"); 499525SAndreas.Sandberg@ARM.com strcpy(name->release, "2.6.12-9-sparc64"); 509525SAndreas.Sandberg@ARM.com strcpy(name->version, "#1 Mon Aug 18 11:32:15 EDT 2003"); 5114152Sgiacomo.travaglini@arm.com strcpy(name->machine, "sparc"); 5214152Sgiacomo.travaglini@arm.com 5314152Sgiacomo.travaglini@arm.com name.copyOut(tc->getMemPort()); 549525SAndreas.Sandberg@ARM.com 559525SAndreas.Sandberg@ARM.com return 0; 5613505Sgiacomo.travaglini@arm.com} 5713505Sgiacomo.travaglini@arm.com 5813505Sgiacomo.travaglini@arm.com 5913505Sgiacomo.travaglini@arm.comSyscallReturn getresuidFunc(SyscallDesc *desc, int num, 6013505Sgiacomo.travaglini@arm.com LiveProcess *p, ThreadContext *tc) 6113505Sgiacomo.travaglini@arm.com{ 6213505Sgiacomo.travaglini@arm.com const IntReg id = htog(100); 6313505Sgiacomo.travaglini@arm.com int index = 0; 6413505Sgiacomo.travaglini@arm.com Addr ruid = p->getSyscallArg(tc, index); 6514152Sgiacomo.travaglini@arm.com Addr euid = p->getSyscallArg(tc, index); 6614152Sgiacomo.travaglini@arm.com Addr suid = p->getSyscallArg(tc, index); 6714152Sgiacomo.travaglini@arm.com //Handle the EFAULT case 6814152Sgiacomo.travaglini@arm.com //Set the ruid 6914152Sgiacomo.travaglini@arm.com if(ruid) 7014152Sgiacomo.travaglini@arm.com { 7114152Sgiacomo.travaglini@arm.com BufferArg ruidBuff(ruid, sizeof(IntReg)); 7214152Sgiacomo.travaglini@arm.com memcpy(ruidBuff.bufferPtr(), &id, sizeof(IntReg)); 7314152Sgiacomo.travaglini@arm.com ruidBuff.copyOut(tc->getMemPort()); 7414152Sgiacomo.travaglini@arm.com } 7512739Sandreas.sandberg@arm.com //Set the euid 7612739Sandreas.sandberg@arm.com if(euid) 7712739Sandreas.sandberg@arm.com { 7812974Sgiacomo.travaglini@arm.com BufferArg euidBuff(euid, sizeof(IntReg)); 7912739Sandreas.sandberg@arm.com memcpy(euidBuff.bufferPtr(), &id, sizeof(IntReg)); 8012739Sandreas.sandberg@arm.com euidBuff.copyOut(tc->getMemPort()); 8112739Sandreas.sandberg@arm.com } 8212739Sandreas.sandberg@arm.com //Set the suid 8312739Sandreas.sandberg@arm.com if(suid) 8412739Sandreas.sandberg@arm.com { 8512739Sandreas.sandberg@arm.com BufferArg suidBuff(suid, sizeof(IntReg)); 8612739Sandreas.sandberg@arm.com memcpy(suidBuff.bufferPtr(), &id, sizeof(IntReg)); 8712974Sgiacomo.travaglini@arm.com suidBuff.copyOut(tc->getMemPort()); 8812739Sandreas.sandberg@arm.com } 8912739Sandreas.sandberg@arm.com return 0; 9012739Sandreas.sandberg@arm.com} 9112739Sandreas.sandberg@arm.com 9212974Sgiacomo.travaglini@arm.comSyscallDesc SparcLinuxProcess::syscall32Descs[] = { 9312739Sandreas.sandberg@arm.com /* 0 */ SyscallDesc("restart_syscall", unimplementedFunc), 9413014Sciro.santilli@arm.com /* 1 */ SyscallDesc("exit", exitFunc), //32 bit 9513014Sciro.santilli@arm.com /* 2 */ SyscallDesc("fork", unimplementedFunc), 9613014Sciro.santilli@arm.com /* 3 */ SyscallDesc("read", readFunc), 979525SAndreas.Sandberg@ARM.com /* 4 */ SyscallDesc("write", writeFunc), 9813013Sciro.santilli@arm.com /* 5 */ SyscallDesc("open", openFunc<Sparc32Linux>), //32 bit 9913013Sciro.santilli@arm.com /* 6 */ SyscallDesc("close", closeFunc), 10013013Sciro.santilli@arm.com /* 7 */ SyscallDesc("wait4", unimplementedFunc), //32 bit 1019525SAndreas.Sandberg@ARM.com /* 8 */ SyscallDesc("creat", unimplementedFunc), //32 bit 1029525SAndreas.Sandberg@ARM.com /* 9 */ SyscallDesc("link", unimplementedFunc), 1039525SAndreas.Sandberg@ARM.com /* 10 */ SyscallDesc("unlink", unlinkFunc), 1049525SAndreas.Sandberg@ARM.com /* 11 */ SyscallDesc("execv", unimplementedFunc), 10511652SCurtis.Dunham@arm.com /* 12 */ SyscallDesc("chdir", unimplementedFunc), 10610749Smatt.evans@arm.com /* 13 */ SyscallDesc("chown", chownFunc), //32 bit 10713505Sgiacomo.travaglini@arm.com /* 14 */ SyscallDesc("mknod", unimplementedFunc), 10813505Sgiacomo.travaglini@arm.com /* 15 */ SyscallDesc("chmod", unimplementedFunc), 10913505Sgiacomo.travaglini@arm.com /* 16 */ SyscallDesc("lchown", unimplementedFunc), //32 bit 11013505Sgiacomo.travaglini@arm.com /* 17 */ SyscallDesc("brk", brkFunc), 11113505Sgiacomo.travaglini@arm.com /* 18 */ SyscallDesc("perfctr", unimplementedFunc), //32 bit 11213505Sgiacomo.travaglini@arm.com /* 19 */ SyscallDesc("lseek", lseekFunc), //32 bit 11313505Sgiacomo.travaglini@arm.com /* 20 */ SyscallDesc("getpid", getpidFunc), 11413505Sgiacomo.travaglini@arm.com /* 21 */ SyscallDesc("capget", unimplementedFunc), 11513505Sgiacomo.travaglini@arm.com /* 22 */ SyscallDesc("capset", unimplementedFunc), 11613505Sgiacomo.travaglini@arm.com /* 23 */ SyscallDesc("setuid", setuidFunc), //32 bit 11713505Sgiacomo.travaglini@arm.com /* 24 */ SyscallDesc("getuid", getuidFunc), //32 bit 11813505Sgiacomo.travaglini@arm.com /* 25 */ SyscallDesc("time", unimplementedFunc), 11913505Sgiacomo.travaglini@arm.com /* 26 */ SyscallDesc("ptrace", unimplementedFunc), 12010749Smatt.evans@arm.com /* 27 */ SyscallDesc("alarm", unimplementedFunc), 12110749Smatt.evans@arm.com /* 28 */ SyscallDesc("sigaltstack", unimplementedFunc), //32 bit 12210749Smatt.evans@arm.com /* 29 */ SyscallDesc("pause", unimplementedFunc), //32 bit 12310749Smatt.evans@arm.com /* 30 */ SyscallDesc("utime", unimplementedFunc), 12410749Smatt.evans@arm.com /* 31 */ SyscallDesc("lchown32", unimplementedFunc), 12510749Smatt.evans@arm.com /* 32 */ SyscallDesc("fchown32", unimplementedFunc), 12610749Smatt.evans@arm.com /* 33 */ SyscallDesc("access", unimplementedFunc), //32 bit 12710749Smatt.evans@arm.com /* 34 */ SyscallDesc("nice", unimplementedFunc), //32 bit 12810749Smatt.evans@arm.com /* 35 */ SyscallDesc("chown32", unimplementedFunc), 12910749Smatt.evans@arm.com /* 36 */ SyscallDesc("sync", unimplementedFunc), 13010749Smatt.evans@arm.com /* 37 */ SyscallDesc("kill", unimplementedFunc), //32 bit 13110749Smatt.evans@arm.com /* 38 */ SyscallDesc("stat", unimplementedFunc), 13210749Smatt.evans@arm.com /* 39 */ SyscallDesc("sendfile", unimplementedFunc), //32 bit 13310749Smatt.evans@arm.com /* 40 */ SyscallDesc("lstat", unimplementedFunc), 13413504Sgiacomo.travaglini@arm.com /* 41 */ SyscallDesc("dup", unimplementedFunc), 13513504Sgiacomo.travaglini@arm.com /* 42 */ SyscallDesc("pipe", pipePseudoFunc), 13613504Sgiacomo.travaglini@arm.com /* 43 */ SyscallDesc("times", ignoreFunc), 13713504Sgiacomo.travaglini@arm.com /* 44 */ SyscallDesc("getuid32", unimplementedFunc), 13813504Sgiacomo.travaglini@arm.com /* 45 */ SyscallDesc("umount2", unimplementedFunc), //32 bit 13913504Sgiacomo.travaglini@arm.com /* 46 */ SyscallDesc("setgid", unimplementedFunc), //32 bit 14013504Sgiacomo.travaglini@arm.com /* 47 */ SyscallDesc("getgid", getgidFunc), //32 bit 14113504Sgiacomo.travaglini@arm.com /* 48 */ SyscallDesc("signal", unimplementedFunc), //32 bit 14213504Sgiacomo.travaglini@arm.com /* 49 */ SyscallDesc("geteuid", geteuidFunc), //32 bit 14313504Sgiacomo.travaglini@arm.com /* 50 */ SyscallDesc("getegid", getegidFunc), //32 bit 14413814Sgiacomo.travaglini@arm.com /* 51 */ SyscallDesc("acct", unimplementedFunc), 14513504Sgiacomo.travaglini@arm.com /* 52 */ SyscallDesc("memory_ordering", unimplementedFunc), 14613505Sgiacomo.travaglini@arm.com /* 53 */ SyscallDesc("getgid32", unimplementedFunc), 14713505Sgiacomo.travaglini@arm.com /* 54 */ SyscallDesc("ioctl", unimplementedFunc), 14813505Sgiacomo.travaglini@arm.com /* 55 */ SyscallDesc("reboot", unimplementedFunc), //32 bit 14913505Sgiacomo.travaglini@arm.com /* 56 */ SyscallDesc("mmap2", unimplementedFunc), //32 bit 15013504Sgiacomo.travaglini@arm.com /* 57 */ SyscallDesc("symlink", unimplementedFunc), 15113504Sgiacomo.travaglini@arm.com /* 58 */ SyscallDesc("readlink", readlinkFunc), //32 bit 15213504Sgiacomo.travaglini@arm.com /* 59 */ SyscallDesc("execve", unimplementedFunc), //32 bit 15313504Sgiacomo.travaglini@arm.com /* 60 */ SyscallDesc("umask", unimplementedFunc), //32 bit 15413504Sgiacomo.travaglini@arm.com /* 61 */ SyscallDesc("chroot", unimplementedFunc), 15513504Sgiacomo.travaglini@arm.com /* 62 */ SyscallDesc("fstat", unimplementedFunc), 15614152Sgiacomo.travaglini@arm.com /* 63 */ SyscallDesc("fstat64", fstat64Func<Sparc32Linux>), 15714152Sgiacomo.travaglini@arm.com /* 64 */ SyscallDesc("getpagesize", unimplementedFunc), 15813504Sgiacomo.travaglini@arm.com /* 65 */ SyscallDesc("msync", unimplementedFunc), //32 bit 15913504Sgiacomo.travaglini@arm.com /* 66 */ SyscallDesc("vfork", unimplementedFunc), 16013504Sgiacomo.travaglini@arm.com /* 67 */ SyscallDesc("pread64", unimplementedFunc), //32 bit 16113504Sgiacomo.travaglini@arm.com /* 68 */ SyscallDesc("pwrite64", unimplementedFunc), //32 bit 16213504Sgiacomo.travaglini@arm.com /* 69 */ SyscallDesc("geteuid32", unimplementedFunc), 16313504Sgiacomo.travaglini@arm.com /* 70 */ SyscallDesc("getegid32", unimplementedFunc), 16413504Sgiacomo.travaglini@arm.com /* 71 */ SyscallDesc("mmap", mmapFunc<Sparc32Linux>), 16513504Sgiacomo.travaglini@arm.com /* 72 */ SyscallDesc("setreuid32", unimplementedFunc), 16613504Sgiacomo.travaglini@arm.com /* 73 */ SyscallDesc("munmap", munmapFunc), 16713504Sgiacomo.travaglini@arm.com /* 74 */ SyscallDesc("mprotect", ignoreFunc), 16813504Sgiacomo.travaglini@arm.com /* 75 */ SyscallDesc("madvise", unimplementedFunc), 16913504Sgiacomo.travaglini@arm.com /* 76 */ SyscallDesc("vhangup", unimplementedFunc), 17013504Sgiacomo.travaglini@arm.com /* 77 */ SyscallDesc("truncate64", unimplementedFunc), //32 bit 17113504Sgiacomo.travaglini@arm.com /* 78 */ SyscallDesc("mincore", unimplementedFunc), 17213814Sgiacomo.travaglini@arm.com /* 79 */ SyscallDesc("getgroups", unimplementedFunc), //32 bit 17313504Sgiacomo.travaglini@arm.com /* 80 */ SyscallDesc("setgroups", unimplementedFunc), //32 bit 17413504Sgiacomo.travaglini@arm.com /* 81 */ SyscallDesc("getpgrp", unimplementedFunc), 17513504Sgiacomo.travaglini@arm.com /* 82 */ SyscallDesc("setgroups32", unimplementedFunc), //32 bit 17613504Sgiacomo.travaglini@arm.com /* 83 */ SyscallDesc("setitimer", unimplementedFunc), //32 bit 17713531Sjairo.balart@metempsy.com /* 84 */ SyscallDesc("ftruncate64", unimplementedFunc), //32 bit 17813996Sgiacomo.travaglini@arm.com /* 85 */ SyscallDesc("swapon", unimplementedFunc), //32 bit 17913996Sgiacomo.travaglini@arm.com /* 86 */ SyscallDesc("getitimer", unimplementedFunc), //32 bit 18013996Sgiacomo.travaglini@arm.com /* 87 */ SyscallDesc("setuid32", unimplementedFunc), 18113996Sgiacomo.travaglini@arm.com /* 88 */ SyscallDesc("sethostname", unimplementedFunc), //32 bit 18213996Sgiacomo.travaglini@arm.com /* 89 */ SyscallDesc("setgid32", unimplementedFunc), 18313996Sgiacomo.travaglini@arm.com /* 90 */ SyscallDesc("dup2", unimplementedFunc), 18413996Sgiacomo.travaglini@arm.com /* 91 */ SyscallDesc("setfsuid32", unimplementedFunc), 18513996Sgiacomo.travaglini@arm.com /* 92 */ SyscallDesc("fcntl", unimplementedFunc), 18613996Sgiacomo.travaglini@arm.com /* 93 */ SyscallDesc("select", unimplementedFunc), //32 bit 18713996Sgiacomo.travaglini@arm.com /* 94 */ SyscallDesc("setfsgid32", unimplementedFunc), 18813996Sgiacomo.travaglini@arm.com /* 95 */ SyscallDesc("fsync", unimplementedFunc), 18913996Sgiacomo.travaglini@arm.com /* 96 */ SyscallDesc("setpriority", unimplementedFunc), //32 bit 19013531Sjairo.balart@metempsy.com /* 97 */ SyscallDesc("socket", unimplementedFunc), 19113531Sjairo.balart@metempsy.com /* 98 */ SyscallDesc("connect", unimplementedFunc), 19213531Sjairo.balart@metempsy.com /* 99 */ SyscallDesc("accept", unimplementedFunc), 19313531Sjairo.balart@metempsy.com /* 100 */ SyscallDesc("getpriority", unimplementedFunc), //32 bit 19414152Sgiacomo.travaglini@arm.com /* 101 */ SyscallDesc("rt_sigreturn", unimplementedFunc), //32 bit 19514154Sgiacomo.travaglini@arm.com /* 102 */ SyscallDesc("rt_sigaction", ignoreFunc), //32 bit 19614152Sgiacomo.travaglini@arm.com /* 103 */ SyscallDesc("rt_sigprocmask", ignoreFunc), //32 bit 19713996Sgiacomo.travaglini@arm.com /* 104 */ SyscallDesc("rt_sigpending", unimplementedFunc), //32 bit 19813996Sgiacomo.travaglini@arm.com /* 105 */ SyscallDesc("rt_sigtimedwait", unimplementedFunc), 19913880Sgiacomo.travaglini@arm.com /* 106 */ SyscallDesc("rt_sigqueueinfo", unimplementedFunc), //32 bit 20013531Sjairo.balart@metempsy.com /* 107 */ SyscallDesc("rt_sigsuspend", unimplementedFunc), 20113880Sgiacomo.travaglini@arm.com /* 108 */ SyscallDesc("setresuid32", unimplementedFunc), 20213531Sjairo.balart@metempsy.com /* 109 */ SyscallDesc("getresuid32", getresuidFunc), 20313531Sjairo.balart@metempsy.com /* 110 */ SyscallDesc("setresgid32", ignoreFunc), 20413531Sjairo.balart@metempsy.com /* 111 */ SyscallDesc("getresgid32", unimplementedFunc), 20513531Sjairo.balart@metempsy.com /* 112 */ SyscallDesc("setregid32", unimplementedFunc), 20613826Sgiacomo.travaglini@arm.com /* 113 */ SyscallDesc("revcmsg", unimplementedFunc), 20713826Sgiacomo.travaglini@arm.com /* 114 */ SyscallDesc("sendmsg", unimplementedFunc), 20813826Sgiacomo.travaglini@arm.com /* 115 */ SyscallDesc("getgroups32", unimplementedFunc), //32 bit 20913826Sgiacomo.travaglini@arm.com /* 116 */ SyscallDesc("gettimeofday", gettimeofdayFunc<Sparc32Linux>), //32 bit 21013826Sgiacomo.travaglini@arm.com /* 117 */ SyscallDesc("getrusage", unimplementedFunc), //32 bit 21113877Sgiacomo.travaglini@arm.com /* 118 */ SyscallDesc("getsockopt", unimplementedFunc), 21213877Sgiacomo.travaglini@arm.com /* 119 */ SyscallDesc("getcwd", getcwdFunc), 21313877Sgiacomo.travaglini@arm.com /* 120 */ SyscallDesc("readv", unimplementedFunc), 21413877Sgiacomo.travaglini@arm.com /* 121 */ SyscallDesc("writev", unimplementedFunc), 21513878Sgiacomo.travaglini@arm.com /* 122 */ SyscallDesc("settimeofday", unimplementedFunc), //32 bit 21613878Sgiacomo.travaglini@arm.com /* 123 */ SyscallDesc("fchown", unimplementedFunc), //32 bit 21714154Sgiacomo.travaglini@arm.com /* 124 */ SyscallDesc("fchmod", unimplementedFunc), 21814154Sgiacomo.travaglini@arm.com /* 125 */ SyscallDesc("recvfrom", unimplementedFunc), 21914154Sgiacomo.travaglini@arm.com /* 126 */ SyscallDesc("setreuid", unimplementedFunc), //32 bit 22014154Sgiacomo.travaglini@arm.com /* 127 */ SyscallDesc("setregid", unimplementedFunc), //32 bit 22114154Sgiacomo.travaglini@arm.com /* 128 */ SyscallDesc("rename", renameFunc), 22214154Sgiacomo.travaglini@arm.com /* 129 */ SyscallDesc("truncate", unimplementedFunc), 22314154Sgiacomo.travaglini@arm.com /* 130 */ SyscallDesc("ftruncate", unimplementedFunc), 22414154Sgiacomo.travaglini@arm.com /* 131 */ SyscallDesc("flock", unimplementedFunc), 22514154Sgiacomo.travaglini@arm.com /* 132 */ SyscallDesc("lstat64", unimplementedFunc), 22614154Sgiacomo.travaglini@arm.com /* 133 */ SyscallDesc("sendto", unimplementedFunc), 22714154Sgiacomo.travaglini@arm.com /* 134 */ SyscallDesc("shutdown", unimplementedFunc), 22814154Sgiacomo.travaglini@arm.com /* 135 */ SyscallDesc("socketpair", unimplementedFunc), 22914154Sgiacomo.travaglini@arm.com /* 136 */ SyscallDesc("mkdir", mkdirFunc), //32 bit 23014154Sgiacomo.travaglini@arm.com /* 137 */ SyscallDesc("rmdir", unimplementedFunc), 23114154Sgiacomo.travaglini@arm.com /* 138 */ SyscallDesc("utimes", unimplementedFunc), //32 bit 23214154Sgiacomo.travaglini@arm.com /* 139 */ SyscallDesc("stat64", unimplementedFunc), 23314154Sgiacomo.travaglini@arm.com /* 140 */ SyscallDesc("sendfile64", unimplementedFunc), //32 bit 23414154Sgiacomo.travaglini@arm.com /* 141 */ SyscallDesc("getpeername", unimplementedFunc), 23514154Sgiacomo.travaglini@arm.com /* 142 */ SyscallDesc("futex", unimplementedFunc), //32 bit 23614154Sgiacomo.travaglini@arm.com /* 143 */ SyscallDesc("gettid", unimplementedFunc), 23714154Sgiacomo.travaglini@arm.com /* 144 */ SyscallDesc("getrlimit", unimplementedFunc), 23814154Sgiacomo.travaglini@arm.com /* 145 */ SyscallDesc("setrlimit", unimplementedFunc), 23914154Sgiacomo.travaglini@arm.com /* 146 */ SyscallDesc("pivot_root", unimplementedFunc), 24014173Sgiacomo.travaglini@arm.com /* 147 */ SyscallDesc("prctl", unimplementedFunc), //32 bit 24114173Sgiacomo.travaglini@arm.com /* 148 */ SyscallDesc("pciconfig_read", unimplementedFunc), 24214173Sgiacomo.travaglini@arm.com /* 149 */ SyscallDesc("pciconfig_write", unimplementedFunc), 24314173Sgiacomo.travaglini@arm.com /* 150 */ SyscallDesc("getsockname", unimplementedFunc), 24414154Sgiacomo.travaglini@arm.com /* 151 */ SyscallDesc("inotify_init", unimplementedFunc), 24514154Sgiacomo.travaglini@arm.com /* 152 */ SyscallDesc("inotify_add_watch", unimplementedFunc), 24614154Sgiacomo.travaglini@arm.com /* 153 */ SyscallDesc("poll", unimplementedFunc), 24714154Sgiacomo.travaglini@arm.com /* 154 */ SyscallDesc("getdents64", unimplementedFunc), 24814154Sgiacomo.travaglini@arm.com /* 155 */ SyscallDesc("fcntl64", unimplementedFunc), 24914154Sgiacomo.travaglini@arm.com /* 156 */ SyscallDesc("inotify_rm_watch", unimplementedFunc), 25014154Sgiacomo.travaglini@arm.com /* 157 */ SyscallDesc("statfs", unimplementedFunc), 25114154Sgiacomo.travaglini@arm.com /* 158 */ SyscallDesc("fstatfs", unimplementedFunc), 25214154Sgiacomo.travaglini@arm.com /* 159 */ SyscallDesc("umount", unimplementedFunc), 25314154Sgiacomo.travaglini@arm.com /* 160 */ SyscallDesc("sched_setaffinity", unimplementedFunc), 25414154Sgiacomo.travaglini@arm.com /* 161 */ SyscallDesc("sched_getaffinity", unimplementedFunc), 25514154Sgiacomo.travaglini@arm.com /* 162 */ SyscallDesc("getdomainname", unimplementedFunc), //32 bit 25614154Sgiacomo.travaglini@arm.com /* 163 */ SyscallDesc("setdomainname", unimplementedFunc), //32 bit 257 /* 164 */ SyscallDesc("ni_syscall", unimplementedFunc), 258 /* 165 */ SyscallDesc("quotactl", unimplementedFunc), 259 /* 166 */ SyscallDesc("set_tid_address", unimplementedFunc), 260 /* 167 */ SyscallDesc("mount", unimplementedFunc), 261 /* 168 */ SyscallDesc("ustat", unimplementedFunc), 262 /* 169 */ SyscallDesc("setxattr", unimplementedFunc), //32 bit 263 /* 170 */ SyscallDesc("lsetxattr", unimplementedFunc), //32 bit 264 /* 171 */ SyscallDesc("fsetxattr", unimplementedFunc), //32 bit 265 /* 172 */ SyscallDesc("getxattr", unimplementedFunc), 266 /* 173 */ SyscallDesc("lgetxattr", unimplementedFunc), 267 /* 174 */ SyscallDesc("getdents", unimplementedFunc), 268 /* 175 */ SyscallDesc("setsid", unimplementedFunc), 269 /* 176 */ SyscallDesc("fchdir", unimplementedFunc), 270 /* 177 */ SyscallDesc("fgetxattr", unimplementedFunc), //32 bit 271 /* 178 */ SyscallDesc("listxattr", unimplementedFunc), 272 /* 179 */ SyscallDesc("llistxattr", unimplementedFunc), 273 /* 180 */ SyscallDesc("flistxattr", unimplementedFunc), //32 bit 274 /* 181 */ SyscallDesc("removexattr", unimplementedFunc), 275 /* 182 */ SyscallDesc("lremovexattr", unimplementedFunc), 276 /* 183 */ SyscallDesc("sigpending", unimplementedFunc), 277 /* 184 */ SyscallDesc("query_module", unimplementedFunc), 278 /* 185 */ SyscallDesc("setpgid", unimplementedFunc), //32 bit 279 /* 186 */ SyscallDesc("fremovexattr", unimplementedFunc), //32 bit 280 /* 187 */ SyscallDesc("tkill", unimplementedFunc), //32 bit 281 /* 188 */ SyscallDesc("exit_group", exitGroupFunc), //32 bit 282 /* 189 */ SyscallDesc("uname", unameFunc), 283 /* 190 */ SyscallDesc("init_module", unimplementedFunc), //32 bit 284 /* 191 */ SyscallDesc("personality", unimplementedFunc), 285 /* 192 */ SyscallDesc("remap_file_pages", unimplementedFunc), 286 /* 193 */ SyscallDesc("epoll_create", unimplementedFunc), //32 bit 287 /* 194 */ SyscallDesc("epoll_ctl", unimplementedFunc), //32 bit 288 /* 195 */ SyscallDesc("epoll_wait", unimplementedFunc), //32 bit 289 /* 196 */ SyscallDesc("ioprio_set", unimplementedFunc), //32 bit 290 /* 197 */ SyscallDesc("getppid", getppidFunc), 291 /* 198 */ SyscallDesc("sigaction", unimplementedFunc), //32 bit 292 /* 199 */ SyscallDesc("sgetmask", unimplementedFunc), 293 /* 200 */ SyscallDesc("ssetmask", unimplementedFunc), 294 /* 201 */ SyscallDesc("sigsuspend", unimplementedFunc), 295 /* 202 */ SyscallDesc("oldlstat", unimplementedFunc), 296 /* 203 */ SyscallDesc("uselib", unimplementedFunc), 297 /* 204 */ SyscallDesc("readdir", unimplementedFunc), 298 /* 205 */ SyscallDesc("readahead", unimplementedFunc), //32 bit 299 /* 206 */ SyscallDesc("socketcall", unimplementedFunc), //32 bit 300 /* 207 */ SyscallDesc("syslog", unimplementedFunc), //32 bit 301 /* 208 */ SyscallDesc("lookup_dcookie", unimplementedFunc), //32 bit 302 /* 209 */ SyscallDesc("fadvise64", unimplementedFunc), //32 bit 303 /* 210 */ SyscallDesc("fadvise64_64", unimplementedFunc), //32 bit 304 /* 211 */ SyscallDesc("tgkill", unimplementedFunc), //32 bit 305 /* 212 */ SyscallDesc("waitpid", unimplementedFunc), //32 bit 306 /* 213 */ SyscallDesc("swapoff", unimplementedFunc), 307 /* 214 */ SyscallDesc("sysinfo", sysinfoFunc<Sparc32Linux>), //32 bit 308 /* 215 */ SyscallDesc("ipc", unimplementedFunc), //32 bit 309 /* 216 */ SyscallDesc("sigreturn", unimplementedFunc), //32 bit 310 /* 217 */ SyscallDesc("clone", cloneFunc), 311 /* 218 */ SyscallDesc("ioprio_get", unimplementedFunc), //32 bit 312 /* 219 */ SyscallDesc("adjtimex", unimplementedFunc), //32 bit 313 /* 220 */ SyscallDesc("sigprocmask", unimplementedFunc), //32 bit 314 /* 221 */ SyscallDesc("create_module", unimplementedFunc), 315 /* 222 */ SyscallDesc("delete_module", unimplementedFunc), //32 bit 316 /* 223 */ SyscallDesc("get_kernel_syms", unimplementedFunc), 317 /* 224 */ SyscallDesc("getpgid", unimplementedFunc), //32 bit 318 /* 225 */ SyscallDesc("bdflush", unimplementedFunc), //32 bit 319 /* 226 */ SyscallDesc("sysfs", unimplementedFunc), //32 bit 320 /* 227 */ SyscallDesc("afs_syscall", unimplementedFunc), 321 /* 228 */ SyscallDesc("setfsuid", unimplementedFunc), //32 bit 322 /* 229 */ SyscallDesc("setfsgid", unimplementedFunc), //32 bit 323 /* 230 */ SyscallDesc("_newselect", unimplementedFunc), //32 bit 324 /* 231 */ SyscallDesc("time", ignoreFunc), 325 /* 232 */ SyscallDesc("oldstat", unimplementedFunc), 326 /* 233 */ SyscallDesc("stime", unimplementedFunc), 327 /* 234 */ SyscallDesc("statfs64", unimplementedFunc), 328 /* 235 */ SyscallDesc("fstatfs64", unimplementedFunc), 329 /* 236 */ SyscallDesc("_llseek", _llseekFunc), 330 /* 237 */ SyscallDesc("mlock", unimplementedFunc), 331 /* 238 */ SyscallDesc("munlock", unimplementedFunc), 332 /* 239 */ SyscallDesc("mlockall", unimplementedFunc), //32 bit 333 /* 240 */ SyscallDesc("munlockall", unimplementedFunc), 334 /* 241 */ SyscallDesc("sched_setparam", unimplementedFunc), //32 bit 335 /* 242 */ SyscallDesc("sched_getparam", unimplementedFunc), //32 bit 336 /* 243 */ SyscallDesc("sched_setscheduler", unimplementedFunc), //32 bit 337 /* 244 */ SyscallDesc("sched_getscheduler", unimplementedFunc), //32 bit 338 /* 245 */ SyscallDesc("sched_yield", unimplementedFunc), 339 /* 246 */ SyscallDesc("sched_get_priority_max", unimplementedFunc), //32 bit 340 /* 247 */ SyscallDesc("sched_get_priority_min", unimplementedFunc), //32 bit 341 /* 248 */ SyscallDesc("sched_rr_get_interval", unimplementedFunc), //32 bit 342 /* 249 */ SyscallDesc("nanosleep", unimplementedFunc), 343 /* 250 */ SyscallDesc("mremap", mremapFunc<Sparc32Linux>), //32 bit 344 /* 251 */ SyscallDesc("_sysctl", unimplementedFunc), //32 bit 345 /* 252 */ SyscallDesc("getsid", unimplementedFunc), //32 bit 346 /* 253 */ SyscallDesc("fdatasync", unimplementedFunc), 347 /* 254 */ SyscallDesc("nfsservctl", unimplementedFunc), //32 bit 348 /* 255 */ SyscallDesc("aplib", unimplementedFunc), 349 /* 256 */ SyscallDesc("clock_settime", unimplementedFunc), 350 /* 257 */ SyscallDesc("clock_gettime", unimplementedFunc), 351 /* 258 */ SyscallDesc("clock_getres", unimplementedFunc), 352 /* 259 */ SyscallDesc("clock_nanosleep", unimplementedFunc), //32 bit 353 /* 260 */ SyscallDesc("sched_getaffinity", unimplementedFunc), 354 /* 261 */ SyscallDesc("sched_setaffinity", unimplementedFunc), 355 /* 262 */ SyscallDesc("timer_settime", unimplementedFunc), //32 bit 356 /* 263 */ SyscallDesc("timer_gettime", unimplementedFunc), 357 /* 264 */ SyscallDesc("timer_getoverrun", unimplementedFunc), 358 /* 265 */ SyscallDesc("timer_delete", unimplementedFunc), 359 /* 266 */ SyscallDesc("timer_create", unimplementedFunc), 360 /* 267 */ SyscallDesc("vserver", unimplementedFunc), 361 /* 268 */ SyscallDesc("io_setup", unimplementedFunc), 362 /* 269 */ SyscallDesc("io_destroy", unimplementedFunc), 363 /* 270 */ SyscallDesc("io_submit", unimplementedFunc), //32 bit 364 /* 271 */ SyscallDesc("io_cancel", unimplementedFunc), 365 /* 272 */ SyscallDesc("io_getevents", unimplementedFunc), 366 /* 273 */ SyscallDesc("mq_open", unimplementedFunc), //32 bit 367 /* 274 */ SyscallDesc("mq_unlink", unimplementedFunc), 368 /* 275 */ SyscallDesc("mq_timedsend", unimplementedFunc), 369 /* 276 */ SyscallDesc("mq_timedreceive", unimplementedFunc), 370 /* 277 */ SyscallDesc("mq_notify", unimplementedFunc), 371 /* 278 */ SyscallDesc("mq_getsetattr", unimplementedFunc), 372 /* 279 */ SyscallDesc("waitid", unimplementedFunc), 373 /* 280 */ SyscallDesc("sys_setaltroot", unimplementedFunc), 374 /* 281 */ SyscallDesc("add_key", unimplementedFunc), 375 /* 282 */ SyscallDesc("request_key", unimplementedFunc), 376 /* 283 */ SyscallDesc("keyctl", unimplementedFunc), 377 /* 284 */ SyscallDesc("openat", unimplementedFunc), 378 /* 285 */ SyscallDesc("mkdirat", unimplementedFunc), 379 /* 286 */ SyscallDesc("mknodat", unimplementedFunc), 380 /* 287 */ SyscallDesc("fchownat", unimplementedFunc), 381 /* 288 */ SyscallDesc("futimesat", unimplementedFunc), 382 /* 289 */ SyscallDesc("fstatat64", unimplementedFunc), 383 /* 290 */ SyscallDesc("unlinkat", unimplementedFunc), 384 /* 291 */ SyscallDesc("renameat", unimplementedFunc), 385 /* 292 */ SyscallDesc("linkat", unimplementedFunc), 386 /* 293 */ SyscallDesc("symlinkat", unimplementedFunc), 387 /* 294 */ SyscallDesc("readlinkat", unimplementedFunc), 388 /* 295 */ SyscallDesc("fchmodat", unimplementedFunc), 389 /* 296 */ SyscallDesc("faccessat", unimplementedFunc), 390 /* 297 */ SyscallDesc("pselect6", unimplementedFunc), 391 /* 298 */ SyscallDesc("ppoll", unimplementedFunc), 392 /* 299 */ SyscallDesc("unshare", unimplementedFunc) 393}; 394 395const int SparcLinuxProcess::Num_Syscall32_Descs = 396 sizeof(SparcLinuxProcess::syscall32Descs) / sizeof(SyscallDesc); 397 398SyscallDesc SparcLinuxProcess::syscallDescs[] = { 399 /* 0 */ SyscallDesc("restart_syscall", unimplementedFunc), 400 /* 1 */ SyscallDesc("exit", exitFunc), 401 /* 2 */ SyscallDesc("fork", unimplementedFunc), 402 /* 3 */ SyscallDesc("read", readFunc), 403 /* 4 */ SyscallDesc("write", writeFunc), 404 /* 5 */ SyscallDesc("open", openFunc<SparcLinux>), 405 /* 6 */ SyscallDesc("close", closeFunc), 406 /* 7 */ SyscallDesc("wait4", unimplementedFunc), 407 /* 8 */ SyscallDesc("creat", unimplementedFunc), 408 /* 9 */ SyscallDesc("link", unimplementedFunc), 409 /* 10 */ SyscallDesc("unlink", unlinkFunc), 410 /* 11 */ SyscallDesc("execv", unimplementedFunc), 411 /* 12 */ SyscallDesc("chdir", unimplementedFunc), 412 /* 13 */ SyscallDesc("chown", chownFunc), 413 /* 14 */ SyscallDesc("mknod", unimplementedFunc), 414 /* 15 */ SyscallDesc("chmod", chmodFunc<Linux>), 415 /* 16 */ SyscallDesc("lchown", unimplementedFunc), 416 /* 17 */ SyscallDesc("brk", brkFunc), 417 /* 18 */ SyscallDesc("perfctr", unimplementedFunc), 418 /* 19 */ SyscallDesc("lseek", lseekFunc), 419 /* 20 */ SyscallDesc("getpid", getpidFunc), 420 /* 21 */ SyscallDesc("capget", unimplementedFunc), 421 /* 22 */ SyscallDesc("capset", unimplementedFunc), 422 /* 23 */ SyscallDesc("setuid", setuidFunc), 423 /* 24 */ SyscallDesc("getuid", getuidFunc), 424 /* 25 */ SyscallDesc("time", unimplementedFunc), 425 /* 26 */ SyscallDesc("ptrace", unimplementedFunc), 426 /* 27 */ SyscallDesc("alarm", unimplementedFunc), 427 /* 28 */ SyscallDesc("sigaltstack", unimplementedFunc), 428 /* 29 */ SyscallDesc("pause", unimplementedFunc), 429 /* 30 */ SyscallDesc("utime", unimplementedFunc), 430 /* 31 */ SyscallDesc("lchown32", unimplementedFunc), 431 /* 32 */ SyscallDesc("fchown32", unimplementedFunc), 432 /* 33 */ SyscallDesc("access", unimplementedFunc), 433 /* 34 */ SyscallDesc("nice", unimplementedFunc), 434 /* 35 */ SyscallDesc("chown32", unimplementedFunc), 435 /* 36 */ SyscallDesc("sync", unimplementedFunc), 436 /* 37 */ SyscallDesc("kill", unimplementedFunc), 437 /* 38 */ SyscallDesc("stat", unimplementedFunc), 438 /* 39 */ SyscallDesc("sendfile", unimplementedFunc), 439 /* 40 */ SyscallDesc("lstat", unimplementedFunc), 440 /* 41 */ SyscallDesc("dup", unimplementedFunc), 441 /* 42 */ SyscallDesc("pipe", pipePseudoFunc), 442 /* 43 */ SyscallDesc("times", ignoreFunc), 443 /* 44 */ SyscallDesc("getuid32", unimplementedFunc), 444 /* 45 */ SyscallDesc("umount2", unimplementedFunc), 445 /* 46 */ SyscallDesc("setgid", unimplementedFunc), 446 /* 47 */ SyscallDesc("getgid", getgidFunc), 447 /* 48 */ SyscallDesc("signal", unimplementedFunc), 448 /* 49 */ SyscallDesc("geteuid", geteuidFunc), 449 /* 50 */ SyscallDesc("getegid", getegidFunc), 450 /* 51 */ SyscallDesc("acct", unimplementedFunc), 451 /* 52 */ SyscallDesc("memory_ordering", unimplementedFunc), 452 /* 53 */ SyscallDesc("getgid32", unimplementedFunc), 453 /* 54 */ SyscallDesc("ioctl", unimplementedFunc), 454 /* 55 */ SyscallDesc("reboot", unimplementedFunc), 455 /* 56 */ SyscallDesc("mmap2", unimplementedFunc), 456 /* 57 */ SyscallDesc("symlink", unimplementedFunc), 457 /* 58 */ SyscallDesc("readlink", readlinkFunc), 458 /* 59 */ SyscallDesc("execve", unimplementedFunc), 459 /* 60 */ SyscallDesc("umask", unimplementedFunc), 460 /* 61 */ SyscallDesc("chroot", unimplementedFunc), 461 /* 62 */ SyscallDesc("fstat", fstatFunc<SparcLinux>), 462 /* 63 */ SyscallDesc("fstat64", unimplementedFunc), 463 /* 64 */ SyscallDesc("getpagesize", unimplementedFunc), 464 /* 65 */ SyscallDesc("msync", unimplementedFunc), 465 /* 66 */ SyscallDesc("vfork", unimplementedFunc), 466 /* 67 */ SyscallDesc("pread64", unimplementedFunc), 467 /* 68 */ SyscallDesc("pwrite64", unimplementedFunc), 468 /* 69 */ SyscallDesc("geteuid32", unimplementedFunc), 469 /* 70 */ SyscallDesc("getegid32", unimplementedFunc), 470 /* 71 */ SyscallDesc("mmap", mmapFunc<SparcLinux>), 471 /* 72 */ SyscallDesc("setreuid32", unimplementedFunc), 472 /* 73 */ SyscallDesc("munmap", munmapFunc), 473 /* 74 */ SyscallDesc("mprotect", ignoreFunc), 474 /* 75 */ SyscallDesc("madvise", unimplementedFunc), 475 /* 76 */ SyscallDesc("vhangup", unimplementedFunc), 476 /* 77 */ SyscallDesc("truncate64", unimplementedFunc), 477 /* 78 */ SyscallDesc("mincore", unimplementedFunc), 478 /* 79 */ SyscallDesc("getgroups", unimplementedFunc), 479 /* 80 */ SyscallDesc("setgroups", unimplementedFunc), 480 /* 81 */ SyscallDesc("getpgrp", unimplementedFunc), 481 /* 82 */ SyscallDesc("setgroups32", unimplementedFunc), 482 /* 83 */ SyscallDesc("setitimer", unimplementedFunc), 483 /* 84 */ SyscallDesc("ftruncate64", unimplementedFunc), 484 /* 85 */ SyscallDesc("swapon", unimplementedFunc), 485 /* 86 */ SyscallDesc("getitimer", unimplementedFunc), 486 /* 87 */ SyscallDesc("setuid32", unimplementedFunc), 487 /* 88 */ SyscallDesc("sethostname", unimplementedFunc), 488 /* 89 */ SyscallDesc("setgid32", unimplementedFunc), 489 /* 90 */ SyscallDesc("dup2", unimplementedFunc), 490 /* 91 */ SyscallDesc("setfsuid32", unimplementedFunc), 491 /* 92 */ SyscallDesc("fcntl", unimplementedFunc), 492 /* 93 */ SyscallDesc("select", unimplementedFunc), 493 /* 94 */ SyscallDesc("setfsgid32", unimplementedFunc), 494 /* 95 */ SyscallDesc("fsync", unimplementedFunc), 495 /* 96 */ SyscallDesc("setpriority", unimplementedFunc), 496 /* 97 */ SyscallDesc("socket", unimplementedFunc), 497 /* 98 */ SyscallDesc("connect", unimplementedFunc), 498 /* 99 */ SyscallDesc("accept", unimplementedFunc), 499 /* 100 */ SyscallDesc("getpriority", unimplementedFunc), 500 /* 101 */ SyscallDesc("rt_sigreturn", unimplementedFunc), 501 /* 102 */ SyscallDesc("rt_sigaction", ignoreFunc), 502 /* 103 */ SyscallDesc("rt_sigprocmask", ignoreFunc), 503 /* 104 */ SyscallDesc("rt_sigpending", unimplementedFunc), 504 /* 105 */ SyscallDesc("rt_sigtimedwait", unimplementedFunc), 505 /* 106 */ SyscallDesc("rt_sigqueueinfo", unimplementedFunc), 506 /* 107 */ SyscallDesc("rt_sigsuspend", unimplementedFunc), 507 /* 108 */ SyscallDesc("setresuid", unimplementedFunc), 508 /* 109 */ SyscallDesc("getresuid", getresuidFunc), 509 /* 110 */ SyscallDesc("setresgid", ignoreFunc), 510 /* 111 */ SyscallDesc("getresgid", unimplementedFunc), 511 /* 112 */ SyscallDesc("setregid32", unimplementedFunc), 512 /* 113 */ SyscallDesc("recvmsg", unimplementedFunc), 513 /* 114 */ SyscallDesc("sendmsg", unimplementedFunc), 514 /* 115 */ SyscallDesc("getgroups32", unimplementedFunc), 515 /* 116 */ SyscallDesc("gettimeofday", gettimeofdayFunc<SparcLinux>), 516 /* 117 */ SyscallDesc("getrusage", unimplementedFunc), 517 /* 118 */ SyscallDesc("getsockopt", unimplementedFunc), 518 /* 119 */ SyscallDesc("getcwd", unimplementedFunc), 519 /* 120 */ SyscallDesc("readv", unimplementedFunc), 520 /* 121 */ SyscallDesc("writev", unimplementedFunc), 521 /* 122 */ SyscallDesc("settimeofday", unimplementedFunc), 522 /* 123 */ SyscallDesc("fchown", unimplementedFunc), 523 /* 124 */ SyscallDesc("fchmod", unimplementedFunc), 524 /* 125 */ SyscallDesc("recvfrom", unimplementedFunc), 525 /* 126 */ SyscallDesc("setreuid", unimplementedFunc), 526 /* 127 */ SyscallDesc("setregid", unimplementedFunc), 527 /* 128 */ SyscallDesc("rename", renameFunc), 528 /* 129 */ SyscallDesc("truncate", unimplementedFunc), 529 /* 130 */ SyscallDesc("ftruncate", unimplementedFunc), 530 /* 131 */ SyscallDesc("flock", unimplementedFunc), 531 /* 132 */ SyscallDesc("lstat64", unimplementedFunc), 532 /* 133 */ SyscallDesc("sendto", unimplementedFunc), 533 /* 134 */ SyscallDesc("shutdown", unimplementedFunc), 534 /* 135 */ SyscallDesc("socketpair", unimplementedFunc), 535 /* 136 */ SyscallDesc("mkdir", mkdirFunc), 536 /* 137 */ SyscallDesc("rmdir", unimplementedFunc), 537 /* 138 */ SyscallDesc("utimes", unimplementedFunc), 538 /* 139 */ SyscallDesc("stat64", unimplementedFunc), 539 /* 140 */ SyscallDesc("sendfile64", unimplementedFunc), 540 /* 141 */ SyscallDesc("getpeername", unimplementedFunc), 541 /* 142 */ SyscallDesc("futex", unimplementedFunc), 542 /* 143 */ SyscallDesc("gettid", unimplementedFunc), 543 /* 144 */ SyscallDesc("getrlimit", unimplementedFunc), 544 /* 145 */ SyscallDesc("setrlimit", unimplementedFunc), 545 /* 146 */ SyscallDesc("pivot_root", unimplementedFunc), 546 /* 147 */ SyscallDesc("prctl", unimplementedFunc), 547 /* 148 */ SyscallDesc("pciconfig_read", unimplementedFunc), 548 /* 149 */ SyscallDesc("pciconfig_write", unimplementedFunc), 549 /* 150 */ SyscallDesc("getsockname", unimplementedFunc), 550 /* 151 */ SyscallDesc("inotify_init", unimplementedFunc), 551 /* 152 */ SyscallDesc("inotify_add_watch", unimplementedFunc), 552 /* 153 */ SyscallDesc("poll", unimplementedFunc), 553 /* 154 */ SyscallDesc("getdents64", unimplementedFunc), 554 /* 155 */ SyscallDesc("fcntl64", unimplementedFunc), 555 /* 156 */ SyscallDesc("inotify_rm_watch", unimplementedFunc), 556 /* 157 */ SyscallDesc("statfs", unimplementedFunc), 557 /* 158 */ SyscallDesc("fstatfs", unimplementedFunc), 558 /* 159 */ SyscallDesc("umount", unimplementedFunc), 559 /* 160 */ SyscallDesc("sched_set_affinity", unimplementedFunc), 560 /* 161 */ SyscallDesc("sched_get_affinity", unimplementedFunc), 561 /* 162 */ SyscallDesc("getdomainname", unimplementedFunc), 562 /* 163 */ SyscallDesc("setdomainname", unimplementedFunc), 563 /* 164 */ SyscallDesc("utrap_install", unimplementedFunc), 564 /* 165 */ SyscallDesc("quotactl", unimplementedFunc), 565 /* 166 */ SyscallDesc("set_tid_address", unimplementedFunc), 566 /* 167 */ SyscallDesc("mount", unimplementedFunc), 567 /* 168 */ SyscallDesc("ustat", unimplementedFunc), 568 /* 169 */ SyscallDesc("setxattr", unimplementedFunc), 569 /* 170 */ SyscallDesc("lsetxattr", unimplementedFunc), 570 /* 171 */ SyscallDesc("fsetxattr", unimplementedFunc), 571 /* 172 */ SyscallDesc("getxattr", unimplementedFunc), 572 /* 173 */ SyscallDesc("lgetxattr", unimplementedFunc), 573 /* 174 */ SyscallDesc("getdents", unimplementedFunc), 574 /* 175 */ SyscallDesc("setsid", unimplementedFunc), 575 /* 176 */ SyscallDesc("fchdir", unimplementedFunc), 576 /* 177 */ SyscallDesc("fgetxattr", unimplementedFunc), 577 /* 178 */ SyscallDesc("listxattr", unimplementedFunc), 578 /* 179 */ SyscallDesc("llistxattr", unimplementedFunc), 579 /* 180 */ SyscallDesc("flistxattr", unimplementedFunc), 580 /* 181 */ SyscallDesc("removexattr", unimplementedFunc), 581 /* 182 */ SyscallDesc("lremovexattr", unimplementedFunc), 582 /* 183 */ SyscallDesc("sigpending", unimplementedFunc), 583 /* 184 */ SyscallDesc("query_module", unimplementedFunc), 584 /* 185 */ SyscallDesc("setpgid", unimplementedFunc), 585 /* 186 */ SyscallDesc("fremovexattr", unimplementedFunc), 586 /* 187 */ SyscallDesc("tkill", unimplementedFunc), 587 /* 188 */ SyscallDesc("exit_group", exitGroupFunc), 588 /* 189 */ SyscallDesc("uname", unameFunc), 589 /* 190 */ SyscallDesc("init_module", unimplementedFunc), 590 /* 191 */ SyscallDesc("personality", unimplementedFunc), 591 /* 192 */ SyscallDesc("remap_file_pages", unimplementedFunc), 592 /* 193 */ SyscallDesc("epoll_create", unimplementedFunc), 593 /* 194 */ SyscallDesc("epoll_ctl", unimplementedFunc), 594 /* 195 */ SyscallDesc("epoll_wait", unimplementedFunc), 595 /* 196 */ SyscallDesc("ioprio_set", unimplementedFunc), 596 /* 197 */ SyscallDesc("getppid", getppidFunc), 597 /* 198 */ SyscallDesc("sigaction", ignoreFunc), 598 /* 199 */ SyscallDesc("sgetmask", unimplementedFunc), 599 /* 200 */ SyscallDesc("ssetmask", unimplementedFunc), 600 /* 201 */ SyscallDesc("sigsuspend", unimplementedFunc), 601 /* 202 */ SyscallDesc("oldlstat", unimplementedFunc), 602 /* 203 */ SyscallDesc("uselib", unimplementedFunc), 603 /* 204 */ SyscallDesc("readdir", unimplementedFunc), 604 /* 205 */ SyscallDesc("readahead", unimplementedFunc), 605 /* 206 */ SyscallDesc("socketcall", unimplementedFunc), 606 /* 207 */ SyscallDesc("syslog", unimplementedFunc), 607 /* 208 */ SyscallDesc("lookup_dcookie", unimplementedFunc), 608 /* 209 */ SyscallDesc("fadvise64", unimplementedFunc), 609 /* 210 */ SyscallDesc("fadvise64_64", unimplementedFunc), 610 /* 211 */ SyscallDesc("tgkill", unimplementedFunc), 611 /* 212 */ SyscallDesc("waitpid", unimplementedFunc), 612 /* 213 */ SyscallDesc("swapoff", unimplementedFunc), 613 /* 214 */ SyscallDesc("sysinfo", sysinfoFunc<SparcLinux>), 614 /* 215 */ SyscallDesc("ipc", unimplementedFunc), 615 /* 216 */ SyscallDesc("sigreturn", unimplementedFunc), 616 /* 217 */ SyscallDesc("clone", cloneFunc), 617 /* 218 */ SyscallDesc("ioprio_get", unimplementedFunc), 618 /* 219 */ SyscallDesc("adjtimex", unimplementedFunc), 619 /* 220 */ SyscallDesc("sigprocmask", unimplementedFunc), 620 /* 221 */ SyscallDesc("create_module", unimplementedFunc), 621 /* 222 */ SyscallDesc("delete_module", unimplementedFunc), 622 /* 223 */ SyscallDesc("get_kernel_syms", unimplementedFunc), 623 /* 224 */ SyscallDesc("getpgid", unimplementedFunc), 624 /* 225 */ SyscallDesc("bdflush", unimplementedFunc), 625 /* 226 */ SyscallDesc("sysfs", unimplementedFunc), 626 /* 227 */ SyscallDesc("afs_syscall", unimplementedFunc), 627 /* 228 */ SyscallDesc("setfsuid", unimplementedFunc), 628 /* 229 */ SyscallDesc("setfsgid", unimplementedFunc), 629 /* 230 */ SyscallDesc("_newselect", unimplementedFunc), 630 /* 231 */ SyscallDesc("time", ignoreFunc), 631 /* 232 */ SyscallDesc("oldstat", unimplementedFunc), 632 /* 233 */ SyscallDesc("stime", unimplementedFunc), 633 /* 234 */ SyscallDesc("statfs64", unimplementedFunc), 634 /* 235 */ SyscallDesc("fstatfs64", unimplementedFunc), 635 /* 236 */ SyscallDesc("_llseek", _llseekFunc), 636 /* 237 */ SyscallDesc("mlock", unimplementedFunc), 637 /* 238 */ SyscallDesc("munlock", unimplementedFunc), 638 /* 239 */ SyscallDesc("mlockall", unimplementedFunc), 639 /* 240 */ SyscallDesc("munlockall", unimplementedFunc), 640 /* 241 */ SyscallDesc("sched_setparam", unimplementedFunc), 641 /* 242 */ SyscallDesc("sched_getparam", unimplementedFunc), 642 /* 243 */ SyscallDesc("sched_setscheduler", unimplementedFunc), 643 /* 244 */ SyscallDesc("sched_getscheduler", unimplementedFunc), 644 /* 245 */ SyscallDesc("sched_yield", unimplementedFunc), 645 /* 246 */ SyscallDesc("sched_get_priority_max", unimplementedFunc), 646 /* 247 */ SyscallDesc("sched_get_priority_min", unimplementedFunc), 647 /* 248 */ SyscallDesc("sched_rr_get_interval", unimplementedFunc), 648 /* 249 */ SyscallDesc("nanosleep", unimplementedFunc), 649 /* 250 */ SyscallDesc("mremap", mremapFunc<SparcLinux>), 650 /* 251 */ SyscallDesc("_sysctl", unimplementedFunc), 651 /* 252 */ SyscallDesc("getsid", unimplementedFunc), 652 /* 253 */ SyscallDesc("fdatasync", unimplementedFunc), 653 /* 254 */ SyscallDesc("nfsservctl", unimplementedFunc), 654 /* 255 */ SyscallDesc("aplib", unimplementedFunc), 655 /* 256 */ SyscallDesc("clock_settime", unimplementedFunc), 656 /* 257 */ SyscallDesc("clock_gettime", unimplementedFunc), 657 /* 258 */ SyscallDesc("clock_getres", unimplementedFunc), 658 /* 259 */ SyscallDesc("clock_nanosleep", unimplementedFunc), 659 /* 260 */ SyscallDesc("sched_getaffinity", unimplementedFunc), 660 /* 261 */ SyscallDesc("sched_setaffinity", unimplementedFunc), 661 /* 262 */ SyscallDesc("timer_settime", unimplementedFunc), 662 /* 263 */ SyscallDesc("timer_gettime", unimplementedFunc), 663 /* 264 */ SyscallDesc("timer_getoverrun", unimplementedFunc), 664 /* 265 */ SyscallDesc("timer_delete", unimplementedFunc), 665 /* 266 */ SyscallDesc("timer_create", unimplementedFunc), 666 /* 267 */ SyscallDesc("vserver", unimplementedFunc), 667 /* 268 */ SyscallDesc("io_setup", unimplementedFunc), 668 /* 269 */ SyscallDesc("io_destroy", unimplementedFunc), 669 /* 270 */ SyscallDesc("io_submit", unimplementedFunc), 670 /* 271 */ SyscallDesc("io_cancel", unimplementedFunc), 671 /* 272 */ SyscallDesc("io_getevents", unimplementedFunc), 672 /* 273 */ SyscallDesc("mq_open", unimplementedFunc), 673 /* 274 */ SyscallDesc("mq_unlink", unimplementedFunc), 674 /* 275 */ SyscallDesc("mq_timedsend", unimplementedFunc), 675 /* 276 */ SyscallDesc("mq_timedreceive", unimplementedFunc), 676 /* 277 */ SyscallDesc("mq_notify", unimplementedFunc), 677 /* 278 */ SyscallDesc("mq_getsetattr", unimplementedFunc), 678 /* 279 */ SyscallDesc("waitid", unimplementedFunc), 679 /* 280 */ SyscallDesc("sys_setaltroot", unimplementedFunc), 680 /* 281 */ SyscallDesc("add_key", unimplementedFunc), 681 /* 282 */ SyscallDesc("request_key", unimplementedFunc), 682 /* 283 */ SyscallDesc("keyctl", unimplementedFunc) 683}; 684 685const int SparcLinuxProcess::Num_Syscall_Descs = 686 sizeof(SparcLinuxProcess::syscallDescs) / sizeof(SyscallDesc); 687 688} // namespace SparcISA 689