00001
00009
00010
00011
00012
00013 #ifndef __L4SYS__INCLUDE__ARCH_ARM__CACHE_H__
00014 #define __L4SYS__INCLUDE__ARCH_ARM__CACHE_H__
00015
00016 #include <l4/sys/compiler.h>
00017 #include <l4/sys/kdebug.h>
00018
00019 EXTERN_C_BEGIN
00020
00021 L4_INLINE void l4_imb(void);
00022 L4_INLINE void l4_sys_cache_clean_range(unsigned long start, unsigned long end);
00023 L4_INLINE void l4_sys_cache_clean(void);
00024 L4_INLINE void l4_sys_cache_flush_range(unsigned long start, unsigned long end);
00025 L4_INLINE void l4_sys_cache_flush(void);
00026 L4_INLINE void l4_sys_cache_inv_range(unsigned long start, unsigned long end);
00027 L4_INLINE void l4_sys_cache_inv(void);
00028
00031 L4_INLINE void
00032 l4_sys_cache_clean_range(unsigned long start, unsigned long end)
00033 { l4_kdebug_cache(1, start, end); }
00034
00035 L4_INLINE void
00036 l4_sys_cache_clean(void)
00037 { l4_sys_cache_clean_range(0, ~0UL); }
00038
00039
00040 L4_INLINE void
00041 l4_sys_cache_flush_range(unsigned long start, unsigned long end)
00042 { l4_kdebug_cache(2, start, end); }
00043
00044 L4_INLINE void
00045 l4_sys_cache_flush(void)
00046 { l4_sys_cache_flush_range(0, ~0UL); }
00047
00048
00049 L4_INLINE void
00050 l4_sys_cache_inv_range(unsigned long start, unsigned long end)
00051 { l4_kdebug_cache(3, start, end); }
00052
00053 L4_INLINE void
00054 l4_sys_cache_inv(void)
00055 { l4_sys_cache_inv_range(0, ~0UL); }
00056
00057
00058
00059 L4_INLINE void
00060 l4_imb(void)
00061 { l4_sys_cache_clean(); }
00062
00063 EXTERN_C_END
00064
00065 #endif