patch-2.4.20 linux-2.4.20/include/asm-parisc/page.h
Next file: linux-2.4.20/include/asm-parisc/pci.h
Previous file: linux-2.4.20/include/asm-parisc/msgbuf.h
Back to the patch index
Back to the overall index
- Lines: 74
- Date:
Thu Nov 28 15:53:15 2002
- Orig file:
linux-2.4.19/include/asm-parisc/page.h
- Orig date:
Fri Aug 2 17:39:45 2002
diff -urN linux-2.4.19/include/asm-parisc/page.h linux-2.4.20/include/asm-parisc/page.h
@@ -9,11 +9,28 @@
#ifdef __KERNEL__
#ifndef __ASSEMBLY__
+#include <asm/cache.h>
+
#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
-#define copy_page(to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE)
+#define copy_page(to,from) copy_user_page_asm((void *)(to), (void *)(from))
+
+extern void purge_kernel_dcache_page(unsigned long);
+extern void copy_user_page_asm(void *to, void *from);
+extern void clear_user_page_asm(void *page, unsigned long vaddr);
-#define clear_user_page(page, vaddr) clear_page(page)
-#define copy_user_page(to, from, vaddr) copy_page(to, from)
+static inline void
+copy_user_page(void *to, void *from, unsigned long vaddr)
+{
+ copy_user_page_asm(to, from);
+ flush_kernel_dcache_page(to);
+}
+
+static inline void
+clear_user_page(void *page, unsigned long vaddr)
+{
+ purge_kernel_dcache_page((unsigned long)page);
+ clear_user_page_asm(page, vaddr);
+}
/*
* These are used to make use of C type-checking..
@@ -47,6 +64,20 @@
return order;
}
+#ifdef __LP64__
+#define MAX_PHYSMEM_RANGES 8 /* Fix the size for now (current known max is 3) */
+#else
+#define MAX_PHYSMEM_RANGES 1 /* First range is only range that fits in 32 bits */
+#endif
+
+typedef struct __physmem_range {
+ unsigned long start_pfn;
+ unsigned long pages; /* PAGE_SIZE pages */
+} physmem_range_t;
+
+extern physmem_range_t pmem_ranges[];
+extern int npmem_ranges;
+
#endif /* !__ASSEMBLY__ */
/* to align the pointer to the (next) page boundary */
@@ -68,7 +99,7 @@
#define LINUX_GATEWAY_SPACE 0
-#define __PAGE_OFFSET (0xc0000000)
+#define __PAGE_OFFSET (0x10000000)
#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
/* These macros don't work for 64-bit C code -- don't allow in C at all */
@@ -78,8 +109,10 @@
#endif
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
-#define virt_to_page(kaddr) (mem_map + (__pa(kaddr) >> PAGE_SHIFT))
+#ifndef CONFIG_DISCONTIGMEM
+#define virt_to_page(kaddr) (mem_map + (__pa(kaddr) >> PAGE_SHIFT))
#define VALID_PAGE(page) ((page - mem_map) < max_mapnr)
+#endif /* !CONFIG_DISCONTIGMEM */
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)