gem5  v21.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Functions
memhelpers.hh File Reference
#include "base/types.hh"
#include "mem/packet.hh"
#include "mem/request.hh"
#include "sim/byteswap.hh"
#include "sim/insttracer.hh"

Go to the source code of this file.

Functions

template<class XC >
Fault initiateMemRead (XC *xc, Addr addr, std::size_t size, Request::Flags flags, const std::vector< bool > &byte_enable)
 
template<class XC , class MemT >
Fault initiateMemRead (XC *xc, Trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags)
 Initiate a read from memory in timing mode. More...
 
template<ByteOrder Order, class MemT >
void getMem (PacketPtr pkt, MemT &mem, Trace::InstRecord *traceData)
 Extract the data returned from a timing mode read. More...
 
template<class MemT >
void getMemLE (PacketPtr pkt, MemT &mem, Trace::InstRecord *traceData)
 
template<class MemT >
void getMemBE (PacketPtr pkt, MemT &mem, Trace::InstRecord *traceData)
 
template<class XC >
Fault readMemAtomic (XC *xc, Addr addr, uint8_t *mem, std::size_t size, Request::Flags flags, const std::vector< bool > &byte_enable)
 Read from memory in atomic mode. More...
 
template<ByteOrder Order, class XC , class MemT >
Fault readMemAtomic (XC *xc, Trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags)
 Read from memory in atomic mode. More...
 
template<class XC , class MemT >
Fault readMemAtomicLE (XC *xc, Trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags)
 
template<class XC , class MemT >
Fault readMemAtomicBE (XC *xc, Trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags)
 
template<class XC >
Fault writeMemTiming (XC *xc, uint8_t *mem, Addr addr, std::size_t size, Request::Flags flags, uint64_t *res, const std::vector< bool > &byte_enable)
 Write to memory in timing mode. More...
 
template<ByteOrder Order, class XC , class MemT >
Fault writeMemTiming (XC *xc, Trace::InstRecord *traceData, MemT mem, Addr addr, Request::Flags flags, uint64_t *res)
 
template<class XC , class MemT >
Fault writeMemTimingLE (XC *xc, Trace::InstRecord *traceData, MemT mem, Addr addr, Request::Flags flags, uint64_t *res)
 
template<class XC , class MemT >
Fault writeMemTimingBE (XC *xc, Trace::InstRecord *traceData, MemT mem, Addr addr, Request::Flags flags, uint64_t *res)
 
template<class XC >
Fault writeMemAtomic (XC *xc, uint8_t *mem, Addr addr, std::size_t size, Request::Flags flags, uint64_t *res, const std::vector< bool > &byte_enable)
 Write to memory in atomic mode. More...
 
template<ByteOrder Order, class XC , class MemT >
Fault writeMemAtomic (XC *xc, Trace::InstRecord *traceData, const MemT &mem, Addr addr, Request::Flags flags, uint64_t *res)
 
template<class XC , class MemT >
Fault writeMemAtomicLE (XC *xc, Trace::InstRecord *traceData, const MemT &mem, Addr addr, Request::Flags flags, uint64_t *res)
 
template<class XC , class MemT >
Fault writeMemAtomicBE (XC *xc, Trace::InstRecord *traceData, const MemT &mem, Addr addr, Request::Flags flags, uint64_t *res)
 
template<ByteOrder Order, class XC , class MemT >
Fault amoMemAtomic (XC *xc, Trace::InstRecord *traceData, MemT &mem, Addr addr, Request::Flags flags, AtomicOpFunctor *_amo_op)
 Do atomic read-modify-write (AMO) in atomic mode. More...
 
template<class XC , class MemT >
Fault amoMemAtomicLE (XC *xc, Trace::InstRecord *traceData, MemT &mem, Addr addr, Request::Flags flags, AtomicOpFunctor *_amo_op)
 
template<class XC , class MemT >
Fault amoMemAtomicBE (XC *xc, Trace::InstRecord *traceData, MemT &mem, Addr addr, Request::Flags flags, AtomicOpFunctor *_amo_op)
 
