| #ifndef _ASM_POWERPC_PGTABLE_H | 
 | #define _ASM_POWERPC_PGTABLE_H | 
 | #ifdef __KERNEL__ | 
 |  | 
 | #ifndef __ASSEMBLY__ | 
 | #include <asm/processor.h>		/* For TASK_SIZE */ | 
 | #include <asm/mmu.h> | 
 | #include <asm/page.h> | 
 | struct mm_struct; | 
 | #endif /* !__ASSEMBLY__ */ | 
 |  | 
 | #if defined(CONFIG_PPC64) | 
 | #  include <asm/pgtable-ppc64.h> | 
 | #else | 
 | #  include <asm/pgtable-ppc32.h> | 
 | #endif | 
 |  | 
 | #ifndef __ASSEMBLY__ | 
 | /* | 
 |  * ZERO_PAGE is a global shared page that is always zero: used | 
 |  * for zero-mapped memory areas etc.. | 
 |  */ | 
 | extern unsigned long empty_zero_page[]; | 
 | #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page)) | 
 |  | 
 | extern pgd_t swapper_pg_dir[]; | 
 |  | 
 | extern void paging_init(void); | 
 |  | 
 | /* | 
 |  * kern_addr_valid is intended to indicate whether an address is a valid | 
 |  * kernel address.  Most 32-bit archs define it as always true (like this) | 
 |  * but most 64-bit archs actually perform a test.  What should we do here? | 
 |  */ | 
 | #define kern_addr_valid(addr)	(1) | 
 |  | 
 | #define io_remap_pfn_range(vma, vaddr, pfn, size, prot)		\ | 
 | 		remap_pfn_range(vma, vaddr, pfn, size, prot) | 
 |  | 
 | #include <asm-generic/pgtable.h> | 
 | #endif /* __ASSEMBLY__ */ | 
 |  | 
 | #endif /* __KERNEL__ */ | 
 | #endif /* _ASM_POWERPC_PGTABLE_H */ |