cacheflush.h (94bd217e2d683719ab21a4ac117d8a1b91cbedc9) cacheflush.h (62bc82a82bb1e2b5ee5048c088af7260ddb2b7b5)
1/*
2 * Copyright (C) 2007-2009 Michal Simek <monstr@monstr.eu>
3 * Copyright (C) 2007-2009 PetaLogix
4 * Copyright (C) 2007 John Williams <john.williams@petalogix.com>
5 * based on v850 version which was
6 * Copyright (C) 2001,02,03 NEC Electronics Corporation
7 * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org>
8 *

--- 88 unchanged lines hidden (view full) ---

97#define flush_cache_range(vma, start, len) { \
98 flush_icache_range((unsigned) (start), (unsigned) (start) + (len)); \
99 flush_dcache_range((unsigned) (start), (unsigned) (start) + (len)); \
100}
101#endif
102
103#define flush_cache_range(vma, start, len) do { } while (0)
104
1/*
2 * Copyright (C) 2007-2009 Michal Simek <monstr@monstr.eu>
3 * Copyright (C) 2007-2009 PetaLogix
4 * Copyright (C) 2007 John Williams <john.williams@petalogix.com>
5 * based on v850 version which was
6 * Copyright (C) 2001,02,03 NEC Electronics Corporation
7 * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org>
8 *

--- 88 unchanged lines hidden (view full) ---

97#define flush_cache_range(vma, start, len) { \
98 flush_icache_range((unsigned) (start), (unsigned) (start) + (len)); \
99 flush_dcache_range((unsigned) (start), (unsigned) (start) + (len)); \
100}
101#endif
102
103#define flush_cache_range(vma, start, len) do { } while (0)
104
105#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
106do { \
107 u32 addr = virt_to_phys(dst); \
108 memcpy((dst), (src), (len)); \
109 if (vma->vm_flags & VM_EXEC) { \
110 invalidate_icache_range((unsigned) (addr), \
111 (unsigned) (addr) + PAGE_SIZE); \
112 flush_dcache_range((unsigned) (addr), \
113 (unsigned) (addr) + PAGE_SIZE); \
114 } \
115} while (0)
105static inline void copy_to_user_page(struct vm_area_struct *vma,
106 struct page *page, unsigned long vaddr,
107 void *dst, void *src, int len)
108{
109 u32 addr = virt_to_phys(dst);
110 memcpy(dst, src, len);
111 if (vma->vm_flags & VM_EXEC) {
112 invalidate_icache_range(addr, addr + PAGE_SIZE);
113 flush_dcache_range(addr, addr + PAGE_SIZE);
114 }
115}
116
116
117#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
118do { \
119 memcpy((dst), (src), (len)); \
120} while (0)
117static inline void copy_from_user_page(struct vm_area_struct *vma,
118 struct page *page, unsigned long vaddr,
119 void *dst, void *src, int len)
120{
121 memcpy(dst, src, len);
122}
121
122#endif /* _ASM_MICROBLAZE_CACHEFLUSH_H */
123
124#endif /* _ASM_MICROBLAZE_CACHEFLUSH_H */