Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
cacheflush.h File Reference
#include <linux/mm.h>
#include <asm/glue-cache.h>
#include <asm/shmparam.h>
#include <asm/cachetype.h>
#include <asm/outercache.h>

Go to the source code of this file.

Data Structures

struct  cpu_cache_fns
 

Macros

#define CACHE_COLOUR(vaddr)   ((vaddr & (SHMLBA - 1)) >> PAGE_SHIFT)
 
#define PG_dcache_clean   PG_arch_1
 
#define copy_from_user_page(vma, page, vaddr, dst, src, len)
 
#define __flush_icache_all_generic()
 
#define __flush_icache_all_v7_smp()
 
#define __flush_icache_preferred   __flush_icache_all_generic
 
#define flush_cache_louis()   __cpuc_flush_kern_louis()
 
#define flush_cache_all()   __cpuc_flush_kern_all()
 
#define flush_cache_mm(mm)   vivt_flush_cache_mm(mm)
 
#define flush_cache_range(vma, start, end)   vivt_flush_cache_range(vma,start,end)
 
#define flush_cache_page(vma, addr, pfn)   vivt_flush_cache_page(vma,addr,pfn)
 
#define flush_cache_dup_mm(mm)   flush_cache_mm(mm)
 
#define flush_cache_user_range(start, end)   __cpuc_coherent_user_range((start) & PAGE_MASK, PAGE_ALIGN(end))
 
#define flush_icache_range(s, e)   __cpuc_coherent_kern_range(s,e)
 
#define clean_dcache_area(start, size)   cpu_dcache_clean_area(start, size)
 
#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE   1
 
#define ARCH_HAS_FLUSH_ANON_PAGE
 
#define ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE
 
#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 __cpuc_flush_icache_all (void)
 
void __cpuc_flush_kern_all (void)
 
void __cpuc_flush_kern_louis (void)
 
void __cpuc_flush_user_all (void)
 
void __cpuc_flush_user_range (unsigned long, unsigned long, unsigned int)
 
void __cpuc_coherent_kern_range (unsigned long, unsigned long)
 
int __cpuc_coherent_user_range (unsigned long, unsigned long)
 
void __cpuc_flush_dcache_area (void *, size_t)
 
void dmac_map_area (const void *, size_t, int)
 
void dmac_unmap_area (const void *, size_t, int)
 
void dmac_flush_range (const void *, const void *)
 
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 __flush_icache_all_generic ( )
Value:
asm("mcr p15, 0, %0, c7, c5, 0" \
: : "r" (0));

Definition at line 187 of file cacheflush.h.

#define __flush_icache_all_v7_smp ( )
Value:
asm("mcr p15, 0, %0, c7, c1, 0" \
: : "r" (0));

Definition at line 192 of file cacheflush.h.

#define __flush_icache_preferred   __flush_icache_all_generic

Definition at line 209 of file cacheflush.h.

#define ARCH_HAS_FLUSH_ANON_PAGE

Definition at line 312 of file cacheflush.h.

#define ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE

Definition at line 322 of file cacheflush.h.

#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE   1

Definition at line 298 of file cacheflush.h.

#define CACHE_COLOUR (   vaddr)    ((vaddr & (SHMLBA - 1)) >> PAGE_SHIFT)

Definition at line 20 of file cacheflush.h.

#define clean_dcache_area (   start,
  size 
)    cpu_dcache_clean_area(start, size)

Definition at line 284 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 177 of file cacheflush.h.

#define flush_cache_all (   void)    __cpuc_flush_kern_all()

Definition at line 222 of file cacheflush.h.

#define flush_cache_dup_mm (   mm)    flush_cache_mm(mm)

Definition at line 264 of file cacheflush.h.

#define flush_cache_louis ( )    __cpuc_flush_kern_louis()

Definition at line 220 of file cacheflush.h.

#define flush_cache_mm (   mm)    vivt_flush_cache_mm(mm)

Definition at line 252 of file cacheflush.h.

#define flush_cache_page (   vma,
  addr,
  pfn 
)    vivt_flush_cache_page(vma,addr,pfn)

Definition at line 256 of file cacheflush.h.

#define flush_cache_range (   vma,
  start,
  end 
)    vivt_flush_cache_range(vma,start,end)

Definition at line 254 of file cacheflush.h.

#define flush_cache_user_range (   start,
  end 
)    __cpuc_coherent_user_range((start) & PAGE_MASK, PAGE_ALIGN(end))

Definition at line 271 of file cacheflush.h.

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

Definition at line 327 of file cacheflush.h.

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

Definition at line 329 of file cacheflush.h.

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

Definition at line 339 of file cacheflush.h.

#define flush_icache_range (   s,
  e 
)    __cpuc_coherent_kern_range(s,e)

Definition at line 278 of file cacheflush.h.

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

Definition at line 332 of file cacheflush.h.

#define PG_dcache_clean   PG_arch_1

Definition at line 26 of file cacheflush.h.

Function Documentation

void __cpuc_coherent_kern_range ( unsigned  long,
unsigned  long 
)
int __cpuc_coherent_user_range ( unsigned  long,
unsigned  long 
)
void __cpuc_flush_dcache_area ( void ,
size_t   
)
void __cpuc_flush_icache_all ( void  )
void __cpuc_flush_kern_all ( void  )
void __cpuc_flush_kern_louis ( void  )
void __cpuc_flush_user_all ( void  )
void __cpuc_flush_user_range ( unsigned  long,
unsigned  long,
unsigned  int 
)
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 dmac_flush_range ( const void ,
const void  
)
void dmac_map_area ( const void ,
size_t  ,
int   
)
void dmac_unmap_area ( const void ,
size_t  ,
int   
)
void flush_dcache_page ( struct page )

Definition at line 273 of file flush.c.