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

Go to the source code of this file.

Macros

#define flush_data_cache()   flush_data_cache_local(NULL)
 
#define flush_instruction_cache()   flush_instruction_cache_local(NULL)
 
#define flush_cache_dup_mm(mm)   flush_cache_mm(mm)
 
#define ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE
 
#define flush_kernel_dcache_range(start, size)   flush_kernel_dcache_range_asm((start), (start)+(size));
 
#define flush_cache_vmap(start, end)   flush_cache_all()
 
#define flush_cache_vunmap(start, end)   flush_cache_all()
 
#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE   1
 
#define flush_dcache_mmap_lock(mapping)   spin_lock_irq(&(mapping)->tree_lock)
 
#define flush_dcache_mmap_unlock(mapping)   spin_unlock_irq(&(mapping)->tree_lock)
 
#define flush_icache_page(vma, page)
 
#define flush_icache_range(s, e)
 
#define copy_to_user_page(vma, page, vaddr, dst, src, len)
 
#define copy_from_user_page(vma, page, vaddr, dst, src, len)
 
#define ARCH_HAS_FLUSH_ANON_PAGE
 

Functions

void flush_data_cache_local (void *)
 
void flush_instruction_cache_local (void *)
 
void flush_user_icache_range_asm (unsigned long, unsigned long)
 
void flush_kernel_icache_range_asm (unsigned long, unsigned long)
 
void flush_user_dcache_range_asm (unsigned long, unsigned long)
 
void flush_kernel_dcache_range_asm (unsigned long, unsigned long)
 
void flush_kernel_dcache_page_asm (void *)
 
void flush_kernel_icache_page (void *)
 
void flush_user_dcache_range (unsigned long, unsigned long)
 
void flush_user_icache_range (unsigned long, unsigned long)
 
void flush_cache_all_local (void)
 
void flush_cache_all (void)
 
void flush_cache_mm (struct mm_struct *mm)
 
void flush_kernel_dcache_page_addr (void *addr)
 
void flush_dcache_page (struct page *page)
 
void flush_cache_page (struct vm_area_struct *vma, unsigned long vmaddr, unsigned long pfn)
 
void flush_cache_range (struct vm_area_struct *vma, unsigned long start, unsigned long end)
 
void flush_dcache_page_asm (unsigned long phys_addr, unsigned long vaddr)
 

Macro Definition Documentation

#define ARCH_HAS_FLUSH_ANON_PAGE

Definition at line 112 of file cacheflush.h.

#define ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE

Definition at line 39 of file cacheflush.h.

#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE   1

Definition at line 74 of file cacheflush.h.

#define copy_from_user_page (   vma,
  page,
  vaddr,
  dst,
  src,
  len 
)
Value:
do { \
flush_cache_page(vma, vaddr, page_to_pfn(page)); \
memcpy(dst, src, len); \
} while (0)

Definition at line 99 of file cacheflush.h.

#define copy_to_user_page (   vma,
  page,
  vaddr,
  dst,
  src,
  len 
)
Value:
do { \
flush_cache_page(vma, vaddr, page_to_pfn(page)); \
memcpy(dst, src, len); \
flush_kernel_dcache_range_asm((unsigned long)dst, (unsigned long)dst + len); \
} while (0)

Definition at line 92 of file cacheflush.h.

#define flush_cache_dup_mm (   mm)    flush_cache_mm(mm)

Definition at line 22 of file cacheflush.h.

#define flush_cache_vmap (   start,
  end 
)    flush_cache_all()

Definition at line 71 of file cacheflush.h.

#define flush_cache_vunmap (   start,
  end 
)    flush_cache_all()

Definition at line 72 of file cacheflush.h.

#define flush_data_cache ( )    flush_data_cache_local(NULL)

Definition at line 18 of file cacheflush.h.

#define flush_dcache_mmap_lock (   mapping)    spin_lock_irq(&(mapping)->tree_lock)

Definition at line 77 of file cacheflush.h.

#define flush_dcache_mmap_unlock (   mapping)    spin_unlock_irq(&(mapping)->tree_lock)

Definition at line 79 of file cacheflush.h.

#define flush_icache_page (   vma,
  page 
)
Value:
do { \
flush_kernel_dcache_page(page); \
flush_kernel_icache_page(page_address(page)); \
} while (0)

Definition at line 82 of file cacheflush.h.

#define flush_icache_range (   s,
  e 
)
Value:
do { \
flush_kernel_dcache_range_asm(s,e); \
flush_kernel_icache_range_asm(s,e); \
} while (0)

Definition at line 87 of file cacheflush.h.

#define flush_instruction_cache ( )    flush_instruction_cache_local(NULL)

Definition at line 19 of file cacheflush.h.

#define flush_kernel_dcache_range (   start,
  size 
)    flush_kernel_dcache_range_asm((start), (start)+(size));

Definition at line 46 of file cacheflush.h.

Function Documentation

void flush_cache_all ( void  )

Definition at line 456 of file cache.c.

void flush_cache_all_local ( void  )

Definition at line 67 of file cache.c.

void flush_cache_mm ( struct mm_struct mm)

Definition at line 30 of file flush.c.

void flush_cache_page ( struct vm_area_struct vma,
unsigned long  vmaddr,
unsigned long  pfn 
)

Definition at line 41 of file flush.c.

void flush_cache_range ( struct vm_area_struct vma,
unsigned long  start,
unsigned long  end 
)

Definition at line 34 of file flush.c.

void flush_data_cache_local ( void )
void flush_dcache_page ( struct page page)

Definition at line 273 of file flush.c.

void flush_dcache_page_asm ( unsigned long  phys_addr,
unsigned long  vaddr 
)
void flush_instruction_cache_local ( void )
void flush_kernel_dcache_page_addr ( void addr)

Definition at line 391 of file cache.c.

void flush_kernel_dcache_page_asm ( void )
void flush_kernel_dcache_range_asm ( unsigned  long,
unsigned  long 
)
void flush_kernel_icache_page ( void )
void flush_kernel_icache_range_asm ( unsigned  long,
unsigned  long 
)
void flush_user_dcache_range ( unsigned  long,
unsigned  long 
)

Definition at line 471 of file cache.c.

void flush_user_dcache_range_asm ( unsigned  long,
unsigned  long 
)
void flush_user_icache_range ( unsigned  long,
unsigned  long 
)

Definition at line 480 of file cache.c.

void flush_user_icache_range_asm ( unsigned  long,
unsigned  long 
)