1d0
<
30,33c29,30
< /*
< * $Id$
< *
< */
---
> #ifndef __MEM_RUBY_COMMON_SUBBLOCK_HH__
> #define __MEM_RUBY_COMMON_SUBBLOCK_HH__
35,38c32
< #ifndef SubBlock_H
< #define SubBlock_H
<
< #include "mem/ruby/common/Global.hh"
---
> #include "mem/gems_common/Vector.hh"
41c35
< #include "mem/gems_common/Vector.hh"
---
> #include "mem/ruby/common/Global.hh"
43,47c37,42
< class SubBlock {
< public:
< // Constructors
< SubBlock() { }
< SubBlock(const Address& addr, int size);
---
> class SubBlock
> {
> public:
> SubBlock() { }
> SubBlock(const Address& addr, int size);
> ~SubBlock() { }
49,50c44,45
< // Destructor
< ~SubBlock() { }
---
> const Address& getAddress() const { return m_address; }
> void setAddress(const Address& addr) { m_address = addr; }
52,54c47,50
< // Public Methods
< const Address& getAddress() const { return m_address; }
< void setAddress(const Address& addr) { m_address = addr; }
---
> int getSize() const { return m_data.size(); }
> void setSize(int size) { m_data.setSize(size); }
> uint8 getByte(int offset) const { return m_data[offset]; }
> void setByte(int offset, uint8 data) { m_data[offset] = data; }
56,59c52,54
< int getSize() const { return m_data.size(); }
< void setSize(int size) { m_data.setSize(size); }
< uint8 getByte(int offset) const { return m_data[offset]; }
< void setByte(int offset, uint8 data) { m_data[offset] = data; }
---
> // Shorthands
> uint8 readByte() const { return getByte(0); }
> void writeByte(uint8 data) { setByte(0, data); }
61,63c56,59
< // Shorthands
< uint8 readByte() const { return getByte(0); }
< void writeByte(uint8 data) { setByte(0, data); }
---
> // Merging to and from DataBlocks - We only need to worry about
> // updates when we are using DataBlocks
> void mergeTo(DataBlock& data) const { internalMergeTo(data); }
> void mergeFrom(const DataBlock& data) { internalMergeFrom(data); }
65,68c61
< // Merging to and from DataBlocks - We only need to worry about
< // updates when we are using DataBlocks
< void mergeTo(DataBlock& data) const { internalMergeTo(data); }
< void mergeFrom(const DataBlock& data) { internalMergeFrom(data); }
---
> void print(ostream& out) const;
70,71c63,65
< void print(ostream& out) const;
< private:
---
> private:
> void internalMergeTo(DataBlock& data) const;
> void internalMergeFrom(const DataBlock& data);
73,78c67,69
< void internalMergeTo(DataBlock& data) const;
< void internalMergeFrom(const DataBlock& data);
<
< // Data Members (m_ prefix)
< Address m_address;
< Vector<uint8_t> m_data;
---
> // Data Members (m_ prefix)
> Address m_address;
> Vector<uint8_t> m_data;
81,88c72,73
< // Output operator declaration
< ostream& operator<<(ostream& out, const SubBlock& obj);
<
< // ******************* Definitions *******************
<
< // Output operator definition
< extern inline
< ostream& operator<<(ostream& out, const SubBlock& obj)
---
> inline ostream&
> operator<<(ostream& out, const SubBlock& obj)
90,92c75,77
< obj.print(out);
< out << flush;
< return out;
---
> obj.print(out);
> out << flush;
> return out;
95c80
< #endif //SubBlock_H
---
> #endif // __MEM_RUBY_COMMON_SUBBLOCK_HH__