#ifndef __UM_PAGE_H #define __UM_PAGE_H struct page; #include "asm/arch/page.h" #include "asm/bug.h" #undef __pa #undef __va #undef pfn_to_page #undef page_to_pfn #undef virt_to_page #undef pfn_valid #undef virt_addr_valid #undef VALID_PAGE #undef PAGE_OFFSET #undef KERNELBASE extern unsigned long uml_physmem; #define PAGE_OFFSET (uml_physmem) #define KERNELBASE PAGE_OFFSET #define __va_space (8*1024*1024) extern unsigned long region_pa(void *virt); extern void *region_va(unsigned long phys); #define __pa(virt) region_pa((void *) (virt)) #define __va(phys) region_va((unsigned long) (phys)) extern unsigned long page_to_pfn(struct page *page); extern struct page *pfn_to_page(unsigned long pfn); extern struct page *phys_to_page(unsigned long phys); #define virt_to_page(v) (phys_to_page(__pa(v))) extern struct page *page_mem_map(struct page *page); #define pfn_valid(pfn) (page_mem_map(pfn_to_page(pfn)) != NULL) #define virt_addr_valid(v) pfn_valid(__pa(v) >> PAGE_SHIFT) extern struct page *arch_validate(struct page *page, int mask, int order); #define HAVE_ARCH_VALIDATE #endif