process.cc (13569:47a2291177a7) | process.cc (13570:b6484720c6a9) |
---|---|
1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 208 unchanged lines hidden (view full) --- 217 return -EFAULT; 218 if (!gdt.copyOut(tc->getMemProxy())) 219 panic("Failed to copy out GDT for %s.\n", desc->name()); 220 221 return 0; 222} 223 224static SyscallDesc syscallDescs64[] = { | 1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 208 unchanged lines hidden (view full) --- 217 return -EFAULT; 218 if (!gdt.copyOut(tc->getMemProxy())) 219 panic("Failed to copy out GDT for %s.\n", desc->name()); 220 221 return 0; 222} 223 224static SyscallDesc syscallDescs64[] = { |
225 /* 0 */ SyscallDesc("read", readFunc), 226 /* 1 */ SyscallDesc("write", writeFunc), | 225 /* 0 */ SyscallDesc("read", readFunc<X86Linux64>), 226 /* 1 */ SyscallDesc("write", writeFunc<X86Linux64>), |
227 /* 2 */ SyscallDesc("open", openFunc<X86Linux64>), 228 /* 3 */ SyscallDesc("close", closeFunc), 229 /* 4 */ SyscallDesc("stat", stat64Func<X86Linux64>), 230 /* 5 */ SyscallDesc("fstat", fstat64Func<X86Linux64>), 231 /* 6 */ SyscallDesc("lstat", lstat64Func<X86Linux64>), | 227 /* 2 */ SyscallDesc("open", openFunc<X86Linux64>), 228 /* 3 */ SyscallDesc("close", closeFunc), 229 /* 4 */ SyscallDesc("stat", stat64Func<X86Linux64>), 230 /* 5 */ SyscallDesc("fstat", fstat64Func<X86Linux64>), 231 /* 6 */ SyscallDesc("lstat", lstat64Func<X86Linux64>), |
232 /* 7 */ SyscallDesc("poll", unimplementedFunc), | 232 /* 7 */ SyscallDesc("poll", pollFunc<X86Linux64>), |
233 /* 8 */ SyscallDesc("lseek", lseekFunc), 234 /* 9 */ SyscallDesc("mmap", mmapFunc<X86Linux64>), 235 /* 10 */ SyscallDesc("mprotect", ignoreFunc), 236 /* 11 */ SyscallDesc("munmap", munmapFunc), 237 /* 12 */ SyscallDesc("brk", brkFunc), 238 /* 13 */ SyscallDesc("rt_sigaction", ignoreFunc, SyscallDesc::WarnOnce), 239 /* 14 */ SyscallDesc("rt_sigprocmask", ignoreFunc, SyscallDesc::WarnOnce), 240 /* 15 */ SyscallDesc("rt_sigreturn", unimplementedFunc), 241 /* 16 */ SyscallDesc("ioctl", ioctlFunc<X86Linux64>), 242 /* 17 */ SyscallDesc("pread64", unimplementedFunc), 243 /* 18 */ SyscallDesc("pwrite64", pwrite64Func<X86Linux64>), 244 /* 19 */ SyscallDesc("readv", unimplementedFunc), 245 /* 20 */ SyscallDesc("writev", writevFunc<X86Linux64>), 246 /* 21 */ SyscallDesc("access", ignoreFunc), 247 /* 22 */ SyscallDesc("pipe", pipeFunc), | 233 /* 8 */ SyscallDesc("lseek", lseekFunc), 234 /* 9 */ SyscallDesc("mmap", mmapFunc<X86Linux64>), 235 /* 10 */ SyscallDesc("mprotect", ignoreFunc), 236 /* 11 */ SyscallDesc("munmap", munmapFunc), 237 /* 12 */ SyscallDesc("brk", brkFunc), 238 /* 13 */ SyscallDesc("rt_sigaction", ignoreFunc, SyscallDesc::WarnOnce), 239 /* 14 */ SyscallDesc("rt_sigprocmask", ignoreFunc, SyscallDesc::WarnOnce), 240 /* 15 */ SyscallDesc("rt_sigreturn", unimplementedFunc), 241 /* 16 */ SyscallDesc("ioctl", ioctlFunc<X86Linux64>), 242 /* 17 */ SyscallDesc("pread64", unimplementedFunc), 243 /* 18 */ SyscallDesc("pwrite64", pwrite64Func<X86Linux64>), 244 /* 19 */ SyscallDesc("readv", unimplementedFunc), 245 /* 20 */ SyscallDesc("writev", writevFunc<X86Linux64>), 246 /* 21 */ SyscallDesc("access", ignoreFunc), 247 /* 22 */ SyscallDesc("pipe", pipeFunc), |
248 /* 23 */ SyscallDesc("select", unimplementedFunc), | 248 /* 23 */ SyscallDesc("select", selectFunc<X86Linux64>), |
249 /* 24 */ SyscallDesc("sched_yield", ignoreFunc), 250 /* 25 */ SyscallDesc("mremap", mremapFunc<X86Linux64>), 251 /* 26 */ SyscallDesc("msync", unimplementedFunc), 252 /* 27 */ SyscallDesc("mincore", unimplementedFunc), 253 /* 28 */ SyscallDesc("madvise", ignoreFunc), 254 /* 29 */ SyscallDesc("shmget", unimplementedFunc), 255 /* 30 */ SyscallDesc("shmat", unimplementedFunc), 256 /* 31 */ SyscallDesc("shmctl", unimplementedFunc), 257 /* 32 */ SyscallDesc("dup", dupFunc), 258 /* 33 */ SyscallDesc("dup2", dup2Func), 259 /* 34 */ SyscallDesc("pause", unimplementedFunc), 260 /* 35 */ SyscallDesc("nanosleep", ignoreFunc, SyscallDesc::WarnOnce), 261 /* 36 */ SyscallDesc("getitimer", unimplementedFunc), 262 /* 37 */ SyscallDesc("alarm", unimplementedFunc), 263 /* 38 */ SyscallDesc("setitimer", unimplementedFunc), 264 /* 39 */ SyscallDesc("getpid", getpidFunc), 265 /* 40 */ SyscallDesc("sendfile", unimplementedFunc), 266 /* 41 */ SyscallDesc("socket", socketFunc<X86Linux64>), 267 /* 42 */ SyscallDesc("connect", connectFunc), | 249 /* 24 */ SyscallDesc("sched_yield", ignoreFunc), 250 /* 25 */ SyscallDesc("mremap", mremapFunc<X86Linux64>), 251 /* 26 */ SyscallDesc("msync", unimplementedFunc), 252 /* 27 */ SyscallDesc("mincore", unimplementedFunc), 253 /* 28 */ SyscallDesc("madvise", ignoreFunc), 254 /* 29 */ SyscallDesc("shmget", unimplementedFunc), 255 /* 30 */ SyscallDesc("shmat", unimplementedFunc), 256 /* 31 */ SyscallDesc("shmctl", unimplementedFunc), 257 /* 32 */ SyscallDesc("dup", dupFunc), 258 /* 33 */ SyscallDesc("dup2", dup2Func), 259 /* 34 */ SyscallDesc("pause", unimplementedFunc), 260 /* 35 */ SyscallDesc("nanosleep", ignoreFunc, SyscallDesc::WarnOnce), 261 /* 36 */ SyscallDesc("getitimer", unimplementedFunc), 262 /* 37 */ SyscallDesc("alarm", unimplementedFunc), 263 /* 38 */ SyscallDesc("setitimer", unimplementedFunc), 264 /* 39 */ SyscallDesc("getpid", getpidFunc), 265 /* 40 */ SyscallDesc("sendfile", unimplementedFunc), 266 /* 41 */ SyscallDesc("socket", socketFunc<X86Linux64>), 267 /* 42 */ SyscallDesc("connect", connectFunc), |
268 /* 43 */ SyscallDesc("accept", unimplementedFunc), | 268 /* 43 */ SyscallDesc("accept", acceptFunc<X86Linux64>), |
269 /* 44 */ SyscallDesc("sendto", sendtoFunc), 270 /* 45 */ SyscallDesc("recvfrom", recvfromFunc), 271 /* 46 */ SyscallDesc("sendmsg", sendmsgFunc), 272 /* 47 */ SyscallDesc("recvmsg", recvmsgFunc), 273 /* 48 */ SyscallDesc("shutdown", shutdownFunc), 274 /* 49 */ SyscallDesc("bind", bindFunc), 275 /* 50 */ SyscallDesc("listen", listenFunc), 276 /* 51 */ SyscallDesc("getsockname", unimplementedFunc), 277 /* 52 */ SyscallDesc("getpeername", unimplementedFunc), 278 /* 53 */ SyscallDesc("socketpair", socketpairFunc<X86Linux64>), 279 /* 54 */ SyscallDesc("setsockopt", unimplementedFunc), 280 /* 55 */ SyscallDesc("getsockopt", unimplementedFunc), 281 /* 56 */ SyscallDesc("clone", cloneFunc<X86Linux64>), 282 /* 57 */ SyscallDesc("fork", unimplementedFunc), 283 /* 58 */ SyscallDesc("vfork", unimplementedFunc), 284 /* 59 */ SyscallDesc("execve", execveFunc<X86Linux64>), 285 /* 60 */ SyscallDesc("exit", exitFunc), | 269 /* 44 */ SyscallDesc("sendto", sendtoFunc), 270 /* 45 */ SyscallDesc("recvfrom", recvfromFunc), 271 /* 46 */ SyscallDesc("sendmsg", sendmsgFunc), 272 /* 47 */ SyscallDesc("recvmsg", recvmsgFunc), 273 /* 48 */ SyscallDesc("shutdown", shutdownFunc), 274 /* 49 */ SyscallDesc("bind", bindFunc), 275 /* 50 */ SyscallDesc("listen", listenFunc), 276 /* 51 */ SyscallDesc("getsockname", unimplementedFunc), 277 /* 52 */ SyscallDesc("getpeername", unimplementedFunc), 278 /* 53 */ SyscallDesc("socketpair", socketpairFunc<X86Linux64>), 279 /* 54 */ SyscallDesc("setsockopt", unimplementedFunc), 280 /* 55 */ SyscallDesc("getsockopt", unimplementedFunc), 281 /* 56 */ SyscallDesc("clone", cloneFunc<X86Linux64>), 282 /* 57 */ SyscallDesc("fork", unimplementedFunc), 283 /* 58 */ SyscallDesc("vfork", unimplementedFunc), 284 /* 59 */ SyscallDesc("execve", execveFunc<X86Linux64>), 285 /* 60 */ SyscallDesc("exit", exitFunc), |
286 /* 61 */ SyscallDesc("wait4", unimplementedFunc), | 286 /* 61 */ SyscallDesc("wait4", wait4Func<X86Linux64>), |
287 /* 62 */ SyscallDesc("kill", unimplementedFunc), 288 /* 63 */ SyscallDesc("uname", unameFunc), 289 /* 64 */ SyscallDesc("semget", unimplementedFunc), 290 /* 65 */ SyscallDesc("semop", unimplementedFunc), 291 /* 66 */ SyscallDesc("semctl", unimplementedFunc), 292 /* 67 */ SyscallDesc("shmdt", unimplementedFunc), 293 /* 68 */ SyscallDesc("msgget", unimplementedFunc), 294 /* 69 */ SyscallDesc("msgsnd", unimplementedFunc), --- 258 unchanged lines hidden (view full) --- 553{ 554 X86_64Process::clone(old_tc, new_tc, (X86_64Process*)process, flags); 555} 556 557static SyscallDesc syscallDescs32[] = { 558 /* 0 */ SyscallDesc("restart_syscall", unimplementedFunc), 559 /* 1 */ SyscallDesc("exit", exitFunc), 560 /* 2 */ SyscallDesc("fork", unimplementedFunc), | 287 /* 62 */ SyscallDesc("kill", unimplementedFunc), 288 /* 63 */ SyscallDesc("uname", unameFunc), 289 /* 64 */ SyscallDesc("semget", unimplementedFunc), 290 /* 65 */ SyscallDesc("semop", unimplementedFunc), 291 /* 66 */ SyscallDesc("semctl", unimplementedFunc), 292 /* 67 */ SyscallDesc("shmdt", unimplementedFunc), 293 /* 68 */ SyscallDesc("msgget", unimplementedFunc), 294 /* 69 */ SyscallDesc("msgsnd", unimplementedFunc), --- 258 unchanged lines hidden (view full) --- 553{ 554 X86_64Process::clone(old_tc, new_tc, (X86_64Process*)process, flags); 555} 556 557static SyscallDesc syscallDescs32[] = { 558 /* 0 */ SyscallDesc("restart_syscall", unimplementedFunc), 559 /* 1 */ SyscallDesc("exit", exitFunc), 560 /* 2 */ SyscallDesc("fork", unimplementedFunc), |
561 /* 3 */ SyscallDesc("read", readFunc), 562 /* 4 */ SyscallDesc("write", writeFunc), | 561 /* 3 */ SyscallDesc("read", readFunc<X86Linux32>), 562 /* 4 */ SyscallDesc("write", writeFunc<X86Linux32>), |
563 /* 5 */ SyscallDesc("open", openFunc<X86Linux32>), 564 /* 6 */ SyscallDesc("close", closeFunc), 565 /* 7 */ SyscallDesc("waitpid", unimplementedFunc), 566 /* 8 */ SyscallDesc("creat", unimplementedFunc), 567 /* 9 */ SyscallDesc("link", unimplementedFunc), 568 /* 10 */ SyscallDesc("unlink", unimplementedFunc), 569 /* 11 */ SyscallDesc("execve", execveFunc<X86Linux32>), 570 /* 12 */ SyscallDesc("chdir", chdirFunc), --- 61 unchanged lines hidden (view full) --- 632 /* 74 */ SyscallDesc("sethostname", unimplementedFunc), 633 /* 75 */ SyscallDesc("setrlimit", ignoreFunc), 634 /* 76 */ SyscallDesc("getrlimit", getrlimitFunc<X86Linux32>), 635 /* 77 */ SyscallDesc("getrusage", getrusageFunc<X86Linux32>), 636 /* 78 */ SyscallDesc("gettimeofday", unimplementedFunc), 637 /* 79 */ SyscallDesc("settimeofday", unimplementedFunc), 638 /* 80 */ SyscallDesc("getgroups", unimplementedFunc), 639 /* 81 */ SyscallDesc("setgroups", unimplementedFunc), | 563 /* 5 */ SyscallDesc("open", openFunc<X86Linux32>), 564 /* 6 */ SyscallDesc("close", closeFunc), 565 /* 7 */ SyscallDesc("waitpid", unimplementedFunc), 566 /* 8 */ SyscallDesc("creat", unimplementedFunc), 567 /* 9 */ SyscallDesc("link", unimplementedFunc), 568 /* 10 */ SyscallDesc("unlink", unimplementedFunc), 569 /* 11 */ SyscallDesc("execve", execveFunc<X86Linux32>), 570 /* 12 */ SyscallDesc("chdir", chdirFunc), --- 61 unchanged lines hidden (view full) --- 632 /* 74 */ SyscallDesc("sethostname", unimplementedFunc), 633 /* 75 */ SyscallDesc("setrlimit", ignoreFunc), 634 /* 76 */ SyscallDesc("getrlimit", getrlimitFunc<X86Linux32>), 635 /* 77 */ SyscallDesc("getrusage", getrusageFunc<X86Linux32>), 636 /* 78 */ SyscallDesc("gettimeofday", unimplementedFunc), 637 /* 79 */ SyscallDesc("settimeofday", unimplementedFunc), 638 /* 80 */ SyscallDesc("getgroups", unimplementedFunc), 639 /* 81 */ SyscallDesc("setgroups", unimplementedFunc), |
640 /* 82 */ SyscallDesc("select", unimplementedFunc), | 640 /* 82 */ SyscallDesc("select", selectFunc<X86Linux32>), |
641 /* 83 */ SyscallDesc("symlink", unimplementedFunc), 642 /* 84 */ SyscallDesc("oldlstat", unimplementedFunc), 643 /* 85 */ SyscallDesc("readlink", readlinkFunc), 644 /* 86 */ SyscallDesc("uselib", unimplementedFunc), 645 /* 87 */ SyscallDesc("swapon", unimplementedFunc), 646 /* 88 */ SyscallDesc("reboot", unimplementedFunc), 647 /* 89 */ SyscallDesc("readdir", unimplementedFunc), 648 /* 90 */ SyscallDesc("mmap", unimplementedFunc), --- 15 unchanged lines hidden (view full) --- 664 /* 106 */ SyscallDesc("stat", unimplementedFunc), 665 /* 107 */ SyscallDesc("lstat", unimplementedFunc), 666 /* 108 */ SyscallDesc("fstat", unimplementedFunc), 667 /* 109 */ SyscallDesc("olduname", unimplementedFunc), 668 /* 110 */ SyscallDesc("iopl", unimplementedFunc), 669 /* 111 */ SyscallDesc("vhangup", unimplementedFunc), 670 /* 112 */ SyscallDesc("idle", unimplementedFunc), 671 /* 113 */ SyscallDesc("vm86old", unimplementedFunc), | 641 /* 83 */ SyscallDesc("symlink", unimplementedFunc), 642 /* 84 */ SyscallDesc("oldlstat", unimplementedFunc), 643 /* 85 */ SyscallDesc("readlink", readlinkFunc), 644 /* 86 */ SyscallDesc("uselib", unimplementedFunc), 645 /* 87 */ SyscallDesc("swapon", unimplementedFunc), 646 /* 88 */ SyscallDesc("reboot", unimplementedFunc), 647 /* 89 */ SyscallDesc("readdir", unimplementedFunc), 648 /* 90 */ SyscallDesc("mmap", unimplementedFunc), --- 15 unchanged lines hidden (view full) --- 664 /* 106 */ SyscallDesc("stat", unimplementedFunc), 665 /* 107 */ SyscallDesc("lstat", unimplementedFunc), 666 /* 108 */ SyscallDesc("fstat", unimplementedFunc), 667 /* 109 */ SyscallDesc("olduname", unimplementedFunc), 668 /* 110 */ SyscallDesc("iopl", unimplementedFunc), 669 /* 111 */ SyscallDesc("vhangup", unimplementedFunc), 670 /* 112 */ SyscallDesc("idle", unimplementedFunc), 671 /* 113 */ SyscallDesc("vm86old", unimplementedFunc), |
672 /* 114 */ SyscallDesc("wait4", unimplementedFunc), | 672 /* 114 */ SyscallDesc("wait4", wait4Func<X86Linux32>), |
673 /* 115 */ SyscallDesc("swapoff", unimplementedFunc), 674 /* 116 */ SyscallDesc("sysinfo", sysinfoFunc<X86Linux32>), 675 /* 117 */ SyscallDesc("ipc", unimplementedFunc), 676 /* 118 */ SyscallDesc("fsync", unimplementedFunc), 677 /* 119 */ SyscallDesc("sigreturn", unimplementedFunc), 678 /* 120 */ SyscallDesc("clone", cloneFunc<X86Linux32>), 679 /* 121 */ SyscallDesc("setdomainname", unimplementedFunc), 680 /* 122 */ SyscallDesc("uname", unameFunc), --- 41 unchanged lines hidden (view full) --- 722 /* 160 */ SyscallDesc("sched_get_priority_min", unimplementedFunc), 723 /* 161 */ SyscallDesc("sched_rr_get_interval", unimplementedFunc), 724 /* 162 */ SyscallDesc("nanosleep", ignoreFunc), 725 /* 163 */ SyscallDesc("mremap", unimplementedFunc), 726 /* 164 */ SyscallDesc("setresuid", ignoreFunc), 727 /* 165 */ SyscallDesc("getresuid", unimplementedFunc), 728 /* 166 */ SyscallDesc("vm86", unimplementedFunc), 729 /* 167 */ SyscallDesc("query_module", unimplementedFunc), | 673 /* 115 */ SyscallDesc("swapoff", unimplementedFunc), 674 /* 116 */ SyscallDesc("sysinfo", sysinfoFunc<X86Linux32>), 675 /* 117 */ SyscallDesc("ipc", unimplementedFunc), 676 /* 118 */ SyscallDesc("fsync", unimplementedFunc), 677 /* 119 */ SyscallDesc("sigreturn", unimplementedFunc), 678 /* 120 */ SyscallDesc("clone", cloneFunc<X86Linux32>), 679 /* 121 */ SyscallDesc("setdomainname", unimplementedFunc), 680 /* 122 */ SyscallDesc("uname", unameFunc), --- 41 unchanged lines hidden (view full) --- 722 /* 160 */ SyscallDesc("sched_get_priority_min", unimplementedFunc), 723 /* 161 */ SyscallDesc("sched_rr_get_interval", unimplementedFunc), 724 /* 162 */ SyscallDesc("nanosleep", ignoreFunc), 725 /* 163 */ SyscallDesc("mremap", unimplementedFunc), 726 /* 164 */ SyscallDesc("setresuid", ignoreFunc), 727 /* 165 */ SyscallDesc("getresuid", unimplementedFunc), 728 /* 166 */ SyscallDesc("vm86", unimplementedFunc), 729 /* 167 */ SyscallDesc("query_module", unimplementedFunc), |
730 /* 168 */ SyscallDesc("poll", unimplementedFunc), | 730 /* 168 */ SyscallDesc("poll", pollFunc<X86Linux32>), |
731 /* 169 */ SyscallDesc("nfsservctl", unimplementedFunc), 732 /* 170 */ SyscallDesc("setresgid", unimplementedFunc), 733 /* 171 */ SyscallDesc("getresgid", unimplementedFunc), 734 /* 172 */ SyscallDesc("prctl", unimplementedFunc), 735 /* 173 */ SyscallDesc("rt_sigreturn", unimplementedFunc), 736 /* 174 */ SyscallDesc("rt_sigaction", ignoreFunc), 737 /* 175 */ SyscallDesc("rt_sigprocmask", ignoreFunc), 738 /* 176 */ SyscallDesc("rt_sigpending", unimplementedFunc), --- 159 unchanged lines hidden --- | 731 /* 169 */ SyscallDesc("nfsservctl", unimplementedFunc), 732 /* 170 */ SyscallDesc("setresgid", unimplementedFunc), 733 /* 171 */ SyscallDesc("getresgid", unimplementedFunc), 734 /* 172 */ SyscallDesc("prctl", unimplementedFunc), 735 /* 173 */ SyscallDesc("rt_sigreturn", unimplementedFunc), 736 /* 174 */ SyscallDesc("rt_sigaction", ignoreFunc), 737 /* 175 */ SyscallDesc("rt_sigprocmask", ignoreFunc), 738 /* 176 */ SyscallDesc("rt_sigpending", unimplementedFunc), --- 159 unchanged lines hidden --- |