template<class XC , class MemT >
Fault initiateMemAMO (XC *xc, Trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags, AtomicOpFunctor *_amo_op)
 Do atomic read-modify-wrote (AMO) in timing mode. More...
 

Function Documentation

◆ amoMemAtomic()

template<ByteOrder Order, class XC , class MemT >
Fault amoMemAtomic ( XC *  xc,
Trace::InstRecord traceData,
MemT &  mem,
Addr  addr,
Request::Flags  flags,
AtomicOpFunctor _amo_op 
)

Do atomic read-modify-write (AMO) in atomic mode.

Definition at line 235 of file memhelpers.hh.

References X86ISA::addr, gtoh(), mem, NoFault, and Trace::InstRecord::setData().

◆ amoMemAtomicBE()

template<class XC , class MemT >
Fault amoMemAtomicBE ( XC *  xc,
Trace::InstRecord traceData,
MemT &  mem,
Addr  addr,
Request::Flags  flags,
AtomicOpFunctor _amo_op 
)

Definition at line 266 of file memhelpers.hh.

References X86ISA::addr, and mem.

◆ amoMemAtomicLE()

template<class XC , class MemT >
Fault amoMemAtomicLE ( XC *  xc,
Trace::InstRecord traceData,
MemT &  mem,
Addr  addr,
Request::Flags  flags,
AtomicOpFunctor _amo_op 
)

Definition at line 257 of file memhelpers.hh.

References X86ISA::addr, and mem.

◆ getMem()

template<ByteOrder Order, class MemT >
void getMem ( PacketPtr  pkt,
MemT &  mem,
Trace::InstRecord traceData 
)

Extract the data returned from a timing mode read.

Definition at line 75 of file memhelpers.hh.

References Packet::get(), mem, and Trace::InstRecord::setData().

◆ getMemBE()

template<class MemT >
void getMemBE ( PacketPtr  pkt,
MemT &  mem,
Trace::InstRecord traceData 
)

Definition at line 91 of file memhelpers.hh.

References mem.

◆ getMemLE()

template<class MemT >
void getMemLE ( PacketPtr  pkt,
MemT &  mem,
Trace::InstRecord traceData 
)

Definition at line 84 of file memhelpers.hh.

References mem.

◆ initiateMemAMO()

template<class XC , class MemT >
Fault initiateMemAMO ( XC *  xc,
Trace::InstRecord traceData,
Addr  addr,
MemT &  mem,
Request::Flags  flags,
AtomicOpFunctor _amo_op 
)

Do atomic read-modify-wrote (AMO) in timing mode.

Definition at line 276 of file memhelpers.hh.

References X86ISA::addr.

◆ initiateMemRead() [1/2]

template<class XC >
Fault initiateMemRead ( XC *  xc,
Addr  addr,
std::size_t  size,
Request::Flags  flags,
const std::vector< bool > &  byte_enable 
)

Definition at line 52 of file memhelpers.hh.

References X86ISA::addr.

Referenced by initiateMemRead().

◆ initiateMemRead() [2/2]

template<class XC , class MemT >
Fault initiateMemRead ( XC *  xc,
Trace::InstRecord traceData,
Addr  addr,
MemT &  mem,
Request::Flags  flags 
)

Initiate a read from memory in timing mode.

Note that the 'mem' parameter is unused; only the type of that parameter is used to determine the size of the access.

Definition at line 64 of file memhelpers.hh.

References X86ISA::addr, and initiateMemRead().

◆ readMemAtomic() [1/2]

template<class XC >
Fault readMemAtomic ( XC *  xc,
Addr  addr,
uint8_t *  mem,
std::size_t  size,
Request::Flags  flags,
const std::vector< bool > &  byte_enable 
)

Read from memory in atomic mode.

Definition at line 99 of file memhelpers.hh.

References X86ISA::addr, and mem.

Referenced by readMemAtomic().

◆ readMemAtomic() [2/2]

