diff options
Diffstat (limited to 'src/mem/ruby/filters/MultiGrainBloomFilter.hh')
-rw-r--r-- | src/mem/ruby/filters/MultiGrainBloomFilter.hh | 81 |
1 files changed, 35 insertions, 46 deletions
diff --git a/src/mem/ruby/filters/MultiGrainBloomFilter.hh b/src/mem/ruby/filters/MultiGrainBloomFilter.hh index 4e9bc70a2..4681e2806 100644 --- a/src/mem/ruby/filters/MultiGrainBloomFilter.hh +++ b/src/mem/ruby/filters/MultiGrainBloomFilter.hh @@ -1,4 +1,3 @@ - /* * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood * All rights reserved. @@ -27,61 +26,51 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* - * MultiGrainBloomFilter.hh - * - * Description: - * - * - */ - -#ifndef MULTIGRAIN_BLOOM_FILTER_H -#define MULTIGRAIN_BLOOM_FILTER_H +#ifndef __MEM_RUBY_FILTERS_MULTIGRAINBLOOMFILTER_HH__ +#define __MEM_RUBY_FILTERS_MULTIGRAINBLOOMFILTER_HH__ #include "mem/gems_common/Map.hh" -#include "mem/ruby/common/Global.hh" #include "mem/ruby/common/Address.hh" +#include "mem/ruby/common/Global.hh" #include "mem/ruby/filters/AbstractBloomFilter.hh" -class MultiGrainBloomFilter : public AbstractBloomFilter { -public: +class MultiGrainBloomFilter : public AbstractBloomFilter +{ + public: + MultiGrainBloomFilter(string str); + ~MultiGrainBloomFilter(); - ~MultiGrainBloomFilter(); - MultiGrainBloomFilter(string str); + void clear(); + void increment(const Address& addr); + void decrement(const Address& addr); + void merge(AbstractBloomFilter * other_filter); + void set(const Address& addr); + void unset(const Address& addr); - void clear(); - void increment(const Address& addr); - void decrement(const Address& addr); - void merge(AbstractBloomFilter * other_filter); - void set(const Address& addr); - void unset(const Address& addr); + bool isSet(const Address& addr); + int getCount(const Address& addr); + int getTotalCount(); + int getIndex(const Address& addr); + int readBit(const int index); + void writeBit(const int index, const int value); - bool isSet(const Address& addr); - int getCount(const Address& addr); - int getTotalCount(); - int getIndex(const Address& addr); - int readBit(const int index); - void writeBit(const int index, const int value); + void print(ostream& out) const; - void print(ostream& out) const; + private: + int get_block_index(const Address& addr); + int get_page_index(const Address & addr); -private: + // The block filter + Vector<int> m_filter; + int m_filter_size; + int m_filter_size_bits; + // The page number filter + Vector<int> m_page_filter; + int m_page_filter_size; + int m_page_filter_size_bits; - int get_block_index(const Address& addr); - int get_page_index(const Address & addr); - - // The block filter - Vector<int> m_filter; - int m_filter_size; - int m_filter_size_bits; - // The page number filter - Vector<int> m_page_filter; - int m_page_filter_size; - int m_page_filter_size_bits; - - int m_count_bits; - int m_count; + int m_count_bits; + int m_count; }; - -#endif +#endif // __MEM_RUBY_FILTERS_MULTIGRAINBLOOMFILTER_HH__ |