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/page-flags.h>
#include <linux/bitops.h>
#include <asm/page.h>

Go to the source code of this file.

Macros

#define flush_cache_all()   do { } while (0)
 
#define flush_cache_mm(mm)   do { } while (0)
 
#define flush_cache_dup_mm(mm)   do { } while (0)
 
#define flush_cache_range(vma, start, end)   do { } while (0)
 
#define flush_cache_page(vma, vmaddr, pfn)   do { } while (0)
 
#define flush_icache_page(vma, page)   do { } while (0)
 
#define flush_cache_vmap(start, end)   do { } while (0)
 
#define flush_cache_vunmap(start, end)   do { } while (0)
 
#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE   1
 
#define flush_dcache_page(page)
 
#define flush_dcache_mmap_lock(mapping)   do { } while (0)
 
#define flush_dcache_mmap_unlock(mapping)   do { } while (0)
 
#define flush_icache_user_range(vma, page, user_addr, len)
 
#define copy_to_user_page(vma, page, vaddr, dst, src, len)
 
#define copy_from_user_page(vma, page, vaddr, dst, src, len)   memcpy(dst, src, len)
 

Functions

void flush_icache_range (unsigned long start, unsigned long end)
 
void clflush_cache_range (void *addr, int size)
 

Macro Definition Documentation

#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE   1

Definition at line 28 of file cacheflush.h.

#define copy_from_user_page (   vma,
  page,
  vaddr,
  dst,
  src,
  len 
)    memcpy(dst, src, len)

Definition at line 51 of file cacheflush.h.

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

Definition at line 47 of file cacheflush.h.

#define flush_cache_all (   void)    do { } while (0)

Definition at line 19 of file cacheflush.h.

#define flush_cache_dup_mm (   mm)    do { } while (0)

Definition at line 21 of file cacheflush.h.

#define flush_cache_mm (   mm)    do { } while (0)

Definition at line 20 of file cacheflush.h.

#define flush_cache_page (   vma,
  vmaddr,
  pfn 
)    do { } while (0)

Definition at line 23 of file cacheflush.h.

#define flush_cache_range (   vma,
  start,
  end 
)    do { } while (0)

Definition at line 22 of file cacheflush.h.

#define flush_cache_vmap (   start,
  end 
)    do { } while (0)

Definition at line 25 of file cacheflush.h.

#define flush_cache_vunmap (   start,
  end 
)    do { } while (0)

Definition at line 26 of file cacheflush.h.

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

Definition at line 34 of file cacheflush.h.

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

Definition at line 35 of file cacheflush.h.

#define flush_dcache_page (   page)
Value:
do { \
clear_bit(PG_arch_1, &(page)->flags); \
} while (0)

Definition at line 29 of file cacheflush.h.

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

Definition at line 24 of file cacheflush.h.

#define flush_icache_user_range (   vma,
  page,
  user_addr,
  len 
)
Value:
do { \
unsigned long _addr = (unsigned long) page_address(page) + ((user_addr) & ~PAGE_MASK); \
flush_icache_range(_addr, _addr + (len)); \
} while (0)

Definition at line 41 of file cacheflush.h.

Function Documentation

void clflush_cache_range ( void addr,
int  size 
)
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.