Ruby: Make DataBlock.hh independent of RubySystem
This patch changes DataBlock.hh so that it is not dependent on RubySystem. This dependence seems unecessary. All those functions that depende on RubySystem have been moved to DataBlock.cc file.
This commit is contained in:
parent
a10685ad1e
commit
80b3886475
3 changed files with 57 additions and 56 deletions
|
@ -37,7 +37,6 @@
|
||||||
#include "cpu/testers/rubytest/CheckTable.hh"
|
#include "cpu/testers/rubytest/CheckTable.hh"
|
||||||
#include "mem/mem_object.hh"
|
#include "mem/mem_object.hh"
|
||||||
#include "mem/packet.hh"
|
#include "mem/packet.hh"
|
||||||
#include "mem/ruby/common/DataBlock.hh"
|
|
||||||
#include "mem/ruby/common/Global.hh"
|
#include "mem/ruby/common/Global.hh"
|
||||||
#include "mem/ruby/common/SubBlock.hh"
|
#include "mem/ruby/common/SubBlock.hh"
|
||||||
#include "mem/ruby/system/RubyPort.hh"
|
#include "mem/ruby/system/RubyPort.hh"
|
||||||
|
|
|
@ -27,6 +27,62 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "mem/ruby/common/DataBlock.hh"
|
#include "mem/ruby/common/DataBlock.hh"
|
||||||
|
#include "mem/ruby/system/System.hh"
|
||||||
|
|
||||||
|
DataBlock::DataBlock(const DataBlock &cp)
|
||||||
|
{
|
||||||
|
m_data = new uint8[RubySystem::getBlockSizeBytes()];
|
||||||
|
memcpy(m_data, cp.m_data, RubySystem::getBlockSizeBytes());
|
||||||
|
m_alloc = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
DataBlock::alloc()
|
||||||
|
{
|
||||||
|
m_data = new uint8[RubySystem::getBlockSizeBytes()];
|
||||||
|
m_alloc = true;
|
||||||
|
clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
DataBlock::clear()
|
||||||
|
{
|
||||||
|
memset(m_data, 0, RubySystem::getBlockSizeBytes());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
DataBlock::equal(const DataBlock& obj) const
|
||||||
|
{
|
||||||
|
return !memcmp(m_data, obj.m_data, RubySystem::getBlockSizeBytes());
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
DataBlock::print(std::ostream& out) const
|
||||||
|
{
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int size = RubySystem::getBlockSizeBytes();
|
||||||
|
out << "[ ";
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
out << setw(2) << setfill('0') << hex << "0x" << (int)m_data[i] << " ";
|
||||||
|
out << setfill(' ');
|
||||||
|
}
|
||||||
|
out << dec << "]" << flush;
|
||||||
|
}
|
||||||
|
|
||||||
|
const uint8*
|
||||||
|
DataBlock::getData(int offset, int len) const
|
||||||
|
{
|
||||||
|
assert(offset + len <= RubySystem::getBlockSizeBytes());
|
||||||
|
return &m_data[offset];
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
DataBlock::setData(uint8* data, int offset, int len)
|
||||||
|
{
|
||||||
|
assert(offset + len <= RubySystem::getBlockSizeBytes());
|
||||||
|
memcpy(&m_data[offset], data, len);
|
||||||
|
}
|
||||||
|
|
||||||
DataBlock &
|
DataBlock &
|
||||||
DataBlock::operator=(const DataBlock & obj)
|
DataBlock::operator=(const DataBlock & obj)
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include "mem/ruby/common/Global.hh"
|
#include "mem/ruby/common/Global.hh"
|
||||||
#include "mem/ruby/system/System.hh"
|
|
||||||
|
|
||||||
class DataBlock
|
class DataBlock
|
||||||
{
|
{
|
||||||
|
@ -43,12 +42,7 @@ class DataBlock
|
||||||
alloc();
|
alloc();
|
||||||
}
|
}
|
||||||
|
|
||||||
DataBlock(const DataBlock &cp)
|
DataBlock(const DataBlock &cp);
|
||||||
{
|
|
||||||
m_data = new uint8[RubySystem::getBlockSizeBytes()];
|
|
||||||
memcpy(m_data, cp.m_data, RubySystem::getBlockSizeBytes());
|
|
||||||
m_alloc = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
~DataBlock()
|
~DataBlock()
|
||||||
{
|
{
|
||||||
|
@ -85,66 +79,18 @@ DataBlock::assign(uint8* data)
|
||||||
m_alloc = false;
|
m_alloc = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void
|
|
||||||
DataBlock::alloc()
|
|
||||||
{
|
|
||||||
m_data = new uint8[RubySystem::getBlockSizeBytes()];
|
|
||||||
m_alloc = true;
|
|
||||||
clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void
|
|
||||||
DataBlock::clear()
|
|
||||||
{
|
|
||||||
memset(m_data, 0, RubySystem::getBlockSizeBytes());
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool
|
|
||||||
DataBlock::equal(const DataBlock& obj) const
|
|
||||||
{
|
|
||||||
return !memcmp(m_data, obj.m_data, RubySystem::getBlockSizeBytes());
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void
|
|
||||||
DataBlock::print(std::ostream& out) const
|
|
||||||
{
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
int size = RubySystem::getBlockSizeBytes();
|
|
||||||
out << "[ ";
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
out << setw(2) << setfill('0') << hex << "0x" << (int)m_data[i] << " ";
|
|
||||||
out << setfill(' ');
|
|
||||||
}
|
|
||||||
out << dec << "]" << flush;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline uint8
|
inline uint8
|
||||||
DataBlock::getByte(int whichByte) const
|
DataBlock::getByte(int whichByte) const
|
||||||
{
|
{
|
||||||
return m_data[whichByte];
|
return m_data[whichByte];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const uint8*
|
|
||||||
DataBlock::getData(int offset, int len) const
|
|
||||||
{
|
|
||||||
assert(offset + len <= RubySystem::getBlockSizeBytes());
|
|
||||||
return &m_data[offset];
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void
|
inline void
|
||||||
DataBlock::setByte(int whichByte, uint8 data)
|
DataBlock::setByte(int whichByte, uint8 data)
|
||||||
{
|
{
|
||||||
m_data[whichByte] = data;
|
m_data[whichByte] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void
|
|
||||||
DataBlock::setData(uint8* data, int offset, int len)
|
|
||||||
{
|
|
||||||
assert(offset + len <= RubySystem::getBlockSizeBytes());
|
|
||||||
memcpy(&m_data[offset], data, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void
|
inline void
|
||||||
DataBlock::copyPartial(const DataBlock & dblk, int offset, int len)
|
DataBlock::copyPartial(const DataBlock & dblk, int offset, int len)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue