54 uint8_t *block_update;
56 m_data =
new uint8_t[block_bytes];
63 block_update =
new uint8_t[block_bytes];
106 if (
mask.getMask(
i, 1)) {
114 bool isAtomicNoReturn)
127 for (
int i = 0;
i < size;
i++) {
128 out << std::setw(2) << std::setfill(
'0') << std::hex
129 <<
"0x" << (int)
m_data[
i] <<
" " << std::setfill(
' ');
131 out << std::dec <<
"]" << std::flush;
186 uint8_t *block_update;
194 block_update =
new uint8_t[block_bytes];
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void writeData(uint8_t *p) const
Copy data from the packet to the memory at the provided pointer.
void atomicPartial(const DataBlock &dblk, const WriteMask &mask, bool isAtomicNoReturn=true)
const uint8_t * getData(int offset, int len) const
void clearAtomicLogEntries()
uint8_t * popAtomicLogEntryFront()
void copyPartial(const DataBlock &dblk, int offset, int len)
uint8_t * getDataMod(int offset)
int numAtomicLogEntries() const
DataBlock & operator=(const DataBlock &obj)
bool equal(const DataBlock &obj) const
std::deque< uint8_t * > m_atomicLog
void print(std::ostream &out) const
void setData(const uint8_t *data, int offset, int len)
static uint32_t getBlockSizeBytes()
Addr getOffset(Addr addr)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.