diff options
author | Andreas Sandberg <andreas@sandberg.pp.se> | 2013-09-30 12:20:43 +0200 |
---|---|---|
committer | Andreas Sandberg <andreas@sandberg.pp.se> | 2013-09-30 12:20:43 +0200 |
commit | d9856f33a455b9c86b90f5857df866fba3aa5bfb (patch) | |
tree | 289321ea932492066e8579e101ea116cc9fd1b0c /src/arch/alpha | |
parent | 114b643dd0125518c5f0b40959057dcf316f5007 (diff) | |
download | gem5-d9856f33a455b9c86b90f5857df866fba3aa5bfb.tar.xz |
arch: Add support for m5ops using mmapped IPRs
In order to support m5ops on virtualized CPUs, we need to either
intercept hypercall instructions or provide a memory mapped m5ops
interface. Since KVM does not normally pass the results of hypercalls
to userspace, which makes that method unfeasible. This changeset
introduces support for m5ops using memory mapped mmapped IPRs. This is
implemented by adding a class of "generic" IPRs which are handled by
architecture-independent code. Such IPRs always have bit 63 set and
are handled by handleGenericIprRead() and
handleGenericIprWrite(). Platform specific impementations of
handleIprRead and handleIprWrite should use
GenericISA::isGenericIprAccess to determine if an IPR address should
be handled by the generic code instead of the architecture-specific
code. Platforms that don't need their own IPR support can reuse
GenericISA::handleIprRead() and GenericISA::handleIprWrite().
Diffstat (limited to 'src/arch/alpha')
-rw-r--r-- | src/arch/alpha/mmapped_ipr.hh | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/src/arch/alpha/mmapped_ipr.hh b/src/arch/alpha/mmapped_ipr.hh index 24f7ce335..46ed6bd49 100644 --- a/src/arch/alpha/mmapped_ipr.hh +++ b/src/arch/alpha/mmapped_ipr.hh @@ -37,27 +37,11 @@ * ISA-specific helper functions for memory mapped IPR accesses. */ -#include "base/types.hh" -#include "mem/packet.hh" - -class ThreadContext; +#include "arch/generic/mmapped_ipr.hh" namespace AlphaISA { - -inline Cycles -handleIprRead(ThreadContext *xc, Packet *pkt) -{ - panic("No handleIprRead implementation in Alpha\n"); -} - - -inline Cycles -handleIprWrite(ThreadContext *xc, Packet *pkt) -{ - panic("No handleIprWrite implementation in Alpha\n"); -} - - + using GenericISA::handleIprRead; + using GenericISA::handleIprWrite; } // namespace AlphaISA #endif // __ARCH_ALPHA_MMAPPED_IPR_HH__ |