1 #ifndef _ASM_POWERPC_PGTABLE_H
2 #define _ASM_POWERPC_PGTABLE_H
6 #include <asm/processor.h>
14 #if defined(CONFIG_PPC64)
22 #include <asm/tlbflush.h>
47 #define pte_page(x) pfn_to_page(pte_pfn(x))
48 #define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
85 static inline void __set_pte_at(
struct mm_struct *mm,
unsigned long addr,
88 #if defined(CONFIG_PPC_STD_MMU_32) && defined(CONFIG_SMP) && !defined(CONFIG_PTE_64BIT)
97 | (
pte_val(pte) & ~_PAGE_HASHPTE));
101 #elif defined(CONFIG_PPC32) && defined(CONFIG_PTE_64BIT)
112 | (
pte_val(pte) & ~_PAGE_HASHPTE));
115 #if _PAGE_HASHPTE != 0
116 if (
pte_val(*ptep) & _PAGE_HASHPTE)
123 :
"=m" (*ptep),
"=m" (*((
unsigned char *)ptep+4))
124 :
"r" (pte) :
"memory");
126 #elif defined(CONFIG_PPC_STD_MMU_32)
133 | (
pte_val(pte) & ~_PAGE_HASHPTE));
144 #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
152 #define _PAGE_CACHE_CTL (_PAGE_COHERENT | _PAGE_GUARDED | _PAGE_NO_CACHE | \
155 #define pgprot_noncached(prot) (__pgprot((pgprot_val(prot) & ~_PAGE_CACHE_CTL) | \
156 _PAGE_NO_CACHE | _PAGE_GUARDED))
158 #define pgprot_noncached_wc(prot) (__pgprot((pgprot_val(prot) & ~_PAGE_CACHE_CTL) | \
161 #define pgprot_cached(prot) (__pgprot((pgprot_val(prot) & ~_PAGE_CACHE_CTL) | \
164 #define pgprot_cached_wthru(prot) (__pgprot((pgprot_val(prot) & ~_PAGE_CACHE_CTL) | \
165 _PAGE_COHERENT | _PAGE_WRITETHRU))
167 #define pgprot_cached_noncoherent(prot) \
168 (__pgprot(pgprot_val(prot) & ~_PAGE_CACHE_CTL))
170 #define pgprot_writecombine pgprot_noncached_wc
175 #define __HAVE_PHYS_MEM_ACCESS_PROT
182 #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
193 #define kern_addr_valid(addr) (1)
195 #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
196 remap_pfn_range(vma, vaddr, pfn, size, prot)