32a33,35
> #include "mem/ruby/common/TypeDefines.hh"
> #include "params/ReplacementPolicy.hh"
> #include "sim/sim_object.hh"
34c37
< class AbstractReplacementPolicy
---
> class AbstractReplacementPolicy : public SimObject
37c40,41
< AbstractReplacementPolicy(int64 num_sets, int64 assoc);
---
> typedef ReplacementPolicyParams Params;
> AbstractReplacementPolicy(const Params * p);
48a53,54
> virtual bool useOccupancy() const { return false; }
>
55,88d60
< inline
< AbstractReplacementPolicy::AbstractReplacementPolicy(int64 num_sets,
< int64 assoc)
< {
< m_num_sets = num_sets;
< m_assoc = assoc;
< m_last_ref_ptr = new Tick*[m_num_sets];
< for(unsigned i = 0; i < m_num_sets; i++){
< m_last_ref_ptr[i] = new Tick[m_assoc];
< for(unsigned j = 0; j < m_assoc; j++){
< m_last_ref_ptr[i][j] = 0;
< }
< }
< }
<
< inline
< AbstractReplacementPolicy::~AbstractReplacementPolicy()
< {
< if (m_last_ref_ptr != NULL){
< for (unsigned i = 0; i < m_num_sets; i++){
< if (m_last_ref_ptr[i] != NULL){
< delete[] m_last_ref_ptr[i];
< }
< }
< delete[] m_last_ref_ptr;
< }
< }
<
< inline Tick
< AbstractReplacementPolicy::getLastAccess(int64 set, int64 way)
< {
< return m_last_ref_ptr[set][way];
< }
<