29 #ifndef __MEM_RUBY_COMMON_WRITEMASK_HH__
30 #define __MEM_RUBY_COMMON_WRITEMASK_HH__
73 assert(offset <
mSize);
80 assert(
mSize >= (offset + len));
81 for (
int i = 0;
i <
len;
i++) {
97 assert(
mSize >= (offset + len));
98 for (
int i = 0;
i <
len;
i++) {
99 tmp = tmp &
mMask.at(offset +
i);
110 if (readMask.
mMask.at(
i)) {
123 if (readMask.
mMask.at(
i)) {
165 void print(std::ostream& out)
const;
202 #endif // __MEM_RUBY_COMMON_WRITEMASK_HH__
bool cmpMask(const WriteMask &readMask) const
void performAtomic(DataBlock &blk) const
void orMask(const WriteMask &writeMask)
bool isOverlap(const WriteMask &readMask) const
void setMask(int offset, int len)
std::vector< std::pair< int, AtomicOpFunctor * > > mAtomicOp
WriteMask(int size, std::vector< bool > &mask, std::vector< std::pair< int, AtomicOpFunctor * > > atomicOp)
bool getMask(int offset, int len) const
std::vector< bool > mMask
void performAtomic(uint8_t *p) const
void print(std::ostream &out) const
WriteMask(int size, std::vector< bool > &mask)
uint8_t * getDataMod(int offset)
std::ostream & operator<<(std::ostream &out, const WriteMask &obj)