ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
etiss::MemoryWordManipulator< word_t > Class Template Reference

Memory word faulter class template word_t. More...

#include <MemoryManipulationSystem.h>

Inheritance diagram for etiss::MemoryWordManipulator< word_t >:
Inheritance graph
[legend]
Collaboration diagram for etiss::MemoryWordManipulator< word_t >:
Collaboration graph
[legend]

Public Member Functions

virtual etiss::int32 pop (size_t address)
 pop the last added element from the memory stack and write it to memory address
 
virtual etiss::int32 push (size_t address)
 read memory from address and push it to memory stack
 
virtual etiss::int32 rmw (size_t address, MemOp op, etiss::uint64 mod_val)
 read-modify-write memory word at address with mod_val by bit-wise operation op mod_val is type casted to word_t
 
virtual etiss::int32 rrmw (size_t dstsrc1_address, MemOp op, size_t src2_address)
 read-readmodify-write memory word at dstsrc1_address with memory word at src2_address by bit-wise operation op
 
 MemoryWordManipulator (std::function< word_t(size_t address, etiss::int32 &return_code)> const &mem_read_word, std::function< void(size_t address, word_t val, etiss::int32 &return_code)> const &mem_write_word)
 Constructor taking mem_read_word and mem_write_word functions for memory fault action.
 

Private Attributes

std::function< word_t(size_t address, etiss::int32 &return_code)> mem_read_word_
 function to read a single word from memory
 
std::function< void(size_t address, word_t val, etiss::int32 &return_code)> mem_write_word_
 function to write a single word to memory
 
std::stack< word_t > memstack_ {}
 memory stack to allow read modify write manipulations to memory
 

Additional Inherited Members

- Public Types inherited from etiss::MemoryWordManipulatorBase
typedef MM_MemOpType mem_op_t
 
typedef MM_MemManipCmd mem_manip_cmd_t
 Memory operation type code.
 

Detailed Description

template<typename word_t>
class etiss::MemoryWordManipulator< word_t >

Memory word faulter class template word_t.

Definition at line 72 of file MemoryManipulationSystem.h.

Constructor & Destructor Documentation

◆ MemoryWordManipulator()

template<typename word_t >
etiss::MemoryWordManipulator< word_t >::MemoryWordManipulator ( std::function< word_t(size_t address, etiss::int32 &return_code)> const &  mem_read_word,
std::function< void(size_t address, word_t val, etiss::int32 &return_code)> const &  mem_write_word 
)

Constructor taking mem_read_word and mem_write_word functions for memory fault action.

Definition at line 204 of file MemoryManipulationSystem.h.

Member Function Documentation

◆ pop()

template<typename word_t >
etiss::int32 etiss::MemoryWordManipulator< word_t >::pop ( size_t  address)
virtual

pop the last added element from the memory stack and write it to memory address

Returns
etiss::RETURNCODE encoded via MemoryManipulationSystem::dbus_access

Implements etiss::MemoryWordManipulatorBase.

Definition at line 159 of file MemoryManipulationSystem.h.

◆ push()

template<typename word_t >
etiss::int32 etiss::MemoryWordManipulator< word_t >::push ( size_t  address)
virtual

read memory from address and push it to memory stack

Returns
etiss::RETURNCODE encoded via MemoryManipulationSystem::dbus_access

Implements etiss::MemoryWordManipulatorBase.

Definition at line 168 of file MemoryManipulationSystem.h.

◆ rmw()

template<typename word_t >
etiss::int32 etiss::MemoryWordManipulator< word_t >::rmw ( size_t  address,
MemOp  op,
etiss::uint64  mod_val 
)
virtual

read-modify-write memory word at address with mod_val by bit-wise operation op mod_val is type casted to word_t

Returns
etiss::RETURNCODE encoded via MemoryManipulationSystem::dbus_access

Implements etiss::MemoryWordManipulatorBase.

Definition at line 176 of file MemoryManipulationSystem.h.

◆ rrmw()

template<typename word_t >
etiss::int32 etiss::MemoryWordManipulator< word_t >::rrmw ( size_t  dstsrc1_address,
MemOp  op,
size_t  src2_address 
)
virtual

read-readmodify-write memory word at dstsrc1_address with memory word at src2_address by bit-wise operation op

Returns
etiss::RETURNCODE encoded via MemoryManipulationSystem::dbus_access

Implements etiss::MemoryWordManipulatorBase.

Definition at line 188 of file MemoryManipulationSystem.h.

Member Data Documentation

◆ mem_read_word_

template<typename word_t >
std::function<word_t(size_t address, etiss::int32 &return_code)> etiss::MemoryWordManipulator< word_t >::mem_read_word_
private

function to read a single word from memory

Definition at line 75 of file MemoryManipulationSystem.h.

◆ mem_write_word_

template<typename word_t >
std::function<void(size_t address, word_t val, etiss::int32 &return_code)> etiss::MemoryWordManipulator< word_t >::mem_write_word_
private

function to write a single word to memory

Definition at line 77 of file MemoryManipulationSystem.h.

◆ memstack_

template<typename word_t >
std::stack<word_t> etiss::MemoryWordManipulator< word_t >::memstack_ {}
private

memory stack to allow read modify write manipulations to memory

Definition at line 79 of file MemoryManipulationSystem.h.


The documentation for this class was generated from the following file: