process.cc revision 8229
12600SN/A/* 22600SN/A * Copyright (c) 2003-2005 The Regents of The University of Michigan 32600SN/A * All rights reserved. 42600SN/A * 52600SN/A * Redistribution and use in source and binary forms, with or without 62600SN/A * modification, are permitted provided that the following conditions are 72600SN/A * met: redistributions of source code must retain the above copyright 82600SN/A * notice, this list of conditions and the following disclaimer; 92600SN/A * redistributions in binary form must reproduce the above copyright 102600SN/A * notice, this list of conditions and the following disclaimer in the 112600SN/A * documentation and/or other materials provided with the distribution; 122600SN/A * neither the name of the copyright holders nor the names of its 132600SN/A * contributors may be used to endorse or promote products derived from 142600SN/A * this software without specific prior written permission. 152600SN/A * 162600SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 172600SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 182600SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 192600SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 202600SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 212600SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 222600SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 232600SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 242600SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 252600SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 262600SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 272665Ssaidi@eecs.umich.edu * 282665Ssaidi@eecs.umich.edu * Authors: Ali Saidi 292600SN/A */ 302600SN/A 318229Snate@binkert.org#include "arch/sparc/solaris/process.hh" 322600SN/A#include "arch/sparc/isa_traits.hh" 336329Sgblack@eecs.umich.edu#include "arch/sparc/registers.hh" 342600SN/A#include "base/trace.hh" 352680Sktlim@umich.edu#include "cpu/thread_context.hh" 362600SN/A#include "kern/solaris/solaris.hh" 372600SN/A#include "sim/process.hh" 382600SN/A#include "sim/syscall_emul.hh" 392600SN/A 402600SN/Ausing namespace std; 412600SN/Ausing namespace SparcISA; 422600SN/A 432600SN/A 442600SN/A/// Target uname() handler. 452600SN/Astatic SyscallReturn 463114Sgblack@eecs.umich.eduunameFunc(SyscallDesc *desc, int callnum, LiveProcess *process, 472680Sktlim@umich.edu ThreadContext *tc) 482600SN/A{ 496701Sgblack@eecs.umich.edu int index = 0; 506701Sgblack@eecs.umich.edu TypedBufferArg<Solaris::utsname> name(process->getSyscallArg(tc, index)); 512600SN/A 522600SN/A strcpy(name->sysname, "SunOS"); 532600SN/A strcpy(name->nodename, "m5.eecs.umich.edu"); 542600SN/A strcpy(name->release, "5.9"); //?? do we want this or something newer? 552600SN/A strcpy(name->version, "Generic_118558-21"); 562600SN/A strcpy(name->machine, "sun4u"); 572600SN/A 582680Sktlim@umich.edu name.copyOut(tc->getMemPort()); 592600SN/A 602600SN/A return 0; 612600SN/A} 622600SN/A 632600SN/A 642600SN/ASyscallDesc SparcSolarisProcess::syscallDescs[] = { 652600SN/A /* 0 */ SyscallDesc("syscall", unimplementedFunc), 662600SN/A /* 1 */ SyscallDesc("exit", exitFunc), 672600SN/A /* 2 */ SyscallDesc("fork", unimplementedFunc), 682600SN/A /* 3 */ SyscallDesc("read", readFunc), 692600SN/A /* 4 */ SyscallDesc("write", writeFunc), 702600SN/A /* 5 */ SyscallDesc("open", openFunc<SparcSolaris>), 712600SN/A /* 6 */ SyscallDesc("close", closeFunc), 722600SN/A /* 7 */ SyscallDesc("wait", unimplementedFunc), 732600SN/A /* 8 */ SyscallDesc("creat", unimplementedFunc), 742600SN/A /* 9 */ SyscallDesc("link", unimplementedFunc), 752600SN/A /* 10 */ SyscallDesc("unlink", unlinkFunc), 762600SN/A /* 11 */ SyscallDesc("exec", unimplementedFunc), 772600SN/A /* 12 */ SyscallDesc("chdir", unimplementedFunc), 782600SN/A /* 13 */ SyscallDesc("time", unimplementedFunc), 792600SN/A /* 14 */ SyscallDesc("mknod", unimplementedFunc), 802600SN/A /* 15 */ SyscallDesc("chmod", chmodFunc<Solaris>), 812600SN/A /* 16 */ SyscallDesc("chown", chownFunc), 825748SSteve.Reinhardt@amd.com /* 17 */ SyscallDesc("brk", brkFunc), 832600SN/A /* 18 */ SyscallDesc("stat", unimplementedFunc), 842600SN/A /* 19 */ SyscallDesc("lseek", lseekFunc), 852600SN/A /* 20 */ SyscallDesc("getpid", getpidFunc), 862600SN/A /* 21 */ SyscallDesc("mount", unimplementedFunc), 872600SN/A /* 22 */ SyscallDesc("umount", unimplementedFunc), 882600SN/A /* 23 */ SyscallDesc("setuid", setuidFunc), 892600SN/A /* 24 */ SyscallDesc("getuid", getuidFunc), 902600SN/A /* 25 */ SyscallDesc("stime", unimplementedFunc), 912600SN/A /* 26 */ SyscallDesc("pcsample", unimplementedFunc), 922600SN/A /* 27 */ SyscallDesc("alarm", unimplementedFunc), 932600SN/A /* 28 */ SyscallDesc("fstat", fstatFunc<SparcSolaris>), 942600SN/A /* 29 */ SyscallDesc("pause", unimplementedFunc), 952600SN/A /* 30 */ SyscallDesc("utime", unimplementedFunc), 962600SN/A /* 31 */ SyscallDesc("stty", unimplementedFunc), 972600SN/A /* 32 */ SyscallDesc("gtty", unimplementedFunc), 982600SN/A /* 33 */ SyscallDesc("access", unimplementedFunc), 992600SN/A /* 34 */ SyscallDesc("nice", unimplementedFunc), 1002600SN/A /* 35 */ SyscallDesc("statfs", unimplementedFunc), 1012600SN/A /* 36 */ SyscallDesc("sync", unimplementedFunc), 1022600SN/A /* 37 */ SyscallDesc("kill", unimplementedFunc), 1032600SN/A /* 38 */ SyscallDesc("fstatfs", unimplementedFunc), 1042600SN/A /* 39 */ SyscallDesc("pgrpsys", unimplementedFunc), 1052600SN/A /* 40 */ SyscallDesc("xenix", unimplementedFunc), 1062600SN/A /* 41 */ SyscallDesc("dup", unimplementedFunc), 1072600SN/A /* 42 */ SyscallDesc("pipe", pipePseudoFunc), 1082600SN/A /* 43 */ SyscallDesc("times", unimplementedFunc), 1092600SN/A /* 44 */ SyscallDesc("profil", unimplementedFunc), 1102600SN/A /* 45 */ SyscallDesc("plock", unimplementedFunc), 1112600SN/A /* 46 */ SyscallDesc("setgid", unimplementedFunc), 1122600SN/A /* 47 */ SyscallDesc("getgid", getgidFunc), 1132600SN/A /* 48 */ SyscallDesc("signal", unimplementedFunc), 1142600SN/A /* 49 */ SyscallDesc("msgsys", unimplementedFunc), 1152600SN/A /* 50 */ SyscallDesc("syssun", unimplementedFunc), 1162600SN/A /* 51 */ SyscallDesc("acct", unimplementedFunc), 1172600SN/A /* 52 */ SyscallDesc("shmsys", unimplementedFunc), 1182600SN/A /* 53 */ SyscallDesc("semsys", unimplementedFunc), 1192600SN/A /* 54 */ SyscallDesc("ioctl", unimplementedFunc), 1202600SN/A /* 55 */ SyscallDesc("uadmin", unimplementedFunc), 1212600SN/A /* 56 */ SyscallDesc("RESERVED", unimplementedFunc), 1222600SN/A /* 57 */ SyscallDesc("utssys", unimplementedFunc), 1232600SN/A /* 58 */ SyscallDesc("fdsync", unimplementedFunc), 1242600SN/A /* 59 */ SyscallDesc("execve", unimplementedFunc), 1255513SMichael.Adler@intel.com /* 60 */ SyscallDesc("umask", umaskFunc), 1262600SN/A /* 61 */ SyscallDesc("chroot", unimplementedFunc), 1272600SN/A /* 62 */ SyscallDesc("fcntl", unimplementedFunc), 1282600SN/A /* 63 */ SyscallDesc("ulimit", unimplementedFunc), 1292600SN/A /* 64 */ SyscallDesc("reserved_64", unimplementedFunc), 1302600SN/A /* 65 */ SyscallDesc("reserved_65", unimplementedFunc), 1312600SN/A /* 66 */ SyscallDesc("reserved_66", unimplementedFunc), 1322600SN/A /* 67 */ SyscallDesc("reserved_67", unimplementedFunc), 1332600SN/A /* 68 */ SyscallDesc("reserved_68", unimplementedFunc), 1342600SN/A /* 69 */ SyscallDesc("reserved_69", unimplementedFunc), 1352600SN/A /* 70 */ SyscallDesc("tasksys", unimplementedFunc), 1362600SN/A /* 71 */ SyscallDesc("acctctl", unimplementedFunc), 1372600SN/A /* 72 */ SyscallDesc("reserved_72", unimplementedFunc), 1382600SN/A /* 73 */ SyscallDesc("getpagesizes", unimplementedFunc), 1392600SN/A /* 74 */ SyscallDesc("rctlsys", unimplementedFunc), 1402600SN/A /* 75 */ SyscallDesc("issetugid", unimplementedFunc), 1412600SN/A /* 76 */ SyscallDesc("fsat", unimplementedFunc), 1422600SN/A /* 77 */ SyscallDesc("lwp_park", unimplementedFunc), 1432600SN/A /* 78 */ SyscallDesc("sendfilev", unimplementedFunc), 1442600SN/A /* 79 */ SyscallDesc("rmdir", unimplementedFunc), 1452600SN/A /* 80 */ SyscallDesc("mkdir", unimplementedFunc), 1462600SN/A /* 81 */ SyscallDesc("getdents", unimplementedFunc), 1472600SN/A /* 82 */ SyscallDesc("reserved_82", unimplementedFunc), 1482600SN/A /* 83 */ SyscallDesc("reserved_83", unimplementedFunc), 1492600SN/A /* 84 */ SyscallDesc("sysfs", unimplementedFunc), 1502600SN/A /* 85 */ SyscallDesc("getmsg", unimplementedFunc), 1512600SN/A /* 86 */ SyscallDesc("putmsg", unimplementedFunc), 1522600SN/A /* 87 */ SyscallDesc("poll", unimplementedFunc), 1532600SN/A /* 88 */ SyscallDesc("lstat", unimplementedFunc), 1542600SN/A /* 89 */ SyscallDesc("symlink", unimplementedFunc), 1555513SMichael.Adler@intel.com /* 90 */ SyscallDesc("readlink", readlinkFunc), 1562600SN/A /* 91 */ SyscallDesc("setgroups", unimplementedFunc), 1572600SN/A /* 92 */ SyscallDesc("getgroups", unimplementedFunc), 1582600SN/A /* 93 */ SyscallDesc("fchmod", unimplementedFunc), 1592600SN/A /* 94 */ SyscallDesc("fchown", unimplementedFunc), 1602600SN/A /* 95 */ SyscallDesc("sigprocmask", unimplementedFunc), 1612600SN/A /* 96 */ SyscallDesc("sigsuspend", unimplementedFunc), 1622600SN/A /* 97 */ SyscallDesc("sigaltstack", unimplementedFunc), 1632600SN/A /* 98 */ SyscallDesc("sigaction", unimplementedFunc), 1642600SN/A /* 99 */ SyscallDesc("sigpending", unimplementedFunc), 1652600SN/A /* 100 */ SyscallDesc("context", unimplementedFunc), 1662600SN/A /* 101 */ SyscallDesc("evsys", unimplementedFunc), 1672600SN/A /* 102 */ SyscallDesc("evtrapret", unimplementedFunc), 1682600SN/A /* 103 */ SyscallDesc("statvfs", unimplementedFunc), 1692600SN/A /* 104 */ SyscallDesc("fstatvfs", unimplementedFunc), 1702600SN/A /* 105 */ SyscallDesc("getloadavg", unimplementedFunc), 1712600SN/A /* 106 */ SyscallDesc("nfssys", unimplementedFunc), 1722600SN/A /* 107 */ SyscallDesc("waitsys", unimplementedFunc), 1732600SN/A /* 108 */ SyscallDesc("sigsendsys", unimplementedFunc), 1742600SN/A /* 109 */ SyscallDesc("hrtsys", unimplementedFunc), 1752600SN/A /* 110 */ SyscallDesc("acancel", unimplementedFunc), 1762600SN/A /* 111 */ SyscallDesc("async", unimplementedFunc), 1772600SN/A /* 112 */ SyscallDesc("priocntlsys", unimplementedFunc), 1782600SN/A /* 113 */ SyscallDesc("pathconf", unimplementedFunc), 1792600SN/A /* 114 */ SyscallDesc("mincore", unimplementedFunc), 1802600SN/A /* 115 */ SyscallDesc("mmap", mmapFunc<SparcSolaris>), 1812600SN/A /* 116 */ SyscallDesc("mprotect", unimplementedFunc), 1822600SN/A /* 117 */ SyscallDesc("munmap", munmapFunc), 1832600SN/A /* 118 */ SyscallDesc("fpathconf", unimplementedFunc), 1842600SN/A /* 119 */ SyscallDesc("vfork", unimplementedFunc), 1852600SN/A /* 120 */ SyscallDesc("fchdir", unimplementedFunc), 1862600SN/A /* 121 */ SyscallDesc("readv", unimplementedFunc), 1872600SN/A /* 122 */ SyscallDesc("writev", unimplementedFunc), 1882600SN/A /* 123 */ SyscallDesc("xstat", unimplementedFunc), 1892600SN/A /* 124 */ SyscallDesc("lxstat", unimplementedFunc), 1902600SN/A /* 125 */ SyscallDesc("fxstat", unimplementedFunc), 1912600SN/A /* 126 */ SyscallDesc("xmknod", unimplementedFunc), 1922600SN/A /* 127 */ SyscallDesc("clocal", unimplementedFunc), 1932600SN/A /* 128 */ SyscallDesc("setrlimit", unimplementedFunc), 1942600SN/A /* 129 */ SyscallDesc("getrlimit", unimplementedFunc), 1952600SN/A /* 130 */ SyscallDesc("lchown", unimplementedFunc), 1962600SN/A /* 131 */ SyscallDesc("memcntl", unimplementedFunc), 1972600SN/A /* 132 */ SyscallDesc("getpmsg", unimplementedFunc), 1982600SN/A /* 133 */ SyscallDesc("putpmsg", unimplementedFunc), 1992600SN/A /* 134 */ SyscallDesc("rename", unimplementedFunc), 2002600SN/A /* 135 */ SyscallDesc("uname", unameFunc), 2012600SN/A /* 136 */ SyscallDesc("setegid", unimplementedFunc), 2022600SN/A /* 137 */ SyscallDesc("sysconfig", unimplementedFunc), 2032600SN/A /* 138 */ SyscallDesc("adjtime", unimplementedFunc), 2042600SN/A /* 139 */ SyscallDesc("systeminfo", unimplementedFunc), 2052600SN/A /* 140 */ SyscallDesc("reserved_140", unimplementedFunc), 2062600SN/A /* 141 */ SyscallDesc("seteuid", unimplementedFunc), 2072600SN/A /* 142 */ SyscallDesc("vtrace", unimplementedFunc), 2082600SN/A /* 143 */ SyscallDesc("fork1", unimplementedFunc), 2092600SN/A /* 144 */ SyscallDesc("sigtimedwait", unimplementedFunc), 2102600SN/A /* 145 */ SyscallDesc("lwp_info", unimplementedFunc), 2112600SN/A /* 146 */ SyscallDesc("yield", unimplementedFunc), 2122600SN/A /* 147 */ SyscallDesc("lwp_sema_wait", unimplementedFunc), 2132600SN/A /* 148 */ SyscallDesc("lwp_sema_post", unimplementedFunc), 2142600SN/A /* 149 */ SyscallDesc("lwp_sema_trywait", unimplementedFunc), 2152600SN/A /* 150 */ SyscallDesc("lwp_detach", unimplementedFunc), 2162600SN/A /* 151 */ SyscallDesc("corectl", unimplementedFunc), 2172600SN/A /* 152 */ SyscallDesc("modctl", unimplementedFunc), 2182600SN/A /* 153 */ SyscallDesc("fchroot", unimplementedFunc), 2192600SN/A /* 154 */ SyscallDesc("utimes", unimplementedFunc), 2202600SN/A /* 155 */ SyscallDesc("vhangup", unimplementedFunc), 2212600SN/A /* 156 */ SyscallDesc("gettimeofday", unimplementedFunc), 2222600SN/A /* 157 */ SyscallDesc("getitimer", unimplementedFunc), 2232600SN/A /* 158 */ SyscallDesc("setitimer", unimplementedFunc), 2242600SN/A /* 159 */ SyscallDesc("lwp_create", unimplementedFunc), 2252600SN/A /* 160 */ SyscallDesc("lwp_exit", unimplementedFunc), 2262600SN/A /* 161 */ SyscallDesc("lwp_suspend", unimplementedFunc), 2272600SN/A /* 162 */ SyscallDesc("lwp_continue", unimplementedFunc), 2282600SN/A /* 163 */ SyscallDesc("lwp_kill", unimplementedFunc), 2292600SN/A /* 164 */ SyscallDesc("lwp_self", unimplementedFunc), 2302600SN/A /* 165 */ SyscallDesc("lwp_setprivate", unimplementedFunc), 2312600SN/A /* 166 */ SyscallDesc("lwp_getprivate", unimplementedFunc), 2322600SN/A /* 167 */ SyscallDesc("lwp_wait", unimplementedFunc), 2332600SN/A /* 168 */ SyscallDesc("lwp_mutex_wakeup", unimplementedFunc), 2342600SN/A /* 169 */ SyscallDesc("lwp_mutex_lock", unimplementedFunc), 2352600SN/A /* 170 */ SyscallDesc("lwp_cond_wait", unimplementedFunc), 2362600SN/A /* 171 */ SyscallDesc("lwp_cond_signal", unimplementedFunc), 2372600SN/A /* 172 */ SyscallDesc("lwp_cond_broadcast", unimplementedFunc), 2382600SN/A /* 173 */ SyscallDesc("pread", unimplementedFunc), 2392600SN/A /* 174 */ SyscallDesc("pwrite", unimplementedFunc), 2402600SN/A /* 175 */ SyscallDesc("llseek", unimplementedFunc), 2412600SN/A /* 176 */ SyscallDesc("inst_sync", unimplementedFunc), 2422600SN/A /* 177 */ SyscallDesc("srmlimitsys", unimplementedFunc), 2432600SN/A /* 178 */ SyscallDesc("kaio", unimplementedFunc), 2442600SN/A /* 179 */ SyscallDesc("cpc", unimplementedFunc), 2452600SN/A /* 180 */ SyscallDesc("lgrpsys_meminfosys", unimplementedFunc), 2462600SN/A /* 181 */ SyscallDesc("rusagesys", unimplementedFunc), 2472600SN/A /* 182 */ SyscallDesc("reserved_182", unimplementedFunc), 2482600SN/A /* 183 */ SyscallDesc("reserved_183", unimplementedFunc), 2492600SN/A /* 184 */ SyscallDesc("tsolsys", unimplementedFunc), 2502600SN/A /* 185 */ SyscallDesc("acl", unimplementedFunc), 2512600SN/A /* 186 */ SyscallDesc("auditsys", unimplementedFunc), 2522600SN/A /* 187 */ SyscallDesc("processor_bind", unimplementedFunc), 2532600SN/A /* 188 */ SyscallDesc("processor_info", unimplementedFunc), 2542600SN/A /* 189 */ SyscallDesc("p_online", unimplementedFunc), 2552600SN/A /* 190 */ SyscallDesc("sigqueue", unimplementedFunc), 2562600SN/A /* 191 */ SyscallDesc("clock_gettime", unimplementedFunc), 2572600SN/A /* 192 */ SyscallDesc("clock_settime", unimplementedFunc), 2582600SN/A /* 193 */ SyscallDesc("clock_getres", unimplementedFunc), 2592600SN/A /* 194 */ SyscallDesc("timer_create", unimplementedFunc), 2602600SN/A /* 195 */ SyscallDesc("timer_delete", unimplementedFunc), 2612600SN/A /* 196 */ SyscallDesc("timer_settime", unimplementedFunc), 2622600SN/A /* 197 */ SyscallDesc("timer_gettime", unimplementedFunc), 2632600SN/A /* 198 */ SyscallDesc("timer_getoverrun", unimplementedFunc), 2642600SN/A /* 199 */ SyscallDesc("nanosleep", unimplementedFunc), 2652600SN/A /* 200 */ SyscallDesc("facl", unimplementedFunc), 2662600SN/A /* 201 */ SyscallDesc("door", unimplementedFunc), 2672600SN/A /* 202 */ SyscallDesc("setreuid", unimplementedFunc), 2682600SN/A /* 203 */ SyscallDesc("setregid", unimplementedFunc), 2692600SN/A /* 204 */ SyscallDesc("install_utrap", unimplementedFunc), 2702600SN/A /* 205 */ SyscallDesc("signotify", unimplementedFunc), 2712600SN/A /* 206 */ SyscallDesc("schedctl", unimplementedFunc), 2722600SN/A /* 207 */ SyscallDesc("pset", unimplementedFunc), 2732600SN/A /* 208 */ SyscallDesc("sparc_utrap_install", unimplementedFunc), 2742600SN/A /* 209 */ SyscallDesc("resolvepath", unimplementedFunc), 2752600SN/A /* 210 */ SyscallDesc("signotifywait", unimplementedFunc), 2762600SN/A /* 211 */ SyscallDesc("lwp_sigredirect", unimplementedFunc), 2772600SN/A /* 212 */ SyscallDesc("lwp_alarm", unimplementedFunc), 2782600SN/A /* 213 */ SyscallDesc("getdents64", unimplementedFunc), 2792600SN/A /* 214 */ SyscallDesc("mmap64", unimplementedFunc), 2802600SN/A /* 215 */ SyscallDesc("stat64", unimplementedFunc), 2812600SN/A /* 216 */ SyscallDesc("lstat64", unimplementedFunc), 2822600SN/A /* 217 */ SyscallDesc("fstat64", unimplementedFunc), 2832600SN/A /* 218 */ SyscallDesc("statvfs64", unimplementedFunc), 2842600SN/A /* 219 */ SyscallDesc("fstatvfs64", unimplementedFunc), 2852600SN/A /* 220 */ SyscallDesc("setrlimit64", unimplementedFunc), 2862600SN/A /* 221 */ SyscallDesc("getrlimit64", unimplementedFunc), 2872600SN/A /* 222 */ SyscallDesc("pread64", unimplementedFunc), 2882600SN/A /* 223 */ SyscallDesc("pwrite64", unimplementedFunc), 2892600SN/A /* 224 */ SyscallDesc("creat64", unimplementedFunc), 2902600SN/A /* 225 */ SyscallDesc("open64", unimplementedFunc), 2912600SN/A /* 226 */ SyscallDesc("rpcsys", unimplementedFunc), 2922600SN/A /* 227 */ SyscallDesc("reserved_227", unimplementedFunc), 2932600SN/A /* 228 */ SyscallDesc("reserved_228", unimplementedFunc), 2942600SN/A /* 229 */ SyscallDesc("reserved_229", unimplementedFunc), 2952600SN/A /* 230 */ SyscallDesc("so_socket", unimplementedFunc), 2962600SN/A /* 231 */ SyscallDesc("so_socketpair", unimplementedFunc), 2972600SN/A /* 232 */ SyscallDesc("bind", unimplementedFunc), 2982600SN/A /* 233 */ SyscallDesc("listen", unimplementedFunc), 2992600SN/A /* 234 */ SyscallDesc("accept", unimplementedFunc), 3002600SN/A /* 235 */ SyscallDesc("connect", unimplementedFunc), 3012600SN/A /* 236 */ SyscallDesc("shutdown", unimplementedFunc), 3022600SN/A /* 237 */ SyscallDesc("recv", unimplementedFunc), 3032600SN/A /* 238 */ SyscallDesc("recvfrom", unimplementedFunc), 3042600SN/A /* 239 */ SyscallDesc("recvmsg", unimplementedFunc), 3052600SN/A /* 240 */ SyscallDesc("send", unimplementedFunc), 3062600SN/A /* 241 */ SyscallDesc("sendmsg", unimplementedFunc), 3072600SN/A /* 242 */ SyscallDesc("sendto", unimplementedFunc), 3082600SN/A /* 243 */ SyscallDesc("getpeername", unimplementedFunc), 3092600SN/A /* 244 */ SyscallDesc("getsockname", unimplementedFunc), 3102600SN/A /* 245 */ SyscallDesc("getsockopt", unimplementedFunc), 3112600SN/A /* 246 */ SyscallDesc("setsockopt", unimplementedFunc), 3122600SN/A /* 247 */ SyscallDesc("sockconfig", unimplementedFunc), 3132600SN/A /* 248 */ SyscallDesc("ntp_gettime", unimplementedFunc), 3142600SN/A /* 249 */ SyscallDesc("ntp_adjtime", unimplementedFunc), 3152600SN/A /* 250 */ SyscallDesc("lwp_mutex_unlock", unimplementedFunc), 3162600SN/A /* 251 */ SyscallDesc("lwp_mutex_trylock", unimplementedFunc), 3172600SN/A /* 252 */ SyscallDesc("lwp_mutex_init", unimplementedFunc), 3182600SN/A /* 253 */ SyscallDesc("cladm", unimplementedFunc), 3192600SN/A /* 254 */ SyscallDesc("lwp_sigtimedwait", unimplementedFunc), 3202600SN/A /* 255 */ SyscallDesc("umount2", unimplementedFunc) 3212600SN/A}; 3222600SN/A 3235154Sgblack@eecs.umich.eduSparcSolarisProcess::SparcSolarisProcess(LiveProcessParams * params, 3245154Sgblack@eecs.umich.edu ObjectFile *objFile) 3255154Sgblack@eecs.umich.edu : Sparc64LiveProcess(params, objFile), 3262600SN/A Num_Syscall_Descs(sizeof(syscallDescs) / sizeof(SyscallDesc)) 3272600SN/A{ 3282600SN/A // The sparc syscall table must be <= 284 entries because that is all there 3292600SN/A // is space for. 3302600SN/A assert(Num_Syscall_Descs <= 284); 3312600SN/A} 3322600SN/A 3332600SN/A 3342600SN/A 3352600SN/ASyscallDesc* 3362600SN/ASparcSolarisProcess::getDesc(int callnum) 3372600SN/A{ 3385981Sstever@gmail.com if (callnum < 0 || callnum >= Num_Syscall_Descs) 3392600SN/A return NULL; 3402600SN/A return &syscallDescs[callnum]; 3412600SN/A} 342