mem-cache: Add a mechanism to iterate all entries of an AssociativeSet

Added functions to obtain an iterator to access all entries of
an AssociativeSet container.

Change-Id: I1ec555bd97d97e3edaced2b8f61287e922279c26
Reviewed-on: https://gem5-review.googlesource.com/c/16582
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
This commit is contained in:
Javier Bueno
2019-02-21 21:56:09 +01:00
committed by Javier Bueno Hedo
parent 0a7372633a
commit 466d30cbbd

View File

@@ -195,6 +195,48 @@ class AssociativeSet {
* @param entry pointer to the container entry to be inserted
*/
void insertEntry(Addr addr, bool is_secure, Entry* entry);
/** Iterator types */
using const_iterator = typename std::vector<Entry>::const_iterator;
using iterator = typename std::vector<Entry>::iterator;
/**
* Returns an iterator to the first entry of the dictionary
* @result iterator to the first element
*/
iterator begin()
{
return entries.begin();
}
/**
* Returns an iterator pointing to the end of the the dictionary
* (placeholder element, should not be accessed)
* @result iterator to the end element
*/
iterator end()
{
return entries.end();
}
/**
* Returns an iterator to the first entry of the dictionary
* @result iterator to the first element
*/
const_iterator begin() const
{
return entries.begin();
}
/**
* Returns an iterator pointing to the end of the the dictionary
* (placeholder element, should not be accessed)
* @result iterator to the end element
*/
const_iterator end() const
{
return entries.end();
}
};
#endif//__CACHE_PREFETCH_ASSOCIATIVE_SET_HH__