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>

Go to the source code of this file.

Macros

#define PG_dcache_clean   PG_arch_1
 
#define copy_from_user_page(vma, page, vaddr, dst, src, len)
 
#define flush_cache_dup_mm(mm)   flush_cache_mm(mm)
 
#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_user_range(vma, page, addr, len)   flush_dcache_page(page)
 
#define flush_icache_page(vma, page)   do { } while (0)
 

Functions

void flush_cache_all (void)
 
void flush_cache_mm (struct mm_struct *mm)
 
void flush_cache_range (struct vm_area_struct *vma, unsigned long start, unsigned long end)
 
void flush_cache_page (struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn)
 
void flush_icache_range (unsigned long start, unsigned long end)
 
void __flush_dcache_area (void *addr, size_t len)
 
void __flush_cache_user_range (unsigned long start, unsigned long end)
 
void copy_to_user_page (struct vm_area_struct *, struct page *, unsigned long, void *, const void *, unsigned long)
 
void flush_dcache_page (struct page *)
 

Macro Definition Documentation

#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE   1

Definition at line 106 of file cacheflush.h.

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

Definition at line 87 of file cacheflush.h.

#define flush_cache_dup_mm (   mm)    flush_cache_mm(mm)

Definition at line 92 of file cacheflush.h.

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

Definition at line 114 of file cacheflush.h.

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

Definition at line 116 of file cacheflush.h.

#define flush_icache_page (   vma,
  page 
)    do { } while (0)

Definition at line 126 of file cacheflush.h.

#define flush_icache_user_range (   vma,
  page,
  addr,
  len 
)    flush_dcache_page(page)

Definition at line 119 of file cacheflush.h.

#define PG_dcache_clean   PG_arch_1

Definition at line 28 of file cacheflush.h.

Function Documentation

void __flush_cache_user_range ( unsigned long  start,
unsigned long  end 
)
void __flush_dcache_area ( void addr,
size_t  len 
)
void copy_to_user_page ( struct vm_area_struct ,
struct page ,
unsigned  long,
void ,
const void ,
unsigned  long 
)

Definition at line 149 of file flush.c.

void flush_cache_all ( void  )

Definition at line 456 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  user_addr,
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_dcache_page ( struct page )

Definition at line 273 of file flush.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.