]> err.no Git - linux-2.6/blobdiff - include/asm-frv/cacheflush.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / include / asm-frv / cacheflush.h
index 3007deccb4904256521eda65a7defdc91c555f37..432a69e7f3d491488631a270b1cff0e8f2ac6daa 100644 (file)
@@ -20,6 +20,7 @@
  */
 #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(mm, start, end)      do {} while(0)
 #define flush_cache_page(vma, vmaddr, pfn)     do {} while(0)
 #define flush_cache_vmap(start, end)           do {} while(0)
@@ -28,7 +29,7 @@
 #define flush_dcache_mmap_unlock(mapping)      do {} while(0)
 
 /*
- * physically-indexed cache managment
+ * physically-indexed cache management
  * - see arch/frv/lib/cache.S
  */
 extern void frv_dcache_writeback(unsigned long start, unsigned long size);
@@ -87,5 +88,17 @@ static inline void flush_icache_page(struct vm_area_struct *vma, struct page *pa
        flush_icache_user_range(vma, page, page_to_phys(page), PAGE_SIZE);
 }
 
+/*
+ * permit ptrace to access another process's address space through the icache
+ * and the dcache
+ */
+#define copy_to_user_page(vma, page, vaddr, dst, src, len)     \
+do {                                                           \
+       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)   \
+       memcpy((dst), (src), (len))
 
 #endif /* _ASM_CACHEFLUSH_H */