blob: c40dead4394d2aeabdef3a4c2b58916070e0f316 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#define CACHELINESIZE 32 /* For now XXX */
void
syncicache(from, len)
void *from;
int len;
{
int l = len;
void *p = from;
do {
asm volatile ("dcbst 0,%0" :: "r"(p));
p += CACHELINESIZE;
} while ((l -= CACHELINESIZE) > 0);
asm volatile ("sync");
do {
asm volatile ("icbi 0,%0" :: "r"(from));
from += CACHELINESIZE;
} while ((len -= CACHELINESIZE) > 0);
asm volatile ("isync");
}
|