*参照元 [#h753765a]
#backlinks

*説明 [#d25fe883]
-パス: 複数あり
--CONFIG_CPU_CACHE_VIPT 無効: [[linux-4.4.1/arch/arm/include/asm/cacheflush.h]]
--CONFIG_CPU_CACHE_VIPT 有効: [[linux-4.4.1/arch/arm/mm/flush.c]]
--[[linux-4.4.1/CONFIG_CPU_CACHE_VIPT]]

-FIXME: これは何?
--説明


**引数 [#of21c1e4]
-
-struct vm_area_struct *vma
--
--[[linux-4.4.1/vm_area_struct]]
-unsigned long start
--
-unsigned long end
--


**返り値 [#p2736f7c]
-
--
-なし


**参考 [#n24bd15a]


*実装 [#n75c5df6]

**CONFIG_CPU_CACHE_VIPT 無効: arch/arm/include/asm/cacheflush.h [#e7a412f3]
 #define flush_cache_range(vma,start,end) \
                 vivt_flush_cache_range(vma,start,end)
-
--[[linux-4.4.1/vivt_flush_cache_range()]]


**CONFIG_CPU_CACHE_VIPT 有効: arch/arm/mm/flush.c [#fea0d1a7]
 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;
         }
 
-
--[[linux-4.4.1/cache_is_vivt()]]
--[[linux-4.4.1/vivt_flush_cache_range()]]

         if (cache_is_vipt_aliasing()) {
                 asm(    "mcr    p15, 0, %0, c7, c14, 0\n"
                 "       mcr     p15, 0, %0, c7, c10, 4"
                     :
                     : "r" (0)
                     : "cc");
         }
 
-
--[[linux-4.4.1/cache_is_vipt_aliasing()]]

         if (vma->vm_flags & VM_EXEC)
                 __flush_icache_all();
-
--[[linux-4.4.1/__flush_icache_all()]]

 }


*コメント [#o4bf4dfd]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS