1d0
<
30,35c29,30
< /*
< * $Id$
< *
< * Description:
< *
< */
---
> #ifndef __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__
> #define __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__
37,42d31
< #ifndef ACCESSTRACEFORADDRESS_H
< #define ACCESSTRACEFORADDRESS_H
<
< #include "mem/ruby/common/Global.hh"
< #include "mem/ruby/common/Address.hh"
< #include "mem/protocol/CacheRequestType.hh"
44c33,35
< #include "mem/ruby/system/NodeID.hh"
---
> #include "mem/protocol/CacheRequestType.hh"
> #include "mem/ruby/common/Address.hh"
> #include "mem/ruby/common/Global.hh"
45a37,38
> #include "mem/ruby/system/NodeID.hh"
>
48,52c41,46
< class AccessTraceForAddress {
< public:
< // Constructors
< AccessTraceForAddress();
< explicit AccessTraceForAddress(const Address& addr);
---
> class AccessTraceForAddress
> {
> public:
> AccessTraceForAddress();
> explicit AccessTraceForAddress(const Address& addr);
> ~AccessTraceForAddress();
54,55c48,54
< // Destructor
< ~AccessTraceForAddress();
---
> void update(CacheRequestType type, AccessModeType access_mode, NodeID cpu,
> bool sharing_miss);
> int getTotal() const;
> int getSharing() const { return m_sharing; }
> int getTouchedBy() const { return m_touched_by.count(); }
> const Address& getAddress() const { return m_addr; }
> void addSample(int value);
57c56
< // Public Methods
---
> void print(ostream& out) const;
59,84c58,67
< void update(CacheRequestType type, AccessModeType access_mode, NodeID cpu, bool sharing_miss);
< int getTotal() const;
< int getSharing() const { return m_sharing; }
< int getTouchedBy() const { return m_touched_by.count(); }
< const Address& getAddress() const { return m_addr; }
< void addSample(int value);
<
< void print(ostream& out) const;
< private:
< // Private Methods
<
< // Private copy constructor and assignment operator
< // AccessTraceForAddress(const AccessTraceForAddress& obj);
< // AccessTraceForAddress& operator=(const AccessTraceForAddress& obj);
<
< // Data Members (m_ prefix)
<
< Address m_addr;
< uint64 m_loads;
< uint64 m_stores;
< uint64 m_atomics;
< uint64 m_total;
< uint64 m_user;
< uint64 m_sharing;
< Set m_touched_by;
< Histogram* m_histogram_ptr;
---
> private:
> Address m_addr;
> uint64 m_loads;
> uint64 m_stores;
> uint64 m_atomics;
> uint64 m_total;
> uint64 m_user;
> uint64 m_sharing;
> Set m_touched_by;
> Histogram* m_histogram_ptr;
87c70,75
< bool node_less_then_eq(const AccessTraceForAddress* n1, const AccessTraceForAddress* n2);
---
> inline bool
> node_less_then_eq(const AccessTraceForAddress* n1,
> const AccessTraceForAddress* n2)
> {
> return n1->getTotal() > n2->getTotal();
> }
89,96c77,78
< // Output operator declaration
< ostream& operator<<(ostream& out, const AccessTraceForAddress& obj);
<
< // ******************* Definitions *******************
<
< // Output operator definition
< extern inline
< ostream& operator<<(ostream& out, const AccessTraceForAddress& obj)
---
> inline ostream&
> operator<<(ostream& out, const AccessTraceForAddress& obj)
98,100c80,82
< obj.print(out);
< out << flush;
< return out;
---
> obj.print(out);
> out << flush;
> return out;
103c85
< #endif //ACCESSTRACEFORADDRESS_H
---
> #endif // __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__