/* Included from asm/pgtable-*.h only ! */ /* * Some bits are only used on some cpu families... Make sure that all * the undefined gets a sensible default */ #ifndef _PAGE_HASHPTE #define _PAGE_HASHPTE 0 #endif #ifndef _PAGE_SHARED #define _PAGE_SHARED 0 #endif #ifndef _PAGE_HWWRITE #define _PAGE_HWWRITE 0 #endif #ifndef _PAGE_EXEC #define _PAGE_EXEC 0 #endif #ifndef _PAGE_ENDIAN #define _PAGE_ENDIAN 0 #endif #ifndef _PAGE_COHERENT #define _PAGE_COHERENT 0 #endif #ifndef _PAGE_WRITETHRU #define _PAGE_WRITETHRU 0 #endif #ifndef _PAGE_4K_PFN #define _PAGE_4K_PFN 0 #endif #ifndef _PAGE_SAO #define _PAGE_SAO 0 #endif #ifndef _PAGE_PSIZE #define _PAGE_PSIZE 0 #endif #ifndef _PMD_PRESENT_MASK #define _PMD_PRESENT_MASK _PMD_PRESENT #endif #ifndef _PMD_SIZE #define _PMD_SIZE 0 #define PMD_PAGE_SIZE(pmd) bad_call_to_PMD_PAGE_SIZE() #endif #ifndef _PAGE_KERNEL_RO #define _PAGE_KERNEL_RO 0 #endif #ifndef _PAGE_KERNEL_ROX #define _PAGE_KERNEL_ROX (_PAGE_EXEC) #endif #ifndef _PAGE_KERNEL_RW #define _PAGE_KERNEL_RW (_PAGE_DIRTY | _PAGE_RW | _PAGE_HWWRITE) #endif #ifndef _PAGE_KERNEL_RWX #define _PAGE_KERNEL_RWX (_PAGE_DIRTY | _PAGE_RW | _PAGE_HWWRITE | _PAGE_EXEC) #endif #ifndef _PAGE_HPTEFLAGS #define _PAGE_HPTEFLAGS _PAGE_HASHPTE #endif #ifndef _PTE_NONE_MASK #define _PTE_NONE_MASK _PAGE_HPTEFLAGS #endif /* Make sure we get a link error if PMD_PAGE_SIZE is ever called on a * kernel without large page PMD support */ #ifndef __ASSEMBLY__ extern unsigned long bad_call_to_PMD_PAGE_SIZE(void); #endif /* __ASSEMBLY__ */ /* Location of the PFN in the PTE. Most 32-bit platforms use the same * as _PAGE_SHIFT here (ie, naturally aligned). * Platform who don't just pre-define the value so we don't override it here */ #ifndef PTE_RPN_SHIFT #define PTE_RPN_SHIFT (PAGE_SHIFT) #endif /* The mask convered by the RPN must be a ULL on 32-bit platforms with * 64-bit PTEs */ #if defined(CONFIG_PPC32) && defined(CONFIG_PTE_64BIT) #define PTE_RPN_MAX (1ULL << (64 - PTE_RPN_SHIFT)) #define PTE_RPN_MASK (~((1ULL<