1 #ifndef SUNXI_HAL_CACHE_H
2 #define SUNXI_HAL_CACHE_H
3 
4 #ifdef __cplusplus
5 extern "C"
6 {
7 #endif
8 
9 #include <stddef.h>
10 #include <stdint.h>
11 #ifdef CONFIG_KERNEL_FREERTOS
12 #ifndef CONFIG_CORE_DSP0
13 #include <mmu_cache.h>
14 #include <armv7.h>
15 #endif
16 
17 void hal_dcache_clean(unsigned long vaddr_start, unsigned long size);
18 void hal_dcache_invalidate(unsigned long vaddr_start, unsigned long size);
19 void hal_dcache_clean_invalidate(unsigned long vaddr_start, unsigned long size);
20 void hal_icache_invalidate_all(void);
21 void hal_dcache_invalidate_all(void);
22 void hal_dcache_clean_all(void);
23 #else
24 #include <arch.h>
25 #define hal_dcache_clean        cpu_dcache_clean
26 #define hal_dcache_clean_invalidate cpu_dcache_clean_invalidate
27 #define hal_dcache_invalidate       cpu_dcache_invalidate
28 #define hal_icache_invalidate_all   cpu_icache_invalidate_all
29 #define hal_dcache_clean_all        cpu_dcache_clean_all
30 #define hal_dcache_invalidate_all   cpu_dcache_invalidate_all
31 
32 void cpu_dcache_clean(unsigned long vaddr_start, unsigned long size);
33 void cpu_dcache_clean_invalidate(unsigned long vaddr_start, unsigned long size);
34 void cpu_dcache_invalidate(unsigned long vaddr_start, unsigned long size);
35 void cpu_icache_invalidate_all(void);
36 void cpu_dcache_clean_all(void);
37 void cpu_dcache_invalidate_all(void);
38 
39 #endif
40 
41 
42 
43 #ifdef __cplusplus
44 }
45 #endif
46 #endif
47