1/* 2 * Copyright (c) 2003-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 121 unchanged lines hidden (view full) --- 130 /* 9 */ SyscallDesc("link", unimplementedFunc), 131 /* 10 */ SyscallDesc("unlink", unlinkFunc), 132 /* 11 */ SyscallDesc("execve", unimplementedFunc), 133 /* 12 */ SyscallDesc("chdir", unimplementedFunc), 134 /* 13 */ SyscallDesc("time", unimplementedFunc), 135 /* 14 */ SyscallDesc("mknod", unimplementedFunc), 136 /* 15 */ SyscallDesc("chmod", chmodFunc<MipsLinux>), 137 /* 16 */ SyscallDesc("lchown", chownFunc), |
138 /* 17 */ SyscallDesc("break", obreakFunc), |
139 /* 18 */ SyscallDesc("unused#18", unimplementedFunc), 140 /* 19 */ SyscallDesc("lseek", lseekFunc), 141 /* 20 */ SyscallDesc("getpid", getpidFunc), 142 /* 21 */ SyscallDesc("mount", unimplementedFunc), 143 /* 22 */ SyscallDesc("umount", unimplementedFunc), 144 /* 23 */ SyscallDesc("setuid", setuidFunc), 145 /* 24 */ SyscallDesc("getuid", getuidFunc), 146 /* 25 */ SyscallDesc("stime", unimplementedFunc), --- 11 unchanged lines hidden (view full) --- 158 /* 37 */ SyscallDesc("kill", ignoreFunc), 159 /* 38 */ SyscallDesc("rename", unimplementedFunc), 160 /* 39 */ SyscallDesc("mkdir", unimplementedFunc), 161 /* 40 */ SyscallDesc("rmdir", unimplementedFunc), 162 /* 41 */ SyscallDesc("dup", unimplementedFunc), 163 /* 42 */ SyscallDesc("pipe", unimplementedFunc), 164 /* 43 */ SyscallDesc("times", unimplementedFunc), 165 /* 44 */ SyscallDesc("prof", unimplementedFunc), |
166 /* 45 */ SyscallDesc("brk", obreakFunc), |
167 /* 46 */ SyscallDesc("setgid", unimplementedFunc), 168 /* 47 */ SyscallDesc("getgid", getgidFunc), 169 /* 48 */ SyscallDesc("signal", ignoreFunc), 170 /* 49 */ SyscallDesc("geteuid", geteuidFunc), 171 /* 50 */ SyscallDesc("getegid", getegidFunc), 172 /* 51 */ SyscallDesc("acct", unimplementedFunc), 173 /* 52 */ SyscallDesc("umount2", unimplementedFunc), 174 /* 53 */ SyscallDesc("lock", unimplementedFunc), 175 /* 54 */ SyscallDesc("ioctl", ioctlFunc<MipsLinux>), |
176 /* 55 */ SyscallDesc("fcntl", fcntlFunc), |
177 /* 56 */ SyscallDesc("mpx", unimplementedFunc), 178 /* 57 */ SyscallDesc("setpgid", unimplementedFunc), 179 /* 58 */ SyscallDesc("ulimit", unimplementedFunc), 180 /* 59 */ SyscallDesc("unused#59", unimplementedFunc), 181 /* 60 */ SyscallDesc("umask", unimplementedFunc), 182 /* 61 */ SyscallDesc("chroot", unimplementedFunc), 183 /* 62 */ SyscallDesc("ustat", unimplementedFunc), 184 /* 63 */ SyscallDesc("dup2", unimplementedFunc), --- 20 unchanged lines hidden (view full) --- 205 /* 84 */ SyscallDesc("unused#84", unimplementedFunc), 206 /* 85 */ SyscallDesc("readlink", unimplementedFunc), 207 /* 86 */ SyscallDesc("uselib", unimplementedFunc), 208 /* 87 */ SyscallDesc("swapon", gethostnameFunc), 209 /* 88 */ SyscallDesc("reboot", unimplementedFunc), 210 /* 89 */ SyscallDesc("readdir", unimplementedFunc), 211 /* 90 */ SyscallDesc("mmap", mmapFunc<MipsLinux>), 212 /* 91 */ SyscallDesc("munmap",munmapFunc), |
213 /* 92 */ SyscallDesc("truncate", truncateFunc), 214 /* 93 */ SyscallDesc("ftruncate", ftruncateFunc), |
215 /* 94 */ SyscallDesc("fchmod", unimplementedFunc), 216 /* 95 */ SyscallDesc("fchown", unimplementedFunc), 217 /* 96 */ SyscallDesc("getpriority", unimplementedFunc), 218 /* 97 */ SyscallDesc("setpriority", unimplementedFunc), 219 /* 98 */ SyscallDesc("profil", unimplementedFunc), 220 /* 99 */ SyscallDesc("statfs", unimplementedFunc), 221 /* 100 */ SyscallDesc("fstatfs", unimplementedFunc), 222 /* 101 */ SyscallDesc("ioperm", unimplementedFunc), --- 34 unchanged lines hidden (view full) --- 257 /* 136 */ SyscallDesc("personality", unimplementedFunc), 258 /* 137 */ SyscallDesc("afs_syscall", unimplementedFunc), 259 /* 138 */ SyscallDesc("setfsuid", unimplementedFunc), 260 /* 139 */ SyscallDesc("setfsgid", unimplementedFunc), 261 /* 140 */ SyscallDesc("llseek", unimplementedFunc), 262 /* 141 */ SyscallDesc("getdents", unimplementedFunc), 263 /* 142 */ SyscallDesc("newselect", unimplementedFunc), 264 /* 143 */ SyscallDesc("flock", unimplementedFunc), |
265 /* 144 */ SyscallDesc("msync", unimplementedFunc), |
266 /* 145 */ SyscallDesc("readv", unimplementedFunc), 267 /* 146 */ SyscallDesc("writev", writevFunc<MipsLinux>), 268 /* 147 */ SyscallDesc("cacheflush", unimplementedFunc), 269 /* 148 */ SyscallDesc("cachectl", unimplementedFunc), 270 /* 149 */ SyscallDesc("sysmips", unimplementedFunc), 271 /* 150 */ SyscallDesc("unused#150", unimplementedFunc), 272 /* 151 */ SyscallDesc("getsid", unimplementedFunc), 273 /* 152 */ SyscallDesc("fdatasync", unimplementedFunc), --- 59 unchanged lines hidden (view full) --- 333 /* 212 */ SyscallDesc("ftruncate64", unimplementedFunc), 334 /* 213 */ SyscallDesc("stat64", unimplementedFunc), 335 /* 214 */ SyscallDesc("lstat64", lstat64Func<MipsLinux>), 336 /* 215 */ SyscallDesc("fstat64", fstat64Func<MipsLinux>), 337 /* 216 */ SyscallDesc("pivot_root", unimplementedFunc), 338 /* 217 */ SyscallDesc("mincore", unimplementedFunc), 339 /* 218 */ SyscallDesc("madvise", unimplementedFunc), 340 /* 219 */ SyscallDesc("getdents64", unimplementedFunc), |
341 /* 220 */ SyscallDesc("fcntl64", fcntl64Func), |
342 /* 221 */ SyscallDesc("reserved#221", unimplementedFunc), 343 /* 222 */ SyscallDesc("gettid", unimplementedFunc), 344 /* 223 */ SyscallDesc("readahead", unimplementedFunc), 345 /* 224 */ SyscallDesc("setxattr", unimplementedFunc), 346 /* 225 */ SyscallDesc("lsetxattr", unimplementedFunc), 347 /* 226 */ SyscallDesc("fsetxattr", unimplementedFunc), 348 /* 227 */ SyscallDesc("getxattr", unimplementedFunc), 349 /* 228 */ SyscallDesc("lgetxattr", unimplementedFunc), --- 59 unchanged lines hidden (view full) --- 409 int stdin_fd, 410 int stdout_fd, 411 int stderr_fd, 412 std::vector<std::string> &argv, 413 std::vector<std::string> &envp) 414 : MipsLiveProcess(name, objFile, system, stdin_fd, stdout_fd, stderr_fd, 415 argv, envp), 416 Num_Syscall_Descs(sizeof(syscallDescs) / sizeof(SyscallDesc)) |
417{ } |
418 419SyscallDesc* 420MipsLinuxProcess::getDesc(int callnum) 421{ 422 //MIPS32 syscalls are in the range of 4000 - 4999 423 int m5_sys_idx = callnum - 4000; 424 425 if (m5_sys_idx < 0 || m5_sys_idx > Num_Syscall_Descs) 426 return NULL; 427 428 return &syscallDescs[m5_sys_idx]; 429} |