/linux-master/arch/powerpc/include/asm/book3s/64/ |
H A D | pgtable-4k.h | 9 static inline int pmd_huge(pmd_t pmd) argument 15 return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE)); 30 * With radix , we have hugepage ptes in the pud and pmd entries. We don't
|
H A D | pgalloc.h | 69 * If we share the same slab cache with the pmd or pud level table, 131 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) argument 133 *pud = __pud(__pgtable_ptr_val(pmd) | PUD_VAL_BITS); 147 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) argument 149 pmd_fragment_free((unsigned long *)pmd); 152 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, argument 155 return pgtable_free_tlb(tlb, pmd, PMD_INDEX); 158 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, argument 161 *pmd = __pmd(__pgtable_ptr_val(pte) | PMD_VAL_BITS); 164 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, argument [all...] |
/linux-master/arch/x86/include/asm/ |
H A D | pgtable-3level.h | 16 pr_err("%s:%d: bad pmd %p(%016Lx)\n", \ 48 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) argument 50 pxx_xchg64(pmd, pmdp, native_pmd_val(pmd)); 110 return pxx_xchg64(pmd, pmdp, 0ULL); 126 unsigned long address, pmd_t *pmdp, pmd_t pmd) 131 * If pmd has present bit cleared we can get away without expensive 135 if (!(pmd_val(pmd) & _PAGE_PRESENT)) { 137 old.pmd_low = xchg(&pmdp->pmd_low, pmd.pmd_low); 139 WRITE_ONCE(pmdp->pmd_high, pmd 125 pmdp_establish(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) argument [all...] |
H A D | pgalloc.h | 65 pmd_t *pmd, pte_t *pte) 68 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE)); 72 pmd_t *pmd, pte_t *pte) 75 set_pmd_safe(pmd, __pmd(__pa(pte) | _PAGE_TABLE)); 78 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, argument 84 set_pmd(pmd, __pmd(((pteval_t)pfn << PAGE_SHIFT) | _PAGE_TABLE)); 88 extern void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd); 90 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, argument 93 ___pmd_free_tlb(tlb, pmd); 97 extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd); 64 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) argument 71 pmd_populate_kernel_safe(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) argument 99 pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) argument 105 pud_populate_safe(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) argument [all...] |
/linux-master/arch/m68k/include/asm/ |
H A D | mcf_pgtable.h | 97 #define pmd_pgtable(pmd) pfn_to_virt(pmd_val(pmd) >> PAGE_SHIFT) 119 #define pmd_page_vaddr(pmd) ((unsigned long) (pmd_val(pmd))) 139 static inline int pmd_none2(pmd_t *pmd) { return !pmd_val(*pmd); } argument 140 #define pmd_none(pmd) pmd_none2(&(pmd)) 141 static inline int pmd_bad2(pmd_t *pmd) { return 0; } argument 142 #define pmd_bad(pmd) pmd_bad [all...] |
H A D | sun3_pgtable.h | 96 static inline unsigned long pmd_page_vaddr(pmd_t pmd) argument 98 return (unsigned long)__va(pmd_val(pmd) & PAGE_MASK); 114 #define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT) 115 #define pmd_page(pmd) virt_to_page((void *)pmd_page_vaddr(pmd)) 118 static inline int pmd_none2 (pmd_t *pmd) { return !pmd_val (*pmd); } argument 119 #define pmd_none(pmd) pmd_none2(&(pmd)) 121 pmd_bad2(pmd_t *pmd) argument 123 pmd_present2(pmd_t *pmd) argument [all...] |
/linux-master/arch/riscv/include/asm/ |
H A D | pgtable.h | 210 static inline int pmd_present(pmd_t pmd) argument 218 return (pmd_val(pmd) & (_PAGE_PRESENT | _PAGE_PROT_NONE | _PAGE_LEAF)); 221 static inline int pmd_present(pmd_t pmd) argument 223 return (pmd_val(pmd) & (_PAGE_PRESENT | _PAGE_PROT_NONE)); 227 static inline int pmd_none(pmd_t pmd) argument 229 return (pmd_val(pmd) == 0); 232 static inline int pmd_bad(pmd_t pmd) argument 234 return !pmd_present(pmd) || (pmd_val(pmd) & _PAGE_LEAF); 238 static inline bool pmd_leaf(pmd_t pmd) argument 243 set_pmd(pmd_t *pmdp, pmd_t pmd) argument 267 pmd_page(pmd_t pmd) argument 272 pmd_page_vaddr(pmd_t pmd) argument 277 pmd_pte(pmd_t pmd) argument 451 pmd_protnone(pmd_t pmd) argument 632 pmd_mkhuge(pmd_t pmd) argument 637 pmd_mkinvalid(pmd_t pmd) argument 644 pmd_pfn(pmd_t pmd) argument 656 pmd_modify(pmd_t pmd, pgprot_t newprot) argument 662 pmd_write(pmd_t pmd) argument 674 pmd_dirty(pmd_t pmd) argument 680 pmd_young(pmd_t pmd) argument 685 pmd_user(pmd_t pmd) argument 690 pmd_mkold(pmd_t pmd) argument 695 pmd_mkyoung(pmd_t pmd) argument 700 pmd_mkwrite_novma(pmd_t pmd) argument 705 pmd_wrprotect(pmd_t pmd) argument 710 pmd_mkclean(pmd_t pmd) argument 715 pmd_mkdirty(pmd_t pmd) argument 720 set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd) argument 740 pmd_user_accessible_page(pmd_t pmd) argument 752 pmd_trans_huge(pmd_t pmd) argument 776 pmd_t pmd = __pmd(atomic_long_xchg((atomic_long_t *)pmdp, 0)); local 791 pmdp_establish(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) argument [all...] |
/linux-master/arch/sh/mm/ |
H A D | init.c | 52 pmd_t *pmd; local 72 pmd = pmd_alloc(NULL, pud, addr); 73 if (unlikely(!pmd)) { 74 pmd_ERROR(*pmd); 78 return pte_offset_kernel(pmd, addr); 138 pmd_t *pmd; local 140 pmd = memblock_alloc(PAGE_SIZE, PAGE_SIZE); 141 if (!pmd) 144 pud_populate(&init_mm, pud, pmd); 145 BUG_ON(pmd ! 151 one_page_table_init(pmd_t *pmd) argument 167 page_table_kmap_check(pte_t *pte, pmd_t *pmd, unsigned long vaddr, pte_t *lastpte) argument 178 pmd_t *pmd; local [all...] |
H A D | tlbex_32.c | 28 pmd_t *pmd; local 52 pmd = pmd_offset(pud, address); 53 if (pmd_none_or_clear_bad(pmd)) 55 pte = pte_offset_kernel(pmd, address);
|
H A D | pgtable.c | 43 void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) argument 45 set_pud(pud, __pud((unsigned long)pmd)); 53 void pmd_free(struct mm_struct *mm, pmd_t *pmd) argument 55 kmem_cache_free(pmd_cachep, pmd);
|
/linux-master/arch/x86/mm/ |
H A D | pgtable.c | 61 void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd) argument 63 struct ptdesc *ptdesc = virt_to_ptdesc(pmd); 64 paravirt_release_pmd(__pa(pmd) >> PAGE_SHIFT); 159 * kernel pmd is shared. If PAE were not to share the pmd a similar 175 * Also, if we're in a paravirt environment where the kernel pmd is 191 void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd) argument 193 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT); 196 reserved at the pmd (PDPT) level. */ 197 set_pud(pudp, __pud(__pa(pmd) | _PAGE_PRESEN 242 pmd_t *pmd = NULL; local 279 pmd_t *pmd = (pmd_t *)pgd_page_vaddr(pgd); local 318 pmd_t *pmd = pmds[i]; local 345 pmd_t *pmd = pmds[i]; local 751 pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot) argument 793 pmd_clear_huge(pmd_t *pmd) argument 816 pmd_t *pmd, *pmd_sv; local 859 pmd_free_pte_page(pmd_t *pmd, unsigned long addr) argument 880 pmd_free_pte_page(pmd_t *pmd, unsigned long addr) argument 898 pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma) argument 921 arch_check_zapped_pmd(struct vm_area_struct *vma, pmd_t pmd) argument [all...] |
H A D | ident_map.c | 12 pmd_t *pmd = pmd_page + pmd_index(addr); local 14 if (pmd_present(*pmd)) 17 set_pmd(pmd, __pmd((addr - info->offset) | info->page_flag)); 28 pmd_t *pmd; local 47 pmd = pmd_offset(pud, 0); 48 ident_pmd_init(info, pmd, addr, next); 51 pmd = (pmd_t *)info->alloc_pgt_page(info->context); 52 if (!pmd) 54 ident_pmd_init(info, pmd, addr, next); 55 set_pud(pud, __pud(__pa(pmd) | inf [all...] |
/linux-master/mm/ |
H A D | debug_vm_pgtable.c | 184 pmd_t pmd; local 190 pmd = pfn_pmd(args->fixed_pmd_pfn, prot); 199 WARN_ON(pmd_dirty(pmd_wrprotect(pmd))); 202 WARN_ON(!pmd_same(pmd, pmd)); 203 WARN_ON(!pmd_young(pmd_mkyoung(pmd_mkold(pmd)))); 204 WARN_ON(!pmd_dirty(pmd_mkdirty(pmd_mkclean(pmd)))); 205 WARN_ON(!pmd_write(pmd_mkwrite(pmd_wrprotect(pmd), args->vma))); 206 WARN_ON(pmd_young(pmd_mkold(pmd_mkyoung(pmd)))); 207 WARN_ON(pmd_dirty(pmd_mkclean(pmd_mkdirty(pmd)))); 221 pmd_t pmd; local 283 pmd_t pmd; local 444 pmd_t pmd; local 649 pmd_t pmd = READ_ONCE(*args->pmdp); local 661 pmd_t pmd; local 699 pmd_t pmd; local 728 pmd_t pmd; local 790 pmd_t pmd; local 806 pmd_t pmd; local 875 pmd_t pmd; local 961 pmd_t pmd; local [all...] |
H A D | pgalloc-track.h | 46 #define pte_alloc_kernel_track(pmd, address, mask) \ 47 ((unlikely(pmd_none(*(pmd))) && \ 48 (__pte_alloc_kernel(pmd) || ({*(mask)|=PGTBL_PMD_MODIFIED;0;})))?\ 49 NULL: pte_offset_kernel(pmd, address))
|
/linux-master/include/asm-generic/ |
H A D | pgtable-nopmd.h | 14 * Having the pmd type consist of a pud gets the size right, and allows 15 * us to conceptually access the pud entry that this pmd is folded into 27 * setup: the pmd is never bad, and a pmd always exists (as it's folded 36 #define pmd_ERROR(pmd) (pud_ERROR((pmd).pud)) 38 #define pud_populate(mm, pmd, pte) do { } while (0) 59 * allocating and freeing a pmd is trivial: the 1-entry pmd is 63 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) argument [all...] |
/linux-master/arch/openrisc/include/asm/ |
H A D | pgalloc.h | 28 #define pmd_populate_kernel(mm, pmd, pte) \ 29 set_pmd(pmd, __pmd(_KERNPG_TABLE + __pa(pte))) 31 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, argument 34 set_pmd(pmd, __pmd(_KERNPG_TABLE +
|
/linux-master/arch/csky/include/asm/ |
H A D | pgalloc.h | 13 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, argument 16 set_pmd(pmd, __pmd(__pa(pte))); 19 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, argument 22 set_pmd(pmd, __pmd(__pa(page_address(pte))));
|
H A D | pgtable.h | 32 #define pmd_pfn(pmd) (pmd_phys(pmd) >> PAGE_SHIFT) 33 #define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT)) 95 static inline pte_t *pmd_page_vaddr(pmd_t pmd) argument 99 ptr = pmd_val(pmd); 104 #define pmd_phys(pmd) pmd_val(pmd) 106 static inline void set_pmd(pmd_t *p, pmd_t pmd) argument 108 *p = pmd; 117 pmd_none(pmd_t pmd) argument 124 pmd_present(pmd_t pmd) argument [all...] |
/linux-master/arch/sparc/mm/ |
H A D | tlb.c | 148 pmd_t pmd) 153 pte = pte_offset_map(&pmd, vaddr); 171 pmd_t orig, pmd_t pmd) 176 if ((pmd_val(pmd) ^ pmd_val(orig)) & _PAGE_PMD_HUGE) { 185 if (pmd_val(pmd) & _PAGE_PMD_HUGE) { 186 if (is_huge_zero_page(pmd_page(pmd))) 223 pmd_t *pmdp, pmd_t pmd) 227 *pmdp = pmd; 228 __set_pmd_acct(mm, addr, orig, pmd); 232 unsigned long address, pmd_t *pmdp, pmd_t pmd) 147 tlb_batch_pmd_scan(struct mm_struct *mm, unsigned long vaddr, pmd_t pmd) argument 170 __set_pmd_acct(struct mm_struct *mm, unsigned long addr, pmd_t orig, pmd_t pmd) argument 222 set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd) argument 231 pmdp_establish(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) argument [all...] |
H A D | hugetlbpage.c | 278 unsigned long pmd_leaf_size(pmd_t pmd) { return 1UL << tte_to_shift(*(pte_t *)&pmd); } argument 287 pmd_t *pmd; local 296 pmd = pmd_alloc(mm, pud, addr); 297 if (!pmd) 300 return (pte_t *)pmd; 301 return pte_alloc_huge(mm, pmd, addr); 310 pmd_t *pmd; local 323 pmd = pmd_offset(pud, addr); 324 if (pmd_none(*pmd)) 410 pmd_huge(pmd_t pmd) argument 422 hugetlb_free_pte_range(struct mmu_gather *tlb, pmd_t *pmd, unsigned long addr) argument 436 pmd_t *pmd; local [all...] |
/linux-master/arch/nios2/include/asm/ |
H A D | pgtable.h | 158 static inline int pmd_present(pmd_t pmd) argument 160 return (pmd_val(pmd) != (unsigned long) invalid_pte_table) 161 && (pmd_val(pmd) != 0UL); 199 static inline int pmd_none(pmd_t pmd) argument 201 return (pmd_val(pmd) == 202 (unsigned long) invalid_pte_table) || (pmd_val(pmd) == 0UL); 205 #define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK) 227 #define pmd_phys(pmd) virt_to_phys((void *)pmd_val(pmd)) 231 pmd_page_vaddr(pmd_t pmd) argument [all...] |
/linux-master/include/linux/ |
H A D | pgtable.h | 50 #define pmd_pgtable(pmd) pmd_page(pmd) 92 static inline pte_t *pte_offset_kernel(pmd_t *pmd, unsigned long address) argument 94 return (pte_t *)pmd_page_vaddr(*pmd) + pte_index(address); 100 #define __pte_map(pmd, address) \ 101 ((pte_t *)kmap_local_page(pmd_page(*(pmd))) + pte_index((address))) 107 static inline pte_t *__pte_map(pmd_t *pmd, unsigned long address) argument 109 return pte_offset_kernel(pmd, address); 175 pmd_t *pmd = pmd_off_k(vaddr); local 177 return pmd_none(*pmd) 181 pmd_young(pmd_t pmd) argument 188 pmd_dirty(pmd_t pmd) argument 370 pmd_t pmd = *pmdp; local 444 arch_check_zapped_pmd(struct vm_area_struct *vma, pmd_t pmd) argument 515 pmd_t pmd; local 557 pmd_t pmd = *pmdp; local 734 pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma) argument 867 generic_pmdp_establish(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) argument 1179 pmd_none_or_clear_bad(pmd_t *pmd) argument 1318 pmd_swp_mksoft_dirty(pmd_t pmd) argument 1323 pmd_swp_soft_dirty(pmd_t pmd) argument 1328 pmd_swp_clear_soft_dirty(pmd_t pmd) argument 1339 pmd_soft_dirty(pmd_t pmd) argument 1349 pmd_mksoft_dirty(pmd_t pmd) argument 1359 pmd_clear_soft_dirty(pmd_t pmd) argument 1379 pmd_swp_mksoft_dirty(pmd_t pmd) argument 1384 pmd_swp_soft_dirty(pmd_t pmd) argument 1389 pmd_swp_clear_soft_dirty(pmd_t pmd) argument 1500 pmd_trans_huge(pmd_t pmd) argument 1505 pmd_write(pmd_t pmd) argument 1522 pmd_devmap(pmd_t pmd) argument 1578 pmd_protnone(pmd_t pmd) argument 1615 pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot) argument 1624 pmd_clear_huge(pmd_t *pmd) argument 1636 pmd_free_pte_page(pmd_t *pmd, unsigned long addr) argument [all...] |
/linux-master/arch/arm64/include/asm/ |
H A D | pgtable.h | 165 #define pmd_access_permitted(pmd, write) \ 166 (pte_access_permitted(pmd_pte(pmd), (write))) 182 static inline pmd_t clear_pmd_bit(pmd_t pmd, pgprot_t prot) argument 184 pmd_val(pmd) &= ~pgprot_val(prot); 185 return pmd; 188 static inline pmd_t set_pmd_bit(pmd_t pmd, pgprot_t prot) argument 190 pmd_val(pmd) |= pgprot_val(prot); 191 return pmd; 264 static inline pmd_t pmd_mkcont(pmd_t pmd) argument 266 return __pmd(pmd_val(pmd) | PMD_SECT_CON 431 pmd_pte(pmd_t pmd) argument 475 pmd_protnone(pmd_t pmd) argument 483 pmd_present(pmd_t pmd) argument 493 pmd_trans_huge(pmd_t pmd) argument 512 pmd_mkinvalid(pmd_t pmd) argument 529 pmd_mkdevmap(pmd_t pmd) argument 560 set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd) argument 654 set_pmd(pmd_t *pmdp, pmd_t pmd) argument 676 pmd_page_paddr(pmd_t pmd) argument 681 pmd_page_vaddr(pmd_t pmd) argument 1046 pmd_modify(pmd_t pmd, pgprot_t newprot) argument 1082 pmd_user_accessible_page(pmd_t pmd) argument 1189 pmd_t pmd = __pmd(xchg_relaxed(&pmd_val(*pmdp), 0)); local 1239 pmdp_establish(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) argument [all...] |
/linux-master/arch/loongarch/mm/ |
H A D | hugetlbpage.c | 39 pmd_t *pmd = NULL; local 47 pmd = pmd_offset(pud, addr); 50 return (pte_t *) pmd; 53 int pmd_huge(pmd_t pmd) argument 55 return (pmd_val(pmd) & _PAGE_HUGE) != 0;
|
/linux-master/arch/s390/mm/ |
H A D | vmem.c | 162 static int __ref modify_pte_table(pmd_t *pmd, unsigned long addr, argument 174 pte = pte_offset_kernel(pmd, addr); 204 static void try_free_pte_table(pmd_t *pmd, unsigned long start) argument 210 pte = pte_offset_kernel(pmd, start); 215 vmem_pte_free((unsigned long *) pmd_deref(*pmd)); 216 pmd_clear(pmd); 226 pmd_t *pmd; local 233 pmd = pmd_offset(pud, addr); 234 for (; addr < end; addr = next, pmd++) { 237 if (pmd_none(*pmd)) 304 pmd_t *pmd; local 321 pmd_t *pmd; local 573 pmd_t *pmd; local [all...] |