vserver 1.9.3
[linux-2.6.git] / include / asm-um / page.h
1 /*
2  *  Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
3  * Licensed under the GPL
4  */
5
6 #ifndef __UM_PAGE_H
7 #define __UM_PAGE_H
8
9 struct page;
10
11 #include "asm/arch/page.h"
12
13 #undef __pa
14 #undef __va
15 #undef pfn_to_page
16 #undef page_to_pfn
17 #undef virt_to_page
18 #undef pfn_valid
19 #undef virt_addr_valid
20 #undef VALID_PAGE
21 #undef PAGE_OFFSET
22 #undef KERNELBASE
23
24 extern unsigned long uml_physmem;
25
26 #define PAGE_OFFSET (uml_physmem)
27 #define KERNELBASE PAGE_OFFSET
28
29 #define __va_space (8*1024*1024)
30
31 extern unsigned long to_phys(void *virt);
32 extern void *to_virt(unsigned long phys);
33
34 #define __pa(virt) to_phys((void *) virt)
35 #define __va(phys) to_virt((unsigned long) phys)
36
37 #define page_to_pfn(page) ((page) - mem_map)
38 #define pfn_to_page(pfn) (mem_map + (pfn))
39
40 #define phys_to_pfn(p) ((p) >> PAGE_SHIFT)
41 #define pfn_to_phys(pfn) ((pfn) << PAGE_SHIFT)
42
43 #define pfn_valid(pfn) ((pfn) < max_mapnr)
44 #define virt_addr_valid(v) pfn_valid(phys_to_pfn(__pa(v)))
45   
46 extern struct page *arch_validate(struct page *page, int mask, int order);
47 #define HAVE_ARCH_VALIDATE
48
49 extern void arch_free_page(struct page *page, int order);
50 #define HAVE_ARCH_FREE_PAGE
51
52 #endif