20 #include <asm/pgtable.h>
21 #include <asm/tlbflush.h>
22 #include <asm/cacheflush.h>
26 #define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \
44 mc_copy_user_page(
void *
from,
void *to)
47 "stmfd sp!, {r4, lr} @ 2\n\
49 ldmia %0!, {r2, r3, ip, lr} @ 4\n\
50 1: mcr p15, 0, %1, c7, c6, 1 @ 1 invalidate D line\n\
51 stmia %1!, {r2, r3, ip, lr} @ 4\n\
52 ldmia %0!, {r2, r3, ip, lr} @ 4+1\n\
53 stmia %1!, {r2, r3, ip, lr} @ 4\n\
54 ldmia %0!, {r2, r3, ip, lr} @ 4\n\
55 mcr p15, 0, %1, c7, c6, 1 @ 1 invalidate D line\n\
56 stmia %1!, {r2, r3, ip, lr} @ 4\n\
57 ldmia %0!, {r2, r3, ip, lr} @ 4\n\
58 subs r4, r4, #1 @ 1\n\
59 stmia %1!, {r2, r3, ip, lr} @ 4\n\
60 ldmneia %0!, {r2, r3, ip, lr} @ 4\n\
62 ldmfd sp!, {r4, pc} @ 3"
79 mc_copy_user_page((
void *)COPYPAGE_MINICACHE, kto);
98 1: mcr p15, 0, %0, c7, c6, 1 @ 1 invalidate D line\n\
99 stmia %0!, {r2, r3, ip, lr} @ 4\n\
100 stmia %0!, {r2, r3, ip, lr} @ 4\n\
101 mcr p15, 0, %0, c7, c6, 1 @ 1 invalidate D line\n\
102 stmia %0!, {r2, r3, ip, lr} @ 4\n\
103 stmia %0!, {r2, r3, ip, lr} @ 4\n\
104 subs r1, r1, #1 @ 1\n\
108 :
"r1",
"r2",
"r3",
"ip",
"lr");