From 691a4574b45530bb11ca5add9de9a2befdb17eb1 Mon Sep 17 00:00:00 2001 From: Brandon Potter Date: Wed, 1 Mar 2017 15:11:50 -0600 Subject: [PATCH] syscall-emul: Ignore unimplemented system calls This changeset sets the implementation policy for a subset of system calls to the ignoreFunc implementation (for x86 only). The ignored system calls likely will never be implemented and this allows a warning to be issued instead of the simulation exiting with a fatal. Change-Id: I8d9741ad683151e88cc71156d3602e2d0ccb0acf Reviewed-on: https://gem5-review.googlesource.com/2270 Maintainer: Jason Lowe-Power Reviewed-by: Tony Gutierrez Reviewed-by: Michael LeBeane Reviewed-by: Jason Lowe-Power --- src/arch/x86/linux/process.cc | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/arch/x86/linux/process.cc b/src/arch/x86/linux/process.cc index be572295b..4591cf966 100644 --- a/src/arch/x86/linux/process.cc +++ b/src/arch/x86/linux/process.cc @@ -244,11 +244,11 @@ static SyscallDesc syscallDescs64[] = { /* 21 */ SyscallDesc("access", ignoreFunc), /* 22 */ SyscallDesc("pipe", pipeFunc), /* 23 */ SyscallDesc("select", unimplementedFunc), - /* 24 */ SyscallDesc("sched_yield", unimplementedFunc), + /* 24 */ SyscallDesc("sched_yield", ignoreFunc), /* 25 */ SyscallDesc("mremap", mremapFunc), /* 26 */ SyscallDesc("msync", unimplementedFunc), /* 27 */ SyscallDesc("mincore", unimplementedFunc), - /* 28 */ SyscallDesc("madvise", unimplementedFunc), + /* 28 */ SyscallDesc("madvise", ignoreFunc), /* 29 */ SyscallDesc("shmget", unimplementedFunc), /* 30 */ SyscallDesc("shmat", unimplementedFunc), /* 31 */ SyscallDesc("shmctl", unimplementedFunc), @@ -337,7 +337,7 @@ static SyscallDesc syscallDescs64[] = { /* 114 */ SyscallDesc("setregid", unimplementedFunc), /* 115 */ SyscallDesc("getgroups", unimplementedFunc), /* 116 */ SyscallDesc("setgroups", unimplementedFunc), - /* 117 */ SyscallDesc("setresuid", unimplementedFunc), + /* 117 */ SyscallDesc("setresuid", ignoreFunc), /* 118 */ SyscallDesc("getresuid", unimplementedFunc), /* 119 */ SyscallDesc("setresgid", unimplementedFunc), /* 120 */ SyscallDesc("getresgid", unimplementedFunc), @@ -361,7 +361,7 @@ static SyscallDesc syscallDescs64[] = { /* 138 */ SyscallDesc("fstatfs", unimplementedFunc), /* 139 */ SyscallDesc("sysfs", unimplementedFunc), /* 140 */ SyscallDesc("getpriority", unimplementedFunc), - /* 141 */ SyscallDesc("setpriority", unimplementedFunc), + /* 141 */ SyscallDesc("setpriority", ignoreFunc), /* 142 */ SyscallDesc("sched_setparam", unimplementedFunc), /* 143 */ SyscallDesc("sched_getparam", unimplementedFunc), /* 144 */ SyscallDesc("sched_setscheduler", unimplementedFunc), @@ -424,7 +424,7 @@ static SyscallDesc syscallDescs64[] = { /* 201 */ SyscallDesc("time", timeFunc), /* 202 */ SyscallDesc("futex", futexFunc), /* 203 */ SyscallDesc("sched_setaffinity", unimplementedFunc), - /* 204 */ SyscallDesc("sched_getaffinity", unimplementedFunc), + /* 204 */ SyscallDesc("sched_getaffinity", ignoreFunc), /* 205 */ SyscallDesc("set_thread_area", unimplementedFunc), /* 206 */ SyscallDesc("io_setup", unimplementedFunc), /* 207 */ SyscallDesc("io_destroy", unimplementedFunc), @@ -459,7 +459,7 @@ static SyscallDesc syscallDescs64[] = { /* 236 */ SyscallDesc("vserver", unimplementedFunc), /* 237 */ SyscallDesc("mbind", unimplementedFunc), /* 238 */ SyscallDesc("set_mempolicy", unimplementedFunc), - /* 239 */ SyscallDesc("get_mempolicy", unimplementedFunc), + /* 239 */ SyscallDesc("get_mempolicy", ignoreFunc), /* 240 */ SyscallDesc("mq_open", unimplementedFunc), /* 241 */ SyscallDesc("mq_unlink", unimplementedFunc), /* 242 */ SyscallDesc("mq_timedsend", unimplementedFunc), @@ -493,7 +493,7 @@ static SyscallDesc syscallDescs64[] = { /* 270 */ SyscallDesc("pselect6", unimplementedFunc), /* 271 */ SyscallDesc("ppoll", unimplementedFunc), /* 272 */ SyscallDesc("unshare", unimplementedFunc), - /* 273 */ SyscallDesc("set_robust_list", unimplementedFunc), + /* 273 */ SyscallDesc("set_robust_list", ignoreFunc), /* 274 */ SyscallDesc("get_robust_list", unimplementedFunc), /* 275 */ SyscallDesc("splice", unimplementedFunc), /* 276 */ SyscallDesc("tee", unimplementedFunc), @@ -646,9 +646,9 @@ static SyscallDesc syscallDescs32[] = { /* 94 */ SyscallDesc("fchmod", unimplementedFunc), /* 95 */ SyscallDesc("fchown", unimplementedFunc), /* 96 */ SyscallDesc("getpriority", unimplementedFunc), - /* 97 */ SyscallDesc("setpriority", unimplementedFunc), + /* 97 */ SyscallDesc("setpriority", ignoreFunc), /* 98 */ SyscallDesc("profil", unimplementedFunc), - /* 99 */ SyscallDesc("statfs", unimplementedFunc), + /* 99 */ SyscallDesc("statfs", ignoreFunc), /* 100 */ SyscallDesc("fstatfs", unimplementedFunc), /* 101 */ SyscallDesc("ioperm", unimplementedFunc), /* 102 */ SyscallDesc("socketcall", unimplementedFunc), @@ -707,13 +707,13 @@ static SyscallDesc syscallDescs32[] = { /* 155 */ SyscallDesc("sched_getparam", unimplementedFunc), /* 156 */ SyscallDesc("sched_setscheduler", unimplementedFunc), /* 157 */ SyscallDesc("sched_getscheduler", unimplementedFunc), - /* 158 */ SyscallDesc("sched_yield", unimplementedFunc), + /* 158 */ SyscallDesc("sched_yield", ignoreFunc), /* 159 */ SyscallDesc("sched_get_priority_max", unimplementedFunc), /* 160 */ SyscallDesc("sched_get_priority_min", unimplementedFunc), /* 161 */ SyscallDesc("sched_rr_get_interval", unimplementedFunc), - /* 162 */ SyscallDesc("nanosleep", unimplementedFunc), + /* 162 */ SyscallDesc("nanosleep", ignoreFunc), /* 163 */ SyscallDesc("mremap", unimplementedFunc), - /* 164 */ SyscallDesc("setresuid", unimplementedFunc), + /* 164 */ SyscallDesc("setresuid", ignoreFunc), /* 165 */ SyscallDesc("getresuid", unimplementedFunc), /* 166 */ SyscallDesc("vm86", unimplementedFunc), /* 167 */ SyscallDesc("query_module", unimplementedFunc), @@ -768,7 +768,7 @@ static SyscallDesc syscallDescs32[] = { /* 216 */ SyscallDesc("setfsgid32", unimplementedFunc), /* 217 */ SyscallDesc("pivot_root", unimplementedFunc), /* 218 */ SyscallDesc("mincore", unimplementedFunc), - /* 219 */ SyscallDesc("madvise", unimplementedFunc), + /* 219 */ SyscallDesc("madvise", ignoreFunc), /* 220 */ SyscallDesc("madvise1", unimplementedFunc), /* 221 */ SyscallDesc("getdents64", unimplementedFunc), /* 222 */ SyscallDesc("fcntl64", unimplementedFunc), @@ -791,7 +791,7 @@ static SyscallDesc syscallDescs32[] = { /* 239 */ SyscallDesc("sendfile64", unimplementedFunc), /* 240 */ SyscallDesc("futex", unimplementedFunc), /* 241 */ SyscallDesc("sched_setaffinity", unimplementedFunc), - /* 242 */ SyscallDesc("sched_getaffinity", unimplementedFunc), + /* 242 */ SyscallDesc("sched_getaffinity", ignoreFunc), /* 243 */ SyscallDesc("set_thread_area", setThreadArea32Func), /* 244 */ SyscallDesc("get_thread_area", unimplementedFunc), /* 245 */ SyscallDesc("io_setup", unimplementedFunc), @@ -824,7 +824,7 @@ static SyscallDesc syscallDescs32[] = { /* 272 */ SyscallDesc("fadvise64_64", unimplementedFunc), /* 273 */ SyscallDesc("vserver", unimplementedFunc), /* 274 */ SyscallDesc("mbind", unimplementedFunc), - /* 275 */ SyscallDesc("get_mempolicy", unimplementedFunc), + /* 275 */ SyscallDesc("get_mempolicy", ignoreFunc), /* 276 */ SyscallDesc("set_mempolicy", unimplementedFunc), /* 277 */ SyscallDesc("mq_open", unimplementedFunc), /* 278 */ SyscallDesc("mq_unlink", unimplementedFunc), @@ -860,8 +860,8 @@ static SyscallDesc syscallDescs32[] = { /* 308 */ SyscallDesc("pselect6", unimplementedFunc), /* 309 */ SyscallDesc("ppoll", unimplementedFunc), /* 310 */ SyscallDesc("unshare", unimplementedFunc), - /* 311 */ SyscallDesc("set_robust_list", unimplementedFunc), - /* 312 */ SyscallDesc("get_robust_list", unimplementedFunc), + /* 311 */ SyscallDesc("set_robust_list", ignoreFunc), + /* 312 */ SyscallDesc("get_robust_list", ignoreFunc), /* 313 */ SyscallDesc("splice", unimplementedFunc), /* 314 */ SyscallDesc("sync_file_range", unimplementedFunc), /* 315 */ SyscallDesc("tee", unimplementedFunc), -- 2.30.2