|  | #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 */ |