26 #ifndef __L4SYS__INCLUDE__ARCH_ARM__CACHE_H__ 27 #define __L4SYS__INCLUDE__ARCH_ARM__CACHE_H__ 32 #include_next <l4/sys/cache.h> 38 l4_cache_op_arm_call(
unsigned long op,
43 l4_cache_op_arm_call(
unsigned long op,
47 register unsigned long _op __asm__ (
"r0") = op;
48 register unsigned long _start __asm__ (
"r1") = start;
49 register unsigned long _end __asm__ (
"r2") = end;
52 (
"@ l4_cache_op_arm_call(start) \n\t" 55 "@ l4_cache_op_arm_call(end) \n\t" 61 [sc]
"i" (L4_SYSCALL_MEM_OP),
72 L4_MEM_CACHE_OP_CLEAN_DATA = 0,
73 L4_MEM_CACHE_OP_FLUSH_DATA = 1,
74 L4_MEM_CACHE_OP_INV_DATA = 2,
75 L4_MEM_CACHE_OP_COHERENT = 3,
76 L4_MEM_CACHE_OP_DMA_COHERENT = 4,
77 L4_MEM_CACHE_OP_DMA_COHERENT_FULL = 5,
78 L4_MEM_CACHE_OP_L2_CLEAN = 6,
79 L4_MEM_CACHE_OP_L2_FLUSH = 7,
80 L4_MEM_CACHE_OP_L2_INV = 8,
87 l4_cache_op_arm_call(L4_MEM_CACHE_OP_CLEAN_DATA, start, end);
95 l4_cache_op_arm_call(L4_MEM_CACHE_OP_FLUSH_DATA, start, end);
103 l4_cache_op_arm_call(L4_MEM_CACHE_OP_INV_DATA, start, end);
111 l4_cache_op_arm_call(L4_MEM_CACHE_OP_COHERENT, start, end);
119 l4_cache_op_arm_call(L4_MEM_CACHE_OP_DMA_COHERENT, start, end);
126 l4_cache_op_arm_call(L4_MEM_CACHE_OP_DMA_COHERENT_FULL, 0, 0);
131 l4_cache_l2_clean(
unsigned long start,
134 l4_cache_op_arm_call(L4_MEM_CACHE_OP_L2_CLEAN, start, end);
139 l4_cache_l2_flush(
unsigned long start,
142 l4_cache_op_arm_call(L4_MEM_CACHE_OP_L2_FLUSH, start, end);
147 l4_cache_l2_inv(
unsigned long start,
150 l4_cache_op_arm_call(L4_MEM_CACHE_OP_L2_INV, start, end);
Syscall entry definitions.
int l4_cache_coherent(unsigned long start, unsigned long end) L4_NOTHROW
Make memory coherent between I-cache and D-cache.
int l4_cache_flush_data(unsigned long start, unsigned long end) L4_NOTHROW
Cache flush a range.
L4 compiler related defines.
int l4_cache_dma_coherent_full(void) L4_NOTHROW
Make memory coherent for use with external memory.
int l4_cache_clean_data(unsigned long start, unsigned long end) L4_NOTHROW
Cache clean a range in D-cache.
int l4_cache_dma_coherent(unsigned long start, unsigned long end) L4_NOTHROW
Make memory coherent for use with external memory.
#define L4_NOTHROW
Mark a function declaration and definition as never throwing an exception.
int l4_cache_inv_data(unsigned long start, unsigned long end) L4_NOTHROW
Cache invalidate a range.