ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / asm-um / page.h
1 #ifndef __UM_PAGE_H
2 #define __UM_PAGE_H
3
4 struct page;
5
6 #include "asm/arch/page.h"
7 #include "asm/bug.h"
8
9 #undef __pa
10 #undef __va
11 #undef pfn_to_page
12 #undef page_to_pfn
13 #undef virt_to_page
14 #undef pfn_valid
15 #undef virt_addr_valid
16 #undef VALID_PAGE
17 #undef PAGE_OFFSET
18 #undef KERNELBASE
19
20 extern unsigned long uml_physmem;
21
22 #define PAGE_OFFSET (uml_physmem)
23 #define KERNELBASE PAGE_OFFSET
24
25 #define __va_space (8*1024*1024)
26
27 extern unsigned long region_pa(void *virt);
28 extern void *region_va(unsigned long phys);
29
30 #define __pa(virt) region_pa((void *) (virt))
31 #define __va(phys) region_va((unsigned long) (phys))
32
33 extern unsigned long page_to_pfn(struct page *page);
34 extern struct page *pfn_to_page(unsigned long pfn);
35
36 extern struct page *phys_to_page(unsigned long phys);
37
38 #define virt_to_page(v) (phys_to_page(__pa(v)))
39
40 extern struct page *page_mem_map(struct page *page);
41
42 #define pfn_valid(pfn) (page_mem_map(pfn_to_page(pfn)) != NULL)
43 #define virt_addr_valid(v) pfn_valid(__pa(v) >> PAGE_SHIFT)
44
45 extern struct page *arch_validate(struct page *page, int mask, int order);
46 #define HAVE_ARCH_VALIDATE
47
48 #endif