summaryrefslogtreecommitdiff
path: root/src/mem/ruby/common/DataBlock.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/common/DataBlock.hh')
-rw-r--r--src/mem/ruby/common/DataBlock.hh191
1 files changed, 91 insertions, 100 deletions
diff --git a/src/mem/ruby/common/DataBlock.hh b/src/mem/ruby/common/DataBlock.hh
index 5407033bf..edf774166 100644
--- a/src/mem/ruby/common/DataBlock.hh
+++ b/src/mem/ruby/common/DataBlock.hh
@@ -1,4 +1,3 @@
-
/*
* Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
* All rights reserved.
@@ -27,152 +26,144 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef DATABLOCK_H
-#define DATABLOCK_H
+#ifndef __MEM_RUBY_COMMON_DATABLOCK_HH__
+#define __MEM_RUBY_COMMON_DATABLOCK_HH__
#include <iomanip>
#include <iostream>
+#include "mem/gems_common/Vector.hh"
#include "mem/ruby/common/Global.hh"
#include "mem/ruby/system/System.hh"
-#include "mem/gems_common/Vector.hh"
-class DataBlock {
- public:
- // Constructors
- DataBlock() {alloc();}
- DataBlock(const DataBlock & cp) {
- m_data = new uint8[RubySystem::getBlockSizeBytes()];
- memcpy(m_data, cp.m_data, RubySystem::getBlockSizeBytes());
- m_alloc = true;
- }
+class DataBlock
+{
+ public:
+ DataBlock()
+ {
+ alloc();
+ }
- // Destructor
- ~DataBlock() {
- if(m_alloc) {
- delete [] m_data;
+ DataBlock(const DataBlock &cp)
+ {
+ m_data = new uint8[RubySystem::getBlockSizeBytes()];
+ memcpy(m_data, cp.m_data, RubySystem::getBlockSizeBytes());
+ m_alloc = true;
}
- }
-
- DataBlock& operator=(const DataBlock& obj);
-
- // Public Methods
- void assign(uint8* data);
-
- void clear();
- uint8 getByte(int whichByte) const;
- const uint8* getData(int offset, int len) const;
- void setByte(int whichByte, uint8 data);
- void setData(uint8* data, int offset, int len);
- void copyPartial(const DataBlock & dblk, int offset, int len);
- bool equal(const DataBlock& obj) const;
- void print(std::ostream& out) const;
-
-private:
- void alloc();
- // Data Members (m_ prefix)
- uint8* m_data;
- bool m_alloc;
-};
-// Output operator declaration
-std::ostream& operator<<(std::ostream& out, const DataBlock& obj);
+ ~DataBlock()
+ {
+ if (m_alloc)
+ delete [] m_data;
+ }
+
+ DataBlock& operator=(const DataBlock& obj);
+
+ void assign(uint8* data);
-bool operator==(const DataBlock& obj1, const DataBlock& obj2);
+ void clear();
+ uint8 getByte(int whichByte) const;
+ const uint8* getData(int offset, int len) const;
+ void setByte(int whichByte, uint8 data);
+ void setData(uint8* data, int offset, int len);
+ void copyPartial(const DataBlock & dblk, int offset, int len);
+ bool equal(const DataBlock& obj) const;
+ void print(std::ostream& out) const;
-// inline functions for speed
+ private:
+ void alloc();
+ uint8* m_data;
+ bool m_alloc;
+};
-inline
-void DataBlock::assign(uint8* data)
+inline void
+DataBlock::assign(uint8* data)
{
- if (m_alloc) {
- delete [] m_data;
- }
- m_data = data;
- m_alloc = false;
+ if (m_alloc) {
+ delete [] m_data;
+ }
+ m_data = data;
+ m_alloc = false;
}
-inline
-void DataBlock::alloc()
+inline void
+DataBlock::alloc()
{
- m_data = new uint8[RubySystem::getBlockSizeBytes()];
- m_alloc = true;
- clear();
+ m_data = new uint8[RubySystem::getBlockSizeBytes()];
+ m_alloc = true;
+ clear();
}
-inline
-void DataBlock::clear()
+inline void
+DataBlock::clear()
{
- memset(m_data, 0, RubySystem::getBlockSizeBytes());
+ memset(m_data, 0, RubySystem::getBlockSizeBytes());
}
-inline
-bool DataBlock::equal(const DataBlock& obj) const
+inline bool
+DataBlock::equal(const DataBlock& obj) const
{
- return !memcmp(m_data, obj.m_data, RubySystem::getBlockSizeBytes());
+ return !memcmp(m_data, obj.m_data, RubySystem::getBlockSizeBytes());
}
-inline
-void DataBlock::print(std::ostream& out) const
+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;
+ 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 DataBlock::getByte(int whichByte) const
+inline uint8
+DataBlock::getByte(int whichByte) const
{
- return m_data[whichByte];
+ return m_data[whichByte];
}
-inline
-const uint8* DataBlock::getData(int offset, int len) const
+inline const uint8*
+DataBlock::getData(int offset, int len) const
{
- assert(offset + len <= RubySystem::getBlockSizeBytes());
- return &m_data[offset];
+ assert(offset + len <= RubySystem::getBlockSizeBytes());
+ return &m_data[offset];
}
-inline
-void DataBlock::setByte(int whichByte, uint8 data)
+inline void
+DataBlock::setByte(int whichByte, uint8 data)
{
m_data[whichByte] = data;
}
-inline
-void DataBlock::setData(uint8* data, int offset, int len)
+inline void
+DataBlock::setData(uint8* data, int offset, int len)
{
- assert(offset + len <= RubySystem::getBlockSizeBytes());
- memcpy(&m_data[offset], data, len);
+ assert(offset + len <= RubySystem::getBlockSizeBytes());
+ memcpy(&m_data[offset], data, len);
}
-inline
-void DataBlock::copyPartial(const DataBlock & dblk, int offset, int len)
+inline void
+DataBlock::copyPartial(const DataBlock & dblk, int offset, int len)
{
- setData(&dblk.m_data[offset], offset, len);
+ setData(&dblk.m_data[offset], offset, len);
}
-// ******************* Definitions *******************
-
-// Output operator definition
-extern inline
-std::ostream& operator<<(std::ostream& out, const DataBlock& obj)
+inline std::ostream&
+operator<<(std::ostream& out, const DataBlock& obj)
{
- obj.print(out);
- out << std::flush;
- return out;
+ obj.print(out);
+ out << std::flush;
+ return out;
}
-extern inline
-bool operator==(const DataBlock& obj1,const DataBlock& obj2)
+inline bool
+operator==(const DataBlock& obj1,const DataBlock& obj2)
{
- return (obj1.equal(obj2));
+ return obj1.equal(obj2);
}
-#endif //DATABLOCK_H
+#endif // __MEM_RUBY_COMMON_DATABLOCK_HH__