15#ifndef __L4SYS__INCLUDE__ARCH_ARM__CACHE_H__
16#define __L4SYS__INCLUDE__ARCH_ARM__CACHE_H__
21#include_next <l4/sys/cache.h>
27l4_cache_op_arm_call(
unsigned long op,
32l4_cache_op_arm_call(
unsigned long op,
36 register unsigned long _op __asm__ (
"r0") = op;
37 register unsigned long _start __asm__ (
"r1") = start;
38 register unsigned long _end __asm__ (
"r2") = end;
41 (
"@ l4_cache_op_arm_call(start) \n\t"
43 "blx __l4_sys_syscall \n\t"
44 "@ l4_cache_op_arm_call(end) \n\t"
50 [sc]
"i" (L4_SYSCALL_MEM_OP),
55 "cc",
"memory",
"r5",
"ip",
"lr"
61 L4_MEM_CACHE_OP_CLEAN_DATA = 0,
62 L4_MEM_CACHE_OP_FLUSH_DATA = 1,
63 L4_MEM_CACHE_OP_INV_DATA = 2,
64 L4_MEM_CACHE_OP_COHERENT = 3,
65 L4_MEM_CACHE_OP_DMA_COHERENT = 4,
66 L4_MEM_CACHE_OP_DMA_COHERENT_FULL = 5,
73 l4_cache_op_arm_call(L4_MEM_CACHE_OP_CLEAN_DATA, start, end);
81 l4_cache_op_arm_call(L4_MEM_CACHE_OP_FLUSH_DATA, start, end);
89 l4_cache_op_arm_call(L4_MEM_CACHE_OP_INV_DATA, start, end);
97 l4_cache_op_arm_call(L4_MEM_CACHE_OP_COHERENT, start, end);
105 l4_cache_op_arm_call(L4_MEM_CACHE_OP_DMA_COHERENT, start, end);
112 l4_cache_op_arm_call(L4_MEM_CACHE_OP_DMA_COHERENT_FULL, 0, 0);
L4 compiler related defines.
int l4_cache_dma_coherent(unsigned long start, unsigned long end) L4_NOTHROW
Make memory coherent for use with external memory; writes back to PoC.
int l4_cache_dma_coherent_full(void) L4_NOTHROW
Make memory coherent for use with external memory; writes back to PoC.
int l4_cache_flush_data(unsigned long start, unsigned long end) L4_NOTHROW
Cache flush a range; writes back to PoC.
int l4_cache_coherent(unsigned long start, unsigned long end) L4_NOTHROW
Make memory coherent between I-cache and D-cache; writes back to PoU.
int l4_cache_clean_data(unsigned long start, unsigned long end) L4_NOTHROW
Cache clean a range in D-cache; writes back to PoC.
int l4_cache_inv_data(unsigned long start, unsigned long end) L4_NOTHROW
Cache invalidate a range; might write back to PoC.
#define L4_NOTHROW
Mark a function declaration and definition as never throwing an exception.
#define L4_INLINE
L4 Inline function attribute.
Syscall entry definitions.