-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathcache.cpp
35 lines (29 loc) · 857 Bytes
/
cache.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "cache.h"
#include <stdio.h>
void Cache::flushCores() {
for (std::list<DbgIF*>::iterator it = p_dbgIfList->begin(); it != p_dbgIfList->end(); it++) {
(*it)->flush();
}
}
PulpCache::PulpCache(MemIF* mem, std::list<DbgIF*>* p_dbgIfList, unsigned int addr) :
Cache(mem, p_dbgIfList) {
m_addr = addr;
this->p_dbgIfList = p_dbgIfList;
}
bool
PulpCache::flush() {
uint32_t data = 0xFFFFFFFF;
flushCores();
return m_mem->access(1, m_addr + 0x04, 4, (char*)&data);
}
GAPCache::GAPCache(MemIF* mem, std::list<DbgIF*>* p_dbgIfList, unsigned int addr, unsigned int fc_addr) :
PulpCache(mem, p_dbgIfList, addr) {
m_fc_addr = fc_addr;
p_dbgIfList = p_dbgIfList;
}
bool
GAPCache::flush() {
uint32_t data = 0xFFFFFFFF;
bool retval = PulpCache::flush();
return retval && m_mem->access(1, m_fc_addr + 0x0C, 4, (char*)&data);
}