53 lines
1.1 KiB
C
53 lines
1.1 KiB
C
/*
|
|
* Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
|
|
* Licensed under the GPL
|
|
*/
|
|
|
|
#ifndef __UM_PAGE_H
|
|
#define __UM_PAGE_H
|
|
|
|
struct page;
|
|
|
|
#include "asm/arch/page.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 to_phys(void *virt);
|
|
extern void *to_virt(unsigned long phys);
|
|
|
|
#define __pa(virt) to_phys((void *) virt)
|
|
#define __va(phys) to_virt((unsigned long) phys)
|
|
|
|
#define page_to_pfn(page) ((page) - mem_map)
|
|
#define pfn_to_page(pfn) (mem_map + (pfn))
|
|
|
|
#define phys_to_pfn(p) ((p) >> PAGE_SHIFT)
|
|
#define pfn_to_phys(pfn) ((pfn) << PAGE_SHIFT)
|
|
|
|
#define pfn_valid(pfn) ((pfn) < max_mapnr)
|
|
#define virt_addr_valid(v) pfn_valid(phys_to_pfn(__pa(v)))
|
|
|
|
extern struct page *arch_validate(struct page *page, int mask, int order);
|
|
#define HAVE_ARCH_VALIDATE
|
|
|
|
extern void arch_free_page(struct page *page, int order);
|
|
#define HAVE_ARCH_FREE_PAGE
|
|
|
|
#endif
|