Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
cacheflush_mm.h File Reference
#include <linux/mm.h>

Go to the source code of this file.

Macros

#define FLUSH_I_AND_D   (0x00000808)
 
#define FLUSH_I   (0x00000008)
 
#define ICACHE_MAX_ADDR   0
 
#define ICACHE_SET_MASK   0
 
#define DCACHE_MAX_ADDR   0
 
#define DCACHE_SETMASK   0
 
#define CACHE_MODE   0
 
#define CACR_ICINVA   0
 
#define CACR_DCINVA   0
 
#define CACR_BCINVA   0
 
#define __flush_cache_all()
 
#define __flush_cache_030()
 
#define flush_cache_all()   __flush_cache_all()
 
#define flush_cache_vmap(start, end)   flush_cache_all()
 
#define flush_cache_vunmap(start, end)   flush_cache_all()
 
#define flush_cache_dup_mm(mm)   flush_cache_mm(mm)
 
#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE   1
 
#define flush_dcache_page(page)   __flush_page_to_ram(page_address(page))
 
#define flush_dcache_mmap_lock(mapping)   do { } while (0)
 
#define flush_dcache_mmap_unlock(mapping)   do { } while (0)
 
#define flush_icache_page(vma, page)   __flush_page_to_ram(page_address(page))
 

Functions

void cache_clear (unsigned long paddr, int len)
 
void cache_push (unsigned long paddr, int len)
 
void cache_push_v (unsigned long vaddr, int len)
 
void flush_icache_user_range (struct vm_area_struct *vma, struct page *page, unsigned long addr, int len)
 
void flush_icache_range (unsigned long address, unsigned long endaddr)
 

Macro Definition Documentation

#define __flush_cache_030 ( )
Value:
({ \
unsigned long _tmp; \
__asm__ __volatile__("movec %%cacr,%0\n\t" \
"orw %1,%0\n\t" \
"movec %0,%%cacr" \
: "=&d" (_tmp) \
: "di" (FLUSH_I_AND_D)); \
} \
})

Definition at line 178 of file cacheflush_mm.h.

#define __flush_cache_all (   void)
Value:
({ \
if (CPU_IS_COLDFIRE) { \
flush_cf_dcache(0, DCACHE_MAX_ADDR); \
} else if (CPU_IS_040_OR_060) { \
__asm__ __volatile__("nop\n\t" \
".chip 68040\n\t" \
"cpusha %dc\n\t" \
".chip 68k"); \
} else { \
unsigned long _tmp; \
__asm__ __volatile__("movec %%cacr,%0\n\t" \
"orw %1,%0\n\t" \
"movec %0,%%cacr" \
: "=&d" (_tmp) \
: "di" (FLUSH_I_AND_D)); \
} \
})

Definition at line 159 of file cacheflush_mm.h.

#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE   1

Definition at line 250 of file cacheflush_mm.h.

#define CACHE_MODE   0

Definition at line 20 of file cacheflush_mm.h.

#define CACR_BCINVA   0

Definition at line 23 of file cacheflush_mm.h.

#define CACR_DCINVA   0

Definition at line 22 of file cacheflush_mm.h.

#define CACR_ICINVA   0

Definition at line 21 of file cacheflush_mm.h.

#define DCACHE_MAX_ADDR   0

Definition at line 16 of file cacheflush_mm.h.

#define DCACHE_SETMASK   0

Definition at line 17 of file cacheflush_mm.h.

#define flush_cache_all (   void)    __flush_cache_all()

Definition at line 190 of file cacheflush_mm.h.

#define flush_cache_dup_mm (   mm)    flush_cache_mm(mm)

Definition at line 201 of file cacheflush_mm.h.

#define flush_cache_vmap (   start,
  end 
)    flush_cache_all()

Definition at line 192 of file cacheflush_mm.h.

#define flush_cache_vunmap (   start,
  end 
)    flush_cache_all()

Definition at line 193 of file cacheflush_mm.h.

#define flush_dcache_mmap_lock (   mapping)    do { } while (0)

Definition at line 252 of file cacheflush_mm.h.

#define flush_dcache_mmap_unlock (   mapping)    do { } while (0)

Definition at line 253 of file cacheflush_mm.h.

#define flush_dcache_page (   page)    __flush_page_to_ram(page_address(page))

Definition at line 251 of file cacheflush_mm.h.

#define FLUSH_I   (0x00000008)

Definition at line 11 of file cacheflush_mm.h.

#define FLUSH_I_AND_D   (0x00000808)

Definition at line 10 of file cacheflush_mm.h.

#define flush_icache_page (   vma,
  page 
)    __flush_page_to_ram(page_address(page))

Definition at line 254 of file cacheflush_mm.h.

#define ICACHE_MAX_ADDR   0

Definition at line 14 of file cacheflush_mm.h.

#define ICACHE_SET_MASK   0

Definition at line 15 of file cacheflush_mm.h.

Function Documentation

void cache_clear ( unsigned long  paddr,
int  len 
)

Definition at line 32 of file memory.c.

void cache_push ( unsigned long  paddr,
int  len 
)

Definition at line 37 of file memory.c.

void cache_push_v ( unsigned long  vaddr,
int  len 
)

Definition at line 41 of file memory.c.

void flush_icache_range ( unsigned long  start,
unsigned long  end 
)

flush_icache_range - Globally flush dcache and invalidate icache for region : The starting virtual address of the region. : The ending virtual address of the region.

This is used by the kernel to globally flush some code it has just written from the dcache back to RAM and then to globally invalidate the icache over that region so that that code can be run on all CPUs in the system.

Definition at line 106 of file cache.c.

void flush_icache_user_range ( struct vm_area_struct vma,
struct page page,
unsigned long  addr,
int  len 
)

Definition at line 782 of file smp.c.