58 uint8_t *block_update;
135 if (
mask.getMask(
i, 1)) {
143 bool isAtomicNoReturn)
160 for (
int i = 0;
i < size;
i++) {
161 out << std::setw(2) << std::setfill(
'0') << std::hex
162 <<
"0x" << (int)
m_data[
i] <<
" " << std::setfill(
' ');
164 out << std::dec <<
"]" << std::flush;
244 uint8_t *block_update;
252 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
void realloc(int blk_size)
std::deque< uint8_t * > m_atomicLog
void print(std::ostream &out) const
void setData(const uint8_t *data, int offset, int len)
static constexpr std::enable_if_t< std::is_integral_v< T >, int > floorLog2(T x)
Addr getOffset(Addr addr, int cacheLineBits)
Copyright (c) 2024 Arm Limited All rights reserved.