参照元

説明

引数

返り値

参考

実装

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();
}

コメント


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS