PFN_PTE_SHIFT
#define pte_pfn(pte) (pte_val(pte) >> PFN_PTE_SHIFT)
#define kvm_pfn_pte(pfn, prot) (((pfn) << PFN_PTE_SHIFT) | pgprot_val(prot))
#define kvm_pte_pfn(x) ((phys_addr_t)((x & _PFN_MASK) >> PFN_PTE_SHIFT))
#define _PFN_MASK (~((_ULCAST_(1) << (PFN_PTE_SHIFT)) - 1) & \
#define pte_pfn(x) ((unsigned long)(((x).pte & _PFN_MASK) >> PFN_PTE_SHIFT))
#define pfn_pte(pfn, prot) __pte(((pfn) << PFN_PTE_SHIFT) | pgprot_val(prot))
#define pfn_pmd(pfn, prot) __pmd(((pfn) << PFN_PTE_SHIFT) | pgprot_val(prot))
return (pmd_val(pmd) & _PFN_MASK) >> PFN_PTE_SHIFT;
pr_define("PFN_PTE_SHIFT %d\n", PFN_PTE_SHIFT);
#define pte_pfn(x) (pte_val(x) >> PFN_PTE_SHIFT)
__pte(((pte_basic_t)(pfn) << PFN_PTE_SHIFT) | pgprot_val(prot))
#define ENTRYLO(x) ((pte_val(pfn_pte((x) >> PFN_PTE_SHIFT, PAGE_KERNEL_UNCACHED)) >> 6) | 1)
#define pte_pfn(x) (((unsigned long)((x).pte_high >> PFN_PTE_SHIFT)) | (unsigned long)((x).pte_low << _PAGE_PRESENT_SHIFT))
pte.pte_high = (pfn << PFN_PTE_SHIFT) |
#define pte_pfn(x) ((unsigned long)((x).pte >> PFN_PTE_SHIFT))
#define pfn_pte(pfn, prot) __pte(((unsigned long long)(pfn) << PFN_PTE_SHIFT) | pgprot_val(prot))
#define pfn_pmd(pfn, prot) __pmd(((unsigned long long)(pfn) << PFN_PTE_SHIFT) | pgprot_val(prot))
#define pte_pfn(x) ((unsigned long)((x).pte >> PFN_PTE_SHIFT))
#define pfn_pte(pfn, prot) __pte(((pfn) << PFN_PTE_SHIFT) | pgprot_val(prot))
#define pfn_pmd(pfn, prot) __pmd(((pfn) << PFN_PTE_SHIFT) | pgprot_val(prot))
#define _PFN_MASK (~((1 << (PFN_PTE_SHIFT)) - 1))
pte = __pte(pte_val(pte) + (1UL << PFN_PTE_SHIFT));
return pmd_val(pmd) >> PFN_PTE_SHIFT;
BUILD_BUG_ON(IS_ENABLED(CONFIG_32BIT) && (PFN_PTE_SHIFT > PAGE_SHIFT));
pr_define("PFN_PTE_SHIFT %d\n", PFN_PTE_SHIFT);
#define PxD_VALUE_SHIFT (PFN_PTE_SHIFT-PxD_FLAG_SHIFT)
pte_val(__pte) = ((((addr)>>PAGE_SHIFT)<<PFN_PTE_SHIFT) + pgprot_val(pgprot)); \
pte_val(pte) = (pfn << PFN_PTE_SHIFT) | pgprot_val(pgprot);
#define pte_pfn(x) (pte_val(x) >> PFN_PTE_SHIFT)
pte_val(pte) += 1 << PFN_PTE_SHIFT;
DEFINE(ASM_PFN_PTE_SHIFT, PFN_PTE_SHIFT);
pte = __pte(pte_val(pte) + ((unsigned long long)pdsize / PAGE_SIZE << PFN_PTE_SHIFT));
return __pte((pfn << PFN_PTE_SHIFT) | pgprot_val(pgprot));
return (pte_val(pte) & SRMMU_PTE_PMASK) >> PFN_PTE_SHIFT;
pte = __pte(pte_val(pte) + (nr << PFN_PTE_SHIFT));
return __pte(pte_val(pte) - (nr << PFN_PTE_SHIFT));
return __pte(pte_val(pte) + (nr << PFN_PTE_SHIFT));
return __pte(pte_val(pte) + (nr << PFN_PTE_SHIFT));