summaryrefslogtreecommitdiff
path: root/src/sim/syscall_emul.cc
diff options
context:
space:
mode:
authormike upton <michaelupton@gmail.com>2015-01-03 17:51:48 -0600
committermike upton <michaelupton@gmail.com>2015-01-03 17:51:48 -0600
commitcb911559dc04226edef89ff37636dbb17aad5604 (patch)
treef4fb606c95668d7f8cdbcc0ba9abcbcf4e035024 /src/sim/syscall_emul.cc
parent5a5416d575f68e416ebe713ad76dc468a59ac23c (diff)
downloadgem5-cb911559dc04226edef89ff37636dbb17aad5604.tar.xz
arm: Add unlinkat syscall implementation
added ARM aarch64 unlinkat syscall support, modeled on other <xxx>at syscalls. This gets all of the cpu2006 int workloads passing in SE mode on aarch64. Committed by: Nilay Vaish <nilay@cs.wisc.edu>
Diffstat (limited to 'src/sim/syscall_emul.cc')
-rw-r--r--src/sim/syscall_emul.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/sim/syscall_emul.cc b/src/sim/syscall_emul.cc
index 37d0121c5..bf7efe210 100644
--- a/src/sim/syscall_emul.cc
+++ b/src/sim/syscall_emul.cc
@@ -400,9 +400,15 @@ readlinkFunc(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc,
SyscallReturn
unlinkFunc(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc)
{
+ return unlinkHelper(desc, num, p, tc, 0);
+}
+
+SyscallReturn
+unlinkHelper(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc,
+ int index)
+{
string path;
- int index = 0;
if (!tc->getMemProxy().tryReadString(path, p->getSyscallArg(tc, index)))
return -EFAULT;