template<ByteOrder Order, class XC , class MemT >
Fault readMemAtomic ( XC *  xc,
Trace::InstRecord traceData,
Addr  addr,
MemT &  mem,
Request::Flags  flags 
)

Read from memory in atomic mode.

Definition at line 109 of file memhelpers.hh.

References X86ISA::addr, gtoh(), mem, NoFault, readMemAtomic(), and Trace::InstRecord::setData().

◆ readMemAtomicBE()

template<class XC , class MemT >
Fault readMemAtomicBE ( XC *  xc,
Trace::InstRecord traceData,
Addr  addr,
MemT &  mem,
Request::Flags  flags 
)

Definition at line 135 of file memhelpers.hh.

References X86ISA::addr, and mem.

◆ readMemAtomicLE()

template<class XC , class MemT >
Fault readMemAtomicLE ( XC *  xc,
Trace::InstRecord traceData,
Addr  addr,
MemT &  mem,
Request::Flags  flags 
)

Definition at line 126 of file memhelpers.hh.

References X86ISA::addr, and mem.

◆ writeMemAtomic() [1/2]

template<ByteOrder Order, class XC , class MemT >
Fault writeMemAtomic ( XC *  xc,
Trace::InstRecord traceData,
const MemT &  mem,
Addr  addr,
Request::Flags  flags,
uint64_t *  res 
)

◆ writeMemAtomic() [2/2]

template<class XC >
Fault writeMemAtomic ( XC *  xc,
uint8_t *  mem,
Addr  addr,
std::size_t  size,
Request::Flags  flags,
uint64_t *  res,
const std::vector< bool > &  byte_enable 
)

Write to memory in atomic mode.

Definition at line 186 of file memhelpers.hh.

References X86ISA::addr, and mem.

Referenced by writeMemAtomic().

◆ writeMemAtomicBE()

template<class XC , class MemT >
Fault writeMemAtomicBE ( XC *  xc,
Trace::InstRecord traceData,
const MemT &  mem,
Addr  addr,
Request::Flags  flags,
uint64_t *  res 
)

Definition at line 225 of file memhelpers.hh.

References X86ISA::addr, and mem.

◆ writeMemAtomicLE()

template<class XC , class MemT >
Fault writeMemAtomicLE ( XC *  xc,
Trace::InstRecord traceData,
const MemT &  mem,
Addr  addr,
Request::Flags  flags,
uint64_t *  res 
)

Definition at line 216 of file memhelpers.hh.

References X86ISA::addr, and mem.

◆ writeMemTiming() [1/2]

template<ByteOrder Order, class XC , class MemT >
Fault writeMemTiming ( XC *  xc,
Trace::InstRecord traceData,
MemT  mem,
Addr  addr,
Request::Flags  flags,
uint64_t *  res 
)

Definition at line 153 of file memhelpers.hh.

References X86ISA::addr, htog(), mem, Trace::InstRecord::setData(), and writeMemTiming().

◆ writeMemTiming() [2/2]

template<class XC >
Fault writeMemTiming ( XC *  xc,
uint8_t *  mem,
Addr  addr,
std::size_t  size,
Request::Flags  flags,
uint64_t *  res,
const std::vector< bool > &  byte_enable 
)

Write to memory in timing mode.

Definition at line 144 of file memhelpers.hh.

References X86ISA::addr, and mem.

Referenced by writeMemTiming().

◆ writeMemTimingBE()

template<class XC , class MemT >
Fault writeMemTimingBE ( XC *  xc,
Trace::InstRecord traceData,
MemT  mem,
Addr  addr,
Request::Flags  flags,
uint64_t *  res 
)

Definition at line 176 of file memhelpers.hh.

References X86ISA::addr, and mem.

◆ writeMemTimingLE()

template<class XC , class MemT >
Fault writeMemTimingLE ( XC *  xc,
Trace::InstRecord traceData,
MemT  mem,
Addr  addr,
Request::Flags  flags,
uint64_t *  res 
)

Definition at line 167 of file memhelpers.hh.

References X86ISA::addr, and mem.


Generated on Tue Mar 23 2021 19:41:31 for gem5 by doxygen 1.8.17