参照元†
返り値†
CONFIG_CPU_CACHE_VIPT 無効: arch/arm/include/asm/cacheflush.h†
#define flush_cache_range(vma,start,end) \
vivt_flush_cache_range(vma,start,end)
CONFIG_CPU_CACHE_VIPT 有効: arch/arm/mm/flush.c†
void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end)
{
if (cache_is_vivt()) {
vivt_flush_cache_range(vma, start, end);
return;
}
if (cache_is_vipt_aliasing()) {
asm( "mcr p15, 0, %0, c7, c14, 0\n"
" mcr p15, 0, %0, c7, c10, 4"
:
: "r" (0)
: "cc");
}
if (vma->vm_flags & VM_EXEC)
__flush_icache_all();
}
コメント†