linux-2.6.33/flush_cache_range(arm)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#pc74718f]
#backlinks
*説明 [#b6032059]
-パス: [[linux-2.6.33/arch/arm/include/asm/cacheflush.h]]
--CONFIG_CPU_CACHE_VIPT 無効のとき
-パス: [[linux-2.6.33/arch/arm/mm/flush.c]]
--CONFIG_CPU_CACHE_VIPT 有効のとき
-FIXME: これは何?
--説明
**引数 [#x1f92ad8]
-struct vm_area_struct *vma
--
--[[linux-2.6.33/vm_area_struct]]
-unsigned long start
--
-unsigned long end
--
**返り値 [#g2020692]
-なし
**参考 [#w9549f6c]
*実装 [#d5d51dde]
**CONFIG_CPU_CACHE_VIPT 無効の場合 [#kb56f19c]
#ifndef CONFIG_CPU_CACHE_VIPT
...(中略)...
#define flush_cache_range(vma,start,end) \
vivt_flush_cache_range(vma,start,end)
-vivt_flush_cache_range を呼ぶ
--[[linux-2.6.33/vivt_flush_cache_range()]]
...(中略)...
**CONFIG_CPU_CACHE_VIPT 有効の場合 [#b0aa7481]
***linux-2.6.33/arch/arm/include/asm/cacheflush.h [#p008d...
#else
...(中略)...
extern void flush_cache_range(struct vm_area_struct *vma...
-下記、参照
...(中略)...
#endif
***linux-2.6.33/arch/arm/mm/flush.c [#j9a60783]
void flush_cache_range(struct vm_area_struct *vma, unsig...
{
if (cache_is_vivt()) {
-
--[[linux-2.6.33/cache_is_vivt()]]
vivt_flush_cache_range(vma, start, end);
return;
}
-
--[[linux-2.6.33/vivt_flush_cache_range()]]
if (cache_is_vipt_aliasing()) {
-
--[[linux-2.6.33/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();
-
--[[linux-2.6.33/VM_EXEC]]
-
--[[linux-2.6.33/__flush_icache_all()]]
}
*コメント [#fb719f7b]
終了行:
*参照元 [#pc74718f]
#backlinks
*説明 [#b6032059]
-パス: [[linux-2.6.33/arch/arm/include/asm/cacheflush.h]]
--CONFIG_CPU_CACHE_VIPT 無効のとき
-パス: [[linux-2.6.33/arch/arm/mm/flush.c]]
--CONFIG_CPU_CACHE_VIPT 有効のとき
-FIXME: これは何?
--説明
**引数 [#x1f92ad8]
-struct vm_area_struct *vma
--
--[[linux-2.6.33/vm_area_struct]]
-unsigned long start
--
-unsigned long end
--
**返り値 [#g2020692]
-なし
**参考 [#w9549f6c]
*実装 [#d5d51dde]
**CONFIG_CPU_CACHE_VIPT 無効の場合 [#kb56f19c]
#ifndef CONFIG_CPU_CACHE_VIPT
...(中略)...
#define flush_cache_range(vma,start,end) \
vivt_flush_cache_range(vma,start,end)
-vivt_flush_cache_range を呼ぶ
--[[linux-2.6.33/vivt_flush_cache_range()]]
...(中略)...
**CONFIG_CPU_CACHE_VIPT 有効の場合 [#b0aa7481]
***linux-2.6.33/arch/arm/include/asm/cacheflush.h [#p008d...
#else
...(中略)...
extern void flush_cache_range(struct vm_area_struct *vma...
-下記、参照
...(中略)...
#endif
***linux-2.6.33/arch/arm/mm/flush.c [#j9a60783]
void flush_cache_range(struct vm_area_struct *vma, unsig...
{
if (cache_is_vivt()) {
-
--[[linux-2.6.33/cache_is_vivt()]]
vivt_flush_cache_range(vma, start, end);
return;
}
-
--[[linux-2.6.33/vivt_flush_cache_range()]]
if (cache_is_vipt_aliasing()) {
-
--[[linux-2.6.33/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();
-
--[[linux-2.6.33/VM_EXEC]]
-
--[[linux-2.6.33/__flush_icache_all()]]
}
*コメント [#fb719f7b]
ページ名: