From 352c1ad7147bfb84a9c7aea57152e41c63d22397 Mon Sep 17 00:00:00 2001 From: Sean Wilson Date: Wed, 28 Jun 2017 14:21:29 -0500 Subject: [PATCH] sim, x86: Make clone a virtual function This fixes the function call to clone in syscall_emul.hh where the x86 version should be called before the base implementation of clone. Change-Id: Iccd2f680ff6e3a5536037d688a80ab3f236bbd98 Signed-off-by: Sean Wilson Reviewed-on: https://gem5-review.googlesource.com/3902 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power --- src/arch/x86/process.hh | 6 +++--- src/sim/process.hh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/arch/x86/process.hh b/src/arch/x86/process.hh index 9cd5378eb..3eb9620c9 100644 --- a/src/arch/x86/process.hh +++ b/src/arch/x86/process.hh @@ -84,7 +84,7 @@ namespace X86ISA void setSyscallReturn(ThreadContext *tc, SyscallReturn return_value) override; void clone(ThreadContext *old_tc, ThreadContext *new_tc, - Process *process, TheISA::IntReg flags); + Process *process, TheISA::IntReg flags) override; X86Process & operator=(const X86Process &in) @@ -140,7 +140,7 @@ namespace X86ISA void setSyscallArg(ThreadContext *tc, int i, X86ISA::IntReg val) override; void clone(ThreadContext *old_tc, ThreadContext *new_tc, - Process *process, TheISA::IntReg flags); + Process *process, TheISA::IntReg flags) override; }; class I386Process : public X86Process @@ -186,7 +186,7 @@ namespace X86ISA void setSyscallArg(ThreadContext *tc, int i, X86ISA::IntReg val) override; void clone(ThreadContext *old_tc, ThreadContext *new_tc, - Process *process, TheISA::IntReg flags); + Process *process, TheISA::IntReg flags) override; }; /** diff --git a/src/sim/process.hh b/src/sim/process.hh index 5da30a4c3..e4a52e3de 100644 --- a/src/sim/process.hh +++ b/src/sim/process.hh @@ -161,8 +161,8 @@ class Process : public SimObject void replicatePage(Addr vaddr, Addr new_paddr, ThreadContext *old_tc, ThreadContext *new_tc, bool alloc_page); - void clone(ThreadContext *old_tc, ThreadContext *new_tc, Process *new_p, - TheISA::IntReg flags); + virtual void clone(ThreadContext *old_tc, ThreadContext *new_tc, + Process *new_p, TheISA::IntReg flags); // thread contexts associated with this process std::vector contextIds; -- 2.30.2