| #ifndef _ASM_X86_PAGE_H | 
 | #define _ASM_X86_PAGE_H | 
 |  | 
 | #include <linux/types.h> | 
 |  | 
 | #ifdef __KERNEL__ | 
 |  | 
 | #include <asm/page_types.h> | 
 |  | 
 | #ifdef CONFIG_X86_64 | 
 | #include <asm/page_64.h> | 
 | #else | 
 | #include <asm/page_32.h> | 
 | #endif	/* CONFIG_X86_64 */ | 
 |  | 
 | #ifndef __ASSEMBLY__ | 
 |  | 
 | struct page; | 
 |  | 
 | static inline void clear_user_page(void *page, unsigned long vaddr, | 
 | 				   struct page *pg) | 
 | { | 
 | 	clear_page(page); | 
 | } | 
 |  | 
 | static inline void copy_user_page(void *to, void *from, unsigned long vaddr, | 
 | 				  struct page *topage) | 
 | { | 
 | 	copy_page(to, from); | 
 | } | 
 |  | 
 | #define __alloc_zeroed_user_highpage(movableflags, vma, vaddr) \ | 
 | 	alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr) | 
 | #define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE | 
 |  | 
 | #define __pa(x)		__phys_addr((unsigned long)(x)) | 
 | #define __pa_nodebug(x)	__phys_addr_nodebug((unsigned long)(x)) | 
 | /* __pa_symbol should be used for C visible symbols. | 
 |    This seems to be the official gcc blessed way to do such arithmetic. */ | 
 | #define __pa_symbol(x)	__pa(__phys_reloc_hide((unsigned long)(x))) | 
 |  | 
 | #define __va(x)			((void *)((unsigned long)(x)+PAGE_OFFSET)) | 
 |  | 
 | #define __boot_va(x)		__va(x) | 
 | #define __boot_pa(x)		__pa(x) | 
 |  | 
 | /* | 
 |  * virt_to_page(kaddr) returns a valid pointer if and only if | 
 |  * virt_addr_valid(kaddr) returns true. | 
 |  */ | 
 | #define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | 
 | #define pfn_to_kaddr(pfn)      __va((pfn) << PAGE_SHIFT) | 
 | extern bool __virt_addr_valid(unsigned long kaddr); | 
 | #define virt_addr_valid(kaddr)	__virt_addr_valid((unsigned long) (kaddr)) | 
 |  | 
 | #endif	/* __ASSEMBLY__ */ | 
 |  | 
 | #include <asm-generic/memory_model.h> | 
 | #include <asm-generic/getorder.h> | 
 |  | 
 | #define __HAVE_ARCH_GATE_AREA 1 | 
 |  | 
 | #endif	/* __KERNEL__ */ | 
 | #endif /* _ASM_X86_PAGE_H */ |