mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-27 21:14:44 +08:00
26ff6c11ef
Cleanup of page table allocators, using generic folded PMD and PUD helpers. TLB flushing operations are moved to a more sensible spot. The page fault handler is also optimized slightly, we no longer waste cycles on IRQ disabling for flushing of the page from the ITLB, since we're already under CLI protection by the initial exception handler. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
33 lines
1.0 KiB
C
33 lines
1.0 KiB
C
#ifndef __ASM_SH_CACHEFLUSH_H
|
|
#define __ASM_SH_CACHEFLUSH_H
|
|
#ifdef __KERNEL__
|
|
|
|
#include <linux/mm.h>
|
|
#include <asm/cpu/cacheflush.h>
|
|
|
|
/* Flush (write-back only) a region (smaller than a page) */
|
|
extern void __flush_wback_region(void *start, int size);
|
|
/* Flush (write-back & invalidate) a region (smaller than a page) */
|
|
extern void __flush_purge_region(void *start, int size);
|
|
/* Flush (invalidate only) a region (smaller than a page) */
|
|
extern void __flush_invalidate_region(void *start, int size);
|
|
|
|
#define flush_cache_vmap(start, end) flush_cache_all()
|
|
#define flush_cache_vunmap(start, end) flush_cache_all()
|
|
|
|
#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
|
|
do { \
|
|
flush_cache_page(vma, vaddr, page_to_pfn(page));\
|
|
memcpy(dst, src, len); \
|
|
flush_icache_user_range(vma, page, vaddr, len); \
|
|
} while (0)
|
|
|
|
#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
|
|
do { \
|
|
flush_cache_page(vma, vaddr, page_to_pfn(page));\
|
|
memcpy(dst, src, len); \
|
|
} while (0)
|
|
|
|
#endif /* __KERNEL__ */
|
|
#endif /* __ASM_SH_CACHEFLUSH_H */
|